/* ============================================================
   MABK Landing - custom widget styles (neomorphism)
   Reuses tokens & base components from style.css.
   ============================================================ */

html{ scroll-behavior:smooth; scroll-padding-top:96px; }

/* keep the top menu pinned (client: «верхнее меню закрепи чтобы не уходила») */
.nav--pinned.hidden{ transform:translateX(-50%) !important; }

/* event flash highlight on calendar day click */
.event--flash{ animation:evFlash 1.4s var(--e-out); }
@keyframes evFlash{ 0%,100%{ box-shadow:var(--nm); } 30%{ box-shadow:var(--nm-accent); transform:translateY(-3px); } }

/* generic section head modifiers */
.head--center{ flex-direction:column; align-items:center; text-align:center; }
.head--center .lead{ max-width:760px; }
.head--sub{ margin-bottom:clamp(20px,3vh,32px); }
/* heading hierarchy: hero (.hero__h ~3.7rem) dominates; section titles one step below */
.title{ font-size:clamp(1.7rem,1.15rem + 1.9vw,2.85rem); }
/* letters: заголовок в одну строку на десктопе (на мобиле переносится) */
#letters .head__left{ max-width:none; }
#letters .title{ white-space:nowrap; font-size:clamp(1.5rem,.9rem + 1.7vw,2.45rem); }
@media (max-width:760px){ #letters .title{ white-space:normal; font-size:clamp(1.6rem,1.15rem + 1.9vw,2.2rem); } }
/* hero primary CTA - чёткий «нажимаемый» вид: плотный нижний край-клавиша + пресс при клике */
.hero__cta .btn--primary{ box-shadow:0 6px 0 #0B4FB8, 0 16px 30px rgba(45,127,249,.42), inset 0 1px 0 rgba(255,255,255,.5); }
.hero__cta .btn--primary:hover{ transform:translateY(-2px); box-shadow:0 8px 0 #0B4FB8, 0 20px 34px rgba(45,127,249,.48), inset 0 1px 0 rgba(255,255,255,.45); }
.hero__cta .btn--primary:active{ transform:translateY(4px); box-shadow:0 2px 0 #0B4FB8, 0 6px 14px rgba(45,127,249,.35), inset 0 2px 6px rgba(11,79,184,.42); }
.title--xl{ font-size:clamp(1.85rem,1.2rem + 2.2vw,3.15rem); }

/* ---------- reveal safety (no flash) ---------- */
.reveal{ will-change:opacity, transform; }

/* ============================================================
   HERO / UTP
   ============================================================ */
/* reset leaked base .hero props from style.css (min-height/flex/double padding) */
.hero{ min-height:auto; max-width:none; margin-inline:0; display:block; align-items:stretch; text-align:left; overflow:visible; padding:clamp(96px,13vh,132px) 0 clamp(36px,4.5vh,60px); }
.hero__tabs{ display:flex; flex-wrap:wrap; gap:10px; margin:6px 0 clamp(26px,4vh,42px); }
.hero__tab{
  font-family:var(--font-body); font-weight:600; font-size:14.5px; letter-spacing:-.01em;
  color:var(--text-2); padding:11px 20px; border-radius:var(--pill);
  background:var(--bg); box-shadow:var(--nm-sm); cursor:pointer;
  transition:box-shadow .3s var(--e-out), color .25s, transform .3s var(--e-soft);
}
.hero__tab:hover{ transform:translateY(-2px); color:var(--text); }
.hero__tab.is-active{
  color:var(--on-accent); background:linear-gradient(135deg,var(--accent),var(--accent-h));
  box-shadow:var(--nm-accent);
}

.hero__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,56px); align-items:start; }
.hero__left{ display:flex; flex-direction:column; }
/* full-card: объект СПРАВА целиком (contain - не режется), левый край растворяется в фон карточки.
   все панели стопкой в одной grid-ячейке -> высота карточки = самая высокая панель, размер не прыгает при переключении */
.hero__panel{ grid-area:1 / 1; position:relative; min-height:clamp(240px,30vh,330px); border-radius:var(--r-md); overflow:hidden; box-shadow:var(--nm); background:linear-gradient(115deg,#E8ECF2 0%,#E2E8F1 48%,#D3DDEA 100%); opacity:0; visibility:hidden; pointer-events:none; }
.hero__panel.is-active{ opacity:1; visibility:visible; pointer-events:auto; animation:heroFade .5s var(--e-out); }
.hero__panel-media{ position:absolute; inset:0; z-index:0; }
.hero__panel-media img{ width:100%; height:100%; object-fit:contain; object-position:right center; display:block; }
.hero__panel::before{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,#E8ECF2 0%,rgba(232,236,242,.92) 42%,rgba(232,236,242,.45) 64%,rgba(232,236,242,0) 82%); }
.hero__panel-text{ position:relative; z-index:2; max-width:74%; min-width:0; padding:clamp(26px,3.6vw,48px); }
@keyframes heroFade{ from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:none} }
/* ---- main headline (mockup: «Нужен результат - учитесь в МАБК») ---- */
.hero__lead{
  font-family:var(--font-display); font-weight:800; text-transform:uppercase;
  /* cap 3.4rem (было 3.7): «НУЖЕН РЕЗУЛЬТАТ -» помещается в строку колонки (563px, с запасом ~8px
     на кросс-браузерные метрики), дефис-связка (nbsp) даёт ровно 2 строки - тире в конце первой */
  font-size:clamp(2.2rem,1.3rem + 3.5vw,3.4rem); line-height:1.03; letter-spacing:-.02em;
  color:var(--text); margin:16px 0 14px; max-width:15ch;
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 4px rgba(150,162,185,.4);
}
@media (min-width:981px){ .hero__lead{ max-width:none; } }
.hero__lead-em{ color:var(--accent-ink); }

/* decorative rotating phrases under the headline (НЕ ссылка) */
.hero__bizlink{
  display:inline-flex; align-items:center; gap:13px; margin:10px 0 0;
  font-family:var(--font-display); font-weight:800; font-size:clamp(1.32rem,1rem + 1.15vw,1.95rem);
  letter-spacing:-.01em; line-height:1.2; user-select:none;
}
.hero__bizarrow{ flex:none; color:var(--accent); }
.hero__roller{ position:relative; display:inline-block; overflow:hidden; height:1.42em; vertical-align:bottom; }
.hero__word{
  position:absolute; left:0; top:0; white-space:nowrap; line-height:1.42;
  background:linear-gradient(120deg,var(--accent),var(--accent-h)); -webkit-background-clip:text; background-clip:text; color:transparent;
  opacity:0; transform:translateY(105%); transition:opacity .5s var(--e-out), transform .6s var(--e-io);
}
.hero__word.is-active{ opacity:1; transform:translateY(0); }
.hero__word.is-out{ opacity:0; transform:translateY(-105%); }
@media (prefers-reduced-motion:reduce){ .hero__word{ transition:opacity .3s; transform:none !important; } }

.hero__sub{
  color:var(--text-2); font-size:clamp(1.02rem,.96rem + .35vw,1.2rem); line-height:1.58;
  max-width:560px; margin:0;
}

/* ---- proof block (demoted tabs + panels) ---- */
.hero__h{
  font-family:var(--font-display); font-weight:800; white-space:nowrap;
  font-size:clamp(1.35rem,.1rem + 2.2vw,1.9rem); line-height:1.12; letter-spacing:-.024em;
  color:var(--text); margin:0 0 14px;
  text-shadow:1px 1px 1px var(--nm-light);
}
/* тело панелей: одинаковая высота и стартует на одном уровне у всех слайдов */
.hero__p{ color:var(--text-2); font-size:1.04rem; line-height:1.6; max-width:none; margin:0; min-height:calc(1.6em * 4); }

/* proof = panel carousel (dots + arrows). Внешняя обёртка прозрачная - видна только карточка-панель с картинкой */
.hero__proof{ margin-top:clamp(34px,5vh,56px); padding:0 56px; }
.hero__proof .tag{ margin-bottom:clamp(16px,2.4vh,24px); }
.hero__panels{ position:relative; display:grid; min-height:clamp(240px,30vh,300px); }
.hero__h-kick{ display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(1.05rem,.85rem + 1vw,1.45rem); color:var(--accent-ink); letter-spacing:-.02em; margin-bottom:7px; }
.hero__cnav{ display:flex; align-items:center; justify-content:center; gap:18px; margin-top:clamp(18px,2.6vh,28px); }
/* arrows flank the panel, vertically centered (same pattern as reviews wall); hidden on mobile like .revwall__nav */
.hero__arrow{ position:absolute; z-index:3; top:calc(50% - 23px); width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:var(--bg); box-shadow:var(--nm-sm); color:var(--accent-ink); cursor:pointer; border:none; transition:box-shadow .3s, transform .3s var(--e-soft); }
.hero__arrow--prev{ left:-56px; }
.hero__arrow--next{ right:-56px; }
.hero__arrow:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.hero__arrow:active{ box-shadow:var(--nm-inset-sm); }
@media (max-width:680px){ .hero__arrow{ display:none; } .hero__proof{ padding:0; } }
.hero__dots{ display:flex; align-items:center; gap:10px; }
.hero__dot{ width:11px; height:11px; padding:0; border:none; border-radius:999px; background:var(--bg); box-shadow:var(--nm-inset-sm); cursor:pointer; transition:width .35s var(--e-out), background .3s, box-shadow .3s; }
.hero__dot.is-active{ width:32px; background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }

/* stats — сжаты (узкая левая колонка, под ними переехал промо-ротатор) */
.hero__stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:clamp(22px,3.4vh,32px) 0 0; }
.hero__stat{ background:var(--bg); border-radius:var(--r-md); box-shadow:var(--nm-sm); padding:13px 10px; text-align:center; }
.hero__stat b{ display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(1.3rem,.95rem + 1.05vw,1.85rem); color:var(--accent-ink); line-height:1; }
.hero__stat span{ display:block; margin-top:6px; font-size:11.5px; color:var(--text-2); line-height:1.28; }

.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(22px,3.2vh,32px); }

.hero__right{ display:flex; flex-direction:column; }
/* промо-ротатор переехал в левую колонку под статистику */
.hero__slot{ display:flex; }
.hero__slot--tight{ margin-top:16px; }

/* ---- HERO PROMO ROTATOR (акции / анонсы / скидки) ---- */
.promo{ position:relative; flex:1; max-width:480px; display:flex; flex-direction:column; min-height:0; padding:0 56px; }
/* stage = grid-stack: все карточки в одной ячейке, высота = самая высокая карточка (нет лишнего воздуха, ничего не обрезается при длинном контенте) */
.promo__stage{ position:relative; display:grid; }
.promo__card{
  grid-area:1/1; position:relative; /* anchor for ::before stripe and ::after shine (were escaping to .promo when card lost abs positioning) */
  display:flex; flex-direction:column; justify-content:center; gap:7px;
  padding:clamp(15px,1.5vw,21px) clamp(18px,1.7vw,24px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); overflow:hidden;
  opacity:0; transform:translateX(26px) scale(.985); pointer-events:none;
  transition:opacity .55s var(--e-out), transform .55s var(--e-out);
}
.promo__card.is-active{ opacity:1; transform:none; pointer-events:auto; }
.promo__card.is-leaving{ opacity:0; transform:translateX(-26px) scale(.985); }
.promo__card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,var(--pa),var(--pa2)); }
.promo__top{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.promo__badge{ display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:linear-gradient(135deg,var(--pa),var(--pa2)); padding:5px 11px; border-radius:var(--pill); box-shadow:0 6px 15px var(--pglow); }
.promo__deadline{ font-size:12px; font-weight:600; color:var(--pa); }
.promo__title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1rem,.86rem + .5vw,1.3rem); line-height:1.16; letter-spacing:-.02em; color:var(--text); }
.promo__text{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; font-size:13.5px; color:var(--text-2); line-height:1.4; }
/* discount amount: large accent in the promo-type gradient, shimmer synced with badge pulse */
.promo__size{
  font-family:var(--font-display); font-weight:800; line-height:1; letter-spacing:-.02em;
  font-size:clamp(1.9rem, 1.5rem + 1.2vw, 2.4rem);
  background:linear-gradient(110deg, var(--pa), var(--pa2) 45%, var(--pa));
  background-size:220% 100%; background-position:0% 0;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  filter:drop-shadow(0 3px 8px var(--pglow));
}
.promo__card.is-active .promo__size{ animation:promoSizeShimmer 2.6s var(--e-io) infinite; }
@keyframes promoSizeShimmer{ 0%,100%{ background-position:0% 0; } 50%{ background-position:100% 0; } }
/* базовые слайды скидок (BASE_PROMOS): без заголовка, текст Венеры крупнее и темнее обычного комментария.
   Десктоп: процент+подпись ЖЁСТКО в одну строку (размеры подобраны под самую узкую колонку hero ~980px,
   иначе длинный слайд «−10% … за 2 месяца» падал в две строки, а короткие нет - разнобой).
   Мобайл ≤680: все слайды единообразно стопкой - процент сверху, подпись под ним. */
