/*
 * Глобальная посадочная «Пробный урок» (/trial-lesson/).
 * Секции A-S1…A-S10. Mobile-first. Все стили заскоуплены префиксом trial-*,
 * чтобы не растекались на другие страницы. Опирается на примитивы base.css
 * (.hero/.hero-grid/.lead-card/.card/.chip/.faq/.final-grid/.btn) и токены.
 * Тёмная тема — через семантические токены (--surface/--line/--text…),
 * отдельных правил не требует; цветовые тинты берём через color-mix.
 */

/* ---------- Общий заголовок секции ---------- */
.trial-sec-head{max-width:46rem;margin:0 auto clamp(28px,4vw,44px);text-align:center;display:flex;flex-direction:column;align-items:center}
.trial-sec-head .eyebrow{margin-bottom:12px}
.trial-sec-head .sec-desc{margin-top:14px;max-width:60ch}
/* короткие заголовки секций не должны переноситься по слогам на десктопе */
.trial-sec-head .sec-title,
.trial-final-sec .sec-title,
.trial-assure-title,
.trial-cross-title{hyphens:manual;text-wrap:balance}

/* ---------- A-S1 · Hero ----------
 * Пропорция сплита выровнена с главной: 1fr/1fr вместо базовых 1.15fr/.85fr.
 * Причина та же, что описана в home.css:43-59 — глобальная точка входа с формой
 * в hero должна читаться одинаково на «/» и на «/trial-lesson/», иначе при
 * переходе между ними карточка заявки заметно «дышит» шириной.
 *
 * Базовый примитив base.css (.hero-grid / .final-grid) НЕ трогаем: его делят
 * десятки посадочных (курсы, программа, промо, языковые хабы) — правка там
 * разъехалась бы по всему сайту. Перебиваем локально: селекторы .trial-hero
 * .hero-grid и .trial-final-sec .final-grid имеют специфичность 0,2,0 против
 * 0,1,0 у базовых, поэтому выигрывают независимо от медиазапросов.
 *
 * ПОРОГ ДВУХ КОЛОНОК — 1000px, вслед за money-hero главной (13.08.2026).
 *
 * До этого здесь стояло 1200 с доводом «иначе на 1024–1199 trial уже в две
 * колонки, а главная ещё в одну». Довод был верен ровно до коммита 30a6cef,
 * которым порог money-hero главной и языковых хабов опустили 1200 → 1000 —
 * как раз чтобы закрыть мёртвую зону 1024, где лид-форма растягивается во всю
 * ширину и кнопка отправки уходит под сгиб. После него рассогласованность
 * получилась обратной и уже за счёт этой страницы: на 1024 главная показывала
 * сплит, а пробный урок — одну колонку с полупустой правой половиной и кнопкой
 * на 1135px при сгибе ноутбука 768. Возвращаем страницы на общий порог.
 *
 * Порог не назначен, а замерен — там же, на главной: при 960px колонка формы
 * 416px и строка «код страны + номер» держит 338px, то есть теснее, чем на
 * телефоне 480px, но ещё рабоче; запас до первой поломки берём один шаг сетки,
 * отсюда 1000. На этой странице замер подтверждён отдельно: см. блок про
 * диапазон 1000–1199 ниже.
 *
 * ФИНАЛЬНЫЙ CTA ОСТАЁТСЯ НА 1200 — и это то же решение, что на главной.
 * Его левая колонка несёт длинный H2 секции, а не короткий оффер hero, и на
 * 1000px разъезжается. Общий gap clamp(36px,3.4vw,52px) у обеих сеток сохранён,
 * поэтому карточка заявки в hero и карточка финального CTA по-прежнему стоят
 * по одной вертикали и занимают половину своей сетки — просто перелом у них
 * теперь разный.
 *
 * Ниже 1000 — одна колонка: H1 во всю ширину, форма следом (mobile-first).
 */
.trial-hero .hero-grid{grid-template-columns:1fr;align-items:start}
.trial-final-sec .final-grid{grid-template-columns:1fr;align-items:start}
@media(min-width:1000px){
  .trial-hero .hero-grid{grid-template-columns:1fr 1fr;gap:clamp(36px,3.4vw,52px);align-items:start}
}
@media(min-width:1200px){
  .trial-final-sec .final-grid{grid-template-columns:1fr 1fr;gap:clamp(36px,3.4vw,52px);align-items:start}
}
/* ─── ПЛАНШЕТНЫЙ ДИАПАЗОН 600–999: РЕШЕНИЕ ПРИНЯТО, ПРАВОК НЕ ЖДЁМ ───────────
 * Замер после понижения порога (13.08.2026, обе локали): на 768×1024 кнопка
 * заявки стоит на 1114px, на 960×800 — на 1119px, то есть за сгибом. Понижение
 * порога до 1000 этот диапазон не задело и не могло: ниже 1000 hero остаётся
 * одноколоночным, а в одну колонку карточка высотой 561–580px под полноразмерным
 * H1 в фолд не помещается.
 *
 * Вылечить можно — уплотнением H1 и вертикального ритма на 600–1199, это около
 * 104px. РЕШЕНИЕ ВЛАДЕЛЬЦА ОТ 13.08.2026: НЕ УПЛОТНЯТЬ. Довод — планшетов в
 * платном трафике практически нет, все клики мобильные, и жертвовать видом
 * заголовка ради балла на пустой ширине не стоит. 768 сознательно остаётся
 * на 8/10 по конверсионному критерию первого экрана.
 *
 * Запись оставлена, чтобы следующий проход quality-gate не принял эту восьмёрку
 * за недоделку: вопрос обсуждён и закрыт, переоткрывать его — только с новыми
 * данными по доле планшетов. */
