/* =====================================================
 * Версия для слабовидящих — стили
 *
 * Соответствие ГОСТ Р 52872-2019:
 *  — масштаб 100/125/150/200% (200% обязателен, п.2)
 *  — 4 темы (default/white-on-black/black-on-white/beige, п.7)
 *  — 3 шрифта, 3 межстрочных, 2 межбуквенных, on/off картинок
 *  — контраст ≥4.5:1 на всех элементах панели
 *  — не ломает booking-modal (Renovatio) и админские формы
 * ===================================================== */

/* ---------- Триггер-кнопка ----------
 * Скромная, но различимая: светло-серая полупрозрачная кнопка с
 * иконкой, не привлекает внимание в обычном режиме. При hover/focus
 * становится зелёной — ясно что кликабельна. Для слабовидящих,
 * которые ищут эту кнопку специально, её легко найти по иконке
 * глаза в правом нижнем углу. */
.a11y-trigger {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 2147483000;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px 9px 11px;
    background: rgba(255, 255, 255, 0.92);
    color: #4b5563;
    border: 1px solid #d1d5db;
    border-radius: 999px;
    font-family: 'Open Sans', -apple-system, system-ui, sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0.78;
    transition: background 0.2s, color 0.2s, border-color 0.2s, opacity 0.2s, transform 0.15s;
}

.a11y-trigger:hover {
    background: #44692b;
    color: #fff;
    border-color: #44692b;
    opacity: 1;
    box-shadow: 0 4px 12px rgba(68, 105, 43, 0.25);
}
.a11y-trigger:active { transform: scale(0.97); }

.a11y-trigger .a11y-icon { width: 18px; height: 18px; flex-shrink: 0; display: inline-block; }

.a11y-trigger-label { white-space: nowrap; letter-spacing: 0.01em; }

.a11y-trigger:focus-visible {
    outline: 3px solid #44692b;
    outline-offset: 2px;
    opacity: 1;
}

/* Когда панель открыта — триггер становится активным */
.a11y-trigger[aria-expanded="true"] {
    background: #44692b;
    color: #fff;
    border-color: #44692b;
    opacity: 1;
}

@media (max-width: 640px) {
    .a11y-trigger {
        padding: 10px;
        right: 12px;
        bottom: 12px;
    }
    .a11y-trigger-label { display: none; }
}

/* ---------- Панель настроек ---------- */
.a11y-panel {
    position: fixed;
    right: 16px;
    bottom: 76px;
    z-index: 2147483001;
    width: 360px;
    max-width: calc(100vw - 32px);
    max-height: calc(100vh - 120px);
    overflow-y: auto;
    background: #fff;
    color: #1a1a1a;
    border: 1px solid #d1d5db;
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
    font-family: 'Open Sans', -apple-system, system-ui, sans-serif;
    font-size: 14px;
    line-height: 1.5;
}

.a11y-panel[hidden] { display: none !important; }

.a11y-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 18px;
    background: #f9fafb;
    border-bottom: 1px solid #e5e7eb;
    font-size: 15px;
    color: #1a1a1a;
    position: sticky;
    top: 0;
    z-index: 2;
}

.a11y-close {
    background: none;
    border: none;
    font-size: 26px;
    line-height: 1;
    color: #4b5563;    /* контраст 7.2:1 вместо 4.8:1 */
    cursor: pointer;
    padding: 0 6px;
    font-family: inherit;
}

