/* ============================================================
   Главная v2 (ТЗ маркетинга 05.08.2026, разделы 2.6, 3, 4).
   Файл намеренно назван на zz-: addCSS сортирует по имени файла,
   и этот слой должен побеждать styles.css.
   Тема одна, тёмная (решение 05.08.2026). Светлые токены ТЗ 3.3 не заводим.
   Все новые классы с префиксом v2-, чтобы не пересекаться со старым styles.css.

   Токены объявлены на .v2, а не на :root: styles.css уже держит свой --line
   (#E7E7E0, светлый) и тёмная тема тарифов им пользуется - глобальный оверрайд
   перекрасил бы нетронутые блоки. Каждая переработанная секция получает класс
   .v2, вложенные элементы наследуют переменные.
   ============================================================ */

.v2 {
    /* --- общие (ТЗ 3.1) --- */
    --acid: #C8FF4D;      /* единственный громкий цвет: роли и лимит по ТЗ 5.5 */
    --indigo: #4D7FFF;    /* линия пути, знак «+» в цифрах, мелкие акценты */
    --indigo-lt: #6E94FF; /* иконки, eyebrow, единицы измерения */
    --role: #6B70A8;      /* подпись роли, слово «Раньше» в результатах */
    --wire: #3A3F7A;      /* кривые схемы в блоке ролей */
    --maxw: 1200px;
    --node: 44px;         /* кружок шага в пути заказа FBS */
    --dot: 14px;          /* точка рейла в «Как мы работаем» */
    --rail: 2px;          /* толщина линии пути */

    /* --- тёмная тема (ТЗ 3.2) --- */
    --bg: #000025;
    --card: #14163F;
    --card-2: #191C4A;
    --line: #23254F;
    --line-soft: rgba(255, 255, 255, .10);
    --text: #FFFFFF;
    --text-muted: #8B92C9;
    --text-mid: #A6ABD8;
}

/* --- единый ритм страницы (ТЗ 2.6): контейнер 1200, отступы секции 60/40.
       Исключение одно: первый экран, 52/56 (задаётся в его собственных стилях). --- */
.v2-container {
    max-width: var(--maxw);
    margin-inline: auto;
    padding-inline: 32px;
}
.v2-section {
    padding-block: 60px;
}
@media (max-width: 560px) {
    .v2-container { padding-inline: 18px; }
    .v2-section { padding-block: 40px; }
}

/* --- заголовок секции (ТЗ 4): строка 1 серифным курсивом, строка 2 жирным
       Manrope с градиентом. color задан ДО градиента и обнуляется только в
       @supports: без поддержки background-clip текст остался бы невидимым. --- */
.v2-h2 {
    margin: 0;
    font-weight: 400;
}
.v2-h2 i,
.v2-h2 .v2-h2__serif {
    display: block;
    font-family: 'Source Serif 4', Georgia, serif;
    font-style: italic;
    font-weight: 500;
    color: var(--text);
}
.v2-h2 b,
.v2-h2 .v2-h2__grad {
    display: block;
    font-family: Manrope, sans-serif;
    font-weight: 800;
    color: var(--text);
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
    .v2-h2 b,
    .v2-h2 .v2-h2__grad {
        background: linear-gradient(90deg, var(--text), var(--indigo));
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        color: transparent;
    }
}

/* eyebrow: только текст, без линии и маркера (ТЗ 4) */
.v2-eyebrow {
    display: block;
    font-family: Manrope, sans-serif;
    font-weight: 800;
    font-size: 11px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--indigo-lt);
}

/* крупные цифры не дребезжат по ширине (ТЗ 4) */
.v2-num { font-variant-numeric: tabular-nums; }

/* ============================================================
   Экран 1: баннер FBS + hero + полоса FBS (ТЗ 7.1, прототип
   hero-refresh-demo.html). Баннер живёт внутри секции hero и
   накрыт общим градиентом: отдельная подложка и резкий старт
   градиента убраны по правке 05.08.2026.
   ============================================================ */
.v2 {
    --on-acid: #000025;
    --app-bg: #0B0E33;
    --app-panel: #11143C;
    --app-mut: #8B92C9;
}
.v2-mono { font-family: 'JetBrains Mono', ui-monospace, monospace; }

/* шапка сайта fixed: первый экран компенсирует её высоту, иначе баннер уходит под меню */
.v2-hero { position: relative; background: var(--bg); padding: calc(var(--header-h, 72px) + 20px) 0 56px; overflow: hidden; }
/* единственное фоновое свечение секции: один radial-gradient на псевдоэлементе (ТЗ 2.5) */
.v2-hero::before {
    content: ""; position: absolute; inset: -25% 45% 25% -12%;
    background: radial-gradient(closest-side, rgba(77, 127, 255, .20), transparent 70%);
    pointer-events: none;
}

/* --- баннер FBS: старый вид fbsnote (маркетинг 06.08.2026) - тёмная плашка
       с кислотной каймой и свечением, кликабельна целиком --- */
.v2-promo {
    position: relative;
    display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
    padding: 14px 20px; margin-bottom: 40px;
    background: #000025;
    border: 1px solid var(--acid); border-radius: 12px;
    box-shadow: 0 6px 20px -12px rgba(200, 255, 77, .7);
    text-decoration: none; color: inherit;
    transition: box-shadow .15s ease, transform .15s ease;
}
.v2-promo:hover {
    box-shadow: 0 10px 26px -10px rgba(200, 255, 77, .85);
    transform: translateY(-1px);
}
.v2-promo:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.v2-promo__badge {
    flex-shrink: 0;
    padding: 5px 11px; border-radius: 999px; background: var(--acid); color: var(--on-acid);
    font-size: 13px; font-weight: 700; white-space: nowrap;
}
.v2-promo__text { margin: 0; flex: 1 1 340px; min-width: 190px; font-size: 15px; line-height: 1.45; color: #C9CBE8; }
.v2-promo__text b { color: var(--acid); font-weight: 700; }
.v2-promo__cta {
    display: inline-flex; align-items: center; gap: 7px; margin-left: auto; flex-shrink: 0;
    font-size: 15px; font-weight: 700; color: var(--acid); white-space: nowrap;
}
.v2-promo__cta svg { width: 15px; height: 15px; stroke: currentColor; transition: transform .15s ease; }
.v2-promo:hover .v2-promo__cta svg { transform: translateX(3px); }

/* --- сетка первого экрана --- */
.v2-hero__grid {
    position: relative;
    display: grid; grid-template-columns: minmax(0, 45%) minmax(0, 1fr);
    gap: 34px; align-items: center;
}
.v2-hero__kicker {
    display: inline-flex; align-items: center; gap: 9px; margin-bottom: 18px;
    font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--text);
}
.v2-hero__kicker i { width: 6px; height: 6px; border-radius: 50%; background: var(--acid); }
.v2-hero__title {
    margin: 0 0 18px;
    font-size: 42px; font-weight: 800; line-height: 1.16; letter-spacing: -.02em;
    color: var(--text);
}
.v2-hero__title em { font-style: normal; color: var(--indigo-lt); }
.v2-hero__lead { margin: 0 0 30px; font-size: 15.5px; line-height: 1.6; color: var(--text-muted); max-width: 540px; }
.v2-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }

.v2-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 14px 22px; border-radius: 12px; border: 1px solid transparent;
    font: 800 14px/1 Manrope, sans-serif; text-decoration: none; cursor: pointer;
}
.v2-btn--ghost { background: transparent; color: var(--text); border-color: var(--line); }
.v2-btn--ghost:hover { border-color: var(--indigo-lt); color: var(--indigo-lt); }
.v2-btn:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }

/* --- окно кабинета (временный HTML-мокап, до настоящего скриншота по 7.1.4) --- */
.v2-shot { position: relative; }
.v2-shot__win {
    border: 1px solid var(--line); border-radius: 16px; overflow: hidden;
    background: var(--app-bg);
}
.v2-shot__bar {
    display: flex; align-items: center; gap: 7px;
    padding: 11px 14px; border-bottom: 1px solid var(--line-soft); background: var(--app-panel);
}
.v2-shot__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line); }
.v2-shot__url {
    margin-left: 8px; padding: 5px 12px; border-radius: 7px;
    background: rgba(255, 255, 255, .05); color: var(--app-mut); font-size: 11px;
}
.v2-shot__body { display: grid; grid-template-columns: 168px 1fr; }
.v2-shot__side { padding: 16px 12px; background: var(--app-panel); border-right: 1px solid var(--line-soft); }
.v2-shot__brand {
    display: flex; align-items: center; gap: 9px; margin-bottom: 16px; padding: 0 6px;
    font-size: 11px; font-weight: 800; letter-spacing: .07em; color: var(--text);
}
.v2-shot__logo { width: 22px; height: 22px; border-radius: 7px; background: var(--indigo); }
.v2-shot__nav { display: grid; gap: 3px; }
.v2-shot__nav span {
    display: flex; align-items: center; gap: 9px;
    padding: 9px 10px; border-radius: 9px; font-size: 12.5px; color: var(--app-mut);
}
.v2-shot__nav span svg { width: 14px; height: 14px; stroke: currentColor; flex: 0 0 14px; }
.v2-shot__nav span.is-active {
    position: relative; background: rgba(110, 148, 255, .14); color: var(--text); font-weight: 700;
}
/* кислотная метка активного раздела: одно из четырёх пятен первого экрана (ТЗ 7.1.6) */
.v2-shot__nav span.is-active::before {
    content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 2px;
    border-radius: 2px; background: var(--acid);
}
.v2-shot__main { padding: 18px 20px 22px; }
.v2-shot__tools { display: flex; gap: 8px; margin-bottom: 16px; }
.v2-shot__chip {
    padding: 6px 12px; border: 1px solid var(--line-soft); border-radius: 8px;
    font-size: 11px; color: var(--app-mut); white-space: nowrap;
}
.v2-shot__chip--on { border-color: var(--indigo-lt); color: var(--text); }
.v2-shot__table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.v2-shot__table th {
    text-align: left; padding: 0 10px 11px;
    font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--app-mut);
    border-bottom: 1px solid var(--line-soft);
}
.v2-shot__table td { padding: 13px 10px; border-bottom: 1px solid var(--line-soft); color: var(--text); }
.v2-shot__table tr:last-child td { border-bottom: 0; }
.v2-shot__table td.num { text-align: right; color: var(--indigo-lt); font-variant-numeric: tabular-nums; }
.v2-shot__table th, .v2-shot__table td { white-space: nowrap; }

/* плашки на краях окна: ничего не закрывают (ТЗ 7.1.1) */
.v2-tag {
    position: absolute; z-index: 2;
    padding: 10px 14px; border-radius: 12px;
    background: rgba(10, 12, 46, .92); border: 1px solid var(--line);
    box-shadow: 0 20px 44px -26px rgba(0, 0, 0, .9);
}
.v2-tag__label {
    display: block; margin-bottom: 3px;
    font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--text-muted);
}
.v2-tag__value { display: block; font-size: 13px; font-weight: 800; color: var(--text); white-space: nowrap; }
.v2-tag--top { top: -16px; right: 22px; border-color: rgba(200, 255, 77, .45); }
.v2-tag--top .v2-tag__label { color: var(--acid); }
.v2-tag--bottom { bottom: -16px; left: -18px; }

/* --- полоса FBS: продолжение первого экрана, потому отступы не по общему ритму.
       Заголовок выделен схемой секций (маркетинг 06.08.2026: «терялся в тексте») --- */
.v2-fbsline { position: relative; background: var(--bg); padding: 14px 0 52px; }
.v2-fbsline__head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px 24px; flex-wrap: wrap; margin-bottom: 20px; }
.v2-fbsline__title { margin: 0; max-width: 980px; font-size: 27px; line-height: 1.16; letter-spacing: -.015em; }
.v2-fbsline__title b { letter-spacing: -.02em; }
.v2-fbsline__note { font-size: 13px; color: var(--text-muted); }
.v2-fbsline__list {
    display: grid; grid-template-columns: repeat(4, 1fr);
    margin: 0; padding: 0; list-style: none;
    border-top: 1px solid var(--line);
}
.v2-fbsline__item { position: relative; padding: 16px 22px 0 0; }
.v2-fbsline__item + .v2-fbsline__item { padding-left: 22px; }
.v2-fbsline__item + .v2-fbsline__item::after {
    content: ""; position: absolute; left: 0; top: 18px; bottom: 2px; width: 1px; background: var(--line);
}
.v2-fbsline__item h3 { margin: 0 0 4px; font-size: 14px; font-weight: 800; color: var(--text); }
.v2-fbsline__item p { margin: 0; font-size: 13px; line-height: 1.45; color: var(--text-muted); }

/* --- адаптив первого экрана --- */
@media (max-width: 1180px) {
    .v2-hero__grid { grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 28px; }
    .v2-hero__title { font-size: 40px; }
    .v2-tag--bottom { left: -10px; }
}
@media (max-width: 960px) {
    .v2-hero { padding: calc(var(--header-h, 64px) + 16px) 0 44px; }
    .v2-hero__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
    .v2-hero__title { font-size: 36px; }
    .v2-hero__lead { max-width: none; }
    .v2-tag--top { right: 16px; top: -14px; }
    .v2-tag--bottom { left: 16px; bottom: -14px; }
    .v2-fbsline__list { grid-template-columns: 1fr 1fr; }
    .v2-fbsline__item:nth-child(3) { padding-left: 0; border-top: 1px solid var(--line); }
    .v2-fbsline__item:nth-child(3)::after { display: none; }
    .v2-fbsline__item:nth-child(4) { border-top: 1px solid var(--line); }
}
@media (max-width: 560px) {
    .v2-hero { padding: calc(var(--header-h, 64px) + 12px) 0 36px; }
    .v2-promo { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 28px; }
    .v2-promo__text { flex: 0 0 auto; }
    .v2-promo__link { margin-left: 0; }
    .v2-hero__title { font-size: 28px; }
    .v2-hero__lead { font-size: 15px; }
    .v2-btn { width: 100%; justify-content: center; }
    .v2-shot__side { display: none; }
    .v2-shot__main { padding: 14px 14px 16px; }
    .v2-shot__table { font-size: 12px; }
    .v2-shot__table th, .v2-shot__table td { padding: 11px 8px; }
    /* название товара переносится, остальные колонки в одну строку */
    .v2-shot__table th:nth-child(2), .v2-shot__table td:nth-child(2) { white-space: normal; }
    /* плашки становятся обычными блоками над и под окном (ТЗ 7.1.6) */
    .v2-tag { position: static; margin-bottom: 8px; display: inline-block; }
    .v2-tag--bottom { margin: 8px 0 0; }
    .v2-fbsline { padding-bottom: 36px; }
    .v2-fbsline__title { font-size: 21px; }
    .v2-fbsline__list { grid-template-columns: 1fr; }
    .v2-fbsline__item { padding: 14px 0 0 0; }
    .v2-fbsline__item + .v2-fbsline__item { padding-left: 0; border-top: 1px solid var(--line); }
    .v2-fbsline__item + .v2-fbsline__item::after { display: none; }
}

/* ============================================================
   Роли: схема с ядром «Одна база» (ТЗ 7.2, прототип
   roles-block-demo.html). Ядро - единственный элемент блока
   с заливкой и свечением (разрешённое исключение ТЗ 2.5).
   ============================================================ */
.v2-rol { position: relative; background: var(--bg); padding: 60px 0; overflow: hidden; }
.v2-rol::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(720px 300px at 50% 50%, rgba(77, 127, 255, .18), transparent 70%);
}
.v2-rol__in { position: relative; }
.v2-rol__head { margin-bottom: 34px; }
.v2-rol__head .v2-eyebrow { margin: 0 0 11px; }
.v2-rol__h { margin: 0; font-size: 28px; font-weight: 800; line-height: 1.18; max-width: 500px; color: var(--text); }
.v2-rol__sub { margin: 11px 0 0; font-size: 14px; line-height: 1.5; color: var(--text-muted); max-width: 560px; }

.v2-orb { display: grid; grid-template-columns: minmax(0, 1fr) 96px auto 96px minmax(0, 1fr); align-items: center; }
.v2-orb__side { display: grid; gap: 34px; }
/* отступы 10px не дают точке подключения касаться текста (ТЗ 7.2.7) */
.v2-orb__side--l { text-align: right; padding-right: 10px; }
.v2-orb__side--r { padding-left: 10px; }
.v2-orb__svg { width: 96px; height: 100%; display: block; }
.v2-orb__svg path { fill: none; stroke: var(--wire); stroke-width: 1; }
.v2-orb__svg circle { fill: var(--bg); stroke: var(--indigo-lt); stroke-width: 1; }

