/* css/variables.css */
/* Токены редизайна: только цвета и шрифты брендбука LinkBox
   (~/Работа/Linkbox/LinkBox _BrandBook.pdf, с. 16–19).
   Спека: docs/superpowers/specs/2026-09-24-linkbox-redesign-design.md */

@font-face {
    font-family: 'Involve';
    src: url('../fonts/Involve-VF.woff') format('woff');
    font-weight: 300 800;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'MabryPro';
    src: url('../fonts/MabryPro-Regular.woff') format('woff');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'MabryPro';
    src: url('../fonts/MabryPro-Bold.woff') format('woff');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

:root {
    /* Фирменные цвета */
    --lb-navy: #001359;          /* основной, ≈ половина площади */
    --lb-violet: #855cff;        /* графика, акценты, крупные плашки */
    --lb-violet-ink: #6739f1;    /* кнопки и логотип на белом: белый текст 6,1:1 */
    --lb-lavender: #c3d0ff;      /* второстепенный текст на синем */
    --lb-gray: #f1f1f1;
    --lb-white: #ffffff;
    --lb-ink: #111111;
    --lb-ink-muted: rgb(17 17 17 / 0.68);

    /* Полосы — градиенты только из фирменных цветов (спека §2.2).
       Прозрачность — rgb(… / 0), не transparent: иначе серая муть. */
    --lb-grad-navy:
        radial-gradient(50% 70% at 85% 10%, rgb(133 92 255 / 0.35), rgb(133 92 255 / 0) 70%),
        radial-gradient(40% 60% at 0% 100%, rgb(133 92 255 / 0.18), rgb(133 92 255 / 0) 70%),
        linear-gradient(160deg, #001359 0%, #00175f 50%, #001359 100%);
    --lb-grad-light:
        radial-gradient(45% 60% at 90% 30%, rgb(195 208 255 / 0.55), rgb(195 208 255 / 0) 70%),
        linear-gradient(160deg, #ffffff 0%, #f6f7ff 60%, #eef1ff 100%);
    --lb-grad-gray:
        radial-gradient(50% 70% at 10% 0%, rgb(195 208 255 / 0.45), rgb(195 208 255 / 0) 70%),
        linear-gradient(180deg, #f1f1f1 0%, #f4f4f8 100%);
    /* Основа — #6739f1: белый мелкий текст на #855cff дает 4,2:1 < 4,5:1.
       Блик #855cff ≤ 0,45 держит худшую точку ≈ 5,2:1. */
    --lb-grad-violet:
        radial-gradient(55% 90% at 85% 15%, rgb(133 92 255 / 0.45), rgb(133 92 255 / 0) 70%),
        radial-gradient(60% 140% at 100% 100%, rgb(0 19 89 / 0.35), rgb(0 19 89 / 0) 70%),
        linear-gradient(120deg, #6739f1 0%, #6739f1 100%);

    /* Служебные цвета интерфейса — не из брендбука, только для полей форм. */
    --lb-field-border: #e2e2e2;  /* рамка поля (спека §6) */
    --lb-error: #d93025;         /* ошибка формы */

    /* Шрифты */
    --lb-font-head: 'MabryPro', Arial, sans-serif;
    --lb-font-text: 'Involve', Arial, sans-serif;

    /* Размеры */
    --lb-container: 1160px;
    --lb-gutter: 20px;
    --lb-radius-sm: 8px;
    --lb-radius: 12px;
    --lb-radius-lg: 22px;
    --lb-section-y: 96px;
    --lb-header-h: 72px;

    /* Тени */
    --lb-highlight: inset 0 1px 0 rgb(255 255 255 / 0.9);
    --lb-shadow-btn: 0 10px 22px -12px rgb(103 57 241 / 0.8);
    --lb-shadow-lift: 0 18px 34px -14px rgb(0 19 89 / 0.35);
    --lb-transition: 0.2s ease;
}

@media (max-width: 980px) {
    :root { --lb-section-y: 72px; }
}

@media (max-width: 640px) {
    :root { --lb-section-y: 56px; }
}

/* css/base.css */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    /* Якоря не прячутся под липкой шапкой */
    scroll-padding-top: calc(var(--lb-header-h) + 24px);
    -webkit-text-size-adjust: 100%;
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}

body {
    margin: 0;
    background: #fff;
    color: var(--lb-ink);
    font-family: var(--lb-font-text);
    font-size: 17px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

img,
svg {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--lb-transition);
}

a:hover {
    color: var(--lb-violet-ink);
}

h1, h2, h3, h4 {
    margin: 0;
    font-family: var(--lb-font-head);
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: 0;
    text-wrap: balance;
}

p {
    margin: 0;
}

p, li, dd, figcaption, blockquote {
    text-wrap: pretty;
}

ul, ol {
    margin: 0;
    padding: 0;
}

button,
input,
textarea {
    font: inherit;
    color: inherit;
}

/* Кольцо фокуса контрастно фону (≥ 3:1): фиолетовое на светлом,
   лавандовое на синем, белое на фиолетовом. */
:focus-visible {
    outline: 3px solid var(--lb-violet-ink);
    outline-offset: 2px;
}

.lb-band--navy :focus-visible,
.site-header :focus-visible,
.site-nav-mobile :focus-visible,
.site-footer :focus-visible {
    outline-color: var(--lb-lavender);
}

.lb-band--violet :focus-visible {
    outline-color: #fff;
}

/* Атрибут hidden сильнее авторского display (вкладки сценариев, панели). */
[hidden] {
    display: none !important;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

.lb-skip-link {
    position: absolute;
    left: 16px;
    top: -60px;
    z-index: 200;
    padding: 10px 16px;
    background: var(--lb-violet-ink);
    color: #fff;
    border-radius: var(--lb-radius-sm);
}

.lb-skip-link:focus {
    top: 12px;
    color: #fff;
}

/* ── Каркас ───────────────────────────────────────────── */

.lb-container {
    width: 100%;
    max-width: calc(var(--lb-container) + var(--lb-gutter) * 2);
    margin: 0 auto;
    padding: 0 var(--lb-gutter);
}

.lb-section {
    padding: var(--lb-section-y) 0;
}

.lb-section--tight {
    padding: 45px 0;
}

.lb-empty {
    color: var(--lb-ink-muted);
}

/* ── Кнопки (спека §2.4) ──────────────────────────────── */

.lb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 52px;
    padding: 14px 24px;
    border: 0;
    border-radius: var(--lb-radius);
    background: var(--lb-violet-ink);
    color: #fff;
    box-shadow: var(--lb-shadow-btn);
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 16px;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    transition: transform var(--lb-transition), box-shadow var(--lb-transition),
        background-color var(--lb-transition), color var(--lb-transition);
}

.lb-btn:hover {
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 16px 28px -14px rgb(103 57 241 / 0.9);
}

.lb-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    transform: none;
}

.lb-btn--lg {
    min-height: 58px;
    padding: 16px 28px;
    font-size: 17px;
}

.lb-btn--sm {
    min-height: 42px;
    padding: 10px 18px;
    font-size: 14px;
}

/* Вторая кнопка на светлом фоне */
.lb-btn--ghost {
    background: transparent;
    color: var(--lb-navy);
    box-shadow: inset 0 0 0 2px var(--lb-navy);
}

.lb-btn--ghost:hover {
    background: var(--lb-navy);
    color: #fff;
    box-shadow: inset 0 0 0 2px var(--lb-navy);
}

/* Вторая кнопка на синем и фиолетовом */
.lb-btn--on-dark {
    background: transparent;
    color: #fff;
    box-shadow: inset 0 0 0 1.5px rgb(195 208 255 / 0.5);
}

.lb-btn--on-dark:hover {
    background: rgb(195 208 255 / 0.12);
    color: #fff;
    box-shadow: inset 0 0 0 1.5px var(--lb-lavender);
}

/* Белая — на фиолетовых полосах */
.lb-btn--white {
    background: #fff;
    color: var(--lb-navy);
    box-shadow: none;
}

.lb-btn--white:hover {
    background: #fff;
    color: var(--lb-violet-ink);
    box-shadow: 0 16px 28px -14px rgb(0 19 89 / 0.5);
}

/* ── Текст статей и документов (спека §6) ─────────────── */

.lb-prose {
    font-size: 18px;
    line-height: 1.65;
    color: var(--lb-ink);
}

.lb-prose > * + * {
    margin-top: 1em;
}

.lb-prose h2 {
    margin-top: 1.8em;
    font-size: 28px;
    line-height: 1.2;
    color: var(--lb-navy);
    scroll-margin-top: calc(var(--lb-header-h) + 24px);
}

.lb-prose h3 {
    margin-top: 1.5em;
    font-size: 21px;
    line-height: 1.3;
    color: var(--lb-navy);
}

.lb-prose ul,
.lb-prose ol {
    padding-left: 1.3em;
}

.lb-prose li + li {
    margin-top: 0.35em;
}

.lb-prose ul li::marker {
    color: var(--lb-violet-ink);
}

.lb-prose a {
    color: var(--lb-violet-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Кнопки в тексте: цвет задает вариант кнопки, не ссылка текста. */
.lb-prose a.lb-btn {
    color: #fff;
    text-decoration: none;
}

.lb-prose a.lb-btn--white,
.lb-prose a.lb-btn--ghost {
    color: var(--lb-navy);
}

/* Наведение — как у самих кнопок: правила выше сильнее их :hover. */
.lb-prose a.lb-btn--white:hover {
    color: var(--lb-violet-ink);
}

.lb-prose a.lb-btn--ghost:hover {
    color: #fff;
}

.lb-prose strong {
    font-weight: 600;
    color: var(--lb-navy);
}

.lb-prose blockquote {
    margin: 1.4em 0;
    padding: 4px 0 4px 22px;
    border-left: 4px solid var(--lb-violet-ink);
    color: var(--lb-navy);
}

/* ── Полосы (спека §2.2) ─────────────────────────────── */

.lb-band {
    position: relative;
    overflow: hidden;
    padding: var(--lb-section-y) 0;
}

.lb-band > .lb-container {
    position: relative;
    z-index: 1;
}

.lb-band--navy   { background: var(--lb-grad-navy);   color: #fff; }
.lb-band--light  { background: var(--lb-grad-light);  color: var(--lb-ink); }
.lb-band--gray   { background: var(--lb-grad-gray);   color: var(--lb-ink); }
.lb-band--violet { background: var(--lb-grad-violet); color: #fff; }

/* ── Заголовок секции: надзаголовок + H2 + подводка (спека §2.3) ── */

.lb-head {
    margin-bottom: 40px;
}

.lb-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--lb-violet-ink);
}

.lb-eyebrow::before {
    content: '';
    flex: none;
    width: 14px;
    height: 14px;
    background: currentColor;
    -webkit-mask: url('../img/brand/bracket.svg') center / contain no-repeat;
    mask: url('../img/brand/bracket.svg') center / contain no-repeat;
}

/* На синем текст надзаголовка лавандовый (11:1): #855cff 13px дает 4,0:1.
   Фиолетовым остается значок — графике достаточно 3:1. */
.lb-band--navy .lb-eyebrow   { color: var(--lb-lavender); }
.lb-band--navy .lb-eyebrow::before { background: var(--lb-violet); }
.lb-band--violet .lb-eyebrow { color: #fff; }

.lb-title {
    margin-top: 10px;
    font-size: 40px;
    line-height: 1.1;
    color: var(--lb-navy);
}

.lb-band--navy .lb-title,
.lb-band--violet .lb-title {
    color: #fff;
}

.lb-lead {
    max-width: 65ch;
    margin-top: 16px;
    font-size: 18px;
    line-height: 1.55;
    color: var(--lb-ink-muted);
}

.lb-band--navy .lb-lead   { color: var(--lb-lavender); }
.lb-band--violet .lb-lead { color: #fff; }

/* ── Плитки (спека §2.5) ─────────────────────────────── */

.lb-tile {
    border-radius: var(--lb-radius-lg);
    padding: 28px;
    background: var(--lb-gray);
    box-shadow: var(--lb-highlight);
}

.lb-band--gray .lb-tile {
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

.lb-band--navy .lb-tile {
    background: rgb(195 208 255 / 0.08);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.07);
}

.lb-tile--link {
    display: block;
    transition: transform var(--lb-transition), box-shadow var(--lb-transition), background-color var(--lb-transition);
}

/* Блик повторен в тени наведения: hover заменяет box-shadow целиком. */
.lb-tile--link:hover,
.lb-tile--link:focus-visible {
    transform: translateY(-4px);
    background: #fff;
    color: inherit;
    box-shadow: var(--lb-shadow-lift), var(--lb-highlight), 0 0 0 2px var(--lb-lavender);
}

.lb-band--navy .lb-tile--link:hover,
.lb-band--navy .lb-tile--link:focus-visible {
    background: rgb(195 208 255 / 0.14);
    color: #fff;
    box-shadow: var(--lb-shadow-lift), inset 0 1px 0 rgb(255 255 255 / 0.07), 0 0 0 2px rgb(195 208 255 / 0.5);
}

@media (prefers-reduced-motion: reduce) {
    .lb-btn:hover,
    .lb-tile--link:hover,
    .lb-tile--link:focus-visible {
        transform: none;
    }
}

@media (max-width: 980px) {
    .lb-title { font-size: 32px; }
}

@media (max-width: 640px) {
    .lb-title { font-size: 28px; }
    .lb-head { margin-bottom: 28px; }
}

/* ── Движение (js/motion.js) — только под флагом .has-motion ── */

.has-motion .reveal {
    opacity: 0;
    transform: translateY(14px);
}

.has-motion .reveal.reveal-in {
    opacity: 1;
    transform: none;
    transition: opacity 0.5s ease, transform 0.5s ease;
    transition-delay: var(--reveal-delay, 0ms);
}

/* Цифры одной ширины; ширину по финалу фиксирует js/motion.js. */
[data-count] {
    font-variant-numeric: tabular-nums;
}

.has-motion [data-count] {
    display: inline-block;
    opacity: 0;
}

.has-motion [data-count].is-counting,
.has-motion [data-count].is-counted {
    opacity: 1;
}

@media print {
    .has-motion .reveal,
    .has-motion [data-count] {
        opacity: 1 !important;
        transform: none !important;
    }
}

/* ── Рамка из углов: «место для текста» брендбука (с. 21) ── */

.lb-frame {
    position: relative;
    padding: 40px 56px;
}

.lb-frame__corner {
    position: absolute;
    width: 40px;
    height: 40px;
    border: 0 solid currentColor;
    pointer-events: none;
}

.lb-frame__corner--tl { left: 0;  top: 0;    border-top-width: 8px;    border-left-width: 8px;  border-top-left-radius: 12px; }
.lb-frame__corner--tr { right: 0; top: 0;    border-top-width: 8px;    border-right-width: 8px; border-top-right-radius: 12px; }
.lb-frame__corner--bl { left: 0;  bottom: 0; border-bottom-width: 8px; border-left-width: 8px;  border-bottom-left-radius: 12px; }
.lb-frame__corner--br { right: 0; bottom: 0; border-bottom-width: 8px; border-right-width: 8px; border-bottom-right-radius: 12px; }

@media (max-width: 640px) {
    .lb-frame { padding: 28px 24px; }
    .lb-frame__corner { width: 28px; height: 28px; border-width: 0; }
    .lb-frame__corner--tl { border-top-width: 6px; border-left-width: 6px; }
    .lb-frame__corner--tr { border-top-width: 6px; border-right-width: 6px; }
    .lb-frame__corner--bl { border-bottom-width: 6px; border-left-width: 6px; }
    .lb-frame__corner--br { border-bottom-width: 6px; border-right-width: 6px; }
}

/* css/header.css */
/* Шапка: одна синяя строка — логотип, меню, «Войти», «Записаться на демо».
   Липкая; при прокрутке полупрозрачная с размытием. ≤1199 — бургер:
   7 пунктов и две кнопки не помещаются в строку 1024px. */

.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--lb-navy);
    color: #fff;
    transition: background-color var(--lb-transition), box-shadow var(--lb-transition);
}

.site-header.is-scrolled {
    background: rgb(0 19 89 / 0.85);
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
    box-shadow: 0 1px 0 rgb(195 208 255 / 0.14);
}

.site-header__bar {
    display: flex;
    align-items: center;
    gap: 28px;
    min-height: var(--lb-header-h);
}

.site-header__logo {
    flex: none;
}

.site-header__logo img {
    width: 153px;
    height: auto;
}

.site-header__nav {
    flex: 1;
    min-width: 0;
}

.site-header__menu {
    display: flex;
    gap: 22px;
    list-style: none;
}

.site-header__menu a {
    display: block;
    padding: 6px 0;
    font-size: 15px;
    line-height: 1.3;
    color: var(--lb-lavender);
    white-space: nowrap;
}

.site-header__menu a:hover,
.site-header__menu .current-menu-item > a,
.site-header__menu a.is-active {
    color: #fff;
}

.site-header__actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: none;
    margin-left: auto;
}

.site-header__burger {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 44px;
    height: 44px;
    padding: 13px 11px;
    border: 0;
    border-radius: var(--lb-radius);
    background: none;
    box-shadow: inset 0 0 0 1.5px rgb(195 208 255 / 0.5);
    cursor: pointer;
}

.site-header__burger span {
    display: block;
    height: 2px;
    background: #fff;
    border-radius: 1px;
    transition: transform var(--lb-transition), opacity var(--lb-transition);
}

.site-header__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.site-header__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.site-header__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* Мобильная панель — на всю высоту под шапкой */
.site-nav-mobile {
    position: fixed;
    inset: var(--lb-header-h) 0 0 0;
    z-index: 99;
    overflow-y: auto;
    padding: 24px var(--lb-gutter) 40px;
    background: var(--lb-navy);
    color: #fff;
}

.site-nav-mobile[hidden] {
    display: none;
}

.site-nav-mobile__menu {
    list-style: none;
}

.site-nav-mobile__menu a {
    display: block;
    padding: 14px 0;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 22px;
    color: #fff;
    border-bottom: 1px solid rgb(195 208 255 / 0.14);
}

.site-nav-mobile__footer {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-top: 32px;
}

.site-nav-mobile__phone {
    margin-bottom: 8px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 22px;
    color: #fff;
}

body.is-nav-open {
    overflow: hidden;
}

/* Без JS бургер не работает — вместо него ссылка на меню в подвале. */
.site-header__nojs-menu {
    display: none;
}

@media (max-width: 1199px) {
    .site-header__nav,
    .site-header__login {
        display: none;
    }

    .site-header__burger {
        display: flex;
    }

    :root:not(.js) .site-header__burger {
        display: none;
    }

    :root:not(.js) .site-header__nojs-menu {
        display: inline-flex;
    }
}

@media (max-width: 640px) {
    :root {
        --lb-header-h: 64px;
    }

    .site-header__logo img {
        width: 124px;
    }

    .site-header__demo {
        display: none;
    }
}

/* css/footer.css */
/* Подвал: синий #001359, три колонки — бренд, разделы, контакты;
   ниже копирайт и юридические документы. */

.site-footer {
    padding: 64px 0 28px;
    border-top: 1px solid rgb(195 208 255 / 0.14);
    background: var(--lb-navy);
    color: var(--lb-lavender);
    font-size: 15px;
}

.site-footer a {
    color: inherit;
}

.site-footer a:hover {
    color: #fff;
}

.site-footer__grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1fr;
    gap: 40px;
}

.site-footer__logo img {
    width: 150px;
    height: auto;
}

.site-footer__tagline {
    max-width: 34ch;
    margin-top: 16px;
    line-height: 1.5;
}

/* Значок «Сколково» — монохромный белый, чтобы не спорить с фирменными цветами. */
.site-footer__badge {
    width: 130px;
    height: auto;
    margin-top: 20px;
    filter: brightness(0) invert(1);
    opacity: 0.8;
}

/* Загруженный в настройках значок выводим как есть: JPG с фоном после
   инверсии стал бы белым прямоугольником. */
.site-footer__badge--upload {
    filter: none;
    opacity: 1;
}

.site-footer__heading {
    margin-bottom: 14px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    color: #fff;
}

.site-footer__menu {
    display: grid;
    gap: 10px;
    list-style: none;
}

/* Двойной класс — сильнее .site-footer a { color: inherit }. */
.site-footer .site-footer__phone {
    display: block;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 22px;
    color: #fff;
    white-space: nowrap;
}

.site-footer__email {
    display: block;
    margin-top: 8px;
}

.site-footer__req {
    margin-top: 16px;
    font-size: 13px;
    line-height: 1.5;
}

.site-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 16px;
    margin-top: 48px;
    padding-top: 20px;
    border-top: 1px solid rgb(195 208 255 / 0.14);
    font-size: 13px;
}

.site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 24px;
    list-style: none;
}

@media (max-width: 980px) {
    .site-footer__grid {
        grid-template-columns: 1fr 1fr;
    }

    .site-footer__brand {
        grid-column: 1 / -1;
    }
}

@media (max-width: 640px) {
    .site-footer__grid {
        grid-template-columns: 1fr;
    }

    .site-footer__bottom {
        flex-direction: column;
    }
}

/* css/sections/01-hero.css */
/* Первый экран главной и полоса «Цифры» (спека §4.1–4.2). */

.lb-hero {
    padding: 72px 0 88px;
}

.lb-hero__mark {
    position: absolute;
    top: -60px;
    right: -170px;
    width: 680px;
    height: auto;
    pointer-events: none;
}

.lb-hero__inner {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    gap: 40px;
    align-items: center;
}

.lb-hero__inner--text {
    grid-template-columns: minmax(0, 760px);
}

.lb-hero__content {
    position: relative;
    z-index: 2;
}

.lb-hero__title {
    margin-top: 14px;
    font-size: 56px;
    line-height: 1.04;
    color: #fff;
}

.lb-hero__text {
    max-width: 52ch;
    margin-top: 20px;
    font-size: 18px;
    line-height: 1.55;
    color: var(--lb-lavender);
}

.lb-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

/* Стекло — только здесь: под ним неровный фон из знака (спека §2.5). */
.lb-hero__card {
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 14px;
    border-radius: var(--lb-radius-lg);
    background: rgb(255 255 255 / 0.10);
    -webkit-backdrop-filter: blur(40px) saturate(1.4);
    backdrop-filter: blur(40px) saturate(1.4);
    box-shadow: 0 30px 60px -30px rgb(0 0 0 / 0.6);
}

.lb-hero__card-head {
    padding: 2px 6px 12px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    color: #fff;
}

.lb-hero__shot {
    display: block;
    overflow: hidden;
    border-radius: 14px;
    background: #fff;
}

.lb-hero__shot img {
    display: block;
    width: 100%;
    height: auto;
}

.lb-hero__badge {
    position: absolute;
    left: -24px;
    bottom: -20px;
    padding: 10px 16px;
    border-radius: 16px;
    background: #fff;
    color: var(--lb-navy);
    box-shadow: var(--lb-shadow-lift);
    font-size: 13px;
    line-height: 1.2;
}

.lb-hero__badge-label {
    display: block;
}

.lb-hero__badge-value {
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    color: var(--lb-violet-ink);
}

/* ── Цифры ── */

.lb-stats {
    padding: 28px 0;
}

.lb-stats__list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin: 0;
}