.promo__card--main .promo__text{ flex-wrap:nowrap; }
.promo__card--main .promo__text span{
  font-family:var(--font-display); font-weight:700; white-space:nowrap;
  font-size:clamp(.85rem, .6rem + .35vw, 1.1rem);
  letter-spacing:-.015em; line-height:1.2; color:var(--text);
}
.promo__card--main .promo__size{ font-size:clamp(1.5rem, 1rem + .9vw, 2.1rem); }
@media (max-width:680px){
  .promo__card--main .promo__text{ flex-wrap:wrap; }
  .promo__card--main .promo__text span{ white-space:normal; flex-basis:100%; font-size:1.02rem; }
  .promo__card--main .promo__size{ font-size:2rem; }
}
/* типы акций */
.promo__card--sale{     --pa:#F0455A; --pa2:#FF7A45; --pglow:rgba(240,69,90,.34); --pring:rgba(240,69,90,.18); }
.promo__card--announce{ --pa:#2D7FF9; --pa2:#0B5BD3; --pglow:rgba(45,127,249,.34); --pring:rgba(45,127,249,.18); }
.promo__card--gift{     --pa:#7C5CFC; --pa2:#9B7BFF; --pglow:rgba(124,92,252,.34); --pring:rgba(124,92,252,.18); }
/* пульс плашки */
.promo__card.is-active .promo__badge{ animation:promoPulse 2.6s var(--e-io) infinite; }
@keyframes promoPulse{ 0%,100%{ box-shadow:0 6px 15px var(--pglow); } 50%{ box-shadow:0 6px 18px var(--pglow), 0 0 0 4px var(--pring); } }
/* блик пробегает по каждой активной карточке */
.promo__card.is-active::after{ content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%; background:linear-gradient(110deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-18deg); animation:promoShine 5s ease-in-out infinite; pointer-events:none; }
@keyframes promoShine{ 0%{ left:-60%; } 32%,100%{ left:150%; } }
/* подвал: точки + прогресс */
.promo__foot{ display:flex; align-items:center; gap:12px; margin-top:11px; flex:none; }
/* arrows flank the card, vertically centered (same pattern as reviews wall); hidden on mobile like .revwall__nav */
.promo__arrow{ position:absolute; z-index:3; top:calc(50% - 23px); width:46px; height:46px; border:0; padding:0; border-radius:50%; cursor:pointer; display:grid; place-items:center; color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); transition:transform .25s var(--e-soft), box-shadow .25s, color .2s; }
.promo__arrow--prev{ left:-56px; }
.promo__arrow--next{ right:-56px; }
.promo__arrow:hover{ color:var(--accent); transform:translateY(-1px); box-shadow:var(--nm); }
.promo__arrow:active{ box-shadow:var(--nm-inset-sm); transform:translateY(0); }
/* mobile: стрелок нет, а въезжающий слайд (translateX 26px) не должен растягивать страницу вбок */
@media (max-width:680px){ .promo__arrow{ display:none; } .promo{ padding:0; } .promo__stage{ overflow:hidden; border-radius:var(--r-lg); } }
.promo__dots{ display:flex; gap:7px; }
.promo__dot{ width:7px; height:7px; padding:0; border:0; border-radius:50%; cursor:pointer; background:var(--bg); box-shadow:var(--nm-inset-sm); transition:width .3s var(--e-out), background .3s; }
.promo__dot.is-active{ width:22px; border-radius:5px; background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:none; }
.promo__progress{ flex:1; height:3px; border-radius:3px; background:rgba(13,40,90,.08); overflow:hidden; }
.promo__bar{ height:100%; width:0; border-radius:3px; background:linear-gradient(90deg,var(--accent),var(--accent-h)); }
.promo__bar.run{ animation:promoBar var(--promo-dur,6000ms) linear forwards; }
@keyframes promoBar{ from{ width:0; } to{ width:100%; } }
@media (prefers-reduced-motion:reduce){
  .promo__card{ transition:opacity .25s; transform:none !important; }
  .promo__card.is-active .promo__badge, .promo__card.is-active::after,
  .promo__card.is-active .promo__size{ animation:none; }
  .promo__bar.run{ animation:none; width:100%; }
}
.hero__media-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.92; }
.hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,14,26,.15) 0%,rgba(8,14,26,.55) 100%); }
.hero__media-badge{
  position:absolute; top:16px; left:16px; z-index:2;
  font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  color:#fff; background:rgba(13,30,58,.66); backdrop-filter:blur(6px);
  padding:8px 14px; border-radius:var(--pill);
}
.hero__play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2;
  width:76px; height:76px; border-radius:50%; cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent-h)); color:#fff;
  display:grid; place-items:center; box-shadow:0 10px 30px rgba(45,127,249,.5);
  transition:transform .3s var(--e-soft);
}
.hero__play svg{ margin-left:4px; }
.hero__play:hover{ transform:translate(-50%,-50%) scale(1.08); }
.hero__media-cap{ position:absolute; left:16px; right:16px; bottom:16px; z-index:2; color:#eef2fb; font-size:13.5px; font-weight:500; }

/* полный логотип Академии с расшифровкой по центру (между блоком основателя и описанием Академии) */
/* полный логотип Академии — ТОЛЬКО мобильная версия (на десктопе не нужен, client 29.06) */
.hero__acadlogo{ display:none; justify-content:center; margin:clamp(18px,3vw,32px) auto clamp(6px,1.5vw,14px); }
.hero__acadlogo img{ height:clamp(42px,8vw,66px); width:auto; max-width:90%; filter:drop-shadow(0 6px 14px rgba(45,80,160,.16)); }
@media (max-width:980px){ .hero__acadlogo{ display:flex; } }

/* ---- HERO FOUNDER (портрет основателя справа: cutout + фирменная цитата) ---- */
.hero__founder{ position:relative; display:flex; flex-direction:column; align-self:start; }
.hero__founder-stage{ position:relative; border-radius:var(--r-xl); background:transparent;
  padding:clamp(16px,1.8vw,26px) clamp(14px,1.5vw,22px) clamp(10px,1.2vw,16px); overflow:visible; }
.hero__founder-glow{ position:absolute; left:50%; top:14%; transform:translateX(-50%); z-index:0; pointer-events:none;
  width:88%; height:74%; border-radius:50%;
  background:radial-gradient(circle, rgba(45,127,249,.20), rgba(45,127,249,0) 68%); filter:blur(6px); }
.hero__founder-badge{ position:absolute; top:clamp(16px,1.7vw,22px); left:clamp(16px,1.7vw,22px); z-index:3;
  font-family:var(--font-body); font-weight:600; font-size:11px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); padding:9px 15px; border-radius:var(--pill); }
