/* =========================
   0) Reset (минимальный)
========================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img,
svg,
video {
  max-width: 100%;
  height: auto;
  display: block;
}
input,
button,
textarea,
select {
  font: inherit;
  color: inherit;
}

/* =========================
   1) Design tokens (layout/spacing/typography)
========================= */
:root {
  /* Layout */
  --container-max: 1360px;
  --container-pad: 20px;

  /* Spacing scale */
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-8: 32px;
  --s-10: 40px;
  --s-12: 48px;
  --s-16: 64px;
  --s-20: 80px;

  /* Section paddings */
  --section-py: var(--s-16);

  /* Radii */
  --r-2: 10px;
  --r-3: 14px;
  --r-4: 18px;

  /* Shadows (мягкие, “премиальные”) */
  --shadow-1: 0 10px 26px rgba(0, 0, 0, 0.18);
  --shadow-2: 0 18px 54px rgba(0, 0, 0, 0.22);

  /* Typography */
  --ff: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans",
    "Liberation Sans", sans-serif;
  --lh: 1.5;

  /* Font sizes */
  --fz-1: 14px; /* small */
  --fz-2: 16px; /* base */
  --fz-3: 18px; /* lead */
  --fz-4: 24px; /* h3 */
  --fz-5: 32px; /* h2 */
  --fz-6: 38px; /* h1 */

  /* Controls */
  --control-h: 46px;

  /* реальная высота bottom-nav */
  --mobile-nav-h: 72px;
}

@media (min-width: 1440px) {
  :root {
    --container-max: 1400px;
  }
}

/* Адаптив: на больших экранах комфортнее */
@media (min-width: 1024px) {
  :root {
    --container-pad: 24px;
    --section-py: var(--s-20);
    --fz-6: 52px;
  }
}

/* =========================
   2) Themes (dark/light)
========================= */
:root,
html[data-theme="dark"] {
  --bg: #07080c;
  --surface: rgba(255, 255, 255, 0.06);
  --surface-2: rgba(255, 255, 255, 0.09);
  --line: rgba(255, 255, 255, 0.12);
  --txt: rgba(255, 255, 255, 0.92);
  --mut: rgba(255, 255, 255, 0.68);

  --accent: #8ff3d7;
  --accent-2: #a79cff;
}

html[data-theme="light"] {
  --bg: #f6f7fb;
  --surface: rgba(10, 12, 18, 0.04);
  --surface-2: rgba(10, 12, 18, 0.06);
  --line: rgba(10, 12, 18, 0.12);
  --txt: rgba(10, 12, 18, 0.92);
  --mut: rgba(10, 12, 18, 0.68);

  --accent: #0b6bff;
  --accent-2: #6b4dff;
}

/* =========================
   3) Base page styles
========================= */
.page {
  font-family: var(--ff);
  font-size: var(--fz-2);
  line-height: var(--lh);
  color: var(--txt);
  background: var(--bg);
}

.page__bg {
  position: fixed;
  inset: 0;
  background: radial-gradient(800px 500px at 10% 10%, rgba(143, 243, 215, 0.08), transparent 60%),
    radial-gradient(900px 600px at 85% 15%, rgba(167, 156, 255, 0.08), transparent 60%);
  pointer-events: none;
  z-index: -1;
}
html[data-theme="light"] .page__bg {
  background: radial-gradient(900px 600px at 10% 10%, rgba(11, 107, 255, 0.1), transparent 60%),
    radial-gradient(900px 600px at 85% 15%, rgba(107, 77, 255, 0.08), transparent 60%);
}

/* Skip link (accessibility) */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 10px;
  padding: 10px 14px;
  border-radius: var(--r-2);
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--txt);
}
.skip-link:focus {
  left: 10px;
}

/* Container */
.container {
  width: min(var(--container-max), 100%);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

/* Sections: без зависимости от порядка */
.section {
  padding-block: var(--section-py);
}

/* Header/Footer базово (пока скелет) */
.site-footer {
  padding-block: var(--s-10);
}

/* =========================
   4) Typography (global)
========================= */
h1,
h2,
h3 {
  margin: 0 0 var(--s-4);
  line-height: 1.12;
  letter-spacing: -0.02em;
}
h1 {
  font-size: var(--fz-6);
}
h2 {
  font-size: var(--fz-5);
}
h3 {
  font-size: var(--fz-4);
}

p {
  margin: 0 0 var(--s-4);
  color: var(--mut);
}

.lead {
  font-size: var(--fz-3);
  color: var(--txt);
  max-width: 70ch;
}

.small {
  font-size: var(--fz-1);
}
.muted {
  color: var(--mut);
}

@media (max-width: 640px) {
  h1 {
    font-size: 2em;
  }
}

/* Kicker — маленькая метка секции (временно, удобно при сборке) */
.kicker {
  display: inline-block;
  margin: 0 0 var(--s-3);
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
}

/* =========================
   5) UI primitives (buttons, inputs, cards)
========================= */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  height: var(--control-h);
  padding: 0 var(--s-6);

  border-radius: var(--r-3);
  border: 1px solid transparent;

  background: transparent;
  color: var(--txt);

  cursor: pointer;
  text-decoration: none;
  user-select: none;

  transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease,
    opacity 0.15s ease;
}

.btn:active {
  transform: translateY(1px);
}

.btn--primary {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
}
.btn--primary:hover {
  background: color-mix(in srgb, var(--accent) 24%, transparent);
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
}

.btn--secondary {
  background: var(--surface);
  border-color: var(--line);
}
.btn--secondary:hover {
  background: var(--surface-2);
  border-color: color-mix(in srgb, var(--line) 60%, transparent);
}

.btn--ghost {
  background: transparent;
  border-color: var(--line);
}
.btn--ghost:hover {
  background: var(--surface);
}

.control {
  width: 100%;
  height: var(--control-h);
  padding: 0 var(--s-5);

  border-radius: var(--r-3);
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  background: var(--surface);

  outline: none;
}
.control:focus {
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}

.card {
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow-1);
}

/* =========================
   6) Helpers (layout utilities)
========================= */
.section-head {
  display: grid;
  gap: var(--s-4);
}

.actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4);
  margin-top: var(--s-4);
}

/* Простые сетки на будущее */
.grid-2 {
  display: grid;
  gap: var(--s-8);
}
@media (min-width: 900px) {
  .grid-2 {
    grid-template-columns: 1.1fr 0.9fr;
  }
}

.grid-3 {
  display: grid;
  gap: var(--s-6);
}
@media (min-width: 900px) {
  .grid-3 {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* =========================
   Header / Navbar
========================= */

.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: color-mix(in srgb, var(--bg) 85%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--line);
}

.header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: var(--s-6);
}

/* Brand */
.brand {
  display: grid;
  gap: 2px;
  text-decoration: none;
  color: var(--txt);
}
.brand__title {
  font-weight: 600;
  letter-spacing: -0.01em;
}
.brand__subtitle {
  font-size: var(--fz-1);
  color: var(--mut);
}

/* Navigation */
.header__nav {
  justify-self: center;
}
.nav {
  display: flex;
  gap: var(--s-6);
  list-style: none;
  padding: 0;
  margin: 0;
}
.nav__link {
  text-decoration: none;
  color: var(--mut);
  font-size: var(--fz-2);
  position: relative;
}
.nav__link:hover {
  color: var(--txt);
}

/* Actions */
.header__actions {
  display: flex;
  align-items: center;
  gap: var(--s-6);
}

/* Phone */
.phone {
  display: grid;
  text-decoration: none;
  color: var(--txt);
}
.phone__label {
  font-size: var(--fz-1);
  color: var(--mut);
}
.phone__value {
  font-weight: 500;
  letter-spacing: 0.02em;
}

/* Burger (mobile) */
.burger {
  display: none;
  width: 40px;
  height: 40px;
  padding: 0;
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  cursor: pointer;
}
.burger span {
  display: block;
  width: 18px;
  height: 2px;
  margin: 4px auto;
  background: var(--txt);
}

