/* ══════════════════════════════════════════════════════════════════════
   Правки поверх boutique.css. Отдельный файл, потому что параллельная
   сессия сейчас правит visual-refresh.css и boutique.css — так наши
   изменения не сталкиваются в одних и тех же строках.
   ══════════════════════════════════════════════════════════════════ */

/* ── 1. Заголовок и подзаголовок ближе друг к другу ────────────────────
   В блоке «Невозможно управлять своей жизнью» между заголовком и
   абзацем было 171px: строка сетки выровнена по центру, а рядом с
   абзацем стоит высокий кадр — текст уезжал к его середине. Выравнивание
   по верху + меньший межстрочный промежуток убирают провал. */
@media(min-width:901px){
 html body.program-2027 .purpose .editorial-grid{align-items:start;row-gap:28px}
 html body.program-2027 .benefits-collection>h2{margin-bottom:38px}
 html body.program-2027 .investment>h2{margin-bottom:34px}
 html body.program-2027 .faq>h2{margin-bottom:32px}
 html body.program-2027 .retreat-content h2{margin-bottom:40px}
}

/* ── 2. Затемнение поверх видео ────────────────────────────────────────
   Скрим уходил к правому краю почти в ноль (#07151f38 — 22%), а там
   как раз третья колонка с «≈ 50». Текст ложился на светлый лёд.
   Поднимаем правый край и добавляем ровную подложку снизу. */