.lb-stats__item {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    gap: 6px;
}

.lb-stats__value {
    margin: 0;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 44px;
    line-height: 1;
    color: #fff;
}

.lb-stats__label {
    font-size: 15px;
    color: #fff;
}

@media (max-width: 1199px) {
    .lb-hero__title {
        font-size: 48px;
    }
}

@media (max-width: 980px) {
    .lb-hero__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 48px;
    }

    .lb-hero__title {
        font-size: 40px;
    }

    .lb-hero__mark {
        top: -40px;
        right: -200px;
        width: 420px;
        opacity: 0.55;
    }

    .lb-hero__card {
        max-width: 640px;
    }

    .lb-hero__badge {
        left: auto;
        right: 12px;
    }
}

@media (max-width: 640px) {
    .lb-hero {
        padding: 40px 0 56px;
    }

    .lb-hero__title {
        font-size: 32px;
    }

    .lb-hero__text {
        font-size: 16px;
    }

    .lb-hero__actions .lb-btn {
        width: 100%;
    }

    .lb-hero__mark {
        right: -170px;
        width: 320px;
    }

    .lb-stats__list {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .lb-stats__item {
        flex-direction: row-reverse;
        justify-content: flex-end;
        align-items: baseline;
        gap: 12px;
    }

    .lb-stats__value {
        min-width: 4.2em;
        font-size: 30px;
    }
}

/* css/sections/02-home.css */
/* Секции главной (спека §4.3–4.10): возможности, кейсы, строка, сценарии, тарифы, этапы, FAQ, призыв. */

/* ── Возможности: пункты + стопка снимков (спека §4.3) ── */
.lb-potential__inner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 48px;
    align-items: center;
}