/* =========================
   Theme toggle (header)
========================= */
.theme-toggle {
  width: 38px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  padding: 2px;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  user-select: none;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.theme-toggle__knob {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
  transform: translateX(0);
  transition: transform 0.18s ease, background 0.15s ease, border-color 0.15s ease;
}

/* Когда включена светлая тема — "ползунок" вправо */
html[data-theme="light"] .theme-toggle__knob {
  transform: translateX(16px);
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
}

/* Hover */
@media (hover: hover) and (pointer: fine) {
  .theme-toggle:hover {
    background: var(--surface-2);
    border-color: color-mix(in srgb, var(--line) 70%, transparent);
  }
}

/* Mobile: чуть компактнее */
@media (max-width: 640px) {
  .theme-toggle {
    width: 34px;
    height: 20px;
  }
  .theme-toggle__knob {
    width: 16px;
    height: 16px;
  }
  html[data-theme="light"] .theme-toggle__knob {
    transform: translateX(14px);
  }
}
@media (max-width: 640px) {
  /* делаем правый блок строго 2 колонки: телефон + тумблер */
  .header__actions {
    display: grid;
    grid-template-columns: auto auto;
    align-items: center;
    justify-items: end;
    column-gap: 10px;
    row-gap: 8px;
  }

  /* телефон в первой строке слева (внутри actions) */
  .header__contact {
    grid-column: 1;
    grid-row: 1;
  }

  /* тумблер в первой строке справа */
  .theme-switch {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
  }

  /* CTA — второй ряд, на всю ширину блока actions */
  .header__actions > .btn {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: end; /* если хотите справа */
    /* если хотите на всю ширину, замените на: justify-self: stretch; */
  }

  /* чтобы “Тема” на мобилке не мешала */
  .theme-switch__label {
    display: none;
  }
}

/* =========================
   Header responsive
========================= */
/* Контейнер */
.theme-switch {
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Текст "Тема" — тот же стиль, что у телефона */
.theme-switch__label {
  font-size: var(--fz-1);
  color: var(--mut);
  line-height: 1;
}

/* ❌ На мобилке скрываем текст */
@media (max-width: 1023px) {
  .theme-switch__label {
    display: none;
  }
}

@media (max-width: 1023px) {
  .header {
    grid-template-columns: auto auto;
  }

  .header__nav {
    display: none;
  }

  .header__actions {
    gap: var(--s-4);
  }

  .burger {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
  }
}

@media (max-width: 640px) {
  .phone {
    display: none;
  }
}

.nav__link.is-active {
  color: var(--txt);
}
.nav__link.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -10px;
  height: 2px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--accent) 60%, transparent);
}
/* =========================
   Header: mobile 2-line layout (brand left, phone+cta right)
========================= */
@media (max-width: 640px) {
  /* убираем возможный огромный padding от общих правил */
  .site-header {
    padding-block: 0 !important;
  }

  /* тонкая панель */
  .header {
    grid-template-columns: 1fr auto;
    align-items: start; /* важное: выравнивание по верху */
    gap: 12px;
    padding: 8px 0; /* ещё уже */
  }

  /* меню/бургер не показываем */
  .header__nav {
    display: none !important;
  }
  .burger {
    display: none !important;
  }

  /* БРЕНД: всегда короткий — не режем */
  .brand {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  .brand__title {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap; /* короткий — помещается */
    overflow: visible;
    text-overflow: clip;
    max-width: none;
  }

  .brand__subtitle {
    font-size: 12px;
    line-height: 1.2;
    color: var(--mut);
    white-space: nowrap;
  }

  /* СПРАВА: телефон сверху, кнопка снизу, всё по правому краю */
  .header__actions {
    display: grid;
    gap: 6px;
    justify-items: end;
    align-content: start;
  }

  /* показываем телефон, но без метки */
  .header__contact {
    display: flex;
    gap: 10px;
    align-items: center;
  }

  .phone {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
    text-decoration: none;
    color: var(--txt);
    line-height: 1.15; /* синхронизируем baseline */
  }

  .phone__label {
    display: none;
  }

  .phone__value {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  /* CTA в шапке: компактная, “тонкая”, аккуратная */
  .header__actions .btn.btn--primary {
    height: 34px; /* ещё ниже */
    padding: 0 12px;
    border-radius: 12px; /* аккуратнее */
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0;
    white-space: nowrap;

    /* делаем “легче”, чем обычный primary */
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--accent) 38%, transparent);
  }

  .header__actions .btn.btn--primary:hover {
    background: color-mix(in srgb, var(--accent) 18%, transparent);
    border-color: color-mix(in srgb, var(--accent) 50%, transparent);
  }
  /* тоньше панель */
  .header {
    grid-template-columns: 1fr auto;
    align-items: center; /* ключ: центрируем бренд по высоте */
    gap: 12px;
    padding: 8px 0;
  }

  /* Бренд слева — компактная двухстрочная типографика */
  .brand {
    display: grid;
    gap: 1px;
    min-width: 0;
  }

  .brand__title {
    font-size: 14px;
    font-weight: 750;
    line-height: 1.05; /* компактнее */
    white-space: nowrap;
  }

  .brand__subtitle {
    font-size: 11px; /* меньше */
    line-height: 1.05;
    color: var(--mut);
    white-space: nowrap;
  }

  /* Справа — телефон+кнопка, блок сам компактный */
  .header__actions {
    display: grid;
    gap: 6px;
    justify-items: end;
  }

  .phone {
    line-height: 1; /* чтобы не поднимало блок */
  }

  .phone__value {
    font-size: 13px;
    font-weight: 750;
    letter-spacing: 0.01em;
    white-space: nowrap;
  }

  /* MICRO CTA: ещё меньше и аккуратнее, но явно кнопка */
  .header__actions .btn.btn--primary {
    height: 30px; /* меньше */
    padding: 0 10px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0;

    border: 1px solid color-mix(in srgb, var(--accent) 45%, transparent);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }

  .header__actions .btn.btn--primary:hover {
    background: color-mix(in srgb, var(--accent) 14%, transparent);
    border-color: color-mix(in srgb, var(--accent) 60%, transparent);
  }

  .header__actions .btn.btn--primary:active {
    transform: translateY(1px);
  }
}

/* =========================
   Hero
========================= */

.hero {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

/* 2 колонки на десктопе */
@media (min-width: 1024px) {
  .hero {
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--s-12);
  }
}

.hero__kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 var(--s-4);
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
}

.hero__title {
  margin: 0 0 var(--s-5);
  max-width: 24ch;
}

.hero__lead {
  margin: 0 0 var(--s-6);
  max-width: 70ch;
  font-size: var(--fz-3);
  color: var(--mut);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4);
  margin-bottom: var(--s-6);
}

/* Points list */
.hero__points {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--s-8);
  display: grid;
  gap: var(--s-4);
  max-width: 70ch;
}

.hero-point {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 12px;
  align-items: start;
}

.hero-point__icon {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  background: color-mix(in srgb, var(--accent) 18%, transparent);
}

.hero-point__text {
  color: var(--mut);
}

/* Trust metrics */
.hero__trust {
  display: grid;
  gap: var(--s-4);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.metric {
  padding: var(--s-5);
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: var(--surface);
}

.metric__value {
  font-weight: 600;
  letter-spacing: -0.01em;
}

.metric__label {
  margin-top: 6px;
  font-size: var(--fz-1);
  color: var(--mut);
}

/* Aside card */
.hero__aside {
  align-self: start;
}

.hero-card {
  padding: var(--s-8);
}

.hero-card__title {
  margin: 0 0 var(--s-3);
}

.hero-card__text {
  margin: 0 0 var(--s-6);
  color: var(--mut);
}

.form {
  display: grid;
  gap: var(--s-5);
}

.form__row {
  display: grid;
  gap: 8px;
}

.label {
  font-size: var(--fz-1);
  color: var(--mut);
}

.form__submit {
  width: 100%;
}

.form__note {
  margin: 0;
}

/* Variant B: accent look */
.hero--B {
  border-radius: calc(var(--r-4) + 6px);
  border: 1px solid var(--line);
  background: radial-gradient(
      900px 500px at 10% 15%,
      color-mix(in srgb, var(--accent) 14%, transparent),
      transparent 60%
    ),
    radial-gradient(
      900px 500px at 90% 10%,
      color-mix(in srgb, var(--accent-2) 12%, transparent),
      transparent 60%
    ),
    var(--surface);
  padding: var(--s-10);
}

@media (min-width: 1024px) {
  .hero--B {
    grid-template-columns: 1.1fr 0.9fr;
  }
}

.hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-4);
}

.badge {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
}

/* Panel */
.panel {
  padding: var(--s-8);
}

.panel__title {
  margin: 0 0 var(--s-4);
}

.panel__list {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--s-4);
  display: grid;
  gap: var(--s-3);
}

.panel__link {
  display: block;
  padding: 10px 12px;
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  text-decoration: none;
}

.panel__link:hover {
  background: var(--surface-2);
  border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
}

/* Mobile: panel ниже */
.hero__panel {
  align-self: start;
}

/* Smaller screens adjustments */
@media (max-width: 640px) {
  .hero__trust {
    grid-template-columns: 1fr;
  }

  .hero-card {
    padding: var(--s-6);
  }

  .hero--B {
    padding: var(--s-6);
  }
}
/* =========================
   Section intro (универсальный паттерн для многих блоков)
========================= */

.section-intro {
  display: grid;
  gap: var(--s-4);
  margin-bottom: var(--s-10);
  max-width: 80ch;
}

.section-title {
  margin: 0;
}

.section-text {
  margin: 0;
  color: var(--mut);
  font-size: var(--fz-3);
}

