/* Кто молодец — стили статических страниц (legal). Токены вынесены в общий
   пакет web_ds (design-system-foundation, sub-unit 1) — единственный
   источник правды теперь packages/calls_analyzer_web_ds/css/tokens.css,
   подключается ниже через @import (тот же файл, что web/web/styles.css и
   web_static/web/landing.css потребляют — три файла больше не дублируют
   свой корневой токен-блок). Не дублировать его здесь — тест-страж
   web_static/test/styles_guard_test.dart это проверяет.
   Шрифты (Inter + JetBrains Mono) — само-хост из web_ds (sub-unit 2, задача
   2.4): @font-face в packages/calls_analyzer_web_ds/css/fonts.css,
   подключается ниже через @import. site.css грузится на КАЖДОЙ странице
   web_static (main.server.dart линкует его безусловно — и на лендинге, и
   на legal), поэтому шрифты подключаются здесь один раз, а не дублируются
   в landing.css. НЕ Google Fonts CDN — лендинг обязан оставаться без
   CDN-шрифтов (design.md Р-4, guard-тест «no-CDN»); ровно поэтому здесь
   self-host, а не старый CDN @import, унаследованный когда-то от
   web/web/styles.css.
   Базовые DS-компонентные классы (.btn/.card/.chip/.notice/.empty-state/…,
   design-system-foundation, sub-unit 3) подключаются тем же способом —
   packages/calls_analyzer_web_ds/css/components.css, ниже. Это тот же файл,
   что теперь несёт `web/web/styles.css` (кабинет) — единственный источник,
   не дублировать. (landing-redesign review Фаза 1 FIX 10) landing.css
   когда-то несла свой отдельный легаси-набор классов кнопок
   (`.btn`/`.btn-primary`/…) — лендинг мигрировал на эти DS `.btn.<variant>`
   классы, легаси-набор из landing.css удалён, см. components.css's own
   header doc. */
@import url('packages/calls_analyzer_web_ds/css/tokens.css');
@import url('packages/calls_analyzer_web_ds/css/fonts.css');
@import url('packages/calls_analyzer_web_ds/css/components.css');

/* ==== внутренние страницы сайта: юр-страницы и 404 ==== */
/* Шаблон внутренних страниц макета (`Кейсы.dc.html`, `Вопросы.dc.html`;
   своего макета у юр-страниц и 404 нет): шапка и подвал сайта, тело — в
   контентной колонке `.container` (--page-max, тот же левый край, что у
   шапки и подвала), текст — колонкой 760 у её левого края (как список FAQ
   `Вопросы.dc.html`), H1 по --screen-hero-size 52 / 38px. `<main
   class="site-page">` (pages/site_page.dart) растягивается и прижимает подвал
   к низу короткой страницы. Сверка 2026-10-01, В46, В47. */
body:has(> .site-page) { display: flex; flex-direction: column; min-height: 100vh; }
.site-page { flex: 1 0 auto; }
.doc { max-width: 760px; padding: 44px 0 64px; }

/* Крошки «Главная / Документы» — Breadcrumbs ДС (`design/system/components/
   navigation/Breadcrumbs.jsx`): 500 13px, ссылки --accent-deep, текущий
   --muted, разделитель --faint. --accent-deep, не --link (= --accent):
   #3a8dff на белом — 3,26:1, ниже AA; --accent-deep — 5,82:1 на белом, в
   тёмной теме (#5ba3ff на #1a1d22) — 6,54:1. */
.crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: var(--sp-2); margin-bottom: var(--sp-4);
  font: var(--w-medium) var(--fz-sm) var(--font-ui); }
.crumbs a { color: var(--accent-deep); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.crumbs a:focus-visible { outline: var(--focus-ring); outline-offset: var(--focus-offset); }
.crumbs [aria-current] { color: var(--muted); }
.crumbs [aria-hidden] { color: var(--faint); }

.page-title {
  font: 800 52px/1.08 var(--sans); letter-spacing: -0.02em; text-wrap: balance;
  color: var(--text); margin: 0 0 var(--sp-6);
}
@media (max-width: 720px) {
  .doc { padding: 28px 0 40px; }
  .page-title { font-size: 38px; line-height: 1.1; }
}
.doc h2 {
  font: var(--w-semibold) var(--fz-h2) var(--font-ui); line-height: var(--lh-heading);
  color: var(--text-body); margin: var(--sp-7) 0 var(--sp-3);
}
.doc p {
  font: var(--w-regular) var(--fz-body) var(--font-ui); line-height: var(--lh-body);
  color: var(--text-body); margin: 0 0 var(--sp-4);
}
/* Без white-space: pre-line (QA пререлиза): пререндер Jaspr кладёт текст
   длинного <p> на отдельную строку с отступом, и pre-line превращал этот
   перенос в пустую строку в начале каждого абзаца. Намеренные переносы
   юр-текста стоят в разметке (pages/legal_body.dart: \n → <br>, \n\n →
   новый <p>) — тест-страж styles_guard_test.dart. */
.doc a { color: var(--accent-deep); }
.doc a:hover { text-decoration: underline; }

.doc .requisites {
  background: var(--surface-sunken); border: var(--bw-hair) solid var(--border-hair);
  border-radius: var(--r-card); padding: var(--sp-4); margin-top: var(--sp-6);
  font-size: var(--fz-sm); color: var(--text-muted); white-space: pre-line;
}

/* ==== 404 ==== */
/* Страница 404 (pages/not_found.dart) — тот же блок .doc, плюс ряд кнопок
   «На главную» / «В кабинет» (DS .btn, размер hero — как CTA внутренних
   страниц макета). Подчёркивание при наведении из `.doc a:hover` кнопкам не
   нужно. Подвал к низу прижимает `.site-page` выше. */
.not-found-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-6); }
.not-found-actions a:hover { text-decoration: none; }
