/* Публичная витрина в стиле Seline (V-2, справочник doc/design/seline.md).

   Подключается ТОЛЬКО из cabinet/templates/site_base.html, все правила — под
   `body.site`: личный кабинет (`cabinet_*.html`) и SaaS-админка этот слой не видят
   и выглядят как раньше (Bootstrap + style.css; у админки — admin-themes.css).

   Токены — свои (`--site-*`), значения — из справочника Seline, те же, что у темы
   `seline` админки (admin-themes.css). Отдельный набор, а не `--adm-*`: тема админки
   — выбор пользователя под плотные таблицы, витрина от него не зависит.
   Где справочник не проходит WCAG AA, цвет затемнён так же, как в админке:
   текст на кнопке — чернила (белый на #3ba6f1 даёт 2.65), ссылки — #1f6fae (5.33).

   Шрифты — локальные woff2 (OFL, лицензии в static/fonts/), не Google Fonts:
   запросы к Google с IP посетителей — 152-ФЗ. Roobert → Manrope, Inter → Inter.
   Тот же файл шрифта, что у админки, браузер берёт из кэша. */

@font-face {
  font-family: "Inter Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-cyrillic-wght-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Inter Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Manrope Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/manrope-cyrillic-wght-normal.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: "Manrope Variable";
  font-style: normal;
  font-display: swap;
  font-weight: 200 800;
  src: url("../fonts/manrope-latin-wght-normal.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Токены ─────────────────────────────────────────────────────────────── */
body.site {
  --site-canvas: #fafaf9;        /* Stone Canvas — фон страницы */
  --site-surface: #ffffff;       /* Pure White — только карточки */
  --site-surface-hover: #f5f5f4;
  --site-ink: #0c0a09;           /* Ink Black — заголовки, акцентный текст */
  --site-muted: #78716c;         /* Warm Gray — основной текст: 4.59 на холсте */
  --site-ash: #a8a29e;           /* Ash Gray — декоративные штрихи, не текст */
  --site-border: #e8e6e5;        /* Stone Border — волосяные рамки */
  --site-border-strong: #d6d3d1; /* Stone Muted */
  --site-soot: #1c1917;
  --site-accent: #3ba6f1;        /* Cyan Signal — единственный цвет, заливка CTA */
  --site-accent-edge: #3398e1;   /* Cyan Edge — рамка CTA, акцентные штрихи */
  --site-wash: #c1e1f7;          /* Sky Wash */
  --site-link: #1f6fae;          /* AA-затемнение Cyan Edge для ссылок */

  --site-font-body: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --site-font-display: "Manrope Variable", "Inter Variable", ui-sans-serif, system-ui, sans-serif;

  --site-radius-card: 10px;
  --site-radius-feature: 16px;
  --site-radius-input: 6px;
  --site-shadow-card: rgba(0, 0, 0, 0.05) 0px 4px 16px 0px;
  --site-shadow-float: rgba(17, 12, 46, 0.12) 0px 12px 45px 0px;
  --site-shadow-hair: rgba(0, 0, 0, 0.05) 0px 1px 2px 0px;
  --site-section-gap: 96px;

  /* Bootstrap 5.3 — через его же переменные, без переписывания компонентов. */
  --bs-body-bg: var(--site-canvas);
  --bs-body-color: var(--site-muted);
  --bs-body-font-family: var(--site-font-body);
  --bs-body-font-size: 1rem;
  --bs-body-line-height: 1.69;
  --bs-emphasis-color: var(--site-ink);
  --bs-heading-color: var(--site-ink);
  --bs-secondary-color: var(--site-muted);
  --bs-secondary-rgb: 120, 113, 108;
  --bs-border-color: var(--site-border);
  --bs-border-color-translucent: var(--site-border);
  --bs-border-radius: var(--site-radius-input);
  --bs-link-color: var(--site-link);
  --bs-link-color-rgb: 31, 111, 174;
  --bs-link-hover-color: var(--site-ink);
  --bs-link-hover-color-rgb: 12, 10, 9;
  --bs-code-color: var(--site-ink);
  --cab-bg: var(--site-canvas);

  background: var(--site-canvas);
  color: var(--site-muted);
  font-family: var(--site-font-body);
  letter-spacing: 0.003em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Холст и под подвалом: короткая страница не показывает белую полосу <html>. */
html:has(body.site) {
  background: #fafaf9;
}

@media (min-width: 1200px) {
  body.site .container {
    max-width: 1200px;
  }
}

body.site ::selection {
  background: var(--site-wash);
  color: var(--site-ink);
}

/* ── Типографика ────────────────────────────────────────────────────────── */
body.site :is(h1, h2, h3, h4, .h1, .h2, .h3, .h4, .site-display, .site-h2) {
  font-family: var(--site-font-display);
  font-weight: 400;
  color: var(--site-ink);
  text-wrap: balance;
}
body.site :is(h1, .h1) {
  font-size: clamp(2rem, 1.4rem + 2.4vw, 2.75rem);
  line-height: 1.15;
  letter-spacing: -0.022em;
}
body.site :is(h2, .h2) {
  font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem);
  line-height: 1.25;
  letter-spacing: -0.025em;
}
body.site :is(h3, .h3, h4, .h4, h5, .h5) {
  font-family: var(--site-font-display);
  font-weight: 500;
  color: var(--site-ink);
  letter-spacing: -0.017em;
}
body.site :is(h3, .h3) { font-size: 1.25rem; line-height: 1.3; }
body.site :is(h4, .h4, h5, .h5) { font-size: 1.125rem; line-height: 1.35; }
body.site p { text-wrap: pretty; }
body.site strong, body.site b { color: var(--site-ink); font-weight: 600; }

body.site .lead {
  font-size: 1.125rem;
  line-height: 1.69;
  font-weight: 400;
  color: var(--site-muted);
}
body.site .text-secondary { color: var(--site-muted) !important; }

body.site a:not(.btn) {
  text-decoration: none;
  text-underline-offset: 0.18em;
}
body.site a:not(.btn):hover { text-decoration: underline; }
body.site :focus-visible {
  outline: 2px solid var(--site-accent);
  outline-offset: 2px;
}

/* ── Кнопки — «пилюли»: одна заливка циан, остальное — «призраки» ───────── */
body.site .btn {
  --bs-btn-border-radius: 9999px;
  --bs-btn-font-weight: 500;
  --bs-btn-padding-x: 1.125rem;
  --bs-btn-padding-y: 0.5rem;
  --bs-btn-font-size: 0.9375rem;
  --bs-btn-focus-box-shadow: 0 0 0 2px var(--site-accent);
  box-shadow: var(--site-shadow-hair);
  white-space: normal;
}
body.site .btn-sm {
  --bs-btn-padding-x: 0.875rem;
  --bs-btn-padding-y: 0.3125rem;
  --bs-btn-font-size: 0.875rem;
}
body.site .btn-lg {
  --bs-btn-padding-x: 1.5rem;
  --bs-btn-padding-y: 0.625rem;
  --bs-btn-font-size: 1rem;
}
body.site :is(.btn-primary, .btn-success) {
  --bs-btn-color: var(--site-ink);
  --bs-btn-bg: var(--site-accent);
  --bs-btn-border-color: var(--site-accent-edge);
  --bs-btn-hover-color: var(--site-ink);
  --bs-btn-hover-bg: var(--site-accent-edge);
  --bs-btn-hover-border-color: var(--site-accent-edge);
  --bs-btn-active-color: var(--site-ink);
  --bs-btn-active-bg: var(--site-accent-edge);
  --bs-btn-active-border-color: var(--site-accent-edge);
  --bs-btn-disabled-color: var(--site-ink);
  --bs-btn-disabled-bg: var(--site-accent);
  --bs-btn-disabled-border-color: var(--site-accent-edge);
}
body.site :is(.btn-outline-primary, .btn-outline-secondary) {
  --bs-btn-color: var(--site-ink);
  --bs-btn-bg: var(--site-surface);
  --bs-btn-border-color: var(--site-border-strong);
  --bs-btn-hover-color: var(--site-ink);
  --bs-btn-hover-bg: var(--site-surface-hover);
  --bs-btn-hover-border-color: var(--site-border-strong);
  --bs-btn-active-color: var(--site-ink);
  --bs-btn-active-bg: var(--site-wash);
  --bs-btn-active-border-color: var(--site-accent-edge);
  --bs-btn-font-weight: 400;
}

/* ── Формы ──────────────────────────────────────────────────────────────── */
body.site :is(.form-control, .form-select) {
  color: var(--site-ink);
  background-color: var(--site-surface);
  border-color: var(--site-border-strong);
  border-radius: var(--site-radius-input);
  padding: 0.5rem 0.75rem;
}
body.site :is(.form-control, .form-select, .form-check-input):focus {
  border-color: var(--site-accent);
  box-shadow: 0 0 0 2px var(--site-accent);
}
body.site .form-control::placeholder { color: var(--site-muted); }
body.site .form-label {
  color: var(--site-ink);
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 0.375rem;
}
body.site .form-text { color: var(--site-muted); font-size: 0.8125rem; }
body.site .form-check-input { border-color: var(--site-border-strong); }
body.site .form-check-input:checked {
  background-color: var(--site-accent);
  border-color: var(--site-accent-edge);
}
body.site .form-check-label { font-size: 0.9375rem; }

/* Уведомления: без новых цветов — белая плашка с волосяной рамкой и штрихом слева.
   Ошибка остаётся различимой: штрих тёмно-красный (#b42318, как деструктив в админке). */
body.site .alert {
  --bs-alert-bg: var(--site-surface);
  --bs-alert-color: var(--site-ink);
  --bs-alert-border-color: var(--site-border);
  --bs-alert-border-radius: var(--site-radius-card);
  border-left: 3px solid var(--site-accent-edge);
  box-shadow: var(--site-shadow-card);
}
body.site .alert-danger { border-left-color: #b42318; }
body.site .alert-warning { border-left-color: #8a4b0f; }

/* Таблицы (страница тарифов) */
body.site .table {
  --bs-table-color: var(--site-ink);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--site-border);
  margin-bottom: 0;
}
body.site .table > thead th {
  color: var(--site-muted);
  font-weight: 500;
  font-size: 0.875rem;
}
body.site .table > :not(caption) > * > * { padding: 0.875rem 1rem; }

/* ── Шапка ──────────────────────────────────────────────────────────────── */
body.site .site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(250, 250, 249, 0.92);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid var(--site-border);
}
body.site .site-header__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.5rem;
  min-height: 64px;
}
body.site .site-brand {
  color: var(--site-ink);
  font-family: var(--site-font-display);
  font-weight: 600;
  font-size: 1.0625rem;
  letter-spacing: -0.01em;
  text-decoration: none;
}
body.site .site-brand span { color: var(--site-accent-edge); }
body.site .site-menu {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 1rem;
}
body.site .site-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.25rem;
  margin: 0 auto;
}
body.site .site-nav a,
body.site .site-nav-login {
  color: var(--site-muted);
  font-size: 0.875rem;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  text-decoration: none;
}
body.site .site-nav a:hover,
body.site .site-nav-login:hover {
  color: var(--site-ink);
  background: var(--site-surface-hover);
  text-decoration: none;
}
body.site .site-header__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
body.site .site-menu-toggle {
  display: none;
  margin-left: auto;
  width: 40px;
  height: 40px;
  padding: 11px 9px;
  border: 1px solid var(--site-border);
  border-radius: 9999px;
  background: var(--site-surface);
  flex-direction: column;
  justify-content: space-between;
}
body.site .site-menu-toggle span {
  display: block;
  height: 1.5px;
  background: var(--site-ink);
  border-radius: 1px;
}