/* Без снимков — одна колонка текста, без пустой правой части. */
.lb-potential__inner--text {
    grid-template-columns: minmax(0, 760px);
}

.lb-potential__list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lb-potential__item {
    padding: 14px 18px;
    border-radius: 16px;
    transition: background-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-potential__tab {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 18px;
    line-height: 1.3;
    color: var(--lb-navy);
    text-align: left;
    cursor: pointer;
}

.lb-potential__panel p {
    margin-top: 6px;
    font-size: 15px;
    line-height: 1.5;
    color: var(--lb-ink-muted);
}

.lb-potential__bar {
    display: none;
}

.lb-potential__stage {
    position: relative;
}

/* Снимки открываются крупно по клику (js/home.js, initZoom). */
.lb-potential__stage[data-zoom] {
    cursor: zoom-in;
}

.lb-potential__stage[data-zoom]:focus-visible {
    outline: 3px solid var(--lb-violet-ink);
    outline-offset: 6px;
    border-radius: var(--lb-radius-lg);
}

.lb-zoom {
    width: min(1400px, 94vw);
    max-width: none;
    max-height: 92vh;
    padding: 0;
    overflow: visible;
    border: 0;
    background: none;
    cursor: zoom-out;
}

.lb-zoom::backdrop {
    background: rgb(0 19 89 / 0.8);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.lb-zoom img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 92vh;
    object-fit: contain;
    border-radius: var(--lb-radius-lg);
    box-shadow: 0 40px 80px -30px rgb(0 0 0 / 0.6);
}

.lb-potential__card {
    margin: 0;
    overflow: hidden;
    border: 1px solid rgb(0 19 89 / 0.10);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 30px 50px -28px rgb(0 19 89 / 0.45);
}

/* Без стопки виден первый снимок. */
.lb-potential__card + .lb-potential__card {
    display: none;
}

.lb-potential__img {
    display: block;
    width: 100%;
    height: auto;
}

/* Режим стопки — ставит js/home.js */
.is-stack .lb-potential__panel {
    display: none;
}

.is-stack .lb-potential__item.is-active {
    background: #fff;
    box-shadow: 0 12px 30px -18px rgb(0 19 89 / 0.45);
}

.is-stack .lb-potential__item.is-active .lb-potential__tab {
    color: var(--lb-violet-ink);
}

.is-stack .lb-potential__item.is-active .lb-potential__panel {
    display: block;
}

.is-stack .lb-potential__item.is-active .lb-potential__bar {
    display: block;
    height: 3px;
    margin-top: 12px;
    overflow: hidden;
    border-radius: 2px;
    background: rgb(103 57 241 / 0.15);
}

.lb-potential__bar i {
    display: block;
    width: 0;
    height: 100%;
    background: var(--lb-violet-ink);
}

.is-stack .is-active .lb-potential__bar i {
    animation: lb-stack-fill var(--lb-stack-ms, 4000ms) linear forwards;
}

.is-stack.is-paused .is-active .lb-potential__bar i {
    animation-play-state: paused;
}

@keyframes lb-stack-fill {
    to { width: 100%; }
}

.is-stack .lb-potential__stage {
    aspect-ratio: 5 / 4;
    perspective: 1600px;
}

/* Без наклона (решение владельца): смещение вглубь и вверх-вправо. */
.is-stack .lb-potential__card {
    display: block;
    position: absolute;
    top: 26%;
    left: 2%;
    width: 80%;
    z-index: calc(10 - var(--k, 0));
    opacity: calc(1 - var(--k, 0) * 0.12);
    transform: translate3d(calc(var(--k, 0) * 40px), calc(var(--k, 0) * -30px), calc(var(--k, 0) * -90px));
    transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), opacity 0.5s ease;
}

