/*
 * ТопДент — компонентный слой темы.
 *
 * Единственный источник значений — theme.json (палитра, шкалы, settings.custom).
 * Здесь только алиасы: короткие имена --td-* для читаемости правил ниже. Хексы,
 * размеры и тайминги в этом файле не дублируются — иначе появляется вторая
 * система токенов, которая расходится с дизайн-системой при первой же правке.
 * Поверхности V2: canvas белый; sage/soft/tint — едва заметный нейтральный
 * ритм, не цветные плиты. Карточки — линия, не тень. Overlay — только модалка.
 *
 * Шкала брейкпоинтов — ровно четыре значения, каждое за свою задачу:
 *   ≤1240  меню → бургер (навигация + телефон + CTA не входят уже с ~1200)
 *   ≤1024  сетки 3–4 колонки → 2; двухколоночные секции складываются
 *   ≤900   сетки → 2; появляется мобильная панель; подвал → 2 колонки
 *   ≤640   всё в одну колонку, мобильный хром
 * Новые значения не вводить: если правилу нужен пятый порог, значит проблема
 * в композиции компонента, а не в отсутствии брейкпоинта.
 */

:root {
	/* Цвет — из палитры theme.json. Хекс-фолбэк = то же значение, что в
	   palette: harness и любой контекст без WP-переменных не теряют цвет. */
	--td-deep: var(--wp--preset--color--deep, #123F35);
	--td-pine: var(--wp--preset--color--pine, #0A5F55);
	--td-primary: var(--wp--preset--color--primary, #12A08C);
	--td-mist: var(--wp--preset--color--mist, #9FDCD4);
	--td-link: var(--wp--preset--color--link, #126C58);
	--td-success: var(--wp--preset--color--success, #167C69);
	--td-white: var(--wp--preset--color--white, #FFFFFF);
	--td-paper: var(--wp--preset--color--paper, #FFFFFF);
	--td-soft: var(--wp--preset--color--soft, #F5F8F7);
	--td-warm: var(--wp--preset--color--warm, #F8FAFA);
	/* Три уровня поверхности: canvas (страница) → tint (полоса-секция) →
	   paper (карточка, поле). --td-white — примитив для текста на pine. */
	--td-canvas: var(--td-warm);
	--td-muted: var(--td-tint); /* disabled/muted surface; warm == canvas */
	--td-tint: var(--wp--preset--color--tint, #EEF5F4);
	--td-sage: var(--wp--preset--color--sage, #F2F6F5);
	--td-ink: var(--wp--preset--color--ink, #14201F);
	--td-ink-2: var(--wp--preset--color--ink-2, #52655B);
	--td-ink-3: var(--wp--preset--color--ink-3, #5A6865);
	--td-border: var(--wp--preset--color--border, #D5DEDC);
	--td-border-soft: var(--wp--preset--color--border-soft, #E4ECEA);
	/* Граница контролов: 3:1 к paper/canvas/tint (WCAG 1.4.11). Карточки и
	   разделители остаются на декоративном --td-border. */
	--td-border-strong: var(--wp--preset--color--border-strong, #7A8D88);
	--td-danger: var(--wp--preset--color--danger, var(--wp--custom--status--danger, #8B1E1E));

	/* Шрифты — из fontFamilies theme.json */
	--td-ui: var(--wp--preset--font-family--ui, "Onest", sans-serif);
	--td-read: var(--wp--preset--font-family--read, "Golos Text", sans-serif);
	/* Заголовки и крупные числа — Onest 700 (редизайн 2026-09-24).
	   Philosopher остаётся только в словесном знаке «ТопДент» (--td-brand). */
	--td-display: var(--wp--preset--font-family--ui, "Onest", sans-serif);
	--td-brand: var(--wp--preset--font-family--logo-serif, "Philosopher", Georgia, serif);

	/* Шкалы — из settings.custom theme.json */
	--td-space-1: var(--wp--preset--spacing--10, 4px);
	--td-space-2: var(--wp--preset--spacing--20, 8px);
	--td-space-3: var(--wp--preset--spacing--30, 12px);
	--td-space-4: var(--wp--preset--spacing--40, 16px);
	--td-space-5: var(--wp--preset--spacing--50, 24px);
	--td-space-6: var(--wp--preset--spacing--60, 32px);
	--td-space-7: var(--wp--preset--spacing--70, 48px);
	--td-space-8: var(--wp--preset--spacing--80, 64px);
	--td-space-9: var(--wp--preset--spacing--90, 80px);
	--td-space-10: var(--wp--preset--spacing--100, 112px);
	--td-fs-micro: var(--wp--custom--type--micro, 0.75rem);
	--td-fs-caption: var(--wp--custom--type--caption, 0.8125rem);
	--td-fs-small: var(--wp--custom--type--small, 0.875rem);
	--td-fs-body: var(--wp--custom--type--body, 1rem);
	--td-fs-lead: var(--wp--custom--type--lead, 1.125rem);
	--td-fs-title: var(--wp--custom--type--title, 1.375rem);
	--td-fs-h3: var(--wp--custom--type--h3, 1.25rem);
	--td-fs-h2: var(--wp--custom--type--h2, clamp(1.75rem, 2.4vw + 1rem, 2.5rem));
	--td-fs-hero: var(--wp--custom--type--hero, clamp(2.375rem, 4.4vw + 1rem, 3.75rem));
	--td-fs-display-lg: var(--wp--custom--type--display-lg, 3.5rem);
	--td-fs-display-xl: var(--wp--custom--type--display-xl, 4.5rem);
	--td-lh-display: 1.14;
	--td-lh-title: 1.3;
	--td-lh-body: 1.5;
	--td-lh-caption: 1.45;
	--td-track-tight: var(--wp--custom--track--tight, -.01em);
	--td-track-display: var(--wp--custom--track--display, -.02em);
	--td-track-hero: var(--wp--custom--track--hero, -.03em);
	--td-track-label: var(--wp--custom--track--label, .04em);
	--td-track-caps: var(--wp--custom--track--caps, .06em);
	--td-gutter: clamp(1.25rem, 3vw, var(--wp--custom--gutter--desktop, 48px));
	--td-shell: var(--wp--custom--shell--content, 1440px);
	--td-container: var(--wp--custom--container--content, 1440px);
	--td-container-wide: var(--wp--custom--shell--wide, 1440px);
	--td-read-w: var(--wp--custom--container--reading, 72ch);
	--td-form-w: var(--wp--custom--container--form, 36rem);
	--td-narrow-w: var(--wp--custom--container--narrow, 48rem);
	--td-target: var(--wp--custom--target, 44px);
	--td-z-sticky: var(--wp--custom--z--sticky, 40);
	--td-z-drawer: var(--wp--custom--z--drawer, 45);
	--td-z-bar: var(--wp--custom--z--bar, 50);
	--td-z-cookie: var(--wp--custom--z--cookie, 60);
	--td-z-skip: var(--wp--custom--z--skip, 100);
	--td-z-modal: var(--wp--custom--z--modal, 500);
	--td-bar-h: 76px;
	--td-ease: var(--wp--custom--motion--ease, cubic-bezier(.2, 0, .2, 1));
	--td-fast: var(--wp--custom--motion--fast, 120ms);
	--td-base: var(--wp--custom--motion--base, 180ms);
	--td-spin: var(--wp--custom--motion--spin, 700ms);
	--td-spring: var(--wp--custom--motion--spring, cubic-bezier(.22, 1, .36, 1));
	--td-stagger: var(--wp--custom--motion--stagger, 70ms);
	--td-reveal: var(--wp--custom--motion--reveal, 700ms);
	--td-orbit: var(--wp--custom--motion--orbit, 22s);

	--td-r-chip: var(--wp--custom--radius--chip, 8px);
	--td-r-control: var(--wp--custom--radius--control, 8px);
	--td-r-field: var(--wp--custom--radius--field, 8px);
	--td-r-media: var(--wp--custom--radius--media, 12px);
	--td-r-row: var(--wp--custom--radius--row, 12px);
	--td-r-card: var(--wp--custom--radius--card, 12px);
	--td-r-panel: var(--wp--custom--radius--panel, 16px);
	--td-r-hero: var(--wp--custom--radius--hero, 16px);
	--td-r-full: var(--wp--custom--radius--full, 999px);

	--td-rhythm-open: var(--wp--custom--rhythm--open, 96px);
	--td-rhythm: var(--wp--custom--rhythm--default, 80px);
	--td-rhythm-dense: var(--wp--custom--rhythm--dense, 64px);
	--td-rhythm-scale: 1;

	--td-measure-display: var(--wp--custom--measure--display, 22ch);
	--td-measure-lead: var(--wp--custom--measure--lead, 46ch);
	--td-measure-prose: var(--wp--custom--measure--prose, 68ch);

	--td-hairline: inset 0 0 0 1px var(--td-border);
	--td-hairline-soft: inset 0 0 0 1px var(--td-border-soft);
	--td-hairline-strong: inset 0 0 0 1px var(--td-border-strong);
	--td-float: var(--wp--custom--elevation--float, 0 8px 24px rgba(20, 32, 31, .08));
	--td-lift: var(--td-hairline);
	--td-sticky: var(--wp--custom--elevation--sticky, 0 1px 0 rgba(20, 32, 31, .06));
	--td-overlay: var(--wp--custom--elevation--overlay, 0 24px 48px rgba(10, 40, 35, .18));
	--td-scrim: var(--wp--custom--scrim, rgba(10, 40, 35, .55));
	--td-err-surface: var(--wp--custom--status--err-surface, #FDEFEF);
	--td-err-line: var(--wp--custom--status--err-line, rgba(194, 46, 46, .3));
	--td-ok-line: var(--wp--custom--status--ok-line, rgba(22, 124, 105, .35));
}

@media (max-width: 900px) {
	:root { --td-rhythm-scale: var(--wp--custom--rhythm--mobile-scale); }
}

/* ── Основа ───────────────────────────────────────────────── */

html {
	scroll-behavior: smooth;
	overflow-x: clip;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
}

body {
	margin: 0;
	min-width: 0;
	overflow-x: clip;
	background: var(--td-canvas);
	color: var(--td-ink);
	font-family: var(--td-ui);
	font-size: var(--td-fs-body);
	line-height: 1.5;
	overflow-wrap: break-word;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Регистр заголовков: H1/H2 — Onest 700 с плотным трекингом, H3 и ниже —
   Onest 600. Philosopher — только словесный знак в логотипе. */
h1, h2 { font-family: var(--td-display); font-weight: 700; letter-spacing: var(--td-track-tight); margin: 0; text-wrap: balance; }
h3, h4, h5, h6 { font-family: var(--td-ui); font-weight: 600; margin: 0; }
/* text-wrap: pretty — только на коротких вводных абзацах: на сотне абзацев длинной
   страницы он делает каждый пересчёт раскладки (в т.ч. при подмене шрифтов) заметно дороже. */
p { margin: 0; }
.td-hero__lead, .td-head p, .td-plan__intro > p, .td-quote blockquote { text-wrap: pretty; }
img { max-width: 100%; height: auto; }

a { color: var(--td-link); text-decoration: none; transition: color var(--td-fast) var(--td-ease); }
a:hover { color: var(--td-deep); text-decoration: underline; text-underline-offset: 3px; }

/* Ссылка внутри текста отличается не только цветом (WCAG 1.4.1):
   подчёркивание мягким тоном, на hover — основным. */
p > a:not(.td-btn):not(.td-link), .td-prose li a, .td-consent a, .td-faq__answer a {
	text-decoration: underline;
	text-decoration-color: var(--td-mist);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
p > a:not(.td-btn):not(.td-link):hover, .td-prose li a:hover, .td-consent a:hover, .td-faq__answer a:hover { text-decoration-color: currentColor; }

:where(a, button, summary, input, textarea, select, [role="button"], [role="tab"]):focus-visible {
	outline: 2px solid var(--td-link);
	outline-offset: 2px;
	border-radius: 4px;
}

/* На тёмной pine-поверхности зелёный фокус-ринг сливается с фоном — там он
   становится mist (4.9:1). Футер с 2026-09 светлый (sage): mist на нём даёт
   1.4:1, поэтому футер остаётся на общем --td-link (5.8:1). */
.td-section--pine :where(a, button, summary, input, textarea):focus-visible {
	outline-color: var(--td-mist);
}

::selection { background: var(--td-tint); color: var(--td-deep); }

.td-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: var(--td-z-skip);
	background: var(--td-paper);
	color: var(--td-deep);
	padding: 12px 18px;
	border-radius: var(--td-r-control);
	box-shadow: var(--td-float);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
}
.td-skip:focus { left: 16px; top: 16px; }

/* ── Раскладка ────────────────────────────────────────────── */

/*
 * Flow-раскладка WordPress добавляет margin-block-start между сиблингами
 * (--wp--preset--spacing--50 = 24px). Вертикальный ритм у нас задают padding
 * секций и gap флекс-контейнеров, поэтому второй источник отбивок только
 * рассогласовывает шкалу: внутри .td-prose к gap 18px добавлялись ещё 24px.
 * Специфичность (0,1,0) перебивает правило ядра (0,0,1), но уступает
 * собственным правилам компонентов вида .td-prose h2 — они сохраняются.
 * У main блок-гэп снят штатно, через blockGap в шаблонах.
 */
.entry-content > *,
.td-section > *,
.td-shell > *,
.td-prose > *,
.td-pagehead > *,
.td-pagehead__inner > * { margin-block: 0; }

.td-shell {
	width: 100%;
	max-width: calc(var(--td-shell) + var(--td-gutter) * 2);
	margin: 0 auto;
	padding-inline: var(--td-gutter);
	box-sizing: border-box;
	min-width: 0;
}
.td-shell--narrow { max-width: calc(var(--td-narrow-w) + var(--td-gutter) * 2); }
.td-shell--read { max-width: calc(var(--td-read-w) + var(--td-gutter) * 2); }
.td-shell--form { max-width: calc(var(--td-form-w) + var(--td-gutter) * 2); }

/* Четыре режима вертикального ритма (токены rhythm.* в theme.json); на
   мобильном все четыре масштабируются одним коэффициентом. */
.td-section { padding-block: calc(var(--td-rhythm) * var(--td-rhythm-scale)); }
.td-section--open { padding-block: calc(var(--td-rhythm-open) * var(--td-rhythm-scale)); }
.td-section--dense { padding-block: calc(var(--td-rhythm-dense) * var(--td-rhythm-scale)); }
/* rhythm-air-2026-09-18: pagehead already has 64px bottom; default 104px
   on the next section stacked into a void, then prose packed tight. Pull
   the first section down to dense so the join matches inner rhythm. */
.td-pagehead + .td-section,
.td-pagehead + :is(.wp-block-post-content, .entry-content) > .td-section:first-child {
	padding-top: calc(var(--td-rhythm-dense) * var(--td-rhythm-scale));
}
.td-section--soft { background: var(--td-tint); }
.td-section--tint { background: var(--td-tint); }
.td-section--sage { background: var(--td-sage); }
.td-section--paper { background: var(--td-paper); }
.td-section--pine { background: var(--td-pine); color: var(--td-white); }
.td-section--sage .td-doctor__media--photo { --td-cut: var(--td-sage); }

/* ── Заголовок секции ─────────────────────────────────────── */

.td-head { display: flex; flex-direction: column; gap: var(--td-space-3); max-width: min(760px, var(--td-read-w)); margin-bottom: var(--td-space-6); }
.td-section--dense .td-head { margin-bottom: var(--td-space-7); }

/* Надзаголовок — пилюля с точкой-маркером; без капса и без тик-ряда */
.td-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	align-self: flex-start;
	margin: 0;
	padding: 7px 14px 7px 11px;
	border-radius: var(--td-r-full);
	box-shadow: var(--td-hairline);
	background: var(--td-paper);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	letter-spacing: .01em;
	color: var(--td-ink-2);
}
.td-eyebrow i { width: 8px; height: 8px; border-radius: var(--td-r-full); background: var(--td-primary); flex-shrink: 0; }
.td-section--pine .td-eyebrow { background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); color: var(--td-white); }
.td-section--pine .td-eyebrow i { background: var(--td-mist); }

.td-head :is(h1, h2) { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); }
.td-section--pine .td-head :is(h1, h2) { color: var(--td-white); }

.td-head p { font-size: var(--td-fs-lead); line-height: 1.55; color: var(--td-ink-2); }
.td-section--pine .td-head p { color: var(--td-tint); }


/* ── Кнопки ───────────────────────────────────────────────── */

.td-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	padding: 0 var(--td-space-5);
	border: 0;
	border-radius: var(--td-r-control);
	box-sizing: border-box;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 19px;
	text-align: center;
	cursor: pointer;
	transition: background var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease);
}
.td-btn:hover { text-decoration: none; }

.td-btn--primary { background: var(--td-deep); color: var(--td-white); }
.td-btn--primary:hover { background: var(--td-pine); color: var(--td-white); }
.td-btn--primary:active { background: var(--td-pine); box-shadow: inset 0 0 0 2px var(--td-deep); }

.td-btn--secondary { background: var(--td-paper); color: var(--td-ink); box-shadow: var(--td-hairline-strong); }
.td-btn--secondary:hover { background: var(--td-soft); color: var(--td-ink); box-shadow: inset 0 0 0 1px var(--td-deep); }
.td-btn--secondary:active { background: var(--td-tint); box-shadow: inset 0 0 0 1px var(--td-pine); }

.td-btn--onpine { background: var(--td-white); color: var(--td-deep); }
.td-btn--onpine:hover { background: var(--td-tint); color: var(--td-deep); }
.td-btn--onpine:active { background: var(--td-mist); color: var(--td-deep); }

/*
 * Отключённое состояние. Скрипт отключает кнопку отправки после первого
 * нажатия (assets/js/topdent.js), поэтому вид обязателен — иначе кнопка
 * выглядит рабочей и пациент жмёт её повторно. Состояние передаётся
 * реальной сменой цвета, а не только прозрачностью (правило дизайн-системы:
 * состояние никогда не сигнализируется одним цветом/одной альфой).
 */
.td-btn:disabled,
.td-btn[aria-disabled="true"] {
	background: var(--td-muted);
	color: var(--td-ink-2);
	box-shadow: var(--td-hairline);
	cursor: default;
	pointer-events: none;
}


.td-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.td-actions--after-info { margin-top: 6px; }

.td-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 19px;
	color: var(--td-link);
}
.td-link:hover { color: var(--td-deep); text-decoration: none; }
.td-link span { transition: transform var(--td-fast) var(--td-ease); }
.td-link:hover span { transform: translateX(3px); }
.td-link--download:hover span { transform: translateY(2px); }

/* ── Шапка ────────────────────────────────────────────────── */

/* Верхняя полоса — светлая: над тёмным hero остаётся один белый блок
   (полоса + шапка), без чередования тёмное/белое/тёмное. */
.td-topbar { background: var(--td-soft); color: var(--td-ink-2); border-bottom: 1px solid var(--td-border-soft); }
.td-topbar .td-shell {
	min-height: 36px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-caption);
	line-height: 1.35;
	min-width: 0;
}
.td-topbar a { color: var(--td-ink-2); text-decoration: none; white-space: nowrap; }
.td-topbar a:hover { color: var(--td-deep); }
.td-topbar__place { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; }
.td-topbar__place i { font-style: normal; color: var(--td-primary); font-weight: 700; }
.td-topbar__right { display: inline-flex; align-items: center; gap: 18px; min-width: 0; }
.td-topbar__promo { color: var(--td-deep); min-width: 0; }
.td-topbar__promo b { font-weight: 700; color: var(--td-link); margin-right: 2px; }
.td-topbar__promo i { font-style: normal; transition: transform var(--td-fast) var(--td-ease); display: inline-block; }
.td-topbar__promo:hover i { transform: translateX(3px); }
.td-topbar__short { display: none; }
.td-countdown { font-variant-numeric: tabular-nums; }

/* header-nav-motion-2026-09-18 */
.td-header {
	position: sticky;
	top: 0;
	z-index: var(--td-z-sticky);
	background: var(--td-canvas);
	border-bottom: 1px solid var(--td-border);
}
.td-header > .td-shell {
	min-height: 86px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: 16px;
	transition: min-height var(--td-base) var(--td-ease);
}
.td-header.is-scrolled > .td-shell { min-height: 76px; }
.td-logo { justify-self: start; }
.td-nav { justify-self: center; }
.td-header__cta { justify-self: end; }

.td-logo { display: inline-flex; align-items: center; gap: 14px; flex-shrink: 0; }
.td-logo:hover { text-decoration: none; }
.td-logo:hover .td-logo__name { color: var(--td-deep); }
.td-logo__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.td-logo__mark img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	filter: drop-shadow(0 3px 8px rgba(10, 40, 35, .16));
	transition: transform var(--td-base) var(--td-ease);
}
.td-logo:hover .td-logo__mark img { transform: scale(1.05); }
.td-logo__text { display: flex; flex-direction: column; gap: 1px; }
.td-logo__name { font-family: var(--td-brand); font-weight: 400; font-size: clamp(1.25rem, 1rem + 1.2vw, 1.75rem); line-height: 1.15; color: var(--td-pine); white-space: nowrap; transition: color var(--td-fast) var(--td-ease); }
.td-logo__desc {
	font-family: var(--td-ui);
	font-weight: 400;
	font-size: var(--td-fs-micro);
	line-height: 1.4;
	letter-spacing: var(--td-track-caps);
	text-transform: uppercase;
	color: var(--td-ink-3);
	white-space: nowrap;
}

.td-logo--dark .td-logo__name { color: var(--td-white); }
.td-logo--dark .td-logo__desc { color: var(--td-mist); }

.td-nav { display: flex; align-items: center; gap: 2px; }
/* Только верхний уровень: ссылки подменю оформляются своим блоком, иначе
   min-height 44px из этого правила растягивает их до 60px. */
.td-nav > a, .td-nav__group > a {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 12px;
	border-radius: var(--td-r-control);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-small);
	line-height: 18px;
	color: var(--td-ink);
	white-space: nowrap;
	transition: color var(--td-fast) var(--td-ease), background var(--td-fast) var(--td-ease);
}
.td-nav > a::after, .td-nav > .td-nav__group > a::after {
	content: "";
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 10px;
	height: 2px;
	border-radius: 1px;
	background: var(--td-primary);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--td-base) var(--td-ease);
	pointer-events: none;
}
:is(.td-nav > a, .td-nav__group > a):hover {
	background: transparent;
	color: var(--td-deep);
	text-decoration: none;
}
:is(.td-nav > a, .td-nav > .td-nav__group > a):hover::after,
.td-nav > .td-nav__group:hover > a::after,
.td-nav > .td-nav__group:has(.td-nav__toggle[aria-expanded="true"]) > a::after {
	transform: scaleX(1);
}
.td-nav > .td-nav__group:hover > a,
.td-nav > .td-nav__group:has(.td-nav__toggle[aria-expanded="true"]) > a { color: var(--td-deep); }
:is(.td-nav > a, .td-nav__group > a)[aria-current="page"] { background: var(--td-tint); color: var(--td-deep); }
:is(.td-nav > a, .td-nav > .td-nav__group > a)[aria-current="page"]::after { transform: scaleX(0); }
/* Раздел, внутри которого находится открытая страница: та же линия, что
   на hover — не заливка, иначе неактивный пункт читается как вкладка. */
:is(.td-nav > a, .td-nav__group > a).is-section { color: var(--td-deep); box-shadow: none; }
:is(.td-nav > a, .td-nav > .td-nav__group > a).is-section::after { transform: scaleX(1); }

.td-header__cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.td-header__phone {
	position: relative;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	color: var(--td-ink);
	white-space: nowrap;
	transition: color var(--td-fast) var(--td-ease);
}
.td-header__phone::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -2px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform var(--td-base) var(--td-ease);
	pointer-events: none;
}
.td-header__phone:hover { color: var(--td-deep); text-decoration: none; }
.td-header__phone:hover::after { transform: scaleX(1); }
.td-header__cta .td-btn--primary { transition: background var(--td-fast) var(--td-ease), transform var(--td-fast) var(--td-ease); }
.td-header__cta .td-btn--primary:hover { transform: translateY(-1px); }

.td-burger {
	display: none;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: var(--td-r-control);
	background: var(--td-soft);
	box-shadow: var(--td-hairline);
	cursor: pointer;
	position: relative;
	color: var(--td-deep);
}
.td-burger:hover { background: var(--td-tint); }
.td-burger:active { background: var(--td-mist); }
.td-burger i, .td-burger::before, .td-burger::after {
	content: "";
	position: absolute;
	left: 14px;
	right: 14px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
	transition: transform var(--td-base) var(--td-ease), opacity var(--td-fast) var(--td-ease);
}
.td-burger::before { top: 17px; }
.td-burger i { top: 23px; }
.td-burger::after { bottom: 17px; }
.td-burger[aria-expanded="true"]::before { transform: translateY(6px) rotate(45deg); }
.td-burger[aria-expanded="true"] i { opacity: 0; }
.td-burger[aria-expanded="true"]::after { transform: translateY(-6px) rotate(-45deg); }

.td-drawer { display: none; background: var(--td-paper); border-bottom: 1px solid var(--td-border-soft); }
.td-drawer[data-open="true"] { display: block; }
.td-drawer nav { display: flex; flex-direction: column; padding-block: 12px 20px; }
.td-drawer nav a {
	display: flex;
	align-items: center;
	min-height: 52px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-lead);
	color: var(--td-ink);
	border-bottom: 1px solid var(--td-border-soft);
}
.td-drawer nav a:hover { text-decoration: none; color: var(--td-deep); }
.td-drawer .td-actions {
	margin-top: 20px;
	flex-direction: column;
	align-items: stretch;
}
.td-drawer .td-btn { flex: 1 1 auto; width: 100%; }

@media (max-width: 1240px) {
	.td-header > .td-shell {
		display: flex;
		justify-content: space-between;
		gap: 16px;
	}
	.td-nav, .td-header__phone { display: none; }
	.td-burger { display: block; }
	/* Короткая акция с порога бургера: длинная строка + адрес + иконки
	   раздували страницу, пока десктоп-хром ещё не складывался. */
	.td-topbar__full { display: none; }
	.td-topbar__short { display: inline; }
	.td-topbar .td-social { display: none; }
	.td-topbar__right { gap: 10px; }
}

@media (max-width: 900px) {
	/* С порога мобильной панели дублировать CTA в шапке незачем. */
	.td-header__cta .td-btn { display: none; }
}

@media (max-width: 768px) {
	.td-topbar .td-shell { gap: 10px; }
	.td-topbar__place { max-width: 42%; }
	.td-topbar__place span { overflow: hidden; text-overflow: ellipsis; }
	.td-topbar__promo { font-size: var(--td-fs-micro); }
}

@media (max-width: 640px) {
	.td-topbar .td-shell { min-height: 34px; font-size: var(--td-fs-micro); justify-content: center; }
	.td-topbar__place { display: none; }
	.td-header > .td-shell, .td-header.is-scrolled > .td-shell { min-height: 72px; }
	.td-logo__mark img { width: 44px; height: 44px; }
	.td-logo__name { font-size: var(--td-fs-title); }
	.td-header__cta .td-btn { display: none; }
}

/* ── Первый экран: тёмный canvas, сосновая панель приёма ───────── */

.td-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background: var(--td-deep);
	color: var(--td-white);
	border-bottom: 0;
	padding-block: calc(var(--td-rhythm-open) * .7 * var(--td-rhythm-scale)) calc(var(--td-rhythm-open) * .55 * var(--td-rhythm-scale));
}
.td-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: start; }
/* Портрет + карточка приёма: карточка перекрывает только нижнюю кромку фото
   (плечи), лицо остаётся открытым. */
.td-hero__visual { position: relative; padding-bottom: 150px; }
.td-hero__portrait { box-shadow: var(--td-hairline); }
.td-consult-card--float { position: absolute; left: 28px; right: 28px; bottom: 0; z-index: 2; box-shadow: var(--td-hairline); padding: 22px 26px; gap: 14px; }
.td-consult-card--float h2 { font-size: var(--td-fs-h3); line-height: 26px; }
.td-consult-card--float .td-check { flex-direction: row; flex-wrap: wrap; gap: 8px 18px; }
.td-consult-card--float .td-btn { align-self: flex-start; }
.td-hero__body { display: flex; flex-direction: column; gap: var(--td-space-5); }

.td-hero h1 {
	font-size: var(--td-fs-hero);
	line-height: var(--td-lh-display);
	letter-spacing: var(--td-track-display);
	max-width: none;
	text-wrap: pretty;
	color: var(--td-white);
}
.td-hero__lead { font-size: var(--td-fs-lead); line-height: 1.55; color: var(--td-tint); max-width: 42ch; }

.td-actions--hero { align-items: center; gap: 12px 24px; }
.td-hero__phone {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-lead);
	line-height: 22px;
	color: var(--td-white);
	white-space: nowrap;
}
.td-hero__phone:hover { color: var(--td-mist); }

/* Строка подтверждённых фактов: разделители точками, не чипы */
.td-proofline { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 0; }
.td-proofline li { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); display: inline-flex; align-items: baseline; }
.td-proofline li + li::before { content: "·"; color: var(--td-primary); font-weight: 700; margin-inline: 12px; }
.td-proofline b { font-family: var(--td-ui); font-weight: 600; color: var(--td-ink); margin-right: 6px; }
.td-hero .td-proofline li { color: var(--td-mist); }
.td-hero .td-proofline b { color: var(--td-white); }

/* Карточка «что входит в консультацию» — вместо фото-заглушки */
.td-consult-card {
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-hairline);
	padding: var(--td-space-6);
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.td-consult-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.td-consult-card h2 { font-size: 24px; line-height: 30px; }
.td-consult-card__free {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-deep);
	background: var(--td-tint);
	border-radius: var(--td-r-full);
	padding: 6px 14px;
	white-space: nowrap;
}
.td-check { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.td-check li {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	font-size: var(--td-fs-body);
	line-height: 22px;
	color: var(--td-ink);
}
.td-check li::before {
	content: "";
	flex-shrink: 0;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	background-color: var(--td-link);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}
.td-consult-card__note { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); }

@media (max-width: 1024px) {
	.td-hero__grid { grid-template-columns: 1fr; gap: 36px; }
	.td-hero h1 { max-width: none; }
	.td-hero__visual { padding-bottom: 0; display: flex; flex-direction: column; gap: 16px; }
	.td-consult-card--float { position: static; width: auto; }
	.td-consult-card--float .td-check { flex-direction: column; }
}
@media (max-width: 900px) {
	.td-proofline, .td-hero .td-proofline { flex-direction: column; gap: 4px; }
	.td-proofline li + li::before, .td-hero .td-proofline li + li::before { display: none; }
}
@media (max-width: 640px) {
	.td-proofline { flex-direction: column; gap: 4px; }
	.td-proofline li + li::before { display: none; }
}

/* ── Полоса-оффер: тонкая линейка, не второй баннер ─────────────── */

.td-promo { background: var(--td-deep); color: var(--td-white); border-block: 0; }
.td-promo__value b { color: var(--td-white); }
.td-promo__value span { color: var(--td-mist); }
.td-promo__body h2 { color: var(--td-white); font-weight: 500; }
.td-promo .td-btn--primary { background: var(--td-white); color: var(--td-deep); box-shadow: none; }
.td-promo .td-btn--primary:hover { background: var(--td-mist); color: var(--td-deep); }
.td-promo__inner { display: flex; align-items: center; gap: 28px; padding-block: 16px; }
.td-promo__value { display: flex; align-items: baseline; gap: 10px; flex-shrink: 0; min-width: 0; }
.td-promo__value b { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-title); line-height: 1; letter-spacing: var(--td-track-display); }
.td-promo__value span { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); line-height: 18px; }
.td-promo__body { display: flex; flex-direction: column; gap: 0; min-width: 0; flex: 1; }
.td-promo__body h2 { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-body); line-height: 22px; letter-spacing: 0; }
.td-promo__conds { list-style: none; margin: 0; padding: 0; display: none; }
.td-promo .td-btn { margin-left: auto; flex-shrink: 0; min-height: 44px; padding-inline: 18px; }

@media (max-width: 900px) {
	.td-promo__inner { flex-wrap: wrap; gap: 12px 20px; padding-block: 16px; }
	.td-promo__value { min-width: 0; }
	.td-promo__value b { font-size: var(--td-fs-h3); }
	.td-promo__body { flex-basis: calc(100% - 120px); }
	.td-promo .td-btn { margin-left: 0; width: 100%; }
}
@media (max-width: 640px) {
	.td-promo__inner { gap: 12px; }
	.td-promo__body { flex-basis: 100%; }
	.td-promo__body h2 { font-size: var(--td-fs-body); line-height: 22px; }
}

/* ── План как артефакт ────────────────────────────────────── */

.td-plan__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 72px; align-items: start; }
.td-plan__intro { display: flex; flex-direction: column; gap: 22px; position: sticky; top: 112px; }
.td-plan__intro > p { font-size: var(--td-fs-lead); line-height: 27px; color: var(--td-ink-2); max-width: var(--td-measure-lead); }
.td-plan__intro > p a { color: var(--td-link); font-weight: 600; }
.td-plan__intro .td-btn { align-self: flex-start; }
.td-plan__rule { padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; max-width: 52ch; border-radius: var(--td-r-card); box-shadow: var(--td-hairline); background: var(--td-paper); }
.td-plan__rule b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-ink); }
.td-plan__rule p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }

.td-plan {
	margin: 0;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-hairline);
	padding: 28px 32px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.td-plan__head { display: flex; flex-direction: column; gap: 4px; padding-bottom: 14px; border-bottom: 1px solid var(--td-border-soft); }
.td-plan__eyebrow { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-micro); line-height: 1.4; letter-spacing: var(--td-track-caps); text-transform: uppercase; color: var(--td-link); }
.td-plan__head b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-lead); line-height: 25px; color: var(--td-ink); }
.td-plan__rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.td-plan__row { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 11px 0; border-bottom: 1px dashed var(--td-border-soft); }
.td-plan__num { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-micro); letter-spacing: var(--td-track-label); color: var(--td-link); }
.td-plan__name { font-size: var(--td-fs-body); line-height: 22px; color: var(--td-ink); }
.td-plan__price { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-deep); white-space: nowrap; font-variant-numeric: tabular-nums; }
.td-plan__row--free .td-plan__price { color: var(--td-link); }
.td-plan__totals { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.td-plan__totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.td-plan__totals dt { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-plan__totals dd { margin: 0; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-deep); white-space: nowrap; font-variant-numeric: tabular-nums; }
.td-plan__discount dd { color: var(--td-success); }
.td-plan__total { padding-top: 12px; border-top: 1px solid var(--td-border); }
.td-plan__total dt { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); color: var(--td-ink); }
.td-plan__total dd { font-size: 24px; line-height: 30px; font-weight: 700; }
.td-plan__note { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); }

@media (max-width: 1024px) {
	.td-plan__grid { grid-template-columns: 1fr; gap: var(--td-space-6); }
}
@media (max-width: 640px) {
	.td-plan { padding: 22px 20px; }
	.td-plan__row { grid-template-columns: 24px minmax(0, 1fr) auto; gap: 10px; }
}

/* ── Нумерованные строки («С чем вы пришли») ─────────────── */

.td-rows { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--td-space-9); border-top: 1px solid var(--td-border); }
.td-row { position: relative; display: grid; grid-template-columns: 36px minmax(0, 1fr) 28px; gap: 18px; align-items: start; padding: 26px 0; border-bottom: 1px solid var(--td-border-soft); }
.td-row__num { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-caption); line-height: 18px; letter-spacing: var(--td-track-label); color: var(--td-link); padding-top: 4px; }
.td-row__body { display: flex; flex-direction: column; gap: 6px; }
.td-row__body h3 { font-size: var(--td-fs-h3); line-height: 26px; }
.td-row__body p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-row__link { color: var(--td-ink); }
.td-row__link::after { content: ""; position: absolute; inset: 0; }
.td-row:hover .td-row__link { color: var(--td-deep); text-decoration: none; }
.td-row__arrow { color: var(--td-link); font-size: var(--td-fs-lead); line-height: 26px; transition: transform var(--td-fast) var(--td-ease); }
.td-row:hover .td-row__arrow { transform: translateX(3px); }
.td-row--exit { grid-column: 1 / -1; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; border-bottom: 0; padding-block: 26px 0; }
.td-row--exit .td-row__num { color: var(--td-ink-3); padding-top: 0; }

@media (max-width: 1024px) {
	.td-rows { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.td-row { grid-template-columns: 32px minmax(0, 1fr) 20px; gap: 12px; padding: 18px 0; }
	.td-row--exit { grid-template-columns: 32px minmax(0, 1fr); row-gap: 14px; }
	.td-row--exit .td-btn { grid-column: 2; justify-self: start; }
}

/* ── Авторский подход ──────────────────────────────────────── */

.td-approach__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: 56px; align-items: start; }
.td-approach__intro { display: flex; flex-direction: column; gap: 20px; }
.td-approach__intro .td-btn { align-self: flex-start; }
.td-approach__intro h2 { color: var(--td-ink); }
.td-approach__intro p { font-size: var(--td-fs-body); line-height: 25px; color: var(--td-ink-2); }

.td-steps { display: flex; flex-direction: column; }
.td-step {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 20px;
	padding: 22px 0;
	border-top: 1px solid var(--td-border-soft);
}
.td-step:first-child { border-top: 0; padding-top: 0; }
.td-step:last-child { padding-bottom: 0; }
.td-step__num { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-h3); line-height: 27px; color: var(--td-link); }
.td-step h3 { font-size: var(--td-fs-h3); line-height: 26px; color: var(--td-ink); margin-bottom: 6px; }
.td-step p { font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink-2); }

@media (max-width: 1024px) {
	.td-approach__grid { grid-template-columns: 1fr; gap: var(--td-space-6); }
}
@media (max-width: 640px) {
	.td-step { grid-template-columns: 40px minmax(0, 1fr); gap: 14px; }
}

/* ── Рельс шагов («первый визит») ────────────────────────── */

.td-rail { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; position: relative; }
.td-rail__item { position: relative; display: flex; flex-direction: column; gap: 8px; padding-right: 12px; }
.td-rail__item::before { content: ""; position: absolute; left: 16px; right: -32px; top: 16px; height: 1px; background: var(--td-border); }
.td-rail__item:last-child::before { display: none; }
.td-rail__num {
	position: relative;
	z-index: 1;
	width: 32px;
	height: 32px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: inset 0 0 0 1px var(--td-border);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
}
.td-rail__item h3 { font-size: var(--td-fs-h3); line-height: 26px; }
.td-rail__item p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }

@media (max-width: 900px) {
	.td-rail { grid-template-columns: 1fr; gap: 22px; }
	.td-rail__item::before { left: 16px; right: auto; top: 16px; bottom: -22px; width: 1px; height: auto; }
	.td-rail__item { display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 18px; row-gap: 4px; padding-right: 0; }
	.td-rail__num { grid-row: 1 / span 2; margin-bottom: 0; }
}

/* ── Врач ─────────────────────────────────────────────────── */

.td-doctor { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 72px; align-items: center; }
.td-doctor__media {
	background: var(--td-tint);
	border-radius: var(--td-r-hero);
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 18px;
}
.td-doctor__media b {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-h3);
	line-height: 26px;
	color: var(--td-pine);
}
.td-doctor__media em { font-style: normal; font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-doctor__slot--pill {
	margin-top: 10px;
	align-self: flex-start;
	background: rgba(255, 255, 255, .75);
	border-radius: var(--td-r-full);
	padding: 8px 14px;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-ink-2);
}
.td-doctor__initials {
	width: 108px;
	height: 108px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	color: var(--td-pine);
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--td-hairline-soft);
}
.td-doctor__slot { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); }

/* Портретная панель: единственное место среза угла (Master Art Direction).
   Срез — треугольник цвета фона секции поверх правого верхнего угла, чтобы
   остальные углы сохранили радиус; на узких экранах срез отключается. */
.td-doctor__media--photo { position: relative; padding: 0; overflow: hidden; margin: 0; background: var(--td-paper); box-shadow: var(--td-hairline-soft); --td-cut: var(--td-paper); }
.td-section--tint .td-doctor__media--photo { --td-cut: var(--td-tint); }
.td-section--soft .td-doctor__media--photo, .td-hero .td-doctor__media--photo { --td-cut: var(--td-soft); }
.td-doctor__media--photo picture, .td-doctor__media--photo img { display: block; width: 100%; }
.td-doctor__media--photo img { height: auto; aspect-ratio: 8 / 5; object-fit: cover; object-position: 50% 20%; }
.td-doctor__media--photo::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	border-style: solid;
	border-width: 0 64px 64px 0;
	border-color: transparent var(--td-cut) transparent transparent;
}
.td-doctor__tag {
	position: absolute;
	left: 16px;
	bottom: 16px;
	display: flex;
	flex-direction: column;
	gap: 1px;
	padding: 10px 14px;
	border-radius: var(--td-r-row);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-soft);
}
.td-doctor__tag b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-small); line-height: 19px; color: var(--td-ink); }
.td-doctor__tag span { font-size: var(--td-fs-micro); line-height: 16px; color: var(--td-ink-2); }
.td-hero__portrait .td-doctor__tag { top: 16px; bottom: auto; }
.td-doctor__licence { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); } /* ink-3 на tint = 4,15:1 — ниже AA */
.td-doctor__body { display: flex; flex-direction: column; gap: 20px; }
.td-doctor__role { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-lead); line-height: 24px; color: var(--td-deep); }
.td-doctor__lead { font-size: var(--td-fs-body); line-height: 25px; color: var(--td-ink-2); }
.td-principles { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.td-principles li { padding: 0; }
.td-principles b { display: block; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-ink); }
.td-principles span { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }

@media (max-width: 1024px) {
	.td-doctor { grid-template-columns: 1fr; gap: 28px; }
	.td-doctor__media { min-height: 0; flex-direction: row; align-items: center; }
}
@media (max-width: 640px) {
	.td-doctor__media { flex-direction: column; align-items: flex-start; }
	.td-doctor__media--photo::after { display: none; }
}

/* ── Команда: заготовки под ещё не подтверждённых врачей ───── */

.td-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: var(--td-space-6); }
.td-team-slot {
	border: 1.5px dashed var(--td-border);
	border-radius: var(--td-r-card);
	background: var(--td-paper);
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.td-team-slot__avatar {
	width: 52px;
	height: 52px;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	box-shadow: var(--td-hairline-soft);
}
.td-team-slot h3 { font-size: var(--td-fs-body); line-height: 21px; font-weight: 600; color: var(--td-ink-2); }
.td-team-slot p { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-3); margin: 0; }

@media (max-width: 1024px) {
	.td-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.td-team-grid { grid-template-columns: 1fr; }
}

/* ── Направления: одно крупное + три компактных ──────────── */

.td-dirs { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 20px; align-items: stretch; }
.td-dirs__rest { display: flex; flex-direction: column; background: var(--td-paper); border-radius: var(--td-r-panel); box-shadow: var(--td-hairline-soft); padding: 8px 32px; }
.td-dirs__rest .td-dir { flex: 1 1 0; background: none; box-shadow: none; border-radius: 0; padding: 22px 0; border-top: 1px solid var(--td-border-soft); justify-content: center; }
.td-dirs__rest .td-dir:first-child { border-top: 0; }
.td-dirs__rest .td-dir:hover { box-shadow: none; }
.td-dir {
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--td-paper);
	border-radius: var(--td-r-card);
	box-shadow: var(--td-hairline-soft);
	padding: 22px 24px;
	transition: box-shadow var(--td-base) var(--td-ease);
}
.td-dir:hover { box-shadow: var(--td-hairline); }
.td-dir h3 { font-size: var(--td-fs-h3); line-height: 27px; }
.td-dir h3 a { color: var(--td-ink); }
.td-dir h3 a:hover { color: var(--td-deep); text-decoration: none; }
.td-dir p { font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink-2); }
.td-dir .td-link { margin-top: auto; padding-top: 10px; }
.td-dir--feature { background: var(--td-soft); box-shadow: var(--td-hairline); border-radius: var(--td-r-panel); padding: 40px; gap: 16px; }
.td-dir--feature h3 { font-size: 28px; line-height: 34px; }
.td-dir--feature p { font-size: var(--td-fs-body); line-height: 25px; }
.td-dir__list { list-style: none; margin: 8px 0 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
.td-dir__list li { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); padding-left: 14px; position: relative; }
.td-dir__list li::before { content: "·"; position: absolute; left: 2px; color: var(--td-primary); font-weight: 700; }
.td-dir__anchors { margin: 10px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.td-dir__anchors > div { background: var(--td-paper); border-radius: var(--td-r-row); box-shadow: var(--td-hairline-soft); padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.td-dir__anchors dt { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-ink-2); }
.td-dir__anchors dd { margin: 0; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-lead); line-height: 24px; color: var(--td-deep); font-variant-numeric: tabular-nums; }
.td-dir__anchors-note { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-3); }

@media (max-width: 900px) {
	.td-dirs { grid-template-columns: 1fr; }
	.td-dir--feature { padding: 26px 24px; }
	.td-dirs__rest { padding: 4px 24px; }
	.td-dir__list { grid-template-columns: 1fr; }
}

/* ── Цены ─────────────────────────────────────────────────── */

.td-prices { display: flex; flex-direction: column; gap: 10px; }
.td-price {
	display: flex;
	align-items: baseline;
	gap: 18px;
	background: var(--td-paper);
	border-radius: var(--td-r-row);
	box-shadow: var(--td-hairline-soft);
	padding: 20px 24px;
}
.td-price__name { font-size: var(--td-fs-body); line-height: 22px; color: var(--td-ink); flex: 1 1 auto; }
.td-price__dots { flex: 1 1 auto; border-bottom: 1px dotted var(--td-border); min-width: 24px; transform: translateY(-4px); }
.td-price__value { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-deep); white-space: nowrap; flex-shrink: 0; }
.td-price--free { background: var(--td-tint); box-shadow: none; }
.td-price--free .td-price__name { font-family: var(--td-ui); font-weight: 600; }
.td-price--free .td-price__dots { border-bottom-color: rgba(18, 63, 53, .25); }

.td-note { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-note--inline { font-size: var(--td-fs-caption); color: var(--td-ink-3); }
.td-prices__note { margin-top: 16px; }
.td-prices__pdf { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }

@media (max-width: 640px) {
	.td-price { flex-wrap: wrap; gap: 6px; }
	.td-price__dots { display: none; }
	.td-price__value { width: 100%; }
}

.td-prices__grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 56px; align-items: start; }
.td-prices__aside {
	position: sticky;
	top: 110px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-hairline);
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.td-prices__aside h3 { font-size: var(--td-fs-title); line-height: 29px; }
.td-prices__aside .td-btn { align-self: flex-start; margin-top: 4px; }