/* Потолок кегля H1 привязан к ширине окна, а не к абсолютному значению.
 * Базовый .hero h1 (base.css) упирается в 4.25rem = 68px уже на ~1180px, и с этого
 * момента кегль стоит, а колонка продолжает сжиматься к порогу 1200. Русскому
 * «Бесплатный» (10 знаков) этого хватает, украинскому «Безкоштовний» — нет: слово
 * требует 648px, а колонка на 1200px даёт 532px, и заголовок вылезал ИЗ КОЛОНКИ на
 * 116px, заезжая под карточку формы (на 1280 — на 77px, на 1366 — на 36px).
 * Перенести нельзя: hyphens:manual запрещает разрыв внутри слова — и правильно,
 * «Безкош-товний» в hero недопустимо. Значит масштабируем кегль: 4.5vw держит
 * самое длинное слово внутри колонки с запасом ~5% на всём диапазоне 1000–1510,
 * дальше вступает прежний потолок 4.25rem (колонка перестаёт расти на 1440 —
 * .wrap упирается в max-width). На русской локали видимых изменений нет: её H1
 * и так не биндил меру.
 *
 * Правило действует с 1000px, а не с 1200: порог сплита опущен (см. выше), и на
 * 1000–1199 колонка ещё уже — 458px на 1000 против 532 на 1200. Без потолка там
 * работал бы базовый clamp (60px на 1000px окна), и «Безкоштовний» потребовал бы
 * 572px в колонке 458. С 4.5vw кегль на 1000px равен 45px, слову нужно 429px —
 * запас 6%, тот же порядок, что на широких. */
@media(min-width:1000px){
  .trial-hero h1{font-size:min(4.25rem,4.5vw)}
}
.trial-eyebrow{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px}
.trial-eyebrow svg{width:16px;height:16px;color:var(--primary);flex:none}

/* ─── НИЗКОЕ ОКНО НА ДЕСКТОПЕ: КНОПКА ВЫШЕ СГИБА ────────────────────────────
 * Гейт по ВЫСОТЕ окна, а не по ширине, и это не педантизм. После понижения
 * порога сплита до 1000 замеры дали ровно ту же картину, что на money-hero
 * главной: на 1440×900 и 1536×864 карточка укладывается сама (кнопка на 743),
 * а на 1000×768, 1024×768 и 1100×800 — нет (816, 818, 804), притом что ширина
 * там разная, а не хватает одного и того же — вертикали. Ноутбук с окном
 * 768–800px и есть типичный десктоп платного трафика.
 *
 * Карточка в узкой колонке ещё и выше, чем в широкой: 666px на 1024 против
 * 623 на 1199 и 581 на 1440 — юридический текст согласия RODO при 447px
 * колонки занимает на две строки больше. Сокращать его нельзя, поэтому
 * забираем воздух, который считался под просторный экран.
 *
 * Уплотнение мягче мобильного: поля 48px (против 44 на телефоне и 52 на
 * просторном экране), потому что мышь не палец и промахов здесь нет. Значения
 * взяты из money-hero (pages/home.css) — карточка заявки на сайте одна и на
 * одинаковых окнах должна выглядеть одинаково.
 *
 * Одна строка сверх набора главной — отбивка плашки 14 → 10px. На самом пороге
 * 1000×768 колонка формы 435px, и русский текст согласия занимает там на строку
 * больше украинского: карточка 617px против 598 и кнопка на 771 при сгибе 768.
 * Не хватало трёх пикселей, и забрать их дешевле всего у отбивки, которую
 * глазом не измерить. У главной этой строки нет: её карточка на 1000px ниже.
 *
 * Единая геометрия с финальным CTA этим не нарушается: тот стоит внизу
 * страницы, куда доскроллили сознательно, и борьбы за первый экран не ведёт. */
@media(min-width:1000px) and (max-height:849.98px){
  .trial-hero .lead-card{padding:22px 24px 24px}
  .trial-hero .lead-ribbon{margin-bottom:10px}
  .trial-hero .lead-card .lead-sub{margin-bottom:14px}
  .trial-hero .lead-grid fieldset{gap:10px}
  .trial-hero .lead-grid input[type=text],
  .trial-hero .lead-grid input[type=tel],
  .trial-hero .lead-grid .ff-el-form-control,
  .trial-hero .lead-grid .eps-phone input,
  .trial-hero .lead-grid .eps-phone__country,
  .trial-hero .lead-grid .eps-phone__btn{min-height:48px;height:48px}
  .trial-hero .lead-grid .ff-btn-submit,
  .trial-hero .lead-grid .ff-btn{min-height:52px;height:52px}
  .trial-hero .lead-foot-note{margin-top:10px}
}

