/* ============================================================
   ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ

   Прежняя версия перекрашивала элементы поимённо, и стоило
   появиться новому блоку — он выпадал из правил: белый текст
   оставался на белом фоне. Теперь подход обратный: в режиме
   БВИ со ВСЕХ элементов снимаются собственные цвета, а цвет
   задаётся один раз на уровне страницы. Новый блок физически
   не может оказаться нечитаемым.

   Схемы: чёрным по белому, белым по чёрному, синим по голубому.
   ============================================================ */

.a11y-panel{
  position:sticky;top:0;z-index:60;
  background:var(--surface);border-bottom:2px solid var(--blue);
  padding:10px 0;
}
.a11y-panel__inner{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px}
.a11y-group{display:flex;align-items:center;gap:8px}
.a11y-group__label{font-size:13px;color:var(--text-muted);font-weight:600}
.a11y-btn{
  min-width:38px;height:38px;padding:0 12px;cursor:pointer;
  border:1px solid var(--border);border-radius:var(--radius-sm);
  background:var(--surface-2);color:var(--text);font-size:15px;font-weight:600;
}
.a11y-btn.is-active{background:var(--blue);color:#fff;border-color:var(--blue)}
.a11y-btn--scheme-white{background:#fff;color:#000}
.a11y-btn--scheme-black{background:#000;color:#fff}
.a11y-btn--scheme-blue{background:#9dd1ff;color:#063462}
.a11y-panel__exit{margin-left:auto}

/* ============================================================
   1. ОБЩЕЕ ДЛЯ ВСЕХ СХЕМ
   ============================================================ */

/* Снимаем все собственные цвета, фоны, тени и скругления.
   Исключения — сами изображения и проигрыватели: их содержимое
   перекрашивать нельзя. */
html[data-bvi="on"] body *:not(img):not(video):not(svg):not(svg *){
  background-image:none !important;
  background-color:transparent !important;
  color:inherit !important;
  box-shadow:none !important;
  text-shadow:none !important;
  border-radius:0 !important;
  transition:none !important;
  animation:none !important;
  filter:none !important;
  opacity:1 !important;
}

/* Псевдоэлементы ::before/::after не подпадают под звёздочку
   выше — это не настоящие узлы DOM, а отдельные боксы со своим
   набором правил. Декоративные узоры и блики в шапке (точечный
   фон, свечение у герба) рисуются именно через них, поэтому
   гасим их отдельно — иначе поверх принудительно белого или
   чёрного фона останутся плохо читаемые разводы. */
html[data-bvi="on"] body *::before,
html[data-bvi="on"] body *::after{
  background-image:none !important;
  background-color:transparent !important;
  box-shadow:none !important;
  content:none !important;
}

/* Границы окрашиваются текущим цветом текста: рамка остаётся
   видимой в любой схеме */
html[data-bvi="on"] body *:not(img):not(video){
  border-color:currentColor !important;
}

html[data-bvi="on"] body{
  line-height:1.8 !important;
  letter-spacing:var(--bvi-spacing, normal);
}

/* Декоративное убираем: оно только мешает читать */
html[data-bvi="on"] .slider,
html[data-bvi="on"] .emblem,
html[data-bvi="on"] .header-chief__photo,
html[data-bvi="on"] .quick-link__icon,
html[data-bvi="on"] .tile__icon,
html[data-bvi="on"] .section-hero__icon,
html[data-bvi="on"] .sk,
html[data-bvi="on"] .to-top{
  display:none !important;
}

/* Ссылки подчёркнуты — их видно без опоры на цвет */
html[data-bvi="on"] a{
  text-decoration:underline !important;
  text-underline-offset:2px;
}

/* Кнопки: контурные, с текущим цветом текста */
html[data-bvi="on"] .btn,
html[data-bvi="on"] .chip,
html[data-bvi="on"] .badge,
html[data-bvi="on"] button:not(.a11y-btn){
  border:2px solid currentColor !important;
  font-weight:600 !important;
}

html[data-bvi="on"] .btn:hover,
html[data-bvi="on"] .chip:hover,
html[data-bvi="on"] button:not(.a11y-btn):hover{
  text-decoration:underline !important;
}

/* Активное состояние обозначаем начертанием, а не заливкой */
html[data-bvi="on"] .chip.is-active,
html[data-bvi="on"] .nav__item.is-active > .nav__link,
html[data-bvi="on"] .side-menu a.is-active{
  text-decoration:underline !important;
  font-weight:700 !important;
  border-width:3px !important;
}

/* Разделители между блоками, иначе страница сливается в полотно */
html[data-bvi="on"] .panel,
html[data-bvi="on"] .news-card,
html[data-bvi="on"] .doc,
html[data-bvi="on"] .contact-card,
html[data-bvi="on"] .tile,
html[data-bvi="on"] .attach__doc,
html[data-bvi="on"] .ann{
  border:1px solid currentColor !important;
  padding:14px !important;
  margin-bottom:14px !important;
}

html[data-bvi="on"] .site-header,
html[data-bvi="on"] .mchs-line,
html[data-bvi="on"] .site-footer{
  border-top:2px solid currentColor !important;
  border-bottom:2px solid currentColor !important;
}
html[data-bvi="on"] .mchs-line{height:0 !important;border-bottom:0 !important}

/* Меню при прокрутке не прилипает: панель настроек уже занимает
   верх экрана, вдвоём они перекрывают содержимое */
html[data-bvi="on"] .nav.is-stuck{position:static !important}
html[data-bvi="on"] .nav-spacer{display:none !important}

/* Подписи поверх изображений в режиме БВИ не читаются */
html[data-bvi="on"] .attach__photo span,
html[data-bvi="on"] .slide__caption{
  position:static !important;
  padding:8px 0 !important;
}

/* ============================================================
   2. СХЕМЫ
   Цвет задаётся один раз на корне — всё остальное наследуется.
   ============================================================ */

html[data-bvi="on"][data-bvi-scheme="white"] body{
  background:#fff !important;
  color:#000 !important;
}

html[data-bvi="on"][data-bvi-scheme="black"] body{
  background:#000 !important;
  color:#fff !important;
}

html[data-bvi="on"][data-bvi-scheme="blue"] body{
  background:#9dd1ff !important;
  color:#063462 !important;
}

/* Панель настроек всегда в цветах выбранной схемы */
html[data-bvi="on"][data-bvi-scheme="white"] .a11y-panel{background:#fff !important;color:#000 !important}
html[data-bvi="on"][data-bvi-scheme="black"] .a11y-panel{background:#000 !important;color:#fff !important}
html[data-bvi="on"][data-bvi-scheme="blue"]  .a11y-panel{background:#9dd1ff !important;color:#063462 !important}

html[data-bvi="on"] .a11y-panel{border-bottom:3px solid currentColor !important}

/* Кнопки выбора схемы остаются цветными — иначе не понять,
   что именно выбираешь */
html[data-bvi="on"] .a11y-btn--scheme-white{background:#fff !important;color:#000 !important}
html[data-bvi="on"] .a11y-btn--scheme-black{background:#000 !important;color:#fff !important}
html[data-bvi="on"] .a11y-btn--scheme-blue{background:#9dd1ff !important;color:#063462 !important}
html[data-bvi="on"] .a11y-btn{border:2px solid currentColor !important}
html[data-bvi="on"] .a11y-btn.is-active{border-width:4px !important;font-weight:700 !important}

/* Поля ввода: рамка и цвет текста от схемы */
html[data-bvi="on"] input,
html[data-bvi="on"] select,
html[data-bvi="on"] textarea{
  border:2px solid currentColor !important;
  color:inherit !important;
  background:transparent !important;
}
html[data-bvi="on"] input::placeholder{color:inherit !important;opacity:.7 !important}

/* Выделение текста должно оставаться заметным */
html[data-bvi="on"] ::selection{background:#ffd54f !important;color:#000 !important}

/* ============================================================
   3. РАЗМЕР ШРИФТА
   ============================================================ */
html[data-bvi-size="1"]{font-size:100%}
html[data-bvi-size="2"]{font-size:120%}
html[data-bvi-size="3"]{font-size:140%}
html[data-bvi-size="4"]{font-size:170%}

/* Заголовки не должны сливаться с текстом при крупном кегле */
html[data-bvi="on"] h1{font-size:1.8em !important}
html[data-bvi="on"] h2{font-size:1.5em !important}
html[data-bvi="on"] h3{font-size:1.25em !important}
html[data-bvi="on"] h1,html[data-bvi="on"] h2,html[data-bvi="on"] h3{
  font-weight:700 !important;
  margin-top:1em !important;
}

/* ============================================================
   4. ОТКЛЮЧЕНИЕ ИЗОБРАЖЕНИЙ
   ============================================================ */
html[data-bvi-images="off"] img,
html[data-bvi-images="off"] video,
html[data-bvi-images="off"] .img-box,
html[data-bvi-images="off"] .news-card__thumb,
html[data-bvi-images="off"] .hero-slider,
html[data-bvi-images="off"] .attach__photos,
html[data-bvi-images="off"] .attach__videos,
html[data-bvi-images="off"] .gallery,
html[data-bvi-images="off"] .header-brand__logo{
  display:none !important;
}

/* Вместо картинки — её описание: смысл не теряется */
html[data-bvi-images="off"] figure::after{
  content:attr(data-alt);
  display:block;
  border:1px dashed currentColor;
  padding:10px;
  font-style:italic;
}
