/* ======================================================================
   Low-vision / high-contrast mode
   Shared by RU / LV / EN pages.
   ====================================================================== */

:root {
  --a11y-panel-width: 390px;
}

/* Floating glasses button */
.a11y-trigger {
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border-radius: 50%;
  border: 2px solid #111;
  background: #fff;
  color: #111;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(0,0,0,.14);
  transition: transform .15s ease, background .15s ease, color .15s ease;
  z-index: 1605;
}
.a11y-trigger:hover { transform: scale(1.06); }
.a11y-trigger svg { width: 31px; height: 31px; display:block; }
.a11y-trigger:focus-visible {
  outline: 3px solid #000;
  outline-offset: 3px;
}
.a11y-standalone-trigger {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 1605;
}

.rd-a11y-desktop-controls { display: none; }

/* Settings panel */
.a11y-panel {
  position: fixed;
  right: 84px;
  bottom: 18px;
  width: min(var(--a11y-panel-width), calc(100vw - 112px));
  z-index: 1700;
  display: none;
  padding: 18px;
  border: 2px solid #111;
  border-radius: 14px;
  background: #fff;
  color: #111;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.35;
  box-shadow: 0 14px 36px rgba(0,0,0,.24);
}
.a11y-panel.is-open { display:block; }
.a11y-panel__head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.a11y-panel__title { font-weight:700; font-size:18px; }
.a11y-panel__close {
  width:36px;
  height:36px;
  border:0;
  background:transparent;
  color:inherit;
  font-size:28px;
  line-height:1;
  cursor:pointer;
}
.a11y-panel__group { margin-top:15px; }
.a11y-panel__label { display:block; font-weight:700; margin-bottom:8px; }
.a11y-panel__row { display:flex; flex-wrap:wrap; gap:8px; }
.a11y-option {
  min-width:48px;
  min-height:44px;
  border:2px solid currentColor;
  border-radius:7px;
  background:#f1f1f1;
  color:#111;
  font:700 16px/1 Arial, Helvetica, sans-serif;
  cursor:pointer;
  padding:8px 11px;
}
.a11y-option[aria-pressed="true"] {
  outline:3px solid #111;
  outline-offset:2px;
}
.a11y-palette {
  width:46px;
  min-width:46px;
  height:44px;
  padding:0;
  border:2px solid #777;
  border-radius:5px;
  font:700 16px/1 Arial, Helvetica, sans-serif;
  cursor:pointer;
}
.a11y-palette[aria-pressed="true"] {
  outline:3px solid #111;
  outline-offset:2px;
}
.a11y-palette--white { background:#fff; color:#000; }
.a11y-palette--blue  { background:#78c7ef; color:#000; }
.a11y-palette--black { background:#000; color:#fff; }
.a11y-palette--brown { background:#3b1d0b; color:#e8f36a; }
.a11y-panel__reset {
  width:100%;
  min-height:46px;
  margin-top:18px;
  border:2px solid #111;
  border-radius:7px;
  background:#111;
  color:#fff;
  font:700 16px/1.2 Arial, Helvetica, sans-serif;
  cursor:pointer;
}
.a11y-panel button:focus-visible {
  outline:3px solid currentColor;
  outline-offset:3px;
}

/* ----------------------------------------------------------------------
   Active color palettes. Each preset is a complete background/text pair.
   ---------------------------------------------------------------------- */
body.a11y-enabled {
  --a11y-bg: #fff;
  --a11y-text: #000;
  --a11y-base: 20px;
  --a11y-h1: 52px;
  --a11y-h2: 42px;
  --a11y-h3: 30px;

  /* Remap the redesign variables to the selected high-contrast pair. */
  --cream: var(--a11y-bg) !important;
  --paper: var(--a11y-bg) !important;
  --ink: var(--a11y-text) !important;
  --ink-soft: var(--a11y-text) !important;
  --olive: var(--a11y-text) !important;
  --olive-deep: var(--a11y-text) !important;
  --olive-light: var(--a11y-text) !important;
  --sage: var(--a11y-bg) !important;
  --line: var(--a11y-text) !important;
  --gold: var(--a11y-text) !important;

  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
}
body.a11y-theme-white { --a11y-bg:#fff; --a11y-text:#000; }
body.a11y-theme-blue  { --a11y-bg:#78c7ef; --a11y-text:#000; }
body.a11y-theme-black { --a11y-bg:#000; --a11y-text:#fff; }
body.a11y-theme-brown { --a11y-bg:#3b1d0b; --a11y-text:#e8f36a; }

/* Three font-size presets. */
body.a11y-size-small  { --a11y-base:20px; --a11y-h1:52px; --a11y-h2:42px; --a11y-h3:30px; }
body.a11y-size-medium { --a11y-base:24px; --a11y-h1:60px; --a11y-h2:48px; --a11y-h3:35px; }
body.a11y-size-large  { --a11y-base:28px; --a11y-h1:68px; --a11y-h2:56px; --a11y-h3:40px; }

body.a11y-enabled,
body.a11y-enabled #main,
body.a11y-enabled main,
body.a11y-enabled .rd-header,
body.a11y-enabled .rd-header__inner,
body.a11y-enabled .rd-nav,
body.a11y-enabled .rd-hero,
body.a11y-enabled .rd-section,
body.a11y-enabled .rd-section--paper,
body.a11y-enabled .rd-section--sage,
body.a11y-enabled .rd-scard,
body.a11y-enabled .rd-benefit,
body.a11y-enabled .rd-acc,
body.a11y-enabled .rd-acc__panel,
body.a11y-enabled .rd-acc__panel-inner,
body.a11y-enabled .rd-info__item,
body.a11y-enabled .rd-form,
body.a11y-enabled .rd-modal__box,
body.a11y-enabled .rd-footer,
body.a11y-enabled .rd-cta,
body.a11y-enabled .rd-review-slide,
body.a11y-enabled .rd-reviews-carousel__viewport,
body.a11y-enabled .certificate-layout,
body.a11y-enabled .certificate-feature-item,
body.a11y-enabled .certificate-price-wrap,
body.a11y-enabled .resume-item,
body.a11y-enabled .vyezd-intro,
body.a11y-enabled .vyezd-calc,
body.a11y-enabled .vyezd-placeholder,
body.a11y-enabled .vyezd-result,
body.a11y-enabled .vyezd-cta,
body.a11y-enabled #footer {
  background-color: var(--a11y-bg) !important;
  background-image: none !important;
  color: var(--a11y-text) !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

/* Never leave grey/white secondary copy in blue or brown modes. */
body.a11y-enabled :where(h1,h2,h3,h4,h5,h6,p,li,dt,dd,label,strong,b,em,small,span,.content,.section-title,.rd-hero__lead,.rd-reviews__lead,.rd-about__quote,.rd-about__quote-src,.rd-footer__copy,.rd-acc__from,.rd-scard__desc,.rd-scard__more,.vyezd-time,.vyezd-price,.vyezd-zone,.certificate-feature-text) {
  color: var(--a11y-text) !important;
  text-shadow: none !important;
}
body.a11y-enabled :where(i,.bi,.bx) { color: currentColor; }

/* High-contrast links. */
body.a11y-enabled :where(a:not(.rd-btn):not(.a11y-trigger):not(.a11y-option):not(.a11y-palette)) {
  color: var(--a11y-text) !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

/* Buttons and controls use the inverse of the chosen palette. */
body.a11y-enabled :where(.rd-btn,.btn,.rd-filters button,.rd-modal__close,.vyezd-combo-arrow,.vyezd-contact,input[type="submit"],button[type="submit"]) {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  border: 2px solid var(--a11y-text) !important;
  box-shadow: none !important;
}
body.a11y-enabled .rd-lang a.is-active {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  border-color: var(--a11y-text) !important;
}
body.a11y-enabled :where(.rd-float a,.rd-footer__soc a,.rd-nav__socials a,.back-to-top,.rd-back-to-top) {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  border: 2px solid var(--a11y-text) !important;
  box-shadow: none !important;
}

/* Inputs */
body.a11y-enabled :where(input,textarea,select,.vyezd-search) {
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
  border: 2px solid var(--a11y-text) !important;
  box-shadow: none !important;
}
body.a11y-enabled :where(input,textarea)::placeholder { color: var(--a11y-text) !important; opacity:1 !important; }

/* Borders, dividers and decorative lines become clearly visible. */
body.a11y-enabled :where(.rd-scard,.rd-benefit,.rd-acc,.rd-info__item,.rd-form,.rd-modal__box,.rd-gallery img,.rd-review-slide img,.rd-lang,.certificate-feature-item,.resume-item,.vyezd-calc,.vyezd-result,.vyezd-placeholder,.portfolio-wrap) {
  border-color: var(--a11y-text) !important;
}
body.a11y-enabled hr,
body.a11y-enabled .rd-footer__copy,
body.a11y-enabled .rd-nav__socials { border-color: var(--a11y-text) !important; }

/* Typography */
body.a11y-enabled :where(p,li,label,input,textarea,select,.content,.rd-navlink,.rd-btn,.rd-reviews__lead,.rd-info__item p,.rd-acc__row,.rd-acc__title,.certificate-feature-text,.vyezd-intro,.vyezd-field,.vyezd-result,.vyezd-legend,.vyezd-cta) {
  font-size: var(--a11y-base) !important;
  line-height: 1.6 !important;
}
body.a11y-enabled h1 { font-size: clamp(40px, 5vw, var(--a11y-h1)) !important; line-height:1.15 !important; }
body.a11y-enabled h2,
body.a11y-enabled .section-title h2 { font-size: clamp(34px, 4vw, var(--a11y-h2)) !important; line-height:1.2 !important; }
body.a11y-enabled h3,
body.a11y-enabled h4 { font-size: var(--a11y-h3) !important; line-height:1.25 !important; }
body.a11y-enabled :where(small,.rd-brand small,.rd-hero__meta .l,.rd-footer__copy) {
  font-size: max(16px, calc(var(--a11y-base) * .72)) !important;
  line-height:1.45 !important;
}

/* Strong focus indication */
body.a11y-enabled :where(a,button,input,textarea,select):focus-visible {
  outline: 3px solid var(--a11y-text) !important;
  outline-offset: 4px !important;
}

/* Remove non-essential motion in low-vision mode. */
body.a11y-enabled *,
body.a11y-enabled *::before,
body.a11y-enabled *::after {
  animation: none !important;
  transition-duration: 0s !important;
  scroll-behavior: auto !important;
}

/* Image toggle: keep text/content, remove photo-dependent areas. */
body.a11y-images-off .rd-hero__media,
body.a11y-images-off .rd-about__img,
body.a11y-images-off .rd-scard__icon,
body.a11y-images-off .rd-benefit img,
body.a11y-images-off .rd-gallery,
body.a11y-images-off .rd-reviews-carousel,
body.a11y-images-off .certificate-image-block,
body.a11y-images-off .portfolio-wrap img,
body.a11y-images-off img {
  display: none !important;
}
body.a11y-images-off .rd-about__grid,
body.a11y-images-off .rd-hero__inner,
body.a11y-images-off .certificate-layout {
  grid-template-columns: 1fr !important;
}

/* The settings UI follows the active palette, while palette swatches keep
   their own preview colors. */
body.a11y-enabled .a11y-panel {
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
  border-color: var(--a11y-text) !important;
  box-shadow: none !important;
}
body.a11y-enabled .a11y-panel__close,
body.a11y-enabled .a11y-option,
body.a11y-enabled .a11y-panel__reset {
  border-color: var(--a11y-text) !important;
}
body.a11y-enabled .a11y-option {
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
}
body.a11y-enabled .a11y-option[aria-pressed="true"],
body.a11y-enabled .a11y-panel__reset {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
}
body.a11y-enabled .a11y-trigger {
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
  border-color: var(--a11y-text) !important;
  box-shadow: none !important;
}

/* The palette buttons intentionally preview the other palettes. */
body.a11y-enabled .a11y-palette--white { background:#fff !important; color:#000 !important; border-color:#000 !important; }
body.a11y-enabled .a11y-palette--blue  { background:#78c7ef !important; color:#000 !important; border-color:#000 !important; }
body.a11y-enabled .a11y-palette--black { background:#000 !important; color:#fff !important; border-color:#fff !important; }
body.a11y-enabled .a11y-palette--brown { background:#3b1d0b !important; color:#e8f36a !important; border-color:#e8f36a !important; }

@media (max-width: 720px) {
  .a11y-panel {
    right: 14px;
    bottom: 190px;
    width: calc(100vw - 28px);
    max-height: calc(100vh - 215px);
    overflow:auto;
  }
  .a11y-standalone-trigger { right:14px; bottom:14px; }
}

/* Specificity guards for controls whose original styles use two classes. */
body.a11y-enabled .rd-float a,
body.a11y-enabled .rd-float .wa,
body.a11y-enabled .rd-float .tg,
body.a11y-enabled .rd-float .bk,
body.a11y-enabled .vyezd-contact,
body.a11y-enabled .vyezd-contact.tg,
body.a11y-enabled .vyezd-contact.wa,
body.a11y-enabled .vyezd-contact.sms {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  border: 2px solid var(--a11y-text) !important;
  box-shadow: none !important;
}

/* ======================================================================
   2026-08-07 accessibility layout fixes
   - keep messenger glyphs visible
   - keep language switch readable
   - prevent large-text grids/nav/header from overflowing
   ====================================================================== */

/* Messenger / social / back-to-top buttons: the circle and the glyph must
   always use opposite colours from the active high-contrast palette. */
body.a11y-enabled :where(.rd-float a,.rd-footer__soc a,.rd-nav__socials a,.rd-back-to-top,.back-to-top) {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  border-color: var(--a11y-text) !important;
}
body.a11y-enabled :where(.rd-float a,.rd-footer__soc a,.rd-nav__socials a,.rd-back-to-top,.back-to-top) :where(i,.bi,.bx),
body.a11y-enabled :where(.rd-float a,.rd-footer__soc a,.rd-nav__socials a,.rd-back-to-top,.back-to-top) :where(i,.bi,.bx)::before {
  color: var(--a11y-bg) !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* Language selector: never let the generic high-contrast link rule overwrite
   the active-language foreground colour. */
body.a11y-enabled .rd-lang {
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
  border: 2px solid var(--a11y-text) !important;
  border-radius: 999px !important;
  padding: 3px !important;
  gap: 2px !important;
}
body.a11y-enabled .rd-lang a,
body.a11y-enabled .rd-lang a:hover {
  background: transparent !important;
  color: var(--a11y-text) !important;
  border: 0 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
  padding: 5px 9px !important;
  border-radius: 999px !important;
}
body.a11y-enabled .rd-lang a.is-active,
body.a11y-enabled .rd-lang a.is-active:hover {
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  text-decoration: none !important;
}

/* Large type needs fewer columns. Keep every card inside its track and allow
   long service names to wrap instead of enlarging the grid. */
body.a11y-enabled .rd-services__grid {
  width: 100% !important;
  max-width: var(--maxw) !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  box-sizing: border-box !important;
}
body.a11y-enabled .rd-scard {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
body.a11y-enabled .rd-scard :where(h3,h4,p,.rd-scard__desc,.rd-scard__more) {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* In low-vision mode use the compact navigation at every viewport width.
   This is more robust than attempting to fit 20–28px navigation labels on
   one line, especially in Russian and Latvian. */
body.a11y-enabled .rd-header__inner {
  position: relative !important;
  width: 100% !important;
  max-width: var(--maxw) !important;
  box-sizing: border-box !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 40px !important;
  grid-template-areas:
    "brand burger"
    "actions actions" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 12px !important;
  overflow: visible !important;
}
body.a11y-enabled .rd-brand {
  grid-area: brand !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
body.a11y-enabled .rd-brand > span {
  min-width: 0 !important;
}
body.a11y-enabled .rd-burger {
  display: block !important;
  grid-area: burger !important;
  order: initial !important;
  margin-left: 0 !important;
  justify-self: end !important;
  flex: 0 0 40px !important;
}
body.a11y-enabled .rd-header__mobact {
  display: flex !important;
  grid-area: actions !important;
  order: initial !important;
  width: 100% !important;
  min-width: 0 !important;
  justify-content: center !important;
  align-items: stretch !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
body.a11y-enabled .rd-header__mobact .rd-btn {
  flex: 0 1 auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  text-align: center !important;
  padding: 10px 16px !important;
  line-height: 1.25 !important;
}
body.a11y-enabled .rd-header__mobact .rd-btn--ghost {
  display: inline-flex !important;
}

body.a11y-enabled .rd-nav {
  display: none !important;
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: 100vw !important;
  box-sizing: border-box !important;
  background: var(--a11y-bg) !important;
  color: var(--a11y-text) !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 4px !important;
  padding: 16px 22px !important;
  border-bottom: 2px solid var(--a11y-text) !important;
  overflow-x: hidden !important;
}
body.a11y-enabled.rd-menu-open .rd-nav {
  display: flex !important;
}
body.a11y-enabled .rd-nav a.rd-navlink {
  width: 100% !important;
  min-width: 0 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  box-sizing: border-box !important;
  padding: 8px 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
}
body.a11y-enabled .rd-nav a.rd-navlink::before {
  display: none !important;
}
body.a11y-enabled .rd-nav .rd-navlink--desktop-only,
body.a11y-enabled .rd-nav .rd-nav-booking {
  display: none !important;
}
body.a11y-enabled .rd-nav .rd-lang {
  align-self: flex-start !important;
  margin: 8px 0 0 !important;
}
body.a11y-enabled .rd-nav__socials {
  display: flex !important;
  width: 100% !important;
  justify-content: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  margin-top: 8px !important;
  padding-top: 16px !important;
  border-top: 2px solid var(--a11y-text) !important;
}
body.a11y-enabled .rd-footer__soc {
  display: none !important;
}

/* General reflow guards for large text. */
body.a11y-enabled,
body.a11y-enabled #main,
body.a11y-enabled main {
  max-width: 100% !important;
  overflow-x: hidden !important;
}
body.a11y-enabled :where(.rd-container,.rd-section__inner,.rd-hero__inner,.rd-about__grid,.rd-contact__grid,.rd-benefits,.rd-gallery,.rd-reviews-carousel,.certificate-layout,.vyezd-wrap) {
  max-width: 100% !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
}

@media (max-width: 900px) {
  body.a11y-enabled .rd-services__grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {
  body.a11y-enabled .rd-header__inner {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  body.a11y-enabled .rd-brand {
    font-size: 20px !important;
  }
  body.a11y-enabled .rd-brand img {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
  }
  body.a11y-enabled .rd-header__mobact {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.a11y-enabled .rd-header__mobact .rd-btn {
    width: 100% !important;
    flex: 1 1 auto !important;
  }
  body.a11y-enabled .rd-nav {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
}


/* ======================================================================
   2026-08-07: two-row desktop header in low-vision mode.
   Row 1: brand on the left, languages + booking on the right.
   Row 2: the full navigation, centred and allowed to scale with A-/A+/A++.
   The site's normal <=1440px breakpoint still switches to the burger.
   ====================================================================== */
@media (min-width: 1441px) {
  body.a11y-enabled .rd-header__inner {
    position: relative !important;
    width: 100% !important;
    max-width: 1380px !important;
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "brand controls"
      "nav nav" !important;
    align-items: center !important;
    justify-content: stretch !important;
    column-gap: 24px !important;
    row-gap: 12px !important;
    padding-top: 14px !important;
    padding-bottom: 16px !important;
    overflow: visible !important;
  }

  body.a11y-enabled .rd-brand {
    grid-area: brand !important;
    justify-self: start !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    font-size: calc(var(--a11y-base) * 1.05) !important;
    line-height: 1.2 !important;
  }
  body.a11y-enabled .rd-brand img {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
  }
  body.a11y-enabled .rd-brand small {
    font-size: max(15px, calc(var(--a11y-base) * .62)) !important;
    line-height: 1.3 !important;
  }

  body.a11y-enabled .rd-a11y-desktop-controls {
    grid-area: controls !important;
    display: flex !important;
    justify-self: end !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
  }
  body.a11y-enabled .rd-a11y-desktop-controls .rd-lang {
    display: flex !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
  }
  body.a11y-enabled .rd-a11y-desktop-controls .rd-lang a {
    font-size: max(16px, calc(var(--a11y-base) * .72)) !important;
    line-height: 1.2 !important;
    padding: 6px 10px !important;
  }
  body.a11y-enabled .rd-a11y-desktop-controls .rd-nav-booking {
    display: inline-flex !important;
    width: auto !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    font-size: var(--a11y-base) !important;
    line-height: 1.25 !important;
    padding: 11px 20px !important;
    white-space: nowrap !important;
  }

  body.a11y-enabled .rd-burger,
  body.a11y-enabled .rd-header__mobact {
    display: none !important;
  }

  body.a11y-enabled .rd-nav {
    grid-area: nav !important;
    display: flex !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 4px 8px !important;
    padding: 4px 0 0 !important;
    border: 0 !important;
    overflow: visible !important;
    background: transparent !important;
  }
  body.a11y-enabled .rd-nav a.rd-navlink {
    width: auto !important;
    min-width: 0 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    padding: 6px 8px !important;
    border-radius: 0 !important;
    background: transparent !important;
    font-size: var(--a11y-base) !important;
    line-height: 1.3 !important;
  }
  body.a11y-enabled .rd-nav a.rd-navlink::before {
    display: block !important;
  }
  body.a11y-enabled .rd-nav a.rd-navlink:first-of-type::before {
    display: none !important;
  }
  body.a11y-enabled .rd-nav .rd-navlink--desktop-only {
    display: inline-flex !important;
  }

  /* These controls are duplicated in the first row for low-vision desktop. */
  body.a11y-enabled .rd-nav > .rd-lang,
  body.a11y-enabled .rd-nav > .rd-nav-booking,
  body.a11y-enabled .rd-nav__socials {
    display: none !important;
  }
  body.a11y-enabled .rd-footer__soc {
    display: flex !important;
  }
}


/* ======================================================================
   v40: secondary-page accessibility controls
   ====================================================================== */

/* The back-to-home pill is part of the readable page UI, so it grows with
   A-/A+/A++ just like body copy and keeps an inverse high-contrast pair. */
body.a11y-enabled .rd-subpage-main :where(.vyezd-home-btn,.home-btn-wrap) a {
  display: inline-flex !important;
  align-items: center !important;
  gap: .35em !important;
  padding: .52em 1em !important;
  border: 2px solid var(--a11y-text) !important;
  border-radius: 999px !important;
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  font-size: var(--a11y-base) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: none !important;
}
body.a11y-enabled .rd-subpage-main :where(.vyezd-home-btn,.home-btn-wrap) a :where(i,.bi,.bx),
body.a11y-enabled .rd-subpage-main :where(.vyezd-home-btn,.home-btn-wrap) a :where(i,.bi,.bx)::before {
  color: var(--a11y-bg) !important;
  opacity: 1 !important;
}

/* Home-visit contact buttons use one clear inverse palette in accessibility
   mode. Explicit child rules prevent the generic link styles from turning
   labels/icons into underlines or same-colour glyphs. */
body.a11y-enabled .rd-vyezd-page .vyezd-contacts {
  display: flex !important;
  justify-content: center !important;
  align-items: stretch !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
}
body.a11y-enabled .rd-vyezd-page .vyezd-contact,
body.a11y-enabled .rd-vyezd-page .vyezd-contact.tg,
body.a11y-enabled .rd-vyezd-page .vyezd-contact.wa,
body.a11y-enabled .rd-vyezd-page .vyezd-contact.sms {
  width: 220px !important;
  min-width: 0 !important;
  min-height: 2.65em !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .45em !important;
  padding: .5em .85em !important;
  border: 2px solid var(--a11y-text) !important;
  border-radius: 999px !important;
  background: var(--a11y-text) !important;
  color: var(--a11y-bg) !important;
  font-size: var(--a11y-base) !important;
  line-height: 1.25 !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}
body.a11y-enabled .rd-vyezd-page .vyezd-contact span {
  color: var(--a11y-bg) !important;
  text-decoration: none !important;
  line-height: 1.25 !important;
}
body.a11y-enabled .rd-vyezd-page .vyezd-contact :where(i,.bi,.bx),
body.a11y-enabled .rd-vyezd-page .vyezd-contact :where(i,.bi,.bx)::before {
  color: var(--a11y-bg) !important;
  font-size: 1.05em !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-decoration: none !important;
}

@media (max-width: 620px) {
  body.a11y-enabled .rd-vyezd-page .vyezd-contacts {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.a11y-enabled .rd-vyezd-page .vyezd-contact,
  body.a11y-enabled .rd-vyezd-page .vyezd-contact.tg,
  body.a11y-enabled .rd-vyezd-page .vyezd-contact.wa,
  body.a11y-enabled .rd-vyezd-page .vyezd-contact.sms {
    width: 100% !important;
    min-width: 0 !important;
  }
  body.a11y-enabled .rd-vyezd-page .vyezd-contact span {
    position: static !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
    clip: auto !important;
    white-space: normal !important;
  }
}

/* ======================================================================
   v41: language switcher in the burger menu mirrors the desktop capsule,
   is centred, and is about 1.2x larger than the previous burger control.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav > .rd-lang {
    align-self: center !important;
    width: max-content !important;
    max-width: 100% !important;
    margin: 10px auto 2px !important;
    padding: 4px !important;
    gap: 2px !important;
    border: 2px solid var(--a11y-text) !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    font-size: calc(var(--a11y-base) * .78) !important;
    line-height: 1.2 !important;
  }
  body.a11y-enabled .rd-nav > .rd-lang a,
  body.a11y-enabled .rd-nav > .rd-lang a:hover {
    padding: 6px 11px !important;
    border-radius: 999px !important;
    font-size: inherit !important;
    line-height: 1.2 !important;
  }
}


/* ======================================================================
   v47: content-height burger menu in low-vision mode + 10% larger labels
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav a.rd-navlink {
    font-size: calc(var(--a11y-base) * 1.10) !important;
    line-height: 1.35 !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
}

/* ======================================================================
   v46: mobile language switcher 10% larger in low-vision mode
   ====================================================================== */
@media (max-width: 720px) {
  body.a11y-enabled .rd-nav > .rd-lang {
    padding: 4.4px !important;
    gap: 2.2px !important;
    font-size: calc(var(--a11y-base) * .858) !important;
  }
  body.a11y-enabled .rd-nav > .rd-lang a,
  body.a11y-enabled .rd-nav > .rd-lang a:hover {
    padding: 6.6px 12.1px !important;
  }
}


/* ======================================================================
   v48: low-vision burger keeps its natural height until it reaches the
   viewport edge; then it scrolls internally so no menu items are hidden.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav {
    max-height: calc(100dvh - var(--rd-header-height, 220px)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
  }
}


/* ======================================================================
   v49: full-screen burger in low-vision mode, safe bottom spacing and
   gentle opening animation. Large-text scrolling remains available.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled.rd-menu-open {
    overflow: hidden !important;
  }

  body.a11y-enabled .rd-nav {
    display: flex !important;
    position: fixed !important;
    top: var(--rd-header-height, 150px) !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: calc(100dvh - var(--rd-header-height, 150px)) !important;
    max-height: calc(100dvh - var(--rd-header-height, 150px)) !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-gutter: stable !important;
    padding-top: 22px !important;
    padding-bottom: max(30px, calc(env(safe-area-inset-bottom) + 18px)) !important;
    z-index: 999 !important;

    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateY(-10px) !important;
    transition: opacity .22s ease, transform .22s ease !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }

  body.a11y-enabled .rd-nav__socials {
    margin-top: auto !important;
    margin-bottom: 2px !important;
  }
}

@media (max-width: 560px) {
  body.a11y-enabled .rd-nav {
    padding-bottom: max(32px, calc(env(safe-area-inset-bottom) + 20px)) !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1440px) {
  body.a11y-enabled .rd-nav {
    transition: none !important;
    transform: none !important;
  }
}


/* ======================================================================
   v50: extra-small-phone header safeguards in low-vision mode.
   ====================================================================== */
@media (max-width: 360px) {
  body.a11y-enabled .rd-header__inner {
    grid-template-columns: minmax(0, 1fr) 36px !important;
    column-gap: 8px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  body.a11y-enabled .rd-brand {
    gap: 7px !important;
    font-size: clamp(17px, calc(var(--a11y-base) * .82), 19px) !important;
    line-height: 1.15 !important;
  }
  body.a11y-enabled .rd-brand img {
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
  }
  body.a11y-enabled .rd-brand small {
    font-size: 9.5px !important;
    letter-spacing: .14em !important;
  }
  body.a11y-enabled .rd-burger {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
  }
}

@media (max-width: 400px) {
  body.a11y-enabled.rd-menu-open .rd-float,
  body.a11y-enabled.rd-menu-open .rd-back-to-top {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}


/* v51: keep low-vision burger controls in sync with the drawer itself. */
@media (max-width: 1440px) {
  body.a11y-enabled.rd-menu-open .rd-float,
  body.a11y-enabled.rd-menu-open .rd-back-to-top {
    display: none !important;
  }

  body.a11y-enabled:not(.rd-menu-open) .rd-nav__socials {
    display: none !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav__socials {
    display: flex !important;
  }
}


/* v52: same top-to-bottom 0.5s burger motion in low-vision mode. */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav {
    opacity: 1 !important;
    transform: translateY(-100%) !important;
    visibility: hidden !important;
    pointer-events: none !important;
    will-change: transform !important;
    transition: transform .5s ease-in-out, visibility 0s linear .5s !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav {
    display: flex !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    transition: transform .5s ease-in-out, visibility 0s linear 0s !important;
  }

  body.a11y-enabled.rd-menu-closing .rd-nav {
    display: flex !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: translateY(-100%) !important;
    transition: transform .5s ease-in-out, visibility 0s linear .5s !important;
  }

  body.a11y-enabled.rd-menu-open .rd-float,
  body.a11y-enabled.rd-menu-open .rd-back-to-top,
  body.a11y-enabled.rd-menu-closing .rd-float,
  body.a11y-enabled.rd-menu-closing .rd-back-to-top {
    display: none !important;
  }

  body.a11y-enabled:not(.rd-menu-open):not(.rd-menu-closing) .rd-nav__socials {
    display: none !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav__socials,
  body.a11y-enabled.rd-menu-closing .rd-nav__socials {
    display: flex !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1440px) {
  body.a11y-enabled .rd-nav,
  body.a11y-enabled.rd-menu-open .rd-nav,
  body.a11y-enabled.rd-menu-closing .rd-nav {
    transition: none !important;
  }
}

/* v53: low-vision drawer reveals from the lower edge of the full header. */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav {
    top: var(--rd-header-height, 150px) !important;
    height: calc(100dvh - var(--rd-header-height, 150px)) !important;
    max-height: calc(100dvh - var(--rd-header-height, 150px)) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: translateY(-12px) !important;
    clip-path: inset(0 0 100% 0) !important;
    will-change: clip-path, transform !important;
    transition: clip-path .5s ease-in-out, transform .5s ease-in-out !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav {
    display: flex !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
    clip-path: inset(0 0 0 0) !important;
    transition: clip-path .5s ease-in-out, transform .5s ease-in-out !important;
  }

  body.a11y-enabled.rd-menu-closing .rd-nav {
    display: flex !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: translateY(-12px) !important;
    clip-path: inset(0 0 100% 0) !important;
    transition: clip-path .5s ease-in-out, transform .5s ease-in-out !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1440px) {
  body.a11y-enabled .rd-nav,
  body.a11y-enabled.rd-menu-open .rd-nav,
  body.a11y-enabled.rd-menu-closing .rd-nav {
    transform: none !important;
    transition: none !important;
  }
}


/* ======================================================================
   v54: low-vision drawer uses the same clipped vertical slide as normal mode.
   The clipping viewport is below the full header, so the panel never crosses it.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer {
    display: block !important;
    position: fixed !important;
    top: var(--rd-header-height, 150px) !important;
    left: 0 !important;
    right: 0 !important;
    height: calc(100dvh - var(--rd-header-height, 150px)) !important;
    overflow: hidden !important;
    z-index: 999 !important;
    pointer-events: none !important;
  }

  body.a11y-enabled .rd-nav-drawer .rd-nav {
    display: flex !important;
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    opacity: 1 !important;
    visibility: visible !important;
    clip-path: none !important;
    pointer-events: none !important;
    transform: translate3d(0, -100%, 0) !important;
    will-change: transform !important;
    transition: transform .5s ease-in-out !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav-drawer {
    pointer-events: auto !important;
  }

  body.a11y-enabled.rd-menu-open .rd-nav-drawer .rd-nav {
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) !important;
    transition: transform .5s ease-in-out !important;
  }

  body.a11y-enabled.rd-menu-closing .rd-nav-drawer .rd-nav {
    pointer-events: none !important;
    transform: translate3d(0, -100%, 0) !important;
    transition: transform .5s ease-in-out !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer .rd-nav,
  body.a11y-enabled.rd-menu-open .rd-nav-drawer .rd-nav,
  body.a11y-enabled.rd-menu-closing .rd-nav-drawer .rd-nav {
    transition: none !important;
  }
}


/* v54.1: low-vision closed drawer is hidden after its slide completes. */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer .rd-nav {
    visibility: hidden !important;
    transition: transform .5s ease-in-out, visibility 0s linear .5s !important;
  }
  body.a11y-enabled.rd-menu-open .rd-nav-drawer .rd-nav {
    visibility: visible !important;
    transition: transform .5s ease-in-out, visibility 0s linear 0s !important;
  }
  body.a11y-enabled.rd-menu-closing .rd-nav-drawer .rd-nav {
    visibility: visible !important;
    transition: transform .5s ease-in-out, visibility 0s linear .5s !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer .rd-nav,
  body.a11y-enabled.rd-menu-open .rd-nav-drawer .rd-nav,
  body.a11y-enabled.rd-menu-closing .rd-nav-drawer .rd-nav {
    transition: none !important;
  }
}


/* v55: in low-vision mode the menu also covers fixed controls instead of
   toggling their display state, preventing visible pop-in/pop-out. */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer {
    z-index: 1600 !important;
  }

  body.a11y-enabled.rd-menu-open .rd-float,
  body.a11y-enabled.rd-menu-closing .rd-float {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
  }

  body.a11y-enabled.rd-menu-open .rd-back-to-top,
  body.a11y-enabled.rd-menu-closing .rd-back-to-top {
    display: flex !important;
    pointer-events: none !important;
  }

  body.a11y-enabled.rd-menu-open .rd-back-to-top.show,
  body.a11y-enabled.rd-menu-closing .rd-back-to-top.show {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.a11y-enabled.rd-menu-open .rd-back-to-top:not(.show),
  body.a11y-enabled.rd-menu-closing .rd-back-to-top:not(.show) {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}


/* ======================================================================
   v57: keep the burger language capsule next to the lower separator in
   low-vision mode, with the same 16px spacing on both sides of the line.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav > .rd-lang {
    margin-top: auto !important;
    margin-right: auto !important;
    margin-bottom: 16px !important;
    margin-left: auto !important;
  }

  body.a11y-enabled .rd-nav__socials {
    margin-top: 0 !important;
    padding-top: 16px !important;
  }
}


/* ======================================================================
   v59: low-vision drawer uses the same top + bottom viewport anchoring.
   ====================================================================== */
@media (max-width: 1440px) {
  body.a11y-enabled .rd-nav-drawer {
    top: var(--rd-header-height, 150px) !important;
    bottom: 0 !important;
    height: auto !important;
    max-height: none !important;
  }

  body.a11y-enabled .rd-nav-drawer .rd-nav {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
  }
}


/* v61: same 500 ms closing motion in low-vision mode. */
@media (max-width: 1440px) {
  body.a11y-enabled.rd-menu-closing .rd-nav-drawer .rd-nav {
    transition: transform .5s ease-in-out, visibility 0s linear .5s !important;
  }
}