/* «Из чего складывается сумма» — нумерованный список механики цены */
.td-breakdown { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; counter-reset: bd; }
.td-breakdown li { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; row-gap: 4px; padding: 16px 0; border-top: 1px solid var(--td-border-soft); counter-increment: bd; }
.td-breakdown li::before { content: counter(bd, decimal-leading-zero); grid-row: 1 / span 2; font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-micro); letter-spacing: var(--td-track-label); color: var(--td-link); padding-top: 3px; }
.td-breakdown b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 21px; color: var(--td-ink); }
.td-breakdown span { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }

@media (max-width: 1024px) {
	.td-prices__grid { grid-template-columns: 1fr; gap: var(--td-space-5); }
	.td-prices__aside { position: static; }
}

/* ── Отзывы: реальные цитаты с профилей врача ─────────────── */

/* Сводка профиля — крупное проверяемое число со ссылкой на источник */
.td-rating {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	padding: 18px 26px 18px 22px;
	border-radius: var(--td-r-panel);
	background: var(--td-deep);
	color: var(--td-white);
	margin-bottom: 28px;
}
.td-rating:hover { background: var(--td-pine); text-decoration: none; color: var(--td-white); }
.td-rating__value { font-family: var(--td-ui); font-weight: 700; font-size: 38px; line-height: 1; letter-spacing: var(--td-track-display); }
.td-rating__body { display: flex; flex-direction: column; gap: 3px; }
.td-rating__body b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 21px; }
.td-rating__body span { font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-mist); }
.td-rating__go { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-caption); color: var(--td-mist); white-space: nowrap; margin-left: 8px; }

/* Цитаты: карточка = один отзыв, всегда с автором, датой и источником */
/* Цитаты: узкая колонка, один отзыв в ряд */
.td-quotes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; max-width: var(--td-narrow-w); }
.td-quote {
	display: flex;
	flex-direction: column;
	gap: 16px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
	padding: 26px 28px;
}
.td-quote__top { display: flex; align-items: center; gap: 12px; }
.td-quote__avatar {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.td-quote__who { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.td-quote__who b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 20px; color: var(--td-ink); }
.td-quote__who span { font-size: var(--td-fs-micro); line-height: 17px; color: var(--td-ink-3); }
.td-quote__topic {
	margin-left: auto;
	flex-shrink: 0;
	padding: 5px 12px;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	color: var(--td-ink-2);
}
.td-quote blockquote { margin: 0; font-size: var(--td-fs-body); line-height: 26px; color: var(--td-ink); }
.td-quote__src { margin-top: auto; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-caption); color: var(--td-link); }
.td-quote__src:hover { color: var(--td-deep); text-decoration: none; }

.td-reviews__disclaimer { margin-top: 16px; max-width: 78ch; }

/* Подвал секции: темы отзывов + приглашение оставить свой */
.td-reviews__foot { margin-top: 40px; display: grid; grid-template-columns: 1fr; gap: 28px; align-items: start; padding-top: 36px; border-top: 1px solid var(--td-border); max-width: var(--td-narrow-w); }
.td-topics { display: flex; flex-direction: column; gap: 14px; }
.td-topics > b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); color: var(--td-ink); }
.td-topics ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.td-topics li {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-ink-2);
}
.td-topics li span { font-family: var(--td-ui); font-weight: 600; color: var(--td-deep); }
.td-reviews__ask { display: flex; flex-direction: column; gap: 18px; }
.td-reviews__ask h3 { font-size: var(--td-fs-title); line-height: 29px; }
.td-reviews__ask p { font-size: var(--td-fs-body); line-height: 24px; color: var(--td-ink-2); max-width: 60ch; }
.td-reviews__ask .td-btn { align-self: flex-start; }
.td-reviews__ask .td-review-links { align-self: stretch; }
.td-reviews__ask .td-review-links .td-btn { align-self: auto; }
.td-note--block { display: block; margin-top: 6px; width: 100%; color: var(--td-ink-3); }

@media (max-width: 1024px) {
	.td-quotes { grid-template-columns: 1fr; }
	.td-reviews__foot { grid-template-columns: 1fr; gap: var(--td-space-6); }
}
@media (max-width: 640px) {
	.td-rating { flex-wrap: wrap; gap: 14px; padding: 18px 20px; }
	.td-rating__go { margin-left: 0; }
	.td-quote { padding: 22px 20px; }
	.td-quote__topic { margin-left: 0; order: 3; }
	.td-quote__top { flex-wrap: wrap; }
}

/* ── FAQ ──────────────────────────────────────────────────── */

/* Две независимые колонки на ширине оболочки: раскрытый ответ растёт
   внутри своей стопки и не вытягивает соседа по ряду. До 1024 — одна. */
.td-faq {
	--td-faq-gutter: 22px;
	--td-faq-num: 36px;
	--td-faq-gap: 14px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 32px 40px;
	align-items: start;
}
.td-faq__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.td-faq__label {
	margin: 0;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	letter-spacing: var(--td-track-label);
	color: var(--td-ink-3);
}
.td-faq__list {
	flex: 1;
	display: flex;
	flex-direction: column;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
	overflow: hidden;
}
.td-faq__item {
	border-bottom: 1px solid var(--td-border-soft);
	transition: background var(--td-fast) var(--td-ease);
}
.td-faq__item:last-child { border-bottom: 0; }
.td-faq__item[open] { background: var(--td-soft); }
.td-faq summary {
	list-style: none;
	cursor: pointer;
	display: grid;
	grid-template-columns: var(--td-faq-num) minmax(0, 1fr) 28px;
	align-items: start;
	gap: 12px var(--td-faq-gap);
	padding: 18px var(--td-faq-gutter);
	min-height: 56px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	line-height: 22px;
	color: var(--td-ink);
}
.td-faq summary::-webkit-details-marker,
.td-faq summary::marker { display: none; content: none; }
.td-faq summary:hover { color: var(--td-deep); }
.td-faq summary:hover .td-faq__mark { background: var(--td-tint); }
.td-faq summary:focus { outline: none; }
.td-faq summary:focus-visible {
	outline: 2px solid var(--td-link);
	outline-offset: -2px;
}
.td-faq summary:active .td-faq__mark { transform: scale(.94); }
.td-faq__num {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	letter-spacing: var(--td-track-caps);
	color: var(--td-link);
	font-variant-numeric: tabular-nums;
	padding-top: 3px;
}
.td-faq__item[open] .td-faq__num { color: var(--td-deep); }
.td-faq__title { min-width: 0; text-wrap: pretty; }
.td-faq__mark {
	position: relative;
	width: 28px;
	height: 28px;
	flex-shrink: 0;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	margin-top: -3px;
	transition: background var(--td-fast) var(--td-ease), transform var(--td-fast) var(--td-ease);
}
.td-faq__item[open] .td-faq__mark { background: var(--td-tint); }
.td-faq__mark::before,
.td-faq__mark::after {
	content: "";
	position: absolute;
	inset: 50%;
	background: var(--td-link);
	border-radius: 1px;
	transition: transform var(--td-fast) var(--td-ease);
}
.td-faq__mark::before { width: 12px; height: 2px; margin: -1px 0 0 -6px; }
.td-faq__mark::after { width: 2px; height: 12px; margin: -6px 0 0 -1px; }
.td-faq__item[open] .td-faq__mark::after { transform: scaleY(0); }
.td-faq__answer {
	padding: 4px var(--td-faq-gutter) 20px;
	padding-left: calc(var(--td-faq-gutter) + var(--td-faq-num) + var(--td-faq-gap));
	font-size: var(--td-fs-body);
	line-height: 24px;
	color: var(--td-ink-2);
}
.td-faq__answer a { font-weight: 600; }

@media (max-width: 1024px) {
	.td-faq { grid-template-columns: 1fr; gap: 28px; }
}
@media (max-width: 640px) {
	.td-faq {
		--td-faq-gutter: 16px;
		--td-faq-num: 28px;
	}
	.td-faq summary { padding-block: 16px; font-size: var(--td-fs-body); line-height: 21px; }
	.td-faq__answer { padding-bottom: 18px; }
}

/* ── Форма ────────────────────────────────────────────────── */

.td-form-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.td-form-intro { display: flex; flex-direction: column; gap: 18px; }
.td-form-intro h2 { color: var(--td-white); }
.td-form-intro p { color: var(--td-tint); font-size: var(--td-fs-body); line-height: 25px; }
.td-form-intro__phone {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: 26px;
	line-height: 34px;
	color: var(--td-white);
}
.td-form-intro__phone:hover { color: var(--td-mist); text-decoration: none; }
.td-form-intro ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.td-form-intro ul li { color: var(--td-white); font-size: var(--td-fs-body); line-height: 22px; padding-left: 28px; position: relative; }
.td-form-intro ul li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 20px;
	height: 20px;
	background-color: var(--td-white);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5L20 7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.td-form {
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	padding: var(--td-space-6);
	display: flex;
	flex-direction: column;
	gap: 16px;
	box-shadow: var(--td-hairline);
	position: relative;
}
.td-form h3 { font-size: var(--td-fs-title); line-height: 29px; }
.td-form__desc { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-field { display: flex; flex-direction: column; gap: 6px; }
.td-field > span { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-ink); }
.td-field input, .td-field textarea {
	width: 100%;
	min-inline-size: 0;
	box-sizing: border-box;
	border: 0;
	border-radius: var(--td-r-field);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	padding: 12px 14px;
	font-family: var(--td-read);
	font-size: var(--td-fs-body); /* меньше 16px — iOS Safari зумит страницу при фокусе */
	line-height: 24px;
	color: var(--td-ink);
	transition: box-shadow var(--td-fast) var(--td-ease);
}
.td-field input { min-height: 48px; }
.td-field textarea { min-height: 96px; resize: vertical; }
.td-field input:hover, .td-field textarea:hover { box-shadow: inset 0 0 0 1px var(--td-link); }
.td-field input:focus-visible, .td-field textarea:focus-visible { outline: none; box-shadow: inset 0 0 0 2px var(--td-link); }
.td-field input:user-invalid, .td-field textarea:user-invalid,
.td-field input[aria-invalid="true"], .td-field textarea[aria-invalid="true"] {
	box-shadow: inset 0 0 0 2px var(--td-danger);
	background: var(--td-err-surface);
}
.td-field input:disabled, .td-field textarea:disabled {
	background: var(--td-muted);
	color: var(--td-ink-2);
	cursor: default;
}
.td-field input::placeholder, .td-field textarea::placeholder { color: var(--td-ink-3); }
.td-field__error {
	font-size: var(--td-fs-caption);
	line-height: 1.4;
	color: var(--td-danger);
}
.td-field__error:empty { display: none; }

.td-consent { display: flex; gap: 10px; align-items: flex-start; font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); cursor: pointer; }
.td-checkctrl {
	position: relative;
	flex: none;
	inline-size: 24px;
	block-size: 24px;
	margin-block-start: 0;
}
.td-checkctrl input {
	position: absolute;
	inset: 0;
	margin: 0;
	inline-size: 100%;
	block-size: 100%;
	opacity: 0;
	cursor: pointer;
}
.td-checkctrl__box {
	pointer-events: none;
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	border-radius: 4px;
	background: var(--td-paper);
	box-shadow: inset 0 0 0 1.5px var(--td-ink);
}
.td-checkctrl__box svg {
	inline-size: .62rem;
	block-size: .62rem;
	stroke: var(--td-white);
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	opacity: 0;
}
.td-checkctrl__dash { display: none; }
.td-checkctrl input:hover + .td-checkctrl__box { box-shadow: inset 0 0 0 1.5px var(--td-deep); }
.td-checkctrl input:checked + .td-checkctrl__box,
.td-checkctrl input:indeterminate + .td-checkctrl__box {
	background: var(--td-deep);
	box-shadow: none;
}
.td-checkctrl input:checked + .td-checkctrl__box svg,
.td-checkctrl input:indeterminate + .td-checkctrl__box svg { opacity: 1; }
.td-checkctrl input:indeterminate + .td-checkctrl__box .td-checkctrl__tick { display: none; }
.td-checkctrl input:indeterminate + .td-checkctrl__box .td-checkctrl__dash { display: initial; }
.td-checkctrl input:focus-visible { outline: none; }
.td-checkctrl input:focus-visible + .td-checkctrl__box {
	outline: 2px solid var(--td-link);
	outline-offset: 2px;
}
.td-checkctrl input:disabled + .td-checkctrl__box {
	background: var(--td-muted);
	box-shadow: inset 0 0 0 1.5px var(--td-border);
}
.td-checkctrl input:checked:disabled + .td-checkctrl__box,
.td-checkctrl input:indeterminate:disabled + .td-checkctrl__box {
	background: var(--td-border);
	box-shadow: none;
}
.td-checkctrl input:checked:disabled + .td-checkctrl__box svg,
.td-checkctrl input:indeterminate:disabled + .td-checkctrl__box svg {
	opacity: 1;
	stroke: var(--td-ink-2);
}
.td-checkctrl input:disabled { cursor: default; }
.td-checkctrl input[aria-invalid="true"] + .td-checkctrl__box,
.td-checkctrl input:user-invalid + .td-checkctrl__box {
	box-shadow: inset 0 0 0 1.5px var(--td-danger);
	background: var(--td-err-surface);
}
.td-form__note { font-size: var(--td-fs-micro); line-height: 1.4; color: var(--td-ink-2); }
.td-form .td-btn { align-self: flex-start; }
.td-hp {
	position: absolute;
	inset-inline-start: 0;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.td-status { border-radius: var(--td-r-row); padding: 18px 22px; display: flex; flex-direction: column; gap: 6px; }
.td-status b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); }
.td-status span { font-size: var(--td-fs-small); line-height: 21px; }
.td-status--ok { background: var(--td-sage); color: var(--td-ink); box-shadow: inset 0 0 0 1px var(--td-ok-line); }
.td-status--err { background: var(--td-err-surface); color: var(--td-ink); box-shadow: inset 0 0 0 1px var(--td-err-line); }

@media (max-width: 1024px) {
	.td-form-grid { grid-template-columns: 1fr; gap: 28px; }
	.td-form { padding: var(--td-space-5); }
}

/* ── Всплывающая форма записи ────────────────────────────── */

body.td-modal-open { overflow: hidden; }

.td-modal {
	position: fixed;
	inset: 0;
	z-index: var(--td-z-modal);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--td-space-5);
	overscroll-behavior: contain;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--td-base) var(--td-ease);
}
.td-modal[data-open="true"] {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}
.td-modal__backdrop {
	position: absolute;
	inset: 0;
	background: var(--td-scrim);
}
.td-modal__panel {
	position: relative;
	width: 100%;
	max-width: 460px;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	transform: translateY(14px);
	transition: transform var(--td-base) var(--td-ease);
}
.td-modal[data-open="true"] .td-modal__panel { transform: translateY(0); }
.td-modal__panel .td-form { box-shadow: var(--td-overlay); }
.td-modal__view[hidden] { display: none; }
.td-modal__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: var(--td-target);
	height: var(--td-target);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	box-shadow: var(--td-hairline);
	color: var(--td-ink-2);
	cursor: pointer;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease);
	z-index: 1;
}
.td-modal__close svg { display: block; }
.td-modal__close:hover { background: var(--td-tint); color: var(--td-deep); }

/* Два CTA-окна: «Позвоните нам» и заявка на звонок. */
.td-call { gap: 18px; }
.td-call__phone {
	display: block;
	font-family: var(--td-display);
	font-size: clamp(26px, 7vw, 34px);
	line-height: 1.12;
	letter-spacing: var(--td-track-display);
	font-weight: 700;
	color: var(--td-deep);
}
.td-call__phone:hover { color: var(--td-pine); text-decoration: none; }
.td-call__hours {
	margin: -6px 0 0;
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-ink-2);
}
.td-call .td-btn { width: 100%; align-self: stretch; }
.td-call__status {
	margin: 0;
	min-height: 18px;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-ink-2);
}
.td-call__status[hidden] { display: none; }
.td-call__label {
	margin: 4px 0 0;
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-label);
	text-transform: uppercase;
	color: var(--td-ink-3);
}
.td-social--modal a {
	background: var(--td-soft);
	box-shadow: inset 0 0 0 1px var(--td-border-soft);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-caption);
	min-height: 40px;
	color: var(--td-ink);
}
.td-social--modal a:hover { background: var(--td-tint); color: var(--td-deep); }
.td-form__alt { margin: 0; }
.td-textbtn {
	border: 0;
	background: none;
	padding: 0;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-link);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.td-textbtn:hover { color: var(--td-deep); }

@media (max-width: 640px) {
	.td-modal { padding: 12px; align-items: flex-end; }
	.td-modal__panel { max-height: calc(100vh - 24px); }
}

/* ── Контакты ─────────────────────────────────────────────── */

.td-contacts { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--td-space-7); align-items: start; }
.td-info { display: flex; flex-direction: column; gap: 10px; }
.td-info__row {
	background: var(--td-paper);
	border-radius: var(--td-r-media);
	box-shadow: var(--td-hairline-soft);
	padding: 16px 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.td-info__row b { font-family: var(--td-ui); font-weight: 700; font-size: var(--td-fs-micro); letter-spacing: var(--td-track-label); text-transform: uppercase; color: var(--td-ink-3); }
.td-info__row span, .td-info__row a { font-size: var(--td-fs-body); line-height: 24px; color: var(--td-ink); }
.td-info__row a:hover { color: var(--td-deep); }
.td-info__row small { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }

.td-map {
	position: relative;
	display: block;
	border-radius: var(--td-r-panel);
	overflow: hidden;
	box-shadow: var(--td-lift);
	background: var(--td-tint);
	color: inherit;
	text-decoration: none;
}
.td-map:hover, .td-map:focus-visible {
	color: inherit;
	text-decoration: none;
}
.td-map:focus-visible {
	outline: 2px solid var(--td-link);
	outline-offset: 3px;
	border-radius: var(--td-r-panel);
}
.td-map picture,
.td-map img {
	display: block;
	width: 100%;
	height: auto;
}
.td-map__open {
	position: absolute;
	left: 16px;
	bottom: 16px;
	z-index: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--td-target);
	padding: 0 16px;
	border-radius: var(--td-r-control);
	background: var(--td-deep);
	color: var(--td-white);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 19px;
	pointer-events: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-map:hover .td-map__open,
.td-map:focus-visible .td-map__open {
	background: var(--td-pine);
	color: var(--td-white);
}

@media (max-width: 1024px) {
	.td-contacts { grid-template-columns: 1fr; }
}

/* ── Подвал ───────────────────────────────────────────────── */

.td-footer { background: var(--td-pine); color: var(--td-white); padding-block: 56px 32px; }
.td-footer__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); gap: 40px; }
.td-footer__about { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.td-footer__about p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-white); max-width: 42ch; }
.td-footer__contact { display: flex; flex-direction: column; gap: 4px; font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-small); color: var(--td-mist); }
.td-footer__contact a { color: var(--td-white); }
.td-footer__col :is(h2, h3) { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-small); letter-spacing: 0; color: var(--td-mist); margin-bottom: 14px; }
.td-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.td-footer__col a { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-white); }
.td-footer__col a:hover { color: var(--td-mist); }

.td-footer__legal { margin-top: 40px; display: flex; flex-direction: column; gap: 12px; }
.td-footer__legal p { font-size: var(--td-fs-micro); line-height: 18px; color: rgba(255, 255, 255, .82); }
.td-footer__rule { height: 1px; background: var(--td-mist); opacity: .25; margin-block: var(--td-space-5); }
.td-footer__bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.td-footer__bottom > span { font-size: var(--td-fs-micro); line-height: 18px; color: var(--td-mist); }

/* Знак автора — вырубной штамп AM. author-am-2026-09-18 */
.td-author {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-left: auto;
	color: var(--td-mist);
	opacity: .7;
	text-decoration: none;
	background: transparent;
	transition: color var(--td-fast) var(--td-ease), opacity var(--td-fast) var(--td-ease), transform var(--td-fast) var(--td-ease);
}
.td-author:hover,
.td-author:focus-visible {
	color: var(--td-white);
	opacity: 1;
	transform: scale(1.06);
}
.td-author__mark { display: block; flex: none; width: 36px; height: 36px; color: inherit; }

@media (max-width: 900px) { .td-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--td-space-6); } }
@media (max-width: 640px) { .td-footer__grid { grid-template-columns: 1fr; } }

/* ── Липкая панель на мобильном ───────────────────────────── */

.td-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: var(--td-z-bar);
	display: none;
	gap: 10px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: var(--td-paper);
	border-top: 1px solid var(--td-border-soft);
	box-shadow: var(--td-sticky);
}
.td-bar .td-btn { flex: 1 1 0; }

/* Пока на экране секция записи, бар её дублирует и перекрывает —
   JS гасит его (IntersectionObserver). Гасим прозрачностью, не сдвигом:
   DS не разрешает движение элементов, только смену цвета/тени. */
.td-bar[data-hidden="true"] {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
.td-bar { transition: opacity var(--td-base) var(--td-ease), visibility 0s linear var(--td-base); }
.td-bar:not([data-hidden="true"]) { transition-delay: 0s; }

@media (max-width: 900px) {
	.td-bar { display: flex; }
	/* Высота бара + safe-area на iPhone: контент никогда не уходит под панель */
	body { padding-bottom: calc(var(--td-bar-h) + env(safe-area-inset-bottom, 0px)); }
	.td-hero { padding-bottom: calc(var(--td-bar-h) + env(safe-area-inset-bottom, 0px) + 24px); }
}

/* ── Хроника ──────────────────────────────────────────────── */

.td-chronicle { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; max-width: 860px; }
.td-chronicle__item { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: var(--td-space-5); padding: 22px 0; border-top: 1px solid var(--td-border); }
.td-chronicle__item:last-child { border-bottom: 1px solid var(--td-border); }
.td-chronicle time { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-deep); white-space: nowrap; }
.td-chronicle h3 { font-size: var(--td-fs-lead); line-height: 25px; }
.td-chronicle p { font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink-2); margin-top: 6px; }
.td-chronicle small { display: block; margin-top: 8px; font-size: var(--td-fs-micro); line-height: 17px; color: var(--td-ink-3); }

@media (max-width: 640px) {
	.td-chronicle__item { grid-template-columns: 1fr; gap: 6px; padding: 18px 0; }
}

/* ── Вакансии (копия hh.ru, обновляется человеком) ───────── */

.td-vacancies { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.td-vacancy {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 16px 32px;
	align-items: center;
	background: var(--td-paper);
	border-radius: var(--td-r-card);
	box-shadow: var(--td-hairline-soft);
	padding: 22px 26px;
}
.td-vacancy__body { display: flex; flex-direction: column; gap: 6px; }
.td-vacancy h3 { font-size: var(--td-fs-h3); line-height: 26px; }
.td-vacancy h3 a { color: var(--td-ink); }
.td-vacancy h3 a:hover { color: var(--td-deep); text-decoration: none; }
.td-vacancy__meta { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-vacancy__salary { display: flex; flex-direction: column; gap: 2px; text-align: right; }
.td-vacancy__salary b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-lead); line-height: 24px; color: var(--td-deep); white-space: nowrap; font-variant-numeric: tabular-nums; }
.td-vacancy__salary span { font-size: var(--td-fs-micro); line-height: 17px; color: var(--td-ink-3); }
.td-vacancies__foot { margin-top: var(--td-space-5); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; }