/* ---------- A-S1 · Порядок блоков: форма сразу под H1 на узких ширинах ------
 * ads-structure §6.3.1. Ниже порога сплита колонка одна, и раньше форма оказывалась под
 * eyebrow, H1, лидом из 25 слов и четырьмя буллетами: 5,5% посетителей вообще
 * начинали её заполнять, притом что начавшие доводили до конца. Задача была не
 * «поднять форму», а сменить порядок.
 *
 * Порядок задан РАЗМЕТКОЙ (patterns/trial-hero.php): .hero-copy → .hero-lead →
 * .hero-aside. Мобильному правил не нужно вовсе. Здесь только сборка левой
 * колонки на десктопе grid-областями — без order и display:contents, чтобы
 * визуальный порядок совпадал с порядком чтения и таб-фокуса.
 *
 * Пустая строка с высотой 1fr поглощает лишнюю высоту карточки: .hero-lead
 * спанит все строки левой колонки, и без неё auto-строки растащило бы копи
 * и aside по вертикали.
 *
 * ГДЕ ПОГЛОЩАЕТСЯ РАЗНИЦА ВЫСОТ (вторая переделка 13.08.2026). Утром пустая
 * строка 1fr стояла внизу левой колонки: карточка была длиннее и «свисала», а
 * строка не давала auto-строкам растащить копи и aside. К вечеру знак разницы
 * сменился. Карточка заявки выровнена с остальными шестью карточками темы
 * (patterns/trial-hero.php), из неё ушёл хвост в 231px, и замеры дали:
 *
 *   ширина    карточка   левая колонка (копи+aside)   разница ru / uk
 *   1200      623        724 / 678                    −102 / −56
 *   1280      623        691 / 666                    −69  / −44
 *   1440      581        690 / 690                    −110 / −110
 *   1536      581        701 / 675                    −121 / −95
 *
 * То есть теперь короче ПРАВАЯ колонка, а не левая. Если бы хвост просто лёг в
 * .hero-aside, левая ушла бы на 940–974px и под карточкой открылась бы пустота
 * 293–370px — та же болезнь, что лечили утром, только зеркальная.
 *
 * Поэтому хвост вынесен третьей строкой во всю ширину: "copy lead" / "aside lead" /
 * "tail tail". Верхние две строки сходятся сами (разница −102…−121px — тот же
 * порядок, что признан нормой утром), а полоса .trial-tail подпирает hero снизу
 * сразу под обеими колонками, так что свисать некуда ни одной из них. Пустая
 * строка-поглотитель больше не нужна и убрана: её работу делает tail.
 *
 * От money-hero главной раскладка теперь отличается на одну строку, и это
 * осознанно: у главной хвоста под сплитом нет.
 *
 * Порядок в DOM не меняется ни при одной из раскладок: копи → карточка → aside →
 * хвост, и в разметке, и на экране, без order и display:contents. */
@media(min-width:1000px){
  .trial-hero .hero-grid{
    grid-template-areas:"copy lead" "aside lead" "tail tail";
    grid-template-rows:auto auto auto;
    column-gap:clamp(36px,3.4vw,52px);
    row-gap:0;
  }
  .trial-hero .hero-grid>.hero-copy{grid-area:copy}
  .trial-hero .hero-grid>.hero-lead{grid-area:lead}
  .trial-hero .hero-grid>.hero-aside{grid-area:aside;margin-top:clamp(20px,2.2vw,28px);padding-bottom:clamp(8px,2vw,20px)}
  .trial-hero .hero-grid>.trial-tail{grid-area:tail}
}
.trial-hero .hero-aside{min-width:0}
.trial-hero .hero-aside .hero-lede{margin-top:0}
/* Плашка «Бесплатно · 60 минут» на самых узких экранах: украинская локализация
 * («БЕЗКОШТОВНО · 60 ХВИЛИН») на 15 символов длиннее русской и на 360px рвалась
 * на две строки — вместо пилюли получался прямоугольник в две строки капсом.
 * Базовое правило base.css поджимает её с 400px, но украинской строке этого не
 * хватает; добавляем вторую ступень. Русскую строку не задевает — она короче
 * и на этой ширине и так в одну строку. */
@media(max-width:389.98px){
  .trial-hero .lead-ribbon{font-size:.69rem;gap:5px;padding-left:10px;padding-right:10px}
  .trial-hero .lead-ribbon svg{width:13px;height:13px}
}
/* Буллеты доверия ниже 1000px — одной компактной строкой через разделитель,
 * а не четырьмя строками с галочками: на 360px это экономит около 90px высоты,
 * а роль у них подтверждающая, а не повествовательная. */
/* На двух колонках те же четыре буллета — сеткой 2×2, а не flex-wrap строкой.
 * Строкой они ломались 3+1: три пункта в ряд, четвёртый висел один под ними и
 * читался как приписка, а не как часть набора. Сетка даёт ровный прямоугольник
 * под лидом, закрывает низ колонки и заодно на ~35px сокращает выступ карточки. */
@media(min-width:1000px){
  .trial-hero .hero-assure{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px;margin-top:26px;padding-top:22px}
  .trial-hero .hero-assure-item{align-items:flex-start;font-size:.9rem;line-height:1.45}
  .trial-hero .hero-assure-item svg{margin-top:2px}
}
@media(max-width:999.98px){
  .trial-hero .hero-assure{display:block;margin-top:16px;padding-top:14px}
  .trial-hero .hero-assure-item{display:inline;font-size:.82rem;line-height:1.6;font-weight:600;color:var(--text-muted)}
  .trial-hero .hero-assure-item svg{display:none}
  .trial-hero .hero-assure-item+.hero-assure-item::before{content:"·";margin:0 7px;font-weight:700}
}

/* ---------- A-S1 · «Что будет на пробном» — четыре строки под H1 -------------
 * Живёт в .hero-copy, сразу под заголовком и выше формы (см. комментарий в
 * patterns/trial-hero.php: до 13.08.2026 блок стоял внутри .lead-card и делал её
 * вдвое выше левой колонки). Намеренно НЕ плитки с иконками: это не секция, а
 * четыре строки, объясняющие, за что человек отдаёт телефон.
 *
 * Вне карточки блок получает собственный верхний разделитель — он привязывает
 * список к H1 и не даёт ему слипнуться с карточкой формы, которая ниже. Кегль
 * поднят с .88 до .95rem: в карточке список был подписью к полям, в колонке
 * оффера он самостоятельный аргумент и читается наравне с лидом.
 * Иконка-галочка декоративная (aria-hidden), смысл несёт текст. */