.section {
  scroll-margin-top: var(--header-h, 0px);
  scroll-margin-bottom: var(--mobile-nav-h, 0px);
}

/* =========================
   Benefits
========================= */

.benefits {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .benefits {
    grid-template-columns: 1.3fr 0.7fr;
    gap: var(--s-12);
  }
}

.benefits__grid {
  display: grid;
  gap: var(--s-6);
}

.benefits__grid,
.benefit,
.facts,
.benefits__aside {
  min-width: 0;
}

.benefit__title,
.benefit__text,
.fact__desc {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Авто-колонки под любое количество карточек */
@media (min-width: 720px) {
  .benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1200px) {
  .benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.benefit {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-4);
}

.benefit__icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  background: color-mix(in srgb, var(--accent) 16%, transparent);
}

.benefit__title {
  margin: 0;
}

.benefit__text {
  margin: 0;
  color: var(--mut);
}

/* Aside facts */
.facts {
  padding: var(--s-8);
}

.facts__title {
  margin: 0 0 var(--s-5);
}

.facts__list {
  margin: 0 0 var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.fact {
  display: grid;
  gap: 6px;
  padding: var(--s-4);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
}

.fact__term {
  margin: 0;
  font-size: var(--fz-1);
  color: var(--mut);
}

.fact__desc {
  margin: 0;
  color: var(--txt);
}

.facts__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-4);
  margin-bottom: var(--s-4);
}

.facts__note {
  margin: 0;
}

/* Mobile tightening */
@media (max-width: 640px) {
  .benefit,
  .facts {
    padding: var(--s-6);
  }

  .section-intro {
    margin-bottom: var(--s-8);
  }
}
/* =========================
   Third: Text + Form
========================= */

.lead-block {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .lead-block {
    grid-template-columns: 1.15fr 0.85fr;
    gap: var(--s-12);
  }
}

.lead-text {
  padding: var(--s-8);
}

.lead-text__title {
  margin: 0 0 var(--s-6);
}

.steps-list {
  margin: 0;
  padding-left: 20px;
  display: grid;
  gap: var(--s-4);
  color: var(--mut);
}

.steps-list__item {
  display: grid;
  gap: 6px;
}

.steps-list__strong {
  color: var(--txt);
  font-weight: 600;
}

.steps-list__muted {
  color: var(--mut);
}

.lead-text__footer {
  margin-top: var(--s-6);
  padding-top: var(--s-6);
  border-top: 1px solid var(--line);
  display: grid;
  gap: var(--s-4);
}

.lead-text__note {
  margin: 0;
}

.lead-text__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.chip {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
}

/* Form card */
.lead-form {
  padding: var(--s-8);
}

.lead-form__title {
  margin: 0 0 var(--s-3);
}

.lead-form__text {
  margin: 0 0 var(--s-6);
  color: var(--mut);
}

.fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}

/* visually-hidden */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.control--textarea {
  height: auto;
  padding: var(--s-4) var(--s-5);
  resize: vertical;
}

.form__actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-2);
}

@media (min-width: 520px) {
  .form__actions {
    grid-template-columns: 1fr 1fr;
  }
}

.form__alt {
  width: 100%;
}

/* mini card */
.lead-mini {
  margin-top: var(--s-6);
  padding: var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.lead-mini__row {
  display: flex;
  justify-content: space-between;
  gap: var(--s-6);
  padding: var(--s-4);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
}

.lead-mini__label {
  color: var(--mut);
  font-size: var(--fz-1);
}

.lead-mini__value {
  color: var(--txt);
  font-weight: 500;
}

/* Mobile tightening */
@media (max-width: 640px) {
  .lead-text,
  .lead-form {
    padding: var(--s-6);
  }
}
/* =========================
   Fourth: Steps / How we help
========================= */

.steps {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .steps {
    grid-template-columns: 1.25fr 0.75fr;
    gap: var(--s-12);
  }
}

/* Grid of step cards */
.steps__grid {
  display: grid;
  gap: var(--s-6);
}

@media (min-width: 720px) {
  .steps__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.step {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-4);
}

.step__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.step__icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 55%, transparent);
  background: color-mix(in srgb, var(--accent-2) 14%, transparent);
}

.step__num {
  font-size: var(--fz-1);
  color: var(--mut);
  letter-spacing: 0.12em;
}

.step__title {
  margin: 0;
}

.step__text {
  margin: 0;
  color: var(--mut);
}

.step__bullets {
  margin: 0;
  padding-left: 18px;
  color: var(--mut);
  display: grid;
  gap: 8px;
}

/* Aside */
.steps-note {
  padding: var(--s-8);
}

.steps-note__title {
  margin: 0 0 var(--s-6);
}

.checks {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.check {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 12px;
  align-items: start;
  padding: var(--s-4);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
}

.check__mark {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border-radius: 6px;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  background: color-mix(in srgb, var(--accent) 18%, transparent);
}

.steps-note__actions {
  display: grid;
  gap: var(--s-4);
  margin-bottom: var(--s-4);
}

@media (min-width: 520px) {
  .steps-note__actions {
    grid-template-columns: 1fr 1fr;
  }
}

.steps-note__foot {
  margin: 0;
}

/* Mobile tightening */
@media (max-width: 640px) {
  .step,
  .steps-note {
    padding: var(--s-6);
  }
}

/* =========================
   TEAM XL (big photos, premium)
========================= */
.teamxl__layout {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .teamxl__layout {
    grid-template-columns: 1.25fr 0.75fr;
    gap: var(--s-12);
  }
}

/* Grid of big cards */
.teamxl__grid {
  display: grid;
  gap: var(--s-8);
  min-width: 0;
}

/* 1 col on phones, 2 cols on wide screens */
@media (min-width: 900px) {
  .teamxl__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Card */
.teamxl-card {
  border-radius: calc(var(--r-4) + 6px);
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  box-shadow: var(--shadow-1);
  overflow: hidden;
  min-width: 0;
}

html[data-theme="light"] .teamxl-card {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

/* Media area */
.teamxl-card__media {
  position: relative;
  background: radial-gradient(
      900px 520px at 15% 15%,
      color-mix(in srgb, var(--accent) 14%, transparent),
      transparent 60%
    ),
    radial-gradient(
      900px 520px at 85% 10%,
      color-mix(in srgb, var(--accent-2) 12%, transparent),
      transparent 60%
    ),
    color-mix(in srgb, var(--bg) 74%, white 8%);
}

.teamxl-card__img {
  width: 100%;
  aspect-ratio: 16 / 11; /* крупное фото, “журнальное” */
  display: block;
  object-fit: cover;
  object-position: 50% 18%;
  filter: contrast(1.03) saturate(1.02);
}

@media (max-width: 640px) {
  .teamxl-card__img {
    aspect-ratio: 16 / 12;
  }
}

/* subtle overlay for readability */
.teamxl-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.08), transparent 35%, rgba(0, 0, 0, 0.22)),
    radial-gradient(120% 90% at 50% 20%, transparent 55%, rgba(0, 0, 0, 0.28) 100%);
  pointer-events: none;
}

/* Badge */
.teamxl-card__badge {
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, var(--bg) 72%, transparent);
  backdrop-filter: blur(10px);
  font-size: 12px;
  color: color-mix(in srgb, var(--txt) 85%, transparent);
}

.teamxl-card__badge--alt {
  border-color: color-mix(in srgb, var(--accent-2) 30%, transparent);
}

/* Body */
.teamxl-card__body {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-5);
  min-width: 0;
}

@media (max-width: 640px) {
  .teamxl-card__body {
    padding: var(--s-6);
  }
}

.teamxl-card__name {
  margin: 0;
  font-size: var(--fz-4);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.teamxl-card__role {
  margin: 6px 0 0;
}

/* Stats row */
.teamxl-card__meta {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-4);
}

.teamxl-meta {
  padding: 12px 12px;
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  display: grid;
  gap: 4px;
}

.teamxl-meta__k {
  font-weight: 850;
  color: var(--txt);
  letter-spacing: -0.01em;
}
.teamxl-meta__v {
  font-size: var(--fz-1);
  color: var(--mut);
}

/* Description */
.teamxl-card__desc {
  margin: 0;
  color: var(--mut);
  overflow-wrap: anywhere;
}

/* Tags */
.teamxl-card__tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.teamxl-tag {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
  color: var(--txt);
  font-size: var(--fz-1);
}