/* id-блок: бейдж + имя/должность основателя сверху-слева над портретом */
.hero__founder-id{ position:absolute; top:clamp(16px,1.7vw,22px); left:clamp(16px,1.7vw,22px); z-index:3;
  display:flex; flex-direction:column; align-items:flex-start; gap:9px; max-width:min(58%,280px); }
.hero__founder-id .hero__founder-badge{ position:static; top:auto; left:auto; }
/* имя+должность на стеклянной плашке - внизу-слева, симметрично кнопке подкаста */
.hero__founder-name{ position:absolute; z-index:4; bottom:1%; left:clamp(6px,2vw,22px);
  display:flex; flex-direction:column; gap:1px; width:fit-content; max-width:60%;
  padding:8px 15px 9px; border-radius:15px;
  background:rgba(240,243,248,.74); -webkit-backdrop-filter:saturate(1.15) blur(8px); backdrop-filter:saturate(1.15) blur(8px);
  box-shadow:0 8px 22px rgba(13,40,90,.14), inset 0 0 0 1px rgba(255,255,255,.5); }
.hero__founder-name b{ font-family:var(--font-display); font-weight:800; font-size:clamp(.96rem,.88rem + .3vw,1.12rem);
  color:var(--text); letter-spacing:-.012em; line-height:1.15; white-space:nowrap; }
.hero__founder-name span{ font-size:12.5px; font-weight:600; color:var(--accent-ink); line-height:1.25; letter-spacing:.01em; white-space:nowrap; }
@media (max-width:560px){
  .hero__founder-name{ bottom:3%; left:10px; max-width:66%; }
  .hero__founder-name span{ white-space:normal; }
}
.hero__founder-watch{ position:absolute; z-index:4; top:auto; bottom:15%; right:-6px; display:inline-flex; align-items:center; gap:12px;
  padding:9px 19px 9px 9px; border:0; cursor:pointer; background:var(--bg); border-radius:var(--pill); box-shadow:var(--nm);
  transition:transform .3s var(--e-out), box-shadow .3s; }
.hero__founder-watch:hover{ transform:translateY(-3px); box-shadow:var(--nm-float); }
.hero__founder-watch-ic{ position:relative; width:46px; height:46px; border-radius:50%; flex:none; display:grid; place-items:center;
  color:#fff; background:linear-gradient(180deg,var(--accent),var(--accent-h)); box-shadow:0 7px 17px rgba(45,127,249,.42); }
.hero__founder-watch-ic svg{ margin-left:3px; position:relative; z-index:1; }
.hero__founder-watch-pulse{ position:absolute; inset:0; border-radius:50%; border:2px solid var(--accent); animation:watchPulse 2.4s ease-out infinite; }
@keyframes watchPulse{ 0%{transform:scale(1); opacity:.6} 100%{transform:scale(1.6); opacity:0} }
.hero__founder-watch-tx{ display:flex; flex-direction:column; line-height:1.16; text-align:left;
  font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--text); letter-spacing:-.01em; }
.hero__founder-watch-tx small{ font-family:var(--font-body); font-weight:500; font-size:.78rem; color:var(--text-2); letter-spacing:0; text-transform:none; }
@media (max-width:900px){
  /* кнопка подкаста становится статичной (под фото) - имя поднимаем на фото, чтобы не перекрывало кнопку */
  .hero__founder-watch{ position:static; margin:14px auto 0; }
  .hero__founder-name{ bottom:96px; }
}
.hero__founder-cut{ position:relative; z-index:2; display:block; width:100%; max-width:380px; height:auto; margin:0 auto;
  -webkit-mask-image:linear-gradient(to bottom,#000 78%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 78%,transparent 100%); }
/* цитата под панелью на чистом фоне - фирменный рукописный почерк (только для основателя) */
.hero__founder-quote{ position:relative; z-index:4; margin:clamp(16px,1.8vw,22px) 6px 0; padding-left:30px; }
.hero__founder-quote blockquote{ margin:0; font-family:'Caveat',cursive; font-weight:700; font-style:normal;
  font-size:clamp(1.5rem,1.1rem + 1vw,2.05rem); line-height:1.2; letter-spacing:0; color:var(--accent-ink);
  transform:rotate(-1.4deg); transform-origin:left center; }
.hero__founder-quote blockquote::before{ content:'\201C'; position:absolute; left:0; top:-.3em;
  font-size:2.2em; line-height:1; color:var(--accent); opacity:.42; }
.hero__founder-quote figcaption{ margin-top:14px; display:flex; flex-direction:column; gap:2px; }
.hero__founder-quote figcaption b{ font-family:var(--font-display); font-weight:800; font-size:1.06rem; color:var(--text); letter-spacing:-.012em; }
.hero__founder-quote figcaption span{ font-size:13px; color:var(--text-2); }

.hero__thumbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.hero__thumbs img{ width:100%; aspect-ratio:1/.82; object-fit:cover; border-radius:var(--r); box-shadow:var(--nm-sm); }

/* ============================================================
   PROGRAMS PICK
   ============================================================ */
.picks{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); margin-top:clamp(30px,4vh,46px); }
.pick{
  display:flex; flex-direction:column; border-radius:var(--r-lg); overflow:hidden;
  background:var(--bg); box-shadow:var(--nm);
  transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft);
}
.pick:hover{ transform:translateY(-6px); box-shadow:var(--nm-float); }
.pick__media{
  height:186px; background-image:var(--pick-img); background-size:cover; background-position:center;
  position:relative; filter:brightness(1.06) saturate(1.06);
}
/* client (повторно): убрать искусственное наложение фона на фото — оставляем лёгкий нижний шейд для аккуратного края */
.pick__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 62%,rgba(11,22,42,.16)); transition:opacity .4s; }
.pick--corp .pick__media::after,
.pick--prof .pick__media::after,
.pick--personal .pick__media::after{ background:linear-gradient(180deg,transparent 62%,rgba(11,22,42,.16)); }
.pick--corp .pick__ic{ color:var(--accent-ink); }
.pick--prof .pick__ic{ color:#6d28d9; }
.pick--personal .pick__ic{ color:#c2410c; }
.pick__body{ display:flex; flex-direction:column; padding:clamp(22px,2.4vw,30px); flex:1; }
.pick__ic{
  width:54px; height:54px; border-radius:16px; display:grid; place-items:center;
  margin:-46px 0 16px; position:relative; z-index:2;
  background:var(--bg); box-shadow:var(--nm); color:var(--accent-ink);
}
.pick__t{ font-family:var(--font-display); font-weight:700; font-size:1.28rem; letter-spacing:-.02em; color:var(--text); margin-bottom:10px; }
.pick__d{ color:var(--text-2); font-size:.98rem; line-height:1.55; flex:1; }
.pick__go{ margin-top:18px; font-weight:600; font-size:.95rem; color:var(--accent-ink); }
.pick:hover .pick__go{ text-decoration:underline; }
.picks__foot{ text-align:center; margin-top:26px; color:var(--text-2); font-size:1rem; }
.picks__foot a{ color:var(--accent-ink); font-weight:600; white-space:nowrap; }
/* трейлинг-SVG-стрелки текстовых ссылок (замена текстовых «→»): по базлайну + отступ от текста;
   display:inline-block перебивает глобальный svg{display:block} (style.css), иначе стрелка падает на новую строку */
.pick__go svg, .picks__foot a svg, .leadform__catalog svg{ display:inline-block; vertical-align:-3px; margin-left:7px; }

/* ============================================================
   QUIZ
   ============================================================ */
/* tighten the excess vertical air around the blue CTA (#quiz) */
#quiz{ padding-top:clamp(30px,3.4vh,46px); padding-bottom:clamp(30px,3.4vh,46px); }
#tracks{ padding-bottom:clamp(40px,4.6vh,60px); }
#events{ padding-top:clamp(40px,4.6vh,60px); }
.quizhook{
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  background:linear-gradient(135deg,#2D7FF9,#1E6FFF 52%,#0B5BD3); color:#fff;
  border-radius:var(--r-xl); padding:clamp(22px,2.6vw,34px) clamp(28px,4vw,48px); box-shadow:var(--nm-accent);
}
.quizhook .tag{ color:#fff; background:rgba(255,255,255,.16); box-shadow:none; }
.quizhook .title{ color:#fff; text-shadow:none; margin:0 0 8px; font-size:clamp(1.4rem,1.05rem + 1vw,1.85rem); }
/* заголовок в одну строку на десктопе/планшете (на мобайле переносится) */
@media(min-width:680px){ .quizhook .title{ white-space:nowrap; } }
.quizhook .lead{ color:rgba(255,255,255,.9); margin:0; max-width:620px; }
.quizhook__l{ flex:1 1 440px; }
.quizhook #quiz-hook-start{ background:#fff; color:var(--accent-ink); box-shadow:0 10px 26px rgba(13,40,90,.28); flex-shrink:0; }
.quizhook #quiz-hook-start:hover{ transform:translateY(-3px); }

.quizbox{ background:var(--bg); border-radius:var(--r-xl); box-shadow:var(--nm-lg); padding:clamp(26px,4vw,52px); }
.quizbox__head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.quizbox__title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.4rem); letter-spacing:-.03em; color:var(--text); margin:0 0 8px; }
.quizbox__lead{ color:var(--text-2); font-size:1rem; max-width:560px; margin:0; }
.quizbox__step{ font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); white-space:nowrap; padding-top:6px; }
.quizbox__step b{ color:var(--accent-ink); }
.quizbox__progress{ height:5px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); margin:22px 0 28px; overflow:hidden; }
.quizbox__progress span{ display:block; height:100%; width:33%; border-radius:var(--pill); background:linear-gradient(90deg,var(--accent),var(--accent-h)); transition:width .4s var(--e-out); }

/* neutralize collisions with staging style.css (.quiz__step / .quiz__result) */
.quizbox .quiz__step{ display:none; font-size:1rem; font-weight:400; letter-spacing:normal; color:var(--text); margin-bottom:0; }
.quizbox .quiz__step.is-active{ display:block; animation:heroFade .4s var(--e-out); }
.quizbox .quiz__result{ text-align:left; }
.quiz__q{ font-family:var(--font-display); font-weight:700; font-size:clamp(1.3rem,1rem + 1vw,1.7rem); letter-spacing:-.02em; color:var(--text); margin:0 0 6px; }
.quiz__hint{ color:var(--text-2); font-size:.95rem; margin:0 0 22px; }
.quiz__options{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
/* нечётный последний вариант (3-й, 5-й) растягиваем на всю ширину - без пустой ячейки */
.quiz__options .quiz__option:last-child:nth-child(odd){ grid-column:1 / -1; }
/* шаг «формат» (3 коротких варианта) - ряд из трёх ровных карточек, без растягивания */
@media (min-width:981px){
  .quiz__step[data-step="3"] .quiz__options{ grid-template-columns:repeat(3,1fr); }
  .quiz__step[data-step="3"] .quiz__options .quiz__option:last-child:nth-child(odd){ grid-column:auto; }
}
.quiz__option{
  text-align:left; cursor:pointer; padding:16px 18px; border-radius:var(--r);
  background:var(--bg); box-shadow:var(--nm-sm);
  transition:box-shadow .3s var(--e-out), transform .25s var(--e-soft);
  display:flex; align-items:center; gap:15px;
}
.quiz__option:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.quiz__option.is-selected{ box-shadow:var(--nm-inset); }
.quiz__option.is-selected .quiz__o-t{ color:var(--accent-ink); }
.quiz__o-ic{ flex:0 0 auto; width:46px; height:46px; border-radius:14px; display:grid; place-items:center; color:var(--accent-ink); box-shadow:var(--nm-inset-sm); transition:box-shadow .3s, color .3s, transform .3s var(--e-soft); }
.quiz__o-ic svg{ width:22px; height:22px; }
.quiz__option:hover .quiz__o-ic{ transform:scale(1.07); }
.quiz__option.is-selected .quiz__o-ic{ color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }
.quiz__o-tx{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.quiz__o-t{ font-family:var(--font-body); font-weight:600; font-size:1rem; color:var(--text); }
.quiz__o-s{ font-size:.86rem; color:var(--text-2); line-height:1.4; }

.quizbox__nav{ display:flex; justify-content:space-between; gap:14px; margin-top:30px; }
.quiz__navbtn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:15px; padding:14px 26px; border-radius:var(--pill);
  background:var(--bg); color:var(--text); box-shadow:var(--nm); cursor:pointer;
  transition:box-shadow .3s var(--e-out), transform .25s var(--e-soft), opacity .2s;
}
.quiz__navbtn:hover:not(:disabled){ transform:translateY(-2px); }
.quiz__navbtn:disabled{ opacity:.4; cursor:not-allowed; box-shadow:var(--nm-inset-sm); }
.quiz__navbtn--primary{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); color:#fff; box-shadow:var(--nm-accent); }

/* quiz result */
.quiz__r-eyebrow{ font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--accent-ink); font-weight:600; margin-bottom:8px; }
.quiz__r-title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.7rem,1.2rem + 1.7vw,2.7rem); letter-spacing:-.03em; color:var(--text); margin:0 0 12px; }
.quiz__r-desc{ color:var(--text-2); font-size:1.04rem; line-height:1.6; margin:0 0 24px; max-width:760px; }
.quiz__r-desc b{ color:var(--text); }
.quiz__r-card{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm-inset); padding:clamp(22px,2.6vw,30px); margin-bottom:22px; }
.quiz__r-meta{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.quiz__r-meta-item .lbl{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); margin-bottom:6px; }
.quiz__r-meta-item .val{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; color:var(--text); line-height:1.3; }
.quiz__r-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.quiz__r-tag{ font-size:12.5px; font-weight:500; color:var(--text-2); padding:7px 14px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); }