html body.program-2027 .retreat-scene:after{
 background:
  linear-gradient(90deg,#07151ff5 0%,#07151fd6 52%,#07151fb0 100%),
  linear-gradient(180deg,#07151f14 0%,#07151f40 100%)}

/* ── 3. «Природа здесь становится частью программы» ────────────────────
   Сетка была на три колонки (.7fr 1.25fr 1fr), а детей в ней двое —
   третья колонка пустовала, заголовок сжимался до 215px и ломался по
   одному слову в строку. Две равные колонки. */
@media(min-width:901px){
 html body.program-2027 .island-copy{
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:6%;align-items:start}
 html body.program-2027 .island-copy h2{
  font-size:clamp(42px,4.4vw,66px);line-height:1.0}
 html body.program-2027 .island-copy>.island-description{max-width:54ch}
}

/* ── 4. Второй экран: порядок блоков и высота кадра ───────────────────
   На мобилке порядок читается сверху вниз: заголовок, первый абзац,
   кадр, второй абзац. Поэтому в разметке они идут именно так, а на
   десктопе расставлены через grid-area: кадр слева на всю высоту,
   справа заголовок и оба абзаца.

   Строки заданы auto, а не max-content: Safari неверно считает
   max-content в строке, которую пересекает элемент на несколько строк,
   и кадр схлопывался. Высота кадра задана явно — раньше она держалась
   только на min-height, то есть зависела от того, как движок раздал
   высоту строкам. */
@media(min-width:901px){
 html body.program-2027 .purpose .editorial-grid{
  grid-template-areas:"photo heading" "photo lead";
  grid-template-rows:auto 1fr;align-items:start;row-gap:28px}
 html body.program-2027 .purpose .editorial-grid>h2{grid-area:heading}
 html body.program-2027 .purpose .purpose-lead{grid-area:lead}
 html body.program-2027 .purpose .purpose-photo{grid-area:photo;height:640px}
}
@media(max-width:900px){
 /* никаких областей — элементы идут в порядке разметки. Сброс grid-area
    у каждого элемента поимённо: без него остаются ссылки на области,
    которых уже нет, и браузер разносит их по неявным дорожкам. */
 html body.program-2027 .purpose .editorial-grid{
  grid-template-areas:none;grid-template-columns:minmax(0,1fr);grid-template-rows:none}
 html body.program-2027 .purpose .editorial-grid>h2,
 html body.program-2027 .purpose .editorial-grid>figure.purpose-photo,
 html body.program-2027 .purpose .editorial-grid>div.prose{grid-area:auto}
}

/* ── 5. Вторая колонка «не включено» — в обводку ───────────────────────
   Первая колонка стала тёмной карточкой, вторая осталась на белом без
   формы, и пара читалась как одна карточка и хвост рядом с ней. Та же
   геометрия, но контуром — иерархия сохраняется: включённое плотное,
   оплачиваемое отдельно легче. */
html body.program-2027 .inclusions-grid>div+div{
 padding:44px 42px;border-radius:26px;
 border:1px solid #0715201f;background:#ffffff66}
@media(max-width:900px){
 html body.program-2027 .inclusions-grid>div+div{padding:32px 26px;border-radius:20px}
}

/* ── 6. Две карточки «включено / не включено» — ближе друг к другу ─────
   Зазор в 7% давал 66px между карточками, плюс по 42px внутреннего
   поля с каждой стороны — между колонками текста получалось 150px,
   и пара читалась как два отдельных блока. */
html body.program-2027 .inclusions-grid{column-gap:24px}
@media(max-width:900px){html body.program-2027 .inclusions-grid{gap:18px}}

/* ── 7. Стрелка ↗ рисовалась цветным эмодзи ───────────────────────────
   U+2197 нет ни в Onest, ни в Inter — обе подключены подмножествами
   латиницы и кириллицы. Система подставляла Apple Color Emoji. В
   разметку добавлен U+FE0E (селектор текстового начертания), здесь —
   то же правилом, для браузеров, которые его поддерживают. */
html body.program-2027 .button span[aria-hidden],
html body.program-2027 .nav-cta span,
html body.program-2027 .hero-foot a span{
 font-variant-emoji:text}

/* ── 8. Обе строки заголовка первого экрана одного кегля ──────────────
   На мобилке размер h1 переопределён отдельно, а em остался со старым
   значением — «3-дневная программа» выходила на четверть мельче. */
html body.program-2027 .hero-stage h1 em,
html body.program-2027 .hero h1 em{font-size:inherit;line-height:inherit}

/* ── 9. Линейка в блоке «Ваше тело способно на большее» ───────────────
   Разделитель — это нижняя граница .wim-cover-copy, а на самом блоке
   стоял max-width:920px, поэтому линия обрывалась, не дойдя до правого
   края панели. Ограничение снято с блока и перенесено на абзац: текст
   по-прежнему не растягивается, а линейка идёт во всю ширину. */
html body.program-2027 .wim-cover-copy{max-width:none}
html body.program-2027 .wim-cover-copy>p{max-width:920px}

/* ── 10. Кадр во втором экране: убираем абсолютное позиционирование ────
   В WebKit (Safari и любой браузер на iOS, включая Chrome) картинку не
   было видно. Она позиционирована абсолютно, то есть своей высоты не
   имеет, и высота рамки целиком зависела от того, как движок посчитал
   строку сетки. Blink считал одно, WebKit другое — и рамка схлопывалась.
   Картинка возвращается в обычный поток: высоту она задаёт сама. */
html body.program-2027 .purpose .purpose-photo picture{display:block;height:100%}
html body.program-2027 .purpose .purpose-photo img{
 position:static;display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:900px){
 html body.program-2027 .purpose .purpose-photo{align-self:start;height:auto;min-height:0}
 html body.program-2027 .purpose .purpose-photo picture{height:auto}
 html body.program-2027 .purpose .purpose-photo img{height:auto;aspect-ratio:11/10}
}

/* ── 11. Все заголовки — весом 600 ────────────────────────────────────
   Правило с 600 лежит в program-2027.css, а visual-refresh.css и
   boutique.css грузятся позже и сбрасывали вес шорткатом font:400.
   В итоге 600 держали только h3 в программе, тарифах и FAQ, а все h2
   и карточки «Что вы заберёте» оставались светлыми. Перечисляю
   поимённо: селекторы должны быть не слабее тех, что в тех файлах. */
html body.program-2027 .purpose .editorial-grid>h2,
html body.program-2027 .purpose .editorial-grid>h2 em,
html body.program-2027 .retreat-content h2,
html body.program-2027 .retreat-content h2 em,
html body.program-2027 .island-copy h2,
html body.program-2027 .island-copy h2 em,
html body.program-2027 .wim-cover-copy h2,
html body.program-2027 .wim-cover-copy h2 em,
html body.program-2027 .experience .program-heading h2,
html body.program-2027 .benefits-collection h2,
html body.program-2027 .benefits-collection h2 em,
html body.program-2027 .benefits-collection .benefit-card h3,
html body.program-2027 .investment h2,
html body.program-2027 .investment h2 em,
html body.program-2027 .faq h2,
html body.program-2027 .apply h2,
html body.program-2027 .apply h2 em,
html body.program-2027 .application-box h3,
html body.program-2027 .wim-records .achievement-mark{font-weight:600}

/* ── 12. «Что вы заберёте»: кадры между пунктами ──────────────────────
   Список пунктов — как был, на всю ширину. Между ними три ряда по три
   снимка. На десктопе ряд занимает всю ширину блока и кадры стоят со
   сдвигом по вертикали. На мобилке ряд превращается в ленту, которая
   едет сама: кадры продублированы в разметке, дорожка сдвигается на
   половину длины, поэтому петля бесшовная. Дубли на десктопе скрыты.

   Селекторы длиннее обычного намеренно: в boutique.css стоит
   .benefit-grid > .benefit-card .benefit-photo с соотношением 2.15/1,
   и правило покороче до него не дотягивалось по специфичности. */
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots{margin:26px 0 62px}
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track .benefit-photo{
 margin:0;aspect-ratio:4/5;border-radius:18px;overflow:hidden;background:#0e2231}
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track .benefit-photo img{
 display:block;width:100%;height:100%;object-fit:cover;
 transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track .benefit-photo:hover img{transform:scale(1.04)}
/* в бочке человек стоит левее центра — иначе срезает лицо */
html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track img[src*="barrel-hands"]{object-position:38% 50%}

@media(min-width:761px){
}

@media(max-width:760px){
 /* ряд превращается в ленту и едет сам. Она уходит за поля секции,
    чтобы край кадра подсказывал, что дальше есть ещё. */
 /* на узком экране ряд не переносится, а листается пальцем: кадры
    остаются крупными, высота блока не растёт. Лента уходит за поля
    секции, край кадра подсказывает, что дальше есть ещё. */
 html body.program-2027 .benefits-collection .benefit-grid .benefit-shots{
  margin:18px -6% 34px;
  overflow-x:auto;overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
 html body.program-2027 .benefits-collection .benefit-grid .benefit-shots::-webkit-scrollbar{display:none}
 html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track{display:flex;gap:12px;width:max-content}
 html body.program-2027 .benefits-collection .benefit-grid .benefit-shots .benefit-track .benefit-photo{flex:0 0 auto;width:56vw;border-radius:14px;margin:0}
}

/* ── 13. Горизонтальный вылет в подвале первого экрана ───────────────
   .hero-foot спозиционирован relative, но ему заданы left и right:
   right при relative игнорируется, а left просто сдвигал блок вправо
   вместе с его полной шириной — отсюда вылет на 16px. */
@media(max-width:760px){
 html body.program-2027 .hero-stage .hero-foot{left:0;right:auto}
}


/* ── 14. Вылет ленты кадров ниже 640px ────────────────────────────────
   Поля .benefits-collection там заданы в пикселях (16px), а лента
   уходит за них отрицательным margin в процентах — 6% оказывались
   шире, и страница получала горизонтальную прокрутку. */
@media(max-width:640px){
 html body.program-2027 .benefits-collection .benefit-grid .benefit-shots{
  margin-left:-16px;margin-right:-16px}
}

/* ── 15. Кадр во втором экране: одинаковые скругления ─────────────────
   В boutique.css у него арка — 160px сверху и 8px снизу (на мобилке
   90/6). Приводим к обычному скруглению, как у остальных фотографий. */
html body.program-2027 .purpose .purpose-photo{border-radius:18px}
@media(max-width:900px){
 html body.program-2027 .purpose .purpose-photo{border-radius:14px}
}

/* ── 16. Блок «Больше, чем путешествие» временно скрыт ────────────────
   Разметка и тексты остались на месте — возвращается удалением этого
   правила. Ссылок из меню на него нет, порядок остальных секций
   не меняется. */
html body.program-2027 .island-story{display:none}

/* ── 17. Кадр в «Программе»: фиксированная высота и липкая прокрутка ──
   Высота задавалась соотношением сторон от ширины колонки, а при
   растягивании на всю строку кадр рос вместе с раскрытыми пунктами
   аккордеона и становился огромным. Теперь высота в долях экрана и от
   содержимого не зависит, а кадр липкий: при прокрутке идёт рядом со
   списком и остаётся на виду.

   Подпись «Несколько ключевых опытов…» убрана из разметки, поэтому
   заголовок раскрывается на всю ширину, а не на половину сетки. */
@media(min-width:901px){
 html body.program-2027 .experience .program-heading{display:block}
 html body.program-2027 .experience .experience-layout{align-items:start}
 html body.program-2027 .experience .experience-visual{
  position:relative;aspect-ratio:auto;min-height:0;
  height:clamp(400px,56vh,520px)}
 /* липким теперь стоит весь левый столбец: картинка и подпись под ней */
 html body.program-2027 .experience .experience-aside{position:sticky;top:30px}
}

/* ── 18. Форма заявки ─────────────────────────────────────────────────
   Заливка и толстые скругления утяжеляли окно и спорили с остальной
   страницей. Здесь то же, что везде на лендинге: тонкая линия, крупный
   кегль, воздух. Подпись мелкая и тихая, ввод — заметный.
   Выбор мессенджера без плашек: просто кружок и слово, выбранное
   темнеет. */
html body.program-2027 .apply-form{display:grid;gap:26px;margin-top:30px}
html body.program-2027 .apply-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:26px}
html body.program-2027 .apply-form .field{display:grid;gap:2px;margin:0;border:0;padding:0;min-width:0}
html body.program-2027 .apply-form .field>span,
html body.program-2027 .apply-form legend{
 font:400 13px/1.5 Onest,Inter,Arial,sans-serif;letter-spacing:0;
 text-transform:none;color:#3f5a6b;padding:0}

html body.program-2027 .apply-form input:is([type=text],[type=email],[type=tel]){
 width:100%;box-sizing:border-box;
 background:none;border:0;border-bottom:1px solid #17303f1f;border-radius:0;
 padding:8px 0 11px;
 font:400 18px/1.45 Onest,Inter,Arial,sans-serif;color:#132733;
 transition:border-color .25s,box-shadow .25s}
html body.program-2027 .apply-form input:is([type=text],[type=email],[type=tel])::placeholder{color:#8ea0ac}
html body.program-2027 .apply-form input:is([type=text],[type=email],[type=tel]):hover{border-bottom-color:#17303f3d}
/* тень вместо толстой рамки: линия темнеет, но ничего не прыгает */
html body.program-2027 .apply-form input:is([type=text],[type=email],[type=tel]):focus{
 outline:0;border-bottom-color:#12364e;box-shadow:0 1px 0 #12364e}
html body.program-2027 .apply-form [data-invalid] input:is([type=text],[type=email],[type=tel]){
 border-bottom-color:#b4483a;box-shadow:none}

/* мессенджер: кружок и слово, без плашек */
html body.program-2027 .apply-form .channel{display:block}
html body.program-2027 .apply-form .channel legend{margin-bottom:12px}
html body.program-2027 .apply-form .channel .radio{
 display:inline-flex;align-items:center;gap:10px;vertical-align:top;
 margin:0 32px 0 0;padding:0;cursor:pointer;background:none;border:0;
 font:400 17px/1.3 Onest,Inter,Arial,sans-serif;color:#3f5a6b;
 letter-spacing:0;text-transform:none;transition:color .25s}
html body.program-2027 .apply-form .channel .radio:hover{color:#2e4a5c}
html body.program-2027 .apply-form .channel .radio:has(input:checked){color:#132733}

html body.program-2027 .apply-form .consent{
 display:flex;align-items:flex-start;gap:12px;cursor:pointer;max-width:46ch;
 font:400 14px/1.65 Onest,Inter,Arial,sans-serif;color:#4a6373;
 letter-spacing:0;text-transform:none}
html body.program-2027 .apply-form input[type=radio],
html body.program-2027 .apply-form input[type=checkbox]{
 accent-color:#12364e;width:17px;height:17px;margin:0;flex:0 0 auto}
html body.program-2027 .apply-form input[type=checkbox]{margin-top:2px}
html body.program-2027 .apply-form [data-invalid]>span{color:#b4483a}

html body.program-2027 .apply-actions{margin-top:26px}
html body.program-2027 .apply-actions .button{width:auto}
html body.program-2027 .apply-actions .button[disabled]{opacity:.6;cursor:progress}
html body.program-2027 .apply-form .form-note{
 margin:0;font:400 14px/1.65 Onest,Inter,Arial,sans-serif;color:#4a6373;max-width:46ch}
html body.program-2027 .apply-form .form-note:empty{display:none}
html body.program-2027 .apply-form .form-note[data-state=ok]{color:#1d6a53}
html body.program-2027 .apply-form .form-note[data-state=error]{color:#b4483a}

/* ловушка: вне экрана, вне порядка обхода, скрыта от озвучки */
html body.program-2027 .apply-form .honeypot{
 position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
 white-space:nowrap;pointer-events:none}

html body.program-2027 .apply-alt{
 margin:14px 0 0;font:400 13px/1.6 Onest,Inter,Arial,sans-serif;color:#7d919e}
html body.program-2027 .apply-alt a{border-bottom:1px solid #17303f3d;color:#1d4c63}

@media(max-width:760px){
 html body.program-2027 .apply-form{gap:22px}
 html body.program-2027 .apply-form .field-row{grid-template-columns:1fr;gap:22px}
}

/* ── 19. Модалка с формой заявки ──────────────────────────────────────
   Нативный <dialog>, поэтому фокус, Esc и недоступность фона достаются
   от браузера. Поля внутри белой карточки — цвета те же, что были у
   встроенной формы. */
html body.program-2027 .apply-modal{
 width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);
 margin:auto;padding:40px 42px 38px;border:0;border-radius:26px;
 background:#fff;color:#132733;overflow:auto;
 box-shadow:0 40px 90px -50px rgba(9,26,38,.75)}
html body.program-2027 .apply-modal::backdrop{background:rgba(6,18,27,.62)}
/* фокус садится на карточку — обводка вокруг неё не нужна */
html body.program-2027 .apply-modal:focus{outline:0}
html body.program-2027 .apply-modal .eyebrow{
 display:block;font:500 13px/1.4 Onest,Inter,Arial,sans-serif;
 letter-spacing:.02em;text-transform:none;color:#5b7383}
html body.program-2027 .apply-modal h3{
 /* по центру; боковые поля оставлены под крестик, чтобы длинный
    заголовок не подлезал под него */
 margin:12px 0 0;padding:0 34px;color:#132733;text-align:center;
 text-wrap:balance;
 font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;
 font-size:clamp(34px,3.4vw,46px);line-height:1.06;letter-spacing:-.02em}
html body.program-2027 .apply-close{
 position:absolute;top:18px;right:18px;width:38px;height:38px;
 display:grid;place-items:center;padding:0;
 background:none;border:1px solid #17303f26;border-radius:50%;
 color:#3d5766;transition:background .3s,border-color .3s}
html body.program-2027 .apply-close:hover{background:#eef3f6;border-color:#17303f40}
html body.program-2027 .apply-close svg{width:16px;height:16px}
html body.program-2027 .apply-modal .apply-form button[type=submit]{justify-self:stretch}

@media(max-width:760px){
 html body.program-2027 .apply-modal{padding:32px 22px 28px;border-radius:20px}
 html body.program-2027 .apply-close{top:12px;right:12px;width:34px;height:34px}
}

/* ── 20. Модалка на мобилке: шторка снизу ─────────────────────────────
   Окно прижимается к нижнему краю и выезжает вверх. Прокручивается
   только середина с полями, а кнопка остаётся в подвале и всегда
   на виду — до неё не надо долистывать.

   @starting-style нужен, чтобы анимация сработала: <dialog> до
   открытия display:none, и без стартового состояния переход не
   запускается. Там, где его нет, шторка просто появится без выезда. */
@media(max-width:760px){
 html body.program-2027 .apply-modal{
  position:fixed;inset:auto 0 0 0;margin:0;
  width:100%;max-width:none;max-height:92dvh;
  padding:22px 20px 0;border-radius:24px 24px 0 0;overflow:hidden;
  transform:translateY(100%);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),
             overlay .4s allow-discrete, display .4s allow-discrete}
 html body.program-2027 .apply-modal[open]{transform:translateY(0)}
 @starting-style{
  html body.program-2027 .apply-modal[open]{transform:translateY(100%)}
 }
 /* прокручивается только середина */
 html body.program-2027 .apply-modal .apply-form{
  flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
  padding-bottom:6px;margin-top:22px}
 /* подвал с кнопкой — всегда внизу экрана */
 html body.program-2027 .apply-modal .apply-actions{
  flex:0 0 auto;margin:0;padding:14px 0 calc(16px + env(safe-area-inset-bottom));
  background:#fff}
 html body.program-2027 .apply-modal .apply-actions .button{width:100%}
 html body.program-2027 .apply-modal .apply-alt{margin:12px 0 0;text-align:center}
 html body.program-2027 .apply-close{top:14px;right:14px}
}

/* ── 21. Кнопка во всю ширину и экран благодарности ───────────────────
   Кнопка тянется по ширине карточки, стрелка уходит к правому краю.
   После успешной отправки поля и кнопка уступают место галочке,
   заголовку и строке про куратора — всё по центру. Крестик остаётся
   на месте, им окно и закрывают. */
html body.program-2027 .apply-modal .apply-actions .button{
 width:100%;justify-content:space-between}

html body.program-2027 .apply-modal[data-state=done] h3,
html body.program-2027 .apply-modal[data-state=done] .apply-form,
html body.program-2027 .apply-modal[data-state=done] .apply-actions{display:none}

html body.program-2027 .apply-done{
 display:grid;justify-items:center;text-align:center;
 padding:30px 0 10px;outline:0}
/* display:grid сильнее атрибута hidden — возвращаем ему силу */
html body.program-2027 .apply-done[hidden]{display:none}
html body.program-2027 .apply-done-mark{
 display:grid;place-items:center;width:76px;height:76px;
 border:1px solid #17303f26;border-radius:50%;color:#12364e}
html body.program-2027 .apply-done-mark svg{width:30px;height:30px}
html body.program-2027 .apply-done h4{
 margin:26px 0 0;color:#132733;
 font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;
 font-size:clamp(30px,3vw,40px);line-height:1.08;letter-spacing:-.02em}
html body.program-2027 .apply-done p{
 max-width:34ch;margin:12px 0 0;
 font:400 16px/1.6 Onest,Inter,Arial,sans-serif;color:#42607a}

@media(max-width:760px){
 html body.program-2027 .apply-done{
  padding:24px 0 calc(30px + env(safe-area-inset-bottom))}
}

/* ── 22. Невысокий экран: кнопка остаётся на виду ─────────────────────
   На ноутбуке с низким окном карточка не помещалась целиком, и до
   кнопки приходилось её пролистывать. Теперь карточка живёт как
   колонка: заголовок сверху, поля посередине и только они
   прокручиваются, кнопка прибита к нижнему краю карточки.

   display задаётся только открытому окну — иначе закрытый <dialog>
   перестаёт скрываться сам и его поля ловят Tab. */
html body.program-2027 .apply-modal[open]{
 display:flex;flex-direction:column;overflow:hidden}
html body.program-2027 .apply-modal h3{flex:0 0 auto}
html body.program-2027 .apply-modal .apply-form{
 flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
 padding-bottom:4px}
html body.program-2027 .apply-modal .apply-actions{
 flex:0 0 auto;margin-top:0;padding-top:20px;background:#fff}
/* тень над кнопкой — только пока под ней есть непрочитанные поля */
html body.program-2027 .apply-modal[data-scroll] .apply-actions{
 box-shadow:0 -16px 20px -16px rgba(9,26,38,.26)}

/* ── 23. Первый экран: афиша ──────────────────────────────────────────
   Разметка здесь своя (.hero-poster вместо .hero), поэтому старые
   правила первого экрана из остальных файлов на неё не действуют и
   бороться со специфичностью не приходится.

   Montserrat подключён локально, как и остальные шрифты: наружу
   страница по-прежнему не ходит. Файл переменный, поэтому одного
   начертания хватает на все нужные насыщенности. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-italic-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'Montserrat';font-style:italic;font-weight:100 900;font-display:swap;src:url('assets/fonts/montserrat-italic-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}

html body.program-2027 .hero-poster{
 position:relative;display:grid;min-height:100svh;overflow:hidden;background:#0b1a22}
html body.program-2027 .poster-photo,
html body.program-2027 .poster-photo img{position:absolute;inset:0;width:100%;height:100%}
html body.program-2027 .poster-photo img{object-fit:cover;object-position:50% 34%}
/* Затемнение чёрное и виньеткой: середина, где стоит Вим, остаётся
   яркой, темнеют только края. Снизу, под текстом, виньетка переходит
   в плотную полосу — там белым по снегу иначе не прочитать — и дальше
   в цвет страницы. */
html body.program-2027 .poster-veil{
 position:absolute;inset:0;
 background:
  linear-gradient(#0000 42%,#00000080 70%,#000000cc 87%,#081316 100%),
  radial-gradient(ellipse 80% 72% at 50% 40%,
                  #0000 18%,#00000054 50%,#000000a8 76%,#000000d9 100%)}
html body.program-2027 .poster-inner{
 position:relative;z-index:1;align-self:end;
 width:min(1180px,100%);margin:0 auto;padding:170px 6% 74px;text-align:center}

html body.program-2027 .poster-title{
 display:grid;margin:0;color:#fff;text-transform:uppercase;
 font-family:Montserrat,'Helvetica Neue',Arial,sans-serif}
html body.program-2027 .poster-title .t-name{
 display:flex;justify-content:center;gap:.2em;
 font-weight:800;font-size:clamp(52px,12.4vw,164px);line-height:.92;letter-spacing:-.012em}
html body.program-2027 .poster-title .t-name b{font-weight:inherit}
html body.program-2027 .poster-title .t-link{
 margin:clamp(6px,1vw,14px) 0 clamp(4px,.6vw,10px);
 font-style:italic;font-weight:500;text-transform:none;
 font-size:clamp(22px,6vw,34px);line-height:1.2;letter-spacing:.2em}
html body.program-2027 .poster-title .t-word{
 font-weight:800;font-size:clamp(34px,8.3vw,110px);line-height:.95;letter-spacing:-.006em}

/* Размер 2 — тот же, что у строки «за пределами». */
html body.program-2027 .poster-when{
 margin:clamp(22px,2.6vw,34px) 0 0;color:#eaf3f5;
 font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;
 font-weight:500;font-size:clamp(15px,2.3vw,30px);line-height:1.4;
 letter-spacing:.26em;text-transform:uppercase}
/* тонкая черта над датой — как в референции */
html body.program-2027 .poster-when:before{
 content:'';display:block;width:clamp(120px,16vw,220px);height:1px;
 margin:0 auto clamp(18px,2vw,26px);background:#9fc6d6}
/* Размер 1 — ровно как подпись на кнопке. */
html body.program-2027 .poster-lede{
 max-width:58ch;margin:clamp(16px,1.8vw,24px) auto 0;color:#eaf1f4;
 font:400 14px/1.65 Onest,Inter,Arial,sans-serif}

/* кнопка белая: на тёмном низу кадра синяя пропадала */
html body.program-2027 .hero-poster .button{
 display:inline-flex;width:auto;margin:clamp(26px,3vw,40px) auto 0;
 gap:clamp(24px,3vw,44px);padding:18px 28px;border:0;border-radius:12px;
 background:#fff;color:#0d2233;
 transition:background .3s,transform .3s}
html body.program-2027 .hero-poster .button:hover{background:#e7eef2;transform:translateY(-2px)}
html body.program-2027 .hero-poster .button svg{stroke:currentColor}

@media(max-width:760px){
 /* Фото и затемнение всегда ровно в высоту экрана, а текст начинается
    с его середины — сразу под бородой, на груди. Если текст длиннее
    оставшейся половины, блок просто растёт вниз и страница
    прокручивается; фото при этом не растягивается и лицо не закрывается. */
 html body.program-2027 .hero-poster{display:block;background:#081316}
 html body.program-2027 .poster-photo,
 html body.program-2027 .poster-veil{bottom:auto;height:100svh}
 html body.program-2027 .poster-photo img{object-position:50% 28%}
 html body.program-2027 .poster-inner{padding:50svh 22px 56px}
 html body.program-2027 .poster-lede{max-width:40ch}
 /* разрядка поменьше, иначе дата ломается на две строки */
 html body.program-2027 .poster-when{letter-spacing:.11em}
 html body.program-2027 .hero-poster .button{width:100%;max-width:360px;font-size:14px}
}

/* ── 24. Первый экран на десктопе: пропорции как в референции ─────────
   Размеры сняты с insiderexpeditions.com/wimhof при ширине окна 1440
   и переведены в доли ширины, чтобы блок жил на любом экране:

     WIM / HOF   181px → 12.6vw, разнесены по краям колонки 1140px,
                 между ними просвет: там видно лицо
     «за пределами» 20px → 1.4vw, курсив, разрядка 3px
     «ВОЗМОЖНОГО»   90px → 6.25vw, ровно половина от WIM HOF
     дата           20px → 1.4vw, разрядка
     текст          14px, узкой колонкой по центру
     кнопка         компактная, по центру

   Телефон сюда не заходит: там плакат, который уже утверждён. */
@media(min-width:761px){
 html body.program-2027 .poster-inner{
  /* блок прижат к низу экрана: так он стоит на одном месте и на
     широком мониторе, где крупные строки сами по себе высокие */
  align-self:end;width:min(1140px,84vw);
  margin:0 auto;padding:0 0 clamp(30px,5vh,72px);text-align:center}

 html body.program-2027 .poster-title .t-name{
  justify-content:space-between;gap:0;
  font-weight:700;font-size:clamp(70px,12.57vw,200px);
  line-height:1;letter-spacing:-.028em}
 html body.program-2027 .poster-title .t-link{
  margin:0 0 .1em;font-weight:300;
  font-size:clamp(20px,1.9vw,30px);line-height:1.4;letter-spacing:.15em}
 html body.program-2027 .poster-title .t-word{
  font-weight:700;font-size:clamp(40px,6.25vw,100px);
  line-height:1.1;letter-spacing:-.03em}

 html body.program-2027 .poster-when{
  margin:0;font-weight:300;font-size:clamp(15px,1.39vw,22px);letter-spacing:.15em}
 html body.program-2027 .poster-when:before{
  width:clamp(90px,8vw,120px);margin:clamp(16px,1.6vw,24px) auto clamp(16px,1.6vw,24px);
  background:#8fb7cc}
 html body.program-2027 .poster-lede{
  max-width:64ch;margin:clamp(18px,2vw,28px) auto 0;
  font:400 15px/1.8 Onest,Inter,Arial,sans-serif}
 /* кнопка держит размер 1 вместе с текстом над ней */
 html body.program-2027 .hero-poster .button{
  margin:clamp(28px,3vw,44px) auto 0;gap:26px;padding:15px 26px;font-size:15px}
}

/* ── 25. Второй экран: фраза на фотографии ────────────────────────────
   Кадр с лагуной лежит полосой во всю ширину, слева у него пустая вода —
   туда и ложится фраза. Строки разной насыщенности и цвета: спокойные
   светлее и тоньше, ударные белые и тяжёлые — так фраза читается
   ритмом, а не сплошной стеной заглавных.

   Абзацы под фотографией оставлены прежним шрифтом страницы. */
/* Блок светлый, как вся страница вокруг: тёмная здесь только полоса с
   фотографией, абзацы под ней лежат на белом. */
html body.program-2027 .statement{padding:0;margin:0;max-width:none;background:#fff}
html body.program-2027 .statement-stage{
 position:relative;display:grid;overflow:hidden;
 min-height:clamp(420px,58vw,620px)}
html body.program-2027 .statement-photo,
html body.program-2027 .statement-photo img{position:absolute;inset:0;width:100%;height:100%}
html body.program-2027 .statement-photo img{object-fit:cover;object-position:72% 50%}
/* Фотография чистая, без подложек: тёмные буквы и так читаются на
   светлой воде и небе. */
html body.program-2027 .statement-veil{display:none}

html body.program-2027 .statement-title{
 position:relative;z-index:1;align-self:center;justify-self:start;
 display:grid;gap:0;margin:0;padding:0 6% 0 7%;max-width:62%;
 font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;
 text-transform:uppercase;letter-spacing:-.01em}
html body.program-2027 .statement-title .q{
 color:#4a6373;font-weight:300;font-size:clamp(20px,3.1vw,44px);line-height:1.12;
 letter-spacing:.04em}
html body.program-2027 .statement-title .a{
 color:#10242f;font-weight:800;font-size:clamp(27px,4.5vw,66px);line-height:1.04}


@media(max-width:760px){
 html body.program-2027 .statement-stage{min-height:clamp(480px,118vw,620px)}
 html body.program-2027 .statement-photo img{object-position:50% 50%}
 /* На узком экране фраза стоит в левом нижнем углу, а там она
    ложится на руки Вима: тёмные буквы на них пропадают. Поэтому здесь
    буквы белые, а затемнение есть только у самого низа кадра, под
    фразой. Верх фотографии остаётся чистым. */
 html body.program-2027 .statement-veil{
  display:block;position:absolute;inset:0;
  background:linear-gradient(#0000 40%,#00000052 56%,#000000a8 76%,#000000d1 100%)}
 html body.program-2027 .statement-title{
  align-self:end;justify-self:start;text-align:left;
  max-width:none;padding:0 22px 28px}
 html body.program-2027 .statement-title .q{color:#e6eef2}
 html body.program-2027 .statement-title .a{color:#fff}
  }

/* ── 26. Второй экран: две секции по приёму Insider Expeditions ───────
   Под полосой с фразой текст идёт не простынёй и не лентой фото, а
   двумя короткими секциями. У каждой — подпись разрядкой, жирный
   заголовок заглавными, тонкая черта, абзац и одна фотография рядом.
   Вторая секция зеркальная.

   Размеры сняты с insiderexpeditions.com/wimhof при окне 1280:
   колонка 880, текст 60% и фото 3:2 со скруглением 10, между ними 40;
   подпись 12 с разрядкой 2, заголовок 30 жирный, черта 53×1,
   абзац 14. Абзац у нас чуть крупнее — 15, на белом так ровнее. */
html body.program-2027 .statement-sections{
 width:min(1240px,100%);margin:0 auto;box-sizing:border-box;
 padding:clamp(64px,7vw,104px) 0 clamp(72px,8vw,112px);
 display:grid;gap:clamp(64px,7vw,96px)}
/* фото — главное в секции: больше половины ширины */
html body.program-2027 .statement-sec{
 display:grid;grid-template-columns:5fr 7fr;gap:clamp(40px,5vw,72px);align-items:center}
html body.program-2027 .statement-sec.flip{grid-template-columns:7fr 5fr}
html body.program-2027 .statement-sec.flip .statement-pic{order:-1}

/* Отступ подписи до заголовка — одинаковый на всей странице и равен
   «Продолжительность → 3 дня»: там 18px до цифр высотой 44, у которых
   над заглавными чуть больше воздуха, поэтому здесь 20 — на глаз
   выходит то же расстояние. */
html body.program-2027 .statement-kicker{
 margin:0 0 20px;color:#5b7383;
 font:400 12px/1 Onest,Inter,Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}
html body.program-2027 .statement-head{
 margin:0;color:#10242f;
 font:800 30px/1.02 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}
/* тонкая черта под заголовком */
html body.program-2027 .statement-head:after{
 content:'';display:block;width:53px;height:1px;margin-top:22px;background:#8fb7cc}
html body.program-2027 .statement-copy p:not(.statement-kicker){
 margin:22px 0 0;color:#3f5a6b;font:400 15px/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .statement-copy b{font-weight:600;color:#132733}

html body.program-2027 .statement-pic{margin:0;border-radius:14px;overflow:hidden;background:#e8eef1}
html body.program-2027 .statement-pic img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}

@media(max-width:1320px){
 html body.program-2027 .statement-sections{padding-left:6%;padding-right:6%}
}
@media(max-width:760px){
 /* на телефоне каждая секция — стопкой: подпись, заголовок, текст, фото */
 html body.program-2027 .statement-sections{padding:48px 22px 60px;gap:52px}
 html body.program-2027 .statement-sec,
 html body.program-2027 .statement-sec.flip{grid-template-columns:1fr;gap:24px}
 html body.program-2027 .statement-sec.flip .statement-pic{order:0}
 html body.program-2027 .statement-head{font-size:24px}
 html body.program-2027 .statement-copy p:not(.statement-kicker){font-size:15px;margin-top:18px}
 html body.program-2027 .statement-head:after{margin-top:18px}
}

/* ── 27. Третий блок: факты о программе и отель ───────────────────────
   Вместо «Впервые на Кипре…» — три коротких факта, отель с галереей,
   уникальный формат с двумя кадрами, примечание и кнопка. Фон тёмный:
   на нём солнечные кадры отеля светятся, а после белого второго блока
   страница не сливается в одно полотно. Подписи и заголовки — тот же
   приём, что во втором блоке (.statement-kicker / .statement-head). */
html body.program-2027 .visually-hidden{
 position:absolute!important;width:1px;height:1px;overflow:hidden;
 clip-path:inset(50%);white-space:nowrap}

/* белый, как второй блок; от него третий отделяет тонкая линия
   сверху, а от следующего тёмного блока — сама смена фона */
html body.program-2027 .venue{background:#fff;color:#132733}
/* заголовок блока — крупнее подзаголовков секций, тем же шрифтом */
html body.program-2027 .venue-title{
 margin:0;max-width:28ch;color:#10242f;
 font:800 clamp(30px,3.6vw,50px)/1.04 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}
html body.program-2027 .venue-title+.venue-facts{margin-top:calc(-1 * clamp(24px,3.4vw,48px))}
/* имя Вима — акцентом: глубокий морской синий, без курсива */
html body.program-2027 .venue-title em{font-style:normal;font-weight:inherit;color:#1f6a8a}
html body.program-2027 .venue-inner{border-top:1px solid #17303f14}
html body.program-2027 .venue-inner{
 width:min(1240px,100%);margin:0 auto;box-sizing:border-box;
 padding:clamp(80px,9vw,128px) 6% clamp(84px,9vw,128px);
 display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(72px,8vw,112px)}

/* факты — три колонки через тонкие линии, под ними панорама всей
   группы. На телефоне та же панорама встаёт между «Группой» и
   «Языком» и разбивает столбик фактов. */
html body.program-2027 .venue-facts{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0}
html body.program-2027 .venue-fact{margin:0}
html body.program-2027 .venue-group{
 grid-column:1/-1;order:1;margin:clamp(40px,4.4vw,60px) 0 0;
 border-radius:14px;overflow:hidden;background:#dfe7eb}
html body.program-2027 .venue-group img{display:block;width:100%;height:auto;aspect-ratio:2048/1100;object-fit:cover}
html body.program-2027 .venue-fact{padding:0 clamp(20px,3vw,44px);border-left:1px solid #17303f1f}
html body.program-2027 .venue-fact:first-child{padding-left:0;border-left:0}
html body.program-2027 .venue-fact dt{
 margin:0 0 18px;color:#4d6574;
 font:400 12px/1 Onest,Inter,Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}
html body.program-2027 .venue-fact dd{margin:0;color:#3f5a6b;font:400 15px/1.65 Onest,Inter,Arial,sans-serif}
html body.program-2027 .venue-fact dd b{
 display:block;margin-bottom:12px;color:#10242f;
 font:800 30px/1.02 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase}

/* подписи и заголовки — как во втором блоке */
html body.program-2027 .venue .statement-kicker{color:#4d6574}
html body.program-2027 .venue .statement-head{color:#10242f}
html body.program-2027 .venue-copy p:not(.statement-kicker){
 margin:22px 0 0;color:#3f5a6b;font:400 16px/1.7 Onest,Inter,Arial,sans-serif;max-width:52ch}

/* отель и формат: заголовок с текстом в строку сверху, фотографии во
   всю ширину под ними — так они самые крупные */
html body.program-2027 .venue-hotel,
html body.program-2027 .venue-format{display:grid;gap:clamp(30px,3.4vw,48px)}
/* Абзац справа бывает выше заголовка слева. Весь лишний воздух уходит
   в верхнюю строку над подписью, а подпись и заголовок держатся вместе —
   иначе между ними раздувалась пустота. */
html body.program-2027 .venue-copy{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto;
 gap:0 clamp(32px,5vw,80px)}
html body.program-2027 .venue-copy .statement-kicker{grid-column:1;grid-row:1;align-self:end}
html body.program-2027 .venue-copy .statement-head{grid-column:1;grid-row:2;align-self:start}
html body.program-2027 .venue-copy p:not(.statement-kicker){grid-column:2;grid-row:1/3;align-self:end}
html body.program-2027 .venue-gallery{
 display:grid;grid-template-columns:repeat(12,1fr);
 grid-template-rows:repeat(3,clamp(170px,19vw,280px));gap:14px}
html body.program-2027 .venue-gallery figure,
html body.program-2027 .venue-duo figure{margin:0;border-radius:14px;overflow:hidden;background:#dfe7eb}
html body.program-2027 .venue-gallery img,
html body.program-2027 .venue-duo img{display:block;width:100%;height:100%;object-fit:cover}
html body.program-2027 .venue-gallery .g-a{grid-column:1/8;grid-row:1/3}
html body.program-2027 .venue-gallery .g-b{grid-column:8/13;grid-row:1/2}
html body.program-2027 .venue-gallery .g-c{grid-column:8/13;grid-row:2/3}
html body.program-2027 .venue-gallery .g-d{grid-column:1/6;grid-row:3/4}
html body.program-2027 .venue-gallery .g-e{grid-column:6/13;grid-row:3/4}

/* формат: под текстом два кадра в ряд — ванна и горы */
html body.program-2027 .venue-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
html body.program-2027 .venue-duo figure{aspect-ratio:4/3}

/* примечание и кнопка — по центру, черта над ними короткая */
html body.program-2027 .venue-note{
 margin:0;justify-self:center;text-align:center;color:#4d6574;
 font:400 15px/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .venue-note:before{
 content:'';display:block;width:53px;height:1px;margin:0 auto 26px;background:#8fb7cc}
html body.program-2027 .venue .button{
 justify-self:center;margin-top:calc(-1 * clamp(40px,5vw,72px));
 background:#0d2233;color:#fff;border-radius:12px}
html body.program-2027 .venue .button:hover{background:#18374d}

@media(max-width:960px){
 html body.program-2027 .venue-copy{grid-template-columns:1fr;grid-template-rows:none}
 html body.program-2027 .venue-copy .statement-kicker,
 html body.program-2027 .venue-copy .statement-head{grid-row:auto}
 /* «3 дня», «≈ 50», «Английский» — тем же размером, что заголовки секций */
 html body.program-2027 .venue-fact dd b{font-size:24px}
 html body.program-2027 .venue-copy p:not(.statement-kicker){grid-column:1;grid-row:auto}
}
@media(max-width:760px){
 html body.program-2027 .venue-inner{padding:64px 22px 72px;gap:56px}
 /* «ПРЕДПРИНИМАТЕЛЕЙ» — самое длинное слово, при 30px оно шире экрана */
 html body.program-2027 .venue-title{font-size:clamp(22px,6.9vw,30px)}
 /* Каждый пункт — и факт, и фото — отделён одной и той же тонкой
    полосой с одинаковым воздухом сверху и снизу. */
 html body.program-2027 .venue-facts{grid-template-columns:minmax(0,1fr);gap:0}
 html body.program-2027 .venue-fact,
 html body.program-2027 .venue-fact:first-child{padding:0;border-left:0}
 html body.program-2027 .venue-facts>*+*{
  margin-top:28px;padding-top:28px;border-top:1px solid #17303f1f}
 /* такая же полоса между заголовком и первым фактом, а ещё перед
    «Местом проведения» и «Уникальным форматом»: 28px воздуха над ней
    (56 общего зазора минус 28) и 28px под ней */
 html body.program-2027 .venue-title+.venue-facts,
 html body.program-2027 .venue-inner>.venue-hotel,
 html body.program-2027 .venue-inner>.venue-format{
  margin-top:-28px;padding-top:28px;border-top:1px solid #17303f1f}
 /* панорама — в потоке между фактами, повыше, чтобы лица не мельчили;
    скругление переходит на саму картинку, иначе полоса над фото ляжет
    на скруглённый угол */
 html body.program-2027 .venue-group{order:0;background:none;border-radius:0;overflow:visible}
 /* фото относится к «Группе» — без полосы, просто отступ под текстом */
 html body.program-2027 .venue-facts>.venue-group{margin-top:24px;padding-top:0;border-top:0}
 html body.program-2027 .venue-group img{aspect-ratio:2048/1100;border-radius:14px}
 /* галерея и пара кадров листаются пальцем */
 html body.program-2027 .venue-gallery,
 html body.program-2027 .venue-duo{
  display:flex;gap:12px;margin:0 -22px;padding:0 22px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:22px;
  overscroll-behavior-x:contain;scrollbar-width:none}
 html body.program-2027 .venue-gallery::-webkit-scrollbar,
 html body.program-2027 .venue-duo::-webkit-scrollbar{display:none}
 html body.program-2027 .venue-gallery figure,
 html body.program-2027 .venue-duo figure{flex:0 0 84%;aspect-ratio:4/3;scroll-snap-align:start}
 /* а два кадра формата — просто стопкой, один под другим */
 html body.program-2027 .venue-duo.venue-duo{
  display:grid;grid-template-columns:1fr;gap:12px;margin:0;padding:0;overflow:visible;scroll-snap-type:none}
 html body.program-2027 .venue-duo.venue-duo figure{flex:none}
 html body.program-2027 .venue .button{width:100%;justify-content:space-between;margin-top:-20px}
}

/* ── 28. Вим Хоф: светлая часть с фото и тёмная с достижениями ───────
   Светлая часть — текст, фото, текст, одной колонкой по центру; тёмная —
   заголовок и прежние три достижения. Фото в оригинале всего 900px,
   поэтому шире 880 его не растягиваем, иначе станет мыльным. */
html body.program-2027 .iceman-intro{background:#fff}

/* Экран пополам: слева заголовок и первый абзац на белом, справа фото
   до самого края. Оригинал фото всего 900px — на половине экрана он
   почти в родном размере и не мылит, в отличие от растяжки на всю
   ширину. */
html body.program-2027 .iceman-band{
 position:relative;margin:0;display:grid;grid-template-columns:1fr 1fr;
 min-height:clamp(560px,46vw,720px);background:#fff;border-top:1px solid #17303f14}
html body.program-2027 .iceman-band img{
 grid-column:2;grid-row:1;display:block;width:100%;height:100%;
 object-fit:cover;object-position:50% 45%}
html body.program-2027 .iceman-cap{
 grid-column:1;grid-row:1;align-self:center;box-sizing:border-box;
 padding:clamp(56px,6vw,96px) clamp(40px,5vw,80px) clamp(56px,6vw,96px) max(6vw,calc((100vw - 1240px) / 2 + 6vw))}
html body.program-2027 .iceman-card{max-width:520px}
html body.program-2027 .iceman-name{
 margin:0;color:#10242f;
 font:800 clamp(36px,4vw,60px)/1 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase}
html body.program-2027 .iceman-name span{
 display:block;margin-top:12px;color:#1f6a8a;
 font-size:.4em;font-weight:600;letter-spacing:.12em}
html body.program-2027 .iceman-name:after{
 content:'';display:block;width:53px;height:1px;margin-top:24px;background:#8fb7cc}
html body.program-2027 .iceman-lead{
 margin:24px 0 0;color:#3f5a6b;font:400 clamp(16px,1.25vw,18px)/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .iceman-lead b{font-weight:600;color:#132733}

/* Второй абзац разбит: фраза, крупная цитата, фраза. На десктопе — тот
   же раскол экрана пополам, что и у полосы выше, только зеркально:
   фото до левого края, текст справа. */
html body.program-2027 .iceman-split{
 display:grid;grid-template-columns:1fr 1fr;
 min-height:clamp(560px,46vw,720px);border-top:1px solid #17303f14}
html body.program-2027 .iceman-hug{
 grid-column:1;grid-row:1;margin:0;border-radius:0;overflow:hidden;background:#e8eef1}
html body.program-2027 .iceman-hug picture,
html body.program-2027 .iceman-hug img{display:block;width:100%;height:100%;object-fit:cover;object-position:58% 50%}
html body.program-2027 .iceman-copy{
 grid-column:2;grid-row:1;align-self:center;box-sizing:border-box;
 padding:clamp(56px,6vw,96px) max(6vw,calc((100vw - 1240px) / 2 + 6vw)) clamp(56px,6vw,96px) clamp(40px,5vw,80px)}
html body.program-2027 .iceman-copy>p{
 margin:0;max-width:52ch;color:#3f5a6b;font:400 clamp(16px,1.2vw,18px)/1.75 Onest,Inter,Arial,sans-serif}
html body.program-2027 .iceman-copy b{font-weight:600;color:#132733}
html body.program-2027 .iceman-quote{
 margin:clamp(30px,3vw,44px) 0;padding:0 0 0 clamp(20px,2vw,28px);border-left:2px solid #8fb7cc}
html body.program-2027 .iceman-quote p{
 margin:0;color:#10242f;
 font:800 clamp(24px,2.4vw,34px)/1.18 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.015em;text-transform:uppercase;text-wrap:balance}

/* тёмная часть: обложки больше нет, начинаем с заголовка */
html body.program-2027 .iceman-spread{padding-top:clamp(72px,8vw,112px)}
html body.program-2027 .wim-records{padding-top:0}
html body.program-2027 .wim-cover-copy h2.iceman-title{
 margin:0;max-width:34ch;color:#fff;
 font:800 clamp(28px,3.4vw,48px)/1.06 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}

/* вопрос с кнопкой — по одной левой линии с заголовком и пунктами */
@media(min-width:761px){
 html body.program-2027 .iceman-spread .editorial-invite{
  margin-left:5%;margin-right:5%;padding-left:3%;padding-right:3%;box-sizing:border-box}
}

@media(max-width:760px){
 /* на телефоне: заголовок и первый абзац, под ними фото проруби —
    оно и отделяет первый абзац от второго, чтобы не было простыни */
 html body.program-2027 .iceman-band{display:flex;flex-direction:column;min-height:0;background:#fff;border-top:0}
 html body.program-2027 .iceman-band img{
  order:2;position:static;height:auto;aspect-ratio:4/3;object-position:50% 50%;margin-top:32px}
 html body.program-2027 .iceman-cap{order:1;padding:0}
 html body.program-2027 .iceman-card{max-width:none}
 html body.program-2027 .iceman-card{width:auto;padding:56px 22px 0;border-radius:0;box-shadow:none}
 html body.program-2027 .iceman-name{font-size:clamp(30px,9vw,38px)}
 html body.program-2027 .iceman-split{display:flex;flex-direction:column;min-height:0;border-top:0;padding:44px 22px 56px;gap:0}
 html body.program-2027 .iceman-copy{padding:0}
 html body.program-2027 .iceman-hug{border-radius:14px}
 html body.program-2027 .iceman-hug picture,
 html body.program-2027 .iceman-hug img{height:auto;aspect-ratio:16/11}
 html body.program-2027 .iceman-copy{display:contents}
 /* абзац теперь один: сначала он, под ним фото на одной руке —
    иначе два фото шли подряд */
 html body.program-2027 .iceman-copy>p{order:1}
 html body.program-2027 .iceman-hug{order:2;margin-top:32px}
 html body.program-2027 .iceman-copy>p{font-size:16px;line-height:1.7}
 html body.program-2027 .iceman-quote p{font-size:22px}
 html body.program-2027 .iceman-spread{padding-top:56px}
 html body.program-2027 .wim-cover-copy h2.iceman-title{font-size:clamp(22px,6.6vw,28px)}
}

/* ── 29. Акцентная фраза в тексте ─────────────────────────────────────
   Главная мысль абзаца вынесена отдельной строкой: тот же жирный тёмный
   текст, но с тонкой полосой слева — как у цитаты в блоке «Вим Хоф». */
html body.program-2027 .statement-copy p.statement-accent{
 margin:22px 0 0;padding-left:20px;border-left:2px solid #8fb7cc;
 color:#132733;font-weight:600}
html body.program-2027 .statement-copy p.statement-accent+p{margin-top:22px}
html body.program-2027 .statement-copy p.statement-accent:first-child{margin-top:0}

/* ── 30. Кнопки — одно скругление на всей странице ───────────────────
   Как у кнопки на первом экране: 12px. Класс повторён, чтобы правило
   перебило разрозненные «пилюли» 99–100px из других файлов. */
html body.program-2027 .button.button.button{border-radius:12px}
/* у <button> браузер рисует свою серую рамку «outset» — убираем */
html body.program-2027 button.button.button{border:0}


/* ── 31. «Программа»: ключевые элементы, акцентный шрифт ──────────────
   Слово «Программа» сверху убрано. Под картинкой — заголовок «Ключевые
   элементы программы», на картинке — «Дыхание / Холод / Природа», и
   названия вкладок. Всё это тем же Montserrat заглавными, что и
   остальные заголовки страницы. Одновременно открыта одна вкладка. */
html body.program-2027 .experience-aside{display:grid;gap:clamp(22px,2.4vw,32px);align-content:start}
html body.program-2027 .experience .experience-chapters h2.experience-title{
 margin:0;color:#10242f;
 font:800 clamp(26px,2.6vw,38px)/1.06 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}

@media(max-width:760px){
 html body.program-2027 .experience .experience-chapters h2.experience-title{font-size:24px}
}

/* ── 32. «Что вы заберёте»: акцентный шрифт ───────────────────────────
   Заголовок блока и названия пунктов — Montserrat жирный заглавными,
   как остальные заголовки страницы. Вторая часть заголовка выделена
   цветом, а не курсивом. Классы повторены, чтобы перебить засечки
   из прежних файлов. */
html body.program-2027 .benefits-collection.benefits-collection>h2{
 font:800 clamp(30px,3.6vw,52px)/1.04 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance;color:#fff}
html body.program-2027 .benefits-collection.benefits-collection>h2 em{
 font-style:normal;font-weight:inherit;font-family:inherit;color:#8fc3d8}
html body.program-2027 .benefits-collection.benefits-collection .benefit-items h3{
 font:800 clamp(19px,1.6vw,24px)/1.18 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.01em;text-transform:uppercase;text-wrap:balance}
@media(max-width:760px){
 html body.program-2027 .benefits-collection.benefits-collection>h2{font-size:clamp(26px,7.4vw,32px)}
 html body.program-2027 .benefits-collection.benefits-collection .benefit-items h3{font-size:19px}
}

/* заголовок стоит над пунктами; кадр и названия вкладок — в прежнем
   виде (арка сверху, засечки), как попросили вернуть 27 октября */
html body.program-2027 .experience .experience-chapters h2.experience-title{margin:0 0 clamp(18px,2vw,28px)}
/* верхняя линия списка — под заголовком, а не над ним */
html body.program-2027 .experience .experience-chapters.experience-chapters{border-top:0}
html body.program-2027 .experience .experience-chapters h2.experience-title+details{border-top:1px solid #bccdd7}

/* ── 33. «Что даст вам эта программа»: по центру, бегущие ленты ───────
   Номера убраны, выравнивание прежнее. Между
   пунктами — ленты горизонтальных фото во всю ширину экрана. Они
   бесконечно едут вбок, как на insiderexpeditions.com/wimhof; соседние
   ленты — в разные стороны. Каждый набор кадров в разметке повторён
   дважды, поэтому сдвиг ровно на половину даёт бесшовный круг. При
   наведении лента замирает, а при «уменьшить движение» не едет вовсе. */
/* выравнивание — как было до центрирования: заголовок и пункты слева,
   на десктопе название пункта слева, текст справа */
@media(min-width:761px){
 html body.program-2027 .benefits-collection.benefits-collection .benefit-items{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);
  column-gap:clamp(32px,5vw,80px);row-gap:14px;align-items:start}
 html body.program-2027 .benefits-collection.benefits-collection .benefit-items h3{
  grid-column:1;grid-row:1 / span 6;margin:0}
 html body.program-2027 .benefits-collection.benefits-collection .benefit-items p{
  grid-column:2;margin:0;max-width:62ch}
}
html body.program-2027 .lane{
 width:100vw;margin:clamp(40px,4.4vw,64px) 0 clamp(40px,4.4vw,64px) calc(50% - 50vw);
 overflow:hidden}
html body.program-2027 .lane-track{
 display:flex;gap:16px;width:max-content;
 animation:lane-move 52s linear infinite}
html body.program-2027 .lane[data-dir=right] .lane-track{animation-direction:reverse}
html body.program-2027 .lane:hover .lane-track{animation-play-state:paused}
html body.program-2027 .lane-shot{
 flex:0 0 auto;width:clamp(260px,30vw,460px);margin:0;
 border-radius:14px;overflow:hidden;background:#12232b}
html body.program-2027 .lane-shot img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
/* вертикальные кадры со старого лендинга — лица в верхней трети */
html body.program-2027 .lane-shot img:is([src*="row-p-wim-breath"],[src*="row-p-ice-breath"]){object-position:50% 30%}
@keyframes lane-move{to{transform:translateX(calc(-50% - 8px))}}
@media(prefers-reduced-motion:reduce){
 html body.program-2027 .lane{overflow-x:auto}
 html body.program-2027 .lane-track{animation:none}
}
@media(max-width:760px){
 html body.program-2027 .lane-track{gap:12px;animation-duration:36s}
 html body.program-2027 .lane-shot{width:78vw}
 @keyframes lane-move{to{transform:translateX(calc(-50% - 6px))}}
}

/* ── 34. «Стоимость участия» ──────────────────────────────────────────
   Заголовок крупно по центру. В карточке основной стоимости — сколько
   всего мест и сколько осталось: «осталось» выделено плашкой, его
   меняют руками в разметке. У заключительного набора кнопки пока нет. */
html body.program-2027 .investment.investment>h2{
 text-align:center;margin-left:auto;margin-right:auto;
 font:800 clamp(30px,3.6vw,52px)/1.04 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase}
html body.program-2027 .investment .booking-left{
 display:inline-block;margin:10px 0 0;padding:6px 12px;border-radius:999px;
 background:#e3f0f5;color:#12485f;font:600 13px/1.3 Onest,Inter,Arial,sans-serif;letter-spacing:.02em}
html body.program-2027 .investment .booking-left+.booking-price{margin-top:18px}

/* ── 35. Без засечек: везде акцентный Montserrat ──────────────────────
   Cormorant Garamond больше нигде не используется. Заголовки — жирные
   заглавные, как во всех переделанных блоках; цифры — тем же жирным;
   вопросы FAQ — жирным, но строчными: это длинные предложения, капсом
   они читались бы тяжело. Курсивные «акценты» в заголовках выделены
   цветом, а не наклоном. */
html body.program-2027 :is(.faq,.apply,.island-story).editorial-section>h2,
html body.program-2027 .faq.faq h2,
html body.program-2027 .island-story.island-story h2{
 font:800 clamp(30px,3.6vw,52px)/1.06 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}

html body.program-2027 .faq.faq h3{
 font:700 clamp(17px,1.35vw,21px)/1.35 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.005em;text-transform:none}

html body.program-2027 .investment.investment .inclusions-grid h3{
 font:800 clamp(18px,1.6vw,24px)/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.01em;text-transform:uppercase}
html body.program-2027 .investment.investment .investment-card h3{
 font:800 clamp(20px,1.8vw,26px)/1.15 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.01em;text-transform:uppercase}
html body.program-2027 .investment.investment .booking-price,
html body.program-2027 .investment.investment .booking-price span{
 font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;font-weight:800;letter-spacing:-.03em}
html body.program-2027 .investment.investment .booking-price{font-size:clamp(52px,5.6vw,84px);line-height:1}

html body.program-2027 .wim-records.wim-records .achievement-mark{
 font-family:Montserrat,'Helvetica Neue',Arial,sans-serif;font-weight:800;
 font-size:clamp(40px,4vw,60px);letter-spacing:-.03em;line-height:1}
html body.program-2027 .editorial-invite.editorial-invite>p{
 font:800 clamp(22px,2.2vw,32px)/1.15 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.015em;text-transform:uppercase;text-wrap:balance}

html body.program-2027 .apply-modal.apply-modal h3,
html body.program-2027 .apply-done.apply-done h4{
 font:800 clamp(24px,2.4vw,34px)/1.1 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.015em;text-transform:uppercase;text-wrap:balance}

@media(max-width:760px){
 html body.program-2027 :is(.faq,.apply,.island-story).editorial-section>h2,
 html body.program-2027 .faq.faq h2{font-size:clamp(26px,7.4vw,32px)}
 html body.program-2027 .investment.investment>h2{font-size:clamp(26px,7.4vw,32px)}
 html body.program-2027 .investment.investment .booking-price{font-size:56px}
 html body.program-2027 .wim-records.wim-records .achievement-mark{font-size:42px}
 html body.program-2027 .editorial-invite.editorial-invite>p{font-size:22px}
}

/* ── 36. Телефон: плотнее отступы между блоками ───────────────────────
   Между блоками было по 100–150 px пустоты: свой нижний отступ у одного
   блока плюс верхний у следующего. Теперь у каждого края около 40 px. */
@media(max-width:760px){
 html body.program-2027 .iceman-split.iceman-split{padding-bottom:40px}
 html body.program-2027 .iceman-spread.iceman-spread{padding-top:44px}
 html body.program-2027 .iceman-spread .wim-cover-copy{padding-bottom:28px}
 html body.program-2027 .experience.experience{padding-top:44px;padding-bottom:48px}
 html body.program-2027 .experience .experience-layout{margin-top:0}
}

/* ── 37. Частые вопросы: как у insiderexpeditions.com/wimhof ──────────
   Фотография на всю ширину, по центру тёмная полупрозрачная панель с
   лёгким размытием того, что под ней. В панели — заголовок крупно по
   центру, короткая черта, вопросы с «+», которые поворачиваются в «−».
   Одновременно открыт один ответ (name="faq" у <details>). */
html body.program-2027 .faq.faq{
 position:relative;max-width:none;overflow:hidden;background:#07151f;
 padding:clamp(72px,8vw,120px) 6%}
html body.program-2027 .faq-bg,
html body.program-2027 .faq-bg img{position:absolute;inset:0;width:100%;height:100%}
html body.program-2027 .faq-bg img{object-fit:cover;object-position:50% 40%}
html body.program-2027 .faq-panel{
 position:relative;z-index:1;width:min(920px,100%);margin:0 auto;box-sizing:border-box;
 padding:clamp(40px,4.4vw,64px) clamp(24px,4vw,56px);
 background:rgba(8,20,28,.72);
 -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px}
html body.program-2027 .faq.faq .faq-panel h2{
 margin:0;text-align:center;color:#fff}
html body.program-2027 .faq.faq .faq-panel h2:after{
 content:'';display:block;width:64px;height:2px;margin:24px auto 0;background:#5aa7c8}
html body.program-2027 .faq.faq .faq-list{margin-top:clamp(32px,3.4vw,44px);border-top:1px solid #ffffff26}
html body.program-2027 .faq.faq details{border-bottom:1px solid #ffffff26}
html body.program-2027 .faq.faq summary{padding:20px 0}
html body.program-2027 .faq.faq h3{color:#fff;font-size:clamp(15px,1.15vw,17px);font-weight:600}
html body.program-2027 .faq.faq .chapter-body,
html body.program-2027 .faq.faq .chapter-body p{color:#c7d6de}
/* у открытого вопроса без подложки; знак «+» меняется на «−» */
html body.program-2027 .faq.faq details,
html body.program-2027 .faq.faq details[open],
html body.program-2027 .faq.faq details[open] summary{background:none;box-shadow:none}
html body.program-2027 .faq.faq .chapter-toggle{
 color:#fff;border:0;background:none;font-size:0;transform:none!important;
 width:24px;height:24px;display:grid;place-items:center}
/* плюс нарисован двумя тонкими линиями (из прежних стилей); у
   открытого вопроса вертикальная прячется — остаётся «−» */
html body.program-2027 .faq.faq .chapter-toggle{position:relative}
html body.program-2027 .faq.faq .chapter-toggle:after{transition:opacity .2s}
html body.program-2027 .faq.faq details[open] .chapter-toggle:after{opacity:0}
html body.program-2027 .faq.faq .chapter-body{padding:0 0 22px}

@media(max-width:760px){
 html body.program-2027 .faq.faq{padding:44px 14px}
 html body.program-2027 .faq-panel{padding:36px 20px}
 html body.program-2027 .faq.faq summary{padding:18px 0}
}

/* ── 38. Карточки стоимости — без фото, в рамках как у Insider ───────
   Две карточки рядом, всё по центру, как карточка куратора у эталона.
   Основная — тёмная (тот же цвет, что «включено» ниже), заключительный
   набор — белая в тонкой рамке: пара повторяет пару «включено / не
   включено» под ней. Порядок: число мест мелко, название, черта, цена
   с подписью, кнопка; сколько мест осталось — ярлык на углу. */
html body.program-2027 .investment.investment>h2:after{
 content:'';display:block;width:64px;height:2px;margin:24px auto 0;background:#5aa7c8}
html body.program-2027 .price-list{
 display:grid;grid-template-columns:1fr 1fr;gap:24px;
 width:min(1000px,100%);margin:clamp(40px,4.4vw,64px) auto 0}
html body.program-2027 .price-card{
 display:grid;grid-template-rows:subgrid;grid-row:span 4;row-gap:0;border:1px solid #17303f26;border-radius:26px;background:#fff;color:#10242f}
html body.program-2027 .price-card-main{border-color:#07151f;background:#07151f;color:#fff}
/* Строки карточек общие (subgrid): число мест, название, цена и кнопка
   у обеих карточек стоят на одном уровне, даже если одно название
   в строку, а другое в две — тогда короткое прижимается к низу строки. */
html body.program-2027 .price-body{
 grid-row:1 / -1;display:grid;grid-template-rows:subgrid;row-gap:0;justify-items:center;align-content:start;text-align:center;
 padding:clamp(58px,5.2vw,72px) clamp(28px,3.4vw,48px) clamp(40px,4.4vw,60px)}
html body.program-2027 .price-sub{
 margin:0 0 14px;color:inherit;font:600 13px/1.3 Onest,Inter,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
html body.program-2027 .investment.investment .price-card h3{
 margin:0;color:inherit;
 font:800 clamp(22px,2.2vw,30px)/1.1 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance;align-self:end}
html body.program-2027 .investment.investment .price-card h3:after{
 content:'';display:block;width:40px;height:2px;margin:22px auto 0;background:#5aa7c8}
html body.program-2027 .price-sum{
 margin:28px 0 0;color:inherit;
 font:800 clamp(48px,5.2vw,72px)/1 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:-.03em}
html body.program-2027 .price-sum span{
 display:block;margin-top:14px;color:#7d919e;font:600 12px/1 Onest,Inter,Arial,sans-serif;
 letter-spacing:.14em;text-transform:uppercase}
html body.program-2027 .price-card-main .price-sum span{color:#9fb3c0}
/* кнопка белая, как на первом экране; ховер — светло-серый (блок 41) */
html body.program-2027 .investment .price-body .button.button{
 display:inline-flex;align-self:start;width:auto;margin:36px 0 0;gap:clamp(24px,3vw,44px);padding:18px 28px;
 border:0;border-radius:12px;background:#fff;color:#0d2233;white-space:nowrap;transition:background .3s,transform .3s}
html body.program-2027 .investment .price-body .button.button:hover{background:#e7eef2;transform:translateY(-2px)}
/* «Осталось N мест» — яркий скошенный ярлык, который сидит на правом
   верхнем углу карточки и чуть свешивается за её край. Плашка наклонена
   через skew, текст внутри выпрямлен обратно; точка слева пульсирует. */
html body.program-2027 .price-card{position:relative}
html body.program-2027 .price-status{
 position:absolute;z-index:1;top:-16px;right:clamp(16px,2.4vw,28px);margin:0;
 padding:11px 20px;transform:rotate(-3deg) skewX(-12deg);
 background:linear-gradient(100deg,#ff5f3a,#ff9a3c);color:#1a0d06;
 box-shadow:0 10px 24px #ff6a3d59;border-radius:4px}
html body.program-2027 .price-status span{
 display:inline-flex;align-items:center;gap:9px;transform:skewX(12deg);
 font:800 13px/1 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
html body.program-2027 .price-status span:before{
 content:'';width:8px;height:8px;border-radius:50%;background:#1a0d06;
 animation:status-pulse 1.6s ease-out infinite}
@keyframes status-pulse{
 0%{box-shadow:0 0 0 0 #1a0d0680}
 70%{box-shadow:0 0 0 7px #1a0d0600}
 100%{box-shadow:0 0 0 0 #1a0d0600}}
@media(prefers-reduced-motion:reduce){html body.program-2027 .price-status span:before{animation:none}}

@media(max-width:760px){
 html body.program-2027 .price-list{grid-template-columns:1fr;gap:16px}
 html body.program-2027 .price-card{border-radius:20px}
 html body.program-2027 .price-body{padding:54px 22px 36px}
 html body.program-2027 .investment .price-body .button.button{width:100%;justify-content:space-between}
 html body.program-2027 .price-status{top:-14px;right:16px;padding:10px 16px}
 html body.program-2027 .price-status span{font-size:12px}
}

/* ── 39. «Включено / не включено» — ключевое слово цветом ────────────
   На тёмной карточке — светло-голубой, на белой — акцентный синий. */
html body.program-2027 .investment .incl-mark{color:#6fb8d6;white-space:nowrap}
html body.program-2027 .investment .incl-mark-off{color:#2b8fbf}

/* ── 41. Белые кнопки: ховер без синей заливки ───────────────────────
   Общая анимация кнопок поднимает снизу заливку var(--btn-fill) —
   тёмно-синюю, а текст белой кнопки тёмный, и при наведении он тонул.
   Для белых кнопок заливка — светло-серая, текст остаётся тёмным. */
html body.program-2027 :is(.hero-poster .button,.investment .price-body .button.button){
 --btn-bg:#fff;--btn-fill:#e7eef2;--btn-hover-text:#0d2233;--btn-rim:transparent}
html body.program-2027 :is(.hero-poster .button,.investment .price-body .button.button):is(:hover,:focus-visible){
 color:#0d2233;box-shadow:none}

/* ── 42. Первый экран на планшете ─────────────────────────────────────
   На 761–1100px разнос WIM и HOF по краям колонки давал дыру в пол-экрана.
   Здесь слова стоят рядом с умеренным просветом, а «за пределами» —
   крупнее, чтобы не терялось между двумя большими строками. */
@media(min-width:761px) and (max-width:1100px){
 html body.program-2027 .poster-title .t-name{justify-content:center;gap:.6em}
 html body.program-2027 .poster-title .t-link{font-size:clamp(24px,3.1vw,32px)}
}

/* ── 43. Логотип в шапке тише, «за пределами» на телефоне как раньше ──
   «WIM HOF / PRIVATE PROGRAM» перетягивал внимание с заголовка: обе
   строки мельче, а вторая придвинута к первой. На телефоне связка
   «за пределами» возвращена к прежнему виду: мелко и строчными, она
   держит паузу между WIM HOF и ВОЗМОЖНОГО, а не спорит с ними. */
html body.program-2027 header .brand{font-size:21px;line-height:1.1}
html body.program-2027 header .brand span{margin-top:5px;font-size:9px}
@media(max-width:760px){
 html body.program-2027 header .brand{font-size:16px}
 html body.program-2027 header .brand span{margin-top:4px;font-size:7px}
 html body.program-2027 .poster-title .t-link{font-size:15px;text-transform:lowercase}
}

/* ── 44. Факты о программе — снова тёмный блок с видео реки ──────────
   Стиль прежнего «Впервые на Кипре»: тёмная сцена, видео на фоне.
   Заголовка у блока больше нет. В каждом пункте крупно стоит его
   название («Продолжительность», «Место проведения»…), а всё остальное —
   мелким текстом под ним. Фото только у последнего пункта — два
   небольших кадра рядом: ледяная ванна и поход в горы. */
html body.program-2027 .retreat-facts.retreat-facts{
 grid-template-columns:repeat(2,minmax(0,1fr));gap:0 6%;margin:0 0 40px}
html body.program-2027 .retreat-facts.retreat-facts>div{padding:28px 0}
/* <dt> раньше прятали — теперь он и есть заголовок пункта */
html body.program-2027 .retreat-facts.retreat-facts dt{
 position:static;width:auto;height:auto;margin:0 0 12px;overflow:visible;clip-path:none;white-space:normal;
 color:#fff;font:700 clamp(22px,2.1vw,30px)/1.15 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.01em;text-transform:none}
html body.program-2027 .retreat-facts.retreat-facts dd{
 max-width:52ch;color:#cfe0ea;font:400 15px/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-facts .retreat-fact-format{grid-column:1 / -1}
html body.program-2027 .retreat-duo{
 display:grid;grid-template-columns:repeat(2,minmax(0,260px));gap:12px;margin-top:22px}
html body.program-2027 .retreat-duo figure{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:#0c293b}
html body.program-2027 .retreat-duo img{display:block;width:100%;height:100%;object-fit:cover}
html body.program-2027 .retreat-note{
 max-width:60ch;margin:0 0 32px;color:#a9c2d0;font:400 13px/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-content .button.button{
 --btn-bg:#fff;--btn-fill:#e7eef2;--btn-hover-text:#0d2233;--btn-rim:transparent;
 width:max-content;background:#fff;color:#0d2233;border-radius:12px}

@media(max-width:760px){
 html body.program-2027 .retreat-facts.retreat-facts{grid-template-columns:1fr;margin-bottom:28px}
 html body.program-2027 .retreat-facts.retreat-facts>div{padding:24px 0}
 html body.program-2027 .retreat-facts.retreat-facts dt{font-size:22px;margin-bottom:10px}
 html body.program-2027 .retreat-facts.retreat-facts dd{font-size:14px}
 /* два кадра — рядом и небольшие, а не один под другим */
 html body.program-2027 .retreat-duo{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
 html body.program-2027 .retreat-content .button.button{width:100%;justify-content:space-between}
}

/* ── 45. Блок о Виме без второго фото, факты сразу под ним ────────────
   Фото на одной руке убрано: второй абзац стоит одной колонкой под
   первым, по той же левой линии, а сразу за ним — тёмный блок фактов.
   У фактов сверху нет ни полосы с видео на телефоне, ни черты над
   первым пунктом: видео лежит фоном под всем блоком. */
html body.program-2027 .iceman-split.iceman-split{display:block;min-height:0;border-top:0}
html body.program-2027 .iceman-split .iceman-copy{
 padding:clamp(48px,5vw,80px) clamp(40px,5vw,80px) clamp(64px,7vw,104px) max(6vw,calc((100vw - 1240px) / 2 + 6vw))}
html body.program-2027 .iceman-split .iceman-copy>p{max-width:62ch}
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2){border-top:0;padding-top:0}
@media(max-width:760px){
 html body.program-2027 .iceman-split.iceman-split{padding:40px 22px 56px}
 html body.program-2027 .iceman-split .iceman-copy{padding:0}
 html body.program-2027 .retreat-scene.retreat-scene{--band:0px}
 html body.program-2027 .retreat-scene .retreat-backdrop{inset:0;height:auto}
 html body.program-2027 .retreat-scene.retreat-scene:after{inset:0;height:auto;
  background:linear-gradient(180deg,#07151fe6,#0b2433ee)}
 html body.program-2027 .retreat-scene .retreat-content{padding-top:48px}
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(2){border-top:1px solid #d5e8f33d;padding-top:24px}
}
/* На десктопе оба абзаца — одной колонкой слева, друг под другом, а фото
   проруби справа на всю высоту. Обёртки полосы и второго абзаца
   растворяются (display:contents), и всё раскладывается одной сеткой
   секции; на телефоне порядок прежний: абзац, фото, абзац. */
@media(min-width:761px){
 html body.program-2027 .iceman-intro{
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;
  min-height:clamp(560px,46vw,720px);border-top:1px solid #17303f14}
 html body.program-2027 .iceman-intro .iceman-band,
 html body.program-2027 .iceman-intro .iceman-split.iceman-split{display:contents}
 html body.program-2027 .iceman-intro .iceman-band img{grid-column:2;grid-row:1 / 3;height:100%;min-height:100%}
 html body.program-2027 .iceman-intro .iceman-cap{grid-column:1;grid-row:1;align-self:end;padding-bottom:0}
 html body.program-2027 .iceman-intro .iceman-split .iceman-copy{
  grid-column:1;grid-row:2;align-self:start;
  padding:24px clamp(40px,5vw,80px) clamp(56px,6vw,96px) max(6vw,calc((100vw - 1240px) / 2 + 6vw))}
 html body.program-2027 .iceman-intro .iceman-copy>p{max-width:560px;font-size:clamp(16px,1.25vw,18px);line-height:1.7}
 html body.program-2027 .iceman-intro .iceman-card{max-width:560px}
}
/* Фото проруби — не до края экрана, а в колонке страницы со
   скруглёнными углами, как остальные фотографии. */
@media(min-width:761px){
 html body.program-2027 .iceman-intro{
  min-height:0;column-gap:clamp(32px,4vw,64px);
  padding:clamp(56px,6vw,96px) max(6vw,calc((100vw - 1240px) / 2 + 6vw)) clamp(56px,6vw,96px) 0;box-sizing:border-box}
 html body.program-2027 .iceman-intro .iceman-band img{
  align-self:center;height:auto;min-height:0;aspect-ratio:4/3;border-radius:14px}
 html body.program-2027 .iceman-intro .iceman-cap{padding-top:0;padding-right:0}
 html body.program-2027 .iceman-intro .iceman-split .iceman-copy{padding-right:0;padding-bottom:0}
}
/* Десктоп: у «Уникального формата» текст слева, а два кадра — справа,
   в той же колонке, что «Место проведения» и «Язык программы».
   Иначе правая половина под фактами стояла пустой. */
@media(min-width:761px){
 html body.program-2027 .retreat-facts .retreat-fact-format{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:inherit;
  grid-template-rows:auto 1fr;align-items:start}
 html body.program-2027 .retreat-facts .retreat-fact-format dt{grid-column:1;grid-row:1}
 html body.program-2027 .retreat-facts .retreat-fact-format dd{grid-column:1;grid-row:2}
 html body.program-2027 .retreat-fact-format .retreat-duo{
  grid-column:2;grid-row:1 / 3;align-self:center;margin:0;
  grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Фото проруби — ровно на высоту двух абзацев: оно не влияет на высоту
   строк сетки (contain:size), а растягивается по ним; текст на десктопе
   чуть мельче, чтобы колонка не выходила слишком длинной. */
@media(min-width:761px){
 html body.program-2027 .iceman-intro .iceman-band img{
  contain:size;align-self:stretch;height:auto;min-height:0;aspect-ratio:auto;object-fit:cover;object-position:50% 45%}
 html body.program-2027 .iceman-intro .iceman-cap{align-self:start}
 html body.program-2027 .iceman-intro .iceman-lead{margin-top:0}
 html body.program-2027 .iceman-intro .iceman-lead,
 html body.program-2027 .iceman-intro .iceman-copy>p{font-size:16px;line-height:1.7}
}
/* примечание и кнопка под фактами — по центру блока */
@media(min-width:761px){
 html body.program-2027 .retreat-content .retreat-note{margin-left:auto;margin-right:auto;text-align:center}
 html body.program-2027 .retreat-content .button.button{display:flex;margin-left:auto;margin-right:auto;align-self:center}
}

/* ── 46. Фраза на фото на телефоне — горизонтальный кадр ──────────────
   Вертикальный кадр занимал больше экрана. Теперь и на телефоне стоит
   широкий снимок лагуны, полоса 4:3: Вим справа, фраза внизу слева. */
@media(max-width:760px){
 html body.program-2027 .statement-stage{min-height:0;aspect-ratio:4/3}
 html body.program-2027 .statement-photo img{object-position:74% 40%}
 html body.program-2027 .statement-title{padding:0 18px 18px}
 html body.program-2027 .statement-title .q{font-size:15px}
 html body.program-2027 .statement-title .a{font-size:22px}
}
/* секции без подписи и заголовка начинаются сразу с абзаца */
html body.program-2027 .statement-copy>p:first-child{margin-top:0}

/* ── 47. «Достижения Вима…» и вопрос под ними — спокойнее ─────────────
   Заголовок мельче. Вопрос «Готовы бросить вызов…» — снова обычной
   фразой, как было раньше: строчными, средней жирности, без капса. */
html body.program-2027 .wim-cover-copy h2.iceman-title.iceman-title{font-size:clamp(24px,2.8vw,40px)}
html body.program-2027 .editorial-invite.editorial-invite>p{
 font:600 clamp(20px,1.9vw,28px)/1.3 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.01em;text-transform:none}
@media(max-width:760px){
 html body.program-2027 .wim-cover-copy h2.iceman-title.iceman-title{font-size:22px}
 html body.program-2027 .editorial-invite.editorial-invite>p{font-size:19px}
}
/* заголовок достижений — обычным регистром; на телефоне вопрос
   с кнопкой ближе к последнему пункту: лишние 54px сверху убраны */
html body.program-2027 .wim-cover-copy h2.iceman-title.iceman-title{text-transform:none}
@media(max-width:760px){
 html body.program-2027 .iceman-spread .editorial-invite.editorial-invite{margin-top:0}
}

/* ── 48. «Природа и движение»: выделен весь второй абзац ──────────────
   Плашка теперь охватывает и абзац про февраль, и оговорку про погоду. */
html body.program-2027 div.chapter-note>p{margin:0}
html body.program-2027 div.chapter-note>p+p{margin-top:12px}
html body.program-2027 div.chapter-note{margin:18px 0}

/* ── 49. Карточки цены: название, под ним число мест, без «за участника» ─
   Название тарифа прижато к низу своей строки (если в соседней
   карточке оно в две строки), под ним мелко — число мест и черта. */
html body.program-2027 .investment.investment .price-card h3{align-self:end}
html body.program-2027 .investment.investment .price-card h3:after{content:none}
html body.program-2027 .price-card .price-sub.price-sub{margin:12px 0 0}
html body.program-2027 .price-card .price-sub.price-sub:after{
 content:'';display:block;width:40px;height:2px;margin:22px auto 0;background:#5aa7c8}




/* ── 50. Финал — самая первая версия: две колонки на тёмном градиенте,
   заголовок засечками с курсивом, справа белая карточка с кнопкой.
   Под ролью куратора — ссылка на Telegram. */
html body.program-2027 .apply .curator .telegram-link{
 display:inline-block;margin-top:6px;color:#cfe3ee;font-size:13px;
 border-bottom:1px solid #cfe3ee66;padding-bottom:1px}
html body.program-2027 .apply .curator .telegram-link:hover{color:#fff;border-bottom-color:#fff}
/* заголовки финала — акцентным Montserrat вместо засечек, без капса;
   вторая строка вопроса выделена цветом, а не курсивом */
html body.program-2027 .apply h2.apply-q,
html body.program-2027 section.apply>div:first-child>h2{
 font:700 clamp(32px,3.6vw,52px)/1.1 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:none;color:#fff}
html body.program-2027 section.apply>div:first-child>h2 em{
 font:inherit;font-style:normal;color:#8fc3d8}
html body.program-2027 section.apply .application-box h3{
 font:700 clamp(26px,2.6vw,38px)/1.15 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:none;color:#142b4e}
@media(max-width:760px){
 html body.program-2027 section.apply>div:first-child>h2{font-size:30px}
 html body.program-2027 section.apply .application-box h3{font-size:26px}
}
/* фраза на фото на телефоне — у левого края, по вертикали в середине кадра;
   цвета как на десктопе (тёмные по светлому небу), без затемнения */
@media(max-width:760px){
 html body.program-2027 .statement-title.statement-title{justify-self:start;align-self:center;text-align:left;padding:0 18px}
 html body.program-2027 .statement-veil.statement-veil{display:none}
 html body.program-2027 .statement-stage.statement-stage{aspect-ratio:16/10}
 html body.program-2027 .statement-title.statement-title .q{color:#4a6373}
 html body.program-2027 .statement-title.statement-title .a{color:#10242f}
}

/* ── 51. FAQ: видео отеля в ответе «Где будет проходить программа?» ─── */
html body.program-2027 .faq .faq-media{margin:18px 0 4px;border-radius:12px;overflow:hidden;background:#0b1a22;aspect-ratio:1920/1012}
html body.program-2027 .faq .faq-media video{display:block;width:100%;height:100%;object-fit:cover}
html body.program-2027 .faq.faq .chapter-body p+p{margin-top:12px}

/* ── 52. Факты: подпись мелко, главное крупно, пояснение под ним ──────
   Как было в светлом варианте: «Продолжительность» — мелкой подписью
   заглавными, «3 дня», отель, «≈ 50», «Английский» и «Два формата в
   одной программе» — крупно, ниже пояснение. Видео под текстом
   притушено сильнее, чтобы буквы не рябили на его фактуре. */
html body.program-2027 .retreat-facts.retreat-facts dt{
 margin:0 0 14px;color:#9fc2d4;
 font:600 12px/1.3 Onest,Inter,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
html body.program-2027 .retreat-facts.retreat-facts .fact-mark{
 display:block;margin:0 0 12px;color:#fff;
 font:800 clamp(28px,2.6vw,38px)/1.08 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:none}
html body.program-2027 .retreat-facts.retreat-facts dd{color:#dbe7ee;font-size:15px;line-height:1.65}
html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#07151ff2,#0a1f2cf0)}
@media(max-width:760px){
 html body.program-2027 .retreat-facts.retreat-facts dt{font-size:11px;margin-bottom:10px}
 html body.program-2027 .retreat-facts.retreat-facts .fact-mark{font-size:28px;margin-bottom:10px}
 html body.program-2027 .retreat-facts.retreat-facts dd{font-size:15px}
 html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#07151ff2,#0a1f2cf0)}
}

/* ── 53. Факты без подписей, «Уникальный формат» — отдельной панелью ──
   У «3 дня», отеля и «≈ 50» мелкой подписи сверху больше нет (<dt>
   остаётся для скринридера). «Язык программы» — крупно, подпись под ним.
   Формат вынесен из списка в полупрозрачную панель: подпись, заголовок,
   одна вводная строка и две карточки — фото и под ним короткий текст. */
html body.program-2027 .retreat-facts.retreat-facts dt{
 position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
html body.program-2027 .retreat-format{
 margin:8px 0 40px;padding:clamp(26px,3vw,40px);border-radius:16px;
 background:#ffffff0f;border:1px solid #ffffff1f}
html body.program-2027 .retreat-format-kicker{
 margin:0 0 12px;color:#9fc2d4;font:600 12px/1.3 Onest,Inter,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase}
html body.program-2027 .retreat-format h3{
 margin:0;color:#fff;font:800 clamp(26px,2.6vw,38px)/1.08 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:-.02em}
html body.program-2027 .retreat-format-intro{margin:14px 0 0;color:#dbe7ee;font:400 16px/1.6 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-format-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
html body.program-2027 .retreat-format-card{margin:0}
html body.program-2027 .retreat-format-card picture{display:block}
html body.program-2027 .retreat-format-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:12px}
html body.program-2027 .retreat-format-card figcaption{margin-top:14px;color:#cfdde6;font:400 15px/1.55 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-format-card figcaption b{
 display:block;margin-bottom:6px;color:#fff;font:700 19px/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif}
@media(max-width:760px){
 html body.program-2027 .retreat-format{margin:4px -6px 32px;padding:22px 18px}
 html body.program-2027 .retreat-format h3{font-size:24px}
 html body.program-2027 .retreat-format-intro{font-size:15px}
 /* фото небольшие и рядом, как просили, подписи под каждым */
 html body.program-2027 .retreat-format-cards{grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
 html body.program-2027 .retreat-format-card figcaption{margin-top:10px;font-size:13px;line-height:1.5}
 html body.program-2027 .retreat-format-card figcaption b{font-size:16px;margin-bottom:4px}
}
/* на десктопе панель формата — текст слева, две небольшие карточки справа */
@media(min-width:761px){
 html body.program-2027 .retreat-format{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-rows:auto auto 1fr;column-gap:clamp(28px,4vw,56px);align-items:start}
 html body.program-2027 .retreat-format>:not(.retreat-format-cards){grid-column:1}
 html body.program-2027 .retreat-format-cards{grid-column:2;grid-row:1 / span 3;margin-top:0}
}
/* факты: между крупным значением и пояснением — 24px */
html body.program-2027 .retreat-facts.retreat-facts .fact-mark{margin-bottom:24px}
/* формат: полный абзац текста и два фото рядом, без подписей */
html body.program-2027 .retreat-format-cards.retreat-format-cards{grid-template-columns:1fr 1fr;gap:12px}
@media(min-width:761px){
 html body.program-2027 .retreat-format.retreat-format{align-items:center}
 html body.program-2027 .retreat-format-cards.retreat-format-cards{align-self:center}
}

/* ── 55. Факты — «ледяное стекло» поверх живого видео ─────────────────
   Видео реки снова хорошо видно и подкрашено в холодный синий: сверху
   светлее, книзу темнее, по краям виньетка. Читаемость дают не чёрный
   фон, а сами пункты — каждый на матовой полупрозрачной плитке с
   размытием, как лёд. Линии-разделители больше не нужны. */
html body.program-2027 .retreat-scene.retreat-scene:after{
 background:
  radial-gradient(ellipse 90% 70% at 50% 0%,#0b3a5226 0%,transparent 70%),
  linear-gradient(180deg,#05182499 0%,#061a26b3 45%,#040f17e6 100%)}
html body.program-2027 .retreat-scene .retreat-backdrop video{filter:saturate(.8) hue-rotate(-8deg) brightness(.95)}
html body.program-2027 .retreat-facts.retreat-facts{gap:16px}
html body.program-2027 .retreat-facts.retreat-facts>div,
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2){
 padding:26px 26px 28px;border:1px solid #ffffff24;border-radius:18px;
 background:linear-gradient(160deg,#ffffff1a,#ffffff08);
 -webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);
 box-shadow:inset 0 1px 0 #ffffff1f}
html body.program-2027 .retreat-format.retreat-format{
 border:1px solid #ffffff24;border-radius:18px;
 background:linear-gradient(160deg,#ffffff1a,#ffffff08);
 -webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);
 box-shadow:inset 0 1px 0 #ffffff1f;margin-top:16px}
@media(max-width:760px){
 html body.program-2027 .retreat-scene.retreat-scene:after{
  background:linear-gradient(180deg,#05182499 0%,#061a26b3 45%,#040f17e6 100%)}
 html body.program-2027 .retreat-facts.retreat-facts{gap:12px;margin-bottom:0}
 html body.program-2027 .retreat-facts.retreat-facts>div,
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2),
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(2){padding:22px 20px 24px;border-top:1px solid #ffffff24}
 html body.program-2027 .retreat-format.retreat-format{margin:12px 0 32px}
}
/* стекло и фон фактов — темнее */
html body.program-2027 .retreat-scene.retreat-scene:after{
 background:radial-gradient(ellipse 90% 70% at 50% 0%,#0b3a521f 0%,transparent 70%),linear-gradient(180deg,#040f17cc 0%,#05131ddb 45%,#030b11f0 100%)}
html body.program-2027 .retreat-facts.retreat-facts>div,
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2),
html body.program-2027 .retreat-format.retreat-format{
 background:linear-gradient(160deg,#0a1c2899,#05111a8c);border-color:#ffffff1c}
@media(max-width:760px){
 html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#040f17cc 0%,#05131ddb 45%,#030b11f0 100%)}
}
/* без плиток: снова разделители, пункты плотнее; тёмный фон остаётся */
html body.program-2027 .retreat-facts.retreat-facts{gap:0 6%}
html body.program-2027 .retreat-facts.retreat-facts>div,
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2),
html body.program-2027 .retreat-format.retreat-format{
 background:none;border:0;border-radius:0;box-shadow:none;
 -webkit-backdrop-filter:none;backdrop-filter:none}
html body.program-2027 .retreat-facts.retreat-facts>div{padding:22px 0;border-top:1px solid #ffffff21}
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(-n+2){padding-top:0;border-top:0}
html body.program-2027 .retreat-format.retreat-format{margin:0 0 36px;padding:22px 0 0;border-top:1px solid #ffffff21}
@media(max-width:760px){
 html body.program-2027 .retreat-facts.retreat-facts>div,
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(2){padding:20px 0;border-top:1px solid #ffffff21}
 html body.program-2027 .retreat-facts.retreat-facts>div:first-child{padding-top:0;border-top:0}
 html body.program-2027 .retreat-format.retreat-format{margin:0 0 28px;padding:20px 0 0}
}
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(n){padding-left:0;padding-right:0}
/* фон фактов ещё чуть темнее */
html body.program-2027 .retreat-scene.retreat-scene:after{
 background:radial-gradient(ellipse 90% 70% at 50% 0%,#0b3a5214 0%,transparent 70%),linear-gradient(180deg,#030c13e0 0%,#04101ae8 45%,#020a10f5 100%)}
@media(max-width:760px){
 html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#030c13e0 0%,#04101ae8 45%,#020a10f5 100%)}
}
html body.program-2027 .retreat-scene.retreat-scene:after{
 background:radial-gradient(ellipse 90% 70% at 50% 0%,#0b3a520f 0%,transparent 70%),linear-gradient(180deg,#020a10eb 0%,#030e16f0 45%,#02080df7 100%)}
@media(max-width:760px){
 html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#020a10eb 0%,#030e16f0 45%,#02080df7 100%)}
}
/* итоговое затемнение фактов — между двумя последними вариантами */
html body.program-2027 .retreat-scene.retreat-scene:after{
 background:radial-gradient(ellipse 90% 70% at 50% 0%,#0b3a5212 0%,transparent 70%),linear-gradient(180deg,#030b12e6 0%,#040f18ec 45%,#02090ff6 100%)}
@media(max-width:760px){
 html body.program-2027 .retreat-scene.retreat-scene:after{background:linear-gradient(180deg,#030b12e6 0%,#040f18ec 45%,#02090ff6 100%)}
}
/* абзац о Виме теперь один: фото снова в пропорции 3:2, текст по центру
   его высоты — иначе кадр сжимался в узкую полосу под высоту абзаца */
@media(min-width:761px){
 html body.program-2027 .iceman-intro .iceman-band img{contain:none;align-self:center;aspect-ratio:3/2;height:auto}
 html body.program-2027 .iceman-intro .iceman-cap{align-self:center}
}

/* ── 56. Шапка с якорями: выезжает сверху при прокрутке ───────────────
   Наверху страницы шапка лежит на первом экране, как раньше. Стоит
   уйти ниже — она закрепляется у верхнего края на тёмной матовой
   подложке и плавно выезжает сверху. Ссылки «Главная / Программа /
   Стоимость» есть и на телефоне. Переход к блоку — плавной прокруткой
   с запасом под высоту шапки. */
html{scroll-behavior:smooth;scroll-padding-top:84px}
html body.program-2027 header.is-fixed{
 position:fixed;left:0;right:0;top:0;z-index:40;height:72px;padding-top:0;padding-bottom:0;
 background:#07151fd9;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);
 box-shadow:0 1px 0 #ffffff14,0 10px 30px #0000004d;
 animation:header-in .45s cubic-bezier(.2,.7,.2,1) both}
html body.program-2027 header.is-fixed .brand{font-size:17px}
html body.program-2027 header.is-fixed .brand span{font-size:8px;margin-top:4px}
@keyframes header-in{from{transform:translateY(-100%);opacity:0}to{transform:none;opacity:1}}
html body.program-2027 header nav a{position:relative;transition:color .25s}
html body.program-2027 header nav a:after{
 content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;background:currentColor;
 transform:scaleX(0);transform-origin:left;transition:transform .3s}
html body.program-2027 header nav a:hover:after,
html body.program-2027 header nav a:focus-visible:after{transform:scaleX(1)}
@media(max-width:760px){
 html body.program-2027 header nav{display:flex;gap:16px;font-size:13px}
 html body.program-2027 header nav a{color:#eaf3fa}
 /* наверху страницы: ссылки — второй строкой под логотипом */
 html body.program-2027 header:not(.is-fixed){flex-wrap:wrap;height:auto;row-gap:14px}
 html body.program-2027 header:not(.is-fixed) nav{order:3;width:100%}
 /* закреплённая шапка: логотип и ссылки в одну строку, язык прячется */
 html body.program-2027 header.is-fixed{height:58px;padding-left:16px;padding-right:16px}
 html body.program-2027 header.is-fixed .lang-switch{display:none}
 html body.program-2027 header.is-fixed .brand{font-size:14px}
 html body.program-2027 header.is-fixed .brand span{font-size:6.5px}
 html body.program-2027 header.is-fixed nav{gap:14px;font-size:12.5px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 html body.program-2027 header.is-fixed{animation:none}
}
/* абзац о Виме — по центру высоты фото: фото и текст в одной строке сетки */
@media(min-width:761px){
 html body.program-2027 .iceman-intro{grid-template-rows:auto}
 html body.program-2027 .iceman-intro .iceman-band img{grid-row:1}
 html body.program-2027 .iceman-intro .iceman-cap{grid-row:1;align-self:center}
}

/* ── 57. Финал одной колонкой по центру ──────────────────────────────
   Вопрос, сразу под ним карточка с кнопкой «Подать заявку», ниже —
   крупнее и по центру просьба писать куратору, под ней фото Натали,
   имя, роль и заметная кнопка «Написать в Telegram». */
html body.program-2027 section.apply.apply-final{display:block;text-align:center}
html body.program-2027 .apply-final .apply-stack{max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
html body.program-2027 .apply-final .application-box{width:100%;margin-top:clamp(28px,3vw,40px);min-height:0;text-align:left}
html body.program-2027 .apply-final .muted{max-width:40ch;margin:clamp(40px,4.4vw,56px) auto 0;font-size:clamp(17px,1.4vw,19px);line-height:1.6;text-align:center}
html body.program-2027 .apply-final .curator{flex-direction:column;align-items:center;gap:12px;margin-top:28px;text-align:center}
html body.program-2027 .apply-final .curator img{width:96px;height:96px}
html body.program-2027 .apply-final .curator>div{display:flex;flex-direction:column;align-items:center;font-size:18px;font-weight:600;color:#fff}
html body.program-2027 .apply-final .curator small{margin-top:4px;font-size:13px;letter-spacing:.06em;color:#bcd0dc}
html body.program-2027 .apply-final .curator .telegram-link{
 display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:14px 24px;border:1px solid #ffffff59;border-radius:12px;
 color:#fff;font:600 16px/1.2 Onest,Inter,Arial,sans-serif;border-bottom-color:#ffffff59;transition:background .25s,border-color .25s}
html body.program-2027 .apply-final .curator .telegram-link:hover{background:#ffffff14;border-color:#fff}
@media(max-width:760px){
 html body.program-2027 .apply-final .muted{font-size:16px}
 html body.program-2027 .apply-final .curator .telegram-link{width:100%;justify-content:center}
}

/* форма заявки: строка «Все поля обязательны» */
html body.program-2027 .apply-form .form-required{margin:0;color:#5b7383;font:400 13px/1.4 Onest,Inter,Arial,sans-serif}
html body.program-2027 .apply-form .form-required{margin-top:-10px}
/* финал: вместо белой карточки — одна белая кнопка сразу под вопросом */
html body.program-2027 .apply-final .apply-final-btn.button.button{
 display:inline-flex;width:auto;min-height:0;margin:clamp(28px,3vw,40px) auto 0;gap:clamp(24px,3vw,44px);padding:18px 28px;
 border:0;border-radius:12px;background:#fff;color:#0d2233;
 --btn-bg:#fff;--btn-fill:#e7eef2;--btn-hover-text:#0d2233;--btn-rim:transparent;box-shadow:none}
html body.program-2027 .apply-final .apply-final-btn.button.button:is(:hover,:focus-visible){color:#0d2233;box-shadow:none}
@media(max-width:760px){
 html body.program-2027 .apply-final .apply-final-btn.button.button{width:100%;justify-content:space-between}
}
/* кнопка финала шире: на десктопе 360px, надпись слева, стрелка справа */
@media(min-width:761px){
 html body.program-2027 .apply-final .apply-final-btn.button.button{width:min(360px,100%);justify-content:space-between}
}
/* финал: от вопроса до кнопки — 28px */
html body.program-2027 .apply-final .apply-stack>h2{margin-bottom:0}
html body.program-2027 .apply-final .apply-final-btn.button.button{margin-top:28px}

/* ── 58. Меню на телефоне — «три полоски» ─────────────────────────────
   Шапка на телефоне снова как была: логотип слева, RU/EN справа. Рядом
   с языком — кнопка-бургер; по нажатию под шапкой выезжает панель со
   ссылками «Программа / Стоимость / Вопросы». В закреплённой шапке
   то же самое: логотип и бургер. На десктопе бургера нет. */
html body.program-2027 .nav-toggle{display:none}
@media(max-width:760px){
 html body.program-2027 header,
 html body.program-2027 header:not(.is-fixed){display:flex;flex-wrap:nowrap;align-items:center;justify-content:space-between;height:auto;row-gap:0}
 html body.program-2027 header .lang-switch{margin-left:auto}
 html body.program-2027 .nav-toggle{
  display:inline-grid;align-content:center;gap:5px;width:40px;height:40px;margin-left:16px;padding:0 9px;
  border:1px solid #ffffff40;border-radius:10px;background:#07151f40;cursor:pointer}
 html body.program-2027 .nav-toggle span{display:block;height:1.5px;background:#fff;border-radius:2px;transition:transform .3s,opacity .2s}
 html body.program-2027 header.menu-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
 html body.program-2027 header.menu-open .nav-toggle span:nth-child(2){opacity:0}
 html body.program-2027 header.menu-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
 html body.program-2027 header nav,
 html body.program-2027 header:not(.is-fixed) nav{
  position:absolute;left:12px;right:12px;top:calc(100% + 4px);order:0;width:auto;
  display:flex;flex-direction:column;gap:0;padding:8px 20px;border-radius:14px;
  background:#07151ff2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 40px #00000059;
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s,transform .25s,visibility 0s .25s}
 html body.program-2027 header.menu-open nav{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .25s}
 html body.program-2027 header nav a{padding:15px 0;font-size:17px;color:#fff;border-bottom:1px solid #ffffff1a}
 html body.program-2027 header nav a:last-child{border-bottom:0}
 html body.program-2027 header nav a:after{content:none}
 html body.program-2027 header.is-fixed .lang-switch{display:none}
 html body.program-2027 header.is-fixed .nav-toggle{margin-left:auto;width:36px;height:36px}
}

/* ── 59. Факты «в одну линию» с иконками, формат по центру ────────────
   По мотивам присланной картинки, но в стиле сайта — один Montserrat,
   без смеси шрифтов. Четыре факта стоят в ряд: тонкая иконка, крупное
   значение, короткая подпись; между колонками — тонкие вертикальные
   линии. Ниже «Уникальный формат» — заголовок по центру между двумя
   линиями, абзац по центру и два фото рядом. На телефоне факты идут
   столбиком по центру, разделённые горизонтальными линиями. */
html body.program-2027 .retreat-facts.retreat-facts{
 display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0 0 clamp(48px,5vw,72px);text-align:center}
html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(n){
 display:flex;flex-direction:column;align-items:center;padding:4px clamp(14px,2vw,30px) 0;border:0;border-left:1px solid #ffffff21}
html body.program-2027 .retreat-facts.retreat-facts>div:first-child{border-left:0}
html body.program-2027 .retreat-facts .fact-icon{display:block;width:44px;height:44px;margin-bottom:18px;color:#8fc3d8}
html body.program-2027 .retreat-facts .fact-icon svg{width:100%;height:100%}
html body.program-2027 .retreat-facts.retreat-facts dd{display:flex;flex-direction:column;align-items:center;max-width:28ch;font-size:14px;line-height:1.6;color:#cfdde6}
html body.program-2027 .retreat-facts.retreat-facts .fact-mark{margin:0 0 14px;font-size:clamp(22px,2vw,28px);line-height:1.15;text-wrap:balance}

html body.program-2027 .retreat-format.retreat-format{
 display:block;max-width:820px;margin:0 auto 40px;padding:0;border:0;text-align:center}
html body.program-2027 .retreat-format-title{
 display:flex;align-items:center;gap:20px;margin:0 0 20px;color:#8fc3d8;
 font:800 clamp(20px,2vw,26px)/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
html body.program-2027 .retreat-format-title:before,
html body.program-2027 .retreat-format-title:after{content:'';flex:1;height:1px;background:#ffffff2e}
html body.program-2027 .retreat-format .retreat-format-intro{max-width:58ch;margin:0 auto;color:#dbe7ee;font-size:16px;line-height:1.7}
html body.program-2027 .retreat-format .retreat-format-cards.retreat-format-cards{
 grid-template-columns:1fr 1fr;gap:14px;max-width:640px;margin:28px auto 0}

@media(min-width:761px) and (max-width:1000px){
 html body.program-2027 .retreat-facts.retreat-facts{grid-template-columns:1fr 1fr;row-gap:36px}
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(3){border-left:0}
}
@media(max-width:760px){
 html body.program-2027 .retreat-facts.retreat-facts{grid-template-columns:1fr;margin-bottom:40px}
 html body.program-2027 .retreat-facts.retreat-facts>div:nth-child(n){padding:26px 0;border-left:0;border-top:1px solid #ffffff21}
 html body.program-2027 .retreat-facts.retreat-facts>div:first-child{padding-top:0;border-top:0}
 html body.program-2027 .retreat-facts .fact-icon{width:38px;height:38px;margin-bottom:14px}
 html body.program-2027 .retreat-facts.retreat-facts .fact-mark{font-size:24px;margin-bottom:10px}
 html body.program-2027 .retreat-format-title{gap:14px;font-size:18px}
 html body.program-2027 .retreat-format .retreat-format-intro{font-size:15px}
 html body.program-2027 .retreat-format .retreat-format-cards.retreat-format-cards{gap:10px;margin-top:22px}
}
/* заголовок «Уникальный формат» — акцентным голубым, не крупным белым */
html body.program-2027 .retreat-format h3.retreat-format-title{
 color:#8fc3d8;font:800 clamp(20px,2vw,26px)/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0 0 20px}
@media(max-width:760px){html body.program-2027 .retreat-format h3.retreat-format-title{font-size:18px}}
/* стык «наставник» → «Достижения»: белый отступ снизу такой же, как
   внутренний отступ тёмного блока сверху, и оба меньше прежнего */
html body.program-2027 .statement .statement-sections{padding-bottom:clamp(48px,6vw,88px)}
html body.program-2027 .iceman-spread.iceman-spread{padding-top:clamp(48px,6vw,88px)}

/* ── 60. «3 дня с Вимом Хофом» — тёмный блок по схеме Натальи ─────────
   Сверху по центру крупно «3 дня с Вимом Хофом», под ним мелко даты в
   скобках. Ниже — «Что вас ждёт» между двумя линиями и четыре колонки:
   иконка, название, одна строка текста. Под ними мелко — язык. Затем
   «Уникальный формат» тем же приёмом с линиями, абзац и одно фото,
   которое плавно сменяется вторым. Под фото — две строки со звёздочкой
   и кнопка. Один шрифт — Montserrat, акцент — светло-голубой. */
html body.program-2027 .retreat-content{text-align:center}
html body.program-2027 .retreat-head{max-width:880px;margin:0 auto}
html body.program-2027 .retreat-title{
 margin:0;color:#fff;font:800 clamp(30px,4vw,56px)/1.06 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;text-wrap:balance}
html body.program-2027 .retreat-title em{font-style:normal;color:#8fc3d8}
html body.program-2027 .retreat-dates{margin:16px 0 0;color:#b9ccd8;font:400 15px/1.5 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-content h3.retreat-rule{
 display:flex;align-items:center;gap:20px;max-width:880px;margin:clamp(48px,5vw,72px) auto 0;color:#fff;
 font:700 clamp(15px,1.3vw,18px)/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase}
html body.program-2027 .retreat-content h3.retreat-rule:before,
html body.program-2027 .retreat-content h3.retreat-rule:after{content:'';flex:1;height:1px;background:#ffffff2e}
html body.program-2027 .retreat-wait{
 list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1080px;margin:clamp(32px,3.4vw,44px) auto 0;padding:0}
html body.program-2027 .retreat-wait li{display:flex;flex-direction:column;align-items:center;padding:0 clamp(14px,2vw,28px);border-left:1px solid #ffffff21}
html body.program-2027 .retreat-wait li:first-child{border-left:0}
html body.program-2027 .wait-icon{display:block;width:46px;height:46px;margin-bottom:18px;color:#8fc3d8}
html body.program-2027 .wait-icon svg{width:100%;height:100%}
html body.program-2027 .retreat-wait h4{
 margin:0 0 10px;color:#fff;font:800 clamp(16px,1.35vw,19px)/1.2 Montserrat,'Helvetica Neue',Arial,sans-serif;letter-spacing:.04em;text-transform:uppercase;text-wrap:balance}
html body.program-2027 .retreat-wait p{margin:0;max-width:24ch;color:#cfdde6;font:400 14px/1.6 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-lang{margin:clamp(32px,3.4vw,44px) auto 0;color:#b9ccd8;font:400 14px/1.6 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-content .retreat-format.retreat-format{max-width:760px;margin:0 auto;padding:0;border:0;background:none;text-align:center}
html body.program-2027 .retreat-format .retreat-format-intro{max-width:60ch;margin:20px auto 0;color:#dbe7ee;font:400 15px/1.7 Onest,Inter,Arial,sans-serif}
/* одно фото, которое плавно сменяется вторым */
html body.program-2027 .retreat-slides{position:relative;max-width:640px;margin:28px auto 0;aspect-ratio:3/2;border-radius:14px;overflow:hidden;background:#0c1c26}
html body.program-2027 .retreat-slide{position:absolute;inset:0;margin:0;animation:retreat-swap 10s infinite}
html body.program-2027 .retreat-slide+.retreat-slide{animation-delay:-5s}
html body.program-2027 .retreat-slide img{display:block;width:100%;height:100%;object-fit:cover}
@keyframes retreat-swap{0%,42%{opacity:1}50%,92%{opacity:0}100%{opacity:1}}
html body.program-2027 .retreat-notes-list{list-style:none;margin:20px auto 0;padding:0;color:#b9ccd8;font:400 14px/1.7 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-notes-list li:before{content:'* '}
html body.program-2027 .retreat-content>.button.button{margin:32px auto 0}
@media(prefers-reduced-motion:reduce){
 html body.program-2027 .retreat-slide{animation:none}
 html body.program-2027 .retreat-slide+.retreat-slide{display:none}
}
@media(min-width:761px) and (max-width:1000px){
 html body.program-2027 .retreat-wait{grid-template-columns:1fr 1fr;row-gap:36px}
 html body.program-2027 .retreat-wait li:nth-child(3){border-left:0}
}
@media(max-width:760px){
 html body.program-2027 .retreat-title{font-size:30px}
 html body.program-2027 .retreat-dates{font-size:14px}
 html body.program-2027 .retreat-content h3.retreat-rule{gap:14px;margin-top:44px;font-size:14px}
 /* на телефоне — две колонки по две, иконка над названием */
 html body.program-2027 .retreat-wait{grid-template-columns:1fr 1fr;row-gap:30px;margin-top:28px}
 html body.program-2027 .retreat-wait li{padding:0 10px}
 html body.program-2027 .retreat-wait li:nth-child(3){border-left:0}
 html body.program-2027 .wait-icon{width:40px;height:40px;margin-bottom:12px}
 html body.program-2027 .retreat-wait h4{font-size:14px}
 html body.program-2027 .retreat-wait p{font-size:13px}
 html body.program-2027 .retreat-slides{margin-top:22px}
 html body.program-2027 .retreat-content>.button.button{width:100%;justify-content:space-between;margin-top:28px}
}
/* старое правило «.retreat-content h2» давало засечки — перебиваем */
html body.program-2027 .retreat-content h2.retreat-title{
 margin:0;color:#fff;font:800 clamp(30px,4vw,56px)/1.06 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;max-width:none}
html body.program-2027 .retreat-content h2.retreat-title em{font-style:normal;font-family:inherit;color:#8fc3d8}
@media(max-width:760px){html body.program-2027 .retreat-content h2.retreat-title{font-size:30px}}
/* десктоп: два фото формата рядом, без смены; на телефоне — по-прежнему
   одно крупное фото, которое сменяется вторым */
@media(min-width:761px){
 html body.program-2027 .retreat-slides{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:880px;aspect-ratio:auto;overflow:visible;background:none;border-radius:0}
 html body.program-2027 .retreat-slide,
 html body.program-2027 .retreat-slide+.retreat-slide{position:static;animation:none;opacity:1;display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/3}
}
/* десктоп: «Уникальный формат» на ту же ширину, что «Что вас ждёт» —
   1080px: линии заголовков и пара фото */
@media(min-width:761px){
 html body.program-2027 .retreat-content h3.retreat-rule{max-width:1080px}
 html body.program-2027 .retreat-content .retreat-format.retreat-format{max-width:1080px}
 html body.program-2027 .retreat-slides{max-width:1080px;gap:16px}
}
/* абзац формата — тоже на всю ширину 1080px */
@media(min-width:761px){
 html body.program-2027 .retreat-format .retreat-format-intro{max-width:1080px}
}
/* телефон: абзац о Виме ближе к первому экрану */
@media(max-width:760px){
 html body.program-2027 .iceman-intro .iceman-card{padding-top:36px}
 html body.program-2027 .iceman-intro .iceman-lead{margin-top:0}
}

/* ── 61. Правки Натальи по блоку «3 дня с Вимом Хофом» ───────────────
   Язык — выделенные слова жирным белым. Абзац «Редкая возможность…» —
   тем же шрифтом и размером, но заглавными. Фото на телефоне меняются
   чаще. Примечания — курсивом, по левому краю. На телефоне тёмный блок
   отделён от фото Вима белой полосой и скруглён сверху. */
html body.program-2027 .retreat-lang b{color:#fff;font-weight:700}
html body.program-2027 .retreat-format .retreat-format-intro.retreat-format-intro{text-transform:uppercase;letter-spacing:0;color:#b9ccd8;font:400 14px/1.6 Onest,Inter,Arial,sans-serif}
html body.program-2027 .retreat-slide{animation-duration:6s}
html body.program-2027 .retreat-slide+.retreat-slide{animation-delay:-3s}
html body.program-2027 .retreat-notes-list{
 width:fit-content;max-width:100%;margin-left:auto;margin-right:auto;text-align:left;font-style:italic}
@media(max-width:760px){
 html body.program-2027 .iceman-intro{padding-bottom:28px}
 html body.program-2027 .retreat-section,
 html body.program-2027 .retreat-scene.retreat-scene{border-radius:24px 24px 0 0;overflow:hidden}
 html body.program-2027 .retreat-notes-list{margin-left:0;margin-right:0}
}
/* телефон: тёмный блок скруглён и снизу, под ним такая же белая полоса */
@media(max-width:760px){
 html body.program-2027 .retreat-section,
 html body.program-2027 .retreat-scene.retreat-scene{border-radius:24px}
 html body.program-2027 .retreat-section{margin-bottom:28px}
}
/* перед «Достижениями» был лишний внешний отступ 74px — убран; белое
   поле остаётся только от нижнего отступа блока наставника */
html body.program-2027 .iceman-spread.iceman-spread{margin-top:0}
/* примечания со звёздочкой: на десктопе по центру, на телефоне слева */
@media(min-width:761px){
 html body.program-2027 .retreat-notes-list.retreat-notes-list{width:auto;margin-left:auto;margin-right:auto;text-align:center}
}
@media(max-width:760px){
 html body.program-2027 .retreat-notes-list.retreat-notes-list{width:auto;margin-left:0;margin-right:0;text-align:left}
}
@media(max-width:760px){html body.program-2027 .statement .statement-sections.statement-sections{padding-bottom:44px}}
/* десктоп: блок «3 дня с Вимом Хофом» тоже карточкой — скруглён сверху
   и снизу, с белыми полями по бокам и над/под ним */
@media(min-width:761px){
 html body.program-2027 .retreat-section.retreat-section{
  margin:0 clamp(16px,2vw,32px) clamp(16px,2vw,32px);border-radius:28px;overflow:hidden;background:none}
 html body.program-2027 .retreat-section .retreat-scene.retreat-scene{border-radius:28px;overflow:hidden}
}

/* абзац о Виме-наставнике идёт под текстом «Метода» рядом с фото;
   на телефоне — как раньше: текст, фото, затем этот абзац */
html body.program-2027 .statement-copy p.statement-later{margin-top:22px}
@media(max-width:760px){
 html body.program-2027 .statement-sec:has(.statement-later){gap:0}
 html body.program-2027 .statement-sec:has(.statement-later) .statement-copy{display:contents}
 html body.program-2027 .statement-sec:has(.statement-later) .statement-pic{margin-top:24px}
 html body.program-2027 .statement-copy p.statement-later{order:1;margin-top:40px}
}
/* «Что даст вам эта программа» — на белом фоне: блок выше («Достижения»)
   тёмный, и они сливались. Ленты фото ближе к тексту над ними, после
   ленты отступ меньше — блок короче */
html body.program-2027 .benefits-collection.benefits-collection{background:#fff;border-top:0}
html body.program-2027 .benefits-collection.benefits-collection>h2{color:#132631}
html body.program-2027 .benefits-collection.benefits-collection>h2 em{color:#3f86a8}
html body.program-2027 .benefits-collection.benefits-collection .benefit-items h3{color:#132631}
html body.program-2027 .benefits-collection.benefits-collection .benefit-items p{color:#4b5c66}
html body.program-2027 .benefits-collection.benefits-collection .benefit-grid .benefit-items{border-top-color:#13263124}
html body.program-2027 .benefits-collection .lane.lane{margin-top:0;margin-bottom:clamp(24px,2.6vw,40px)}
html body.program-2027 .benefits-collection .benefit-card:last-child .lane.lane{margin-bottom:0}
html body.program-2027 .benefits-collection .lane-shot{background:#eef3f6}
@media(max-width:760px){
 html body.program-2027 .benefits-collection.benefits-collection{padding-top:52px;padding-bottom:44px}
 html body.program-2027 .benefits-collection .lane.lane{margin-bottom:22px}
 html body.program-2027 .benefits-collection .benefit-card:last-child .lane.lane{margin-bottom:0}
}
/* полоса с видео отеля между «Что даст вам эта программа» и стоимостью:
   во всю ширину экрана, невысокая, ролик обрезан по высоте; поверх —
   название отеля шрифтом заголовков сайта (Montserrat, заглавные) */
html body.program-2027 .hotel-strip{
 position:relative;display:grid;place-items:center;overflow:hidden;
 height:clamp(240px,26vw,380px);margin:0;border-radius:0;
 background:#07151f url(assets/temp-hotel-video-poster.jpg) center/cover;isolation:isolate}
html body.program-2027 .hotel-strip .hotel-video{
 position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
html body.program-2027 .hotel-strip:after{
 content:'';position:absolute;inset:0;z-index:-1;
 background:linear-gradient(180deg,#07151f73,#07151f99),radial-gradient(ellipse 55% 75% at 50% 50%,#07151f59,transparent)}
html body.program-2027 .hotel-copy{padding:0 20px;text-align:center;color:#fff}
html body.program-2027 .hotel-copy .hotel-kicker{
 margin:0 0 14px;font:600 12px/1.4 Onest,Inter,Arial,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#8fc3d8}
html body.program-2027 .hotel-copy h2.hotel-title{
 margin:0;font:800 clamp(30px,4.6vw,68px)/1 Montserrat,'Helvetica Neue',Arial,sans-serif;
 letter-spacing:-.02em;text-transform:uppercase;color:#fff;text-shadow:0 2px 30px #0007}
html body.program-2027 .hotel-copy h2.hotel-title:after{
 content:'';display:block;width:56px;height:3px;margin:20px auto 16px;border-radius:2px;background:#8fc3d8}
html body.program-2027 .hotel-copy .hotel-sub{
 margin:0;font:400 clamp(15px,1.25vw,18px)/1.5 Onest,Inter,Arial,sans-serif;color:#ffffffe6}
@media(max-width:760px){
 html body.program-2027 .hotel-strip{height:170px}
 html body.program-2027 .hotel-copy{padding:0 14px}
 html body.program-2027 .hotel-copy .hotel-kicker{margin-bottom:8px;font-size:9.5px;letter-spacing:.22em}
 html body.program-2027 .hotel-copy h2.hotel-title{font-size:min(6vw,26px);white-space:nowrap}
 html body.program-2027 .hotel-copy h2.hotel-title:after{width:36px;height:2px;margin:10px auto 9px}
 html body.program-2027 .hotel-copy .hotel-sub{font-size:13px}
}
/* отступ под полосой равен отступу над ней (поле блока выше): у «Стоимости»
   своё верхнее поле больше, и перед заголовком ещё 24px */
html body.program-2027 .hotel-strip+.investment.investment{border-top:0;padding-top:86px}
@media(max-width:760px){html body.program-2027 .hotel-strip+.investment.investment{padding-top:44px}}