/* Bootstrap `.collapse` прячет меню всегда — на широком экране меню видно без кнопки. */
@media (min-width: 992px) {
  body.site .site-menu.collapse { display: flex !important; }
}
@media (max-width: 991.98px) {
  body.site .site-menu-toggle { display: flex; }
  body.site .site-menu {
    flex: 1 0 100%;
    flex-direction: column;
    align-items: stretch;
    padding: 0.25rem 0 1rem;
  }
  body.site .site-menu.collapse:not(.show) { display: none; }
  body.site .site-nav {
    flex-direction: column;
    margin: 0;
  }
  body.site .site-nav a { font-size: 1rem; padding: 0.5rem 0.25rem; }
  body.site .site-header__actions {
    flex-direction: column;
    align-items: stretch;
    border-top: 1px solid var(--site-border);
    padding-top: 0.75rem;
  }
  body.site .site-nav-login { font-size: 1rem; padding: 0.5rem 0.25rem; }
}

/* ── Подвал ─────────────────────────────────────────────────────────────── */
body.site .site-footer {
  flex-shrink: 0;
  border-top: 1px solid var(--site-border);
  background: var(--site-canvas);
  padding: 3rem 0 2rem;
  font-size: 0.875rem;
}
body.site .site-footer__top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2rem;
}
body.site .site-footer__requisites {
  margin: 0.75rem 0 0;
  max-width: 34ch;
  color: var(--site-muted);
}
body.site .site-footer__nav {
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
body.site .site-footer__nav a { color: var(--site-muted); }
body.site .site-footer__nav a:hover { color: var(--site-ink); }
body.site .site-footer__copy {
  margin: 2.5rem 0 0;
  color: var(--site-ash);
  font-size: 0.8125rem;
}
@media (max-width: 767.98px) {
  body.site .site-footer__top { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ── Страницы витрины (разделы, документы, формы) ───────────────────────── */
body.site .site-page {
  padding: 4rem 0 var(--site-section-gap);
}
body.site .site-page__head {
  max-width: 46rem;
  margin-bottom: 2.5rem;
}
body.site .site-page__head h1 { margin-bottom: 1rem; }
body.site .site-page--narrow .container { max-width: 36rem; }
body.site .site-page--form .container { max-width: 44rem; }
body.site .site-prose {
  max-width: 46rem;
  font-size: 1rem;
}
body.site .site-prose p { margin-bottom: 1rem; }
body.site .site-panel {
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-card);
  padding: 2rem;
}
body.site .site-panel + .site-panel { margin-top: 1.5rem; }
body.site .site-panel h2 { font-size: 1.25rem; font-weight: 500; letter-spacing: -0.017em; }
@media (max-width: 575.98px) {
  body.site .site-page { padding: 2.5rem 0 4rem; }
  body.site .site-panel { padding: 1.25rem; }
}

/* FAQ-аккордеон Bootstrap — волосяные рамки вместо панелей */
body.site .accordion {
  --bs-accordion-bg: var(--site-surface);
  --bs-accordion-color: var(--site-muted);
  --bs-accordion-border-color: var(--site-border);
  --bs-accordion-border-radius: var(--site-radius-card);
  --bs-accordion-inner-border-radius: calc(var(--site-radius-card) - 1px);
  --bs-accordion-btn-color: var(--site-ink);
  --bs-accordion-btn-bg: var(--site-surface);
  --bs-accordion-active-color: var(--site-ink);
  --bs-accordion-active-bg: var(--site-surface);
  --bs-accordion-btn-focus-box-shadow: 0 0 0 2px var(--site-accent);
  --bs-accordion-btn-padding-y: 1.125rem;
  --bs-accordion-body-padding-y: 0;
  max-width: 50rem;
  box-shadow: var(--site-shadow-card);
  border-radius: var(--site-radius-card);
}
body.site .accordion-button {
  font-family: var(--site-font-display);
  font-weight: 500;
  font-size: 1.0625rem;
}
body.site .accordion-body { padding-bottom: 1.125rem; }

/* Список новостей */
body.site .site-news {
  list-style: none;
  padding: 0;
  margin: 0;
  max-width: 46rem;
  display: grid;
  gap: 1rem;
}
body.site .site-news a.site-news__title {
  display: block;
  color: var(--site-ink);
  font-family: var(--site-font-display);
  font-weight: 500;
  font-size: 1.25rem;
  letter-spacing: -0.017em;
  margin-bottom: 0.25rem;
}

/* Результат отправки формы /demo — partial `demo_result.html` */
body.site #demo-result .alert { margin: 0; }

/* ── Главная: секции ────────────────────────────────────────────────────── */
body.site .site-section {
  padding: var(--site-section-gap) 0 0;
}
body.site .site-section--alt {
  /* Та же бумага, отделённая волосяной линией: без заливок и градиентов. */
  border-top: 1px solid var(--site-border);
  margin-top: var(--site-section-gap);
}
body.site .site-section--final { padding-bottom: var(--site-section-gap); }
body.site .site-section__head {
  max-width: 46rem;
  margin-bottom: 2.5rem;
}
body.site .site-h2 { margin-bottom: 0.875rem; }
body.site .site-lead {
  font-size: 1.0625rem;
  line-height: 1.69;
  color: var(--site-muted);
  margin: 0;
}
body.site .site-section__note {
  max-width: 50rem;
  margin: 2rem 0 0;
  color: var(--site-muted);
}
body.site .site-muted { color: var(--site-muted); font-size: 0.9375rem; }
body.site .site-narrow { max-width: 52rem; }

body.site .site-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
  margin-top: 2rem;
}
body.site .site-actions:empty { display: none; }
body.site .site-actions--center { justify-content: center; }

/* Первый экран */
body.site .site-hero { padding: 4.5rem 0 0; }
body.site .site-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: 3.5rem;
  align-items: center;
}
body.site .site-display {
  font-size: clamp(2.125rem, 1.3rem + 3vw, 3.25rem);
  line-height: 1.12;
  letter-spacing: -0.021em;
  margin: 0 0 1.25rem;
}
body.site .site-lead--hero { font-size: 1.125rem; max-width: 36rem; }
body.site .site-note {
  margin: 1rem 0 0;
  font-size: 0.875rem;
  color: var(--site-muted);
  max-width: 34rem;
}
body.site .site-facts {
  list-style: none;
  padding: 0;
  margin: 4rem 0 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-card);
  background: var(--site-surface);
  box-shadow: var(--site-shadow-card);
}
body.site .site-fact {
  padding: 1.25rem 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}