.quiz__dates{ display:inline-flex; align-items:center; gap:8px; margin-bottom:20px; font-weight:600; font-size:.95rem; color:var(--accent-ink); padding:12px 20px; border-radius:var(--pill); box-shadow:var(--nm-sm); background:var(--bg); transition:transform .25s var(--e-soft), box-shadow .3s; }
.quiz__dates:hover{ transform:translateY(-2px); box-shadow:var(--nm); }

.quiz__r-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-bottom:14px; }
.quiz__r-cta{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15.5px; color:#fff; padding:16px 30px; border-radius:var(--pill); background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); cursor:pointer; transition:transform .25s var(--e-soft); }
.quiz__r-cta:hover{ transform:translateY(-2px); }
.quiz__r-offline{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:15px; color:var(--text); padding:15px 26px; border-radius:var(--pill); background:var(--bg); box-shadow:var(--nm); cursor:pointer; transition:transform .25s var(--e-soft); }
.quiz__r-offline:hover{ transform:translateY(-2px); box-shadow:var(--nm-float); }
.quiz__restart{ font-family:var(--font-body); font-weight:500; font-size:14.5px; color:var(--text-2); background:none; cursor:pointer; text-decoration:underline; text-underline-offset:3px; padding:6px; }
.quiz__restart:hover{ color:var(--accent-ink); }
.quiz__algo{ font-size:.85rem; color:var(--text-3); line-height:1.5; margin:6px 0 30px; max-width:740px; }

/* ---- компактный результат подбора ---- */
.qr{ animation:heroFade .45s var(--e-out); }
.qr__answers{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.qr__answers-l{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-3); font-weight:600; margin-right:2px; }
.qr__ans{ font-size:.82rem; color:var(--accent-ink); font-weight:500; padding:5px 12px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); }
.qr__top{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.qr__badge{ font-size:12px; font-weight:700; letter-spacing:.03em; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h)); padding:7px 15px; border-radius:var(--pill); box-shadow:var(--nm-accent); }
.qr__dir{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-3); font-weight:600; }
.qr__title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.35rem,1rem + 1.1vw,1.9rem); letter-spacing:-.03em; color:var(--text); margin:0 0 12px; line-height:1.1; }
.qr__pills{ display:flex; flex-wrap:wrap; gap:9px; margin-bottom:12px; }
.qr__pill{ font-size:.85rem; color:var(--text); padding:7px 14px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); }
.qr__pill i{ font-style:normal; color:var(--text-3); font-weight:500; margin-right:6px; font-size:.82em; }
.qr__row{ display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-bottom:14px; }
.qr__row .quiz__dates{ margin-bottom:0; }
.qr__open{ display:inline-block; font-weight:600; font-size:.95rem; color:var(--accent-ink); }
.qr__open:hover{ text-decoration:underline; text-underline-offset:3px; }
.qr__open svg{ display:inline-block; vertical-align:-3px; margin-left:7px; }

/* компактная форма-захват в одну строку */
.qlead{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px; }
.qlead[hidden]{ display:none; }   /* display:flex перебивает UA [hidden] - вернуть, иначе форма не скрывается после отправки */
.qlead__in{ flex:1 1 180px; min-width:0; font-family:var(--font-body); font-size:.96rem; color:var(--text); background:var(--bg); border:none; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); padding:11px 18px; outline:none; transition:box-shadow .25s; }
.qlead__in::placeholder{ color:var(--text-3); }
.qlead__in:focus{ box-shadow:var(--nm-inset); }
.qlead__btn{ flex:0 0 auto; font-family:var(--font-body); font-weight:600; font-size:.96rem; color:#fff; padding:11px 24px; border:none; border-radius:var(--pill); background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); cursor:pointer; transition:transform .25s var(--e-soft); }
.qlead__btn:hover{ transform:translateY(-2px); }
.qlead__btn svg{ display:inline-block; vertical-align:-3px; margin-left:7px; }
.qlead__hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.qlead__note{ font-size:.78rem; color:var(--text-3); line-height:1.45; margin:0 0 16px; max-width:600px; }
.qlead-ok{ background:var(--bg); border-radius:var(--r-md); box-shadow:var(--nm-sm); padding:14px 18px; margin:0 0 16px; font-weight:600; color:var(--accent-ink); }
/* форма-захват, вынесенная под «Вам также подходят» - отступ сверху от списка */
.qr--lead{ margin-top:26px; }

/* список подходящих программ - компактно, в 2 колонки */
.qlist{ margin-top:2px; }
.qlist__h{ font-size:12px; letter-spacing:.13em; text-transform:uppercase; color:var(--text-3); font-weight:600; margin:0 0 10px; }
.qlist__grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.qrow{ display:flex; align-items:center; gap:14px; padding:11px 16px; border-radius:var(--r-md); background:var(--bg); box-shadow:var(--nm-sm); transition:transform .25s var(--e-soft), box-shadow .3s; }
.qrow:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.qrow__main{ flex:1 1 auto; min-width:0; }
.qrow__name{ font-family:var(--font-display); font-weight:700; font-size:.98rem; color:var(--text); letter-spacing:-.01em; }
.qrow__sub{ font-size:.82rem; color:var(--text-2); margin-top:2px; }
.qrow__rel{ flex:0 0 80px; height:6px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); overflow:hidden; }
.qrow__rel span{ display:block; height:100%; border-radius:var(--pill); background:linear-gradient(90deg,var(--accent),var(--accent-h)); }
.qrow__go{ flex:0 0 auto; color:var(--accent-ink); font-weight:700; font-size:1.15rem; }
.qrow__go svg{ display:block; }

