/* Версия для слабовидящих (п. 21 Требований, приказ Рособрнадзора № 1493).
   Цветовые схемы по ГОСТ Р 52872-2019: чёрным по белому, белым по чёрному, тёмно-синим по голубому. */

.a11y-bar { display: none; }
html.a11y .a11y-bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px;
  position: fixed; top: 0; left: 0; right: 0; z-index: 100000;
  padding: 10px 16px; background: #fff; color: #000;
  border-bottom: 3px solid #000; font: 600 16px/1.3 Arial, sans-serif;
}
html.a11y body { padding-top: var(--a11y-bar-h, 64px) !important; }
.a11y-bar .grp { display: flex; align-items: center; gap: 6px; }
.a11y-bar .lbl { margin-right: 4px; }
.a11y-bar button {
  min-width: 40px; height: 40px; padding: 0 12px; border: 2px solid #000; border-radius: 6px;
  background: #fff; color: #000; font: 700 16px/1 Arial, sans-serif; cursor: pointer;
}
.a11y-bar button[aria-pressed="true"] { background: #000; color: #fff; }
.a11y-bar .c-wb { background: #000 !important; color: #fff !important; }
.a11y-bar .c-blue { background: #9DD1FF !important; color: #063462 !important; border-color: #063462 !important; }
.a11y-bar .c-bw { background: #fff !important; color: #000 !important; }
.a11y-bar .c-bw[aria-pressed="true"], .a11y-bar .c-wb[aria-pressed="true"], .a11y-bar .c-blue[aria-pressed="true"] { outline: 3px solid #FF5722; outline-offset: 2px; }
.a11y-bar .exit { margin-left: auto; }

/* Размер шрифта: масштабируем страницу целиком — вёрстка перестраивается под крупный текст */
html.a11y-fs-2 { zoom: 1.25; }
html.a11y-fs-3 { zoom: 1.5; }
html.a11y-fs-2 .a11y-bar { zoom: calc(1 / 1.25); }
html.a11y-fs-3 .a11y-bar { zoom: calc(1 / 1.5); }

/* Общие правила режима: без анимаций, теней, фоновых картинок и декоративных слоёв */
html.a11y *, html.a11y *::before, html.a11y *::after {
  animation: none !important; transition: none !important;
  box-shadow: none !important; text-shadow: none !important;
}
html.a11y body *:not(.a11y-bar):not(.a11y-bar *) { background-image: none !important; }
html.a11y body *:not(.a11y-bar):not(.a11y-bar *)::before,
html.a11y body *:not(.a11y-bar):not(.a11y-bar *)::after { background-image: none !important; }
html.a11y a { text-decoration: underline !important; }
html.a11y :focus-visible { outline: 3px solid currentColor !important; outline-offset: 2px; }

/* Чёрным по белому */
html.a11y-c-bw, html.a11y-c-bw body { background: #fff !important; }
html.a11y-c-bw body *:not(.a11y-bar):not(.a11y-bar *):not(img) {
  background-color: #fff !important; color: #000 !important; border-color: #000 !important;
}
html.a11y-c-bw body *:not(.a11y-bar):not(.a11y-bar *) svg { color: #000 !important; }

/* Белым по чёрному */
html.a11y-c-wb, html.a11y-c-wb body { background: #000 !important; }
html.a11y-c-wb body *:not(.a11y-bar):not(.a11y-bar *):not(img) {
  background-color: #000 !important; color: #fff !important; border-color: #fff !important;
}

/* Тёмно-синим по голубому */
html.a11y-c-blue, html.a11y-c-blue body { background: #9DD1FF !important; }
html.a11y-c-blue body *:not(.a11y-bar):not(.a11y-bar *):not(img) {
  background-color: #9DD1FF !important; color: #063462 !important; border-color: #063462 !important;
}

/* Декоративные подложки делаем прозрачными, чтобы не перекрывали текст */
html.a11y .hero-bg, html.a11y .hero::before, html.a11y .hero::after,
html.a11y .legal-header::before, html.a11y .price-block-main::after,
html.a11y .fleet-autodrom::after { display: none !important; }

/* Изображения выключены: картинки прячем, оставляем подпись из alt */
html.a11y-noimg img { visibility: hidden !important; }
html.a11y-noimg .location-photo, html.a11y-noimg .fleet-car-photo,
html.a11y-noimg .team-photo, html.a11y-noimg .fleet-autodrom-img { display: none !important; }

/* Фиксированная шапка главной — ниже панели настроек */
html.a11y .header { top: var(--a11y-bar-h, 64px) !important; }
html.a11y .mobile-overlay { top: var(--a11y-bar-h, 64px) !important; }



/* Плавающие элементы главной не мешают чтению */
html.a11y .float-messengers { display: none !important; }

/* На телефоне масштаб умереннее: экран и так узкий */
@media (max-width: 480px) {
  html.a11y-fs-2 { zoom: 1.15; }
  html.a11y-fs-3 { zoom: 1.3; }
  html.a11y-fs-2 .a11y-bar { zoom: calc(1 / 1.15); }
  html.a11y-fs-3 .a11y-bar { zoom: calc(1 / 1.3); }
}

/* Медиазапросы не учитывают zoom: при крупном шрифте на узком экране
   включаем правила «узкой» раскладки принудительно */
@media (max-width: 767px) {
  html.a11y-fs-2 .hero-actions, html.a11y-fs-3 .hero-actions { grid-auto-flow: row; width: 100%; }
  html.a11y-fs-2 .nowrap, html.a11y-fs-3 .nowrap,
  html.a11y-fs-2 .final-cta h2 .nowrap, html.a11y-fs-3 .final-cta h2 .nowrap { white-space: normal; }
  html.a11y-fs-2 .hero-form-card, html.a11y-fs-3 .hero-form-card { padding: 18px 14px; }
  html.a11y-fs-2 .hero-form-card input, html.a11y-fs-2 .hero-form-card select,
  html.a11y-fs-3 .hero-form-card input, html.a11y-fs-3 .hero-form-card select { min-width: 0; }
  html.a11y-fs-2 .trust-value, html.a11y-fs-3 .trust-value { font-size: 24px; }
  html.a11y-fs-2 .trust-item, html.a11y-fs-3 .trust-item { padding: 22px 14px; }
  html.a11y-fs-2 .hero-stat-value, html.a11y-fs-3 .hero-stat-value { font-size: 26px; }
  html.a11y-fs-2 .location-photo, html.a11y-fs-3 .location-photo { flex-basis: 74px; }
  html.a11y-fs-2 .geo-locations, html.a11y-fs-2 .geo-contact,
  html.a11y-fs-3 .geo-locations, html.a11y-fs-3 .geo-contact { padding: 20px 16px; }
  html.a11y-fs-3 .trust-items { grid-template-columns: 1fr; }
  html.a11y-fs-3 .hero-stats { grid-template-columns: 1fr 1fr; }
}

/* Компактная панель настроек на телефоне */
@media (max-width: 640px) {
  html.a11y .a11y-bar { gap: 8px 12px; padding: 8px 10px; font-size: 14px; }
  .a11y-bar button { min-width: 34px; height: 34px; padding: 0 8px; font-size: 14px; }
  .a11y-bar .lbl-long { display: none; }
  .a11y-bar .exit { margin-left: 0; }
}
@media (min-width: 641px) { .a11y-bar .lbl-short { display: none; } }

/* Крупный шрифт на десктопе: фактическая ширина раскладки = экран / масштаб.
   Когда она падает ниже 1025px, включаем планшетную шапку и первый экран в одну колонку. */
@media (max-width: 1680px) {
  html.a11y-fs-2 .nav, html.a11y-fs-2 .header-right .btn-primary { display: none; }
  html.a11y-fs-2 .burger { display: flex; flex-shrink: 0; }
  html.a11y-fs-2 .header-right { margin-left: auto; }
  html.a11y-fs-2 .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  html.a11y-fs-2 .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 28px; }
}
@media (max-width: 1536px) {
  html.a11y-fs-3 .nav, html.a11y-fs-3 .header-right .btn-primary { display: none; }
  html.a11y-fs-3 .burger { display: flex; flex-shrink: 0; }
  html.a11y-fs-3 .header-right { margin-left: auto; }
  html.a11y-fs-3 .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  html.a11y-fs-3 .hero-stats { grid-template-columns: repeat(2, 1fr); gap: 28px; }
}

/* Переносим только то, что иначе не помещается: длинные слова — по границе строки,
   адреса почты — в любом месте (у них нет пробелов). Слова в меню, телефоны и цифры не рвём. */
html.a11y body p, html.a11y body li, html.a11y body dd, html.a11y body td,
html.a11y body h1, html.a11y body h2, html.a11y body h3 { overflow-wrap: break-word; }
html.a11y a[href^="mailto:"] { overflow-wrap: anywhere; }
html.a11y a[href^="tel:"], html.a11y .nav a, html.a11y .trust-value,
html.a11y .hero-stat-value { white-space: nowrap; }

/* Крупный шрифт на узком экране: CTA-полоса в одну колонку */
@media (max-width: 767px) {
  html.a11y-fs-2 .cta-band-inner, html.a11y-fs-3 .cta-band-inner { grid-template-columns: 1fr; }
  html.a11y-fs-2 .cta-band-actions, html.a11y-fs-3 .cta-band-actions { width: 100%; }
  html.a11y-fs-2 .cta-band-inner > *, html.a11y-fs-3 .cta-band-inner > * { min-width: 0; }
}


/* Логотипы: контрастная заливка вместо оригинальных цветов */
html.a11y-c-bw .logo img, html.a11y-c-bw .legal-logo img,
html.a11y-c-blue .logo img, html.a11y-c-blue .legal-logo img { filter: brightness(0) !important; }
html.a11y-c-wb .logo img, html.a11y-c-wb .legal-logo img { filter: brightness(0) invert(1) !important; }
html.a11y .legal-logo .lg-dark { display: none !important; }
html.a11y .legal-logo .lg-light { display: inline-block !important; }
html.a11y .logo .logo-light { opacity: 1 !important; }
html.a11y .logo .logo-dark { opacity: 0 !important; }

/* Выпадающие списки: возвращаем системную стрелку — она рисуется цветом текста
   и видна в любой схеме, а своя стрелка-картинка в этом режиме убрана */
html.a11y select {
  -webkit-appearance: menulist !important; -moz-appearance: menulist !important; appearance: auto !important;
  background-image: none !important;
}

/* Самый крупный шрифт: шапка всегда с меню-бургером, полоса цифр — в две колонки */
html.a11y-fs-3 .nav, html.a11y-fs-3 .header-right .btn-primary { display: none !important; }
html.a11y-fs-3 .burger { display: flex !important; flex-shrink: 0; }
html.a11y-fs-3 .header-right { margin-left: auto; }
@media (min-width: 768px) { html.a11y-fs-3 .trust-items { grid-template-columns: repeat(2, 1fr); } }

/* Раздел «Сведения» при крупном шрифте: в одну колонку, как на планшете */
@media (max-width: 1125px) {
  html.a11y-fs-2 .sv-wrap { grid-template-columns: 1fr; }
  html.a11y-fs-2 .sv-nav { position: static; }
  html.a11y-fs-2 .doc-open { display: none; }
}
@media (max-width: 1350px) {
  html.a11y-fs-3 .sv-wrap { grid-template-columns: 1fr; }
  html.a11y-fs-3 .sv-nav { position: static; }
  html.a11y-fs-3 .doc-open { display: none; }
}
html.a11y .kv-row { grid-template-columns: minmax(0, 34%) minmax(0, 1fr); }
html.a11y .kv dd, html.a11y .kv dt, html.a11y .doc-body { min-width: 0; }
html.a11y .doc-title, html.a11y .doc-meta, html.a11y .kv dt,
html.a11y .location-name, html.a11y .location-addr, html.a11y .geo-locations h3 { overflow-wrap: break-word; }

/* Крупнейший шрифт на телефоне: адреса — фото над текстом */
@media (max-width: 480px) {
  html.a11y-fs-3 .location-item { flex-direction: column; align-items: flex-start; }
  html.a11y-fs-3 .location-photo { flex-basis: auto; width: 100%; max-width: 220px; }
  html.a11y-fs-3 .kv-row { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
  html.a11y-fs-3 .sv-wrap { padding-left: 12px; padding-right: 12px; }
  html.a11y-fs-3 .doc-link { padding: 12px; gap: 10px; }
  html.a11y-fs-3 .doc-icon { display: none; }
}

/* Подсказки в полях: контрастный цвет в каждой схеме */
html.a11y-c-bw ::placeholder   { color: #555 !important; opacity: 1 !important; }
html.a11y-c-wb ::placeholder   { color: #bbb !important; opacity: 1 !important; }
html.a11y-c-blue ::placeholder { color: #2c4f7a !important; opacity: 1 !important; }


/* Элементы, которые держатся на заливке. Селекторы усилены, чтобы перебить
   общую перекраску фона (у неё специфичность 0,3,3). */
html.a11y.a11y-c-bw body .header .burger span { background-color: #000 !important; }
html.a11y.a11y-c-bw body .consent-check input:checked + .checkmark { background-color: #000 !important; border-color: #000 !important; }
html.a11y.a11y-c-bw body .consent-check input:checked + .checkmark::after { border-color: #fff !important; }
html.a11y.a11y-c-bw body .consent-check .checkmark { border-width: 2px !important; border-color: #000 !important; }
html.a11y.a11y-c-bw body .btn-loading::after { color: #000 !important; }
html.a11y.a11y-c-bw body .btn-loading::before { border-color: #000 !important; border-top-color: transparent !important; }
html.a11y.a11y-c-wb body .header .burger span { background-color: #fff !important; }
html.a11y.a11y-c-wb body .consent-check input:checked + .checkmark { background-color: #fff !important; border-color: #fff !important; }
html.a11y.a11y-c-wb body .consent-check input:checked + .checkmark::after { border-color: #000 !important; }
html.a11y.a11y-c-wb body .consent-check .checkmark { border-width: 2px !important; border-color: #fff !important; }
html.a11y.a11y-c-wb body .btn-loading::after { color: #fff !important; }
html.a11y.a11y-c-wb body .btn-loading::before { border-color: #fff !important; border-top-color: transparent !important; }
html.a11y.a11y-c-blue body .header .burger span { background-color: #063462 !important; }
html.a11y.a11y-c-blue body .consent-check input:checked + .checkmark { background-color: #063462 !important; border-color: #063462 !important; }
html.a11y.a11y-c-blue body .consent-check input:checked + .checkmark::after { border-color: #9DD1FF !important; }
html.a11y.a11y-c-blue body .consent-check .checkmark { border-width: 2px !important; border-color: #063462 !important; }
html.a11y.a11y-c-blue body .btn-loading::after { color: #063462 !important; }
html.a11y.a11y-c-blue body .btn-loading::before { border-color: #063462 !important; border-top-color: transparent !important; }
html.a11y .burger { border: 2px solid currentColor !important; border-radius: 8px; }

/* Кнопки выглядят кнопками: у многих в обычном дизайне нет рамки, только заливка */
html.a11y.a11y-c-bw body button:not(.a11y-bar button):not(.burger):not(.mobile-close):not(.faq-q):not(.popup-close),
html.a11y.a11y-c-bw body .btn-primary, html.a11y.a11y-c-bw body .btn-outline, html.a11y.a11y-c-bw body .cta-band-btn, html.a11y.a11y-c-bw body .cta-band-phone { border: 2px solid #000 !important; border-radius: 10px; }
html.a11y.a11y-c-bw body .btn-loading.btn-loading.btn-loading { color: transparent !important; }
html.a11y.a11y-c-wb body button:not(.a11y-bar button):not(.burger):not(.mobile-close):not(.faq-q):not(.popup-close),
html.a11y.a11y-c-wb body .btn-primary, html.a11y.a11y-c-wb body .btn-outline, html.a11y.a11y-c-wb body .cta-band-btn, html.a11y.a11y-c-wb body .cta-band-phone { border: 2px solid #fff !important; border-radius: 10px; }
html.a11y.a11y-c-wb body .btn-loading.btn-loading.btn-loading { color: transparent !important; }
html.a11y.a11y-c-blue body button:not(.a11y-bar button):not(.burger):not(.mobile-close):not(.faq-q):not(.popup-close),
html.a11y.a11y-c-blue body .btn-primary, html.a11y.a11y-c-blue body .btn-outline, html.a11y.a11y-c-blue body .cta-band-btn, html.a11y.a11y-c-blue body .cta-band-phone { border: 2px solid #063462 !important; border-radius: 10px; }
html.a11y.a11y-c-blue body .btn-loading.btn-loading.btn-loading { color: transparent !important; }

/* В режиме для слабовидящих кнопка включения не нужна — выход есть в панели */
html.a11y .a11y-btn { display: none !important; }

/* Крупный шрифт на телефоне: полоса цифр в одну колонку */
@media (max-width: 480px) {
  html.a11y-fs-2 .trust-items { grid-template-columns: 1fr; }
}
