/* Регион-Консалт-Сервис — дизайн-система (основное оформление с 17.10.2026)
   Белая «бумага», графитовый текст, один акцент — нефтяной зелёный: действие, ссылка, фокус, маршрут.
   Заголовки — IBM Plex Serif, интерфейс и текст — Inter. Четыре слоя предприятия
   (процессы, люди, данные, системы) и маршрут через них — основа схем и знака.
   Токены — в :root; правила изображений — docs/design/visual-language.md; система — docs/design/system.md. */

@font-face { font-family: "Inter"; src: url("../fonts/inter-regular.woff2") format("woff2"), url("../fonts/inter-regular.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-medium.woff2") format("woff2"), url("../fonts/inter-medium.woff") format("woff"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../fonts/inter-semibold.woff2") format("woff2"), url("../fonts/inter-semibold.woff") format("woff"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Plex Serif"; src: url("../fonts/plex-serif-regular.woff2") format("woff2"), url("../fonts/plex-serif-regular.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Plex Serif"; src: url("../fonts/plex-serif-italic.woff2") format("woff2"), url("../fonts/plex-serif-italic.woff") format("woff"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "Plex Serif"; src: url("../fonts/plex-serif-bold.woff2") format("woff2"), url("../fonts/plex-serif-bold.woff") format("woff"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --paper: #ffffff;
  --surface: #ffffff;
  --ink: #16202a;
  --ink-soft: #4d5965;
  --steel: #0b5b57;
  --steel-tint: #e6efed;
  --line: #dce1e4;
  --line-strong: #a3aeb6;
  --signal: #0b5b57;
  --signal-deep: #0b5b57;
  --night: #16202a;
  --night-line: #2e3a45;
  --night-text: #d5dce2;
  --danger: #b3261e;
  --ok: #2e6b3f;
  --tint: #f3f5f5;
  --brief-line: #d6dcdf;

  /* Служебные роли цвета (D2): тексты и фоны на тёмном, состояния, тени */
  --white: #ffffff;
  --on-ink: #ffffff;
  --night-muted: #9eabb6;
  --signal-hover: #08423f;
  --header-bg: rgba(255, 255, 255, .96);
  --code-bg: #fbfcfc;
  --warn-ink: #6b4a00;
  --warn-tint: #f8ead0;
  --draft-tint: var(--tint);
  --ok-ink: #1d4a2a;
  --ok-tint: #e6f1e8;
  --danger-ink: #6d1712;
  --danger-tint: #f8e4e2;
  --preview-ink: #f2c56f;
  --shadow-pop: 0 18px 40px -24px rgba(22, 32, 42, .35);
  --shadow-panel: 0 12px 30px -20px rgba(23, 42, 59, .4);

  /* Схема первого экрана */
  --sch-lane-a: #f6f8f8;
  --sch-lane-b: #ffffff;
  --sch-label: #4d5965;
  --sch-frame: #d6dcdf;
  --sch-node: #ffffff;
  --sch-node-line: #a3aeb6;
  --sch-key: #16202a;
  --sch-text: #16202a;


  --sans: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --serif: "Plex Serif", "IBM Plex Serif", Georgia, "Times New Roman", serif;

  --wrap: 1240px;
  --gutter: clamp(16px, 4vw, 40px);
  --section: clamp(64px, 9vw, 128px);
  --radius: 3px;
  --header-h: 72px;

  /* Шкала шрифтов (D2): значения — как в утверждённом оформлении */
  --fs-h1: clamp(2.2rem, 3.5vw, 3.15rem);
  --fs-h1-article: clamp(2rem, 4vw, 3.25rem);
  --fs-h1-page: clamp(2rem, 3.4vw, 3rem);
  --fs-h2: clamp(1.85rem, 3.3vw, 2.85rem);
  --fs-h2-sub: clamp(1.5rem, 2.4vw, 2rem);
  --fs-title: clamp(1.35rem, 1.8vw, 1.6rem);
  --fs-lead: clamp(1.125rem, 1.4vw, 1.3rem);
  --fs-prose: 1.1875rem;
  --fs-body: 1.0625rem;
  --fs-h3: 1.125rem;
  --fs-ui: 1rem;
  --fs-small: .9375rem;
  --fs-xs: .8125rem;
}

.test-form-note { margin-top: 24px; max-width: 78ch; }
.article-dates { color: var(--ink-soft); font-size: .875rem; margin-top: 12px; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--fs-body);
  line-height: 1.6;
  font-feature-settings: "cv11", "ss01";
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--steel); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--ink); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; border-radius: 2px; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
h1, h2, h3, h4 { margin: 0; font-weight: 400; color: inherit; text-wrap: balance; }
h1, h2 { font-family: var(--serif); letter-spacing: -0.012em; }
h1 { font-size: var(--fs-h1); line-height: 1.08; }
h2 { font-size: var(--fs-h2); line-height: 1.12; }
h3 { font-family: var(--sans); font-weight: 600; font-size: var(--fs-h3); line-height: 1.35; }
.serif-title { font-family: var(--serif); font-weight: 400; font-size: var(--fs-title); line-height: 1.2; letter-spacing: -0.005em; }
strong { font-weight: 600; }

.skip-link { position: absolute; left: 16px; top: -100px; z-index: 100; background: var(--ink); color: var(--on-ink); padding: 10px 16px; border-radius: var(--radius); }
.skip-link:focus { top: 12px; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Служебные классы вместо атрибутов style (политика безопасности сервера CSP: style-src 'self').
   Стоят в начале файла и с !important — ведут себя как прежние атрибуты style: перекрывают обычные правила,
   но уступают более поздним правилам с !important (печать, мобильные --cols). */
.u-mt-20 { margin-top: 20px !important; }
.u-mt-24 { margin-top: 24px !important; }
.u-mt-28 { margin-top: 28px !important; }
.u-mt-32 { margin-top: 32px !important; }
.u-mt-40 { margin-top: 40px !important; }
.u-mt-48 { margin-top: 48px !important; }
.u-mb-12 { margin-bottom: 12px !important; }
.u-mb-20 { margin-bottom: 20px !important; }
.u-mb-24 { margin-bottom: 24px !important; }
.u-mb-40 { margin-bottom: 40px !important; }
.u-pt-0 { padding-top: 0 !important; }
.u-pt-s { padding-top: clamp(24px, 3vw, 40px) !important; }
.u-pt-m { padding-top: clamp(32px, 4vw, 56px) !important; }
.u-pt-section { padding-top: var(--section) !important; }
.u-w-24ch { max-width: 24ch !important; }
.u-w-78ch { max-width: 78ch !important; }
.u-c-night { color: var(--night-text) !important; }
.u-c-soft { color: var(--ink-soft) !important; }
.u-fs-h2s { font-size: clamp(1.5rem, 2.4vw, 2rem) !important; }
.u-fs-h2c { font-size: clamp(1.5rem, 2.2vw, 1.9rem) !important; }
.u-fs-22 { font-size: 1.375rem !important; }
.u-fs-18 { font-size: 1.125rem !important; }
.u-next-title { font-size: 1.25rem !important; font-family: var(--sans) !important; font-weight: 600 !important; margin-bottom: 16px !important; }
.u-tag-lg { font-size: .9375rem !important; padding: 6px 12px !important; }
/* Число колонок сетки (.steps, .items, .principles). Мобильные правила с !important перекрывают их, как и прежде. */
.cols-1 { --cols: 1; } .cols-2 { --cols: 2; } .cols-3 { --cols: 3; } .cols-4 { --cols: 4; }
.cols-5 { --cols: 5; } .cols-6 { --cols: 6; } .cols-7 { --cols: 7; } .cols-8 { --cols: 8; }

.wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding-block: var(--section); }
.section + .section { padding-top: 0; }
.section--surface { background: var(--surface); }
.section--surface + .section, .section + .section--surface { padding-top: var(--section); }
.section--night + .section, .section + .section--night { padding-top: var(--section); }
.section-head { display: grid; gap: 20px; max-width: 760px; margin-bottom: clamp(32px, 4vw, 56px); }
.section-head p { color: var(--ink-soft); margin: 0; font-size: var(--fs-h3); }
.section-head--split { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; gap: 24px 64px; }
.lead { font-size: var(--fs-lead); line-height: 1.55; color: var(--ink-soft); max-width: 62ch; }

/* ---------- Кнопки и ссылки ---------- */
.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 22px;
  border: 2px solid var(--signal); border-radius: 4px;
  background: var(--signal); color: var(--ink);
  font: 600 1rem/1.2 var(--sans); text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
}
.button:hover { background: var(--signal-hover); border-color: var(--signal-hover); color: var(--ink); text-decoration: none; }
.button--ghost { background: transparent; border-color: var(--ink); color: var(--ink); }
.button--ghost:hover { background: var(--ink); border-color: var(--ink); color: var(--on-ink); }
.button--small { min-height: 40px; padding: 8px 16px; font-size: var(--fs-small); }
.button[disabled] { opacity: .55; cursor: not-allowed; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.link-strong { font-weight: 600; color: var(--ink); text-decoration-color: var(--signal); text-decoration-thickness: 2px; }
.link-strong:hover { text-decoration-color: var(--ink); }

/* ---------- Шапка ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--header-bg); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--line); }
.header-inner { display: flex; align-items: center; gap: 24px; min-height: var(--header-h); }
.brand { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: var(--fs-body); letter-spacing: -.005em; margin-right: auto; }
.brand:hover { color: var(--ink); }
.brand svg { width: 34px; height: 34px; flex: none; }
.company-logo { display: block; width: 64px; height: auto; flex: none; }
.brand small { display: block; font-weight: 400; font-size: var(--fs-xs); color: var(--ink-soft); letter-spacing: 0; }
.main-nav { display: flex; align-items: center; gap: 4px; }
.main-nav > a, .nav-trigger {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 12px;
  border: 0; background: none; border-radius: 4px; color: var(--ink); font: 500 .975rem/1.2 var(--sans); text-decoration: none; cursor: pointer;
}
.main-nav > a:hover, .nav-trigger:hover { background: var(--steel-tint); color: var(--ink); }
.main-nav > a[aria-current="page"], .nav-trigger.is-current { box-shadow: inset 0 -2px 0 var(--signal); border-radius: 4px 4px 0 0; }
.nav-trigger svg { width: 14px; height: 14px; transition: transform .2s ease; }
.nav-trigger[aria-expanded="true"] svg { transform: rotate(180deg); }
.main-nav > a.header-cta { margin-left: 12px; min-height: 42px; padding: 8px 18px; background: var(--signal); border: 2px solid var(--signal); border-radius: 4px; font-weight: 600; box-shadow: none; }
.main-nav > a.header-cta:hover { background: var(--signal-hover); border-color: var(--signal-hover); }
.menu-toggle { display: none; }

.directions-panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-pop); }
.directions-panel[hidden] { display: none; }
.directions-panel .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding-block: 24px 28px; }
.directions-panel a { display: block; padding: 16px 20px; border-left: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.directions-panel a:first-child { border-left: 0; padding-left: 0; }
.directions-panel a:hover .serif-title { text-decoration: underline; text-decoration-color: var(--signal); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.directions-panel .serif-title { font-size: 1.25rem; display: block; margin-bottom: 6px; }
.directions-panel span:last-child { color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.45; display: block; }

/* ---------- Первый экран главной ---------- */
.hero { padding-block: clamp(48px, 7vw, 96px) clamp(40px, 5vw, 72px); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.hero h1 { max-width: 15ch; }
.hero .lead { margin: 28px 0 32px; }
.hero-expert { display: flex; gap: 16px; align-items: flex-start; margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--line); max-width: 60ch; color: var(--ink-soft); font-size: 1rem; }
.hero-expert p { margin: 0; }
.monogram { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--ink); color: var(--on-ink); display: grid; place-items: center; font: 400 1.1rem/1 var(--serif); letter-spacing: .02em; }
.scheme { position: relative; margin: 0; }
.scheme svg { width: 100%; height: auto; overflow: visible; }
.scheme figcaption { margin-top: 12px; font-size: var(--fs-small); color: var(--ink-soft); max-width: 46ch; }
.scheme .route { stroke-dasharray: 1400; stroke-dashoffset: 0; }
@media (prefers-reduced-motion: no-preference) {
  .scheme.is-animated .route { animation: route-draw 1.8s cubic-bezier(.6, .1, .2, 1) .25s backwards; }
  @keyframes route-draw { from { stroke-dashoffset: 1400; } to { stroke-dashoffset: 0; } }
}

/* ---------- С чего начать ---------- */
.routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; border-top: 2px solid var(--ink); margin-top: clamp(40px, 5vw, 64px); }
.route-card { padding: 28px 40px 8px 0; }
.route-card + .route-card { padding-left: 40px; border-left: 1px solid var(--line); }
.route-card h3 { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; margin-bottom: 12px; }
.route-card p { color: var(--ink-soft); }
.route-links { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 24px; }
.route-links a { font-weight: 600; color: var(--ink); text-decoration-color: var(--signal); text-decoration-thickness: 2px; }