/* кольцо совпадения в hero результата */
.qr__hero{ display:flex; align-items:center; gap:18px; margin-bottom:14px; }
.qr__ringwrap{ position:relative; flex:0 0 auto; width:72px; height:72px; }
.qr__ring{ width:72px; height:72px; transform:rotate(-90deg); }
.qr__ring circle{ fill:none; stroke-width:8; stroke-linecap:round; }
.qr__ring .qring-bg{ stroke:var(--nm-dark); opacity:.55; }
.qr__ring .qring-fg{ stroke:url(#qgrad); stroke-dasharray:213.6; stroke-dashoffset:213.6; transition:stroke-dashoffset 1.1s var(--e-out); }
.qr__ringnum{ position:absolute; inset:0; display:grid; place-items:center; font-family:var(--font-display); font-weight:800; font-size:1.12rem; color:var(--accent-ink); }
.qr__herotx{ min-width:0; }
.qr__hero .qr__top{ margin-bottom:8px; }
.qr__hero .qr__title{ margin:0; }

/* анимация смены шага + появление вариантов */
@keyframes quizStep{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.quizbox .quiz__step.is-active{ display:block; animation:quizStep .42s var(--e-out); }
.quiz__step.is-active .quiz__options .quiz__option{ animation:quizStep .5s var(--e-out) backwards; }
.quiz__step.is-active .quiz__options .quiz__option:nth-child(1){ animation-delay:.04s; }
.quiz__step.is-active .quiz__options .quiz__option:nth-child(2){ animation-delay:.09s; }
.quiz__step.is-active .quiz__options .quiz__option:nth-child(3){ animation-delay:.14s; }
.quiz__step.is-active .quiz__options .quiz__option:nth-child(4){ animation-delay:.19s; }
.quiz__step.is-active .quiz__options .quiz__option:nth-child(5){ animation-delay:.24s; }

/* оживляем баннер-хук: мягкое свечение */
.quizhook{ position:relative; overflow:hidden; }
.quizhook::before{ content:''; position:absolute; top:-45%; right:-4%; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.22), transparent 70%); pointer-events:none; }
.quizhook::after{ content:''; position:absolute; bottom:-60%; left:6%; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.13), transparent 70%); pointer-events:none; }
.quizhook__l, .quizhook #quiz-hook-start{ position:relative; z-index:1; }

/* ============================================================
   EVENTS
   ============================================================ */
.events__all{ flex-shrink:0; }
/* кнопки блока событий рядом: «Все мероприятия» + «Скачать в PDF» (client R3) */
.events__acts{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; flex-shrink:0; }
.events__pdf{ background:var(--bg); box-shadow:var(--nm-sm); color:var(--accent-ink); gap:8px; }
.events__pdf:hover{ box-shadow:var(--nm); transform:translateY(-2px); }
@media (max-width:520px){ .events__acts{ width:100%; } .events__acts .btn{ flex:1 1 auto; } }
/* отзывы: синюю кнопку ближе к заголовку (client 29.06 «сделать ближе левее») */
#reviews .head{ justify-content:flex-start; gap:clamp(18px,3vw,44px); align-items:center; }
.events__grid{ display:grid; grid-template-columns:1.25fr .9fr; gap:clamp(20px,2.4vw,32px); align-items:start; }
.events__list{ display:flex; flex-direction:column; gap:14px; }
/* карточки .ev-card (единый рендер) уже несут margin-bottom - гасим, отступ даёт gap контейнера */
.events__list .ev-card{ margin-bottom:0; }
.event{
  display:flex; align-items:stretch; gap:0; padding:0; border-radius:var(--r-md);
  background:var(--bg); box-shadow:var(--nm-sm); overflow:hidden;
  transition:box-shadow .35s var(--e-out), transform .3s var(--e-soft);
}
.event:hover{ transform:translateY(-3px); box-shadow:var(--nm); }
.event__date{
  flex-shrink:0; width:92px; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:11px 8px; background:linear-gradient(160deg,var(--accent),var(--accent-h)); color:#fff; box-shadow:none; border-radius:0;
}
/* старт потока - тёмный блок под цвет легенды/календаря (#5) */
.event__date--paid{ background:linear-gradient(160deg,#0d1e3a,#1d3157); }
/* descendant selectors beat style.css `.event__date span` (0,1,1) */
.event__date .event__d{ display:block; font-family:var(--font-display); font-weight:800; font-size:1.7rem; line-height:1; color:#fff; margin:0; text-transform:none; letter-spacing:normal; }
.event__date .event__md{ display:flex; align-items:baseline; justify-content:center; margin-top:4px; }
.event__date .event__m{ display:inline; font-size:11px; letter-spacing:.1em; text-transform:uppercase; margin-top:0; opacity:.9; color:#fff; }
.event__date .event__w{ display:inline; font-size:11px; opacity:.8; margin-top:0; color:#fff; text-transform:none; letter-spacing:normal; }
.event__body{ flex:1; padding:12px 20px; display:flex; flex-direction:column; gap:4px; min-width:0; }
.event__tag{ align-self:flex-start; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:5px 11px; border-radius:var(--pill); }
.event__tag--free{ color:var(--accent-ink); box-shadow:var(--nm-inset-sm); }
.event__tag--paid{ color:#fff; background:linear-gradient(135deg,#0d1e3a,#1d3157); }
.event__title{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; letter-spacing:-.015em; color:var(--text); line-height:1.25; }
/* meta row mirrors schedule .ev-card__meta - единый стандарт */
.event__meta{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; font-size:.85rem; color:var(--text-2); }
.event__meta span{ display:inline-flex; align-items:center; gap:6px; }
.event__meta svg{ flex:none; }
.event__more-dates{ color:var(--accent-ink); font-weight:600; }
.event__act{ display:flex; flex-direction:column; gap:8px; justify-content:center; padding:11px 18px 11px 0; flex-shrink:0; }
.event__btn{ font-family:var(--font-body); font-weight:600; font-size:13.5px; color:#fff; padding:10px 18px; border-radius:var(--pill); background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); cursor:pointer; white-space:nowrap; transition:transform .25s var(--e-soft); border:0; text-decoration:none; display:inline-block; }
.event__btn:hover{ transform:translateY(-2px); }

@media (max-width:520px){
  .event{ flex-wrap:wrap; }
  .event__act{ flex-direction:row; width:100%; padding:0 18px 16px; }
}

/* calendar (month) */
.events__side{ display:flex; flex-direction:column; gap:18px; position:sticky; top:96px; }
.cal{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm); padding:clamp(18px,2vw,24px); }
.cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.cal__head b{ font-family:var(--font-display); font-weight:700; font-size:1.05rem; color:var(--text); }
.cal__nav{ width:34px; height:34px; display:grid; place-items:center; border:0; border-radius:50%; background:var(--bg); box-shadow:var(--nm-sm); cursor:pointer; color:var(--text-2); font-size:18px; line-height:1; transition:box-shadow .25s, color .2s; }
.cal__nav:hover{ color:var(--accent-ink); box-shadow:var(--nm); }
.cal__week{ display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin-bottom:8px; }
.cal__week span{ text-align:center; font-size:11px; font-weight:600; color:var(--text-3); text-transform:none; letter-spacing:normal; }
.cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
.cal__day{ aspect-ratio:1; display:grid; place-items:center; border-radius:11px; font-size:13.5px; font-weight:500; color:var(--text-2); position:relative; }
.cal__day--empty{ visibility:hidden; }
.cal__day--has-event{ cursor:pointer; font-weight:700; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-sm); }
.cal__day--has-event.is-free-day{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); }
.cal__day--has-event:hover{ transform:scale(1.06); }
.cal__day--today{ box-shadow:var(--nm-inset-sm); color:var(--accent-ink); font-weight:700; }
.cal__day--today.cal__day--has-event{ outline:2px solid var(--accent); outline-offset:1px; }

/* calendar (year) */
.calyear{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm); padding:clamp(18px,2vw,24px); }
.calyear__head{ display:flex; align-items:baseline; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.calyear__head b{ font-family:var(--font-display); font-weight:800; font-size:1.3rem; color:var(--accent-ink); }
.calyear__hint{ font-size:12px; color:var(--text-3); }
.calyear__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.calyear__m{ position:relative; text-align:center; padding:12px 6px; border-radius:13px; font-size:13px; font-weight:600; color:var(--text-2); box-shadow:var(--nm-inset-sm); cursor:default; transition:box-shadow .25s, color .2s, transform .2s; }
.calyear__m--has{ cursor:pointer; color:var(--text); }
.calyear__m--has:hover{ transform:translateY(-2px); box-shadow:var(--nm-sm); color:var(--accent-ink); }
.calyear__m.is-current{ color:var(--accent-ink); box-shadow:var(--nm-sm); }
.calyear__m b{ display:block; font-size:10px; font-weight:700; margin-top:4px; color:var(--accent-ink); }

/* ============================================================
   PARTNERS
   ============================================================ */
.pstats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; max-width:720px; margin:0 auto clamp(20px,3vh,30px); }
.pstat{ text-align:center; padding:16px 14px; border-radius:var(--r-md); background:var(--bg); box-shadow:var(--nm); }
.pstat b{ display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(1.6rem,1.2rem + 1.4vw,2.3rem); color:var(--accent-ink); line-height:1; }
.pstat span{ display:block; margin-top:6px; font-size:13px; color:var(--text-2); }

/* секция «Наши клиенты» - компактнее, чтобы помещалась в один экран */
#partners{ padding-top:clamp(34px,5vh,60px); padding-bottom:clamp(34px,5vh,60px); }
/* header→content gap unified to the site standard (.head default = clamp(34px,5vh,58px)) */
#partners .lead{ margin-top:12px; }
/* partner logos = 2 running ribbons БЕЗ белой панели (client 2026-06: «логотипы на прозрачном фоне,
   а не на белых заплатках»). Запечённый белый фон логотипа сливается с фоном страницы через multiply. */
.plents{ display:flex; flex-direction:column; gap:clamp(4px,0.7vw,9px); margin-top:clamp(18px,2.6vh,28px);
  background:transparent; border-radius:var(--r-xl); box-shadow:none; padding:clamp(10px,1.6vw,18px) 0; overflow:hidden; }
/* логотипы теперь реально прозрачные PNG → показываем в цвете, без multiply/grayscale */
#partners .plogo img{ filter:none; opacity:1; mix-blend-mode:normal; }
#partners .plogo:hover img{ filter:none; opacity:1; }
/* крупнее + плотнее (client: «логотипы очень мелкие — увеличить, между лого много места — убрать») */
#partners .plogo{ width:clamp(98px,7.6vw,124px); height:clamp(80px,6.8vw,96px); padding:3px 2px; margin:0; }
#partners .plogo img{ filter:none; opacity:1; max-height:clamp(70px,6.6vw,88px); }

/* ============================================================
   CAROUSELS (letters + video)
   ============================================================ */
.carnav{ display:flex; gap:10px; }
.carnav__b{ width:46px; height:46px; border-radius:50%; background:var(--bg); box-shadow:var(--nm-sm); cursor:pointer; color:var(--text-2); display:grid; place-items:center; transition:box-shadow .25s, color .2s, opacity .2s; }
.carnav__b:hover:not(:disabled){ color:var(--accent-ink); box-shadow:var(--nm); }
.carnav__b:disabled{ opacity:.35; cursor:default; }
/* vertical padding so the hover-lift isn't clipped by overflow:hidden (client: «при увеличении обрезаются») */
.carousel{ overflow:hidden; padding:16px 0; }
/* flank layout: nav arrows at the sides of the track, vertically centered (same pattern as reviews wall) */
.carousel--flank{ display:flex; align-items:center; gap:10px; overflow:visible; padding:0; }
.carousel__clip{ flex:1; min-width:0; overflow:hidden; padding:16px 0; }
/* mobile: no room for flanking buttons, overlay them on the track edges (arrows are the only nav here) */
@media (max-width:680px){
  .carousel--flank{ position:relative; }
  .carousel--flank .carnav__b{ position:absolute; z-index:3; top:calc(50% - 23px); }
  .carousel--flank .carnav__b:first-child{ left:4px; }
  .carousel--flank .carnav__b:last-child{ right:4px; }
}
.carousel__track{ display:flex; gap:18px; transition:transform .5s var(--e-out); }

/* letters = floating white documents, no grey frame (client: «границы убрать») */
.letter{ flex:0 0 auto; width:248px; border-radius:var(--r); overflow:hidden; background:#fff; box-shadow:0 10px 26px rgba(40,50,66,.14); cursor:pointer; transition:transform .35s var(--e-soft), box-shadow .35s; }
.letter:hover{ transform:translateY(-6px); box-shadow:0 18px 44px rgba(40,50,66,.22); }
.letter img{ width:100%; height:300px; object-fit:cover; object-position:top; display:block; background:#fff; }
.letter span{ display:block; padding:12px 16px; font-size:13px; font-weight:600; color:var(--text); }

.vidcard{ flex:0 0 auto; width:min(300px,84vw); border-radius:var(--r-lg); overflow:hidden; background:var(--bg); box-shadow:var(--nm); cursor:pointer; transition:transform .3s var(--e-soft), box-shadow .35s; position:relative; }
.vidcard:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.vidcard__thumb{ position:relative; height:180px; }
.vidcard__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.vidcard__thumb::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,14,26,.05),rgba(8,14,26,.4)); }
.vidcard__play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--accent-ink); display:grid; place-items:center; box-shadow:0 8px 22px rgba(13,40,90,.3); }
.vidcard__play svg{ margin-left:3px; }
.vidcard__body{ padding:14px 18px; }
.vidcard__t{ font-weight:600; font-size:.98rem; color:var(--text); line-height:1.3; }
.vidcard__seg{ font-size:12.5px; color:var(--text-2); margin-top:5px; }