.trial-what{position:relative;list-style:none;margin:clamp(20px,2.6vw,28px) 0 0;padding:clamp(16px,2vw,20px) 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:11px;max-width:54ch}
.trial-what-item{display:flex;align-items:flex-start;gap:10px;font-size:.92rem;line-height:1.55;color:var(--text)}
.trial-what-item svg{width:17px;height:17px;flex:none;margin-top:3px;color:var(--green)}
@media(min-width:480px){.trial-what-item{font-size:.95rem}}
/* На двухколоночной раскладке список работает вместе с H1 как единый оффер:
 * чуть крупнее, интервал шире, мера по колонке (не по 54ch — колонка уже). */
@media(min-width:1000px){
  .trial-what{gap:13px;max-width:none}
  .trial-what-item{font-size:1rem;line-height:1.6}
  .trial-what-item svg{width:18px;height:18px;margin-top:4px}
}

/* ─── БЮДЖЕТ ПЕРВОГО ЭКРАНА НА ТЕЛЕФОНЕ (≤600px) ─────────────────────────────
 * Цель приёмки одна и проверяемая: кнопка «Записаться на пробный урок» видна
 * без прокрутки на 360×640 — худшая реальная высота из записей платных сессий.
 * До правки кнопка стояла на 1129–1185px, то есть почти на два экрана ниже
 * сгиба; страница при этом — конверсионная цель №1 и общая точка входа пяти
 * языковых мини-сайтов.
 *
 * Арифметика (360×640, ru). Кнопка укладывается, если карточка формы начинается
 * не ниже ~270px: от её верха до низа кнопки ровно 370px — это уже измеренная
 * геометрия уплотнённой карточки (плашка + заголовок + три группы полей + сабмит).
 * До правки карточка начиналась на 588px. Значит снять надо ~320px, и снимаются
 * они не одним рычагом, а пятью, каждый со своим обоснованием:
 *
 *   ~46px  подступы: padding-block hero 36→8, отступ под крошками 14→8;
 *   ~37px  eyebrow «Бесплатно · Без обязательств» скрыт — в 30px под ним стоит
 *          плашка карточки «Бесплатно · 60 минут», и слово «Бесплатно» на первом
 *          экране печаталось дважды подряд. «Без обязательств» со страницы не
 *          пропадает: тот же смысл несёт буллет .hero-assure под формой;
 *   ~55px  H1 с 1.85rem/4 строк до 1.4rem/2 строк (и снятая мера 18ch — она
 *          и загоняла короткий заголовок в лишние строки);
 *  ~150px  список «что будет на пробном» — из четырёх строк с галочками в
 *          компактную полосу-перечисление (см. ниже, содержание не тронуто);
 *   ~16px  зазор сетки hero 32→16;
 *  ~235px  уплотнение самой карточки — оно ниже отдельным блоком.
 *
 * Того же приёма, что на языковых хабах, здесь мало: там между H1 и карточкой
 * стоит одна короткая факт-строка (35px), а тут — обязательный по требованию
 * marketer список из четырёх утверждений, который человек должен прочитать ДО
 * ввода телефона. Он и остаётся выше формы, меняется только подача.
 *
 * Лид-абзац [data-eps-lang-sub] переносить не потребовалось: он и так лежит в
 * .hero-aside, то есть в DOM и на экране уже ПОСЛЕ формы. Атрибут и элемент
 * трогать нельзя — по нему entry-lead.js подменяет текст при ?tlang=…
 *
 * Порядок DOM не меняется ни на одной ширине: копи → карточка → aside → хвост.
 * Ни order, ни display:contents (WCAG 2.1 §1.3.2, §2.4.3). */
@media(max-width:599.98px){
  /* Подступы к карточке: каждый пиксель здесь — пиксель, отнятый у кнопки.
   * Крошки остаются: это навигация и ориентир, а не украшение. */
  .trial-hero{padding-block:8px clamp(24px,4vw,36px)}
  .trial-hero .crumbs{padding-bottom:6px;margin-bottom:6px}
  .trial-hero .hero-grid{gap:14px}

  /* Eyebrow — дубль плашки карточки, см. арифметику выше. display:none, а не
   * clip: элемента не должно остаться и в порядке чтения скринридера. */
  .trial-eyebrow{display:none}

  /* H1: мера 18ch (base.css) рассчитана на длинные заголовки хабов и короткий
   * заголовок пробного разрывала на четыре строки шириной в полколонки. Снимаем
   * меру и опускаем кегль — «Бесплатный пробный урок онлайн» встаёт в две
   * плотные строки во всю ширину, украинский «Безкоштовний…» тоже.
   * text-wrap:wrap отключает балансировку: на телефоне важнее высота, чем
   * ровный правый край. */
  .trial-hero h1{font-size:1.35rem;line-height:1.2;max-width:none;text-wrap:wrap}
}