/* ---------- Ночной раздел: общий подход ---------- */
.section--night { background: var(--night); color: var(--night-text); }
.section--night h2, .section--night h3 { color: var(--on-ink); }
.section--night a { color: var(--on-ink); }
.approach-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.approach-grid h2 { max-width: 16ch; margin-bottom: 28px; }
.approach-grid p { color: var(--night-text); }
.approach-closing { margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--night-line); }
.lanes { border: 1px solid var(--night-line); border-radius: var(--radius); overflow: hidden; }
.lanes-title { padding: 20px 24px; border-bottom: 1px solid var(--night-line); }
.lanes-title h3 { margin-bottom: 8px; }
.lanes-title p { margin: 0; font-size: 1rem; }
.lane { display: grid; grid-template-columns: 120px minmax(0, 1fr); border-bottom: 1px solid var(--night-line); }
.lane:last-child { border-bottom: 0; }
.lane dt { padding: 16px 24px; color: var(--night-muted); font-size: var(--fs-small); border-right: 1px solid var(--night-line); }
.lane dd { margin: 0; padding: 16px 24px; position: relative; color: var(--on-ink); }
.lane dd::before { content: ""; position: absolute; left: -5px; top: 50%; width: 9px; height: 9px; margin-top: -4.5px; border-radius: 50%; background: var(--signal); }
.lanes--light { border-color: var(--line); background: var(--surface); }
.lanes--light .lanes-title { border-color: var(--line); }
.lanes--light .lane { border-color: var(--line); }
.lanes--light .lane dt { color: var(--ink-soft); border-color: var(--line); }
.lanes--light .lane dd { color: var(--ink); }

/* ---------- Опыт ---------- */
.experience-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); }
.experience-grid h2 { margin-bottom: 28px; }
.facts { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.3fr); gap: 0; margin: 36px 0 0; border-top: 1px solid var(--line); }
.facts div { padding: 16px 16px 0 0; }
.facts div + div { padding-left: 16px; border-left: 1px solid var(--line); }
.facts dt { font-family: var(--serif); font-size: 1.375rem; line-height: 1.2; }
.facts dd { margin: 4px 0 0; color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.45; }
.cases { list-style: none; display: grid; gap: 0; border-top: 1px solid var(--line); }
.cases li { padding: 24px 0; border-bottom: 1px solid var(--line); }
.cases h3 { margin-bottom: 8px; }
.cases p { margin: 0; color: var(--ink-soft); }

/* ---------- Этапы (настоящая последовательность — нумерация уместна) ---------- */
.steps { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 0; counter-reset: step; position: relative; }
.steps li { counter-increment: step; position: relative; padding: 56px 32px 0 0; }
.steps li::before {
  content: counter(step); position: absolute; top: 0; left: 0; z-index: 1;
  width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center;
  background: var(--paper); border: 2px solid var(--ink); font: 600 var(--fs-small)/1 var(--sans);
}
.section--surface .steps li::before { background: var(--surface); }
.steps li::after { content: ""; position: absolute; top: 17px; left: 36px; right: 0; height: 2px; background: var(--line); }
.steps li:last-child::after { display: none; }
.steps h3 { margin-bottom: 10px; }
.steps p { color: var(--ink-soft); margin: 0; font-size: 1rem; }

/* ---------- Материалы ---------- */
.reading { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.reading--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.read-card { position: relative; display: flex; flex-direction: column; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 26px 26px 22px; }
.read-card:hover { border-color: var(--line-strong); }
.read-card h3 { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; line-height: 1.25; }
.read-card h3 a { color: var(--ink); text-decoration: none; }
.read-card h3 a::after { content: ""; position: absolute; inset: 0; }
.read-card:has(a:focus-visible) { outline: 3px solid var(--signal); outline-offset: 2px; }
.read-card h3 a:focus-visible { outline: none; }
.read-card p { margin: 0; color: var(--ink-soft); font-size: 1rem; }
.read-meta { margin-top: auto !important; padding-top: 12px; font-size: .875rem !important; color: var(--ink-soft); display: flex; flex-wrap: wrap; gap: 4px 16px; }
.tag { display: inline-block; font-size: var(--fs-xs); font-weight: 500; color: var(--steel); background: var(--steel-tint); padding: 3px 9px; border-radius: 3px; }
.tag--warn { color: var(--warn-ink); background: var(--warn-tint); }

/* ---------- Финальное обращение ---------- */
.contact-band { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.contact-band h2 { margin-bottom: 24px; }
.contact-band p { color: var(--ink-soft); }
.contact-aside { border-left: 2px solid var(--signal); padding: 4px 0 4px 28px; }
.contact-aside p { color: var(--ink-soft); font-size: 1rem; }
.contact-aside .email { font-size: 1.25rem; font-weight: 600; color: var(--ink); }

/* ---------- Подвал ---------- */
.site-footer { background: var(--night); color: var(--night-text); padding-block: 64px 32px; font-size: var(--fs-small); }
.site-footer a { color: var(--night-text); text-decoration: none; }
.site-footer a:hover { color: var(--on-ink); text-decoration: underline; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 32px; }
.footer-grid h2 { font: 600 var(--fs-small)/1.4 var(--sans); color: var(--on-ink); margin-bottom: 14px; letter-spacing: 0; }
.footer-grid ul { list-style: none; display: grid; gap: 8px; }
.footer-brand { display: flex; gap: 12px; align-items: center; color: var(--on-ink) !important; font-weight: 600; font-size: var(--fs-body); margin-bottom: 16px; }
.footer-brand svg { width: 32px; height: 32px; }
.footer-meta { color: var(--night-muted); line-height: 1.55; }
.footer-bottom { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--night-line); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; color: var(--night-muted); }
.preview-note { color: var(--preview-ink); }

/* ---------- Внутренние страницы ---------- */
.page-head { padding-block: clamp(40px, 6vw, 88px) clamp(32px, 4vw, 56px); }
.crumbs { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; font-size: var(--fs-small); color: var(--ink-soft); margin-bottom: 24px; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--line-strong); }
.crumbs a { color: var(--ink-soft); }
.page-head h1 { max-width: 20ch; }
.page-head .lead { margin-top: 24px; }
.page-head-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .7fr); gap: clamp(32px, 6vw, 96px); align-items: end; }
.page-head .button-row { margin-top: 32px; }
.audience { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px 26px; }
.audience h2 { font: 600 1rem/1.4 var(--sans); margin-bottom: 12px; letter-spacing: 0; }
.audience ul { list-style: none; display: grid; gap: 8px; }
.audience li { padding-left: 18px; position: relative; font-size: 1rem; }
.audience li::before { content: ""; position: absolute; left: 0; top: .62em; width: 8px; height: 2px; background: var(--steel); }

.service-nav { border-block: 1px solid var(--line); background: var(--surface); }
.service-nav .wrap { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: thin; }
.service-nav a { flex: none; padding: 14px 16px; color: var(--ink-soft); text-decoration: none; font-weight: 500; font-size: var(--fs-small); border-bottom: 2px solid transparent; }
.service-nav a:hover { color: var(--ink); border-bottom-color: var(--line-strong); }
.service-nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--signal); }

.items { list-style: none; display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: 0 40px; }
.items li { padding: 22px 0; border-top: 1px solid var(--line); }
.items h3 { margin-bottom: 8px; }
.items p { margin: 0; color: var(--ink-soft); font-size: 1rem; }

.deliver { list-style: none; display: grid; gap: 0; counter-reset: d; border-top: 2px solid var(--ink); }
.deliver li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 8px 40px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.deliver h3 { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; }
.deliver p { margin: 0; color: var(--ink-soft); }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.split--wide-right { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
.checklist { list-style: none; display: grid; gap: 14px; }
.checklist li { position: relative; padding-left: 30px; }
.checklist li::before { content: ""; position: absolute; left: 0; top: .32em; width: 16px; height: 16px; border: 2px solid var(--steel); border-radius: 3px; }
.checklist li::after { content: ""; position: absolute; left: 5px; top: .48em; width: 6px; height: 9px; border: solid var(--steel); border-width: 0 2px 2px 0; transform: rotate(45deg); }
.plain-list { list-style: none; display: grid; gap: 10px; }
.plain-list li { padding-left: 20px; position: relative; }
.plain-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 10px; height: 2px; background: var(--steel); }

.principles { display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 16px; }
.principle { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; }
.section--night .principle { background: transparent; border-color: var(--night-line); }
.principle h3 { margin-bottom: 10px; }
.principle p { margin: 0; font-size: 1rem; color: var(--ink-soft); }
.section--night .principle p { color: var(--night-text); }

.tracks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.track { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 3vw, 36px); }
.track h3 { font-family: var(--serif); font-weight: 400; font-size: 1.6rem; margin-bottom: 12px; }
.track .when { color: var(--ink-soft); margin-bottom: 20px; }
.track .plain-list { padding-top: 20px; border-top: 1px solid var(--line); }

.figure-band .figure { margin: 0; }
.feature-link { margin-top: 24px; }

.faq { border-top: 2px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 48px 20px 0; position: relative; font-weight: 600; font-size: var(--fs-body); }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 12px; height: 12px; margin-top: -9px; border: solid var(--ink); border-width: 0 2px 2px 0; transform: rotate(45deg); transition: transform .2s ease; }
.faq details[open] summary::after { transform: rotate(-135deg); margin-top: -2px; }
.faq details > div { padding: 0 0 20px; max-width: 70ch; color: var(--ink-soft); }
.faq details > div p { margin: 0; }