/* ============================================================
   LICENSES
   ============================================================ */
.lics{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.8vw,22px); margin-top:clamp(28px,4vh,42px); align-items:stretch; }
.lic{ display:flex; flex-direction:column; background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm); padding:clamp(20px,2.2vw,28px); transition:transform .3s var(--e-soft), box-shadow .35s; }
.lic:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
/* license title = plain heading on the card surface (client: убрать инсет-плашку, текст на сплошном фоне) */
.lic h3, .lic__b{ display:block; width:auto; min-height:2.52em; margin:0 0 8px; padding:0; background:none; box-shadow:none; border-radius:0; text-align:center; font-family:var(--font-display); font-weight:800; font-size:clamp(1rem,.9rem + .4vw,1.18rem); letter-spacing:-.02em; line-height:1.26; color:var(--accent-ink); }
.lic p{ color:var(--text-2); font-size:.9rem; margin:0 0 16px; line-height:1.4; text-align:center; min-height:2.8em; }
/* real document scan thumbnail fills the card, opens lightbox (#3) */
.lic__doc{ margin-top:auto; cursor:zoom-in; background:none; padding:0; width:100%; border:0; position:relative; display:block; border-radius:var(--r); overflow:hidden; box-shadow:var(--nm-inset-sm); }
.lic__doc img{ display:block; width:100%; height:128px; object-fit:cover; object-position:top center; border-radius:var(--r); background:#fff; transition:transform .4s var(--e-out); }
.lic__doc:hover img{ transform:scale(1.06); }
/* hover magnifier overlay; click opens the lightbox (docsLightbox) */
.lic__zoom{ position:absolute; inset:0; display:grid; place-items:center; opacity:0; border-radius:var(--r);
  background:linear-gradient(180deg,rgba(13,40,90,.10),rgba(13,40,90,.34)); transition:opacity .3s var(--e-out); }
.lic__doc:hover .lic__zoom{ opacity:1; }
.lic__zoom svg{ width:46px; height:46px; color:#fff; background:rgba(45,127,249,.95); border-radius:50%; padding:11px;
  box-shadow:0 8px 20px rgba(13,40,90,.34); transform:scale(.85); transition:transform .3s var(--e-out); }
.lic__doc:hover .lic__zoom svg{ transform:scale(1); }

/* ============================================================
   PLACEMENT (deliverables)
   ============================================================ */
.deliv{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(14px,1.8vw,22px); margin-top:clamp(28px,4vh,42px); }
.deliv--5{ grid-template-columns:repeat(5,1fr); gap:12px; align-items:stretch; }
.deliv--5 .dcard{ text-align:left; display:flex; flex-direction:column; }
#placement .wrap{ max-width:1340px; }
/* компакт-карточки по строгой сетке (одобрено 02.07): иконка-чип В СТРОКЕ с заголовком,
   текст слева, ровные высоты; тексты ben1-ben5 выровнены по 5 строк (лист «Главная») */
#placement .dcard--3d{ padding:16px 16px 15px; }
#placement .dcard__head{ display:flex; align-items:center; gap:10px; margin:0 0 9px; min-height:38px; }
#placement .dcard h3{ min-height:0; line-height:1.22; margin:0; display:flex; align-items:center; justify-content:flex-start; text-align:left; font-size:.97rem; }
.dcard--3d{ position:relative; overflow:visible; }
.dcard__corner{ display:block; width:clamp(72px,7.2vw,94px); height:auto; margin:0 auto clamp(8px,1.2vw,14px);
  filter:drop-shadow(0 11px 18px rgba(45,127,249,.24)); transition:transform .4s var(--e-out); }
.dcard--3d:hover .dcard__corner{ transform:translateY(-5px); }
#placement .dcard__ic{ width:38px; height:38px; border-radius:11px; margin:0; flex:none; box-shadow:var(--nm-inset-sm); color:var(--accent-ink); }
#placement .dcard__ic svg{ width:20px; height:20px; }
#placement .dcard p{ font-size:.85rem; line-height:1.45; text-align:left; }
@media (max-width:1080px){ .deliv--5{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:720px){ .deliv--5{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:460px){ .deliv--5{ grid-template-columns:1fr; } }
.dcard{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm); padding:clamp(22px,2.4vw,30px); transition:transform .3s var(--e-soft), box-shadow .35s; }
.dcard:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.dcard--doc{ grid-row:span 1; }
.dcard__ic{ width:54px; height:54px; border-radius:16px; display:grid; place-items:center; box-shadow:var(--nm-inset-sm); color:var(--accent-ink); margin-bottom:18px; }
.dcard h3{ font-family:var(--font-display); font-weight:700; font-size:1.12rem; letter-spacing:-.02em; color:var(--text); margin:0 0 10px; }
.dcard p{ color:var(--text-2); font-size:.94rem; line-height:1.55; margin:0; }
.dcard__toggle{ margin-top:16px; font-family:var(--font-body); font-weight:600; font-size:13.5px; color:var(--accent-ink); background:none; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
.dcard__toggle span{ transition:transform .3s var(--e-out); }
.dcard__toggle.is-open span{ transform:rotate(180deg); }
.dcard__reveal{ max-height:0; overflow:hidden; transition:max-height .4s var(--e-io); }
.dcard__reveal ul{ margin:14px 0 0; padding-left:18px; }
.dcard__reveal li{ color:var(--text-2); font-size:.9rem; line-height:1.5; margin-bottom:9px; }
/* «Документы» - баннер во всю ширину: заголовок, описание и ряд реальных документов (#3) */
.dcard--feature{ grid-column:1 / -1; }
.dcard--feature:hover{ transform:none; box-shadow:var(--nm); }
.dcard--feature > p{ max-width:780px; }
/* compact benefit cards — strip of 5 under the documents banner */
.deliv .dcard:not(.dcard--feature){ padding:clamp(16px,1.5vw,22px); }
.deliv .dcard:not(.dcard--feature) .dcard__ic{ width:46px; height:46px; border-radius:13px; margin-bottom:13px; }
.deliv .dcard:not(.dcard--feature) h3{ font-size:1rem; margin-bottom:7px; }
.deliv .dcard:not(.dcard--feature) p{ font-size:.86rem; line-height:1.45; }
.docrow{ margin-top:clamp(20px,2.6vw,30px); display:grid; grid-template-columns:repeat(5,1fr); gap:clamp(12px,1.6vw,22px); }
@media (max-width:860px){ .docrow{ grid-template-columns:repeat(3,1fr); } }
.docrow__item{ cursor:pointer; background:none; border:0; padding:0; display:flex; flex-direction:column; align-items:center; gap:12px; }
.docrow__item img{ width:100%; aspect-ratio:1/1; object-fit:contain; background:#fff; border:1px solid rgba(255,255,255,.7); border-radius:16px; padding:clamp(12px,1.4vw,20px); box-shadow:var(--nm-sm); transition:transform .35s var(--e-out), box-shadow .35s; }
.docrow__item:hover img{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.docrow__cap{ font-size:13.5px; font-weight:700; color:var(--text); text-align:center; line-height:1.25; }
.docrow__cap small{ display:block; font-weight:500; font-size:11.5px; color:var(--text-2); margin-top:3px; }
@media (max-width:560px){
  .docrow{ grid-template-columns:repeat(2,1fr); gap:10px; }
  .docrow__item img{ padding:12px; border-radius:13px; }
  .docrow__cap{ font-size:11.5px; }
  .docrow__cap small{ font-size:10px; }
}
/* 5-я карточка «Сообщество» - горизонтальный баннер во всю ширину, контент распределён (#3) */
@media (min-width:981px){
  .deliv{ grid-template-columns:repeat(5,1fr); align-items:stretch; }
  .deliv .dcard--wide{ grid-column:1 / -1; display:flex; flex-direction:row; align-items:center; gap:clamp(22px,3vw,44px); }
  .deliv .dcard--wide .dcard__ic{ margin-bottom:0; flex:none; }
  .deliv .dcard--wide .dcard--wide__txt{ flex:1; display:flex; flex-direction:column; gap:6px; }
  .deliv .dcard--wide h3{ margin:0; }
  .deliv .dcard--wide p{ margin:0; max-width:none; font-size:1rem; }
}

/* ============================================================
   GRADUATES RIBBON (auto-scrolling marquee)
   ============================================================ */
.sec--grads{ overflow:hidden; padding-bottom:clamp(40px,6vh,72px); }
/* heading→gallery gap = site standard clamp(34px,5vh,58px): kill head's own margin (it's
   alone in .wrap and only stacks) and subtract the row's 22px shadow-clearance padding so
   the visible photos land on the standard offset, not 22px below it. */
.sec--grads .head{ margin-bottom:0; }
.grads{ margin-top:clamp(12px,calc(5vh - 22px),36px); position:relative;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%);
          mask-image:linear-gradient(90deg,transparent 0,#000 7%,#000 93%,transparent 100%); }
.grads__row{ overflow:hidden; padding:22px 0; }
.grads__track{ display:flex; gap:clamp(16px,2vw,26px); width:max-content; will-change:transform; animation:gradsScroll 60s linear infinite; }
.grads:hover .grads__track{ animation-play-state:paused; }
.gphoto{ flex:0 0 auto; width:clamp(260px,27vw,350px); height:clamp(196px,20vw,250px); margin:0; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--nm); background:var(--bg); transition:transform .45s var(--e-out), box-shadow .45s; }
.gphoto img{ width:100%; height:100%; object-fit:cover; display:block; }
.gphoto:hover{ transform:translateY(-7px) scale(1.018); box-shadow:var(--nm-float); }
@keyframes gradsScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .grads__track{ animation:none; } .grads__row{ overflow-x:auto; -webkit-overflow-scrolling:touch; } }
@media (max-width:560px){ .gphoto{ width:228px; height:168px; } .grads__track{ animation-duration:45s; } }

/* ============================================================
   REVIEWS
   ============================================================ */
.revgrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); margin-top:clamp(20px,3vh,32px); }
.rev{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm); padding:clamp(22px,2.2vw,28px); display:flex; flex-direction:column; }
.rev__q{ font-family:var(--font-display); font-size:2.6rem; line-height:.6; color:var(--accent-soft); height:24px; }
.rev__text{ color:var(--text); font-size:.95rem; line-height:1.6; margin:6px 0 18px; flex:1; }
.rev__who{ display:flex; align-items:center; gap:12px; }
.rev__ava{ width:44px; height:44px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:.95rem; color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); flex-shrink:0; }
.rev__name{ font-weight:600; font-size:.95rem; color:var(--text); }
.rev__role{ font-size:.8rem; color:var(--text-2); }
.vidblock{ margin-top:clamp(34px,5vh,56px); }
.vidblock__t{ font-family:var(--font-display); font-weight:700; font-size:1.4rem; letter-spacing:-.02em; color:var(--text); margin:0; }