/* Actions */
.teamxl-card__actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .teamxl-card__actions {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.teamxl-card__actions .btn {
  width: 100%;
  min-width: 0;
}

/* Aside */
.teamxl-note {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

html[data-theme="light"] .teamxl-note {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.teamxl-note__title {
  margin: 0 0 var(--s-4);
}

.teamxl-note__text {
  margin: 0 0 var(--s-6);
  color: var(--mut);
}

.teamxl-note__actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

@media (min-width: 520px) {
  .teamxl-note__actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile: 1 column cards, bigger taps */
@media (max-width: 899px) {
  .teamxl__grid {
    grid-template-columns: 1fr;
  }
  .teamxl-card__actions {
    grid-template-columns: 1fr;
  }
  .teamxl-card__meta {
    grid-template-columns: 1fr;
  }
}

/* =========================
   TEAM XL v2 (top note + 2-col cards)
========================= */

.teamxl2 {
  --teamxl2-img-ratio: 16 / 10; /* можно 16/11, если хотите выше */
}

/* TOP block */
.teamxl2-top {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-6);
  margin-bottom: var(--s-10);
  min-width: 0;
}

@media (min-width: 900px) {
  .teamxl2-top {
    grid-template-columns: 1fr 1.2fr auto;
    align-items: start;
    column-gap: var(--s-10);
  }
}

.teamxl2-top__main {
  min-width: 0;
}
.teamxl2-top__title {
  margin: 0 0 var(--s-3);
}
.teamxl2-top__text {
  margin: 0;
  max-width: 70ch;
}

.teamxl2-top__checks {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

.teamxl2-top__actions {
  display: grid;
  gap: var(--s-4);
  align-content: start;
}
@media (min-width: 520px) {
  .teamxl2-top__actions {
    min-width: 220px;
  }
  .teamxl2-top__actions .btn {
    width: 100%;
  }
}

/* GRID */
.teamxl2-grid {
  display: grid;
  gap: var(--s-8);
  min-width: 0;
}

@media (min-width: 900px) {
  .teamxl2-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* CARD */
.teamxl2-card {
  overflow: hidden;
  min-width: 0;
  display: grid;
}

.teamxl2-card__media {
  position: relative;
  background: color-mix(in srgb, var(--bg) 72%, white 8%);
}

.teamxl2-card__img {
  width: 100%;
  aspect-ratio: var(--teamxl2-img-ratio);
  display: block;
  object-fit: cover;
  object-position: 50% 18%;
}

.teamxl2-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.06), transparent 35%, rgba(0, 0, 0, 0.22));
  pointer-events: none;
}

.teamxl2-card__badge {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter: blur(10px);
  font-size: 12px;
  color: color-mix(in srgb, var(--txt) 85%, transparent);
}
.teamxl2-card__badge--alt {
  border-color: color-mix(in srgb, var(--accent-2) 30%, transparent);
}

/* BODY */
.teamxl2-card__body {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-5);
  min-width: 0;
}

@media (max-width: 640px) {
  .teamxl2-card__body {
    padding: var(--s-6);
  }
}

/* Text overflow protection */
.teamxl2-card__name,
.teamxl2-card__role,
.teamxl2-card__desc {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.teamxl2-card__name {
  margin: 0;
  line-height: 1.1;
}

.teamxl2-card__role {
  margin: 0;
}
.teamxl2-card__desc {
  margin: 0;
}

/* METRICS: no overflow */
.teamxl2-metrics {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--s-4);
  min-width: 0;
}
.teamxl2-metric {
  padding: 12px;
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  min-width: 0;

  display: grid;
  gap: 4px;
}
.teamxl2-metric b {
  font-weight: 800;
  letter-spacing: -0.01em;
}
.teamxl2-metric span {
  font-size: var(--fz-1);
}

/* TAGS */
.teamxl2-tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  min-width: 0;
}
.teamxl2-tag {
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
  font-size: var(--fz-1);
  min-width: 0;
}

/* ACTIONS: never overflow */
.teamxl2-actions {
  display: grid;
  gap: var(--s-4);
  min-width: 0;
}