/* ─── «Что будет на пробном» на телефоне: полоса-перечисление ────────────────
 * Требование marketer сохранено дословно: все четыре утверждения читаются ДО
 * поля телефона, в том же порядке и тем же текстом. Меняется только подача —
 * вместо четырёх абзацев с галочками (233px на 360) одна плотная полоса (≈80px).
 * Ни одна строка не сокращена и не скрыта: это CSS-раскладка одного и того же
 * списка, разметка и i18n-строки общие с десктопом.
 *
 * Маркер — галочка, а не точка: она отличает эту полосу от буллетов доверия
 * .hero-assure, которые ниже формы набраны точно такой же строкой через «·»,
 * и сохраняет за списком его смысл «отмеченные пункты». Семантика <ul>/<li>
 * цела — скринридер по-прежнему читает четыре пункта списка.
 *
 * ПОЧЕМУ ГАЛОЧКА ЗДЕСЬ ЗНАКОМ, А НЕ ТЕМ ЖЕ SVG, ЧТО НА ДЕСКТОПЕ. Инлайновый
 * <svg> — замещаемый элемент, и алгоритм переноса строк (UAX #14, правило LB20,
 * класс CB) разрешает перенос ПОСЛЕ него независимо от разметки и пробелов.
 * На практике это выглядело так: на 375px ru и на 360px uk галочка оставалась
 * в конце строки, а пункт, к которому она относится, уезжал на следующую —
 * маркер повисал сиротой у правого края. Убрать пробел между тегами не
 * помогает: точка переноса создаётся самим фактом замещаемого элемента.
 * Знак U+2713 с неразрывным пробелом (U+00A0) такой точки не создаёт: NBSP —
 * класс GL, перенос запрещён и до, и после него, поэтому маркер физически не
 * может оторваться от своего пункта ни при какой ширине. Это не эмодзи
 * (без VS16 знак всегда рисуется текстом, а не картинкой), поэтому запрет темы
 * на эмодзи-иконки не нарушен; сам SVG на этой ширине скрыт, чтобы галочка
 * не двоилась. На десктопе список остаётся flex-списком со штатной SVG-иконкой.
 *
 * Кегль .78rem (12.5px) — цена, заплаченная сознательно и по замерам: на .82rem
 * полоса занимает 118px вместо 90 и кнопка уходит за сгиб на 360×640. Это
 * вспомогательный ярус темы (подсказки полей, сноски набраны тем же кеглем), а
 * не основная копи, и он выше порога 12px, ниже которого тема не опускается.
 * Те же четыре утверждения полностью повторены крупным кеглем в секции A-S2
 * «Что вы получите на пробном уроке» сразу под hero — на уровне страницы
 * ничего не теряется. */
@media(max-width:599.98px){
  .trial-what{
    display:block;margin-top:10px;padding-top:0;border-top:0;max-width:none;
    font-size:.78rem;line-height:1.45;color:var(--text-muted);
  }
  .trial-what-item{display:inline;font-size:inherit;line-height:inherit;color:inherit}
  .trial-what-item svg{display:none}
  /* Две записи подряд — не опечатка. Вторая (синтаксис `content / alt` из CSS
     Content 3) отдаёт маркеру пустую альтернативу, чтобы скринридер не читал
     «галочка» перед каждым из четырёх пунктов: на десктопе ту же роль играет
     aria-hidden у SVG, а генерируемому контенту атрибут не поставить. Браузер,
     который синтаксис не понимает, отбросит только вторую запись и отрисует
     маркер по первой. */
  .trial-what-item::before{content:"\2713\00a0";color:var(--green);font-weight:700}
  .trial-what-item::before{content:"\2713\00a0" / ""}
}

/* ─── УПЛОТНЕНИЕ КАРТОЧКИ ЗАЯВКИ НА ТЕЛЕФОНЕ (≤600px) ────────────────────────
 * Геометрия один в один с money-hero языковых хабов (pages/home.css): карточка
 * на сайте одна, и человек, пришедший на /trial-lesson/ с хаба, должен увидеть
 * ту же форму, а не её «телефонную» вариацию с другими полями и отступами.
 * Воздух внутри карточки считался под десктоп, где вертикаль ничего не стоит;
 * на 360×640 он стоит кнопки.
 *
 * Ничего не уходит ниже пределов доступности: поля ввода 44px и кнопка 48px —
 * touch-target 44×44 (WCAG 2.5.5 / Apple HIG), чекбокс согласия штатный 24×24
 * (WCAG 2.5.8 AA), кегль подписей не опускается ниже 12px. Разметка формы, её
 * поля, лейблы, текст согласия RODO и обработчик не тронуты — только
 * вертикальные интервалы и кегли. */
@media(max-width:599.98px){
  .trial-hero .lead-card{padding:9px 15px 16px}
  .trial-hero .lead-ribbon{margin-bottom:4px;padding-top:5px;padding-bottom:5px}
  /* Заголовок карточки в одну строку. «Записаться на пробный урок» —
   * 26 знаков заголовочным шрифтом: на 1rem это две строки (38px), на .92rem
   * одна (18px). Ниже .92rem не идём — заголовок карточки не должен
   * опускаться до кегля лейблов полей под ним. */
  .trial-hero .lead-card .lead-title{font-size:.92rem;line-height:1.25;margin-bottom:3px}
  .trial-hero .lead-card .lead-sub{font-size:.82rem;line-height:1.38;margin-bottom:11px}
  .trial-hero .lead-grid{gap:9px}

  /* Главный источник воздуха внутри формы — не margin групп, а gap самого
     fieldset (Fluent Forms, 15px). Группы стоят вплотную к своему шагу. */
  .trial-hero .lead-grid fieldset{gap:5px}
  .trial-hero .lead-grid .ff-el-group{margin-bottom:0}
  /* Селект кода страны и поле номера — ровно touch-минимум 44px. Кнопка кода
     набрана .eps-phone__country (не __btn) и по умолчанию на 2px выше поля,
     из-за чего вся строка телефона тянулась на 46px. */
  .trial-hero .lead-grid .eps-phone input,
  .trial-hero .lead-grid .eps-phone__country,
  .trial-hero .lead-grid .eps-phone__btn{min-height:44px;height:44px}
  .trial-hero .lead-grid .eps-phone__hint{font-size:.75rem;line-height:1.3;margin-top:2px;margin-bottom:0}
  .trial-hero .lead-grid .eps-phone__combo{gap:8px}
  /* Обёртка лейбла — блок с унаследованным интерлиньяжем 16px, тогда как сам
     лейбл набран 12.5px: строчный бокс давал 21px там, где текста 15px.
     Интерлиньяж ставим обёртке, а не только лейблу — 6px на каждой группе. */
  .trial-hero .lead-grid .ff-el-input--label{line-height:1.2;margin-bottom:2px}
  .trial-hero .lead-grid .ff-el-input--label label{font-size:.78rem;line-height:1.2}
  .trial-hero .lead-grid input[type=text],
  .trial-hero .lead-grid input[type=tel],
  .trial-hero .lead-grid .ff-el-form-control{min-height:44px;height:44px;padding-top:8px;padding-bottom:8px}
  .trial-hero .lead-grid .ff-el-help-message{font-size:.75rem;line-height:1.3;margin-top:2px;margin-bottom:0}
  /* Текст согласия юридический, сокращать его нельзя — только кегль и интерлиньяж. */
  .trial-hero .lead-grid .eps-rodo .ff-el-form-check-label,
  .trial-hero .lead-grid .eps-rodo label{font-size:.75rem;line-height:1.25}
  .trial-hero .lead-grid .eps-submit{margin-bottom:0}
  .trial-hero .lead-grid .ff-btn-submit,
  .trial-hero .lead-grid .ff-btn{min-height:48px;height:48px;padding-top:12px;padding-bottom:12px}
  /* Сноска «Без спама» стоит ПОД кнопкой и на её видимость не влияет —
     ужимаем только чтобы не растягивать карточку. */
  .trial-hero .lead-foot-note{font-size:.78rem;line-height:1.35;margin-top:8px}
}