.other-directions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.other-directions a { display: block; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; text-decoration: none; color: var(--ink); }
.other-directions a:hover { border-color: var(--line-strong); }
.other-directions .serif-title { display: block; font-size: 1.25rem; margin-bottom: 6px; }
.other-directions span:last-child { color: var(--ink-soft); font-size: var(--fs-small); }

.note { background: var(--steel-tint); border-left: 3px solid var(--steel); padding: 16px 20px; border-radius: 0 var(--radius) var(--radius) 0; font-size: 1rem; color: var(--ink); }
.note p:last-child { margin: 0; }
.note--draft { background: var(--draft-tint); border-left-color: var(--signal); }

/* ---------- Ситуации ---------- */
.anchor-list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.anchor-list a { display: inline-block; padding: 8px 14px; border: 1px solid var(--line); background: var(--surface); border-radius: 999px; color: var(--ink); text-decoration: none; font-size: var(--fs-small); }
.anchor-list a:hover { border-color: var(--ink); }
.situation { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 24px clamp(32px, 6vw, 96px); padding: 40px 0; border-top: 1px solid var(--line); }
.situation h2 { font-size: var(--fs-h2-sub); margin-bottom: 12px; }
.situation > div:first-child p { color: var(--ink-soft); }
.situation dl { display: grid; gap: 16px; margin: 0; }
.situation dt { font-weight: 600; }
.situation dd { margin: 4px 0 0; color: var(--ink-soft); }
.situation-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; }

/* ---------- Каталог материалов ---------- */
.group { padding-top: 40px; }
.group + .group { margin-top: 24px; }
.group-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; align-items: baseline; margin-bottom: 20px; }
.group-head h2 { font-size: var(--fs-h2-sub); }
.group-head p { margin: 0; color: var(--ink-soft); }

/* ---------- Статья ---------- */
.article-head { padding-block: clamp(32px, 5vw, 72px) 32px; }
.article-head h1 { font-size: var(--fs-h1-article); line-height: 1.1; max-width: 24ch; }
.article-meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 24px; color: var(--ink-soft); font-size: var(--fs-small); align-items: center; }
.article-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; padding-bottom: var(--section); }
.article-toc { position: sticky; top: calc(var(--header-h) + 24px); font-size: var(--fs-small); }
.toc-box summary { font-weight: 600; cursor: pointer; padding-bottom: 12px; border-bottom: 2px solid var(--ink); list-style: none; }
.toc-box summary::-webkit-details-marker { display: none; }
.toc-box ol { list-style: none; counter-reset: toc; margin-top: 8px; }
.toc-box li { counter-increment: toc; border-bottom: 1px solid var(--line); }
.toc-box a { display: grid; grid-template-columns: 22px 1fr; padding: 10px 0; color: var(--ink-soft); text-decoration: none; line-height: 1.4; }
.toc-box a::before { content: counter(toc); color: var(--line-strong); font-weight: 600; }
.toc-box a:hover, .toc-box a.is-active { color: var(--ink); }
.toc-box a.is-active::before { color: var(--signal-deep); }

.prose { font-family: var(--serif); font-size: var(--fs-prose); line-height: 1.72; max-width: 70ch; }
.prose p { margin: 0 0 1.1em; }
.prose h2 { font-family: var(--sans); font-weight: 600; font-size: clamp(1.35rem, 2vw, 1.6rem); line-height: 1.3; letter-spacing: -.01em; margin: 2.2em 0 .7em; }
.prose h3 { font-size: 1.2rem; margin: 1.8em 0 .6em; }
.prose ul, .prose ol { padding-left: 1.3em; margin: 0 0 1.1em; }
.prose li { margin-bottom: .4em; }
.prose strong { font-weight: 700; }
.prose a { color: var(--steel); }
.article-note { font-family: var(--sans); font-size: 1rem; line-height: 1.55; background: var(--steel-tint); border-left: 3px solid var(--steel); padding: 14px 18px; border-radius: 0 var(--radius) var(--radius) 0; }
.table-wrap { margin: 1.6em 0; font-family: var(--sans); font-size: .9688rem; line-height: 1.5; overflow-x: auto; }
.table-wrap table { width: 100%; border-collapse: collapse; background: var(--surface); }
.table-wrap th, .table-wrap td { text-align: left; vertical-align: top; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.table-wrap th { font-weight: 600; border-bottom: 2px solid var(--ink); background: var(--surface); }
.figure { margin: 2em 0; width: min(100%, 880px); }
.article-body .figure { width: calc(100% + 120px); max-width: 960px; }
.figure-frame { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(8px, 1.5vw, 20px); }
.figure img { width: 100%; height: auto; }
.figure figcaption { font-family: var(--sans); font-size: var(--fs-small); line-height: 1.5; color: var(--ink-soft); margin-top: 12px; max-width: 75ch; }
.figure figcaption strong { color: var(--ink); }
.figure-open { white-space: nowrap; }
.figure-missing { color: var(--danger); font-family: var(--sans); }
.article-end { border-top: 1px solid var(--line); padding-top: 32px; margin-top: 48px; font-family: var(--sans); }

/* ---------- Редактор статьи (только на локальном стенде) ---------- */
.editor-bar { background: var(--night); color: var(--night-text); }
.editor-bar .wrap { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; padding-block: 12px; font-size: var(--fs-small); }
.editor-bar strong { color: var(--on-ink); }
.editor-bar .button--ghost { border-color: var(--on-ink); color: var(--on-ink); }
.editor-bar .button--ghost:hover { background: var(--on-ink); color: var(--ink); }
.editor-panel { background: var(--surface); border-bottom: 1px solid var(--line); box-shadow: var(--shadow-panel); }
.editor-panel .wrap { padding-block: 20px 24px; display: grid; gap: 12px; }
.editor-panel label { font-weight: 600; }
.editor-panel textarea { width: 100%; min-height: 46vh; resize: vertical; padding: 14px 16px; border: 1px solid var(--line-strong); border-radius: var(--radius); font: 400 var(--fs-small)/1.6 ui-monospace, "Cascadia Mono", Consolas, monospace; color: var(--ink); background: var(--code-bg); }
.editor-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.editor-status { font-size: var(--fs-small); color: var(--ink-soft); min-height: 1.5em; margin: 0; }
.editor-status.is-error { color: var(--danger); }
.editor-status.is-ok { color: var(--ok); }
.is-previewing .article-body { outline: 2px dashed var(--signal); outline-offset: 16px; }

/* ---------- Форма ---------- */
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(32px, 6vw, 96px); align-items: start; padding-bottom: var(--section); }
.form { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: clamp(24px, 3.5vw, 44px); display: grid; gap: 22px; }
.form h2 { font-size: clamp(1.5rem, 2.2vw, 1.9rem); }
.field { display: grid; gap: 8px; }
.field label, .field legend { font-weight: 600; }
.field label small, .field legend small { font-weight: 400; color: var(--ink-soft); font-size: var(--fs-small); }
.field input[type="text"], .field textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 4px; font: 400 1rem/1.5 var(--sans); color: var(--ink); background: var(--white); }
.field textarea { min-height: 150px; resize: vertical; }
.field input:focus-visible, .field textarea:focus-visible { outline: 3px solid var(--signal); outline-offset: 0; border-color: var(--ink); }
.field .hint { margin: 0; font-size: .875rem; color: var(--ink-soft); }
.field .error { margin: 0; font-size: var(--fs-small); color: var(--danger); font-weight: 500; }
.field .error:empty { display: none; }
.field.has-error input, .field.has-error textarea { border-color: var(--danger); border-width: 2px; padding: 11px 13px; }
fieldset.field { border: 0; padding: 0; margin: 0; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip span { display: inline-block; padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: var(--fs-small); background: var(--white); }
.chip input:checked + span { background: var(--ink); color: var(--on-ink); border-color: var(--ink); }
.chip input:focus-visible + span { outline: 3px solid var(--signal); outline-offset: 2px; }
.consent { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; font-size: 1rem; }
.consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--ink); }
.counter { font-size: .875rem; color: var(--ink-soft); justify-self: end; }
.form-result { padding: 16px 18px; border-radius: 4px; font-size: 1rem; }
.form-result[hidden] { display: none; }
.form-result.is-ok { background: var(--ok-tint); color: var(--ok-ink); border-left: 3px solid var(--ok); }
.form-result.is-error { background: var(--danger-tint); color: var(--danger-ink); border-left: 3px solid var(--danger); }
.form-result.is-info { background: var(--steel-tint); border-left: 3px solid var(--steel); }
.next-steps { list-style: none; counter-reset: n; display: grid; gap: 20px; margin: 24px 0 36px; }
.next-steps li { counter-increment: n; display: grid; grid-template-columns: 36px 1fr; gap: 14px; }
.next-steps li::before { content: counter(n); width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--ink); display: grid; place-items: center; font-weight: 600; font-size: .875rem; }
.next-steps h3 { margin-bottom: 4px; }
.next-steps p { margin: 0; color: var(--ink-soft); font-size: 1rem; }
.side-block { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.side-block h3 { margin-bottom: 8px; }
.side-block p { color: var(--ink-soft); font-size: 1rem; }

/* ---------- Реквизиты и документы ---------- */
.details-list { display: grid; grid-template-columns: max-content 1fr; gap: 0; margin: 0; border-top: 2px solid var(--ink); }
.details-list dt, .details-list dd { padding: 14px 0; border-bottom: 1px solid var(--line); margin: 0; }
.details-list dt { color: var(--ink-soft); padding-right: 32px; }
.legal { overflow-wrap: anywhere; font-family: var(--sans); font-size: var(--fs-body); line-height: 1.65; max-width: 78ch; }
.legal h2, .legal h3 { font-family: var(--sans); font-weight: 600; font-size: 1.25rem; margin: 2em 0 .6em; }
.legal ul, .legal ol { padding-left: 1.3em; margin-bottom: 1em; }
.scroll-x { overflow-x: auto; margin: 1.4em 0; }
.legal table { border-collapse: collapse; min-width: 560px; background: var(--surface); font-size: var(--fs-small); }
.legal th, .legal td { text-align: left; vertical-align: top; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.legal th { border-bottom: 2px solid var(--ink); }
.doc-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--line); }

/* ---------- Входящие заявки (локальный стенд) ---------- */
.inbox { display: grid; gap: 12px; }
.inbox article { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 22px; }
.inbox header { display: flex; flex-wrap: wrap; gap: 4px 20px; color: var(--ink-soft); font-size: var(--fs-small); margin-bottom: 8px; }
.inbox h2 { font: 600 var(--fs-h3)/1.4 var(--sans); }
.inbox p { margin: 6px 0 0; white-space: pre-wrap; }

/* ---------- 404 ---------- */
.not-found { padding-block: var(--section); }
.not-found h1 { max-width: 18ch; margin-bottom: 24px; }