.v2-core {
    position: relative; display: inline-flex; flex-direction: column; align-items: center; text-align: center;
    padding: 18px 22px; border-radius: 20px;
    background: linear-gradient(160deg, rgba(110, 148, 255, .16), rgba(110, 148, 255, .04));
    border: 1px solid rgba(110, 148, 255, .30);
    /* разрешённое исключение из запрета box-shadow: подсветка ядра (ТЗ 7.2.8) */
    box-shadow: 0 0 0 8px rgba(110, 148, 255, .05), 0 20px 50px -22px rgba(110, 148, 255, .55);
}
.v2-core__t { font-size: 13px; font-weight: 800; color: var(--text); white-space: nowrap; }
.v2-core__s { margin-top: 5px; font-size: 11.5px; line-height: 1.4; color: #A9B2E8; max-width: 14ch; }

.v2-who__role {
    display: block; margin-bottom: 5px;
    text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .14em; color: var(--role);
}
.v2-who__res { display: block; font-size: 17px; font-weight: 800; line-height: 1.2; color: var(--text); }
.v2-who__fn { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.4; color: var(--text-muted); }
.v2-who__fn i { font-style: normal; color: #4a4d7a; padding: 0 5px; }
.v2-rol__note { margin: 28px 0 0; font-size: 12px; line-height: 1.5; color: var(--text-muted); }

@media (max-width: 1100px) {
    .v2-rol__h { font-size: 26px; }
    .v2-orb { grid-template-columns: minmax(0, 1fr) 64px auto 64px minmax(0, 1fr); }
    .v2-orb__svg { width: 64px; }
}
@media (max-width: 860px) {
    /* схема разбирается: ядро наверх на всю ширину, роли строками (ТЗ 7.2.9).
       align-items:stretch обязателен - иначе правая сторона центрируется по своей
       ширине и уезжает вправо относительно левой. */
    .v2-orb { display: flex; flex-direction: column; align-items: stretch; }
    .v2-orb__svg { display: none; }
    .v2-core { order: -1; display: flex; width: 100%; margin-bottom: 24px; }
    .v2-core__t { white-space: normal; }
    .v2-core__s { max-width: none; }
    .v2-orb__side { display: block; }
    .v2-orb__side--l { text-align: left; padding-right: 0; }
    .v2-orb__side--r { padding-left: 0; }
    .v2-orb__side > div { padding: 15px 0; border-bottom: 1px solid var(--line); }
    .v2-orb__side--r > div:last-child { border-bottom: 0; padding-bottom: 0; }
    .v2-rol__h { max-width: none; }
}
@media (max-width: 560px) {
    .v2-rol { padding: 40px 0; }
    .v2-rol__h { font-size: 21px; }
    .v2-rol__sub { font-size: 13px; }
    .v2-who__res { font-size: 16px; }
}

/* ============================================================
   Путь заказа FBS: пять шагов змейкой (ТЗ 7.3, сборка
   decisions/roli-dva-varianta.html). Линия пути собрана
   псевдоэлементами, без SVG и JS.
   ============================================================ */
.v2-fbp { position: relative; background: var(--bg); padding: 60px 0; overflow: hidden; }
.v2-fbp__in { position: relative; }
.v2-fbp .v2-eyebrow { margin: 0 0 18px; }
.v2-fbp__h { margin: 0 0 14px; font-size: 44px; line-height: 1.08; }
.v2-fbp__h b { letter-spacing: -.02em; }
.v2-fbp__lead { margin: 0 0 46px; font-size: 17px; line-height: 1.55; color: var(--text-muted); max-width: 640px; }

/* Раскладка змейки зашита под ПЯТЬ шагов (ТЗ 7.3.7): позиции заданы grid-area,
   поворот посчитан под третью колонку. Если шагов станет не пять, раскладку и
   брейкпойнты пересчитывать здесь, а не только добавлять элемент в массив. */
.v2-snake {
    list-style: none; margin: 0 0 44px; padding: 0;
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 72px 40px;
    grid-template-areas: "s1 s2 s3" ". s5 s4";
}
.v2-st { position: relative; }
.v2-st--1 { grid-area: s1; } .v2-st--2 { grid-area: s2; } .v2-st--3 { grid-area: s3; }
.v2-st--4 { grid-area: s4; } .v2-st--5 { grid-area: s5; }
.v2-st__node {
    position: relative; z-index: 2; width: var(--node); height: var(--node); border-radius: 50%;
    background: var(--card); border: 1px solid var(--line);
    display: flex; align-items: center; justify-content: center;
    /* кольцо фоновым цветом перекрывает линию под кружком (ТЗ 7.3.3) */
    box-shadow: 0 0 0 8px var(--bg);
    margin-bottom: 16px;
}
/* кружок шага 05: визуальный конец пути */
.v2-st--5 .v2-st__node { border-color: var(--indigo); }
.v2-st__node svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; color: var(--indigo-lt); }
.v2-st--5 .v2-st__node svg { color: var(--indigo); }
.v2-st__n { font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-size: 14px; color: var(--text-muted); }
.v2-st__t { margin: 4px 0 6px; font-size: 19px; font-weight: 800; line-height: 1.25; color: var(--text); }
/* 27ch, чтобы текст шага 03 не попал под вертикаль поворота (ТЗ 7.3.3) */
.v2-st__p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--text-muted); max-width: 27ch; }

/* прямые участки: 01-02, 02-03 и 05-04 (нижний ряд читается справа налево) */
.v2-st--1::before, .v2-st--2::before, .v2-st--5::before {
    content: ""; position: absolute;
    left: calc(var(--node) + 6px); right: -46px; top: calc(var(--node) / 2);
    border-top: 2px dashed var(--indigo); opacity: .5;
}
/* поворот от 03 к 04: ширина до правого края колонки, иначе вертикаль пройдёт по тексту */
.v2-turn { grid-area: s3; position: relative; pointer-events: none; }
.v2-turn::after {
    content: ""; position: absolute;
    left: calc(var(--node) + 6px); right: -40px;
    top: calc(var(--node) / 2); height: calc(100% + 72px);
    border-top: 2px dashed var(--indigo); border-right: 2px dashed var(--indigo); border-bottom: 2px dashed var(--indigo);
    border-radius: 0 22px 22px 0; opacity: .5;
}

/* цифры: не карточки - колонки на общей верхней линии (ТЗ 7.3.4) */
.v2-figs { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); padding-top: 26px; }
.v2-fig { padding: 0 28px; border-left: 1px solid var(--line); }
.v2-fig:first-child { padding-left: 0; border-left: 0; }
.v2-fig__v { font-size: clamp(40px, 5.2vw, 60px); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--text); }
.v2-fig__u { margin-left: 8px; font-size: 15px; font-weight: 700; color: var(--indigo-lt); letter-spacing: 0; }
.v2-fig__p { margin: 10px 0 0; font-size: 14px; line-height: 1.5; color: var(--text-muted); }

.v2-fbp__note {
    margin: 34px 0 0; padding-left: 18px; border-left: 2px solid var(--line);
    font-size: 14px; line-height: 1.65; color: var(--text-muted); max-width: 900px;
}
.v2-fbp__note b { color: var(--text); }

@media (max-width: 900px) {
    /* змейка превращается в вертикальный путь (ТЗ 7.3.6) */
    .v2-fbp__h { font-size: 34px; }
    .v2-snake { display: block; margin-bottom: 36px; }
    .v2-st { padding-left: 68px; min-height: var(--node); }
    .v2-st + .v2-st, .v2-turn + .v2-st { margin-top: 30px; }
    .v2-st__node { position: absolute; left: 0; top: 0; margin: 0; }
    .v2-st--1::before, .v2-st--2::before, .v2-st--5::before { display: none; }
    .v2-turn { display: none; }
    /* вертикальный пунктир между кружками; у последнего шага линии нет */
    .v2-st:not(:last-child)::after {
        content: ""; position: absolute;
        left: calc(var(--node) / 2 - 1px); top: calc(var(--node) + 7px); bottom: -24px;
        border-left: 2px dashed var(--indigo); opacity: .5;
    }
    /* цифры строками с горизонтальными разделителями */
    .v2-figs { grid-template-columns: 1fr; padding-top: 0; border-top: 0; }
    .v2-fig { padding: 18px 0; border-left: 0; border-top: 1px solid var(--line); }
    .v2-fig:first-child { padding-left: 0; }
}
@media (max-width: 560px) {
    .v2-fbp { padding: 40px 0; }
    .v2-fbp__h { font-size: 28px; }
    .v2-fbp__lead { font-size: 15px; margin-bottom: 32px; }
}

