/* ═══════════════ Дизайн-система (раздел 4 ТЗ, вариант A «Сервис») ═══════════════ */
:root{
  --c-red:#E01B33; --c-red-dark:#B01128; --c-blush:#FFF1F2;
  --c-sand:#FBF6F2; --c-teal:#0E7F72; --c-teal-soft:#E3F3F1; --c-plum:#8B3A62;
  --c-ink:#221A1C; --c-ink-2:#6A5D61; --c-ink-3:#786A6E;
  --c-line:#EADFE1; --c-field:#9C8A8E; --c-bg:#FFFFFF;
  --c-warning:#B26A00; --c-danger:#C0142B;
  --r-pill:99px; --r-field:14px; --r-card:26px; --r-slab:36px;
  --wrap:1240px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-ink);
  font-family:"Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:"Rubik",system-ui,sans-serif;margin:0;line-height:1.14;
  letter-spacing:-.025em;text-wrap:balance}
p{margin:0}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--c-red);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto}}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.sec{padding:76px 0}
.sec--sand{background:var(--c-sand)}
.eyebrow{font-family:"Rubik",sans-serif;font-size:13px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--c-red);margin-bottom:14px}
.h2{font-size:42px;font-weight:700}
.lede{color:var(--c-ink-2);font-size:18px;max-width:60ch;margin-top:14px}
.sechead{margin-bottom:38px}
.sechead--row{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:15px 30px;border-radius:var(--r-pill);
  font-family:"Rubik",sans-serif;font-weight:600;font-size:16px;text-decoration:none;
  border:2px solid transparent;transition:transform .15s,background .15s;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn--red{background:var(--c-red);color:#fff}
.btn--red:hover{background:var(--c-red-dark)}
.btn--out{border-color:var(--c-ink);color:var(--c-ink)}
.btn--white{background:#fff;color:var(--c-red)}
.btn--sm{padding:11px 24px;font-size:15px}
.txtlink{font-family:"Rubik",sans-serif;font-weight:600;font-size:16px;color:var(--c-red);
  text-decoration:none;white-space:nowrap}
.txtlink:hover{text-decoration:underline}

.skip{position:absolute;left:-9999px;top:0;background:var(--c-red);color:#fff;
  padding:12px 20px;z-index:100;border-radius:0 0 var(--r-field) 0;font-weight:700}
.skip:focus{left:0}

/* ─── Шапка ─── */
.hdr{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.93);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--c-line)}
.hdr .wrap{display:flex;align-items:center;gap:26px;min-height:78px}
.logo{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;flex:none}
.logo .ph{width:44px;height:44px;border-radius:var(--r-field);flex:none}
.logo b{display:block;font-family:"Rubik",sans-serif;font-size:16px;font-weight:700;letter-spacing:-.02em}
.logo small{display:block;font-size:11.5px;color:var(--c-ink-3)}
.mainnav{display:flex;gap:26px;margin-left:auto}
.mainnav a{text-decoration:none;font-weight:600;font-size:15.5px;color:var(--c-ink-2)}
.mainnav a:hover{color:var(--c-red)}
.hdr-tools{display:flex;align-items:center;gap:8px}
.icobtn{width:44px;height:44px;border-radius:50%;border:1px solid var(--c-line);background:none;
  display:grid;place-items:center;color:var(--c-ink-2)}
.icobtn:hover{border-color:var(--c-red);color:var(--c-red)}
.icobtn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.burger{display:none}

/* ─── Первый экран ─── */
.hero{background:var(--c-blush);padding-top:60px}
.hero .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center}
.hero h1{font-size:58px;font-weight:700}
.hero .sub{margin-top:20px;font-size:19px;color:var(--c-ink-2);max-width:44ch;line-height:1.55}
.hero__pic{aspect-ratio:1/1;border-radius:var(--r-slab) var(--r-slab) 260px var(--r-slab);margin-bottom:-1px}
.finder{background:#fff;border-radius:var(--r-card);padding:26px;
  box-shadow:0 24px 60px -34px rgba(34,26,28,.45);margin-top:30px}
.finder h2{font-size:19px;font-weight:600;margin-bottom:16px}
.finder__row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px}
.fld{border:1.5px solid var(--c-field);border-radius:var(--r-field);padding:9px 15px}
.fld span{display:block;font-size:11.5px;color:var(--c-ink-3);font-weight:700;
  text-transform:uppercase;letter-spacing:.06em}
.fld select{border:0;background:none;font:600 16px "Nunito Sans",sans-serif;color:var(--c-ink);
  width:100%;padding:2px 0 0;cursor:pointer}
.finder .btn{border-radius:var(--r-field);padding:0 28px;justify-content:center}
.finder__hint{margin-top:13px;font-size:14px;color:var(--c-ink-2)}
.hours{display:flex;gap:30px;margin-top:30px;padding-bottom:60px;flex-wrap:wrap}
.hours div b{display:block;font-family:"Rubik",sans-serif;font-size:19px;font-weight:600;letter-spacing:-.02em}
.hours div span{font-size:14px;color:var(--c-ink-2)}

/* ─── Донорский светофор ─── */
.lights{margin-top:-38px;position:relative;z-index:2}
.lights__in{background:#fff;border:1.5px solid var(--c-line);border-radius:var(--r-card);
  padding:24px 30px;display:flex;gap:26px;align-items:center;flex-wrap:wrap;
  box-shadow:0 18px 44px -30px rgba(34,26,28,.4)}
.lights__dots{display:flex;gap:7px;flex:none}
.lights__dots i{width:16px;height:16px;border-radius:50%;display:block}
.lights__dots i:nth-child(1){background:var(--c-teal)}
.lights__dots i:nth-child(2){background:var(--c-warning)}
.lights__dots i:nth-child(3){background:var(--c-red)}
.lights__txt{flex:1;min-width:220px}
.lights__txt b{display:block;font-family:"Rubik",sans-serif;font-size:19px;font-weight:600;letter-spacing:-.02em}
.lights__txt span{font-size:15px;color:var(--c-ink-2)}

