/*!
 * formy-v2.css — формы free-lines.ru, версия 2 (16.10.2026).
 *
 * Компоненты: поле, телефон с кодом страны, почта с подсказкой опечаток,
 * комментарий с авторостом, галочка согласия на обработку ПД, кнопка
 * с состояниями, плашка ошибки сервера, экран успеха; два вида —
 * универсальное окно и блок на странице (тёмная панель с фото).
 *
 * Главное правило — форма не дёргается: ошибка живёт в строке подписи
 * фиксированной высоты, рамка поля всегда 2 px (меняется цвет), кнопка одной
 * ширины во всех состояниях, ошибка сервера раскрывается плавно, успех
 * занимает ту же высоту. Поведение — formy-v2.js, дока — README в макете.
 *
 * Все классы с префиксом fv2-, переменные --fv2-*: со старыми стилями сайта
 * не пересекаются.
 */

:root {
    --fv2-accent: #f4943b;
    --fv2-accent-hover: #e58124;
    --fv2-accent-soft: #fdebd3;
    --fv2-accent-ring: rgba(244, 148, 59, .22);
    --fv2-text: #2b2b2b;
    --fv2-text-2: #6b7078;
    --fv2-text-3: #4d4d4d;
    --fv2-placeholder: #8a8f96;
    --fv2-line: #e6e8eb;
    --fv2-line-2: #c9ccd1;
    --fv2-bg: #f5f6f8;
    --fv2-bg-2: #eef0f2;
    --fv2-surface: #fff;
    --fv2-error: #cf3a2b;
    --fv2-error-soft: #fdecea;
    --fv2-error-ring: rgba(207, 58, 43, .16);
    --fv2-ok: #1f9d55;
    --fv2-ok-soft: #e7f6ee;
    --fv2-r-field: 6px;
    --fv2-r-btn: 10px;
    --fv2-r-card: 12px;
    --fv2-r-panel: 16px;
    --fv2-shadow: 0 8px 22px rgba(0, 0, 0, .08);
    --fv2-shadow-modal: 0 18px 40px rgba(0, 0, 0, .28);
    --fv2-font: Roboto, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    --fv2-ease: cubic-bezier(.2, .7, .2, 1);
    --fv2-header-offset: 96px;   /* отступ под липкую шапку при прокрутке к ошибке; JS уточняет по .b-head */
    --fv2-bottom-ui: 0px;        /* высота нижней панели/виджета — поднимает кнопку чата; ставит JS */
}

/* ── Иконки (маски: цвет задаётся background-color) ──────────────────────── */
.fv2-field__icon,
.fv2-phone__chev,
.fv2-check__box::after,
.fv2__promise::before,
.fv2-modal__close::before,
.fv2-btn__ico,
.fv2-phone__globe {
    -webkit-mask: var(--fv2-i) center / contain no-repeat;
    mask: var(--fv2-i) center / contain no-repeat;
}

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

/* ── Корень формы ───────────────────────────────────────────────────────── */
.fv2 {
    container: fv2 / inline-size;
    position: relative;
    font-family: var(--fv2-font);
    color: var(--fv2-text);
    font-size: 15px;
    line-height: 1.45;
    text-align: left;
    -webkit-text-size-adjust: 100%;
}
.fv2 *,
.fv2 *::before,
.fv2 *::after { box-sizing: border-box; }
.fv2 [hidden] { display: none !important; }

.fv2__stage { position: relative; }
.fv2__panel { position: relative; display: flow-root; margin: 0; padding: 0; border: 0; min-width: 0; }   /* отступы детей не проваливаются наружу — успех той же высоты */
.fv2__panel--entering { position: absolute; left: 0; right: 0; top: 0; opacity: 0; transition: opacity .18s ease .06s; }
.fv2__panel--entering.fv2__panel--in { opacity: 1; }
.fv2__panel--leaving { opacity: 0; transition: opacity .14s ease; pointer-events: none; }
.fv2__panel:focus { outline: none; }

/* заголовки компонентов не наследуют стили h2/h3 сайта (Akrobat, прописные и т. п.) */
.fv2__title,
.fv2-success__title,
.fv2-block__title {
    font-family: var(--fv2-font);
    font-style: normal;
    text-transform: none;
    text-shadow: none;
    padding-top: 0;
    padding-bottom: 0;
    border: 0;
    background: none;
}
.fv2-success__title { letter-spacing: -.01em; }