@media (max-width: 900px) {
	.td-vacancy { grid-template-columns: minmax(0, 1fr) auto; }
	.td-vacancy .td-btn { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 640px) {
	.td-vacancy { grid-template-columns: 1fr; padding: 20px; }
	.td-vacancy__salary { text-align: left; }
}

/* ── Типовой контент страниц ──────────────────────────────── */

/* Мера колонки: 72ch от кегля .td-prose, не от заголовка. Иначе h2
   (34px) даёт ~1480px и вылезает на всю оболочку, а абзац остаётся узким. */
@property --td-prose-w {
	syntax: "<length>";
	inherits: true;
	initial-value: 0px;
}

/* Если .td-prose повесить на тот же узел, что и .td-shell, max-width: 72ch
   схлопывает контейнер и он прилипает к левому краю экрана — на внутренних
   страницах без боковой карточки это выглядит как «текст не по центру». */
.td-prose, .td-prose > .entry-content { display: flex; flex-direction: column; gap: var(--td-space-6); }
.td-prose { --td-prose-w: var(--td-read-w); max-width: var(--td-prose-w); margin-inline: 0; font-family: var(--td-read); }
.td-shell.td-prose {
	max-width: calc(var(--td-shell) + var(--td-gutter) * 2);
	margin-inline: auto;
	align-items: center;
}
.td-shell.td-prose > * {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--td-prose-w);
}
/* Заголовок страницы без боковой карточки — тот же центр, что у текстовой колонки. */
.td-pagehead:has(+ :is(.entry-content, .wp-block-post-content) .td-shell.td-prose) .td-pagehead__inner {
	margin-inline: auto;
}
:is(.td-prose, .td-prose > .entry-content) > h2:not(:first-child) { margin-top: var(--td-space-7); }
:is(.td-prose, .td-prose > .entry-content) > h3 { margin-top: 20px; }

/* Длинная статья + прилипающая карточка приёма (страницы направлений) */
.td-article { display: grid; grid-template-columns: minmax(0, var(--td-read-w)) minmax(min(300px, 100%), 380px); justify-content: space-between; gap: var(--td-space-8); align-items: start; }
.td-article__aside { position: sticky; top: 96px; }
.td-consult-card--aside { padding: 28px; gap: 18px; border-radius: var(--td-r-panel); background: var(--td-soft); box-shadow: none; }
.td-consult-card--aside h2 { font-size: var(--td-fs-title); line-height: 28px; }
.td-consult-card--aside .td-btn { width: 100%; justify-content: center; }
.td-consult-card__promo { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); padding: 10px 12px; border-radius: var(--td-r-card); box-shadow: var(--td-hairline); }
.td-consult-card__promo b { font-family: var(--td-ui); font-weight: 700; color: var(--td-deep); margin-right: 4px; }
.td-consult-card__phone { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-h3); color: var(--td-ink); text-align: center; text-decoration: none; }
.td-consult-card__phone:hover { color: var(--td-deep); }
.td-consult-card--aside .td-consult-card__note { text-align: center; }

@media (max-width: 1024px) {
	.td-article { grid-template-columns: 1fr; gap: 40px; }
	.td-article__aside { position: static; }
	.td-consult-card--aside { max-width: 560px; }
}
.td-prose h2 { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.16; }
.td-prose h3 { font-size: 21px; line-height: 28px; }
.td-prose p, .td-prose li { font-size: var(--td-fs-lead); line-height: 28px; color: var(--td-ink-2); }
.td-prose li strong { color: var(--td-ink); }
.td-prose strong { color: var(--td-ink); font-weight: 600; }
.td-prose ul, .td-prose ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 12px; }
.td-prose code { font-size: var(--td-fs-body); padding: 1px 5px; border-radius: var(--td-r-chip); background: var(--td-muted); color: var(--td-ink); }

/* Ряд чипов-ссылок: рубрики над лентой статей и навигация по документам
   в конце юридических страниц. Один компонент на оба случая — вторая почти
   такая же система чипов разошлась бы с первой при первой же правке. */
.td-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.td-chips__label { flex-basis: 100%; font-family: var(--td-ui); font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-3); }
.td-chips__i {
	font-family: var(--td-ui);
	font-size: var(--td-fs-caption);
	line-height: 19px;
	padding: 6px 13px;
	border-radius: var(--td-r-full);
	border: 1px solid var(--td-border-strong);
	color: var(--td-ink-2);
	text-decoration: none;
	transition: color var(--td-fast) var(--td-ease), border-color var(--td-fast) var(--td-ease), background-color var(--td-fast) var(--td-ease);
}
a.td-chips__i:hover { color: var(--td-deep); border-color: var(--td-primary); background: var(--td-tint); }
.td-chips__i.is-current { color: var(--td-white); background: var(--td-pine); border-color: var(--td-pine); font-weight: 600; }
.td-chips--docs { margin-top: 12px; padding-top: var(--td-space-5); border-top: 1px solid var(--td-border-soft); }

/* blog-chips-2026-09-18: фильтр ленты — лоток с воздухом; на широком
   экране чипы переносятся, на узком остаётся горизонтальный скролл. */
.td-head:has(+ .td-chips--feed) { margin-bottom: var(--td-space-6); }
.td-shell > .td-crumbs { margin-bottom: 20px; }
.td-chips--feed {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0 0 48px;
	padding: 12px;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	background: var(--td-soft);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-hairline-soft);
}
.td-chips--feed .td-chips__i {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 8px 16px;
	box-sizing: border-box;
	font-size: var(--td-fs-small);
	line-height: 20px;
	font-weight: 500;
	white-space: nowrap;
	border: 0;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	color: var(--td-ink);
	box-shadow: var(--td-hairline-soft);
}
@media (max-width: 1024px) {
	.td-chips--feed {
		flex-wrap: nowrap;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x proximity;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.td-chips--feed::-webkit-scrollbar { display: none; }
	.td-chips--feed::after { content: ""; flex: 0 0 12px; }
	.td-chips--feed .td-chips__i { scroll-snap-align: start; }
}
.td-chips--feed a.td-chips__i:hover {
	color: var(--td-deep);
	background: var(--td-tint);
	border-color: transparent;
	box-shadow: var(--td-hairline);
}
.td-chips--feed .td-chips__i.is-current {
	color: var(--td-white);
	background: var(--td-deep);
	border-color: transparent;
	box-shadow: none;
	font-weight: 600;
}
.td-chips__n {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	font-variant-numeric: tabular-nums;
}
.td-chips--feed .is-current .td-chips__n {
	background: rgba(255, 255, 255, .18);
	color: var(--td-white);
}

.td-prose p.td-revision { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-3); }

/* Схема-иллюстрация: инлайн-SVG в текстовой колонке. Пропорция задана
   переменной из PHP, чтобы место было зарезервировано до отрисовки. */
.td-scheme { margin: 8px 0; display: flex; flex-direction: column; gap: 10px; }
.td-scheme__svg { display: block; width: 100%; height: auto; aspect-ratio: var(--td-scheme-ratio, auto); border: 1px solid var(--td-border-soft); border-radius: var(--td-r-media); background: var(--td-paper); }
.td-scheme__cap { font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-3); }
.td-prose > .td-scheme, .td-prose > .entry-content > .td-scheme { max-width: 100%; }
.td-shell.td-prose > .td-scheme,
.td-shell.td-prose > .td-photo { max-width: var(--td-prose-w); }

/* Фотография в статье: тот же регистр, что у схемы, плюс строка источника —
   стоковый кадр без указания автора и лицензии на сайте не публикуется. */
.td-photo { margin: 8px 0; display: flex; flex-direction: column; gap: 10px; }
.td-photo img { display: block; width: 100%; height: auto; border: 1px solid var(--td-border-soft); border-radius: var(--td-r-media); }
.td-photo__cap { font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-3); display: flex; flex-wrap: wrap; gap: 2px 10px; }
.td-photo__src { color: var(--td-ink-3); }
.td-photo__src a { color: inherit; }
.td-prose > .td-photo, .td-prose > .entry-content > .td-photo { max-width: 100%; }

.td-prose p.td-callout {
	padding: 18px 20px;
	border-radius: var(--td-r-row);
	background: var(--td-soft);
	box-shadow: var(--td-hairline);
	font-size: var(--td-fs-body);
	line-height: 26px;
}

.td-pagehead { background: var(--td-canvas); border-bottom: 1px solid var(--td-border-soft); padding-block: clamp(2.25rem, 4vw + 1.25rem, 4rem) clamp(1.75rem, 3vw + 1rem, 3.25rem); }
.td-pagehead__inner { display: flex; flex-direction: column; gap: 14px; max-width: 820px; }
.td-pagehead h1 { font-size: clamp(40px, 5vw, 64px); line-height: 1.06; letter-spacing: var(--td-track-display); }
.td-pagehead p { font-size: var(--td-fs-lead); line-height: 28px; color: var(--td-ink-2); }
.td-crumbs { font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-ink-3); display: flex; gap: 8px; flex-wrap: wrap; }
.td-crumbs a { color: var(--td-ink-3); }
.td-crumbs a:hover { color: var(--td-deep); }

/* Слот под будущее фото — честная рамка, не декоративный серый блок */
.td-media-slot {
	border-radius: var(--td-r-media);
	background: var(--td-muted);
	box-shadow: inset 0 0 0 1px var(--td-border);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 180px;
	justify-content: center;
}
.td-media-slot b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); color: var(--td-ink); }
.td-media-slot span { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); }

/* 404 */
.td-404 { display: flex; flex-direction: column; gap: 20px; align-items: flex-start; padding-block: 96px; }
.td-404 h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; }
.td-404 p { font-size: var(--td-fs-lead); line-height: 26px; color: var(--td-ink-2); max-width: 60ch; }

/* Первый экран: сетка и правая колонка. Цвет — только в каноническом
   блоке выше: фон --td-deep, оффер --td-pine, CTA белая. */
.td-hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: start; }
.td-hero h1 {
	font-size: var(--td-fs-hero);
	line-height: var(--td-lh-display);
	letter-spacing: var(--td-track-display);
	max-width: none;
	text-wrap: pretty;
	color: var(--td-white);
}
.td-hero__lead { color: var(--td-tint); font-size: var(--td-fs-lead); line-height: 1.55; max-width: 42ch; }
.td-hero__phone { color: var(--td-white); font-size: var(--td-fs-lead); }
.td-hero__phone:hover { color: var(--td-mist); }
.td-hero .td-proofline li { color: var(--td-mist); }
.td-hero .td-proofline b { color: var(--td-white); }
.td-hero .td-proofline li + li::before { color: var(--td-primary); }
.td-hero .td-btn--primary { background: var(--td-white); color: var(--td-deep); box-shadow: none; }
.td-hero .td-btn--primary:hover { background: var(--td-mist); color: var(--td-deep); }

/* Правая колонка: круглое фото отдельно, панель приёма без обрезанного кадра. */
.td-hero__visual { position: static; padding-bottom: 0; display: flex; flex-direction: column; gap: 16px; }
.td-hero-person {
	display: flex;
	align-items: flex-end;
	gap: 14px;
}
.td-hero-person__photo {
	flex: none;
	width: 220px;
	height: 220px;
	border-radius: var(--td-r-full);
	overflow: hidden;
	background: var(--td-pine);
	box-shadow: var(--td-overlay), 0 0 0 6px color-mix(in srgb, var(--td-mist) 28%, transparent);
}
.td-hero-person__photo picture,
.td-hero-person__photo img {
	display: block;
	width: 100%;
	height: 100%;
}
.td-hero-person__photo img {
	object-fit: cover;
	object-position: 50% 8%;
	aspect-ratio: 1;
}
.td-hero-person__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding-bottom: 4px;
	min-width: 0;
}
.td-hero-person .td-rating-chip {
	position: static;
	flex-wrap: wrap;
	max-width: 100%;
}
.td-hero-person .td-rating-chip small { display: none; }
.td-hero-person__id {
	margin: 0;
	padding: 10px 14px;
	background: var(--td-paper);
	border-radius: var(--td-r-control);
	box-shadow: var(--td-lift);
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.td-hero-person__id b {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	line-height: 20px;
	color: var(--td-ink);
}
.td-hero-person__id span {
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-ink-2);
}
.td-hero-offer {
	overflow: hidden;
	border-radius: var(--td-r-hero);
	background: var(--td-pine);
	color: var(--td-white);
	box-shadow: var(--td-overlay);
}
.td-hero-offer__body { padding: 22px 28px 26px; display: flex; flex-direction: column; gap: 10px; }
.td-hero-offer__price {
	margin: 0;
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: clamp(44px, 5vw, 56px);
	line-height: 1;
	letter-spacing: var(--td-track-hero);
	color: var(--td-white);
}
.td-hero-offer__label {
	margin: 0;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	line-height: 20px;
	color: var(--td-white);
}
.td-hero-offer__steps {
	list-style: none;
	margin: 4px 0 0;
	padding: 0;
	border-top: 1px solid rgba(255, 255, 255, .16);
}
.td-hero-offer__steps li {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 12px;
	align-items: baseline;
	padding: 10px 0;
	border-bottom: 1px solid rgba(255, 255, 255, .16);
	font-size: var(--td-fs-body);
	line-height: 22px;
	color: var(--td-white);
}
.td-hero-offer__n {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-caps);
	color: var(--td-white);
}
.td-hero-offer__note {
	margin: 0;
	font-size: var(--td-fs-small);
	line-height: 21px;
	color: var(--td-white);
}
.td-hero-offer__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 22px;
	margin-top: 4px;
}
.td-hero-offer .td-btn--primary { background: var(--td-white); color: var(--td-deep); box-shadow: none; }
.td-hero-offer .td-btn--primary:hover { background: var(--td-mist); color: var(--td-deep); }
.td-hero-offer .td-btn--onpine { background: var(--td-white); color: var(--td-deep); }
.td-hero-offer .td-btn--onpine:hover { background: var(--td-mist); color: var(--td-deep); }
.td-hero-offer .td-btn { white-space: nowrap; }
.td-hero-offer .td-link { color: var(--td-white); }
.td-hero-offer .td-link:hover { color: var(--td-mist); }

/* ── Факты: bento-плитки с крупным значением ────────────────────── */

/* ── Заголовки секций крупнее, воздуха больше ───────────────────── */
.td-head { gap: 18px; margin-bottom: var(--td-space-8); max-width: 820px; }
.td-section--dense .td-head { margin-bottom: var(--td-space-7); }
.td-head :is(h1, h2) { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); letter-spacing: var(--td-track-display); }
.td-head p { font-size: var(--td-fs-lead); line-height: 1.55; }
.td-approach__intro h2 { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); letter-spacing: var(--td-track-display); }
.td-form-intro h2 { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); letter-spacing: var(--td-track-display); }
.td-doctor__body h2 { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); letter-spacing: var(--td-track-display); }
.td-plan__intro h2 { font-size: var(--td-fs-h2); line-height: var(--td-lh-display); letter-spacing: var(--td-track-display); max-width: 20ch; }

/* ── Плоские пилюли ─────────────────────────────────────────────── */
.td-btn { border-radius: var(--td-r-control); padding-inline: var(--td-space-5); min-height: 48px; font-size: var(--td-fs-small); transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease); }
.td-btn--primary { background: var(--td-deep); box-shadow: none; }
.td-btn--primary:hover { background: var(--td-pine); }
.td-promo:not(.td-promo--consult) .td-btn--primary { background: var(--td-white); color: var(--td-deep); }
.td-promo:not(.td-promo--consult) .td-btn--primary:hover { background: var(--td-mist); color: var(--td-deep); }
.td-btn--secondary:hover { background: var(--td-soft); }

/* Строки: спокойная подсветка без сдвига */
.td-row { padding-inline: 16px; margin-inline: -16px; border-radius: var(--td-r-row); transition: background var(--td-fast) var(--td-ease); }
.td-row:hover { background: var(--td-soft); }
.td-row__num {
	width: 36px;
	height: 36px;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: var(--td-fs-micro);
	padding-top: 0;
	color: var(--td-deep);
}

/* Шапка: тень при прокрутке; свечение фокуса полей */
.td-header { transition: box-shadow var(--td-base) var(--td-ease); }
.td-header.is-scrolled { box-shadow: var(--td-sticky); }
.td-field input:focus, .td-field textarea:focus { box-shadow: inset 0 0 0 2px var(--td-link), 0 0 0 4px rgba(18, 160, 140, .14); }

/* Тёмные панели — плоские, крупные радиусы у вложенных карточек */
.td-form { border-radius: var(--td-r-hero); box-shadow: var(--td-hairline); }
.td-plan { border-radius: var(--td-r-hero); }
.td-dir--feature { border-radius: var(--td-r-hero); }
.td-dirs__rest { border-radius: var(--td-r-hero); }
.td-prices__aside { border-radius: var(--td-r-hero); }

@media (max-width: 1024px) {
	.td-hero__grid { grid-template-columns: 1fr; gap: 40px; }
	.td-hero h1 { max-width: none; }
}
@media (max-width: 640px) {
	.td-hero h1 { font-size: clamp(2.5rem, 11vw, 3.25rem); }
	.td-row { padding-inline: 10px; margin-inline: -10px; }
}


/* ══════════════════════════════════════════════════════════════════
   F10 — слайдер планов, живой первый экран, воздух (15.09.2026)
   ══════════════════════════════════════════════════════════════════ */

/* ── Примеры планов: вкладки + лента со скролл-привязкой ─────────── */
.td-plans { display: flex; flex-direction: column; gap: 18px; min-width: 0; max-width: 100%; overflow-x: clip; } /* launch-overflow-2026-09-18 */
.td-plans__tabs { display: flex; flex-wrap: wrap; gap: 8px; min-width: 0; max-width: 100%; }
.td-plans__tab {
	border: 0;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	padding: 10px 16px;
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-ink-2);
	cursor: pointer;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-plans__tab:hover { color: var(--td-deep); box-shadow: inset 0 0 0 1px var(--td-link); }
.td-plans__tab[aria-selected="true"] { background: var(--td-deep); color: var(--td-white); box-shadow: none; }
.td-plans__track {
	display: flex;
	gap: 16px;
	min-width: 0;
	max-width: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
	margin-inline: -4px;
	padding: 4px;
}
.td-plans__track::-webkit-scrollbar { display: none; }
.td-plans__track .td-plan { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; box-sizing: border-box; }
.td-plan__name em { font-style: normal; font-family: var(--td-ui); font-weight: 600; color: var(--td-deep); margin-left: 4px; }
.td-plans__nav { display: flex; align-items: center; gap: 12px; }
.td-plans__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	color: var(--td-deep);
	cursor: pointer;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-plans__arrow:hover { background: var(--td-deep); color: var(--td-white); box-shadow: none; }
.td-plans__counter { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); color: var(--td-ink-2); min-width: 44px; text-align: center; font-variant-numeric: tabular-nums; }
.td-plan__rule--promo { box-shadow: var(--td-hairline); }
.td-plan__rule--promo b { color: var(--td-deep); }

@media (max-width: 1024px) {
	.td-plan__intro { position: static; }
}
@media (max-width: 640px) {
	.td-plans__tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; width: 100%; max-width: 100%; box-sizing: border-box; margin-inline: calc(var(--td-gutter) * -1); padding-inline: var(--td-gutter); }
	.td-plans__tabs::-webkit-scrollbar { display: none; }
	.td-plans__tab { white-space: nowrap; }
	.td-eyebrow { padding: 6px 12px 6px 10px; font-size: var(--td-fs-micro); }
}
@media (prefers-reduced-motion: reduce) {
	.td-hero__visual, .td-hero__portrait img { transition: none; transform: none !important; }
}


/* ══════════════════════════════════════════════════════════════════
   F15 — коммерческий первый экран (15.09.2026)
   ══════════════════════════════════════════════════════════════════ */

/* Кикер внутри h1: ключевой запрос мелко, обещание крупно */
.td-hero__kicker {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	line-height: 20px;
	letter-spacing: 0;
	color: var(--td-mist);
}
.td-hero__kicker::before { content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--td-primary); }

/* Чип акции у кнопки */
.td-hero__offer-row { display: flex; }
.td-hero__offer {
	display: inline-block;
	max-width: 100%;
	box-sizing: border-box;
	padding: 9px 16px 9px 12px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-small);
	line-height: 18px;
	color: var(--td-ink-2);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-hero__offer:hover { background: var(--td-soft); color: var(--td-ink); }
.td-hero__offer b { font-weight: 700; color: var(--td-deep); margin-right: 4px; }
.td-hero .td-proofline li { font-size: var(--td-fs-caption); }

/* Строка пруфов — ссылки без подчёркивания, только цвет */
.td-hero .td-proofline a { color: inherit; text-decoration: none; }
.td-hero .td-proofline a:hover { color: var(--td-white); }

/* Портрет + чип рейтинга */
/* Портрет внутри панели оффера: чип рейтинга поверх полосы. */
.td-rating-chip {
	position: absolute;
	left: 16px;
	top: 16px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px 8px 12px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	text-decoration: none;
	color: var(--td-ink);
	font-family: var(--td-ui);
	font-size: var(--td-fs-caption);
	line-height: 18px;
	transition: background var(--td-fast) var(--td-ease);
}
.td-rating-chip:hover { background: var(--td-tint); color: var(--td-ink); }
.td-rating-chip b { font-weight: 700; font-size: var(--td-fs-body); color: var(--td-deep); }
.td-rating-chip span { font-weight: 500; color: var(--td-ink-2); }
.td-rating-chip small { font-size: var(--td-fs-micro); line-height: 1.3; color: var(--td-ink-2); padding-left: 8px; border-left: 1px solid var(--td-border); }
.td-hero__portrait .td-doctor__tag { top: auto; bottom: 16px; }

/* Карточка приёма: доверительная строка и два действия */
.td-consult-card--float .td-consult-card__note { color: var(--td-tint); font-size: var(--td-fs-small); line-height: 21px; }
.td-consult-card__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; }
.td-consult-card--float .td-link { color: var(--td-white); }
.td-consult-card--float .td-link:hover { color: var(--td-mist); }

/* Строка врача — только на телефоне */
.td-hero__doctor { display: none; }

/* Мессенджеры (рендерятся только из подтверждённого списка) */
.td-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.td-social a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 36px;
	padding: 0 12px;
	border-radius: var(--td-r-full);
	color: inherit;
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease);
}
.td-social--footer { margin-top: 14px; }
.td-social--footer a { background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); }
.td-social--footer a:hover { background: rgba(255, 255, 255, .12); }
.td-social--topbar a { min-height: 28px; padding: 0 6px; }
.td-social--topbar a:hover { color: var(--td-deep); }
/* Площадки клиники: карточка = одна платформа с её состоянием и датой
   проверки. Пустой массив reputation — ряд не рендерится вовсе. */
.td-reputation {
	list-style: none;
	margin: 24px 0 4px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
	gap: 12px;
}
.td-reputation a {
	display: flex;
	flex-direction: column;
	gap: 3px;
	height: 100%;
	padding: 16px 20px;
	border-radius: var(--td-r-card);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-reputation a:hover { background: var(--td-tint); }
.td-reputation b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 20px; color: var(--td-deep); }
.td-reputation span { font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-2); }
.td-reputation small { font-size: var(--td-fs-micro); line-height: 16px; color: var(--td-ink-2); margin-top: auto; padding-top: 4px; }

