/* blocks.css — СОБИРАЕТСЯ build.py из blocks/*.css. Не править руками. */
/* общее для всех блоков-секций: ритм 80/48, заголовок секции одного размера, подзаголовок одного */
.b-sec { padding: var(--sec-y) 0; background: var(--bg); }
.b-sec--alt { background: var(--surface); }
.b-sec--join { padding-top: 0; }
.b-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--sp-4); flex-wrap: wrap; margin: 0 0 var(--sp-8); }
.b-h2 { font-size: var(--fs-h2); font-weight: var(--fw-head); line-height: var(--lh-head); margin: 0; }
.b-h1 { font-size: var(--fs-h1); font-weight: var(--fw-head); line-height: 1.05; margin: 0; }
.b-sub { font-size: var(--fs-text); line-height: var(--lh-text); color: var(--mut); margin: var(--sp-3) 0 0; max-width: 40em; }
.b-head .b-link { margin-bottom: var(--sp-1); }
.b-list { list-style: none; margin: 0; padding: 0; }
.b-fine { font-size: var(--fs-text); color: var(--mut); }
.b-sec--tight { padding-bottom: var(--sp-8); }
.b-h3 { font-size: var(--fs-h3); font-weight: var(--fw-sub); line-height: var(--lh-head); margin: 0; }
.b-sec--join .b-head { margin-bottom: var(--sp-5); }
.b-sec--tint { background: var(--tint); }

/* ПРАВИЛО ЗАГОЛОВКОВ (02.11): никаких переносов по слогам; перенос только между словами, строки выравниваются; ломать слово можно лишь если оно не влезает целиком */
.b-h1, .b-h2, .b-h3, .b-hero__h1, .b-tile__n, .b-head h2 { hyphens: none; text-wrap: balance; overflow-wrap: break-word; }

/* CTA текстовых плиток: заметная кнопка-пилюля вместо тихой «Смотреть» (02.11) */
.b-tile--text .b-tile__more { margin-top: auto; align-self: stretch; justify-content: space-between; padding: var(--sp-3) var(--sp-3) var(--sp-3) var(--sp-4); border-radius:var(--r-pill); background: var(--ink); color: var(--surface); }
.b-tile--text .b-arrow { border-color: var(--surface); color: var(--surface); }
.b-tile--text:hover .b-tile__more { background: var(--accent); }
.b-tile--text:hover .b-arrow { background: var(--surface); color: var(--accent); }
.b-head > div { min-width: 0; }

/* два соседних раздела на одном фоне: верхний отступ второго убираем, иначе между ними пустота ~160 px */
.v2 > .b-sec:where(:not(.b-sec--alt, .b-sec--tint, .b-sec--join)) + .b-sec:where(:not(.b-sec--alt, .b-sec--tint, .b-cta, .b-cta--card)) { padding-top: 0; }

/* слитые секции (одинаковый фон) после «tight»: вместо 32/0 — общий воздух 64 px, чтобы блоки не слипались (05.11). Остальные пары не меняются. */
.v2 > .b-sec--tight:where(:not(.b-sec--alt, .b-sec--tint, .b-sec--join)) + .b-sec:where(:not(.b-sec--alt, .b-sec--tint, .b-sec--join, .b-cta, .b-cta--card)) { padding-top: var(--sp-8); }
.b-sub { text-wrap: pretty; }

/* ===== MockShell ===== */
/* Оболочка макета: стили панели — nav.css (общий для всех страниц), здесь только отступ под фиксированную панель не нужен. */

/* ===== Topbar ===== */
.b-topbar { background: var(--surface); border-bottom: 1px solid var(--line); padding: var(--sp-3) 0; font-size: var(--fs-text); }
.b-topbar .b-c { display: flex; justify-content: space-between; gap: var(--sp-3); flex-wrap: wrap; align-items: center; }
.b-topbar b { font-family: var(--font-head); font-size: var(--fs-text); }
.b-topbar span { color: var(--mut); }
@media (max-width: 900px) { .b-topbar span { display: none; } .b-topbar { padding: var(--sp-2) 0; } }

/* ===== Crumbs ===== */
.b-crumbs { background: var(--surface); padding: var(--sp-8) 0 var(--sp-4); font-size: var(--fs-text); color: var(--mut); }
.b-crumbs a { text-decoration: none; }
.b-crumbs a:hover { color: var(--ink); text-decoration: underline; }
.b-crumbs [aria-hidden] { padding: 0 var(--sp-1); }
@media (max-width: 900px) { .b-crumbs { padding-top: var(--sp-5); padding-bottom: var(--sp-3); }  }
/* крошки над большим баннером: выровнять по тексту баннера (отступ как у .hs26__slide) */
@media (min-width: 901px) { .b-crumbs:has(+ .b-herobanner) > .b-c { max-width: none; margin: 0; padding-left: max(clamp(64px, 7vw, 120px), calc((100% - 1440px) / 2)); padding-right: max(clamp(64px, 7vw, 120px), calc((100% - 1440px) / 2)); } }
@media (max-width: 600px) { .b-crumbs:has(+ .b-hero--service) .b-crumbs__cur, .b-crumbs:has(+ .b-hero--service) .b-crumbs__s:nth-last-child(2) { display: none; } }

/* ===== HeroBanner ===== */
/* Баннер-слайдер (hs26 с главной): стили — system/live/hero-2026.css как есть (копия promos/hero). Здесь только место в ритме страницы. */
.b-herobanner { margin: 0; }
.b-herobanner .hs26__title { margin: 0 0 var(--sp-4); }
/* цена: подпись над числом, число одной строкой («от» внутри) */
.b-herobanner .hs26__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--sp-1) var(--sp-3); }
.b-herobanner .hs26__pl { flex: 0 0 100%; font-size: var(--fs-text); font-weight: 500; color: var(--mut); line-height: 1.2; }

/* ===== PageHero ===== */
.b-hero { background: var(--surface); padding: var(--sp-8) 0 var(--sec-y); border-bottom: 1px solid var(--line); }
.b-hero__g { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 56px; align-items: center; }
.b-hero--noimg .b-hero__g { grid-template-columns: minmax(0, 1fr); }
.b-hero--noimg .b-hero__t { max-width: 44em; }
.b-hero__h1 { max-width: 12em; font-size:var(--fs-h1); font-weight: var(--fw-head); line-height: 1.05; margin: 0 0 var(--sp-5); }
.b-hero__eyebrow { margin: 0 0 var(--sp-3); color: var(--mut); }
.b-hero__lead { font-size:var(--fs-h3); line-height: var(--lh-text); color: var(--mut); margin: 0 0 var(--sp-6); max-width: 30em; }
.b-hero__price { margin: 0 0 var(--sp-6); font-size:var(--fs-h3); }
.b-hero__price b { font-family: var(--font-head); font-size:var(--fs-h3); margin-left: var(--sp-2); }
.b-hero__price s { color: var(--mut); }
.b-hero__badge { margin-left: var(--sp-3); padding: var(--sp-1) var(--sp-3); border-radius:var(--r-pill); background: var(--ink); color: #fff; font-size:var(--fs-text); font-weight: var(--fw-sub); vertical-align: middle; }
.b-hero__until { margin: calc(-1 * var(--sp-3)) 0 var(--sp-6); color: var(--mut); }
.b-hero__act { display: flex; gap: var(--sp-5); align-items: center; flex-wrap: wrap; }
.b-hero__tel { color: var(--ink); font-weight: var(--fw-sub); text-decoration: none; }
.b-hero__img { border-radius:var(--r-img); overflow: hidden; aspect-ratio: 16 / 11; background: var(--photo-bg); }
.b-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.b-hero__img--top img { object-position: center top; }
/* врач: фото · имя, факты, выдержка · карточка записи (как на живой странице врача) */
.b-hero--doctor { padding: var(--sp-8) 0 var(--sec-y); }
.b-hero__dg { display: grid; grid-template-columns: 380px minmax(0, 1fr) 340px; gap: var(--sp-10); align-items: start; }
.b-hero__ph { width: 100%; height: auto; align-self: start; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 12%; border-radius:var(--r-card); background: var(--photo-bg); }
.b-hero--doctor .b-hero__h1 { font-size:var(--fs-h2); line-height: 1.15; margin: 0 0 var(--sp-3); max-width: none; }
.b-hero--doctor .b-hero__lead { font-size:var(--fs-h3); margin-bottom: var(--sp-5); padding-bottom: var(--sp-5); border-bottom: 1px solid var(--line); max-width: none; }
.b-hero__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3); margin-bottom: var(--sp-5); }
.b-hero__facts li { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-3) var(--sp-4); border: 1px solid var(--line); border-radius:var(--r-card); background: var(--surface); color: var(--mut); }
.b-hero__facts b { font-family: var(--font-head); font-size:var(--fs-h3); color: var(--ink); }
.b-hero__dirs { display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: center; margin: 0 0 var(--sp-6); color: var(--mut); }
.b-hero__dirs a { color: var(--accent); text-decoration: none; font-weight: var(--fw-sub); border: 1px solid var(--accent); border-radius:var(--r-pill); padding: var(--sp-2) var(--sp-5); }
.b-hero__dirs a:hover { background: var(--accent); color: var(--surface); }
.b-hero__ex { border: 1px solid var(--line); border-radius:var(--r-card); padding: var(--sp-6); background: var(--surface); color: var(--mut); }
.b-hero__ex p { margin: 0 0 var(--sp-3); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.b-hero__ex a { color: var(--accent); font-weight: var(--fw-sub); text-decoration: none; }
.b-hero__card { border: 1px solid var(--line); border-radius:var(--r-card); padding: var(--sp-6); background: var(--surface); display: flex; flex-direction: column; gap: var(--sp-4); }
.b-hero__card p { margin: 0; }
.b-hero__cl { color: var(--mut); }
.b-hero__cp { font-family: var(--font-head); font-size:var(--fs-h2); font-weight: var(--fw-head); color: var(--ink); }
.b-hero__card .b-hero__tel { width: 100%; }
.b-hero__fine { color: var(--mut); }
.b-hero__row { border-top: 1px solid var(--line); padding-top: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-1); }
.b-hero__rl { color: var(--accent); font-weight: var(--fw-sub); }
.b-hero__rv { font-size:var(--fs-h3); font-weight: var(--fw-sub); }
@media (max-width: 1100px) { .b-hero__dg { grid-template-columns: 240px minmax(0, 1fr); } .b-hero__card { grid-column: 1 / -1; } }
@media (max-width: 900px) {
  .b-hero { padding: var(--sp-5) 0 var(--sec-y); }
  .b-hero__g { grid-template-columns: minmax(0, 1fr); gap: var(--sp-8); }
  .b-hero__img { aspect-ratio: 16 / 10; }
  .b-hero__dg { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .b-hero__ph { max-width: 280px; }
  .b-hero__facts { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
  .b-hero__facts li { flex-direction: row; justify-content: space-between; align-items: baseline; overflow-wrap: normal; }
}
.b-hero__dg > * { min-width: 0; }
/* от 1100: три колонки одной высоты — фото тянется, выдержка и график прижаты к низу */
@media (min-width: 1101px) {
  .b-hero--doctor .b-hero__dg { align-items: stretch; }
  .b-hero--doctor .b-hero__ph { height: 100%; aspect-ratio: auto; align-self: stretch; object-position: 50% 8%; }
  .b-hero__dm { display: flex; flex-direction: column; }
  .b-hero__ex { margin-top: auto; }
  .b-hero__card .b-hero__row:first-of-type { margin-top: auto; }
}
.b-hero__dm, .b-hero__card { overflow-wrap: anywhere; }
/* subsection: фон и фото как у утверждённого баннера отделения (hs26) */
.b-hero--subsection, .b-hero--service, .b-hero--disease, .b-hero--program { background: var(--grad-hero); border-bottom: 0; }
.b-hero--subsection .b-hero__img, .b-hero--service .b-hero__img, .b-hero--disease .b-hero__img, .b-hero--program .b-hero__img { border-radius:var(--r-hero); box-shadow: var(--shadow-hero); }
/* длинные названия («Электрокардиография…») при необходимости ломаются и не раздвигают страницу на 375 (02.11); короткие заголовки не меняются */
.b-hero__h1 { overflow-wrap: break-word; }

/* service + card: слева название, лид, факты услуги; справа карточка записи (цена, кнопка, адрес, график) */
.b-hero--svc .b-hero__g { grid-template-columns: minmax(0, 1fr) 360px; gap: var(--sp-10); align-items: stretch; }
.b-hero--svc .b-hero__card { align-self: stretch; }
.b-hero--svc .b-hero__card .b-hero__row:first-of-type { margin-top: auto; }
.b-hero--svc .b-hero__h1 { max-width: 16em; font-size:var(--fs-h2); line-height: 1.15; }
.b-hero--svc .b-hero__lead { max-width: 36em; }
.b-hero__facts--svc { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 36em; margin-bottom: 0; }
.b-hero--svc .b-hero__t { min-width: 0; }
@media (max-width: 900px) { .b-hero--svc .b-hero__g { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); } }
@media (max-width: 600px) { .b-hero__facts--svc { grid-template-columns: minmax(0, 1fr); } }

/* service + card + img: фото справа, карточка записи (цена, кнопка, телефон) лежит на нижнем крае фото — не «три колонки врача» */
.b-hero--photo .b-hero__g { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: var(--sp-10); align-items: stretch; }
.b-hero__vis { position: relative; min-width: 0; min-height: 440px; }
.b-hero--photo .b-hero__img { position: absolute; inset: 0; aspect-ratio: auto; box-shadow: var(--shadow-1); }
.b-hero__card--float { position: absolute; left: var(--sp-4); right: var(--sp-4); bottom: var(--sp-4); padding: var(--sp-5); gap: var(--sp-3); box-shadow: var(--shadow-2); }
.b-hero__card--float .b-hero__cprice { display: flex; align-items: baseline; gap: var(--sp-3); flex-wrap: wrap; }
.b-hero__card--float .b-hero__cp { font-size:var(--fs-h2); line-height: 1.1; }
.b-hero__cact { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.b-hero__cact .b-btn { flex: 1 1 180px; }
@media (max-width: 900px) {
  .b-hero--photo .b-hero__g { grid-template-columns: minmax(0, 1fr); }
  .b-hero__vis { min-height: 0; }
  .b-hero--photo .b-hero__img { position: relative; aspect-ratio: 16 / 11; }
  .b-hero__card--float { position: relative; left: auto; right: auto; bottom: auto; margin: calc(-1 * var(--sp-10)) var(--sp-4) 0; }
}

/* длинное слово в H1 не рвём: шрифт уменьшается по длине самого длинного слова (--wl) и ширине колонки текста; 0.9em — ширина знака заголовочной гарнитуры с запасом */
.b-hero__t, .b-hero__dm { container-type: inline-size; }
.b-hero__h1--long { overflow-wrap: normal; max-width: 100%; font-size: min(var(--fs-h1), calc(100cqw / (var(--wl, 1) * 0.9))); }
.b-hero--svc .b-hero__h1--long, .b-hero--doctor .b-hero__h1--long { max-width: 100%; font-size: min(var(--fs-h2), calc(100cqw / (var(--wl, 1) * 0.9))); }
.b-hero__h1--w11 { --wl: 11; } .b-hero__h1--w12 { --wl: 12; } .b-hero__h1--w13 { --wl: 13; } .b-hero__h1--w14 { --wl: 14; } .b-hero__h1--w15 { --wl: 15; } .b-hero__h1--w16 { --wl: 16; } .b-hero__h1--w17 { --wl: 17; } .b-hero__h1--w18 { --wl: 18; } .b-hero__h1--w19 { --wl: 19; } .b-hero__h1--w20 { --wl: 20; } .b-hero__h1--w21 { --wl: 21; } .b-hero__h1--w22 { --wl: 22; } .b-hero__h1--w23 { --wl: 23; } .b-hero__h1--w24 { --wl: 24; } .b-hero__h1--w25 { --wl: 25; } .b-hero__h1--w26 { --wl: 26; } .b-hero__h1--w27 { --wl: 27; } .b-hero__h1--w28 { --wl: 28; } .b-hero__h1--w29 { --wl: 29; } .b-hero__h1--w30 { --wl: 30; }

/* длинное название (> 40 знаков: услуги, заболевания) — заголовок на ступень меньше, чтобы шапка не росла на три экрана */
.b-hero__h1--md { font-size:var(--fs-h2); line-height: 1.15; max-width: 16em; }
.b-hero__h1--md.b-hero__h1--long { font-size: min(var(--fs-h2), calc(100cqw / (var(--wl, 1) * 0.9))); }

/* единая шапка: заголовок без «рваных» строк; факты услуги — строкой-метками, а не белыми плашками */
.b-hero__h1 { text-wrap: balance; overflow-wrap: break-word; hyphens: manual; }
.b-hero--service .b-hero__facts { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); margin: 0 0 var(--sp-5); max-width: none; }
.b-hero--service .b-hero__facts li { flex-direction: row; gap: var(--sp-2); padding: 0; border: 0; background: none; border-radius: 0; align-items: baseline; }
.b-hero--service .b-hero__facts b { font-family: var(--font-body); font-size:var(--fs-text); }

/* услуга: один размер H1 (--fs-h2); слово не влезает — кегль уменьшается по его длине, но не ниже 20px (0.8em — реальная ширина знака гарнитуры); лид на телефоне 16px, чтобы H1 всегда был крупнее минимум в 1.2 раза */
.b-hero--service .b-hero__h1--md { font-size: var(--fs-h2); max-width: none; overflow-wrap: normal; hyphens: manual; }
.b-hero--service .b-hero__h1--md.b-hero__h1--long { font-size: max(20px, min(var(--fs-h2), calc(100cqw / (var(--wl, 1) * 0.8)))); }
@media (max-width: 600px) { .b-hero--service .b-hero__lead { font-size: 16px; } }

.b-hero__h1-sub { display: block; margin-top: var(--sp-3); font-size: var(--fs-h3); line-height: 1.3; font-weight: 500; color: var(--mut); }

/* H1 по ступеням длины: ≤40 знаков — как есть; 41–70 — --md; >70 — --xl (ещё мельче, подзаголовок мельче); картинка шапки услуги по центру колонки и не растягивает шапку */
.b-hero__h1--xl, .b-hero--service .b-hero__h1--xl { font-size: max(20px, calc(var(--fs-h2) * 0.85)); line-height: 1.15; }
.b-hero__h1--xl .b-hero__h1-sub { font-size: var(--fs-text); margin-top: var(--sp-2); }
.b-hero--service .b-hero__g, .b-hero--disease .b-hero__g, .b-hero--subsection .b-hero__g { align-items: center; }

.b-hero__fullname { margin: var(--sp-2) 0 0; font-size:var(--fs-text); line-height: 1.4; color: var(--mut); max-width: 62ch; }

/* Заболевание без фото: прозрачный узор справа, гаснет к тексту (img/disease-pattern.*) */
.b-hero--disease, .b-hero--svc, .b-hero--noimg { position: relative; overflow: clip; }
.b-hero--disease::before, .b-hero--svc::before, .b-hero--noimg::before { content: ""; position: absolute; inset: 0; background: url("/theme/v2/img/disease-pattern.webp") 62% center / auto 140% no-repeat, url("/theme/v2/img/disease-pattern.webp") 100% 120% / auto 90% no-repeat; opacity: 1; pointer-events: none; filter: drop-shadow(0 0 1px var(--accent)) drop-shadow(0 0 1px var(--accent)); -webkit-mask-image: linear-gradient(to right, transparent 30%, var(--ink) 65%); mask-image: linear-gradient(to right, transparent 30%, var(--ink) 65%); }
.b-hero--disease > .b-c, .b-hero--svc > .b-c, .b-hero--noimg > .b-c { position: relative; z-index: 1; }
@media (max-width: 900px) { .b-hero--disease::before, .b-hero--svc::before, .b-hero--noimg::before { opacity: .6; background-position: right bottom; } }
/* полное название услуги под H1 — того же размера, что и уточнение в H1 (b-hero__h1-sub) */
.b-hero__fullname { margin: var(--sp-3) 0 0; font-size:var(--fs-h3); line-height: 1.3; font-weight: 500; max-width: none; }
.b-hero__fullname { margin-bottom: var(--sp-3); }

.b-hero__more { color: var(--ink); font-weight: var(--fw-sub); text-decoration: underline; text-underline-offset: 4px; align-self: center; }
.b-hero__more:hover { color: var(--accent); }
.b-hero--program .b-hero__facts--svc { margin-bottom:var(--sp-5); gap:var(--sp-2); max-width:34em; }
.b-hero--program .b-hero__facts--svc li { padding:var(--sp-2) var(--sp-4); }
.b-hero--program .b-hero__facts--svc b { font-size:var(--fs-text); line-height:1.3; }
@media (max-width: 600px) { .b-hero--program .b-hero__facts--svc li { flex-direction:column; align-items:flex-start; gap:0; } }

/* ===== PageToc ===== */
.b-toc { background: var(--surface); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; }
.b-toc .b-c { display: flex; align-items: center; gap: var(--sp-6); padding-top: var(--sp-3); padding-bottom: var(--sp-3); }
.b-toc__t { color: var(--mut); white-space: nowrap; }
.b-toc__l { min-width: 0; display: flex; gap: var(--sp-6); overflow-x: auto; scrollbar-width: none; }
.b-toc__l a { text-decoration: none; white-space: nowrap; font-weight: var(--fw-sub); padding: var(--sp-1) 0; border-bottom: 2px solid transparent; }
.b-toc__l a:hover, .b-toc__l a.is-on { border-color: var(--ink); }
@media (max-width: 900px) { .b-toc { position: static; } .b-toc__t { display: none; } }

/* side: липкое меню слева от контента + мини-карточка записи (страница врача) */
.b-side { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: var(--sp-10); align-items: start; padding-top: var(--sp-8); padding-bottom: var(--sp-8); }
.b-side__a { position: sticky; top: var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-5); }
.b-toc--side { position: static; background: none; border: 0; display: flex; flex-direction: column; gap: var(--sp-4); }
.b-toc--side .b-toc__t { text-transform: uppercase; letter-spacing: .06em; font-size:var(--fs-text); }
.b-toc--side .b-toc__l { display: flex; flex-direction: column; gap: 0; overflow: visible; border-left: 1px solid var(--line); }
.b-toc--side .b-toc__l a { display: block; white-space: normal; padding: var(--sp-2) var(--sp-4); margin-left: -1px; border-bottom: 0; border-left: 2px solid transparent; color: var(--mut); font-weight: 400; }
.b-toc--side .b-toc__l a:hover, .b-toc--side .b-toc__l a.is-on { border-left-color: var(--accent); color: var(--ink); font-weight: var(--fw-sub); }
.b-toc__card { border: 1px solid var(--line); border-radius:var(--r-card); background: var(--surface); padding: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }
.b-toc__card p { margin: 0; }
.b-toc__who { display: flex; gap: var(--sp-3); align-items: center; }
.b-toc__who img { width: 56px; height: 56px; border-radius:var(--r-pill); object-fit: cover; object-position: 50% 15%; background: var(--photo-bg); flex: none; }
.b-toc__nm { font-weight: var(--fw-sub); }
.b-toc__sp { color: var(--mut); }
.b-toc__ex { color: var(--accent); font-weight: var(--fw-sub); }
.b-toc__pl { color: var(--mut); }
.b-toc__pp { font-family: var(--font-head); font-size:var(--fs-h3); font-weight: var(--fw-head); }
.b-toc__tel { text-align: center; color: var(--ink); font-weight: var(--fw-sub); text-decoration: none; }
.b-side__m { min-width: 0; }
.b-side__m .b-c { padding-left: 0; padding-right: 0; max-width: none; }
.b-side__m .b-sec, .b-side__m .b-sec--alt, .b-side__m .b-sec--tint { background: none; padding: var(--sp-10) 0; border-bottom: 1px solid var(--line); }
@media (max-width: 900px) { .b-side { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); padding-top: 0; } .b-side__a { position: static; } .b-toc--side .b-toc__l { flex-direction: row; overflow-x: auto; border-left: 0; } .b-toc--side .b-toc__l a { white-space: nowrap; border-left: 0; border-bottom: 2px solid transparent; margin: 0; padding: var(--sp-2) 0; } .b-toc--side .b-toc__l li { margin-right: var(--sp-5); } .b-toc__card { display: none; } }
/* в узкой колонке страницы с боковым меню карточки групп — по две в ряд (4 карточки не помещаются в 4 колонки) */
@media (min-width: 1001px) { .b-side__m .b-dgroups:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5); } }
.b-side__a, .b-toc--side { min-width: 0; max-width: 100%; }