.a11y-close:hover { color: #1a1a1a; }

.a11y-panel-body { padding: 18px; }

.a11y-row { margin-bottom: 14px; }

.a11y-row-label {
    font-size: 12px;
    font-weight: 600;
    color: #4b5563;    /* контраст 7.2:1 */
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 8px;
}

.a11y-btns {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.a11y-btn {
    flex: 1 1 auto;
    padding: 10px 12px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
    background: #fff;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    cursor: pointer;
    min-width: 50px;
    min-height: 40px;
    line-height: 1.2;
}

.a11y-btn:hover {
    border-color: #44692b;
    color: #44692b;
}

.a11y-btn.is-active {
    background: #44692b;
    color: #fff;
    border-color: #44692b;
}

.a11y-btn:focus-visible {
    outline: 2px solid #44692b;
    outline-offset: 2px;
}

/* Темы — визуальные превью в кнопках */
.a11y-sw-default  { }
.a11y-sw-wb       { background: #000; color: #fff; border-color: #000; }
.a11y-sw-wb:hover { background: #000; color: #fff; }
.a11y-sw-wb.is-active { background: #000; color: #fff; border: 2px solid #fbbf24; outline: 2px solid #44692b; outline-offset: -2px; }

.a11y-sw-bw       { background: #fff; color: #000; border: 1px solid #000; }
.a11y-sw-bw.is-active { background: #fff; color: #000; border: 2px solid #44692b; }

.a11y-sw-beige    { background: #f5f5dc; color: #1a1a1a; border-color: #8b7355; }
.a11y-sw-beige:hover { background: #f5f5dc; color: #1a1a1a; }
.a11y-sw-beige.is-active { background: #f5f5dc; color: #1a1a1a; border: 2px solid #44692b; }

.a11y-reset {
    display: block;
    width: 100%;
    padding: 10px 14px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    color: #4b5563;    /* контраст 7.2:1 */
    background: transparent;
    border: 1px dashed #9ca3af;
    border-radius: 8px;
    cursor: pointer;
    margin-top: 8px;
}

.a11y-reset:hover { border-color: #44692b; color: #44692b; }

.a11y-feedback-link {
    display: block;
    margin-top: 12px;
    padding: 11px 14px;
    font-size: 13px;
    font-weight: 600;
    color: #44692b;
    background: #e8f5e9;
    border: 1px solid #a7f3d0;
    border-radius: 8px;
    text-align: center;
    text-decoration: underline;
    font-family: inherit;
}
.a11y-feedback-link:hover {
    background: #d1fae5;
}

.a11y-hint {
    font-size: 12px;
    color: #4b5563;    /* контраст 7.2:1 вместо 2.8:1 */
    line-height: 1.55;
    margin: 14px 0 0 0;
}

@media (max-width: 640px) {
    .a11y-panel {
        right: 8px;
        left: 8px;
        bottom: 70px;
        width: auto;
        max-width: none;
        max-height: calc(100vh - 90px);
    }
}

/* При печати — виджет скрываем */
@media print {
    .a11y-trigger, .a11y-panel { display: none !important; }
}

/* Уважаем системную настройку prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .a11y-trigger, .a11y-btn { transition: none !important; }
}

/* =====================================================
 * АКТИВНЫЙ РЕЖИМ — правки глобально на сайте
 * (data-a11y="on" на <html>)
 * =====================================================
 *
 * ВАЖНО: все правила должны исключать #booking-modal,
 * .a11y-panel, .a11y-trigger и их потомков — это виджет
 * Renovatio (Vue SPA со своими стилями) и наша панель.
 */

/* --- Размер шрифта (4 ступени, включая обязательный 200%) ---
 *
 * Важно: на сайте body и многие блоки имеют font-size: 16px / 15px / 14px
 * захардкоженным в пикселях — обычное масштабирование через html { font-size: % }
 * не работает, потому что px-значения в потомках игнорируют % на корне.
 *
 * Решение: умножаем все font-size в active-режиме через CSS zoom: на <body>.
 * zoom поддерживается во всех современных браузерах (Chrome/Safari/Firefox
 * с 126+ в 2024) и масштабирует и шрифты, и лейаут пропорционально,
 * сохраняя raster-качество текста (в отличие от transform:scale).
 *
 * При zoom появляется горизонтальный скролл на фиксированной вёрстке,
 * поэтому overflow-x: hidden + max-width: 100vw на body обязательны.
 */
html[data-a11y][data-a11y-size="large"]   body { zoom: 1.25; }
html[data-a11y][data-a11y-size="xlarge"]  body { zoom: 1.5;  }
html[data-a11y][data-a11y-size="xxlarge"] body { zoom: 2;    }

/* Триггер и панель — fixed, zoom на body их не трогает, поэтому они сохраняют
 * свой размер и положение. При xxlarge это намеренно — виджет остаётся
 * компактным и доступным. */

/* --- Защита от горизонтального скролла при крупном масштабе --- */
html[data-a11y] {
    overflow-x: hidden;
}
html[data-a11y] body {
    overflow-x: hidden;
    max-width: 100vw;
}
html[data-a11y][data-a11y-size="xlarge"] .container,
html[data-a11y][data-a11y-size="xxlarge"] .container {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
}
html[data-a11y][data-a11y-size="xxlarge"] .doctors-grid,
html[data-a11y][data-a11y-size="xxlarge"] .trust-grid,
html[data-a11y][data-a11y-size="xxlarge"] .services-grid,
html[data-a11y][data-a11y-size="xxlarge"] .promos-grid,
html[data-a11y][data-a11y-size="xxlarge"] .legal-grid,
html[data-a11y][data-a11y-size="xxlarge"] .info-layout,
html[data-a11y][data-a11y-size="xxlarge"] .feedback-layout {
    grid-template-columns: 1fr !important;
}
html[data-a11y][data-a11y-size="xxlarge"] .info-sidebar {
    position: static !important;
}

/* Триггер и панель при 200% сдвигаются наверх и уменьшаются */
html[data-a11y][data-a11y-size="xxlarge"] .a11y-trigger {
    bottom: 8px;
    right: 8px;
    padding: 8px 12px;
    font-size: 12px;
}
html[data-a11y][data-a11y-size="xxlarge"] .a11y-trigger .a11y-icon {
    width: 18px; height: 18px;
}
html[data-a11y][data-a11y-size="xxlarge"] .a11y-panel {
    bottom: 54px;
}

/* --- Межстрочный интервал --- */
html[data-a11y][data-a11y-spacing="medium"] body,
html[data-a11y][data-a11y-spacing="medium"] p,
html[data-a11y][data-a11y-spacing="medium"] li,
html[data-a11y][data-a11y-spacing="medium"] dd,
html[data-a11y][data-a11y-spacing="medium"] dt,
html[data-a11y][data-a11y-spacing="medium"] h1,
html[data-a11y][data-a11y-spacing="medium"] h2,
html[data-a11y][data-a11y-spacing="medium"] h3 {
    line-height: 1.85 !important;
}
html[data-a11y][data-a11y-spacing="wide"] body,
html[data-a11y][data-a11y-spacing="wide"] p,
html[data-a11y][data-a11y-spacing="wide"] li,
html[data-a11y][data-a11y-spacing="wide"] dd,
html[data-a11y][data-a11y-spacing="wide"] dt,
html[data-a11y][data-a11y-spacing="wide"] h1,
html[data-a11y][data-a11y-spacing="wide"] h2,
html[data-a11y][data-a11y-spacing="wide"] h3 {
    line-height: 2.2 !important;
}

/* --- Межбуквенный интервал --- */
html[data-a11y][data-a11y-tracking="wide"] body,
html[data-a11y][data-a11y-tracking="wide"] p,
html[data-a11y][data-a11y-tracking="wide"] li,
html[data-a11y][data-a11y-tracking="wide"] a,
html[data-a11y][data-a11y-tracking="wide"] h1,
html[data-a11y][data-a11y-tracking="wide"] h2,
html[data-a11y][data-a11y-tracking="wide"] h3,
html[data-a11y][data-a11y-tracking="wide"] button {
    letter-spacing: 0.1em !important;
    word-spacing: 0.16em !important;
}

/* --- Шрифт --- */
html[data-a11y][data-a11y-font="serif"] body,
html[data-a11y][data-a11y-font="serif"] p,
html[data-a11y][data-a11y-font="serif"] li,
html[data-a11y][data-a11y-font="serif"] h1,
html[data-a11y][data-a11y-font="serif"] h2,
html[data-a11y][data-a11y-font="serif"] h3,
html[data-a11y][data-a11y-font="serif"] h4,
html[data-a11y][data-a11y-font="serif"] button:not(.a11y-btn):not(.a11y-close):not(.a11y-reset),
html[data-a11y][data-a11y-font="serif"] a:not(.a11y-trigger):not(.a11y-feedback-link):not(.a11y-trigger *),
html[data-a11y][data-a11y-font="serif"] input,
html[data-a11y][data-a11y-font="serif"] textarea {
    font-family: 'Times New Roman', Georgia, serif !important;
}
html[data-a11y][data-a11y-font="readable"] body,
html[data-a11y][data-a11y-font="readable"] p,
html[data-a11y][data-a11y-font="readable"] li,
html[data-a11y][data-a11y-font="readable"] h1,
html[data-a11y][data-a11y-font="readable"] h2,
html[data-a11y][data-a11y-font="readable"] h3,
html[data-a11y][data-a11y-font="readable"] h4,
html[data-a11y][data-a11y-font="readable"] button:not(.a11y-btn):not(.a11y-close):not(.a11y-reset),
html[data-a11y][data-a11y-font="readable"] a:not(.a11y-trigger):not(.a11y-feedback-link):not(.a11y-trigger *),
html[data-a11y][data-a11y-font="readable"] input,
html[data-a11y][data-a11y-font="readable"] textarea {
    font-family: Arial, Verdana, sans-serif !important;
}

/* --- Изображения скрыты, на их месте alt-тексты --- */
html[data-a11y][data-a11y-images="off"] img:not(.a11y-panel img):not(.a11y-trigger img),
html[data-a11y][data-a11y-images="off"] picture,
html[data-a11y][data-a11y-images="off"] video,
html[data-a11y][data-a11y-images="off"] iframe:not(#booking-iframe) {
    display: none !important;
}
/* SVG внутри триггера и панели помечены .a11y-icon — их не трогаем.
   Остальные SVG-иллюстрации тоже скрываются, но оставляем иконки кнопок
   (по классам .icon / .btn svg) — они несут функциональную нагрузку. */
html[data-a11y][data-a11y-images="off"] svg:not(.a11y-icon):not(.btn svg):not(.footer-link svg):not(.nav-link svg):not(.logo svg):not(#booking-modal svg) {
    display: none !important;
}
/* Показываем alt-текст вместо img */
html[data-a11y][data-a11y-images="off"] img[alt]:not([alt=""]) {
    display: inline-block !important;
    visibility: visible;
    content: attr(alt);
    background: transparent;
    border: 1px dashed currentColor;
    padding: 6px 10px;
    font-size: 0.9em;
    font-style: italic;
    min-width: 40px;
    min-height: 1.4em;
    line-height: 1.4;
}

/* =====================================================
 * АРХИТЕКТУРА ТЕМ
 *
 * Для каждой темы три уровня правил:
 *
 * 1) Общий сброс фонов/теней на ВСЕХ элементах кроме виджета и модалки
 *    Renovatio (#booking-modal). НЕ трогает color — это важно, потому
 *    что `a` и `button` получают свои цвета отдельно с equal specificity,
 *    и конкуренция между `*:not` и `a:not` правилами приводила к тому,
 *    что `*:not` выигрывал по числу `:not()` классов.
 *
 * 2) Правило color для «текстовых» элементов (body, h1–h6, p, li, div,
 *    span, dt, dd, td, th, strong, em, small, label). Ссылки (`a`) и
 *    формы (`button`, `input`, `textarea`, `select`) сюда НЕ входят.
 *
 * 3) Отдельные правила для ссылок и форм с собственными цветами темы.
 *    Без конфликта с правилом (2).
 *
 * Ключевой трюк: каждое правило начинается с `html[data-a11y]` чтобы
 * получить +1 attribute specificity, перекрывая правила из style.css
 * которые обычно начинаются с одиночного класса.
 * ===================================================== */

/* ---------- Общий макрос исключений ---------- */
/* Мы не можем использовать CSS @apply, но дублируем цепочку :not()
   исключений виджета и Renovatio в каждом селекторе. */

/* =====================================================
 * ТЕМА: белое на чёрном (white-on-black)
 * Приоритетный стандарт ГОСТ для слабовидящих
 * ===================================================== */

/* База: фон, цвет и переопределение CSS-переменных темы сайта.
   Это важно: многие inline-стили используют `var(--primary)` и т.п.,
   и если переменные не переопределить — элементы останутся зелёными. */
html[data-a11y][data-a11y-theme="white-on-black"],
html[data-a11y][data-a11y-theme="white-on-black"] body {
    background: #000 !important;
    color: #fff !important;
    --primary: #ffe000 !important;
    --primary-dark: #ccb400 !important;
    --primary-hover: #66ff66 !important;
    --primary-light: #222 !important;
    --text: #fff !important;
    --text-secondary: #e5e5e5 !important;
    --border: #fff !important;
    --bg: #000 !important;
    --section-bg: #111 !important;
    --danger: #ff6b6b !important;
    --danger-bg: #2a0000 !important;
    --success: #66ff66 !important;
    --success-bg: #002a00 !important;
}

/* Уровень 1: сброс фонов и теней на ВСЕХ потомках body кроме виджета/Renovatio.
   НЕ включает color (!). */
html[data-a11y][data-a11y-theme="white-on-black"] body *:not(a):not(button):not(input):not(textarea):not(select):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    background-color: transparent !important;
    background-image: none !important;
    border-color: #fff !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

/* Уровень 2: текст на текстовых элементах — чистый белый.
   `a`, `button`, `input`, `textarea`, `select` НЕ входят сюда. */
html[data-a11y][data-a11y-theme="white-on-black"] body :is(p, span, div, h1, h2, h3, h4, h5, h6, li, dt, dd, td, th, strong, em, small, label, blockquote, figcaption, caption, article, section, main, aside, header, footer, nav, ul, ol, dl):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    color: #fff !important;
}

/* Уровень 3a: ссылки — ярко-жёлтый */
html[data-a11y][data-a11y-theme="white-on-black"] body a:not(.a11y-trigger):not(.a11y-feedback-link):not(.a11y-trigger *):not(#booking-modal a):not(#booking-modal a *) {
    color: #ffe000 !important;
    background-color: transparent !important;
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 2px !important;
}
html[data-a11y][data-a11y-theme="white-on-black"] body a:not(.a11y-trigger):not(.a11y-feedback-link):hover,
html[data-a11y][data-a11y-theme="white-on-black"] body a:not(.a11y-trigger):not(.a11y-feedback-link):focus {
    color: #66ff66 !important;
    outline: 2px solid #ffe000 !important;
    outline-offset: 2px;
}

/* Уровень 3b: кнопки и формы */
html[data-a11y][data-a11y-theme="white-on-black"] body button:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal button),
html[data-a11y][data-a11y-theme="white-on-black"] body input:not(#booking-modal input),
html[data-a11y][data-a11y-theme="white-on-black"] body textarea:not(#booking-modal textarea),
html[data-a11y][data-a11y-theme="white-on-black"] body select:not(#booking-modal select) {
    background: #000 !important;
    color: #fff !important;
    border: 2px solid #fff !important;
}
/* Primary-кнопка «Записаться» — жёлтый акцент.
   Specificity должна быть выше чем у общего button:not правила. */
html[data-a11y][data-a11y-theme="white-on-black"] body button.btn-primary:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal *),
html[data-a11y][data-a11y-theme="white-on-black"] body a.btn-primary:not(#booking-modal *),
html[data-a11y][data-a11y-theme="white-on-black"] body .btn.btn-primary:not(#booking-modal *) {
    background: #ffe000 !important;
    background-color: #ffe000 !important;
    color: #000 !important;
    border: 2px solid #ffe000 !important;
    font-weight: 700 !important;
}
html[data-a11y][data-a11y-theme="white-on-black"] body button.btn-primary:hover:not(#booking-modal *),
html[data-a11y][data-a11y-theme="white-on-black"] body .btn.btn-primary:hover:not(#booking-modal *) {
    background: #66ff66 !important;
    background-color: #66ff66 !important;
    color: #000 !important;
    border-color: #66ff66 !important;
}
html[data-a11y][data-a11y-theme="white-on-black"] body ::placeholder { color: #ccc !important; opacity: 1; }

/* Hero-секции и градиенты → плоский чёрный */
html[data-a11y][data-a11y-theme="white-on-black"] body [style*="linear-gradient"]:not(#booking-modal *):not(.a11y-panel *) {
    background-image: none !important;
    background: #000 !important;
}

/* =====================================================
 * ТЕМА: чёрное на белом (black-on-white)
 * Без цветов — чистый контраст, подходит при светобоязни
 * ===================================================== */

html[data-a11y][data-a11y-theme="black-on-white"],
html[data-a11y][data-a11y-theme="black-on-white"] body {
    background: #fff !important;
    color: #000 !important;
    --primary: #0033a0 !important;
    --primary-dark: #001f66 !important;
    --primary-hover: #6a1b9a !important;
    --primary-light: #f0f0ff !important;
    --text: #000 !important;
    --text-secondary: #222 !important;
    --border: #000 !important;
    --bg: #fff !important;
    --section-bg: #f5f5f5 !important;
    --danger: #a00 !important;
    --danger-bg: #fdf0f0 !important;
    --success: #006400 !important;
    --success-bg: #f0faf0 !important;
}

html[data-a11y][data-a11y-theme="black-on-white"] body *:not(a):not(button):not(input):not(textarea):not(select):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    background-color: transparent !important;
    background-image: none !important;
    border-color: #000 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

html[data-a11y][data-a11y-theme="black-on-white"] body :is(p, span, div, h1, h2, h3, h4, h5, h6, li, dt, dd, td, th, strong, em, small, label, blockquote, figcaption, caption, article, section, main, aside, header, footer, nav, ul, ol, dl):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    color: #000 !important;
}

html[data-a11y][data-a11y-theme="black-on-white"] body a:not(.a11y-trigger):not(.a11y-feedback-link):not(.a11y-trigger *):not(#booking-modal a):not(#booking-modal a *) {
    color: #0033a0 !important;
    background-color: transparent !important;
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 2px !important;
    font-weight: 600 !important;
}
html[data-a11y][data-a11y-theme="black-on-white"] body a:not(.a11y-trigger):not(.a11y-feedback-link):hover,
html[data-a11y][data-a11y-theme="black-on-white"] body a:not(.a11y-trigger):not(.a11y-feedback-link):focus {
    color: #6a1b9a !important;
    outline: 2px solid #0033a0 !important;
    outline-offset: 2px;
}

html[data-a11y][data-a11y-theme="black-on-white"] body button:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal button),
html[data-a11y][data-a11y-theme="black-on-white"] body input:not(#booking-modal input),
html[data-a11y][data-a11y-theme="black-on-white"] body textarea:not(#booking-modal textarea),
html[data-a11y][data-a11y-theme="black-on-white"] body select:not(#booking-modal select) {
    background: #fff !important;
    color: #000 !important;
    border: 2px solid #000 !important;
}
html[data-a11y][data-a11y-theme="black-on-white"] body button.btn-primary:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal *),
html[data-a11y][data-a11y-theme="black-on-white"] body a.btn-primary:not(#booking-modal *),
html[data-a11y][data-a11y-theme="black-on-white"] body .btn.btn-primary:not(#booking-modal *) {
    background: #000 !important;
    background-color: #000 !important;
    color: #fff !important;
    border: 2px solid #000 !important;
    font-weight: 700 !important;
}
html[data-a11y][data-a11y-theme="black-on-white"] body button.btn-primary:hover:not(#booking-modal *),
html[data-a11y][data-a11y-theme="black-on-white"] body .btn.btn-primary:hover:not(#booking-modal *) {
    background: #333 !important;
    background-color: #333 !important;
    color: #fff !important;
}
html[data-a11y][data-a11y-theme="black-on-white"] body ::placeholder { color: #555 !important; opacity: 1; }

html[data-a11y][data-a11y-theme="black-on-white"] body [style*="linear-gradient"]:not(#booking-modal *):not(.a11y-panel *) {
    background-image: none !important;
    background: #fff !important;
}

/* =====================================================
 * ТЕМА: бежевая (beige)
 * Для дислексии, астигматизма, светочувствительности
 * ===================================================== */

html[data-a11y][data-a11y-theme="beige"],
html[data-a11y][data-a11y-theme="beige"] body {
    background: #f5f5dc !important;
    color: #1a1a1a !important;
    --primary: #5c2d00 !important;
    --primary-dark: #3d1e00 !important;
    --primary-hover: #8b4513 !important;
    --primary-light: #ecead0 !important;
    --text: #1a1a1a !important;
    --text-secondary: #4a3420 !important;
    --border: #8b7355 !important;
    --bg: #f5f5dc !important;
    --section-bg: #ecead0 !important;
    --danger: #8b0000 !important;
    --danger-bg: #f5e6d3 !important;
    --success: #2d5016 !important;
    --success-bg: #e8f0db !important;
}

html[data-a11y][data-a11y-theme="beige"] body *:not(a):not(button):not(input):not(textarea):not(select):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    background-color: transparent !important;
    background-image: none !important;
    border-color: #8b7355 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}

html[data-a11y][data-a11y-theme="beige"] body :is(p, span, div, h1, h2, h3, h4, h5, h6, li, dt, dd, td, th, strong, em, small, label, blockquote, figcaption, caption, article, section, main, aside, header, footer, nav, ul, ol, dl):not(.a11y-panel):not(.a11y-panel *):not(.a11y-trigger):not(.a11y-trigger *):not(#booking-modal):not(#booking-modal *) {
    color: #1a1a1a !important;
}

html[data-a11y][data-a11y-theme="beige"] body a:not(.a11y-trigger):not(.a11y-feedback-link):not(.a11y-trigger *):not(#booking-modal a):not(#booking-modal a *) {
    color: #5c2d00 !important;
    background-color: transparent !important;
    text-decoration: underline !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 2px !important;
    font-weight: 600 !important;
}

html[data-a11y][data-a11y-theme="beige"] body button:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal button),
html[data-a11y][data-a11y-theme="beige"] body input:not(#booking-modal input),
html[data-a11y][data-a11y-theme="beige"] body textarea:not(#booking-modal textarea) {
    background: #f5f5dc !important;
    color: #1a1a1a !important;
    border: 2px solid #8b7355 !important;
}
html[data-a11y][data-a11y-theme="beige"] body button.btn-primary:not(.a11y-btn):not(.a11y-close):not(.a11y-reset):not(#booking-modal *),
html[data-a11y][data-a11y-theme="beige"] body a.btn-primary:not(#booking-modal *),
html[data-a11y][data-a11y-theme="beige"] body .btn.btn-primary:not(#booking-modal *) {
    background: #5c2d00 !important;
    background-color: #5c2d00 !important;
    color: #f5f5dc !important;
    border: 2px solid #5c2d00 !important;
    font-weight: 700 !important;
}

html[data-a11y][data-a11y-theme="beige"] body [style*="linear-gradient"]:not(#booking-modal *):not(.a11y-panel *) {
    background-image: none !important;
    background: #ecead0 !important;
}

/* =====================================================
 * Панель виджета в цветных темах — остаётся на своём фоне
 * ===================================================== */

html[data-a11y][data-a11y-theme="white-on-black"] .a11y-trigger,
html[data-a11y][data-a11y-theme="beige"] .a11y-trigger,
html[data-a11y][data-a11y-theme="black-on-white"] .a11y-trigger {
    background: #44692b !important;
    color: #fff !important;
    border-color: #fbbf24 !important;
}

html[data-a11y] .a11y-panel,
html[data-a11y] .a11y-panel * {
    /* Панель и кнопки виджета должны сохранять свои стили из базового блока выше.
       Темы не перекрашивают панель — она всегда светлая с контрастными кнопками. */
}