@media (min-width: 520px) {
  .teamxl2-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.teamxl2-actions .btn {
  width: 100%;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Mobile: more compact */
@media (max-width: 899px) {
  .teamxl2-metrics {
    grid-template-columns: 1fr;
  }
  .teamxl2-actions {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .teamxl2-metric {
    display: flex;
    gap: 4px;
    justify-content: space-around;
  }
}

/* =========================
   Team (FIXED: no "see-through", stable responsive)
========================= */

/* Общая раскладка секции: контент + aside */
.team {
  display: grid;
  gap: var(--s-10);
  align-items: start;
  isolation: isolate; /* важно: изолируем смешивание слоёв */
}

@media (min-width: 1024px) {
  .team {
    grid-template-columns: 1.25fr 0.75fr;
    gap: var(--s-12);
  }
}

/* Сетка карточек сотрудников */
.team__grid {
  display: grid;
  gap: var(--s-6);
  min-width: 0;
}

/* 1 колонка на телефонах */
@media (max-width: 719px) {
  .team__grid {
    grid-template-columns: 1fr;
  }
}

/* 2 колонки на планшетах/десктопе */
@media (min-width: 720px) {
  .team__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/*
  ВАЖНО:
  3 колонки при наличии aside почти всегда выглядят тесно.
  Если когда-нибудь захотите 3 — делайте только если aside убирается,
  либо при очень широких экранах и больших контейнерах.
*/

/* ---------- Ключевой FIX: непрозрачный фон карточек в Team ---------- */
/* Полупрозрачный --surface даёт "просвет" и кажется что карточки наезжают. */
.team .person.card,
.team .team-note.card {
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
  box-shadow: var(--shadow-1);
}

/* Для светлой темы делаем наоборот — плотная белая поверхность */
html[data-theme="light"] .team .person.card,
html[data-theme="light"] .team .team-note.card {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
}

/* Карточка сотрудника */
.person {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-5);
  min-width: 0;
  position: relative;
}

/* Верх карточки: фото + мета */
.person__top {
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: var(--s-4);
  align-items: center;
  min-width: 0;
}

.person__meta {
  min-width: 0;
}

/* Фото */
.person__photo {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: radial-gradient(
      120px 80px at 30% 20%,
      color-mix(in srgb, var(--accent) 14%, transparent),
      transparent 60%
    ),
    radial-gradient(
      120px 80px at 70% 80%,
      color-mix(in srgb, var(--accent-2) 12%, transparent),
      transparent 60%
    ),
    color-mix(in srgb, var(--bg) 65%, white 6%); /* плотная подложка */
}

/* Если фото нет — аккуратная заглушка */
.person__photo--empty {
  background: color-mix(in srgb, var(--bg) 80%, white 6%);
  position: relative;
}
.person__photo--empty::after {
  content: "нет фото";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--mut);
  font-size: var(--fz-1);
  letter-spacing: 0.04em;
}

/* Тексты: защита от разрыва сетки */
.person__name,
.person__role,
.person__exp,
.person__text {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.person__name {
  margin: 0;
  font-size: var(--fz-4);
  line-height: 1.15;
}

.person__role {
  margin: 6px 0 0;
  color: var(--txt);
}

.person__exp {
  margin: 6px 0 0;
  font-size: var(--fz-1);
  color: var(--mut);
}

/* Теги */
.person__tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.tag {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
  color: var(--txt);
  font-size: var(--fz-1);
}

/* Описание */
.person__text {
  margin: 0;
  color: var(--mut);
}

/* Кнопки */
.person__actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .person__actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* Никогда не даём кнопкам раздувать карточку */
.person__actions .btn {
  width: 100%;
  min-width: 0;
  text-align: center;
}

/* Документы */
.person__docs {
  padding-top: var(--s-4);
  border-top: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

.doc-link {
  color: var(--txt);
  text-decoration: none;
  border-bottom: 1px dashed color-mix(in srgb, var(--txt) 35%, transparent);
}
.doc-link:hover {
  border-bottom-color: color-mix(in srgb, var(--accent) 45%, transparent);
}

/* Aside */
.team-note {
  padding: var(--s-8);
  min-width: 0;
}

.team-note__title {
  margin: 0 0 var(--s-4);
}

.team-note__text {
  margin: 0 0 var(--s-6);
  color: var(--mut);
}

.team-note__actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

@media (min-width: 520px) {
  .team-note__actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile tightening */
@media (max-width: 640px) {
  .person,
  .team-note {
    padding: var(--s-6);
  }

  .person__top {
    grid-template-columns: 56px 1fr;
  }

  .person__photo {
    width: 56px;
    height: 56px;
    border-radius: 16px;
  }
}
/* =========================
   Services / Directions
========================= */

.services {
  display: grid;
  gap: var(--s-8);
}

/* Controls (заглушка под фильтры) */
.services__controls {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.pill {
  display: inline-flex;
  align-items: center;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
  cursor: pointer;
  user-select: none;
}
.pill:hover {
  background: var(--surface-2);
}
.pill.is-active {
  border-color: color-mix(in srgb, var(--accent) 45%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}

/* Cards grid */
.services__grid {
  display: grid;
  gap: var(--s-6);
  min-width: 0;
}

@media (min-width: 720px) {
  .services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1200px) {
  .services__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Service card */
.service {
  padding: var(--s-8);
  display: grid;
  gap: var(--s-5);
  min-width: 0;
}

.service__head {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: var(--s-4);
  align-items: start;
  min-width: 0;
}

.service__icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}

.service__head-text {
  min-width: 0;
}

.service__title {
  margin: 0;
  line-height: 1.15;
}

.service__meta {
  margin: 6px 0 0;
  color: var(--mut);
  font-size: var(--fz-1);
}

.service__desc {
  margin: 0;
  color: var(--mut);
}

.service__tags {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

/* Footer: price + actions */
.service__footer {
  display: grid;
  gap: var(--s-4);
  padding-top: var(--s-5);
  border-top: 1px solid var(--line);
}

.service__price {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}
.price-label {
  color: var(--mut);
  font-size: var(--fz-1);
}
.price-value {
  color: var(--txt);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.service__price--empty .price-value {
  font-weight: 500;
  color: var(--txt);
  opacity: 0.9;
}

.service__actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .service__actions {
    grid-template-columns: 1fr 1fr;
  }
}

.service__actions .btn {
  width: 100%;
  min-width: 0;
}

/* CTA block under grid */
.services__cta {
  padding: var(--s-8);
}

.services-cta {
  display: grid;
  gap: var(--s-6);
  align-items: center;
}

@media (min-width: 900px) {
  .services-cta {
    grid-template-columns: 1fr auto;
  }
}

.services-cta__title {
  margin: 0 0 var(--s-3);
}

.services-cta__desc {
  margin: 0;
  color: var(--mut);
}

.services-cta__actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .services-cta__actions {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 640px) {
  .service,
  .services__cta {
    padding: var(--s-6);
  }
}

/* =========================
   Price list (replaces table)
========================= */

.price-list {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-2);
}

.price-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--s-6);
  align-items: start;

  padding: var(--s-5);
  border-radius: var(--r-4);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: color-mix(in srgb, var(--bg) 74%, white 8%);
}

.price-item__main {
  min-width: 0;
}

.price-item__title {
  margin: 0;
  font-size: var(--fz-3);
  line-height: 1.2;
}

.price-item__desc {
  margin: 8px 0 0;
  color: var(--mut);
  line-height: var(--lh);
  overflow-wrap: anywhere;
}

.price-item__side {
  text-align: right;
  white-space: nowrap;
  padding-top: 2px;
}

.price-item__from {
  font-size: var(--fz-1);
}

.price-item__value {
  font-size: var(--fz-4);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin-top: 4px;
}

/* Hover (desktop) */
@media (hover: hover) and (pointer: fine) {
  .price-item:hover {
    border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
    background: color-mix(in srgb, var(--bg) 70%, white 10%);
  }
}

/* Mobile: stack price below for readability */
@media (max-width: 640px) {
  .price-item {
    grid-template-columns: 1fr;
    gap: var(--s-4);
  }
  .price-item__side {
    text-align: left;
    display: flex;
    align-items: baseline;
    gap: 10px;
  }
  .price-item__value {
    font-size: var(--fz-3);
    margin-top: 0;
  }
}

/* =========================
   Price table - не используется 
========================= */

.price {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .price {
    grid-template-columns: 1.35fr 0.65fr;
    gap: var(--s-12);
  }
}

.price__table {
  padding: var(--s-8);
  min-width: 0;
}

.price__table-head {
  display: grid;
  gap: var(--s-6);
  align-items: center;
  margin-bottom: var(--s-6);
}

@media (min-width: 900px) {
  .price__table-head {
    grid-template-columns: 1fr auto;
  }
}

.price__title {
  margin: 0;
}

.price__actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .price__actions {
    grid-template-columns: 1fr 1fr;
  }
}

.price__actions .btn {
  width: 100%;
  min-width: 0;
}

/* Table wrapper: горизонтальный скролл только внутри */
.table-wrap {
  overflow-x: auto;
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 74%, white 8%);
}

/* Семантическая таблица */
.table {
  width: 100%;
  border-collapse: collapse;
  min-width: 760px; /* чтобы колонки не разваливались */
}

.table thead th {
  text-align: left;
  font-size: var(--fz-1);
  color: var(--mut);
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: var(--s-4) var(--s-5);
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 70%, white 10%);
}

.table tbody td {
  padding: var(--s-4) var(--s-5);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  color: var(--txt);
  vertical-align: top;
}

.table tbody tr:hover td {
  background: color-mix(in srgb, var(--surface) 70%, transparent);
}

.table__right {
  text-align: right;
  white-space: nowrap;
}

.price__note {
  margin: var(--s-5) 0 0;
}

/* Aside info */
.price-info {
  padding: var(--s-8);
  min-width: 0;
}

.price-info__title {
  margin: 0 0 var(--s-4);
}

.price-info__text {
  margin: 0 0 var(--s-6);
  color: var(--mut);
}

.price-info__actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

@media (min-width: 520px) {
  .price-info__actions {
    grid-template-columns: 1fr 1fr;
  }
}

.price-info__actions .btn {
  width: 100%;
}

.price-info__foot {
  margin: var(--s-4) 0 0;
}

/* Mobile tightening */
@media (max-width: 640px) {
  .price__table,
  .price-info {
    padding: var(--s-6);
  }
}
/* =========================
   Quiz (container for future widget)
========================= */

.quiz {
  display: grid;
  gap: var(--s-8);
}

.quiz__layout {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .quiz__layout {
    grid-template-columns: 1.3fr 0.7fr;
    gap: var(--s-12);
  }
}

/* Widget card */
.quiz__widget {
  padding: var(--s-8);
  min-width: 0;
}

.quiz__head {
  display: grid;
  gap: var(--s-3);
  margin-bottom: var(--s-6);
}

.quiz__title {
  margin: 0;
}

.quiz__meta {
  margin: 0;
  color: var(--mut);
}

/* Mount */
.quiz__mount {
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 76%, white 8%);
  padding: var(--s-6);
  min-height: 260px;
  position: relative;
  overflow: hidden;
}

/* Skeleton */
.quiz__skeleton {
  display: grid;
  gap: var(--s-4);
  opacity: 0.9;
}

.sk-line {
  height: 12px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface-2) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
.sk-line--w60 {
  width: 60%;
}
.sk-line--w80 {
  width: 80%;
}
.sk-line--w90 {
  width: 90%;
}

.sk-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-2);
}

.sk-pill {
  width: 110px;
  height: 34px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface-2) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}

.sk-actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-4);
}

@media (min-width: 520px) {
  .sk-actions {
    grid-template-columns: 1fr 1fr;
  }
}

.sk-btn {
  height: 46px;
  border-radius: var(--r-3);
  background: color-mix(in srgb, var(--surface-2) 90%, transparent);
  border: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}

/* Fallback */
.quiz__fallback {
  margin-top: var(--s-6);
  padding-top: var(--s-6);
  border-top: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  display: grid;
  gap: var(--s-4);
}

.quiz__fallback-actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .quiz__fallback-actions {
    grid-template-columns: 1fr 1fr;
  }
}

.quiz__fallback-actions .btn {
  width: 100%;
}

/* Aside note */
.quiz-note {
  padding: var(--s-8);
  min-width: 0;
}

.quiz-note__title {
  margin: 0 0 var(--s-6);
}