/* ─── ДВА РАЗМЕНА НА УЗКИХ ЭКРАНАХ (≤430px) ─────────────────────────────────
 * Те же два элемента и по тем же причинам, что на языковых хабах: ниже 430px
 * запас до сгиба уходит в ноль, а украинская локаль на 6–12% длиннее русской.
 *
 * 1. Подпись формы «Свяжемся в рабочее время…». Её работу в первом экране
 *    делают плашка «Бесплатно · 60 минут» и полоса «что будет на пробном»
 *    прямо над карточкой. Само обещание остаётся на странице ниже — в
 *    финальном CTA (trial-final), где та же форма показана с подписью целиком.
 * 2. Подсказка формата телефона. Формат уже показан двумя способами рядом:
 *    выбранный код страны и плейсхолдер «XX XXX XX XX», а ввод форматируется
 *    маской по ходу набора.
 *
 * Оба через display:none, а не clip/visibility: элемент не должен оставаться в
 * порядке чтения скринридера, если его нет на экране. Обязательного для формы
 * контента здесь нет — лейблы полей, требования и текст согласия RODO остаются
 * на месте на всех ширинах. */
@media(max-width:429.98px){
  .trial-hero .lead-card .lead-sub{display:none}
  .trial-hero .lead-grid .eps-phone__hint{display:none}
}

/* ---------- A-S1 · Хвост hero: снятие возражений и быстрый контакт ----------
 * До 13.08.2026 оба блока жили внутри .lead-card, под кнопкой отправки, и были
 * набраны как подпись к ней (.8/.82rem). Карточка заявки выровнена с остальными
 * шестью карточками темы, хвост переехал в .trial-tail — и вместе с контекстом
 * меняется их роль: это уже не сноска под кнопкой, а часть копи первого экрана,
 * которую читают наравне с лидом. Отсюда кегль .86rem у обоих, интервал 1.6 и
 * мера 62ch (без неё строка в колонке 570px уходит за 90 знаков).
 *
 * Снятие возражения «сейчас будут продавать» идёт сразу после буллетов доверия —
 * оно их продолжает и отвечает на мысль, которая появляется у человека ровно в
 * момент решения оставить телефон. Плашка про набор групп — следом, с иконкой,
 * как фактическая справка.
 *
 * Ниже 960 хвост — обычный элемент одноколоночной сетки hero, и вертикальный
 * ритм ему задаёт row-gap самой сетки (51px): собственный margin-top добавлял бы
 * к нему ещё 18px и рвал ряд «карточка — лид с буллетами — хвост» на неравные
 * промежутки. */
.trial-objection{position:relative;margin:0;font-size:.86rem;line-height:1.6;color:var(--text-muted);max-width:62ch}
.trial-groups{position:relative;display:flex;align-items:flex-start;gap:10px;margin:14px 0 0;padding:13px 16px;border-radius:var(--r-md);background:var(--surface-blue);border:1px solid color-mix(in srgb,var(--blue) 20%,transparent);font-size:.86rem;line-height:1.55;color:var(--text);max-width:62ch}
.trial-groups svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--blue)}

/* Быстрый контакт — последний блок левой колонки, как в trial-final.php
 * (.final-msgs): в обеих секциях страницы мессенджеры лежат рядом с карточкой
 * заявки, а не внутри неё. */