/* ---------- Адаптация ---------- */
@media (max-width: 1180px) {
  .main-nav > a.header-cta { display: none; }
  .principles { --cols: 2 !important; }
  .article-body .figure { width: 100%; }
}
@media (max-width: 1023px) {
  :root { --header-h: 64px; }
  .menu-toggle { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; min-height: 44px; padding: 8px 14px; border: 1px solid var(--ink); border-radius: 4px; background: none; font: 600 var(--fs-small)/1 var(--sans); color: var(--ink); cursor: pointer; }
  .brand { margin-right: 0; }
  .main-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; padding: 8px var(--gutter) 24px; gap: 0; max-height: calc(100vh - var(--header-h)); overflow-y: auto; box-shadow: var(--shadow-pop); }
  .main-nav.is-open { display: flex; }
  .main-nav > a, .nav-trigger { justify-content: space-between; border-bottom: 1px solid var(--line); border-radius: 0; padding: 14px 0; font-size: var(--fs-body); }
  .main-nav > a[aria-current="page"] { box-shadow: inset 3px 0 0 var(--signal); padding-left: 12px; }
  .main-nav > a.header-cta { display: inline-flex; margin: 16px 0 0; justify-content: center; border-bottom: 2px solid var(--signal); border-radius: 4px; }
  .directions-panel { position: static; box-shadow: none; border: 0; }
  .directions-panel .wrap { grid-template-columns: 1fr; padding: 0 0 8px; }
  .directions-panel a, .directions-panel a:first-child { border-left: 0; border-bottom: 1px solid var(--line); padding: 12px 0 12px 16px; }
  .directions-panel span:last-child { display: none; }
  .directions-panel .serif-title { margin: 0; font-size: var(--fs-h3); }
  .hero-grid, .approach-grid, .experience-grid, .contact-band, .split, .split--wide-right, .page-head-grid, .contact-layout, .situation { grid-template-columns: minmax(0, 1fr); }
  .hero h1 { max-width: 16ch; }
  .scheme { max-width: 560px; }
  .section-head--split { grid-template-columns: minmax(0, 1fr); }
  .reading { grid-template-columns: minmax(0, 1fr); }
  .steps { --cols: 1 !important; gap: 28px; }
  .steps li { padding: 0 0 0 56px; }
  .steps li::after { left: 17px; top: 40px; right: auto; bottom: -24px; width: 2px; height: auto; }
  .items { --cols: 2 !important; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .article-layout { grid-template-columns: minmax(0, 1fr); }
  .article-toc { position: static; }
  .toc-box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 18px; }
  .toc-box summary { border: 0; padding: 0; }
  .toc-box summary::after { content: " ▾"; color: var(--ink-soft); }
  .toc-box[open] summary { padding-bottom: 8px; border-bottom: 2px solid var(--ink); }
  .other-directions { grid-template-columns: minmax(0, 1fr); }
  .tracks { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 599px) {
  .hero .scheme { display: none; }
}
@media (max-width: 719px) {
  body { font-size: 1rem; }
  .routes { grid-template-columns: minmax(0, 1fr); }
  .route-card, .route-card + .route-card { padding: 24px 0 8px; border-left: 0; }
  .route-card + .route-card { border-top: 1px solid var(--line); }
  .facts { grid-template-columns: minmax(0, 1fr); }
  .facts div, .facts div + div { padding: 14px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .items { --cols: 1 !important; }
  .deliver li { grid-template-columns: minmax(0, 1fr); }
  .principles { --cols: 1 !important; }
  .reading--two { grid-template-columns: minmax(0, 1fr); }
  .lane { grid-template-columns: minmax(0, 1fr); }
  .lane dt { border-right: 0; padding-bottom: 0; }
  .lane dd { padding-top: 4px; }
  .lane dd::before { display: none; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); }
  .brand small { display: none; }
  .brand { white-space: nowrap; font-size: var(--fs-small); gap: 8px; min-width: 0; }
  .brand svg { width: 30px; height: 30px; }
  .brand .company-logo { width: 40px; }
  .menu-toggle { padding: 8px 12px; flex: none; }
  .header-inner { gap: 12px; }
  .prose { font-size: var(--fs-body); line-height: 1.68; }
  .details-list { grid-template-columns: minmax(0, 1fr); }
  .details-list dt { border-bottom: 0; padding-bottom: 0; }
  .button-row .button { width: 100%; }
  /* Таблицы статей на телефоне — карточками, без горизонтальной прокрутки */
  .table-wrap table, .table-wrap tbody, .table-wrap tr, .table-wrap td { display: block; width: 100%; }
  .table-wrap thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .table-wrap tr { border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 12px; background: var(--surface); }
  .table-wrap td { border: 0; border-bottom: 1px solid var(--line); padding: 10px 14px; }
  .table-wrap td:last-child { border-bottom: 0; }
  .table-wrap td::before { content: attr(data-label); display: block; font-size: var(--fs-xs); font-weight: 600; color: var(--ink-soft); margin-bottom: 2px; }
  .table-wrap table { background: transparent; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  /* Печать: всегда светлая бумага и тёмный текст, независимо от варианта и тёмных зон */
  @page { size: A4; margin: 16mm 16mm 18mm; }
  * { --paper: #fff !important; --surface: #fff !important; --tint: #fff !important; --steel-tint: #f1f3f4 !important; --ink: #111 !important; --ink-soft: #3a3f44 !important; --line: #c4c9cd !important; --line-strong: #8c949a !important; --night: #fff !important; --night-text: #111 !important; --night-line: #c4c9cd !important; --night-muted: #3a3f44 !important; --on-ink: #111 !important; --sch-lane-a: #f6f7f7 !important; --sch-lane-b: #fff !important; --sch-label: #3a3f44 !important; --sch-frame: #c4c9cd !important; --sch-node: #fff !important; --sch-node-line: #8c949a !important; --sch-key: #111 !important; --sch-text: #111 !important; box-shadow: none !important; text-shadow: none !important; }
  html { font-size: 87.5%; }
  body { background: var(--white); color: #111; }
  .site-header, .site-footer, .editor-bar, .editor-panel, .article-toc, .contact-band, .service-nav, .skip-link, .button-row, .header-cta, #editor-root, .print-link,
  section[aria-labelledby="contact-band-title"], section[aria-labelledby="next-title"], section[aria-labelledby="other-title"], section[aria-labelledby="read-title"] { display: none !important; }
  .hero, .page-head, .article-head, .section, .section--night, .section--surface { background: #fff !important; background-image: none !important; color: #111; padding-block: 0 18pt !important; margin: 0 !important; border: 0 !important; }
  .wrap { max-width: none; padding: 0; }
  .article-layout { display: block; padding: 0; }
  .prose { max-width: none; font-size: 11pt; line-height: 1.55; }
  .prose a, .legal a { color: #111; }
  h1 { font-size: 22pt; max-width: none; }
  h2 { font-size: 15pt; }
  h2, h3, summary { break-after: avoid; page-break-after: avoid; }
  .figure, .table-wrap, tr, .faq details, .deliver li, .items li, .principle, .track, .brief, .case-card, .specimen { break-inside: avoid; page-break-inside: avoid; }
  .article-body .figure, .figure { width: 100%; max-width: none; }
  .figure-frame { border-color: #c4c9cd; }
  .faq details > div { display: block !important; }
  .print-meta { display: block !important; margin: 24pt 0 0; padding-top: 8pt; border-top: 1px solid #c4c9cd; font: 9pt/1.4 var(--sans); color: #3a3f44; }
  .crumbs { display: none; }
}

/* ---------- Служебные иконки (сетка 24, штрих 1.75, currentColor) ---------- */
.icon { display: inline-block; flex: none; width: 1.15em; height: 1.15em; vertical-align: -0.2em; }
.icon--lead { width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; color: var(--steel); }
.icon--ext { width: .85em; height: .85em; margin-left: .15em; vertical-align: -0.05em; }
.contact-aside .email { display: inline-flex; align-items: center; gap: 8px; }
.contact-aside .email .icon { color: var(--steel); }
.print-link { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; padding: 6px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: transparent; color: var(--ink-soft); font: 500 .875rem/1.2 var(--sans); cursor: pointer; }
.print-link:hover { color: var(--ink); border-color: var(--line-strong); }
.print-link[hidden] { display: none; }

/* ---------- Схема направления во всю ширину ---------- */
.feature-figure { margin-top: clamp(32px, 4vw, 48px); }
.feature-figure .figure { width: 100%; max-width: 1120px; margin: 0; }
.section--night .feature-figure figcaption { color: var(--night-text); }
.section--night .feature-figure figcaption strong { color: var(--on-ink); }

/* ---------- Образец результата: лист документа ---------- */
.specimen { margin: clamp(40px, 5vw, 64px) 0 0; }
.specimen-sheet { position: relative; max-width: 1040px; background: var(--white); border: 1px solid var(--line-strong); padding: clamp(18px, 3vw, 36px) clamp(16px, 3.4vw, 44px) clamp(20px, 3vw, 36px); }
.specimen-sheet::before { content: ""; position: absolute; inset: 8px -8px -8px 8px; border: 1px solid var(--line); background: var(--white); z-index: -1; }
.specimen { position: relative; z-index: 0; }
.specimen-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; margin-bottom: 4px; border-bottom: 2px solid var(--ink); }
.specimen-head svg { width: 22px; height: 22px; flex: none; }
.specimen-doc { font: 600 var(--fs-small)/1.3 var(--sans); }
.specimen-doc span { display: block; font-weight: 400; color: var(--ink-soft); font-size: .875rem; }
.specimen-label { margin-left: auto; padding: 4px 10px; border: 1.5px solid var(--steel); color: var(--steel); font: 600 .75rem/1.2 var(--sans); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.specimen-body { margin: 0; }
.specimen-body table { background: transparent; }
.specimen-body td:first-child { font-weight: 600; white-space: nowrap; }
.specimen figcaption { margin-top: 20px; max-width: 75ch; color: var(--ink-soft); font-size: var(--fs-small); }
@media (max-width: 719px) {
  .specimen-sheet::before { display: none; }
  .specimen-head { flex-wrap: wrap; }
  .specimen-label { margin-left: 0; }
  .specimen-body td:first-child { white-space: normal; }
}

/* ---------- Паспорта кейсов ---------- */
.case-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; }
.case-card { display: flex; flex-direction: column; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--ink); padding: clamp(20px, 2.4vw, 30px); }
.case-industry { margin: 0; font: 600 var(--fs-xs)/1.3 var(--sans); letter-spacing: .04em; text-transform: uppercase; color: var(--steel); }
.case-card h3 { font: 400 clamp(1.3rem, 1.6vw, 1.5rem)/1.2 var(--serif); }
.case-role { margin: 0; font-size: var(--fs-small); }
.case-role span { display: block; color: var(--ink-soft); font-size: var(--fs-xs); }
.case-task { margin: 0; color: var(--ink-soft); font-size: 1rem; }
.layers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.layer { display: grid; gap: 6px; font-size: var(--fs-xs); color: var(--ink-soft); }
.layer i { display: block; height: 6px; border: 1px solid var(--line-strong); border-radius: 1px; }
.layer.is-on { color: var(--ink); font-weight: 500; }
.layer.is-on i { background: var(--steel); border-color: var(--steel); }
.case-more { margin-top: auto; border-top: 1px solid var(--line); padding-top: 12px; }
.case-more summary { cursor: pointer; font-weight: 600; font-size: var(--fs-small); color: var(--ink); list-style: none; }
.case-more summary::-webkit-details-marker { display: none; }
.case-more summary::after { content: " +"; color: var(--steel); }
.case-more[open] summary::after { content: " −"; }
.case-more h4 { margin: 16px 0 8px; font: 600 .875rem/1.3 var(--sans); }
.case-more .plain-list { font-size: var(--fs-small); gap: 6px; }

/* ---------- Полоса направлений первого экрана (вариант D) ---------- */
.dir-strip { margin-top: clamp(28px, 3.2vw, 44px); border-top: 2px solid var(--ink); }
.dir-strip ul { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dir-strip li + li { border-left: 1px solid var(--line); }
.dir-strip a { position: relative; display: grid; grid-template-rows: auto auto 1fr; gap: 6px; height: 100%; padding: 18px 44px 20px 20px; color: var(--ink); text-decoration: none; }
.dir-strip li:first-child a { padding-left: 0; }
.dir-strip-num { font: 600 var(--fs-xs)/1 var(--sans); color: var(--steel); letter-spacing: .04em; }
.dir-strip-name { font: 400 clamp(1.25rem, 1.6vw, 1.45rem)/1.15 var(--serif); letter-spacing: -.005em; }
.dir-strip-need { color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.45; }
.dir-strip .arrow { position: absolute; right: 16px; top: 20px; width: 16px; height: 16px; color: var(--steel); transition: transform .15s ease; }
.dir-strip a:hover { background: var(--tint); }
.dir-strip a:hover .dir-strip-name { text-decoration: underline; text-decoration-color: var(--steel); text-decoration-thickness: 2px; text-underline-offset: .18em; }
.dir-strip a:hover .arrow { transform: translateX(3px); }
.dir-strip li:first-child a:hover { box-shadow: -12px 0 0 var(--tint); }
.dir-strip a:focus-visible { outline-offset: -3px; }

/* ---------- Строка доверия первого экрана ---------- */
.hero-trust { margin: 0 0 22px; font-size: var(--fs-small); line-height: 1.6; color: var(--ink-soft); }
.hero-trust span { white-space: normal; }
.hero-trust span:not(:last-child)::after { content: "·"; margin: 0 .55em 0 .6em; color: var(--line-strong); font-weight: 600; }
.hero-trust b { font-weight: 600; color: var(--ink); white-space: nowrap; }

/* ---------- Эксперт: портрет или монограмма ---------- */
.expert-figure { flex: none; }
.expert-figure .monogram { width: 72px; height: 72px; font-size: 1.6rem; }
.expert-figure--lg .monogram { width: 112px; height: 112px; font-size: 2.4rem; margin-bottom: 24px; }
.expert-figure img { width: 120px; height: 150px; object-fit: cover; border-radius: var(--radius); background: var(--tint); }
.expert-figure--lg img { width: 176px; height: 220px; margin-bottom: 24px; }
.expert-card { display: flex; gap: 20px; align-items: center; padding: 0 0 24px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.expert-name { margin: 0 0 6px; font: 400 1.375rem/1.2 var(--serif); }
.expert-roles { list-style: none; display: grid; gap: 2px; color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.45; }

/* ---------- Схема в разделе о подходе (вариант D) ---------- */
.approach-scheme { margin-top: clamp(40px, 5vw, 72px); }
.approach-scheme .scheme { max-width: 860px; }
.approach-scheme .scheme figcaption { max-width: 60ch; }

/* ---------- Строка для печати ---------- */
.print-meta { display: none; }

/* ---------- Адаптация новых блоков ---------- */
@media (max-width: 1180px) {
  .dir-strip ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dir-strip li:nth-child(3) { border-left: 0; }
  .dir-strip li:nth-child(3) a { padding-left: 0; }
  .dir-strip li:nth-child(n+3) { border-top: 1px solid var(--line); }
}
@media (max-width: 719px) {
  .dir-strip ul { grid-template-columns: minmax(0, 1fr); }
  .dir-strip li + li { border-left: 0; border-top: 1px solid var(--line); }
  .dir-strip a, .dir-strip li:first-child a, .dir-strip li:nth-child(3) a { padding: 14px 36px 14px 0; gap: 2px; }
  .dir-strip-num, .dir-strip-need { display: none; }
  .dir-strip .arrow { right: 4px; top: 50%; margin-top: -8px; }
  .dir-strip li:first-child a:hover { box-shadow: none; }
  .hero-trust { font-size: .875rem; }
  .expert-card { align-items: flex-start; }
}
@media (max-width: 1023px) {
  .service-nav .wrap { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 48px), transparent); }
  .service-nav .wrap.is-end { -webkit-mask-image: none; mask-image: none; }
}

/* ---------- Справка руководителя и таблица направлений (варианты B и D) ---------- */
.brief { background: var(--tint); border: 1px solid var(--line); border-top: 4px solid var(--steel); padding: 28px 30px 12px; }
.brief dl { margin: 0; }
.brief dl div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 14px 0; border-top: 1px solid var(--brief-line); }
.brief dl div:first-child { border-top: 0; }
.brief dt { font-weight: 600; font-size: var(--fs-small); }
.brief dd { margin: 0; color: var(--ink-soft); font-size: .9688rem; line-height: 1.5; }
.dir-table { border-top: 2px solid var(--ink); }
.dir-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.6fr) 120px; gap: 24px; align-items: start; padding: 26px 0; border-bottom: 1px solid var(--line); }
.dir-row--head { padding: 12px 0; font-size: .875rem; font-weight: 600; color: var(--ink-soft); }
.dir-row h3 { font-size: 1.25rem; font-weight: 600; letter-spacing: -0.015em; }
.dir-row h3 a { color: var(--ink); text-decoration: none; }
.dir-row h3 a::after { content: ""; position: absolute; inset: 0; }
.dir-row:not(.dir-row--head):hover { background: var(--tint); }
.dir-row:has(a:focus-visible) { outline: 3px solid var(--steel); outline-offset: 2px; }
.dir-row h3 a:focus-visible { outline: none; }
.dir-need { margin: 0; font-weight: 500; }
.dir-result { margin: 0; color: var(--ink-soft); font-size: 1rem; }
.dir-more { justify-self: end; font-weight: 600; color: var(--steel); text-decoration: underline; text-underline-offset: .2em; }
@media (max-width: 1023px) {
  .dir-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 8px 24px; }
  .dir-row--head { display: none; }
  .dir-row h3 { grid-column: 1 / -1; }
  .dir-more { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 719px) {
  .dir-row { grid-template-columns: minmax(0, 1fr); }
  .brief { padding: 22px 20px 6px; }
  .brief dl div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* ---------- Схема первого экрана: цвета через переменные (меняются в вариантах оформления) ---------- */
.scheme .lane-a { fill: var(--sch-lane-a); }
.scheme .lane-b { fill: var(--sch-lane-b); }
.scheme .lane-label { fill: var(--sch-label); }
.scheme .frame { stroke: var(--sch-frame); }
.scheme .node rect { fill: var(--sch-node); stroke: var(--sch-node-line); }
.scheme .node.node-key rect { stroke: var(--sch-key); }
.scheme .node text { fill: var(--sch-text); }
.scheme .route { stroke: var(--signal); }



/* ---------- Блок автора под статьёй ---------- */
.author-block { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px 24px; max-width: 920px; margin: 0 0 var(--section) calc(240px + clamp(32px, 5vw, 72px)); padding: 24px 0 0; border-top: 2px solid var(--ink); }
.author-block .expert-figure .monogram { width: 64px; height: 64px; font-size: 1.4rem; }
.author-block .expert-figure img { width: 96px; height: 120px; }
.author-label { margin: 0; font: 600 var(--fs-xs)/1.3 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--steel); }
.author-block .expert-name { margin: 4px 0 0; }
.author-role { margin: 2px 0 10px; color: var(--ink-soft); font-size: var(--fs-small); }
.author-text { color: var(--ink-soft); font-size: 1rem; }
.author-text p { margin: 0 0 10px; }
.author-block p:last-child { margin: 0; }
@media (max-width: 1023px) { .author-block { margin-left: 0; } }
@media (max-width: 599px) { .author-block { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Страница эксперта ---------- */
.x-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(28px, 5vw, 72px); align-items: start; }
.x-sub { margin: 14px 0 0; font: 600 1rem/1.4 var(--sans); color: var(--steel); }
.x-lead { margin-top: 24px; }
.x-lead p { margin: 0; }
.x-lead strong { color: var(--ink); font-weight: 600; }
.page-head--expert .button-row { margin-top: 28px; }
.page-head--expert .button--ghost .icon { margin-right: 2px; }
.x-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 0 40px; margin: 0; border-top: 2px solid var(--ink); }
.x-facts div { padding: 16px 0; border-bottom: 1px solid var(--line); }
.x-facts dt { font-weight: 600; margin-bottom: 4px; }
.x-facts dd { margin: 0; color: var(--ink-soft); }
.x-intro { margin-bottom: 32px; max-width: 70ch; }
.x-roles { list-style: none; border-top: 2px solid var(--ink); }
.x-roles li { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); gap: 8px 40px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.x-roles h3 { font: 400 1.35rem/1.25 var(--serif); }
.x-roles p { margin: 0; color: var(--ink-soft); }
.x-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 32px 40px; }
.x-columns h3 { margin-bottom: 14px; padding-bottom: 10px; border-bottom: 2px solid var(--ink); }
.x-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.x-prose .table-wrap { margin-top: 0; }
@media (max-width: 719px) {
  .x-head { grid-template-columns: minmax(0, 1fr); }
  .x-head .expert-figure { order: -1; }
  .x-head .expert-figure .monogram { width: 80px; height: 80px; font-size: 1.75rem; margin-bottom: 0; }
  .x-roles li { grid-template-columns: minmax(0, 1fr); }
  .x-links { grid-template-columns: minmax(0, 1fr); }
}
.wrap:has(+ .wrap > .author-block) .article-layout { padding-bottom: clamp(32px, 4vw, 48px); }

/* ==========================================================================
   Основное оформление (бывший вариант D «Гибрид», утверждён владельцем 17.10.2026).
   Правила с префиксом :root перекрывают базовые компоненты; варианты B и C
   (theme-report.css, theme-premium.css) по-прежнему перекрывают их до удаления.
   ========================================================================== */
/* Типографика: антиква в H1–H2 (как A), но плотнее и темнее; подзаголовки — Inter полужирный (как B) */
:where(:root) h1 { font-size: var(--fs-h1); line-height: 1.08; letter-spacing: -0.018em; }
:where(:root) h2 { letter-spacing: -0.015em; }

/* Кнопки: заливка акцентом, белый текст */
:root .button { color: #fff; border-radius: 3px; }
:root .button:hover { color: #fff; }
:root .button--ghost { color: var(--ink); background: transparent; border-color: var(--ink); }
:root .button--ghost:hover { color: #fff; background: var(--ink); border-color: var(--ink); }
:root .main-nav > a.header-cta { color: #fff; border-radius: 3px; }
:root .link-strong,
:root .route-links a { text-decoration-color: var(--steel); }

/* Первый экран: заголовок шире, чтобы уложиться в 2–3 строки; справка справа; полоса направлений ниже */
:root .hero--hybrid { padding-block: clamp(24px, 3.2vw, 52px) clamp(28px, 3vw, 44px); border-bottom: 1px solid var(--line); }
:root .hero--hybrid .hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(280px, .6fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
:root .hero--hybrid h1 { max-width: 23ch; }
:root .hero--hybrid .lead { margin: 18px 0 24px; }
:root .hero-trust { margin-bottom: 16px; }
:root .brief { padding: 22px 26px 6px; border-top-width: 3px; }
/* Справка в D — полоса под направлениями: строки в колонку, подпись над текстом */
:root .brief--band { margin-top: 28px; padding: 20px 24px 22px; }
:root .brief.brief--band dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 0 32px; }
:root .brief.brief--band dl div { grid-template-columns: minmax(0, 1fr); gap: 4px; padding: 10px 0 0; border-top: 0; }
/* Блок эксперта справа в первом экране */
.hero-expert-card { display: grid; justify-items: start; gap: 12px; padding: 24px 0 0 28px; border-left: 1px solid var(--line); }
.hero-expert-card .expert-figure .monogram { width: 88px; height: 88px; font-size: 2rem; }
.hero-expert-card .expert-figure img { width: 160px; height: 200px; }
.hero-expert-card .expert-name { margin: 6px 0 0; }
.hero-expert-text { margin: 0; color: var(--ink-soft); font-size: .9688rem; line-height: 1.55; max-width: 40ch; }
.hero-expert-card p:last-child { margin: 0; }
:root .brief h2 { font: 600 var(--fs-small)/1.4 var(--sans); letter-spacing: 0; margin-bottom: 4px; color: var(--steel); }
:root .brief dl div { grid-template-columns: 148px minmax(0, 1fr); gap: 14px; padding: 11px 0; }
:root .brief dt { font-size: .875rem; }
:root .brief dd { font-size: var(--fs-small); line-height: 1.45; }
:root .monogram { background: var(--ink); }

/* Таблица направлений: название — антиквой, как в полосе */
:root .dir-row h3 { font: 400 1.4rem/1.2 var(--serif); letter-spacing: -.005em; }

/* Разделы: чередование белого и светлого тона; «ночные» разделы — светлые, как в B */
:root .section--surface { background: var(--tint); }
:root .section--night { background: var(--tint); color: var(--ink); border-block: 1px solid var(--line); }
:root .section--night h2,
:root .section--night h3,
:root .section--night a { color: var(--ink); }
:root .section--night p,
:root .approach-grid p,
:root .section--night .principle p,
:root .section--night .section-head p { color: var(--ink-soft) !important; }
:root .approach-closing { border-color: var(--line); }
:root .lanes { background: #fff; border-color: var(--line); }
:root .lanes-title,
:root .lane { border-color: var(--line); }
:root .lane dt { color: var(--ink-soft); border-color: var(--line); }
:root .lane dd { color: var(--ink); }
:root .lane dd::before { background: var(--steel); }
:root .section--night .principle { background: #fff; border-color: var(--line); }
:root .read-card { border-color: var(--line); }
:root .tag { background: var(--tint); color: var(--ink-soft); border: 1px solid var(--line); }

/* Этапы: крупные цифры акцентом (как B), но антиквой */
:root .steps li { padding-top: 60px; }
:root .steps li::before { width: auto; height: auto; border: 0; background: none !important; border-radius: 0; font: 400 2.6rem/1 var(--serif); color: var(--steel); }
:root .steps li::after { top: 20px; left: 44px; }

/* Внутренние страницы: шапка на светлом тоне */
:root .page-head { background: var(--tint); border-bottom: 1px solid var(--line); margin-bottom: clamp(32px, 4vw, 56px); }
:root .audience { border-color: var(--line); }
:root .article-head { border-bottom: 1px solid var(--line); margin-bottom: 40px; }
:root .faq summary::after { border-color: var(--steel); }
:root .note--draft { border-left-color: var(--steel); }

@media (max-width: 1179px) {
  :root .hero--hybrid .hero-grid { grid-template-columns: minmax(0, 1fr); }
  /* На планшете и телефоне справка уходит под полосу направлений */
  :root .hero--hybrid .wrap { display: flex; flex-direction: column; }
  :root .hero--hybrid .hero-grid { display: contents; }
  :root .hero--hybrid .hero-main { order: 1; }
  :root .hero--hybrid .dir-strip { order: 2; }
  :root .hero--hybrid .hero-expert-card { order: 3; margin-top: 28px; padding: 20px 0 0; border-left: 0; border-top: 1px solid var(--line); grid-template-columns: auto minmax(0, 1fr); column-gap: 16px; align-items: center; }
  :root .hero--hybrid .hero-expert-card .expert-figure { grid-row: span 3; align-self: start; }
  :root .hero--hybrid .hero-expert-card .expert-figure .monogram { width: 64px; height: 64px; font-size: 1.4rem; }
  :root .hero--hybrid .brief { order: 4; margin-top: 28px; }
}
@media (max-width: 719px) {
  /* Телефон: полоса направлений идёт сразу под кнопкой — вторая кнопка «Выбрать направление» не нужна */
  :root .hero--hybrid .button--ghost { display: none; }
  :root .hero--hybrid h1 { font-size: 2rem; line-height: 1.1; }
  :root .hero--hybrid .lead { font-size: var(--fs-body); margin: 14px 0 20px; }
  :root .hero-trust { margin-bottom: 12px; }
  :root .dir-strip { margin-top: 24px; }
  :root .brief dl div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  :root .steps li { padding: 0 0 0 60px; }
  :root .steps li::before { font-size: 2rem; }
  :root .steps li::after { left: 14px; top: 40px; }
}

/* Схема направления в «ночном» разделе: в D раздел светлый, подпись — обычным второстепенным цветом */
:root .section--night .feature-figure figcaption { color: var(--ink-soft); }
:root .section--night .feature-figure figcaption strong { color: var(--ink); }

/* ---------- Страница направления в D ---------- */
.page-kicker { margin: 0 0 14px; font: 600 var(--fs-xs)/1.3 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--steel); }
:root .page-head--service { padding-bottom: clamp(28px, 3.5vw, 48px); }
:root .page-head--service .page-head-grid { grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); align-items: start; }
:root .page-head--service h1 { max-width: 22ch; font-size: var(--fs-h1-page); }
.service-aside { display: grid; gap: 20px; background: var(--surface); border: 1px solid var(--line); border-top: 3px solid var(--steel); padding: 22px 24px; }
.service-aside h2 { font: 600 var(--fs-small)/1.4 var(--sans); letter-spacing: 0; margin-bottom: 10px; color: var(--ink); }
.service-aside ul { list-style: none; display: grid; gap: 6px; font-size: var(--fs-small); line-height: 1.45; }
.service-aside > div:first-child li { padding-left: 16px; position: relative; }
.service-aside > div:first-child li::before { content: ""; position: absolute; left: 0; top: .65em; width: 8px; height: 2px; background: var(--steel); }
.service-aside > div + div { padding-top: 18px; border-top: 1px solid var(--line); }
.service-aside-results li { display: flex; gap: 8px; align-items: flex-start; }
.service-aside-results .icon { color: var(--steel); margin-top: .1em; }
.service-aside .link-strong { display: inline-block; margin-top: 12px; font-size: var(--fs-small); }
.mid-cta { border-block: 1px solid var(--line); background: var(--surface); }
.mid-cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; padding-block: 28px; }
.mid-cta p { margin: 0; max-width: 60ch; color: var(--ink-soft); }
.mid-cta p strong { color: var(--ink); }
.mid-cta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.mid-cta-mail { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--ink); text-decoration-color: var(--steel); }
.mid-cta-mail .icon { color: var(--steel); }
@media (max-width: 1023px) {
  :root .page-head--service .page-head-grid { grid-template-columns: minmax(0, 1fr); }
}
@media print { .mid-cta { display: none !important; } }

/* Редакторская полоса статьи (стенд): контурная кнопка на тёмном фоне */
:root .editor-bar .button--ghost { background: transparent; border-color: var(--on-ink); color: var(--on-ink); }
:root .editor-bar .button--ghost:hover { background: var(--on-ink); border-color: var(--on-ink); color: var(--ink); }

/* Панель согласия на cookie (consent.js). Раньше стили вставлялись скриптом; по CSP — только из файла. */
.cookie-bar { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; max-width: 720px; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); overflow-y: auto; margin: 0 auto; background: var(--paper, #fff); color: var(--ink, #16202a); border: 1px solid var(--line-strong, #a3aeb6); border-radius: 8px; box-shadow: var(--shadow-pop, 0 18px 40px -24px rgba(22,32,42,.35)); padding: 18px 20px; display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; font-size: .9375rem; line-height: 1.5; }
.cookie-bar p { margin: 0; flex: 1 1 320px; }
.cookie-bar .cookie-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cookie-bar button { font: inherit; font-weight: 600; padding: 10px 18px; border-radius: 6px; cursor: pointer; border: 1px solid var(--signal, #0b5b57); }
.cookie-bar .cookie-accept { background: var(--signal, #0b5b57); color: var(--on-ink, #fff); }
.cookie-bar .cookie-decline { background: transparent; color: var(--signal, #0b5b57); }
.cookie-bar button:focus-visible { outline: 3px solid var(--ink, #16202a); outline-offset: 2px; }
/* Компактная панель: крестик «закрыть без выбора» в углу, на телефоне — нижняя плашка без перекрытия первого экрана. */
.cookie-bar { padding-right: 52px; position: fixed; }
.cookie-bar .cookie-close { position: absolute; top: 8px; right: 8px; width: 36px; height: 36px; padding: 0; border: 0; background: transparent; color: var(--ink-soft, #4d5965); font-size: 1.5rem; font-weight: 400; line-height: 1; border-radius: 6px; }
.cookie-bar .cookie-close:hover { background: var(--tint, #f2f4f3); color: var(--ink, #16202a); }
@media (max-width: 599px) {
  .cookie-bar { left: 0; right: 0; bottom: 0; max-width: none; border-radius: 12px 12px 0 0; border-width: 1px 0 0; padding: 12px 44px 12px 16px; gap: 10px; font-size: .8125rem; line-height: 1.4; max-height: 45vh; max-height: 45dvh; padding-bottom: max(12px, env(safe-area-inset-bottom)); }
  .cookie-bar p { flex-basis: 100%; }
  .cookie-bar .cookie-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .cookie-bar .cookie-actions button { padding: 9px 10px; }
  .cookie-bar .cookie-close { top: 4px; right: 4px; }
}
.footer-link-button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
/* Visible review annotations are emitted only by the closed acceptance build. */
.legal-review-mark { background: #ffed76; color: #172227; padding: 0 .1em; border-radius: 2px; box-decoration-break: clone; -webkit-box-decoration-break: clone; overflow-wrap: anywhere; }
.legal-review-note { margin-block: 24px; padding-block: 18px; border: 1px solid #d2ba45; border-radius: 8px; background: #fff9d9; color: #172227; overflow-wrap: anywhere; }
.legal-review-note p { margin: 8px 0; }
.legal-review-note p:last-child { font-size: .875rem; }
.legal-review-item { padding-block: 24px; border-top: 1px solid var(--line); scroll-margin-top: 100px; overflow-wrap: anywhere; }
.legal-review-item h2 { font-size: 1.25rem; }
.legal-review-list { max-width: 960px; }
.legal-review-comment { display: block; font-family: "Segoe UI", Arial, sans-serif; font-size: .875rem; font-weight: 400; line-height: 1.6; color: #244f79; background: #eef5fc; border-left: 3px solid #326d9d; border-radius: 0 6px 6px 0; padding: 12px 16px; margin: 12px 0; overflow-wrap: anywhere; scroll-margin-top: 100px; }
.legal-review-comment strong { color: #163d63; }
.legal-review-comment a { color: #164e7a; }
.legal .scroll-x table { min-width: 800px; table-layout: fixed; }
.legal-review-jump { color: inherit; text-decoration: none; }
.legal-review-jump:focus-visible { outline: 3px solid #326d9d; outline-offset: 3px; }
@media print { .legal-review-mark { print-color-adjust: exact; -webkit-print-color-adjust: exact; } }
@media print { .cookie-bar { display: none; } }

/* P05 — главная: предложение, направления, опыт, обращение.
   Ограничено новыми классами, чтобы сохранить оформление подробных страниц. */
body[data-page="index"] { --section: clamp(56px, 6.5vw, 88px); }
:root .home-hero.hero--hybrid { padding-block: clamp(40px, 5.5vw, 76px); background: var(--paper); }
:root .home-hero.hero--hybrid .hero-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(260px, .8fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
:root .home-hero.hero--hybrid h1 { max-width: 21ch; font-size: clamp(2.35rem, 4.6vw, 4rem); line-height: 1.07; text-wrap: balance; }
:root .home-hero.hero--hybrid .lead { max-width: 54ch; margin: 24px 0 30px; font-size: clamp(1.125rem, 1.6vw, 1.3rem); line-height: 1.6; }
:root .home-hero .hero-trust { font-size: .875rem; margin-bottom: 20px; max-width: 65ch; }
:root .home-hero .hero-expert-card { grid-template-columns: minmax(0, 1fr); margin: 0; padding: 26px; border: 1px solid var(--line); border-top: 3px solid var(--steel); background: var(--tint); gap: 14px; }
:root .home-hero .hero-expert-card .expert-name { font-size: 1.25rem; line-height: 1.35; }
:root .home-hero .hero-expert-card .expert-figure { grid-row: auto; }
:root .home-hero .hero-expert-card .expert-figure .monogram { width: 64px; height: 64px; font-size: 1.5rem; }
:root .home-hero .hero-expert-text { max-width: 36ch; font-size: 1rem; }
.home-directions .section-head, .home-cases .section-head, .home-method .section-head { margin-bottom: 32px; }
.home-directions .dir-table { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; border: 0; }
.home-directions .dir-row { display: flex; flex-direction: column; align-items: stretch; gap: 14px; padding: clamp(24px, 3vw, 36px); border: 1px solid var(--line); border-top: 3px solid var(--steel); background: var(--paper); }
:root .home-directions .dir-row h3 { font: 400 clamp(1.45rem, 2.1vw, 1.8rem)/1.2 var(--serif); max-width: 26ch; }
.home-directions .dir-need { font-size: 1rem; font-weight: 400; color: var(--ink-soft); }
.home-directions .dir-result { padding-top: 14px; border-top: 1px solid var(--line); color: var(--ink); font-weight: 500; }
.home-directions .dir-more { display: block; align-self: flex-start; margin-top: auto; padding-top: 6px; }
.home-directions .dir-row:hover { border-color: var(--steel); background: var(--tint); }
.home-directions .dir-row:has(a:focus-visible) { outline: 3px solid var(--steel); outline-offset: 3px; }
:root .home-cases { background: var(--tint); padding-block: var(--section); }
.home-cases .case-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.home-cases .case-card { padding: 26px 24px; gap: 18px; border: 0; border-top: 2px solid var(--ink); }
.home-cases .case-card h3 { font-size: clamp(1.35rem, 1.8vw, 1.6rem); line-height: 1.3; text-wrap: balance; }
.home-cases .case-role { font-size: .875rem; line-height: 1.5; }
.home-cases .case-role span { margin-bottom: 4px; }
.home-cases .case-card > .link-strong, .home-cases .case-link { margin-top: auto; padding-top: 6px; }
.home-cases .button-row { margin-top: 32px; }
:root .home-method { background: var(--paper); color: var(--ink); border: 0; padding-block: var(--section); }
.home-method > .wrap > p { max-width: 70ch; color: var(--ink-soft); }
.home-method .feature-figure { margin-block: 32px 48px; }
.home-method .figure { width: 100%; }
.home-method .figure img { display: block; width: 100%; height: auto; }
.home-method .steps { gap: 24px; }
:root .home-method .steps li { padding: 52px 16px 0 0; }
.home-method .steps li::after { right: 0; }
:root .home-contact { background: var(--steel-tint); padding-block: var(--section); border-block: 1px solid var(--line); }
.home-contact .contact-band h2 { max-width: 22ch; }
.home-contact .contact-band p { max-width: 60ch; }
.home-materials .section-head h2 { font-size: clamp(1.6rem, 2.6vw, 2.2rem); }
.home-materials .read-card { padding: 24px; }
/* Длинные адреса/ошибки не должны расширять колонку формы. */
.contact-layout > *, .contact-band > *, .field, .consent > * { min-width: 0; }
.form-result, .field .error, .contact-aside .email { overflow-wrap: anywhere; }
.form-result:focus-visible { outline: 3px solid var(--signal); outline-offset: 4px; }
.field input, .field textarea, .consent, .form-result { scroll-margin-top: calc(var(--header-h) + 24px); }

@media (max-width: 1023px) {
  :root .home-hero.hero--hybrid .hero-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  :root .home-hero .hero-expert-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 20px; align-items: start; max-width: 720px; }
  :root .home-hero .hero-expert-card .expert-figure { grid-row: span 3; }
  :root .home-hero .hero-expert-card .expert-name { margin: 0; }
  :root .home-hero .hero-expert-text { max-width: none; }
  .home-cases .case-grid { grid-template-columns: minmax(0, 1fr); }
  .home-cases .case-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px 28px; }
  .home-cases .case-industry { grid-column: 1 / -1; }
  .home-cases .case-card h3 { grid-column: 1; grid-row: 2 / span 2; }
  .home-cases .case-role, .home-cases .case-task { grid-column: 2; }
  .home-cases .case-card > .link-strong, .home-cases .case-link { grid-column: 1 / -1; }
  :root .home-method .steps li { padding: 0 0 0 56px; }
  .home-method .steps li::after { top: 40px; left: 14px; right: auto; }
}
@media (max-width: 719px) {
  :root .home-hero.hero--hybrid { padding-block: 32px; }
  :root .home-hero.hero--hybrid h1 { font-size: clamp(2rem, 8.7vw, 2.75rem); max-width: 20ch; }
  :root .home-hero.hero--hybrid .lead { font-size: 1.0625rem; margin: 20px 0 24px; }
  :root .home-hero.hero--hybrid .button--ghost { display: inline-flex; }
  :root .home-hero .hero-expert-card { padding: 20px; column-gap: 14px; gap: 10px 14px; }
  :root .home-hero .hero-expert-card .expert-name { font-size: 1.0625rem; align-self: center; }
  :root .home-hero .hero-expert-card .expert-figure { grid-row: 1; }
  :root .home-hero .hero-expert-card .expert-figure .monogram { width: 48px; height: 48px; font-size: 1.125rem; }
  :root .home-hero .hero-expert-text, :root .home-hero .hero-expert-card p:last-child { grid-column: 1 / -1; }
  .home-directions .dir-table { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .home-directions .dir-row { padding: 24px; }
  .home-cases .case-grid { gap: 16px; }
  .home-cases .case-card { display: flex; padding: 24px; gap: 14px; }
  .home-method .feature-figure { margin-block: 24px 36px; }
  .home-method .figure { max-width: 420px; margin-inline: auto; }
  .home-contact .contact-band { gap: 28px; }
  .home-contact .contact-aside { padding-left: 20px; }
}
@media print {
  :root .home-hero.hero--hybrid, :root .home-cases, :root .home-method, :root .home-contact { padding-block: 0 18pt; background: #fff; }
  .home-directions .dir-row, .home-cases .case-card { break-inside: avoid; }
}
/* CASE-WEIGHING: вертикальный SVG на планшете сохраняет читаемость подписей. */
@media (min-width: 720px) and (max-width: 1023px) {
  #figure-case-weighing { max-width: 420px; margin-inline: auto; }
}
/* На 320 px полное название переносится, не заходит под кнопку меню. */
@media (max-width: 479px) {
  .brand .company-logo + span { white-space: normal; min-width: 0; overflow-wrap: anywhere; }
}
@media (max-width: 359px) {
  .header-inner { gap: 8px; }
  .brand { white-space: normal; font-size: .8125rem; line-height: 1.2; gap: 6px; }
  .brand > span { min-width: 0; overflow-wrap: anywhere; }
  .brand svg { width: 26px; flex: none; }
  .menu-toggle { padding-inline: 10px; }
}

/* ===== Итерация 2 (29.10.2026): первый экран, блок отличий, карточки кейсов ===== */
.home-hero .hero-eyebrow { margin: 0 0 18px; font: 600 var(--fs-xs)/1.4 var(--sans); letter-spacing: .06em; text-transform: uppercase; color: var(--steel); }
:root .home-hero.hero--hybrid h1 { max-width: 18ch; }
:root .home-hero.hero--hybrid .lead { max-width: 58ch; }
.home-hero .hero-facts { list-style: none; margin: 36px 0 0; padding: 22px 0 0; border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; max-width: 720px; }
.home-hero .hero-facts li { display: flex; flex-direction: column; gap: 4px; }
.home-hero .hero-facts b { font: 400 clamp(1.4rem, 2.2vw, 1.85rem)/1.15 var(--serif); color: var(--ink); }
.home-hero .hero-facts span { font-size: .875rem; line-height: 1.45; color: var(--ink-soft); }

:root .home-diff { background: var(--tint); padding-block: var(--section); }
.home-diff .section-head { margin-bottom: 32px; }
.diff-table { border-top: 2px solid var(--ink); }
.diff-row { display: grid; grid-template-columns: minmax(140px, .7fr) minmax(0, 1.3fr) minmax(0, 1.6fr); gap: 28px; padding: 22px 0; border-bottom: 1px solid var(--line-strong); align-items: start; }
.diff-row--head { padding: 14px 0; font: 600 var(--fs-xs)/1.3 var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); }
.diff-row--head span:last-child { color: var(--steel); }
.diff-row h3 { margin: 0; font: 400 1.3rem/1.25 var(--serif); }
.diff-row p { margin: 0; line-height: 1.55; }
.diff-usual { color: var(--ink-soft); }
.diff-ours { color: var(--ink); font-weight: 500; padding-left: 18px; border-left: 3px solid var(--steel); }
.diff-label { display: none; }

.case-facts { margin: 0; display: grid; gap: 12px; font-size: .9375rem; line-height: 1.5; }
.case-facts dt { font-size: var(--fs-xs); color: var(--ink-soft); margin-bottom: 2px; }
.case-facts dd { margin: 0; }
.case-facts div:last-child dd { font-weight: 500; }
.home-cases .case-card > .link-strong { margin-top: auto; }

@media (max-width: 719px) {
  .home-hero .hero-facts { grid-template-columns: 1fr; gap: 12px; margin-top: 28px; }
  .home-hero .hero-facts li { display: grid; grid-template-columns: 8.2rem minmax(0, 1fr); align-items: baseline; gap: 12px; }
  .home-hero .hero-facts b { font-size: 1.2rem; }
  .diff-row, .diff-row--head { grid-template-columns: 1fr; gap: 10px; }
  .diff-row--head { display: none; }
  .diff-label { display: block; font: 600 var(--fs-xs)/1.3 var(--sans); letter-spacing: .05em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 4px; }
  .diff-ours .diff-label { color: var(--steel); }
}

/* ===== Итерация 3: портрет эксперта ===== */
.expert-figure img { object-position: 50% 18%; }
:root .home-hero .hero-expert-card { padding: 0; overflow: hidden; gap: 0; }
:root .home-hero .hero-expert-card .expert-figure.has-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 4.2; border-radius: 0; }
:root .home-hero .hero-expert-card .expert-figure.has-photo + .expert-name { padding: 20px 24px 0; }
:root .home-hero .hero-expert-card .hero-expert-text, :root .home-hero .hero-expert-card > p:last-child { padding: 0 24px; }
:root .home-hero .hero-expert-card > p:last-child { padding-bottom: 22px; }
:root .home-hero .hero-expert-card .expert-name { margin: 0 0 8px; }
:root .home-hero .hero-expert-card .hero-expert-text { margin: 0 0 12px; }
@media (max-width: 719px) {
  :root .home-hero .hero-expert-card { display: grid; grid-template-columns: 112px minmax(0, 1fr); padding: 0; }
  :root .home-hero .hero-expert-card .expert-figure.has-photo { grid-row: 1 / span 3; grid-column: 1; }
  :root .home-hero .hero-expert-card .expert-figure.has-photo ~ * { grid-column: 2; }
  :root .home-hero .hero-expert-card .expert-figure.has-photo { position: relative; align-self: stretch; justify-self: stretch; width: 100%; min-height: 150px; }
  :root .home-hero .hero-expert-card .expert-figure.has-photo img { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: 50% 12%; }
  :root .home-hero .hero-expert-card .expert-figure.has-photo + .expert-name { padding: 16px 16px 0; font-size: 1.05rem; }
  :root .home-hero .hero-expert-card .hero-expert-text { padding: 0 16px; font-size: .875rem; }
  :root .home-hero .hero-expert-card > p:last-child { padding: 0 16px 14px; }
}

/* ===== Итерация 3: телефон, мессенджеры, закреплённая панель связи ===== */
.header-phone { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; text-decoration: none; color: var(--ink); }
.header-phone .icon { width: 18px; height: 18px; color: var(--steel); }
@media (min-width: 1024px) and (max-width: 1499px) { :root .main-nav .header-phone { display: none; } }
.direct-contacts { list-style: none; margin: 8px 0 14px; padding: 0; display: grid; gap: 10px; }
.direct-contacts a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.direct-contacts .icon { width: 18px; height: 18px; color: var(--steel); flex: none; }
.direct-messengers { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.direct-contacts--side a { font-weight: 500; }
.sticky-contact { display: none; }
@media (max-width: 719px) {
  .sticky-contact { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: 10px 12px; padding-bottom: max(10px, env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -18px rgba(22, 32, 42, .35); transform: translateY(110%); transition: transform .2s ease; }
  .sticky-contact.is-visible { transform: none; }
  .sticky-contact .button { flex: 1; justify-content: center; }
  .sticky-icon { flex: none; width: 48px; display: grid; place-items: center; border: 1px solid var(--steel); border-radius: 6px; color: var(--steel); }
  .sticky-icon .icon { width: 22px; height: 22px; }
  body:has(.sticky-contact) .site-footer { padding-bottom: 84px; }
  body:has(.cookie-bar) .sticky-contact { display: none; }
}
@media (prefers-reduced-motion: reduce) { .sticky-contact { transition: none; } }
@media print { .sticky-contact { display: none !important; } }

/* ===== Итерация 3: «С чем к нам приходят» ===== */
:root .home-symptoms { padding-block: var(--section); border-top: 1px solid var(--line); }
.home-symptoms .section-head { margin-bottom: 32px; }
.symptom-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.symptom-card { height: 100%; display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid var(--line); border-left: 3px solid var(--steel); background: var(--paper); color: var(--ink); text-decoration: none; transition: background .15s ease, border-color .15s ease; }
.symptom-card h3 { margin: 0; font: 400 clamp(1.2rem, 1.6vw, 1.4rem)/1.25 var(--serif); }
.symptom-card p { margin: 0; color: var(--ink-soft); font-size: .9375rem; line-height: 1.55; }
.symptom-more { margin-top: auto; padding-top: 8px; display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 600; color: var(--steel); }
.symptom-more .arrow { width: 16px; height: 16px; }
.symptom-card:hover { background: var(--tint); border-color: var(--steel); }
.symptom-card:focus-visible { outline: 3px solid var(--steel); outline-offset: 3px; }
:root .home-directions { border-top: 1px solid var(--line); padding-top: var(--section); }
@media (max-width: 1023px) { .symptom-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .symptom-grid { grid-template-columns: 1fr; gap: 10px; } .symptom-card { padding: 18px; } .symptom-card p { display: none; } }

/* ===== Итерация 3: короче страницы направлений на телефоне ===== */
.specimen-details > summary { display: none; }
@media (max-width: 719px) {
  .specimen-details { border: 1px solid var(--line); background: var(--paper); }
  .specimen-details > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; cursor: pointer; font-weight: 600; color: var(--steel); list-style: none; }
  .specimen-details > summary::-webkit-details-marker { display: none; }
  .specimen-details > summary::after { content: "+"; font: 400 1.5rem/1 var(--sans); }
  .specimen-details[open] > summary::after { content: "−"; }
  .specimen-details .specimen { margin: 0; }
  /* Материалы и кейсы — лентой с прокруткой вбок: видна следующая карточка. */
  .reading, main .case-grid { display: grid; grid-auto-flow: column; grid-auto-columns: 84%; grid-template-columns: none; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; margin-inline: calc(var(--gutter, 16px) * -1); padding-inline: var(--gutter, 16px); scroll-padding-inline: var(--gutter, 16px); }
  .reading > *, main .case-grid > * { scroll-snap-align: start; }
  .other-directions a > span:not(.serif-title) { display: none; }
}
@media (max-width: 719px) { .layers { gap: 4px; } .layer { font-size: .6875rem; letter-spacing: -.01em; } }

/* ===== Итерация 3: призыв в колонке оглавления статьи ===== */
.toc-cta { margin-top: 20px; padding: 18px; border: 1px solid var(--line); border-top: 3px solid var(--steel); background: var(--tint); }
.toc-cta p { margin: 0 0 12px; font-size: .9375rem; line-height: 1.5; }
@media (max-width: 1023px) { .toc-cta { display: none; } }

/* ===== Итерация 4: ритм, иерархия, «чертёжная» полоса для схем =====
   Один сильный приём на странице — тёмное поле с сеткой 32 px (сетка знака) и схема-лист на нём.
   Остальное — спокойное чередование бумаги и двух светлых тонов. */
:root .section.blueprint {
  background-color: var(--night);
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: -1px -1px;
  color: var(--night-text);
  border: 0;
}
:root .blueprint h2, :root .blueprint h3 { color: var(--on-ink); }
:root .blueprint .section-head p, :root .blueprint > .wrap > p { color: var(--night-text); }
:root .blueprint a { color: var(--on-ink); }
:root .blueprint .link-strong { color: var(--on-ink); text-decoration-color: rgba(255, 255, 255, .45); }
:root .blueprint .figure-frame { border: 0; border-radius: 4px; box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 36px 72px -36px rgba(0, 0, 0, .75); padding: clamp(12px, 2vw, 28px); }
:root .blueprint .feature-figure { margin-top: clamp(28px, 3.5vw, 44px); }
:root .blueprint .figure figcaption { color: var(--night-muted); margin-top: 16px; }
:root .blueprint .figure figcaption strong { color: var(--on-ink); font-weight: 600; }
:root .blueprint .figure-open { color: var(--on-ink); }
:root .schema-band { padding-block: clamp(48px, 6vw, 80px); }
:root .schema-band .feature-figure { margin-top: 0; }
:root .blueprint .feature-link { margin-top: 24px; }
:root .home-method.blueprint .feature-figure { margin-block: clamp(28px, 3.5vw, 44px) 0; }
:root .home-method.blueprint .figure { max-width: 1120px; }

/* Ритм главной: бумага → тон → бумага → зелёный тон → бумага → чертёж → бумага → связь → бумага */
:root .home-symptoms { background: var(--tint); border-top: 0; }
:root .home-directions { border-top: 0; }
:root .home-diff { background: var(--steel-tint); }
:root .home-diff .diff-table { border-top-color: var(--steel); }
:root .home-cases { background: var(--paper); }
:root .home-cases .case-card { border: 1px solid var(--line); border-top: 2px solid var(--ink); }
:root .home-steps { background: var(--paper); padding-block: var(--section); }
:root .home-steps .section-head { margin-bottom: 28px; }
:root .home-materials { border-top: 0; }

/* Иерархия подписей: без капса и разрядки — короткие подписи строчными, цветом акцента */
:root .home-hero .hero-eyebrow { text-transform: none; letter-spacing: 0; font: 500 .9375rem/1.4 var(--sans); }
:root .case-industry { text-transform: none; letter-spacing: 0; font: 500 .875rem/1.35 var(--sans); }
:root .diff-row--head { text-transform: none; letter-spacing: 0; font-size: .875rem; }
:root .diff-label { text-transform: none; letter-spacing: 0; font-size: .8125rem; }
:root .symptom-card { border-left-width: 1px; border-top: 3px solid var(--steel); }

/* Единая шкала заголовков секций */
:root .section-head h2 { font-size: clamp(1.9rem, 3.2vw, 2.85rem); line-height: 1.12; text-wrap: balance; }
:root .section-head p { max-width: 60ch; }
:root .blueprint + .section, :root .section + .blueprint { padding-top: var(--section); }
:root .schema-band + .section { padding-top: var(--section); }

/* Ритм страниц направлений: шапка-тон → бумага → бумага с линией → [чертёж] → … → материалы-тон → связь-зелёный тон */
:root .section--ruled { border-top: 1px solid var(--line); padding-top: var(--section); }
:root .contact-section { background: var(--steel-tint); border-block: 1px solid var(--line); }
:root .contact-section + .site-footer, :root main > .contact-section:last-of-type { border-bottom: 0; }
