/* =====================================================================
   FitPulse — концепт лендинга фитнес-приложения (WebChoice)
   Тёмная энергичная тема: фиолетовый #7C3AFF → коралловый #FF6B6B
   Шрифты: Montserrat (заголовки), Inter (текст). Префикс: fp-
   Появление, счётчики, шапка и меню — примитивы concept-kit.
   ===================================================================== */

:root {
    --fp-bg: #0B0A10;
    --fp-bg-2: #0F0E16;
    --fp-surface: #15141E;
    --fp-line: rgba(255, 255, 255, 0.08);
    --fp-line-2: rgba(255, 255, 255, 0.14);
    --fp-text: #F5F4FA;
    --fp-text-2: #B4B2C8;
    --fp-muted: #8C8AA3;
    --fp-violet: #7C3AFF;
    --fp-violet-2: #A98BFF;
    --fp-coral: #FF6B6B;
    --fp-amber: #FFB547;
    --fp-grad: linear-gradient(120deg, #7C3AFF 0%, #FF6B6B 100%);
    --fp-grad-btn: linear-gradient(110deg, #7C3AFF 0%, #A93BE0 50%, #D23A68 100%);
    --fp-grad-text: linear-gradient(95deg, #B79BFF 0%, #FF8A7A 100%);
    --fp-font-h: "Rub", "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --fp-font: "Rub", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --fp-ease: cubic-bezier(0.16, 1, 0.3, 1);
    --fp-container: 1200px;
    --fp-gutter: 16px;
    --fp-header-h: 72px;
}

@media (min-width: 640px) { :root { --fp-gutter: 24px; } }
@media (min-width: 1024px) { :root { --fp-gutter: 32px; } }

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: calc(var(--fp-header-h) + 12px);
    -webkit-text-size-adjust: 100%;
    color-scheme: dark;
}

body {
    margin: 0;
    background: var(--fp-bg);
    color: var(--fp-text);
    font: 400 16px/1.6 var(--fp-font);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}
@supports (overflow: clip) {
    body { overflow-x: clip; }
}

h1, h2, h3, p, ul, ol, dl, dd, blockquote, fieldset, legend { margin: 0; }
ul, ol { padding: 0; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; padding: 0; }
svg { flex-shrink: 0; }
[hidden] { display: none !important; }
/* Элементы с data-reveal="right" до появления сдвинуты вправо — не даём им расширить страницу */
main { overflow-x: clip; }

:focus-visible { outline: 2px solid var(--fp-violet-2); outline-offset: 3px; }
::selection { background: rgba(124, 58, 255, 0.5); color: #fff; }

/* ---------- Utilities ---------- */
.fp-container {
    width: 100%;
    max-width: calc(var(--fp-container) + 2 * var(--fp-gutter));
    margin-inline: auto;
    padding-inline: var(--fp-gutter);
}

.fp-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

.fp-nobr { white-space: nowrap; }

.fp-grad {
    color: var(--fp-coral);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
}
@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .fp-grad {
        background: var(--fp-grad-text);
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
    }
}

.fp-skip {
    position: absolute;
    top: 12px;
    left: 16px;
    z-index: 300;
    padding: 12px 18px;
    border-radius: 12px;
    background: #fff;
    color: var(--fp-bg);
    font-weight: 600;
    transform: translateY(-200%);
    transition: transform 0.25s var(--fp-ease);
}
.fp-skip:focus { transform: none; }

.fp-section { padding: clamp(72px, 10vw, 128px) 0; }

.fp-head {
    max-width: 780px;
    margin: 0 auto clamp(36px, 5vw, 56px);
    text-align: center;
}
.fp-head .fp-eyebrow { margin-bottom: 14px; }
.fp-head .fp-lead { margin-top: 16px; }

.fp-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font: 600 13px/1.3 var(--fp-font);
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--fp-coral);
}

.fp-h2 {
    font: 800 clamp(1.75rem, 1.1rem + 2.8vw, 3rem)/1.1 var(--fp-font-h);
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.fp-lead {
    color: var(--fp-text-2);
    font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
    line-height: 1.65;
}
/* Без «висячих» слов в последней строке абзацев */
.fp-lead, .fp-hero__lead, .fp-final__lead, .fp-card__text, .fp-step__text, .fp-story__quote, .fp-price__note, .fp-stat__label {
    text-wrap: pretty;
}

/* ---------- Buttons ---------- */
.fp-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 48px;
    padding: 10px 24px;
    border-radius: 14px;
    font: 700 15px/1.25 var(--fp-font);
    text-align: center;
    overflow: hidden;
    isolation: isolate;
    transition: transform 0.3s var(--fp-ease), border-color 0.3s, background-color 0.3s;
}
.fp-btn .i { font-size: 1.15em; }
.fp-btn--lg { min-height: 56px; padding: 12px 28px; border-radius: 16px; font-size: 16px; }
.fp-btn--sm { min-height: 44px; padding: 8px 18px; border-radius: 12px; font-size: 14px; }

.fp-btn--primary {
    color: #fff;
    background: var(--fp-grad-btn);
    box-shadow: 0 12px 32px -12px rgba(124, 58, 255, 0.75);
}
.fp-btn--primary::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -60%;
    z-index: -1;
    width: 40%;
    background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: skewX(-20deg);
    transition: transform 0.9s var(--fp-ease);
}
.fp-btn--primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px -12px rgba(170, 60, 220, 0.8);
}
.fp-btn--primary:hover::before { transform: translateX(420%) skewX(-20deg); }

.fp-btn--ghost {
    color: var(--fp-text);
    background-color: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--fp-line-2);
}
.fp-btn--ghost:hover {
    border-color: rgba(169, 139, 255, 0.6);
    background-color: rgba(169, 139, 255, 0.1);
}

.fp-btn__arrow { transition: transform 0.3s var(--fp-ease); }
.fp-btn:hover .fp-btn__arrow { transform: translateX(4px); }

/* ---------- Header ---------- */
.fp-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 200;
}
/* Стекло — на псевдоэлементе: backdrop-filter на самой шапке сломал бы position:fixed у меню */
.fp-header::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: rgba(11, 10, 16, 0);
    border-bottom: 1px solid transparent;
    transition: background-color 0.35s, border-color 0.35s;
}
.fp-header.is-scrolled::before {
    background-color: rgba(11, 10, 16, 0.8);
    border-bottom-color: var(--fp-line);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    backdrop-filter: blur(14px) saturate(140%);
}
.fp-header:has(.fp-nav.is-open)::before { background-color: rgba(11, 10, 16, 0.96); }

.fp-header__inner {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    height: var(--fp-header-h);
}

.fp-logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    margin-right: auto;
    font: 800 1.25rem/1 var(--fp-font-h);
    letter-spacing: -0.02em;
}
.fp-logo__mark { width: 34px; height: 34px; display: block; }
.fp-logo__name b { font-weight: 800; color: var(--fp-coral); }

.fp-nav {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    width: min(340px, 86vw);
    padding: calc(var(--fp-header-h) + 12px) 24px calc(24px + var(--ck-dock-space));
    display: flex;
    flex-direction: column;
    gap: 24px;
    overflow-y: auto;
    background: #13121B;
    border-left: 1px solid var(--fp-line);
    visibility: hidden;
    transform: translate3d(100%, 0, 0);
    transition: transform 0.45s var(--fp-ease), visibility 0s linear 0.45s;
}
.fp-nav.is-open {
    visibility: visible;
    transform: none;
    transition: transform 0.45s var(--fp-ease), visibility 0s;
}
.fp-nav__list { list-style: none; display: flex; flex-direction: column; }
.fp-nav__link {
    display: flex;
    align-items: center;
    min-height: 56px;
    border-bottom: 1px solid var(--fp-line);
    font-size: 18px;
    font-weight: 600;
    transition: color 0.25s;
}
.fp-nav__link:hover { color: var(--fp-violet-2); }
.fp-nav__cta { width: 100%; }

.fp-header__cta { display: none; }

.fp-burger {
    position: relative;
    z-index: 2;
    width: 44px;
    height: 44px;
    display: grid;
    place-content: center;
    gap: 6px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--fp-line);
}
.fp-burger__line {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 0.35s var(--fp-ease);
}
.fp-burger.is-active .fp-burger__line:first-child { transform: translateY(4px) rotate(45deg); }
.fp-burger.is-active .fp-burger__line:last-child { transform: translateY(-4px) rotate(-45deg); }