body.site .site-fact + .site-fact { border-left: 1px solid var(--site-border); }
body.site .site-fact__title {
  font-family: var(--site-font-display);
  font-size: 1.1875rem;
  line-height: 1.3;
  letter-spacing: -0.017em;
  color: var(--site-ink);
}
body.site .site-fact__body { font-size: 0.875rem; line-height: 1.5; }

/* Скриншоты: плавающий кадр первого экрана — единственная глубокая тень на странице. */
body.site .site-shot {
  margin: 0;
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-card);
  padding: 6px;
  box-shadow: var(--site-shadow-card);
  overflow: hidden;
}
body.site .site-shot img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 6px;
  /* Seline: продуктовые кадры приглушены до монохрома — цвет остаётся за CTA. */
  filter: grayscale(1) contrast(0.94);
}
body.site .site-shot--float {
  border-radius: var(--site-radius-feature);
  padding: 8px;
  border-color: transparent;
  box-shadow: var(--site-shadow-float);
}
body.site .site-shot--float img { border-radius: 10px; }

/* Иллюстрации (V-6): фон кадра подогнан к фону витрины, поэтому без рамки, тени и
   фильтра — предмет стоит прямо на «бумаге» страницы. Цвет в кадре — только cyan-акцент. */
body.site .site-art { margin: 0; }
body.site .site-art img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
body.site .site-art--wide { margin-bottom: 2rem; }
body.site .site-art--card { margin: -0.5rem -0.5rem 1.25rem; }
body.site .site-art--card img { border-radius: 6px; }

