/*
 * Тонкий слой темы SportyTime.
 *
 * Зачем отдельный файл. Нынешние страницы собирает один жёсткий шаблон
 * sportytime_render_story_page: в нём обязательные слоты hero / proof / story /
 * panel / metrics / features / gallery / faq. Под каждый слот автору приходится
 * что-то придумывать — отсюда и «гора вкладок»: на странице тренеров одно и то же
 * сказано по три-пять раз. Здесь секции НЕОБЯЗАТЕЛЬНЫЕ: страница состоит ровно
 * из того, что ей нужно.
 *
 * Двухцветность. Одна краска для текста (#15171a) и одна акцентная (#e8791f)
 * на тёплой бумаге (#f2f0ed). Никаких дополнительных цветов: оттенки получаются
 * прозрачностью и тремя уровнями подложки — фон, карточка, полоса.
 *
 * Шрифт. Macket просил Bricolage Grotesque и Public Sans — ни один из них
 * НЕ СОДЕРЖИТ КИРИЛЛИЦЫ (проверено: 0 кириллических наборов у обоих), то есть
 * весь русский текст всё равно рисовался бы системным шрифтом. Берём локальный
 * Manrope: он вариативный 400–800, кириллица на месте, внешних запросов нет.
 * Характер даёт не гарнитура, а шкала, трекинг и воздух — они перенесены.
 *
 * Тёмная тема подготовлена токенами, но НЕ включена: переключатель — отдельная
 * задача, и молча показывать половине аудитории тёмный сайт нельзя.
 */

/* ═══ ПРЕСЕТЫ ПАЛИТРЫ ═══════════════════════════════════════════════
 *
 * Пресет выбирается атрибутом на <body> (ставит сервер по опции
 * sportytime_theme_preset, админ может посмотреть через ?st2_preset=…).
 * По умолчанию — «Тёплая бумага»: ровно та гамма, что уже согласована,
 * значения не менялись.
 *
 * Добавляя новый пресет, переопределяйте ТОЛЬКО токены ниже. Всё остальное
 * оформление на них и построено, поэтому правок в других местах не требуется.
 * ═══════════════════════════════════════════════════════════════════ */