.trial-quickmsg{margin-top:20px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.trial-quickmsg-label{font-size:.86rem;font-weight:600;color:var(--text-muted)}
.trial-quickmsg-row{display:flex;gap:9px}
.trial-quickmsg .btn-msg{width:42px;height:42px;min-height:42px}
.trial-quickmsg .btn-msg svg{width:20px;height:20px}
/* От 1000px хвост встаёт в две колонки: слева снятие возражения, справа плашка про
 * набор групп, мессенджеры замыкают полосу во всю ширину. Две колонки совпадают с
 * пропорцией сплита 1fr/1fr: возражение садится под колонку оффера, плашка — под
 * карточку заявки, к которой относится по смыслу. Мессенджеры прижаты к левому
 * краю, как .final-msgs в trial-final.php. Порядок чтения — слева направо, сверху
 * вниз, тот же, что в разметке.
 *
 * ПОРОГ ПЕРЕЕХАЛ 960 → 1000 вместе со сплитом hero (13.08.2026). Прежние 960
 * объяснялись тем, что «между 960 и 1199 hero ещё одноколоночный, но колонка уже
 * шире 900px», и хвост в одну колонку оставлял справа пустую треть. После
 * понижения порога сплита до 1000 от того диапазона осталось окно 960–999, где
 * хвост шёл в две колонки под одноколоночным hero — разнобой на 40 пикселях
 * ширины. Держим одну точку перелома на всю секцию: выше 1000 и hero, и хвост
 * двухколоночные, ниже — оба в одну. Пустой трети при этом не появляется:
 * на 960–999 хвост идёт под карточкой формы такой же ширины, а не рядом с ней. */
@media(min-width:1000px){
  .trial-tail{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(36px,3.4vw,52px);align-items:start}
  .trial-tail .trial-objection{grid-column:1;max-width:none;align-self:center}
  .trial-tail .trial-groups{grid-column:2;margin:0;max-width:none}
  .trial-tail .trial-quickmsg{grid-column:1/-1;margin-top:clamp(20px,2.4vw,28px)}
  .trial-tail{margin-top:clamp(26px,3vw,36px)}
}

/* ---------- A-S2 · Что вы получите (плитки) ---------- */
.trial-value-grid{display:grid;gap:16px;grid-template-columns:1fr}
.trial-tile{padding:clamp(22px,3vw,28px);display:flex;flex-direction:column;gap:12px}
.trial-tile-ic{width:52px;height:52px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--surface-soft);color:var(--primary)}
.trial-tile-ic svg{width:26px;height:26px}
.trial-tile--green .trial-tile-ic{background:color-mix(in srgb,var(--green) 14%,var(--surface));color:var(--green)}
.trial-tile--blue .trial-tile-ic{background:var(--surface-blue);color:var(--blue)}
.trial-tile--violet .trial-tile-ic{background:var(--surface-violet);color:var(--violet)}
.trial-tile-title{font-size:1.08rem;font-weight:800;line-height:1.25}
.trial-tile-text{font-size:.94rem;color:var(--text-muted);line-height:1.6;margin:0}
@media(min-width:560px){.trial-value-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.trial-value-grid{grid-template-columns:repeat(4,1fr)}}

/* ---------- A-S3 · Таймлайн «как проходит» ---------- */
.trial-timeline{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:none;position:relative}
.trial-tl-step{position:relative;display:grid;grid-template-columns:auto 1fr;gap:18px;padding-bottom:26px}
.trial-tl-step:last-child{padding-bottom:0}
/* вертикальный соединитель (мобайл) */
.trial-tl-step::before{content:"";position:absolute;left:23px;top:50px;bottom:-2px;width:2px;background:linear-gradient(var(--line),color-mix(in srgb,var(--primary) 22%,var(--line)));z-index:0}
.trial-tl-step:last-child::before{display:none}
.trial-tl-num{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:none;font-family:var(--font-head);font-weight:800;font-size:1.15rem;color:var(--on-primary);background:linear-gradient(135deg,var(--primary),var(--primary-hover));box-shadow:var(--sh-brand)}
.trial-tl-body{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:clamp(16px,2.4vw,22px);transition:transform .2s ease,box-shadow .2s ease}
.trial-tl-body:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.trial-tl-time{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-head);font-weight:700;font-size:.78rem;letter-spacing:.02em;color:var(--primary);background:var(--surface-soft);padding:4px 11px;border-radius:var(--r-pill);margin-bottom:10px}
.trial-tl-time svg{width:14px;height:14px}
.trial-tl-title{font-size:1.05rem;font-weight:800;margin:0 0 6px}
.trial-tl-text{font-size:.93rem;color:var(--text-muted);line-height:1.6;margin:0}
.trial-steps-note{display:flex;gap:10px;align-items:flex-start;justify-content:center;text-align:left;max-width:60ch;margin:clamp(24px,3.5vw,36px) auto 0;padding:14px 18px;border-radius:var(--r-md);background:var(--surface-blue);border:1px solid color-mix(in srgb,var(--blue) 20%,transparent);font-size:.9rem;color:var(--text);line-height:1.5}
.trial-steps-note svg{width:20px;height:20px;color:var(--blue);flex:none;margin-top:1px}
/* горизонтальный таймлайн на широких экранах */
@media(min-width:900px){
  .trial-timeline{grid-template-columns:repeat(4,1fr);gap:clamp(16px,2.2vw,26px)}
  .trial-tl-step{grid-template-columns:1fr;gap:16px;padding-bottom:0;text-align:center;justify-items:center}
  .trial-tl-step::before{left:calc(50% + 32px);right:auto;top:24px;bottom:auto;width:calc(100% - 64px);height:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 28%,var(--line)),var(--line))}
  .trial-tl-body{text-align:left;width:100%}
}

/* ---------- A-S4 · Reassurance «ни к чему не обязывает» ---------- */
.trial-assure{display:grid;gap:clamp(18px,3vw,28px);align-items:start;padding:clamp(24px,4vw,44px);border-radius:var(--r-xl);background:linear-gradient(135deg,var(--surface-soft),var(--surface-amber));border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));position:relative;overflow:hidden}
.trial-assure-icon{width:60px;height:60px;border-radius:var(--r-lg);display:grid;place-items:center;flex:none;background:var(--surface);color:var(--primary);box-shadow:var(--sh-sm)}
.trial-assure-icon svg{width:32px;height:32px}
.trial-assure-title{font-size:var(--fs-h3);font-weight:800;margin:0 0 12px;max-width:24ch}
.trial-assure-text{font-size:1rem;color:var(--text-muted);line-height:1.65;margin:0 0 18px;max-width:70ch}
.trial-assure-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.trial-assure-list li{display:flex;align-items:flex-start;gap:10px;font-weight:600;font-size:.95rem;color:var(--text)}
.trial-assure-list svg{width:20px;height:20px;color:var(--green);flex:none;margin-top:1px}
@media(min-width:760px){.trial-assure{grid-template-columns:auto 1fr;padding:clamp(30px,4vw,48px)}}