.fp-overlay {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 190;
    background: rgba(5, 4, 8, 0.62);
}
.fp-overlay.is-visible { display: block; animation: fp-fade 0.35s ease both; }

@media (min-width: 480px) and (max-width: 959px) {
    .fp-header__cta { display: inline-flex; }
}

@media (min-width: 960px) {
    .fp-nav {
        position: static;
        width: auto;
        padding: 0;
        flex-direction: row;
        align-items: center;
        gap: 20px;
        overflow: visible;
        background: none;
        border: 0;
        visibility: visible;
        transform: none;
        transition: none;
    }
    .fp-nav__list { flex-direction: row; gap: 2px; }
    .fp-nav__link {
        min-height: 44px;
        padding: 0 12px;
        border: 0;
        border-radius: 10px;
        color: var(--fp-text-2);
        font-size: 15px;
        font-weight: 500;
    }
    .fp-nav__link:hover { color: var(--fp-text); }
    .fp-nav__cta { width: auto; min-height: 44px; padding: 8px 20px; font-size: 14px; border-radius: 12px; }
    .fp-burger, .fp-overlay, .fp-overlay.is-visible { display: none; }
}

/* ---------- Hero ---------- */
.fp-hero {
    position: relative;
    overflow: hidden;
    padding: calc(var(--fp-header-h) + clamp(28px, 6vw, 72px)) 0 clamp(48px, 7vw, 88px);
}
.fp-hero__bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(55% 50% at 80% 32%, rgba(124, 58, 255, 0.32), transparent 70%),
        radial-gradient(38% 40% at 96% 78%, rgba(255, 107, 107, 0.2), transparent 70%),
        radial-gradient(45% 40% at 4% 0%, rgba(124, 58, 255, 0.16), transparent 70%);
}
.fp-hero__bg::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
    background-size: 56px 56px;
    -webkit-mask-image: radial-gradient(70% 60% at 70% 40%, #000 20%, transparent 75%);
    mask-image: radial-gradient(70% 60% at 70% 40%, #000 20%, transparent 75%);
}

.fp-hero__grid {
    position: relative;
    display: grid;
    gap: 40px;
    align-items: center;
}
.fp-hero__copy { position: relative; min-width: 0; }
@media (min-width: 1024px) {
    .fp-hero__grid { grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr); gap: 32px; }
}

.fp-pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    margin-bottom: 22px;
    padding: 6px 14px 6px 6px;
    border-radius: 22px;
    background: rgba(124, 58, 255, 0.12);
    border: 1px solid rgba(169, 139, 255, 0.3);
    color: #E4DBFF;
    font-size: 13.5px;
    line-height: 1.35;
    transition: border-color 0.3s, background-color 0.3s;
}
.fp-pill:hover { border-color: rgba(169, 139, 255, 0.65); background-color: rgba(124, 58, 255, 0.2); }
.fp-pill .i { color: var(--fp-violet-2); }
.fp-pill__tag {
    flex-shrink: 0;
    padding: 5px 10px;
    border-radius: 99px;
    background: var(--fp-grad-btn);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* Размер подобран так, чтобы «каждую неделю —» (≈ 9,9 em) всегда помещалась в строку:
   заголовок держит три строки «Сильнее / каждую неделю — / за 20 минут в день» */
.fp-hero__title {
    font: 800 clamp(1.75rem, 9.2vw - 1px, 4.4rem)/1.04 var(--fp-font-h);
    letter-spacing: -0.035em;
    text-wrap: balance;
    animation: fp-title-in 0.9s var(--fp-ease) both;
}
.fp-hero__title .fp-grad { white-space: nowrap; }
@media (min-width: 1024px) {
    .fp-hero__title { font-size: clamp(2.75rem, 5.3vw - 6px, 3.875rem); }
}
.fp-hero__lead {
    max-width: 540px;
    margin-top: 20px;
    color: var(--fp-text-2);
    font-size: clamp(1rem, 0.95rem + 0.35vw, 1.1875rem);
    line-height: 1.65;
}
.fp-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 30px; }
.fp-hero__meta { display: inline-flex; align-items: center; gap: 8px; color: var(--fp-text-2); font-size: 14.5px; }
.fp-hero__meta .i { color: var(--fp-violet-2); font-size: 17px; }

.fp-checks {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin-top: 20px;
    color: var(--fp-text-2);
    font-size: 14.5px;
}
.fp-checks li { display: inline-flex; align-items: center; gap: 8px; }
.fp-checks .i { color: var(--fp-violet-2); font-size: 17px; }

@media (max-width: 479px) {
    .fp-hero__actions { gap: 10px; margin-top: 24px; }
    .fp-hero__actions .fp-btn { flex: 1 1 100%; }
    .fp-hero__meta { flex: 1 1 100%; justify-content: center; font-size: 13.5px; }
    .fp-checks { gap: 6px 16px; margin-top: 16px; font-size: 14px; }
}

/* Store buttons */
.fp-stores {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 28px;
}
.fp-store {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 52px;
    padding: 8px 18px 8px 14px;
    border-radius: 14px;
    background: #050508;
    border: 1px solid var(--fp-line-2);
    transition: border-color 0.3s, transform 0.3s var(--fp-ease);
}
.fp-store:hover { border-color: rgba(169, 139, 255, 0.6); transform: translateY(-2px); }
.fp-store .i { font-size: 22px; color: #fff; }
.fp-store__text { display: flex; flex-direction: column; font: 700 15px/1.15 var(--fp-font); }
.fp-store__text small { font-size: 11px; font-weight: 500; color: var(--fp-text-2); }
@media (max-width: 479px) {
    .fp-store { flex: 1 1 0; min-width: 0; gap: 8px; padding: 8px 12px; }
    .fp-store .i { font-size: 20px; }
    .fp-store__text { font-size: 14px; }
}

.fp-rating {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    color: var(--fp-text-2);
    font-size: 14px;
}
.fp-rating b { color: var(--fp-text); }

/* Телефон: в hero остаётся одна кнопка и рейтинг, сторы — в финальном блоке.
   Так экран приложения выглядывает уже на первом экране */
@media (max-width: 639px) {
    .fp-hero { padding-top: calc(var(--fp-header-h) + 20px); }
    .fp-hero__grid { gap: 20px; }
    .fp-pill { margin-bottom: 18px; }
    .fp-hero__lead { margin-top: 16px; }
    .fp-hero__copy .fp-stores { margin-top: 14px; }
    .fp-hero__copy .fp-store { display: none; }
    .fp-hero__copy .fp-rating { margin-top: 0; font-size: 13.5px; }
}
/* 320–359: плашка, подпись под кнопкой и рейтинг держатся в одну строку */
@media (max-width: 359px) {
    .fp-pill { gap: 8px; padding-right: 10px; font-size: 12.5px; }
    .fp-hero__meta { gap: 6px; font-size: 12.5px; }
    .fp-hero__meta .i { font-size: 15px; }
    .fp-hero__copy .fp-rating { gap: 6px; font-size: 12.5px; }
    .fp-hero__copy .fp-stars { font-size: 12px; }
}

.fp-stars { display: inline-flex; gap: 2px; color: var(--fp-amber); font-size: 14px; }
.fp-stars .i { vertical-align: 0; }

/* ---------- Hero visual: phone ---------- */
.fp-hero__visual {
    position: relative;
    isolation: isolate;
    display: grid;
    place-items: center;
    width: 100%;
    max-width: 600px;
    margin-inline: auto;
    /* на телефоне чипы висят на верхнем и нижнем углах — нужен запас по высоте */
    padding: 52px 0 48px;
    perspective: 1400px;
}
@media (min-width: 640px) { .fp-hero__visual { padding: 28px 0; } }
@media (min-width: 1024px) { .fp-hero__visual { max-width: none; } }
.fp-hero__visual::before,
.fp-hero__visual::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: -1;
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}
.fp-hero__visual::before {
    width: 92%;
    background: radial-gradient(circle, rgba(124, 58, 255, 0.42) 0%, rgba(255, 107, 107, 0.14) 45%, transparent 68%);
}
/* Орбита вокруг телефона: две точки медленно обходят кольцо (только transform) */
.fp-hero__visual::after {
    width: 78%;
    border: 1px dashed rgba(255, 255, 255, 0.1);
    background:
        radial-gradient(circle at 50% 4px, var(--fp-coral) 0 3.5px, transparent 4.5px),
        radial-gradient(circle at 50% calc(100% - 4px), var(--fp-violet-2) 0 2.5px, transparent 3.5px);
    animation: fp-orbit 60s linear infinite;
}