/* ============================================================
   Честный Знак: одна панель на четыре колонки (ТЗ 7.4).
   Колонки без собственных рамок: это одна панель, а не карточки.
   Секция идёт сразу за путём FBS, потому отступ сверху меньше ритма.
   ============================================================ */
.v2-cz { position: relative; background: var(--bg); padding: 20px 0 60px; }
.v2-cz__in { position: relative; }
.v2-cz .v2-eyebrow { margin: 0 0 18px; }
.v2-cz__h { margin: 0 0 14px; font-size: 44px; line-height: 1.08; }
.v2-cz__h b { letter-spacing: -.02em; }
.v2-cz__lead { margin: 0 0 30px; font-size: 17px; line-height: 1.55; color: var(--text-muted); max-width: 660px; }

.v2-czpanel {
    background: var(--card); border: 1px solid var(--line); border-radius: 28px;
    padding: clamp(28px, 3.4vw, 44px);
    display: grid; grid-template-columns: repeat(4, 1fr);
}
.v2-pcol { padding: 0 26px; border-left: 1px solid var(--line); }
.v2-pcol:first-child { padding-left: 0; border-left: 0; }
.v2-pcol__ico { height: 38px; display: flex; align-items: center; color: var(--indigo-lt); }
.v2-pcol__ico svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
/* бейдж «Режим теста»: высота 38px = высота иконок, заголовки на одной линии (ТЗ 7.4.3) */
.v2-czbadge {
    display: inline-flex; align-items: center; height: 38px; padding: 0 12px; border-radius: 999px;
    background: var(--acid); color: var(--on-acid);
    font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
}
.v2-pcol__t { margin: 14px 0 8px; font-size: 19px; font-weight: 800; line-height: 1.25; color: var(--text); }
.v2-pcol__p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--text-muted); }

@media (max-width: 1080px) {
    .v2-cz__h { font-size: 34px; }
    .v2-czpanel { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
    .v2-pcol:nth-child(3) { padding-left: 0; border-left: 0; }
}
@media (max-width: 640px) {
    .v2-czpanel { grid-template-columns: 1fr; row-gap: 0; }
    .v2-pcol { padding: 18px 0; border-left: 0; border-top: 1px solid var(--line); }
    .v2-pcol:first-child { padding-top: 0; border-top: 0; }
    .v2-pcol:nth-child(3) { padding-left: 0; }
    .v2-pcol:last-child { padding-bottom: 0; }
}
@media (max-width: 560px) {
    .v2-cz { padding: 12px 0 40px; }
    .v2-cz__h { font-size: 28px; }
    .v2-cz__lead { font-size: 15px; }
}

/* ============================================================
   Блок цифр «Целиком с 2025 года» (ТЗ 7.7, прототип
   stats-block-v3.html, вариант B - без плашки). Ни карточек,
   ни рамок, ни линий: сетка и воздух. Знак «+» - единственный
   цветовой акцент внутри цифр.
   ============================================================ */
.v2-stats { position: relative; background: var(--bg); padding: 8px 0 40px; }
/* полупрозрачная рамка вокруг блока (маркетинг 06.08.2026: «висел в воздухе»).
   Сама панель - контейнер, поэтому внутренние отступы здесь, а не на секции. */
.v2-stats .v2-container {
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .025);
    border-radius: 20px;
    padding: 22px 26px 24px;
}
.v2-stats__head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.v2-stats__title { margin: 0; font-size: 21px; font-weight: 800; color: var(--text); }
.v2-stats__date { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; }

.v2-stats__hero { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px 34px; }
.v2-stats__rest { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px 22px; margin-top: 20px; }

.v2-n__v { white-space: nowrap; color: var(--text); font-weight: 800; }
.v2-stats__hero .v2-n__v { font-size: clamp(24px, 2.5vw, 31px); }
.v2-stats__rest .v2-n__v { font-size: clamp(15px, 1.4vw, 18px); }
.v2-n__p { color: var(--indigo); }
.v2-n__u { font-size: 13px; font-weight: 700; color: var(--indigo-lt); }
.v2-n__l { margin-top: 3px; font-size: 11px; line-height: 1.35; color: var(--text-muted); }

@media (max-width: 1000px) {
    .v2-stats__rest { grid-template-columns: repeat(4, 1fr); gap: 14px 22px; }
}
@media (max-width: 720px) {
    .v2-stats__head { flex-direction: column; align-items: flex-start; gap: 4px; }
    .v2-stats__hero { grid-template-columns: repeat(2, 1fr); gap: 14px 16px; }
    /* длинная сумма услуг на всю ширину, иначе наезжает на соседнее число */
    .v2-stats__hero .v2-n:first-child { grid-column: 1 / -1; }
    .v2-stats__rest { grid-template-columns: repeat(2, 1fr); gap: 14px 16px; margin-top: 16px; }
}
@media (max-width: 560px) {
    .v2-stats { padding: 4px 0 26px; }
    .v2-stats__head { margin-bottom: 12px; }
    .v2-stats__title { font-size: 18px; }
    .v2-stats__hero { gap: 10px 16px; }
    .v2-stats__rest { gap: 10px 16px; margin-top: 12px; }
    .v2-stats__hero .v2-n__v { font-size: 20px; }
    .v2-stats__rest .v2-n__v { font-size: 16px; }
    .v2-n__l { font-size: 10.5px; }
}

/* ============================================================
   Базовый функционал: перечень строками (ТЗ 7.5, прототип
   feat-block-demo.html). Все функции равнозначны, без карточек,
   рамок и фона у строк; одно фоновое свечение на секцию.
   ============================================================ */
.v2-feat { position: relative; background: var(--bg); padding: 44px 0; color: var(--text); }
.v2-feat::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(60% 70% at 20% 0%, rgba(77, 127, 255, 0.14), transparent 70%);
}
.v2-feat__in { position: relative; }
.v2-feat__head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 18px; }
.v2-feat__title { margin: 0; font-size: 26px; font-weight: 800; line-height: 1.15; letter-spacing: -.01em; white-space: nowrap; }
.v2-feat__sub { margin: 0; font-size: 14px; color: var(--text-muted); }
.v2-feat__cta {
    margin-left: auto; flex: 0 0 auto;
    font-size: 13px; font-weight: 700; color: var(--indigo-lt); text-decoration: none; white-space: nowrap;
    border-bottom: 1px solid transparent; transition: border-color .15s;
}
.v2-feat__cta:hover { border-bottom-color: var(--indigo-lt); }
.v2-feat__cta:focus-visible { outline: 2px solid var(--acid); outline-offset: 3px; }