/* ---------- A-S5 · Под любой язык и цель (чипы) ---------- */
.trial-fit-group{margin-bottom:clamp(20px,3vw,28px)}
.trial-fit-label{display:block;font-family:var(--font-head);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px}
.trial-chips{display:flex;flex-wrap:wrap;gap:10px}
.trial-chips .chip{font-size:.9rem;padding:9px 16px}
.trial-chip-lang{font-weight:700}
.trial-chip-dot{width:9px;height:9px;border-radius:50%;background:var(--c,var(--primary));flex:none}
.trial-fit-note{display:flex;gap:14px;align-items:flex-start;margin-top:clamp(8px,2vw,16px);padding:18px 20px;border-radius:var(--r-lg);background:var(--surface-blue);border:1px solid color-mix(in srgb,var(--blue) 26%,var(--line))}
.trial-fit-note-ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--surface);color:var(--blue);box-shadow:var(--sh-sm)}
.trial-fit-note-ic svg{width:23px;height:23px}
.trial-fit-note p{margin:0;font-size:.96rem;line-height:1.6;color:var(--text);font-weight:500}
/* Подсветка зацепки под легализацию: JS вешает .is-highlight при ?goal=legalization
   или ?lang=polish. Усиливаем собственный синий акцент плашки (насыщеннее фон/рамка,
   мягкое акцентное кольцо, заливная иконка) — заметно, но не кричит. Однократный
   pulse привлекает внимание и уважает prefers-reduced-motion. Всё на токенах, light+dark. */
.trial-fit-note.is-highlight{background:color-mix(in srgb,var(--blue) 15%,var(--surface));border-color:color-mix(in srgb,var(--blue) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent),var(--sh-md)}
.trial-fit-note.is-highlight .trial-fit-note-ic{background:var(--blue);color:#fff}
.trial-fit-note.is-highlight p{color:var(--text);font-weight:600}
@media(prefers-reduced-motion:no-preference){
  .trial-fit-note.is-highlight{animation:trial-fit-pulse 2.4s ease 1}
  @keyframes trial-fit-pulse{
    0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--blue) 45%,transparent),var(--sh-md)}
    45%{box-shadow:0 0 0 8px color-mix(in srgb,var(--blue) 0%,transparent),var(--sh-md)}
    100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 22%,transparent),var(--sh-md)}
  }
}

/* ---------- A-S6 · Отзывы / доверие ---------- */
.trial-trust-grid{display:grid;gap:14px;grid-template-columns:1fr}
.trial-trust-plate{display:flex;align-items:center;gap:15px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
.trial-trust-ic{width:46px;height:46px;border-radius:var(--r-md);display:grid;place-items:center;flex:none;background:var(--surface-soft);color:var(--primary)}
.trial-trust-ic svg{width:24px;height:24px}
.trial-trust-text{font-weight:600;font-size:.96rem;line-height:1.4;color:var(--text)}
.trial-trust-cta{display:flex;justify-content:center;margin-top:clamp(24px,3.5vw,34px)}
@media(min-width:640px){.trial-trust-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.trial-trust-grid{grid-template-columns:repeat(3,1fr)}}

/* ---------- A-S7 · Что нужно для урока ---------- */
.trial-need-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:1fr;max-width:900px;margin-inline:auto}
.trial-need-item{display:flex;align-items:center;gap:15px;padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}
.trial-need-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--green) 14%,var(--surface));color:var(--green)}
.trial-need-ic svg{width:23px;height:23px}
.trial-need-text{font-weight:600;font-size:.96rem;line-height:1.45;color:var(--text)}
@media(min-width:760px){.trial-need-list{grid-template-columns:1fr 1fr}}

/* ---------- A-S8 · Перелинковка на тест ---------- */
.trial-cross{position:relative;display:grid;gap:22px;align-items:center;padding:clamp(26px,4vw,46px);border-radius:var(--r-xl);background:linear-gradient(135deg,var(--surface-violet),var(--surface-blue));border:1px solid color-mix(in srgb,var(--violet) 26%,var(--line));overflow:hidden}
.trial-cross-glow{position:absolute;top:-80px;right:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--violet) 22%,transparent),transparent 70%);pointer-events:none}
.trial-cross-ic{position:relative;width:64px;height:64px;border-radius:var(--r-lg);display:grid;place-items:center;flex:none;background:var(--surface);color:var(--violet);box-shadow:var(--sh-sm)}
.trial-cross-ic svg{width:34px;height:34px}
.trial-cross-body{position:relative}
.trial-cross-title{font-size:var(--fs-h3);font-weight:800;margin:0 0 12px;max-width:24ch}
.trial-cross-text{font-size:1rem;color:var(--text-muted);line-height:1.65;margin:0 0 20px;max-width:68ch}
.trial-cross-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.trial-cross-alt{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.94rem;color:var(--violet)}
.trial-cross-alt svg{width:16px;height:16px;transition:transform .16s ease}
.trial-cross-alt:hover svg{transform:translateX(3px)}
@media(min-width:760px){.trial-cross{grid-template-columns:auto 1fr}}

/* ---------- A-S9 · FAQ ---------- */
.trial-faq{max-width:820px;margin-inline:auto}

/* ---------- A-S10 · Финальный CTA ---------- */
.trial-final-sec{background:linear-gradient(180deg,transparent,var(--surface-soft))}