/* ============================================================
   COST CTA
   ============================================================ */
.costcta{ display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap; background:linear-gradient(135deg,#0d1e3a,#13243f); color:#fff; border-radius:var(--r-xl); padding:clamp(34px,5vw,64px); box-shadow:var(--nm-lg); position:relative; overflow:hidden; }
.costcta::before{ content:""; position:absolute; right:-80px; top:-80px; width:320px; height:320px; border-radius:50%; background:radial-gradient(circle, rgba(45,127,249,.35), transparent 70%); }
.costcta__l{ position:relative; z-index:1; flex:1 1 440px; }
.costcta .tag--blue{ box-shadow:none; }
.costcta__h{ font-family:var(--font-display); font-weight:800; font-size:clamp(2rem,1.4rem + 2.6vw,3.4rem); letter-spacing:-.03em; line-height:1.02; margin:14px 0 14px; }
.costcta__p{ color:rgba(255,255,255,.82); font-size:1.05rem; line-height:1.55; max-width:520px; margin:0; }
.costcta__btn{ position:relative; z-index:1; background:#fff; color:var(--accent-ink); box-shadow:0 14px 34px rgba(0,0,0,.3); flex-shrink:0; }
.costcta__btn:hover{ transform:translateY(-3px); }

/* ============================================================
   MODALS
   ============================================================ */
.modal{ position:fixed; inset:0; z-index:300; display:grid; place-items:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .35s var(--e-out), visibility .35s; }
.modal.is-open{ opacity:1; visibility:visible; }
.modal__overlay{ position:absolute; inset:0; background:rgba(20,28,44,.5); backdrop-filter:blur(5px); }
.modal__box{ position:relative; z-index:1; width:100%; max-width:480px; max-height:90vh; overflow-y:auto; background:var(--bg); border-radius:var(--r-xl); border:1px solid rgba(255,255,255,.65); box-shadow:0 34px 84px rgba(20,28,44,.34), 0 10px 30px rgba(20,28,44,.18); padding:clamp(28px,4vw,44px); transform:translateY(24px) scale(.98); transition:transform .4s var(--e-soft); }
.modal.is-open .modal__box{ transform:none; }
.modal__box--wide{ max-width:900px; }
.modal__close{ position:absolute; top:16px; right:16px; width:40px; height:40px; border-radius:50%; background:var(--bg); box-shadow:var(--nm-sm); cursor:pointer; color:var(--text-2); display:grid; place-items:center; transition:box-shadow .25s, color .2s; }
.modal__close:hover{ color:var(--accent-ink); box-shadow:var(--nm); }
.modal__title{ font-family:var(--font-display); font-weight:800; font-size:1.6rem; letter-spacing:-.02em; color:var(--text); margin:0 0 6px; }
.modal__sub{ color:var(--text-2); font-size:.95rem; margin:0 0 22px; }

.leadform{ position:relative; display:flex; flex-direction:column; gap:14px; }
.leadform__catalog{ font-family:var(--font-body); font-weight:600; font-size:14px; color:var(--accent-ink); background:none; cursor:pointer; text-align:left; padding:2px; }
.leadform__catalog:hover{ text-decoration:underline; }
.leadform__policy{ font-size:12px; color:var(--text-3); text-align:center; line-height:1.4; margin:2px 0 0; }
.leadform__ok{ position:absolute; inset:-24px; background:var(--bg); border-radius:0; display:none; flex-direction:column; align-items:center; justify-content:center; gap:10px; text-align:center; padding:24px; }
.leadform__ok.show{ display:flex; }
.leadform__ok svg{ color:var(--accent); }
.leadform__ok b{ font-family:var(--font-display); font-size:1.3rem; color:var(--text); }
.leadform__ok span{ color:var(--text-2); font-size:.92rem; }

.catalog{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.catalog__item{ text-align:left; cursor:pointer; padding:16px 18px; border-radius:var(--r); background:var(--bg); box-shadow:var(--nm-sm); transition:box-shadow .25s, transform .25s var(--e-soft); }
.catalog__item:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.catalog__t{ display:block; font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--text); margin-bottom:5px; }
.catalog__sub{ display:block; font-size:.85rem; color:var(--text-2); line-height:1.4; }

/* reviews modal */
/* reset leaked inset-pill container from style.css .revtabs */
.revtabs{ display:flex; gap:10px; margin-bottom:22px; flex-wrap:wrap; padding:0; border-radius:0; box-shadow:none; width:auto; }
.revtab{ font-family:var(--font-body); font-weight:600; font-size:14px; color:var(--text-2); padding:11px 20px; border-radius:var(--pill); background:var(--bg); box-shadow:var(--nm-sm); cursor:pointer; display:inline-flex; align-items:center; gap:8px; transition:box-shadow .25s, color .2s; }
.revtab b{ font-size:12px; color:var(--text-3); }
.revtab.is-active{ color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }
.revtab.is-active b{ color:rgba(255,255,255,.8); }
.revpane{ display:none; }
.revpane.is-active{ display:block; }
.revpane#rpane-text{ columns:2; column-gap:18px; }
@media (max-width:640px){ .revpane#rpane-text{ columns:1; } }
.review-full{ break-inside:avoid; background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm-sm); padding:22px; margin-bottom:18px; }
.review-full__q{ font-family:var(--font-display); font-size:2.2rem; line-height:.5; color:var(--accent-soft); }
.review-full__text{ color:var(--text); font-size:.92rem; line-height:1.6; margin:4px 0 14px; }
.review-full__who{ display:flex; align-items:center; gap:10px; }
.review-full__ava{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:.85rem; color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); flex-shrink:0; }
.review-full__name{ font-weight:600; font-size:.9rem; color:var(--text); }
.review-full__role{ font-size:.78rem; color:var(--text-2); }
.revpane#rpane-video, .revpane#rpane-photo{ display:none; }
.revpane#rpane-video.is-active, .revpane#rpane-photo.is-active{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:640px){ .revpane#rpane-video.is-active, .revpane#rpane-photo.is-active{ grid-template-columns:repeat(2,1fr); } }
.vcell, .pcell{ position:relative; border-radius:var(--r); overflow:hidden; box-shadow:var(--nm-sm); cursor:pointer; aspect-ratio:16/10; background:#0e1726; }
.vcell img, .pcell img{ width:100%; height:100%; object-fit:cover; }
.vcell::after{ content:""; position:absolute; inset:0; background:rgba(8,14,26,.25); }
.vcell__play{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,.92); color:var(--accent-ink); display:grid; place-items:center; }
.vcell iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:3; }

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lb{ position:fixed; inset:0; z-index:400; display:grid; place-items:center; padding:40px; opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
.lb.is-open{ opacity:1; visibility:visible; }
.lb__overlay{ position:absolute; inset:0; background:rgba(12,18,30,.86); }
.lb__stage{ position:relative; z-index:1; max-width:min(900px,92vw); max-height:88vh; }
.lb__stage img{ max-width:100%; max-height:88vh; border-radius:var(--r); box-shadow:0 30px 80px rgba(0,0,0,.5); display:block; }
.lb__stage iframe{ width:min(900px,92vw); aspect-ratio:16/9; border:0; border-radius:var(--r); }
/* фасад-постер видео (своя миниатюра + play): прячет «сломанный» паузный постер RuTube в модалке */
.lb__stage .lb__poster{ position:relative; display:block; width:min(900px,92vw); aspect-ratio:16/9; padding:0; border:0; cursor:pointer; background:#000; border-radius:var(--r); overflow:hidden; }
.lb__stage .lb__poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.lb__stage .lb__poster::before{ content:""; position:absolute; inset:0; background:linear-gradient(rgba(12,18,30,.12), rgba(12,18,30,.34)); }
.lb__stage .lb__posterplay{ position:absolute; inset:0; display:grid; place-items:center; }
.lb__stage .lb__posterplay span{ width:72px; height:72px; border-radius:50%; background:rgba(255,255,255,.94); box-shadow:0 12px 34px rgba(0,0,0,.5); display:grid; place-items:center; transition:transform .2s; }
.lb__stage .lb__poster:hover .lb__posterplay span{ transform:scale(1.08); }
.lb__stage .lb__posterplay svg{ color:var(--accent); margin-left:4px; }
.lb__close{ position:absolute; top:24px; right:28px; z-index:2; width:46px; height:46px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; display:grid; place-items:center; }
.lb__close:hover{ background:rgba(255,255,255,.22); }
.lb__nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:54px; height:54px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; cursor:pointer; display:grid; place-items:center; }
.lb__nav:hover{ background:rgba(255,255,255,.22); }
.lb__prev{ left:24px; } .lb__next{ right:24px; }

/* ============================================================
   COOKIE
   ============================================================ */
/* .cookie - перенесён в style.css (единый стандарт, грузится на всех страницах) */

/* reviews «уменьшить блоки» compact cards are now the single base standard in style.css (.rcard) */

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .hero__grid{ grid-template-columns:1fr; }
  .hero__left{ order:0; }      /* UTP headline leads on mobile */
  .hero__right{ order:1; margin-top:clamp(24px,4vh,34px); }
  .hero__media{ min-height:260px; max-width:none; margin:0; } /* override style.css @980 .hero__media max-width:560/margin:auto */
  .hero__founder{ max-width:480px; margin:0 auto; width:100%; }
  .hero__founder-quote{ text-align:center; padding-left:0; margin-inline:auto; max-width:440px; }
  .hero__founder-quote blockquote{ transform:none; }
  .hero__founder-quote blockquote::before{ display:none; }
  .hero__founder-quote figcaption{ align-items:center; }
  .hero__panels{ min-height:0; }
  /* Mobile: раньше длинный текст ложился ПОВЕРХ object-fit:contain картинки
     в фиксированной 330px-карточке -> картинка резалась в угол, текст плохо
     читался. Делаем чистый вертикальный стек: баннер-полоса (cover) сверху,
     текст на неоморф-фоне снизу, без наложения. */
  .hero__panel{ min-height:0; display:flex; flex-direction:column; }
  .hero__panel-media{ position:relative; inset:auto; order:-1; flex:none;
    height:clamp(150px,42vw,208px); border-radius:var(--r-md) var(--r-md) 0 0; overflow:hidden; }
  .hero__panel-media img{ object-fit:cover; object-position:center; }
  .hero__panel::before{ display:none; }
  .hero__panel-text{ max-width:100%; padding:clamp(20px,4.6vw,28px) clamp(20px,5vw,26px) clamp(24px,5vw,30px); }
  .hero__p{ min-height:0; }
  .hero__h{ white-space:normal; font-size:clamp(1.3rem,4.6vw,1.7rem); }
  .picks{ grid-template-columns:1fr; }
  .quiz__options{ grid-template-columns:1fr; }
  .qlist__grid{ grid-template-columns:1fr; }
  .quiz__alts-grid{ grid-template-columns:1fr; }
  .events__grid{ grid-template-columns:1fr; }
  .events__side{ position:static; }
  .lics{ grid-template-columns:repeat(2,1fr); }
  .deliv{ grid-template-columns:repeat(2,1fr); }
  .deliv .dcard:nth-child(5){ grid-column:auto; }
  .dcard--span{ grid-column:1 / -1; }
  .revgrid{ grid-template-columns:1fr; }
  .quiz__r-meta{ grid-template-columns:1fr; gap:14px; }
  .qlead{ flex-direction:column; }
  /* в колонке flex-basis становится высотой → поля раздувались в 180px-овалы. Фикс: авто-высота, во всю ширину */
  .qlead__in{ flex:0 0 auto; width:100%; border-radius:14px; padding:13px 18px; }
  .qlead__btn{ width:100%; }
  .qrow__rel{ display:none; }
  .catalog{ grid-template-columns:1fr; }
}
@media (max-width:560px){
  .hero__stats{ grid-template-columns:repeat(2,1fr); }
  .pstats{ grid-template-columns:1fr; }
  .lics{ grid-template-columns:1fr; }
  .deliv{ grid-template-columns:1fr; }
  .calyear__grid{ grid-template-columns:repeat(3,1fr); }
  .costcta__h{ font-size:2rem; }
  /* фавиконки направлений на мобиле не несут смысла (есть фото) - убираем */
  .pick__ic{ display:none; }
  /* заголовки секций на мобиле немного меньше (клиент: «шрифт разделов везде меньше», в 2 строки) */
  .title{ font-size:1.5rem; }
  .title--xl{ font-size:1.62rem; }
  /* лицензии: убрать лишний «воздух», название ECA/ICI/IN в 1 строку, фото лицензии крупнее */
  .lics{ gap:14px; margin-top:20px; }
  .lic{ padding:16px 16px 18px; }
  .lic__b{ min-height:0; margin-bottom:5px; font-size:1.05rem; }
  .lic__b br{ display:none; }
  .lic p{ min-height:0; margin-bottom:11px; }
  .lic__doc img{ height:210px; }
}

/* ===========================================================================
   FOUNDER QUOTE - handwritten (scoped, per client request)
   Loads after style.css so it overrides the global "no-script" rule
   for THIS quote only. The founder's personal line reads warmer by hand.
   =========================================================================== */
#founder .founder2__quote blockquote{
  font-family:'Caveat', cursive; font-weight:700; font-style:normal;
  font-size:clamp(1.75rem, 1.15rem + 1.8vw, 2.55rem); line-height:1.18;
  letter-spacing:0; color:var(--accent-ink);
}
#founder .founder2__quote blockquote::before{
  content:'\201C'; color:var(--accent); opacity:.45;
}
#founder .founder2__quote figcaption{
  font-family:'Caveat', cursive; font-weight:600;
  font-size:clamp(1.2rem, 1rem + .7vw, 1.55rem); color:var(--text-2);
}

/* podcast lightbox (открывается кнопкой «Подкаст» в hero) */
.pmodal{ position:fixed; inset:0; z-index:1200; display:none; place-items:center; padding:5vw;
  background:rgba(8,16,34,.74); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); opacity:0; transition:opacity .3s; }
.pmodal.open{ display:grid; opacity:1; }
.pmodal__overlay{ position:absolute; inset:0; }
.pmodal__box{ position:relative; z-index:1; width:min(980px,94vw); border-radius:18px; overflow:hidden;
  box-shadow:0 40px 90px rgba(0,0,0,.5); transform:scale(.96); transition:transform .35s var(--e-out); }
.pmodal.open .pmodal__box{ transform:scale(1); }
.pmodal__frame{ position:relative; width:100%; aspect-ratio:16/9; background:#000; }
.pmodal__frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.pmodal__close{ position:absolute; top:-46px; right:0; z-index:2; width:40px; height:40px; border-radius:50%; border:0; cursor:pointer;
  background:rgba(255,255,255,.16); color:#fff; display:grid; place-items:center; transition:background .2s; }
.pmodal__close:hover{ background:rgba(255,255,255,.3); }
