/* Версия для слабовидящих + оформление, близкое к принципам «ясного языка»:
   крупный шрифт, межстрочность, повышенный контраст, явные ссылки, без декоративных фонов.
   Включается классом html.is-a11y-vis (скрипт a11y-mode.js). */

html.is-a11y-vis {
  font-size: 112.5%;
}

html.is-a11y-vis body {
  font-family: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
  line-height: 1.75 !important;
  letter-spacing: 0.025em;
  word-spacing: 0.05em;
  background-color: #fff !important;
  background-image: none !important;
  background-attachment: scroll !important;
  color: #121212 !important;
}

html.is-a11y-vis body::before {
  content: "Упрощённая версия: крупный текст и повышенный контраст. Переключатель — иконка «глаз» справа вверху.";
  display: block;
  background: #000;
  color: #ffeb3b;
  text-align: center;
  padding: 0.55rem 0.75rem;
  font-size: 0.95rem;
  line-height: 1.45;
  font-weight: 600;
  border-bottom: 2px solid #ffeb3b;
}

/* Фокус — всегда заметный */
html.is-a11y-vis :focus {
  outline: 3px solid #000 !important;
  outline-offset: 2px !important;
}

html.is-a11y-vis :focus:not(:focus-visible) {
  outline: none !important;
}

html.is-a11y-vis :focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 3px !important;
}

/* Ссылки — явное подчёркивание (кроме служебных кнопок навигации в teal-полосе — ниже) */
html.is-a11y-vis a {
  text-decoration: underline !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 0.18em;
  color: #0000c0 !important;
}

html.is-a11y-vis a:visited {
  color: #551a8b !important;
}

html.is-a11y-vis a:hover {
  background-color: #ffff99 !important;
  color: #000 !important;
}

/* Верхняя полоса */
html.is-a11y-vis .top-bar {
  background: #e8e8e8 !important;
  border-bottom: 2px solid #000;
  font-size: 1rem;
}

html.is-a11y-vis .top-bar::after {
  display: none !important;
}

/* На всю ширину окна — контент не сжимается в «колонку 1200px», телефоны и ссылки чаще помещаются в одну строку */
html.is-a11y-vis .top-bar__inner {
  max-width: none !important;
  width: 100%;
  box-sizing: border-box;
  gap: 0.45rem 0.85rem;
}

html.is-a11y-vis .top-bar__main {
  overflow: visible;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  min-width: 0;
}

html.is-a11y-vis .top-bar__phones-rail {
  flex: 1 1 0;
  min-width: 0;
  overflow: visible;
  padding-right: 0.25rem;
}

html.is-a11y-vis .top-bar__phones {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.3rem 0.5rem;
  word-break: normal;
  overflow-wrap: normal;
}

html.is-a11y-vis .top-bar__phones strong,
html.is-a11y-vis .top-bar__phones span {
  white-space: nowrap;
}

html.is-a11y-vis .top-bar__phones strong {
  color: #000 !important;
}

html.is-a11y-vis .top-bar__phones-icon {
  color: #000 !important;
  opacity: 1 !important;
  flex-shrink: 0;
}

html.is-a11y-vis .top-bar__extras {
  flex: 0 0 auto;
  flex-wrap: nowrap;
  min-width: min-content;
  word-break: normal;
  overflow-wrap: normal;
}

html.is-a11y-vis .top-bar__link {
  color: #0000c0 !important;
  white-space: nowrap;
}

html.is-a11y-vis .has-dropdown > button {
  color: #000 !important;
  text-decoration: underline;
  white-space: nowrap;
}

html.is-a11y-vis .lang-switch--top {
  white-space: nowrap;
  flex-shrink: 0;
}

html.is-a11y-vis .lang-switch--top a {
  color: #000 !important;
}

html.is-a11y-vis .lang-switch--top .sep {
  color: #000 !important;
  font-weight: 700;
}

/* Узкое окно: иначе при nowrap обрезается край */
@media (max-width: 540px) {
  html.is-a11y-vis .top-bar__phones {
    flex-wrap: wrap;
    row-gap: 0.2rem;
  }
}

html.is-a11y-vis .a11y-link--top {
  border: 2px solid #000 !important;
  color: #000 !important;
  background: #ffeb3b !important;
}

