﻿/* cyrillic-ext */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/q5uCsoe9Lv5t7Meb31EcEx58hLxR.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/q5uCsoe9Lv5t7Meb31EcExd8hLxR.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/q5uCsoe9Lv5t7Meb31EcEx18hLxR.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Golos Text';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(../fonts/q5uCsoe9Lv5t7Meb31EcExN8hA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Yq6W-LOTXCb04q32xlpwtsZfrxE.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Yq6W-LOTXCb04q32xlpwv8ZfrxE.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Yq6W-LOTXCb04q32xlpwtMZfrxE.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Yq6W-LOTXCb04q32xlpwtcZfrxE.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../fonts/Yq6W-LOTXCb04q32xlpwu8Zf.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   ТФОМС Югры — дизайн-система прототипа
   Палитра: югорский синий + «северное сияние»
   Шрифты: Golos Text (осн.), Unbounded (акцентные цифры)
   ============================================================ */

:root {
  /* Цвета */
  --ink: #0e2433;
  --ink-2: #4a6375;
  --ink-3: #566b7a;           /* a11y: затемнён с #7e94a3 → 5.56:1 на белом, 4.97:1 на --bg (WCAG AA) */
  --primary: #0b5394;
  --primary-strong: #0a4378;
  --primary-deep: #07355f;
  --night: #062742;
  --accent: #18a7c9;          /* декоративный бирюзовый: рамки, иконки, градиент */
  --accent-ink: #0e7088;      /* a11y: тот же бирюзовый для ТЕКСТА → 5.69:1 на белом, 5.09:1 на --bg */
  --green: #2fa371;
  --aurora: linear-gradient(108deg, #18a7c9 0%, #2fa371 58%, #92d36e 100%);
  --bg: #eef3f7;
  --card: #ffffff;
  --line: #d9e4ec;
  --line-2: #c3d3de;
  --danger: #c43e3e;
  --warn: #b97d1f;
  --chip-blue: #e3eef8;
  --chip-green: #e2f3ea;

  /* Типографика */
  --font: "Golos Text", "Segoe UI", Tahoma, sans-serif;
  --font-display: "Unbounded", "Golos Text", sans-serif;
  --fs: 17px;

  /* Геометрия */
  --r: 14px;
  --r-lg: 22px;
  --shadow: 0 1px 2px rgba(7, 53, 95, .06), 0 8px 28px -12px rgba(7, 53, 95, .18);
  --shadow-lg: 0 2px 4px rgba(7, 53, 95, .08), 0 24px 56px -20px rgba(7, 53, 95, .32);
  --wrap: 1200px;
  --header-h: 72px;

  /* Иконки-маски для псевдоэлементов (единый контурный набор, вместо эмодзи) */
  --ic-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 1 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
  --ic-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3.5 2'/%3E%3C/svg%3E");
  --ic-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.9.5 2.8.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
  --ic-mail: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='3'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
  --ic-rss: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11a9 9 0 0 1 9 9'/%3E%3Cpath d='M4 4a16 16 0 0 1 16 16'/%3E%3Ccircle cx='5' cy='19' r='1.4' fill='black' stroke='none'/%3E%3C/svg%3E");

  /* Единый язык карточек (см. «миксин» ниже) */
  --card-r: var(--r);                 /* радиус обычной карточки */
  --card-pad: 18px;                   /* внутренний отступ однотипных карточек */
  --card-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
  --card-shadow-hover: 0 2px 4px rgba(7, 53, 95, .07), 0 16px 34px -14px rgba(7, 53, 95, .24);
  --card-transition: transform .18s, box-shadow .18s, border-color .18s;

  /* Чипы и бейджи — единая геометрия */
  --chip-h: 32px;                     /* высота чипов-кнопок (tel/mail/org…) */
  --chip-pad: 0 14px;
  --chip-fs: .88rem;
  --badge-pad: 4px 11px;              /* бейджи / date-chip / cat-chip */
  --badge-fs: .74rem;
}

/* ============================================================
   «Миксин» карточек через утилитарный набор свойств.
   Применяется к однотипным карточкам для единых
   радиуса / тени / паддинга / перехода / hover-подъёма.
   ============================================================ */
.u-card {
  background: var(--card);
  border-radius: var(--card-r);
  padding: var(--card-pad);
  box-shadow: var(--card-shadow);
  transition: var(--card-transition);
}
.u-card--hover:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); }

/* ---------- Сброс ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  margin: 0;
  font-family: var(--font);
  font-size: var(--fs);
  line-height: 1.6;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip; /* предохранитель от случайного горизонтального скролла */
}
[hidden] { display: none !important; }
body.ui-scroll-locked { overflow: hidden; }
.clipboard-helper { position: fixed; opacity: 0; pointer-events: none; }
.content-align-justify { text-align: justify; }
.content-align-right { text-align: right; }
.content-align-center { text-align: center; }
.content-centered { display: block; margin-inline: auto; }
.content-float-left { float: left; margin: 0 10px 10px 0; }
.content-float-right { float: right; margin: 0 0 10px 10px; }
img { max-width: 100%; height: auto; }
a { color: var(--primary); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--accent-ink); }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.wrap { max-width: var(--wrap); margin-inline: auto; padding-inline: 24px; }

h1, h2, h3, h4 { line-height: 1.22; font-weight: 800; letter-spacing: -.015em; margin: 0 0 .5em; }
h1 { font-size: clamp(1.9rem, 1.4rem + 2vw, 2.9rem); }
h2 { font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem); }
h3 { font-size: 1.25rem; }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  background: var(--night); color: #fff; padding: 12px 20px; border-radius: 0 0 10px 0;
}
.skip-link:focus { left: 0; }

/* ============================================================
   Шапка
   ============================================================ */
.topbar {
  background: var(--night);
  color: #cfe2f0;
  font-size: .82rem;
}
.topbar .wrap {
  display: flex; align-items: center; gap: 18px; min-height: 38px; flex-wrap: wrap;
}
.topbar a { color: #fff; text-decoration: none; }
.topbar a:hover { color: #9fdcef; }
.topbar__office { opacity: .85; }
.topbar__spacer { flex: 1; }
.topbar__phone { font-weight: 600; letter-spacing: .02em; display: inline-flex; gap: 7px; align-items: center; white-space: nowrap; }
.topbar svg, .btn-eye svg { width: 16px; height: 16px; flex: none; }
.icon-btn svg { width: 20px; height: 20px; flex: none; }
.btn-lk svg, .btn svg { width: 19px; height: 19px; flex: none; }
.svc__ext svg { width: 20px; height: 20px; }
.btn-eye { white-space: nowrap; }
.btn-eye {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255, 255, 255, .1); color: #fff; border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 99px; padding: 4px 14px; font: inherit; cursor: pointer;
}
.btn-eye:hover { background: rgba(255, 255, 255, .2); }
/* На узких экранах кнопки топбара — компактные, только иконки (текст остаётся для скринридеров) */
@media (max-width: 560px) {
  .btn-eye__txt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .btn-eye { padding: 4px 9px; gap: 0; }
}

.header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.header .wrap { display: flex; align-items: center; gap: 18px; min-height: var(--header-h); max-width: 1600px; }
.brand { display: flex; align-items: center; gap: 13px; min-width: 0; text-decoration: none; color: var(--ink); }
.brand__logo { width: 48px; height: auto; flex: none; }
.brand__name { min-width: 0; font-weight: 800; font-size: 1.02rem; line-height: 1.2; letter-spacing: -.01em; }
.brand__sub { display: block; font-weight: 500; font-size: .72rem; color: var(--ink-2); letter-spacing: .05em; text-transform: uppercase; }

.nav { display: flex; gap: 0; min-width: 0; margin-left: auto; }
.nav > div { position: relative; }
.nav__btn {
  display: inline-flex; align-items: center; gap: 6px;
  font: 600 .93rem var(--font); color: var(--ink);
  background: none; border: 0; cursor: pointer;
  padding: 10px 11px; border-radius: 10px; text-decoration: none;
  white-space: nowrap; /* пункты меню не переносятся на две строки */
}
.nav__btn:hover, .nav > div[aria-expanded="true"] .nav__btn { background: var(--chip-blue); color: var(--primary-strong); }
.nav__btn .car { transition: transform .2s; }
.nav > div[aria-expanded="true"] .car { transform: rotate(180deg); }
.header { transition: box-shadow .25s; }
.header.scrolled { box-shadow: 0 8px 28px -14px rgba(7, 53, 95, .25); }

/* Мега-меню */
.nav > div { position: static; }
.mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: var(--card); border-top: 1px solid var(--line);
  box-shadow: 0 30px 50px -25px rgba(7, 53, 95, .35);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .2s, transform .2s, visibility .2s;
}
.nav > div[aria-expanded="true"] .mega { opacity: 1; visibility: visible; transform: none; }
.mega__inner {
  max-width: var(--wrap); margin-inline: auto; padding: 30px 24px 34px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px;
}
.mega__inner--2 { grid-template-columns: repeat(2, 1fr); max-width: 860px; }
.mega__col-t {
  font-size: .74rem; text-transform: uppercase; letter-spacing: .11em;
  color: var(--ink-3); margin: 0 0 10px; display: flex; align-items: center; gap: 10px;
}
.mega__col-t::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--aurora); }
.mega__col a {
  display: block; padding: 9px 12px; margin-left: -12px; border-radius: 10px;
  color: var(--ink); text-decoration: none; font-size: .94rem; font-weight: 600; line-height: 1.3;
}
.mega__col a small { display: block; font-weight: 400; font-size: .8rem; color: var(--ink-3); margin-top: 2px; }
.mega__col a:hover { background: var(--chip-blue); color: var(--primary-strong); }
.mega__col a:hover small { color: var(--ink-2); }
.mega__col a strong { color: var(--primary); font-weight: 700; }

.header__actions { display: flex; flex: none; gap: 10px; align-items: center; }
.icon-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 42px; height: 42px; border-radius: 12px;
  border: 1px solid var(--line); background: var(--card); color: var(--ink);
  cursor: pointer; font: 600 .9rem var(--font);
}
.icon-btn:hover { border-color: var(--accent); color: var(--primary); }
.btn-lk {
  display: inline-flex; align-items: center; gap: 8px; white-space: nowrap;
  background: var(--primary); color: #fff !important; text-decoration: none;
  font: 600 .9rem var(--font); padding: 10px 18px; border-radius: 12px;
  transition: background .15s;
}
.btn-lk:hover { background: var(--primary-strong); }
.burger { display: none; }

/* ============================================================
   Герой
   ============================================================ */