.td-review-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.td-maps { margin-top: 18px; display: flex; flex-direction: column; gap: 8px; }
.td-maps > b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-caption); color: var(--td-mist); }
.td-maps ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 20px; }
.td-maps a { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-small); color: var(--td-white); text-decoration: none; }
.td-maps a:hover { color: var(--td-mist); }
.td-maps a span { display: inline-block; transition: transform var(--td-fast) var(--td-ease); }
.td-maps a:hover span { transform: translateX(3px); }
.td-icon { display: inline-block; width: 20px; height: 20px; flex-shrink: 0; }
.td-icon--mono { font-family: var(--td-ui); font-weight: 700; font-size: 10px; letter-spacing: var(--td-track-label); width: auto; height: auto; }

/* Хореография появления первого экрана — один раз при загрузке, только
   opacity/transform, шаг задаёт --i из разметки. Не по скроллу. */
@media (prefers-reduced-motion: no-preference) {
	.td-hero__body > *, .td-hero__visual > * {
		animation: td-enter .48s var(--td-ease) both;
		animation-delay: calc(var(--i, 0) * 70ms);
	}
	@keyframes td-enter {
		from { opacity: 0; transform: translateY(14px); }
		to { opacity: 1; transform: none; }
	}
}

@media (max-width: 1024px) {
	.td-hero-offer { max-width: 640px; }
}
@media (max-width: 640px) {
	.td-hero { padding-top: 40px; }
	.td-hero__kicker { font-size: var(--td-fs-caption); margin-bottom: 14px; }
	.td-hero__offer { font-size: var(--td-fs-caption); padding: 8px 14px 8px 12px; line-height: 20px; }
	.td-hero__offer .td-topbar__full { display: none; }
	.td-hero__offer .td-topbar__short { display: inline; }
	.td-hero-person { display: none; }
	.td-hero-offer__body { padding: 24px 20px 26px; }
	.td-hero-offer__actions .td-btn { width: 100%; justify-content: center; }
	.td-hero__doctor {
		display: flex;
		align-items: center;
		gap: 12px;
		text-decoration: none;
		color: var(--td-white);
		padding: 10px 12px;
		margin-inline: -12px;
		border-radius: var(--td-r-card);
	}
	.td-hero__face { width: 56px; height: 56px; flex-shrink: 0; border-radius: var(--td-r-full); overflow: hidden; background: var(--td-pine); }
	.td-hero__face img { display: block; width: 100%; height: 100%; object-fit: cover; }
	.td-hero__doctor-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
	.td-hero__doctor-text b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 20px; }
	.td-hero__doctor-text span { font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-mist); }
	.td-hero__doctor-text i { font-style: normal; }
	.td-hero__body { gap: 20px; }
	.td-proofline { gap: 4px 0; }
}


/* ══════════════════════════════════════════════════════════════════
   F18 — подбор плана, приёмы, «почему к нам» (15.09.2026)
   ══════════════════════════════════════════════════════════════════ */

/* ── Подбор плана ───────────────────────────────────────────────── */
.td-quiz {
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-lift);
	padding: 36px 40px 40px;
	max-width: none;
	position: relative;
	min-width: 0;
}
.td-quiz-layout {
	display: grid;
	grid-template-columns: minmax(240px, .42fr) minmax(0, 1fr);
	gap: 40px 48px;
	align-items: start;
}
.td-quiz-layout__intro { position: sticky; top: calc(var(--td-bar-h) + 24px); }
.td-quiz-layout__intro .td-head { margin-bottom: 16px; }
.td-quiz-layout__meta {
	margin: 0;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-deep);
}
.td-quiz__bar { height: 3px; border-radius: 3px; background: var(--td-tint); overflow: hidden; }
.td-quiz__progress { display: block; height: 100%; width: 0; background: var(--td-primary); transition: width var(--td-base) var(--td-ease); }
.td-quiz__count { margin: 12px 0 24px; font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-caption); color: var(--td-ink-2); font-variant-numeric: tabular-nums; }
.td-quiz__count b { color: var(--td-deep); }
.td-quiz__step { border: 0; margin: 0; padding: 0; }
.td-quiz__step legend { padding: 0; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-title); line-height: 29px; color: var(--td-ink); margin-bottom: 20px; }
.td-quiz__options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.td-quiz__option {
	border: 0;
	border-radius: var(--td-r-card);
	background: var(--td-soft);
	box-shadow: var(--td-hairline-strong);
	padding: 16px 18px;
	min-height: var(--td-target);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-body);
	line-height: 20px;
	color: var(--td-ink);
	cursor: pointer;
	text-align: left;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-quiz__option:hover { background: var(--td-tint); box-shadow: inset 0 0 0 1px var(--td-primary); }
.td-quiz__option[aria-pressed="true"] { background: var(--td-deep); color: var(--td-white); box-shadow: none; }
.td-quiz__back { border: 0; background: none; padding: 0; margin-top: 22px; font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-small); color: var(--td-ink-2); cursor: pointer; }
.td-quiz__back:hover { color: var(--td-deep); }

.td-quiz__result-title { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-caption); letter-spacing: var(--td-track-caps); text-transform: uppercase; color: var(--td-link); margin-bottom: 14px; }
.td-quiz__plan { display: flex; flex-direction: column; gap: 14px; }
.td-quiz__plan-name { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-h3); line-height: 27px; color: var(--td-ink); }
.td-quiz__rows { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.td-quiz__rows li { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; border-top: 1px dashed var(--td-border-soft); }
.td-quiz__rows li:first-child { border-top: 0; }
.td-quiz__rows span { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-micro); color: var(--td-link); font-variant-numeric: tabular-nums; }
.td-quiz__rows b { font-weight: 400; font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink); flex: 1; }
.td-quiz__rows i { font-style: normal; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); color: var(--td-ink); white-space: nowrap; }
.td-quiz__total { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding-top: 12px; border-top: 1px solid var(--td-border-soft); font-size: var(--td-fs-body); color: var(--td-ink-2); }
.td-quiz__total b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-lead); color: var(--td-ink); }
.td-quiz__total--promo { border-top: 0; padding-top: 0; }
.td-quiz__total--promo b { color: var(--td-link); }
.td-quiz__total--final b { font-size: 26px; letter-spacing: var(--td-track-display); color: var(--td-deep); }
.td-quiz__hints { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.td-quiz__hints li { padding: 12px 16px; border-radius: var(--td-r-card); background: var(--td-soft); font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-quiz__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: var(--td-space-5); }
.td-quiz__actions .td-link { border: 0; background: none; padding: 0; cursor: pointer; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-small); }

/* ── Лечение по приёмам ─────────────────────────────────────────── */
.td-visits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.td-visit { background: var(--td-paper); border-radius: var(--td-r-panel); box-shadow: var(--td-hairline); padding: 28px 28px 24px; display: flex; flex-direction: column; gap: 18px; }
.td-visit header { display: flex; flex-direction: column; gap: 6px; }
.td-visit h3 { font-size: 21px; line-height: 27px; }
.td-visit header span {
	align-self: flex-start;
	padding: 5px 12px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	color: var(--td-deep);
}
.td-visit ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.td-visit li { display: flex; gap: 12px; }
.td-visit li b {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	border-radius: var(--td-r-full);
	background: var(--td-soft);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.td-visit li strong { display: block; font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 21px; color: var(--td-ink); }
.td-visit li p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); margin-top: 3px; }

/* ── Почему к нам ───────────────────────────────────────────────── */
.td-why {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	border: 0;
}
.td-why li,
.td-why li:first-child {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 28px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
	border: 0;
	min-width: 0;
	grid-column: auto;
	grid-template-columns: none;
	grid-template-areas: none;
}
.td-why__tag,
.td-why li:first-child .td-why__tag {
	display: inline-flex;
	align-self: flex-start;
	padding: 5px 10px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	letter-spacing: var(--td-track-label);
	text-transform: none;
	grid-column: auto;
	grid-row: auto;
	grid-area: auto;
}
.td-why h3,
.td-why p,
.td-why .td-link,
.td-why li:first-child h3,
.td-why li:first-child p,
.td-why li:first-child .td-link {
	grid-column: auto;
	grid-area: auto;
	align-self: auto;
	margin: 0;
	padding: 0;
}
.td-why h3,
.td-why li:first-child h3 { font-size: var(--td-fs-h3); line-height: 27px; letter-spacing: var(--td-track-tight); }
.td-why p,
.td-why li:first-child p { font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink-2); }
.td-why .td-link { margin-top: auto; padding-top: 8px; }

@media (max-width: 1024px) {
	.td-visits { grid-template-columns: 1fr; }
	.td-why { grid-template-columns: 1fr; }
	.td-why li,
	.td-why li:first-child { padding: 22px 20px; }
	.td-quiz-layout { grid-template-columns: 1fr; gap: var(--td-space-5); }
	.td-quiz-layout__intro { position: static; }
	.td-quiz { padding: 30px 28px 32px; }
}
@media (max-width: 640px) {
	.td-quiz { padding: 24px 20px 28px; border-radius: var(--td-r-panel); }
	.td-quiz__step legend { font-size: var(--td-fs-h3); line-height: 25px; }
	.td-quiz__options { grid-template-columns: 1fr; }
	.td-quiz__actions .td-btn { width: 100%; justify-content: center; }
	.td-why li { padding: 20px 18px; }
	.td-visit { padding: 24px 22px 20px; }
}

/* ── Раскладка по мере прокрутки ─────────────────────────────────── */
/* Секции ниже первого экрана не пересчитываются, пока не нужны. hero,
   промо-полоса и первая секция исключены: они попадают в LCP. */
@supports (content-visibility: auto) {
	body.home .td-section:not(.td-hero):nth-of-type(n + 4) {
		content-visibility: auto;
		contain-intrinsic-size: auto 900px;
	}
}

/* Главная: соседние блоки одной главы без двойного воздуха. */
body.home #podbor { padding-bottom: 0; }
body.home #podbor + #plan { padding-top: calc(var(--td-rhythm-dense) * var(--td-rhythm-scale)); }
body.home #plan { padding-bottom: 0; }
body.home #plan + #kredit { padding-top: calc(var(--td-rhythm-dense) * var(--td-rhythm-scale)); }
body.home #zapis { padding-bottom: calc(var(--td-rhythm) * .45 * var(--td-rhythm-scale)); }
body.home #kontakty { padding-top: calc(var(--td-rhythm) * .55 * var(--td-rhythm-scale)); }
#otzyvy .td-head { max-width: var(--td-narrow-w); }
.td-reviews--home .td-head { max-width: none; }


/* ── Каналы в контактах и уведомление о cookie ───────────────────── */
.td-info__row .td-social { margin-top: 2px; }
.td-social--contacts a { background: var(--td-soft); box-shadow: inset 0 0 0 1px var(--td-border-soft); }
.td-social--contacts a:hover { background: var(--td-tint); color: var(--td-deep); }
.td-info__links { display: flex; flex-wrap: wrap; gap: 4px 8px; }
.td-info__links a { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); color: var(--td-link); }

.td-cookie {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: var(--td-z-cookie);
	display: flex;
	align-items: center;
	gap: 18px;
	max-width: 720px;
	margin-inline: auto;
	padding: 16px 20px;
	border-radius: var(--td-r-panel);
	background: var(--td-paper);
	box-shadow: var(--td-float);
}
/* Собственный display перебивает атрибут hidden — браузерное правило
   [hidden]{display:none} имеет меньшую специфичность, чем класс. */
.td-cookie[hidden] { display: none; }
.td-cookie p { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); }
.td-cookie .td-btn { flex-shrink: 0; min-height: 44px; padding-inline: 20px; }

@media (max-width: 640px) {
	.td-cookie { flex-direction: column; align-items: stretch; gap: 12px; bottom: calc(var(--td-bar-h, 76px) + 12px); }
	.td-cookie .td-btn { width: 100%; justify-content: center; }
}

/* Правило скрытия иконок в верхней полосе объявлено ниже .td-social, иначе
   display:flex из общего блока перебивает его. Порог — как у бургера. */
@media (max-width: 1240px) {
	.td-social--topbar { display: none; }
}
@media (max-width: 640px) {
	.td-cookie { padding: 14px 16px; gap: 10px; }
	.td-cookie p { font-size: var(--td-fs-caption); line-height: 19px; }
	.td-cookie .td-btn { min-height: var(--td-target); font-size: var(--td-fs-small); }
}

/* ── Юридический блок подвала ────────────────────────────────────── */
.td-footer__warning {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-white);
	padding-bottom: 14px;
	margin-bottom: 14px;
	border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.td-footer__age {
	flex-shrink: 0;
	padding: 3px 9px;
	border-radius: var(--td-r-chip);
	background: rgba(255, 255, 255, .14);
	font-size: var(--td-fs-micro);
	line-height: 16px;
	color: var(--td-white);
}
.td-footer__legal p + p { margin-top: 12px; }

/* ══════════════════════════════════════════════════════════════════
   Услуги внутри направления, «смотрите также», статьи (16.09.2026)
   ══════════════════════════════════════════════════════════════════ */

/* Список услуг направления: строка = услуга, чтобы 9 позиций читались
   быстрее, чем девять одинаковых карточек. */
.td-subservices { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.td-subservices a {
	display: flex;
	align-items: baseline;
	gap: 12px;
	padding: 16px 20px;
	border-radius: var(--td-r-card);
	background: var(--td-soft);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-subservices a:hover { background: var(--td-tint); }
.td-subservices b { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-body); line-height: 23px; color: var(--td-deep); }
.td-subservices span { font-size: var(--td-fs-small); line-height: 21px; color: var(--td-ink-2); flex: 1; }
.td-subservices i { font-style: normal; color: var(--td-primary); font-weight: 700; margin-left: auto; }

/* «Смотрите также» — плоские пилюли, без иллюзии карточек */
.td-related__title { font-size: clamp(24px, 2.6vw, 32px); line-height: 1.12; margin-bottom: 22px; }
.td-related { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.td-related a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 18px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-body);
	line-height: 20px;
	color: var(--td-ink);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-related a:hover { background: var(--td-deep); color: var(--td-white); box-shadow: none; }
.td-related i { font-style: normal; }

/* Лента статей */
.td-posts { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.td-chips--feed + .td-posts .td-post:first-child { border-top: 0; }
.td-post { border-top: 1px solid var(--td-border-soft); }
.td-post:last-child { border-bottom: 1px solid var(--td-border-soft); }
.td-post a {
	display: grid;
	grid-template-columns: 160px minmax(0, 1fr) auto;
	align-items: start;
	gap: 12px 40px;
	padding: 32px 20px;
	margin-inline: -20px;
	border-radius: var(--td-r-row);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-post a:hover { background: var(--td-soft); }
.td-post time { font-family: var(--td-ui); font-weight: 500; font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-2); font-variant-numeric: tabular-nums; padding-top: 6px; }
.td-post h2 { font-size: 24px; line-height: 1.22; letter-spacing: var(--td-track-tight); color: var(--td-ink); }
.td-post p { grid-column: 2; font-size: var(--td-fs-body); line-height: 26px; color: var(--td-ink-2); max-width: 70ch; }
.td-post__more { font-family: var(--td-ui); font-weight: 600; font-size: var(--td-fs-small); line-height: 20px; color: var(--td-link); white-space: nowrap; align-self: center; }

@media (max-width: 900px) {
	.td-subservices { grid-template-columns: 1fr; }
	.td-post a { grid-template-columns: 1fr; gap: 10px; padding: 28px 12px; margin-inline: -12px; }
	.td-post time { padding-top: 0; }
	.td-post p { grid-column: 1; }
	.td-post h2 { font-size: 21px; line-height: 1.24; }
	.td-post__more { display: none; }
}

/* ── Выпадающие подменю в шапке и в drawer ───────────────────────── */
.td-nav__group { position: relative; display: flex; align-items: center; }
.td-nav__group > a { padding-right: 6px; }
.td-nav__toggle {
	width: 28px;
	height: 44px;
	border: 0;
	background: none;
	padding: 0;
	cursor: pointer;
	color: var(--td-ink-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: var(--td-r-control);
	transition: color var(--td-fast) var(--td-ease), background var(--td-fast) var(--td-ease);
}
.td-nav__toggle:hover { color: var(--td-deep); background: var(--td-soft); }
/* Стрелка — currentColor, поэтому контраст меняется вместе с цветом кнопки */
.td-nav__toggle i {
	width: 7px;
	height: 7px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-1px);
	transition: transform var(--td-base) var(--td-ease);
}
.td-nav__toggle[aria-expanded="true"] i { transform: rotate(-135deg) translateY(-1px); }

.td-subnav {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	z-index: 50;
	min-width: 260px;
	padding: 10px;
	border-radius: var(--td-r-panel);
	background: var(--td-paper);
	box-shadow: var(--td-float);
}
.td-nav .td-subnav {
	opacity: 0;
	transform: translateY(8px);
	pointer-events: none;
	transition: opacity var(--td-base) var(--td-ease), transform var(--td-base) var(--td-ease);
}
.td-nav .td-subnav.is-open {
	opacity: 1;
	transform: none;
	pointer-events: auto;
}
.td-subnav[hidden] { display: none; }
.td-subnav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.td-subnav a {
	display: block;
	box-sizing: border-box;
	min-height: var(--td-target);
	padding: 12px 14px;
	border-radius: var(--td-r-control);
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-ink);
	white-space: normal;
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), transform var(--td-fast) var(--td-ease);
}
.td-subnav a:hover { background: var(--td-soft); text-decoration: none; transform: translateX(3px); }
.td-subnav a[aria-current="page"] { background: var(--td-tint); color: var(--td-deep); }

/* В drawer подменю раскрывается внутри потока и двигает контент вниз, а не
   накрывает его; высота анимируется треком грида, без измерений в JS. */
@media (max-width: 1024px) {
	.td-drawer .td-nav__group { display: block; position: static; }
	.td-drawer .td-nav__group > a { padding-right: 0; }
	.td-drawer .td-nav__toggle { position: absolute; right: var(--td-gutter); margin-top: -52px; width: 44px; height: 44px; }
	.td-drawer .td-subnav {
		position: static;
		min-width: 0;
		padding: 0 0 6px 14px;
		box-shadow: none;
		background: none;
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows var(--td-base) var(--td-ease);
	}
	.td-drawer .td-subnav[hidden] { display: grid; }
	.td-drawer .td-subnav > ul { overflow: hidden; min-block-size: 0; }
	.td-drawer .td-subnav.is-open { grid-template-rows: 1fr; }
	.td-drawer .td-subnav a { font-size: var(--td-fs-body); color: var(--td-ink-2); }
}
@media (prefers-reduced-motion: reduce) {
	.td-nav__toggle i, .td-drawer .td-subnav, .td-nav .td-subnav, .td-logo__mark img, .td-header__cta .td-btn--primary { transition: none; }
	.td-nav .td-subnav, .td-subnav a, .td-header__cta .td-btn--primary, .td-logo:hover .td-logo__mark img { transform: none; }
}

/* ── Web Interface Guidelines (16.09.2026) ───────────────────────── */
/* Якоря секций под липкой шапкой: переход по #akciya / #podbor / #otzyvy
   не должен прятать заголовок за шапкой. */
section[id], [id^="td-subnav-"] { scroll-margin-top: 96px; }
/* Без задержки тапа и с намеренной подсветкой касания */
a, button, [role="button"], summary, label { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
/* Drawer и подменю — не прокручивают страницу под собой */
.td-drawer[data-open="true"] { overscroll-behavior: contain; }

/* ── layout-strengthen-2026-09-18 ────────────────────────────────── */
/* Ситуации: карточки вместо двух колонок с зазором 80px и общей линейкой.
   Выход «не знаю» — отдельная полоса, текст не сжимается кнопкой. */
.td-rows {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	border-top: 0;
}
.td-row {
	margin-inline: 0;
	padding: 24px 24px 24px 20px;
	border-bottom: 0;
	border-radius: var(--td-r-panel);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-soft);
	align-items: center;
	gap: 16px;
}
.td-row:hover {
	background: var(--td-soft);
	box-shadow: var(--td-hairline);
}
.td-row__body { gap: 8px; }
.td-row__body p { line-height: 22px; }
.td-row--exit {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 24px;
	padding: 24px 28px;
	background: var(--td-soft);
	box-shadow: none;
	grid-template-columns: none;
}
.td-row--exit:hover { background: var(--td-tint); box-shadow: none; }
.td-row--exit .td-row__num {
	flex: 0 0 auto;
	background: var(--td-paper);
	color: var(--td-deep);
}
.td-row--exit .td-row__body {
	flex: 1 1 40ch;
	min-width: min(100%, 40ch);
}
.td-row--exit .td-btn { flex: 0 0 auto; margin-left: auto; }

@media (max-width: 1024px) {
	.td-rows { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.td-row { padding: 20px; margin-inline: 0; }
	.td-row--exit { padding: 20px; }
	.td-row--exit .td-btn { margin-left: 0; width: 100%; justify-content: center; }
}

/* Отзывы: три площадки в явной сетке, подпись — подпись к ряду, не
   вытекает из первой карточки. auto-fit оставлял нулевые колонки. */
.td-reviews__sources {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: var(--td-space-6);
}
.td-reputation {
	margin: 0;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.td-reputation > li {
	display: flex;
	min-width: 0;
	list-style: none;
	height: auto;
}
.td-reputation a {
	width: 100%;
	height: auto;
	flex: 1;
	box-sizing: border-box;
	padding: 20px 24px;
	gap: 6px;
}
.td-reviews__disclaimer {
	margin: 0;
	max-width: var(--td-read-w);
	font-size: var(--td-fs-caption);
	line-height: 20px;
	color: var(--td-ink-3);
}
.td-quotes { gap: var(--td-space-5); }
.td-reviews__foot { margin-top: var(--td-space-7); padding-top: 40px; gap: var(--td-space-7); }
.td-reviews__ask {
	padding: 28px 32px;
	background: var(--td-soft);
	border-radius: var(--td-r-panel);
}
.td-why { gap: 16px; }
.td-why__tag { color: var(--td-deep); }
.td-visits { gap: var(--td-space-5); }

@media (max-width: 900px) {
	.td-reputation { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
	.td-reviews__foot { gap: var(--td-space-6); }
}

/* Запасная полоса 0 ₽, когда акция открытия уже скрыта. */
.td-promo--consult { background: var(--td-soft); }
.td-promo__body p { margin: 0; font-size: var(--td-fs-body); line-height: 22px; color: var(--td-ink-2); max-width: 62ch; }

/* Налог: подпись к плану, не плашка-алерт. */
.td-tax {
	margin: 28px 0 0;
	padding: 18px 0 0;
	background: none;
	border-radius: 0;
	border-top: 1px solid var(--td-border-soft);
	font-size: var(--td-fs-body);
	line-height: 22px;
	color: var(--td-ink-2);
	max-width: none;
}
.td-tax a { font-weight: 600; }
.td-prices__aside .td-tax {
	margin-top: 20px;
	padding: 16px 0 0;
	max-width: none;
}
.td-offer-note, .td-pay-note { display: flex; flex-direction: column; gap: 12px; }
.td-offer-note p, .td-pay-note p { margin: 0; }

/* Как найти: нумерованный индекс, как ситуации, не три одинаковые плитки. */
.td-find {
	list-style: none;
	margin: 8px 0 16px;
	padding: 0;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--td-border-soft);
}
.td-find li {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	padding: 16px 0;
	background: none;
	border-radius: 0;
	border-bottom: 1px solid var(--td-border-soft);
}
.td-find__num {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-caps);
	color: var(--td-link);
	padding-top: 2px;
}
.td-find div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.td-find b { display: block; font-size: var(--td-fs-body); line-height: 20px; color: var(--td-ink); }
.td-find div span { font-size: var(--td-fs-small); line-height: 20px; color: var(--td-ink-2); }

/* Якоря врача: та же строка пруфов, что в герое.
   display:inline у пунктов — иначе длинный третий факт на 390px
   складывается в две колонки (b и хвост как flex-дети). */
.td-anchors {
	list-style: none;
	margin: 4px 0 8px;
	padding: 16px 0 0;
	border-top: 1px solid var(--td-border-soft);
	display: block;
	line-height: 21px;
}
.td-anchors li {
	display: inline;
	padding: 0;
	background: none;
	border-radius: 0;
	font-size: var(--td-fs-small);
	line-height: 21px;
	color: var(--td-ink-2);
}
.td-anchors li + li::before {
	content: "·";
	color: var(--td-primary);
	font-weight: 700;
	margin-inline: 12px;
}
.td-anchors a {
	color: inherit;
	text-decoration: none;
	display: inline;
}
.td-anchors a:hover { color: var(--td-deep); text-decoration: underline; text-underline-offset: 3px; }
.td-anchors b { color: var(--td-ink); font-weight: 700; margin-right: 4px; }

/* CTA в конце статьи — та же карточка, что цитата, не вторая «мягкая» плашка. */
.td-article-cta {
	margin-top: 8px;
	padding: 28px 32px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-hairline);
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.td-article-cta p { margin: 0; font-size: var(--td-fs-body); line-height: 24px; color: var(--td-ink); }
.td-article-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
}