.st2 {
  /* ── Пресет «paper» — тёплая бумага (по умолчанию) ──────────────── */
  /* Подложки: три уровня, больше не нужно */
  --st2-bg: #f2f0ed;
  --st2-surface: #ffffff;
  --st2-band: #e6e2db;

  /* Краска */
  --st2-ink: #15171a;
  --st2-muted: #4c4945;
  --st2-line: #dcd8d2;
  --st2-line-strong: #cdc9c3;

  /* Акцент */
  --st2-accent: #e8791f;
  --st2-accent-ink: #1d1206;
  --st2-link: #a24f0a;
  --st2-link-hover: #e8791f;

  /* Ритм */
  --st2-pad-y: clamp(56px, 7vw, 92px);
  --st2-pad-x: 5vw;
  --st2-max: 1180px;
  --st2-radius: 18px;

  /* ── Размерная шкала ────────────────────────────────────────────
     Кегли и ширины объявлены переменными: страница (а позже — весь шаблон)
     переопределяет их одним блоком, не трогая правила ниже. Значения здесь —
     прежние умолчания темы. clamp() масштабирует кегль с шириной экрана. */
  --st2-h1-size: clamp(34px, 5vw, 62px);
  --st2-h2-size: clamp(25px, 3.4vw, 40px);
  --st2-lead-size: clamp(18px, 1.7vw, 21px);
  --st2-lead-max: 62ch;
  --st2-lead-section-size: var(--st2-lead-size);
  --st2-lead-section-max: var(--st2-lead-max);
  --st2-h3-size: 21px;
  --st2-text-size: 17px;
  --st2-tag-size: 14px;
  --st2-cta-max: 900px;
  --st2-cta-h2-size: var(--st2-h2-size);
  --st2-cta-lead-size: var(--st2-lead-size);

  box-sizing: border-box;
  margin: 0;
  background: var(--st2-bg);
  color: var(--st2-ink);
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 18px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

/* ── Пресет «night» — ночь ──────────────────────────────────────────
 *
 * Та же система, инвертированные подложки. Акцент остаётся оранжевым:
 * он работает на обеих подложках, и бренд не меняется от темы.
 * Ссылочный цвет другой: рыжий #a24f0a на тёмном читается плохо,
 * берём светлый янтарь #f0a02a — он есть в исходной палитре макета.
 * Проверено: янтарь на #15171a даёт контраст 8,6 при норме 4,5.
 */
body.st2-preset-night .st2 {
  /*
   * Шкала подобрана по перцептивной светлоте L*, а не по контраст-коэффициенту.
   * На тёмном коэффициент бесполезен: прибавка 0,05 в формуле съедает разницу,
   * и соседние поверхности показывают 1,05–1,11 независимо от того, видно их
   * или нет. Первая версия так и вышла: фон, полоса и карточка различались
   * на ΔL* 3,0 и 2,0 — глазом это одно пятно.
   * Здесь шаги ΔL* 4,6 / 5,3 / 9,6 — карточка читается как карточка,
   * борт виден.
   */
  --st2-bg: #0f1114;        /* L* 5,0  */
  --st2-band: #181b1f;      /* L* 9,6  */
  --st2-surface: #22262b;   /* L* 15,0 */
  --st2-line: #343b43;      /* L* 24,5 */
  --st2-line-strong: #48515b; /* L* 34,0 */

  --st2-ink: #f2f0ed;
  --st2-muted: #a9a6a1;

  --st2-accent: #e8791f;
  --st2-accent-ink: #1d1206;
  --st2-link: #f0a02a;
  --st2-link-hover: #ffb347;
}

/* Страница кончается там, где кончается контент, а ниже и выше — body.
   Без этого вокруг подвала оставалась светлая бумага.
   !important обязателен: базовый фон задан как `body { background:#f7f1e8
   !important }`, и без него правило пресета проигрывает. Дневной пресет
   этого правила не касается — там базовый фон и нужен. */
body.st2-preset-night { background: #0f1114 !important; }

/* Призрачная кнопка на тёмном: подсветка при наведении должна светлеть,
   а не темнеть, иначе наведение незаметно. */
body.st2-preset-night .st2.st2 .st2-btn--ghost:hover {
  background: rgba(242, 240, 237, 0.07);
}

/* Обёртку Elementor красим в фон пресета, иначе под контентом остаётся
   светлая бумага из правила для дневного варианта. */
body.st2-preset-night.st2-theme .elementor-location-single > .e-con {
  background: #0f1114 !important;
}

.st2 *,
.st2 *::before,
.st2 *::after { box-sizing: border-box; }

/* ── Секция ─────────────────────────────────────────────────────────── */

.st2-section {
  padding: var(--st2-pad-y) var(--st2-pad-x);
}
.st2-section > * {
  max-width: var(--st2-max);
  margin-inline: auto;
}
/* Полоса — тот же ритм, другая подложка. Служит разделителем без линий. */
.st2-section--band { background: var(--st2-band); }
.st2-section--surface { background: var(--st2-surface); }
.st2-section--tight { padding-top: 0; }

/* ── Типографика ────────────────────────────────────────────────────── */

.st2-kicker {
  margin: 0 0 20px;
  color: var(--st2-link);
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.st2 h1,
.st2-h1 {
  margin: 0;
  font-size: var(--st2-h1-size);
  font-weight: 800;
  line-height: 1.04;
  /* Отрицательный трекинг — половина характера макета. На крупных кеглях
     Manrope без него выглядит рыхлым. */
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.st2 h2,
.st2-h2 {
  margin: 0;
  font-size: var(--st2-h2-size);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.st2 h3,
.st2-h3 {
  margin: 0;
  font-size: var(--st2-h3-size);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.st2-lead {
  margin: 24px 0 0;
  max-width: var(--st2-lead-max);
  font-size: var(--st2-lead-size);
  line-height: 1.5;
  color: var(--st2-muted);
  text-wrap: pretty;
}

/* Подводка раздела (везде, кроме первого экрана с h1) — своя пара кегль/ширина. */
.st2-section:not(:has(.st2-h1)) .st2-lead {
  font-size: var(--st2-lead-section-size);
  max-width: var(--st2-lead-section-max);
}

.st2-text {
  margin: 0;
  color: var(--st2-muted);
  font-size: var(--st2-text-size);
  line-height: 1.55;
  text-wrap: pretty;
}

/*
 * Класс удвоен намеренно. Тема задаёт `.elementor-kit-6 a { color: … }` —
 * специфичность (0,1,1), ровно как у `.st2 a`, а её стиль подключается позже.
 * Из-за этого текст на оранжевой кнопке получал тусклое золото #d6af5c
 * (на оранжевом почти не читается), а при наведении уходил в сам оранжевый
 * и пропадал совсем. Удвоение даёт (0,2,1) и возвращает управление.
 */
.st2.st2 a { color: var(--st2-link); text-decoration: none; }
.st2.st2 a:hover { color: var(--st2-link-hover); }

/* ── Кнопки ─────────────────────────────────────────────────────────── */

.st2-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.st2-btn {
  display: inline-block;
  padding: 16px 28px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
}
.st2.st2 .st2-btn--primary {
  background: var(--st2-accent);
  border-color: var(--st2-accent);
  color: var(--st2-accent-ink);
}
.st2.st2 .st2-btn--primary:hover { background: #d76c15; color: var(--st2-accent-ink); }
.st2.st2 .st2-btn--ghost {
  border-color: var(--st2-line-strong);
  color: var(--st2-ink);
}
.st2.st2 .st2-btn--ghost:hover { border-color: var(--st2-ink); color: var(--st2-ink); background: rgba(21, 23, 26, 0.04); }
/* На акцентной полосе кнопки инвертируются: оранжевое на оранжевом не читается. */
.st2.st2 .st2-cta .st2-btn--primary { background: var(--st2-ink); border-color: var(--st2-ink); color: var(--st2-bg); }
.st2.st2 .st2-cta .st2-btn--primary:hover { background: #000; color: var(--st2-bg); }
.st2.st2 .st2-cta .st2-btn--ghost { border-color: var(--st2-accent-ink); color: var(--st2-accent-ink); border-width: 2px; }
.st2.st2 .st2-cta .st2-btn--ghost:hover { background: rgba(29, 18, 6, 0.10); color: var(--st2-accent-ink); }

/* ── Сетка и карточки ───────────────────────────────────────────────── */

.st2-grid {
  display: grid;
  /* minmax(0, …) обязателен: с 1fr колонка не сжимается ниже содержимого,
     и длинное слово выпихивает сетку за экран.
     Число колонок читается из переменной: без неё работает прежняя
     авто-раскладка, а редактор может задать ровно столько, сколько нужно
     (подстановка var() происходит до разбора значения, поэтому auto-fit
     в качестве значения по умолчанию здесь допустим). */
  grid-template-columns: repeat(var(--st2-cols, auto-fit), minmax(var(--st2-col-min, min(260px, 100%)), 1fr));
  gap: 22px;
}
/* --st2-col-min ставится вместе с явным числом колонок (шаблон, редактор): 0px,
   иначе четыре колонки по 260px не влезали в секцию и сетка вылезала за экран. */
/* align-items:start обязателен: без него сетка растягивает фигуры до общей
   высоты, и подпись под низкой картинкой уезжает вниз от неё на пустоту. */
.st2-grid--2 {
  /* Ровно две колонки, а не auto-fit: при четырёх снимках авто-раскладка
     ставила три в ряд и один под ними — ряд выглядел оборванным.
     Для двух снимков результат прежний. */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  align-items: start;
}

/* Три снимка в ряд (кабинет: страница клуба, расписание, финансы). */
.st2-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  align-items: start;
}

/* Один снимок по ходу текста: не во всю полосу (иначе экран в 640px высотой),
   а шириной с абзацы, у левого края, как и весь текст. */
.st2-grid--1 {
  grid-template-columns: minmax(0, 1fr);
  max-width: 860px;
  margin-inline: auto; /* один снимок стоит по центру полосы, а не у левого края */
  align-items: start;
}

/* Метки: одиннадцать форматов турниров строкой «капсул», на телефоне
   переносятся в несколько строк. */
.st2-tags-block .st2-h3 { margin-bottom: 12px; }
.st2.st2 .st2-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.st2.st2 .st2-tags li {
  margin: 0;
  padding: 7px 13px;
  border: 1px solid var(--st2-line-strong);
  border-radius: 999px;
  background: var(--st2-surface);
  font-size: var(--st2-tag-size);
  line-height: 1.3;
}

/* Отступ между заголовком секции и её содержимым. Раньше стоял инлайном
   в рендерере — ровно то, от чего уходим. */
.st2-block { margin-top: 34px; }
.st2-grid--wide { gap: 40px; align-items: start; }

.st2-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 28px;
  background: var(--st2-surface);
  border: 1px solid var(--st2-line);
  border-radius: var(--st2-radius);
}
.st2-section--surface .st2-card { background: var(--st2-bg); }

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

.st2-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 40px;
  margin-top: 38px;
  padding-top: 28px;
  border-top: 1px solid var(--st2-line);
}
.st2-stat { display: flex; flex-direction: column; gap: 4px; }
.st2-stat b {
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
}
.st2-stat span { font-size: 15px; color: var(--st2-muted); }

/* ── Нумерованные шаги ──────────────────────────────────────────────── */

.st2-steps { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.st2-steps li {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--st2-line-strong);
  font-size: 17px;
  line-height: 1.5;
}
.st2-steps li:last-child { border-bottom: 0; }
.st2-steps b {
  flex: none;
  min-width: 2ch;
  color: var(--st2-link);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.st2-steps strong { font-weight: 700; }
.st2-steps span { color: var(--st2-muted); }
.st2-steps strong + span::before { content: " — "; }

/* ── Полоса призыва ─────────────────────────────────────────────────── */

.st2-cta {
  padding: var(--st2-pad-y) var(--st2-pad-x);
  background: var(--st2-accent);
  color: var(--st2-accent-ink);
  text-align: center;
}
.st2-cta > * { max-width: var(--st2-cta-max); margin-inline: auto; }
.st2-cta .st2-h2 { color: var(--st2-accent-ink); font-size: var(--st2-cta-h2-size); }
.st2-cta .st2-lead { color: rgba(29, 18, 6, 0.78); margin-inline: auto; font-size: var(--st2-cta-lead-size); }
.st2-cta .st2-actions { justify-content: center; }
/* Вопросы внутри акцентного блока.
 * Текст вопроса выравниваем влево: .st2-cta центрирует всё, а строка с
 * плюсом у правого края при центрированном тексте читается как перекос.
 * Ссылки перекрашиваем в тёмную краску акцента — серый по умолчанию
 * давал на оранжевом контраст около 1,6 и был фактически невидим. */
.st2-cta .st2-faqs { max-width: 700px; margin-inline: auto; text-align: left; }
.st2-cta .st2-faq { border-color: rgba(29, 18, 6, 0.18); background: #ffffff; }
.st2-cta .st2-faq > summary { color: #15171a; }
.st2-cta .st2-faq > summary:hover { color: #7a3c06; }
.st2-cta .st2-faq > .st2-text { color: rgba(21, 23, 26, 0.82); }
.st2-cta .st2-links { justify-content: center; }
.st2.st2 .st2-cta .st2-links a { color: var(--st2-accent-ink); }
.st2.st2 .st2-cta .st2-links a:hover { color: #000; }

/* ── Снимки экранов ─────────────────────────────────────────────────── */

/* Тонкая рамка вместо «устройства»: макет не показывает ни одного корпуса,
   а карточка с бортом 1px держит тот же ритм, что остальные блоки. */
.st2-shot {
  /* Соотношение окна. Меняется на самом элементе (в том числе из редактора),
     поэтому объявлено переменной, а не числом. */
  --st2-shot-ratio: 16 / 10;

  display: block;
  margin: 0;
  padding: 10px;
  background: var(--st2-surface);
  border: 1px solid var(--st2-line);
  border-radius: var(--st2-radius);
}

/*
 * Окно с ФИКСИРОВАННЫМ соотношением.
 *
 * Было `height: auto`: высота бралась из пропорций файла, поэтому два снимка
 * разной формы (1,50 и 1,78) выводились разной высоты — 359px и 303px, и
 * сделать их одинаковыми было нечем. И увеличивать было не во что: без окна
 * обрезки масштаб просто раздувал бы вёрстку.
 *
 * Теперь окно задаёт размер, картинка заполняет его целиком с обрезкой,
 * а масштаб и положение из панели работают внутри окна.
 */
/*
 * Прямым потомком фигуры может быть как сама картинка, так и обёртка,
 * которую ставит редактор при замене изображения (span.st-editor-image-frame).
 * Поэтому окно назначается потомку, а не тегу: селектор `.st2-shot > img`
 * промахивался мимо обёрнутых картинок, и правило молча не работало.
 * figcaption исключён — иначе подпись тоже получила бы соотношение сторон.
 */
.st2-shot > :not(figcaption) {
  display: block;
  position: relative;
  width: 100%;
  aspect-ratio: var(--st2-shot-ratio);
  border-radius: 10px;
  /* Обрезаем здесь: увеличенная картинка не должна вылезать за рамку. */
  overflow: hidden;
  overflow: clip;
}
/* Картинка — само окно. */
.st2-shot > img {
  height: auto;
  object-fit: cover;
}
/* Картинка внутри обёртки: растягиваем на всё окно. */
.st2-shot > :not(figcaption):not(img) img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.st2-shot figcaption {
  padding: 14px 6px 4px;
  color: var(--st2-muted);
  font-size: 15px;
  line-height: 1.45;
}

/* ── Мелочи ─────────────────────────────────────────────────────────── */

/* Строка перелинковки: ссылки, а не кнопки — они не спорят с призывом. */
.st2-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin: 18px 0 0;
    font-size: 15px;
}
/* Класс удвоен: общее правило ссылок в теме — .st2.st2 a, и без удвоения
   оно перебивает это по весу селектора. */
.st2.st2 .st2-links a {
    /* Не var(--st2-link): на светлой полосе он даёт 4,45 — ниже порога
       для обычного текста. #93470a на том же фоне даёт 5,17. */
    color: #93470a;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.st2.st2 .st2-links a:hover {
    color: var(--st2-link-hover);
}
body.st2-preset-night .st2.st2 .st2-links a {
    color: var(--st2-link);
}

/* ── Вопросы и ответы ─────────────────────────────────────────────
 *
 * Свёрнутый вид: четыре развёрнутых ответа съели бы экран, а страница
 * и так собиралась из повторов. Цвета — те же токены, что у карточек,
 * поэтому блок работает в обоих пресетах без отдельных правил.
 */
.st2-faqs {
    display: grid;
    gap: 10px;
}
.st2-faq {
    border: 1px solid var(--st2-line);
    border-radius: 12px;
    background: var(--st2-surface);
}
.st2-faq > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 18px;
    cursor: pointer;
    font-weight: 650;
    color: var(--st2-ink);
    list-style: none;
}
/* Треугольник Safari/WebKit убираем отдельно: ::marker его не покрывает. */
.st2-faq > summary::-webkit-details-marker {
    display: none;
}
.st2-faq > summary::after {
    content: "+";
    flex: none;
    color: var(--st2-muted);
    font-weight: 500;
}
.st2-faq[open] > summary::after {
    content: "\2212";
}
.st2-faq > summary:hover {
    color: var(--st2-link);
}
.st2-faq > summary:focus-visible {
    outline: 2px solid var(--st2-accent);
    outline-offset: -2px;
}
.st2-faq > .st2-text {
    margin: 0;
    padding: 0 18px 16px;
}

.st2-note {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--st2-line);
  color: var(--st2-muted);
  font-size: 15px;
}

@media (max-width: 640px) {
  .st2 { font-size: 17px; }
  .st2-card { padding: 22px; }

  /*
   * Цифры на телефоне. Во flex-раскладке подписи «с успешной онлайн-оплаты»
   * и «обработка платежа по СБП» шире своей доли, и третья цифра сваливалась
   * во второй ряд: получалось 2 + 1 вразнобой. Сетка из трёх равных колонок
   * держит их в одном ряду, а подписи переносятся внутри своей клетки.
   */
  .st2-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 12px;
    margin-top: 30px;
    padding-top: 22px;
  }
  .st2-stat b { font-size: 24px; letter-spacing: -0.01em; }
  .st2-stat span { font-size: 13px; line-height: 1.3; }
}

/* Совсем узкие экраны: три колонки по ~100px уже нечитаемы — уходим в две. */
@media (max-width: 360px) {
  .st2-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
}


/* ── Обёртка страницы от Elementor ──────────────────────────────────── */

/*
 * Внешний контейнер шаблона красит страницу в тёмно-синий rgb(27,37,47)
 * и стоит flex с gap:20px. Над нашим блоком остался пустой виджет старого
 * шаблона (32px), и сквозь него плюс зазор проступала тёмная полоса под
 * шапкой — то, чего там быть не должно. Класс st2-theme ставится на <body>
 * только для страниц новой темы, поэтому старые страницы не затронуты.
 */
body.st2-theme .elementor-location-single > .e-con {
  background: #f2f0ed !important;
  gap: 0 !important;
}
body.st2-theme .elementor-location-single > .e-con > .elementor-widget:not(:has(.st2-page)) {
  display: none;
}


/* Колонки по экранам (владелец, 2026-09-29: «вместо столбиком — в один ряд» на нужном
   экране). Десктопное число колонок действует только от 1024px; планшет (768–1023) и
   телефон (≤767) читают свои переменные из редактора (--st2-cols-tablet / --st2-cols-mobile),
   а без них раскладываются авто-подбором — минимум 260px на колонку, то есть на телефоне
   столбиком. Границы экранов — те же, что у профилей редактора (раньше стояла одна
   граница 860px). */
@media (min-width: 768px) and (max-width: 1023px) {
  .st2-grid,
  .st2-grid--1,
  .st2-grid--2,
  .st2-grid--3 {
    grid-template-columns: repeat(var(--st2-cols-tablet, auto-fit), minmax(var(--st2-col-min-tablet, min(260px, 100%)), 1fr));
  }
}
@media (max-width: 767px) {
  .st2-grid,
  .st2-grid--1,
  .st2-grid--2,
  .st2-grid--3 {
    grid-template-columns: repeat(var(--st2-cols-mobile, auto-fit), minmax(var(--st2-col-min-mobile, min(260px, 100%)), 1fr));
  }
}

/* Подпись снимка с заголовком (title в данных снимка): заголовок своей
   строкой цветом текста, пояснение — приглушённым, как обычная подпись. */
.st2-shot figcaption strong {
  display: block;
  margin-bottom: 4px;
  color: var(--st2-ink);
  font-weight: 700;
}

/* Несколько абзацев условий подряд: линия и большой отступ только у первого,
   иначе каждый абзац выглядит как отдельный блок. */
.st2-note + .st2-note {
  margin-top: 10px;
  padding-top: 0;
  border-top: 0;
}

/* ── Компактная шкала: пробуем на «Игрокам» и «Тренерам» ─────────────────
   Значения сняты с правок владельца на странице клуба (2026-09-26): заголовок
   в одну строку, подводка широкая, карточки плотнее. Максимумы совпадают с его
   выбором при ширине 1400px, минимумы держат телефон читаемым, между ними
   кегль идёт за шириной экрана. Если владелец примет — блок переезжает
   в умолчания .st2 выше и становится правилом шаблона. */
body.page-id-1285 .st2,
body.page-id-1962 .st2 {
  --st2-h1-size: clamp(30px, 3.3vw, 46px);
  --st2-h2-size: clamp(24px, 2.45vw, 34px);
  --st2-lead-size: clamp(17px, 1.43vw, 20px);
  --st2-lead-max: min(100%, 980px);
  --st2-lead-section-size: clamp(16px, 1.3vw, 18px);
  --st2-lead-section-max: min(100%, 920px);
  /* Карточки — по ручной правке владельца на «Тренерам» 2026-09-26:
     заголовок 18, текст 15. Мелкий текст почти не резиновый: у него пол. */
  --st2-h3-size: clamp(17px, 1.29vw, 18px);
  --st2-text-size: 15px;
  --st2-tag-size: 13px;
  --st2-cta-max: 1140px;
  --st2-cta-h2-size: clamp(24px, 2.3vw, 32px);
  --st2-cta-lead-size: clamp(17px, 1.43vw, 20px);
}

/* ── Первый экран с экранами справа (главная, 2026-09-26) ───────────────
   Текст и кнопки слева, снимки справа; до 980px — столбиком: текст, потом снимки. */
.st2-hero--split { display: grid; gap: 36px; align-items: center; }
@media (min-width: 981px) {
  .st2-hero--split { grid-template-columns: minmax(0, 1fr) minmax(0, 440px); gap: 56px; }
}
.st2-hero-visual .st2-grid--1 { max-width: none; margin-inline: 0; gap: 18px; }
/* Телефонный экран уже планшетного: не растягиваем на всю колонку. */
.st2-shot--phone { max-width: 280px; }
/* Ссылка внизу карточки («Возможности для игроков →»). */
.st2-card-link { display: inline-block; margin-top: 16px; font-size: 15px; font-weight: 700; }

/* ── Телефон: все кегли на ~20 % меньше (владелец, 2026-09-28) ─────────────
   Значения от замеров на 390px (клубы/игроки/партнёрка). !important — точечные
   кегли из редактора заданы под десктоп; для телефона у текста есть своё поле
   «на телефоне», которое печатается отдельным правилом и перебивает эти. */
@media (max-width: 760px) {
  .st2 .st2-h1 { font-size: clamp(24px, 7.4vw, 29px) !important; }
  /* :where() — чтобы вес остался (0,2,0) и точечный кегль «на телефоне» из редактора его перебивал. */
  .st2 :where(.st2-section:has(.st2-h1)) .st2-lead { font-size: 15px !important; }
  .st2 :where(.st2-section:not(:has(.st2-h1))) .st2-lead { font-size: 14px !important; }
  .st2 .st2-h2 { font-size: clamp(20px, 5.8vw, 22px) !important; }
  .st2 .st2-h3 { font-size: 16px !important; }
  .st2 .st2-text { font-size: 13px !important; }
  .st2 .st2-btn { font-size: 14px !important; padding: 13px 20px; }
  .st2 .st2-stat b { font-size: 20px !important; }
  .st2 .st2-stat span { font-size: 11px !important; }
  .st2.st2 .st2-tags li { font-size: 11px !important; }
  .st2 .st2-kicker { font-size: 12px !important; }
  .st2 .st2-shot figcaption { font-size: 12.5px !important; }
  .st2 .st2-note { font-size: 12.5px !important; }
  .st2 .st2-faq > summary { font-size: 14px !important; }
  .st2 .st2-links { font-size: 13px !important; }
  .st2 .st2-card-link { font-size: 12px !important; }
  .st2 .st2-cta .st2-h2 { font-size: clamp(20px, 5.8vw, 22px) !important; }
  .st2 .st2-cta .st2-lead { font-size: 15px !important; }
}

/* Страница «Идеи и сотрудничество» (2026-09-28): текст слева и схема справа,
   схема корпоративной программы, обёртка формы Elementor. */
.st2-split { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); gap: 40px; align-items: center; }
.st2-scheme { margin: 0; padding: 26px; border-radius: var(--st2-radius); background: var(--st2-surface); border: 1px solid var(--st2-line); box-shadow: 0 18px 44px rgba(16, 33, 48, 0.08); }
.st2-scheme__row { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 10px; align-items: center; }
.st2-scheme__node { padding: 14px 12px; border-radius: 14px; background: var(--st2-band); text-align: center; min-height: 92px; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.st2-scheme__node b { font-size: 15px; line-height: 1.25; color: var(--st2-ink); }
.st2-scheme__node span { font-size: 12.5px; line-height: 1.35; color: var(--st2-muted); }
.st2-scheme__arrow { font-size: 20px; color: var(--st2-muted); }
.st2-scheme__bar { margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: var(--st2-accent); color: var(--st2-accent-ink); display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.st2-scheme__bar b { font-size: 16px; }
.st2-scheme__bar span { font-size: 14px; }
.st2-scheme figcaption { margin-top: 12px; font-size: 13px; color: var(--st2-muted); }
.st2-form { margin-top: 28px; max-width: 760px; }
.st2-form .elementor-widget-form { margin: 0; }
/* Форма-шорткод внутри lean-страницы приходит с классом elementor-location-single,
   и правило выше (прячет виджеты шаблона single без .st2-page) скрывало её. */
body.st2-theme .st2-page .st2-form .elementor-location-single > .e-con > .elementor-widget { display: block; }
body.st2-theme .st2-page .st2-form .elementor-location-single > .e-con { background: transparent !important; padding: 0 !important; }
.st2-form .elementor-form .elementor-field-group { margin-bottom: 4px; }
/* Форма в стиле lean: поля на белом, скругления темы, оранжевая кнопка; серый фон и
   отступы виджета поддержки не нужны. */
.st2-form .e-con, .st2-form .e-con-inner, .st2-form .elementor-widget-form, .st2-form .elementor-widget-form > .elementor-widget-container { background: transparent !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; }
.st2-form .elementor-form .elementor-field-group { padding: 0 0 16px !important; }
.st2-form .elementor-form .elementor-field-group.elementor-col-50 { padding-right: 8px !important; }
.st2-form .elementor-form .elementor-field-group.elementor-col-50 + .elementor-col-50 { padding-right: 0 !important; padding-left: 8px !important; }
.st2-form .elementor-form .elementor-field-label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--st2-ink); }
.st2-form .elementor-form .elementor-mark-required .elementor-field-label::after { color: var(--st2-accent); }
.st2-form .elementor-form .elementor-field-textual { background: var(--st2-surface); border: 1px solid var(--st2-line-strong); border-radius: 12px; padding: 12px 14px; font-size: 16px; line-height: 1.4; color: var(--st2-ink); box-shadow: none; }
.st2-form .elementor-form .elementor-field-textual:focus { border-color: var(--st2-accent); outline: none; box-shadow: 0 0 0 3px rgba(232, 121, 31, 0.18); }
.st2-form .elementor-form textarea.elementor-field-textual { min-height: 150px; }
.st2-form .elementor-form input[type="file"] { font-size: 14px; color: var(--st2-muted); }
.st2-form .elementor-form .elementor-button { background: var(--st2-accent) !important; color: var(--st2-accent-ink) !important; border: 0; border-radius: 999px; padding: 14px 26px; font-size: 16px; font-weight: 700; width: auto; min-width: 260px; }
.st2-form .elementor-form .elementor-button:hover { filter: brightness(0.96); }
.st2-form .elementor-form .elementor-message { margin-top: 12px; font-size: 15px; }
@media (max-width: 767px) {
  .st2-form .elementor-form .elementor-field-group.elementor-col-50 { width: 100%; padding-left: 0 !important; padding-right: 0 !important; }
  .st2-form .elementor-form .elementor-button { width: 100%; }
}
@media (max-width: 767px) {
  .st2-split { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .st2-scheme { padding: 18px; }
  .st2-scheme__row { grid-template-columns: 1fr; gap: 6px; }
  .st2-scheme__arrow { transform: rotate(90deg); text-align: center; }
  .st2-scheme__node { min-height: 0; padding: 12px; }
}