/* Сетки и карточки */
body.site .site-grid {
  display: grid;
  gap: 1.25rem;
}
body.site .site-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.site .site-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.site .site-card {
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-card);
  padding: 1.5rem;
}
body.site .site-card p { margin: 0; font-size: 0.9375rem; }
body.site .site-card .site-h3 { margin: 0 0 0.625rem; }
body.site .site-card--wide { grid-column: 1 / -1; }
body.site .site-card--outline {
  background: transparent;
  box-shadow: none;
  border-style: dashed;
  border-color: var(--site-border-strong);
}
/* «Планируется» (V-4) — карточка под текстом секции «Что на выходе». */
body.site .site-planned { margin-top: 2rem; }
body.site .site-planned .site-muted { margin-bottom: 1rem; }
body.site .site-h3 {
  font-size: 1.125rem;
  line-height: 1.35;
}

/* Шаги: номер уже в заголовке шага (CMS) — рисуем только линию-связку. */
body.site .site-steps {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
  display: grid;
  /* Четыре шага с V-4 (компоновка — третий): в ряд на главной, 2×2 на /how. */
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
body.site .site-step {
  border-top: 2px solid var(--site-ink);
  padding-top: 1.25rem;
}
body.site .site-step:first-child { border-top-color: var(--site-accent); }
body.site .site-step p { margin: 0; font-size: 0.9375rem; }
body.site .site-shots { margin-top: 0.5rem; }

/* Списки с маркерами-штрихами */
body.site .site-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.625rem;
  font-size: 0.9375rem;
  line-height: 1.55;
}
body.site .site-list > li {
  position: relative;
  padding-left: 1.5rem;
}
body.site .site-list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 0.75rem;
  height: 1.5px;
  background: var(--site-ash);
}
body.site .site-scope--1 .site-list > li::before { background: var(--site-accent); }
body.site .site-scope--3 { background: transparent; box-shadow: none; }
body.site .site-list--numbered { counter-reset: appx; margin-bottom: 1rem; }
body.site .site-list--numbered > li { counter-increment: appx; padding-left: 2rem; }
body.site .site-list--numbered > li::before {
  content: counter(appx);
  width: auto;
  height: auto;
  top: 0;
  background: none;
  color: var(--site-ink);
  font-family: var(--site-font-display);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* Текст + иллюстрации */
body.site .site-split {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 3rem;
  align-items: start;
}
body.site .site-split--reverse .site-split__media { order: -1; }
body.site .site-split__text .site-h3 { margin: 1.75rem 0 0.75rem; }
body.site .site-split__text .site-h3:first-child { margin-top: 0; }
body.site .site-split__media {
  display: grid;
  gap: 1.25rem;
}

/* Пункты с заголовком (доверие, безопасность) */
body.site .site-points { margin: 0; display: grid; gap: 1.25rem; }
body.site .site-point {
  padding-left: 1.25rem;
  border-left: 1px solid var(--site-border-strong);
}
body.site .site-point dt {
  color: var(--site-ink);
  font-family: var(--site-font-display);
  font-weight: 500;
  font-size: 1.0625rem;
  letter-spacing: -0.012em;
  margin-bottom: 0.25rem;
}
body.site .site-point dd { margin: 0; font-size: 0.9375rem; }

/* Тарифы на главной */
body.site .site-plans {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
body.site .site-plan {
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-card);
  box-shadow: var(--site-shadow-card);
  padding: 1.5rem;
}
body.site .site-plan__title {
  font-size: 1rem;
  font-weight: 500;
  color: var(--site-muted);
  margin: 0 0 0.5rem;
  font-family: var(--site-font-body);
  letter-spacing: 0;
}
body.site .site-plan__price {
  font-family: var(--site-font-display);
  font-size: 1.75rem;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--site-ink);
  margin: 0 0 1.25rem;
}
body.site .site-plan__price span {
  font-family: var(--site-font-body);
  font-size: 0.875rem;
  letter-spacing: 0;
  color: var(--site-muted);
}
body.site .site-plan__terms { margin: 0; display: grid; gap: 0.5rem; }
body.site .site-plan__terms > div {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--site-border);
  padding-top: 0.5rem;
  font-size: 0.875rem;
}
body.site .site-plan__terms dt { font-weight: 400; color: var(--site-muted); }
body.site .site-plan__terms dd { margin: 0; color: var(--site-ink); font-variant-numeric: tabular-nums; }