@media (max-width: 640px) {
	.td-article-cta { padding: 22px 20px; }
	.td-article-cta .td-btn { width: 100%; justify-content: center; }
	.td-reviews__ask { padding: 22px 20px; }
	.td-reviews__ask .td-review-links .td-btn { width: 100%; justify-content: center; }
	.td-why li:first-child { padding: 24px 20px; }
}

/* ══════════════════════════════════════════════════════════════════
   Layout system — fluid containers, targets, states, overflow.
   Не второй бренд: те же поверхности, те же четыре брейкпоинта.
   ══════════════════════════════════════════════════════════════════ */

.td-chrome { display: block; }

img, svg, video, iframe { max-width: 100%; }

.td-btn[aria-busy="true"] {
	position: relative;
	pointer-events: none;
	cursor: wait;
}
.td-btn--primary[aria-busy="true"],
.td-btn--primary[aria-busy="true"]:disabled {
	background: var(--td-deep);
	color: var(--td-white);
	box-shadow: none;
}
.td-btn--secondary[aria-busy="true"],
.td-btn--secondary[aria-busy="true"]:disabled {
	background: var(--td-paper);
	color: var(--td-ink);
	box-shadow: var(--td-hairline);
}
.td-btn--onpine[aria-busy="true"],
.td-btn--onpine[aria-busy="true"]:disabled {
	background: var(--td-paper);
	color: var(--td-deep);
	box-shadow: none;
}
.td-btn[aria-busy="true"]::after {
	content: "";
	width: 14px;
	height: 14px;
	margin-inline-start: 8px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: var(--td-r-full);
	animation: td-spin var(--td-spin) linear infinite;
}
@keyframes td-spin { to { transform: rotate(360deg); } }

.td-plans__tab,
.td-quiz__option,
.td-quiz__back {
	min-height: var(--td-target);
}
.td-quiz__back { padding: 8px 0; }

.td-footer__col a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
}

.td-crumbs a,
.td-crumbs span {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
}

.td-drawer { z-index: var(--td-z-drawer); }
body.td-drawer-open { overflow: hidden; }
body.td-drawer-open .td-drawer[data-open="true"] {
	max-height: min(72vh, calc(100dvh - 7rem));
	overflow-y: auto;
	overscroll-behavior: contain;
}

.wp-block-query-pagination,
.td-pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: var(--td-space-6);
}
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers,
.td-pager a,
.td-pager span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--td-target);
	min-height: var(--td-target);
	padding: 0 12px;
	border-radius: var(--td-r-control);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-small);
	color: var(--td-ink);
	background: var(--td-paper);
	box-shadow: var(--td-hairline-soft);
	text-decoration: none;
}
.td-pager a { box-shadow: var(--td-hairline-strong); }
.wp-block-query-pagination a:hover,
.td-pager a:hover { background: var(--td-soft); color: var(--td-deep); text-decoration: none; }
.wp-block-query-pagination .current,
.td-pager [aria-current="page"] {
	background: var(--td-deep);
	color: var(--td-white);
	box-shadow: none;
}

.td-empty {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: var(--td-space-6) 0;
	max-width: var(--td-read-w);
}
.td-empty p { font-size: var(--td-fs-lead); line-height: 1.5; color: var(--td-ink-2); }

.td-404 { max-width: var(--td-narrow-w); }

@media (min-width: 641px) and (max-width: 1024px) {
	.td-why { grid-template-columns: 1fr 1fr; }
	.td-why li:first-child { grid-column: auto; }
	.td-visits { grid-template-columns: 1fr; }
}

@media (max-width: 430px) {
	.td-logo { gap: 10px; min-width: 0; }
	.td-logo__mark img { width: 48px; height: 48px; }
	.td-logo__text { min-width: 0; }
	.td-logo__desc {
		white-space: normal;
		max-width: var(--td-measure-display);
		letter-spacing: var(--td-track-label);
	}
	.td-topbar a { white-space: normal; }
	.td-topbar__promo { text-align: center; line-height: 1.35; }
	.td-header__phone { font-size: var(--td-fs-small); }
	.td-quiz__rows li { flex-wrap: wrap; }
	.td-quiz__rows i { margin-left: auto; }
	.td-plan__price { white-space: normal; }
}

@media (max-width: 640px) {
	.td-footer { padding-block: 40px 28px; }
	.td-footer__col a { min-height: var(--td-target); }
	.td-footer__bottom { flex-direction: column; align-items: flex-start; }
	.td-actions .td-btn { flex: 1 1 100%; }
	.td-404 .td-actions { flex-wrap: wrap; }
	.td-404 .td-actions .td-btn { width: 100%; }
	.td-pagehead h1 { font-size: clamp(2.25rem, 8vw, 2.75rem); }
	.td-hero-offer__price { font-size: clamp(2.25rem, 12vw, 3rem); }
}

@media (max-width: 900px) {
	.td-header > .td-shell { min-height: 72px; }
	.td-hero { padding-bottom: calc(var(--td-bar-h) + env(safe-area-inset-bottom, 0px) + 24px); }
}

.td-modal__panel { max-width: min(460px, 100%); }
.td-prose :is(table, .wp-block-table) {
	display: block;
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.td-prose table {
	width: 100%;
	border-collapse: collapse;
}

@media (prefers-reduced-motion: reduce) {
	.td-btn[aria-busy="true"]::after { animation: none; border-right-color: currentColor; }
}

/* ══════════════════════════════════════════════════════════════════
   8-state completeness for interactive atoms/molecules.
   Default/hover/active/disabled already live on most controls.
   Here: focus-visible, pressed, selected, loading, error — without
   a second visual language.
   ══════════════════════════════════════════════════════════════════ */

.td-btn:active { transform: translateY(0); }
.td-btn--onpine:disabled,
.td-btn--onpine[aria-disabled="true"] {
	background: var(--td-tint);
	color: var(--td-ink);
	box-shadow: none;
}

.td-textbtn {
	min-height: var(--td-target);
	padding-inline: 2px;
}
.td-textbtn:active { color: var(--td-pine); }
.td-textbtn:disabled,
.td-textbtn[aria-disabled="true"] {
	color: var(--td-ink-2);
	cursor: default;
	pointer-events: none;
	text-decoration: none;
}

.td-link:active { color: var(--td-pine); }
.td-header__phone:active { color: var(--td-pine); }

.td-nav__toggle:active { background: var(--td-tint); }
.td-nav__toggle:disabled { opacity: .5; pointer-events: none; }

.td-subnav a:active { background: var(--td-tint); }
.td-drawer nav a[aria-current="page"] { color: var(--td-deep); }

.td-modal__close:active { background: var(--td-mist); color: var(--td-deep); }
.td-modal__close:disabled { opacity: .5; pointer-events: none; }

.td-plans__tab:active { background: var(--td-tint); }
.td-plans__tab[aria-selected="true"]:hover { background: var(--td-pine); color: var(--td-white); }
.td-plans__tab:disabled {
	color: var(--td-ink-2);
	background: var(--td-muted);
	cursor: default;
	pointer-events: none;
}
.td-plans__arrow { color: var(--td-deep); }
.td-plans__arrow:active { background: var(--td-pine); color: var(--td-white); }
.td-plans__arrow:disabled {
	color: var(--td-ink-2);
	background: var(--td-muted);
	cursor: default;
	pointer-events: none;
}

.td-quiz__option:active { background: var(--td-mist); }
.td-quiz__option[aria-pressed="true"]:hover { background: var(--td-pine); color: var(--td-white); }
.td-quiz__option:disabled {
	color: var(--td-ink-2);
	background: var(--td-muted);
	cursor: default;
	pointer-events: none;
}
.td-quiz__back:active { color: var(--td-pine); }
.td-quiz__back:disabled { color: var(--td-ink-3); pointer-events: none; }

.td-chips__i {
	display: inline-flex;
	align-items: center;
	min-height: var(--td-target);
	box-sizing: border-box;
}
.td-chips__i:active { background: var(--td-tint); }
.td-chips__i.is-current:hover { color: var(--td-white); background: var(--td-deep); border-color: var(--td-deep); }

.td-pager a:active { background: var(--td-tint); }
.td-pager [aria-disabled="true"] {
	color: var(--td-ink-3);
	pointer-events: none;
}

.td-crumbs a:active { color: var(--td-pine); }
.td-faq summary:active { color: var(--td-pine); }

.td-ico {
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: none;
	display: block;
}

@media (prefers-reduced-motion: reduce) {
	.td-checkctrl__box svg,
	.td-nav__toggle i,
	.td-faq__mark::before,
	.td-faq__mark::after { transition: none; }
}

/* ── production-surfaces-2026-09-19 ─────────────────────────────── */
/* Главы сайта: чередующийся canvas + карточки с линией и тенью.
   Без новых хекселей: только токены theme.json. */

.td-plan,
.td-plan__rule,
.td-quiz,
.td-quote,
.td-faq__list,
.td-row,
.td-info__row,
.td-dir,
.td-price,
.td-prices__aside,
.td-article-cta,
.td-consult-card,
.td-consult-card--aside {
	box-shadow: var(--td-lift);
}
.td-consult-card--aside { background: var(--td-paper); }
.td-form { box-shadow: var(--td-overlay); }
.td-doctor__media--photo { box-shadow: var(--td-lift); }
.td-map { box-shadow: var(--td-lift); }

.td-principles { gap: 10px; }
.td-principles li {
	background: var(--td-paper);
	border-radius: var(--td-r-card);
	box-shadow: var(--td-lift);
	padding: 14px 16px;
}

.td-row:hover {
	background: var(--td-paper);
	box-shadow: var(--td-lift);
}
.td-row--exit {
	background: var(--td-paper);
	box-shadow: var(--td-lift);
}
.td-row--exit:hover {
	background: var(--td-paper);
	box-shadow: var(--td-lift);
}

.td-promo__inner { padding-block: 22px; }

.td-promo--consult { background: var(--td-sage); color: var(--td-ink); }
.td-promo--consult .td-promo__value b { color: var(--td-deep); }
.td-promo--consult .td-promo__value span { color: var(--td-ink-2); }
.td-promo--consult .td-promo__body h2,
.td-promo--consult .td-promo__body p { color: var(--td-ink); }
.td-promo--consult .td-btn--primary { background: var(--td-deep); color: var(--td-white); }
.td-promo--consult .td-btn--primary:hover { background: var(--td-pine); color: var(--td-white); }

.td-tax {
	margin-top: 28px;
	padding: 16px 18px;
	background: var(--td-paper);
	border-radius: var(--td-r-card);
	box-shadow: var(--td-lift);
	border-top: 0;
	max-width: var(--td-read-w);
}

.td-offer-note,
.td-pay-note {
	padding: 24px 26px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
}
.td-offer-note h2,
.td-pay-note h2 { font-size: var(--td-fs-title); line-height: 28px; }

.td-reviews__ask {
	background: var(--td-paper);
	box-shadow: var(--td-lift);
}

.td-posts {
	display: grid;
	gap: 16px;
	border: 0;
}
.td-post {
	border: 0;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
}
.td-post:last-child { border-bottom: 0; }
.td-chips--feed + .td-posts .td-post:first-child { border-top: 0; }
.td-post a {
	margin-inline: 0;
	padding: 28px 28px;
	border-radius: var(--td-r-panel);
}
.td-post a:hover { background: var(--td-soft); }

.td-pagehead + :is(.wp-block-post-content, .entry-content) > .td-section:first-child:not([class*="td-section--"]) {
	background: var(--td-paper);
}

.td-prose p.td-callout {
	background: var(--td-tint);
	box-shadow: var(--td-lift);
}

.td-credit {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.td-credit li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 28px;
	background: var(--td-paper);
	border-radius: var(--td-r-panel);
	box-shadow: var(--td-lift);
	min-width: 0;
}
.td-credit__tag {
	display: inline-flex;
	padding: 5px 10px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-deep);
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	letter-spacing: var(--td-track-label);
}
.td-section--tint .td-credit__tag { background: var(--td-sage); }
.td-credit h3 { font-size: var(--td-fs-h3); line-height: 27px; letter-spacing: var(--td-track-tight); }
.td-credit p { font-size: var(--td-fs-body); line-height: 23px; color: var(--td-ink-2); }
.td-credit__note {
	margin: 0 0 24px;
	max-width: var(--td-read-w);
	font-size: var(--td-fs-caption);
	line-height: 20px;
	color: var(--td-ink-3);
}
.td-shell.td-prose > .td-credit,
.td-prose > .td-credit,
.td-prose > .entry-content > .td-credit { max-width: 100%; }
.td-shell.td-prose .td-credit { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.td-faq__label { color: var(--td-deep); }

@media (max-width: 1024px) {
	.td-credit { grid-template-columns: 1fr; }
	.td-shell.td-prose .td-credit { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.td-credit li { padding: 22px 20px; }
	.td-shell.td-prose .td-credit { grid-template-columns: 1fr; }
	.td-post a { padding: 22px 20px; }
	.td-offer-note,
	.td-pay-note { padding: 20px; }
}

@media (prefers-reduced-motion: reduce) {
	.td-row:hover,
	.td-row--exit:hover { box-shadow: var(--td-lift); }
}

/* ── production-surfaces-split-2026-09-19 ───────────────────── */
/* Hero: тёмный canvas. Сток живёт справа, смывка в --td-deep.
   Секции, pagehead и подвал держат mesh + зерно; сток нигде не
   выдаётся за клинику. */

.td-header {
	background: var(--td-canvas);
	border-bottom: 1px solid var(--td-border-soft);
}
.td-header.is-scrolled {
	background: var(--td-canvas);
}

.td-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	background: var(--td-canvas);
	color: var(--td-ink);
}
.td-hero__media {
	display: none;
}
.td-hero__wash { display: none; }
.td-hero .td-shell { position: relative; z-index: 1; }
.td-hero__visual {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-bottom: 0;
}
.td-hero-offer {
	position: relative;
	z-index: 2;
	box-shadow: var(--td-overlay), 0 0 0 1px color-mix(in srgb, var(--td-mist) 40%, transparent);
}
.td-hero__credit {
	position: relative;
	z-index: 1;
	margin: 8px 0 0;
	font-size: var(--td-fs-micro);
	line-height: 16px;
	color: color-mix(in srgb, var(--td-mist) 72%, var(--td-white));
	max-width: 42ch;
}
.td-hero__credit a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.td-hero__credit a:hover { color: var(--td-white); }

.td-section {
	position: relative;
	isolation: isolate;
	background-size: 120% 120%, 120% 120%;
	background-repeat: no-repeat;
}
.td-section:not(.td-section--tint):not(.td-section--sage):not(.td-section--soft):not(.td-section--paper):not(.td-section--pine) {
	background-color: var(--td-canvas);
	background-image: none;
}
.td-section--tint {
	background-color: var(--td-tint);
	background-image: none;
}
.td-section--sage {
	background-color: var(--td-sage);
	background-image: none;
}
.td-section--soft {
	background-color: var(--td-tint);
	background-image: none;
}
.td-section--paper {
	background-color: var(--td-paper);
	background-image: none;
}
.td-section--pine {
	background-color: var(--td-pine);
	color: var(--td-white);
	overflow: clip;
}
.td-section--pine::before { content: none; }
.td-section--pine > .td-shell { position: relative; z-index: 1; }

.td-pagehead {
	position: relative;
	isolation: isolate;
	overflow: clip;
	border-bottom: 1px solid var(--td-border-soft);
	background-color: var(--td-canvas);
	background-image: none;
}
.td-pagehead::before { content: none; }
.td-pagehead__inner { position: relative; z-index: 1; }

.td-footer {
	position: relative;
	isolation: isolate;
	overflow: clip;
}
.td-footer::before { content: none; }
.td-footer > .td-shell { position: relative; z-index: 1; }
.td-footer > .td-shell { position: relative; z-index: 1; }
.td-footer__stock {
	margin: 12px 0 0;
	font-size: var(--td-fs-micro);
	line-height: 18px;
	color: rgba(255, 255, 255, .72);
}
.td-footer__stock a { color: var(--td-mist); text-underline-offset: 2px; }
.td-footer__stock a:hover { color: var(--td-white); }

.td-hero__media::before,
.td-pagehead::after,
.td-footer::after,
.td-section--pine::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: .14;
	mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
	background-size: 160px 160px;
}
.td-hero__media::before { z-index: 2; opacity: .1; mix-blend-mode: overlay; }

.td-doctor {
	grid-template-columns: minmax(280px, .95fr) minmax(0, 1.05fr);
	gap: var(--td-space-7);
}

@media (prefers-reduced-motion: no-preference) {
	.td-hero-offer,
	.td-why li:not(:first-child),
	.td-post,
	.td-dir,
	.td-price {
		transition: box-shadow var(--td-base) var(--td-ease), border-color var(--td-base) var(--td-ease);
	}
	@media (hover: hover) and (pointer: fine) {
		.td-why li:not(:first-child):hover,
		.td-post:hover,
		.td-dir:hover,
		.td-price:hover {
			box-shadow: none;
			transform: none;
			border-color: var(--td-deep);
		}
	}
}

@media (max-width: 1024px) {
	.td-hero__media { display: none; }
	.td-doctor { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
	.td-hero__credit { font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
	.td-hero__photo,
	.td-section--pine::before,
	.td-pagehead::before,
	.td-footer::before { transform: none; animation: none; }
}

/* ── production-block-variety-2026-09-19 ───────────────────── */
/* Почему: одна pine-плашка + три карточки. Кредит: одна панель
   на четыре ячейки. Принципы врача: список, не ещё одни карточки. */

.td-why {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.td-why li:first-child {
	grid-column: 1 / -1;
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.4fr) auto;
	grid-template-areas: "tag tag tag" "title text link";
	align-items: end;
	gap: 12px 28px;
	padding: 32px 36px;
	background: var(--td-pine);
	color: var(--td-white);
	box-shadow: var(--td-overlay);
	border-radius: var(--td-r-hero);
}
.td-why li:first-child .td-why__tag {
	grid-area: tag;
	background: rgba(255, 255, 255, .12);
	color: var(--td-white);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28);
}
.td-why li:first-child h3 {
	grid-area: title;
	font-size: clamp(26px, 3vw, 34px);
	line-height: 1.12;
	color: var(--td-white);
}
.td-why li:first-child p {
	grid-area: text;
	font-size: var(--td-fs-body);
	line-height: 25px;
	color: var(--td-tint);
	max-width: 52ch;
}
.td-why li:first-child .td-link {
	grid-area: link;
	color: var(--td-white);
	align-self: end;
	justify-self: end;
	white-space: nowrap;
}
.td-why li:first-child .td-link:hover { color: var(--td-mist); }

.td-credit {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-lift);
	overflow: hidden;
}
.td-credit li {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	padding: 28px 24px;
	border-right: 1px solid var(--td-border-soft);
}
.td-credit li:last-child { border-right: 0; }
.td-shell.td-prose .td-credit { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.td-principles li {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	padding: 12px 0;
	border-bottom: 1px solid var(--td-border-soft);
}
.td-principles li:last-child { border-bottom: 0; padding-bottom: 0; }
.td-principles li:first-child { padding-top: 0; }

@media (max-width: 1024px) {
	.td-hero-person__photo { width: 168px; height: 168px; box-shadow: var(--td-overlay), 0 0 0 4px color-mix(in srgb, var(--td-mist) 28%, transparent); }
	.td-why { grid-template-columns: 1fr 1fr; }
	.td-why li:first-child {
		grid-column: 1 / -1;
		grid-template-columns: 1fr;
		grid-template-areas: "tag" "title" "text" "link";
		justify-items: start;
	}
	.td-why li:first-child .td-link { justify-self: start; }
	.td-credit { grid-template-columns: 1fr 1fr; }
	.td-credit li:nth-child(2) { border-right: 0; }
	.td-credit li:nth-child(-n + 2) { border-bottom: 1px solid var(--td-border-soft); }
	.td-shell.td-prose .td-credit { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.td-why { grid-template-columns: 1fr; }
	.td-why li:first-child { grid-column: auto; padding: 24px 20px; }
	.td-credit { grid-template-columns: 1fr; }
	.td-credit li {
		border-right: 0;
		border-bottom: 1px solid var(--td-border-soft);
	}
	.td-credit li:last-child { border-bottom: 0; }
	.td-credit li:nth-child(-n + 2) { border-bottom: 1px solid var(--td-border-soft); }
	.td-shell.td-prose .td-credit { grid-template-columns: 1fr; }
}

/* ── homepage-compact-2026-09-19 ───────────────────────────────── */
/* Главная без дублей квиза/почему/ситуаций. Полоса фактов, лента
   цитат, сжатый FAQ. Отзывы о враче не маскируются под отзывы клиники. */

.td-trust { padding-block: calc(var(--td-rhythm-dense, 48px) * var(--td-rhythm-scale, 1)); }
.td-trust__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-lift);
	overflow: hidden;
}
.td-trust__item {
	padding: 28px 24px;
	border-right: 1px solid var(--td-border-soft);
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	background: var(--td-paper);
}
.td-trust__item:last-child { border-right: 0; }
.td-trust__item:hover,
.td-trust__item:focus-within { background: var(--td-soft); }
.td-trust__item a {
	display: flex;
	flex-direction: column;
	gap: 8px;
	color: inherit;
	text-decoration: none;
	height: 100%;
}
.td-trust__item a:hover { color: inherit; text-decoration: none; }
.td-trust__item a:focus-visible { outline: 2px solid var(--td-primary); outline-offset: 4px; }
.td-trust__item b {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	line-height: 22px;
	color: var(--td-ink);
}
.td-trust__item span {
	font-size: var(--td-fs-small);
	line-height: 21px;
	color: var(--td-ink-2);
}
.td-trust__item .td-trust__value {
	font-family: var(--td-display);
	font-weight: 700;
	font-size: clamp(36px, 3.6vw, 48px);
	line-height: 1;
	letter-spacing: var(--td-track-hero);
	color: var(--td-deep);
	display: block;
}

.td-doctor--home {
	grid-template-columns: 1fr;
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-lift);
	padding: 36px 40px;
	max-width: none;
}
.td-doctor--home .td-doctor__body { max-width: var(--td-read-w); }
.td-doctor--home .td-doctor__lead { font-size: var(--td-fs-lead); line-height: 28px; }