.quiz-note__actions {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

@media (min-width: 520px) {
  .quiz-note__actions {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mono helper */
.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
    "Courier New", monospace;
  font-size: 0.95em;
  color: var(--txt);
}

/* Mobile tightening */
@media (max-width: 640px) {
  .quiz__widget,
  .quiz-note {
    padding: var(--s-6);
  }
}
/* =========================
   Quiz Vue overrides (fits landing tokens/themes)
   Scope: only inside .section--quiz
========================= */

.section--quiz .quiz-shell {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

html[data-theme="light"] .section--quiz .quiz-shell {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

/* Внутренний контейнер компонента */
.section--quiz .quiz__container {
  min-width: 0;
  width: 100%;
  display: grid;
  gap: var(--s-6);
}

/* Экран квиза (start/step/finish) */
.section--quiz .quiz__screen {
  min-width: 0;
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 76%, white 8%);
  padding: var(--s-8);
}

/* Заголовок и верх */
.section--quiz .quiz__top h2 {
  margin: 0 0 var(--s-4);
  font-size: var(--fz-5);
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: var(--txt);
}

.section--quiz .quiz__cart h3 {
  margin: 0 0 var(--s-3);
  font-size: var(--fz-4);
  color: var(--txt);
}

.section--quiz .quiz__cart p,
.section--quiz .quiz__cart__q {
  margin: 0;
  color: var(--mut);
  font-size: var(--fz-3);
  line-height: var(--lh);
}

/* Блок ответов */
.section--quiz .quiz__res {
  margin-top: var(--s-6);
}

/* Варианты выбора (radio/checkbox) как карточки/пилюли */
.section--quiz .quiz__res__label_box,
.section--quiz .quiz__res__label_box_text {
  display: grid;
  gap: var(--s-4);
}

/* На широких экранах — 2 колонки, чтобы не “тянуть” вниз */
@media (min-width: 900px) {
  .section--quiz .quiz__res__label_box {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Кликабельная “плашка ответа” */
.section--quiz .quiz__res__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);

  padding: var(--s-5);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
  cursor: pointer;
  user-select: none;

  transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
}

.section--quiz .quiz__res__label:hover {
  background: color-mix(in srgb, var(--bg) 66%, white 10%);
  border-color: color-mix(in srgb, var(--accent) 30%, var(--line));
}

.section--quiz .quiz__res__label_on {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}

.section--quiz .quiz__res__item {
  margin: 0;
  color: var(--txt);
  font-size: var(--fz-2);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

/* Текстовые поля шага (type=text) */
.section--quiz .quiz__res__label_box__element_text {
  display: grid;
  gap: 8px;
}

.section--quiz .quiz__res__text {
  margin: 0;
  color: var(--mut);
  font-size: var(--fz-1);
}

/* input/select/textarea — приводим к общим control */
.section--quiz .quiz__res__input,
.section--quiz select.quiz__res__input,
.section--quiz textarea.quiz__res__input {
  width: 100%;
  min-width: 0;

  border-radius: var(--r-3);
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  background: color-mix(in srgb, var(--bg) 72%, white 6%);
  color: var(--txt);

  outline: none;
}

.section--quiz input.quiz__res__input {
  height: var(--control-h);
  padding: 0 var(--s-5);
}

.section--quiz textarea.quiz__res__input {
  padding: var(--s-4) var(--s-5);
  resize: vertical;
  min-height: 120px;
}

.section--quiz select.quiz__res__input {
  height: var(--control-h);
  padding: 0 var(--s-5);
}

.section--quiz .quiz__res__input:focus {
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
}

/* Инфо/ошибки */
.section--quiz .quiz__screen__info {
  margin-top: var(--s-6);
  display: grid;
  gap: 8px;
}

.section--quiz .quiz__screen__info_info {
  color: var(--mut);
}

.section--quiz .quiz__screen__info_err {
  color: color-mix(in srgb, #ff6b6b 75%, var(--txt));
}

/* Пагинация (точки) */
.section--quiz .quiz__screen__pagination {
  margin-top: var(--s-6);
  display: flex;
  gap: 10px;
}

.section--quiz .pagination {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: transparent;
}

.section--quiz .pagination_on {
  background: color-mix(in srgb, var(--accent) 55%, transparent);
  border-color: color-mix(in srgb, var(--accent) 65%, transparent);
}

/* Футер с кнопками */
.section--quiz .quiz__footer {
  margin-top: var(--s-6);
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .section--quiz .quiz__footer__step {
    grid-template-columns: 1fr 1fr;
  }
}

/* Кнопки квиза: приводим к вашей системе, не меняя классы компонента */
.section--quiz .quiz__button {
  height: var(--control-h);
  border-radius: var(--r-3);
  border: 1px solid transparent;
  padding: 0 var(--s-6);
  cursor: pointer;
  width: 100%;
  transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.section--quiz .quiz__button:active {
  transform: translateY(1px);
}

/* ваша красная = наш primary */
.section--quiz .button.button_red,
.section--quiz .quiz__button.button_red {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  color: var(--txt);
}

.section--quiz .button.button_red:hover,
.section--quiz .quiz__button.button_red:hover {
  background: color-mix(in srgb, var(--accent) 24%, transparent);
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
}

/* ваша белая = наш secondary */
.section--quiz .button.button_white,
.section--quiz .quiz__button.button_white {
  background: color-mix(in srgb, var(--bg) 74%, white 8%);
  border-color: var(--line);
  color: var(--txt);
}

.section--quiz .button.button_white:hover,
.section--quiz .quiz__button.button_white:hover {
  background: color-mix(in srgb, var(--bg) 68%, white 10%);
}

/* Finish screen: форма в конце */
.section--quiz .quiz__form__box {
  margin-top: var(--s-6);
}

/* На мобильных уплотняем */
@media (max-width: 640px) {
  .section--quiz .quiz-shell {
    padding: var(--s-6);
  }
  .section--quiz .quiz__screen {
    padding: var(--s-6);
  }
}
/* Если квиз смонтирован — скрываем скелет и fallback */
.section--quiz .quiz__mount.is-mounted .quiz__skeleton,
.section--quiz .quiz__mount.is-mounted .quiz__fallback {
  display: none !important;
}

/* =========================
   Reviews: dual mode (Local + Vue)
========================= */

.reviews-block {
  display: grid;
  gap: var(--s-8);
}

/* По умолчанию: показываем local, vue скрыт */
.reviews-local {
  display: block;
}
.reviews-vue {
  display: none;
}

/* Layout local */
.reviews-local__layout {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .reviews-local__layout {
    grid-template-columns: 0.65fr 1.35fr;
    gap: var(--s-12);
  }
}

/* Aside summary */
.reviews-local__aside {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}
html[data-theme="light"] .reviews-local__aside {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.reviews-summary {
  display: grid;
  gap: var(--s-6);
}

.reviews-summary__top {
  display: grid;
  gap: var(--s-3);
}

.reviews-summary__rating {
  display: flex;
  align-items: center;
  gap: var(--s-4);
}

.reviews-summary__value {
  font-size: var(--fz-5);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--txt);
}

.reviews-summary__count {
  font-size: var(--fz-1);
}

/* Stars (local) */
.stars {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

.star {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1px solid var(--line);
  background: transparent;
}

.star.is-on {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 26%, transparent);
}

.star.is-half {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--accent) 26%, transparent) 50%,
    transparent 50%
  );
}

/* Rating bars */
.rating-bars {
  display: grid;
  gap: var(--s-3);
}

.rating-bar {
  display: grid;
  grid-template-columns: 18px 1fr 44px;
  gap: var(--s-4);
  align-items: center;
  color: var(--mut);
  font-size: var(--fz-1);
}

.rating-bar__line {
  height: 10px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, var(--bg) 74%, white 8%);
  overflow: hidden;
}

.rating-bar__line span {
  display: block;
  height: 100%;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
  border-right: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
}

/* Controls local */
.reviews-local__controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-6);
  margin-bottom: var(--s-6);
}

.reviews-local__actions {
  display: flex;
  gap: var(--s-4);
}

/* Reviews list local */
.reviews-list {
  display: grid;
  gap: var(--s-6);
}

.review {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}
html[data-theme="light"] .review {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.review__head {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--s-4);
  align-items: center;
  margin-bottom: var(--s-4);
}