/* Частые вопросы: <details> без JS */
body.site .site-faq {
  border-top: 1px solid var(--site-border);
}
body.site .site-faq__item { border-bottom: 1px solid var(--site-border); }
body.site .site-faq__item summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.125rem 0;
  color: var(--site-ink);
  font-family: var(--site-font-display);
  font-weight: 500;
  font-size: 1.0625rem;
  letter-spacing: -0.012em;
}
body.site .site-faq__item summary::-webkit-details-marker { display: none; }
body.site .site-faq__item summary::after {
  content: "+";
  flex: none;
  color: var(--site-muted);
  font-weight: 400;
  font-size: 1.25rem;
  line-height: 1.2;
}
body.site .site-faq__item[open] summary::after { content: "–"; }
body.site .site-faq__item p { margin: 0 0 1.25rem; max-width: 46rem; }

/* Финальный призыв */
body.site .site-final {
  text-align: center;
  background: var(--site-surface);
  border: 1px solid var(--site-border);
  border-radius: var(--site-radius-feature);
  box-shadow: var(--site-shadow-card);
  padding: 4rem 2rem;
}
body.site .site-final .site-section__head { margin: 0 auto; }
body.site .site-final__link { margin: 1.25rem 0 0; font-size: 0.9375rem; }

/* ── Адаптив ────────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  body.site { --site-section-gap: 72px; }
  body.site .site-hero__grid,
  body.site .site-split { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  body.site .site-split--reverse .site-split__media { order: 0; }
  body.site .site-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site .site-fact:nth-child(3) { border-left: 0; }
  body.site .site-fact:nth-child(n + 3) { border-top: 1px solid var(--site-border); }
  body.site .site-grid--3,
  body.site .site-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.site .site-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  body.site { --site-section-gap: 56px; }
  body.site .container { padding-left: 1rem; padding-right: 1rem; }
  body.site .site-hero { padding-top: 2.5rem; }
  body.site .site-facts { margin-top: 2.5rem; }
  body.site .site-fact { padding: 1rem; }
  body.site .site-grid--2,
  body.site .site-grid--3,
  body.site .site-steps,
  body.site .site-plans { grid-template-columns: minmax(0, 1fr); }
  body.site .site-actions > .btn { flex: 1 1 100%; }
  body.site .site-final { padding: 2.5rem 1.25rem; }
  /* Широкий кадр 21:6 на телефоне — кроп до 16:9 вокруг точки фокуса (focus в art).
     --whole — кадр с растворёнными краями: обрезка срезала бы растворение, не кропим. */
  body.site .site-art--wide:not(.site-art--whole) img { aspect-ratio: 16 / 9; }
}