.td-review-widgets {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: var(--td-space-5);
	margin: 0 0 32px;
	max-width: 100%;
	align-items: stretch;
}
.td-review-widget {
	min-width: 0;
	max-width: 100%;
	background: var(--td-paper);
	border-radius: var(--td-r-hero);
	box-shadow: var(--td-lift);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.td-review-widget__frame,
.td-dgis-constructor {
	display: block;
	width: 100%;
	max-width: 100%;
	height: 824px;
	border: 0;
	background: var(--td-soft);
}
.td-review-widget__attr {
	margin: 0;
	padding: 12px 16px 14px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-caption);
	line-height: 18px;
}
.td-review-widget__attr a { color: var(--td-link); }
.td-review-widget__attr a:hover { color: var(--td-deep); text-decoration: none; }
.td-review-widget__embed {
	min-height: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: flex-start;
}
.td-review-widget__embed iframe:not(.td-dgis-constructor):not(.td-review-widget__frame) { height: 824px; }
.td-dgis-panel {
	box-sizing: border-box;
	min-height: 560px;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	background: var(--td-deep);
	color: var(--td-white);
}
.td-dgis-panel .td-dgis-card__brand { color: var(--td-mist); }
.td-dgis-panel b {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.15;
	letter-spacing: var(--td-track-display);
}
.td-dgis-panel > span:not(.td-dgis-card__brand):not(.td-dgis-card__go) {
	font-size: var(--td-fs-body);
	line-height: 25px;
	color: var(--td-tint);
	max-width: 36ch;
}
.td-dgis-panel__score {
	margin: 8px 0 0;
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-display-xl);
	line-height: .9;
	letter-spacing: var(--td-track-hero);
	color: var(--td-white);
}
.td-dgis-panel__meta {
	margin: 0;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-lead);
	line-height: 24px;
	color: var(--td-mist);
}
.td-dgis-panel__badge {
	display: block;
	width: 240px;
	height: 80px;
	max-width: 100%;
	border: 0;
	background: var(--td-paper);
	border-radius: var(--td-r-control);
	flex: none;
}
.td-dgis-panel .td-btn--primary { background: var(--td-white); color: var(--td-deep); }
.td-dgis-panel .td-btn--primary:hover { background: var(--td-mist); color: var(--td-deep); }
.td-dgis-panel .td-dgis-card__go { color: var(--td-mist); }
.td-dgis-panel .td-dgis-card__go:hover { color: var(--td-white); }
.td-dgis-card {
	box-sizing: border-box;
	min-height: 560px;
	padding: 32px 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
	text-decoration: none;
	background: var(--td-deep);
	color: var(--td-white);
}
.td-dgis-card:hover { text-decoration: none; color: var(--td-white); background: var(--td-pine); }
.td-dgis-card__brand {
	font-family: var(--td-ui);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-caps);
	text-transform: uppercase;
	color: var(--td-mist);
}
.td-dgis-card b {
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: 28px;
	line-height: 1.15;
	letter-spacing: var(--td-track-display);
}
.td-dgis-card > span:not(.td-dgis-card__brand):not(.td-dgis-card__go) {
	font-size: var(--td-fs-body);
	line-height: 25px;
	color: var(--td-tint);
	max-width: 36ch;
}
.td-dgis-card__go {
	margin-top: auto;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-body);
	color: var(--td-white);
}
.td-reviews__doctor { margin-top: 8px; }
.td-reviews__sub {
	margin: 0 0 20px;
	font-family: var(--td-ui);
	font-weight: 600;
	font-size: var(--td-fs-title);
	line-height: 28px;
	letter-spacing: var(--td-track-tight);
	color: var(--td-ink);
}

.td-reviews--home .td-reviews__board {
	display: grid;
	grid-template-columns: minmax(220px, .36fr) minmax(0, 1fr);
	gap: var(--td-space-5);
	align-items: stretch;
}
.td-reviews--home .td-rating {
	margin: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
	padding: 28px 26px;
	border-radius: var(--td-r-hero);
	align-self: stretch;
}
.td-reviews--home .td-rating__go { margin-left: 0; }
.td-quotes-reel {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.td-quotes--reel {
	display: flex;
	gap: 0;
	max-width: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}
.td-quotes--reel::-webkit-scrollbar { display: none; }
.td-quotes--reel .td-quote {
	flex: 0 0 100%;
	width: 100%;
	min-width: 0;
	scroll-snap-align: start;
	scroll-snap-stop: always;
	min-height: 240px;
	box-sizing: border-box;
}
.td-quotes-reel__nav { display: flex; align-items: center; gap: 12px; }
.td-reviews--home .td-reviews__sources { margin-top: var(--td-space-5); }
.td-reviews--home .td-reviews__foot {
	margin-top: var(--td-space-5);
	padding-top: var(--td-space-5);
	max-width: none;
	gap: 16px;
}
.td-reviews--home .td-reviews__foot p {
	margin: 0;
	font-size: var(--td-fs-body);
	line-height: 23px;
	color: var(--td-ink-2);
	max-width: 62ch;
}

.td-faq--home {
	grid-template-columns: 1fr;
	max-width: var(--td-narrow-w);
}
.td-faq__more { margin: 20px 0 0; }

@media (max-width: 1024px) {
	.td-trust__list { grid-template-columns: 1fr 1fr; }
	.td-trust__item:nth-child(2) { border-right: 0; }
	.td-trust__item:nth-child(-n + 2) { border-bottom: 1px solid var(--td-border-soft); }
	.td-review-widgets { grid-template-columns: 1fr; }
	.td-review-widget__frame,
	.td-dgis-constructor { height: 824px; }
	.td-review-widget__embed { height: auto; min-height: 0; }
	.td-dgis-card,
	.td-dgis-panel { height: auto; min-height: 520px; }
	.td-reviews--home .td-reviews__board { grid-template-columns: 1fr; }
	.td-reviews--home .td-rating { flex-direction: row; flex-wrap: wrap; height: auto; }
	.td-doctor--home { padding: 28px 24px; }
}
@media (max-width: 640px) {
	.td-trust__list { grid-template-columns: 1fr; }
	.td-trust__item {
		border-right: 0;
		border-bottom: 1px solid var(--td-border-soft);
		padding: 22px 20px;
	}
	.td-trust__item:last-child { border-bottom: 0; }
	.td-trust__item:nth-child(-n + 2) { border-bottom: 1px solid var(--td-border-soft); }
	.td-quotes--reel .td-quote { min-height: 0; padding: 22px 20px; }
	.td-review-widget__frame,
	.td-dgis-constructor { height: 720px; }
	.td-dgis-card,
	.td-dgis-panel { padding: 24px 20px; min-height: 480px; }
	.td-dgis-panel__score { font-size: var(--td-fs-display-lg); }
	.td-reviews__sub { font-size: var(--td-fs-h3); }
}

@media (prefers-reduced-motion: reduce) {
	.td-quotes--reel { scroll-behavior: auto; }
	.td-trust__item { transition: none; }
}

/* ── UX pass: cookie offset, credit hush, plan wrap, quiz focus ── */
html.td-has-cookie { --td-cookie-stack: 108px; }
html.td-has-cookie body {
	padding-bottom: calc(var(--td-cookie-stack) + env(safe-area-inset-bottom, 0px));
}
html.td-has-cookie .td-hero {
	padding-bottom: calc(var(--td-cookie-stack) + var(--td-space-6));
}
@media (max-width: 900px) {
	/* Sticky bar is visible through 900px; cookie sat on it between 641–900. */
	.td-cookie { bottom: calc(var(--td-bar-h, 76px) + 12px); }
	html.td-has-cookie body {
		padding-bottom: calc(var(--td-bar-h) + var(--td-cookie-stack) + env(safe-area-inset-bottom, 0px));
	}
}
.td-hero__credit {
	opacity: .7;
	font-size: var(--td-fs-micro);
	line-height: var(--td-lh-caption);
}
.td-hero__credit:hover,
.td-hero__credit:focus-within { opacity: 1; }
[hidden][data-td-promo],
[hidden][data-td-promo-after] { display: none !important; }
@media (max-width: 640px) {
	.td-plan__price,
	.td-plan__totals dd { white-space: normal; }
	.td-hero-offer .td-btn { white-space: normal; text-wrap: balance; }
	.td-pagehead + .td-section.td-section--dense { padding-top: var(--td-space-6); }
}
.td-quiz__option:focus-visible {
	outline: 2px solid var(--td-link);
	outline-offset: 2px;
}
.td-doctor--home .td-btn--primary { align-self: flex-start; }

/* ── Visual system V2.1: layout repair + clinical depth ──────── */
.td-shell {
	max-width: calc(var(--td-container) + var(--td-gutter) * 2);
}

.td-topbar { background: var(--td-canvas); border-bottom: 1px solid var(--td-border-soft); }
.td-chrome { background: var(--td-canvas); }
.td-header {
	box-shadow: none;
	border-bottom: 1px solid var(--td-border-soft);
	background: var(--td-canvas);
}
.td-header > .td-shell { min-height: 80px; }
.td-header.is-scrolled > .td-shell { min-height: 72px; }

/* Hero: filled two-column editorial, portrait owns the right track */
.td-hero {
	background-color: var(--td-canvas);
	background-image:
		radial-gradient(ellipse 46% 72% at 86% 34%, color-mix(in srgb, var(--td-primary) 10%, transparent), transparent 72%),
		radial-gradient(ellipse 28% 48% at 6% 92%, color-mix(in srgb, var(--td-deep) 5%, transparent), transparent 70%);
	color: var(--td-ink);
	padding-block: var(--td-space-7) var(--td-space-7);
}
.td-hero h1,
.td-hero h1 span { color: var(--td-ink); }
.td-hero__grid {
	grid-template-columns: minmax(0, 1fr) minmax(420px, 560px);
	gap: clamp(24px, 2.4vw, 40px);
	align-items: center;
}
.td-hero__body {
	gap: 0;
	max-width: none;
	justify-content: center;
}
.td-hero__kicker {
	display: block;
	font-family: var(--td-ui);
	font-weight: 500;
	font-size: var(--td-fs-caption);
	letter-spacing: var(--td-track-caps);
	text-transform: uppercase;
	color: var(--td-ink-3);
	margin-bottom: var(--td-space-4);
}
.td-hero h1 {
	max-width: 18ch;
	letter-spacing: var(--td-track-hero);
	margin-bottom: var(--td-space-5);
}
.td-hero__lead {
	color: var(--td-ink-2);
	max-width: var(--td-measure-lead);
	margin-bottom: var(--td-space-6);
}
.td-actions--hero { margin-bottom: var(--td-space-5); }
.td-hero__phone { color: var(--td-deep); }
.td-hero__phone:hover { color: var(--td-pine); }
.td-hero .td-proofline { margin-top: 0; }
.td-hero .td-proofline li { color: var(--td-ink-3); }
.td-hero .td-proofline b { color: var(--td-ink); }
.td-hero .td-proofline a { color: inherit; }
.td-hero .td-proofline a:hover { color: var(--td-deep); }
.td-hero .td-btn--primary { background: var(--td-deep); color: var(--td-white); }
.td-hero .td-btn--primary:hover { background: var(--td-pine); color: var(--td-white); }
.td-hero .td-doctor-row { color: var(--td-ink); }
.td-hero__credit { display: none; }
.td-hero__credit a { color: inherit; }
.td-hero__credit a:hover { color: var(--td-deep); }

.td-hero__visual {
	position: relative;
	z-index: 1;
	display: block;
	padding-bottom: 96px;
}
.td-hero__visual::before {
	content: "";
	position: absolute;
	inset: 10% -10% -8% 22%;
	background: var(--td-tint);
	border-radius: var(--td-r-hero);
	z-index: 0;
}
.td-hero-person {
	position: relative;
	z-index: 1;
	display: block;
	align-items: stretch;
	gap: 0;
}
.td-hero-person__photo {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	max-height: none;
	border-radius: var(--td-r-hero);
	box-shadow: none;
	outline: 1px solid var(--td-border-soft);
	background: var(--td-soft);
	overflow: hidden;
}
.td-hero-person__photo picture,
.td-hero-person__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 12%;
	aspect-ratio: 4 / 5;
	transition: transform 420ms var(--td-ease);
}
.td-hero-person:hover img { transform: scale(1.02); }
.td-hero-person__meta {
	position: absolute;
	left: 16px;
	right: 16px;
	top: 16px;
	bottom: auto;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 8px;
	padding: 0;
	z-index: 2;
}
.td-hero-person .td-rating-chip {
	background: color-mix(in srgb, var(--td-white) 92%, transparent);
	box-shadow: var(--td-hairline);
}
.td-hero-person__id {
	background: color-mix(in srgb, var(--td-white) 94%, transparent);
	box-shadow: var(--td-hairline);
	border-radius: var(--td-r-card);
}
.td-hero-offer {
	position: absolute;
	z-index: 2;
	left: 28px;
	right: 0;
	bottom: 0;
	width: auto;
	margin: 0;
	background: var(--td-paper);
	color: var(--td-ink);
	box-shadow: var(--td-hairline), 0 12px 28px rgba(18, 63, 53, .06);
	outline: 0;
}
.td-hero-offer__body { padding: 18px 20px 20px; gap: 8px; }
.td-hero-offer__price {
	color: var(--td-deep);
	font-size: clamp(1.75rem, 2vw + 1rem, 2.25rem);
}
.td-hero-offer__label,
.td-hero-offer__steps li,
.td-hero-offer__n,
.td-hero-offer__note { color: var(--td-ink); }
.td-hero-offer__steps { border-top-color: var(--td-border-soft); }
.td-hero-offer__steps li {
	border-bottom-color: var(--td-border-soft);
	padding: 7px 0;
	font-size: var(--td-fs-small);
	line-height: 20px;
}
.td-hero-offer .td-btn--primary,
.td-hero-offer .td-btn--onpine { background: var(--td-deep); color: var(--td-white); }
.td-hero-offer .td-btn--primary:hover,
.td-hero-offer .td-btn--onpine:hover { background: var(--td-pine); color: var(--td-white); }
.td-hero-offer .td-link { color: var(--td-link); }
.td-hero-offer .td-link:hover { color: var(--td-deep); }

/* Promo as contained card, not a full-bleed slab */
.td-promo {
	background: var(--td-canvas);
	margin-block: 0;
	padding-block: 0 var(--td-space-6);
}
.td-promo__inner {
	background: var(--td-deep);
	color: var(--td-white);
	border-radius: var(--td-r-hero);
	padding: 20px 28px;
	gap: 20px;
}
.td-promo--consult {
	background: var(--td-canvas);
	color: var(--td-ink);
}
.td-promo:not(.td-promo--consult) .td-promo__value b,
.td-promo:not(.td-promo--consult) .td-promo__body h2,
.td-promo:not(.td-promo--consult) .td-promo__body p { color: var(--td-white); }
.td-promo:not(.td-promo--consult) .td-promo__value span { color: var(--td-mist); }
.td-promo--consult .td-promo__inner {
	background: var(--td-tint);
	color: var(--td-ink);
	box-shadow: var(--td-hairline);
}
.td-promo--consult .td-promo__value b,
.td-promo--consult .td-promo__body h2,
.td-promo--consult .td-promo__body p { color: var(--td-ink); }
.td-promo--consult .td-promo__value span { color: var(--td-ink-2); }
.td-hero-offer .td-btn { white-space: normal; }

.td-head { gap: 12px; margin-bottom: 40px; max-width: 40rem; }
.td-section--dense .td-head { margin-bottom: var(--td-space-6); }
.td-section--soft {
	background-color: var(--td-tint);
	background-image: radial-gradient(ellipse 70% 80% at 100% 0%, color-mix(in srgb, var(--td-primary) 6%, transparent), transparent 65%);
}
.td-section--sage {
	background-color: var(--td-sage);
	background-image: none;
}
.td-pagehead {
	background-color: var(--td-white);
	background-image: radial-gradient(ellipse 50% 80% at 92% 0%, color-mix(in srgb, var(--td-primary) 8%, transparent), transparent 70%);
}

.td-rows {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.td-row {
	margin: 0;
	padding: 20px 20px 18px;
	border-radius: var(--td-r-card);
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 8px 14px;
	align-items: start;
	transition: transform var(--td-fast) var(--td-ease), background var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-row:hover {
	background: var(--td-soft);
	box-shadow: inset 0 0 0 1px var(--td-deep);
	transform: translateY(-2px);
}
.td-row__num {
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-label);
	color: var(--td-ink-3);
	padding-top: 4px;
	width: auto;
	height: auto;
	background: none;
	border-radius: 0;
}
.td-row__arrow { color: var(--td-ink-3); }
.td-row--exit { grid-column: 1 / -1; }

.td-dir,
.td-dir--feature,
.td-dirs__rest,
.td-dir__anchors > div,
.td-price,
.td-post,
.td-visit,
.td-plan__rule {
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
	transition: transform var(--td-fast) var(--td-ease), background var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-dir:hover,
.td-price:hover,
.td-post:hover,
.td-visit:hover {
	transform: translateY(-2px);
	background: var(--td-soft);
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--td-deep) 35%, var(--td-border));
}
.td-dir--feature { background: var(--td-tint); }
.td-price--free { background: var(--td-tint); box-shadow: none; outline: 1px solid var(--td-border-soft); }

.td-quiz { background: var(--td-paper); box-shadow: var(--td-hairline); border-radius: var(--td-r-panel); padding: 28px; }
.td-quiz__option {
	background: var(--td-paper);
	box-shadow: var(--td-hairline-strong);
	border-radius: var(--td-r-control);
	text-align: left;
	transition: background var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
.td-quiz__option:hover { background: var(--td-soft); box-shadow: inset 0 0 0 1px var(--td-deep); }
.td-quiz__option[aria-pressed="true"] {
	background: var(--td-tint);
	color: var(--td-ink);
	box-shadow: inset 0 0 0 2px var(--td-deep);
	font-weight: 600;
}
.td-quiz__bar { background: var(--td-border-soft); height: 2px; }
.td-quiz__hints li { background: var(--td-soft); }

.td-faq__list {
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	border-top: 1px solid var(--td-border-soft);
}
.td-faq__item { background: transparent; }
.td-faq__item[open] { background: transparent; }
.td-faq__mark { background: transparent; border: 1px solid var(--td-border); border-radius: var(--td-r-control); }
.td-faq__item[open] .td-faq__mark,
.td-faq summary:hover .td-faq__mark { background: var(--td-soft); }

.td-form {
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
}
.td-field input,
.td-field textarea {
	background: var(--td-paper);
	border-radius: var(--td-r-field);
	min-height: 48px;
}
.td-section--soft .td-form-intro h2,
.td-section:not(.td-section--pine) .td-form-intro h2 { color: var(--td-ink); }
.td-section--soft .td-form-intro p,
.td-section:not(.td-section--pine) .td-form-intro p { color: var(--td-ink-2); }
.td-section--soft .td-form-intro__phone,
.td-section:not(.td-section--pine) .td-form-intro__phone { color: var(--td-deep); }
.td-section--soft .td-form-intro ul li,
.td-section:not(.td-section--pine) .td-form-intro ul li { color: var(--td-ink); }
.td-section--soft .td-form-intro ul li::before,
.td-section:not(.td-section--pine) .td-form-intro ul li::before { background-color: var(--td-deep); }

.td-footer {
	background: var(--td-sage);
	color: var(--td-ink);
	border-top: 1px solid var(--td-border-soft);
	padding-block: var(--td-space-8) var(--td-space-7);
}
.td-footer__about p,
.td-footer__contact,
.td-footer__col :is(h2, h3),
.td-footer__col a,
.td-footer__legal p,
.td-footer__bottom > span { color: var(--td-ink-2); }
.td-footer__contact a,
.td-footer__col a { color: var(--td-ink); }
.td-footer__col a:hover { color: var(--td-deep); }
.td-footer__legal p { color: var(--td-ink-3); }
.td-footer__rule { background: var(--td-border); opacity: 1; }
.td-footer__stock { color: var(--td-ink-3); }
.td-author { color: var(--td-ink-3); }
.td-author:hover,
.td-author:focus-visible { color: var(--td-deep); }
.td-logo--dark .td-logo__name,
.td-logo--dark .td-logo__desc { color: var(--td-ink); }
.td-footer .td-social a { color: var(--td-ink); }

.td-doctor__media,
.td-doctor__media--photo { background: var(--td-soft); }
.td-consult-card--aside { background: var(--td-paper); box-shadow: var(--td-hairline); }

@media (prefers-reduced-motion: reduce) {
	.td-hero-person:hover img,
	.td-row:hover,
	.td-dir:hover,
	.td-price:hover,
	.td-post:hover,
	.td-visit:hover { transform: none; }
}

@media (max-width: 1024px) {
	.td-hero__grid {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 380px);
		gap: var(--td-space-5);
		align-items: center;
	}
	.td-hero__body { max-width: none; }
	.td-hero h1 { max-width: 16ch; }
	.td-hero__visual { padding-bottom: 220px; }
	.td-hero__visual::before { inset: 8% -8% -4% 18%; height: auto; }
	.td-hero-person { display: block; }
	.td-hero-person__photo {
		width: 100%;
		height: auto;
		border-radius: var(--td-r-hero);
		box-shadow: none;
	}
	.td-hero-offer {
		position: absolute;
		left: 16px;
		right: 0;
		bottom: 0;
		width: auto;
		margin: 0;
	}
	.td-rows { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
	.td-hero__grid { grid-template-columns: 1fr; gap: 28px; align-items: start; }
	.td-hero h1 { max-width: none; }
	.td-hero__visual { padding-bottom: 180px; }
	.td-hero-person__photo {
		width: 100%;
		max-width: none;
		height: min(42vh, 380px);
		aspect-ratio: auto;
	}
	.td-hero-person__photo img { aspect-ratio: auto; height: 100%; }
	.td-hero-offer { left: 16px; right: 16px; }
}
@media (max-width: 640px) {
	.td-hero { padding-block: var(--td-space-6) var(--td-space-7); }
	.td-hero h1 { max-width: none; margin-bottom: var(--td-space-4); }
	.td-hero__lead { margin-bottom: var(--td-space-5); }
	.td-hero-person { display: block; }
	.td-hero-person__photo { width: 100%; max-width: none; height: min(38vh, 320px); aspect-ratio: auto; }
	.td-hero__visual { padding-bottom: 160px; }
	.td-hero-offer { left: 12px; right: 12px; width: auto; margin: 0; }
	.td-hero__doctor { display: none; }
	.td-quiz { padding: 18px; }
	.td-row { grid-template-columns: auto minmax(0, 1fr); }
	.td-row__arrow { display: none; }
	.td-form { padding: 22px; }
	.td-promo__inner { padding: 16px 18px; }
}

/* ══════════════════════════════════════════════════════════════════
   Редизайн «без фото» — 2026-09-24
   Своих фотографий у клиники пока нет, поэтому характер держат ритм глав,
   типографика и цвет: светлый canvas → тёмная полоса акции → карточки →
   pine-направление → … → pine-запись → deep-подвал. Заголовки — Onest 700
   (--td-display), Philosopher — только словесный знак. Только токены темы;
   прозрачности белого — как в остальном файле.
   ══════════════════════════════════════════════════════════════════ */

/* ── Типографика глав ─────────────────────────────────────── */
h1, h2 { letter-spacing: var(--td-track-display); }
.td-head h2 { font-size: clamp(2rem, 2.2vw + 1.1rem, 2.75rem); line-height: 1.08; }
.td-head p { font-size: var(--td-fs-lead); line-height: 1.55; }
.td-nw { white-space: nowrap; }

/* ── Верхняя полоса: тёмная рамка сайта ───────────────────── */
.td-topbar { background: var(--td-deep); color: rgba(255, 255, 255, .8); border-bottom: 0; }
.td-topbar a { color: rgba(255, 255, 255, .86); }
.td-topbar a:hover { color: var(--td-white); }
.td-topbar__place i { color: var(--td-mist); }
.td-topbar__promo { color: var(--td-white); }
.td-topbar__promo b { color: var(--td-mist); }
.td-topbar .td-social a { color: var(--td-white); background: transparent; }
.td-topbar :where(a, button):focus-visible { outline-color: var(--td-mist); }

/* ── Первый экран: заголовок + карточка приёма ────────────── */
.td-hero { padding-block: clamp(40px, 3vw + 24px, 88px) clamp(56px, 4vw + 32px, 112px); }
.td-hero__grid {
	grid-template-columns: minmax(0, 1fr) minmax(360px, 480px);
	gap: clamp(40px, 6vw, 112px);
	align-items: center;
}
.td-hero h1 .td-hero__kicker { color: var(--td-link); font-weight: 600; margin-bottom: var(--td-space-5); }
.td-hero h1 {
	font-size: clamp(2.5rem, 2.9vw + 1.35rem, 4.25rem);
	line-height: 1.03;
	letter-spacing: -.035em;
	max-width: 13.5ch;
	margin-bottom: var(--td-space-6);
}
.td-hero__lead { font-size: clamp(1.0625rem, .35vw + 1rem, 1.25rem); line-height: 1.55; max-width: 38ch; }
.td-hero__visual { position: relative; padding: 0; }
/* Сосновая подложка под карточкой: слой «документа», без картинки. */
.td-hero__visual::before {
	content: "";
	position: absolute;
	z-index: 0;
	inset: 40px -24px -24px 40px;
	height: auto;
	background: var(--td-pine);
	border-radius: 24px;
}
.td-hero .td-hero-offer {
	position: relative;
	inset: auto;
	z-index: 1;
	width: 100%;
	margin: 0;
	background: var(--td-paper);
	border-radius: 20px;
	box-shadow: var(--td-overlay);
	overflow: hidden;
	outline: 0;
}
.td-hero-offer__doctor {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: 14px;
	padding: 16px 22px;
	background: var(--td-tint);
	color: var(--td-ink);
	border-bottom: 1px solid var(--td-border-soft);
	text-decoration: none;
	transition: background var(--td-fast) var(--td-ease);
}
.td-hero-offer__doctor:hover { background: color-mix(in srgb, var(--td-tint) 72%, var(--td-mist)); color: var(--td-ink); text-decoration: none; }
.td-hero-offer__face {
	width: 56px;
	height: 56px;
	border-radius: var(--td-r-full);
	overflow: hidden;
	box-shadow: 0 0 0 3px var(--td-paper);
}
.td-hero-offer__face picture,
.td-hero-offer__face img { display: block; width: 100%; height: 100%; object-fit: cover; }
.td-hero-offer__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.td-hero-offer__who b { font-weight: 600; font-size: var(--td-fs-small); line-height: 19px; color: var(--td-ink); }
.td-hero-offer__who span { font-size: var(--td-fs-caption); line-height: 17px; color: var(--td-ink-2); }
.td-hero-offer__rating { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; text-align: right; }
.td-hero-offer__rating b { font-weight: 700; font-size: 1.5rem; line-height: 1; letter-spacing: -.02em; color: var(--td-deep); }
.td-hero-offer__rating :is(span, small) { font-size: var(--td-fs-micro); line-height: 15px; color: var(--td-ink-2); }
.td-hero .td-hero-offer__body { padding: 24px 24px 22px; display: flex; flex-direction: column; gap: 18px; }
.td-hero-offer__top { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; }
.td-hero .td-hero-offer__price {
	font-family: var(--td-display);
	font-weight: 700;
	font-size: clamp(2.5rem, 1.6vw + 1.75rem, 3.25rem);
	line-height: 1;
	letter-spacing: -.04em;
	color: var(--td-deep);
}
.td-hero .td-hero-offer__label { font-weight: 600; font-size: var(--td-fs-lead); line-height: 1.3; color: var(--td-ink); }
.td-hero .td-hero-offer__steps { list-style: none; margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: 12px; }
.td-hero .td-hero-offer__steps li {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	padding: 0;
	border: 0;
	font-size: .9375rem;
	line-height: 22px;
	color: var(--td-ink);
}
.td-hero .td-hero-offer__n {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	margin-top: -3px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-pine);
	font-weight: 700;
	font-size: var(--td-fs-caption);
	line-height: 1;
}
.td-hero .td-hero-offer__note { font-size: var(--td-fs-caption); line-height: 19px; color: var(--td-ink-2); padding-top: 16px; border-top: 1px solid var(--td-border-soft); }
.td-hero .td-hero-offer__actions { display: flex; margin: 0; }