@media (max-width: 640px) {
  .review__head {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

.review__author {
  font-weight: 600;
  color: var(--txt);
}

.review__date {
  font-size: var(--fz-1);
  text-align: right;
}

.review__body {
  color: var(--mut);
  line-height: var(--lh);
  overflow-wrap: anywhere;
}

/* More actions */
.reviews-local__more {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-8);
}

@media (min-width: 520px) {
  .reviews-local__more {
    grid-template-columns: 1fr 1fr;
  }
}

.reviews-local__more .btn {
  width: 100%;
}

/* =========================
   Vue container + overrides
========================= */

.reviews-vue {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}
html[data-theme="light"] .reviews-vue {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

/* Приводим Vue-компонент к нашей системе только внутри секции */
.section--reviews .reviews {
  color: var(--txt);
}

.section--reviews .reviews__show {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .section--reviews .reviews__show {
    grid-template-columns: 0.65fr 1.35fr;
    gap: var(--s-12);
  }
}

.section--reviews .reviews__sidebar,
.section--reviews .reviews__content {
  min-width: 0;
}

.section--reviews .reviews__sidebar {
  display: grid;
  gap: var(--s-6);
}

.section--reviews .reviews__add.button {
  height: var(--control-h);
  border-radius: var(--r-3);
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  color: var(--txt);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.section--reviews .reviews__add.button:hover {
  background: color-mix(in srgb, var(--accent) 24%, transparent);
  border-color: color-mix(in srgb, var(--accent) 60%, transparent);
}

/* Stars list inside Vue (svg звёзды оставляем ваши) */
.section--reviews .stars-list {
  display: inline-flex;
  gap: 6px;
  align-items: center;
}

/* Блок среднего рейтинга */
.section--reviews .reviews__avg {
  display: flex;
  align-items: center;
  gap: var(--s-4);
}

.section--reviews .reviews__number {
  font-size: var(--fz-5);
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* Полоски распределения */
.section--reviews .reviews-counter__item {
  display: grid;
  grid-template-columns: 60px 1fr 44px;
  gap: var(--s-4);
  align-items: center;
  font-size: var(--fz-1);
  color: var(--mut);
}

.section--reviews .reviews-counter__line {
  height: 10px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background: color-mix(in srgb, var(--bg) 74%, white 8%);
  overflow: hidden;
}

.section--reviews .reviews-counter__filler {
  height: 100%;
  background: color-mix(in srgb, var(--accent) 22%, transparent);
}

/* Карточки отзывов (Vue) */
.section--reviews .reviews-item {
  border-radius: var(--r-4);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  box-shadow: var(--shadow-1);
  overflow: hidden;
}

html[data-theme="light"] .section--reviews .reviews-item {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.section--reviews .reviews-item__top {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: var(--s-4);
  align-items: center;
  padding: var(--s-6);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}

@media (max-width: 640px) {
  .section--reviews .reviews-item__top {
    grid-template-columns: 1fr;
    align-items: start;
  }
}

.section--reviews .reviews-item__name {
  font-weight: 600;
  color: var(--txt);
}

.section--reviews .reviews-item__date {
  color: var(--mut);
  font-size: var(--fz-1);
}

.section--reviews .reviews-item__content {
  padding: var(--s-6);
  color: var(--mut);
  overflow-wrap: anywhere;
}

/* Контролы списка */
.section--reviews .reviews-list__controls {
  display: grid;
  gap: var(--s-6);
  margin-bottom: var(--s-6);
}

@media (min-width: 900px) {
  .section--reviews .reviews-list__controls {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

/* Форма отзывов */
.section--reviews .reviews-form {
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 76%, white 8%);
  padding: var(--s-6);
}

/* Кнопка отправки (у вас div.button) */
.section--reviews .reviews-form .button {
  height: var(--control-h);
  border-radius: var(--r-3);
  border: 1px solid transparent;
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  border-color: color-mix(in srgb, var(--accent) 45%, transparent);
  color: var(--txt);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* =========================
   Auto-switch Local/Vue
========================= */
.section--reviews .reviews-block.is-vue .reviews-local {
  display: none;
}
.section--reviews .reviews-block.is-vue .reviews-vue {
  display: block;
}
/* =========================
   Seventh (Final CTA) — layout + mount + fallback
========================= */

.cta {
  display: grid;
  gap: var(--s-8);
}

.cta__layout {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .cta__layout {
    grid-template-columns: 0.9fr 1.1fr;
    gap: var(--s-12);
  }
}

.cta__content,
.cta__form {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

html[data-theme="light"] .cta__content,
html[data-theme="light"] .cta__form {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.cta__title {
  margin: 0 0 var(--s-6);
}

.cta__mini {
  margin-top: var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.cta-mini__row {
  display: flex;
  justify-content: space-between;
  gap: var(--s-6);
  padding: var(--s-4);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
}

.cta-mini__label {
  color: var(--mut);
  font-size: var(--fz-1);
}

.cta-mini__value {
  color: var(--txt);
  font-weight: 500;
  text-decoration: none;
}
.cta-mini__value:hover {
  text-decoration: underline;
}

/* form area */
.cta-form__head {
  display: grid;
  gap: var(--s-3);
  margin-bottom: var(--s-6);
}

.cta-form__title {
  margin: 0;
}
.cta-form__meta {
  margin: 0;
}

.cta-form__mount {
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 76%, white 8%);
  padding: var(--s-6);
  min-height: 220px;
  position: relative;
}

.cta-form__fallback {
  display: grid;
  gap: var(--s-4);
}

.cta-form__fallback-text {
  margin: 0;
  color: var(--mut);
}

.cta-form__fallback-actions {
  display: grid;
  gap: var(--s-4);
}

@media (min-width: 520px) {
  .cta-form__fallback-actions {
    grid-template-columns: 1fr 1fr;
  }
}

.cta-form__fallback-actions .btn {
  width: 100%;
}

.cta-form__note {
  margin: var(--s-6) 0 0;
}

/* Когда Vue форма смонтировалась — скрываем fallback */
.section--cta .cta-form__mount.is-mounted .cta-form__fallback {
  display: none !important;
}

/* =========================
   Vue feedback overrides (only inside CTA section)
========================= */

.section--cta .feedback {
  color: var(--txt);
}

.section--cta .feedback__wrapper {
  display: grid;
  gap: var(--s-4);
}

/* Табы вариантов (если есть) */
.section--cta .feedback__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-bottom: var(--s-4);
}

.section--cta .feedback__variant {
  height: 34px;
  display: inline-flex;
  align-items: center;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  font-size: var(--fz-1);
  cursor: pointer;
  user-select: none;
}

.section--cta .feedback__variant._active {
  border-color: color-mix(in srgb, var(--accent) 55%, var(--line));
  background: color-mix(in srgb, var(--accent) 14%, transparent);
}

/* Формы */
.section--cta .feedback__form {
  display: grid;
  gap: var(--s-5);
}

/* Футер формы */
.section--cta .feedback__footer {
  display: grid;
  gap: var(--s-4);
  margin-top: var(--s-2);
}

@media (min-width: 520px) {
  .section--cta .feedback__footer {
    grid-template-columns: 1fr auto;
    align-items: center;
  }
}

/* Кнопка отправки (у вас button_white) -> secondary */
.section--cta .feedback__footer .button.button_white,
.section--cta .feedback__footer button.button_white {
  height: var(--control-h);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--txt);
  padding: 0 var(--s-6);
  cursor: pointer;
}
.section--cta .feedback__footer .button.button_white:hover,
.section--cta .feedback__footer button.button_white:hover {
  background: var(--surface-2);
}

/* Поля ввода: приводим к control (ваши input-text компоненты внутри должны наследовать) */
.section--cta input,
.section--cta textarea,
.section--cta select {
  font: inherit;
  color: inherit;
}

/* Mobile tightening */
@media (max-width: 640px) {
  .cta__content,
  .cta__form {
    padding: var(--s-6);
  }
  .cta-form__mount {
    padding: var(--s-5);
  }
}
/* =========================
   Contacts / Map
========================= */

.contacts {
  display: grid;
  gap: var(--s-8);
}

.contacts__layout {
  display: grid;
  gap: var(--s-10);
  align-items: start;
}

@media (min-width: 1024px) {
  .contacts__layout {
    grid-template-columns: 0.85fr 1.15fr;
    gap: var(--s-12);
  }
}

/* Contacts card */
.contacts__card {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

html[data-theme="light"] .contacts__card {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.contacts__top {
  margin-bottom: var(--s-6);
}

.contacts__title {
  margin: 0 0 6px;
}

.contacts__subtitle {
  margin: 0;
}

.contacts__list {
  margin: 0 0 var(--s-6);
  display: grid;
  gap: var(--s-4);
}

.contacts__item {
  display: grid;
  gap: 6px;
  padding: var(--s-4);
  border-radius: var(--r-3);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 72%, white 7%);
}

.contacts__label {
  margin: 0;
  font-size: var(--fz-1);
  color: var(--mut);
}

.contacts__value {
  margin: 0;
  color: var(--txt);
}
.contacts__value a {
  color: var(--txt);
  text-decoration: none;
}
.contacts__value a:hover {
  text-decoration: underline;
}

.contacts__actions {
  display: grid;
  gap: var(--s-4);
  margin-bottom: var(--s-4);
}

@media (min-width: 520px) {
  .contacts__actions {
    grid-template-columns: 1fr 1fr;
  }
}
.contacts__actions .btn {
  width: 100%;
}

.contacts__note {
  margin: 0;
}

/* Map card */
.map {
  padding: var(--s-8);
  min-width: 0;
  background: color-mix(in srgb, var(--bg) 78%, white 10%);
  border: 1px solid color-mix(in srgb, var(--line) 90%, transparent);
}

html[data-theme="light"] .map {
  background: color-mix(in srgb, white 92%, var(--bg) 8%);
}

.map__head {
  display: grid;
  gap: var(--s-3);
  margin-bottom: var(--s-6);
}

.map__title {
  margin: 0;
}
.map__meta {
  margin: 0;
}

.map__mount {
  border-radius: var(--r-4);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 76%, white 8%);
  overflow: hidden;
}

/* Vue component renders <div id="map" style="width:100%;height:600px"> */
.section--contacts #map {
  width: 100% !important;
  height: 520px !important;
}

/* Adaptive height */
@media (max-width: 900px) {
  .section--contacts #map {
    height: 420px !important;
  }
}

@media (max-width: 640px) {
  .contacts__card,
  .map {
    padding: var(--s-6);
  }
  .section--contacts #map {
    height: 360px !important;
  }
}

/* Default: hide map if Vue didn't mount */
.section--contacts .map {
  display: none;
}

/* Show map when mounted */
.section--contacts .map.is-mounted {
  display: block;
}
/* =========================
   Contacts layout when map is absent
   (no JS, no duplication)
========================= */

/* Когда карты нет (display:none), делаем одну колонку и растягиваем контакты */
@media (min-width: 1024px) {
  /* Ваша ситуация: .map скрыта по умолчанию */
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) {
    grid-template-columns: 1fr;
  }

  /* На всякий случай: если карта вообще удалена из DOM */
  .section--contacts .contacts__layout:not(:has(.map)) {
    grid-template-columns: 1fr;
  }
}

/* Когда карта есть — возвращаем 2 колонки (ваше базовое правило уже делает это),
   но оставим явное правило для читаемости */
@media (min-width: 1024px) {
  .section--contacts .contacts__layout:has(.map.is-mounted) {
    grid-template-columns: 0.85fr 1.15fr;
  }
}

@media (min-width: 900px) {
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s-4);
  }

  /* 1) Телефон (1-й) — слева */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(1) {
    grid-column: 1;
  }

  /* 2) Email (2-й) — справа */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(2) {
    grid-column: 2;
  }

  /* 3) Адрес (3-й) — на всю ширину */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(3) {
    grid-column: 1 / -1;
  }

  /* 4) График (4-й) — на всю ширину (аккуратно, без “дырок”) */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(4) {
    grid-column: 1 / -1;
  }

  /* actions + note на всю ширину (на всякий) */
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__actions,
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__note {
    grid-column: 1 / -1;
  }
}
@media (min-width: 900px) {
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--s-4);
  }

  /* 1) Телефон (1-й) — слева */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(1) {
    grid-column: 1;
  }

  /* 2) Email (2-й) — справа */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(2) {
    grid-column: 2;
  }

  /* 3) Адрес (3-й) — на всю ширину */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(3) {
    grid-column: 1 / -1;
  }

  /* 4) График (4-й) — на всю ширину (аккуратно, без “дырок”) */
  .section--contacts
    .contacts__layout:has(.map:not(.is-mounted))
    .contacts__list
    > .contacts__item:nth-child(4) {
    grid-column: 1 / -1;
  }

  /* actions + note на всю ширину (на всякий) */
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__actions,
  .section--contacts .contacts__layout:has(.map:not(.is-mounted)) .contacts__note {
    grid-column: 1 / -1;
  }
}