/* /how: четыре шага страницы с абзацами — сеткой 2×2, на телефоне в столбик. */
body.site .site-steps--page {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem 2.5rem;
  margin-bottom: 0;
}
@media (max-width: 575.98px) {
  body.site .site-steps--page { grid-template-columns: minmax(0, 1fr); }
}
body.site .site-steps--page .site-prose p { font-size: 0.9375rem; }

/* ── Внутренние страницы (V-3): разделы, списки, форма заявки ──────────── */
body.site .site-blocks { display: grid; gap: 3.5rem; margin-top: 3.5rem; }
body.site .site-blocks > .site-block { margin: 0; }
body.site .site-block__title {
  font-size: 1.5rem;
  line-height: 1.25;
  margin-bottom: 1rem;
}
body.site .site-panel .site-block__title { font-size: 1.25rem; }
body.site .site-more { margin: 1rem 0 0; font-size: 0.9375rem; }
body.site .site-more a { font-weight: 500; }

/* Списки в две колонки (этапы расчёта, «во всех тарифах») */
body.site .site-list--cols {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem 2.5rem;
  max-width: 64rem;
}
/* Пункт с выделенным началом: «Тепловой расчёт. Нагрузки по контурам…» */
body.site .site-list--lead strong { font-weight: 500; }