.v2-feat__list {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 28px;
    margin: 0; padding: 0; list-style: none;
    border-top: 1px solid var(--line);
}
.v2-featrow { display: flex; align-items: flex-start; gap: 9px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.v2-featrow__ico { flex: 0 0 18px; width: 18px; height: 18px; margin-top: 1px; color: var(--indigo-lt); }
.v2-featrow__title { display: block; font-size: 14px; font-weight: 700; line-height: 1.25; }
.v2-featrow__desc { display: block; margin-top: 1px; font-size: 12px; line-height: 1.3; color: var(--text-muted); }

.v2-feat__soon { margin: 14px 0 0; font-size: 12px; color: var(--text-muted); }
.v2-feat__soon-label { margin-right: 6px; font-weight: 700; color: var(--text); }
.v2-featchip { display: inline-block; padding: 2px 9px; margin: 0 6px 6px 0; border: 1px solid var(--line); border-radius: 999px; }

@media (max-width: 1100px) {
    .v2-feat__list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
    .v2-feat__head { flex-wrap: wrap; gap: 4px 14px; }
    .v2-feat__cta { margin-left: 0; flex-basis: 100%; }
    .v2-feat__list { grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
}
@media (max-width: 560px) {
    .v2-feat { padding: 32px 0; }
    .v2-feat__title { font-size: 22px; white-space: normal; }
    .v2-feat__sub { font-size: 13px; }
    .v2-feat__list { grid-template-columns: 1fr; }
    .v2-featrow { padding: 8px 0; }
    /* на телефоне остаются только названия: скрыто и от скринридера осознанно (ТЗ 7.5.8) */
    .v2-featrow__desc { display: none; }
}

/* ============================================================
   Как мы работаем: лента пяти шагов на рейле + панель «Что
   входит во внедрение» (ТЗ 7.6, прототип how-we-work.html).
   Ничего не выезжает и не меняется по наведению.
   ============================================================ */
.v2-hww { position: relative; background: var(--bg); padding: 60px 0; }
.v2-hww__head { margin-bottom: clamp(40px, 5vw, 64px); max-width: 640px; }
.v2-hww .v2-eyebrow { margin: 0 0 22px; }
.v2-hww__h { margin: 0 0 16px; font-size: clamp(30px, 4.4vw, 54px); line-height: 1.08; letter-spacing: -.01em; }
.v2-hww__h b { letter-spacing: -.02em; }
.v2-hww__lede { margin: 0; color: var(--text-muted); font-size: clamp(15px, 1.5vw, 18px); line-height: 1.55; }

/* Рейл зашит под ПЯТЬ шагов (ТЗ 7.6.5): обрывы линии на 3-м шаге при 1080
   и раскладка привязаны к числу колонок. Шагов станет не пять - пересчитывать
   раскладку и брейкпойнты, а не только массив данных. */
.v2-track { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 28px; }
.v2-track li { position: relative; padding-top: 34px; }
/* линия рейла: от левого края колонки через гэп до следующей */
.v2-track li::before {
    content: ""; position: absolute; left: 0; right: -28px; top: calc(var(--dot) / 2);
    height: 1px; background: var(--line);
}
.v2-track li:last-child::before { right: 0; }
/* точка шага с кольцом фонового цвета, чтобы линия не просвечивала */
.v2-track li::after {
    content: ""; position: absolute; left: 0; top: 0; width: var(--dot); height: var(--dot);
    border-radius: 50%; background: var(--indigo);
    box-shadow: 0 0 0 5px var(--bg);
}
/* точка последнего шага не залитая: поддержка - продолжение, а не конец */
.v2-track li:last-child::after { background: var(--bg); border: 2px solid var(--indigo); }
.v2-track__tag {
    display: block; font: 800 11px/1 Manrope, sans-serif; letter-spacing: .12em; text-transform: uppercase;
    color: var(--indigo-lt); margin-bottom: 12px;
}
.v2-track h3 { margin: 0 0 8px; font-size: 18px; font-weight: 800; letter-spacing: -.01em; line-height: 1.25; color: var(--text); }
.v2-track p { margin: 0; color: var(--text-muted); font-size: 14px; line-height: 1.6; }

.v2-included {
    margin-top: clamp(44px, 5vw, 72px); background: var(--card); border: 1px solid var(--line);
    border-radius: 24px; padding: clamp(24px, 3vw, 36px);
    display: grid; grid-template-columns: auto 1fr; column-gap: clamp(20px, 3vw, 44px); row-gap: 0; align-items: start;
}
.v2-included__label {
    margin: 0;
    font: 800 12px/1.5 Manrope, sans-serif; letter-spacing: .12em; text-transform: uppercase; color: var(--indigo-lt);
    max-width: 150px;
}
.v2-included ul {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px 28px;
}
.v2-included li { display: flex; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--text-muted); }
.v2-included li svg { width: 17px; height: 17px; flex: 0 0 auto; margin-top: 2px; color: var(--indigo-lt); }
.v2-included li b { color: var(--text); font-weight: 700; display: block; margin-bottom: 2px; font-size: 14.5px; }
.v2-included__extra {
    grid-column: 1 / -1; margin: clamp(22px, 2.6vw, 30px) 0 0; padding-top: clamp(20px, 2.4vw, 26px);
    border-top: 1px solid var(--line); color: var(--text-muted); font-size: 14.5px; line-height: 1.6;
}
/* бейдж «По запросу»: кислотный, как «Режим теста» в блоке Честного Знака (ТЗ 5.5) */
.v2-hww__pill {
    display: inline-block; margin-right: 10px; vertical-align: 1px;
    font: 800 10.5px/1 Manrope, sans-serif; letter-spacing: .1em; text-transform: uppercase;
    padding: 6px 10px; border-radius: 999px; background: var(--acid); color: var(--on-acid);
}
.v2-hww__note {
    margin-top: clamp(24px, 3vw, 36px); padding-left: 18px; border-left: 2px solid var(--line);
    color: var(--text-muted); font-size: 13.5px; line-height: 1.7; max-width: 820px;
}

@media (max-width: 1080px) {
    .v2-track { grid-template-columns: repeat(3, 1fr); row-gap: 44px; }
    .v2-track li:nth-child(3)::before { right: 0; }
    .v2-included ul { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
    /* лента разворачивается в вертикальный список, рейл слева */
    .v2-track { grid-template-columns: 1fr; gap: 0; }
    .v2-track li { padding: 0 0 30px 34px; }
    .v2-track li::before {
        left: calc(var(--dot) / 2 - .5px); right: auto; top: 0; bottom: 0; height: auto; width: 1px;
    }
    .v2-track li:last-child::before { bottom: auto; height: 0; }
    .v2-track li::after { top: 2px; }
    .v2-track__tag { margin-bottom: 6px; }
    .v2-included { grid-template-columns: 1fr; row-gap: 20px; }
    .v2-included__label { max-width: none; }
    .v2-included ul { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .v2-hww { padding: 40px 0; }
}

/* ============================================================
   Поддержка: шапка с показателем справа + сноска с графиком
   (ТЗ 7.12, прототип support-block-demo.html). Один показатель,
   без цветных плашек; карточка как остальные карточки сайта.
   ============================================================ */
.v2-sup { position: relative; background: var(--bg); padding: 44px 0; overflow: hidden; }
.v2-sup::before {
    content: ""; position: absolute; inset: -60% 45% 30% -10%;
    background: radial-gradient(closest-side, rgba(77, 127, 255, .20), transparent 70%);
    pointer-events: none;
}
.v2-sup__in { position: relative; }
.v2-sup__head { display: flex; align-items: flex-end; gap: 40px; }
.v2-sup__headline { flex: 1 1 auto; min-width: 0; }
.v2-sup .v2-eyebrow { margin: 0 0 10px; }
.v2-sup__title { margin: 0 0 10px; font-weight: 400; }
.v2-sup__title-1 {
    display: block;
    font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-weight: 500;
    font-size: 34px; line-height: 1.12; color: var(--text);
}
.v2-sup__title-2 {
    display: block;
    font-family: Manrope, sans-serif; font-weight: 800;
    font-size: 38px; line-height: 1.08; letter-spacing: -.01em;
    color: var(--text);
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
    .v2-sup__title-2 {
        background: linear-gradient(90deg, var(--text), var(--indigo-lt));
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent; color: transparent;
    }
}
.v2-sup__lead { margin: 0; font-size: 14px; line-height: 1.45; color: var(--text-muted); max-width: 520px; }

.v2-sup__stats {
    flex: 0 0 auto; display: grid;
    grid-template-columns: repeat(var(--cols, 1), minmax(220px, 1fr));
    gap: 10px; margin: 0; padding: 0;
}
.v2-slo {
    display: flex; flex-direction: column;
    background: rgba(255, 255, 255, .035); border: 1px solid var(--line);
    border-radius: 14px; padding: 14px 18px;
}
.v2-sup__stats dd { margin: 0; }
/* число первым визуально, в разметке порядок dt-dd по семантике */
.v2-slo__value {
    order: -1;
    display: flex; align-items: baseline; gap: 7px;
    white-space: nowrap; font-variant-numeric: tabular-nums;
    font-weight: 800; font-size: 40px; line-height: 1.05; letter-spacing: -.02em;
    color: var(--text); margin: 0 0 6px;
}
.v2-slo__prefix { font-size: 20px; font-weight: 700; color: var(--text-muted); }
.v2-slo__unit { font-size: 18px; font-weight: 700; color: var(--text-muted); }
.v2-slo__label { font-size: 13px; font-weight: 700; color: var(--text); }

.v2-sup__foot {
    margin: 18px 0 0; padding-top: 14px; border-top: 1px solid var(--line);
    font-size: 12px; line-height: 1.5; color: var(--text-muted);
}
.v2-sup__foot b { color: var(--text); font-weight: 700; }

@media (max-width: 1080px) {
    .v2-sup__title-1 { font-size: 30px; }
    .v2-sup__title-2 { font-size: 34px; }
}
@media (max-width: 860px) {
    .v2-sup { padding: 36px 0; }
    .v2-sup__head { display: block; }
    .v2-sup__stats { margin-top: 18px; grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr)); }
    .v2-slo { max-width: 340px; }
}
@media (max-width: 560px) {
    .v2-sup { padding: 32px 0; }
    .v2-sup__title-1 { font-size: 23px; }
    .v2-sup__title-2 { font-size: 26px; }
    .v2-sup__stats { grid-template-columns: 1fr; gap: 8px; margin-top: 16px; }
    .v2-slo { max-width: none; padding: 12px 14px; border-radius: 12px; }
    .v2-slo__value { font-size: 30px; }
    .v2-sup__foot { margin-top: 16px; }
}

/* ============================================================
   Экономика (ТЗ 7.8, прототип roi-block-v2.html). Две колонки
   на воздухе и тонких линиях --line-soft, без карточек и полос.
   Кислотный: ключевое слово заголовка + три процента, всё.
   Свечение в правом верхнем углу (у соседних блоков - слева,
   чтобы не читалось повтором).
   ============================================================ */
.v2-roi { position: relative; background: var(--bg); overflow: hidden; padding: 48px 0 52px; }
.v2-roi::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(820px 380px at 82% -25%, rgba(77, 127, 255, .20), transparent 65%);
}
.v2-roi__in { position: relative; }
.v2-roi__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .92fr); gap: 56px; }
.v2-roi__eb { margin: 0 0 18px; font-size: 11.5px; letter-spacing: .18em; }