.is-stack .lb-potential__card.is-out {
    opacity: 0;
    transform: translate3d(0, 75%, 40px);
    transition: transform 0.55s ease-in, opacity 0.45s ease-in;
}

.is-stack .lb-potential__card.is-jump {
    transition: none;
}

@media (max-width: 980px) {
    .lb-potential__inner {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }
}

/* ── Кейсы (спека §4.4) — светлая карточка по умолчанию, темная на синем ── */
.lb-cases {
    padding-bottom: 28px;
}

.lb-cases__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.lb-case {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lb-case__head {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lb-case__icon {
    flex: none;
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    border-radius: 18px;
    background: #fff;
    color: var(--lb-violet-ink);
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.08);
}

.lb-case__icon svg {
    width: 48px;
    height: 48px;
}

.lb-case__icon img {
    width: 44px;
    height: 44px;
    object-fit: contain;
}

.lb-case__title {
    font-size: 24px;
    color: var(--lb-navy);
}

.lb-case__metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 0;
}

.lb-case__metric {
    display: flex;
    flex-direction: column-reverse;
    gap: 6px;
    padding: 16px;
    border-radius: 16px;
    background: rgb(103 57 241 / 0.08);
}

.lb-case__metric dd {
    margin: 0;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 34px;
    line-height: 1;
    color: var(--lb-navy);
}

.lb-case__metric dt {
    font-size: 13px;
    line-height: 1.4;
    color: var(--lb-ink-muted);
}

.lb-case__lead {
    font-size: 16px;
}

.lb-case__points {
    display: grid;
    gap: 10px;
    list-style: none;
    font-size: 15px;
    line-height: 1.5;
    color: var(--lb-ink-muted);
}

.lb-case__points li {
    position: relative;
    padding-left: 22px;
}

/* Маркер — угол из фирменной графики */
.lb-case__points li::before {
    content: '';
    position: absolute;
    top: 0.45em;
    left: 0;
    width: 11px;
    height: 11px;
    border: 3px solid var(--lb-violet-ink);
    border-right: 0;
    border-bottom: 0;
    border-radius: 3px 0 0 0;
}

.lb-band--navy .lb-case__icon {
    background: rgb(195 208 255 / 0.10);
    color: var(--lb-violet);
    box-shadow: none;
}

.lb-band--navy .lb-case__title,
.lb-band--navy .lb-case__lead,
.lb-band--navy .lb-case__metric dd {
    color: #fff;
}

.lb-band--navy .lb-case__metric {
    background: rgb(133 92 255 / 0.18);
}

.lb-band--navy .lb-case__metric dt,
.lb-band--navy .lb-case__points {
    color: var(--lb-lavender);
}

.lb-band--navy .lb-case__points li::before {
    border-color: var(--lb-violet);
}