.fp-device {
    position: relative;
    transition: transform 0.6s var(--fp-ease);
    will-change: transform;
}

.fp-phone {
    position: relative;
    font-size: clamp(12.5px, 3.6vw, 15px);
    width: 19.5em;
    height: 41em;
    padding: 0.6em;
    border-radius: 3em;
    background: linear-gradient(160deg, #2C2A3A 0%, #121119 42%, #1D1B28 100%);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.09),
        inset 0 0 0 1px rgba(255, 255, 255, 0.05),
        0 40px 90px -30px rgba(124, 58, 255, 0.6),
        0 30px 60px -34px rgba(255, 107, 107, 0.4);
    animation: fp-phone-in 1.1s var(--fp-ease) 0.1s both;
}
.fp-phone__screen {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 0.7em;
    padding: 0.7em 0.95em 4.8em;
    overflow: hidden;
    border-radius: 2.45em;
    background: radial-gradient(120% 55% at 50% 0%, #1F1638 0%, #0D0C14 62%);
    color: #fff;
    font-family: var(--fp-font);
    line-height: 1.3;
}
.fp-phone__island {
    position: absolute;
    top: 0.75em;
    left: 50%;
    width: 6.2em;
    height: 1.7em;
    margin-left: -3.1em;
    border-radius: 1em;
    background: #000;
}
.fp-phone__status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 2.1em;
    padding: 0 0.6em;
    font-size: 0.78em;
    font-weight: 600;
}
.fp-phone__sys { display: flex; align-items: flex-end; gap: 0.18em; }
.fp-phone__sys i { width: 0.26em; border-radius: 0.1em; background: #fff; }
.fp-phone__sys i:nth-child(1) { height: 0.45em; }
.fp-phone__sys i:nth-child(2) { height: 0.65em; }
.fp-phone__sys i:nth-child(3) { height: 0.85em; }
.fp-phone__sys b {
    width: 1.8em;
    height: 0.9em;
    margin-left: 0.35em;
    padding: 0.1em;
    border-radius: 0.28em;
    border: 0.12em solid rgba(255, 255, 255, 0.7);
    background: linear-gradient(90deg, #fff 72%, transparent 72%) content-box;
}

.fp-app__head { display: flex; align-items: center; gap: 0.6em; }
.fp-app__avatar {
    width: 2.3em;
    height: 2.3em;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--fp-grad);
    font-family: var(--fp-font-h);
    font-weight: 800;
}
.fp-app__hello {
    display: flex;
    flex-direction: column;
    font: 800 0.95em/1.2 var(--fp-font-h);
}
.fp-app__hello small { font: 500 0.72em/1.3 var(--fp-font); color: #A9A7BF; }
.fp-app__streak {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.3em;
    padding: 0.4em 0.7em;
    border-radius: 1em;
    background: rgba(255, 181, 71, 0.14);
    color: #FFC56B;
    font-size: 0.8em;
    font-weight: 700;
}

.fp-app__week { display: flex; justify-content: space-between; padding: 0 0.15em; }
.fp-app__week span { display: flex; flex-direction: column; align-items: center; gap: 0.3em; }
.fp-app__week small { font-size: 0.6em; color: #8C8AA3; }
.fp-app__week i {
    width: 1.55em;
    height: 1.55em;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.12);
}
.fp-app__week .is-done i { background: var(--fp-grad); border-color: transparent; }
.fp-app__week .is-today i { border: 0.16em solid var(--fp-coral); }
.fp-app__week .is-today small { color: #fff; font-weight: 700; }

.fp-app__rings {
    display: flex;
    align-items: center;
    gap: 0.85em;
    padding: 0.8em;
    border-radius: 1.3em;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.07);
}
.fp-rings { width: 6.4em; height: 6.4em; display: block; }
.fp-rings circle { fill: none; stroke-width: 10; stroke-linecap: round; }
.fp-rings__track { stroke: rgba(255, 255, 255, 0.08); }
.fp-rings__arc {
    transform-box: fill-box;
    transform-origin: 50% 50%;
    transform: rotate(-90deg);
    animation: fp-ring 1.8s var(--fp-ease) 0.3s both;
}
.fp-rings__arc--1 { stroke: var(--fp-coral); }
.fp-rings__arc--2 { stroke: var(--fp-violet-2); animation-delay: 0.42s; }
.fp-rings__arc--3 { stroke: var(--fp-amber); animation-delay: 0.54s; }

.fp-app__legend {
    list-style: none;
    flex: 1;
    min-width: 0;
    display: grid;
    gap: 0.45em;
    font-size: 0.72em;
}
.fp-app__legend li {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 0.5em;
    align-items: center;
}
.fp-app__legend span { color: #A9A7BF; }
.fp-app__legend b { grid-column: 2; font: 800 1.2em/1.15 var(--fp-font-h); white-space: nowrap; }
.fp-app__legend b small { margin-left: 0.15em; font: 500 0.68em var(--fp-font); color: #8C8AA3; }
.fp-dot { width: 0.6em; height: 0.6em; border-radius: 50%; grid-row: span 2; align-self: start; margin-top: 0.4em; }
.fp-dot--1 { background: var(--fp-coral); }
.fp-dot--2 { background: var(--fp-violet-2); }
.fp-dot--3 { background: var(--fp-amber); }

.fp-app__workout {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.35em;
    padding: 0.95em 1em 1em;
    overflow: hidden;
    border-radius: 1.3em;
    background: linear-gradient(135deg, #6D32F0 0%, #B24AD8 55%, #F0616F 100%);
}
.fp-app__workout::after {
    content: "";
    position: absolute;
    right: -2.4em;
    bottom: -2.6em;
    width: 7em;
    height: 7em;
    border-radius: 50%;
    border: 1.2em solid rgba(255, 255, 255, 0.1);
}
.fp-app__label { font-size: 0.62em; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255, 255, 255, 0.88); }
.fp-app__title { padding-right: 3em; font: 800 1.02em/1.2 var(--fp-font-h); }
.fp-app__meta { display: flex; gap: 0.9em; font-size: 0.7em; }
.fp-app__meta span { display: inline-flex; align-items: center; gap: 0.3em; }
.fp-app__progress {
    display: block;
    height: 0.4em;
    margin-top: 0.4em;
    overflow: hidden;
    border-radius: 1em;
    background: rgba(255, 255, 255, 0.25);
}
.fp-app__progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: #fff;
    transform-origin: 0 50%;
    transform: scaleX(0.6);
    animation: fp-progress 1.6s var(--fp-ease) 0.7s both;
}
.fp-app__round { font-size: 0.66em; color: rgba(255, 255, 255, 0.88); }
.fp-app__play {
    position: absolute;
    top: 0.9em;
    right: 0.9em;
    width: 2.6em;
    height: 2.6em;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff;
    color: var(--fp-violet);
    box-shadow: 0 0.5em 1.2em rgba(0, 0, 0, 0.25);
}
.fp-app__play .i { font-size: 1.05em; margin-left: 0.12em; fill: currentColor; }

.fp-app__coach {
    display: flex;
    align-items: flex-start;
    gap: 0.65em;
    padding: 0.75em 0.8em;
    border-radius: 1.1em;
    background: rgba(169, 139, 255, 0.1);
    border: 1px solid rgba(169, 139, 255, 0.22);
}
.fp-app__coach-icon {
    width: 2em;
    height: 2em;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 0.7em;
    background: var(--fp-grad);
}
.fp-app__coach p { font-size: 0.7em; line-height: 1.45; color: #D9D3F0; }
.fp-app__coach b { color: #fff; }

.fp-app__tabs {
    position: absolute;
    left: 0.8em;
    right: 0.8em;
    bottom: 0.8em;
    height: 3.5em;
    display: flex;
    align-items: center;
    justify-content: space-around;
    border-radius: 1.75em;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.08);
    color: #8C8AA3;
}
.fp-app__tabs span { width: 2.6em; height: 2.6em; display: grid; place-items: center; border-radius: 50%; }
.fp-app__tabs .i { font-size: 1.15em; }
.fp-app__tabs .is-active { background: var(--fp-grad); color: #fff; }

/* Узкая колонка hero на 1024–1279: телефон чуть меньше, чтобы чипам хватило места по бокам */
@media (min-width: 1024px) and (max-width: 1279px) {
    .fp-phone { font-size: 13px; }
}

/* Floating chips — внутри .fp-device, координаты в % от размеров телефона.
   Чипы заходят на телефон только рамкой и полями карточек, текст экрана не перекрывают. */
.fp-chip {
    position: absolute;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px 10px 10px;
    border-radius: 16px;
    background: rgba(24, 22, 34, 0.94);
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 18px 40px -14px rgba(0, 0, 0, 0.7);
    font-size: 13px;
    line-height: 1.25;
    white-space: nowrap;
    animation: fp-chip-in 0.8s var(--fp-ease) 0.7s both, fp-float 6s ease-in-out 1.5s infinite;
}
/* Телефон и планшет до 639px: чипы висят на верхнем левом и нижнем правом углах корпуса */
.fp-chip--pulse { bottom: calc(100% - 12px); left: -6%; }
.fp-chip--record { display: none; }
.fp-chip--streak { top: calc(100% - 14px); right: -6%; animation-delay: 0.95s, -1.5s; }

/* От 640px: чипы по бокам. Пульс — справа от легенды колец (там 4 em пустого поля),
   рекорд — слева у тренировки дня, серия — на пустой полосе между советом тренера и таб-баром */
@media (min-width: 640px) {
    .fp-chip { translate: 0 -50%; }
    .fp-chip--pulse { bottom: auto; top: 34.3%; left: 82%; }
    .fp-chip--record { display: flex; top: 55.6%; right: 88.7%; animation-delay: 0.85s, -2s; }
    .fp-chip--streak { top: 83.3%; right: auto; left: 74.4%; animation-delay: 1s, -4s; }
}
/* Узкая колонка hero: два чипа по диагонали, чтобы ничего не упиралось в край экрана и в текст */
@media (min-width: 1024px) and (max-width: 1279px) {
    .fp-chip--record { display: none; }
    .fp-chip--streak { left: auto; right: 74.4%; }
}

.fp-chip__icon {
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 11px;
    font-size: 18px;
}
.fp-chip__icon--coral { background: rgba(255, 107, 107, 0.16); color: var(--fp-coral); }
.fp-chip__icon--violet { background: rgba(169, 139, 255, 0.16); color: var(--fp-violet-2); }
.fp-chip__icon--amber { background: rgba(255, 181, 71, 0.16); color: var(--fp-amber); }
.fp-chip__icon--coral .i { animation: fp-beat 1.5s ease-in-out infinite; }
.fp-chip__body { display: flex; flex-direction: column; gap: 3px; }
.fp-chip__body b { font-weight: 700; }
.fp-chip__body small { color: var(--fp-text-2); font-size: 12px; }
.fp-chip__zone { display: flex; align-items: center; gap: 6px; }
/* Кардиограмма «пишется» в такт сердцу: маленький элемент, clip-path + opacity */
.fp-chip__ecg { width: 40px; height: 13px; animation: fp-ecg 1.5s linear infinite; }
.fp-chip__ecg path { fill: none; stroke: var(--fp-coral); stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.fp-chip__days { display: flex; gap: 3px; }
.fp-chip__days i { width: 9px; height: 9px; border-radius: 3px; background: var(--fp-grad); }
.fp-chip__days i:last-child { background: none; border: 1.5px solid var(--fp-coral); }

/* Компактные чипы: узкие экраны и узкая колонка hero на 1024–1279 */
@media (max-width: 479px), (min-width: 1024px) and (max-width: 1279px) {
    .fp-chip { gap: 8px; padding: 8px 11px 8px 8px; font-size: 12px; border-radius: 14px; }
    .fp-chip__icon { width: 30px; height: 30px; font-size: 15px; border-radius: 9px; }
    .fp-chip__body small { font-size: 11px; }
    .fp-chip__days i { width: 8px; height: 8px; }
}

/* ---------- Stats ---------- */
.fp-stats { padding: 0 0 clamp(24px, 4vw, 40px); }
.fp-stats__grid {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border-radius: 24px;
    background: var(--fp-line);
    border: 1px solid var(--fp-line);
}
@media (min-width: 860px) {
    .fp-stats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.fp-stat {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: clamp(16px, 3vw, 32px);
    background: var(--fp-bg-2);
}
.fp-stat__num {
    font: 800 clamp(1.5rem, 0.9rem + 2.6vw, 2.75rem)/1 var(--fp-font-h);
    letter-spacing: -0.03em;
    white-space: nowrap;
}
.fp-stat__label { color: var(--fp-text-2); font-size: 14px; line-height: 1.45; }

/* ---------- Quiz ---------- */
.fp-quiz-sec {
    background:
        radial-gradient(40% 45% at 82% 55%, rgba(124, 58, 255, 0.12), transparent 70%),
        radial-gradient(30% 35% at 10% 20%, rgba(255, 107, 107, 0.06), transparent 70%);
}
.fp-quiz-sec__grid { display: grid; gap: 40px; }
@media (min-width: 1024px) {
    .fp-quiz-sec__grid { grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); gap: 64px; align-items: center; }
}
.fp-quiz-sec__intro .fp-h2 { margin-top: 14px; }
.fp-quiz-sec__intro .fp-lead { margin-top: 16px; }
.fp-quiz-sec__points { list-style: none; display: grid; gap: 14px; margin-top: 28px; }
/* На телефоне — сразу к квизу: пояснения дублируют лид и отодвигают первый вопрос */
@media (max-width: 639px) {
    .fp-quiz-sec__points { display: none; }
}
.fp-quiz-sec__points li { display: flex; align-items: center; gap: 14px; color: var(--fp-text-2); font-size: 15px; }
.fp-quiz-sec__icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(124, 58, 255, 0.14);
    color: var(--fp-violet-2);
    font-size: 18px;
}

.fp-quiz {
    position: relative;
    padding: clamp(20px, 3.4vw, 36px);
    border-radius: 28px;
    border: 1px solid transparent;
    background:
        linear-gradient(var(--fp-surface), var(--fp-surface)) padding-box,
        linear-gradient(140deg, rgba(124, 58, 255, 0.85), rgba(255, 255, 255, 0.08) 42%, rgba(255, 107, 107, 0.7)) border-box;
    box-shadow: 0 40px 80px -44px rgba(124, 58, 255, 0.6);
}

.fp-quiz__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
}
.fp-quiz__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 0 14px 0 10px;
    margin-left: -10px;
    border-radius: 12px;
    color: var(--fp-text-2);
    font-size: 14px;
    font-weight: 600;
    transition: color 0.25s, background-color 0.25s;
}
.fp-quiz__back:hover { color: var(--fp-text); background-color: rgba(255, 255, 255, 0.06); }
.fp-quiz__count { margin-left: auto; color: var(--fp-muted); font-size: 13.5px; font-weight: 600; }

.fp-quiz__bar {
    height: 6px;
    margin: 12px 0 26px;
    overflow: hidden;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.08);
}
.fp-quiz__fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--fp-grad);
    transform-origin: 0 50%;
    transform: scaleX(0.3333);
    transition: transform 0.55s var(--fp-ease);
}

.fp-quiz__step { min-width: 0; padding: 0; border: 0; }
.fp-quiz__step:focus, .fp-quiz__step:focus-visible { outline: none; }
.js .fp-quiz__step { animation: fp-step-in 0.5s var(--fp-ease); }
.js .fp-quiz__form.is-back .fp-quiz__step { animation-name: fp-step-back; }

.fp-quiz__q {
    float: left;
    width: 100%;
    margin-bottom: 18px;
    padding: 0;
    font: 700 clamp(1.25rem, 1rem + 1vw, 1.625rem)/1.25 var(--fp-font-h);
    letter-spacing: -0.02em;
}
.fp-quiz__q + * { clear: both; }

.fp-quiz__options { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.fp-quiz__options--time { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 540px) {
    .fp-quiz__options--goal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 720px) {
    .fp-quiz__options--time { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.fp-opt { position: relative; display: block; cursor: pointer; }
.fp-opt__input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
.fp-opt__box {
    display: flex;
    align-items: center;
    gap: 14px;
    height: 100%;
    min-height: 76px;
    padding: 14px 16px;
    border-radius: 18px;
    background-color: rgba(255, 255, 255, 0.035);
    border: 1px solid var(--fp-line-2);
    transition: border-color 0.25s, background-color 0.25s, transform 0.3s var(--fp-ease);
}
.fp-opt:hover .fp-opt__box { border-color: rgba(169, 139, 255, 0.55); transform: translateY(-2px); }
.fp-opt__input:focus-visible + .fp-opt__box { outline: 2px solid var(--fp-violet-2); outline-offset: 3px; }
.fp-opt__input:checked + .fp-opt__box {
    border-color: var(--fp-violet-2);
    background-color: rgba(124, 58, 255, 0.16);
    box-shadow: 0 14px 34px -16px rgba(124, 58, 255, 0.8);
}

.fp-opt__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(124, 58, 255, 0.16);
    color: #C9B8FF;
    font-size: 20px;
    transition: background-color 0.25s, color 0.25s;
}
.fp-opt__input:checked + .fp-opt__box .fp-opt__icon { background: var(--fp-grad); color: #fff; }

.fp-opt__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.fp-opt__text b { font-size: 16px; font-weight: 700; line-height: 1.3; }
.fp-opt__text small { color: var(--fp-text-2); font-size: 13.5px; line-height: 1.4; }

.fp-opt__mark {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    margin-left: auto;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 1.5px solid var(--fp-line-2);
    color: transparent;
    font-size: 14px;
    transition: background-color 0.25s, border-color 0.25s, color 0.25s;
}
.fp-opt__input:checked + .fp-opt__box .fp-opt__mark { background: var(--fp-grad); border-color: transparent; color: #fff; }

.fp-opt__lvl {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: flex;
    align-items: flex-end;
    gap: 4px;
    padding: 10px;
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.06);
}
.fp-opt__lvl i { flex: 1; border-radius: 2px; background: rgba(255, 255, 255, 0.2); }
.fp-opt__lvl i:nth-child(1) { height: 40%; }
.fp-opt__lvl i:nth-child(2) { height: 70%; }
.fp-opt__lvl i:nth-child(3) { height: 100%; }
.fp-opt__lvl--1 i:nth-child(-n+1),
.fp-opt__lvl--2 i:nth-child(-n+2),
.fp-opt__lvl--3 i { background: var(--fp-grad); }

.fp-quiz__options--level .fp-opt__box { min-height: 80px; }

.fp-opt--time .fp-opt__box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr;
    align-items: start;
    gap: 12px 8px;
    min-height: 118px;
    padding: 14px;
}
.fp-opt--time .fp-opt__num { grid-column: 1; grid-row: 1; }
.fp-opt--time .fp-opt__mark { grid-column: 2; grid-row: 1; margin-left: 0; }
.fp-opt--time .fp-opt__text { grid-column: 1 / -1; grid-row: 2; align-self: end; }
.fp-opt__num {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 4px;
    font: 800 clamp(1.625rem, 1.3rem + 1vw, 2rem)/1 var(--fp-font-h);
    letter-spacing: -0.03em;
}
.fp-opt__num small { font: 600 14px var(--fp-font); color: var(--fp-text-2); letter-spacing: 0; }

.fp-quiz__error { margin-top: 14px; color: #FF9A9A; font-size: 14px; font-weight: 500; }
.fp-quiz__error:empty { margin: 0; }

.fp-quiz__nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 24px; }
.fp-quiz__next[aria-disabled="true"] {
    background: rgba(255, 255, 255, 0.08);
    color: #C9C8DA;
    box-shadow: none;
}
.fp-quiz__hint { color: var(--fp-muted); font-size: 13px; }
@media (hover: none) {
    .fp-quiz__hint { display: none; }
}

/* Plan result */
.fp-plan { scroll-margin-top: calc(var(--fp-header-h) + 16px); animation: fp-pop 0.6s var(--fp-ease); }
.fp-plan:focus, .fp-plan:focus-visible { outline: none; }
.fp-plan__head { padding-bottom: 20px; border-bottom: 1px solid var(--fp-line); }
.fp-plan__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--fp-coral);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.fp-plan__name {
    margin-top: 10px;
    font: 800 clamp(1.5rem, 1.1rem + 1.6vw, 2.125rem)/1.12 var(--fp-font-h);
    letter-spacing: -0.03em;
}
.fp-plan__tags { margin-top: 8px; color: var(--fp-text-2); font-size: 14.5px; }

.fp-plan__metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 22px;
}
.fp-plan__metric {
    padding: 14px 12px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--fp-line);
}
.fp-plan__metric dt { margin-bottom: 8px; color: var(--fp-muted); font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.fp-plan__metric dd { display: flex; flex-direction: column; gap: 4px; }
.fp-plan__metric b { font: 800 clamp(1.5rem, 1.2rem + 1.2vw, 2rem)/1 var(--fp-font-h); letter-spacing: -0.03em; }
.fp-plan__metric span { color: var(--fp-text-2); font-size: 12.5px; line-height: 1.35; }
@media (max-width: 439px) {
    .fp-plan__metrics { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    .fp-plan__metric { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; }
    .fp-plan__metric dt { margin-bottom: 0; }
    .fp-plan__metric dd { flex-direction: row; align-items: baseline; gap: 6px; text-align: right; }
    .fp-plan__metric b { font-size: 1.375rem; }
}

.fp-plan__extra { display: flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 14.5px; font-weight: 600; }
.fp-plan__extra .i { color: var(--fp-coral); }
.fp-plan__focus { margin-top: 8px; color: var(--fp-text-2); font-size: 14.5px; line-height: 1.6; }

.fp-plan__load {
    margin-top: 18px;
    padding: 16px;
    border-radius: 18px;
    background: #0F0E16;
    border: 1px solid var(--fp-line);
}
.fp-plan__load-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 6px 12px;
    margin-bottom: 14px;
    font-size: 13px;
    font-weight: 600;
}
.fp-plan__legend { display: inline-flex; align-items: center; gap: 6px; color: var(--fp-muted); font-weight: 500; }
.fp-plan__legend i { width: 10px; height: 10px; border-radius: 3px; background: rgba(169, 139, 255, 0.4); }
.fp-plan__bars { display: flex; align-items: flex-end; gap: 4px; height: 64px; }
.fp-plan__bars i {
    flex: 1;
    height: 100%;
    border-radius: 4px 4px 2px 2px;
    background: linear-gradient(to top, #7C3AFF, #FF6B6B);
    transform-origin: 50% 100%;
    transform: scaleY(var(--h, 0.5));
    animation: fp-bar 0.9s var(--fp-ease) both;
    animation-delay: calc(var(--n, 0) * 45ms + 0.2s);
}
.fp-plan__bars i.is-deload { background: rgba(169, 139, 255, 0.4); }
.fp-plan__axis { display: flex; justify-content: space-between; margin-top: 8px; color: var(--fp-muted); font-size: 12px; }

.fp-plan__again {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    margin-top: 12px;
    color: var(--fp-text-2);
    font-size: 14px;
    font-weight: 600;
    transition: color 0.25s;
}
.fp-plan__again:hover { color: var(--fp-text); }

/* ---------- Lead forms (plan + final) ---------- */
.fp-capture { margin-top: 22px; }
.fp-form { max-width: 600px; }
.fp-form__label { display: block; margin-bottom: 10px; font-size: 15px; font-weight: 600; }
.fp-form__row { display: flex; flex-direction: column; gap: 10px; }
@media (min-width: 560px) {
    .fp-form__row { flex-direction: row; }
}
.fp-input {
    flex: 1;
    min-width: 0;
    min-height: 54px;
    padding: 0 18px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--fp-line-2);
    color: var(--fp-text);
    font-size: 16px;
    font-weight: 500;
    transition: border-color 0.25s, background-color 0.25s;
}
.fp-input::placeholder { color: var(--fp-muted); }
.fp-input:hover { border-color: rgba(169, 139, 255, 0.45); }
.fp-input:focus-visible { outline: 2px solid var(--fp-violet-2); outline-offset: 2px; background-color: rgba(255, 255, 255, 0.07); }
.fp-input[aria-invalid="true"] { border-color: var(--fp-coral); }
.fp-form__row .fp-btn { flex-shrink: 0; }

.fp-form__error { margin-top: 8px; color: #FF9A9A; font-size: 13.5px; font-weight: 500; }
.fp-form__error:empty { margin: 0; }
.fp-form__note { display: flex; gap: 8px; margin-top: 12px; color: var(--fp-muted); font-size: 12.5px; line-height: 1.5; }
.fp-form__note .i { margin-top: 0.2em; }

/* Согласие на обработку ПД — отдельная галочка (152-ФЗ) */
.fp-consent { --fp-consent-indent: 43px; margin-top: 14px; }
.fp-consent__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    color: var(--fp-text-2);
    font-size: 14px;
    line-height: 1.55;
    cursor: pointer;
}
/* 44×44 зона касания при квадратике 22px */
.fp-consent__ctl {
    position: relative;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    margin: -11px 0 -11px -11px;
}
.fp-consent__input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    cursor: pointer;
}
.fp-consent__box {
    width: 22px;
    height: 22px;
    display: grid;
    place-items: center;
    border-radius: 7px;
    border: 1.5px solid var(--fp-muted);
    background: rgba(255, 255, 255, 0.04);
    color: #fff;
    font-size: 14px;
    pointer-events: none;
    transition: background-color 0.2s, border-color 0.2s;
}
.fp-consent__box .i { opacity: 0; transform: scale(0.5); stroke-width: 3; transition: opacity 0.2s, transform 0.25s var(--fp-ease); }
.fp-consent__label:hover .fp-consent__box { border-color: var(--fp-violet-2); }
.fp-consent__input:checked + .fp-consent__box { background: var(--fp-grad); border-color: transparent; }
.fp-consent__input:checked + .fp-consent__box .i { opacity: 1; transform: none; }
.fp-consent__input:focus-visible + .fp-consent__box { outline: 2px solid var(--fp-violet-2); outline-offset: 3px; }
.fp-consent__input[aria-invalid="true"]:not(:checked) + .fp-consent__box { border-color: var(--fp-coral); background: rgba(255, 107, 107, 0.1); }
.fp-consent__text { min-width: 0; }
.fp-consent__more {
    color: var(--fp-text);
    text-decoration: underline;
    text-decoration-color: rgba(169, 139, 255, 0.6);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.2s, text-decoration-color 0.2s;
}
.fp-consent__more:hover { color: var(--fp-violet-2); text-decoration-color: currentColor; }
.fp-consent__more:focus-visible { outline-offset: 1px; border-radius: 4px; }
.fp-consent__chev { margin-left: 3px; font-size: 14px; vertical-align: -0.15em; transition: transform 0.25s var(--fp-ease); }
.fp-consent__more[aria-expanded="true"] .fp-consent__chev { transform: rotate(180deg); }
.fp-consent__doc {
    display: flex;
    gap: 8px;
    margin: 10px 0 0 var(--fp-consent-indent);
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px dashed rgba(169, 139, 255, 0.4);
    background: rgba(124, 58, 255, 0.08);
    color: var(--fp-text-2);
    font-size: 13px;
    line-height: 1.5;
}
.fp-consent__doc .i { flex-shrink: 0; margin-top: 0.2em; color: var(--fp-violet-2); }
.js .fp-consent__doc:not(.is-open) { display: none; }
.fp-consent .fp-form__error { padding-left: var(--fp-consent-indent); }
@media (max-width: 379px) {
    .fp-consent__doc { margin-left: 0; }
}