/* ── Полоса акции ─────────────────────────────────────────── */
.td-promo { padding-block: 0 var(--td-space-4); }
.td-promo .td-promo__inner {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	padding: clamp(22px, 2.4vw, 36px) clamp(22px, 3vw, 48px);
	gap: clamp(20px, 3vw, 48px);
	align-items: center;
}
.td-promo:not(.td-promo--consult) .td-promo__inner {
	background-color: var(--td-deep);
	background-image: radial-gradient(ellipse 40% 120% at 100% 100%, color-mix(in srgb, var(--td-mist) 16%, transparent), transparent 70%);
}
.td-promo__value { flex-direction: column; align-items: flex-start; gap: 8px; }
.td-promo:not(.td-promo--consult) .td-promo__value b {
	font-size: clamp(3rem, 3.4vw + 1.2rem, 4.5rem);
	line-height: .9;
	letter-spacing: -.045em;
	color: var(--td-mist);
}
.td-promo:not(.td-promo--consult) .td-promo__value span {
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-caps);
	text-transform: uppercase;
	color: rgba(255, 255, 255, .8);
}
.td-promo__body { gap: 12px; }
.td-promo:not(.td-promo--consult) .td-promo__body h2 {
	font-size: clamp(1.125rem, .6vw + 1rem, 1.5rem);
	line-height: 1.3;
	font-weight: 600;
	letter-spacing: -.01em;
	max-width: 32ch;
}
.td-promo:not(.td-promo--consult) .td-promo__conds { display: flex; flex-wrap: wrap; gap: 8px; }
.td-promo__conds li {
	padding: 6px 12px;
	border-radius: var(--td-r-full);
	background: rgba(255, 255, 255, .08);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2);
	font-size: var(--td-fs-caption);
	line-height: 18px;
	color: var(--td-white);
}
.td-promo :where(a, button):focus-visible { outline-color: var(--td-mist); }

/* ── Ситуации: сетка карточек в три колонки ──────────────── */
#situacii .td-rows { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
#situacii .td-row {
	position: relative;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "num arrow" "body body";
	align-content: start;
	gap: 20px 12px;
	padding: 24px 24px 26px;
	border-radius: var(--td-r-panel);
}
#situacii .td-row__num {
	grid-area: num;
	justify-self: start;
	align-self: center;
	padding: 6px 11px;
	border-radius: var(--td-r-full);
	background: var(--td-tint);
	color: var(--td-pine);
	font-weight: 700;
	font-size: var(--td-fs-micro);
	letter-spacing: var(--td-track-label);
	line-height: 1;
}
#situacii .td-row__body { grid-area: body; display: flex; flex-direction: column; gap: 8px; }
#situacii .td-row__body h3 { font-size: var(--td-fs-h3); line-height: 1.3; letter-spacing: var(--td-track-tight); }
#situacii .td-row__body p { font-size: .9375rem; line-height: 1.55; color: var(--td-ink-2); }
#situacii .td-row__arrow {
	grid-area: arrow;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: var(--td-r-full);
	box-shadow: var(--td-hairline);
	color: var(--td-deep);
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease), box-shadow var(--td-fast) var(--td-ease);
}
#situacii .td-row:hover .td-row__arrow { background: var(--td-deep); color: var(--td-white); box-shadow: none; }
#situacii .td-row--exit {
	grid-column: 1 / -1;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas: "num body cta";
	align-items: center;
	min-height: 0;
	padding: 22px 24px;
	background: var(--td-tint);
	box-shadow: none;
}
#situacii .td-row--exit:hover { transform: none; background: var(--td-tint); box-shadow: none; }
#situacii .td-row--exit .td-row__num { background: var(--td-paper); }
#situacii .td-row--exit > .td-btn { grid-area: cta; }

/* ── Направления: ключевое — сосновой карточкой ──────────── */
.td-dirs { gap: 16px; }
.td-dir--feature {
	position: relative;
	overflow: hidden;
	background: var(--td-pine);
	color: var(--td-white);
	box-shadow: none;
	border-radius: 20px;
}
.td-dir--feature::before {
	content: "";
	position: absolute;
	right: -18%;
	bottom: -40%;
	width: 70%;
	aspect-ratio: 1;
	border-radius: var(--td-r-full);
	background: radial-gradient(closest-side, color-mix(in srgb, var(--td-mist) 18%, transparent), transparent);
	pointer-events: none;
}
.td-dir--feature > * { position: relative; }
.td-dir--feature :is(h2, h3) a { color: var(--td-white); }
.td-dir--feature > p { color: rgba(255, 255, 255, .84); }
.td-dir--feature .td-dir__list li { color: var(--td-white); }
.td-dir--feature .td-dir__list li::before { color: var(--td-mist); }
.td-dir--feature .td-dir__anchors > div { background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }
.td-dir--feature .td-dir__anchors dt { color: rgba(255, 255, 255, .86); } /* mist на плитке — 4.05:1, мало */
.td-dir--feature .td-dir__anchors dd { color: var(--td-white); }
.td-dir--feature .td-dir__anchors-note { color: rgba(255, 255, 255, .76); }
.td-dir--feature .td-link { color: var(--td-mist); }
.td-dir--feature .td-link:hover { color: var(--td-white); }
.td-dir--feature:hover { background: var(--td-pine); transform: none; box-shadow: none; }
.td-dir--feature :where(a, button):focus-visible { outline-color: var(--td-mist); }

/* ── Подбор и план: нижний воздух у каждой главы ─────────── */
/* Раньше #podbor и #plan стояли без нижнего отступа: подпись упиралась
   в следующую полосу другого цвета. */
body.home #podbor,
body.home #plan { padding-bottom: calc(var(--td-rhythm) * var(--td-rhythm-scale)); }
body.home #podbor + #plan { padding-top: calc(var(--td-rhythm) * var(--td-rhythm-scale)); }

/* ── Врач на главной: портрет в родной пропорции 8:5 ─────── */
.td-doctor--home {
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: center;
	padding: 0;
	background: transparent;
	border-radius: 0;
	box-shadow: none;
}
.td-section:not(.td-section--tint):not(.td-section--soft):not(.td-section--pine) .td-doctor__media--photo { --td-cut: var(--td-canvas); }
.td-doctor--home .td-doctor__media--photo { width: 100%; max-width: 640px; border-radius: 20px; }
.td-doctor--home .td-doctor__tag { display: none; }
.td-doctor--home .td-doctor__body { max-width: 34rem; gap: 18px; }
.td-doctor--home .td-doctor__body h2 { font-size: clamp(2rem, 2vw + 1.2rem, 2.75rem); line-height: 1.08; }

/* ── Отзывы — на полосе, чтобы врач / отзывы / вопросы не слились ── */
#otzyvy { background-color: var(--td-tint); }

/* ── Частые вопросы: шапка и связь слева, список справа ──── */
.td-faq--home { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 96px); max-width: none; }
.td-faq__intro { position: sticky; top: 112px; display: flex; flex-direction: column; gap: 20px; }
.td-faq__intro .td-head { margin-bottom: 0; }
.td-faq__intro .td-faq__more { margin: 0; }
.td-faq__contact {
	margin-top: 8px;
	padding: 24px;
	border-radius: var(--td-r-panel);
	background: var(--td-tint);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
}
.td-faq__contact-title { font-weight: 600; font-size: var(--td-fs-lead); line-height: 1.3; color: var(--td-ink); }
.td-faq__contact p:not(.td-faq__contact-title) { font-size: var(--td-fs-small); line-height: 1.5; color: var(--td-ink-2); }
.td-faq__phone { font-weight: 700; font-size: 1.375rem; line-height: 1.2; letter-spacing: -.01em; color: var(--td-deep); text-decoration: none; }
.td-faq__phone:hover { color: var(--td-pine); }
.td-social--faq { display: flex; gap: 8px; list-style: none; margin: 4px 0 0; padding: 0; }
.td-social--faq a {
	display: grid;
	place-items: center;
	width: var(--td-target);
	height: var(--td-target);
	padding: 0;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	color: var(--td-deep);
	box-shadow: var(--td-hairline);
	transition: background var(--td-fast) var(--td-ease), color var(--td-fast) var(--td-ease);
}
.td-social--faq a:hover { background: var(--td-deep); color: var(--td-white); }

/* ── Запись: финальная тёмная глава ───────────────────────── */
.td-section--pine .td-form { box-shadow: var(--td-overlay); }

/* ── Подвал: deep, светлый текст ─────────────────────────── */
/* Слой V2.1 делал подвал светлым, а ссылки «на картах» и «18+» остались
   белыми — на sage их не было видно (1.09:1). Подвал снова тёмный. */
.td-footer { background: var(--td-deep); color: var(--td-white); border-top: 0; }
.td-footer__about p,
.td-footer__contact { color: rgba(255, 255, 255, .78); }
.td-footer__contact a,
.td-footer__col a { color: var(--td-white); }
.td-footer__contact a:hover,
.td-footer__col a:hover { color: var(--td-mist); }
.td-footer__col :is(h2, h3) { color: var(--td-mist); }
.td-footer__legal p,
.td-footer__bottom > span,
.td-footer__stock { color: rgba(255, 255, 255, .7); }
.td-footer__stock a { color: var(--td-mist); }
.td-footer__rule { background: rgba(255, 255, 255, .16); opacity: 1; }
.td-author { color: rgba(255, 255, 255, .7); }
.td-author:hover,
.td-author:focus-visible { color: var(--td-white); }
.td-footer .td-logo__name { color: var(--td-white); }
.td-footer .td-logo__desc { color: var(--td-mist); }
.td-footer .td-social a { color: var(--td-white); }
.td-footer :where(a, button, summary):focus-visible { outline-color: var(--td-mist); }

/* ── Заголовок внутренних страниц ────────────────────────── */
/* Центр по текстовой колонке — только когда страница с неё начинается
   (раньше хватало любой колонки ниже, и на «Врачах» заголовок висел
   над полноширинным блоком). Ширина — те же 72ch в том же шрифте. */
.td-pagehead:has(+ :is(.entry-content, .wp-block-post-content) .td-shell.td-prose) .td-pagehead__inner { margin-inline: 0; }
.td-pagehead:has(+ :is(.entry-content, .wp-block-post-content) > .td-section:first-child > .td-shell.td-prose) .td-pagehead__inner {
	margin-inline: auto;
	max-width: var(--td-read-w);
	font-family: var(--td-read);
}
.td-pagehead__inner > * { font-family: var(--td-ui); }

@media (max-width: 1024px) {
	.td-hero__grid { grid-template-columns: minmax(0, 1fr) minmax(320px, 400px); gap: var(--td-space-7); }
	/* Узкая карточка: рейтинг под именем, а не третьей колонкой. */
	.td-hero-offer__doctor { grid-template-columns: 48px minmax(0, 1fr); padding: 14px 18px; row-gap: 8px; }
	.td-hero-offer__face { width: 48px; height: 48px; }
	.td-hero-offer__rating { grid-column: 2; flex-flow: row wrap; align-items: baseline; gap: 2px 6px; text-align: left; }
	.td-hero-offer__rating b { font-size: var(--td-fs-lead); }
	/* Три факта столбиком: в строку они переносились с висячей точкой. */
	.td-hero .td-proofline { flex-direction: column; gap: 4px; }
	.td-hero .td-proofline li + li::before { display: none; }
	#situacii .td-rows { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.td-doctor--home { grid-template-columns: 1fr; }
	.td-doctor--home .td-doctor__media--photo { max-width: 560px; }
}
@media (max-width: 900px) {
	.td-hero__grid { grid-template-columns: 1fr; gap: var(--td-space-7); }
	.td-hero h1 { max-width: 15ch; }
	.td-hero__visual { max-width: 560px; margin-right: 12px; }
	.td-hero__visual::before { inset: 24px -12px -12px 24px; border-radius: 20px; }
	.td-faq--home { grid-template-columns: 1fr; }
	.td-faq__intro { position: static; }
}
@media (max-width: 640px) {
	.td-hero h1 { font-size: clamp(2.125rem, 6.4vw + .75rem, 2.75rem); max-width: none; }
	.td-hero-offer__doctor { padding: 14px 16px; }
	.td-hero .td-hero-offer__body { padding: 20px 18px 18px; }
	.td-promo:not(.td-promo--consult) .td-promo__value { flex-direction: row; align-items: baseline; gap: 10px; }
	#situacii .td-rows { grid-template-columns: 1fr; gap: 12px; }
	/* На телефоне номер и стрелка — в одну строку с заголовком: карточка ниже на ~50px. */
	#situacii .td-row:not(.td-row--exit) { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "body arrow"; align-items: start; padding: 20px; gap: 12px; }
	#situacii .td-row:not(.td-row--exit) .td-row__num { display: none; }
	#situacii .td-row__arrow { width: 32px; height: 32px; }
	#situacii .td-row--exit { grid-template-columns: 1fr; grid-template-areas: "num" "body" "cta"; align-items: start; }
	#situacii .td-row--exit > .td-btn { width: 100%; }
	.td-doctor--home { padding: 0; }
	.td-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
	.td-footer__about { grid-column: 1 / -1; }
}

/* ── Пакеты имплантации «один зуб под ключ» ─────────────── */
/* Три уровня; центральный (Dentium) — сосновая карточка, чуть выше
   соседних. Состав одинаковый, поэтому он вынесен над карточками. */
.td-packs .td-head { margin-bottom: var(--td-space-5); }
.td-packs__includes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 var(--td-space-6); padding: 0; list-style: none; }
.td-packs__includes li {
	position: relative;
	padding: 7px 14px 7px 34px;
	border-radius: var(--td-r-full);
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
	font-size: var(--td-fs-small);
	line-height: 20px;
	color: var(--td-ink);
}
.td-packs__includes li::before {
	content: "";
	position: absolute;
	left: 15px;
	top: 50%;
	width: 10px;
	height: 5px;
	border-left: 2px solid var(--td-pine);
	border-bottom: 2px solid var(--td-pine);
	transform: translateY(-70%) rotate(-45deg);
}
.td-packs__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1fr);
	gap: 16px;
	align-items: stretch;
}
.td-pack {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 28px 24px 26px;
	border-radius: 20px;
	background: var(--td-paper);
	box-shadow: var(--td-hairline);
}
.td-pack.is-featured {
	margin-block: -12px;
	padding-block: 40px 38px;
	background: var(--td-pine);
	color: var(--td-white);
	box-shadow: var(--td-overlay);
}
.td-pack__label {
	font-weight: 700;
	font-size: var(--td-fs-micro);
	line-height: 1;
	letter-spacing: var(--td-track-caps);
	text-transform: uppercase;
	color: var(--td-link);
}
.td-pack.is-featured .td-pack__label {
	align-self: flex-start;
	padding: 7px 12px;
	border-radius: var(--td-r-full);
	background: var(--td-mist);
	color: var(--td-deep);
}
.td-pack__summary { font-size: .9375rem; line-height: 1.5; color: var(--td-ink-2); }
.td-pack.is-featured .td-pack__summary { color: rgba(255, 255, 255, .86); }
.td-pack__sys { display: flex; flex-direction: column; gap: 10px; flex: 1; }
.td-pack__sys + .td-pack__sys { padding-top: 18px; border-top: 1px solid var(--td-border-soft); }
.td-pack__sys h3 { font-size: 1.5rem; line-height: 1.2; letter-spacing: var(--td-track-display); color: var(--td-ink); }
.td-pack.is-featured .td-pack__sys h3 { color: var(--td-white); }
.td-pack__origin { font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-ink-3); }
.td-pack.is-featured .td-pack__origin { color: var(--td-mist); }
.td-pack__price { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 2px; }
.td-pack__price span,
.td-pack__price small { font-size: var(--td-fs-caption); line-height: 18px; color: var(--td-ink-2); }
.td-pack__price b {
	font-weight: 700;
	font-size: 1.875rem;
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--td-deep);
	font-variant-numeric: tabular-nums;
}
.td-pack__price--ask b { font-size: var(--td-fs-lead); line-height: 1.35; letter-spacing: 0; }
.td-pack.is-featured .td-pack__price :is(span, small) { color: rgba(255, 255, 255, .8); }
.td-pack.is-featured .td-pack__price b { color: var(--td-white); }
.td-packs .td-pack__points { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.td-packs .td-pack__points li {
	position: relative;
	padding-left: 18px;
	font-size: var(--td-fs-small);
	line-height: 1.5;
	color: var(--td-ink-2);
}
.td-packs .td-pack__points li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .6em;
	width: 6px;
	height: 6px;
	border-radius: var(--td-r-full);
	background: var(--td-primary);
}
.td-pack.is-featured .td-pack__points li { color: rgba(255, 255, 255, .88); }
.td-pack.is-featured .td-pack__points li::before { background: var(--td-mist); }
.td-pack__caveat {
	padding: 10px 12px;
	border-radius: var(--td-r-row);
	background: var(--td-tint);
	font-size: var(--td-fs-caption);
	line-height: 1.45;
	color: var(--td-ink-2);
}
.td-pack__sys .td-link { margin-top: auto; padding-top: 4px; }
.td-pack.is-featured .td-link { color: var(--td-mist); }
.td-pack.is-featured .td-link:hover { color: var(--td-white); }
.td-pack.is-featured :where(a, button):focus-visible { outline-color: var(--td-mist); }
.td-packs__note { margin-top: var(--td-space-6); font-size: var(--td-fs-caption); line-height: 1.5; color: var(--td-ink-2); max-width: 62ch; }
.td-packs .td-actions { margin-top: var(--td-space-5); }

@media (max-width: 1024px) {
	.td-packs__grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.td-pack.is-featured { margin-block: 0; padding-block: 32px 30px; }
}

/* ── Таблицы в тексте статей (сравнение систем и т. п.) ─── */
.td-prose table { font-family: var(--td-ui); font-size: var(--td-fs-small); line-height: 1.45; }
.td-prose :is(th, td) { padding: 10px 12px; border-bottom: 1px solid var(--td-border-soft); text-align: left; vertical-align: top; color: var(--td-ink-2); }
.td-prose thead th { background: var(--td-tint); color: var(--td-ink); font-weight: 600; white-space: nowrap; }
.td-prose tbody td:first-child { color: var(--td-ink); font-weight: 600; white-space: nowrap; }
.td-prose .wp-block-table { margin: 0; border-radius: var(--td-r-card); box-shadow: var(--td-hairline); }
.td-prose .wp-block-table :is(th, td) { border: 0; border-bottom: 1px solid var(--td-border-soft); }
.td-prose .wp-block-table thead { border-bottom: 0; }
.td-prose .wp-block-table tbody tr:last-child td { border-bottom: 0; }
