/* ===== Версия для слабовидящих =====
   Включена — html.visually-impaired; настройки — атрибуты data-vi-color / -img / -ls / -lh на <html>
   (размер шрифта выставляет site.js: стили сайта заданы в пикселях). Панель — partials/vision-panel. */

.vi-panel { display: none; }
html.visually-impaired .vi-panel { display: block; border-bottom: 2px solid; }
.vi-panel-in { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 28px; padding-top: 14px; padding-bottom: 14px; }
.vi-group { display: flex; flex-direction: column; gap: 6px; }
.vi-label { font: 700 15px/1.2 Arial, sans-serif; }
.vi-opts { display: flex; gap: 6px; }
.vi-btn { min-width: 48px; min-height: 48px; padding: 0 12px; border: 2px solid; border-radius: 8px; font: 700 17px/1 Arial, sans-serif; cursor: pointer; }
.vi-btn[aria-pressed="true"] { outline: 3px solid; outline-offset: 2px; text-decoration: underline; }
.vi-size-1 { font-size: 16px; } .vi-size-2 { font-size: 21px; } .vi-size-3 { font-size: 27px; }
.vi-exit { margin-left: auto; padding: 0 20px; }
@media (max-width: 767px) {
  .vi-panel-in { gap: 12px 16px; }
  .vi-group { flex: 1 1 100%; }
  .vi-exit { margin-left: 0; width: 100%; }
}

/* Цветовые схемы: все элементы в двух цветах схемы (кроме образцов на кнопках выбора схемы) */
html.visually-impaired body,
html.visually-impaired body *:not(svg *):not(.vi-color):not(img):not(video):not(iframe) {
  background-color: var(--vi-bg) !important; color: var(--vi-fg) !important; border-color: var(--vi-fg) !important;
  background-image: none !important; box-shadow: none !important; text-shadow: none !important;
}
html.visually-impaired { --vi-bg: #fff; --vi-fg: #000; }
html.visually-impaired[data-vi-color="wb"] { --vi-bg: #000; --vi-fg: #fff; }
html.visually-impaired[data-vi-color="blue"] { --vi-bg: #9DD1FF; --vi-fg: #063462; }
html.visually-impaired[data-vi-color="brown"] { --vi-bg: #F7F3D6; --vi-fg: #4D4B43; }
.vi-color-bw { background: #fff !important; color: #000 !important; border-color: #000 !important; }
.vi-color-wb { background: #000 !important; color: #fff !important; border-color: #000 !important; }
.vi-color-blue { background: #9DD1FF !important; color: #063462 !important; border-color: #063462 !important; }
.vi-color-brown { background: #F7F3D6 !important; color: #4D4B43 !important; border-color: #4D4B43 !important; }
html.visually-impaired .vi-btn[aria-pressed="true"]:not(.vi-color) { background-color: var(--vi-fg) !important; color: var(--vi-bg) !important; }
html.visually-impaired .vi-color[aria-pressed="true"] { outline-color: var(--vi-fg); }
/* декоративная графика, нарисованная фиксированными цветами, — в цвет схемы */
html.visually-impaired svg [stroke]:not([stroke="none"]) { stroke: currentColor !important; }
html.visually-impaired svg [fill]:not([fill="none"]) { fill: currentColor !important; }
html.visually-impaired svg [fill-opacity] { fill-opacity: .15 !important; }

/* Изображения */
html.visually-impaired[data-vi-img="gray"] :is(img, video, iframe) { filter: grayscale(1) !important; }
html.visually-impaired[data-vi-img="off"] :is(img, video, picture) { display: none !important; }

/* Интервалы */
html.visually-impaired[data-vi-ls="1"] body * { letter-spacing: .06em !important; }
html.visually-impaired[data-vi-ls="2"] body * { letter-spacing: .14em !important; }
html.visually-impaired[data-vi-lh="1"] body * { line-height: 1.75 !important; }
html.visually-impaired[data-vi-lh="2"] body * { line-height: 2.1 !important; }

/* Общее: ссылки подчёркнуты, фокус заметен, без анимаций, длинные слова переносятся */
html.visually-impaired body, html.visually-impaired body * { overflow-wrap: anywhere !important; }
html.visually-impaired main a:not(.pill):not(.chip):not(.arrow) { text-decoration: underline !important; text-underline-offset: 3px; }
html.visually-impaired :focus-visible { outline: 3px solid var(--vi-fg) !important; outline-offset: 3px; }
html.visually-impaired *, html.visually-impaired *::before, html.visually-impaired *::after { animation: none !important; transition: none !important; }
html.visually-impaired :is(.hero-page-radar, .ls-hero-radar) { display: none !important; }
html.visually-impaired .cookie-notice { border: 2px solid; }
/* крупный шрифт и широкие интервалы не должны распирать колонки и сетки шире экрана */
html.visually-impaired body :is(div, span, a, button, p, li, label) { min-width: 0; }
html.visually-impaired :is(.cal-grid, .ev-cal-grid) { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }
html.visually-impaired :is(.cal-grid, .ev-cal-grid) * { letter-spacing: 0 !important; }
html.visually-impaired .cal-month { white-space: normal !important; }
@media (max-width: 767px) { html.visually-impaired .cal { padding: 16px !important; } }
/* шапка: пункты меню и круглые кнопки подстраиваются под крупный текст */
html.visually-impaired .nav { flex-wrap: wrap; row-gap: 4px; }
html.visually-impaired .nav .ni { flex: 0 1 auto; }
html.visually-impaired .nav .ni > a { white-space: normal; }
html.visually-impaired :is(.ib, .iconbtn) { width: auto !important; flex-basis: auto !important; min-width: 44px; padding: 0 10px; white-space: nowrap; border-radius: 999px; }