.v2-roi__h { margin: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.12; letter-spacing: -.025em; font-weight: 400; }
.v2-roi__h i { display: block; font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-weight: 400; color: #E8EAFF; }
.v2-roi__h b { display: block; font-weight: 800; letter-spacing: -.03em; color: var(--text); }
.v2-roi__h b em { font-style: normal; color: var(--acid); }

.v2-roi__lead { margin: 18px 0 0; max-width: 42ch; font-size: 15.5px; line-height: 1.6; color: var(--text-mid); }

.v2-roi__pros { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px 28px; margin-top: 30px; }
/* без галочек и иконок: каждую ячейку отделяет тонкая линия сверху (ТЗ 7.8.3) */
.v2-roi__pro { padding-top: 14px; border-top: 1px solid var(--line-soft); font-size: 14.5px; line-height: 1.45; font-weight: 500; }

.v2-kpi { padding: 18px 0; border-top: 1px solid var(--line-soft); display: grid; grid-template-columns: auto 1fr; gap: 0 26px; align-items: baseline; }
.v2-kpi:first-child { padding-top: 0; border-top: 0; }
.v2-kpi__n {
    grid-row: span 2; font-size: clamp(38px, 4.2vw, 52px); line-height: .9; font-weight: 800;
    letter-spacing: -.04em; color: var(--acid);
}
.v2-kpi__t { font-size: 16.5px; font-weight: 700; letter-spacing: -.01em; color: var(--text); }
.v2-kpi__d { font-size: 13.5px; line-height: 1.5; color: var(--text-muted); margin-top: 6px; }

.v2-roi__pay { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line-soft); display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.v2-roi__pay-l { font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-size: 18px; color: var(--text-mid); }
.v2-roi__pay-v { font-size: 24px; font-weight: 800; letter-spacing: -.02em; color: var(--text); }
.v2-roi__note { margin: 12px 0 0; font-size: 12.5px; line-height: 1.55; color: var(--text-muted); }

@media (max-width: 920px) {
    .v2-roi__grid { grid-template-columns: 1fr; gap: 40px; }
    .v2-roi__pros { margin-top: 32px; }
}
@media (max-width: 560px) {
    .v2-roi { padding: 40px 0 44px; }
    .v2-roi__lead { font-size: 15px; }
    .v2-roi__pros { grid-template-columns: 1fr; gap: 18px; }
    .v2-kpi { gap: 0 16px; padding: 18px 0; }
    .v2-kpi__n { font-size: 34px; }
    .v2-kpi__t { font-size: 15.5px; }
    .v2-kpi__d { font-size: 12.5px; }
}

/* ============================================================
   Результаты (ТЗ 7.9, прототип res-block-demo.html). Три строки
   «раньше/теперь» на линиях, без карточек и цифр: числа живут
   только в блоке экономики. Слова «Раньше»/«Теперь» - серифный
   курсив, часть текста строки, а не заголовок колонки.
   ============================================================ */
.v2-res { position: relative; padding: 52px 0; }
.v2-res__in { position: relative; }
.v2-res__head { margin-bottom: 30px; }
.v2-res .v2-eyebrow { margin: 0 0 11px; }
.v2-res__h { margin: 0; font-size: 28px; font-weight: 800; line-height: 1.18; max-width: 560px; color: var(--text); }
.v2-res__sub { margin: 11px 0 0; font-size: 14px; line-height: 1.5; color: var(--text-muted); max-width: 600px; }

.v2-res__rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.v2-res__rows li {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
    gap: 40px; align-items: baseline; padding: 18px 0;
    border-bottom: 1px solid var(--line);
}
.v2-res__rows li:last-child { border-bottom: 0; }
.v2-resrow__was { font-size: 13.5px; line-height: 1.4; color: var(--text-muted); }
.v2-resrow__now { font-size: 14.5px; font-weight: 700; line-height: 1.4; color: var(--text); }
.v2-resrow__lbl {
    font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-weight: 500;
    font-size: 13.5px; color: var(--role); margin-right: 8px;
}
/* «Теперь» белым, не кислотным: кислотный занят другими ролями (ТЗ 5.5) */
.v2-resrow__lbl--now { color: var(--text); }

.v2-res__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
    margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--line);
}
.v2-res__pills { display: flex; flex-wrap: wrap; gap: 6px; }
/* только рамка, без заливки: плашки некликабельны (ТЗ 7.9.6) */
.v2-res__pill {
    font-size: 12px; font-weight: 700; color: #E8EAF7;
    padding: 6px 13px; border: 1px solid var(--line); border-radius: 999px; white-space: nowrap;
}
.v2-res__note { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--text-muted); max-width: 420px; }

@media (max-width: 1100px) {
    .v2-res__h { font-size: 26px; }
}
@media (max-width: 860px) {
    .v2-res__rows li { grid-template-columns: 1fr; gap: 7px; }
    .v2-res__foot { flex-direction: column; align-items: flex-start; }
    .v2-res__note { max-width: none; }
}
@media (max-width: 560px) {
    .v2-res { padding: 40px 0; }
    .v2-res__head { margin-bottom: 24px; }
    .v2-res__h { font-size: 21px; }
    .v2-res__sub { font-size: 13px; }
    .v2-res__rows li { padding: 16px 0; }
    .v2-resrow__was { font-size: 13px; }
    .v2-resrow__now { font-size: 14px; }
}

/* ============================================================
   Отзывы (ТЗ 7.10, прототип reviews-block-demo.html). Ровная
   сетка 3 на 2, автор прижат к низу карточки - это и есть
   замена masonry. Первая карточка кеглем крупнее.
   ============================================================ */
.v2-rev { position: relative; padding: 52px 0 60px; }
.v2-rev__in { position: relative; }
.v2-rev__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.v2-rev .v2-eyebrow { margin: 0 0 10px; }
.v2-rev__title { margin: 0; font-weight: 400; }
.v2-rev__title-1 {
    display: block;
    font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-weight: 500;
    font-size: 34px; line-height: 1.12; color: var(--text);
}
.v2-rev__title-2 {
    display: block;
    font-family: Manrope, sans-serif; font-weight: 800;
    font-size: 38px; line-height: 1.08; letter-spacing: -.01em;
    color: var(--text);
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
    .v2-rev__title-2 {
        background: linear-gradient(90deg, var(--text), var(--indigo-lt));
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent; color: transparent;
    }
}
/* одна из двух стрелок страницы: текстовая ссылка-переход (ТЗ 5.4) */
.v2-rev__link {
    display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto;
    font-size: 13px; font-weight: 700; color: var(--indigo-lt); text-decoration: none; white-space: nowrap;
}
.v2-rev__link:hover { text-decoration: underline; }
.v2-rev__link:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.v2-rev__link svg { width: 14px; height: 14px; }

.v2-rev__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 0; padding: 0; list-style: none; }
.v2-revcard {
    display: flex; flex-direction: column; justify-content: space-between;
    background: rgba(255, 255, 255, .035); border: 1px solid var(--line);
    border-radius: 14px; padding: 16px 18px; min-height: 132px;
}
.v2-revcard__text { margin: 0; font-size: 14px; line-height: 1.45; color: var(--text); }
.v2-revcard--lead .v2-revcard__text { font-size: 16px; line-height: 1.4; }
.v2-revcard__author { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--line); font-size: 12px; color: var(--text-muted); }
.v2-revcard__author b { color: var(--text); font-weight: 700; }