/* ── Бегущая строка (спека §4.5) ── */
.lb-marquee-wrap {
    position: relative;
    margin-top: 64px;
}

.lb-marquee {
    --fade: max(40px, 7%);
    padding: 20px 0;
    overflow: hidden;
    border-top: 1px solid rgb(195 208 255 / 0.14);
    -webkit-mask-image: linear-gradient(to right, rgb(0 0 0 / 0), #000 var(--fade), #000 calc(100% - var(--fade)), rgb(0 0 0 / 0));
    mask-image: linear-gradient(to right, rgb(0 0 0 / 0), #000 var(--fade), #000 calc(100% - var(--fade)), rgb(0 0 0 / 0));
    transform: translateZ(0);
}

.lb-marquee__rail {
    display: flex;
}

.lb-marquee__track {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 0;
    margin: 0;
    padding: 0 var(--lb-gutter);
    list-style: none;
}

.lb-marquee__item {
    display: inline-flex;
    align-items: center;
    gap: 22px;
    padding-right: 22px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 20px;
    color: #fff;
    white-space: nowrap;
}

.lb-marquee__item::after {
    content: '';
    flex: none;
    width: 18px;
    height: 18px;
    background: var(--lb-violet);
    -webkit-mask: url('../img/brand/bracket.svg') center / contain no-repeat;
    mask: url('../img/brand/bracket.svg') center / contain no-repeat;
}

.has-motion .lb-marquee.is-running .lb-marquee__rail {
    width: max-content;
    animation: lb-marquee var(--lb-marquee-s, 42s) linear infinite;
}

.has-motion .lb-marquee.is-running .lb-marquee__track {
    flex-wrap: nowrap;
    padding: 0;
}

/* Той же специфичности, что и запуск: shorthand animation сбрасывает play-state. */
.has-motion .lb-marquee.is-running:hover .lb-marquee__rail,
.has-motion .lb-marquee.is-running.is-paused .lb-marquee__rail {
    animation-play-state: paused;
}

@keyframes lb-marquee {
    to { transform: translateX(-50%); }
}

@media (max-width: 980px) {
    .lb-cases__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .lb-case__metric dd {
        font-size: 28px;
    }

    .lb-marquee__item {
        font-size: 17px;
    }
}

/* ── Сценарии (спека §4.6) ── */
.lb-scen__layout.is-tabs {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 18px;
    align-items: start;
}

.lb-scen__tabs {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lb-scen__tab {
    padding: 12px 16px;
    border: 0;
    border-radius: var(--lb-radius);
    background: none;
    font-size: 16px;
    line-height: 1.35;
    color: var(--lb-navy);
    text-align: left;
    cursor: pointer;
    transition: background-color var(--lb-transition), color var(--lb-transition);
}

.lb-scen__tab:hover {
    background: rgb(0 19 89 / 0.06);
}

.lb-scen__tab[aria-selected="true"] {
    background: var(--lb-navy);
    color: #fff;
    font-family: var(--lb-font-head);
    font-weight: 700;
}

.lb-scen__panels {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lb-scen__item {
    border-radius: var(--lb-radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

.lb-scen__summary {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 22px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 17px;
    color: var(--lb-navy);
    list-style: none;
    cursor: pointer;
}

.lb-scen__summary::-webkit-details-marker {
    display: none;
}

.lb-scen__summary::after {
    content: '+';
    flex: none;
    font-size: 24px;
    line-height: 20px;
    color: var(--lb-violet-ink);
}

.lb-scen__item[open] .lb-scen__summary::after {
    content: '–';
}

.lb-scen__body {
    padding: 0 22px 24px;
    font-size: 16px;
    line-height: 1.55;
    color: var(--lb-ink-muted);
}

.lb-scen__body > * + * {
    margin-top: 10px;
}

.lb-scen__body strong {
    color: var(--lb-navy);
}

.lb-scen__title {
    display: none;
    font-size: 22px;
    color: var(--lb-navy);
}

.is-tabs .lb-scen__item {
    display: none;
}

.is-tabs .lb-scen__item.is-current {
    display: block;
}

.is-tabs .lb-scen__summary {
    display: none;
}

.is-tabs .lb-scen__body {
    padding: 28px;
}

.is-tabs .lb-scen__title {
    display: block;
}

.lb-scen__body .lb-scen__flow-label {
    margin-top: 18px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    color: var(--lb-navy);
}

/* Схема работы — шевроны «скорость» (брендбук с. 21) */
.lb-flow {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 0;
    margin: 8px 0 0;
    padding: 0;
    list-style: none;
}

.lb-flow__step {
    margin-right: 4px;
    padding: 10px 20px 10px 26px;
    background: var(--lb-violet-ink);
    color: #fff;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    line-height: 1.3;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
}

.lb-flow__step:first-child {
    padding-left: 16px;
    border-radius: 8px 0 0 8px;
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
}

.lb-flow--alt .lb-flow__step {
    background: var(--lb-lavender);
    color: var(--lb-navy);
}

/* ── Тарифы (спека §4.7) ── */
.lb-tariff__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: stretch;
    list-style: none;
}

.lb-tariff__card {
    display: flex;
    flex-direction: column;
    padding: 26px;
    border-radius: var(--lb-radius-lg);
    background: rgb(195 208 255 / 0.08);
    box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.07);
    color: var(--lb-lavender);
}

.lb-tariff__card.is-featured {
    /* Основа #6739f1: на #855cff белый мелкий текст дает 4,2:1 < 4,5:1. */
    background: var(--lb-grad-violet);
    box-shadow: 0 30px 60px -30px rgb(133 92 255 / 0.8);
    color: #fff;
    transform: translateY(-10px);
}

.lb-tariff__name {
    font-size: 20px;
    color: #fff;
}

.lb-tariff__price {
    margin-top: 14px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 24px;
    line-height: 1.2;
    color: #fff;
}

.lb-tariff__note {
    display: block;
    min-height: 1.4em;
    margin-top: 4px;
    font-size: 13px;
}

.lb-tariff__features {
    flex: 1;
    display: grid;
    align-content: start;
    gap: 10px;
    margin: 18px 0 24px;
    list-style: none;
    font-size: 15px;
    line-height: 1.45;
}

.lb-tariff__features li {
    position: relative;
    padding-left: 24px;
}

.lb-tariff__features li::before {
    content: '';
    position: absolute;
    top: 0.3em;
    left: 2px;
    width: 12px;
    height: 7px;
    border: 2.5px solid currentColor;
    border-top: 0;
    border-right: 0;
    transform: rotate(-45deg);
}

.lb-tariff__card .lb-btn {
    width: 100%;
}

/* В ряд — строки карточек общие (subgrid): название, цена, подпись, список
   и кнопка начинаются вровень, даже если цена переносится на две строки.
   Пять строк = пять детей карточки (пустая подпись выводится заглушкой). */
@media (min-width: 981px) {
    .lb-tariff__card {
        display: grid;
        grid-row: span 5;
        grid-template-rows: subgrid;
        row-gap: 0;
    }
}

/* ── Этапы (спека §4.8): один градиент navy → #6739f1 через всю цепочку ── */
.lb-stages {
    display: grid;
    grid-template-columns: repeat(var(--n, 4), 1fr);
    margin: 0;
    padding: 0;
    list-style: none;
}

.lb-stages__item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-right: -10px;
    padding: 22px 36px 22px 32px;
    background: linear-gradient(90deg, #001359, #6739f1) calc(var(--i, 0) / max(var(--n, 4) - 1, 1) * 100%) 0 / calc(var(--n, 4) * 100%) 100%;
    color: #fff;
    clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%, 26px 50%);
}

.lb-stages__item:first-child {
    padding-left: 24px;
    border-radius: 18px 0 0 18px;
    clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 50%, calc(100% - 26px) 100%, 0 100%);
}

.lb-stages__item:last-child {
    margin-right: 0;
}

.lb-stages__num {
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 28px;
    line-height: 1;
    color: var(--lb-lavender);
}

.lb-stages__label {
    font-size: 15px;
    line-height: 1.4;
}

/* ── FAQ (спека §4.9) ── */
.lb-faq__inner {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: 32px;
    align-items: start;
}

.lb-faq__item {
    margin-bottom: 10px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

.lb-faq__question {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 22px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 17px;
    color: var(--lb-navy);
    list-style: none;
    cursor: pointer;
}

.lb-faq__question::-webkit-details-marker {
    display: none;
}

.lb-faq__question::after {
    content: '+';
    flex: none;
    font-size: 24px;
    line-height: 20px;
    color: var(--lb-violet-ink);
}

.lb-faq__item[open] .lb-faq__question::after {
    content: '–';
}

.lb-faq__answer {
    padding: 0 22px 20px;
    font-size: 16px;
    line-height: 1.55;
    color: var(--lb-ink-muted);
}

@media (max-width: 980px) {
    .lb-tariff__grid,
    .lb-faq__inner {
        grid-template-columns: minmax(0, 1fr);
    }

    .lb-tariff__card.is-featured {
        transform: none;
    }

    .lb-stages {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
    }

    /* Столбцом шевроны смотрят вниз */
    .lb-stages__item,
    .lb-stages__item:first-child {
        margin-right: 0;
        padding: 18px 22px 34px;
        border-radius: 14px 14px 0 0;
        background-position: 0 calc(var(--i, 0) / max(var(--n, 4) - 1, 1) * 100%);
        background-size: 100% calc(var(--n, 4) * 100%);
        background-image: linear-gradient(180deg, #001359, #6739f1);
        clip-path: polygon(0 0, 100% 0, 100% calc(100% - 16px), 50% 100%, 0 calc(100% - 16px));
    }
}

/* ── Призыв (спека §4.10) ── */
.lb-cta__inner {
    display: flex;
    justify-content: center;
}

.lb-cta__frame {
    max-width: 760px;
    color: #fff;
    text-align: center;
}

.lb-cta__title {
    font-size: 40px;
    line-height: 1.1;
    color: #fff;
}

.lb-cta__text {
    max-width: 48ch;
    margin: 14px auto 26px;
    font-size: 18px;
    line-height: 1.55;
    color: #fff;
}

@media (max-width: 640px) {
    .lb-cta__title {
        font-size: 28px;
    }

    .lb-cta__frame .lb-btn {
        width: 100%;
    }
}

/* ── Кнопки паузы автодвижения (WCAG 2.2.2) ── */
.lb-pause {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border: 0;
    border-radius: 999px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 12px;
    line-height: 1.2;
    cursor: pointer;
}

/* Иконка: две полосы «пауза»; нажата — треугольник «продолжить» */
.lb-pause::before {
    content: '';
    width: 10px;
    height: 10px;
    background: currentColor;
    clip-path: polygon(0 0, 35% 0, 35% 100%, 0 100%, 0 0, 65% 0, 100% 0, 100% 100%, 65% 100%);
}

.lb-pause[aria-pressed="true"]::before {
    clip-path: polygon(0 0, 100% 50%, 0 100%);
}

.lb-marquee__toggle {
    position: absolute;
    top: 50%;
    right: var(--lb-gutter);
    z-index: 2;
    transform: translateY(-50%);
    background: rgb(195 208 255 / 0.14);
    color: #fff;
}

/* css/sections/03-pages.css */
/* Внутренние страницы: шапка-карточка, «О нас», кейсы, контакты,
   юр-документы, 404. */

/* ── Верх страницы: синяя полоса, знак из «углов» у правого края ── */
.lb-page-hero {
    padding: 96px 0 104px;
}

/* Спека §6: верх ≈ 320–380px и без подводки (контент по центру). */
@media (min-width: 981px) {
    .lb-page-hero {
        display: flex;
        align-items: center;
        min-height: 320px;
    }

    .lb-page-hero__inner {
        width: 100%;
    }
}

.lb-page-hero__mark {
    position: absolute;
    top: 50%;
    right: -160px;
    width: 520px;
    height: auto;
    transform: translateY(-50%);
    opacity: 0.55;
    pointer-events: none;
}

.lb-page-hero__title {
    max-width: 820px;
    font-size: 48px;
    line-height: 1.08;
    color: #fff;
    overflow-wrap: break-word;
}

.lb-page-hero__lead {
    max-width: 68ch;
    margin-top: 18px;
    font-size: 18px;
    line-height: 1.55;
    color: var(--lb-lavender);
}

.lb-page-hero__meta {
    margin-top: 14px;
    font-size: 15px;
    color: var(--lb-lavender);
}

/* ── Хлебные крошки ── */
.lb-crumbs {
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--lb-lavender);
}

.lb-crumbs__list {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 0;
    list-style: none;
}

.lb-crumbs__item + .lb-crumbs__item::before {
    content: '/';
    margin: 0 10px;
    opacity: 0.6;
}

.lb-crumbs a {
    color: var(--lb-lavender);
    text-decoration: underline;
    text-decoration-color: rgb(195 208 255 / 0.4);
    text-underline-offset: 3px;
}

.lb-crumbs a:hover {
    color: #fff;
}

.lb-crumbs [aria-current] {
    color: #fff;
}

/* До 980 длинное название статьи уже в H1 во всю ширину — крошка в одну строку. */
@media (max-width: 980px) {
    .lb-crumbs__list {
        flex-wrap: nowrap;
    }

    .lb-crumbs__item {
        flex: none;
    }

    .lb-crumbs__item:last-child {
        flex: 0 1 auto;
        min-width: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (max-width: 980px) {
    .lb-page-hero {
        padding: 72px 0 80px;
    }

    .lb-page-hero__title {
        font-size: 38px;
    }

    .lb-page-hero__mark {
        right: -180px;
        width: 360px;
        opacity: 0.35;
    }
}

@media (max-width: 640px) {
    .lb-page-hero {
        padding: 48px 0 56px;
    }

    .lb-page-hero__title {
        font-size: 30px;
    }

    .lb-page-hero__lead {
        font-size: 16px;
    }


    .lb-page-hero__mark {
        display: none;
    }
}

/* ── О нас ── */
.lb-about__grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 56px;
    align-items: start;
}

.lb-about__grid--text {
    grid-template-columns: minmax(0, 820px);
}

.lb-about__title {
    margin: 12px 0 22px;
    font-size: 28px;
    line-height: 1.25;
    color: var(--lb-navy);
}

.lb-about__photo {
    margin: 0;
    padding: 18px;
    color: var(--lb-violet-ink);
}

.lb-about__photo img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--lb-radius-lg);
}

@media (max-width: 980px) {
    .lb-about__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 36px;
    }

    .lb-about__text {
        max-width: 70ch;
    }

    .lb-about__photo {
        max-width: 640px;
    }
}

/* ── Контакты (спека §6) ── */
.lb-contacts__grid {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 48px;
    align-items: start;
}

.lb-contacts__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.lb-contacts__label {
    font-size: 13px;
    color: var(--lb-ink-muted);
}

.lb-contacts__value {
    display: inline-block;
    margin-top: 6px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 20px;
    color: var(--lb-navy);
    overflow-wrap: anywhere;
}

.lb-contacts__value:hover {
    color: var(--lb-violet-ink);
}

.lb-requisites {
    margin-top: 18px;
    border-radius: var(--lb-radius-lg);
    background: var(--lb-gray);
}

.lb-requisites__summary {
    padding: 18px 22px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 16px;
    color: var(--lb-navy);
    cursor: pointer;
}

.lb-table-wrap {
    overflow-x: auto;
    padding: 0 22px 18px;
}

.lb-requisites__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.lb-requisites__table th,
.lb-requisites__table td {
    padding: 8px 0;
    border-bottom: 1px solid rgb(0 19 89 / 0.08);
    text-align: left;
    vertical-align: top;
}

.lb-requisites__table th {
    width: 45%;
    padding-right: 16px;
    font-weight: 400;
    color: var(--lb-ink-muted);
}

.lb-contacts__form {
    padding: 36px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
    box-shadow: 0 30px 60px -40px rgb(0 19 89 / 0.35);
    scroll-margin-top: calc(var(--lb-header-h) + 24px);
}

.lb-contacts__form-title {
    font-size: 28px;
    line-height: 1.15;
    color: var(--lb-navy);
}

.lb-contacts__form-text {
    margin: 10px 0 22px;
    color: var(--lb-ink-muted);
}

/* ── Контакты: люди ── */
.lb-people__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.lb-person {
    margin: 0;
}

.lb-person__who {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lb-person__photo {
    width: 88px;
    height: 88px;
    border-radius: 20px;
    object-fit: cover;
}

.lb-person__name {
    display: block;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 18px;
    color: var(--lb-navy);
}

.lb-person__role {
    display: block;
    margin-top: 2px;
    font-size: 14px;
    color: var(--lb-ink-muted);
}

.lb-person__quote {
    position: relative;
    margin: 18px 0 0;
    padding-left: 22px;
    font-size: 16px;
    line-height: 1.55;
}

/* Маркер-угол из фирменной графики */
.lb-person__quote::before {
    content: '';
    position: absolute;
    top: 0.3em;
    left: 0;
    width: 12px;
    height: 12px;
    border: 3px solid var(--lb-violet-ink);
    border-right: 0;
    border-bottom: 0;
    border-radius: 3px 0 0 0;
}

@media (max-width: 980px) {
    .lb-contacts__grid,
    .lb-people__grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 640px) {
    .lb-contacts__cards {
        grid-template-columns: minmax(0, 1fr);
    }

    .lb-contacts__form {
        padding: 26px 20px;
    }
}

/* ── Документы и обычные страницы: текст в белой карточке ── */
.lb-doc {
    /* Карточка во всю ширину контейнера (края — как у верха страницы),
       текст — на всю ширину карточки (решение владельца). */
    padding: 48px 56px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

/* Над первым заголовком — только поле карточки. */
.lb-doc > :first-child {
    margin-top: 0;
}

.lb-legal {
    font-size: 16px;
}

.lb-legal h2 {
    font-size: 22px;
}

/* ── 404 ── */
.lb-404 {
    display: flex;
    align-items: center;
    min-height: calc(100vh - var(--lb-header-h));
}

.lb-404__inner {
    position: relative;
    z-index: 1;
}

.lb-404__frame {
    display: inline-block;
    padding: 18px 40px;
    color: var(--lb-violet);
}

.lb-404__code {
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 120px;
    line-height: 1;
    color: #fff;
}

.lb-404__title {
    margin-top: 28px;
    font-size: 44px;
    line-height: 1.1;
    color: #fff;
}

.lb-404__lead {
    max-width: 52ch;
    margin-top: 14px;
    font-size: 18px;
    color: var(--lb-lavender);
}

.lb-404__links {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

@media (max-width: 640px) {
    .lb-doc {
        padding: 28px 20px;
    }

    .lb-404__code {
        font-size: 84px;
    }

    .lb-404__title {
        font-size: 32px;
    }

    .lb-404__links .lb-btn {
        width: 100%;
    }
}

/* css/sections/04-blog.css */
/* Блог: лента карточек, пагинация, статья с оглавлением (спека §6). */

.lb-post-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

/* Карточка на светлой полосе — серая, на серой — белая (как .lb-tile). */
.lb-post-card {
    position: relative;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--lb-radius-lg);
    background: var(--lb-gray);
    box-shadow: var(--lb-highlight);
    transition: transform var(--lb-transition), box-shadow var(--lb-transition), background-color var(--lb-transition);
}

.lb-band--gray .lb-post-card {
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

.lb-post-card:hover,
.lb-post-card:focus-within {
    transform: translateY(-4px);
    background: #fff;
    box-shadow: var(--lb-shadow-lift), var(--lb-highlight), 0 0 0 2px var(--lb-lavender);
}

.lb-post-card__media {
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--lb-lavender);
}

.lb-post-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.lb-post-card:hover .lb-post-card__media img {
    transform: scale(1.03);
}

.lb-post-card__body {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px 22px 24px;
}

.lb-post-card__date {
    font-size: 13px;
    color: var(--lb-ink-muted);
}

.lb-post-card__title {
    font-size: 19px;
    line-height: 1.3;
    color: var(--lb-navy);
}

.lb-post-card__link {
    color: inherit;
}

/* Вся карточка — область ссылки. */
.lb-post-card__link::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* Кольцо переносится на карточку только там, где есть :has — иначе
   (Firefox < 121) остается обычное кольцо ссылки. */
@supports selector(:has(*)) {
    .lb-post-card__link:focus-visible {
        outline: none;
    }
}

.lb-post-card:has(.lb-post-card__link:focus-visible) {
    outline: 3px solid var(--lb-violet-ink);
    outline-offset: 2px;
}

.lb-post-card__excerpt {
    font-size: 15px;
    line-height: 1.5;
    color: var(--lb-ink-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ── Пагинация ── */
.lb-pagination {
    margin-top: 48px;
}

.lb-pagination .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lb-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 12px;
    border-radius: var(--lb-radius);
    background: #fff;
    color: var(--lb-navy);
    font-family: var(--lb-font-head);
    font-weight: 700;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.08);
}

.lb-pagination a.page-numbers:hover {
    background: var(--lb-lavender);
}

.lb-pagination .page-numbers.current {
    background: var(--lb-navy);
    color: #fff;
}

@media (prefers-reduced-motion: reduce) {
    .lb-post-card:hover,
    .lb-post-card:focus-within {
        transform: none;
    }
}

@media (max-width: 980px) {
    .lb-post-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .lb-post-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ── Статья ── */
/* overflow: clip вместо hidden — иначе полоса становится контейнером
   прокрутки и position: sticky у оглавления перестает работать. */
.lb-article {
    overflow: clip;
}

.lb-article__layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 720px);
    gap: 56px;
    justify-content: start;
    align-items: start;
}

.lb-article__layout--single {
    grid-template-columns: minmax(0, 720px);
}

.lb-article__aside {
    position: sticky;
    top: calc(var(--lb-header-h) + 24px);
}

.lb-toc {
    padding: 20px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
    box-shadow: 0 1px 2px rgb(0 19 89 / 0.06);
}

.lb-toc__title {
    margin-bottom: 10px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    color: var(--lb-navy);
}

.lb-toc__list {
    display: grid;
    gap: 2px;
    list-style: none;
}

.lb-toc__link {
    display: block;
    padding: 7px 10px;
    border-radius: var(--lb-radius-sm);
    font-size: 14px;
    line-height: 1.35;
    color: var(--lb-ink-muted);
}

.lb-toc__link:hover {
    background: rgb(103 57 241 / 0.08);
    color: var(--lb-navy);
}

.lb-toc__link.is-current {
    background: rgb(103 57 241 / 0.10);
    color: var(--lb-violet-ink);
    font-weight: 600;
}

/* Призыв внутри текста — карточка в рамке из углов */
.lb-prose .lb-article-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    margin: 2em 0;
    padding: 32px 40px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
    color: var(--lb-violet-ink);
}

.lb-article-cta__text {
    flex: 1 1 280px;
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 20px;
    line-height: 1.25;
    color: var(--lb-navy);
}

/* Шаги «как работает» (перенесены из блока Tilda t899) */
.lb-steps-list,
.lb-prose .lb-steps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px 32px;
    padding: 0;
    list-style: none;
    counter-reset: lbstep;
}