.fp-success {
    padding: 22px;
    border-radius: 20px;
    background: rgba(124, 58, 255, 0.12);
    border: 1px solid rgba(169, 139, 255, 0.32);
    animation: fp-pop 0.6s var(--fp-ease);
}
.fp-success:focus, .fp-success:focus-visible { outline: none; }
.fp-success__icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--fp-grad);
    color: #fff;
    font-size: 22px;
}
.fp-success__title { margin-top: 14px; font: 800 1.25rem/1.25 var(--fp-font-h); }
.fp-success__text { margin-top: 8px; color: var(--fp-text-2); font-size: 15px; line-height: 1.6; }
.fp-success__cta { margin-top: 18px; }
@media (max-width: 479px) {
    .fp-success { padding: 18px; }
    .fp-success__cta { width: 100%; padding-inline: 16px; }
}

/* ---------- Features (bento) ---------- */
.fp-features { padding-top: 0; }
.fp-bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 760px) {
    .fp-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fp-card--wide { grid-column: span 2; }
}
@media (min-width: 1080px) {
    .fp-bento { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.fp-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: clamp(22px, 3vw, 32px);
    overflow: hidden;
    border-radius: 24px;
    background: linear-gradient(180deg, #17151F 0%, #111018 100%);
    border: 1px solid var(--fp-line);
    transition: border-color 0.3s, transform 0.4s var(--fp-ease);
}
.fp-card::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -20%;
    width: 60%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(124, 58, 255, 0.16), transparent 70%);
    pointer-events: none;
}
.fp-card:hover { border-color: rgba(169, 139, 255, 0.35); transform: translateY(-4px); }
.fp-card > * { position: relative; }