/* шапка формы */
.fv2__head { margin-bottom: 20px; }
.fv2__eyebrow {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fv2-accent-hover);
}
.fv2__title {
    margin: 0 0 6px;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.01em;
    color: var(--fv2-text);
}
.fv2__promise {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    font-size: 14px;
    line-height: 20px;
    color: var(--fv2-text-2);
}
.fv2__promise::before {
    content: "";
    flex: 0 0 16px;
    height: 16px;
    margin-top: 2px;
    background: var(--fv2-accent);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.fv2__promise--none::before { display: none; }

/* тело: поля */
.fv2__body { position: relative; }
.fv2__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}
@container fv2 (min-width: 520px) {
    .fv2__grid--2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 16px; }
    .fv2__grid--2 > .fv2-field--full,
    .fv2__grid--2 > .fv2__span { grid-column: 1 / -1; }
}

/* ── Поле ───────────────────────────────────────────────────────────────── */
.fv2-field { position: relative; min-width: 0; }

/* строка подписи: фиксированная высота, справа — место под ошибку */
.fv2-field__top {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 20px;
    margin-bottom: 6px;
    white-space: nowrap;
}
.fv2-field__label {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    color: var(--fv2-text);
    cursor: pointer;
}
.fv2-field__opt {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 400;
    line-height: 20px;
    color: var(--fv2-text-2);
    transition: opacity .1s ease;
}
.fv2-field__msg {
    flex: 1 1 auto;
    min-width: 0;
    display: grid;
    justify-items: end;
    align-items: center;
    height: 20px;
}
.fv2-field__error,
.fv2-field__hint {
    grid-area: 1 / 1;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
    line-height: 20px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .1s ease, transform .1s ease, visibility 0s linear .1s;
    visibility: hidden;
}
.fv2-field__error { font-weight: 500; color: var(--fv2-error); }
.fv2-field__hint {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font-family: var(--fv2-font);
    font-weight: 500;
    color: var(--fv2-accent-hover);
    text-decoration: underline;
    text-decoration-style: dashed;
    text-underline-offset: 3px;
    cursor: pointer;
}
.fv2-field__hint:hover { color: var(--fv2-text); }
.fv2-field__hint:focus-visible { outline: 2px solid var(--fv2-accent-ring); outline-offset: 2px; border-radius: 3px; }
.fv2-field.is-invalid .fv2-field__error,
.fv2-field.has-hint:not(.is-invalid) .fv2-field__hint {
    opacity: 1;
    transform: none;
    visibility: visible;
    transition: opacity .15s ease, transform .15s ease, visibility 0s;
}
.fv2-field.is-invalid .fv2-field__opt,
.fv2-field.has-hint .fv2-field__opt { display: none; }

/* узкая строка: ошибка заменяет подпись — «Телефон: введите номер полностью» */
.fv2-field__top.is-compact .fv2-field__label,
.fv2-field__top.is-compact .fv2-field__opt {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
}
.fv2-field__top.is-compact .fv2-field__msg { justify-items: start; }
.fv2-field__top.is-compact .fv2-field__error::before,
.fv2-field__top.is-compact .fv2-field__hint::before { content: attr(data-prefix); font-weight: 700; }

/* рамка поля — всегда 2 px, меняется только цвет */
.fv2-field__control {
    position: relative;
    display: flex;
    align-items: stretch;
    min-height: 48px;
    border: 2px solid var(--fv2-line);
    border-radius: var(--fv2-r-field);
    background: var(--fv2-bg);
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
.fv2-field__control:hover { border-color: var(--fv2-line-2); }
.fv2-field__control:focus-within {
    border-color: var(--fv2-accent);
    background: var(--fv2-surface);
    box-shadow: 0 0 0 3px var(--fv2-accent-ring);
}
.fv2-field.is-invalid .fv2-field__control { border-color: var(--fv2-error); background: var(--fv2-surface); }
.fv2-field.is-invalid .fv2-field__control:focus-within { box-shadow: 0 0 0 3px var(--fv2-error-ring); }
.fv2-field.is-disabled .fv2-field__control,
.fv2-field__control:has(> .fv2-field__input:disabled) { border-color: var(--fv2-line); background: var(--fv2-bg-2); cursor: not-allowed; }

.fv2-field__input {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 44px;
    margin: 0;
    padding: 0 44px 0 12px;
    border: 0;
    border-radius: 0;
    outline: none;
    background: transparent;
    box-shadow: none;
    font-family: var(--fv2-font);
    font-size: 16px;            /* меньше 16 px iOS увеличивает страницу */
    line-height: 22px;
    color: var(--fv2-text);
    -webkit-appearance: none;
    appearance: none;
}
.fv2-field__input::placeholder { color: var(--fv2-placeholder); opacity: 1; }
.fv2-field__input:disabled { color: var(--fv2-placeholder); cursor: not-allowed; -webkit-text-fill-color: var(--fv2-placeholder); }
.fv2-field__input:-webkit-autofill,
.fv2-field__input:-webkit-autofill:hover,
.fv2-field__input:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--fv2-text);
    -webkit-box-shadow: 0 0 0 40px var(--fv2-surface) inset;
    transition: background-color 9999s ease 0s;
}
.fv2-field__input::-webkit-outer-spin-button,
.fv2-field__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fv2-field__input[type="number"] { -moz-appearance: textfield; }