.lb-prose .lb-steps li {
    position: relative;
    margin: 0;
    padding: 0 0 0 60px;
    counter-increment: lbstep;
    font-size: 17px;
    line-height: 1.45;
}

.lb-prose .lb-steps li::before {
    content: counter(lbstep, decimal-leading-zero);
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--lb-navy);
    color: var(--lb-lavender);
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 15px;
}

/* «Как было / как стало» (из блока Tilda t1033) */
.lb-compare {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.lb-compare__col {
    padding: 22px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
}

.lb-compare__col h3 {
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 4px solid var(--lb-violet-ink);
    font-size: 20px;
}

.lb-compare__col p {
    margin-top: 14px;
}

.lb-compare__col strong {
    font-size: 21px;
}

@media (max-width: 980px) {
    .lb-article__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .lb-article__aside {
        position: static;
    }
}

@media (max-width: 640px) {
    .lb-prose {
        font-size: 17px;
    }

    .lb-prose h2 {
        font-size: 24px;
    }

    .lb-prose .lb-article-cta {
        padding: 28px 24px;
    }

    .lb-prose .lb-steps,
    .lb-compare {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* css/sections/05-forms.css */
/* Формы заявки, модалка, виджет связи, cookie (спека §6). */

.lb-form__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

.lb-field--wide {
    grid-column: 1 / -1;
}

.lb-field__label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    color: var(--lb-navy);
}

.lb-field__req {
    color: var(--lb-violet-ink);
}

.lb-field__opt {
    color: var(--lb-ink-muted);
}

.lb-field__input {
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
    border: 1.5px solid var(--lb-field-border);
    border-radius: var(--lb-radius);
    background: #fff;
    font-size: 15px;
    transition: border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-field__input:focus {
    outline: none;
    border-color: var(--lb-violet-ink);
    box-shadow: 0 0 0 3px rgb(103 57 241 / 0.18);
}

.lb-field__input--area {
    resize: vertical;
    min-height: 96px;
}

.lb-field__input[aria-invalid="true"] {
    border-color: var(--lb-error);
}

.lb-form__hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.lb-consent {
    display: flex;
    gap: 10px;
    margin-top: 18px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--lb-ink-muted);
    cursor: pointer;
}

.lb-consent input {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--lb-violet-ink);
}

.lb-consent a {
    color: var(--lb-violet-ink);
    text-decoration: underline;
}

.lb-form__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    margin-top: 20px;
}