@media (max-width: 1080px) {
    .v2-rev__title-1 { font-size: 30px; }
    .v2-rev__title-2 { font-size: 34px; }
}
@media (max-width: 860px) {
    .v2-rev__head { flex-direction: column; align-items: flex-start; gap: 12px; }
    .v2-rev__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
    .v2-rev { padding: 40px 0 44px; }
    .v2-rev__title-1 { font-size: 23px; }
    .v2-rev__title-2 { font-size: 26px; }
    .v2-rev__grid { grid-template-columns: 1fr; gap: 8px; }
    .v2-revcard { min-height: 0; padding: 14px 16px; border-radius: 12px; }
    .v2-revcard--lead .v2-revcard__text { font-size: 15px; }
}

/* ============================================================
   О компании (ТЗ 7.11, прототип about-block.html). Шапка в
   строку + три колонки, всё видно без кликов. Кислотного нет,
   колонки - просто текст. Свечение слева сверху.
   ============================================================ */
.v2-about { position: relative; background: var(--bg); overflow: hidden; padding: 48px 0 52px; }
.v2-about::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background: radial-gradient(820px 360px at 20% -30%, rgba(77, 127, 255, .18), transparent 65%);
}
.v2-about__in { position: relative; }
.v2-about__head { display: grid; grid-template-columns: minmax(0, auto) minmax(0, 1fr); gap: 12px 56px; align-items: baseline; }
.v2-about__h {
    margin: 0; font-family: 'Source Serif 4', Georgia, serif; font-style: italic; font-weight: 400;
    font-size: clamp(30px, 3.4vw, 42px); line-height: 1.1; letter-spacing: -.02em; color: #E8EAFF; white-space: nowrap;
}
.v2-about__lead { margin: 0; font-size: 15.5px; line-height: 1.6; color: var(--text-mid); max-width: 56ch; }
.v2-about__lead b { font-weight: 700; color: var(--text); }

.v2-about__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px; margin-top: 44px; }
.v2-about__col { padding-top: 16px; border-top: 1px solid var(--line-soft); }
.v2-about__k { font-size: 11px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--indigo); margin-bottom: 22px; }
.v2-about__it + .v2-about__it { margin-top: 22px; }
.v2-about__it-t { font-size: 16px; font-weight: 700; line-height: 1.3; letter-spacing: -.01em; color: var(--text); }
.v2-about__it-d { margin-top: 6px; font-size: 13.5px; line-height: 1.5; color: var(--text-muted); }

@media (max-width: 980px) {
    .v2-about__head { grid-template-columns: 1fr; gap: 14px; }
    .v2-about__h { white-space: normal; }
    .v2-about__cols { grid-template-columns: 1fr; gap: 26px; margin-top: 32px; }
}
@media (max-width: 560px) {
    .v2-about { padding: 40px 0 44px; }
    .v2-about__lead { font-size: 15px; }
}

/* ============================================================
   Форма заявки (ТЗ 7.13, прототип form-block-demo.html).
   Единственная кислотная кнопка страницы. Работает без JS.
   ============================================================ */
.v2-form { position: relative; background: var(--bg); padding: 48px 0; overflow: hidden; }
.v2-form::before {
    content: ""; position: absolute; inset: -45% 55% 35% -12%;
    background: radial-gradient(closest-side, rgba(77, 127, 255, .20), transparent 70%);
    pointer-events: none;
}
.v2-form__in { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; }
.v2-form .v2-eyebrow { margin: 0 0 10px; }
.v2-form__title { margin: 0 0 12px; font-weight: 400; }
.v2-form__title-1 {
    display: block; font-family: 'Source Serif 4', Georgia, serif;
    font-style: italic; font-weight: 500; font-size: 32px; line-height: 1.12; color: var(--text);
}
.v2-form__title-2 {
    display: block; font-family: Manrope, sans-serif; font-weight: 800;
    font-size: 36px; line-height: 1.08; letter-spacing: -.01em; color: var(--text);
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
    .v2-form__title-2 {
        background: linear-gradient(90deg, var(--text), var(--indigo-lt));
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent; color: transparent;
    }
}
.v2-form__sub { margin: 0 0 20px; font-size: 14px; line-height: 1.5; color: var(--text-muted); max-width: 460px; }

/* что будет дальше: снимает главный страх формы «а что потом» */
.v2-form__steps { margin: 0 0 20px; padding: 0; list-style: none; }
.v2-form__steps li {
    position: relative; padding: 0 0 0 26px; margin-bottom: 9px;
    font-size: 13px; line-height: 1.45; color: var(--text-muted);
}
.v2-form__steps li::before {
    content: ""; position: absolute; left: 8px; top: 8px;
    width: 5px; height: 5px; border-radius: 50%; background: var(--indigo-lt);
}
.v2-form__steps b { color: var(--text); font-weight: 700; }
.v2-form__contacts { display: flex; flex-wrap: wrap; gap: 8px; }
.v2-form__contact {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 14px; border: 1px solid var(--line); border-radius: 10px;
    font-size: 13px; font-weight: 700; color: var(--text); text-decoration: none;
}
.v2-form__contact:hover { border-color: var(--indigo-lt); color: var(--indigo-lt); }
.v2-form__contact:focus-visible { outline: 2px solid var(--indigo-lt); outline-offset: 3px; }
.v2-form__contact svg { width: 15px; height: 15px; flex: 0 0 15px; stroke: currentColor; }