/* ─── Виды донации ─── */
.kinds{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.kind{border-radius:var(--r-card);padding:30px;color:#fff;display:flex;flex-direction:column;
  gap:12px;min-height:270px;text-decoration:none;transition:transform .15s}
.kind:hover{transform:translateY(-3px)}
.kind--blood{background:var(--c-red)}
.kind--plasma{background:var(--c-teal)}
.kind--plt{background:var(--c-plum)}
.kind h3{font-size:27px;font-weight:600}
.kind p{font-size:15px;opacity:.93;flex:1;line-height:1.5}
.kind .go{font-family:"Rubik",sans-serif;font-weight:600;font-size:15.5px;
  border-bottom:2px solid rgba(255,255,255,.55);align-self:flex-start;padding-bottom:2px}

/* ─── Шаги ─── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:s;list-style:none;padding:0;margin:0}
.step{position:relative;padding-top:54px}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:0;left:0;
  width:42px;height:42px;border-radius:50%;background:var(--c-red);color:#fff;display:grid;
  place-items:center;font-family:"Rubik",sans-serif;font-weight:600;font-size:18px}
.step h3{font-size:19px;font-weight:600;margin-bottom:8px}
.step p{font-size:15px;color:var(--c-ink-2);line-height:1.55}

/* ─── Врезка ─── */
.callout{border-radius:var(--r-field);padding:22px 26px;display:flex;gap:16px;
  border-left:5px solid;margin-top:34px}
.callout--info{background:var(--c-teal-soft);border-color:var(--c-teal)}
.callout b{font-family:"Rubik",sans-serif;font-weight:600;display:block;margin-bottom:4px}
.callout p{font-size:15.5px;color:var(--c-ink-2)}

/* ─── Вопросы ─── */
.qa{display:grid;grid-template-columns:1fr 1fr;gap:0 46px}
details{border-bottom:1.5px solid var(--c-line);padding:18px 0}
summary{list-style:none;cursor:pointer;font-family:"Rubik",sans-serif;font-weight:500;
  font-size:17.5px;display:flex;justify-content:space-between;gap:16px;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"";width:11px;height:11px;border-right:2.5px solid var(--c-red);
  border-bottom:2.5px solid var(--c-red);transform:rotate(45deg);flex:none;margin-top:-4px}
details[open] summary::after{transform:rotate(-135deg);margin-top:3px}
details p{margin-top:11px;color:var(--c-ink-2);font-size:15.5px;line-height:1.6;max-width:56ch}

/* ─── График выездов ─── */
.trips{display:grid;grid-template-columns:1fr .85fr;gap:44px;align-items:center}
.trips .ph{aspect-ratio:4/3;border-radius:var(--r-card)}

/* ─── Призыв ─── */
.band{background:var(--c-red);color:#fff;border-radius:var(--r-slab);padding:58px;text-align:center}
.band h2{font-size:40px;font-weight:700;max-width:20ch;margin:0 auto}
.band p{margin-top:16px;font-size:17px;opacity:.93}
.band .btn{margin-top:28px}

/* ─── Новости ─── */
.news{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.nc{text-decoration:none;color:inherit;display:block}
.nc .ph{aspect-ratio:16/11;border-radius:22px;margin-bottom:14px}
.nc time{display:block;font-size:13.5px;color:var(--c-ink-3);font-weight:600;margin-bottom:6px}
.nc h3{font-family:"Rubik",sans-serif;font-size:19px;font-weight:500;line-height:1.3}
.nc:hover h3{color:var(--c-red)}

/* ─── Герои ─── */
.heroes{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.hh{text-decoration:none;color:inherit}
.hh .ph{aspect-ratio:3/4;border-radius:22px;margin-bottom:12px}
.hh b{display:block;font-family:"Rubik",sans-serif;font-size:17px;font-weight:600;
  line-height:1.25;letter-spacing:-.02em}
.hh span{display:block;font-size:13.5px;color:var(--c-ink-3);margin-top:6px}

/* ─── Видео ─── */
.vids{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.vid{text-decoration:none;color:inherit;display:block}
.vid .frame{position:relative;border-radius:22px;overflow:hidden}
.vid .ph{aspect-ratio:16/9}
.vid .play{position:absolute;inset:0;display:grid;place-items:center}
.vid .play i{width:64px;height:64px;border-radius:50%;background:var(--c-red);display:grid;
  place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.28)}
.vid .play svg{width:24px;height:24px;fill:#fff;margin-left:3px}
.vid h3{font-family:"Rubik",sans-serif;font-size:19px;font-weight:500;margin-top:14px}
.vid p{font-size:14.5px;color:var(--c-ink-2);margin-top:5px}

/* ─── Решаем вместе ─── */
.gos{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.gosbox{border:1.5px solid var(--c-line);border-radius:var(--r-card);padding:28px}
.gosbox h3{font-size:21px;font-weight:600;margin-bottom:10px}
.gosbox p{font-size:15.5px;color:var(--c-ink-2);margin-bottom:20px}

/* ─── Контакты ─── */
.cont{display:grid;grid-template-columns:.9fr 1.1fr;gap:44px;align-items:start}
.crow{display:flex;gap:18px;padding:15px 0;border-bottom:1px solid var(--c-line)}
.crow dt{width:170px;flex:none;font-size:14px;color:var(--c-ink-3);font-weight:600;margin:0}
.crow dd{margin:0;font-size:16px;font-weight:600}
.crow dd a{text-decoration:none}
.crow dd a:hover{color:var(--c-red)}
.cont .ph{aspect-ratio:4/3;border-radius:var(--r-card)}

/* ─── Подвал ─── */
.ftr{background:var(--c-ink);color:#C8BCBF;padding:60px 0 28px;font-size:15px}
.ftr__cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:38px}
.ftr h4,.ftr .ftr__h{color:#fff;font-family:"Rubik",sans-serif;font-size:15px;font-weight:600;margin:0 0 14px}
.ftr a{display:block;color:#C8BCBF;text-decoration:none;padding:5px 0}
.ftr a:hover{color:#fff}
.ftr__req{line-height:1.7;color:#9E9094;font-size:14px}
.ftr__links{margin-top:44px;padding-top:30px;border-top:1px solid #3B2E31}
.ftr__links h4,.ftr__links .ftr__h{margin-bottom:16px}
.ftr__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 26px}
.ftr__grid a{padding:4px 0;font-size:14px}
.ftr__grid a span{color:#7E6F73;font-size:13px}
.ftr__btm{margin-top:36px;padding-top:22px;border-top:1px solid #3B2E31;
  display:flex;gap:24px;flex-wrap:wrap;font-size:13px;color:#8D7C80}
.ftr__btm a{display:inline;padding:0}

/* ─── Заглушки изображений ─── */
.ph{background:repeating-linear-gradient(135deg,#E9E0E2 0 10px,#E2D8DA 10px 20px);
  color:#6A5D61;display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:ui-monospace,"Cascadia Mono",monospace;font-size:11px;letter-spacing:.03em;padding:8px}

/* ─── Мобильная версия ─── */
@media (max-width:860px){
  body{font-size:15px}
  .wrap{padding:0 18px}
  .sec{padding:46px 0}
  .h2{font-size:28px}
  .lede{font-size:16px}
  .mainnav{display:none}
  .burger{display:grid}
  .hdr-tools{margin-left:auto}
  .hdr .wrap{gap:10px;min-height:66px}
  .logo .ph{width:38px;height:38px}
  .hero{padding-top:32px}
  .hero .wrap{grid-template-columns:1fr;gap:28px}
  .hero h1{font-size:34px}
  .hero .sub{font-size:16.5px}
  .hero__pic{border-radius:28px 28px 140px 28px}
  .finder__row{grid-template-columns:1fr}
  .finder .btn{padding:14px 28px}
  .hours{padding-bottom:38px;gap:20px}
  .lights{margin-top:-26px}
  .lights__in{padding:20px}
  .kinds,.steps,.qa,.news,.vids,.gos,.trips,.cont{grid-template-columns:1fr}
  .heroes{grid-template-columns:1fr 1fr}
  .band{padding:34px 22px;border-radius:26px}
  .band h2{font-size:26px}
  .ftr__cols,.ftr__grid{grid-template-columns:1fr 1fr}
  .crow{flex-direction:column;gap:2px}
  .crow dt{width:auto}
}

/* ═══════════════ Внутренние страницы ═══════════════ */
.pagehead{background:var(--c-blush);padding:34px 0 44px}
.pagehead h1{font-size:46px;font-weight:700;margin-top:14px;max-width:24ch}
.pagehead .lede{margin-top:10px}
.pagehead__date{display:block;margin-top:18px;font-size:14px;color:var(--c-ink-3);font-weight:600}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--c-ink-3)}
.crumbs a{color:var(--c-ink-2);text-decoration:none}
.crumbs a:hover{color:var(--c-red)}
.crumbs [aria-current]{color:var(--c-ink)}

.sec--white{background:var(--c-bg)}
.sec--blush{background:var(--c-blush)}
.sec--text{padding:52px 0}
.sec--tight{padding:18px 0}

.prose{max-width:760px;font-size:17px;line-height:1.7}
.prose>*+*{margin-top:1em}
.prose h2{font-size:30px;font-weight:700;margin-top:1.6em}
.prose h3{font-size:22px;font-weight:600;margin-top:1.4em}
.prose ul,.prose ol{padding-left:1.3em}
.prose li+li{margin-top:.4em}
.prose a{color:var(--c-red)}
.prose blockquote{margin:1.4em 0;padding:4px 0 4px 22px;border-left:4px solid var(--c-red);color:var(--c-ink-2)}
.prose img{border-radius:22px}
.prose__lead{font-size:20px;color:var(--c-ink-2)}
.prose__cover{margin:0 0 28px}
.prose__cover img,.prose__cover .ph{border-radius:var(--r-card);aspect-ratio:16/9}

.callout--warning{background:#FFF6E5;border-color:var(--c-warning)}
.callout--danger{background:#FDECEE;border-color:var(--c-danger)}
.callout--success{background:var(--c-teal-soft);border-color:var(--c-teal)}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{position:relative;display:block;background:var(--c-sand);border-radius:var(--r-card);padding:26px 26px 54px;
  text-decoration:none;color:inherit;transition:transform .15s,background .15s}
.sec--sand .card{background:#fff}
.card:hover{transform:translateY(-2px);background:var(--c-blush)}
.card h3{font-size:20px;font-weight:600}
.card p{margin-top:8px;font-size:15px;color:var(--c-ink-2)}
.card__go{position:absolute;left:26px;bottom:20px;color:var(--c-red);font-weight:700;font-size:20px}

.tablewrap{overflow-x:auto;border:1.5px solid var(--c-line);border-radius:var(--r-field)}
.tablewrap table{width:100%;border-collapse:collapse;font-size:15.5px}
.tablewrap th,.tablewrap td{padding:13px 18px;text-align:left;border-bottom:1px solid var(--c-line);vertical-align:top}
.tablewrap th{background:var(--c-sand);font-family:"Rubik",sans-serif;font-weight:600;font-size:14px}
.tablewrap tr:last-child td{border-bottom:0}

.pager{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:44px;color:var(--c-ink-2)}
.herostory{display:grid;grid-template-columns:320px 1fr;gap:48px;align-items:start}
.herostory img,.herostory .ph{aspect-ratio:3/4;border-radius:var(--r-card)}
.nc img,.hh img{aspect-ratio:16/11;border-radius:22px;margin-bottom:14px}
.hh img{aspect-ratio:3/4}
.hero__pic{object-fit:cover}
.lights--flat{margin-top:34px}
.lights__embed{flex:1 1 100%}

@media (max-width:860px){
  .pagehead h1{font-size:30px}
  .cards,.herostory{grid-template-columns:1fr}
}

/* Шапка: меню целиком помещается только на широких экранах, ниже — кнопка «Меню» */
.mainnav a{white-space:nowrap}
@media (max-width:1180px){
  /* Полоса меню исчезает, но остаётся контейнером для выпадающего списка под кнопкой «Меню» */
  .hdr__menu{border-top:0;background:none}
  .hdr__menu .wrap{min-height:0;padding:0}
  .mainnav{display:none}
  .burger{display:grid}
  .hdr-tools{margin-left:auto}
  .mainnav.is-open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;
    background:#fff;padding:4px 32px 16px;gap:0;border-bottom:1px solid var(--c-line);
    box-shadow:0 18px 30px -20px rgba(34,26,28,.35)}
  .mainnav.is-open a{padding:13px 0;font-size:17px;border-bottom:1px solid var(--c-line)}
}
@media (max-width:860px){
  .mainnav.is-open{padding:6px 18px 16px}
}

.mainnav__cta{display:none}
@media (max-width:600px){
  .hdr-cta{display:none}
  .mainnav.is-open .mainnav__cta{display:block;color:var(--c-red);font-family:"Rubik",sans-serif;font-weight:600}
  .logo small{display:none}
  .hdr-tools{gap:6px}
}
@media (max-width:400px){
  .hdr .wrap{gap:8px}
  .logo{gap:8px}
  .logo .ph,.logo img{width:34px!important;height:34px!important}
  .logo b{font-size:14px}
  .hdr-tools{gap:4px}
}

/* Заглушки фото: что за фото, размер, где загрузить */
.ph__in{display:flex;flex-direction:column;align-items:center;gap:4px;max-width:90%;
  background:rgba(255,255,255,.82);border-radius:12px;padding:12px 16px;line-height:1.35}
.ph__in b{font-family:"Rubik",sans-serif;font-size:14px;font-weight:600;color:var(--c-ink)}
.ph__in span{font-size:12.5px;color:var(--c-ink-2)}
.ph__in small{font-size:11.5px;color:var(--c-ink-3)}
.ph--logo{font-size:10px;padding:0}
.nc .ph,.hh .ph{margin-bottom:14px}

/* Блоки «Фото» и «Фотогалерея» */
.photo{margin:0;max-width:900px}
.photo--wide{max-width:none}
.photo img,.photo .ph{border-radius:var(--r-card);aspect-ratio:16/9}
.photo figcaption,.gallery figcaption{margin-top:10px;font-size:14px;color:var(--c-ink-3)}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.gallery figure{margin:0}
.gallery img,.gallery .ph{aspect-ratio:4/3;border-radius:18px}
@media (max-width:860px){.gallery{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.gallery{grid-template-columns:1fr}}

/* ═══════════════ Этап 2: документы, отделения, люди, вакансии, график, поиск ═══════════════ */
.ftr__a11y{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline}
.hdr-tools a.icobtn{color:var(--c-ink-2)}

.docsec+.docsec{margin-top:44px}
.docsec__title{font-size:26px!important;margin:0 0 6px!important}
.docsec__desc{color:var(--c-ink-2)}
.docsec__empty{color:var(--c-ink-3);font-size:15px}
.docs{list-style:none;padding:0!important;margin:14px 0 0;display:grid;gap:10px}
.doc{display:flex;gap:14px;align-items:flex-start;padding:14px 18px;background:var(--c-sand);border-radius:var(--r-field)}
.doc+.doc{margin-top:0!important}
.doc__ic{flex:none;width:38px;height:38px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--c-red)}
.doc__ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round}
.doc__body{display:flex;flex-direction:column;gap:3px;font-size:16px;line-height:1.45}
.doc__body a{color:var(--c-ink);text-decoration:none;font-weight:600}
.doc__body a:hover{color:var(--c-red);text-decoration:underline}
.doc__body small{font-size:13px;color:var(--c-ink-3)}

.depgroup{font-size:24px;font-weight:600;margin:40px 0 18px}
.depgroup:first-of-type{margin-top:0}
.card__muted{color:var(--c-ink-3);font-size:14px}

.people{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 22px}
.person{display:flex;flex-direction:column;gap:4px}
.person img,.person .ph{aspect-ratio:3/4;border-radius:22px;margin-bottom:10px}
.person b{font-family:"Rubik",sans-serif;font-size:17px;font-weight:600;line-height:1.25}
.person span{font-size:14px;color:var(--c-ink-2);line-height:1.4}
.person a{font-size:13.5px;color:var(--c-red);text-decoration:none;margin-top:4px}
.person a:hover{text-decoration:underline}
.person--big{grid-column:span 1}
.dept{display:grid;grid-template-columns:280px 1fr;gap:52px;align-items:start}
.dept__phone{margin-top:18px;font-size:14px;color:var(--c-ink-3)}
.dept__phone a{font-size:17px;font-weight:700;color:var(--c-ink);text-decoration:none}

.vacs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.vac{background:var(--c-sand);border-radius:var(--r-card);padding:26px}
.vac h3{font-size:21px;font-weight:600}
.vac__dep{margin-top:6px;color:var(--c-ink-2);font-size:15px}
.vac dl{margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
.vac dt{font-size:12.5px;color:var(--c-ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:700}
.vac dd{margin:2px 0 0;font-weight:700}
.vac__note{margin-top:14px;font-size:15px;color:var(--c-ink-2)}

.sched-filter{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.sched-filter label{font-weight:700}
.sched-filter select{font:600 16px "Nunito Sans",sans-serif;padding:10px 14px;border:1.5px solid var(--c-field);border-radius:var(--r-field);background:#fff;min-height:44px}
.sched td small{color:var(--c-ink-3)}
.sched tr.is-cancelled td{color:var(--c-ink-3);text-decoration:line-through}
.sched tr.is-cancelled td:last-child{text-decoration:none;color:var(--c-danger);font-weight:700}

.searchform{display:flex;gap:10px;margin-top:22px;max-width:720px}
.searchform input{flex:1;min-width:0;font:500 17px "Nunito Sans",sans-serif;padding:14px 18px;border:1.5px solid var(--c-field);border-radius:var(--r-field);background:#fff}
.searchform input:focus{outline:2px solid var(--c-red);outline-offset:1px;border-color:transparent}
.search__count{font-size:15px;color:var(--c-ink-3);font-weight:400}
.results{list-style:none;padding:0!important}
.results li{padding:14px 0;border-bottom:1px solid var(--c-line)}
.results li+li{margin-top:0!important}
.results a{font-weight:700;color:var(--c-ink);text-decoration:none;font-size:17px}
.results a:hover{color:var(--c-red);text-decoration:underline}
.results small{margin-left:10px;color:var(--c-ink-3)}
.results p{margin-top:4px;font-size:15px;color:var(--c-ink-2)}
.results mark{background:var(--c-blush);color:inherit;padding:0 2px;border-radius:3px}

@media (max-width:1024px){.people{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){
  .people{grid-template-columns:1fr 1fr}
  .dept{grid-template-columns:1fr;gap:28px}
  .dept__side{max-width:280px}
  .vacs{grid-template-columns:1fr}
  .searchform{flex-direction:column}
  /* График на телефоне — карточками «поле: значение» */
  .sched thead{display:none}
  .sched tr{display:block;padding:12px 16px;border-bottom:1px solid var(--c-line)}
  .sched td{display:block;border:0!important;padding:3px 0!important}
  .sched td::before{content:attr(data-label) ": ";font-weight:700;color:var(--c-ink-3);font-size:13px}
}
/* Колонки людей могут сужаться; длинные должности переносятся по слогам */
.people{grid-template-columns:repeat(4,minmax(0,1fr))}
.person b,.person span{hyphens:auto;overflow-wrap:break-word}
@media (max-width:1024px){.people{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:860px){.people{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}.person .ph__in small{display:none}}

/* ═══════════════ Этап 3: формы, прейскурант ═══════════════ */
.webform{max-width:820px;margin-top:22px}
.webform__trap{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.webform__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.fldw{display:flex;flex-direction:column;gap:6px}
.fldw--wide{grid-column:1/-1}
.fldw label{font-weight:700;font-size:15px}
.fldw label span{color:var(--c-red)}
.fldw input[type=text],.fldw input[type=email],.fldw input[type=tel],.fldw select,.fldw textarea{
  font:500 16px "Nunito Sans",sans-serif;padding:12px 15px;border:1.5px solid var(--c-field);border-radius:var(--r-field);
  background:#fff;color:var(--c-ink);min-height:48px;width:100%}
.fldw textarea{resize:vertical;min-height:130px;line-height:1.5}
.fldw input:focus,.fldw select:focus,.fldw textarea:focus{outline:2px solid var(--c-red);outline-offset:1px;border-color:transparent}
.fldw input[type=file]{font:500 15px "Nunito Sans",sans-serif}
.fldw [aria-invalid=true]{border-color:var(--c-danger)!important;background:#FFF7F8}
.fldw__err{margin:0;color:var(--c-danger);font-size:14px;font-weight:700}
.fldw__hint{margin:6px 0 0;color:var(--c-ink-3);font-size:13.5px}
.fldw--check{flex-direction:row;align-items:flex-start;gap:12px;margin:22px 0;flex-wrap:wrap}
.fldw--check input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--c-red)}
.fldw--check label{font-weight:500;font-size:15px;flex:1;min-width:0}
.fldw--check label a{color:var(--c-red)}
.fldw--check .fldw__err{flex-basis:100%}
.webform form>.btn{margin-top:4px}

.pricesearch{display:flex;flex-direction:column;gap:6px;margin:6px 0 16px;max-width:520px}
.pricesearch label{font-weight:700;font-size:15px}
.pricesearch input{font:500 16px "Nunito Sans",sans-serif;padding:12px 15px;border:1.5px solid var(--c-field);border-radius:var(--r-field)}
.pricesearch input:focus{outline:2px solid var(--c-red);outline-offset:1px;border-color:transparent}
.pricesearch__empty{color:var(--c-ink-2);margin-top:14px}
.prices code{font-size:13px;color:var(--c-ink-3);white-space:nowrap}
.prices__num{text-align:right!important;white-space:nowrap}

@media (max-width:860px){
  .webform__grid{grid-template-columns:1fr}
  .prices thead{display:none}
  .prices tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 16px;border-bottom:1px solid var(--c-line)}
  .prices td{border:0!important;padding:0!important}
  .prices td:nth-child(1){grid-column:1/-1}
  .prices td:nth-child(2){grid-column:1}
  .prices td:nth-child(3){grid-column:2;grid-row:2;align-self:end}
}

/* ─── Результат подбора пункта сдачи крови ─── */
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.finder__out{margin-top:16px;padding-top:16px;border-top:1px solid var(--c-line);font-size:15px}
.finder__out p{margin:0 0 8px}
.finder__out-city{color:var(--c-ink-2)}
.finder__out-head{font-family:"Rubik",sans-serif;font-weight:600;color:var(--c-ink)}
.finder__out ul{margin:0 0 10px;padding-left:20px}
.finder__out li{margin-bottom:4px}
.finder__out-note{color:var(--c-ink-2)}
.finder__out-more a{color:var(--c-red);font-weight:600;text-decoration:none}
.finder__out-more a:hover{text-decoration:underline}

/* ─── Слайдер ─── */
.slider{padding:26px 0 0}
.slider__box{position:relative;border-radius:var(--r-slab);overflow:hidden;background:var(--c-sand)}
.slider__track{display:grid}
.slider__slide{grid-area:1/1;min-width:0}
.slider__slide{position:relative;isolation:isolate}
.slider__slide img,.slider__slide .ph{aspect-ratio:var(--sl-ratio,3/2);width:100%;object-fit:var(--sl-fit,cover)}
/* Размытая копия баннера под полями: заметно опрятнее сплошной заливки */
.slider__bg{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;
  filter:blur(30px) saturate(1.25);transform:scale(1.15)}
.slider__slide a{display:block}
.slider--ready .slider__slide{opacity:0;visibility:hidden;transition:opacity .45s ease}
.slider--ready .slider__slide.is-on{opacity:1;visibility:visible}
.slider__arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;
  border:0;background:rgba(255,255,255,.9);display:grid;place-items:center;color:var(--c-ink);
  box-shadow:0 4px 16px rgba(34,26,28,.16)}
.slider__arrow:hover{background:#fff}
.slider__arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.slider__arrow--prev{left:14px}
.slider__arrow--next{right:14px}
.slider__bar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}
.slider__dots{display:flex;gap:2px;flex-wrap:wrap;justify-content:center}
/* Точка видимая 10px, нажимаемая область 24×24 — требование WCAG 2.5.8 */
.slider__dot{width:24px;height:24px;padding:0;border:0;background:none;display:grid;place-items:center}
.slider__dot::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--c-field)}
.slider__dot[aria-current="true"]::before{background:var(--c-red);transform:scale(1.3)}
.slider__play{width:34px;height:34px;border-radius:50%;border:1px solid var(--c-line);background:none;
  display:grid;place-items:center;color:var(--c-ink-2)}
.slider__play-stop,.slider__play-go{display:none;width:11px;height:12px;background:currentColor}
.slider__play-stop{clip-path:polygon(0 0,35% 0,35% 100%,0 100%,0 0,65% 0,65% 100%,100% 100%,100% 0,65% 0)}
.slider__play-go{clip-path:polygon(0 0,100% 50%,0 100%)}
[data-playing="yes"] .slider__play-stop{display:block}
[data-playing="no"] .slider__play-go{display:block}
@media (max-width:720px){
  .slider__box{border-radius:var(--r-card)}
  .slider__arrow{width:38px;height:38px}
  .slider__arrow--prev{left:8px}
  .slider__arrow--next{right:8px}
}

/* Текстовые страницы: колонку текста ставим по центру, сам текст — влево (так читается легче) */
.sec--text .prose,.prose--center{margin-left:auto;margin-right:auto}

/* ─── Шапка в две строки: название и телефон сверху, меню под ними ─── */
/* Без min-width:0 — иначе при нехватке места название сжимается до одной буквы в строке */
.logo{flex:0 1 auto}
.logo b{max-width:30ch;text-transform:uppercase;line-height:1.25;overflow-wrap:break-word}
.hdr-tools{flex:none;margin-left:auto}

.hdr-phone{display:flex;align-items:center;gap:10px;text-decoration:none;margin-left:20px;flex:none}
.hdr-phone svg{width:22px;height:22px;flex:none;fill:none;stroke:var(--c-red);stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.hdr-phone b{display:block;font-family:"Rubik",sans-serif;font-size:18px;white-space:nowrap;line-height:1.2}
.hdr-phone small{display:block;font-size:11.5px;color:var(--c-ink-3)}
.hdr-phone:hover b{color:var(--c-red)}

.hdr__menu{border-top:1px solid var(--c-line);background:var(--c-sand)}
.hdr__menu .wrap{display:flex;min-height:46px;align-items:center}
.hdr__menu .mainnav{margin-left:0;gap:28px}
.hdr__menu .mainnav a{font-size:15px}

@media (max-width:860px){.hdr-phone small{display:none}}
@media (max-width:720px){.logo b{font-size:13px}.logo .ph,.logo img{width:38px;height:38px}}
@media (max-width:620px){.hdr-phone span{display:none}.hdr-phone{margin-left:12px}}
@media (max-width:480px){.logo b{font-size:12px}.hdr .wrap{gap:10px;min-height:66px}}
@media (max-width:400px){.hdr-phone{margin-left:8px}}

/* Полоса меню: на узких экранах её нет — там кнопка «Меню».
   Правила идут в конце файла, чтобы перебить общие. */
@media (max-width:1180px){
  .hdr__menu{border-top:0;background:none}
  .hdr__menu .wrap{min-height:0;padding:0}
}
@media (max-width:480px){
  .logo b{font-size:11.5px;max-width:24ch}
  .logo .ph,.logo img{width:34px;height:34px}
}
@media (max-width:380px){
  .logo .ph{display:none}
}

/* Логотип-эмблема: круглый знак с прозрачным фоном, рамка не нужна */
/* Герб с надписью по кругу: мельче 72 px надпись не читается */
.logo .logo__img{width:92px!important;height:92px!important;object-fit:contain;flex:none}
@media (max-width:720px){.logo .logo__img{width:72px!important;height:72px!important}}
@media (max-width:480px){.logo .logo__img{width:60px!important;height:60px!important}}

/* Между планшетом и ноутбуком кнопке «Стать донором» не хватает места рядом
   с полным названием и телефоном — на эту ширину уводим её в меню */
@media (max-width:980px){
  .hdr-cta{display:none}
  .mainnav.is-open .mainnav__cta{display:block;color:var(--c-red);font-family:"Rubik",sans-serif;font-weight:600}
}

/* На больших экранах текстовая колонка шире и кегль крупнее:
   строка остаётся в пределах 80 знаков — дальше читать становится труднее */
@media (min-width:1100px){
  .prose{max-width:900px;font-size:18px;line-height:1.72}
  .prose h2{font-size:32px}
  .prose h3{font-size:23px}
  .prose__lead{font-size:21px}
}

/* Пока фото не загружено, заглушка не должна занимать пол-экрана.
   Задаём высоту явно: с aspect-ratio и max-height коробка сужается по ширине. */
.photo .ph{aspect-ratio:auto;height:min(420px,46vw)}
.prose__cover .ph{aspect-ratio:auto;height:min(380px,42vw)}

/* Текстовая версия документа (ПП № 102, п. 2 «в») */
.doc__text{margin-top:8px}
.doc__text summary{cursor:pointer;font-weight:700;font-size:14.5px;color:var(--c-red);
  display:inline-block;padding:4px 0;min-height:24px}
.doc__text[open] summary{margin-bottom:10px}
.doc__text .prose{font-size:16px;max-width:none;padding:14px 18px;background:var(--c-sand);
  border-radius:var(--r-field)}

/* Счётчик слайдов: точки — слабая подсказка, особенно на телефоне (Nielsen Norman Group) */
.slider__count{margin:0;font-family:"Rubik",sans-serif;font-size:14px;font-weight:600;
  color:var(--c-ink-2);min-width:46px}

/* ═══════════════ Этап 9: цифры, отзывы, карта ═══════════════ */

/* Цифры о работе станции */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.stat{background:#fff;border:1px solid var(--c-line);border-radius:var(--r-card);
  padding:30px 28px;display:flex;flex-direction:column;gap:8px}
.sec--white .stat{background:var(--c-sand);border-color:transparent}
.stat__v{font-family:"Rubik",sans-serif;font-size:clamp(34px,5vw,52px);font-weight:700;
  line-height:1;color:var(--c-red);font-variant-numeric:tabular-nums}
.stat__l{font-size:16px;line-height:1.4;color:var(--c-ink-2)}
.stats__note{margin:16px 0 0;font-size:14px;color:var(--c-ink-3)}

/* Отзывы доноров */
.revs{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.rev{background:var(--c-sand);border-radius:var(--r-card);padding:26px 28px;
  display:flex;flex-direction:column;gap:14px}
.sec--sand .rev,.sec--blush .rev{background:#fff}
.rev__text{margin:0;font-size:17px;line-height:1.6;color:var(--c-ink)}
.rev__who{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:14.5px;color:var(--c-ink-3)}
.rev__who b{font-family:"Rubik",sans-serif;font-size:16px;font-weight:600;color:var(--c-ink)}
.rev__reply{border-left:3px solid var(--c-teal);padding-left:16px}
.rev__reply b{font-family:"Rubik",sans-serif;font-size:13px;font-weight:600;
  text-transform:uppercase;letter-spacing:.05em;color:var(--c-teal);display:block;margin-bottom:4px}
.rev__reply p{margin:0;font-size:15.5px;line-height:1.55;color:var(--c-ink-2)}
.revs__cta{margin:26px 0 0}
.ph--rev{min-height:180px;border-radius:var(--r-card)}

/* Карта проезда */
.ymap{border-radius:var(--r-card);overflow:hidden;background:var(--c-sand)}
.ymap iframe{display:block;width:100%;height:min(460px,56vw);min-height:300px;border:0}
.ph--map{border-radius:var(--r-card);height:min(460px,56vw);min-height:300px}
.mapnote{margin-top:22px;max-width:760px}
.lights__embed iframe{display:block;width:100%;height:320px;border:0;border-radius:var(--r-field);background:#fff}

@media (max-width:860px){
  .stats,.revs{grid-template-columns:1fr}
  .stat{padding:24px}
  .ymap iframe,.ph--map{height:320px}
}

/* Заглушка под цифры: подписи уже стоят, редактору осталось вписать числа */
.stat--empty .ph{border-radius:var(--r-field);height:56px;width:150px;max-width:100%}
.stat--empty .ph__in{padding:6px 12px}
.stat--empty .ph__in b{font-size:22px;color:var(--c-ink-3);letter-spacing:.08em}
.cont--solo{grid-template-columns:1fr;max-width:760px}

/* ═══════════════ Этап 10: шапка на узких экранах и главное меню ═══════════════ */

/* Полоса меню: кегль крупнее, пункты — «таблетками», открытый раздел подсвечен.
   15 px для навигации мало: это основной способ ходить по сайту. */
@media (min-width:1181px){
  .hdr__menu{background:var(--c-blush);border-top:1px solid var(--c-line)}
  .hdr__menu .wrap{min-height:58px}
  .hdr__menu .mainnav{gap:4px;flex-wrap:wrap}
  .hdr__menu .mainnav a{font-family:"Rubik",sans-serif;font-size:17px;font-weight:500;
    color:var(--c-ink);padding:10px 16px;border-radius:var(--r-pill);line-height:1.2;
    transition:background .15s,color .15s}
  .hdr__menu .mainnav a:hover,
  .hdr__menu .mainnav a:focus-visible{background:#fff;color:var(--c-red)}
  .hdr__menu .mainnav a.is-current{background:var(--c-red);color:#fff;font-weight:600}
  .hdr__menu .mainnav a.is-current:hover{background:var(--c-red-dark);color:#fff}
}

/* Выпадающее меню под кнопкой «Меню»: тот же кегль, открытый раздел — красной чертой слева */
@media (max-width:1180px){
  .mainnav.is-open a{font-size:17.5px;font-family:"Rubik",sans-serif;font-weight:500;color:var(--c-ink)}
  .mainnav.is-open a.is-current{color:var(--c-red);font-weight:600;
    box-shadow:inset 3px 0 0 var(--c-red);padding-left:12px;border-radius:0}
}

/* Шапка на телефоне: на 360 px строка не помещалась и страница ездила вбок.
   Уменьшаем знак и кнопки, а длинному названию разрешаем переносы по слогам. */
.logo b{hyphens:auto}
@media (max-width:480px){
  .hdr .wrap{gap:9px}
  .logo{gap:8px}
  .logo .logo__img{width:52px!important;height:52px!important}
  .hdr-tools{gap:5px}
}
@media (max-width:400px){
  .hdr .wrap{gap:7px;padding:0 14px}
  .logo .logo__img{width:46px!important;height:46px!important}
  .logo b{font-size:11px;max-width:none}
  .hdr-phone{margin-left:6px}
  .hdr-tools{gap:3px}
  .icobtn{width:40px;height:40px}
  .icobtn svg{width:19px;height:19px}
}

/* На узких экранах (320 px) подвал в две колонки не помещался: длинные адреса
   и названия разделов шире половины экрана — там оставляем одну колонку. */
.ftr a,.ftr h4,.ftr__req{overflow-wrap:break-word}
@media (max-width:420px){
  .ftr__cols,.ftr__grid{grid-template-columns:1fr}
}

/* ═══════════════ Контакты: плитки вместо простого списка ═══════════════ */
.cont2{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}

/* Главная плитка: часы приёма доноров и телефон регистратуры */
.chero{grid-column:span 1;grid-row:span 2;background:var(--c-red);color:#fff;
  border-radius:var(--r-card);padding:30px 30px 28px;display:flex;flex-direction:column;
  justify-content:center;gap:6px;background-image:radial-gradient(120% 90% at 100% 0,#F2415A 0%,transparent 60%)}
.chero__eyebrow{margin:0;font-family:"Rubik",sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;opacity:.82}
.chero__hours{margin:6px 0 20px;font-family:"Rubik",sans-serif;font-size:26px;font-weight:600;line-height:1.25}
.chero__phone{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.chero__phone svg{width:24px;height:24px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linejoin:round}
.chero__phone span{font-family:"Rubik",sans-serif;font-size:clamp(22px,2.4vw,27px);font-weight:700;
  white-space:nowrap;border-bottom:2px solid rgba(255,255,255,.45)}
.chero__phone:hover span{border-bottom-color:#fff}
.chero__note{margin:12px 0 0;font-size:14.5px;line-height:1.5;opacity:.88}

/* Обычная плитка */
.ctile{background:var(--c-sand);border-radius:var(--r-card);padding:26px 28px}
.sec--sand .ctile,.sec--blush .ctile{background:#fff}
.ctile--wide{grid-column:span 2}
.ctile--full{grid-column:1 / -1}
.ctile__ic{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:#fff;color:var(--c-red);margin-bottom:14px}
.sec--sand .ctile__ic,.sec--blush .ctile__ic{background:var(--c-sand)}
.ctile__ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.ctile h3{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--c-ink-3);
  text-transform:uppercase;letter-spacing:.06em}
.ctile__big{margin:0;font-family:"Rubik",sans-serif;font-size:18px;font-weight:500;line-height:1.4;
  overflow-wrap:break-word}
.ctile__big a{color:inherit;text-decoration:none;border-bottom:1.5px solid var(--c-line)}
.ctile__big a:hover{color:var(--c-red);border-bottom-color:var(--c-red)}
.ctile__link{display:inline-block;margin-top:14px;font-weight:700;font-size:15px;
  color:var(--c-red);text-decoration:none}
.ctile__link:hover{text-decoration:underline}
.ctile__socials{margin:14px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.ctile__socials a{font-size:14.5px;font-weight:600;color:var(--c-ink-2);text-decoration:none;
  background:#fff;border:1px solid var(--c-line);border-radius:99px;padding:7px 15px}
.sec--sand .ctile__socials a,.sec--blush .ctile__socials a{background:var(--c-sand)}
.ctile__socials a:hover{border-color:var(--c-red);color:var(--c-red)}

.chours{margin:0;display:grid;gap:10px}
.chours div{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap}
.chours dt{margin:0;font-weight:700;font-size:16px;min-width:190px}
.chours dd{margin:0;font-size:16px;color:var(--c-ink-2)}

.cphones{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:2px 32px}
.cphones li{display:flex;align-items:baseline;gap:12px;padding:11px 0;border-bottom:1px solid var(--c-line)}
.cphones li span{flex:1;font-size:15.5px;color:var(--c-ink-2)}
.cphones li a{font-family:"Rubik",sans-serif;font-size:17px;font-weight:600;color:var(--c-ink);
  text-decoration:none;white-space:nowrap}
.cphones li a:hover{color:var(--c-red)}

.ctile--pic{grid-column:1 / -1}
.ctile--pic img,.ctile--pic .ph{border-radius:var(--r-card);aspect-ratio:auto;height:min(380px,40vw)}

@media (max-width:1024px){
  .cont2{grid-template-columns:repeat(2,1fr)}
  .chero{grid-row:span 1;grid-column:1 / -1}
  .ctile--wide{grid-column:1 / -1}
  .cphones{grid-template-columns:1fr}
}
@media (max-width:620px){
  .cont2{grid-template-columns:1fr}
  .ctile,.chero{padding:22px}
  .ctile--wide,.ctile--full,.chero{grid-column:auto}
  .chours dt{min-width:0}
  .chours div{gap:0;display:block}
  .ctile--pic img,.ctile--pic .ph{height:240px}
}
.chero__hours small{display:block;margin-top:6px;font-size:15px;font-weight:400;opacity:.85}

/* ═══════════════ Робот-помощник ═══════════════ */
.buddy{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;
  align-items:flex-end;gap:12px}
.buddy__btn{width:104px;height:104px;border-radius:50%;border:2px solid var(--c-line);background:#fff;
  box-shadow:0 16px 34px -12px rgba(34,26,28,.45);cursor:pointer;display:grid;place-items:center;
  padding:0;transition:transform .18s,border-color .18s}
.buddy__btn:hover,.buddy__btn:focus-visible{transform:scale(1.07);border-color:var(--c-red)}
.buddy__btn .bot{width:74px;height:auto;overflow:visible}

.bot__shell{fill:#fff;stroke:var(--c-ink);stroke-width:3}
.bot__visor{fill:var(--c-ink)}
.bot__led{fill:#FF5A6E}
.bot__ear{fill:var(--c-red)}
.bot__wire{stroke:var(--c-ink);stroke-width:3;stroke-linecap:round}
.bot__drop{fill:var(--c-red)}
.bot__cross{stroke:var(--c-red);stroke-width:4;stroke-linecap:round}
.bot__smile{fill:none;stroke:#FF5A6E;stroke-width:2.6;stroke-linecap:round}
.bot__eyes{transition:transform .12s ease-out}

@keyframes bot-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes bot-blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.bot__bob{animation:bot-bob 3.4s ease-in-out infinite;transform-origin:60px 70px}
.bot__eyes{animation:bot-blink 6s ease-in-out infinite;transform-origin:60px 60px}
.buddy__btn:hover .bot__bob{animation-duration:1.2s}

.buddy__bubble{display:none;position:relative;width:340px;max-width:calc(100vw - 36px);background:#fff;
  border-radius:20px;padding:20px 22px 18px;border:1px solid var(--c-line);
  box-shadow:0 18px 40px -16px rgba(34,26,28,.45)}
.buddy.is-open .buddy__bubble{display:block;animation:buddy-pop .2s ease-out}
@keyframes buddy-pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.buddy__tip{margin:0;font-size:15.5px;line-height:1.5;color:var(--c-ink);padding-right:18px}
.buddy__links{display:flex;flex-direction:column;gap:2px;margin-top:14px;
  border-top:1px solid var(--c-line);padding-top:10px}
.buddy__links a{font-size:14.5px;font-weight:700;color:var(--c-red);text-decoration:none;padding:7px 0}
.buddy__links a:hover,.buddy__links a:focus-visible{text-decoration:underline}
.buddy__x{position:absolute;top:8px;right:8px;border:0;background:none;cursor:pointer;
  width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--c-ink-3)}
.buddy__x svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.buddy__x:hover{background:var(--c-sand);color:var(--c-ink)}

@media (max-width:860px){
  .buddy{right:14px;bottom:14px}
  .buddy__btn{width:80px;height:80px}
  .buddy__btn .bot{width:56px}
}

/* Кому движение мешает — робот стоит на месте (ГОСТ Р 52872-2019, WCAG 2.3.3) */
@media (prefers-reduced-motion:reduce){
  .bot__bob,.bot__eyes{animation:none}
  .buddy__btn{transition:none}
  .buddy.is-open .buddy__bubble{animation:none}
}
/* В версии для слабовидящих помощника нет: он только мешает экранному доступу */
html[data-a11y-size] .buddy,html[data-a11y-theme] .buddy{display:none}

/* ═══════════════ Текст: разделительные черты и значки в строке ═══════════════ */

/* Как на старом сайте: тонкая тёмная черта между смысловыми частями текста */
.prose hr{border:0;border-top:1px solid var(--c-ink);opacity:.9;margin:1.9em 0}
.prose hr+*{margin-top:1.9em}

/* Значок в строке текста: размер привязан к кеглю, чтобы не выбивался при увеличении шрифта */
.tic{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.21em;margin:0 .12em;
  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Заголовки внутри текста «как на старом сайте»: красные, по центру.
   Включается в блоке «Текст» → «Вид заголовков». По умолчанию остаются обычными. */
.prose--accent h2,.prose--accent h3,.prose--accent h4{color:var(--c-red);text-align:center}
.prose--accent h2{font-size:28px;margin-top:1.4em}
.prose--accent h3{font-size:23px}
.prose--accent h4{font-size:20px;font-weight:600}
@media (max-width:620px){.prose--accent h2{font-size:24px}}
.tic--flag{stroke:none;width:1.3em;vertical-align:-.26em}

/* ═══════════════ Ширина текста на больших экранах ═══════════════ */

/* Текстовые страницы разворачиваются во всю ширину контейнера — до 1200 px.
   Контейнер сайта остаётся прежним (1240 px), поэтому текст не разъезжается
   шире остальных блоков. На узких экранах ширину диктует сам экран. */
@media (min-width:1100px){
  .sec--text .prose{max-width:1200px}
  .sec--text .prose p,.sec--text .prose li{line-height:1.75}
}

/* ═══════════════ Значок в карточке-ссылке ═══════════════ */
.card__ic{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:#fff;margin-bottom:16px}
.sec--white .card__ic{background:var(--c-sand)}
.card__ic .tic{width:24px;height:24px;margin:0;vertical-align:0}

/* ═══════════════ Обращение руководителя ═══════════════ */
.chief{display:grid;grid-template-columns:320px 1fr;gap:40px;align-items:start}
.chief__pic img,.chief__pic .ph{border-radius:var(--r-card);aspect-ratio:3/4;object-fit:cover}
.chief__text{margin:0;position:relative;padding-left:30px;border-left:4px solid var(--c-red)}
.chief__text>p{margin:0;font-size:19px;line-height:1.62;color:var(--c-ink)}
.chief__text footer{margin-top:22px;display:flex;flex-direction:column;gap:2px}
.chief__text footer b{font-family:"Rubik",sans-serif;font-size:18px;font-weight:600}
.chief__text footer span{font-size:15px;color:var(--c-ink-2)}
.chief__text .btn{margin-top:22px}

/* ═══════════════ Лента истории ═══════════════ */
.tline{list-style:none;margin:0;padding:0;position:relative}
.tline::before{content:"";position:absolute;left:138px;top:10px;bottom:10px;width:2px;
  background:var(--c-line)}
.tline__item{display:grid;grid-template-columns:120px 1fr;gap:56px;padding-bottom:34px;position:relative}
.tline__item:last-child{padding-bottom:0}
.tline__year{font-family:"Rubik",sans-serif;font-size:21px;font-weight:700;color:var(--c-red);
  text-align:right;padding-top:2px;white-space:nowrap}
.tline__item::before{content:"";position:absolute;left:131px;top:9px;width:16px;height:16px;
  border-radius:50%;background:var(--c-red);border:4px solid #fff;box-sizing:content-box}
.sec--sand .tline__item::before{border-color:var(--c-sand)}
.tline__body p{margin:0;font-size:16.5px;line-height:1.65;color:var(--c-ink-2)}
.tline__who{display:block;font-family:"Rubik",sans-serif;font-size:17px;font-weight:600;
  color:var(--c-ink);margin-bottom:5px}

/* ═══════════════ Оглавление страницы ═══════════════ */
.toc{padding:26px 0 2px}
.toc__head{margin:0 0 12px;font-family:"Rubik",sans-serif;font-size:13px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--c-ink-3)}
.toc__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.toc__list a{display:inline-block;padding:9px 16px;border-radius:var(--r-pill);
  background:var(--c-sand);color:var(--c-ink);text-decoration:none;font-size:15.5px;font-weight:600;
  transition:background .15s,color .15s}
.toc__list a:hover,.toc__list a:focus-visible{background:var(--c-blush);color:var(--c-red)}
.toc__list a.is-current{background:var(--c-red);color:#fff}

@media (max-width:860px){
  .chief{grid-template-columns:1fr;gap:24px}
  .chief__pic{max-width:260px}
  .chief__text{padding-left:20px}
  .chief__text>p{font-size:17px}
  .tline::before{left:7px}
  .tline__item{grid-template-columns:1fr;gap:4px;padding-left:34px;padding-bottom:26px}
  .tline__item::before{left:0;top:6px}
  .tline__year{text-align:left;font-size:19px}
}

/* ═══════════════ Плавное появление блоков ═══════════════ */
.reveal{opacity:0;transform:translateY(14px);
  transition:opacity .45s ease-out,transform .45s ease-out}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}

/* ═══════════════ Просмотр фотографий ═══════════════ */
.lbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;
  gap:12px;padding:24px;background:rgba(20,14,16,.92)}
.lbox[hidden]{display:none}
body.lbox-open{overflow:hidden}
.lbox__fig{margin:0;max-width:min(1200px,92vw);display:flex;flex-direction:column;gap:12px;
  align-items:center}
.lbox__fig img{max-width:100%;max-height:78vh;border-radius:var(--r-field);display:block}
.lbox__fig figcaption{color:#F3EAEC;font-size:15.5px;text-align:center;max-width:70ch}
.lbox__close,.lbox__nav{border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;
  border-radius:50%;width:52px;height:52px;display:grid;place-items:center;flex:none;
  font-size:30px;line-height:1;transition:background .15s}
.lbox__close:hover,.lbox__nav:hover,.lbox__close:focus-visible,.lbox__nav:focus-visible{
  background:rgba(255,255,255,.26)}
.lbox__close{position:absolute;top:18px;right:18px;font-size:34px}
@media (max-width:620px){
  .lbox{padding:12px;gap:4px}
  .lbox__nav{width:44px;height:44px;font-size:26px}
  .lbox__fig img{max-height:68vh}
}
/* В версии для слабовидящих ничего не появляется и не двигается */
html[data-a11y-size] .reveal,html[data-a11y-theme] .reveal{opacity:1;transform:none;transition:none}

/* ═══════════════ Помощник: поиск по вопросам ═══════════════ */
.buddy__find{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding-right:26px}
.buddy__find input{flex:1;min-width:0;font:500 15.5px "Nunito Sans",sans-serif;
  padding:11px 15px;border:1.5px solid var(--c-field);border-radius:var(--r-field);background:#fff}
.buddy__find input:focus{outline:2px solid var(--c-red);outline-offset:1px;border-color:transparent}
.buddy__back{border:0;background:none;color:var(--c-red);font:700 14px "Nunito Sans",sans-serif;
  cursor:pointer;padding:6px 2px;white-space:nowrap}
.buddy__back:hover{text-decoration:underline}

.buddy__hint{margin:12px 0 0;font-size:13.5px;line-height:1.45;color:var(--c-ink-3)}
.buddy__out{max-height:min(62vh,440px);overflow-y:auto;overscroll-behavior:contain}
.buddy__group{margin:10px 0 6px;font-family:"Rubik",sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3)}
.buddy__group:first-child{margin-top:0}
.buddy__list{display:flex;flex-direction:column;gap:2px;margin-bottom:6px}
.buddy__list button,.buddy__list a{text-align:left;border:0;background:none;cursor:pointer;
  font:600 15px "Nunito Sans",sans-serif;color:var(--c-ink);text-decoration:none;
  padding:9px 10px;border-radius:10px;line-height:1.35}
.buddy__list button:hover,.buddy__list a:hover,
.buddy__list button:focus-visible,.buddy__list a:focus-visible{background:var(--c-sand);color:var(--c-red)}
.buddy__q{margin:0 0 8px;font-family:"Rubik",sans-serif;font-size:16px;font-weight:600;line-height:1.3}
.buddy__a{margin:0;font-size:15px;line-height:1.55;color:var(--c-ink-2)}
.buddy__more{display:inline-block;margin-top:14px;font-size:14.5px;font-weight:700;
  color:var(--c-red);text-decoration:none}
.buddy__more:hover{text-decoration:underline}
.buddy__empty{margin:0;font-size:15px;line-height:1.5;color:var(--c-ink-2)}


/* ─────────────────────────────────────────────────────────────────────────
   Правки после проверки интерфейса на телефоне и компьютере.

   Область нажатия по ГОСТ Р 52872-2019 и WCAG 2.5.8 — не меньше 24×24 px.
   Ссылки внутри абзацев это требование не касается: там размер задаёт
   строка текста. Поэтому увеличиваем только самостоятельные ссылки.
   ───────────────────────────────────────────────────────────────────────── */

.crumbs{align-items:center}
.crumbs a{display:inline-block;padding-block:2px}

.doc__body a{display:inline-block;padding-block:3px}
.person a{display:inline-block;padding-block:2px}
.ctile__big a{display:inline-block;padding-block:1px}

.ftr__btm a,.ftr__a11y{display:inline-block;padding:3px 0}
.results a{display:inline-block;padding-block:3px}

/* Согласие на обработку данных: галочку меньше 24 px трудно попасть пальцем */
.fldw input[type=checkbox],.fldw input[type=radio]{width:24px;height:24px;flex:none}

@media (max-width:1180px){
  /* В раскрытом меню пункты уже разделены линиями: зазор от горизонтального
     меню добавлял к каждому ещё 28 px и растягивал список на два экрана. */
  .mainnav.is-open{gap:0}
}

/* Телефон в шапке: на планшете подпись скрыта, на телефоне остаётся одна
   иконка — в обоих случаях ссылка становится слишком мелкой для пальца */
.hdr-phone{min-height:44px}

@media (max-width:620px){
  .hdr-phone{min-width:44px;justify-content:center;margin-left:4px}
}