textarea.fv2-field__input {
    display: block;
    height: auto;
    min-height: 68px;
    max-height: 184px;
    padding: 11px 44px 11px 12px;
    overflow-y: hidden;
    resize: none;
}

/* значок статуса внутри поля справа; место под него зарезервировано всегда */
.fv2-field__icon {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 20px;
    height: 20px;
    background-color: transparent;
    opacity: 0;
    transform: scale(.6);
    transition: opacity .15s ease, transform .15s ease, background-color .15s ease;
    pointer-events: none;
}
.fv2-field.is-valid .fv2-field__icon {
    opacity: 1;
    transform: none;
    background-color: var(--fv2-ok);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cmask id='m'%3E%3Crect width='24' height='24' fill='%23fff'/%3E%3Cpath d='M7 12.4l3.2 3.1L17.2 8.6' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/mask%3E%3Ccircle cx='12' cy='12' r='11' fill='%23000' mask='url(%23m)'/%3E%3C/svg%3E");
}
.fv2-field.has-hint:not(.is-invalid) .fv2-field__icon { opacity: 0; transform: scale(.6); }
.fv2-field.is-invalid .fv2-field__icon {
    opacity: 1;
    transform: none;
    background-color: var(--fv2-error);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cmask id='m'%3E%3Crect width='24' height='24' fill='%23fff'/%3E%3Crect x='10.8' y='6' width='2.4' height='8' rx='1.2' fill='%23000'/%3E%3Ccircle cx='12' cy='17.4' r='1.4' fill='%23000'/%3E%3C/mask%3E%3Ccircle cx='12' cy='12' r='11' fill='%23000' mask='url(%23m)'/%3E%3C/svg%3E");
}

/* единицы измерения внутри поля (вес, объём) */
.fv2-field__suffix {
    position: absolute;
    top: 0;
    bottom: 0;
    right: 14px;
    display: flex;
    align-items: center;
    font-size: 15px;
    color: var(--fv2-text-2);
    pointer-events: none;
}

/* ── Телефон: код страны ────────────────────────────────────────────────── */
.fv2-phone__country {
    position: relative;
    order: -1;                  /* в разметке — после поля: Tab сначала в номер, потом в код */
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 64px;
    padding: 0 10px 0 12px;
    border-right: 1px solid var(--fv2-line);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--fv2-text-3);
}
.fv2-phone__code { min-width: 20px; }
.fv2-phone__globe {
    display: none;
    width: 18px;
    height: 18px;
    background: var(--fv2-text-3);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9.5'/%3E%3Cpath d='M2.5 12h19M12 2.5c2.8 3 2.8 16 0 19M12 2.5c-2.8 3-2.8 16 0 19'/%3E%3C/svg%3E");
}
.fv2-phone__country.is-other .fv2-phone__code { display: none; }
.fv2-phone__country.is-other .fv2-phone__globe { display: block; }
.fv2-phone__chev {
    width: 10px;
    height: 10px;
    background: var(--fv2-text-2);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5'/%3E%3C/svg%3E");
}
.fv2-phone__select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    font-size: 16px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
.fv2-phone__country:hover .fv2-phone__chev { background: var(--fv2-accent-hover); }
.fv2-phone__select:focus-visible + .fv2-phone__face {
    outline: 3px solid var(--fv2-accent-ring);
    outline-offset: 4px;
    border-radius: 4px;
}
.fv2-phone__face { display: flex; align-items: center; gap: 6px; pointer-events: none; }
.fv2-field--phone .fv2-field__input { padding-left: 10px; letter-spacing: .01em; }