/* --- карточка формы --- */
.v2-fc { background: rgba(255, 255, 255, .025); border: 1px solid var(--line); border-radius: 16px; padding: 22px; }
.v2-fc__formerror { margin: 0 0 12px; font-size: 13px; line-height: 1.4; color: #FF8A8A; }
.v2-fc__tariff { border: 0; margin: 0 0 14px; padding: 0; }
.v2-fc__legend { padding: 0; margin-bottom: 7px; font-size: 12px; font-weight: 700; color: var(--text); }
.v2-fc__legend span { color: var(--text-muted); font-weight: 500; }
.v2-fc__pills { display: flex; flex-wrap: wrap; gap: 6px; }
.v2-fc__pill { position: relative; }
.v2-fc__pill input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.v2-fc__pill span {
    display: block; padding: 8px 14px;
    border: 1px solid var(--line); border-radius: 999px;
    font-size: 13px; font-weight: 600; color: var(--text-muted);
}
/* выбранная пилюля индиго, не кислотная: кислотный занят кнопкой (ТЗ 7.13.4) */
.v2-fc__pill input:checked + span { border-color: var(--indigo-lt); color: var(--text); background: rgba(110, 148, 255, .16); }
.v2-fc__pill input:focus-visible + span { outline: 2px solid var(--indigo-lt); outline-offset: 2px; }

.v2-fc__row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.v2-field { margin-bottom: 10px; }
.v2-field__label { display: block; margin-bottom: 5px; font-size: 12px; font-weight: 700; color: var(--text); }
.v2-field__label span { color: var(--text-muted); font-weight: 500; }
.v2-field__input,
.v2-field__area {
    width: 100%;
    font: 400 14px/1.4 Manrope, system-ui, sans-serif; /* textarea иначе уедет в моноширинный */
    color: var(--text);
    background: rgba(255, 255, 255, .04);
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: 11px 13px;
}
.v2-field__area { min-height: 74px; resize: vertical; }
.v2-field__input::placeholder, .v2-field__area::placeholder { color: #5C6199; }
/* кольцо фокуса: второе и последнее разрешённое исключение box-shadow (ТЗ 7.13.6) */
.v2-field__input:focus, .v2-field__area:focus {
    outline: none; border-color: var(--indigo-lt);
    box-shadow: 0 0 0 3px rgba(110, 148, 255, .18);
}
.v2-field--error .v2-field__input, .v2-field--error .v2-field__area { border-color: #FF8A8A; }
.v2-field__error { margin: 5px 0 0; font-size: 12px; color: #FF8A8A; }

/* honeypot: видно только ботам */
.v2-fc__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.v2-fc__captcha { margin-top: 14px; }
.v2-fc__captcha .smart-captcha { border-radius: 10px; overflow: hidden; }

.v2-fc__consent {
    display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start;
    margin: 16px 0 18px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
    font-size: 12px; line-height: 1.45; color: var(--text-muted);
}
.v2-fc__consent input { width: 18px; height: 18px; margin: 1px 0 0; accent-color: var(--acid); cursor: pointer; }
.v2-fc__consent a { color: var(--indigo-lt); }
.v2-fc__consent.v2-field--error label { color: #FF8A8A; }

.v2-fc__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
/* единственная кислотная кнопка страницы (ТЗ 5.5); стрелки в ней нет (ТЗ 5.4) */
.v2-fc__btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 22px; border: 0; border-radius: 12px;
    font: 800 15px/1 Manrope, sans-serif; color: var(--on-acid);
    background: var(--acid); cursor: pointer;
}
.v2-fc__btn:hover { background: #D8FF7A; }
.v2-fc__btn:focus-visible { outline: 2px solid var(--text); outline-offset: 3px; }
.v2-fc__hint { margin: 0; font-size: 12px; line-height: 1.4; color: var(--text-muted); }

@media (max-width: 1080px) {
    .v2-form__title-1 { font-size: 28px; }
    .v2-form__title-2 { font-size: 32px; }
}
@media (max-width: 860px) {
    .v2-form { padding: 36px 0; }
    .v2-form__in { grid-template-columns: 1fr; gap: 24px; }
    .v2-form__sub { max-width: none; }
}
@media (max-width: 560px) {
    .v2-form { padding: 32px 0; }
    .v2-form__title-1 { font-size: 23px; }
    .v2-form__title-2 { font-size: 26px; }
    .v2-fc { padding: 18px 16px; border-radius: 14px; }
    .v2-fc__row { grid-template-columns: 1fr; gap: 0; }
    .v2-fc__btn { width: 100%; justify-content: center; }
    .v2-fc__actions { gap: 10px; }
}

/* ============================================================
   Страница благодарности /thanks/ (ТЗ 7.13.5, PRG)
   ============================================================ */
.v2-thanks { position: relative; background: var(--bg); padding: calc(var(--header-h, 72px) + 96px) 0 120px; overflow: hidden; min-height: 55vh; }
.v2-thanks::before {
    content: ""; position: absolute; inset: -45% 45% 25% -12%;
    background: radial-gradient(closest-side, rgba(77, 127, 255, .20), transparent 70%);
    pointer-events: none;
}
.v2-thanks__in { position: relative; max-width: 640px; }
.v2-thanks__h { margin: 0 0 16px; font-weight: 400; }
.v2-thanks__h-1 {
    display: block; font-family: 'Source Serif 4', Georgia, serif;
    font-style: italic; font-weight: 500; font-size: 36px; line-height: 1.1; color: var(--text);
}
.v2-thanks__h-2 {
    display: block; font-family: Manrope, sans-serif; font-weight: 800;
    font-size: 40px; line-height: 1.1; letter-spacing: -.01em; color: var(--text);
}
@supports (background-clip: text) or (-webkit-background-clip: text) {
    .v2-thanks__h-2 {
        background: linear-gradient(90deg, var(--text), var(--indigo-lt));
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent; color: transparent;
    }
}
.v2-thanks__lead { margin: 0 0 10px; font-size: 15.5px; line-height: 1.6; color: var(--text-mid); }
.v2-thanks__note { margin: 0 0 26px; font-size: 13.5px; line-height: 1.6; color: var(--text-muted); }
.v2-thanks__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; }
.v2-thanks__home { font-size: 13.5px; font-weight: 700; color: var(--indigo-lt); text-decoration: none; }
.v2-thanks__home:hover { text-decoration: underline; }
@media (max-width: 560px) {
    .v2-thanks { padding: calc(var(--header-h, 64px) + 40px) 0 72px; }
    .v2-thanks__h-1 { font-size: 27px; }
    .v2-thanks__h-2 { font-size: 30px; }
}

/* ============================================================
   Пост-правки 06.08.2026 (замечания юзера): единый фон, единый
   ритм отступов, свечения только в трёх точках страницы.
   ============================================================ */

/* Один тёмный фон на всю страницу. Старые секции стояли на #06061C и градиентах
   #0B0B2A, наши - на #000025: стык читался как «изменяющийся свет подложки». */
body { background: #000025; }
.section--better, .section--faq, .section--about { background: none; }
.trust__bg { display: none; }

/* Свечения остаются только на первом экране, за ядром схемы ролей и у формы.
   Остальные пятна в разных углах подчёркивали разнобой отступов. */
.v2-feat::before, .v2-sup::before, .v2-roi::before, .v2-about::before { background: none; }

/* Единый ритм страницы (ТЗ 2.6): 60px на десктопе, 40 на мобильном - для ВСЕХ
   секций, включая нетронутые (.section жил с 8.5rem, .trust с 6rem).
   Исключения: первый экран (компенсация шапки), полоса FBS (часть экрана 1),
   Честный Знак (связка с путём FBS), страница благодарности. */
.section, .trust,
.v2-stats, .v2-rol, .v2-fbp, .v2-hww, .v2-feat, .v2-sup, .v2-roi, .v2-about, .v2-res, .v2-rev, .v2-form {
    padding-top: 60px; padding-bottom: 60px;
}
/* секция-контейнер: её подсекции несут ритм сами */
.section--functionality { padding-top: 0; padding-bottom: 0; }
.v2-cz { padding-top: 20px; padding-bottom: 60px; }
@media (max-width: 560px) {
    .section, .trust,
    .v2-stats, .v2-rol, .v2-fbp, .v2-hww, .v2-feat, .v2-sup, .v2-roi, .v2-about, .v2-res, .v2-rev, .v2-form {
        padding-top: 40px; padding-bottom: 40px;
    }
    .section--functionality { padding-top: 0; padding-bottom: 0; }
    .v2-cz { padding-top: 12px; padding-bottom: 40px; }
}

/* прогресс-полоса скролл-механики тарифов: механика мертва (нет data-pricing-story),
   полоска висела декоративным огрызком под промо-плашкой */
.pricing-story__progress { display: none; }

/* ============================================================
   Пост-правки #2, 06.08.2026 (замечания маркетинга)
   ============================================================ */

/* рамка цифр не упирается в края экрана на промежуточных ширинах */
.v2-stats .v2-container { width: calc(100% - 36px); }
@media (max-width: 560px) {
    .v2-stats .v2-container { padding: 16px 16px 18px; }
}

/* Путь заказа FBS: «оставь как есть, но уже» - контент сжат к центру,
   кегли и зазоры уменьшены */
.v2-fbp__in { max-width: 1000px; margin-inline: auto; }
.v2-fbp__h { font-size: clamp(28px, 3vw, 38px); }
.v2-fbp__lead { font-size: 16px; margin-bottom: 38px; }
.v2-snake { gap: 56px 32px; margin-bottom: 38px; }
.v2-st__t { font-size: 17px; }
.v2-st__p { font-size: 14px; }
.v2-fig__v { font-size: clamp(34px, 4vw, 46px); }
/* линии рейла под новый зазор колонок (32px вместо 40) */
.v2-st--1::before, .v2-st--2::before, .v2-st--5::before { right: -38px; }
.v2-turn::after { right: -32px; height: calc(100% + 56px); }

/* Честный Знак: меньше воздуха сверху и снизу, но текст не прилипает */
.v2-cz .v2-eyebrow { margin-bottom: 12px; }
.v2-cz__h { font-size: clamp(28px, 3vw, 38px); margin-bottom: 10px; }
.v2-cz__lead { margin-bottom: 22px; }
.v2-czpanel { padding: clamp(22px, 2.6vw, 32px); }

/* Зебра фонов: тёмно-синий базовый и «слегка поярче» с единым ритмом отступов.
   Переопределяется и --bg: на него завязаны кольца кружков рейла и точки схем -
   иначе на светлой секции они просвечивали бы тёмным. */
#fbs-picking, #fbs-marking, #support, #roi, #about, #better { --bg: #04042E; background: #04042E; }

/* Честный Знак: секция прижата к пути FBS (общая светлая зона зебры) */
.v2-cz { padding-top: 12px; padding-bottom: 48px; }

/* Скролл-механики «story» мертвы, но их sticky-обёртки оставались растянутыми
   на высоту экрана (min-height: calc(100vh - 88px)): на мониторах выше моего
   тестового вьюпорта это давало «дыру» под контентом у «Почему выбирают»
   и запас у тарифов. Обёртки становятся обычными блоками по контенту. */
.story__sticky, .pricing-story__sticky {
    position: static; top: auto; min-height: 0;
}
.pricing-story__sticky > .container-wide { min-height: 0; }

/* при reduced-motion переходы и анимации глушатся (ТЗ 2.4) */
@media (prefers-reduced-motion: reduce) {
    [class^="v2-"], [class^="v2-"]::before, [class^="v2-"]::after,
    [class*=" v2-"], [class*=" v2-"]::before, [class*=" v2-"]::after {
        transition: none !important;
        animation: none !important;
    }
}