html.is-a11y-vis .a11y-link--top:hover {
  background: #fff !important;
}

/* Шапка */
html.is-a11y-vis .site-header {
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: 2px solid #000;
  box-shadow: none !important;
}

html.is-a11y-vis .logo {
  color: #000 !important;
}

html.is-a11y-vis .logo__subtitle {
  color: #333 !important;
}

/* Главное меню — высокий контраст без градиентов */
html.is-a11y-vis .nav-wrap {
  animation: none !important;
  background: #1a1a1a !important;
  background-size: auto !important;
  box-shadow: none !important;
  border-bottom: 3px solid #000;
}

html.is-a11y-vis .main-nav > ul > li > a {
  color: #fff !important;
  border-bottom: 3px solid transparent !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  text-decoration: none !important;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

html.is-a11y-vis .main-nav > ul > li > a:hover,
html.is-a11y-vis .main-nav > ul > li > a:focus-visible {
  background: #fff !important;
  color: #000 !important;
  text-decoration: underline !important;
}

html.is-a11y-vis .main-nav > ul > li > a[aria-current="page"] {
  background: #ffeb3b !important;
  color: #000 !important;
  border-bottom-color: #000 !important;
}

html.is-a11y-vis .menu-toggle {
  border: 2px solid #fff !important;
}

html.is-a11y-vis .main-nav .submenu {
  background: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.is-a11y-vis .main-nav .submenu a {
  color: #0000c0 !important;
  text-decoration: underline !important;
  white-space: nowrap;
}

/* Десктоп: одна строка; компактные отступы и сброс отрицательного margin — иначе «Контакты» уезжают вниз */
@media (min-width: 1025px) {
  html.is-a11y-vis .nav-wrap__inner {
    flex-wrap: nowrap;
    align-items: stretch;
  }

  html.is-a11y-vis .nav-wrap__inner > .main-nav {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    min-width: max-content !important;
    margin-left: 0 !important;
    overflow: visible !important;
  }

  html.is-a11y-vis .main-nav > ul {
    flex-wrap: nowrap !important;
  }

  html.is-a11y-vis .main-nav > ul > li > a {
    padding-left: 0.45rem !important;
    padding-right: 0.45rem !important;
    font-size: 0.92rem !important;
  }

  html.is-a11y-vis .nav-wrap__inner > .nav-extras {
    flex-shrink: 0;
  }
}

/* Узкая полоса: поиск + бургер могут переноситься, но подписи без разрыва по буквам */
@media (max-width: 1024px) {
  html.is-a11y-vis .nav-wrap__inner {
    flex-wrap: wrap;
  }

  html.is-a11y-vis .main-nav > ul > li > a {
    white-space: nowrap;
  }
}

/* Поиск */
html.is-a11y-vis .search-form--nav {
  border: 2px solid #000 !important;
  background: #fff !important;
}

html.is-a11y-vis .search-form--nav button {
  color: #000 !important;
}

/* Контейнер страницы и типографика main */
html.is-a11y-vis .layout-container {
  color: #121212 !important;
}

/* Основной текст — комфортная ширина строки */
html.is-a11y-vis main p,
html.is-a11y-vis main li,
html.is-a11y-vis .lead,
html.is-a11y-vis .page-intro p,
html.is-a11y-vis .staff-bio {
  max-width: 72ch;
}

html.is-a11y-vis .prose blockquote {
  margin: 1rem 0;
  padding: 0.75rem 1rem 0.75rem 1.25rem !important;
  border-left: 4px solid #000 !important;
  background: #f0f0f0 !important;
  color: #121212 !important;
}

html.is-a11y-vis .prose hr,
html.is-a11y-vis main hr {
  height: 0 !important;
  border: none !important;
  border-top: 2px solid #000 !important;
  background: transparent !important;
}

html.is-a11y-vis .data-table .num {
  color: #000 !important;
}

html.is-a11y-vis h1,
html.is-a11y-vis .page-intro h1 {
  font-size: clamp(1.75rem, 4vw, 2.35rem);
  line-height: 1.25;
  font-weight: 800;
  color: #000 !important;
}

html.is-a11y-vis h2 {
  font-size: clamp(1.45rem, 3vw, 1.85rem);
  line-height: 1.3;
  font-weight: 800;
  color: #000 !important;
}

html.is-a11y-vis h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #000 !important;
}

/* Карточки и плитки */
html.is-a11y-vis .content-card,
html.is-a11y-vis .section-card,
html.is-a11y-vis .tile,
html.is-a11y-vis .staff-card,
html.is-a11y-vis .tariff-stack article,
html.is-a11y-vis .tariff-panel,
html.is-a11y-vis .gov-banner {
  border: 2px solid #222 !important;
  box-shadow: none !important;
  background: #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.is-a11y-vis .tile:hover,
html.is-a11y-vis .content-card:hover {
  transform: none !important;
}

html.is-a11y-vis .gov-banner {
  background: #003d7a !important;
  color: #fff !important;
  border-color: #000 !important;
}

html.is-a11y-vis .gov-banner a {
  color: #ffea00 !important;
}

html.is-a11y-vis .gov-banner__text h2,
html.is-a11y-vis .gov-banner__text p {
  color: #fff !important;
}

html.is-a11y-vis .gov-banner__media-img {
  border: 2px solid #ffeb3b !important;
  background: #fff !important;
}

/* Главная: заголовки блоков и плитки */
html.is-a11y-vis .section-card__head {
  color: #000 !important;
}

html.is-a11y-vis .section-card__icon {
  color: #000 !important;
}

html.is-a11y-vis .content-card h3 a {
  color: #0000c0 !important;
}

html.is-a11y-vis .content-card p,
html.is-a11y-vis .content-card__meta {
  color: #121212 !important;
}

html.is-a11y-vis .home-heading {
  color: #000 !important;
}

html.is-a11y-vis .home-heading::after {
  background: #000 !important;
}

html.is-a11y-vis .tile__media {
  background: #ececec !important;
  border-bottom: 2px solid #000 !important;
}

html.is-a11y-vis .tile__label {
  background: #fff !important;
  color: #000 !important;
}

html.is-a11y-vis .tile__icon {
  color: #000 !important;
}

/* Хлебные крошки */
html.is-a11y-vis .breadcrumbs {
  font-size: 1rem;
}

html.is-a11y-vis .breadcrumbs ol {
  color: #000 !important;
}

html.is-a11y-vis .breadcrumbs a {
  color: #0000c0 !important;
}

html.is-a11y-vis .breadcrumbs [aria-current="page"] {
  color: #000 !important;
  font-weight: 700 !important;
}

html.is-a11y-vis .breadcrumbs li:not(:last-child)::after {
  color: #000 !important;
  opacity: 0.55 !important;
}

/* Таблицы (тарифы и т.д.) */
html.is-a11y-vis table {
  border-collapse: collapse !important;
}

html.is-a11y-vis th,
html.is-a11y-vis td {
  border: 1px solid #000 !important;
  padding: 0.5rem 0.65rem !important;
}

html.is-a11y-vis thead th {
  background: #e0e0e0 !important;
  color: #000 !important;
}

html.is-a11y-vis tbody td {
  background: #fff !important;
  color: #000 !important;
}

html.is-a11y-vis .data-table tbody tr:hover td {
  background: #e8e8e8 !important;
}

html.is-a11y-vis .data-table .tariff-subsection th,
html.is-a11y-vis .data-table .tariff-subsection td {
  background: #d4d4d4 !important;
  color: #000 !important;
}

html.is-a11y-vis .data-table .tariff-note td {
  background: #f5f5f5 !important;
  color: #000 !important;
}

html.is-a11y-vis .table-scroll {
  border: 2px dashed #333 !important;
  background: #fafafa !important;
}

html.is-a11y-vis .table-scroll:focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 2px !important;
}

html.is-a11y-vis .table-caption-muted {
  color: #000 !important;
}

html.is-a11y-vis .history-table-wrap {
  border: 2px solid #333 !important;
  padding: 0.25rem !important;
  background: #fff !important;
}

/* Секция тарифов / панели */
html.is-a11y-vis .tariff-stack {
  gap: 1.5rem;
}

html.is-a11y-vis .tariff-panel {
  background: #fff !important;
  border: 2px solid #222 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.is-a11y-vis .tariff-panel__header {
  background: #e8e8e8 !important;
  border-bottom: 2px solid #000 !important;
}

html.is-a11y-vis .tariff-panel__header h2 {
  color: #000 !important;
}

html.is-a11y-vis .tariff-panel__caption {
  color: #121212 !important;
}

html.is-a11y-vis .tariff-after {
  color: #121212 !important;
}

html.is-a11y-vis .tariff-links ul {
  color: #121212 !important;
}

/* Вводная страницы и типографика материалов */
html.is-a11y-vis .page-intro {
  background: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: none !important;
  overflow: visible !important;
}

html.is-a11y-vis .page-intro::before,
html.is-a11y-vis .page-intro::after {
  display: none !important;
}

html.is-a11y-vis .page-intro h1 {
  color: #000 !important;
  max-width: none !important;
}

html.is-a11y-vis .page-intro .lead {
  color: #121212 !important;
  max-width: none !important;
}

html.is-a11y-vis .prose {
  background: #fff !important;
  border: 2px solid #222 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.is-a11y-vis .prose h2,
html.is-a11y-vis .prose h3 {
  color: #000 !important;
}

html.is-a11y-vis .prose p,
html.is-a11y-vis .prose li {
  color: #121212 !important;
}

html.is-a11y-vis .lead-text {
  color: #121212 !important;
}

html.is-a11y-vis .section-card-link {
  background: #fff !important;
  border: 2px solid #222 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: #0000c0 !important;
}

html.is-a11y-vis .section-card-link span {
  color: #333 !important;
}

html.is-a11y-vis .section-card-link:hover {
  transform: none !important;
  box-shadow: none !important;
  background: #ffffcc !important;
}

/* Инфоблоки и полосы */
html.is-a11y-vis .info-callout,
html.is-a11y-vis .phones-strip {
  background: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: none !important;
}

html.is-a11y-vis .info-callout strong,
html.is-a11y-vis .phones-strip strong {
  color: #121212 !important;
}

html.is-a11y-vis .qr-panel-body {
  background: transparent !important;
}

html.is-a11y-vis .qr-example {
  background: #fff !important;
  border: 2px dashed #000 !important;
}

html.is-a11y-vis .qr-example__mark {
  border-color: #000 !important;
  box-shadow: none !important;
}

html.is-a11y-vis .qr-example__caption {
  color: #000 !important;
}

html.is-a11y-vis .qr-example__hint,
html.is-a11y-vis .qr-security-note {
  color: #121212 !important;
}

html.is-a11y-vis .qr-field-list dt {
  color: #000 !important;
}

html.is-a11y-vis .qr-field-list dd {
  color: #121212 !important;
}

html.is-a11y-vis .methods-list,
html.is-a11y-vis .methods-list > li {
  color: #121212 !important;
}

html.is-a11y-vis .consent-block {
  background: #fff !important;
  border: 2px solid #222 !important;
}

html.is-a11y-vis .consent-block h2,
html.is-a11y-vis .consent-block h3 {
  color: #000 !important;
}

html.is-a11y-vis .consent-block .note-box {
  background: #f5f5f5 !important;
  border: 2px solid #000 !important;
}

html.is-a11y-vis .doc-download-list a {
  background: #fff !important;
  border: 2px solid #222 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html.is-a11y-vis .doc-download-list a:hover {
  transform: none !important;
}

/* Центры, FAQ счётчиков */
html.is-a11y-vis .center-card h2 {
  color: #000 !important;
}

html.is-a11y-vis .center-card .center-meta,
html.is-a11y-vis .center-card .center-phones,
html.is-a11y-vis .center-card .schedule {
  color: #121212 !important;
}

html.is-a11y-vis .meters-faq h2,
html.is-a11y-vis .meters-faq h3 {
  color: #000 !important;
}

html.is-a11y-vis .meters-faq p,
html.is-a11y-vis .meters-faq li {
  color: #121212 !important;
}

/* Администрация и вакансии */
html.is-a11y-vis .staff-card h2 {
  color: #000 !important;
}

html.is-a11y-vis .staff-card .staff-role,
html.is-a11y-vis .staff-card .staff-contact {
  color: #121212 !important;
}

html.is-a11y-vis .vacancy-item {
  border-bottom-color: #000 !important;
}

html.is-a11y-vis .vacancy-item h3 {
  color: #000 !important;
}

html.is-a11y-vis .vacancy-item .vacancy-meta {
  color: #333 !important;
}

/* Формы */
html.is-a11y-vis .field label {
  color: #000 !important;
  font-size: 1rem !important;
}

html.is-a11y-vis .field input,
html.is-a11y-vis .field textarea {
  background: #fff !important;
  border: 2px solid #000 !important;
  color: #000 !important;
}

html.is-a11y-vis .field input:focus-visible,
html.is-a11y-vis .field textarea:focus-visible {
  box-shadow: 0 0 0 3px #ffeb3b !important;
  border-color: #000 !important;
}

html.is-a11y-vis .form-hint {
  color: #333 !important;
  font-size: 0.9rem !important;
}

html.is-a11y-vis .btn-primary {
  background: #000 !important;
  color: #ffeb3b !important;
  border: 3px solid #000 !important;
  box-shadow: none !important;
}

html.is-a11y-vis .btn-primary:hover {
  background: #222 !important;
  color: #ffeb3b !important;
  transform: none !important;
  filter: none !important;
}

html.is-a11y-vis .search-form input {
  color: #000 !important;
}

html.is-a11y-vis .search-form input::placeholder {
  color: #444 !important;
  opacity: 1 !important;
}

/* Верхнее меню «Контакты» */
html.is-a11y-vis .has-dropdown__panel {
  background: #fff !important;
  border: 2px solid #000 !important;
  box-shadow: 0 4px 0 0 #000 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* Поверх соседних ссылок в полосе (СВ) */
html.is-a11y-vis .top-bar .has-dropdown.is-open {
  z-index: 600 !important;
}

html.is-a11y-vis .top-bar .has-dropdown__panel {
  z-index: 610 !important;
}

html.is-a11y-vis .has-dropdown__panel a {
  color: #0000c0 !important;
}

html.is-a11y-vis .has-dropdown__panel a:hover {
  background: #ffff99 !important;
}

/* Пропустить к ссылке */
html.is-a11y-vis .skip-link {
  background: #000 !important;
  color: #ffeb3b !important;
}

html.is-a11y-vis .skip-link:focus {
  outline: 3px solid #ffeb3b !important;
}

/* Подсветка ветки в главном меню */
html.is-a11y-vis .main-nav > ul > li.is-active-branch > a {
  background: #333 !important;
  color: #fff !important;
  border-bottom-color: #ffeb3b !important;
}

html.is-a11y-vis .main-nav > ul > li.is-active-branch > a[aria-current="page"] {
  background: #ffeb3b !important;
  color: #000 !important;
}

/* Код в тексте */
html.is-a11y-vis main code,
html.is-a11y-vis .qr-field-list dt code {
  background: #eee !important;
  color: #000 !important;
  border: 1px solid #000 !important;
  padding: 0.12em 0.35em !important;
}

/* Встраиваемое видео */
html.is-a11y-vis main iframe {
  border: 3px solid #000 !important;
}

/* Футер */
html.is-a11y-vis .site-footer {
  background: #1a1a1a !important;
  color: #fff !important;
  border-top: 3px solid #ffeb3b;
}

html.is-a11y-vis .site-footer a {
  color: #aae5ff !important;
}

html.is-a11y-vis .site-footer__brand strong {
  color: #fff !important;
}

html.is-a11y-vis .site-footer__brand span,
html.is-a11y-vis .site-footer__contacts p {
  color: #fff !important;
  opacity: 1 !important;
}

html.is-a11y-vis .site-footer__copy {
  color: #fff !important;
  opacity: 1 !important;
  border-top-color: #ffeb3b !important;
}

/* Вложенный список QR и обёртки */
html.is-a11y-vis .qr-field-list-wrap {
  background: #fff !important;
  border: 1px solid #333 !important;
  padding: 0.75rem !important;
}

html.is-a11y-vis h4 {
  color: #000 !important;
  font-weight: 700 !important;
}

/* Кнопка «наверх» */
html.is-a11y-vis .back-to-top {
  border: 3px solid #000 !important;
  background: #ffeb3b !important;
  color: #000 !important;
}

/* Иллюстрации — контур */
html.is-a11y-vis .tile__media img,
html.is-a11y-vis img {
  outline: 2px solid #444;
  outline-offset: 2px;
}

/* Отключаем декоративные анимации фона */
@media (prefers-reduced-motion: reduce) {
  html.is-a11y-vis * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