/* телефон: полоса «На странице» прокручивается вбок — правый край растворяется, это подсказка, что есть продолжение */
@media (max-width: 900px) {
  .b-toc__l, .b-toc--side .b-toc__l { -webkit-mask-image: linear-gradient(90deg, black calc(100% - var(--sp-10)), transparent); mask-image: linear-gradient(90deg, black calc(100% - var(--sp-10)), transparent); padding-right: var(--sp-10); }
}
/* липкая полоса: отделена от фона, текущий пункт — акцентом, «Записаться» — действие */
.b-toc:not(.b-toc--side) { box-shadow: var(--shadow-1); }
.b-toc:not(.b-toc--side) .b-toc__l a.is-on { border-color: var(--accent); }
.b-toc:not(.b-toc--side) .b-toc__l a[href="#order"] { color: var(--accent); }

/* ===== SectionTile ===== */
/* тип 1 — вход */
.b-tiles { display: grid; gap: var(--sp-5); }
.b-tiles--large { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: var(--sp-5); }
.b-tiles--small { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.b-tile { display: block; height: 100%; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; transition: border-color .2s var(--ease); }
.b-tile:hover { border-color: var(--ink); }
.b-tile img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; background: var(--photo-bg); }
.b-tile__b { display: block; padding: var(--sp-5); }
.b-tile__n { display: block; font-family: var(--font-head); font-weight: var(--fw-sub); font-size: var(--fs-h3); line-height: var(--lh-head); margin-bottom: var(--sp-2); }
.b-tile__m { display: block; color: var(--mut); }
.b-tiles--small .b-tile { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; }
.b-tiles--small .b-tile img { aspect-ratio: 1 / 1; height: 100%; }
.b-tiles--small .b-tile__b { padding: var(--sp-3) var(--sp-4); }
.b-tiles--small .b-tile__n { margin-bottom: var(--sp-1); hyphens: none; }
.b-tiles--text { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.b-tile--text { display: flex; flex-direction: column; padding: var(--sp-6); }
.b-tile--text .b-tile__n { margin-bottom: 0; }
.b-tile--text ul { list-style: none; margin: var(--sp-3) 0 var(--sp-5); padding: 0; color: var(--mut); }
.b-tile--text li { margin: 0 0 var(--sp-2); }
.b-tile__go { margin-top: auto; align-self: flex-start; font-weight: var(--fw-sub); border-bottom: 1.5px solid var(--ink); }
@media (max-width: 900px) {
  .b-tiles--large { grid-template-columns: minmax(0, 1fr); }
  .b-tiles--small { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
  .b-tiles--small .b-tile { grid-template-columns: 56px minmax(0, 1fr); }
  .b-tiles--text { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) { .b-tiles--small { grid-template-columns: minmax(0, 1fr); } }
.b-tiles--small .b-tile__n { font-family: var(--font-head); font-size: var(--fs-text); font-weight: var(--fw-sub); }
@media (min-width: 901px) { .b-tiles--small .b-tile { grid-template-columns: 72px minmax(0, 1fr); } .b-tiles--small .b-tile__m { display: none; } }

/* «Подробнее» и стрелка-кружок */
.b-arrow { flex: none; display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border-radius: 50%; border: 1.5px solid var(--ink); color: var(--ink); transition: background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease); }
.b-tile:hover .b-arrow { background: var(--ink); color: #fff; transform: translateX(2px); }
.b-tile__more { display: inline-flex; align-items: center; gap: var(--sp-3); font-weight: var(--fw-sub); white-space: nowrap; }
.b-tile__txt { display: block; min-width: 0; }
.b-tiles--large .b-tile__b { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--sp-4); }
.b-tiles--large .b-tile__n { margin-bottom: var(--sp-2); }
.b-tiles--small .b-tile { grid-template-columns: 72px minmax(0, 1fr) auto; padding-right: var(--sp-4); }
.b-tiles--small .b-arrow { width: 32px; height: 32px; }
.b-tiles--small .b-arrow svg { width: 16px; height: 16px; }
.b-tile--text .b-tile__more { margin-top: auto; align-self: stretch; justify-content: space-between; }
/* бенто: широкая + узкая плитка, текст плашкой поверх фото */
.b-tiles--bento.b-tiles--large { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.b-tiles--bento.b-tiles--large > li:nth-child(1) { grid-column: span 7; }
.b-tiles--bento.b-tiles--large > li:nth-child(2) { grid-column: span 5; }
.b-tiles--bento.b-tiles--large .b-tile { position: relative; min-height: 400px; border: 0; }
.b-tiles--bento.b-tiles--large .b-tile img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; transition: transform .6s var(--ease); }
.b-tiles--bento.b-tiles--large .b-tile:hover img { transform: scale(1.03); }
.b-tiles--bento.b-tiles--large .b-tile__b { position: absolute; left: var(--sp-4); right: var(--sp-4); bottom: var(--sp-4); background: var(--surface); border-radius: var(--r-card); padding: var(--sp-5) var(--sp-6); }
.b-tiles--bento.b-tiles--large .b-tile:hover { border-color: transparent; }
@media (max-width: 900px) {
  .b-tiles--bento.b-tiles--large { grid-template-columns: minmax(0, 1fr); }
  .b-tiles--bento.b-tiles--large > li:nth-child(n) { grid-column: auto; }
  .b-tiles--bento.b-tiles--large .b-tile { min-height: 300px; }
  .b-tiles--large .b-tile__b { flex-wrap: wrap; }
  .b-tile:not(.b-tile--text) .b-tile__more { font-size: 0; gap: 0; }
  .b-tiles--small .b-tile { grid-template-columns: 56px minmax(0, 1fr) auto; }
}
@media (min-width: 901px) { .b-tiles--small .b-tile { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 0 var(--sp-3); padding-right: var(--sp-3); } .b-tiles--small .b-tile__b { padding: var(--sp-3) 0 var(--sp-3) var(--sp-1); } .b-tiles--small .b-tile__n { font-size: 15px; } }
/* cards (бывший text-only): иконка, тень и подъём как у карточек услуг и врачей */
.b-tile--text { border-color: transparent; box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-tile--text:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-tile__i { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; flex: none; border-radius: 50%; background: var(--bg); color: var(--ink); margin-bottom: var(--sp-4); }
.b-tile--text .b-tile__n { font-size: var(--fs-h3); }
@media (min-width: 901px) { .b-tile--text .b-tile__n { min-height: calc(2 * var(--lh-head) * 1em); } }
/* длинное слово («Диспансеризация») не рвём посередине: в узкой колонке слегка уменьшаем заголовок плитки */
@media (min-width: 1001px) { .b-tiles--text .b-tile--text .b-tile__n { font-size:var(--fs-h4); } }
.b-tile--text ul { margin-top: var(--sp-4); }
.b-tile--text .b-tile__more { padding-top: var(--sp-4); }
/* cards (бывший text-only): число плиток подбирает колонки, чтобы в последней строке не оставалась одна плитка (4 — как в эталоне) */
@media (min-width: 1001px) {
  .b-tiles--text:has(> li:nth-child(5):last-child), .b-tiles--text:has(> li:nth-child(6):last-child), .b-tiles--text:has(> li:nth-child(9):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .b-tiles--text:has(> li:nth-child(7):last-child), .b-tiles--text:has(> li:nth-child(8):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* small: число плиток подбирает колонки, чтобы последняя строка не была неполной (4 — сетка 2×2, 6 — 3×2) */
@media (min-width: 901px) {
  .b-tiles--small:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-tiles--small:has(> li:nth-child(6):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* small без картинки: иконка в плашке вместо фото (пока картинка не готова); meta_small — описание видно и на десктопе; 5 плиток — раскладка 3 + 2 */
.b-tile__ph { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-left: var(--sp-3); align-self: center; background: var(--tint); color: var(--ink); }
@media (min-width: 901px) {
  .b-tiles--small.b-tiles--meta .b-tile { grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; padding: var(--sp-3) var(--sp-4) var(--sp-3) 0; }
  .b-tiles--small.b-tiles--meta .b-tile > img { height: 72px; margin-left: var(--sp-3); }
  .b-tiles--small.b-tiles--meta .b-tile .b-tile__ph { width: 56px; margin-left: var(--sp-3); }
  .b-tiles--small.b-tiles--meta .b-tile__m { display: block; line-height: 1.35; }
  .b-tiles--small.b-tiles--meta .b-tile__b { padding: 0 var(--sp-3); }
  .b-tiles--small:has(> li:nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .b-tiles--small:has(> li:nth-child(5):last-child) > li { grid-column: span 2; }
  .b-tiles--small:has(> li:nth-child(5):last-child) > li:nth-child(n+4) { grid-column: span 3; }
}

/* cards: 5 и 7 плиток — неполный последний ряд по центру, без дыры справа */
@media (min-width: 1001px) {
  .b-tiles--text:has(> li:nth-child(5):last-child) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .b-tiles--text:has(> li:nth-child(5):last-child) > li { grid-column: span 2; }
  .b-tiles--text:has(> li:nth-child(5):last-child) > li:nth-child(4) { grid-column: 2 / span 2; }
  .b-tiles--text:has(> li:nth-child(5):last-child) > li:nth-child(5) { grid-column: 4 / span 2; }
  .b-tiles--text:has(> li:nth-child(7):last-child) { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .b-tiles--text:has(> li:nth-child(7):last-child) > li { grid-column: span 2; }
  .b-tiles--text:has(> li:nth-child(7):last-child) > li:nth-child(5) { grid-column: 2 / span 2; }
}
/* малые плитки с описанием: заголовок читается ровно, без сжатой интерлиньяжки */
.b-tiles--small.b-tiles--meta .b-tile__n { line-height: 1.2; hyphens: none; overflow-wrap: normal; }

/* ===== ProgramStrip ===== */
.b-programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.b-programs li { padding: var(--sp-6) var(--sp-8) var(--sp-1) 0; }
.b-programs li + li { padding-left: var(--sp-8); border-left: 1px solid var(--line); }
.b-programs a { display: block; text-decoration: none; color: var(--ink); }
.b-programs__n { display: block; font-family: var(--font-head); font-weight: var(--fw-sub); font-size: var(--fs-h3); }
.b-programs__v { display: block; color: var(--mut); margin: var(--sp-1) 0 var(--sp-4); }
.b-programs__c { display: block; line-height: var(--lh-text); margin-bottom: var(--sp-5); min-height: 3em; }
.b-programs__p { font-family: var(--font-head); font-size: var(--fs-h3); }
.b-programs a:hover .b-programs__n { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) {
  .b-programs { grid-template-columns: minmax(0, 1fr); }
  .b-programs li, .b-programs li + li { padding: var(--sp-5) 0; border-left: 0; border-top: 1px solid var(--line); }
  .b-programs li:first-child { border-top: 0; }
  .b-programs__c { min-height: 0; }
}

/* карточки программ — компактные, продолжение блока плиток: фото слева, текст, цена и стрелка */
.b-pcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.b-pc { display: grid; grid-template-columns: 112px minmax(0, 1fr); height: 100%; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; transition: border-color .2s var(--ease); }
.b-pc:hover { border-color: var(--ink); }
.b-pc img { width: 100%; height: 100%; object-fit: cover; background: var(--photo-bg); }
.b-pc__b { display: flex; flex-direction: column; padding: var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-5); min-width: 0; }
.b-pc__n { font-family: var(--font-head); font-weight: var(--fw-sub); font-size: var(--fs-text); line-height: var(--lh-head); }
.b-pc__v { color: var(--mut); margin: var(--sp-1) 0 var(--sp-3); }
.b-pc__c { display: none; }
.b-pc__f { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); }
.b-pc__p { font-family: var(--font-head); font-size: var(--fs-text); }
.b-pc .b-tile__more { font-size: 0; gap: 0; }
.b-pc .b-arrow { width: 32px; height: 32px; }
.b-pc .b-arrow svg { width: 16px; height: 16px; }
.b-pc:hover .b-arrow { background: var(--ink); color: #fff; transform: translateX(2px); }
@media (max-width: 900px) { .b-pcards { grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); } .b-pc { grid-template-columns: 96px minmax(0, 1fr); } }
.b-pc { box-shadow: var(--shadow-1); border-color: transparent; transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-pc:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }

/* ===== DoctorCard ===== */
/* тип 2 — человек */
.b-doc__s { display: block; color: var(--mut); margin-bottom: var(--sp-2); }
.b-docs--compact { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-8); }
.b-docs--compact .b-doc { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--sp-4); align-items: center; text-decoration: none; color: var(--ink); padding: var(--sp-3) 0; border-top: 1px solid var(--line); }
.b-docs--compact img { width: 72px; height: 90px; object-fit: cover; border-radius: 10px; background: var(--photo-bg); }
.b-docs--compact .b-doc__n { display: block; font-weight: var(--fw-sub); line-height: 1.3; }
.b-docs--compact .b-doc__s { margin: var(--sp-1) 0 0; }
.b-docs--compact .b-doc:hover .b-doc__n { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) {
  .b-docs--compact { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }
}
.b-blk-docs .cmh26 { background: transparent; }
.b-blk-docs .cmh26 .doc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-6); }
@media (max-width: 900px) { .b-blk-docs .cmh26 .doc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); } }
@media (max-width: 560px) { .b-blk-docs .cmh26 .doc-grid { grid-template-columns: minmax(0, 1fr); } }
/* карточки на подложке: белые, с мягкой тенью */
.b-blk-docs .cmh26 .doc-card { background: var(--surface); border-color: transparent; box-shadow: var(--shadow-1); border-radius:var(--r-card); }
.b-blk-docs .cmh26 .doc-card:hover { box-shadow: var(--shadow-2); border-color: transparent; }
.b-blk-docs .cmh26 .doc-card__media { border-radius: 12px; }
.b-docs--compact { gap: var(--sp-4); }
.b-docs--compact .b-doc { padding: var(--sp-3) var(--sp-4) var(--sp-3) var(--sp-3); background: var(--surface); border: 0; border-radius:var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-docs--compact .b-doc:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-docs--compact .b-doc:hover .b-doc__n { text-decoration: none; }
/* «Подробнее» в мелкой карточке: третья строка */
.b-docs--compact .b-doc__b { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-1); }
.b-doc__go { display: inline-flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-2); padding: 4px 6px 4px 14px; border: 1px solid var(--line); border-radius:var(--r-pill); font-weight: var(--fw-sub); font-size: 14px; white-space: nowrap; transition: border-color .2s var(--ease); }
.b-doc__go .b-arrow { width: 24px; height: 24px; }
.b-doc__go .b-arrow svg { width: 14px; height: 14px; }
.b-docs--compact .b-doc:hover .b-doc__go { border-color: var(--ink); }
.b-docs--compact .b-doc:hover .b-arrow { background: var(--ink); color: #fff; transform: translateX(2px); }
/* live: два врача — пополам, карточка горизонтальная (фото слева); три и больше — сетка как на сайте */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n2, .b-blk-docs .cmh26 .doc-grid--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { display: grid; grid-template-columns: 42% minmax(0, 1fr); column-gap: var(--sp-6); grid-template-rows: repeat(4, auto); align-content: center; align-items: start; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { margin-top: 0; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { margin-top: var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media { grid-column: 1; grid-row: 1 / span 4; align-self: stretch; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media a, .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media a, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { aspect-ratio: auto; object-fit: cover; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card > :not(.doc-card__media), .b-blk-docs .cmh26 .doc-grid--n4 .doc-card > :not(.doc-card__media) { grid-column: 2; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { flex-wrap: wrap; }
}
/* live: один врач — одна компактная горизонтальная карточка: фото | имя, специальность, кнопки | факты */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 { grid-template-columns: minmax(0, 1fr); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { display: grid; grid-template-columns: 220px minmax(0, 1fr) 260px; grid-template-rows: min-content min-content 1fr; column-gap: var(--sp-8); align-items: start; padding: var(--sp-6); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media { grid-column: 1; grid-row: 1 / span 3; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { grid-column: 2; grid-row: 1; margin: var(--sp-2) 0 var(--sp-2); font-size:var(--fs-h2); font-family: var(--font-head); line-height: var(--lh-head); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec { grid-column: 2; grid-row: 2; margin: 0; font-size:var(--fs-h3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { grid-column: 2; grid-row: 3; align-self: end; max-width: 380px; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { grid-column: 3; grid-row: 1 / span 3; align-self: center; flex-direction: column; align-items: flex-start; gap: var(--sp-3); padding-left: var(--sp-8); border-left: 1px solid var(--line); font-size:var(--fs-h3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta-sep { display: none; }
}
/* внутри горизонтальных карточек (1 и 2 врача): без зарезервированной высоты, текст ровным столбцом по центру фото */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name,
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { min-height: 0; display: block; overflow: visible; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { font-size:var(--fs-h3); margin: 0 0 var(--sp-2); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { font-size:var(--fs-text); margin: 0 0 var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { font-size:var(--fs-text); margin: 0 0 var(--sp-6); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { grid-template-rows: repeat(4, min-content); align-content: center; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { margin-top: 0; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { grid-template-rows: 1fr min-content min-content min-content 1fr; align-items: center; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media { grid-row: 1 / -1; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { grid-row: 2; margin: 0 0 var(--sp-3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec { grid-row: 3; margin: 0 0 var(--sp-6); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { grid-row: 4; align-self: start; margin-top: 0; width: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { grid-row: 1 / -1; margin: 0; }
}
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { grid-template-rows: 1fr repeat(4, min-content) 1fr; align-items: start; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media { grid-row: 1 / -1; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { grid-row: 2; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { grid-row: 3; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { grid-row: 4; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { grid-row: 5; }
}
/* телефон рядом с кнопками (параметр phone) */
.b-blk-docs .cmh26 .doc-card__tel { align-self: center; margin-left: var(--sp-3); color: var(--ink); font-weight: var(--fw-sub); text-decoration: none; white-space: nowrap; }
.b-blk-docs .cmh26 .doc-card__tel:hover { text-decoration: underline; text-underline-offset: 4px; }
.b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { max-width: none; flex-wrap: wrap; }
.b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions .btn { flex: 0 0 auto; padding: 12px 24px; font-size:var(--fs-text); }
/* телефон и мобильная версия: ровный текст без зарезервированной высоты */
@media (max-width: 900px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec,
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { min-height: 0; display: block; overflow: visible; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { font-size:var(--fs-h2); font-family: var(--font-head); margin: var(--sp-2) 0 var(--sp-3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec { font-size:var(--fs-text); margin: 0 0 var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { font-size:var(--fs-text); margin-bottom: var(--sp-5); }
  .b-blk-docs .cmh26 .doc-card__tel { flex: 1 0 100%; margin: var(--sp-2) 0 0; text-align: center; }
}
/* гармония по фото: имя вровень с верхом фото, кнопки вровень с низом, остальное по середине; отступы карточки равны со всех сторон */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { padding: var(--sp-6); grid-template-rows: min-content 1fr min-content min-content; align-content: stretch; align-items: start; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media { grid-row: 1 / -1; align-self: stretch; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { aspect-ratio: 4 / 5; height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { grid-row: 1; margin: 0 0 var(--sp-2); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { grid-row: 2; margin: 0; align-self: start; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { grid-row: 3; margin: 0 0 var(--sp-5); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { grid-row: 4; align-self: end; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { padding: var(--sp-6); grid-template-rows: min-content 1fr min-content; align-items: start; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media { grid-row: 1 / -1; align-self: stretch; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { grid-row: 1; margin: 0 0 var(--sp-3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec { grid-row: 2; margin: 0; align-self: start; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { grid-row: 3; align-self: end; margin: 0; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { grid-row: 1 / -1; align-self: center; }
}
/* один врач: две колонки — фото | имя и специальность сверху, стаж и цена по центру, кнопки внизу (вровень с краями фото) */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { grid-template-columns: 220px minmax(0, 1fr); grid-template-rows: min-content min-content 1fr min-content; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { grid-row: 1; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__spec { grid-row: 2; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { grid-column: 2; grid-row: 3; align-self: center; flex-direction: row; gap: var(--sp-8); padding: 0; border: 0; font-size:var(--fs-h3); }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta-sep { display: none; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { grid-row: 4; }
}
/* «Чем занимается» из карточки врача (параметр details): заполняет середину горизонтальной карточки */
.b-blk-docs .cmh26 .doc-card__focus { list-style: none; margin: 0 0 var(--sp-4); padding: 0; display: grid; gap: var(--sp-2); color: var(--ink); font-size:var(--fs-text); line-height: var(--lh-text); }
.b-blk-docs .cmh26 .doc-card__focus li { position: relative; padding-left: var(--sp-6); }
.b-blk-docs .cmh26 .doc-card__focus li::before { content: ""; position: absolute; left: 0; top: .35em; width: 12px; height: 7px; border-left: 2px solid var(--price); border-bottom: 2px solid var(--price); transform: rotate(-45deg); }
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { grid-template-rows: min-content min-content 1fr min-content min-content; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__focus { grid-column: 2; grid-row: 3; align-self: center; margin: var(--sp-4) 0; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { grid-row: 4; align-self: start; margin: 0 0 var(--sp-5); font-size:var(--fs-text); gap: var(--sp-3); flex-wrap: wrap; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta-sep { display: inline; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__actions { grid-row: 5; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__focus, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__focus { display: none; }
}
@media (max-width: 900px) { .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta { gap: var(--sp-1) var(--sp-4); } .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__meta-sep { display: none; } }
/* образование из карточки врача — правая колонка горизонтальной карточки (только десктоп) */
.b-blk-docs .cmh26 .doc-card__edu { display: none; }
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card { grid-template-columns: 220px minmax(0, 1fr) 320px; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__edu { display: block; grid-column: 3; grid-row: 1 / -1; align-self: stretch; padding-left: var(--sp-8); border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; }
  .b-blk-docs .cmh26 .doc-card__edu-h { margin: 0 0 var(--sp-4); color: var(--mut); font-size:var(--fs-text); }
  .b-blk-docs .cmh26 .doc-card__edu ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--sp-4); }
  .b-blk-docs .cmh26 .doc-card__edu li { display: grid; gap: 2px; }
  .b-blk-docs .cmh26 .doc-card__edu b { font-weight: var(--fw-sub); line-height: 1.35; }
  .b-blk-docs .cmh26 .doc-card__edu span { color: var(--mut); font-size: 14px; }
}
/* телефон: не перегружаем — только имя, специальность, стаж и цена, кнопки */
@media (max-width: 900px) { .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__focus, .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__incl { display: none; } }
/* один врач: фото строго в своей колонке и по высоте карточки */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media { min-width: 0; overflow: hidden; border-radius:var(--r-card); height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media a { display: block; height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__photo { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 15%; }
  .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__name { font-size:var(--fs-h2); }
}
@media (min-width: 901px) { .b-blk-docs .cmh26 .doc-grid--n1 .doc-card__media { aspect-ratio: auto; width: 100%; margin-bottom: 0; } }
/* два врача: фото по высоте карточки, низ кнопок вровень с низом фото */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media { aspect-ratio: auto; width: 100%; height: 100%; margin-bottom: 0; min-width: 0; overflow: hidden; border-radius:var(--r-card); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media a, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media a { display: block; height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 15%; }
}
/* имя и отчество — первая строка, фамилия — вторая, одинаково у всех карточек */
.b-blk-docs .cmh26 .doc-card__nm, .b-blk-docs .cmh26 .doc-card__sur { display: block; }


/* profile — шапка страницы врача как карточка в списке: фото, имя, специальность, стаж, цена и запись */
.b-docs--profile { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
.b-dp { display: grid; grid-template-columns: 150px minmax(0, 1fr) 240px; gap: var(--sp-6); align-items: start; padding: var(--sp-5); background: var(--surface); border-radius:var(--r-card); box-shadow: var(--shadow-1); }
.b-dp__ph { display: block; }
.b-dp__ph img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 12%; border-radius:var(--r-card); background: var(--photo-bg); }
.b-dp__n { margin: 0 0 var(--sp-2); font-family: var(--font-head); font-weight: var(--fw-sub); font-size:var(--fs-h3); line-height: var(--lh-head); }
.b-dp__n a { color: var(--ink); text-decoration: none; }
.b-dp__n a:hover { text-decoration: underline; text-underline-offset: 4px; }
.b-dp__n span { display: block; }
.b-dp__s { margin: 0 0 var(--sp-4); color: var(--mut); }
.b-dp__f { display: flex; gap: var(--sp-5) var(--sp-8); flex-wrap: wrap; margin: 0; color: var(--mut); }
.b-dp__f b { display: block; margin-bottom: var(--sp-1); font-family: var(--font-head); font-size:var(--fs-text); color: var(--ink); }
.b-dp__a { display: flex; flex-direction: column; align-items: stretch; gap: var(--sp-3); }
.b-dp__pl { margin: 0; color: var(--mut); }
.b-dp__pv { margin: 0 0 var(--sp-2); font-family: var(--font-head); font-size:var(--fs-h3); }
.b-dp__more { justify-content: space-between; color: var(--ink); text-decoration: none; }
@media (max-width: 900px) {
  .b-dp { grid-template-columns: 96px minmax(0, 1fr); gap: var(--sp-4); padding: var(--sp-4); }
  .b-dp__a { grid-column: 1 / -1; }
}

/* compact: карточки одной строки сетки — одной высоты (без «лесенки») */
.b-docs--compact > li { display: flex; }
.b-docs--compact > li > .b-doc { flex: 1; }

/* live 02.11: слоги и цена. Специальность и имя переносятся по словам, не по слогам; «Стаж … · от … ₽» не рвётся посередине (каждая часть целиком) */
.b-blk-docs .cmh26 .doc-card__name, .b-blk-docs .cmh26 .doc-card__spec { hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; text-wrap: balance; }
.b-blk-docs .cmh26 .doc-card__meta > span { white-space: nowrap; }
/* два врача на планшете (901–1200): фото уже, чтобы тексту хватало ширины; стаж и цена — строкой с отступом, без висящей точки */
@media (min-width: 901px) and (max-width: 1200px) {
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { grid-template-columns: 34% minmax(0, 1fr); column-gap: var(--sp-5); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta-sep, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta-sep { display: none; }
}
/* live: два врача — имя/специальность сверху, стаж·цена и кнопки прижаты к низу карточки на одном уровне у обеих (карточки одной высоты) */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { grid-template-rows: min-content min-content 1fr min-content min-content; align-content: stretch; align-items: start; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { grid-row: 1; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { grid-row: 2; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { grid-row: 4; margin: 0 0 var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { grid-row: 5; align-self: end; margin: 0; }
}
/* два врача на планшете (561–900): одна колонка, две горизонтальные карточки на всю ширину (фото слева), а не две узкие с огромным фото */
@media (min-width: 561px) and (max-width: 900px) {
  .b-blk-docs .cmh26 .doc-grid--n2, .b-blk-docs .cmh26 .doc-grid--n4 { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card { display: grid; grid-template-columns: 30% minmax(0, 1fr); column-gap: var(--sp-5); grid-template-rows: min-content min-content 1fr min-content min-content; align-items: start; padding: var(--sp-5); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media { grid-column: 1; grid-row: 1 / -1; align-self: stretch; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__media a, .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__media a, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { height: 100%; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__photo, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__photo { aspect-ratio: auto; object-fit: cover; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card > :not(.doc-card__media), .b-blk-docs .cmh26 .doc-grid--n4 .doc-card > :not(.doc-card__media) { grid-column: 2; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__name, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__name { grid-row: 1; margin: 0 0 var(--sp-2); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { grid-row: 2; margin: 0; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta { grid-row: 4; display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-4); margin: 0 0 var(--sp-4); }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__meta-sep, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__meta-sep { display: none; }
  .b-blk-docs .cmh26 .doc-grid--n2 .doc-card__actions, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__actions { grid-row: 5; margin: 0; flex-wrap: wrap; }
}
/* два врача: между специальностью и «стаж · цена» всегда есть зазор, даже когда карточка низкая */
.b-blk-docs .cmh26 .doc-grid--n2 .doc-card__spec, .b-blk-docs .cmh26 .doc-grid--n4 .doc-card__spec { margin-bottom: var(--sp-3); }

/* compact, ровно 2 врача: две карточки на всю ширину, фото крупнее, цена одной строкой, кнопка у низа на одном уровне */
.b-docs--n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5); }
.b-docs--n2 .b-doc { grid-template-columns: 140px minmax(0, 1fr); gap: var(--sp-5); align-items: stretch; padding: var(--sp-4); }
.b-docs--n2 img { width: 140px; height: 175px; object-position: 50% 12%; border-radius:var(--r-card); }
.b-docs--n2 .b-doc__b { align-self: stretch; }
.b-docs--n2 .b-doc__n, .b-docs--n2 .b-doc__s { hyphens: none; -webkit-hyphens: none; overflow-wrap: normal; word-break: normal; text-wrap: balance; }
.b-docs--n2 .b-doc__s { margin: 0; }
.b-docs--n2 .b-doc__pr { margin-top: var(--sp-2); white-space: nowrap; color: var(--mut); }
.b-docs--n2 .b-doc__pr b { color: var(--ink); font-family: var(--font-head); }
.b-docs--n2 .b-doc__go { margin-top: auto; align-self: flex-start; }
@media (max-width: 900px) {
  .b-docs--n2 { grid-template-columns: minmax(0, 1fr); }
  .b-docs--n2 .b-doc { grid-template-columns: 96px minmax(0, 1fr); gap: var(--sp-4); }
  .b-docs--n2 img { width: 96px; height: 120px; }
}

/* compact, ровно 1 врач: одна карточка в одну колонку (не треть ширины), не шире 560 */
.b-docs--n1 { grid-template-columns: minmax(0, 560px); }

/* заглушка вместо фото: круг/плитка с инициалами (врач без фото в данных) */
.b-doc__ph { display: grid; place-items: center; width: 72px; height: 90px; border-radius:var(--r-card); background: var(--tint); color: var(--accent); font-family: var(--font-head); font-weight: var(--fw-head); font-size:var(--fs-h3); }
.b-docs--n2 .b-doc__ph { width: 140px; height: 175px; border-radius:var(--r-card); }
@media (max-width: 900px) { .b-docs--n2 .b-doc__ph { width: 96px; height: 120px; } }

/* телефон: карточка врача не вертикальная на 640 px — фото 128×160 слева, имя/специальность/стаж рядом, кнопки на всю ширину; стаж не мельче основного текста */
@media (max-width: 560px) {
  .b-blk-docs .cmh26 .doc-card { display: grid; grid-template-columns: 128px minmax(0, 1fr); column-gap: var(--sp-4); row-gap: var(--sp-2); align-items: start; padding: var(--sp-4); }
  .b-blk-docs .cmh26 .doc-card__media { grid-column: 1; grid-row: 1 / span 3; width: 128px; max-width: 128px; aspect-ratio: 4 / 5; margin: 0; overflow: hidden; border-radius:var(--r-card); }
  .b-blk-docs .cmh26 .doc-card__media a { display: block; height: 100%; }
  .b-blk-docs .cmh26 .doc-card__photo { width: 100%; height: 100%; max-height: 160px; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 15%; }
  .b-blk-docs .cmh26 .doc-card > :not(.doc-card__media) { grid-column: 2; }
  .b-blk-docs .cmh26 .doc-card__name { grid-row: 1; margin: 0; min-height: 0; font-size:var(--fs-h3); }
  .b-blk-docs .cmh26 .doc-card__spec { grid-row: 2; margin: 0; min-height: 0; font-size:var(--fs-text); }
  .b-blk-docs .cmh26 .doc-card__meta { grid-row: 3; margin: 0; display: flex; flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); font-size:var(--fs-text); }
  .b-blk-docs .cmh26 .doc-card__meta-sep { display: none; }
  .b-blk-docs .cmh26 .doc-card > .doc-card__actions { grid-column: 1 / -1; grid-row: 4; margin-top: var(--sp-3); flex-wrap: wrap; }
  .b-blk-docs .cmh26 .doc-card > .doc-card__name, .b-blk-docs .cmh26 .doc-card > .doc-card__spec { display: block; overflow: visible; -webkit-line-clamp: unset; text-overflow: clip; }
  .b-blk-docs .cmh26 .doc-card__nm, .b-blk-docs .cmh26 .doc-card__sur { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
  .b-blk-docs .cmh26 .doc-card > .doc-card__name { min-width: 0; }
  .b-blk-docs .cmh26 .doc-card > .doc-card__focus, .b-blk-docs .cmh26 .doc-card > .doc-card__edu { display: none; }
}

/* единая схема фонов: синяя полоса — только у отзывов; блок врачей на странице заболевания и подраздела — на основном фоне, как у услуг */
.b-sec--tint.b-blk-docs { background: var(--bg); }

/* неполный последний ряд растягивается на всю ширину (1 — во весь ряд, 2 — пополам), без дыры и «лесенки». 4 врача — сетка 2×2 (карточка как у двух врачей), 1 и 2 — свои раскладки выше. Только CSS, по числу карточек. */
@media (min-width: 901px) {
  .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--n4, .doc-grid--aside) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--n4, .doc-grid--aside) > .doc-card { grid-column: span 2; }
  .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--n4, .doc-grid--aside) > .doc-card:nth-child(3n+1):last-child { grid-column: 1 / -1; }
  .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--n4, .doc-grid--aside) > .doc-card:nth-child(3n+1):nth-last-child(2), .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--n4, .doc-grid--aside) > .doc-card:nth-child(3n+2):last-child { grid-column: span 3; }
  .b-docs--compact:not(.b-docs--n1, .b-docs--n2, .b-docs--n4, .b-docs--aside) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .b-docs--compact:not(.b-docs--n1, .b-docs--n2, .b-docs--n4, .b-docs--aside) > li { grid-column: span 2; }
  .b-docs--compact:not(.b-docs--n1, .b-docs--n2, .b-docs--n4, .b-docs--aside) > li:nth-child(3n+1):last-child { grid-column: 1 / -1; }
  .b-docs--compact:not(.b-docs--n1, .b-docs--n2, .b-docs--n4, .b-docs--aside) > li:nth-child(3n+1):nth-last-child(2), .b-docs--compact:not(.b-docs--n1, .b-docs--n2, .b-docs--n4, .b-docs--aside) > li:nth-child(3n+2):last-child { grid-column: span 3; }
}
@media (min-width: 561px) and (max-width: 900px) {
  .b-blk-docs .cmh26 .doc-grid:not(.doc-grid--n1, .doc-grid--n2, .doc-grid--aside) > .doc-card:nth-child(2n+1):last-child { grid-column: 1 / -1; }
}

.b-docs--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5); }
.b-docs--compact.b-docs--n4 > li { grid-column: auto; }

/* ===== RelatedDoctors ===== */


/* ===== ServiceList ===== */
/* тип 3 — строка */
.b-grp { font-family: var(--font-head); font-size: var(--fs-text); font-weight: var(--fw-sub); letter-spacing: .08em; text-transform: uppercase; color: var(--mut); margin: var(--sp-10) 0 var(--sp-3); }
.b-grp:first-child { margin-top: 0; }
.b-rows { margin: 0 0 var(--sp-5); }
.b-rows li { border-top: 1px solid var(--line); }
.b-rows li:last-child { border-bottom: 1px solid var(--line); }
.b-row { display: flex; align-items: baseline; gap: var(--sp-4); padding: var(--sp-4) var(--sp-1); text-decoration: none; color: var(--ink); }
.b-row:hover .b-row__t { text-decoration: underline; text-underline-offset: 4px; }
.b-row__t { font-weight: 500; }
.b-row__n { color: var(--mut); }
.b-row__p { margin-left: auto; }
.b-more { margin: var(--sp-4) 0 var(--sp-5); }
.b-more .b-link { white-space: normal; }
@media (max-width: 900px) { .b-row { flex-wrap: wrap; gap: var(--sp-1) var(--sp-3); } .b-row__n { order: 3; width: 100%; } }
/* бенто: сетка карточек, «Рекомендуем» занимает 2 колонки */
.b-bento { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; gap: var(--sp-4); }
.b-bn { display: grid; grid-template-columns: 44px minmax(0, 1fr); grid-template-rows: 1fr auto; gap: var(--sp-3) var(--sp-4); height: 100%; min-height: 148px; padding: var(--sp-5); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); text-decoration: none; color: var(--ink); transition: border-color .2s var(--ease); }
.b-services:not(.b-sec--alt) .b-bn { background: var(--surface); }
.b-bn:hover { border-color: var(--ink); }
.b-bn__i { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--bg); }
.b-bn__m { display: flex; flex-direction: column; gap: var(--sp-1); }
.b-bn__k { color: var(--mut); }
.b-bn__t { font-weight: var(--fw-sub); line-height: 1.35; }
.b-bn__p { grid-column: 1 / -1; align-self: end; }
.b-bento__promo { grid-column: span 2; }
.b-bento__promo .b-promo { height: 100%; margin: 0; }
@media (max-width: 900px) { .b-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); } .b-bn { min-height: 0; padding: var(--sp-4); grid-template-columns: minmax(0, 1fr); } .b-bn__i { display: none; } }
@media (max-width: 560px) { .b-bento { grid-template-columns: minmax(0, 1fr); } .b-bento__promo { grid-column: auto; } .b-bn { grid-template-columns: 44px minmax(0, 1fr); } .b-bn__i { display: flex; } }
/* лоск: тень, подъём */
.b-bn { border-color: transparent; box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-bn:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-bn__i { background: var(--tint); }
.b-bento__promo .b-promo { border-color: transparent; box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-bento__promo .b-promo:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }
/* плитка «Все услуги и цены» — цветная, на 2 колонки */
.b-bento__all { grid-column: 1 / -1; }
.b-bn--all { grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto; align-items: center; background: var(--price); color: #fff; box-shadow: var(--shadow-2); }
.b-bn--all .b-bn__k { color: rgba(255,255,255,.78); }
.b-bn--all .b-bn__t { font-family: var(--font-head); font-size: var(--fs-h3); line-height: 1.2; }
.b-bn--all .b-arrow { background: #fff; color: var(--price); }
.b-bn--all:hover { background: #0f6a5f; }
@media (max-width: 900px) { .b-bento__all { grid-column: 1 / -1; } }
/* без цены: подпись «определяется на консультации» вместо суммы */
.b-bn__np { color: var(--mut); font-size: var(--fs-text); }

/* гармошка: полный список по группам, на месте (details, без JS) */
.b-acc { display: grid; gap: var(--sp-3); }
.b-acc__g { background: var(--surface); border-radius: var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease); }
.b-acc__g[open] { box-shadow: var(--shadow-2); }
.b-acc__g summary { list-style: none; cursor: pointer; position: relative; display: flex; align-items: baseline; gap: var(--sp-3); padding: var(--sp-5) calc(var(--sp-12) + var(--sp-3)) var(--sp-5) var(--sp-5); font-weight: var(--fw-sub); }
.b-acc__g summary::-webkit-details-marker { display: none; }
.b-acc__g summary::after { content: "+"; position: absolute; right: var(--sp-5); top: 50%; transform: translateY(-50%); width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--tint); color: var(--ink); font-size: 20px; }
.b-acc__g[open] > summary::after { content: "–"; }
.b-acc__n { color: var(--mut); font-weight: 400; }
.b-acc .b-rows { margin: 0; padding: 0 var(--sp-5) var(--sp-3); }
.b-acc .b-rows li:last-child { border-bottom: 0; }
.b-acc .b-row { cursor: default; }
.b-acc .b-row:hover .b-row__t { text-decoration: none; }
.b-acc .b-row__p { white-space: nowrap; }

.b-row__t--a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.b-row__t--a:hover{text-decoration-color:currentColor}

/* неполный последний ряд растягивается на всю ширину: 1 карточка — во весь ряд, 2 — пополам (без дыры справа и без «лесенки»). Только CSS, по числу элементов. Не для бенто с промо-плиткой. */
@media (min-width: 901px) {
  .b-bento:not(:has(> .b-bento__promo)) { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .b-bento:not(:has(> .b-bento__promo)) > li:not(.b-bento__all) { grid-column: span 2; }
  .b-bento:not(:has(> .b-bento__promo, > .b-bento__all)) > li:nth-child(3n+1):last-child { grid-column: 1 / -1; }
  .b-bento:not(:has(> .b-bento__promo, > .b-bento__all)) > li:nth-child(3n+1):nth-last-child(2), .b-bento:not(:has(> .b-bento__promo, > .b-bento__all)) > li:nth-child(3n+2):last-child { grid-column: span 3; }
  .b-bento:has(> .b-bento__all):not(:has(> .b-bento__promo)) > li:nth-child(3n+1):nth-last-child(2) { grid-column: 1 / -1; }
  .b-bento:has(> .b-bento__all):not(:has(> .b-bento__promo)) > li:nth-child(3n+1):nth-last-child(3), .b-bento:has(> .b-bento__all):not(:has(> .b-bento__promo)) > li:nth-child(3n+2):nth-last-child(2) { grid-column: span 3; }
}
@media (min-width: 561px) and (max-width: 900px) {
  .b-bento:not(:has(> .b-bento__promo)) > li:nth-child(2n+1):last-child { grid-column: 1 / -1; }
  .b-bento:has(> .b-bento__all):not(:has(> .b-bento__promo)) > li:nth-child(2n+1):nth-last-child(2) { grid-column: 1 / -1; }
}
/* directions: «Все услуги» по направлениям — раздел-аккордеон, внутри подгруппы (УЗИ, лаборатория) или сразу список. Открыт не более одного (data-excl, blocks.js). */
.b-acc__g[id], .b-sec[id] { scroll-margin-top: 72px; }
.b-acc__g--dir > summary { font-family: var(--font-head); font-size:var(--fs-h3); padding-top: var(--sp-6); padding-bottom: var(--sp-6); }
.b-acc__body { padding: 0 var(--sp-5) var(--sp-5); }
.b-acc__body > .b-rows { padding: 0; }
.b-acc--sub { gap: var(--sp-2); }
.b-acc--sub > .b-acc__g { background: var(--bg); box-shadow: none; border: 1px solid var(--line); }
.b-acc--sub > .b-acc__g[open] { box-shadow: none; border-color: var(--ink); }
.b-acc--sub > .b-acc__g summary { padding-top: var(--sp-4); padding-bottom: var(--sp-4); }
.b-acc__body > .b-more { margin: var(--sp-4) 0 0; }
@media (max-width: 900px) { .b-acc__body { padding: 0 var(--sp-3) var(--sp-4); } }
.b-acc__g--dir .b-acc__n { font-family: var(--font-body); font-size:var(--fs-text); }
/* направления: название — обычным шрифтом, не вровень с H2 страницы */
.b-acc__g--dir > summary { font-family: var(--font-body); font-weight: var(--fw-sub); font-size:var(--fs-h4); }

/* ===== PromoSlot ===== */
.b-promo { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--sp-6); align-items: center; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; margin: var(--sp-5) 0; transition: border-color .2s var(--ease); }
.b-promo:hover { border-color: var(--ink); }
.b-promo:not(:has(.b-promo__img)) { grid-template-columns: minmax(0, 1fr); }
.b-promo:not(:has(.b-promo__img)) .b-promo__b { padding-left: var(--sp-6); }
.b-promo__img { position: relative; display: block; align-self: stretch; }
.b-promo__img img { width: 100%; height: 100%; min-height: 120px; object-fit: cover; background: var(--photo-bg); }
.b-promo__badge { position: absolute; left: var(--sp-3); top: var(--sp-3); padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill); background: var(--ink); color: #fff; font-weight: var(--fw-sub); }
.b-promo__b { display: block; padding: var(--sp-5) var(--sp-6) var(--sp-5) 0; }
.b-promo__k { display: block; color: var(--mut); margin-bottom: var(--sp-2); }
.b-promo__t { display: block; font-family: var(--font-head); font-weight: var(--fw-sub); font-size: var(--fs-h3); line-height: 1.25; margin-bottom: var(--sp-2); }
.b-promo__s { display: block; color: var(--mut); margin-bottom: var(--sp-2); }
.b-promo__p { display: block; }
.b-promo__p s { color: var(--mut); margin-left: var(--sp-2); }
@media (max-width: 900px) { .b-promo { grid-template-columns: minmax(0, 1fr); gap: 0; } .b-promo__b { padding: var(--sp-4) var(--sp-5) var(--sp-5); } .b-promo__img img { aspect-ratio: 16 / 9; } }

/* ===== ChipList ===== */
/* заболевания и направления — текстом, без карточек */
.b-cols { columns: 3; column-gap: var(--sp-8); }
.b-cols li { margin: 0 0 var(--sp-3); break-inside: avoid; }
.b-cols a { text-decoration: none; border-bottom: 1px solid var(--line); }
.b-cols a:hover { border-color: var(--ink); }
.b-chips { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.b-chips a { display: inline-block; padding: var(--sp-2) var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--surface); text-decoration: none; }
.b-chips a:hover { border-color: var(--ink); }
.b-bullets { columns: 2; column-gap: var(--sp-8); }
.b-bullets li { position: relative; padding-left: var(--sp-4); margin: 0 0 var(--sp-2); break-inside: avoid; }
.b-bullets li::before { content: ""; position: absolute; left: 0; top: .65em; width: 6px; height: 6px; border-radius: var(--r-pill); background: var(--ink); }
@media (max-width: 900px) { .b-cols, .b-bullets { columns: 1; } }
/* groups — заболевания карточками по сценариям, с иконками */
.b-dgroups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5); align-items: stretch; }
.b-dg { background: var(--surface); border-radius:var(--r-card); padding: var(--sp-6); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-dg:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-dg__h { display: flex; align-items: center; gap: var(--sp-4); margin: 0 0 var(--sp-4); }
.b-dg__i { width: 44px; height: 44px; flex: none; display: flex; align-items: center; justify-content: center; border-radius: var(--r-pill); background: var(--bg); color: var(--ink); }
.b-dg__t { font-size:var(--fs-h3); font-weight: var(--fw-sub); line-height: var(--lh-head); }
.b-dg__l li { border-top: 1px solid var(--line); }
.b-dg__l a { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-3) 0; text-decoration: none; color: var(--ink); }
.b-dg__l a svg { flex: none; color: var(--mut); transition: transform .2s var(--ease), color .2s var(--ease); }
.b-dg__l a:hover span { text-decoration: underline; text-underline-offset: 4px; }
.b-dg__l a:hover svg { color: var(--ink); transform: translateX(2px); }
/* раскладка по числу карточек — автоматически (без классов на странице): 1 — на всю ширину, 2 — пополам, 3 и 6+ — по три, 4 — четыре в ряд, 5 — те же три равные колонки (3 + 2) */
@media (min-width: 1001px) {
  .b-dgroups:has(> li:first-child:last-child) { grid-template-columns: minmax(0, 1fr); }
  .b-dgroups:has(> li:first-child:last-child) .b-dg__l { columns: 3; column-gap: var(--sp-8); }
  .b-dgroups:has(> li:first-child:last-child) .b-dg__l li { break-inside: avoid; }
  .b-dgroups:has(> li:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .b-dgroups:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-4); }
}

@media (max-width: 1000px) { .b-dgroups { grid-template-columns: minmax(0, 1fr); } }
/* groups: «Выбрать врача» внизу карточки — гинеколога выбирают на постоянку */
.b-dg { display: flex; flex-direction: column; }
.b-dg__doc { margin-top: auto; padding-top: var(--sp-5); display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); font-weight: var(--fw-sub); text-decoration: none; color: var(--ink); }
.b-dg__doc .b-arrow { width: 32px; height: 32px; }
.b-dg__doc:hover .b-arrow { background: var(--ink); color: #fff; transform: translateX(2px); }
.b-dg__l { margin-bottom: var(--sp-2); }
/* groups на белой секции: карточки на тёплом фоне без тени */
.b-sec--alt .b-dg { background: var(--bg); box-shadow: none; }
.b-sec--alt .b-dg:hover { box-shadow: var(--shadow-1); }
.b-sec--alt .b-dg__i { background: var(--surface); }

/* карточка группы с картинкой: в карточке мало пунктов — свободное место занимает фото */
.b-dg--img { display: flex; flex-direction: column; }
.b-dg__img { margin-top: var(--sp-5); flex: 1; min-height: 140px; width: 100%; object-fit: cover; border-radius:var(--r-img); background: var(--photo-bg); }

/* tiles: короткие факты программы плитками (число/слово крупно + подпись) */
.b-ptiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4); }
.b-ptiles li { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-5); border: 1px solid var(--line); border-radius:var(--r-card); background: var(--surface); }
.b-ptiles__v { font-family: var(--font-head); font-size:var(--fs-h3); color: var(--ink); line-height: 1.15; }
.b-ptiles__l { color: var(--mut); }
@media (max-width: 700px) { .b-ptiles { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); } .b-ptiles li { flex-direction: row; align-items: baseline; justify-content: space-between; padding: var(--sp-3) var(--sp-4); } }

.b-ptiles li.has-ico { gap: var(--sp-2); padding: var(--sp-6) var(--sp-5); }
.b-ptiles__i { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: var(--sp-2); border-radius:var(--r-pill); color: var(--accent); background: color-mix(in srgb, var(--accent) 9%, var(--surface)); }
@media (max-width: 700px) { .b-ptiles li.has-ico { display: grid; grid-template-columns: 52px 1fr; column-gap: var(--sp-4); row-gap: 0; align-items: center; justify-content: stretch; } .b-ptiles li.has-ico .b-ptiles__i { grid-row: 1 / span 2; margin: 0; } }
html:has(.b-blk-chips#preg-nav) .preg-nav { display: none; }

.b-added { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius:var(--r-card); overflow: hidden; }
.b-added li { display: flex; align-items: flex-start; gap: var(--sp-3); padding: var(--sp-5) var(--sp-6); background: var(--surface); line-height: 1.45; }
.b-added li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.b-added__m { flex: none; display: inline-flex; margin-top: 2px; color: var(--accent); }
.b-added--no .b-added__m { color: var(--mut); }
.b-added--no li { color: var(--mut); }
@media (max-width: 700px) { .b-added { grid-template-columns: minmax(0, 1fr); } .b-added li { padding: var(--sp-4); } }
.b-added li:has(.b-added__m svg[width="22"]) { align-items: center; }
.b-added__m:has(svg[width="22"]) { width: 44px; height: 44px; margin-top: 0; align-items: center; justify-content: center; border-radius:var(--r-pill); background: color-mix(in srgb, var(--accent) 9%, var(--surface)); }
.b-added--no .b-added__m:has(svg[width="22"]) { background: color-mix(in srgb, var(--mut) 12%, var(--surface)); }

/* ===== SeoText ===== */
/* SEO-текст не стена: внизу, свёрнут CSS (в DOM целиком), «Читать полностью» */
.b-seo__g { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-12); align-items: start; }
.b-seo--with-toc .b-seo__g { grid-template-columns: 280px minmax(0, 760px); gap: var(--sp-16, 72px); }
.b-seo__toc { position: sticky; top: var(--sp-4); }
.b-seo__toc p { margin: 0 0 var(--sp-3); color: var(--mut); }
.b-seo__toc li { margin: 0 0 var(--sp-3); }
.b-seo__toc a { text-decoration: none; display: block; line-height: 1.35; }
.b-seo__toc a:hover { color: var(--price); }
.b-seo__w { display: flex; flex-direction: column; gap: var(--sp-5); }
.b-seo__t { max-height: 340px; overflow: hidden; line-height: 1.6; -webkit-mask-image: linear-gradient(#000 35%, transparent 96%); mask-image: linear-gradient(#000 35%, transparent 96%); }
.b-seo__t.is-open { max-height: none; -webkit-mask-image: none; mask-image: none; }
.b-seo--two-col .b-seo__t { columns: 2; column-gap: 44px; }
.b-seo__t h3 { font-size: var(--fs-h3); margin: 0 0 var(--sp-3); break-after: avoid; }
.b-seo__t h3:not(:first-child) { margin-top: var(--sp-6); }
.b-seo__t p, .b-seo__t ul { margin: 0 0 var(--sp-3); }
.b-seo__t ul { padding-left: var(--sp-5); }
.b-seo__more { align-self: flex-start; background: none; border: 0; border-bottom: 1.5px solid var(--ink); padding: 0 0 1px; font: var(--fw-sub) var(--fs-text)/1.4 var(--font-body); cursor: pointer; color: var(--ink); }
@media (max-width: 900px) {
  .b-seo--with-toc .b-seo__g { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .b-seo__toc { position: static; }
  .b-seo--two-col .b-seo__t, .b-seo--with-toc .b-seo__t { columns: auto; }   /* columns:1 + max-height создавали лишние колонки справа и горизонтальную прокрутку на длинных текстах */
  .b-seo__t { max-height: 280px; }
}
.b-seo__t h3 { font-family: var(--font-head); font-size: var(--fs-text); font-weight: 700; }
/* оглавление — карточка с линией; текст — читаемая колонка; кнопка как в остальных блоках */
.b-seo__toc { padding: var(--sp-5) var(--sp-5) var(--sp-4); background: var(--bg); border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.b-seo__toc p { font-weight: var(--fw-sub); color: var(--ink); text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }
.b-seo__toc ul { border-left: 2px solid var(--line); padding-left: var(--sp-4); }
.b-seo__toc li { margin: 0 0 var(--sp-3); }
.b-seo__toc a { font-size: 15px; color: var(--mut); }
.b-seo__toc a:hover { color: var(--ink); }
.b-seo__t { max-height: 380px; -webkit-mask-image: linear-gradient(#000 62%, transparent); mask-image: linear-gradient(#000 62%, transparent); }
.b-seo__t h3:first-child { margin-top: 0; }
.b-seo__more { display: inline-flex; align-items: center; gap: var(--sp-2); padding: 10px 20px; border: 1px solid var(--line); border-radius: var(--r-pill); border-bottom-width: 1px; background: var(--surface); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease); }
.b-seo__more:hover { box-shadow: var(--shadow-2); }
.b-seo__more::after { content: '↓'; font-size: 16px; }
.b-seo__t.is-open ~ .b-seo__more::after { content: '↑'; }
@media (max-width: 900px) { .b-seo--with-toc .b-seo__g { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); } .b-seo__t { max-height: 320px; } }

/* текст раздела из БД: таблицы и длинные слова не раздвигают страницу (02.11) */
.b-seo__t { overflow-wrap: anywhere; }
.b-seo__t table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: var(--sp-4) 0; }
.b-seo__t td, .b-seo__t th { padding: var(--sp-2) var(--sp-3); border: 1px solid var(--line); vertical-align: top; text-align: left; }
.b-seo__t ul, .b-seo__t ol { padding-left: var(--sp-5); margin: 0 0 var(--sp-3); }
.b-seo__t li { margin: 0 0 var(--sp-2); }

/* ===== FaqAccordion ===== */
.b-faq { border-top: 1px solid var(--line); }
.b-faq details { border-bottom: 1px solid var(--line); }
.b-faq summary { list-style: none; cursor: pointer; padding: var(--sp-5) var(--sp-8) var(--sp-5) 0; font-weight: var(--fw-sub); position: relative; }
.b-faq summary::-webkit-details-marker { display: none; }
.b-faq summary::after { content: "+"; position: absolute; right: var(--sp-1); top: var(--sp-4); font-size: var(--fs-h3); line-height: 1; color: var(--mut); }
.b-faq details[open] summary::after { content: "–"; }
.b-faq details > div { padding: 0 0 var(--sp-5); color: var(--mut); line-height: 1.6; }
.b-faq details > div p { margin: 0 0 var(--sp-3); }
.b-faq a { color: var(--ink); }

/* split: заголовок слева, вопросы карточками справа */
.b-faq-split__g { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: var(--sp-12); align-items: start; }
.b-faq-split__h { position: sticky; top: var(--sp-6); display: flex; flex-direction: column; gap: var(--sp-4); align-items: flex-start; }
.b-faq-split__h .b-sub { margin: 0; }
.b-faq--cards { border-top: 0; display: grid; gap: var(--sp-3); }
.b-faq--cards details { border: 0; background: var(--surface); border-radius: var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease); }
.b-faq--cards details[open] { box-shadow: var(--shadow-2); }
.b-faq--cards summary { padding: var(--sp-5) var(--sp-12) var(--sp-5) var(--sp-5); }
.b-faq--cards summary::after { right: var(--sp-5); top: 50%; transform: translateY(-50%); width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--tint); color: var(--ink); font-size: 20px; }
.b-faq--cards details > div { padding: 0 var(--sp-5) var(--sp-5); }
@media (max-width: 900px) { .b-faq-split__g { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); } .b-faq-split__h { position: static; } }

/* ===== Steps ===== */
.b-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-6); counter-reset: s; border-top: 2px solid var(--ink); padding-top: var(--sp-6); }
.b-steps li { display: flex; flex-direction: column; gap: var(--sp-2); }
.b-steps b { font-family: var(--font-head); font-size:var(--fs-h3); line-height: 1.25; font-weight: var(--fw-sub); }
.b-steps span:not(.b-steps__n) { color: var(--mut); }
.b-steps__n { display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 50%; border: 1.5px solid var(--ink); font-weight: var(--fw-sub); margin-bottom: var(--sp-2); }
.b-steps-acc summary { display: flex; align-items: center; gap: var(--sp-4); }
.b-steps-acc .b-steps__n { margin: 0; flex: none; }
.b-steps-acc details > div { padding-left: 48px; }
@media (max-width: 900px) { .b-steps { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); } .b-steps li { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: var(--sp-1) var(--sp-3); } .b-steps__n { grid-row: 1 / 3; } }
/* cards — шаги карточками с номером, число колонок = число шагов (3–4) */
.b-stepc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-5); counter-reset: none; }
.b-stepc--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.b-stepc li { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-6); background: var(--surface); border-radius:var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-stepc li:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-stepc__n { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--bg); font-family: var(--font-head); font-weight: var(--fw-sub); }
.b-stepc__t { font-family: var(--font-head); font-size:var(--fs-h3); font-weight: var(--fw-sub); line-height: var(--lh-head); }
.b-stepc__d { color: var(--mut); }
.b-sec--alt .b-stepc li { background: var(--bg); box-shadow: none; }
.b-sec--alt .b-stepc__n { background: var(--surface); }
@media (max-width: 900px) { .b-stepc, .b-stepc--4 { grid-template-columns: minmax(0, 1fr); } }

/* 03.11 раскладка по ширине: число колонок = число шагов (3–6), 7+ — по 4 в ряд; плитка со значком по смыслу шага и подпись «Шаг N» */
.b-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .b-steps--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .b-steps--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } .b-steps--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--sp-5); }
.b-stepc--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--sp-4); } .b-stepc--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--sp-3); }
.b-stepc--5 li, .b-stepc--6 li { padding: var(--sp-5); }
.b-steps--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.b-steps li .b-steps__i, .b-stepc li .b-steps__i, .b-steps-acc .b-steps__i { display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-2); align-self: flex-start; margin: 0 0 var(--sp-2); }
.b-steps li .b-steps__ic, .b-stepc li .b-steps__ic, .b-steps-acc .b-steps__ic { width: 60px; height: 60px; display: grid; place-items: center; border-radius:var(--r-card); background: var(--tint); color: var(--accent); }
.b-steps li .b-steps__svg, .b-stepc li .b-steps__svg, .b-steps-acc .b-steps__svg { width: 32px; height: 32px; stroke-width: 1.5; }
.b-steps li .b-steps__num, .b-stepc li .b-steps__num, .b-steps-acc .b-steps__num { font-family: var(--font-head); font-size:var(--fs-h3); font-weight: var(--fw-head); color: var(--accent); }
.b-steps li .b-steps__nb, .b-stepc li .b-steps__nb, .b-steps-acc .b-steps__nb { color: var(--mut); font-weight: var(--fw-sub); }
.b-sec--alt .b-stepc li .b-steps__ic { background: var(--bg); }
.b-steps-acc summary { align-items: center; }
.b-steps-acc .b-steps__i { flex-direction: row; align-items: center; gap: var(--sp-3); }
.b-steps-acc .b-steps__nb { display: none; }
@media (max-width: 900px) {
  .b-steps--3, .b-steps--4, .b-steps--5, .b-steps--6 { grid-template-columns: minmax(0, 1fr); }
  .b-stepc--5, .b-stepc--6 { grid-template-columns: minmax(0, 1fr); }
  .b-steps li > .b-steps__i { grid-row: 1 / span 2; }
}
@media (min-width: 901px) and (max-width: 1100px) { .b-steps--5, .b-steps--6, .b-stepc--5, .b-stepc--6 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* 03.11 «топ-10»: крупная цифра-контур позади, поверх неё карточка с плиткой-значком, заголовком и текстом */
.b-steps--big { border-top: 0; padding-top: 0; gap: var(--sp-5); align-items: start; }
.b-steps--big > li { position: relative; display: block; }
.b-steps--big .b-steps__big { display: block; font-family: var(--font-body); font-weight: var(--fw-head); font-size: calc(var(--fs-h1) * 2.2); line-height: .85; letter-spacing: -0.04em; color: transparent; -webkit-text-stroke: 2px color-mix(in srgb, var(--accent) 45%, transparent); padding-left: var(--sp-2); user-select: none; }
.b-steps--big .b-steps__card { position: relative; display: flex; flex-direction: column; gap: var(--sp-2); margin: calc(-1 * var(--sp-8)) 0 0 var(--sp-5); padding: var(--sp-5); background: var(--surface); border-radius:var(--r-card); box-shadow: var(--shadow-2); }
.b-steps--big .b-steps__card .b-steps__nb { display: none; }
.b-steps--big .b-steps__card .b-steps__ic { width: 48px; height: 48px; }
.b-steps--big .b-steps__card .b-steps__svg { width: 26px; height: 26px; }
.b-steps--big .b-steps__card b { font-family: var(--font-head); font-size:var(--fs-h3); line-height: 1.25; font-weight: var(--fw-sub); color: var(--ink); }
.b-sec--alt .b-steps--big .b-steps__card { background: var(--bg); }
@media (max-width: 900px) {
  .b-steps--big > li { display: block; }
  .b-steps--big .b-steps__big { font-size: calc(var(--fs-h1) * 1.6); }
  .b-steps--big .b-steps__card { margin: calc(-1 * var(--sp-3)) 0 0 var(--sp-5); }
}
.b-steps--big { align-items: stretch; }
.b-steps--big > li { display: flex; flex-direction: column; }
.b-steps--big > li .b-steps__big { stroke-linejoin: round; color: transparent; }
.b-steps--big .b-steps__card { flex: 1; }
.b-steps--big .b-steps__card > b { color: var(--ink); }
.b-steps--big .b-steps__card > span:not(.b-steps__i) { color: var(--mut); }

/* 03.11 правка: без контура (внутри цифр были лишние линии), сплошная светлая цифра; карточки — одной ширины и высоты, верх по одной линии, цифра выглядывает из-за верхнего края */
.b-steps--big > li { position: relative; padding-top: 0; }
.b-steps--big > li .b-steps__big { stroke-linejoin: round; position: absolute; top: var(--sp-3); right: var(--sp-4); left: auto; z-index: 2; padding: 0; pointer-events: none; color: var(--surface); paint-order: stroke fill; -webkit-text-stroke: 4px color-mix(in srgb, var(--accent) 18%, var(--surface)); line-height: .8; }
.b-steps--big .b-steps__card { z-index: auto; margin: 0; height: 100%; }
.b-steps--big .b-steps__card > * { position: relative; z-index: 3; }
@media (max-width: 900px) {
  .b-steps--big .b-steps__card { margin: 0; }
}

.b-sec--alt .b-steps--big > li .b-steps__big { color: var(--bg); -webkit-text-stroke-color: color-mix(in srgb, var(--accent) 18%, var(--bg)); }

/* в узкой колонке страницы с боковым меню 4+ шага — по два в ряд, 3 — в три; колонки не тесные */
@media (min-width: 901px) {
  .b-side__m .b-stepc--4, .b-side__m .b-stepc--5, .b-side__m .b-stepc--6, .b-side__m .b-steps--4, .b-side__m .b-steps--5, .b-side__m .b-steps--6 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-5); }
  .b-side__m .b-stepc--5 li, .b-side__m .b-stepc--6 li { padding: var(--sp-6); }
}
/* big: контурная цифра компактнее и в углу — не заходит на заголовок шага */
.b-steps--big > li .b-steps__big { font-size:var(--fs-h1); top: var(--sp-4); }

/* ===== InfoCards ===== */
/* InfoCards: факты об услуге карточками. numbered — показания/поводы (номер в круге, заголовок, пояснение); tiles — заголовок + текст (подготовка, противопоказания, как проходит, результат) */
.b-info { display: grid; gap: var(--sp-4); }
.b-info--n, .b-info--tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.b-info__c { background: var(--surface); border-radius:var(--r-card); box-shadow: var(--shadow-1); padding: var(--sp-5); min-width: 0; transition: box-shadow .2s, transform .2s; }
.b-info__c:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-info--n .b-info__c { display: flex; gap: var(--sp-4); align-items: flex-start; }
.b-info__n { flex: none; width: 36px; height: 36px; display: grid; place-items: center; border-radius:var(--r-pill); background: var(--tint); color: var(--ink); font-family: var(--font-head); font-weight: var(--fw-head); }
.b-info__t { display: block; font-weight: var(--fw-sub); margin-bottom: var(--sp-1); overflow-wrap: anywhere; }
.b-info__d { display: block; color: var(--mut); overflow-wrap: anywhere; }
.b-info__h { margin: 0 0 var(--sp-3); font-family: var(--font-head); font-size:var(--fs-h3); font-weight: var(--fw-head); }
.b-info__b { display: flex; flex-direction: column; gap: var(--sp-2); color: var(--mut); overflow-wrap: anywhere; }
.b-info__b p, .b-info__b ul { margin: 0; }
.b-info__b b { color: var(--ink); font-weight: var(--fw-sub); }
.b-info__b ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: var(--sp-1); }
.b-info__b li { position: relative; padding-left: var(--sp-5); }
.b-info__b li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius:var(--r-pill); background: var(--accent); }
.b-info__c--wide { grid-column: 1 / -1; }
@media (max-width: 700px) { .b-info--n, .b-info--tiles { grid-template-columns: minmax(0, 1fr); } }

/* notice: «Подготовка» (спокойная, голубая) и «Внимание» (противопоказания, красный акцент) — крупные карточки с иконкой, выше подробностей */
.b-info--notice { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.b-info--notice .b-info__c { display: flex; flex-direction: column; gap: var(--sp-3); box-shadow: none; padding: var(--sp-6); }
.b-info--notice .b-info__c:hover { transform: none; box-shadow: none; }
.b-info--notice .b-info__h { margin: 0; }
.b-info__c--prep { background: var(--tint); }
.b-info__c--warn { background: color-mix(in srgb, var(--accent) 7%, var(--surface)); border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--surface)); }
.b-info__ic { width: 44px; height: 44px; display: grid; place-items: center; border-radius:var(--r-pill); background: var(--surface); color: var(--ink); }
.b-info__c--warn .b-info__ic { color: var(--accent); }
.b-info__c--warn .b-info__b li::before { background: var(--accent); }
.b-info__c--prep .b-info__b li::before { background: var(--ink); }
.b-info--notice .b-info__c:only-child { grid-column: 1 / -1; }
@media (max-width: 700px) { .b-info--notice { grid-template-columns: minmax(0, 1fr); } }

/* шаги внутри карточек (подготовка, как проходит): номер в кружке, заголовок и пояснение */
.b-info__b h4 { margin: var(--sp-3) 0 0; font-size:var(--fs-text); font-weight: var(--fw-sub); color: var(--ink); }
.b-nl { list-style: none; counter-reset: nl; margin: var(--sp-2) 0 0; padding: 0; display: flex; flex-direction: column; gap: var(--sp-4); }
.b-nl > li { counter-increment: nl; position: relative; padding-left: calc(var(--sp-8) + var(--sp-2)); display: flex; flex-direction: column; gap: var(--sp-1); }
.b-nl > li::before { content: counter(nl); position: absolute; left: 0; top: 0; width: var(--sp-8); height: var(--sp-8); border-radius:var(--r-pill); background: var(--ink); color: var(--surface); font-weight: var(--fw-sub); display: flex; align-items: center; justify-content: center; }
.b-nl > li > b { color: var(--ink); }
.b-nl > li > span { color: var(--mut); }
.b-nl > li > ul { margin: var(--sp-1) 0 0; }
.b-info__c--warn .b-nl > li::before { background: var(--accent); }
.b-info--tiles .b-info__c:only-child { grid-column: 1 / -1; }

/* 03.11 «Подготовка» — спокойный акцент, «Противопоказания/Внимание» — заметная тёплая плашка: иконка на акценте, заголовок и ключевые слова жирно; без дубля заголовка секции */
.b-info__c--warn .b-info__ic { background: var(--accent); color: var(--surface); }
.b-info__c--warn .b-info__b { color: var(--ink); }
.b-info__c--warn .b-info__b b, .b-info__c--warn .b-info__b strong { color: var(--accent); }
.b-info__c--prep .b-info__ic { background: var(--surface); }
.b-info--notice .b-info__c--warn .b-info__ic + .b-info__b { margin-top: calc(-1 * var(--sp-1)); }

/* единая раскладка карточек notice (подготовка, противопоказания, внимание): иконка слева в одной строке с заголовком; без заголовка — текст рядом с иконкой */
.b-info--notice .b-info__c { display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: var(--sp-4); row-gap: var(--sp-3); align-items: center; align-content: start; }
.b-info--notice .b-info__ic { grid-column: 1; grid-row: 1; }
.b-info--notice .b-info__h { grid-column: 2; grid-row: 1; }
.b-info--notice .b-info__h ~ .b-info__b { grid-column: 1 / -1; grid-row: 2; }
.b-info--notice .b-info__ic + .b-info__b { grid-column: 2; grid-row: 1; margin: 0; }

/* одна строка «Что входит» вместо секции с общим заголовком */
.b-info__fact { margin: 0; padding: var(--sp-4) var(--sp-5); background: var(--tint); border-radius:var(--r-card); color: var(--ink); overflow-wrap: anywhere; }
.b-info__fact b { font-weight: var(--fw-sub); }
/* notice: карточки всегда во всю ширину, одна под другой — одинаково на любой странице (без «то одна плашка, то две колонки с растянутой правой») */
.b-info--notice { grid-template-columns: minmax(0, 1fr); }

/* ===== PriceTable ===== */
.b-ptable-w { overflow-x: auto; }
.b-ptable { width: 100%; border-collapse: collapse; background: var(--surface); }
.b-ptable th, .b-ptable td { padding: var(--sp-4) var(--sp-5); text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.b-ptable thead th { font-family: var(--font-head); font-size:var(--fs-text); border-bottom: 2px solid var(--ink); }
.b-ptable tbody th { font-weight: 500; }
.b-ptable small { display: block; color: var(--mut); font-weight: 400; margin-top: var(--sp-1); }
.b-ptable td.b-price { text-align: right; width: 1%; }
.b-ptable tbody th, .b-ptable tbody th .b-link { white-space: normal; overflow-wrap: break-word; hyphens: none; }
@media (max-width: 900px) {
  .b-ptable--compare thead { display: none; }
  .b-ptable--compare tr { display: block; padding: var(--sp-4) 0; border-bottom: 1px solid var(--line); }
  .b-ptable--compare th, .b-ptable--compare td { display: block; border: 0; padding: var(--sp-1) 0; }
  .b-ptable--compare tbody th { font-weight: var(--fw-sub); margin-bottom: var(--sp-2); }
  .b-ptable--compare td::before { content: attr(data-l) ": "; color: var(--mut); }
}

/* телефон: обычная таблица цен — стопкой (название, под ним цена), без горизонтальной прокрутки */
@media (max-width: 600px) {
  .b-ptable:not(.b-ptable--compare) tr { display: block; padding: var(--sp-3) 0; border-bottom: 1px solid var(--line); }
  .b-ptable:not(.b-ptable--compare) th, .b-ptable:not(.b-ptable--compare) td { display: block; border: 0; padding: var(--sp-1) var(--sp-4); width: auto; }
  .b-ptable:not(.b-ptable--compare) td.b-price { text-align: left; font-weight: var(--fw-sub); }
}

.b-ptable--compare th.is-cur, .b-ptable--compare td.is-cur { background:color-mix(in srgb,var(--accent) 7%,var(--surface)); }
.b-ptable__cur { display: block; margin-top: var(--sp-1); font-family: var(--font-body); font-size:var(--fs-text); font-weight: 500; color: var(--accent); }
.b-ptable__price td b { font-family: var(--font-head); font-size:var(--fs-h3); color: var(--ink); }
@media (max-width: 700px) { .b-ptable--compare td.is-cur::before { color: var(--accent); } .b-ptable__price td b { font-size:var(--fs-text); } }

.b-ptable--compare { table-layout: fixed; }
.b-ptable--compare thead th:first-child, .b-ptable--compare tbody th { width: 19%; }
.b-ptable--compare td.is-yes:not(.b-price)::before { content: "✓"; color: var(--accent); font-weight: var(--fw-sub); margin-right: var(--sp-2); }
.b-ptable--compare td.is-no { color: var(--mut); }
@media (max-width: 900px) { .b-ptable--compare td.is-yes:not(.b-price)::before { content: attr(data-l) ": "; color: var(--mut); font-weight: 400; margin-right: 0; } }

/* ===== Education ===== */
.b-edu__h { font-size: var(--fs-h3); font-weight: var(--fw-sub); margin: var(--sp-8) 0 var(--sp-4); }
.b-edu__h:first-child { margin-top: 0; }
.b-edu__l { position: relative; padding-left: var(--sp-6); border-left: 2px solid var(--line); max-width: 56em; }
.b-edu__l li { position: relative; display: flex; flex-direction: column; gap: var(--sp-1); padding: 0 0 var(--sp-6); }
.b-edu__l li::before { content: ""; position: absolute; left: calc(-1 * var(--sp-6) - 6px); top: .45em; width: 10px; height: 10px; border-radius: 50%; background: var(--ink); }
.b-edu__m, .b-edu__s { color: var(--mut); }
.b-dips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--sp-3); }
.b-dip { display: block; text-decoration: none; color: var(--mut); line-height: 1.35; }
.b-dip img { width: 100%; aspect-ratio: 4 / 3; object-fit: contain; background: var(--photo-bg); border-radius: 10px; margin-bottom: var(--sp-2); }
.b-dips-more { margin-top: var(--sp-4); }
.b-dips-more summary { cursor: pointer; font-weight: var(--fw-sub); margin-bottom: var(--sp-4); }
@media (max-width: 900px) { .b-dips { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ===== CtaBand ===== */
.b-cta { background: var(--surface); border-top: 1px solid var(--line); }
.b-cta__act { display: flex; gap: var(--sp-5); align-items: center; flex-wrap: wrap; margin-top: var(--sp-6); }
.b-cta__tel { color: var(--ink); font-weight: var(--fw-sub); text-decoration: none; }
.b-cta.b-sec--tint { background: var(--tint); border-top: 0; }

/* card: красная карточка с фото справа (одного цвета с doctor/service — единая схема CTA на всех типах страниц) */
.b-cta--card { background: var(--bg); border-top: 0; }
.b-cta__card { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); overflow: hidden; border-radius:var(--r-hero); background: radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--surface) 22%, transparent), transparent 42%), linear-gradient(135deg, var(--accent) 0%, var(--accent-d) 100%); color: var(--surface); box-shadow: var(--shadow-2); }
.b-cta__txt { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--sp-4); padding: var(--sp-16, 72px) var(--sp-12) var(--sp-16, 72px) var(--sp-16, 72px); }
.b-cta__k { margin: 0; font-size: 13px; font-weight: var(--fw-sub); letter-spacing: .1em; text-transform: uppercase; color: color-mix(in srgb, var(--surface) 92%, transparent); }
.b-cta__card .b-h2 { color: #fff; margin: 0; }
.b-cta__card .b-sub { color: color-mix(in srgb, var(--surface) 94%, transparent); margin: 0; max-width: 440px; }
.b-cta__card .b-cta__act { margin-top: var(--sp-4); }
.b-cta__card .b-cta__tel { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 48px; padding: 0 var(--sp-5); border: 1px solid rgba(255,255,255,.28); border-radius:var(--r-pill); color: #fff; transition: border-color .2s var(--ease), background .2s var(--ease); }
.b-cta__card .b-cta__tel:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.b-cta__h { margin: 0; font-size: 14px; color: color-mix(in srgb, var(--surface) 90%, transparent); }
.b-cta__img { position: relative; min-height: 340px; }
.b-cta__img img { position: absolute; inset: 0 0 0 -1px; width: 100%; height: 100%; object-fit: cover; object-position: 20% 50%; }
.b-cta__img::before { content: ''; position: absolute; inset: 0 0 0 -3px; z-index: 1; background: linear-gradient(90deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 55%, transparent) 28%, transparent 62%); }
@media (max-width: 900px) {
  .b-cta__card { grid-template-columns: minmax(0, 1fr); border-radius:var(--r-card); }
  .b-cta__txt { padding: var(--sp-8) var(--sp-6); }
  .b-cta__img { min-height: 200px; order: -1; }
  .b-cta__img::before { background: linear-gradient(0deg, var(--accent-d) 0%, color-mix(in srgb, var(--accent-d) 40%, transparent) 40%, transparent 80%); }
}

/* person: на карточке записи врача — его фото (портрет, лицо сверху) вместо общей картинки */
.b-cta__img--person img { object-position: 50% 24%; }
@media (max-width: 900px) { .b-cta__img--person { min-height: 300px; } }
@media (min-width: 901px) { .b-cta__card:has(.b-cta__img--person) { grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); } .b-cta__img--person { min-height: 440px; } }

/* doctor: красная карточка записи с ФИО, цифрами и полным фото врача в рамке */
.b-cta--doctor { background: var(--bg); border-top: 0; }
.b-cdoc { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 440px; align-items: stretch; overflow: hidden; border-radius:var(--r-hero); color: var(--surface); box-shadow: var(--shadow-2);
  background: radial-gradient(circle at 88% 12%, color-mix(in srgb, var(--surface) 22%, transparent), transparent 42%), radial-gradient(circle at 0% 110%, color-mix(in srgb, var(--accent-d) 90%, transparent), transparent 55%), linear-gradient(135deg, var(--accent) 0%, var(--accent-d) 100%); }
.b-cdoc__txt { padding: var(--sp-10) var(--sp-12); display: flex; flex-direction: column; gap: var(--sp-5); position: relative; z-index: 1; }
.b-cdoc__txt > * { max-width: 34em; }
.b-cdoc__k { margin-bottom: calc(-1 * var(--sp-2)); }
.b-cdoc__txt p { margin: 0; }
.b-cdoc__k span { display: inline-block; padding: var(--sp-2) var(--sp-4); border-radius:var(--r-pill); background: color-mix(in srgb, var(--surface) 18%, transparent); font-size:var(--fs-text); font-weight: var(--fw-sub); letter-spacing: .06em; text-transform: uppercase; }
.b-cdoc__h { margin: 0; color: var(--surface); font-family: var(--font-head); font-size:var(--fs-h2); font-weight: var(--fw-head); line-height: 1.12; max-width: 14em; }
.b-cdoc__s { font-size:var(--fs-h3); max-width: 28em; line-height: var(--lh-text); opacity: .92; }
.b-cdoc__f { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.5fr); gap: var(--sp-3); }
.b-cdoc__f li { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-3) var(--sp-5); border-radius:var(--r-card); background: color-mix(in srgb, var(--surface) 16%, transparent); border: 1px solid color-mix(in srgb, var(--surface) 28%, transparent); }
.b-cdoc__f span { opacity: .85; }
.b-cdoc__f b { font-family: var(--font-head); font-size:var(--fs-h3); }
.b-cdoc__act { display: flex; gap: var(--sp-4); flex-wrap: wrap; align-items: center; }
.b-btn--light { background: var(--surface); color: var(--accent); box-shadow: var(--shadow-1); }
.b-btn--light:hover { background: var(--tint); }
.b-cdoc__tel { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 48px; padding: 0 var(--sp-6); border: 1px solid color-mix(in srgb, var(--surface) 60%, transparent); border-radius:var(--r-pill); color: var(--surface); font-weight: var(--fw-sub); text-decoration: none; transition: background .15s var(--ease), color .15s var(--ease); }
.b-cdoc__tel:hover { background: var(--surface); color: var(--accent); }
.b-cdoc__hrs { margin-top: auto; padding-top: var(--sp-4); border-top: 1px solid color-mix(in srgb, var(--surface) 28%, transparent); opacity: .9; }
.b-cdoc__hrs span { display: block; margin-top: var(--sp-1); opacity: .85; }
.b-cdoc__fr { position: relative; z-index: 1; padding: var(--sp-10) var(--sp-10) var(--sp-10) 0; display: flex; align-items: stretch; }
.b-cdoc__ph { display: block; width: 100%; height: auto; align-self: start; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 8%; border-radius:var(--r-img); background: var(--photo-bg); box-shadow: var(--shadow-2); border: 4px solid var(--surface); }
@media (max-width: 1100px) { .b-cdoc { grid-template-columns: minmax(0, 1fr) 340px; } .b-cdoc__txt { padding: var(--sp-8); } .b-cdoc__fr { padding: var(--sp-8) var(--sp-8) var(--sp-8) 0; } }
@media (max-width: 900px) { .b-cdoc { grid-template-columns: minmax(0, 1fr); border-radius:var(--r-card); } .b-cdoc__fr { order: -1; padding: var(--sp-5) var(--sp-5) 0; } .b-cdoc__ph { max-height: 420px; } .b-cdoc__txt { padding: var(--sp-6); } .b-cdoc__f { grid-template-columns: repeat(2, minmax(0, 1fr)); } .b-cdoc__f li:last-child { grid-column: 1 / -1; } }
.b-cdoc__txt .b-cdoc__hrs { margin-top: auto; }

/* service: красная карточка записи на услугу — без врача; цена и время цифрами, картинка необязательна */
.b-cdoc--noimg { grid-template-columns: minmax(0, 1fr); }
.b-cdoc--svc .b-cdoc__f { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.b-cdoc__ph--cover { aspect-ratio: 4 / 5; }

/* card, параметр photo: как фото встроено в тёмную карточку (десктоп; на телефоне — как прежде, фото сверху) */
@media (min-width: 901px) {
  .b-cta__card--edge .b-cta__img::before { display: none; }                       /* edge — ровный край фото без растворения в фон */
  .b-cta__card--full { grid-template-columns: minmax(0, 1fr); }                  /* full — фото на всю карточку, текст поверх на затемнении слева */
  .b-cta__card--full .b-cta__img { position: absolute; inset: 0; min-height: 0; }
  .b-cta__card--full .b-cta__img::before { background: linear-gradient(90deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 78%, transparent) 42%, transparent 85%); }
  .b-cta__card--full .b-cta__txt { position: relative; z-index: 2; max-width: 62%; }
  .b-cta__card--slant .b-cta__img { margin-left: -8%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }   /* slant — косой срез края */
  .b-cta__card--slant .b-cta__img::before { display: none; }
  .b-cta__card--inset .b-cta__img { margin: var(--sp-4) var(--sp-4) var(--sp-4) 0; min-height: 0; }             /* inset — фото плиткой с отступом и скруглением */
  .b-cta__card--inset .b-cta__img img { inset: 0; clip-path: inset(0 round var(--r-img)); }
  .b-cta__card--inset .b-cta__img::before { display: none; }
}

/* ===== RelatedLinks ===== */
.b-rel-promos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-4) var(--sp-8); }
.b-rel-promos a { display: flex; justify-content: space-between; gap: var(--sp-4); align-items: baseline; padding: var(--sp-4) 0; border-top: 1px solid var(--line); text-decoration: none; }
.b-rel-promos a:hover span { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 900px) { .b-rel-promos { grid-template-columns: minmax(0, 1fr); gap: 0; } }

/* cards: карусель карточек услуг (картинка, название, цена) — прокрутка пальцем/колесом, стрелки на десктопе */
.b-car { position: relative; }
.b-car__t { display: flex; gap: var(--sp-4); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: var(--sp-2) 2px var(--sp-5); margin: 0 -2px; }
.b-car__t::-webkit-scrollbar { display: none; }
.b-car__c { flex: 0 0 calc((100% - 2 * var(--sp-4)) / 3); min-width: 0; scroll-snap-align: start; }
.b-car__c a { display: flex; flex-direction: column; gap: var(--sp-2); height: 100%; padding: var(--sp-3) var(--sp-3) var(--sp-4); background: var(--surface); border-radius:var(--r-card); box-shadow: var(--shadow-1); text-decoration: none; color: var(--ink); transition: box-shadow .2s, transform .2s; }
.b-car__c a:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-car__i { display: block; aspect-ratio: 4 / 3; border-radius:var(--r-img); overflow: hidden; background: var(--photo-bg); margin-bottom: var(--sp-2); }
.b-car__i img { width: 100%; height: 100%; object-fit: cover; display: block; }
.b-car__n { font-weight: var(--fw-sub); overflow-wrap: anywhere; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; padding: 0 var(--sp-2); }
.b-car__p { padding: 0 var(--sp-2); margin-top: auto; }
.b-car__a { display: inline-flex; align-items: center; gap: var(--sp-2); padding: 0 var(--sp-2); color: var(--mut); }
.b-car__nav { position: absolute; top: 38%; z-index: 2; width: 44px; height: 44px; border-radius:var(--r-pill); border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-2); font-size:var(--fs-h2); line-height: 1; cursor: pointer; color: var(--ink); }
.b-car__nav--prev { left: calc(-1 * var(--sp-4)); }
.b-car__nav--next { right: calc(-1 * var(--sp-4)); }
.b-car__nav[disabled] { opacity: 0; pointer-events: none; }
@media (max-width: 900px) { .b-car__c { flex-basis: 46%; } .b-car__nav { display: none; } }
@media (max-width: 600px) { .b-car__c { flex-basis: 78%; } }

/* ===== Referral ===== */
.b-ref { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
.b-ref__c { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: var(--sp-4); align-items: start; padding: var(--sp-4); background: var(--surface); border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.b-ref__c img { width: 72px; height: 90px; object-fit: cover; border-radius: 10px; background: var(--photo-bg); }
.b-ref__b { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.b-ref__r { color: var(--mut); }
.b-ref__n { font-weight: var(--fw-sub); line-height: 1.3; color: var(--ink); text-decoration: none; }
.b-ref__n:hover { text-decoration: underline; text-underline-offset: 3px; }
.b-ref__s { color: var(--mut); }
.b-ref__a { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.b-ref__x { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-4) var(--sp-8); flex-wrap: wrap; margin-top: var(--sp-4); padding: var(--sp-5) var(--sp-6); border-radius: var(--r-card); background: var(--surface); box-shadow: var(--shadow-1); text-decoration: none; color: var(--ink); transition: box-shadow .2s var(--ease), transform .2s var(--ease); }
.b-ref__x:hover { box-shadow: var(--shadow-2); transform: translateY(-2px); }
.b-ref__x b { display: inline-flex; align-items: center; gap: var(--sp-2); font-weight: var(--fw-sub); }
.b-ref__x--lone { margin-top: 0; }
@media (max-width: 900px) { .b-ref__c { grid-template-columns: 72px minmax(0, 1fr); } .b-ref__a { grid-column: 1 / -1; } .b-ref__x { padding: var(--sp-4); } }
.b-ref__a { align-self: center; }

/* ===== SeeAlso ===== */
.b-see { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--sp-8); }
.b-see a { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-4); align-items: center; min-height: 88px; padding: var(--sp-4) 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--ink); }
.b-see li:last-child a, .b-see li:nth-last-child(2):nth-child(odd) a { border-bottom: 1px solid var(--line); }
.b-see__t { display: flex; flex-direction: column; gap: var(--sp-1); min-width: 0; }
.b-see__n { font-weight: var(--fw-sub); line-height: 1.3; }
.b-see__c, .b-see__d { color: var(--mut); }
.b-see a:hover .b-see__n { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 900px) { .b-see { grid-template-columns: minmax(0, 1fr); } .b-see li:nth-last-child(2):nth-child(odd) a { border-bottom: 0; } }

/* ===== Reviews ===== */
/* живой блок отзывов площадок — стиль live/reviews-block.*.css подключается как есть; здесь только место в ритме страницы */
.b-reviews { margin: 0; background: var(--bg); }
.b-reviews .reviews-section { margin: 0; background: var(--bg); }
.b-reviews--tint, .b-reviews--tint .reviews-section { background: var(--tint); }

/* ===== Footer ===== */
/* Подвал — правила живого лёгкого подвала (.lfoot) из style.css макета с сохранением @media; ссылки — токен. */
/* лёгкий подвал: разметка живого, без 400 КБ темы */
.lfoot{background:#fff;border-top:1px solid var(--line);margin-top:0;padding:36px 0 20px;color:var(--mut);font-size:14px;line-height:1.5}
.lfoot>div{max-width:1200px;margin:0 auto;padding:0 16px}
.lfoot a{color:var(--ink);text-decoration:none}
.lfoot a:hover{color:var(--price)}
.lfoot .firstLinefooter{margin-bottom:24px}
.lfoot .secondLinefooter{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;gap:28px}
.lfoot .main-tel{font-size:20px;font-weight:600}
.lfoot .newfooter-contacts>div,.lfoot .newfooter__timework>div{margin:4px 0}
.lfoot .newfooter__timework,.lfoot .newfooter__address{margin-top:14px}
.lfoot .footerMenu{columns:2;column-gap:20px}
.lfoot .footerMenu div{margin:0 0 6px;break-inside:avoid}
.lfoot .narpTitle{font-weight:600;color:var(--ink);margin-bottom:8px}
.lfoot .naprList{list-style:none;margin:0;padding:0;columns:2;column-gap:20px}
.lfoot .naprList li{margin:0 0 5px;break-inside:avoid}
.lfoot .thirdLinefooter,.lfoot .fourthLinefooter,.lfoot .socialBlock{display:flex;flex-wrap:wrap;gap:6px 18px}
.lfoot .thirdLinefooter{margin-top:22px}
.lfoot .fourthLinefooter{margin-top:14px;justify-content:space-between;align-items:center}
.lfoot .secondCMblock{display:flex;flex-wrap:wrap;gap:8px 24px}
.lfoot .uppp{cursor:pointer;color:var(--price)}
.lfoot .footer__politics{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;line-height:1.55;color:#8c8c8c}
@media(max-width:820px){.lfoot .secondLinefooter{grid-template-columns:minmax(0,1fr)}
 .lfoot .footerMenu,.lfoot .naprList{columns:1}}
.lfoot .secondLinefooterThird{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto 1fr;grid-auto-flow:column;gap:0 24px}
.lfoot .secondLinefooterThird ul{list-style:none;margin:0;padding:0;columns:1}
.lfoot .secondLinefooterThird li{margin:0 0 5px}
.lfoot .secondLinefooter{grid-template-columns:1fr .9fr 1.5fr}
.lfoot .newfooter__address .lookm{display:inline-block;margin-top:6px;color:var(--price)}
@media(max-width:820px){.lfoot .secondLinefooterThird{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row}}
.lfoot .secondLinefooter{grid-template-columns:1.1fr .9fr 1.1fr 1fr}
.lfoot .secondLinefooterThird,.lfoot .secondLinefooterFourth{display:block}
.lfoot .secondLinefooterFourth ul{list-style:none;margin:0;padding:0}
.lfoot .secondLinefooterFourth li{margin:0 0 5px}
@media(max-width:1000px){.lfoot .secondLinefooter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.lfoot .secondLinefooter{grid-template-columns:minmax(0,1fr)}}

/* ===== DiseaseCatalog ===== */
/* DiseaseCatalog: каталог заболеваний — поиск, чипы «Отделение»/«Группа», отделения-аккордеоны со ссылками. Только токены. */
.b-dc { background: var(--bg); }
.b-dc .b-head { margin-bottom: var(--sp-6); }
.b-dc__stk { margin: 0; padding: 0; }
@media (min-width: 1100px) { .b-dc__stk { position: sticky; top: var(--dc-hdr, 0px); z-index: 5; margin: 0 calc(-1 * var(--sp-2)); padding: var(--sp-3) var(--sp-2); background: var(--bg); } }
.b-dc__search { position: relative; display: flex; align-items: center; gap: var(--sp-2); width: 100%; padding: var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-5); background: var(--surface); border: 1.5px solid var(--line); border-radius: var(--r-pill); box-shadow: var(--shadow-1); transition: border-color .15s var(--ease); }
.b-dc__search:focus-within { border-color: var(--ink); }
.b-dc__si { flex: none; color: var(--mut); }
.b-dc__q { flex: 1; min-width: 0; height: 44px; border: 0; outline: 0; background: transparent; font: inherit; font-size: 17px; color: var(--ink); -webkit-appearance: none; appearance: none; }
.b-dc__q::-webkit-search-cancel-button { display: none; }
.b-dc__x { flex: none; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--tint); color: var(--mut); font-size: 22px; line-height: 1; cursor: pointer; }
.b-dc__x:hover { color: var(--ink); }
.b-dc__x[hidden] { display: none; }
.b-dc__pop { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin: var(--sp-4) 0 0; font-size: 14px; color: var(--mut); }
.b-dc__pop:empty { display: none; }

.b-dc__chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid var(--line); border-radius: var(--r-pill); background: var(--surface); color: var(--ink); font: inherit; font-size: 14px; line-height: 1.2; white-space: nowrap; cursor: pointer; transition: background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease); }
.b-dc__chip:hover { border-color: var(--ink); }
.b-dc__chip span { color: var(--mut); font-size: 13px; font-variant-numeric: tabular-nums; }
.b-dc__chip[aria-pressed="true"] { background: var(--deep); border-color: var(--deep); color: #fff; }
.b-dc__chip[aria-pressed="true"] span { color: rgba(255, 255, 255, .75); }
.b-dc__chip--more { border-style: dashed; font-weight: var(--fw-sub); }

.b-dc__fl { margin: var(--sp-6) 0 0; }
.b-dc__row { display: flex; flex-direction: column; gap: var(--sp-2); margin-bottom: var(--sp-4); }
.b-dc__lbl { font-size: 14px; font-weight: var(--fw-sub); color: var(--mut); }
.b-dc__chips { display: flex; flex-wrap: wrap; gap: var(--sp-2); min-width: 0; }

.b-dc__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); flex-wrap: wrap; min-height: 32px; margin: var(--sp-6) 0 var(--sp-3); font-size: 14px; color: var(--mut); }
.b-dc__bar b { color: var(--ink); }
.b-dc__tog { border: 0; background: none; padding: var(--sp-1) 0; font: inherit; font-size: 14px; font-weight: var(--fw-sub); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

.b-dc__d { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); margin-bottom: var(--sp-3); overflow: hidden; }
.b-dc__dh { display: flex; width: 100%; align-items: center; gap: var(--sp-4); margin: 0; padding: var(--sp-5) var(--sp-6); border: 0; background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
h3.b-dc__dh { font-family: var(--font-head); font-size: var(--fs-h3); font-weight: var(--fw-head); }
.b-dc__dh:hover { background: var(--bg); }
.b-dc__dt { flex: 1; min-width: 0; font-family: var(--font-head); font-size: var(--fs-h3); font-weight: var(--fw-head); line-height: var(--lh-head); }
.b-dc__dn { flex: none; min-width: 32px; padding: 2px 10px; border-radius: var(--r-pill); background: var(--tint); color: var(--mut); font-size: 13px; font-weight: var(--fw-sub); text-align: center; font-variant-numeric: tabular-nums; }
.b-dc__cv { flex: none; color: var(--mut); transition: transform .2s var(--ease); }
.b-dc__dh[aria-expanded="true"] .b-dc__cv { transform: rotate(180deg); }
/* группы — карточки на тёплой подложке, заболевания — пилюли */
.b-dc__db { padding: var(--sp-6); border-top: 1px solid var(--line); }
.b-dc__db[hidden] { display: none; }
.b-dc__gs { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: var(--sp-4); align-items: stretch; }
.b-dc__gs > .b-dc__g:only-child { grid-column: 1 / -1; }
.b-dc__g { padding: var(--sp-5); background: var(--bg); border-radius: var(--r-card); }
.b-dc__gh { display: flex; align-items: center; gap: var(--sp-3); margin: 0 0 var(--sp-4); font-family: var(--font-head); font-size: 15px; font-weight: var(--fw-head); line-height: 1.25; letter-spacing: 0; text-transform: none; color: var(--ink); }
.b-dc__gn { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 var(--sp-2); border-radius: var(--r-pill); background: var(--deep); color: #fff; font-family: var(--font-body); font-size: 13px; font-weight: var(--fw-sub); font-variant-numeric: tabular-nums; }
.b-dc__ls { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0; }
.b-dc__ls li { border: 0; }
.b-dc__ls a { display: inline-flex; align-items: center; gap: var(--sp-2); min-height: 40px; padding: var(--sp-2) var(--sp-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-pill); color: var(--ink); text-decoration: none; line-height: 1.3; transition: background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease); }
.b-dc__ls a svg { flex: none; width: 14px; height: 14px; margin-right: calc(var(--sp-1) * -1); color: currentColor; opacity: .45; transition: transform .15s var(--ease), opacity .15s var(--ease); }
.b-dc__ls a:hover { background: var(--deep); border-color: var(--deep); color: #fff; box-shadow: var(--shadow-1); }
.b-dc__ls a:hover svg { opacity: 1; transform: translateX(2px); }
.b-dc__ls a:focus-visible, .b-dc__dh:focus-visible, .b-dc__chip:focus-visible, .b-dc__tog:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.b-dc mark { background: #ffe9a8; color: inherit; border-radius: 3px; padding: 0 1px; }
.b-dc__empty { padding: var(--sp-8) var(--sp-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); color: var(--mut); line-height: var(--lh-text); }
.b-dc__empty b { color: var(--ink); }
.b-dc__empty div { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); margin-top: var(--sp-4); }
.b-dc__foot { margin: var(--sp-6) 0 0; font-size: 14px; color: var(--mut); max-width: 60em; }

@media (max-width: 900px) {
  .b-dc__search { padding-left: var(--sp-4); }
  .b-dc__q { font-size: 16px; }
  .b-dc__pop { display: none; }
  .b-dc .b-sub { display: none; }
  .b-dc__chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 calc(var(--gutter) * -1); padding: 2px var(--gutter) var(--sp-2); width: calc(100% + var(--gutter) * 2); scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .b-dc__chips::-webkit-scrollbar { display: none; }
  .b-dc__chips:not(.is-open) { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 32px), transparent); }
  .b-dc__chip { min-height: 40px; }
  .b-dc__x { width: 44px; height: 44px; }
  .b-dc__tog { min-height: 44px; }
  .b-dc__chips.is-open { flex-wrap: wrap; overflow: visible; }
  .b-dc__dh { padding: var(--sp-4); gap: var(--sp-3); }
  .b-dc__dt { font-size: 17px; }
  .b-dc__db { padding: var(--sp-4); }
  .b-dc__gs { grid-template-columns: minmax(0, 1fr); }
  .b-dc__g { padding: var(--sp-4); }
}

/* оглавление слева (как в вики) — на широком экране; на узком работают чипы */
.b-dc__lay { display: block; margin-top: var(--sp-8); }
.b-dc__toc { display: none; }
@media (min-width: 1100px) {
  .b-dc__lay { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: var(--sp-8); align-items: start; }
  .b-dc__toc { display: block; position: sticky; top: calc(var(--dc-hdr, 0px) + var(--dc-stk, 0px) + var(--sp-4)); max-height: calc(100vh - var(--dc-hdr, 0px) - var(--dc-stk, 0px) - var(--sp-8)); overflow-y: auto; padding: var(--sp-5) var(--sp-4) var(--sp-6); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); scrollbar-width: thin; }
  .b-dc__toc.is-more::after { content: 'Ниже ещё отделения ↓'; position: sticky; bottom: calc(-1 * var(--sp-6)); display: flex; align-items: flex-end; justify-content: center; height: 56px; margin: -32px calc(-1 * var(--sp-4)) calc(-1 * var(--sp-6)); padding: 0 var(--sp-4) var(--sp-3); font-size: 13px; color: var(--mut); background: linear-gradient(rgba(255, 255, 255, 0), var(--surface) 62%); z-index: 2; pointer-events: none; }
  .b-dc__tt { margin: 0 0 var(--sp-3) var(--sp-2); font-size: 13px; font-weight: var(--fw-sub); letter-spacing: .06em; text-transform: uppercase; color: var(--mut); }
  .b-dc__tl, .b-dc__tg { margin: 0; padding: 0; list-style: none; }
  .b-dc__tl > li > a { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) var(--sp-3); border-radius: 10px; color: var(--ink); text-decoration: none; font-size: 15px; line-height: 1.3; transition: background .15s var(--ease); }
  .b-dc__tl > li > a:hover { background: var(--bg); }
  .b-dc__tl > li > a i { flex: none; font-style: normal; font-size: 13px; color: var(--mut); font-variant-numeric: tabular-nums; }
  .b-dc__tl { position: relative; }
  .b-dc__tl > .b-dc__ind { position: absolute; left: 0; right: 0; top: 0; height: 0; border-radius: 10px; background: var(--deep); opacity: 0; pointer-events: none; will-change: transform; transition: transform .3s var(--ease), height .3s var(--ease), opacity .2s var(--ease); }
  .b-dc__tl > li > a { position: relative; z-index: 1; }
  .b-dc__tl > li.is-active > a { color: #fff; }
  .b-dc__tl > li.is-active > a:hover { background: none; }
  .b-dc__tl > li.is-active > a i { color: rgba(255, 255, 255, .75); }
  .b-dc__tg { display: none; }
  .b-dc__tl > li > a { transition: background .2s var(--ease), color .2s var(--ease); }
  .b-dc__tg a { display: block; padding: var(--sp-1) var(--sp-2); color: var(--mut); text-decoration: none; font-size: 14px; line-height: 1.35; }
  .b-dc__tg a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
  .b-dc__tl a:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
  .b-dc__row--dept, .b-dc__row--grp { display: none; }
  .b-dc__bar { margin-top: 0; }
  .b-dc__gs { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
}

/* раскрытие отделения: только opacity и transform — без анимации высоты */
@keyframes dcIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.b-dc__db.is-in { animation: dcIn .28s var(--ease) both; }
@media (prefers-reduced-motion: reduce) { .b-dc__db.is-in { animation: none; } .b-dc__ind { transition: none; } }

/* Узор шапки (img/disease-pattern.webp) над каталогом: справа вверху, гаснет к списку и к тексту */
.b-dc { position: relative; overflow: clip; }
.b-dc::before { content: ""; position: absolute; top: 0; right: 0; width: 100%; height: 480px; background: url("/theme/v2/img/disease-pattern.webp") 100% 0 / auto 100% no-repeat; pointer-events: none; filter: drop-shadow(0 0 1px var(--accent)) drop-shadow(0 0 1px var(--accent)); -webkit-mask-image: linear-gradient(to bottom, var(--ink) 40%, transparent 100%); mask-image: linear-gradient(to bottom, var(--ink) 40%, transparent 100%); }
.b-dc > .b-c { position: relative; z-index: 1; }
@media (max-width: 900px) { .b-dc::before { opacity: .5; height: 320px; } }

/* ===== StickyBar ===== */
/* закреплённая панель «цена + Записаться»: только на узких экранах */
.b-sticky { display: none; }
@media (max-width: 700px) {
  .b-sticky { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; background: var(--surface); border-top: 1px solid var(--line); box-shadow:var(--shadow-1); padding: var(--sp-2) var(--gutter) calc(var(--sp-2) + env(safe-area-inset-bottom, 0px)); }
  .b-sticky__in { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); }
  .b-sticky__p { display: flex; flex-direction: column; margin: 0; line-height: 1.15; }
  .b-sticky__p span { font-size:var(--fs-text); color: var(--mut); }
  .b-sticky__p b { font-family: var(--font-head); font-size:var(--fs-h4); color: var(--ink); }
  .b-sticky .b-btn { min-height: 44px; padding: 0 var(--sp-5); }
  .v2:has(.b-sticky), body:has(.b-sticky) { padding-bottom: 72px; }
}