.hero {
  position: relative; color: #fff; overflow: hidden;
  background:
    radial-gradient(900px 480px at 86% -10%, rgba(24, 167, 201, .55), transparent 64%),
    radial-gradient(720px 420px at -8% 110%, rgba(47, 163, 113, .4), transparent 60%),
    linear-gradient(160deg, var(--night) 0%, var(--primary-deep) 52%, var(--primary-strong) 100%);
}
.hero::before {
  /* северное сияние */
  content: ""; position: absolute; inset: -40% -10% auto;  height: 130%;
  background:
    linear-gradient(100deg, transparent 30%, rgba(24, 167, 201, .16) 42%, rgba(146, 211, 110, .14) 52%, rgba(47, 163, 113, .12) 60%, transparent 75%);
  filter: blur(34px);
  transform: rotate(-7deg);
  animation: aurora 16s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes aurora {
  from { transform: rotate(-7deg) translateX(-4%); opacity: .8; }
  to { transform: rotate(-4deg) translateX(5%); opacity: 1; }
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1.4px);
  background-size: 26px 26px; opacity: .25; pointer-events: none;
  mask-image: linear-gradient(to bottom, transparent 30%, #000);
}
.hero__skyline {
  /* Силуэт достопримечательностей Югры — белые линии на исходном синем фоне
     конвертированы в PNG с альфа-каналом (яркость пикселя -> прозрачность),
     синей заливки в файле больше нет. Прижат к низу героя, ширина шире
     контейнера для эффекта широкой панорамы; overflow: hidden у .hero
     обрезает лишнее. */
  position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: min(1800px, 132%); aspect-ratio: 1983 / 793;
  background-image: url('/static/img/hero-skyline.png');
  background-repeat: no-repeat; background-position: bottom center; background-size: contain;
  opacity: .15; pointer-events: none;
}
.hero .wrap { position: relative; z-index: 1; padding-block: 64px 76px; }
.hero__kicker {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px;
  max-width: 92ch; font-size: .84rem; font-weight: 600; line-height: 1.45;
  letter-spacing: .025em; color: #c7edf7; margin-bottom: 18px;
}
.hero__kicker::before { content: ""; width: 34px; height: 3px; border-radius: 2px; background: var(--aurora); }
.hero__name-full { max-width: 76ch; }
.hero__name-short {
  padding: 3px 9px; border: 1px solid rgba(199, 237, 247, .45);
  border-radius: 999px; color: #fff; white-space: nowrap;
}
@media (max-width: 640px) {
  .hero__kicker { align-items: flex-start; gap: 8px; font-size: .78rem; }
  .hero__kicker::before { margin-top: .55em; flex: none; }
  .hero__name-full { flex: 1 1 calc(100% - 42px); }
  .hero__name-short { margin-left: 42px; }
}
.hero h1 { max-width: 34ch; margin-bottom: 18px; }
.hero__lead { max-width: 74ch; font-size: 1.08rem; color: #d7e7f3; margin: 0 0 30px; }
.scammers-link { color: #92d36e; font-weight: 700; text-decoration: none; }
.hero-sub--orgs { max-width: 72ch; margin: 0 0 26px; }
.hero__search {
  display: flex; align-items: center; gap: 12px; width: 100%; max-width: 560px;
  margin: 0 0 26px; padding: 16px 18px; cursor: pointer; text-align: left;
  background: rgba(255, 255, 255, .96); border: 0; border-radius: 14px;
  box-shadow: 0 10px 30px -10px rgba(6, 39, 66, .5);
  font: 500 1.02rem var(--font); color: var(--ink-3);
  transition: transform .12s, box-shadow .12s;
}
.hero__search:hover { transform: translateY(-2px); box-shadow: 0 16px 38px -12px rgba(6, 39, 66, .6); }
.hero__search svg { width: 22px; height: 22px; color: var(--primary); flex: none; }
.hero__search span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hero__search kbd {
  flex: none; font: 600 .72rem var(--font); color: var(--ink-2);
  background: var(--bg); border: 1px solid var(--line-2); border-bottom-width: 2px;
  border-radius: 6px; padding: 3px 8px;
}
@media (max-width: 640px) { .hero__search kbd { display: none; } .hero__search span { white-space: normal; } }
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font: 700 1rem var(--font); text-decoration: none; cursor: pointer;
  padding: 14px 26px; border-radius: 14px; border: 0; transition: transform .12s, box-shadow .12s;
}
.btn:active { transform: translateY(1px); }
.btn--aurora {
  background: var(--aurora); color: #062a35 !important;
  box-shadow: 0 10px 30px -8px rgba(24, 167, 201, .55);
}
.btn--aurora:hover { box-shadow: 0 14px 36px -8px rgba(24, 167, 201, .75); }
.btn--ghost {
  background: rgba(255, 255, 255, .1); color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .35);
}
.btn--ghost:hover { background: rgba(255, 255, 255, .2); }
.btn--primary { background: var(--primary); color: #fff !important; }
.btn--primary:hover { background: var(--primary-strong); }

/* Частые задачи */
.tasks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.task {
  position: relative; z-index: 0; overflow: hidden; display: flex; flex-direction: column; gap: 12px;
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--r); padding: 18px 16px 16px;
  color: #fff; text-decoration: none; font-weight: 600; font-size: .92rem; line-height: 1.3;
  backdrop-filter: blur(6px);
  transition: background .18s, transform .18s, border-color .18s;
}
.task::after {
  content: ""; position: absolute; z-index: -1; inset: 0;
  background: linear-gradient(115deg, transparent 0%, rgba(24, 167, 201, .5) 35%, rgba(146, 211, 110, .55) 50%, rgba(24, 167, 201, .5) 65%, transparent 100%);
  background-size: 250% 250%; background-position: 0% 0%;
  opacity: 0; transition: opacity .25s ease; pointer-events: none;
}
.task:hover::after { opacity: 1; animation: task-shine 1.6s ease-in-out infinite; }
@keyframes task-shine {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}
.task:hover { background: rgba(255, 255, 255, .16); transform: translateY(-4px); border-color: rgba(146, 211, 110, .6); color: #fff; }
.task__ic {
  width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  background: rgba(255, 255, 255, .12);
}
.task__ic svg { width: 24px; height: 24px; }
.task small { font-weight: 400; color: #b9d4e6; font-size: .78rem; }

/* Полоса горячей линии */
.hotline { background: var(--night); color: #fff; }
.hotline .wrap {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding-block: 18px;
}
.hotline__label { font-size: .85rem; color: #9cc1da; }
.hotline__num {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.1rem, 2.2vw, 1.5rem); letter-spacing: .02em;
  color: #fff; text-decoration: none; white-space: nowrap;
}
.hotline__num:hover { color: #92d36e; }
.hotline__sep { width: 1px; height: 38px; background: rgba(255, 255, 255, .18); }

/* ============================================================
   Секции главной
   ============================================================ */
.section { padding-block: 64px; }
.section--alt { background: var(--card); }
/* Стык двух соседних секций с одинаковым фоном: 64px снизу + 64px сверху
   складывались в 128px пустой полосы (баннер «Решаем вместе» → блок цифр).
   Половиним отступы на стыке. */
.section--pb-half { padding-bottom: 32px; }
.section--pt-half { padding-top: 32px; }
.section__head {
  display: flex; align-items: end; justify-content: space-between; gap: 20px;
  margin-bottom: 34px; flex-wrap: wrap;
}
.section__head h2 { margin: 0; }
.section__index {
  font-family: var(--font-display); font-size: .78rem; font-weight: 500;
  color: var(--accent-ink); letter-spacing: .2em; display: block; margin-bottom: 10px;
}
.link-more { font-weight: 700; text-decoration: none; white-space: nowrap; display: inline-flex; gap: 8px; align-items: center; max-width: 100%; }
/* На узком экране и в версии для слабовидящих nowrap не давал ссылке сжаться:
   при крупном шрифте она вырастала до 394px в контейнере 288px и уводила
   страницу вбок. Разрешаем перенос текста — стрелка это отдельный flex-элемент
   и от текста всё равно не оторвётся. */
@media (max-width: 560px) { .link-more { white-space: normal; } }
html.a11y .link-more { white-space: normal; }
.link-more::after { content: "→"; transition: transform .15s; }
.link-more:hover::after { transform: translateX(4px); }

/* Новости */
.news-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.news-card {
  display: flex; flex-direction: column; gap: 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 22px; text-decoration: none; color: var(--ink);
  box-shadow: var(--shadow); transition: transform .18s, box-shadow .18s, border-color .18s;
}
.section--alt .news-card { background: var(--bg); box-shadow: none; }
.news-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--line-2); color: var(--ink); }
.news-card h3 {
  font-size: 1rem; font-weight: 700; margin: 0; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.news-card:hover h3 { color: var(--primary); }
.date-chip {
  align-self: flex-start; font-size: .78rem; font-weight: 700;
  background: var(--chip-blue); color: var(--primary-strong);
  border-radius: 99px; padding: 4px 12px;
}
.news-card__more { margin-top: auto; font-size: .85rem; color: var(--accent-ink); font-weight: 600; }

/* Документы — строки */
.doc-list { display: flex; flex-direction: column; gap: 12px; }
.doc-row {
  display: grid; grid-template-columns: 52px 1fr auto; gap: 18px; align-items: start;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 16px 20px; text-decoration: none; color: var(--ink);
  transition: border-color .15s, box-shadow .15s;
}
.doc-row:hover { border-color: var(--accent); box-shadow: var(--shadow); color: var(--ink); }
.doc-row__title { font-weight: 600; line-height: 1.4; font-size: .97rem; overflow-wrap: anywhere; }
.doc-row > span { min-width: 0; }
.doc-row:hover .doc-row__title { color: var(--primary); }
.doc-row__desc { font-size: .84rem; color: var(--ink-2); margin-top: 3px; }
.doc-row__meta { display: flex; flex-direction: column; align-items: end; gap: 6px; font-size: .8rem; color: var(--ink-3); white-space: nowrap; }
.doc-row__meta .badge-group { display: flex; gap: 6px; flex-wrap: wrap; justify-content: end; }
.file-ic {
  width: 52px; height: 52px; border-radius: 13px; display: grid; place-items: center;
  font: 700 .68rem/1 var(--font); letter-spacing: .04em; color: #fff;
}
.file-ic--pdf { background: #c43e3e; }
.file-ic--doc { background: #2b6cb0; }
.file-ic--rar { background: #7048a8; }
.file-ic--xls { background: #2fa371; }
.file-ic--etc { background: var(--ink-3); }
.badge {
  font-size: .73rem; font-weight: 700; padding: 3px 10px; border-radius: 99px;
}
.badge--fed { background: #fdeede; color: #9a5b12; }
.badge--reg { background: var(--chip-green); color: #1c7a52; }
.badge--lok { background: #ece9fb; color: #5a3fc0; }
.badge--okr { background: var(--chip-green); color: #1c7a52; }
.badge--etc { background: var(--chip-blue); color: var(--primary-strong); }
.badge.rubric { white-space: nowrap; }
.rubric--protokol   { background: #e3eef8; color: #0a4378; }
.rubric--prikaz     { background: #fdecec; color: #a33030; }
.rubric--tarif      { background: #e2f3ea; color: #1c7a52; }
.rubric--post       { background: #efe9f7; color: #5b3e8e; }
.rubric--zakon      { background: #fdf3e0; color: #8a5a12; }
.rubric--monitoring { background: #e2f4f8; color: #0d6e86; }
.rubric--doc        { background: #eef1f4; color: #5a6b78; }

/* Сервисы */
.svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.prose .svc-grid, .prose #js-show-iframe-wrapper, .prose .rg-contacts { max-width: none; }
.svc {
  position: relative; overflow: hidden;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 26px; text-decoration: none; color: var(--ink);
  box-shadow: var(--shadow); transition: transform .18s, box-shadow .18s;
}
.svc::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--aurora);
}
.svc:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); color: var(--ink); }
.svc h3 { font-size: 1.08rem; margin-bottom: 8px; padding-right: 28px; }
.svc:hover h3 { color: var(--primary); }
.svc p { margin: 0; font-size: .9rem; color: var(--ink-2); }
.svc__ext { position: absolute; top: 24px; right: 22px; color: var(--ink-3); font-size: 1.1rem; line-height: 1; }
.svc:hover .svc__ext { color: var(--primary); }

/* Цифры */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.stat {
  background: linear-gradient(160deg, var(--primary-deep), var(--primary-strong));
  border-radius: var(--r-lg); color: #fff; padding: 28px 26px;
  position: relative; overflow: hidden;
}
.stat::after {
  content: ""; position: absolute; right: -30px; bottom: -42px; width: 130px; height: 130px;
  border-radius: 50%; background: var(--aurora); opacity: .22; filter: blur(8px);
}
.stat__num {
  font-family: var(--font-display); font-size: clamp(1.7rem, 3vw, 2.4rem);
  font-weight: 600; line-height: 1.1; display: block; margin-bottom: 8px;
}
.stat__cap { font-size: .88rem; color: #c2d9ea; }

/* Города — сетка плиток */
.city-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.city-grid--spaced { margin-bottom: 48px; }
.city-tile {
  display: flex; align-items: center; gap: 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 15px 16px; text-decoration: none; color: var(--ink);
  box-shadow: var(--card-shadow); transition: transform .16s, box-shadow .16s, border-color .16s;
}
.city-tile:hover { transform: translateY(-3px); box-shadow: var(--card-shadow-hover); border-color: transparent; color: var(--primary-strong); }
.city-tile__ic {
  flex: none; width: 38px; height: 38px; border-radius: 11px;
  display: grid; place-items: center; background: var(--chip-blue); color: var(--primary);
}
.city-tile__ic svg { width: 20px; height: 20px; }
.city-tile__name { flex: 1; min-width: 0; font-weight: 700; font-size: .95rem; line-height: 1.25; overflow-wrap: anywhere; hyphens: auto; }
.city-tile__arr { flex: none; color: var(--ink-3); transition: transform .16s, color .16s; }
.city-tile__arr svg { width: 18px; height: 18px; }
.city-tile:hover .city-tile__arr { color: var(--accent); transform: translateX(3px); }
html.a11y .city-tile { background: #fff !important; border: 2px solid #000 !important; }

/* Города (облако чипов — на других страницах) */
.city-cloud { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.city-chip {
  background: var(--card); border: 1px solid var(--line); border-radius: 99px;
  padding: 9px 18px; font-size: .92rem; font-weight: 600; text-decoration: none; color: var(--ink);
  transition: border-color .15s, background .15s;
}
.city-chip:hover { border-color: var(--accent); background: var(--chip-blue); color: var(--primary-strong); }

/* ============================================================
   Внутренние страницы
   ============================================================ */
.page-hero {
  background:
    radial-gradient(700px 300px at 90% -40%, rgba(24, 167, 201, .35), transparent 60%),
    linear-gradient(150deg, var(--night), var(--primary-deep) 70%, var(--primary-strong));
  color: #fff; padding-block: 40px 46px; position: relative; overflow: hidden;
}
.page-hero::after {
  content: ""; position: absolute; inset: auto 0 0;
  height: 4px; background: var(--aurora);
}
.page-hero h1 { margin: 10px 0 0; max-width: 28ch; overflow-wrap: break-word; }
/* Подписка на новости: узнаваемый оранжевый цвет RSS — на тёмном hero
   плашка должна читаться сразу, полупрозрачная терялась. */
.page-hero__rss {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 16px; padding: 8px 16px; border-radius: 99px;
  background: #ee802f; color: #fff !important;
  font-size: .88rem; font-weight: 700; text-decoration: none;
  transition: background .15s, transform .15s;
}
.page-hero__rss::before {
  content: ""; width: 1.05em; height: 1.05em; flex: none; background: currentColor;
  -webkit-mask: var(--ic-rss) center/contain no-repeat; mask: var(--ic-rss) center/contain no-repeat;
}
.page-hero__rss:hover { background: #d96d1e; transform: translateY(-1px); }
html.a11y .page-hero__rss { background: #000 !important; color: #fff !important; }
.page-hero--center { text-align: center; }
.page-hero--center h1 { max-width: none; white-space: nowrap; }
@media (max-width: 640px) {
  .page-hero--center h1 { white-space: normal; }
}
.crumbs { font-size: .82rem; color: #9cc1da; }
.crumbs a { color: #cfe6f5; text-decoration: none; }
.crumbs a:hover { color: #fff; text-decoration: underline; }
.crumbs span[aria-current] { color: #fff; }

.layout { display: grid; grid-template-columns: 280px 1fr; gap: 44px; padding-block: 48px 72px; align-items: start; }
.layout--full { grid-template-columns: 1fr; }
.sidebar { position: sticky; top: calc(var(--header-h) + 20px); display: flex; flex-direction: column; gap: 26px; }
.side-group h3, .side-group__t {
  font-size: .76rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3);
  margin: 0 0 8px; font-weight: 700;
}
.side-group nav { display: flex; flex-direction: column; }
.side-group a {
  padding: 8px 13px; border-radius: 9px; text-decoration: none; color: var(--ink);
  font-size: .92rem; line-height: 1.35; border-left: 3px solid transparent;
}
.side-group a:hover { background: var(--chip-blue); color: var(--primary-strong); }
.side-group a[aria-current="page"] {
  background: var(--chip-blue); border-left-color: var(--accent);
  color: var(--primary-strong); font-weight: 700;
}

/* Контент-типографика (перенесённый HTML) */
.prose { max-width: 76ch; overflow-wrap: break-word; }
.prose a.img-link {
  display: block; position: relative; width: fit-content; max-width: 100%;
  cursor: zoom-in; border-radius: var(--r); overflow: hidden;
  box-shadow: var(--shadow);
}
.prose a.img-link img { display: block; }
.prose a.img-link::after {
  content: "Открыть в полном размере ⤢";
  position: absolute; right: 10px; bottom: 10px;
  background: rgba(6, 39, 66, .78); color: #fff;
  font-size: .78rem; font-weight: 600; padding: 6px 12px; border-radius: 99px;
  opacity: 0; transform: translateY(4px); transition: opacity .15s, transform .15s;
}
.prose a.img-link:hover::after, .prose a.img-link:focus-visible::after {
  opacity: 1; transform: translateY(0);
}
html.a11y .prose a.img-link { border: 2px solid #000; }
html.a11y .prose a.img-link::after { background: #000 !important; color: #fff !important; }
.prose a { overflow-wrap: anywhere; }
.prose li, .prose p { overflow-wrap: break-word; }
.prose iframe, .prose video, .prose embed, .prose object { max-width: 100%; }
.prose video { height: auto; }
.prose > :first-child { margin-top: 0; }
.prose h2 { font-size: 1.45rem; margin: 1.6em 0 .6em; }
.prose h3, .prose h4 { font-size: 1.12rem; margin: 1.5em 0 .5em; }
.prose p { margin: .85em 0; }
/* Красивые списки: цветные маркеры / нумерация в плашках, воздух */
.prose > ul, .prose > ol, .prose .prose-sec ul, .prose .prose-sec ol { list-style: none; padding-left: 0; }
.prose > ul > li, .prose > ol > li {
  position: relative; padding-left: 30px; margin: .55em 0; line-height: 1.6;
}
.prose > ul > li::before {
  content: ""; position: absolute; left: 7px; top: .62em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--accent);
}
.prose > ol { counter-reset: li; }
.prose > ol > li { counter-increment: li; padding-left: 38px; }
.prose > ol > li::before {
  content: counter(li); position: absolute; left: 0; top: .05em;
  width: 25px; height: 25px; border-radius: 8px;
  background: var(--chip-blue); color: var(--primary-strong);
  font: 700 .82rem var(--font-display); display: grid; place-items: center;
}
.prose li { margin: .35em 0; }
.prose li > ul, .prose li > ol { margin-top: .4em; }
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.prose table {
  width: 100%; border-collapse: collapse; margin: 1.4em 0; font-size: .92rem;
  background: var(--card); border-radius: 12px; overflow: hidden;
  box-shadow: 0 0 0 1px var(--line);
  display: block; overflow-x: auto;
}
.prose table th, .prose table td { padding: 11px 14px; border: 1px solid var(--line); text-align: left; vertical-align: top; }
.prose table tr:nth-child(even) td { background: #f7fafc; }
.prose table h4 { margin: 0; font-size: 1rem; color: var(--primary-strong); }
.prose a[href^="/uploads/"], .prose a[href$=".pdf"], .prose a[href$=".rar"],
.prose a[href$=".doc"], .prose a[href$=".docx"], .prose a[href$=".rtf"],
.prose a[href$=".xls"], .prose a[href$=".xlsx"], .prose a[href$=".zip"] {
  font-weight: 600;
}
.prose blockquote {
  margin: 1.4em 0; padding: 16px 22px; background: var(--chip-blue);
  border-left: 4px solid var(--accent); border-radius: 0 12px 12px 0;
}

/* ---------- Карточки-справочники (бывшие таблицы) ---------- */
.dir { margin: 1.6em 0; }
.dir__org {
  display: flex; align-items: center; gap: 12px;
  font-size: 1.02rem; font-weight: 800; margin: 1.8em 0 .9em;
  color: var(--primary-strong);
}
.dir__org::before { content: ""; width: 5px; height: 22px; border-radius: 3px; background: var(--aurora); flex: none; }
.dir-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.prose .dir-grid { max-width: none; }
.dir-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--card-r);
  padding: var(--card-pad); display: flex; flex-direction: column; gap: 10px;
  justify-content: flex-start;
  box-shadow: var(--card-shadow);
}
.dir-card__head { display: flex; align-items: center; gap: 12px; }
.dir-card__place {
  font-weight: 800; font-size: 1.02rem; letter-spacing: -.01em;
  display: flex; gap: 8px; align-items: baseline;
}
.ic-mask { content: ""; flex: none; background: currentColor; }
.dir-card__place::before {
  content: ""; width: .9em; height: .9em; flex: none; align-self: center;
  background: currentColor; color: var(--accent);
  -webkit-mask: var(--ic-pin) center/contain no-repeat; mask: var(--ic-pin) center/contain no-repeat;
}
.dir-card__people { margin-top: auto; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 3px; }
.dir-card__people li { font-weight: 600; font-size: .94rem; }
.dir-card__addr { font-weight: 600; font-size: .95rem; line-height: 1.45; }
.dir-card__sched {
  display: flex; gap: 8px; align-items: start;
  font-size: .85rem; color: var(--ink-2); line-height: 1.5;
}
.dir-card__sched::before {
  content: ""; width: 1em; height: 1em; flex: none; margin-top: 2px;
  background: currentColor; color: var(--ink-3);
  -webkit-mask: var(--ic-clock) center/contain no-repeat; mask: var(--ic-clock) center/contain no-repeat;
}
.dir-card__phones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 4px; }
.tel-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--chip-blue); color: var(--primary-strong) !important;
  font-weight: 700; font-size: .88rem; text-decoration: none;
  border-radius: 99px; padding: 6px 14px; white-space: nowrap;
}
.tel-chip:hover { background: var(--primary); color: #fff !important; }
.tel-chip::before {
  content: ""; width: 1em; height: 1em; flex: none; background: currentColor;
  -webkit-mask: var(--ic-phone) center/contain no-repeat; mask: var(--ic-phone) center/contain no-repeat;
}
.mail-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--chip-green); color: #1c7a52 !important;
  font-weight: 700; font-size: .88rem; text-decoration: none;
  border-radius: 99px; padding: 6px 14px; white-space: nowrap;
}
.mail-chip:hover { background: var(--green); color: #fff !important; }
.mail-chip::before {
  content: ""; width: 1em; height: 1em; flex: none; background: currentColor;
  -webkit-mask: var(--ic-mail) center/contain no-repeat; mask: var(--ic-mail) center/contain no-repeat;
}
.dir-card__ext { font-size: .82rem; color: var(--ink-3); align-self: center; }
.dir-card__note { font-size: .85rem; color: var(--ink-2); }

/* Ключ–значение (бывшие 2-колоночные таблицы) */
.kv { margin: 1.4em 0; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.kv > div {
  display: grid; grid-template-columns: minmax(180px, 40%) 1fr; gap: 18px;
  padding: 13px 18px; background: var(--card); font-size: .95rem;
}
.kv > div:nth-child(even) { background: #f7fafc; }
.kv > div + div { border-top: 1px solid var(--line); }
.kv dt { margin: 0; color: var(--ink-2); font-weight: 500; }
.kv dd { margin: 0; font-weight: 700; }
@media (max-width: 560px) {
  .kv > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Обёртка для оставшихся таблиц */
.table-wrap { overflow-x: auto; margin: 1.4em 0; }
.table-wrap > table { margin: 0; }

html.a11y .dir-card, html.a11y .kv, html.a11y .kv > div { background: #fff !important; border-color: #000 !important; }
html.a11y .tel-chip { background: #000 !important; color: #fff !important; }

/* ---------- Руководство ---------- */
.ceo-card {
  display: grid; grid-template-columns: 200px 1fr; gap: 28px;
  background: var(--card); border-radius: var(--r-lg); overflow: hidden;
  box-shadow: var(--shadow); padding: 28px;
  position: relative;
}
.ceo-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--aurora); }
.ceo-card__photo {
  width: 200px; height: 260px; object-fit: cover; object-position: 50% 20%; border-radius: 16px;
  background: var(--chip-blue);
}
.ceo-card__kicker { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3); margin-bottom: 8px; }
.ceo-card h3 { font-size: 1.45rem; margin: 0 0 4px; text-wrap: balance; overflow-wrap: normal; hyphens: none; }
.ceo-card__role { color: var(--ink-2); margin-bottom: 14px; }
.ceo-card__visit {
  display: inline-flex; gap: 9px; align-items: center;
  background: var(--chip-green); color: #1c7a52; font-weight: 600; font-size: .88rem;
  border-radius: 12px; padding: 9px 14px; margin-bottom: 16px;
}
.ceo-card__visit svg { width: 16px; height: 16px; flex: none; }
.ceo-card__contacts { display: flex; flex-wrap: wrap; gap: 10px; }
@media (max-width: 700px) {
  .ceo-card { grid-template-columns: 1fr; padding: 20px; }
  .ceo-card__photo { width: 132px; height: 172px; }
}

.person-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr)); gap: 14px; margin: 1.2em 0 2em; }
.prose .person-grid { max-width: none; }
.person-card {
  display: flex; flex-direction: column;
  background: var(--card); border-radius: var(--r); padding: 18px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
}
.person-card__head { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 12px; }
.person-card__id { flex: 1; min-width: 0; }
.person-card__ava {
  flex: none; width: 52px; height: 52px; border-radius: 16px;
  display: grid; place-items: center;
  background: linear-gradient(140deg, var(--chip-blue), #d9f0e6);
  color: var(--primary-strong); font: 700 1rem var(--font-display);
}
.person-card__ava--link { padding: 0; overflow: hidden; }
.person-card__ava--link { cursor: zoom-in; }
.person-card__ava--link img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; display: block; }
.person-card h4 { margin: 0; font-size: .86rem; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.person-card__role { font-size: .84rem; color: var(--ink-2); line-height: 1.4; margin-top: 4px; }
.person-card__contacts {
  display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
  margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line);
}
.person-card__phone-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.person-card__mail { font-size: .85rem; font-weight: 600; word-break: break-all; }
html.a11y .ceo-card, html.a11y .person-card { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .ceo-card__photo { display: none !important; }

/* ---------- Медорганизации: карточки ---------- */
.org-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 14px; margin: 1em 0 2.2em; }
.prose .org-grid, .prose .org-toolbar, .prose .toc { max-width: none; }
.org-card {
  display: flex; flex-direction: column; gap: 9px;
  background: var(--card); border-radius: var(--r); padding: 18px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
}
.org-card__top { display: flex; gap: 8px; }
.org-card h4 { margin: 0; font-size: .97rem; line-height: 1.35; }
.org-card__doc { font-size: .85rem; color: var(--ink-2); }
.org-card__addr { font-size: .87rem; line-height: 1.5; }
.org-card__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); }
.org-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg); color: var(--ink) !important; font-weight: 700; font-size: .88rem;
  text-decoration: none; border-radius: 99px; padding: 6px 14px; white-space: nowrap;
}
.org-chip:hover { background: var(--line); }
html.a11y .org-card { background: #fff !important; border: 2px solid #000 !important; }

/* ---------- Архивы по годам (аккордеоны) ---------- */
details.arch {
  background: var(--card); border-radius: var(--r); margin: 10px 0;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
  overflow: hidden;
}
details.arch > summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: 14px;
  padding: 16px 20px; font: 700 1.15rem var(--font-display); color: var(--ink);
}
details.arch > summary::-webkit-details-marker { display: none; }
details.arch > summary::before {
  content: ""; width: 10px; height: 10px; flex: none;
  border-right: 2.5px solid var(--primary); border-bottom: 2.5px solid var(--primary);
  transform: rotate(-45deg); transition: transform .2s; margin-top: -3px;
}
details.arch[open] > summary::before { transform: rotate(45deg); margin-top: -6px; }
details.arch[open] > summary { color: var(--primary-strong); border-bottom: 1px solid var(--line); }
.arch__count { margin-left: auto; font: 600 .8rem var(--font); color: var(--ink-3); }
.arch__body { padding: 6px 20px 16px; }
.arch__body h4 {
  font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3);
  margin: 1.4em 0 .5em;
}
.arch__body p {
  display: flex; gap: 12px; align-items: baseline; margin: .45em 0;
  font-size: .94rem; line-height: 1.45; flex-wrap: nowrap;
}
.arch__body p strong { flex: none; font-size: .8rem; color: var(--ink-3); min-width: 44px; }
.arch__body p a { flex: 1; min-width: 0; overflow-wrap: anywhere; }
html.a11y details.arch { background: #fff !important; border: 2px solid #000 !important; }

/* ---------- Содержание ---------- */
.toc {
  background: var(--card); border-radius: var(--r); padding: 18px 20px; margin: 0 0 28px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
}
.toc__t { font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--ink-3); margin-bottom: 10px; }
.toc a {
  display: block; padding: 6px 0 6px 16px; position: relative;
  text-decoration: none; color: var(--primary-strong); font-weight: 600; font-size: .93rem; line-height: 1.4;
}
.toc a::before { content: ""; position: absolute; left: 0; top: .95em; width: 7px; height: 2px; background: var(--accent); }
.toc a:hover { color: var(--accent-ink); }
html.a11y .toc { background: #fff !important; border: 2px solid #000 !important; }

/* Лид-абзац (вводка страницы) */
.prose .prose-lead {
  font-size: 1.13rem; line-height: 1.6; color: var(--ink);
  font-weight: 500; margin: 0 0 1.2em;
  padding-left: 18px; border-left: 4px solid var(--accent);
}
.prose > ul.dash { list-style: none; }

/* Псевдозаголовки (бывшие жирные абзацы) */
.prose h3.prose-h { font-size: 1.18rem; margin: 1.7em 0 .5em; color: var(--primary-strong); }
.prose h3.prose-h::before {
  content: ""; display: inline-block; width: 16px; height: 3px; border-radius: 2px;
  background: var(--aurora); vertical-align: middle; margin-right: 10px;
}

/* Карточки категорий (таблица «категория → документы») */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: 14px; margin: 1.4em 0 2em; }
.prose .cat-grid { max-width: none; }
.cat-card {
  background: var(--card); border-radius: var(--r); padding: 18px 20px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
  border-top: 3px solid transparent; border-image: var(--aurora) 1;
}
.cat-card h4 { margin: 0 0 8px; font-size: 1rem; color: var(--primary-strong); line-height: 1.35; }
.cat-card__body { font-size: .92rem; color: var(--ink-2); line-height: 1.55; }
.cat-card__body p { margin: .3em 0; }
html.a11y .cat-card { background: #fff !important; border: 2px solid #000 !important; }

/* Карточки медорганизаций (расписание из большой таблицы) */
.mo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin: 1.4em 0 2em; }
.prose .mo-grid { max-width: none; }
.mo-card {
  background: var(--card); border-radius: var(--r); padding: 16px 18px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
  display: flex; flex-direction: column; gap: 7px;
}
.mo-card h4 { margin: 0 0 4px; font-size: .95rem; line-height: 1.35; color: var(--primary-strong); overflow-wrap: anywhere; }
.mo-card__row { display: grid; grid-template-columns: 1fr; gap: 1px; font-size: .85rem; line-height: 1.45; padding-top: 5px; border-top: 1px solid var(--line); }
.mo-card__lab { color: var(--ink-3); font-size: .78rem; }
.mo-card__row span:last-child { font-weight: 600; overflow-wrap: anywhere; }
/* Районы — сворачиваемые блоки; карточки внутри в сетку */
.mo-districts { display: flex; flex-direction: column; gap: 10px; margin: 1.4em 0 2em; }
.mo-districts > details.sec { margin: 0; }
.mo-districts > details.sec[open] > summary { margin-bottom: 4px; }
.mo-districts .mo-grid { margin: 0 0 4px; }
/* Филиалы / подразделения внутри карточки — каждая локация со своим графиком */
.mo-loc { display: flex; flex-direction: column; gap: 1px; padding-top: 6px; margin-top: 5px; border-top: 1px dashed var(--line-2); }
.mo-loc strong { font-size: .86rem; line-height: 1.35; overflow-wrap: anywhere; }
.mo-loc span { font-size: .82rem; color: var(--ink-2); overflow-wrap: anywhere; }
html.a11y .mo-card { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .mo-loc { border-top-color: #000 !important; }

/* Секции-аккордеоны (длинные страницы: полис, условия помощи) */
.prose details.sec {
  background: var(--card); border-radius: var(--r); margin: 10px 0;
  box-shadow: var(--card-shadow); overflow: hidden; max-width: none;
}
.prose details.sec > summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: 14px;
  padding: 16px 22px; font-weight: 800; font-size: 1.08rem; color: var(--primary-strong);
  line-height: 1.35;
}
.prose details.sec > summary::-webkit-details-marker { display: none; }
.prose details.sec > summary::after {
  content: ""; flex: none; margin-left: auto; width: 11px; height: 11px;
  border-right: 2.5px solid var(--primary); border-bottom: 2.5px solid var(--primary);
  transform: rotate(45deg); transition: transform .2s;
}
.prose details.sec[open] > summary::after { transform: rotate(-135deg); }
.prose details.sec[open] > summary { border-bottom: 1px solid var(--line); }
.sec__body { padding: 6px 22px 18px; }
.sec__body > :first-child { margin-top: .6em; }
html.a11y .prose details.sec { background: #fff !important; border: 2px solid #000 !important; }

/* Юридический нумерованный перечень с вложенными под-пунктами */
.prose ol.legal-list {
  list-style: none; counter-reset: ll; padding: 0; margin: 1em 0;
  display: grid; gap: 12px; max-width: none;
}
.prose ol.legal-list > li {
  counter-increment: ll; position: relative; padding-left: 40px;
  line-height: 1.55;
}
.prose ol.legal-list > li::before {
  content: counter(ll) ")"; position: absolute; left: 0; top: 0;
  min-width: 30px; font-weight: 800; color: var(--accent-ink);
  font-variant-numeric: tabular-nums;
}
.prose ol.legal-list ul.legal-sub {
  list-style: none; margin: 8px 0 2px; padding: 0;
  display: grid; gap: 5px;
}
.prose ol.legal-list ul.legal-sub > li {
  position: relative; padding-left: 18px; color: var(--ink-2); line-height: 1.5;
}
.prose ol.legal-list ul.legal-sub > li::before {
  content: ""; position: absolute; left: 2px; top: .62em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--primary);
}
html.a11y .prose ol.legal-list > li::before { color: #000; }
html.a11y .prose ol.legal-list ul.legal-sub > li::before { background: #000; }

/* Вакансии — раскрывающиеся блоки («римские шторы») */
.vacancy-list { margin: 1.4em 0; }
.prose .vacancy-list { max-width: none; }
details.vacancy {
  background: var(--card); border-radius: var(--r); margin: 10px 0;
  box-shadow: var(--card-shadow); overflow: hidden; border-left: 3px solid transparent;
}
details.vacancy[open] { border-left-color: var(--accent); }
details.vacancy > summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: 14px;
  padding: 18px 22px; flex-wrap: wrap;
}
details.vacancy > summary::-webkit-details-marker { display: none; }
details.vacancy > summary::after {
  content: ""; flex: none; margin-left: auto; width: 11px; height: 11px;
  border-right: 2.5px solid var(--primary); border-bottom: 2.5px solid var(--primary);
  transform: rotate(45deg); transition: transform .2s;
}
details.vacancy[open] > summary::after { transform: rotate(-135deg); }
.vacancy__title { font-weight: 800; font-size: 1.05rem; line-height: 1.35; color: var(--primary-strong); }
.vacancy__meta {
  font-size: .8rem; font-weight: 700; color: #1c7a52;
  background: var(--chip-green); border-radius: 99px; padding: 4px 12px;
}
.vacancy__meta--sal { color: var(--primary-strong); background: var(--chip-blue, #e8f2fb); }
.vacancy__body { padding: 10px 22px 22px; border-top: 1px solid var(--line); }
.vacancy__body > p { margin: .55em 0; line-height: 1.55; }
.vac-occ { color: var(--ink-3); font-size: .88rem; margin: .2em 0 .2em !important; }
.vac-sub {
  font-weight: 800; color: var(--primary-strong); font-size: .82rem;
  text-transform: uppercase; letter-spacing: .04em;
  margin: 1.1em 0 .4em !important;
}
.vac-list { list-style: none; margin: .2em 0 .4em; padding: 0; display: grid; gap: 6px; }
.vac-list > li { position: relative; padding-left: 18px; line-height: 1.5; color: var(--ink-2); }
.vac-list > li::before {
  content: ""; position: absolute; left: 2px; top: .62em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--accent);
}
.vac-salary {
  margin: 1.2em 0 .4em !important; padding: 12px 16px;
  background: var(--chip-green); border-radius: 12px;
  font-weight: 700; color: #1c7a52;
}
.vac-apply {
  margin-top: 1.2em; padding-top: 1.1em; border-top: 1px dashed var(--line);
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.vac-apply__consent {
  flex: 1 0 100%; display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; background: var(--chip-blue); border-radius: 12px;
  color: var(--ink-2); font-size: .88rem; line-height: 1.45; cursor: pointer;
}
.vac-apply__consent input, .vacancy-consent__check input {
  flex: none; width: 19px; height: 19px; margin: 1px 0 0; accent-color: var(--primary);
}
.vac-apply__btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--primary); color: #fff !important; font-weight: 700;
  padding: 11px 20px; border-radius: 12px; text-decoration: none;
  transition: background .15s, transform .15s;
}
.vac-apply__btn:hover { background: var(--primary-strong); transform: translateY(-1px); }
.vac-apply__btn.is-disabled {
  opacity: .5; cursor: not-allowed; pointer-events: none; transform: none;
}
.vac-apply__tel { margin: 0 !important; color: var(--ink-2); font-size: .92rem; }
.vacancy-consent {
  margin: 18px 0 10px; padding: 20px 22px; background: var(--card);
  border: 1px solid var(--line); border-left: 4px solid var(--accent);
  border-radius: var(--r); box-shadow: var(--card-shadow);
}
.vacancy-consent h3 { margin: 0 0 8px; font-size: 1rem; color: var(--primary-strong); }
.vacancy-consent p { margin: .55em 0; line-height: 1.5; }
.vacancy-consent__check {
  display: flex; align-items: flex-start; gap: 10px; margin: 14px 0;
  padding: 13px 14px; background: var(--chip-green); border-radius: 12px;
  font-weight: 650; color: var(--ink); cursor: pointer;
}
.vacancy-consent__meta { color: var(--ink-2); font-size: .86rem; }
html.a11y details.vacancy { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .vac-apply__btn { background: #000 !important; }
html.a11y .vacancy-consent, html.a11y .vac-apply__consent { border: 2px solid #000 !important; background: #fff !important; }
html.a11y .vac-list > li::before { background: #000; }

/* Кадровый резерв: документы отбора + архив прошлых отборов */
.reserve-docs { margin: 1.6em 0; }
.reserve-docs > ul { list-style: none; padding: 0; margin: .4em 0 0; display: grid; gap: 8px; }
.reserve-docs > ul > li {
  padding: 12px 16px; background: var(--card); border: 1px solid var(--line);
  border-radius: 12px;
}
.reserve-docs > ul > li > a { font-weight: 600; }
details.reserve-arch { margin-top: 1.4em; }
.arch-otbor { padding: 14px 0; border-bottom: 1px solid var(--line); }
.arch-otbor:last-child { border-bottom: 0; }
.arch-otbor h4 { margin: 0 0 .4em; font-size: 1rem; color: var(--primary-strong); }
.arch-otbor p { margin: .3em 0; color: var(--ink-2); }

/* Вложения */
.attachments { margin-top: 40px; }
.attachments h2 { font-size: 1.2rem; }
.att-grid { display: flex; flex-direction: column; gap: 10px; }
/* Схемы, приложенные картинкой (оргструктура и т. п.): показываем на странице,
   по клику — оригинал в полном размере. */
.att-images { display: flex; flex-direction: column; gap: 18px; }
.att-image { margin: 0; }
.att-image img {
  display: block; width: 100%; height: auto; border-radius: 14px;
  border: 1px solid var(--line); background: #fff;
}
.att-image figcaption { margin-top: 8px; font-size: .85rem; }
.att-image figcaption a { color: var(--primary-strong); }

/* FAQ-аккордеон */
details.faq {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 0; margin: 10px 0; overflow: hidden;
}
details.faq summary {
  cursor: pointer; list-style: none; display: flex; gap: 14px; align-items: center;
  padding: 17px 20px; font-weight: 700; font-size: .98rem; line-height: 1.4;
}
details.faq summary::-webkit-details-marker { display: none; }
details.faq summary::before {
  content: "+"; flex: none; width: 28px; height: 28px; border-radius: 50%;
  display: grid; place-items: center; background: var(--chip-blue); color: var(--primary);
  font-weight: 800; transition: transform .2s;
}
details.faq[open] summary::before { content: "–"; transform: rotate(180deg); }
details.faq[open] summary { color: var(--primary-strong); }
details.faq .faq__body { padding: 0 20px 18px 62px; }

/* Фильтры каталога документов */
.filters {
  display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 16px 18px; margin-bottom: 26px; box-shadow: var(--shadow);
}
.filters input[type="search"], .filters select {
  font: 500 .95rem var(--font); color: var(--ink);
  border: 1px solid var(--line-2); border-radius: 11px; padding: 10px 14px; background: #fff;
}
.filters input[type="search"] { flex: 1 1 240px; }
.filters select { flex: 0 0 auto; }
.filters__count { margin-left: auto; font-size: .85rem; color: var(--ink-2); white-space: nowrap; }
.seg { display: inline-flex; background: var(--bg); border-radius: 11px; padding: 3px; gap: 2px; }
.seg button {
  font: 600 .87rem var(--font); border: 0; background: none; cursor: pointer;
  padding: 8px 15px; border-radius: 9px; color: var(--ink-2);
}
.seg button[aria-pressed="true"] { background: var(--primary); color: #fff; }

/* Табы лет */
.year-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.year-tab {
  font: 700 .92rem var(--font-display); letter-spacing: .03em;
  text-decoration: none; color: var(--ink-2);
  border: 1px solid var(--line); background: var(--card);
  padding: 9px 16px; border-radius: 11px;
}
.year-tab:hover { border-color: var(--accent); color: var(--primary); }
.year-tab[aria-current] { background: var(--primary); border-color: var(--primary); color: #fff; }

/* Список новостей по месяцам */
.month-block { margin-bottom: 34px; }
.month-block > h2 {
  font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; color: var(--ink-3);
  display: flex; align-items: center; gap: 14px;
}
.month-block > h2::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.news-line {
  display: grid; grid-template-columns: 92px 1fr; gap: 18px; align-items: baseline;
  padding: 13px 16px; border-radius: 12px; text-decoration: none; color: var(--ink);
}
.news-line:hover { background: var(--card); box-shadow: var(--shadow); color: var(--primary-strong); }
.news-line__date { font-size: .82rem; font-weight: 700; color: var(--ink-3); white-space: nowrap; }
.news-line__title { font-weight: 600; font-size: .97rem; line-height: 1.45; }

/* Карточка новости */
.article-meta { display: flex; gap: 12px; align-items: center; margin-bottom: 26px; flex-wrap: wrap; }
.article-nav {
  display: flex; justify-content: space-between; gap: 16px; margin-top: 48px;
  padding-top: 24px; border-top: 1px solid var(--line);
}
.article-nav a { text-decoration: none; font-weight: 600; font-size: .92rem; max-width: 44%; }
.article-nav__next { text-align: right; }

/* Пагинация / показать ещё */
.more-btn { display: flex; width: fit-content; margin: 30px auto 0; }

/* Поиск-оверлей */
.search-overlay {
  position: fixed; inset: 0; z-index: 300; display: none;
  background: rgba(6, 39, 66, .55); backdrop-filter: blur(8px);
  padding: 8vh 20px;
}
.search-overlay.open { display: block; animation: ovl .2s ease; }
@keyframes ovl { from { opacity: 0; } }
.search-panel {
  max-width: 760px; margin-inline: auto;
  background: var(--card); border-radius: 20px; overflow: hidden;
  box-shadow: var(--shadow-lg);
  display: flex; flex-direction: column; max-height: 82vh;
  animation: pop .28s cubic-bezier(.2, .9, .3, 1.1);
}
@keyframes pop { from { opacity: 0; transform: translateY(16px) scale(.97); } }
.search-head {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 20px; border-bottom: 1px solid var(--line);
}
.search-head > svg { width: 22px; height: 22px; color: var(--ink-3); flex: none; }
.search-head input {
  flex: 1; border: 0; outline: none; background: none;
  font: 600 1.12rem var(--font); color: var(--ink); min-width: 0;
}
/* a11y: видимый фокус для безрамочного поля поиска — подсвечиваем нижнюю границу строки */
.search-head:focus-within { border-bottom-color: var(--accent); box-shadow: inset 0 -2px 0 0 var(--accent); }
.search-head input::placeholder { color: var(--ink-3); font-weight: 400; }
.search-close {
  flex: none; width: 36px; height: 36px; border-radius: 10px; border: 0;
  background: var(--bg); color: var(--ink-2); font-size: 1rem; cursor: pointer;
}
.search-close:hover { background: var(--chip-blue); color: var(--primary); }
.search-hints { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 20px 4px; }
.hint-chip {
  font: 600 .82rem var(--font); color: var(--primary-strong);
  background: var(--chip-blue); border: 0; border-radius: 99px;
  padding: 7px 14px; cursor: pointer;
}
.hint-chip:hover { background: var(--primary); color: #fff; }
.search-results { overflow-y: auto; padding: 10px 8px; flex: 1; }
.search-results a {
  display: flex; gap: 12px; align-items: center;
  padding: 11px 14px; border-radius: 12px;
  text-decoration: none; color: var(--ink); font-size: .94rem;
}
.search-results a:hover, .search-results a.active { background: var(--chip-blue); }
.sres__t { min-width: 0; }
.sres__t small { display: block; color: var(--ink-3); font-size: .76rem; margin-top: 1px; }
.skind {
  flex: none; font-size: .67rem; font-weight: 700; letter-spacing: .03em;
  border-radius: 7px; padding: 4px 8px; min-width: 76px; text-align: center;
}
.sk-n { background: var(--chip-blue); color: var(--primary-strong); }
.sk-d { background: #fdecec; color: #a33030; }
.sk-p { background: var(--chip-green); color: #1c7a52; }
.sk-o { background: #e6f6fa; color: #0b6c85; } /* a11y: затемнён с #0d7f9e → 5.41:1 */
.search-results__empty { padding: 26px 20px; color: var(--ink-2); font-size: .92rem; }
.search-foot {
  display: flex; gap: 16px; align-items: center;
  padding: 10px 20px; border-top: 1px solid var(--line);
  font-size: .74rem; color: var(--ink-3);
}
.search-foot .spacer { flex: 1; }
.search-foot kbd {
  font: 600 .7rem var(--font); color: var(--ink-2);
  background: var(--bg); border: 1px solid var(--line-2); border-bottom-width: 2px;
  border-radius: 6px; padding: 2px 7px;
}
@media (max-width: 640px) {
  .search-overlay { padding: 12px 10px calc(80px + env(safe-area-inset-bottom, 0)); }
  .search-panel { max-height: calc(100dvh - 110px); border-radius: 16px; }
  .search-foot .kbd-hint { display: none; }
  .skind { min-width: 0; }
}

/* ============================================================
   Подвал
   ============================================================ */
.footer { background: var(--night); color: #b6cfde; margin-top: auto; }
.footer__main { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 36px; padding-block: 56px 40px; }
.footer__col-t { color: #fff; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 16px; }
.footer a { color: #cfe2f0; text-decoration: none; }
.footer a:hover { color: #92d36e; }
.footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; font-size: .9rem; }
.footer__brand { display: flex; gap: 13px; align-items: start; margin-bottom: 18px; color: #fff; font-weight: 700; line-height: 1.3; }
.footer__brand svg { width: 42px; height: 42px; flex: none; }
.footer__requisites {
  margin: 14px 0 0; color: #9fb9ca; font-size: .82rem; line-height: 1.55;
  font-variant-numeric: tabular-nums; display: grid; gap: 1px;
}
.footer__requisites strong { color: #d8e7f0; margin-bottom: 2px; }
.footer__requisites span { display: block; }
.footer__phone { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; color: #fff !important; }
.footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, .12);
  padding-block: 20px; font-size: .8rem; color: #7d9cb3;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  text-align: center;
}
.footer__staff-links { display: flex; justify-content: center; gap: 20px; flex-wrap: wrap; }
.footer__staff-link { color: #33506a; text-decoration: none; font-size: .74rem; }
.footer__staff-link:hover { color: #7d9cb3; text-decoration: underline; }
.soc { display: flex; gap: 10px; margin-top: 16px; }
.soc a { display: block; border-radius: 11px; transition: transform .15s; }
.soc a:hover { transform: translateY(-2px); }
.soc img { display: block; border-radius: 9px; }

/* ============================================================
   Версия для слабовидящих (ГОСТ Р 52872-2019)
   ============================================================ */
.a11y-panel {
  display: none; background: #fff; border-bottom: 3px solid #000;
  padding-block: 14px; font-size: 1rem;
}
.a11y-panel .wrap { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.a11y-panel fieldset { border: 0; padding: 0; margin: 0; display: flex; gap: 8px; align-items: center; }
.a11y-panel legend { float: left; margin-right: 10px; font-weight: 700; }
.a11y-panel button {
  font: 700 1rem var(--font); border: 2px solid #000; background: #fff; color: #000;
  padding: 6px 14px; cursor: pointer; min-width: 44px;
}
.a11y-panel button[aria-pressed="true"] { background: #000; color: #fff; }
.a11y-panel .a11y-close { margin-left: auto; }

html.a11y { --fs: 19px; }
html.a11y body { background: #fff !important; color: #000 !important; }
html.a11y .a11y-panel { display: block; }
html.a11y.a11y-fs2 { --fs: 23px; }
html.a11y.a11y-fs3 { --fs: 27px; }
html.a11y * {
  background-image: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  animation: none !important;
  transition: none !important;
}
html.a11y body, html.a11y .section--alt, html.a11y .news-card, html.a11y .doc-row,
html.a11y .svc, html.a11y .filters, html.a11y details.faq, html.a11y .city-chip {
  background: #fff !important; color: #000 !important; border-color: #000 !important;
}
html.a11y .hero, html.a11y .page-hero, html.a11y .hotline, html.a11y .footer,
html.a11y .topbar, html.a11y .stat, html.a11y .header { background: #fff !important; color: #000 !important; }
html.a11y .hero *, html.a11y .page-hero *, html.a11y .hotline *, html.a11y .footer *,
html.a11y .topbar *, html.a11y .stat *, html.a11y .task, html.a11y .task small { color: #000 !important; }
html.a11y .task, html.a11y .stat { border: 2px solid #000 !important; }
html.a11y a, html.a11y .nav__btn { color: #00007a !important; text-decoration: underline !important; }
html.a11y .btn, html.a11y .btn-lk, html.a11y .date-chip, html.a11y .badge, html.a11y .file-ic,
html.a11y .year-tab[aria-current], html.a11y .seg button[aria-pressed="true"] {
  background: #000 !important; color: #fff !important; border: 2px solid #000 !important;
}
html.a11y img:not(.a11y-keep), html.a11y .hero::before, html.a11y .hero::after { display: none !important; }
html.a11y .header { position: static; }
/* в режиме для слабовидящих кнопка-дубль не нужна — управление в панели сверху */
html.a11y .btn-eye { display: none !important; }
html.a11y-invert.a11y body, html.a11y-invert.a11y .header, html.a11y-invert.a11y section,
html.a11y-invert.a11y .news-card, html.a11y-invert.a11y .doc-row { background: #000 !important; color: #fff !important; }
html.a11y-invert.a11y * { color: #fff !important; border-color: #fff !important; background: #000 !important; }
html.a11y-invert.a11y a { color: #80c4ff !important; }

/* ============================================================
   Адаптивность
   ============================================================ */
@media (max-width: 1500px) {
  /* личный кабинет — только иконка, чтобы меню всегда умещалось в строку */
  .btn-lk span { display: none; }
  .btn-lk { padding: 10px 12px; }
}
@media (max-width: 1380px) {
  /* на средних экранах меню переезжает в бургер — без сжатия и переносов */
  .nav { display: none; }
  .burger { display: inline-flex; }
  .nav.open {
    display: flex; flex-direction: column; gap: 6px; position: fixed;
    inset: 0; width: 100%; z-index: 250;
    background: var(--card); padding: 22px 20px 110px; overflow-y: auto;
    margin: 0;
  }
  .nav.open > div { border-bottom: 1px solid var(--line); padding-bottom: 6px; }
  .nav.open .mega {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; display: none;
  }
  .nav.open > div[aria-expanded="true"] .mega { display: block; }
  .nav.open .mega__inner { grid-template-columns: 1fr; gap: 16px; padding: 4px 0 14px; max-width: none; }
  .nav.open .mega__col a { margin-left: 0; padding: 11px 12px; }
  .nav.open .nav__btn {
    width: 100%; justify-content: space-between; font-size: 1.08rem; padding: 13px 10px;
    white-space: normal;
  }
}
@media (max-width: 1080px) {
  .tasks { grid-template-columns: repeat(3, 1fr); }
  .news-grid { grid-template-columns: repeat(2, 1fr); }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .footer__main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  /* верхняя панель: одна ровная строка — телефон слева, кнопка справа */
  .topbar__office, .topbar__spacer { display: none; }
  /* justify-content: flex-start + margin-left: auto на первой кнопке, а не
     space-between — на этой ширине в строке три элемента (телефон, тема, глаз),
     и space-between растягивал разрыв между двумя круглыми кнопками */
  .topbar .wrap { flex-wrap: nowrap; justify-content: flex-start; gap: 10px; min-height: 42px; }
  .topbar .btn-theme { margin-left: auto; }
  .topbar__phone { font-size: .8rem; }
  .btn-eye { font-size: .76rem; padding: 4px 11px; gap: 6px; flex: none; }
  .header { backdrop-filter: none; background: #fff; }
  .layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .layout > * { min-width: 0; }
  .sidebar { position: static; order: 2; margin-top: 48px; }
  .nav { display: none; }
  .burger { display: inline-flex; }
  .nav.open {
    display: flex; flex-direction: column; gap: 6px; position: fixed;
    inset: 0; width: 100%; z-index: 250;
    background: var(--card); padding: 22px 20px 110px; overflow-y: auto;
    margin: 0;
  }
  .nav.open > div { border-bottom: 1px solid var(--line); padding-bottom: 6px; }
  .nav.open .mega {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; display: none;
  }
  .nav.open > div[aria-expanded="true"] .mega { display: block; }
  .nav.open .mega__inner { grid-template-columns: 1fr; gap: 16px; padding: 4px 0 14px; max-width: none; }
  .nav.open .mega__col a { margin-left: 0; padding: 11px 12px; }
  .nav.open .nav__btn {
    width: 100%; justify-content: space-between; font-size: 1.08rem; padding: 13px 10px;
  }
  .svc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  :root { --fs: 16px; }
  .wrap { padding-inline: 16px; }
  .topbar .wrap { padding-inline: 14px; }
  .topbar__phone { font-size: .78rem; }
  .header .wrap { gap: 10px; padding-inline: 16px; }
  .brand { gap: 9px; }
  .brand__logo { width: 38px; height: 38px; }
  .brand__name { font-size: .86rem; }
  .brand__sub { font-size: .75rem; }   /* было .64rem = 10.24px, ниже читаемого минимума 12px */
  .header__actions { gap: 8px; }
  /* a11y: тач-таргеты основных кнопок шапки ≥44px (WCAG 2.5.5 / ГОСТ) */
  .icon-btn { width: 44px; height: 44px; }
  .btn-eye { min-height: 44px; width: 44px; padding-block: 0; }
  .btn-lk { padding: 12px; min-height: 44px; min-width: 44px; justify-content: center; }
  .tasks { grid-template-columns: repeat(2, 1fr); }
  .news-grid { grid-template-columns: 1fr; }
  .stats { grid-template-columns: 1fr 1fr; gap: 12px; }
  .footer__main { grid-template-columns: 1fr; gap: 28px; }
  .doc-row { grid-template-columns: 44px minmax(0, 1fr); }
  .doc-row__meta {
    grid-column: 2; flex-direction: row; align-items: center;
    flex-wrap: wrap; white-space: normal; justify-content: start;
  }
  .file-ic { width: 44px; height: 44px; }
  .news-line { grid-template-columns: 1fr; gap: 4px; }
  .filters .seg { width: 100%; display: grid; grid-template-columns: repeat(3, 1fr); }
  .filters .seg button { min-width: 0; padding: 9px 4px; overflow-wrap: anywhere; }
  .filters select { flex: 1 1 45%; }
  .hero .wrap { padding-block: 46px 56px; }
  .btn-lk span { display: none; }
  .topbar__office { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html { scroll-behavior: auto; }
}

/* Страховка для длинных названий, URL и увеличенного шрифта. */
.mega__col a,
.footer a,
.footer li,
.footer__brand span,
.prose,
.doc-row__title { overflow-wrap: anywhere; }

@media (max-width: 420px) {
  /* Поиск и меню остаются в нижней панели; шапка не давит бренд. */
  .header__actions [data-search-open] { display: none; }
  .header__actions .burger { display: none; }
  .brand__sub { display: none; }
  .filters .seg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tasks, .stats { grid-template-columns: 1fr; }
  .doc-row.ql-able, .att-card.ql-able { padding-right: 54px; }
}

@media (max-width: 340px) {
  .header .btn-lk { display: none; }
}

/* ============================================================
   Степперы «как получить услугу»
   ============================================================ */
.steps { margin: 0 0 44px; }
.steps__title { font-size: 1.2rem; margin-bottom: 18px; }
.steps ol {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px;
  counter-reset: step;
}
.steps li {
  counter-increment: step; position: relative;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 20px 18px 18px;
}
.steps li::before {
  content: counter(step);
  display: grid; place-items: center;
  width: 38px; height: 38px; border-radius: 50%; margin-bottom: 14px;
  background: var(--chip-blue); color: var(--primary-strong);
  font: 700 1.05rem var(--font-display);
}
.steps li:not(:last-child)::after {
  /* центр стрелки = центр кружка с цифрой: padding-top(20) + половина кружка(19) = 39,
     минус половина размера самой стрелки(6), т.к. top отсчитывается от её угла, а не центра */
  content: ""; position: absolute; top: 34px; right: -18px; z-index: 1;
  width: 10px; height: 10px; border-top: 2px solid var(--ink-3); border-right: 2px solid var(--ink-3); opacity: .55;
  transform: rotate(45deg);
}
.steps h4 { margin: 0 0 6px; font-size: 1rem; }
.steps p { margin: 0; font-size: .87rem; color: var(--ink-2); line-height: 1.5; }
.steps__hint {
  display: flex; align-items: center; gap: 8px; margin-top: 16px;
  padding: 10px 16px; border-radius: 99px; background: var(--chip-blue);
  font-size: .85rem; font-weight: 600; color: var(--primary-strong); width: fit-content;
}
.steps__hint::before { content: "↓"; font-weight: 700; }
html.a11y .steps li { border-color: #000 !important; }
html.a11y .steps li::before { background: #000 !important; color: #fff !important; }
html.a11y .steps li::after { border-color: #000 !important; }
html.a11y .steps__hint { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }
@media (max-width: 900px) {
  .steps ol { grid-template-columns: 1fr; gap: 20px; }
  .steps li { display: grid; grid-template-columns: 38px 1fr; gap: 0 16px; padding: 16px; }
  .steps li::before { margin: 0; grid-row: span 2; }
  .steps li:not(:last-child)::after {
    top: auto; bottom: -15px; left: 18px; right: auto;
    transform: rotate(135deg);
  }
  .steps h4, .steps p { grid-column: 2; }
}

/* ============================================================
   Обложки и рубрики новостей
   ============================================================ */
.news-card { padding: 0; overflow: hidden; }
.news-card__cover { position: relative; height: 96px; }
.news-card__cover svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.news-card__body { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 20px; flex: 1; }
.cat-chip {
  position: absolute; left: 14px; bottom: 12px;
  font-size: .72rem; font-weight: 700; letter-spacing: .04em;
  background: rgba(255, 255, 255, .92); color: var(--primary-strong);
  border-radius: 99px; padding: 4px 12px;
}
.article-meta .cat-chip { position: static; background: var(--chip-green); color: #1c7a52; }
/* На мобильных поднимаем до читаемых 12px. Правило ниже объявления .cat-chip:
   при равной специфичности побеждает последнее. */
@media (max-width: 900px) {
  .cat-chip { font-size: .78rem; }
}
html.a11y .news-card__cover { display: none !important; }

/* ============================================================
   Карта Югры
   ============================================================ */
.ymap-wrap {
  background:
    radial-gradient(120% 90% at 50% -20%, #f3f8fc, var(--card));
  border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: var(--shadow); padding: 26px 26px 18px; margin-bottom: 30px;
}
.ymap-wrap h2 { font-size: 1.15rem; margin-bottom: 4px; }
.ymap-wrap > p { margin: 0 0 14px; font-size: .85rem; color: var(--ink-3); }
.ymap { width: 100%; height: auto; display: block; overflow: visible; }
.ymap__neighbor { fill: #e4e9ee; stroke: #d3dbe2; stroke-width: 1; }
.ymap__region { fill: url(#ymap-fill); stroke: none; }
.ymap__region-line { fill: none; stroke: #3f78a6; stroke-width: 1.8; stroke-linejoin: round; }
.map-city { cursor: pointer; }
.map-city .dot {
  fill: var(--primary); stroke: #fff; stroke-width: 2;
  transition: r .15s, fill .15s;
}
.map-city .dot--cap { fill: var(--danger); stroke: #fff; stroke-width: 2.5; }
.map-city .dot-core { fill: #fff; pointer-events: none; }
.map-city .halo { fill: var(--accent); opacity: 0; transition: opacity .18s, r .18s; }
.map-city--capital .halo { fill: var(--danger); }
.map-city text {
  font: 700 14px var(--font); fill: var(--ink-2);
  paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round;
  opacity: 0; transition: opacity .15s; pointer-events: none;
}
.map-city--capital .lbl--cap { opacity: 1; fill: var(--primary-deep); font-size: 15px; }
.map-city.is-active .lbl, .map-city:hover .lbl, .map-city:focus .lbl { opacity: 1; fill: var(--primary-strong); }
.map-city:hover .dot, .map-city:focus .dot, .map-city.is-active .dot { fill: var(--green); r: 8; }
.map-city--capital:hover .dot--cap { fill: var(--danger); }
.map-city:hover .halo, .map-city:focus .halo { opacity: .28; r: 18; }
.map-city:hover text, .map-city:focus text { opacity: 1; fill: var(--primary-strong); }
@media (prefers-reduced-motion: no-preference) {
  .map-city--capital .halo { opacity: .18; animation: cap-pulse 2.4s ease-in-out infinite; }
}
@keyframes cap-pulse { 0%,100% { r: 13; opacity: .22; } 50% { r: 19; opacity: .06; } }
@media (max-width: 760px) { .ymap-wrap { display: none; } }
html.a11y .ymap-wrap { display: none !important; }

/* ============================================================
   Мобильная нижняя панель (стиль приложения)
   ============================================================ */
.bottombar { display: none; }
@media (max-width: 900px) {
  .bottombar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 260;
    display: grid; grid-template-columns: repeat(5, 1fr);
    background: rgba(255, 255, 255, .96); backdrop-filter: blur(16px);
    border-top: 1px solid var(--line);
    padding-bottom: env(safe-area-inset-bottom, 0);
  }
  .bottombar a, .bottombar button {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 9px 4px 10px; border: 0; background: none; cursor: pointer;
    color: var(--ink-2); text-decoration: none;
    font: 600 .66rem/1 var(--font);
  }
  .bottombar svg { width: 23px; height: 23px; }
  .bottombar a:active, .bottombar button:active { color: var(--primary); transform: translateY(1px); }
  .bottombar .bb-accent { color: var(--primary); }
  body { padding-bottom: calc(64px + env(safe-area-inset-bottom, 0)); }
  .footer { margin-bottom: 0; }
  .nav.open { padding-bottom: 90px; }
  .search-overlay { padding: 16px 14px calc(80px + env(safe-area-inset-bottom, 0)); }
  .search-box input { font-size: 1.05rem; padding: 16px 18px; }
  .search-results { max-height: calc(100vh - 220px); }
}
html.a11y .bottombar { background: #fff !important; border-top: 2px solid #000; }

/* Отклик на касание */
* { -webkit-tap-highlight-color: transparent; }
.task:active, .news-card:active, .doc-row:active, .svc:active,
.city-chip:active, .dir-card:active, .news-line:active { transform: scale(.985); transition: transform .08s; }
.btn:active, .btn-lk:active, .tel-chip:active { transform: scale(.96); }

/* Госуслуги-стиль: мягкие поверхности */
.news-card, .doc-row, .svc, .filters, details.faq, .dir-card { border-color: transparent; box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12); }
.section--alt .news-card { box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12); }
.doc-row:hover, .news-card:hover, .svc:hover { border-color: transparent; box-shadow: 0 2px 4px rgba(7, 53, 95, .07), 0 18px 38px -14px rgba(7, 53, 95, .25); }

/* ============================================================
   Появление при прокрутке + переходы между страницами
   ============================================================ */
@view-transition { navigation: auto; }
.rv { opacity: 0; transform: translateY(16px); transition: opacity .55s ease var(--d, 0ms), transform .55s cubic-bezier(.2, .7, .3, 1) var(--d, 0ms); }
.rv-delay-0 { --d: 0ms; }
.rv-delay-1 { --d: 40ms; }
.rv-delay-2 { --d: 80ms; }
.rv-delay-3 { --d: 120ms; }
.rv-delay-4 { --d: 160ms; }
.rv-delay-5 { --d: 200ms; }
.rv.rv-in { opacity: 1; transform: none; }
html.a11y .rv { opacity: 1 !important; transform: none !important; }
@media (prefers-reduced-motion: reduce) { .rv { opacity: 1; transform: none; } }

/* Таблицы: современные нюансы */
.table-wrap > table tr:hover td { background: #eef5fb; }
.prose table tr:first-child td { background: var(--chip-blue); font-weight: 700; }
.kv > div { transition: background .15s; }
.kv > div:hover { background: var(--chip-blue) !important; }
.dir-card { transition: transform .2s, box-shadow .2s; }
.dir-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(7, 53, 95, .07), 0 16px 34px -14px rgba(7, 53, 95, .24); }
.year-tab { transition: background .15s, border-color .15s, color .15s, transform .15s; }
.year-tab:hover { transform: translateY(-2px); }

/* ============================================================
   Пункты выдачи полисов ОМС
   ============================================================ */
.pp-nav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 30px; }
.pp-nav__btn {
  font: 600 .88rem var(--font); text-decoration: none; color: var(--ink); cursor: pointer;
  background: var(--card); border: 1px solid var(--line); border-radius: 99px; padding: 10px 16px;
  display: inline-flex; align-items: center; min-height: 44px;     /* тач-цель по ГОСТ/WCAG */
  transition: border-color .15s, background .15s, color .15s;
}
.pp-nav__btn:hover { border-color: var(--accent); background: var(--chip-blue); color: var(--primary-strong); }
.pp-nav__btn[aria-pressed="true"] { background: var(--primary); border-color: var(--primary); color: #fff; }
.pp-city { margin-bottom: 30px; }
.pp-city__h { display: flex; align-items: center; gap: 12px; font-size: 1.3rem; margin-bottom: 14px; }
.pp-city__cnt {
  font: 600 .78rem var(--font); color: var(--ink-3);
  background: var(--bg); border-radius: 99px; padding: 3px 11px;
}
.pp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(310px, 100%), 1fr)); gap: 14px; }
.pp-card {
  display: flex; flex-direction: column; gap: 10px; align-items: flex-start;
  background: var(--card); border-radius: var(--r); padding: 18px;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
}
.pp-card__addr { margin: 0; font-weight: 700; font-size: .98rem; line-height: 1.4; display: flex; gap: 9px; }
.pp-card__hours { margin: 0; font-size: .86rem; color: var(--ink-2); line-height: 1.5; display: flex; gap: 9px; }
.pp-card__addr svg, .pp-card__hours svg { width: 17px; height: 17px; flex: none; margin-top: 2px; color: var(--accent); }
.pp-card__hours svg { color: var(--ink-3); }
.tel-chip--static { background: var(--bg); color: var(--ink) !important; cursor: default; }
.tel-chip--static:hover { background: var(--bg); color: var(--ink) !important; }
.smo--sogaz { background: #e2f3ea; color: #1c7a52; }
.smo--kapital { background: #e3eef8; color: #0a4378; }
.smo--alfa { background: #fdecec; color: #a33030; }
.smo--etc { background: var(--bg); color: var(--ink-2); }
.pp-empty { padding: 24px; color: var(--ink-2); text-align: center; }
html.a11y .pp-card, html.a11y .pp-nav__btn { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .badge[class*="smo--"] { background: #000 !important; color: #fff !important; }

/* ============================================================
   «Права и обязанности граждан» — структурная обвязка
   ============================================================ */
[id] { scroll-margin-top: calc(var(--header-h) + 24px); }
.rg-lead {
  font-size: 1.05rem; color: var(--ink-2); max-width: 72ch;
  border-left: 4px solid var(--accent); padding: 4px 0 4px 18px; margin: 0 0 24px;
}
.rg-h { font-size: 1.35rem; margin: 1.9em 0 .7em; }
.rg-h--full { margin-top: 2.4em; padding-top: 1.2em; border-top: 1px solid var(--line); }
.rg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; }
.rg-item {
  display: flex; gap: 14px; align-items: center;
  background: var(--card); border-radius: var(--r); padding: 16px 18px;
  font-weight: 600; font-size: .95rem; line-height: 1.4;
  box-shadow: 0 1px 2px rgba(7, 53, 95, .05), 0 6px 20px -8px rgba(7, 53, 95, .12);
}
.rg-ic {
  flex: none; width: 44px; height: 44px; border-radius: 13px;
  display: grid; place-items: center;
  background: var(--chip-blue); color: var(--primary);
}
.rg-ic svg { width: 24px; height: 24px; }
.duty { list-style: none; margin: 0; padding: 0; counter-reset: duty; max-width: 720px; }
.duty li {
  counter-increment: duty; position: relative;
  background: #fdf8ee; border: 1px solid #ecdfc0; border-radius: 12px;
  padding: 14px 18px 14px 56px; margin: 8px 0; font-weight: 600; font-size: .95rem;
}
.duty li::before {
  content: counter(duty); position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center;
  background: #b97d1f; color: #fff; font: 700 .9rem var(--font-display);
}
.rg-contacts { display: flex; flex-direction: column; gap: 14px; background: var(--card); border-radius: var(--r-lg); padding: 22px 24px; box-shadow: var(--shadow); max-width: 640px; }
.rg-contacts--spaced { margin-top: 8px; }
.rg-contacts > div { display: flex; gap: 8px 14px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.rg-contacts__cap { font-size: .88rem; color: var(--ink-2); }
.rg-cta { display: flex; gap: 12px; flex-wrap: wrap; margin: 24px 0 8px; }
.rg-btn2 { background: var(--chip-blue); color: var(--primary-strong) !important; }
.rg-btn2:hover { background: var(--line); }
html.a11y .rg-item, html.a11y .duty li, html.a11y .rg-contacts { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .rg-ic, html.a11y .duty li::before { background: #000 !important; color: #fff !important; }

/* ============================================================
   Баннер ПОС Госуслуг «Решаем вместе» (заглушка до подключения ключа)
   ============================================================ */
.pos-banner {
  position: relative; overflow: hidden;
  background: linear-gradient(135deg, #0d4cd3 0%, #0a3aa8 100%);
  color: #fff; border-radius: var(--r-lg); padding: 22px 26px 20px; margin: 0 0 34px;
}
.pos-banner__badge {
  display: inline-block; font-size: .72rem; font-weight: 700; letter-spacing: .03em;
  background: rgba(255, 255, 255, .16); border-radius: 99px; padding: 4px 12px; margin-bottom: 16px;
}
.pos-banner__row { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.pos-banner__brand { display: flex; flex-direction: column; gap: 4px; flex: none; }
.pos-banner__brand img { display: block; filter: brightness(0) invert(1); }
.pos-banner__slogan { font-size: 1.05rem; font-weight: 700; }
.pos-banner__text { display: flex; flex-direction: column; gap: 3px; flex: 1 1 280px; min-width: 0; }
.pos-banner__text strong { font-size: 1.15rem; }
.pos-banner__text span { font-size: .9rem; color: #d6e4ff; }
.pos-banner__btn { flex: none; background: #fff; color: #0a3aa8 !important; }
.pos-banner__btn:hover { background: #eaf0ff; }
.pos-banner__note { margin: 16px 0 0; font-size: .82rem; color: #c3d4f7; line-height: 1.55; }
html.a11y .pos-banner { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .pos-banner *, html.a11y .pos-banner__text span, html.a11y .pos-banner__note { color: #000 !important; }
html.a11y .pos-banner__brand img { filter: none !important; }
html.a11y .pos-banner__btn { background: #000 !important; color: #fff !important; }
@media (max-width: 600px) {
  .pos-banner__row { flex-direction: column; align-items: flex-start; gap: 14px; }
  .pos-banner__btn { width: 100%; justify-content: center; }
}

/* ============================================================
   Проверка полиса ОМС (заглушка до подключения API)
   ============================================================ */
.pv {
  background: var(--card); border-radius: var(--r-lg); padding: 30px 28px;
  box-shadow: var(--shadow); max-width: 640px; margin-bottom: 36px;
}
.pv__t { margin: 12px 0 6px; font-size: 1.3rem; }
.pv__sub { margin: 0 0 20px; color: var(--ink-2); font-size: .95rem; }
.pv__label { display: block; font-weight: 700; font-size: .88rem; margin-bottom: 8px; }
.pv__row { display: flex; gap: 10px; flex-wrap: wrap; }
.pv__input {
  flex: 1 1 240px; font: 600 1.05rem var(--font); letter-spacing: .06em;
  color: var(--ink); border: 1.5px solid var(--line-2); border-radius: 12px;
  padding: 12px 16px; min-width: 0;
}
.pv__input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(24, 167, 201, .18); }
.pv__msg {
  margin-top: 18px; padding: 16px 18px; border-radius: 12px;
  background: #fdf3e0; border: 1px solid #ecd9ae; color: #6e4a0e;
  font-size: .93rem; line-height: 1.55;
  animation: rise .35s ease;
}
.pv__privacy { margin: 14px 0 0; font-size: .8rem; color: var(--ink-3); }
html.a11y .pv, html.a11y .pv__msg { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }

/* Плавное раскрытие аккордеонов (новые браузеры; в остальных — мгновенно) */
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  details.arch::details-content, details.faq::details-content {
    height: 0; overflow: clip;
    transition: height .3s ease, content-visibility .3s allow-discrete;
  }
  details.arch[open]::details-content, details.faq[open]::details-content { height: auto; }
}

/* Плавное появление мобильного меню */
@keyframes navIn { from { opacity: 0; transform: translateY(-14px); } }
.nav.open { animation: navIn .22s ease; }

/* Появление при загрузке */
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hero__kicker, .hero h1, .hero__lead { animation: rise .6s cubic-bezier(.2, .7, .3, 1) both; }
.hero h1 { animation-delay: .07s; }
.hero__lead { animation-delay: .14s; }
.tasks .task { animation: rise .55s cubic-bezier(.2, .7, .3, 1) both; }
.tasks .task:nth-child(1) { animation-delay: .26s; }
.tasks .task:nth-child(2) { animation-delay: .32s; }
.tasks .task:nth-child(3) { animation-delay: .38s; }
.tasks .task:nth-child(4) { animation-delay: .44s; }
.tasks .task:nth-child(5) { animation-delay: .5s; }
.tasks .task:nth-child(6) { animation-delay: .56s; }
.tasks .task:nth-child(7) { animation-delay: .62s; }
.tasks .task:nth-child(8) { animation-delay: .68s; }

/* Контакты страховых (стр. «Осторожно, мошенники») + ссылки-кнопки */
.prose .contact-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  gap: 12px; margin: 1.2em 0; max-width: none;
}
.contact-card {
  display: flex; flex-direction: column; gap: 8px; align-items: flex-start;
  padding: 16px 18px; background: var(--card); border: 1px solid var(--line); border-radius: 14px;
}
.contact-card__name { font-weight: 700; color: var(--primary-strong); }
.prose a.link-btn {
  display: inline-flex; align-items: center; gap: 8px; margin: 4px 8px 4px 0;
  padding: 11px 18px; border-radius: 12px; background: var(--chip-blue); color: var(--primary-strong);
  font-weight: 600; text-decoration: none; border: 1px solid transparent;
}
.prose a.link-btn::after { content: "→"; font-weight: 700; }
.prose a.link-btn:hover { border-color: var(--primary); background: #fff; }
html.a11y .contact-card, html.a11y .prose a.link-btn { border: 2px solid #000 !important; }

/* ===== Быстрый просмотр файлов (Quick Look) ===== */
.doc-row.ql-able, .att-card.ql-able { position: relative; }
/* кнопка-глаз для быстрого просмотра (клик по самой карточке открывает файл) */
.ql-eye {
  position: absolute; top: 10px; right: 10px; width: 34px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 9px; background: rgba(255, 255, 255, .92); border: 1px solid var(--line);
  cursor: pointer; opacity: 0; transition: opacity .15s, background .15s; z-index: 2;
}
.ql-eye::before {
  content: ""; width: 19px; height: 19px; background: var(--primary);
  -webkit-mask: var(--ql-eye-svg) center/contain no-repeat; mask: var(--ql-eye-svg) center/contain no-repeat;
}
:root { --ql-eye-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5C5 5 2 12 2 12s3 7 10 7 10-7 10-7-3-7-10-7zm0 11a4 4 0 110-8 4 4 0 010 8z'/%3E%3C/svg%3E"); }
.doc-row:hover .ql-eye, .att-card:hover .ql-eye, .ql-eye:focus-visible { opacity: 1; }
.ql-eye:hover { background: var(--chip-blue); }
@media (hover: none) { .ql-eye { opacity: .85; } }    /* на тач-экранах глаз всегда виден */
body.ql-locked { overflow: hidden; }
.ql-overlay {
  position: fixed; inset: 0; z-index: 1000; display: none;
  align-items: center; justify-content: center; padding: 24px;
  background: rgba(12, 30, 45, .62); backdrop-filter: blur(3px);
  opacity: 0; transition: opacity .18s ease;
}
.ql-overlay.is-open { display: flex; opacity: 1; }
.ql-modal {
  background: var(--card); border-radius: 16px; overflow: hidden;
  width: min(1000px, 100%); max-height: 90vh; display: flex; flex-direction: column;
  box-shadow: 0 24px 70px rgba(8, 22, 34, .4); animation: qlpop .2s cubic-bezier(.2, .7, .3, 1);
}
@keyframes qlpop { from { transform: translateY(12px) scale(.98); opacity: .4; } to { transform: none; opacity: 1; } }
.ql-head {
  display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 20px;
  border-bottom: 1px solid var(--line); flex: none;
}
.ql-name { font-weight: 700; color: var(--primary-strong); flex: 1 1 auto;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ql-dl {
  flex: none; display: inline-flex; align-items: center; gap: 7px; min-height: 40px;
  padding: 8px 16px; border-radius: 10px; background: var(--primary); color: #fff !important;
  font-weight: 600; font-size: .92rem; text-decoration: none;
}
.ql-dl:hover { background: var(--primary-strong); }
.ql-open {
  flex: none; display: inline-flex; align-items: center; min-height: 40px;
  padding: 8px 16px; border-radius: 10px; border: 1.5px solid var(--primary);
  background: transparent; color: var(--primary-strong) !important;
  font-weight: 600; font-size: .92rem; text-decoration: none;
}
.ql-open:hover { background: var(--chip-blue); }
.ql-close {
  flex: none; width: 40px; height: 40px; border-radius: 50%; border: 0; cursor: pointer;
  background: var(--bg-soft, #eef3f7); color: var(--ink); font-size: 1.1rem; line-height: 1;
}
.ql-close:hover { background: var(--line); }
.ql-body { flex: 1 1 auto; overflow: auto; background: var(--bg-soft, #f1f5f8); display: flex; }
.ql-body--pdf, .ql-body--image, .ql-body--video { padding: 0; align-items: stretch; justify-content: center; }
.ql-frame { width: 100%; height: 82vh; border: 0; background: #fff; }
.ql-img { max-width: 100%; max-height: 82vh; margin: auto; object-fit: contain; }
.ql-video { max-width: 100%; max-height: 82vh; margin: auto; background: #000; }
.ql-loading, .ql-msg { margin: auto; padding: 40px 24px; text-align: center; color: var(--ink-2); }
.ql-msg__ext {
  display: inline-block; margin-bottom: 12px; padding: 10px 16px; border-radius: 10px;
  background: var(--primary); color: #fff; font-weight: 800; letter-spacing: .04em;
}
.ql-msg b { color: var(--ink); display: block; margin-top: 4px; }
.ql-arch { width: 100%; padding: 16px 20px; }
.ql-arch__cap { margin: 0 0 12px; font-weight: 700; color: var(--primary-strong); }
.ql-arch__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ql-arch__list > li {
  display: flex; align-items: center; gap: 12px; padding: 9px 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
}
.ql-arch__ext {
  flex: none; min-width: 46px; text-align: center; padding: 3px 7px; border-radius: 6px;
  background: var(--chip-blue, #e8f2fb); color: var(--accent-ink); font-size: .7rem; font-weight: 800;
}
.ql-arch__nm { flex: 1 1 auto; font-size: .9rem; word-break: break-word; }
.ql-arch__sz { flex: none; color: var(--ink-3); font-size: .82rem; }
@media (max-width: 600px) {
  .ql-overlay { padding: 0; }
  .ql-modal { width: 100%; max-height: 100vh; height: 100%; border-radius: 0; }
  .ql-frame, .ql-img, .ql-video { height: auto; max-height: none; }
  .ql-body--pdf .ql-frame { height: calc(100vh - 65px); }
  .ql-dl span { display: none; }
  .ql-dl { padding: 8px 12px; }
}
html.a11y .ql-modal { border: 2px solid #000; }
html.a11y .ql-arch__list > li { border: 1.5px solid #000; }

/* ============================================================
   Копирование контактов в буфер (телефон / почта / ФИО)
   ============================================================ */
.copy-toast {
  position: fixed; left: 50%; bottom: 26px; transform: translate(-50%, 12px);
  background: var(--night); color: #fff; font-size: .9rem; font-weight: 600;
  border-radius: 12px; padding: 10px 18px; box-shadow: var(--shadow-lg);
  opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s;
  z-index: 900; max-width: calc(100vw - 32px);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.copy-toast--show { opacity: 1; transform: translate(-50%, 0); }
@media (hover: hover) and (pointer: fine) {
  .tel-chip, .mail-chip, .person-card__mail,
  .person-card h4, .dir-card__people li, .st-node--dir h3 { cursor: copy; }
}
html.a11y .copy-toast {
  background: #000 !important; color: #fff !important; border: 2px solid #fff;
}

/* ============================================================
   Полезные ссылки (главная, низ): Минздрав, ФФОМС, ХМАО и др.
   ============================================================ */
.partners {
  display: flex; flex-wrap: nowrap; justify-content: center; align-items: flex-start;
  gap: 14px; padding: 10px 0 6px;
}
.partner {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  flex: 1 1 0; min-width: 0; text-align: center; text-decoration: none;
  color: var(--primary-strong); font-weight: 600; font-size: .85rem;
  line-height: 1.35; transition: transform .18s, color .18s;
}
.partner img { height: 44px; width: auto; }
/* Неразрывного пробела мало: перенос допускается и после тире, из-за чего
   «ХМАО – Югры» разрывалось по нему. */
.partner .nowrap { white-space: nowrap; }
.partner:hover { transform: translateY(-3px); color: var(--accent); }
.partner:hover span { text-decoration: underline; }
/* Ниже ~1000px семь плашек в строку уже не помещаются — переносим. */
@media (max-width: 1000px) {
  .partners { flex-wrap: wrap; gap: 22px 18px; }
  .partner { flex: 0 1 150px; }
}
html.a11y .partner { color: #00007a !important; }
html.a11y .partner span { text-decoration: underline; }

/* ============================================================
   ТЁМНАЯ ТЕМА
   Светлая — по умолчанию. Тёмная включается кнопкой в топбаре
   (data-theme="dark" на <html>) и учитывает системную настройку
   prefers-color-scheme при первом визите.
   Режим для слабовидящих (html.a11y) имеет приоритет — его правила
   с !important перекрывают тему, поэтому конфликта нет.
   Почти всё перекрашивается переопределением переменных ниже;
   дальше — точечные правки для поверхностей с «зашитым» белым.
   ============================================================ */
html[data-theme="dark"] {
  /* «Space Gray» — нейтральные графитовые поверхности в стиле Apple.
     Фон/карточки/разделители без синего оттенка; акцент — чистый
     системный синий (как у macOS), применяется точечно. */
  --ink: #f5f5f7;             /* Apple off-white */
  --ink-2: #a1a1a6;
  --ink-3: #86868b;           /* Apple secondary gray */
  --primary: #0a84ff;         /* Apple system blue (акцент: ссылки, кнопки, иконки) */
  --primary-strong: #409cff;
  --primary-deep: #6cb2ff;
  --accent: #64d2ff;          /* Apple cyan — декоративный акцент */
  --accent-ink: #64d2ff;
  --green: #30d158;           /* Apple green */
  --night: #161617;           /* топбар/футер/базовые тёмные секции → нейтральный графит */
  --bg: #1c1c1e;              /* Apple systemBackground (space gray) */
  --card: #2a2a2c;            /* приподнятая поверхность */
  --line: #38383a;            /* разделитель */
  --line-2: #48484a;
  --danger: #ff6961;          /* Apple red */
  --warn: #ff9f0a;            /* Apple orange */
  --chip-blue: #2c2c2e;       /* нейтральный чип (текст — синий акцент) */
  --chip-green: #2c2c2e;
  /* Мягкие «эпловские» тени — тонкие, без резкости */
  --shadow: 0 1px 2px rgba(0, 0, 0, .40), 0 6px 20px -10px rgba(0, 0, 0, .55);
  --shadow-lg: 0 2px 6px rgba(0, 0, 0, .45), 0 20px 48px -22px rgba(0, 0, 0, .65);
  --card-shadow: 0 1px 1px rgba(0, 0, 0, .30), 0 5px 16px -10px rgba(0, 0, 0, .45);
  --card-shadow-hover: 0 2px 4px rgba(0, 0, 0, .40), 0 14px 30px -16px rgba(0, 0, 0, .60);
  color-scheme: dark;
}

/* Плавное переключение темы (сработает только по клику, не при загрузке) */
body { transition: background-color .35s ease, color .35s ease; }

/* Стеклянная «липкая» шапка — сильная полупрозрачность + блюр (Apple vibrancy) */
html[data-theme="dark"] .header { background: rgba(28, 28, 30, .72); backdrop-filter: saturate(180%) blur(20px); }
html[data-theme="dark"] .header.scrolled { box-shadow: 0 8px 28px -16px rgba(0, 0, 0, .70); }

/* На ширине бургер-меню backdrop-filter на родителе создаёт
   containing block для .nav.open с position: fixed и обрезает его
   высотой шапки. На этом брейкпоинте шапка должна быть непрозрачной. */
@media (max-width: 1380px) {
  .header,
  html[data-theme="dark"] .header {
    background: var(--card);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}

/* Баннеры и плитки, чей фон завязан на --primary-deep/--primary-strong
   (эти переменные яркие — для текста). В «space gray» даём им нейтральный
   графитовый фон с тонким верхним бликом вместо синевы. */
html[data-theme="dark"] .hero {
  background:
    radial-gradient(900px 480px at 86% -10%, rgba(255, 255, 255, .05), transparent 60%),
    linear-gradient(160deg, #202022 0%, #29292b 55%, #303032 100%);
}
html[data-theme="dark"] .page-hero {
  background:
    radial-gradient(700px 300px at 90% -40%, rgba(255, 255, 255, .045), transparent 60%),
    linear-gradient(150deg, #1f1f21, #29292b 70%, #2f2f31);
}
html[data-theme="dark"] .stat { background: linear-gradient(160deg, #2a2a2c, #323234); }
html[data-theme="dark"] .ct-hot {
  background:
    radial-gradient(420px 200px at 95% -30%, rgba(255, 255, 255, .05), transparent 65%),
    linear-gradient(150deg, #1f1f21, #29292b 80%);
}
/* Ховеры синих кнопок — чуть темнее акцента, читаемо (Apple #0071e3) */
html[data-theme="dark"] .btn--primary:hover,
html[data-theme="dark"] .btn-lk:hover,
html[data-theme="dark"] .vac-apply__btn:hover,
html[data-theme="dark"] .ql-dl:hover { background: #0071e3; }

/* Поля ввода/фильтры/формы — тёмный фон вместо белого */
html[data-theme="dark"] .filters input[type="search"],
html[data-theme="dark"] .filters select,
html[data-theme="dark"] input[type="text"],
html[data-theme="dark"] input[type="email"],
html[data-theme="dark"] input[type="tel"],
html[data-theme="dark"] input[type="search"],
html[data-theme="dark"] input[type="number"],
html[data-theme="dark"] textarea,
html[data-theme="dark"] select {
  background: #202022; color: var(--ink); border-color: var(--line-2);
}

/* Чип категории на карточке новости */
html[data-theme="dark"] .cat-chip { background: rgba(255, 255, 255, .08); }

/* Зебра таблиц и пар «ключ-значение», hover строки */
html[data-theme="dark"] .prose table tr:nth-child(even) td,
html[data-theme="dark"] .kv > div:nth-child(even) { background: rgba(255, 255, 255, .035); }
html[data-theme="dark"] .table-wrap > table tr:hover td { background: rgba(255, 255, 255, .06); }

/* Тёплые информационные блоки (обязанности, сообщение проверки полиса) */
html[data-theme="dark"] .duty li { background: #262218; border-color: #45391f; }
html[data-theme="dark"] .pv__msg { background: #262218; border-color: #45391f; color: #e7c98b; }

/* Кнопка-ссылка при наведении и кнопка быстрого просмотра */
html[data-theme="dark"] .prose a.link-btn:hover { background: var(--chip-blue); }
html[data-theme="dark"] .ql-eye { background: rgba(42, 42, 44, .92); }

/* Мобильная нижняя навигация — матовое стекло (Apple vibrancy) */
html[data-theme="dark"] .bottombar { background: rgba(28, 28, 30, .80); backdrop-filter: saturate(180%) blur(20px); }

/* ---------- Кнопка переключения темы (в топбаре) ---------- */
.btn-theme {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 30px; flex: none;
  background: rgba(255, 255, 255, .10); color: #fff;
  border: 1px solid rgba(255, 255, 255, .25); border-radius: 99px;
  cursor: pointer; padding: 0; transition: background .15s, transform .2s;
}
.btn-theme:hover { background: rgba(255, 255, 255, .20); }
.btn-theme:active { transform: scale(.92); }
.btn-theme svg { width: 17px; height: 17px; flex: none; }
/* Тач-таргет ≥44px на мобильных. Правило должно стоять ПОСЛЕ объявления
   .btn-theme выше: специфичность одинаковая, побеждает то, что ниже. */
@media (max-width: 900px) {
  .btn-theme { width: 44px; height: 44px; }
}
.btn-theme .ic-sun { display: none; }
html[data-theme="dark"] .btn-theme .ic-sun { display: block; }
html[data-theme="dark"] .btn-theme .ic-moon { display: none; }
html.a11y .btn-theme { display: none; } /* в версии для слабовидящих тему задаёт a11y-панель */

/* ============================================================
   ЛЁГКИЕ МИКРО-ВЗАИМОДЕЙСТВИЯ
   Только transform/opacity/цвет — дёшево для GPU, не «утяжеляет».
   Полностью отключаются при prefers-reduced-motion.
   Кнопки .btn уже анимированы в дизайн-системе — здесь добавляем
   отклик чипам, иконочным кнопкам и переключателю темы.
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .icon-btn, .tel-chip, .mail-chip, .hint-chip, .search-close, .ql-eye, .seg button, .contacts-cta, .ct-cta {
    transition: transform .15s ease, background-color .16s ease, color .16s ease, border-color .16s ease, box-shadow .18s ease;
  }
  .icon-btn:active, .tel-chip:active, .mail-chip:active, .hint-chip:active,
  .search-close:active, .seg button:active { transform: scale(.94); }
  .icon-btn:hover { transform: translateY(-1px); }

  /* Переключатель темы: иконка мягко поворачивается при наведении */
  .btn-theme svg { transition: transform .4s cubic-bezier(.34, 1.3, .5, 1); }
  .btn-theme:hover svg { transform: rotate(18deg); }

  /* Бургер-меню и поиск: иконки чуть подрастают на hover */
  .header__actions .icon-btn:hover svg { transform: scale(1.08); transition: transform .15s ease; }

  /* Плавное появление мобильного меню-оверлея (лёгкий fade+slide) */
  .nav.open { animation: navSlide .22s ease; }
}
@keyframes navSlide { from { opacity: 0; transform: translateY(-6px); } }

/* ============================================================
   ДЕКОР: прогресс чтения, кнопка «наверх», проявление фото,
   переходы между страницами, «дыхание» звёздного слоя героя.
   Всё отключается глобальным правилом prefers-reduced-motion выше.
   ============================================================ */

/* Полоса прогресса чтения — тонкая «северное сияние» сверху */
.read-progress {
  appearance: none; -webkit-appearance: none;
  position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 400;
  border: 0; background: transparent; pointer-events: none;
}
.read-progress::-webkit-progress-bar { background: transparent; }
.read-progress::-webkit-progress-value { background: var(--aurora); transition: width .1s linear; }
.read-progress::-moz-progress-bar { background: var(--aurora); transition: width .1s linear; }

/* Кнопка «Наверх» */
.to-top {
  position: fixed; right: 22px; bottom: 96px; z-index: 90;
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--line); background: var(--card); color: var(--primary);
  box-shadow: var(--shadow); cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, background .15s, color .15s;
}
.to-top svg { width: 20px; height: 20px; }
.to-top.show { opacity: 1; transform: none; pointer-events: auto; }
.to-top:hover { background: var(--primary); color: #fff; transform: translateY(-2px); }
/* на мобильном — выше нижней навигации и в правом углу */
@media (max-width: 900px) {
  /* 44x44 — минимальная зона касания (WCAG 2.5.5). Было 42x42. */
  .to-top { right: 14px; bottom: calc(140px + env(safe-area-inset-bottom, 0)); width: 44px; height: 44px; }
}

/* Плавное проявление картинок (класс ставит JS только незагруженным) */
.img-fade { opacity: 0; transition: opacity .6s ease; }
.img-fade.is-in { opacity: 1; }

/* Переходы между страницами: чуть мягче стандартного перекрёстного затухания */
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .32s; }

/* «Звёздный» слой героя тихо дышит — оживляет северное небо (только вне reduced-motion) */
@media (prefers-reduced-motion: no-preference) {
  .hero::after { animation: heroTwinkle 9s ease-in-out infinite alternate; }
}
@keyframes heroTwinkle { from { opacity: .18; } to { opacity: .32; } }

/* ============================================================
   Увеличение фото на месте (lightbox) — клик по фото сотрудника
   раскрывает его крупно поверх страницы, фокус со страницы не уходит.
   ============================================================ */
.photo-lb {
  position: fixed; inset: 0; z-index: 350; display: none;
  align-items: center; justify-content: center; padding: 5vh 5vw;
  background: rgba(6, 15, 25, .86); backdrop-filter: blur(6px);
  cursor: zoom-out;
}
.photo-lb.open { display: flex; animation: ovl .2s ease; }
.photo-lb__img {
  max-width: 100%; max-height: 90vh; border-radius: 14px;
  box-shadow: var(--shadow-lg); cursor: zoom-out; background: var(--card);
}
.photo-lb__close {
  position: absolute; top: 18px; right: 22px; width: 44px; height: 44px;
  border-radius: 50%; border: 0; background: rgba(255, 255, 255, .16); color: #fff;
  font-size: 1.25rem; line-height: 1; cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; transition: background .15s;
}
.photo-lb__close:hover { background: rgba(255, 255, 255, .30); }

@media (max-width: 900px) {
  .bottombar a, .bottombar button {
    min-width: 0;
    min-height: 58px;
    font-size: clamp(.58rem, 2.8vw, .66rem);
  }
  .bottombar span {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* ============================================================
   Доп. стили отдельных страниц:
   .ct- — «Контакты», .nf- — страница 404
   Подключается из шаблонов contacts.html и 404.html
   ============================================================ */

.ct-soc__logo { flex: none; border-radius: 12px; }

/* ============================================================
   Структура фонда (страница «Контакты»)
   ============================================================ */
.st { display: flex; flex-direction: column; align-items: center; }
.st-node--dir {
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 20px;
  background: var(--card); border-radius: var(--r-lg); padding: 22px 26px;
  box-shadow: var(--shadow); max-width: 580px; width: 100%;
}
.st-node--dir::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--aurora); }
.st-node--dir__photo { flex: none; }
.st-node--dir__photo img { width: 84px; height: 104px; object-fit: cover; object-position: 50% 20%; border-radius: 12px; display: block; cursor: zoom-in; }
.st-node--dir__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.st-node--dir .st-role { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .09em; color: var(--ink-3); }
.st-node--dir h3 { margin: 0; font-size: 1.15rem; line-height: 1.2; }
.st-node--dir .st-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.st-node--dir .st-chips .mail-chip { overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 460px) {
  .st-node--dir { flex-direction: column; align-items: flex-start; text-align: left; }
}
.st-link {
  display: flex; align-items: center; gap: 16px; width: 100%;
  margin: 26px 0 14px; font-size: 1.15rem; font-weight: 700; color: var(--accent);
}
.st-link::before, .st-link::after { content: ""; flex: 1; height: 1px; background: var(--line-2); }
html.a11y .st-node--dir { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .st-link { color: #000 !important; }

.org-note {
  font-size: .85rem; color: var(--ink-2); max-width: 640px; text-align: center; margin: 0 0 18px;
}

.org-tree { display: flex; flex-direction: column; gap: 10px; width: 100%; max-width: 760px; }
.org-tree--branches { gap: 12px; }

.org-node { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); }
.org-node__children {
  display: flex; flex-direction: column; gap: 6px;
  margin: 0 0 8px 20px; padding: 8px 0 0 14px;
  border-left: 2px solid var(--line-2);
}
details.org-node[open] > .org-node__head { border-bottom: 1px solid var(--line); }

.org-node__head {
  display: flex; align-items: center; gap: 12px; padding: 10px 14px;
  cursor: pointer; list-style: none;
}
.org-node__head::-webkit-details-marker { display: none; }
.org-node__head::after {
  content: ""; width: 8px; height: 8px; margin-left: auto; flex: none;
  border-right: 2px solid var(--ink-3); border-bottom: 2px solid var(--ink-3);
  transform: rotate(-45deg); transition: transform .18s;
}
details.org-node[open] > .org-node__head::after { transform: rotate(45deg); }

.org-node__id { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.org-node__id strong { font-size: .9rem; line-height: 1.25; }
.org-node__role { font-size: .8rem; color: var(--ink-2); line-height: 1.3; }
.org-node__count {
  flex: none; font-size: .74rem; font-weight: 700; color: var(--accent-ink);
  background: var(--chip-blue); border-radius: 99px; padding: 2px 9px;
}

.org-node--leaf {
  display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: var(--r);
}
.org-node--leaf:hover { background: var(--bg); }
.org-node--leaf .org-node__head { padding: 0; cursor: default; flex: 1; min-width: 0; }
.org-node--leaf .org-node__contacts {
  flex: none; display: flex; gap: 8px; align-items: center; font-size: .8rem;
}

.org-ava {
  flex: none; width: 38px; height: 38px; border-radius: 50%;
  object-fit: cover; object-position: 50% 22%; border: 1px solid var(--line-2);
}
.org-ava-link {
  display: block; flex: none; width: 38px; height: 38px; position: relative;
  overflow: hidden; border: 1px solid var(--line-2); border-radius: 50%; cursor: zoom-in;
}
.org-ava-link .org-ava {
  position: absolute; left: 50%; top: 50%; width: var(--face-scale, 100%); height: auto;
  max-width: none; border: 0; border-radius: 0; object-fit: initial;
  transform: translate(var(--face-x, -50%), var(--face-y, -50%));
}
.branch-node { overflow: hidden; }
.branch-node__head { cursor: default; }
.branch-node__head::after { display: none; }
.branch-node__head .org-ava-link, .branch-node__head > .org-ava { width: 54px; height: 54px; }
.branch-node__details {
  display: flex; align-items: flex-start; flex-direction: column; gap: 8px;
  padding: 10px 16px 12px 74px; border-top: 1px solid var(--line);
}
.branch-node__address {
  display: inline-flex; align-items: center; gap: 7px;
  color: var(--ink-2); font-size: .82rem; line-height: 1.35;
}
.branch-node__address svg { width: 16px; height: 16px; flex: none; color: var(--accent); }
.branch-node__contacts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Индивидуальный фокус круглых миниатюр по центру лица. */
.org-ava[src*="019e61d8-a63d-412e-805b-804191c289c6"], .person-card__ava img[src*="019e61d8-a63d-412e-805b-804191c289c6"] { object-position: 53% 44%; }
.org-ava[src*="042f8046-e0ca-4543-aa6e-7b002411af99"], .person-card__ava img[src*="042f8046-e0ca-4543-aa6e-7b002411af99"] { object-position: 51% 42%; }
.org-ava[src*="09a01098-3ae4-4118-8d38-c8da2f446471"], .person-card__ava img[src*="09a01098-3ae4-4118-8d38-c8da2f446471"] { object-position: 49% 42%; }
.org-ava[src*="0b2654f4-cff6-4ad5-8205-3e1488cff6de"], .person-card__ava img[src*="0b2654f4-cff6-4ad5-8205-3e1488cff6de"] { object-position: 51% 35%; }
.org-ava[src*="0f65fd37-d28c-4cd4-8723-108c720aa065"], .person-card__ava img[src*="0f65fd37-d28c-4cd4-8723-108c720aa065"] { object-position: 52% 52%; }
.org-ava[src*="1acf847b-f80e-4259-b047-8979f9abb891"], .person-card__ava img[src*="1acf847b-f80e-4259-b047-8979f9abb891"] { object-position: 54% 28%; }
.org-ava[src*="1d019783-be74-4616-8fe0-9812b2ba994c"], .person-card__ava img[src*="1d019783-be74-4616-8fe0-9812b2ba994c"] { object-position: 51% 35%; }
.org-ava[src*="218bca78-05d7-4703-b5a2-8681119fac48"], .person-card__ava img[src*="218bca78-05d7-4703-b5a2-8681119fac48"] { object-position: 49% 35%; }
.org-ava[src*="24114593-5c18-45e2-bbee-5c6b4d70fca1"], .person-card__ava img[src*="24114593-5c18-45e2-bbee-5c6b4d70fca1"] { object-position: 56% 69%; }
.org-ava[src*="259cce03-b691-41c7-99da-6839368066d5"], .person-card__ava img[src*="259cce03-b691-41c7-99da-6839368066d5"] { object-position: 57% 57%; }
.org-ava[src*="2fa6fdec-8294-43b4-a941-2b5021e57dda"], .person-card__ava img[src*="2fa6fdec-8294-43b4-a941-2b5021e57dda"] { object-position: 51% 55%; }
.org-ava[src*="31e41d2a-4c68-47b6-a0ac-bd3b7975b04c"], .person-card__ava img[src*="31e41d2a-4c68-47b6-a0ac-bd3b7975b04c"] { object-position: 56% 48%; }
.org-ava[src*="36d9cfc4-bd7f-4c4d-8799-dc3747f92d3a"], .person-card__ava img[src*="36d9cfc4-bd7f-4c4d-8799-dc3747f92d3a"] { object-position: 53% 49%; }
.org-ava[src*="39f75231-3908-4cd0-9b83-b0a4ae79ba35"], .person-card__ava img[src*="39f75231-3908-4cd0-9b83-b0a4ae79ba35"] { object-position: 54% 38%; }
.org-ava[src*="3d2d6e18-4387-4066-9118-31e9cd3314b0"], .person-card__ava img[src*="3d2d6e18-4387-4066-9118-31e9cd3314b0"] { object-position: 48% 67%; }
.org-ava[src*="3f328540-ef53-46f6-b1b2-1081145442ae"], .person-card__ava img[src*="3f328540-ef53-46f6-b1b2-1081145442ae"] { object-position: 53% 48%; }
.org-ava[src*="468a5cca-6256-4736-a5b5-4425afadc1fd"], .person-card__ava img[src*="468a5cca-6256-4736-a5b5-4425afadc1fd"] { object-position: 53% 34%; }
.org-ava[src*="4901cc49-d14a-4bad-81ee-dbd944ec4acf"], .person-card__ava img[src*="4901cc49-d14a-4bad-81ee-dbd944ec4acf"] { object-position: 52% 30%; }
.org-ava[src*="4ee76bb4-9f14-4b64-8a67-e36d7bff8903"], .person-card__ava img[src*="4ee76bb4-9f14-4b64-8a67-e36d7bff8903"] { object-position: 51% 28%; }
.org-ava[src*="563cd016-1f84-430e-a08d-b6316bd9d5c0"], .person-card__ava img[src*="563cd016-1f84-430e-a08d-b6316bd9d5c0"] { object-position: 52% 34%; }
.org-ava[src*="568af10d-bf63-4891-b178-1e8a6f547e99"], .person-card__ava img[src*="568af10d-bf63-4891-b178-1e8a6f547e99"] { object-position: 52% 30%; }
.org-ava[src*="652e02be-f68d-40f6-88c0-281785fa4147"], .person-card__ava img[src*="652e02be-f68d-40f6-88c0-281785fa4147"] { object-position: 51% 31%; }
.org-ava[src*="6c8553fc-ff4a-45ac-9636-182d96b34eec"], .person-card__ava img[src*="6c8553fc-ff4a-45ac-9636-182d96b34eec"] { object-position: 49% 32%; }
.org-ava[src*="70c30c55-5de8-4fbd-9c9b-08f43bebc34a"], .person-card__ava img[src*="70c30c55-5de8-4fbd-9c9b-08f43bebc34a"] { object-position: 51% 28%; }
.org-ava[src*="77c295a7-5f37-4fe3-b7cf-8f69c4bc9e19"], .person-card__ava img[src*="77c295a7-5f37-4fe3-b7cf-8f69c4bc9e19"] { object-position: 49% 44%; }
.org-ava[src*="78970eec-e6b8-43ac-86f0-d5581c28e727"], .person-card__ava img[src*="78970eec-e6b8-43ac-86f0-d5581c28e727"] { object-position: 58% 33%; }
.org-ava[src*="7d892270-79be-45ba-919e-f878af3bbabb"], .person-card__ava img[src*="7d892270-79be-45ba-919e-f878af3bbabb"] { object-position: 56% 43%; }
.org-ava[src*="81b03880-2dda-40cb-8a52-8cffb55674d4"], .person-card__ava img[src*="81b03880-2dda-40cb-8a52-8cffb55674d4"] { object-position: 51% 28%; }
.org-ava[src*="8408a659-4dba-4cea-a7d3-a22e4e20e7ec"], .person-card__ava img[src*="8408a659-4dba-4cea-a7d3-a22e4e20e7ec"] { object-position: 54% 49%; }
.org-ava[src*="879942ca-19eb-4cc0-8765-a39282316f90"], .person-card__ava img[src*="879942ca-19eb-4cc0-8765-a39282316f90"] { object-position: 52% 34%; }
.org-ava[src*="898c57db-0a4f-42ee-86b1-0b5e6bfb9a03"], .person-card__ava img[src*="898c57db-0a4f-42ee-86b1-0b5e6bfb9a03"] { object-position: 51% 53%; }
.org-ava[src*="a3aab64f-c468-4a63-a8d1-781b963bcb50"], .person-card__ava img[src*="a3aab64f-c468-4a63-a8d1-781b963bcb50"] { object-position: 59% 31%; }
.org-ava[src*="af89836d-5bdc-48f1-b9dc-51674e572fcc"], .person-card__ava img[src*="af89836d-5bdc-48f1-b9dc-51674e572fcc"] { object-position: 52% 49%; }
.org-ava[src*="b364a2cc-3f5e-4ea9-ad59-dfe74b2cab95"], .person-card__ava img[src*="b364a2cc-3f5e-4ea9-ad59-dfe74b2cab95"] { object-position: 53% 51%; }
.org-ava[src*="b3873804-1157-47e6-baec-c42eae8d5abe"], .person-card__ava img[src*="b3873804-1157-47e6-baec-c42eae8d5abe"] { object-position: 62% 47%; }
.org-ava[src*="ba8533a1-0a6b-439b-9b36-faa53571e4d2"], .person-card__ava img[src*="ba8533a1-0a6b-439b-9b36-faa53571e4d2"] { object-position: 56% 60%; }
.org-ava[src*="c99d1101-6d22-43fc-aae5-bea6e226010a"], .person-card__ava img[src*="c99d1101-6d22-43fc-aae5-bea6e226010a"] { object-position: 50% 37%; }
.org-ava[src*="ca5229ea-92f4-4b6b-a80b-f0095ac6715e"], .person-card__ava img[src*="ca5229ea-92f4-4b6b-a80b-f0095ac6715e"] { object-position: 52% 49%; }
.org-ava[src*="ccb3743a-47b1-407a-9989-28e992e2eb9f"], .person-card__ava img[src*="ccb3743a-47b1-407a-9989-28e992e2eb9f"] { object-position: 51% 26%; }
.org-ava[src*="d1730727-df63-4e74-a7f3-db741adc87d8"], .person-card__ava img[src*="d1730727-df63-4e74-a7f3-db741adc87d8"] { object-position: 51% 31%; }
.org-ava[src*="dec36887-2397-4def-b271-19948a8a2d36"], .person-card__ava img[src*="dec36887-2397-4def-b271-19948a8a2d36"] { object-position: 63% 41%; }
.org-ava[src*="e39f6e93-e305-4ead-9182-ee32894d85b1"], .person-card__ava img[src*="e39f6e93-e305-4ead-9182-ee32894d85b1"] { object-position: 55% 31%; }
.org-ava[src*="eaa0e7b4-c343-4d29-a868-d6a5f4e84a35"], .person-card__ava img[src*="eaa0e7b4-c343-4d29-a868-d6a5f4e84a35"] { object-position: 55% 35%; }
.org-ava[src*="ec03c9d3-e880-440b-86e3-c7a13694e6ac"], .person-card__ava img[src*="ec03c9d3-e880-440b-86e3-c7a13694e6ac"] { object-position: 38% 27%; }
.org-ava[src*="ec10929e-197d-4fcb-b3d7-56aabf96a278"], .person-card__ava img[src*="ec10929e-197d-4fcb-b3d7-56aabf96a278"] { object-position: 53% 35%; }
.org-ava[src*="f1a6b38a-b274-4df4-b75f-26779b1d5fe8"], .person-card__ava img[src*="f1a6b38a-b274-4df4-b75f-26779b1d5fe8"] { object-position: 52% 39%; }
.org-ava[src*="f839f1a5-ea2b-4796-abcb-8a124845b411"], .person-card__ava img[src*="f839f1a5-ea2b-4796-abcb-8a124845b411"] { object-position: 53% 39%; }
/* Масштаб и сдвиг ставят обнаруженный центр лица точно в центр круга. */
.org-ava[src*="019e61d8-a63d-412e-805b-804191c289c6"] { --face-x: -53%; --face-y: -44%; --face-scale: 111%; }
.org-ava[src*="042f8046-e0ca-4543-aa6e-7b002411af99"] { --face-x: -51.3%; --face-y: -40.8%; --face-scale: 124%; }
.org-ava[src*="09a01098-3ae4-4118-8d38-c8da2f446471"] { --face-x: -49%; --face-y: -42%; --face-scale: 106%; }
.org-ava[src*="0b2654f4-cff6-4ad5-8205-3e1488cff6de"] { --face-x: -50.3%; --face-y: -35.7%; --face-scale: 148%; }
.org-ava[src*="0f65fd37-d28c-4cd4-8723-108c720aa065"] { --face-x: -51.3%; --face-y: -51.7%; --face-scale: 108%; }
.org-ava[src*="1acf847b-f80e-4259-b047-8979f9abb891"] { --face-x: -54%; --face-y: -28%; --face-scale: 124%; }
.org-ava[src*="1d019783-be74-4616-8fe0-9812b2ba994c"] { --face-x: -50.6%; --face-y: -34.7%; --face-scale: 151%; }
.org-ava[src*="218bca78-05d7-4703-b5a2-8681119fac48"] { --face-x: -49%; --face-y: -35%; --face-scale: 221%; }
.org-ava[src*="24114593-5c18-45e2-bbee-5c6b4d70fca1"] { --face-x: -57.6%; --face-y: -50%; --face-scale: 100%; }
.org-ava[src*="259cce03-b691-41c7-99da-6839368066d5"] { --face-x: -55.3%; --face-y: -57%; --face-scale: 121%; }
.org-ava[src*="2fa6fdec-8294-43b4-a941-2b5021e57dda"] { --face-x: -49.9%; --face-y: -55.2%; --face-scale: 115%; }
.org-ava[src*="31e41d2a-4c68-47b6-a0ac-bd3b7975b04c"] { --face-x: -57.7%; --face-y: -47.9%; --face-scale: 121%; }
.org-ava[src*="36d9cfc4-bd7f-4c4d-8799-dc3747f92d3a"] { --face-x: -55.1%; --face-y: -48.3%; --face-scale: 115%; }
.org-ava[src*="39f75231-3908-4cd0-9b83-b0a4ae79ba35"] { --face-x: -54%; --face-y: -38%; --face-scale: 114%; }
.org-ava[src*="3d2d6e18-4387-4066-9118-31e9cd3314b0"] { --face-x: -47%; --face-y: -66.7%; --face-scale: 125%; }
.org-ava[src*="3f328540-ef53-46f6-b1b2-1081145442ae"] { --face-x: -53%; --face-y: -48%; --face-scale: 110%; }
.org-ava[src*="468a5cca-6256-4736-a5b5-4425afadc1fd"] { --face-x: -53%; --face-y: -34%; --face-scale: 110%; }
.org-ava[src*="4901cc49-d14a-4bad-81ee-dbd944ec4acf"] { --face-x: -52%; --face-y: -30%; --face-scale: 117%; }
.org-ava[src*="4ee76bb4-9f14-4b64-8a67-e36d7bff8903"] { --face-x: -51%; --face-y: -28%; --face-scale: 124%; }
.org-ava[src*="563cd016-1f84-430e-a08d-b6316bd9d5c0"] { --face-x: -52%; --face-y: -34%; --face-scale: 109%; }
.org-ava[src*="568af10d-bf63-4891-b178-1e8a6f547e99"] { --face-x: -52%; --face-y: -30%; --face-scale: 117%; }
.org-ava[src*="652e02be-f68d-40f6-88c0-281785fa4147"] { --face-x: -51%; --face-y: -31%; --face-scale: 113%; }
.org-ava[src*="6c8553fc-ff4a-45ac-9636-182d96b34eec"] { --face-x: -49%; --face-y: -32%; --face-scale: 108%; }
.org-ava[src*="70c30c55-5de8-4fbd-9c9b-08f43bebc34a"] { --face-x: -51%; --face-y: -28%; --face-scale: 126%; }
.org-ava[src*="77c295a7-5f37-4fe3-b7cf-8f69c4bc9e19"] { --face-x: -49%; --face-y: -43.4%; --face-scale: 118%; }
.org-ava[src*="78970eec-e6b8-43ac-86f0-d5581c28e727"] { --face-x: -58%; --face-y: -33%; --face-scale: 124%; }
.org-ava[src*="7d892270-79be-45ba-919e-f878af3bbabb"] { --face-x: -56.6%; --face-y: -42.3%; --face-scale: 122%; }
.org-ava[src*="81b03880-2dda-40cb-8a52-8cffb55674d4"] { --face-x: -51.2%; --face-y: -28%; --face-scale: 123%; }
.org-ava[src*="8408a659-4dba-4cea-a7d3-a22e4e20e7ec"] { --face-x: -53.6%; --face-y: -50%; --face-scale: 113%; }
.org-ava[src*="879942ca-19eb-4cc0-8765-a39282316f90"] { --face-x: -52%; --face-y: -34%; --face-scale: 109%; }
.org-ava[src*="898c57db-0a4f-42ee-86b1-0b5e6bfb9a03"] { --face-x: -51%; --face-y: -53%; --face-scale: 106%; }
.org-ava[src*="a3aab64f-c468-4a63-a8d1-781b963bcb50"] { --face-x: -59%; --face-y: -31%; --face-scale: 126%; }
.org-ava[src*="af89836d-5bdc-48f1-b9dc-51674e572fcc"] { --face-x: -52%; --face-y: -49.5%; --face-scale: 109%; }
.org-ava[src*="b364a2cc-3f5e-4ea9-ad59-dfe74b2cab95"] { --face-x: -54.3%; --face-y: -52.4%; --face-scale: 111%; }
.org-ava[src*="b3873804-1157-47e6-baec-c42eae8d5abe"] { --face-x: -61.2%; --face-y: -47%; --face-scale: 137%; }
.org-ava[src*="ba8533a1-0a6b-439b-9b36-faa53571e4d2"] { --face-x: -57.3%; --face-y: -60.2%; --face-scale: 129%; }
.org-ava[src*="c99d1101-6d22-43fc-aae5-bea6e226010a"] { --face-x: -50%; --face-y: -37%; --face-scale: 105%; }
.org-ava[src*="ca5229ea-92f4-4b6b-a80b-f0095ac6715e"] { --face-x: -52.4%; --face-y: -48.5%; --face-scale: 109%; }
.org-ava[src*="ccb3743a-47b1-407a-9989-28e992e2eb9f"] { --face-x: -51%; --face-y: -26%; --face-scale: 133%; }
.org-ava[src*="d1730727-df63-4e74-a7f3-db741adc87d8"] { --face-x: -51.5%; --face-y: -31.6%; --face-scale: 169%; }
.org-ava[src*="dec36887-2397-4def-b271-19948a8a2d36"] { --face-x: -63.2%; --face-y: -41.7%; --face-scale: 141%; }
.org-ava[src*="e39f6e93-e305-4ead-9182-ee32894d85b1"] { --face-x: -55%; --face-y: -31%; --face-scale: 115%; }
.org-ava[src*="eaa0e7b4-c343-4d29-a868-d6a5f4e84a35"] { --face-x: -55.4%; --face-y: -35.8%; --face-scale: 147%; }
.org-ava[src*="ec03c9d3-e880-440b-86e3-c7a13694e6ac"] { --face-x: -38%; --face-y: -27%; --face-scale: 287%; }
.org-ava[src*="ec10929e-197d-4fcb-b3d7-56aabf96a278"] { --face-x: -53%; --face-y: -35%; --face-scale: 134%; }
.org-ava[src*="f1a6b38a-b274-4df4-b75f-26779b1d5fe8"] { --face-x: -52.3%; --face-y: -38.9%; --face-scale: 134%; }
.org-ava[src*="f839f1a5-ea2b-4796-abcb-8a124845b411"] { --face-x: -53.8%; --face-y: -39.1%; --face-scale: 133%; }
.org-ava--init {
  display: flex; align-items: center; justify-content: center;
  background: var(--chip-blue); color: var(--primary-strong);
  font-size: .68rem; font-weight: 700;
}
.org-node[data-depth="0"] > .org-node__head .org-ava-link,
.org-node[data-depth="0"] > .org-node__head > .org-ava { width: 54px; height: 54px; font-size: .82rem; }
.org-node[data-depth="1"] > .org-node__head .org-ava-link,
.org-node[data-depth="1"] > .org-node__head > .org-ava { width: 44px; height: 44px; font-size: .72rem; }

html.a11y .org-node { border-color: #000 !important; }
html.a11y .org-node__children { border-left-color: #000 !important; }
html.a11y .org-node__count { background: #fff !important; color: #000 !important; border: 1px solid #000; }

/* Контактная структура: крупный руководитель и компактные панели списков. */
.st-node--dir {
  gap: 28px; max-width: 760px; min-height: 270px; padding: 28px 30px;
  border: 1px solid var(--line); box-shadow: 0 10px 28px rgba(7, 53, 95, .12), 0 0 0 10px rgba(226, 237, 245, .7);
}
.st-node--dir::before { inset: 0 auto 0 0; width: 5px; height: auto; }
.st-node--dir > a { flex: none; }
.st-node--dir__photo img { width: 176px; height: 220px; border-radius: 16px; }
.st-node--dir__body { gap: 9px; }
.st-node--dir .st-role { font-size: .78rem; letter-spacing: .11em; }
.st-node--dir h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
.st-node--dir__visit {
  display: flex; align-items: center; gap: 8px; align-self: flex-start;
  margin: 2px 0 4px; padding: 9px 13px; border-radius: 12px;
  background: var(--chip-green); color: var(--green); font-size: .84rem; font-weight: 700;
}
.st-node--dir__visit svg { width: 17px; height: 17px; flex: none; }
.st-node--dir .st-chips { align-items: flex-start; flex-direction: column; gap: 9px; }
.st-phone-row { display: flex; align-items: center; gap: 10px; color: var(--ink-3); font-size: .8rem; }

.org-tree--panel {
  max-width: 820px; gap: 10px; padding: 16px;
  background: #edf4f8; border: 1px solid var(--line); border-radius: var(--r-lg);
  box-shadow: 0 8px 22px rgba(7, 53, 95, .09);
}
.org-tree--panel > .org-node { background: #fff; box-shadow: 0 1px 3px rgba(7, 53, 95, .04); }
.org-tree--staff > .org-node > .org-node__head { min-height: 72px; padding-inline: 16px; }
.org-tree--staff > .org-node > .org-node__head .org-node__id strong { font-size: .94rem; }
.org-tree--staff > .org-node > .org-node__head .org-node__role { font-size: .82rem; }
.org-tree--staff .org-node__count { min-width: 28px; text-align: center; }
.org-tree--branches .branch-node__head { min-height: 72px; padding: 12px 16px; }
.org-tree--branches .branch-node__details { min-height: 54px; background: #fbfdfe; }

.ct-leadership > .st { margin-bottom: 34px; }
.ct-leadership .st-node--dir { max-width: none; }
.ct-leadership-grid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px; align-items: start;
}
.ct-leadership-col { min-width: 0; align-self: start; }
.ct-leadership-col .org-tree--panel { height: auto; }
/* Высота филиалов не зависит от раскрытых карточек в соседней колонке. */
.ct-leadership .org-tree--branches { justify-content: flex-start; }
.ct-leadership-col > h3 {
  margin: 0 0 12px; font-size: 1.05rem; line-height: 1.3;
}
.ct-leadership-col .org-tree--panel { max-width: none; }
.ct-leadership-col .org-tree--staff > .org-node > .org-node__head { min-height: 78px; }
.ct-leadership-col .org-tree--branches .branch-node__head { min-height: 78px; }

/* Значения из утверждённого standalone-макета. */
.ct-leadership {
  padding: 28px 24px 32px; background: #eef1f6; border-radius: 24px;
}
.ct-leadership .st-node--dir {
  min-height: 0; gap: 28px; padding: 32px 32px 32px 40px;
  border: 0; border-radius: 20px; box-shadow: 0 8px 28px rgba(22, 35, 61, .07);
}
.ct-leadership .st-node--dir__photo img {
  width: 150px; height: 150px; border-radius: 16px;
  box-shadow: 0 4px 14px rgba(22, 35, 61, .12);
}
.ct-leadership .st-node--dir__body { gap: 6px; }
.ct-leadership .st-node--dir h3 { font-size: 1.38rem; color: #16233d; }
.ct-leadership .st-node--dir__visit { margin: 5px 0 3px; padding: 8px 14px; border-radius: 10px; }
.ct-leadership .org-tree--panel {
  gap: 10px; padding: 16px; background: #f4f6fa; border: 0; border-radius: 18px;
  box-shadow: none;
}
.ct-leadership .org-tree--panel.org-tree--branches { gap: 12px; }
.ct-leadership .org-tree--panel > .org-node {
  border-color: transparent; border-radius: 14px; box-shadow: 0 2px 8px rgba(22, 35, 61, .05);
}
/* Лист без подчинённых: убираем собственный отступ карточки, иначе он
   складывается с padding заголовка и карточка выходит выше и «сдвинутой».
   Стрелку-шеврон тоже прячем — разворачивать нечего. */
.ct-leadership .org-tree--panel > .org-node--leaf { padding: 0; }
.org-node--leaf .org-node__head::after { display: none; }
.ct-leadership .org-tree--staff .org-node__head,
.ct-leadership .org-tree--branches .branch-node__head {
  min-height: 120px; padding: 12px 18px; gap: 16px;
}
.ct-leadership .org-node[data-depth] > .org-node__head > .org-ava-link,
.ct-leadership .org-node[data-depth] > .org-node__head > .org-ava,
.ct-leadership .branch-node__head > .org-ava-link,
.ct-leadership .branch-node__head > .org-ava {
  width: 96px; height: 96px;
}
.ct-leadership .org-tree--branches .branch-node__head {
  min-height: 112px; padding: 12px 16px; gap: 12px;
}
.ct-leadership .org-tree--branches .branch-node__head > .org-ava-link,
.ct-leadership .org-tree--branches .branch-node__head > .org-ava {
  width: 88px; height: 88px;
}
/* Каждый портрет получает свой масштаб и сдвиг: центр круглого окна
   совмещён с центром носа, а исходник полностью перекрывает окно. */
.ct-leadership .org-ava-link .org-ava {
  width: var(--face-scale, 125%);
}
.org-node__meta {
  display: flex; align-items: center; flex-wrap: wrap; gap: 4px 9px;
  margin-top: 3px; color: #8893a6; font-size: .75rem; line-height: 1.3;
}
.org-node__meta .person-card__mail { font-size: inherit; }
.ct-leadership .org-node__count {
  min-width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0 7px; background: #eaf1fc; color: #1b4f91;
}
.ct-leadership .branch-node__details {
  min-height: 52px; gap: 4px; padding: 8px 16px 8px 120px; border-color: #eef1f6; background: #fff;
}
.ct-leadership .branch-node__address { color: #5b6577; font-size: .8rem; }
.ct-leadership .tel-chip { background: #eaf1fc; color: #1b4f91 !important; border-radius: 10px; }
.ct-leadership .org-node__id strong { color: #16233d; }
.ct-leadership .org-node__role { color: #8893a6; }

.ct-leadership .org-tree--staff > .org-node:nth-child(7n+1) .org-ava--init { background: #2f72f4; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+2) .org-ava--init { background: #18a368; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+3) .org-ava--init { background: #ea7b24; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+4) .org-ava--init { background: #8057f5; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+5) .org-ava--init { background: #e44778; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+6) .org-ava--init { background: #22a2b4; color: #fff; }
.ct-leadership .org-tree--staff > .org-node:nth-child(7n+7) .org-ava--init { background: #cf9016; color: #fff; }

@media (max-width: 960px) {
  .ct-leadership-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .st-node--dir { min-height: 0; gap: 18px; padding: 20px; box-shadow: 0 6px 20px rgba(7, 53, 95, .1); }
  .st-node--dir__photo img { width: 118px; height: 148px; }
  .st-node--dir__visit { font-size: .78rem; }
  .st-phone-row { align-items: flex-start; flex-direction: column; gap: 5px; }
  .org-tree--panel { padding: 10px; }
  .ct-leadership > .st { margin-bottom: 28px; }
  .ct-leadership-grid { gap: 28px; }
  .ct-leadership { padding: 20px 12px 24px; border-radius: 18px; }
  .ct-leadership .st-node--dir { padding: 22px 20px 22px 26px; }
  .ct-leadership .st-node--dir__photo img { width: 118px; height: 118px; }
  .ct-leadership .branch-node__details { padding-left: 16px; }
  .ct-leadership .org-tree--staff .org-node__head,
  .ct-leadership .org-tree--branches .branch-node__head { min-height: 96px; }
  .ct-leadership .org-node[data-depth] > .org-node__head > .org-ava-link,
  .ct-leadership .org-node[data-depth] > .org-node__head > .org-ava,
  .ct-leadership .org-tree--branches .branch-node__head > .org-ava-link,
  .ct-leadership .org-tree--branches .branch-node__head > .org-ava { width: 72px; height: 72px; }
}

@media (max-width: 460px) {
  .st-node--dir__photo img { width: min(100%, 220px); height: auto; aspect-ratio: 4 / 5; }
}

/* ============================================================
   Контакты
   ============================================================ */
.ct-section { margin-bottom: 44px; }
.ct-section h2 { margin-bottom: 18px; }

/* --- Горячие линии --- */
.ct-hotlines { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 18px; }
.ct-hot {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; gap: 10px;
  background:
    radial-gradient(420px 200px at 95% -30%, rgba(24, 167, 201, .32), transparent 65%),
    linear-gradient(150deg, var(--night), var(--primary-deep) 80%);
  border-radius: var(--r-lg); color: #fff; padding: 28px 26px 30px;
}
.ct-hot::after {
  content: ""; position: absolute; inset: auto 0 0;
  height: 4px; background: var(--aurora);
}
.ct-hot__badge {
  align-self: flex-start; font-size: .74rem; font-weight: 700; letter-spacing: .03em;
  background: rgba(146, 211, 110, .18); color: #b8e6a0;
  border-radius: 99px; padding: 4px 12px; margin-bottom: 4px;
}
.ct-hot__badge--time { background: rgba(24, 167, 201, .2); color: #9fdcef; }
.ct-hot__num {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(1.2rem, 1.6vw, 1.5rem); letter-spacing: .02em;
  color: #fff; text-decoration: none; white-space: nowrap;
}
.ct-hot__num:hover { color: #92d36e; }
.ct-hot__cap { margin: 0; font-weight: 700; font-size: 1rem; color: #d7e7f3; }
.ct-hot__meta { margin: 0; font-size: .86rem; line-height: 1.55; color: #9cc1da; }

/* --- Центральный офис --- */
.ct-office {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 0; box-shadow: var(--shadow);
}
.ct-office::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--aurora);
}
.ct-office__contact {
  min-width: 0; padding: 30px 32px 30px 36px;
  display: flex; flex-direction: column; justify-content: center; gap: 20px;
}
.ct-office__location, .ct-office__reception { display: grid; gap: 7px; }
.ct-office__label {
  color: var(--ink-3); font-size: .7rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
}
.ct-office__addr {
  margin: 0; display: flex; align-items: center; gap: 10px;
  font-weight: 750; font-size: clamp(1rem, 1.35vw, 1.18rem); letter-spacing: -.015em;
}
.ct-office__addr svg { width: 22px; height: 22px; flex: none; color: var(--accent); }
.ct-visit {
  margin: 0; align-self: stretch;
  display: flex; gap: 11px; align-items: center;
  background: var(--chip-green); color: #1c7a52;
  font-size: .88rem; border-radius: 14px; padding: 12px 14px;
}
.ct-visit span { display: grid; gap: 1px; }
.ct-visit strong { color: inherit; font-weight: 750; }
.ct-visit svg { width: 19px; height: 19px; flex: none; }
.ct-office__chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ct-office__chips .tel-chip, .ct-office__chips .mail-chip, .ct-office__chips .ct-route {
  min-height: 44px; padding-inline: 15px; justify-content: center;
}
.ct-requisites {
  min-width: 0; padding: 29px 30px;
  display: flex; flex-direction: column; justify-content: center;
  border-left: 1px solid var(--line);
  background: linear-gradient(145deg, var(--chip-blue), var(--card));
}
.ct-requisites__eyebrow {
  margin-bottom: 5px; color: var(--accent-ink); font-size: .7rem; font-weight: 800;
  letter-spacing: .1em; text-transform: uppercase;
}
.ct-requisites h3 {
  margin: 0; color: var(--primary-strong); font-size: clamp(1.25rem, 1.7vw, 1.55rem);
  letter-spacing: -.02em;
}
.ct-requisites__name {
  max-width: 58ch; margin: 8px 0 22px; color: var(--ink-2);
  font-size: .84rem; line-height: 1.48;
}
.ct-requisites__codes {
  margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--line-2); padding-top: 14px;
}
.ct-requisites__codes > div { min-width: 0; padding: 0 13px; }
.ct-requisites__codes > div:first-child { padding-left: 0; }
.ct-requisites__codes > div + div { border-left: 1px solid var(--line-2); }
.ct-requisites dt {
  margin: 0 0 4px; color: var(--ink-3); font-size: .67rem; font-weight: 800;
  text-transform: uppercase; letter-spacing: .08em;
}
.ct-requisites dd {
  margin: 0; color: var(--ink); font-weight: 750; font-size: .92rem;
  line-height: 1.35; font-variant-numeric: tabular-nums;
}
@media (max-width: 1080px) {
  .ct-office { grid-template-columns: 1fr; }
  .ct-requisites { border-left: 0; border-top: 1px solid var(--line); }
}
@media (max-width: 640px) {
  .ct-office__contact, .ct-requisites { padding: 22px 20px 22px 24px; }
  .ct-office__chips { align-items: stretch; }
  .ct-office__chips .tel-chip, .ct-office__chips .mail-chip, .ct-office__chips .ct-route { flex: 1 1 auto; }
}
@media (max-width: 460px) {
  .ct-requisites__codes { grid-template-columns: 1fr; padding-top: 4px; }
  .ct-requisites__codes > div { padding: 11px 0; }
  .ct-requisites__codes > div + div { border-left: 0; border-top: 1px solid var(--line-2); }
}
.ct-route {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--card); border: 1px solid var(--line-2);
  color: var(--primary-strong) !important;
  font-weight: 700; font-size: .88rem; text-decoration: none;
  border-radius: 99px; padding: 5px 14px; white-space: nowrap;
  transition: border-color .15s, background .15s;
}
.ct-route:hover { border-color: var(--accent); background: var(--chip-blue); }
.ct-route svg { width: 15px; height: 15px; flex: none; }

/* --- Соцсети --- */
.ct-soc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 14px; }
.ct-soc {
  display: flex; align-items: center; gap: 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  padding: 16px 18px; text-decoration: none; color: var(--ink);
  box-shadow: 0 1px 2px rgba(7, 53, 95, .04);
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.ct-soc:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--line-2); color: var(--ink); }
.ct-soc__mark {
  width: 46px; height: 46px; border-radius: 13px; flex: none;
  display: grid; place-items: center;
  font-weight: 800; font-size: 1.02rem; letter-spacing: .02em; color: #fff;
}
.ct-soc__mark--vk { background: #0077ff; }
.ct-soc__mark--ok { background: #ee8208; }
.ct-soc__mark--max { background: #7048a8; }
.ct-soc__name { font-weight: 700; line-height: 1.3; }
.ct-soc__name small { display: block; font-weight: 400; font-size: .82rem; color: var(--ink-2); }

/* --- Карточка «Обратная связь» --- */
.ct-cta {
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 22px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 26px 28px; text-decoration: none; color: var(--ink);
  box-shadow: var(--shadow); transition: transform .18s, box-shadow .18s;
}
.ct-cta::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--aurora);
}
.ct-cta:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); color: var(--ink); }
.ct-cta h3 { margin: 0 0 6px; font-size: 1.15rem; }
.ct-cta:hover h3 { color: var(--primary); }
.ct-cta p { margin: 0; font-size: .92rem; color: var(--ink-2); max-width: 64ch; }
.ct-cta__arr {
  margin-left: auto; flex: none;
  width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--chip-blue); color: var(--primary-strong);
  transition: background .18s, color .18s;
}
.ct-cta__arr svg { width: 20px; height: 20px; }
.ct-cta:hover .ct-cta__arr { background: var(--primary); color: #fff; }

/* ============================================================
   Дедуп-связки: ссылки на каталог документов и на контакты
   ============================================================ */
/* Кнопка «Открыть в каталоге документов» на тематических страницах */
.catalog-cta {
  display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
  background: var(--chip-blue); border: 1px solid var(--line);
  border-radius: var(--card-r); padding: 16px 20px;
  margin: 6px 0 22px;
}
.catalog-cta__txt { display: flex; flex-direction: column; gap: 3px; min-width: 220px; flex: 1; }
.catalog-cta__txt strong { color: var(--primary-strong); font-size: .98rem; }
.catalog-cta__txt span { color: var(--ink-2); font-size: .88rem; line-height: 1.45; }
.catalog-cta__btn { margin-left: auto; flex: none; padding: 11px 20px; font-size: .95rem; }
@media (max-width: 640px) {
  .catalog-cta__btn { margin-left: 0; width: 100%; justify-content: center; }
}

/* Карточка-ссылка «Все контакты и структура фонда» на странице «О фонде» */
.contacts-cta {
  position: relative; overflow: hidden;
  display: flex; align-items: center; gap: 18px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--card-r);
  padding: 18px 22px; margin: 4px 0 26px; text-decoration: none; color: var(--ink);
  box-shadow: var(--card-shadow); transition: var(--card-transition);
}
.contacts-cta::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--aurora);
}
.contacts-cta:hover {
  transform: translateY(-3px); box-shadow: var(--card-shadow-hover);
  border-color: var(--accent); color: var(--ink);
}
.contacts-cta__txt { display: flex; flex-direction: column; gap: 4px; }
.contacts-cta__txt strong { color: var(--primary-strong); font-size: 1.05rem; }
.contacts-cta__txt span { color: var(--ink-2); font-size: .9rem; line-height: 1.45; max-width: 60ch; }
.contacts-cta__arr {
  margin-left: auto; flex: none;
  width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center; font-size: 1.25rem; line-height: 1;
  background: var(--chip-blue); color: var(--primary-strong);
  transition: background .18s, color .18s;
}
.contacts-cta:hover .contacts-cta__arr { background: var(--primary); color: #fff; }
@media (max-width: 640px) {
  .contacts-cta { flex-direction: column; align-items: flex-start; }
  .contacts-cta__arr { margin-left: 0; }
}

/* ============================================================
   Страница 404
   ============================================================ */
.nf {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  padding-block: 96px 130px;
}
.nf__code {
  font-family: var(--font-display); font-weight: 700; line-height: 1;
  font-size: clamp(5rem, 14vw, 9rem); letter-spacing: .02em;
  background: var(--aurora);
  -webkit-background-clip: text; background-clip: text;
  color: transparent; -webkit-text-fill-color: transparent;
  margin-bottom: 14px;
}
.nf h1 { margin: 0 0 12px; }
.nf__text { margin: 0 0 32px; max-width: 46ch; color: var(--ink-2); }
.nf__actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px;
  margin-bottom: 56px;
}
.nf-btn {
  background: var(--card); color: var(--primary-strong) !important;
  border: 1.5px solid var(--line-2);
  transition: border-color .15s, background .15s, transform .12s;
}
.nf-btn:hover { border-color: var(--accent); background: var(--chip-blue); }
.nf__cap {
  margin: 0 0 14px; font-size: .76rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--ink-3);
}
.nf__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }

/* ============================================================
   Версия для слабовидящих
   ============================================================ */
html.a11y .ct-hot, html.a11y .ct-office, html.a11y .ct-soc, html.a11y .ct-cta {
  background: #fff !important; color: #000 !important; border: 2px solid #000 !important;
}
html.a11y .ct-hot *, html.a11y .ct-office *, html.a11y .ct-cta h3, html.a11y .ct-cta p,
html.a11y .ct-soc__name, html.a11y .ct-soc__name small { color: #000 !important; }
/* При крупном шрифте длинные значения распирали колонку на 320px.
   Разрешаем перенос внутри слова — иначе страница едет вбок. */
html.a11y .ct-soc__name, html.a11y .ct-soc__name small { overflow-wrap: anywhere; }
html.a11y .ct-hot__num { color: #00007a !important; text-decoration: underline !important; }
html.a11y .ct-hot__badge, html.a11y .ct-visit, html.a11y .ct-route, html.a11y .mail-chip {
  background: #fff !important; color: #000 !important; border: 2px solid #000 !important;
}
html.a11y .ct-soc__mark, html.a11y .ct-cta__arr { background: #000 !important; color: #fff !important; }
html.a11y .nf__code {
  background: none !important; color: #000 !important; -webkit-text-fill-color: #000 !important;
}
html.a11y .nf-btn { background: #000 !important; color: #fff !important; border: 2px solid #000 !important; }
html.a11y .nf__cap, html.a11y .nf__text { color: #000 !important; }

/* ============================================================
   Внутренний телефонный справочник (непубличная страница /internal/)
   ============================================================ */
.idir-notice {
  display: flex; align-items: center; gap: 14px;
  background: var(--chip-blue); border-radius: var(--r); padding: 16px 20px;
  margin-bottom: 24px; color: var(--primary-strong); font-size: .92rem; line-height: 1.5;
}
.idir-notice svg { width: 22px; height: 22px; flex: none; color: var(--accent); }
.idir-search {
  position: sticky; top: 0; z-index: 5;
  display: flex; align-items: center; gap: 12px;
  background: var(--bg); padding: 10px 0 18px;
  margin-bottom: 8px;
}
.idir-search input {
  flex: 1; max-width: 480px; padding: 12px 18px; border-radius: 99px;
  border: 1.5px solid var(--line-2); background: var(--card);
  font-size: .96rem; color: var(--ink);
}
.idir-search input:focus { outline: none; border-color: var(--accent); }
.idir-search__count { font-size: .86rem; color: var(--ink-3); white-space: nowrap; }

.idir-list { display: flex; flex-direction: column; gap: 8px; }
.idir-group {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r);
  overflow: hidden;
}
.idir-group__title {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px; font-size: .98rem; font-weight: 700; cursor: pointer;
  list-style: none; user-select: none;
}
.idir-group__title::-webkit-details-marker { display: none; }
.idir-group__title::before {
  content: ""; flex: none; width: 9px; height: 9px;
  border-right: 2px solid var(--ink-3); border-bottom: 2px solid var(--ink-3);
  transform: rotate(-45deg); transition: transform .15s; margin-left: 2px;
}
.idir-group[open] > .idir-group__title::before { transform: rotate(45deg); }
.idir-group__count {
  margin-left: auto; flex: none; font-size: .78rem; font-weight: 700;
  color: var(--ink-3); background: var(--bg); border-radius: 99px; padding: 2px 10px;
}
.idir-group__vacant { margin: 0; padding: 0 18px 14px; color: var(--ink-3); font-size: .9rem; font-style: italic; }

/* Общая сетка колонок для ВСЕХ строк отдела разом (subgrid) — если в одной
   строке нет внешнего добавочного или почты, соседние колонки всё равно не
   съезжают, т.к. ширина считается по столбцу, а не по содержимому строки. */
.idir-rows {
  display: grid;
  grid-template-columns: minmax(170px, 1.1fr) minmax(160px, 1.3fr) minmax(210px, auto) minmax(150px, 1fr);
  border-top: 1px solid var(--line);
}
.idir-row {
  display: grid; grid-template-columns: subgrid; grid-column: 1 / -1;
  align-items: center; column-gap: 16px;
  padding: 11px 18px; border-top: 1px solid var(--line);
  font-size: .88rem;
}
.idir-row:first-child { border-top: none; }
.idir-row:nth-child(even) { background: var(--bg); }
.idir-row:hover { background: var(--chip-blue); }
.idir-row__name { margin: 0; font-size: .88rem; font-weight: 700; }
.idir-row__role { color: var(--ink-2); }
.idir-row__ext { display: flex; gap: 6px; flex-wrap: wrap; }
.idir-row__ext .tel-chip { padding: 3px 10px; font-size: .78rem; white-space: nowrap; }
.idir-row__mail { font-size: .84rem; overflow-wrap: anywhere; }
.idir-row mark {
  background: var(--chip-blue); color: var(--primary-strong);
  border-radius: 3px; padding: 0 2px; font-weight: 700;
}
html.a11y .idir-row mark { background: #000 !important; color: #fff !important; }
.idir-empty { text-align: center; color: var(--ink-3); padding: 40px 0; font-size: .95rem; }
html.a11y .idir-notice { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }
html.a11y .idir-search input { border-color: #000 !important; }
html.a11y .idir-group { border: 2px solid #000 !important; }
html.a11y .idir-row:nth-child(even) { background: #fff !important; }
@media (max-width: 760px) {
  .idir-rows { grid-template-columns: 1fr 1fr; }
  .idir-row { row-gap: 4px; padding: 12px 18px; }
  .idir-row__name { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .idir-search { flex-wrap: wrap; }
}

/* ============================================================
   Адаптивность
   ============================================================ */
@media (max-width: 640px) {
  .ct-section { margin-bottom: 44px; }
  .branch-node__details { align-items: flex-start; flex-direction: column; padding-left: 16px; }
  .ct-hot { padding: 22px 20px 26px; }
  .ct-office { padding: 22px 20px; }
  .ct-cta { flex-direction: column; align-items: flex-start; padding: 22px 20px; }
  .ct-cta__arr { margin-left: 0; }
  .nf { padding-block: 64px 88px; }
}

/* ============ Cookie-баннер ============ */
.cookie-bar {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 300;
  max-width: 620px; margin-inline: auto; display: none; flex-direction: column; gap: 12px;
  padding: 16px 18px; background: var(--card, #fff);
  border: 1px solid var(--line, #e3e8ef); border-radius: 16px;
  box-shadow: 0 6px 18px rgba(7, 53, 95, .12), 0 18px 48px -18px rgba(7, 53, 95, .28);
}
.cookie-bar.is-open { display: flex; }
.cookie-bar p { margin: 0; font-size: .86rem; line-height: 1.5; color: var(--ink-2); }
.cookie-bar__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cookie-bar__btn {
  padding: 9px 18px; font: inherit; font-size: .86rem; font-weight: 600; cursor: pointer;
  border: 1px solid var(--line-2, #d5dbe4); border-radius: 10px;
  background: transparent; color: var(--ink);
}
.cookie-bar__btn--primary { background: var(--primary, #1b4f91); border-color: transparent; color: #fff; }
.cookie-bar__btn:hover { filter: brightness(1.06); }
html.a11y .cookie-bar { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .cookie-bar__btn { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }

/* Юридические ссылки в футере */
.footer__legal-links { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.footer__legal-links a { font-size: .82rem; opacity: .85; }
.footer__legal-links a:hover { opacity: 1; }

/* ============ Тёмная тема: блок «Руководство и филиалы» ============ */
html[data-theme="dark"] .ct-leadership { background: #202022; }
html[data-theme="dark"] .ct-leadership .st-node--dir {
  background: var(--card); box-shadow: 0 8px 28px rgba(0, 0, 0, .45);
}
html[data-theme="dark"] .ct-leadership .st-node--dir h3 { color: var(--ink); }
html[data-theme="dark"] .ct-leadership .org-tree--panel { background: #1b1b1d; }
html[data-theme="dark"] .ct-leadership .org-tree--panel > .org-node {
  background: var(--card); box-shadow: 0 2px 8px rgba(0, 0, 0, .35);
}
html[data-theme="dark"] .ct-leadership .org-node__id strong { color: var(--ink); }
html[data-theme="dark"] .ct-leadership .org-node__role { color: var(--ink-3); }
html[data-theme="dark"] .org-node__meta { color: var(--ink-3); }
html[data-theme="dark"] .ct-leadership .org-node__count { background: #2c2c2e; color: var(--primary-deep); }
html[data-theme="dark"] .ct-leadership .branch-node__details { background: #232325; border-color: #38383a; }
html[data-theme="dark"] .ct-leadership .branch-node__address { color: var(--ink-3); }
html[data-theme="dark"] .ct-leadership .tel-chip { background: #2c2c2e; color: var(--primary-deep) !important; }
html[data-theme="dark"] .ct-leadership .org-ava, html[data-theme="dark"] .ct-leadership .org-ava-link { border-color: #48484a; }

/* ============ Режим для слабовидящих: блок «Руководство и филиалы» ============ */
html.a11y .ct-leadership, html.a11y .ct-leadership .org-tree--panel { background: #fff !important; }
html.a11y .ct-leadership .st-node--dir,
html.a11y .ct-leadership .org-tree--panel > .org-node {
  background: #fff !important; border: 2px solid #000 !important; box-shadow: none !important;
}
html.a11y .ct-leadership .branch-node__details { background: #fff !important; border-color: #000 !important; }
html.a11y .ct-leadership .org-node__id strong, html.a11y .ct-leadership .org-node__role,
html.a11y .ct-leadership .branch-node__address, html.a11y .org-node__meta,
html.a11y .ct-leadership .st-node--dir h3 { color: #000 !important; }
html.a11y .ct-leadership .tel-chip, html.a11y .ct-leadership .org-node__count {
  background: #fff !important; color: #000 !important; border: 1px solid #000 !important;
}

/* ============ Карта сайта ============ */
.sitemap-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 28px 24px; padding-block: 8px 40px;
}
.sitemap-col h2 { font-size: .95rem; margin: 0 0 12px; color: var(--ink); }
.sitemap-col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.sitemap-col a { font-size: .88rem; color: var(--ink-2); }
.sitemap-col a:hover { color: var(--primary); }
html.a11y .sitemap-col a { color: #000 !important; }


/* ============ Списки организаций строками (страховые представители, СМО, медорганизации) ============ */
/* Класс .dir-grid/.dir-card теперь используется только для директорий-списков.
   Переопределяем сеточку квадратных карточек в аккуратный вертикальный список-строки:
   слева название, справа график/адрес/контакты. Не ломается от разной длины полей. */
.prose .dir-grid { display: flex !important; flex-direction: column; gap: 8px; max-width: none; }
.dir-grid .dir-card {
  display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.6fr);
  gap: 3px 28px; align-items: start;
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  padding: 13px 18px; box-shadow: 0 1px 2px rgba(7, 53, 95, .04);
  transform: none !important;
}
.dir-grid .dir-card:hover { border-color: var(--line-2); box-shadow: 0 2px 6px rgba(7, 53, 95, .07); transform: none !important; }
.dir-grid .dir-card > * { grid-column: 2; margin: 0; font-size: .875rem; line-height: 1.45; color: var(--ink-2); }
.dir-grid .dir-card__place { grid-column: 1; align-self: start;
  font-weight: 700; font-size: .95rem; line-height: 1.35; color: var(--ink); }
.dir-grid .dir-card__addr { color: var(--ink); font-weight: 500; }
.dir-grid .dir-card__sched { color: var(--ink-3); }
.dir-grid .dir-card__note { color: var(--ink-2); }
.dir-grid .dir-card__people { list-style: none; padding: 0; }
.dir-grid .dir-card__phones { display: flex; flex-wrap: wrap; gap: 8px; }
html.a11y .dir-grid .dir-card { background: #fff !important; border: 2px solid #000 !important; box-shadow: none !important; }
html.a11y .dir-grid .dir-card > *, html.a11y .dir-grid .dir-card__place { color: #000 !important; }
@media (max-width: 640px) {
  .dir-grid .dir-card { grid-template-columns: 1fr; gap: 3px; padding: 13px 15px; }
  .dir-grid .dir-card__place { grid-row: auto; margin-bottom: 3px; }
  .dir-grid .dir-card > * { grid-column: 1; }
}


/* ============ Поиск по частым вопросам ============ */
.faq-search { margin: 0 0 18px; }
.faq-search__input {
  width: 100%; padding: 12px 16px; font: inherit; font-size: .95rem;
  background: var(--card); color: var(--ink);
  border: 1px solid var(--line-2); border-radius: 12px; box-shadow: 0 1px 2px rgba(7, 53, 95, .04);
}
.faq-search__input::placeholder { color: var(--ink-3); }
.faq-search__input:focus { outline: 2px solid var(--primary); outline-offset: 1px; border-color: transparent; }
.faq-search__empty { margin: 14px 2px 0; color: var(--ink-2); font-size: .9rem; }
html.a11y .faq-search__input { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }


/* ============ Форма заявки на включение в ОМС ============ */
.req-form-wrap { margin: 4px 0 28px; }
.req-form {
  display: flex; flex-direction: column; gap: 14px; max-width: 560px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--r-lg, 16px);
  padding: 22px 24px; box-shadow: 0 1px 2px rgba(7, 53, 95, .04);
}
.req-form__label { font-size: .88rem; font-weight: 600; color: var(--ink); margin-bottom: -6px; }
.req-form__input, .req-form__file {
  width: 100%; min-width: 0; max-width: 100%;
  padding: 11px 14px; font: inherit; font-size: .93rem; color: var(--ink);
  background: var(--bg, #fff); border: 1px solid var(--line-2); border-radius: 10px;
}
.req-form__input:focus, .req-form__file:focus { outline: 2px solid var(--primary); outline-offset: 1px; border-color: transparent; }
.req-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.req-form__consent { display: flex; align-items: flex-start; gap: 10px; }
.req-form__checkbox { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; accent-color: var(--primary); }
.req-form__consent-label { font-size: .85rem; line-height: 1.45; color: var(--ink); }
.req-form__consent-label a { color: var(--primary); text-decoration: underline; }
html.a11y .req-form__checkbox { outline: 2px solid #000 !important; }
.req-form__submit { align-self: flex-start; }
.req-form__msg { margin: 0; padding: 10px 14px; border-radius: 10px; font-size: .88rem; line-height: 1.4; }
.req-form__msg--ok { background: #e6f7ec; color: #146c3a; }
.req-form__msg--err { background: #fdecec; color: #a3211f; }
html[data-theme="dark"] .req-form__msg--ok { background: #113321; color: #6fd897; }
html[data-theme="dark"] .req-form__msg--err { background: #3a1616; color: #ff9c9a; }
html.a11y .req-form { background: #fff !important; border: 2px solid #000 !important; }
html.a11y .req-form__input, html.a11y .req-form__file { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }
@media (max-width: 640px) {
  .req-form { padding: 18px; }
}
/* ---------- Статистика обращений ---------- */
.page-hero--chart { padding-bottom: 54px; }
.chart-eyebrow {
  margin: 16px 0 8px;
  color: var(--accent-ink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.page-hero--chart .chart-lead { max-width: 820px; margin: 12px 0 0; color: #d7e6f0; font-size: 1.08rem; }
.chart-page { margin-top: -28px; padding-bottom: 64px; position: relative; z-index: 2; }
.chart-app {
  container-type: inline-size;
  min-height: 460px;
  overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
}
.chart-toolbar {
  display: flex;
  align-items: end;
  gap: 24px;
  padding: 22px 26px;
  background: color-mix(in srgb, var(--bg) 58%, var(--card));
  border-bottom: 1px solid var(--line);
}
.chart-field { flex: 0 0 150px; }
.chart-field label, .chart-search span, .chart-limit span {
  display: block;
  margin-bottom: 6px;
  color: var(--ink-2);
  font-size: .78rem;
  font-weight: 700;
}
.chart-field select, .chart-filterbar input, .chart-filterbar select {
  width: 100%;
  min-height: 44px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: var(--card);
  color: var(--ink);
  font: inherit;
}
.chart-field select, .chart-filterbar select { padding: 8px 36px 8px 12px; }
.chart-filterbar input { padding: 8px 13px; }
.chart-tabs { display: flex; flex: 1; gap: 7px; overflow-x: auto; scrollbar-width: thin; }
.chart-tab {
  min-height: 44px;
  flex: 1 0 auto;
  padding: 8px 16px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: var(--card);
  color: var(--ink-2);
  font: inherit;
  font-size: .88rem;
  font-weight: 700;
  cursor: pointer;
  transition: background-color .18s, border-color .18s, color .18s;
}
.chart-tab:hover { border-color: var(--primary); color: var(--primary); }
.chart-tab[aria-pressed="true"] { border-color: var(--primary); background: var(--primary); color: #fff; }
.chart-status {
  display: flex;
  min-height: 340px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 32px;
  color: var(--ink-2);
  text-align: center;
}
.chart-status--error { color: var(--danger); flex-wrap: wrap; }
.chart-loader {
  width: 22px;
  height: 22px;
  border: 3px solid var(--line-2);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: chart-spin .8s linear infinite;
}
@keyframes chart-spin { to { transform: rotate(360deg); } }
.chart-retry {
  min-height: 40px;
  padding: 7px 14px;
  border: 0;
  border-radius: 9px;
  background: var(--primary);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}
.chart-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: start;
  padding: 30px 30px 20px;
}
.chart-kicker { margin: 0 0 5px; color: var(--accent-ink); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.chart-heading h2 { margin-bottom: 8px; }
.chart-description { max-width: 820px; margin: 0; color: var(--ink-2); }
.chart-metric {
  min-width: 190px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: var(--r);
  background: var(--bg);
}
.chart-metric strong { display: block; color: var(--primary); font-family: var(--font-display); font-size: 1.55rem; line-height: 1.2; }
.chart-metric span { display: block; margin-top: 5px; color: var(--ink-2); font-size: .78rem; line-height: 1.35; }
.chart-filterbar { display: flex; gap: 14px; padding: 0 30px 18px; }
.chart-search { flex: 1; }
.chart-limit { flex: 0 0 160px; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 12px 30px 18px; border-top: 1px solid var(--line); color: var(--ink-2); font-size: .77rem; }
.chart-legend__item {
  display: inline-flex; align-items: flex-start; gap: 7px;
  min-width: 0; max-width: 100%; overflow-wrap: anywhere;
}
.chart-legend__swatch { width: 10px; height: 10px; flex: none; }
.chart-canvas { padding: 8px 30px 26px; }
.chart-bars { display: grid; gap: 19px; }
.chart-bar { min-width: 0; }
.chart-bar__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: baseline; margin-bottom: 7px; }
.chart-bar__head h3 { margin: 0; overflow-wrap: anywhere; font-size: .93rem; font-weight: 700; }
.chart-bar__head strong { color: var(--primary); font-family: var(--font-display); font-size: .9rem; }
.chart-bar__track { display: block; width: 100%; height: 13px; overflow: visible; background: var(--bg); border-radius: 4px; }
.chart-bar__values { margin: 6px 0 0; color: var(--ink-3); font-size: .72rem; line-height: 1.45; }
.chart-donut-layout { display: grid; grid-template-columns: minmax(240px, 380px) minmax(0, 1fr); gap: 46px; align-items: center; max-width: 940px; margin: 10px auto 22px; }
.chart-donut { position: relative; max-width: 330px; margin: auto; }
.chart-donut svg { display: block; width: 100%; height: auto; transform: rotate(-90deg); }
.chart-donut__track, .chart-donut__slice { fill: none; stroke-width: 22; }
.chart-donut__track { stroke: var(--bg); }
.chart-donut__slice { transition: stroke-width .18s; }
.chart-donut__slice:hover { stroke-width: 27; }
.chart-donut__center { position: absolute; inset: 28%; display: grid; place-content: center; text-align: center; pointer-events: none; }
.chart-donut__center strong { color: var(--primary); font-family: var(--font-display); font-size: clamp(1.4rem, 3vw, 2.2rem); line-height: 1.1; }
.chart-donut__center span { margin-top: 4px; color: var(--ink-2); font-size: .78rem; }
.chart-donut-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: rank; }
.chart-donut-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 14px 0; border-bottom: 1px solid var(--line); counter-increment: rank; }
.chart-donut-list li:first-child { border-top: 1px solid var(--line); }
.chart-donut-list span { overflow-wrap: anywhere; }
.chart-donut-list strong { white-space: nowrap; color: var(--primary); }
.chart-empty { margin: 12px 30px 30px; padding: 24px; border-radius: var(--r); background: var(--bg); color: var(--ink-2); text-align: center; }
.chart-data-details { margin: 0 30px 24px; border-top: 1px solid var(--line); }
.chart-data-details summary { padding: 17px 0; color: var(--primary); font-weight: 700; cursor: pointer; }
.chart-table-wrap { max-height: 540px; overflow: auto; border: 1px solid var(--line); border-radius: var(--r); }
.chart-table-wrap table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.chart-table-wrap th, .chart-table-wrap td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: right; vertical-align: top; }
.chart-table-wrap th:first-child { min-width: 290px; position: sticky; left: 0; z-index: 1; background: var(--card); text-align: left; }
.chart-table-wrap thead th { position: sticky; top: 0; z-index: 2; background: var(--night); color: #fff; }
.chart-table-wrap thead th:first-child { z-index: 3; background: var(--night); }
.chart-source { margin: 0; padding: 18px 30px 22px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: .76rem; }

[data-theme="dark"] .chart-toolbar { background: color-mix(in srgb, var(--bg) 72%, var(--card)); }
[data-theme="dark"] .chart-tab, [data-theme="dark"] .chart-field select, [data-theme="dark"] .chart-filterbar input, [data-theme="dark"] .chart-filterbar select { background: var(--card); }

@media (max-width: 820px) {
  .chart-toolbar { align-items: stretch; flex-direction: column; gap: 14px; }
  .chart-field { flex-basis: auto; max-width: 180px; }
  .chart-heading { grid-template-columns: 1fr; }
  .chart-metric { min-width: 0; max-width: 260px; }
  .chart-donut-layout { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 560px) {
  .page-hero--chart { padding-bottom: 42px; }
  .chart-page { margin-top: -20px; padding-inline: 12px; }
  .chart-toolbar, .chart-heading { padding: 18px; }
  .chart-filterbar { padding: 0 18px 16px; flex-direction: column; }
  .chart-limit { flex-basis: auto; }
  .chart-legend { max-height: 180px; overflow: auto; padding: 12px 18px 16px; }
  .chart-canvas { padding: 4px 18px 22px; }
  .chart-bar__head { gap: 8px; }
  .chart-bar__head h3 { font-size: .84rem; }
  .chart-bar__values { display: none; }
  .chart-data-details { margin-inline: 18px; }
  .chart-source { padding-inline: 18px; }
  .chart-table-wrap th:first-child { min-width: 220px; }
}

/* График адаптируется по реальной ширине карточки: viewport, split-screen, zoom. */
@container (max-width: 520px) {
  .chart-tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: visible;
  }
  .chart-tab { min-width: 0; white-space: normal; line-height: 1.25; }
  .chart-bar__head, .chart-donut-list li { grid-template-columns: 1fr; gap: 4px; }
  .chart-bar__head strong { justify-self: start; }
  .chart-donut-list strong { white-space: normal; }
  .chart-table-wrap { scrollbar-gutter: stable; }
  .chart-table-wrap th:first-child { min-width: 160px; }
  .chart-table-wrap tbody th:first-child { position: static; }
  .chart-table-wrap thead th:first-child { left: auto; }
}

@media (max-width: 390px) {
  .org-node__head { gap: 8px; padding: 9px 10px; }
  .org-node[data-depth="0"] > .org-node__head .org-ava-link,
  .org-node[data-depth="0"] > .org-node__head > .org-ava,
  .branch-node__head .org-ava-link,
  .branch-node__head > .org-ava { width: 44px; height: 44px; }
  .ct-leadership .org-node[data-depth] > .org-node__head > .org-ava-link,
  .ct-leadership .org-node[data-depth] > .org-node__head > .org-ava,
  .ct-leadership .branch-node__head > .org-ava-link,
  .ct-leadership .branch-node__head > .org-ava { width: 72px; height: 72px; }
  .org-node__count { padding-inline: 6px; }
  .org-node__id strong { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  .chart-loader { animation: none; }
  .chart-donut__slice { transition: none; }
}


/* ============ Виджет Госуслуг «Решаем вместе» (ПОС, форма обратной связи) ============ */
#gos-banner {
  box-shadow: var(--shadow);
  background: #fff;
  margin: 2em 0;
}

#js-show-iframe-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 293px;
  max-width: 100%;
  background: linear-gradient(138.4deg, #38bafe 26.49%, #2d73bc 79.45%);
  color: #fff;
  cursor: pointer;
}
#js-show-iframe-wrapper .pos-banner-fluid * {
  box-sizing: border-box;
}
#js-show-iframe-wrapper .pos-banner-fluid .pos-banner-btn_2 {
  display: block;
  width: 240px;
  min-height: 56px;
  font-size: 18px;
  line-height: 24px;
  cursor: pointer;
  background: var(--primary);
  color: #fff;
  border: none;
  border-radius: 8px;
  outline: 0;
}
#js-show-iframe-wrapper .pos-banner-fluid .pos-banner-btn_2:hover {
  background: var(--primary-strong);
}
#js-show-iframe-wrapper .pos-banner-fluid .pos-banner-btn_2:focus {
  background: var(--primary-strong);
}
#js-show-iframe-wrapper .pos-banner-fluid .pos-banner-btn_2:active {
  background: var(--primary-strong);
}
@-webkit-keyframes fadeInFromNone {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: block;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}
@keyframes fadeInFromNone {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: block;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}
@font-face {
  font-family: LatoWebLight;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Light.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Light.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Light.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
/*@font-face {
  font-family: LatoWeb;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Regular.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Regular.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Regular.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}*/
@font-face {
  font-family: LatoWebBold;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Bold.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Bold.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Lato/fonts/Lato-Bold.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: RobotoWebLight;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Light.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Light.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Light.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: RobotoWebRegular;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Regular.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Regular.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Regular.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: RobotoWebBold;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Bold.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Bold.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Roboto/Roboto-Bold.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: ScadaWebRegular;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Regular.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Regular.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Regular.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: ScadaWebBold;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Bold.woff2) format("woff2"), url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Bold.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Scada/Scada-Bold.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
}
@font-face {
  font-family: Geometria;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria.eot);
  src: url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria.eot?#iefix) format("embedded-opentype"),
    url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria.woff) format("woff"), url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria.ttf) format("truetype");
  font-weight: 400;
  font-style: normal;
}
@font-face {
  font-family: Geometria-ExtraBold;
  src: url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria-ExtraBold.eot);
  src: url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria-ExtraBold.eot?#iefix) format("embedded-opentype"),
    url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria-ExtraBold.woff) format("woff"),
    url(https://pos.gosuslugi.ru/bin/fonts/Geometria/Geometria-ExtraBold.ttf) format("truetype");
  font-weight: 800;
  font-style: normal;
}

#js-show-iframe-wrapper {
  background: var(--pos-banner-fluid-116__background);
}
#js-show-iframe-wrapper .pos-banner-fluid .pos-banner-btn_2 {
  width: 100%;
  min-height: var(--pos-banner-fluid-116__btn-height);
  background: var(--primary);
  color: #fff;
  font-size: var(--pos-banner-fluid-116__btn-font-size);
  font-family: LatoWeb, sans-serif;
  font-weight: 400;
  padding: 0;
  line-height: 1.2;
}
#js-show-iframe-wrapper .bf-116 {
  position: relative;
  display: grid;
  grid-template-columns: var(--pos-banner-fluid-116__grid-template-columns);
  grid-template-rows: var(--pos-banner-fluid-116__grid-template-rows);
  width: 100%;
  max-width: var(--pos-banner-fluid-116__max-width);
  box-sizing: border-box;
  grid-auto-flow: row dense;
}
#js-show-iframe-wrapper .bf-116__decor {
  background: var(--pos-banner-fluid-116__bg-url) var(--pos-banner-fluid-116__bg-url-position) no-repeat;
  /* background-size: var(--pos-banner-fluid-116__bg-url-size); */
  background-color: #fff;
  position: relative;
  order: 1;
}
#js-show-iframe-wrapper .bf-116__content {
  display: flex;
  flex-direction: column;
  padding: var(--pos-banner-fluid-116__content-padding);
  grid-row: var(--pos-banner-fluid-116__content-grid-row);
  position: relative;
}
#js-show-iframe-wrapper .bf-116__description {
  display: flex;
  flex-direction: column;
  margin: var(--pos-banner-fluid-116__description-margin);
  position: relative;
}
#js-show-iframe-wrapper .bf-116__text {
  margin: var(--pos-banner-fluid-116__text-margin);
  font-size: var(--pos-banner-fluid-116__text-font-size);
  position: var(--pos-banner-fluid-116__text-position);
  font-family: LatoWeb, sans-serif;
  font-weight: 700;
  color: #66727f;
  width: var(--pos-banner-fluid-116__text-width);
}
#js-show-iframe-wrapper .bf-116__text_small {
  font-size: var(--pos-banner-fluid-116__text-small-font-size);
  font-weight: 400;
  margin: var(--pos-banner-fluid-116__text-small-margin);
}
#js-show-iframe-wrapper .bf-116__bottom-wrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  position: var(--pos-banner-fluid-116__bottom-wrap-position);
  top: var(--pos-banner-fluid-116__bottom-wrap-top);
  left: var(--pos-banner-fluid-116__bottom-wrap-left);
}
#js-show-iframe-wrapper .bf-116__logo-wrap {
  box-shadow: var(--pos-banner-fluid-116__logo-box-shadow);
  position: absolute;
  top: var(--pos-banner-fluid-116__logo-wrap-top);
  left: var(--pos-banner-fluid-116__logo-wrap-left);
  padding: var(--pos-banner-fluid-116__logo-wrap-padding);
  border-radius: 0 0 8px;
}
#js-show-iframe-wrapper .bf-116__logo {
  width: var(--pos-banner-fluid-116__logo-width);
  margin-left: 1px;
}
#js-show-iframe-wrapper .bf-116__slogan {
  font-family: LatoWeb, sans-serif;
  font-weight: 700;
  font-size: var(--pos-banner-fluid-116__slogan-font-size);
  line-height: 1;
  color: #005ca9;
}
#js-show-iframe-wrapper .bf-116__btn-wrap {
  width: var(--pos-banner-fluid-116__button-wrap-max-width);
}

#feedback-gos-div {
  padding: 20px 0;
}

/* ============ Компактный размер баннера «Решаем вместе» ============
   Виджет Госуслуг сам не умеет быть меньше своего базового пресета (padding
   и шрифты — фиксированные px). Переопределяем переменные, которые
   gosuslugi.js проставляет на :root, — задаём их с большей специфичностью
   прямо на #js-show-iframe-wrapper, поэтому наши значения побеждают. */
#js-show-iframe-wrapper {
  /* Жёстко ограничиваем ширину контейнера ниже 835px — это первый брейкпоинт
     виджета Госуслуг, при котором их скрипт переключает вёрстку на
     двухколоночный вариант (с большими отступами под широкий экран). Мы этот
     вариант не настраивали, поэтому просто никогда его не показываем —
     виджет всегда остаётся в компактном одноколоночном виде, что на узкой
     странице «Обратная связь», что на широкой главной. */
  max-width: 700px !important;
  margin: 0 auto !important;
  --pos-banner-fluid-116__max-width: 640px !important;
  /* Одна строка: контент. Картинку выносим из грид-потока (absolute),
     поэтому вторая «декоративная» строка больше не нужна и ничего не режет. */
  --pos-banner-fluid-116__grid-template-rows: auto !important;
  --pos-banner-fluid-116__content-padding: 20px 22px 22px 24px !important;
  --pos-banner-fluid-116__text-font-size: 18px !important;
  --pos-banner-fluid-116__text-small-font-size: 13px !important;
  --pos-banner-fluid-116__text-margin: 0 0 6px 0 !important;
  --pos-banner-fluid-116__description-margin: 0 0 16px 0 !important;
  --pos-banner-fluid-116__button-wrap-max-width: 120px !important;
  --pos-banner-fluid-116__logo-wrap-padding: 0 0 0 24px !important;
  --pos-banner-fluid-116__logo-width: 52px !important;
  --pos-banner-fluid-116__logo-wrap-top: -26px !important;
  --pos-banner-fluid-116__slogan-font-size: 11px !important;
  --pos-banner-fluid-116__btn-height: 34px !important;   /* на узких экранах поднимается до 44px — см. ниже */
}
#js-show-iframe-wrapper .pos-banner-btn_2 { font-size: 15px; }
/* «Написать» — главное действие блока, а на телефоне это ещё и палец.
   Поднимаем зону касания до нормы 44px. На десктопе оставляем компактные 34px:
   там указатель точный, а кнопка не должна доминировать в баннере. */
@media (max-width: 900px) {
  #js-show-iframe-wrapper {
    --pos-banner-fluid-116__btn-height: 44px !important;
  }
}

/* Баннер — контейнер для абсолютно спозиционированной иллюстрации.
   Одна грид-строка (контент), иллюстрация лежит поверх справа-снизу. */
#js-show-iframe-wrapper .bf-116 {
  position: relative !important;
  min-height: 196px !important;
  overflow: hidden !important;
  border-radius: var(--r-lg, 16px) !important;
}
/* Резервируем справа место под фигуру, чтобы текст на неё не наезжал. */
#js-show-iframe-wrapper .bf-116__content {
  position: relative !important;
  z-index: 1 !important;
  padding-right: 250px !important;
}
/* Иллюстрация: раньше это была низкая (130px) грид-полоса, из-за чего
   фон-картинка (SVG женщины с планшетом) обрезалась сверху и снизу.
   Теперь блок занимает всю высоту карточки и прижат к правому-нижнему углу,
   а background-size: contain вписывает ВСЮ фигуру целиком — без обрезки. */
#js-show-iframe-wrapper .bf-116__decor {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 250px !important;
  height: auto !important;
  background-size: contain !important;
  background-position: right bottom !important;
  background-repeat: no-repeat !important;
  pointer-events: none !important;
}

/* На узких экранах места под фигуру рядом с текстом нет — убираем ТОЛЬКО
   фон-иллюстрацию, но сохраняем брендинг «Госуслуги / Решаем вместе»:
   логотип переезжает в левый верхний угол карточки. Получается аккуратная
   карточка: логотип + текст + кнопка, ничего не обрезано. */
@media (max-width: 560px) {
  #js-show-iframe-wrapper .bf-116 {
    min-height: 0 !important;
  }
  #js-show-iframe-wrapper .bf-116__content {
    padding-right: 22px !important;
    padding-top: 46px !important;
  }
  #js-show-iframe-wrapper .bf-116__decor {
    background-image: none !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: auto !important;
    width: auto !important;
    height: 44px !important;
  }
  #js-show-iframe-wrapper .bf-116__logo-wrap {
    top: 12px !important;
    left: 24px !important;
    right: auto !important;
  }
}

/* ============ Страница «Обратная связь»: единая ширина блоков ============
   В колонке контента (828px при сайдбаре) вводные блоки имели три разные
   ширины: баннер 700px по центру, сетка карточек — во всю колонку, блок
   контактов — 640px. Из-за этого страница выглядела вразнобой. Тянем баннер
   и контакты на всю колонку; правила ограничены .feedback-intro, чтобы не
   задеть тот же баннер на главной и .rg-contacts на других страницах. */
.feedback-intro #js-show-iframe-wrapper {
  /* 835px — порог в gosuslugi.js: выше него их скрипт переключает баннер на
     широкий пресет (другая иллюстрация, logo-wrap-left: -275px), который у
     нас не оформлен. Держимся ниже порога при любой ширине колонки. */
  max-width: min(100%, 834px) !important;
  margin: 0 0 26px 0 !important;
  --pos-banner-fluid-116__max-width: 100% !important;
}
@media (min-width: 561px) {
  .feedback-intro #js-show-iframe-wrapper {
    --pos-banner-fluid-116__content-padding: 28px 28px 28px 30px !important;
    --pos-banner-fluid-116__text-font-size: 21px !important;
    --pos-banner-fluid-116__text-small-font-size: 14px !important;
  }
  .feedback-intro #js-show-iframe-wrapper .bf-116 {
    min-height: 220px !important;
  }
  /* Ширину иллюстрации не трогаем (250px): при contain она масштабируется по
     ширине, и на более широком блоке фигура вырастала по высоте и упиралась
     в логотип «Решаем вместе», который висит на 26px выше карточки.
     Растягивается только текстовая часть. */
  .feedback-intro #js-show-iframe-wrapper .bf-116__content {
    justify-content: center !important;
  }
}
.feedback-intro .svc-grid { gap: 20px; }
.feedback-intro .svc { padding: 24px; }
.feedback-intro .rg-contacts { max-width: none; padding: 26px 28px; }

/* ============ Вход в служебный справочник (/internal-login/) ============
   Заменяет нативное окно Basic Auth. Карточка по центру экрана, ширина
   ограничена читаемой строкой; поля и кнопка переиспользуют стили сайта
   (.pv__input, .btn), чтобы страница не выглядела чужой. */
.login-wrap {
  display: grid;
  place-items: center;
  padding-block: 72px 96px;
  min-height: 52vh;
}
.login-card {
  width: 100%;
  max-width: 420px;
  margin-inline: auto;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  padding: 36px 32px 28px;
}
.login-card { text-align: center; }
.login-card__t { font-size: 1.45rem; margin: 0 0 8px; }
.login-card__sub { margin: 0 0 24px; font-size: .9rem; color: var(--ink-2); line-height: 1.5; }
.login-form__label2 { margin-top: 16px; }
.login-form .pv__label { text-align: center; }
.login-form .pv__input { width: 100%; text-align: center; }
.login-form__btn { width: 100%; margin-top: 24px; justify-content: center; }

/* ---- Медведь вместо стандартного замочка ----
   Следит за набором логина (зрачки ходят по девяти положениям), удивляется
   стиранию символа и закрывает глаза на вводе пароля. Состояния — классами,
   без inline-стилей — иначе их отрежет CSP (style-src 'self'). */
.bear-wrap { display: grid; place-items: center; margin-bottom: 18px; }
.bear { width: 108px; height: auto; overflow: visible; }
.bear__ear { fill: #7a5940; }
.bear__ear-in { fill: #b98d68; }
.bear__head { fill: #8d6748; }
.bear__muzzle { fill: #e0c9ae; }
.bear__nose { fill: #402f22; }
.bear__mouth { fill: none; stroke: #402f22; stroke-width: 2.4; stroke-linecap: round; transition: opacity .12s ease-out; }
.bear__mouth-o { fill: #402f22; opacity: 0; transition: opacity .12s ease-out; }
.bear__brow {
  fill: none; stroke: #5f452f; stroke-width: 3.2; stroke-linecap: round;
  opacity: 0; transition: opacity .12s ease-out;
}
.bear__eye-white { fill: #fff; }
.bear__pupil { fill: #2b1f16; transition: transform .18s ease-out; }
.bear__spark { fill: #fff; opacity: .95; transition: transform .18s ease-out; }
.bear__eye-white, .bear__pupil, .bear__spark { transition: opacity .12s ease-out; }
/* Закрытые глаза — две дуги. Появляются вместо открытых, без движения
   деталей: любая трансформация внутри SVG на разных браузерах ведёт себя
   по-разному, а смена непрозрачности выглядит одинаково везде. */
.bear__lid {
  fill: none; stroke: #2b1f16; stroke-width: 3.4; stroke-linecap: round;
  opacity: 0;
  transition: opacity .12s ease-out;
}

/* Ввод логина: зрачки следуют за набираемым текстом. */
.bear.is-look-0 .bear__pupil, .bear.is-look-0 .bear__spark { transform: translateX(-3.6px); }
.bear.is-look-1 .bear__pupil, .bear.is-look-1 .bear__spark { transform: translateX(-2.7px); }
.bear.is-look-2 .bear__pupil, .bear.is-look-2 .bear__spark { transform: translateX(-1.8px); }
.bear.is-look-3 .bear__pupil, .bear.is-look-3 .bear__spark { transform: translateX(-0.9px); }
.bear.is-look-4 .bear__pupil, .bear.is-look-4 .bear__spark { transform: translateX(0.0px); }
.bear.is-look-5 .bear__pupil, .bear.is-look-5 .bear__spark { transform: translateX(0.9px); }
.bear.is-look-6 .bear__pupil, .bear.is-look-6 .bear__spark { transform: translateX(1.8px); }
.bear.is-look-7 .bear__pupil, .bear.is-look-7 .bear__spark { transform: translateX(2.7px); }
.bear.is-look-8 .bear__pupil, .bear.is-look-8 .bear__spark { transform: translateX(3.6px); }
/* Взгляд опускается на поле, а не остаётся стеклянным. */
.bear.is-watching .bear__pupil, .bear.is-watching .bear__spark { translate: 0 2px; }

/* Стёрли букву — олень удивляется: брови вверх, рот приоткрыт. */
.bear.is-surprised .bear__brow { opacity: 1; }
.bear.is-surprised .bear__mouth-o { opacity: 1; }
.bear.is-surprised .bear__mouth { opacity: 0; }

/* Ввод пароля: олень закрывает глаза. */
.bear.is-hiding .bear__eye-white,
.bear.is-hiding .bear__pupil,
.bear.is-hiding .bear__spark { opacity: 0; }
.bear.is-hiding .bear__lid { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  .bear__pupil, .bear__spark, .bear__lid, .bear__eye-white,
  .bear__brow, .bear__mouth, .bear__mouth-o { transition: none; }
}
.login-err {
  margin: 0 0 20px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: .88rem;
  line-height: 1.45;
  background: #fdecec;
  border: 1px solid #f3c3c3;
  color: #a3211f;
}
.login-note {
  margin: 24px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: .78rem;
  line-height: 1.5;
  color: var(--ink-3);
}
html[data-theme="dark"] .login-err {
  background: #3a1616; border-color: #5a2020; color: #ff9c9a;
}
html.a11y .login-card { background: #fff !important; border: 2px solid #000 !important; box-shadow: none !important; }
html.a11y .login-card__badge { background: #fff !important; color: #000 !important; border: 2px solid #000 !important; }
html.a11y .login-card__sub, html.a11y .login-note { color: #000 !important; }
html.a11y .login-err { background: #fff !important; border: 2px solid #000 !important; color: #000 !important; }
@media (max-width: 480px) {
  .login-wrap { padding-block: 40px 64px; }
  .login-card { padding: 28px 22px 24px; }
}

/* ============ Результат проверки полиса ОМС ============ */
/* Базовый .pv__msg (в main.css) — жёлтый; переопределяем под три исхода. */
.pv__msg--ok   { background: #e6f7ec !important; border-color: #b6e2c4 !important; color: #146c3a !important; }
.pv__msg--warn { background: #fdf3e0 !important; border-color: #ecd9ae !important; color: #6e4a0e !important; }
.pv__msg--err  { background: #fdecec !important; border-color: #f3c3c3 !important; color: #a3211f !important; }
html[data-theme="dark"] .pv__msg--ok   { background: #113321 !important; border-color: #1f5334 !important; color: #6fd897 !important; }
html[data-theme="dark"] .pv__msg--warn { background: #262218 !important; border-color: #45391f !important; color: #e7c98b !important; }
html[data-theme="dark"] .pv__msg--err  { background: #3a1616 !important; border-color: #5a2020 !important; color: #ff9c9a !important; }
html.a11y .pv__msg--ok, html.a11y .pv__msg--warn, html.a11y .pv__msg--err {
  background: #fff !important; border: 2px solid #000 !important; color: #000 !important;
}