@media (min-width: 760px) {
    .fp-card--wide { flex-direction: row; align-items: center; gap: clamp(24px, 3vw, 40px); }
    .fp-card--wide .fp-card__body, .fp-card--wide .fp-card__visual { flex: 1 1 0; min-width: 0; }
}
.fp-card__body { display: flex; flex-direction: column; gap: 16px; }

/* Иконки тоновые: градиент оставлен кнопкам, ключевым цифрам и активным состояниям */
.fp-card__icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(124, 58, 255, 0.14);
    border: 1px solid rgba(169, 139, 255, 0.24);
    color: #CDBEFF;
    font-size: 22px;
}
.fp-card__title { font: 700 clamp(1.2rem, 1.05rem + 0.6vw, 1.45rem)/1.25 var(--fp-font-h); letter-spacing: -0.02em; }
.fp-card__text { color: var(--fp-text-2); font-size: 15.5px; line-height: 1.6; }
.fp-card__list { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.fp-card__list li {
    padding: 5px 11px;
    border-radius: 99px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--fp-line);
    color: var(--fp-text-2);
    font-size: 12.5px;
}
.fp-card__visual {
    padding: 18px;
    border-radius: 18px;
    background: #0E0D15;
    border: 1px solid var(--fp-line);
}

/* Adaptive plan visual */
.fp-adapt { box-shadow: 0 24px 50px -30px rgba(124, 58, 255, 0.55); }
.fp-adapt__title { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 14px; font-weight: 700; }
.fp-adapt__title .i { color: var(--fp-coral); }
.fp-adapt__list { list-style: none; display: grid; gap: 8px; }
.fp-adapt__list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.04);
    font-size: 14px;
}
.fp-adapt__list span { color: var(--fp-text-2); min-width: 0; }
.fp-adapt__list s { color: var(--fp-muted); font-size: 13px; }
.fp-adapt__list b { font-weight: 700; }
.fp-adapt__list em {
    padding: 3px 8px;
    border-radius: 99px;
    background: rgba(255, 107, 107, 0.14);
    color: #FF9A8F;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}
.fp-adapt__why { display: flex; gap: 8px; margin-top: 12px; color: var(--fp-muted); font-size: 12.5px; line-height: 1.5; }
.fp-adapt__why .i { margin-top: 0.2em; color: var(--fp-coral); }

@media (max-width: 400px) {
    .fp-adapt__list li { grid-template-columns: minmax(0, 1fr) auto auto; }
    .fp-adapt__list span { grid-column: 1 / -1; }
}

/* Macro visual */
.fp-macro { display: grid; gap: 12px; }
.fp-macro__row { display: grid; grid-template-columns: 78px minmax(0, 1fr) auto; align-items: center; gap: 12px; font-size: 13.5px; }
.fp-macro__row span:first-child { color: var(--fp-text-2); }
.fp-macro__row b { font-weight: 700; }
.fp-macro__bar { height: 8px; overflow: hidden; border-radius: 99px; background: rgba(255, 255, 255, 0.07); }
.fp-macro__bar i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--fp-grad);
    transform-origin: 0 50%;
    transform: scaleX(var(--v, 0.5));
}

