/* Версия для слабовидящих: Положение № 645, СТБ 2304-2013, WCAG 2.1 AA */

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.a11y-live {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.a11y-open {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 2px 8px;
  border-radius: 8px;
  color: var(--blue-navy);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1.5px;
}

.a11y-open svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
}

.a11y-open:hover,
.a11y-open:focus-visible {
  background: #dbeafe;
  color: #0b3b73;
}

.a11y-open.is-on {
  background: #0b5c96;
  color: #fff;
  text-decoration: none;
}

html:not(.a11y) .a11y-panel,
.a11y-panel[hidden] {
  display: none !important;
}

.a11y-panel {
  position: sticky;
  top: 0;
  z-index: 90;
  background: var(--a11y-bg, #fff);
  color: var(--a11y-fg, #111);
  border-bottom: 3px solid var(--a11y-border, #111);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  font-size: 15px !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  word-spacing: 0 !important;
}

.a11y-panel:focus {
  outline: none;
}

.a11y-panel__inner {
  width: min(100% - 16px, 1600px);
  margin: 0 auto;
  padding: 6px 0;
}

.a11y-panel__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
}

.a11y-panel__tools {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin-left: auto;
}

.a11y-ctrl {
  min-height: 36px;
  padding: 0 10px;
  border: 2px solid var(--a11y-border, #111);
  border-radius: 8px;
  background: var(--a11y-bg, #fff);
  color: var(--a11y-fg, #111);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}

.a11y-ctrl:hover,
.a11y-ctrl:focus-visible {
  outline: 3px solid var(--a11y-fg, #111);
  outline-offset: 2px;
}

.a11y-ctrl--primary {
  background: var(--a11y-inv, #111);
  border-color: var(--a11y-border, #111);
  color: var(--a11y-inv-fg, #fff);
}

html[data-a11y-panel="closed"] .a11y-panel__row > :not(.a11y-panel__tools) {
  display: none;
}

html[data-a11y-panel="closed"] .a11y-panel__tools {
  margin-left: 0;
}

.a11y-group {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  padding-right: 8px;
  border-right: 2px solid var(--a11y-border, #111);
  flex: 0 0 auto;
}

.a11y-opt {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 36px;
  min-width: 36px;
  padding: 0 10px;
  border: 2px solid var(--a11y-border, #111);
  border-radius: 8px;
  background: var(--a11y-bg, #fff);
  color: var(--a11y-fg, #111);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
}

.a11y-opt:hover,
.a11y-opt:focus-visible {
  outline: 3px solid var(--a11y-fg, #111);
  outline-offset: 2px;
}

.a11y-opt[aria-pressed="true"] {
  background: var(--a11y-inv, #111);
  color: var(--a11y-inv-fg, #fff);
  border-color: var(--a11y-border, #111);
}

.a11y-opt--size[data-a11y-size="md"] { font-size: 14px; }
.a11y-opt--size[data-a11y-size="lg"] { font-size: 18px; }
.a11y-opt--size[data-a11y-size="xl"] { font-size: 22px; line-height: 1; }
.a11y-opt--swatch {
  width: 36px;
  padding: 0;
}

.a11y-swatch {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 2px solid currentColor;
  flex: 0 0 16px;
}

.a11y-swatch--bw { background: #fff; color: #111; box-shadow: inset 0 0 0 2px #111; }
.a11y-swatch--wb { background: #111; color: #fff; }
.a11y-swatch--blue { background: #d6ecff; color: #00264d; box-shadow: inset 0 0 0 2px #00264d; }
.a11y-swatch--beige { background: #f3e0b8; color: #3d2208; box-shadow: inset 0 0 0 2px #3d2208; }
.a11y-swatch--yellow { background: #111; color: #ffe600; box-shadow: inset 0 0 0 2px #ffe600; }

.a11y-panel__note {
  position: relative;
  margin: 0;
  flex: 0 0 auto;
  color: var(--a11y-fg, #111);
  font-size: 12px;
  line-height: 1.4;
}

.a11y-panel__note summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--a11y-fg, #111);
  list-style: none;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 0 10px;
  border: 2px solid var(--a11y-border, #111);
  border-radius: 8px;
}

.a11y-panel__note summary::-webkit-details-marker {
  display: none;
}

.a11y-panel__note[open] summary {
  background: var(--a11y-inv, #111);
  color: var(--a11y-inv-fg, #fff);
}

.a11y-panel__note p {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: 5;
  width: min(90vw, 64ch);
  margin: 0;
  padding: 10px 12px;
  background: var(--a11y-bg, #fff);
  color: var(--a11y-fg, #111);
  border: 2px solid var(--a11y-border, #111);
  border-radius: 8px;
}

.a11y-panel__note p + p {
  top: calc(100% + 88px);
}

html.a11y {
  --a11y-bg: #ffffff;
  --a11y-fg: #111111;
  --a11y-muted: #222222;
  --a11y-link: #003399;
  --a11y-border: #111111;
  --a11y-soft: #f4f4f4;
  --a11y-inv: #111111;
  --a11y-inv-fg: #ffffff;
  --bg: var(--a11y-bg);
  --bg-bar: var(--a11y-bg);
  --bg-card: var(--a11y-bg);
  --text: var(--a11y-fg);
  --text-2: var(--a11y-fg);
  --text-3: var(--a11y-fg);
  --muted: var(--a11y-muted);
  --line: var(--a11y-border);
  --line-2: var(--a11y-border);
  --blue: var(--a11y-link);
  --blue-deep: var(--a11y-fg);
  --blue-navy: var(--a11y-fg);
  --blue-soft: var(--a11y-soft);
  --green: var(--a11y-fg);
  --green-strong: var(--a11y-fg);
  --green-dark: var(--a11y-fg);
  --green-soft: var(--a11y-soft);
  --orange: var(--a11y-fg);
  --orange-deep: var(--a11y-fg);
  --amber: var(--a11y-fg);
  --yellow: var(--a11y-fg);
  --map: var(--a11y-bg);
  --map-2: var(--a11y-bg);
  --theme: var(--a11y-fg);
  --theme-dark: var(--a11y-fg);
  --theme-ink: var(--a11y-fg);
  --shadow: none;
  --shadow-md: none;
  --shadow-lg: none;
  --font: Arial, Verdana, "Liberation Sans", sans-serif;
  --font-ui: Arial, Verdana, sans-serif;
  --font-display: Arial, Verdana, sans-serif;
  scroll-behavior: auto;
}

html.a11y[data-a11y-theme="wb"] {
  --a11y-bg: #000000;
  --a11y-fg: #ffffff;
  --a11y-muted: #f2f2f2;
  --a11y-link: #ffe600;
  --a11y-border: #ffffff;
  --a11y-soft: #111111;
  --a11y-inv: #ffffff;
  --a11y-inv-fg: #000000;
}

html.a11y[data-a11y-theme="blue"] {
  --a11y-bg: #d6ecff;
  --a11y-fg: #00264d;
  --a11y-muted: #00264d;
  --a11y-link: #001a80;
  --a11y-border: #00264d;
  --a11y-soft: #b8dcff;
  --a11y-inv: #00264d;
  --a11y-inv-fg: #d6ecff;
}

html.a11y[data-a11y-theme="beige"] {
  --a11y-bg: #f3e0b8;
  --a11y-fg: #3d2208;
  --a11y-muted: #3d2208;
  --a11y-link: #6b2200;
  --a11y-border: #3d2208;
  --a11y-soft: #ffe9c2;
  --a11y-inv: #3d2208;
  --a11y-inv-fg: #f3e0b8;
}

html.a11y[data-a11y-theme="yellow"] {
  --a11y-bg: #000000;
  --a11y-fg: #ffe600;
  --a11y-muted: #ffe600;
  --a11y-link: #ffffff;
  --a11y-border: #ffe600;
  --a11y-soft: #1a1600;
  --a11y-inv: #ffe600;
  --a11y-inv-fg: #000000;
}

html.a11y[data-a11y-size="md"] { font-size: 18px; color-scheme: light; }
html.a11y[data-a11y-size="lg"] { font-size: 22px; color-scheme: light; }
html.a11y[data-a11y-size="xl"] { font-size: 26px; color-scheme: light; }
html.a11y[data-a11y-theme="wb"],
html.a11y[data-a11y-theme="yellow"] { color-scheme: dark; }

html.a11y[data-a11y-font="serif"] {
  --font: Georgia, "Times New Roman", "Liberation Serif", serif;
  --font-ui: Georgia, "Times New Roman", serif;
  --font-display: Georgia, "Times New Roman", serif;
}

html.a11y,
html.a11y body {
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  font-family: var(--font) !important;
  line-height: 1.65;
}

html.a11y[data-a11y-space="wide"],
html.a11y[data-a11y-space="wide"] body {
  letter-spacing: 0.04em;
  word-spacing: 0.1em;
  line-height: 1.9;
}

html.a11y[data-a11y-space="wide"] .a11y-panel,
html.a11y[data-a11y-space="wide"] .a11y-panel * {
  letter-spacing: 0 !important;
  word-spacing: 0 !important;
  line-height: 1.3 !important;
}

html.a11y * {
  animation: none !important;
  transition: none !important;
  text-shadow: none !important;
  box-shadow: none !important;
}

html.a11y .site-header,
html.a11y .topbar,
html.a11y .nav,
html.a11y details,
html.a11y summary,
html.a11y .nav-acc,
html.a11y .nav-acc summary,
html.a11y .nav-acc a,
html.a11y .mobile-nav a,
html.a11y .mobile-nav summary,
html.a11y .mobile-nav,
html.a11y .site-footer,
html.a11y .hero,
html.a11y .inner,
html.a11y .inner-hero,
html.a11y .inner-wrap,
html.a11y .inner-side,
html.a11y .inner-main,
html.a11y .panel,
html.a11y .gov,
html.a11y .gov-card,
html.a11y .org-card,
html.a11y .org-grid,
html.a11y .content-card,
html.a11y .person-card,
html.a11y .struct-card,
html.a11y .auth-card,
html.a11y .auth-aside,
html.a11y .cabinet-panel,
html.a11y .cabinet-profile,
html.a11y .auth-flash,
html.a11y .auth-address,
html.a11y .article-card,
html.a11y .visit-card,
html.a11y .schedule-card,
html.a11y .map-shell,
html.a11y .map-toolbar,
html.a11y .map-legend,
html.a11y .map-canvas,
html.a11y .center-card,
html.a11y .find-bar,
html.a11y .find-result,
html.a11y .pay-hero,
html.a11y .pay-card,
html.a11y .doc-card,
html.a11y .contact-panel,
html.a11y .contact-panel--accent,
html.a11y .contact-tile,
html.a11y .contacts-map,
html.a11y .contacts-reception,
html.a11y .recv-card,
html.a11y .contact-hours div,
html.a11y .contacts-note,
html.a11y .nav-drop__list,
html.a11y .search-field,
html.a11y .suggest,
html.a11y .appeal,
html.a11y .lead-note,
html.a11y .note-box,
html.a11y .req-box,
html.a11y .about-stat,
html.a11y .empty-card,
html.a11y .requisites,
html.a11y .official-tag,
html.a11y .pill,
html.a11y .tag,
html.a11y .hero__badge,
html.a11y .hotline-box,
html.a11y .hotline-badge,
html.a11y .person-card__photo,
html.a11y .org-card__icon,
html.a11y .gov-card__icon,
html.a11y .gov-card__cat,
html.a11y .gov-card__url,
html.a11y .center-card__num,
html.a11y .center-card__status,
html.a11y .center-card__district,
html.a11y .pager__btn,
html.a11y .pager__status,
html.a11y .org-tree__top,
html.a11y .org-tree__row > div,
html.a11y .org-groups section,
html.a11y .pay-start,
html.a11y .pay-icon,
html.a11y .auth-card__icon,
html.a11y .auth-flash,
html.a11y .cabinet-panel__kicker,
html.a11y .footer-main,
html.a11y .footer-legal,
html.a11y .footer-col a.hotline-box {
  background: var(--a11y-bg) !important;
  background-image: none !important;
  color: var(--a11y-fg) !important;
  border-color: var(--a11y-border) !important;
}

html.a11y .inner-hero::before,
html.a11y .inner-hero::after,
html.a11y .inner-hero__glow,
html.a11y .hero::before,
html.a11y .hero::after,
html.a11y [class*="inner--"] .inner-hero,
html.a11y [class*="inner--"] .inner-hero::before,
html.a11y [class*="inner--"] .inner-hero::after {
  background: var(--a11y-bg) !important;
  background-image: none !important;
  opacity: 1 !important;
  box-shadow: none !important;
}

html.a11y .inner-hero h1,
html.a11y .inner-hero__lead,
html.a11y .inner-hero__kicker,
html.a11y .crumbs,
html.a11y .crumbs a,
html.a11y .hero h1,
html.a11y .prose,
html.a11y .prose *,
html.a11y .content-card h2,
html.a11y .person-card h2,
html.a11y .person-card__role,
html.a11y .struct-card h2,
html.a11y .struct-card__tag,
html.a11y .visit-card h3,
html.a11y .schedule-card h3,
html.a11y .schedule-card p,
html.a11y .about-stat em,
html.a11y .about-stat strong,
html.a11y .about-stat span,
html.a11y .hotline-big,
html.a11y .pay-hero p,
html.a11y .pay-card h3,
html.a11y .footer-brand,
html.a11y .footer-brand *,
html.a11y .footer-legal,
html.a11y .footer-legal span,
html.a11y .footer-legal a,
html.a11y .article-card__meta,
html.a11y .content-card__meta,
html.a11y .side-nav a,
html.a11y .inner-side__title,
html.a11y .logo__kicker,
html.a11y .logo__title,
html.a11y .logo__full,
html.a11y .logo__short,
html.a11y .gov-card h3,
html.a11y .gov-card p,
html.a11y .org-card h3,
html.a11y .org-card p,
html.a11y .panel__title,
html.a11y .panel__meta,
html.a11y .gov__eyebrow,
html.a11y .gov__head h2,
html.a11y .center-card__title,
html.a11y .center-card__row,
html.a11y .center-card__row span,
html.a11y .center-card__foot,
html.a11y .map-filters__label,
html.a11y .map-legend,
html.a11y .find-bar__meta,
html.a11y .find-bar__note,
html.a11y .requisites,
html.a11y .requisites span,
html.a11y .requisites b,
html.a11y .requisites p,
html.a11y summary,
html.a11y details,
html.a11y .nav-acc,
html.a11y .nav-acc a,
html.a11y label,
html.a11y th,
html.a11y td,
html.a11y dt,
html.a11y dd,
html.a11y li,
html.a11y p,
html.a11y small,
html.a11y time,
html.a11y h1,
html.a11y h2,
html.a11y h3,
html.a11y h4 {
  color: var(--a11y-fg) !important;
  background-image: none !important;
}

html.a11y a {
  color: var(--a11y-link) !important;
  text-decoration: underline !important;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 2px;
}

html.a11y .logo,
html.a11y .btn,
html.a11y .chip,
html.a11y .nav-link,
html.a11y .nav__hotline,
html.a11y .pager__btn,
html.a11y .theme-btn,
html.a11y .gov-card__link,
html.a11y .a11y-open,
html.a11y .lang-btn,
html.a11y .skip-link {
  text-decoration: none !important;
}

html.a11y .logo {
  color: var(--a11y-fg) !important;
}

html.a11y .btn,
html.a11y .theme-btn,
html.a11y .theme-btn--ghost,
html.a11y .theme-btn--accent,
html.a11y .btn-cabinet,
html.a11y .btn-orange,
html.a11y .btn-green,
html.a11y .btn-appeal,
html.a11y .search-field button,
html.a11y .chip,
html.a11y .nav__hotline,
html.a11y .gov-card__link,
html.a11y .center-card__next,
html.a11y .doc-open,
html.a11y .about-link,
html.a11y .menu-toggle,
html.a11y .find-result__close,
html.a11y .find-result__row,
html.a11y .pager__btn.is-active,
html.a11y .hotline-box,
html.a11y .footer-col a.hotline-box {
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
  border: 2px solid var(--a11y-border) !important;
  box-shadow: none !important;
}

html.a11y .chip.is-active,
html.a11y .side-nav a.is-active,
html.a11y .nav-drop.is-current > .nav-link,
html.a11y .nav-link[aria-expanded="true"],
html.a11y .nav-drop__link.is-active,
html.a11y .menu-toggle[aria-expanded="true"] {
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
  outline: 3px solid var(--a11y-fg);
  outline-offset: 2px;
}

html.a11y .nav-link,
html.a11y .side-nav a,
html.a11y .pager__btn,
html.a11y .pager__status {
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  border: 2px solid var(--a11y-border) !important;
}

html.a11y .data-table,
html.a11y .data-table th,
html.a11y .data-table td,
html.a11y table,
html.a11y th,
html.a11y td {
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  border: 2px solid var(--a11y-border) !important;
}

html.a11y input,
html.a11y select,
html.a11y textarea,
html.a11y .search-field,
html.a11y .find-bar__query {
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  border: 2px solid var(--a11y-border) !important;
  caret-color: var(--a11y-fg);
}

html.a11y :focus,
html.a11y :focus-visible {
  outline: 3px solid var(--a11y-fg) !important;
  outline-offset: 3px !important;
}

html.a11y .skip-link {
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
  border: 2px solid var(--a11y-border);
  z-index: 120;
}

html.a11y .footer-stripe,
html.a11y .logo-bar,
html.a11y .inner-hero::after {
  background: var(--a11y-border) !important;
  background-image: none !important;
  height: 6px;
}

html.a11y .a11y-open {
  color: var(--a11y-link) !important;
  background: transparent !important;
}

html.a11y .a11y-open.is-on {
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
}

html.a11y svg {
  color: inherit !important;
}

html.a11y .center-card__row svg,
html.a11y .topbar svg,
html.a11y .footer-brand svg,
html.a11y .org-card__icon svg,
html.a11y .gov-card__icon svg,
html.a11y .nav__hotline svg,
html.a11y .hero__badge svg,
html.a11y .map-filters__label svg,
html.a11y .map-legend svg,
html.a11y .search-field svg,
html.a11y .logo svg,
html.a11y .contact-tile__head svg,
html.a11y .recv-card__icon svg {
  color: var(--a11y-fg) !important;
  stroke: currentColor !important;
}

html.a11y[data-a11y-images="gray"] img,
html.a11y[data-a11y-images="gray"] picture,
html.a11y[data-a11y-images="gray"] .map-stage {
  filter: grayscale(1) contrast(1.2);
}

html.a11y[data-a11y-theme="wb"] .map-stage,
html.a11y[data-a11y-theme="yellow"] .map-stage {
  filter: grayscale(1) invert(1) contrast(1.25);
}

html.a11y[data-a11y-theme="wb"][data-a11y-images="gray"] .map-stage,
html.a11y[data-a11y-theme="yellow"][data-a11y-images="gray"] .map-stage {
  filter: grayscale(1) invert(1) contrast(1.35);
}

html.a11y[data-a11y-images="off"] img,
html.a11y[data-a11y-images="off"] picture,
html.a11y[data-a11y-images="off"] video,
html.a11y[data-a11y-images="off"] .map-stage,
html.a11y[data-a11y-images="off"] .map-canvas,
html.a11y[data-a11y-images="off"] .person-card__photo,
html.a11y[data-a11y-images="off"] .doc-card__icon,
html.a11y[data-a11y-images="off"] .map-pins,
html.a11y[data-a11y-images="off"] .map-svg-host,
html.a11y[data-a11y-images="off"] .contacts-map iframe {
  display: none !important;
}

.a11y-map-note {
  display: none;
  margin: 0;
  padding: 14px 16px;
  border: 2px solid var(--a11y-border, #111);
  border-radius: 10px;
  font-weight: 700;
  background: var(--a11y-soft, #f4f4f4);
  color: var(--a11y-fg, #111);
}

html.a11y[data-a11y-images="off"] .a11y-map-note {
  display: block;
}

html.a11y .map-pin {
  width: 44px;
  height: 44px;
  margin: -22px 0 0 -22px;
  font-size: 16px;
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
  outline: 3px solid var(--a11y-fg);
}

html.a11y .lang-btn {
  color: var(--a11y-fg) !important;
  text-decoration: none !important;
}

html.a11y .lang-btn.is-active {
  outline: 3px solid var(--a11y-fg);
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
}

html.a11y .a11y-panel {
  display: block !important;
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  border-bottom: 3px solid var(--a11y-border) !important;
}

html.a11y .a11y-panel,
html.a11y .a11y-panel__note,
html.a11y .a11y-panel__note p,
html.a11y .a11y-panel__note summary {
  color: var(--a11y-fg) !important;
}

html.a11y .a11y-ctrl,
html.a11y .a11y-opt {
  background: var(--a11y-bg) !important;
  color: var(--a11y-fg) !important;
  border: 2px solid var(--a11y-border) !important;
}

html.a11y .a11y-opt[aria-pressed="true"],
html.a11y .a11y-ctrl.a11y-ctrl--primary {
  background: var(--a11y-inv) !important;
  color: var(--a11y-inv-fg) !important;
  border-color: var(--a11y-border) !important;
}

@media (max-width: 720px) {
  .a11y-panel__inner { width: min(100% - 16px, 1312px); }
  .a11y-ctrl,
  .a11y-opt { min-height: 40px; }
}