/* ── Галочка согласия: вся строка кликабельна, ошибка — в той же строке ──── */
.fv2-check {
    position: relative;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    column-gap: 12px;
    align-items: center;
    min-height: 44px;
    margin: 0;
    padding: 2px 0;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}
.fv2-check__input {
    position: absolute;
    top: 50%;
    left: 0;
    width: 22px;
    height: 22px;
    margin: -11px 0 0;
    opacity: 0;
    cursor: pointer;
}
.fv2-check__box {
    position: relative;
    width: 22px;
    height: 22px;
    border: 2px solid var(--fv2-line-2);
    border-radius: var(--fv2-r-field);
    background: var(--fv2-surface);
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.fv2-check__box::after {
    content: "";
    position: absolute;
    inset: 1px;
    background: #fff;
    opacity: 0;
    transform: scale(.6);
    transition: opacity .12s ease, transform .12s ease;
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.fv2-check:hover .fv2-check__box { border-color: var(--fv2-accent); }
.fv2-check__input:checked + .fv2-check__box { border-color: var(--fv2-accent); background: var(--fv2-accent); }
.fv2-check__input:checked + .fv2-check__box::after { opacity: 1; transform: none; }
.fv2-check__input:focus-visible + .fv2-check__box { box-shadow: 0 0 0 3px var(--fv2-accent-ring); }
.fv2-check.is-invalid .fv2-check__box { border-color: var(--fv2-error); box-shadow: 0 0 0 3px var(--fv2-error-ring); }
.fv2-check__text {
    font-size: 13px;
    line-height: 19px;
    color: var(--fv2-text-3);
}
.fv2-check__text a {
    color: var(--fv2-accent-hover);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.fv2-check__text a:hover { color: var(--fv2-text); }
/* место под ошибку зарезервировано всегда — текст галочки не перестраивается */
.fv2-check__error {
    display: grid;
    justify-items: end;
    font-size: 13px;
    font-weight: 500;
    line-height: 19px;
    color: var(--fv2-error);
    white-space: nowrap;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .1s ease, transform .1s ease;
}
.fv2-check__error > span { grid-area: 1 / 1; }
.fv2-check__error-s { visibility: hidden; }
.fv2-check.is-invalid .fv2-check__error { opacity: 1; transform: none; transition-duration: .15s; }
.fv2-check--plain { grid-template-columns: 22px minmax(0, 1fr); }
@container fv2 (max-width: 459px) {
    .fv2-check__error-l { visibility: hidden; }
    .fv2-check__error-s { visibility: visible; }
    .fv2-check__error { min-width: 62px; }
    .fv2-check__error-l { width: 0; overflow: hidden; }
}

/* ── Кнопка: одна ширина и высота во всех состояниях ───────────────────── */
.fv2-btn {
    position: relative;
    display: inline-grid;
    place-items: center;
    min-height: 52px;
    margin: 0;
    padding: 0 24px;
    border: 0;
    border-radius: var(--fv2-r-btn);
    background: var(--fv2-accent);
    box-shadow: 0 8px 20px rgba(244, 148, 59, .32);
    font-family: var(--fv2-font);
    font-size: 16px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: .01em;
    color: #fff;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background-color .18s ease, box-shadow .18s ease, transform .15s ease;
}
.fv2-btn--block { display: grid; width: 100%; }
.fv2-btn:hover { background: var(--fv2-accent-hover); box-shadow: 0 12px 24px rgba(244, 148, 59, .38); transform: translateY(-1px); color: #fff; }
.fv2-btn:active { transform: none; }
.fv2-btn:focus-visible { outline: 3px solid rgba(244, 148, 59, .5); outline-offset: 2px; }
.fv2-btn__layer {
    grid-area: 1 / 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    white-space: nowrap;
    transition: opacity .15s ease, transform .15s ease;
}
.fv2-btn__busy,
.fv2-btn__done { opacity: 0; transform: translateY(6px); }
.fv2-btn[data-state="busy"],
.fv2-btn[data-state="done"] { cursor: default; transform: none; }
.fv2-btn[data-state="busy"]:hover { background: var(--fv2-accent); box-shadow: 0 8px 20px rgba(244, 148, 59, .32); }
.fv2-btn[data-state="busy"] .fv2-btn__idle,
.fv2-btn[data-state="done"] .fv2-btn__idle { opacity: 0; transform: translateY(-6px); }
.fv2-btn[data-state="busy"] .fv2-btn__busy { opacity: 1; transform: none; }
.fv2-btn[data-state="done"] .fv2-btn__done { opacity: 1; transform: none; }
.fv2-btn[data-state="done"],
.fv2-btn[data-state="done"]:hover { background: var(--fv2-ok); box-shadow: 0 8px 20px rgba(31, 157, 85, .28); }
.fv2-btn__ico {
    width: 18px;
    height: 18px;
    background: currentColor;
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.fv2-spinner {
    width: 18px;
    height: 18px;
    border: 2.5px solid rgba(255, 255, 255, .45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: fv2-spin .7s linear infinite;
}
.fv2-btn--secondary {
    min-height: 48px;
    padding: 0 22px;
    border: 2px solid var(--fv2-accent);
    border-radius: 24px;
    background: var(--fv2-surface);
    box-shadow: none;
    font-size: 15px;
    font-weight: 700;
    color: var(--fv2-text);
}
.fv2-btn--secondary:hover { background: var(--fv2-accent-soft); box-shadow: none; color: var(--fv2-text); }
.fv2-btn--secondary .fv2-spinner { border-color: rgba(244, 148, 59, .35); border-top-color: var(--fv2-accent); }
.fv2-btn--secondary[data-state="busy"]:hover { background: var(--fv2-surface); box-shadow: none; }
.fv2-btn--secondary[data-state="done"],
.fv2-btn--secondary[data-state="done"]:hover { border-color: var(--fv2-ok); background: var(--fv2-ok-soft); color: var(--fv2-ok); box-shadow: none; }

/* ── Подвал формы: плашка ошибки сервера, кнопка, контакты ─────────────── */
.fv2__foot { position: relative; margin-top: 16px; }
.fv2__alert {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    transition: grid-template-rows .2s var(--fv2-ease), opacity .2s ease;
}
.fv2__alert.is-open { grid-template-rows: 1fr; opacity: 1; }
.fv2__alert-in { min-height: 0; overflow: hidden; }
.fv2__alert-box {
    display: flex;
    gap: 10px;
    margin-bottom: 12px;
    padding: 11px 14px;
    border-left: 4px solid var(--fv2-error);
    border-radius: var(--fv2-r-field);
    background: var(--fv2-error-soft);
    font-size: 14px;
    line-height: 20px;
    color: var(--fv2-text);
}
.fv2__alert-box a { color: var(--fv2-text); font-weight: 700; white-space: nowrap; }
.fv2__alert--offline .fv2__alert-box { border-left-color: var(--fv2-line-2); background: var(--fv2-bg); }
.fv2__alert--offline .fv2__alert-box::before {
    content: "";
    flex: 0 0 16px;
    height: 16px;
    margin-top: 2px;
    border: 2px solid var(--fv2-line-2);
    border-top-color: var(--fv2-text-2);
    border-radius: 50%;
    animation: fv2-spin 1s linear infinite;
}
.fv2__alt {
    display: grid;
    margin-top: 12px;
    font-size: 13px;
    line-height: 18px;
    color: var(--fv2-text-2);
    text-align: center;
}
.fv2__alt > * { grid-area: 1 / 1; transition: opacity .2s ease; }
.fv2__alt-long { opacity: 0; color: var(--fv2-text-3); }
.fv2__alt.is-long .fv2__alt-main { opacity: 0; }
.fv2__alt.is-long .fv2__alt-long { opacity: 1; }
.fv2__alt a { color: var(--fv2-text); font-weight: 700; text-decoration: none; white-space: nowrap; }
.fv2__alt a:hover { color: var(--fv2-accent-hover); }
.fv2__alt a.fv2__alt-max { font-weight: 500; color: var(--fv2-accent-hover); text-decoration: underline; text-underline-offset: 2px; }
.fv2__policy { margin: 6px 0 0; font-size: 12px; line-height: 16px; color: var(--fv2-text-2); text-align: center; }
.fv2__policy a { color: var(--fv2-text-2); text-decoration: underline; text-underline-offset: 2px; }
.fv2__policy a:hover { color: var(--fv2-accent-hover); }

/* ── Экран успеха и шаг 2 ───────────────────────────────────────────────── */
.fv2-success {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
    text-align: center;
}
.fv2-success__icon { width: 64px; height: 64px; margin: 0 auto 14px; }
.fv2-success__icon circle { fill: var(--fv2-ok-soft); }
.fv2-success__icon path {
    fill: none;
    stroke: var(--fv2-ok);
    stroke-width: 3.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 30;
    stroke-dashoffset: 30;
}
.fv2__panel--in .fv2-success__icon path,
.fv2-success.is-shown .fv2-success__icon path { animation: fv2-draw .45s var(--fv2-ease) .15s forwards; }
.fv2-success__title { margin: 0 0 6px; font-size: 24px; font-weight: 800; line-height: 1.2; color: var(--fv2-text); }
.fv2-success__text { margin: 0 auto; max-width: 34em; font-size: 15px; line-height: 22px; color: var(--fv2-text-3); }
.fv2-success__close { align-self: center; margin-top: 18px; }
/* ── Окно ───────────────────────────────────────────────────────────────── */
html.fv2-modal-open { overflow: hidden; }
html.fv2-modal-open body { overflow: hidden; padding-right: var(--fv2-sbw, 0px); }

.fv2-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: max(24px, 7vh) 16px 24px;
    font-family: var(--fv2-font);
}
.fv2-modal[hidden] { display: none; }
.fv2-modal__backdrop {
    position: fixed;
    inset: 0;
    background: rgba(23, 25, 28, .56);
    opacity: 0;
    transition: opacity .2s ease;
}
.fv2-modal.is-open .fv2-modal__backdrop { opacity: 1; }
.fv2-modal__dialog {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(480px, 100%);
    max-height: calc(100vh - max(24px, 7vh) - 24px);
    max-height: calc(100dvh - max(24px, 7vh) - 24px);
    border-radius: var(--fv2-r-panel);
    background: var(--fv2-surface);
    box-shadow: var(--fv2-shadow-modal);
    opacity: 0;
    transform: translateY(12px) scale(.985);
    transition: opacity .2s ease, transform .24s var(--fv2-ease);
    outline: none;
}
.fv2-modal.is-open .fv2-modal__dialog { opacity: 1; transform: none; }
.fv2-modal__content {
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 28px 28px 22px;
}
.fv2-modal__close {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    transition: background-color .15s ease;
}
.fv2-modal__close::before {
    content: "";
    position: absolute;
    inset: 13px;
    background: var(--fv2-text-2);
    --fv2-i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E");
}
.fv2-modal__close:hover { background: var(--fv2-bg); }
.fv2-modal__close:hover::before { background: var(--fv2-text); }
.fv2-modal__close:focus-visible { outline: 3px solid var(--fv2-accent-ring); }
.fv2-modal .fv2__title { padding-right: 36px; }   /* крестик — только у строки заголовка */

/* форма в окне: тело прокручивается, кнопка всегда на экране */
.fv2-modal .fv2,
.fv2-modal .fv2__stage { display: flex; flex-direction: column; min-height: 0; flex: 0 1 auto; }
/* обёртка, которую добавляет подгрузка окна (вебинар): без неё в цепочке flex тело не прокручивается
   и кнопка уезжает за край окна на невысоких экранах (баг 20.10.2026) */
.fv2-modal__content > :not(.fv2):not(script) { display: flex; flex-direction: column; min-height: 0; flex: 0 1 auto; }
.fv2-modal .fv2__panel--form { display: flex; flex-direction: column; min-height: 0; flex: 0 1 auto; }
.fv2-modal .fv2__head,
.fv2-modal .fv2__foot { flex: 0 0 auto; }
.fv2-modal .fv2__body {
    flex: 0 1 auto;
    min-height: 0;
    margin: -4px;
    padding: 4px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
.fv2-modal .fv2__panel--success { overflow-y: auto; min-height: 0; flex: 0 1 auto; }
.fv2-modal .fv2.is-overflow .fv2__foot { box-shadow: 0 -12px 14px -14px rgba(0, 0, 0, .35); padding-top: 12px; margin-top: 4px; }

@media (max-width: 599px) {
    .fv2-modal { padding: 0; align-items: stretch; }
    .fv2-modal__dialog {
        width: 100%;
        height: 100vh;
        height: 100dvh;
        max-height: none;
        border-radius: 0;
        box-shadow: none;
        transform: translateY(28px);
    }
    .fv2-modal__content { flex: 1 1 auto; padding: 16px 16px calc(14px + env(safe-area-inset-bottom)); }
    .fv2-modal__close { top: 4px; right: 4px; }
    .fv2-modal .fv2__head { margin-bottom: 16px; }
    .fv2-modal .fv2__title { font-size: 22px; padding-right: 40px; }
    .fv2-modal .fv2__grid { gap: 12px; }
    .fv2-modal .fv2__foot { margin-top: 12px; }
}

/* при открытой форме — ничего поверх: баннер вебинара, cookie, чат, свои виджеты */
html.fv2-modal-open .b-popup_vebinars,
html.fv2-modal-open .cookie-alert,
html.fv2-modal-open .chatbot { visibility: hidden !important; }

/* ── Блок на странице: тёмная панель с фото, сетка 5/7 ──────────────────── */
.fv2-block {
    position: relative;
    overflow: hidden;
    padding: 44px 44px 40px;
    border-radius: var(--fv2-r-panel);
    background-color: #3d3d3d;
    background-image: var(--fv2-photo, none);
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    font-family: var(--fv2-font);
    color: #fff;
}
.fv2-block::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(43, 43, 43, .96) 0%, rgba(43, 43, 43, .9) 45%, rgba(43, 43, 43, .72) 100%);
}
.fv2-block::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 6px;
    background: var(--fv2-accent);
}
.fv2-block__grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 40px;
    align-items: start;
}
.fv2-block__eyebrow {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--fv2-accent);
}
.fv2-block__title {
    margin: 0 0 16px;
    font-size: 30px;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.01em;
    color: #fff;
}
.fv2-block__text { margin: 0 0 20px; font-size: 15px; line-height: 1.55; color: #d4d6da; }
.fv2-block__steps { margin: 0 0 22px; padding: 0; list-style: none; counter-reset: fv2s; }
.fv2-block__steps li {
    position: relative;
    margin: 0 0 12px;
    padding-left: 38px;
    font-size: 15px;
    line-height: 22px;
    color: rgba(255, 255, 255, .88);
    counter-increment: fv2s;
}
.fv2-block__steps li::before {
    content: counter(fv2s);
    position: absolute;
    left: 0;
    top: -1px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 2px solid var(--fv2-accent);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 800;
    color: var(--fv2-accent);
}
.fv2-block__steps b { color: #fff; }
.fv2-block__phone {
    margin: 0;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    font-size: 14px;
    line-height: 1.5;
    color: #a9adb3;
}
.fv2-block__phone a { color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
.fv2-block__phone a:hover { color: var(--fv2-accent); }
.fv2-block__card {
    padding: 26px 26px 22px;
    border-radius: var(--fv2-r-card);
    background: var(--fv2-surface);
    box-shadow: var(--fv2-shadow-modal);
    color: var(--fv2-text);
}
@media (max-width: 899px) {
    .fv2-block__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
@media (max-width: 599px) {
    .fv2-block { padding: 28px 16px 16px 22px; border-radius: var(--fv2-r-card); }
    .fv2-block__title { font-size: 24px; }
    .fv2-block__card { padding: 18px 16px 16px; }
    .fv2-block__steps { margin-bottom: 18px; }
}

/* ── Анимации ───────────────────────────────────────────────────────────── */
@keyframes fv2-spin { to { transform: rotate(360deg); } }
@keyframes fv2-draw { to { stroke-dashoffset: 0; } }

/* без движения: только смена цвета и прозрачности, без сдвигов и вращения */
@media (prefers-reduced-motion: reduce) {
    .fv2 *,
    .fv2-modal *,
    .fv2-modal {
        transition-duration: .01ms !important;
        transition-delay: 0s !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
    .fv2-field__error,
    .fv2-field__hint,
    .fv2-check__error,
    .fv2-btn__layer,
    .fv2-modal__dialog,
    .fv2-field__icon { transform: none !important; }
    .fv2-btn:hover { transform: none; }
    .fv2-spinner,
    .fv2__alert--offline .fv2__alert-box::before { animation: none !important; border-top-color: currentColor; opacity: .8; }
    .fv2-success__icon path { stroke-dashoffset: 0 !important; animation: none !important; }
}