.lb-form__submit {
    min-width: 200px;
}

.lb-form__status {
    font-size: 13px;
}

.lb-form__status.is-error {
    color: var(--lb-error);
}

.lb-form.is-done > :not([data-lead-done]) {
    display: none;
}

.lb-form__done-title {
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 22px;
    color: var(--lb-navy);
}

.lb-form__done-text {
    margin-top: 8px;
}

/* ── Модалка: белая карточка, синяя шапка с углами ── */
.lb-modal {
    width: min(580px, calc(100% - 32px));
    max-height: calc(100% - 32px);
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 24px;
    background: #fff;
    color: var(--lb-ink);
}

.lb-modal::backdrop {
    background: rgb(0 19 89 / 0.55);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

/* Прокручивается коробка, а не сам диалог: крестик остается на месте. */
.lb-modal__box {
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow: auto;
    overscroll-behavior: contain;
}

.lb-modal__head {
    position: relative;
    padding: 46px 40px 34px;
    background: var(--lb-grad-navy);
    color: var(--lb-violet);
}

.lb-modal__head .lb-frame__corner {
    width: 24px;
    height: 24px;
}

/* Углы в полях шапки — выше заголовка и ниже текста, не пересекаются с ними. */
.lb-modal__head .lb-frame__corner--tl { left: 14px; top: 14px; border-top-width: 5px; border-left-width: 5px; }
.lb-modal__head .lb-frame__corner--br { right: 14px; bottom: 14px; border-bottom-width: 5px; border-right-width: 5px; }

.lb-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    display: flex;
    padding: 8px;
    border: 0;
    border-radius: 50%;
    background: var(--lb-navy);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 0 0 1px rgb(195 208 255 / 0.3);
    z-index: 2;
}