/* Пункты с заголовком — сеткой (кабинет, «остаётся за вами») */
body.site .site-points--grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem 2.5rem;
  max-width: 64rem;
}

body.site .site-card--accent { border-top: 2px solid var(--site-accent); }
/* Абзацы из `paragraphs` в карточках и шагах: у `.site-card p`/`.site-step p` главной
   отступов нет (там по одному абзацу), здесь их несколько. */
body.site :is(.site-card, .site-step) .site-prose p { font-size: 0.9375rem; margin-bottom: 0.75rem; }
body.site :is(.site-card, .site-step) .site-prose p:last-child { margin-bottom: 0; }

/* Финальный призыв внутренней страницы — компактнее главной */
body.site .site-final--page { padding: 3rem 2rem; }
body.site .site-final--page .site-lead { max-width: 40rem; margin: 0 auto; }

/* Ответ в раскрывашке FAQ — абзацы из `paragraphs` */
body.site .site-faq__answer { max-width: 46rem; }
body.site .site-faq__answer p { margin: 0 0 1rem; }
body.site .site-faq__answer p:last-child { margin-bottom: 1.25rem; }

/* /demo: слева — как проходит и что подготовить, справа — форма */
body.site .site-demo {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: 3rem;
  align-items: start;
}
body.site .site-demo .form-check-label { font-size: 0.875rem; line-height: 1.5; }

@media (max-width: 991.98px) {
  body.site .site-demo { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}
@media (max-width: 575.98px) {
  body.site .site-blocks { gap: 2.5rem; margin-top: 2.5rem; }
  body.site .site-block__title { font-size: 1.25rem; }
  body.site .site-list--cols,
  body.site .site-points--grid { grid-template-columns: minmax(0, 1fr); }
  body.site .site-final--page { padding: 2rem 1.25rem; }
}