/* =========================
   Footer
========================= */
.section--footer {
  padding-top: var(--s-14);
  padding-bottom: calc(var(--s-14) + var(--mobile-nav-h, 0px));
}

.section--footer,
.section--contacts {
  padding-bottom: calc(var(--s-12) + var(--mobile-nav-h));
}

.footer {
  background: color-mix(in srgb, var(--bg) 85%, black 15%);
  border-top: 1px solid var(--line);
  padding-top: var(--s-14);
}

html[data-theme="light"] .footer {
  background: color-mix(in srgb, white 96%, var(--bg) 4%);
}

.footer__grid {
  display: grid;
  gap: var(--s-12);
}

@media (min-width: 720px) {
  .footer__grid {
    grid-template-columns: 1.3fr 1fr 1fr 1.2fr;
    gap: var(--s-14);
  }
}

/* Brand */
.footer__logo-text {
  font-size: var(--fz-4);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.footer__logo-text span {
  color: var(--accent);
}

.footer__desc {
  margin: var(--s-4) 0 var(--s-6);
  max-width: 36ch;
  color: var(--mut);
}

/* Titles */
.footer__title {
  margin: 0 0 var(--s-4);
  font-size: var(--fz-2);
}

/* Lists */
.footer__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: var(--s-3);
}

.footer__list a {
  color: var(--txt);
  text-decoration: none;
}
.footer__list a:hover {
  text-decoration: underline;
}

/* Contacts */
.footer__address {
  color: var(--mut);
  font-style: normal;
}

.footer__actions {
  margin-top: var(--s-4);
  display: flex;
  gap: var(--s-3);
  flex-wrap: wrap;
}

/* Bottom */
.footer__bottom {
  margin-top: var(--s-12);
  padding-top: var(--s-6);
  border-top: 1px solid var(--line);
  display: grid;
  gap: var(--s-2);
}

@media (min-width: 640px) {
  .footer__bottom {
    grid-template-columns: 1fr 1fr;
  }
}
/* === Header: hard-fix (robust) === */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;

  z-index: 1000;

  background: color-mix(in srgb, var(--bg) 85%, transparent);
  border-bottom: 1px solid var(--line);

  /* можно оставить, но если где-то глючит — просто удалите */
  backdrop-filter: blur(8px);
}

/* Чтобы контент не прятался под фиксированной шапкой */
.site-main {
  padding-top: var(--header-h, 88px);
}
/* =========================
   Mobile Bottom Nav
========================= */

/* показываем только на мобилке */
.mnav {
  display: none;
}

@media (max-width: 1023px) {
  .mnav {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 1100;

    display: block;

    border-radius: 18px;
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg) 82%, transparent);
    backdrop-filter: blur(10px);
    box-shadow: var(--shadow-2);
  }

  .mnav__row {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 2px;
    padding: 8px;
  }

  .mnav__link {
    min-width: 0;
    display: grid;
    justify-items: center;
    gap: 6px;

    text-decoration: none;
    color: var(--mut);
    padding: 8px 6px;
    border-radius: 14px;

    border: 1px solid transparent;
    background: transparent;
  }

  .mnav__dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: transparent;
  }

  .mnav__lbl {
    font-size: 11px;
    line-height: 1;
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }

  /* active */
  .mnav__link.is-active {
    color: var(--txt);
    border-color: color-mix(in srgb, var(--accent) 45%, transparent);
    background: color-mix(in srgb, var(--accent) 14%, transparent);
  }

  .mnav__link.is-active .mnav__dot {
    border-color: color-mix(in srgb, var(--accent) 60%, transparent);
    background: color-mix(in srgb, var(--accent) 30%, transparent);
  }

  /* CTA tab a bit stronger */
  .mnav__link--cta.is-active {
    border-color: color-mix(in srgb, var(--accent) 65%, transparent);
    background: color-mix(in srgb, var(--accent) 18%, transparent);
  }

  /* IMPORTANT: reserve space so bottom nav doesn't overlap content */
  body {
    padding-bottom: calc(var(--mobile-nav-h) + 24px + env(safe-area-inset-bottom));
  }
}

/* Smooth scroll */
html {
  scroll-behavior: smooth;
}

/* Чтобы якоря не прятались под фиксированной шапкой */
section[id] {
  scroll-margin-top: calc(var(--header-h, 88px) + 16px);
}

/* На мобилке добавим чуть больше (если нужно) */
@media (max-width: 1023px) {
  section[id] {
    scroll-margin-top: calc(var(--header-h, 88px) + 18px);
  }
}

/* ===== Footer (final, clean) ===== */
.footer {
  padding-top: var(--s-12); /* отступ от верхней линии */
  padding-bottom: var(--s-10); /* низ на десктопе */
}

@media (max-width: 1023px) {
  .footer {
    padding-bottom: calc(var(--s-10) + var(--mobile-nav-h) + env(safe-area-inset-bottom));
  }
}

.section--hero {
  padding-block: calc(var(--section-py) + var(--s-6));
}

@media (max-width: 640px) {
  .card {
    box-shadow: none;
  }

  section[id] {
    scroll-margin-top: var(--header-h, 72px);
  }

  .section--hero {
    padding-block: calc(var(--s-6));
  }

  /* 1) Единый горизонтальный ритм */
  .container {
    padding-inline: 16px;
  }

  /* 2) НИЧЕГО не обнуляем глобально у .card
        (это и сломало формы/факты/списки) */

  /* 3) Убираем "карточку в карточке" ТОЛЬКО там, где она реально есть:
        hero--B -> panel.card (вложенная) */
  .hero--B .panel.card {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0; /* panel становится просто оберткой */
  }

  /* 4) Список в панели делаем современными "плашками" */
  .hero--B .panel__list {
    gap: 10px;
    margin-bottom: var(--s-4);
  }

  .hero--B .panel__link {
    border-radius: 14px;
    border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
    background: color-mix(in srgb, var(--surface) 80%, transparent);
    padding: 12px 14px;
  }

  /* 5) "Частые обращения": не делаем вложенную карточку.
        Если внутри встречается .card — делаем её прозрачной только в panel */
  .panel.card .card {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
  }

  /* 6) Микро-подстройка формы (чтобы не выглядела как "матрешка") */
  .hero-card.card {
    box-shadow: none; /* на мобиле тени обычно тяжелят */
  }

  /* 7) Факты: оставляем как карточки, но делаем мягче (без двойного эффекта) */
  .facts.card {
    box-shadow: none;
  }
}

.kicker {
  display: none;
}
/* Разрешаем переносы строк из \n и аккуратный перенос слов */
.proq-hero__quote p,
.proq-hero__note,
.proq-hero__title {
  white-space: pre-line;
  overflow-wrap: anywhere;
}