/* Крестик на синей шапке — светлое кольцо фокуса (контраст ≥ 3:1). */
.lb-modal__close:focus-visible {
    outline: 3px solid var(--lb-lavender);
    outline-offset: 2px;
}

.lb-modal__close:hover {
    background: var(--lb-violet-ink);
}

.lb-modal__title {
    font-size: 28px;
    line-height: 1.15;
    color: #fff;
}

.lb-modal__text {
    margin-top: 10px;
    font-size: 15px;
    color: var(--lb-lavender);
}

.lb-modal__body {
    padding: 26px 40px 34px;
}

.lb-modal .lb-form__submit {
    width: 100%;
}

/* ── Виджет связи ── */
/* Без JS виджет не открывается — прячем: телефон и почта есть в подвале. */
:root:not(.js) .lb-cw {
    display: none;
}

.lb-cw {
    position: fixed;
    right: 32px;
    bottom: 32px;
    z-index: 90;
}

.lb-cw__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border: 0;
    border-radius: 50%;
    background: var(--lb-violet-ink);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 0 0 6px rgb(133 92 255 / 0.28), var(--lb-shadow-btn);
    transition: transform var(--lb-transition);
}

.lb-cw__toggle:hover {
    transform: translateY(-2px);
}

.lb-cw__toggle svg {
    width: 22px;
    height: 22px;
}

.lb-cw__panel {
    position: absolute;
    right: 0;
    bottom: 70px;
    width: 330px;
    padding: 24px;
    border-radius: var(--lb-radius-lg);
    background: #fff;
    box-shadow: 0 30px 60px -20px rgb(0 19 89 / 0.35);
}

.lb-cw__close {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    padding: 6px;
    border: 0;
    background: none;
    color: var(--lb-navy);
    cursor: pointer;
}

.lb-cw__person {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lb-cw__photo {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    object-fit: cover;
}

.lb-cw__name {
    font-family: var(--lb-font-head);
    font-weight: 700;
    font-size: 16px;
    color: var(--lb-navy);
}

.lb-cw__role {
    font-size: 13px;
    color: var(--lb-ink-muted);
}

.lb-cw__text {
    margin-top: 14px;
    font-size: 14px;
}

.lb-cw__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 18px;
}

.lb-cw__link {
    text-align: center;
    font-size: 14px;
    color: var(--lb-navy);
}

.lb-cw__link:hover {
    color: var(--lb-violet-ink);
}

.lb-cw__form {
    margin-top: 18px;
}

.lb-cw__form .lb-form__submit {
    width: 100%;
}

/* ── Cookie ── */
.lb-cookie {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 95;
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: 460px;
    padding: 16px 18px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 20px 40px -18px rgb(0 19 89 / 0.35);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.lb-cookie.is-visible {
    opacity: 1;
    transform: none;
}

.lb-cookie__text {
    font-size: 12px;
    line-height: 1.45;
}

.lb-cookie__text a {
    color: var(--lb-violet-ink);
    text-decoration: underline;
}

@media (max-width: 640px) {
    .lb-form__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .lb-modal__head {
        padding: 38px 22px 30px;
    }

    .lb-modal__head .lb-frame__corner {
        width: 18px;
        height: 18px;
    }

    .lb-modal__head .lb-frame__corner--tl { left: 10px; top: 10px; border-top-width: 4px; border-left-width: 4px; }
    .lb-modal__head .lb-frame__corner--br { right: 10px; bottom: 10px; border-bottom-width: 4px; border-right-width: 4px; }

    .lb-modal__body {
        padding: 20px 22px 26px;
    }

    .lb-modal__title {
        font-size: 24px;
    }

    .lb-cw {
        right: 16px;
        bottom: 16px;
    }

    .lb-cw__panel {
        width: calc(100vw - 32px);
    }

    .lb-cookie {
        left: 16px;
        right: 16px;
        bottom: 80px;
        max-width: none;
    }
}

/* css/responsive.css */
/* Общие правила адаптивности. Правила секций — в их файлах (css/sections/*). */

@media (max-width: 640px) {
    :root {
        --lb-gutter: 16px;
    }

    .lb-btn--lg {
        width: 100%;
    }
}