/* Weekly report visual */
.fp-report { padding-bottom: 14px; }
.fp-report__bars { display: flex; align-items: flex-end; gap: 8px; height: 64px; }
.fp-report__bars i {
    flex: 1;
    height: 100%;
    border-radius: 6px 6px 3px 3px;
    background: rgba(169, 139, 255, 0.28);
    transform-origin: 50% 100%;
    transform: scaleY(var(--v, 0.5));
}
.fp-report__bars i:last-child { background: var(--fp-grad); }
.fp-report__text { margin-top: 12px; color: var(--fp-text-2); font-size: 13.5px; }
.fp-report__text b { color: var(--fp-text); }

/* Streak visual */
.fp-streak { box-shadow: 0 24px 50px -30px rgba(255, 107, 107, 0.4); }
.fp-streak__top { display: flex; align-items: center; gap: 12px; }
.fp-streak__flame {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: rgba(255, 181, 71, 0.15);
    color: var(--fp-amber);
    font-size: 22px;
}
.fp-streak__title { display: flex; flex-direction: column; }
.fp-streak__title b { font: 800 1.1rem/1.25 var(--fp-font-h); }
.fp-streak__title small { color: var(--fp-muted); font-size: 13px; }
.fp-streak__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-top: 16px; }
.fp-streak__grid i { aspect-ratio: 1; border-radius: 7px; background: rgba(255, 255, 255, 0.06); }
.fp-streak__grid i.is-on { background: var(--fp-grad); }
.fp-streak__grid i.is-today { background: none; border: 2px solid var(--fp-coral); }
.fp-streak__challenge {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--fp-line);
    color: var(--fp-text-2);
    font-size: 13.5px;
}
.fp-faces { display: flex; flex-shrink: 0; }
.fp-faces i {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    margin-left: -8px;
    border-radius: 50%;
    border: 2px solid #0E0D15;
    color: #fff;
    font-size: 12px;
    font-style: normal;
    font-weight: 700;
}
.fp-faces i:first-child { margin-left: 0; background: #7C3AFF; }
.fp-faces i:nth-child(2) { background: #C2418F; }
.fp-faces i:nth-child(3) { background: #D9533F; }

/* ---------- How it works ---------- */
.fp-how { padding-top: 0; }
.fp-steps { position: relative; list-style: none; display: grid; gap: 16px; }
@media (min-width: 860px) {
    .fp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
    /* Линия-связка проходит на уровне центров иконок */
    .fp-steps::before {
        content: "";
        position: absolute;
        top: calc(clamp(22px, 3vw, 30px) + 26px);
        left: 12%;
        right: 12%;
        height: 2px;
        background: linear-gradient(90deg, transparent, rgba(124, 58, 255, 0.85) 20%, rgba(255, 107, 107, 0.85) 80%, transparent);
    }
}
.fp-step {
    position: relative;
    overflow: hidden;
    padding: clamp(22px, 3vw, 30px);
    border-radius: 24px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-line);
}
/* Крупная контурная цифра — редакционный акцент вместо мелкой подписи */
.fp-step__num {
    position: absolute;
    top: clamp(14px, 2vw, 20px);
    right: clamp(18px, 2.4vw, 26px);
    color: rgba(169, 139, 255, 0.22);
    font: 800 clamp(3rem, 2.5rem + 1.4vw, 4rem)/1 var(--fp-font-h);
    letter-spacing: -0.05em;
}
@supports (-webkit-text-stroke: 1px #000) {
    .fp-step__num { color: transparent; -webkit-text-stroke: 1.5px rgba(169, 139, 255, 0.42); }
}
.fp-step__icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 22px;
    border-radius: 16px;
    background: rgba(124, 58, 255, 0.14);
    border: 1px solid rgba(169, 139, 255, 0.24);
    color: #CDBEFF;
    font-size: 23px;
}
/* Первый шаг можно сделать прямо на странице — он подсвечен */
.fp-step:first-child .fp-step__icon {
    background: var(--fp-grad);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 14px 30px -12px rgba(124, 58, 255, 0.8);
}
.fp-step__title { font: 700 1.25rem/1.3 var(--fp-font-h); letter-spacing: -0.02em; }
.fp-step__text { margin-top: 10px; color: var(--fp-text-2); font-size: 15.5px; line-height: 1.6; }
.fp-step__text a {
    color: var(--fp-violet-2);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color 0.25s;
}
.fp-step__text a:hover { color: var(--fp-text); }

/* ---------- Results ---------- */
.fp-results { padding-top: 0; padding-bottom: clamp(40px, 5vw, 64px); }
.fp-stories { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 720px) and (max-width: 1023px) {
    .fp-stories { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
    .fp-stories { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
}
.fp-story {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: clamp(20px, 2.6vw, 28px);
    border-radius: 24px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-line);
}
.fp-story__head { display: flex; align-items: center; gap: 12px; }
.fp-story__avatar {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    font: 800 18px/1 var(--fp-font-h);
}
.fp-story__avatar--1 { background: linear-gradient(135deg, #7C3AFF, #FF6B6B); }
.fp-story__avatar--2 { background: linear-gradient(135deg, #D9533F, #C98A1E); }
.fp-story__avatar--3 { background: linear-gradient(135deg, #5B2BD6, #B0479E); }
.fp-story__who { display: flex; flex-direction: column; min-width: 0; }
.fp-story__who b { font-weight: 700; }
.fp-story__who small { color: var(--fp-muted); font-size: 13px; }

/* Подпись всегда над цифрой — графики трёх карточек стоят на одной линии */
.fp-story__metric { display: flex; flex-direction: column; gap: 6px; }
.fp-story__label { color: var(--fp-muted); font-size: 13px; font-weight: 600; }
.fp-story__result { font: 800 clamp(1.5rem, 1.2rem + 1vw, 1.875rem)/1.1 var(--fp-font-h); letter-spacing: -0.03em; }

.fp-story__plot {
    padding: 12px 10px 8px;
    border-radius: 16px;
    background: #0E0D15;
    border: 1px solid var(--fp-line);
    clip-path: inset(0 0 0 0 round 16px);
    transition: clip-path 0.9s var(--fp-ease);
}
/* «Рисование» графика при появлении карточки. Базовый transition оставлен, чтобы снятие
   data-reveal китом не обрывало анимацию; скрытие — мгновенное */
.js .fp-story[data-reveal] .fp-story__plot { clip-path: inset(0 100% 0 0 round 16px); transition: none; }
.js .fp-story[data-reveal].is-in .fp-story__plot {
    clip-path: inset(0 0 0 0 round 16px);
    transition: clip-path 0.9s var(--fp-ease) calc(var(--i, 0) * 90ms + 0.2s);
}

.fp-chart { display: block; width: 100%; height: auto; overflow: visible; }
.fp-chart__grid { fill: none; stroke: rgba(255, 255, 255, 0.07); stroke-width: 1; stroke-dasharray: 3 5; }
.fp-chart__line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.fp-chart__dot { fill: #0E0D15; stroke: var(--fp-violet-2); stroke-width: 2.5; }
.fp-chart__dot--end { fill: var(--fp-coral); stroke: #fff; stroke-width: 2; }

.fp-story__axis { display: flex; justify-content: space-between; gap: 12px; color: var(--fp-muted); font-size: 12.5px; }
.fp-story__axis b { color: var(--fp-text); font-weight: 700; }
.fp-story__quote {
    padding-top: 16px;
    border-top: 1px solid var(--fp-line);
    color: var(--fp-text-2);
    font-size: 15px;
    line-height: 1.6;
}
.fp-results__note { margin-top: 20px; color: var(--fp-muted); font-size: 13px; text-align: center; }

/* ---------- Social proof ---------- */
.fp-proof { padding: 0 0 clamp(8px, 2vw, 16px); }
.fp-proof__list {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border-radius: 22px;
    background: var(--fp-line);
    border: 1px solid var(--fp-line);
}
@media (min-width: 960px) {
    .fp-proof__list { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.fp-proof__item { display: flex; align-items: center; gap: 14px; padding: 20px; background: var(--fp-bg-2); }
.fp-proof__icon {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.06);
    color: #C9B8FF;
    font-size: 20px;
}
.fp-proof__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.fp-proof__body b { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; font: 700 1.05rem/1.3 var(--fp-font-h); }
.fp-proof__body small { color: var(--fp-muted); font-size: 13px; line-height: 1.4; }
@media (max-width: 559px) {
    .fp-proof__item { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
    .fp-proof__body b { font-size: 0.98rem; }
}

/* ---------- Pricing ---------- */
.fp-pricing { padding-top: clamp(64px, 8vw, 104px); }
.fp-pricing__wrap { display: grid; gap: 20px; max-width: 980px; margin: 0 auto; }
.fp-trial {
    list-style: none;
    display: grid;
    gap: 16px;
    padding: 20px;
    border-radius: 22px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-line);
}
@media (min-width: 760px) {
    .fp-trial { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 24px 28px; }
}
.fp-trial__step {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr);
    column-gap: 12px;
    row-gap: 2px;
    align-items: start;
}
.fp-trial__step b { font-weight: 700; }
.fp-trial__step > span:last-child { grid-column: 2; color: var(--fp-text-2); font-size: 14px; line-height: 1.45; }
.fp-trial__dot {
    grid-row: span 2;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.06);
    color: #C9B8FF;
    font-size: 18px;
}
.fp-trial__step.is-now .fp-trial__dot { background: var(--fp-grad); color: #fff; }

.fp-plans { display: grid; gap: 16px; }
@media (min-width: 640px) {
    .fp-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.fp-price {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: clamp(22px, 3vw, 30px);
    border-radius: 24px;
    background: var(--fp-surface);
    border: 1px solid var(--fp-line-2);
}
.fp-price--best {
    border: 1.5px solid transparent;
    background:
        linear-gradient(160deg, #1D1930, #15131F) padding-box,
        var(--fp-grad) border-box;
    box-shadow: 0 30px 70px -36px rgba(124, 58, 255, 0.75);
}
.fp-price__badge {
    position: absolute;
    top: 20px;
    right: 20px;
    padding: 6px 12px;
    border-radius: 99px;
    background: var(--fp-coral);
    color: #1A0B12;
    font: 800 13px/1.2 var(--fp-font-h);
}
.fp-price__name { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 700 1.125rem/1.3 var(--fp-font-h); }
.fp-price--best .fp-price__name { padding-right: 72px; }
.fp-price__pop {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 99px;
    background: rgba(169, 139, 255, 0.14);
    color: #DCD2FF;
    font: 600 12.5px/1.3 var(--fp-font);
}
.fp-price__pop .i { font-size: 14px; }
.fp-price__value { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.fp-price__value b { font: 800 clamp(2rem, 1.5rem + 2vw, 2.75rem)/1 var(--fp-font-h); letter-spacing: -0.03em; }
.fp-price__value > span { color: var(--fp-text-2); font-size: 15px; }
.fp-price__old { color: var(--fp-muted); font-size: 15px; }
.fp-price__note { margin-bottom: 8px; color: var(--fp-text-2); font-size: 14.5px; line-height: 1.55; }
.fp-price__cta { width: 100%; margin-top: auto; }

.fp-pricing__incl {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 8px;
    color: var(--fp-text-2);
    font-size: 14.5px;
}
.fp-pricing__incl .i { margin-top: 0.25em; color: var(--fp-violet-2); }

/* ---------- Final CTA ---------- */
.fp-final { position: relative; overflow: hidden; padding: clamp(64px, 9vw, 120px) 0; }
.fp-final__bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(45% 55% at 18% 30%, rgba(124, 58, 255, 0.34), transparent 70%),
        radial-gradient(40% 50% at 86% 80%, rgba(255, 107, 107, 0.26), transparent 70%);
}
.fp-final__card {
    position: relative;
    display: grid;
    gap: 32px;
    max-width: 1080px;
    margin: 0 auto;
    padding: clamp(22px, 5vw, 56px);
    border-radius: 32px;
    background: linear-gradient(160deg, rgba(30, 25, 48, 0.94), rgba(17, 15, 25, 0.96));
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 50px 100px -50px rgba(124, 58, 255, 0.6);
}
@media (min-width: 960px) {
    .fp-final__card { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 56px; align-items: center; }
}
.fp-final__title {
    margin-top: 14px;
    font: 800 clamp(2rem, 1.3rem + 2.2vw, 2.75rem)/1.08 var(--fp-font-h);
    letter-spacing: -0.035em;
    text-wrap: balance;
}
.fp-final__lead { margin-top: 16px; color: var(--fp-text-2); font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem); line-height: 1.65; }
.fp-final__main, .fp-final__side { min-width: 0; }
.fp-final__side .fp-stores { margin-top: 24px; }

.fp-objections { list-style: none; display: grid; gap: 16px; }
.fp-objections li { display: flex; align-items: flex-start; gap: 14px; color: var(--fp-text-2); font-size: 15px; line-height: 1.55; }
.fp-objections b { color: var(--fp-text); font-weight: 700; }
.fp-objections__icon {
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(124, 58, 255, 0.16);
    color: var(--fp-violet-2);
    font-size: 18px;
}

/* ---------- Footer ---------- */
.fp-footer {
    padding: 48px 0 calc(32px + var(--ck-dock-space));
    background: #08070C;
    border-top: 1px solid var(--fp-line);
}
.fp-footer__grid { display: grid; gap: 24px; }
@media (min-width: 760px) {
    .fp-footer__grid { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
}
.fp-footer__brand { min-width: 0; }
.fp-footer__tag { max-width: 340px; margin-top: 10px; color: var(--fp-muted); font-size: 14px; }
.fp-footer__nav { display: flex; flex-wrap: wrap; gap: 0 22px; }
.fp-footer__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--fp-text-2);
    font-size: 14.5px;
    transition: color 0.25s;
}
.fp-footer__link:hover { color: var(--fp-text); }
.fp-footer__bottom {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid var(--fp-line);
}
@media (min-width: 760px) {
    .fp-footer__bottom { flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; }
}
.fp-footer__note { max-width: 640px; color: var(--fp-muted); font-size: 13px; line-height: 1.5; }
.fp-footer__back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    color: var(--fp-text-2);
    font-size: 13.5px;
    font-weight: 600;
    white-space: nowrap;
    transition: color 0.25s;
}
.fp-footer__back:hover { color: var(--fp-coral); }

/* ---------- Keyframes ---------- */
@keyframes fp-title-in {
    from { transform: translate3d(0, 18px, 0); }
    to { transform: none; }
}
@keyframes fp-phone-in {
    from { transform: translate3d(0, 36px, 0) rotate(-2deg); }
    to { transform: none; }
}
@keyframes fp-ring {
    from { transform: rotate(-330deg); }
}
@keyframes fp-chip-in {
    from { scale: 0.6; }
}
@keyframes fp-float {
    0%, 100% { transform: translate3d(0, 0, 0); }
    50% { transform: translate3d(0, -6px, 0); }
}
@keyframes fp-orbit {
    from { transform: translate(-50%, -50%) rotate(0deg); }
    to { transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes fp-progress {
    from { transform: scaleX(0.08); }
}
@keyframes fp-ecg {
    0% { clip-path: inset(0 100% 0 0); opacity: 1; }
    55% { clip-path: inset(0 0 0 0); opacity: 1; }
    100% { clip-path: inset(0 0 0 0); opacity: 0.2; }
}
@keyframes fp-beat {
    0%, 40%, 100% { transform: scale(1); }
    12% { transform: scale(1.2); }
    26% { transform: scale(1.08); }
}
@keyframes fp-step-in {
    from { opacity: 0.2; transform: translate3d(28px, 0, 0); }
    to { opacity: 1; transform: none; }
}
@keyframes fp-step-back {
    from { opacity: 0.2; transform: translate3d(-28px, 0, 0); }
    to { opacity: 1; transform: none; }
}
@keyframes fp-pop {
    from { opacity: 0.2; transform: translate3d(0, 16px, 0) scale(0.98); }
    to { opacity: 1; transform: none; }
}
@keyframes fp-bar {
    from { transform: scaleY(0.04); }
}
@keyframes fp-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        animation-delay: 0s !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0s !important;
    }
    .js .fp-story[data-reveal] .fp-story__plot { clip-path: inset(0 0 0 0 round 16px); }
    .fp-device { transform: none !important; }
}
