/* ===========================================================================
   МАБК v7 - soft-UI / neumorphism
   Light, airy, single blue accent. Reference: morg. portfolio.
   =========================================================================== */

/* ---------- Design tokens ---------- */
:root{
  /* surfaces - cold milky off-white. surface == bg (neumorphism rule) */
  --bg:        #E8ECF2;
  --bg-2:      #EEF1F6;
  --surface:   #E8ECF2;
  --raised:    #ECEFF4;

  /* text - contrast carried by color, not shadow */
  --text:      #2B3242;   /* ~9.8:1 on bg  (AAA) */
  --text-2:    #58637A;   /* ~4.8:1        (AA)  */
  --text-3:    #6B7385;   /* muted; darkened for WCAG AA readability on small text */

  /* single accent */
  --accent:    #2D7FF9;
  --accent-h:  #1E6FFF;
  --accent-ink:#0B5BD3;   /* blue TEXT/links, ~5.1:1 */
  --on-accent: #FFFFFF;
  --accent-soft:#DCE8FE;
  --live:      #34C759;   /* used only for a tiny "open intake" dot */

  /* neumorphic light sources */
  --nm-light:  #FFFFFF;
  --nm-dark:   #C6CCD8;

  --nm:        6px 6px 14px var(--nm-dark), -6px -6px 14px var(--nm-light);
  --nm-sm:     4px 4px 9px var(--nm-dark),  -4px -4px 9px var(--nm-light);
  --nm-lg:     11px 11px 26px var(--nm-dark), -9px -9px 22px var(--nm-light);
  --nm-float:  18px 20px 44px rgba(150,160,180,.55), -12px -12px 30px var(--nm-light);
  --nm-inset:  inset 5px 5px 11px var(--nm-dark), inset -5px -5px 11px var(--nm-light);
  --nm-inset-sm: inset 3px 3px 6px var(--nm-dark), inset -3px -3px 6px var(--nm-light);
  --nm-accent: 5px 6px 16px rgba(45,127,249,.40), -5px -5px 13px var(--nm-light);

  /* radii - large; sharp corners read dirty under double shadow */
  --r-sm: 14px; --r: 18px; --r-md: 24px; --r-lg: 32px; --r-xl: 42px; --pill: 999px;

  /* type */
  --font-display:'Onest', system-ui, sans-serif;
  --font-script:'Onest', system-ui, sans-serif; /* handwritten removed per client (no serif/script) */
  --font-body:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* rhythm + motion */
  --wrap: 1240px;
  --gut: clamp(18px, 5vw, 56px);
  --e-out: cubic-bezier(.22,1,.36,1);
  --e-io:  cubic-bezier(.76,0,.24,1);
  --e-soft:cubic-bezier(.34,1.4,.5,1);
}

/* ---------- Reset / base ---------- */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  font-size:17px; line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  position:relative; min-height:100vh;
}
body.lock{ overflow:hidden; }

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
svg{ display:block; }
::selection{ background:var(--accent); color:#fff; }

:focus-visible{ outline:3px solid var(--accent-ink); outline-offset:3px; border-radius:6px; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }

/* ambient blue/neutral aura - a single, very subtle breathing field */
.aurora{
  position:fixed; inset:-15vmax; z-index:0; pointer-events:none;
  filter:blur(48px); opacity:.85;
  transform:translateZ(0); will-change:transform; backface-visibility:hidden;
}
.aurora span{ position:absolute; border-radius:50%; display:block; }
.aurora .a1{ width:48vmax; height:48vmax; left:-6vmax; top:-4vmax;
  background:radial-gradient(circle, rgba(45,127,249,.16), transparent 70%); }
.aurora .a2{ width:42vmax; height:42vmax; right:-8vmax; top:8vmax;
  background:radial-gradient(circle, rgba(120,160,255,.13), transparent 70%); }
.aurora .a3{ width:40vmax; height:40vmax; left:18vmax; bottom:-12vmax;
  background:radial-gradient(circle, rgba(255,255,255,.6), transparent 70%); }
.aurora .a4{ width:30vmax; height:30vmax; right:14vmax; bottom:-6vmax;
  background:radial-gradient(circle, rgba(45,127,249,.10), transparent 70%); }

/* ---------- Scroll progress ---------- */
.progress{
  position:fixed; left:0; top:0; height:3px; width:100%; z-index:120;
  background:linear-gradient(90deg, var(--accent), var(--accent-h));
  transform:scaleX(0); transform-origin:0 50%;
}

/* ---------- Preloader ---------- */
.loader{
  position:fixed; inset:0; z-index:300;
  display:grid; place-content:center; justify-items:center; gap:26px;
  background:var(--bg);
}
.loader__mark{
  width:clamp(78px,11vw,108px); height:auto; display:block;
  opacity:0; transform:scale(.86);
  filter:drop-shadow(0 8px 18px rgba(45,80,160,.22));
}
.loader__bar{
  width:170px; height:8px; border-radius:var(--pill);
  box-shadow:var(--nm-inset-sm); overflow:hidden;
}
.loader__bar span{ display:block; height:100%; width:0;
  background:linear-gradient(90deg, var(--accent), var(--accent-h));
  border-radius:var(--pill); }

/* ---------- Buttons ---------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:10px; font-family:var(--font-body); font-weight:600; font-size:15.5px;
  line-height:1; letter-spacing:-.01em; color:var(--text);
  padding:16px 26px; border-radius:var(--pill);
  background:var(--bg); box-shadow:var(--nm);
  transition:box-shadow .35s var(--e-out), transform .35s var(--e-soft), color .25s, background .25s;
  will-change:transform;
}
.btn svg{ transition:transform .35s var(--e-out); }
.btn:hover{ transform:translateY(-2px); }
.btn:hover svg{ transform:translateX(4px); }
.btn:active{ box-shadow:var(--nm-inset); transform:translateY(0); }

.btn--primary{
  background:linear-gradient(135deg, var(--accent), var(--accent-h));
  color:var(--on-accent); box-shadow:var(--nm-accent);
}
.btn--primary:hover{ box-shadow:8px 9px 22px rgba(45,127,249,.5), -5px -5px 13px var(--nm-light); }
.btn--primary:active{ box-shadow:inset 4px 4px 10px rgba(11,91,211,.55), inset -3px -3px 8px rgba(120,170,255,.5); }

.btn--ghost{ background:var(--bg); color:var(--text); box-shadow:var(--nm); }
.btn--sm{ padding:12px 20px; font-size:14.5px; }
.btn--lg{ padding:19px 32px; font-size:16.5px; }

/* ---------- Empty schedule state (shared: school / course / inline widget) ----------
   Нет ближайших дат -> не мёртвый текст, а карточка с CTA (window.leadEmptyState). */
.led-empty{ display:flex; flex-direction:column; align-items:center; text-align:center;
  gap:16px; padding:34px 24px; background:var(--raised); border-radius:20px; box-shadow:var(--nm-sm); }
.led-empty__ic{ display:inline-flex; align-items:center; justify-content:center;
  width:58px; height:58px; border-radius:50%; color:var(--accent-ink);
  background:var(--bg); box-shadow:var(--nm-sm); }
.led-empty__txt{ margin:0; max-width:36rem; color:var(--text-2);
  font-size:1.02rem; line-height:1.55; }
.led-empty__acts{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
@media (max-width:430px){
  .led-empty{ padding:28px 18px; }
  .led-empty__acts{ flex-direction:column; align-self:stretch; }
  .led-empty__acts .btn{ width:100%; }
}

/* ---------- Keyboard focus (a11y) - viden tolko pri navigacii s klaviatury ---------- */
.btn:focus-visible, .nav__pill a:focus-visible, .nav__phone:focus-visible,
.brand:focus-visible, .burger:focus-visible{
  outline:2px solid var(--accent); outline-offset:3px;
}


/* ---------- Navigation ---------- */
.nav{
  position:fixed; top:18px; left:50%; transform:translateX(-50%);
  z-index:110; width:min(calc(100% - 2*var(--gut)), var(--wrap));
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:11px 11px 11px 20px; border-radius:var(--pill);
  background:rgba(238,241,246,.94);
  box-shadow:var(--nm);
  transition:box-shadow .4s, top .4s var(--e-out), transform .4s var(--e-out);
}
.nav.scrolled{ box-shadow:5px 5px 16px rgba(150,160,180,.5), -5px -5px 14px var(--nm-light); }
.nav.hidden{ transform:translateX(-50%) translateY(-150%); }

.brand{ display:flex; align-items:center; gap:1px; flex-shrink:0; font-family:var(--font-display);
  font-weight:800; font-size:23px; letter-spacing:-.03em; color:var(--text); }
.brand__img{ height:clamp(34px,3.4vw,42px); width:auto; display:block;
  filter:drop-shadow(0 4px 8px rgba(45,80,160,.22)); }
/* лого-локап (плитки+текст одной картинкой) на десктопе, плитки на узких экранах */
.brand__lockup{ display:block; height:clamp(34px,3.4vw,46px); width:auto; }
.brand:has(.brand__lockup) .brand__img{ display:none; }
.footer .brand__lockup{ height:clamp(40px,4vw,54px); }
@media (max-width:1360px){ .brand__lockup{ display:none; } .brand:has(.brand__lockup) .brand__img{ display:block; } }
/* подвал: всегда полный логотип с расшифровкой (перебивает правило выше) */
.footer .brand:has(.brand__lockup) .brand__lockup{ display:block; }
.footer .brand:has(.brand__lockup) .brand__img{ display:none; }
.brand__dot{ width:7px; height:7px; border-radius:50%; background:var(--accent);
  margin-bottom:6px; box-shadow:0 0 10px rgba(45,127,249,.6); }

.nav__pill{ display:flex; align-items:center; gap:3px; padding:5px;
  border-radius:var(--pill); box-shadow:var(--nm-inset-sm); flex-shrink:0; }
.nav__pill a{ font-size:14.5px; font-weight:500; color:var(--text-2); white-space:nowrap;
  padding:9px 13px; border-radius:var(--pill); transition:color .25s, box-shadow .3s, background .3s; }
.nav__pill a:hover{ color:var(--text); }
.nav__pill a.is-active{ color:var(--accent-ink); font-weight:600;
  background:var(--bg); box-shadow:var(--nm-sm); }

.nav__right{ display:flex; align-items:center; gap:14px; }
/* соцсети в шапке (client R3) — компактный кластер, прячется на узких десктопах */
.nav__soc{ display:flex; align-items:center; gap:6px; }
.nav__soc a{ display:grid; place-content:center; width:32px; height:32px; border-radius:50%; color:var(--text-2); box-shadow:var(--nm-sm); transition:color .2s, box-shadow .2s, transform .2s; }
.nav__soc a:hover{ color:var(--accent-ink); transform:translateY(-1px); box-shadow:var(--nm); }
@media (max-width:1240px){ .nav__soc{ display:none; } }
.nav__phone{ font-weight:600; font-size:15px; color:var(--text); letter-spacing:-.01em;
  white-space:nowrap; transition:color .25s; }
.nav__phone:hover{ color:var(--accent-ink); }
/* CTA в шапке: одна строка, не сжимается; на узких десктопах прячется (CTA героя рядом) */
.nav__signup{ white-space:nowrap; flex:none; padding:12px 18px; font-size:14px; }
@media (max-width:1120px){ .nav__signup{ display:none; } }

/* меню-контрол: 2 полоски + подпись «Разделы сайта» (на узких подпись прячется) */
.nav__mob{ display:none; align-items:center; gap:8px; flex-shrink:0; }
.burger{ display:none; align-items:center; gap:9px; height:46px; padding:0 15px;
  border-radius:var(--pill); box-shadow:var(--nm); }
.burger__box{ display:flex; flex-direction:column; justify-content:center; width:18px; height:13px; }
.burger__box span{ display:block; width:18px; height:2px; background:var(--text);
  border-radius:2px; margin:2.5px 0; transition:transform .35s var(--e-out), opacity .25s; }
.burger.open .burger__box span:nth-child(1){ transform:translateY(4.5px) rotate(45deg); }
.burger.open .burger__box span:nth-child(2){ transform:translateY(-4.5px) rotate(-45deg); }
.burger__label{ font-family:var(--font-display); font-weight:600; font-size:13px;
  color:var(--text); white-space:nowrap; letter-spacing:-.01em; }
/* фавиконки-кнопки в шапке: позвонить / написать в чат */
.navicon{ display:inline-grid; place-items:center; width:46px; height:46px; border-radius:50%;
  box-shadow:var(--nm); color:var(--accent-ink); flex:none; transition:box-shadow .25s, transform .2s; }
.navicon:hover{ box-shadow:var(--nm-sm); }
.navicon:active{ box-shadow:var(--nm-inset); transform:translateY(1px); }

.mobilemenu{
  position:fixed; inset:0 0 0 auto; width:min(82vw,360px); z-index:105;
  background:var(--bg); box-shadow:var(--nm-lg);
  display:flex; flex-direction:column; gap:6px; padding:104px 26px 32px;
  transform:translateX(110%); transition:transform .5s var(--e-io); visibility:hidden;
}
.mobilemenu.open{ transform:none; visibility:visible; }
.mobilemenu a{ font-size:18px; font-weight:600; padding:15px 18px; border-radius:var(--r);
  color:var(--text); }
.mobilemenu a:active{ box-shadow:var(--nm-inset); }
.mobilemenu .btn{ margin-top:14px; }

/* ===========================================================================
   HERO
   =========================================================================== */
.hero{
  position:relative; z-index:1;
  min-height:100svh;
  max-width:var(--wrap); margin-inline:auto;
  padding:clamp(92px,12vh,136px) var(--gut) clamp(40px,5vh,60px);
  display:flex; flex-direction:row; align-items:center; gap:clamp(20px,3vw,48px);
  text-align:left; overflow:hidden;
}
.hero__head{ position:relative; z-index:6; flex:0 0 50%; max-width:600px; align-self:center; }

/* hero video CAROUSEL (2 placeholder slides until clips are chosen) */
.hero__vcar{ position:relative; width:100%; aspect-ratio:4/3; border-radius:var(--r-lg);
  box-shadow:var(--nm-lg); overflow:hidden; isolation:isolate; }
.hero__vcar-track{ position:absolute; inset:0; }
.hero__vslide{ position:absolute; inset:0; display:grid; place-items:center;
  background:linear-gradient(145deg,#EDF1F7,#E3E8F1);
  opacity:0; visibility:hidden; transition:opacity .55s var(--e-out), visibility .55s; }
.hero__vslide.is-active{ opacity:1; visibility:visible; }
.hero__vcar-dots{ position:absolute; left:50%; bottom:13px; transform:translateX(-50%); z-index:5; display:inline-flex; gap:8px; }
.hero__vdot{ width:9px; height:9px; border-radius:50%; background:rgba(120,134,160,.45); box-shadow:var(--nm-inset-sm); transition:background .25s, transform .25s; }
.hero__vdot.is-active{ background:var(--accent); transform:scale(1.2); }
.hero__video-glow{ position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(circle at 50% 40%, rgba(45,127,249,.16), transparent 62%); }
.hero__video-eq{ position:absolute; left:18px; bottom:16px; z-index:2; display:inline-flex; align-items:flex-end; gap:4px; height:26px; }
.hero__video-eq i{ width:4px; height:40%; background:var(--accent); border-radius:2px; opacity:.65; animation:eqbar 1s ease-in-out infinite; }
.hero__video-eq i:nth-child(2){ animation-delay:.18s; } .hero__video-eq i:nth-child(3){ animation-delay:.36s; }
.hero__video-eq i:nth-child(4){ animation-delay:.1s; } .hero__video-eq i:nth-child(5){ animation-delay:.46s; }
@keyframes eqbar{ 0%,100%{ height:25%; } 50%{ height:95%; } }
.hero__video-play{ position:relative; z-index:2; width:clamp(64px,7vw,86px); height:clamp(64px,7vw,86px); border-radius:50%;
  display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h));
  box-shadow:0 16px 34px rgba(45,127,249,.42), inset 0 1px 0 rgba(255,255,255,.4);
  animation:heropulse 2.6s ease-in-out infinite; transition:transform .3s var(--e-soft); }
.hero__video-play svg{ margin-left:5px; }
.hero__video-play:hover{ transform:scale(1.07); }
@keyframes heropulse{ 0%,100%{ box-shadow:0 16px 34px rgba(45,127,249,.42), inset 0 1px 0 rgba(255,255,255,.4); }
  50%{ box-shadow:0 16px 44px rgba(45,127,249,.6), 0 0 0 10px rgba(45,127,249,.09), inset 0 1px 0 rgba(255,255,255,.4); } }
.hero__video-label{ position:absolute; right:18px; top:16px; z-index:2; font-size:13px; font-weight:600; color:var(--text-2); }
@media (prefers-reduced-motion:reduce){ .hero__video-play,.hero__video-eq i{ animation:none; } }

/* hero headline rotating word (1618.help-style "= <word>") */
.hero__rotate{ display:inline-flex; align-items:center; gap:10px; margin:clamp(10px,1.6vh,18px) 0 0;
  font-family:var(--font-display); font-weight:800; color:var(--accent-ink);
  font-size:clamp(1.2rem,1vw + 1vh,1.9rem); line-height:1.12; min-height:1.3em; }
.hero__rotate-mark{ flex:none; color:var(--accent); }
.hero__rotate-w{ display:inline-block; transition:opacity .24s ease, transform .24s ease; will-change:opacity, transform; }

/* hero accent word in headline */
.hero__title .c-accent{ color:var(--accent-ink);
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 5px rgba(45,127,249,.28); }

/* hero UTP carousel - ONE neumorphic card: 2x2 tabs + auto-rotating fact + progress */
.hero__utp{ margin-top:clamp(30px,5vh,56px); max-width:560px; padding:clamp(15px,1.8vw,20px);
  border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm); }
.hero__utp-body{ position:relative; }
.hero__utp-kicker{ display:inline-block; font-weight:600; font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--accent-ink); margin-bottom:11px; }
.hero__utp-metrics{ display:flex; align-items:center; gap:10px; margin-bottom:9px; transition:opacity .22s ease; }
.hero__utp-metrics b{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.05rem,1.3vw,1.32rem); color:var(--accent-ink); line-height:1; }
.hero__utp-metrics i{ width:5px; height:5px; border-radius:50%; background:var(--accent); opacity:.5; flex:none; }
.hero__utp-h{ margin:0 0 7px; font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,1.15vw,1.18rem); color:var(--text); line-height:1.22; transition:opacity .22s ease; }
.hero__utp-text{ margin:0; color:var(--text-2); font-size:clamp(.9rem,1vw,1rem); line-height:1.5; min-height:6.6em; transition:opacity .22s ease; }
/* carousel navigation: arrows + dots */
.hero__utp-nav{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:16px; }
.hero__utp-arrow{ flex:none; width:38px; height:38px; border-radius:50%; display:grid; place-items:center;
  color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); transition:box-shadow .25s, transform .25s, color .25s; }
.hero__utp-arrow:hover{ transform:translateY(-1px); box-shadow:var(--nm); color:var(--accent); }
.hero__utp-arrow:active{ box-shadow:var(--nm-inset-sm); }
.hero__utp-dots{ display:inline-flex; align-items:center; gap:8px; }
.hero__utp-dot{ width:9px; height:9px; border-radius:50%; background:rgba(120,134,160,.4); box-shadow:var(--nm-inset-sm);
  transition:background .3s, width .3s; }
.hero__utp-dot.is-active{ width:24px; border-radius:5px; background:linear-gradient(90deg,var(--accent),var(--accent-h)); box-shadow:none; }


.hero__kicker{ font-family:var(--font-body); font-weight:600; font-size:clamp(11px,1vw,13px);
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent-ink);
  margin-bottom:15px; display:inline-flex; align-items:center; gap:11px; line-height:1.4; max-width:420px; }
.hero__kicker::before{ content:''; flex:none; width:26px; height:2px; background:var(--accent); border-radius:2px; }

.hero__title{
  font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.95rem, 2.3vw + 2vh, 4.1rem); line-height:1.02; letter-spacing:-.032em;
  color:var(--text); text-transform:uppercase;
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 4px rgba(150,162,185,.55);
}
.hero__title .line{ display:block; overflow:hidden; }
.hero__title .line__in{ display:block; }
.hero__title b{ font-weight:800; color:var(--accent-ink);
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 5px rgba(45,127,249,.28); }

.hero__sub{ margin:clamp(9px,1.5vh,16px) 0 0; max-width:430px; color:var(--text-2);
  font-size:clamp(.95rem,1.4vw,1.06rem); line-height:1.5; }

.hero__cta{ margin-top:clamp(16px,2.6vh,30px); display:flex; flex-direction:row; flex-wrap:nowrap; gap:12px; align-items:center; }
.hero__cta .btn{ padding-left:clamp(18px,1.8vw,26px); padding-right:clamp(18px,1.8vw,26px); white-space:nowrap; }

/* ---- stage: photo in the centre, cards floating around, links between ---- */
.hero__media{
  position:relative; z-index:2;
  flex:1 1 56%; min-width:0; align-self:center;
}

@keyframes pulse{ 0%{ transform:scale(.6); opacity:.7 } 100%{ transform:scale(1.5); opacity:0 } }
/* ---------- reveal base ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--e-out), transform .8s var(--e-out); }
.reveal.is-in{ opacity:1; transform:none; }
html:not(.js) .reveal{ opacity:1; transform:none; }

/* ===========================================================================
   SECTIONS (stage B) - same soft-UI / neumorphism language
   =========================================================================== */
.sec{ position:relative; z-index:1; padding:clamp(48px,6vh,80px) 0; }
.sec--tight{ padding:clamp(36px,4.5vh,60px) 0; }

.head{ display:flex; align-items:flex-end; justify-content:space-between;
  gap:28px; margin-bottom:clamp(34px,5vh,58px); }
.head__left{ max-width:760px; }
.head__right{ max-width:340px; color:var(--text-2); font-size:1.02rem; line-height:1.55; padding-bottom:6px; }

.tag{ display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body);
  font-weight:600; font-size:12px; letter-spacing:.13em; text-transform:uppercase;
  color:var(--accent-ink); padding:9px 16px; border-radius:var(--pill);
  box-shadow:var(--nm-inset-sm); margin-bottom:18px; }
.tag--blue{ color:var(--on-accent); background:linear-gradient(135deg,var(--accent),var(--accent-h));
  box-shadow:var(--nm-accent); }

.title{ font-family:var(--font-display); font-weight:800;
  font-size:clamp(1.5rem,1.05rem + 1.9vw,2.75rem); line-height:1.06; letter-spacing:-.032em; /* меньше УТП/hero (client R3) */
  color:var(--text); text-transform:uppercase;
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 4px rgba(150,162,185,.45); }
.title .c-accent, .title .c-brand{ color:var(--accent-ink);
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 5px rgba(45,127,249,.26); }
.lead{ color:var(--text-2); font-size:1.08rem; line-height:1.6; }

/* ---- card base ---- */
.nmcard{ background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm);
  transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft); }
.nmcard:hover{ box-shadow:var(--nm-float); transform:translateY(-4px); }

/* ---- accent feature panel (rhythm: a few blue blocks) ---- */
.panel--accent{ position:relative; overflow:hidden;
  background:linear-gradient(135deg,#2D7FF9 0%, #1E6FFF 60%, #0B5BD3 100%);
  color:var(--on-accent); border-radius:var(--r-xl);
  box-shadow:14px 16px 38px rgba(45,127,249,.34), -8px -8px 20px var(--nm-light); }
.panel--accent::after{ content:''; position:absolute; right:-12%; top:-40%;
  width:50%; height:180%; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(255,255,255,.18), transparent 70%); }

/* ---------- Partners marquee ---------- */
.partners__inner{ padding:clamp(22px,2.6vw,30px) clamp(18px,3vw,38px); border-radius:var(--r-xl);
  background:#fff; box-shadow:var(--nm); }
.partners__label{ text-align:center; color:var(--text-2); font-size:13.5px; font-weight:600;
  letter-spacing:.04em; margin-bottom:16px; }
.marquee{ overflow:hidden; -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.marquee + .marquee{ margin-top:0; }
.marquee__row{ display:inline-flex; align-items:center; gap:0; white-space:nowrap;
  will-change:transform; animation:marq 64s linear infinite; }
.marquee__row--rev{ animation-direction:reverse; }
.marquee:hover .marquee__row{ animation-play-state:paused; }
.marquee__row span{ font-family:var(--font-display); font-weight:700; font-size:clamp(1rem,1.6vw,1.32rem);
  color:var(--text); opacity:.62; padding:0 30px; letter-spacing:-.01em; }
.marquee__row i{ width:6px; height:6px; border-radius:50%; background:var(--accent); opacity:.5; flex:none; }
@keyframes marq{ to{ transform:translateX(-50%); } }
/* real partner logos as neumorphic cards - bigger, hover-zoom */
.plogo{ flex:none; display:grid; place-items:center; width:clamp(108px,9.5vw,148px); height:clamp(70px,7vw,90px);
  margin:0 2px; background:transparent; box-shadow:none; padding:8px 10px;
  position:relative; transition:transform .3s var(--e-soft); }
.plogo:hover{ transform:scale(1.16); z-index:3; }
/* white panel + multiply: each logo's baked-in white bg blends into white. Some logos are saved on a
   slightly off-white / JPEG bg (~#F2) which would leave a faint rectangle - brightness+contrast lifts
   those near-white pixels to pure 255 (vanish under multiply) while darkening the marks. */
.plogo img{ max-width:100%; max-height:clamp(40px,4.5vw,56px); width:auto; height:auto; object-fit:contain;
  mix-blend-mode:multiply; filter:grayscale(1) brightness(1.08) contrast(1.25); opacity:.78;
  transition:filter .35s ease, opacity .35s ease; }
.plogo:hover img{ filter:grayscale(0) brightness(1.04) contrast(1.05); opacity:1; }
@media (prefers-reduced-motion:reduce){ .marquee__row{ animation:none; } }
/* gentle attention pulse on the year-schedule button */
@keyframes yearpulse{ 0%,100%{ box-shadow:var(--nm-accent); } 50%{ box-shadow:6px 9px 24px rgba(45,127,249,.6), -5px -5px 13px var(--nm-light); } }
.schedule__year{ animation:yearpulse 2.6s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce){ .schedule__year{ animation:none; } }

/* ---------- Intake / urgency (accent panel + countdown) ---------- */
.intake__inner{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:22px; padding:clamp(20px,3vw,30px) clamp(22px,3.2vw,40px); }
.intake__left{ display:flex; align-items:center; gap:16px; }
.intake__pulse{ position:relative; flex:none; width:13px; height:13px; border-radius:50%;
  background:#fff; }
.intake__pulse::after{ content:''; position:absolute; inset:-7px; border-radius:50%;
  border:2px solid rgba(255,255,255,.7); animation:pulse 2.2s ease-out infinite; }
.intake__copy b{ display:block; font-family:var(--font-display); font-weight:700; font-size:1.16rem; }
.intake__copy span{ font-size:.92rem; opacity:.85; }
.intake__copy em{ font-style:normal; font-weight:700; }
.intake__timer{ display:flex; align-items:center; gap:8px; }
.intake__timer .t{ background:rgba(255,255,255,.16); border-radius:14px; padding:9px 11px; text-align:center; min-width:54px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25); }
.intake__timer .t b{ display:block; font-family:var(--font-display); font-weight:800; font-size:1.5rem; line-height:1; }
.intake__timer .t i{ font-style:normal; font-size:10px; opacity:.8; letter-spacing:.06em; text-transform:uppercase; }
.intake__timer .sep{ font-weight:800; opacity:.6; }
.intake__inner .btn{ background:#fff; color:var(--accent-ink); box-shadow:6px 8px 18px rgba(11,40,90,.28); flex:none; }
.intake__inner .btn:hover{ box-shadow:8px 10px 22px rgba(11,40,90,.36); transform:translateY(-2px); }

/* ---------- Stats ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,26px); }
.stat{ padding:clamp(22px,3vw,38px) clamp(18px,2vw,28px); text-align:center; border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); }
.stat b{ display:block; font-family:var(--font-display); font-weight:800; letter-spacing:-.04em;
  font-size:clamp(2.4rem,3.4vw,3.5rem); color:var(--accent-ink); line-height:1;
  text-shadow:1px 1px 1px var(--nm-light); }
.stat span{ display:block; margin-top:10px; color:var(--text-2); font-size:.95rem; line-height:1.4; }

/* ---------- Founder ---------- */
.founder__inner{ display:grid; grid-template-columns:0.85fr 1.15fr; gap:clamp(26px,4vw,64px); align-items:center; }
.founder__frame{ position:relative; border-radius:var(--r-xl); overflow:hidden;
  box-shadow:var(--nm-lg); aspect-ratio:4/4.4; background:var(--bg); }
.founder__frame img, .founder__frame video{ width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.founder__frame::after{ content:''; position:absolute; inset:0; border-radius:var(--r-xl);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5); pointer-events:none; }
.founder__chip{ position:absolute; right:16px; font-family:var(--font-display); font-weight:800;
  font-size:14px; color:var(--accent-ink); background:rgba(232,236,242,.86); backdrop-filter:blur(6px);
  padding:8px 13px; border-radius:var(--pill); box-shadow:var(--nm-sm); }
.founder__chip--1{ top:18px; } .founder__chip--2{ top:62px; right:auto; left:16px; } .founder__chip--3{ bottom:18px; right:16px; }
.founder__body{ padding:clamp(24px,3vw,42px); border-radius:var(--r-lg); box-shadow:var(--nm); }
.founder__body .title{ margin-bottom:16px; font-size:clamp(1.5rem,1.2rem + 1.3vw,2.3rem); }
.founder__body blockquote{ font-family:var(--font-script); font-weight:700; font-size:clamp(1.3rem,1.7vw,1.7rem);
  color:var(--accent-ink); line-height:1.25; margin:20px 0; padding-left:18px;
  border-left:3px solid var(--accent); }
.founder__awards{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.founder__awards span{ font-size:13px; font-weight:600; color:var(--text-2);
  padding:9px 15px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); }

/* ---------- Schools ---------- */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.chip{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14.5px;
  color:var(--text-2); padding:11px 20px; border-radius:var(--pill); background:var(--bg);
  box-shadow:var(--nm-sm); transition:box-shadow .3s, color .25s, transform .3s var(--e-soft); }
.chip:hover{ color:var(--text); transform:translateY(-1px); }
.chip i.dot{ width:8px; height:8px; border-radius:50%; background:var(--accent); }
.chip.is-active{ color:var(--accent-ink); box-shadow:var(--nm-inset); }
.grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.card{ position:relative; padding:clamp(22px,2.4vw,30px); border-radius:var(--r-lg); background:var(--bg);
  box-shadow:var(--nm); overflow:hidden; transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft); }
.card::before{ content:''; position:absolute; left:var(--mx,50%); top:var(--my,0); width:300px; height:300px;
  transform:translate(-50%,-50%); border-radius:50%; opacity:0; transition:opacity .4s;
  background:radial-gradient(circle, rgba(45,127,249,.10), transparent 70%); pointer-events:none; }
.card:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.card:hover::before{ opacity:1; }
.card.hide{ display:none; }
.card__n{ display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 10px;
  font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--accent-ink);
  letter-spacing:.02em; background:var(--accent-soft); border-radius:11px; box-shadow:inset 0 1px 1px rgba(255,255,255,.7); }
.card h3{ font-family:var(--font-display); font-weight:700; font-size:1.22rem; letter-spacing:-.02em;
  color:var(--text); margin:12px 0 9px; line-height:1.2; }
.card p{ color:var(--text-2); font-size:.96rem; line-height:1.5; }
.card__go{ display:inline-block; margin-top:16px; font-weight:600; font-size:14px; color:var(--accent-ink); }
.card:hover .card__go{ letter-spacing:.02em; }

.quizcta{ margin-top:34px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  gap:20px; padding:clamp(24px,3vw,38px) clamp(24px,3.4vw,46px); }
.quizcta__txt b{ display:block; font-family:var(--font-display); font-weight:700; font-size:1.34rem; }
.quizcta__txt span{ display:block; margin-top:6px; opacity:.85; font-size:.98rem; }
.quizcta .btn{ background:#fff; color:var(--accent-ink); box-shadow:6px 8px 18px rgba(11,40,90,.28); }

/* ---------- Process ---------- */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2vw,26px); }
.step{ position:relative; padding:clamp(26px,3vw,38px); border-radius:var(--r-lg); background:var(--bg);
  box-shadow:var(--nm); }
.step__n{ display:grid; place-content:center; width:54px; height:54px; border-radius:16px;
  font-family:var(--font-display); font-weight:800; font-size:1.3rem; color:var(--accent-ink);
  box-shadow:var(--nm-inset-sm); margin-bottom:20px; }
.step__ic{ position:absolute; top:clamp(22px,3vw,34px); right:clamp(22px,3vw,34px); width:46px; height:46px;
  object-fit:contain; filter:drop-shadow(0 5px 9px rgba(86,100,132,.22)); }
.step h3{ font-family:var(--font-display); font-weight:700; font-size:1.2rem; color:var(--text); margin-bottom:10px; }
.step p{ color:var(--text-2); font-size:.97rem; line-height:1.55; }

/* ---------- Live / graduates marquee + lightbox ---------- */
.live__head{ text-align:center; max-width:680px; margin:0 auto clamp(34px,5vh,52px); }
.live__head p{ color:var(--text-2); margin-top:14px; font-size:1.02rem; }
/* vertical padding gives the hover-zoom room so it isn't clipped by overflow:hidden */
.live__marquee{ overflow:hidden; padding-block:clamp(20px,2.6vw,36px);
  -webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.live__marquee:hover .live__row{ animation-play-state:paused; }
.live__row{ display:inline-flex; gap:18px; will-change:transform; animation:marq 56s linear infinite; }
.live__row img{ width:300px; height:210px; object-fit:cover; border-radius:var(--r-md); flex:none;
  box-shadow:none; cursor:pointer; position:relative; transition:transform .4s var(--e-soft); }
.live__row img:hover{ transform:scale(1.1); z-index:3; }

/* ---------- Reviews ---------- */
.reviews__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.rev{ padding:clamp(22px,2.4vw,30px); border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm);
  display:flex; flex-direction:column; transition:box-shadow .4s, transform .4s var(--e-soft); }
.rev:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.rev__stars{ color:#F5A623; letter-spacing:2px; font-size:15px; margin-bottom:14px; }
.rev blockquote{ color:var(--text); font-size:1.02rem; line-height:1.55; flex:1; }
.rev figcaption{ display:flex; align-items:center; gap:12px; margin-top:20px; font-weight:600; color:var(--text); }
.rev .ava{ display:grid; place-content:center; width:42px; height:42px; border-radius:50%;
  font-family:var(--font-display); font-weight:800; color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }
.rev--cta{ justify-content:center; align-items:flex-start; text-align:left;
  background:linear-gradient(135deg,#2D7FF9 0%, #1E6FFF 60%, #0B5BD3 100%);
  color:var(--on-accent);
  box-shadow:14px 16px 38px rgba(45,127,249,.34), -8px -8px 20px var(--nm-light); }
.rev--cta:hover{ box-shadow:18px 20px 46px rgba(45,127,249,.42), -8px -8px 20px var(--nm-light); }
.rev--cta b{ font-family:var(--font-display); font-weight:800; font-size:3rem; line-height:1; }
.rev--cta p{ margin:12px 0 18px; opacity:.85; }
.rev--cta .card__go{ color:#fff; }

/* ---------- Awards ---------- */
.awards__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.award{ display:flex; flex-direction:column; padding:clamp(22px,2.4vw,30px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); transition:box-shadow .4s, transform .4s var(--e-soft); }
.award:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.award__yr{ align-self:flex-start; font-family:var(--font-display); font-weight:700; font-size:13px;
  color:var(--accent-ink); padding:7px 13px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm);
  margin-bottom:16px; }
.award b{ font-family:var(--font-display); font-weight:700; font-size:1.16rem; color:var(--text); line-height:1.2; }
.award i{ font-style:normal; color:var(--text-2); font-size:.92rem; margin-top:7px; }
.awards__sub{ margin:clamp(26px,3vw,38px) 0 clamp(14px,1.6vw,20px); font-size:.92rem; font-weight:600;
  color:var(--text-2); letter-spacing:.01em; display:flex; align-items:center; gap:12px; }
.awards__sub::after{ content:''; flex:1; height:1px; background:linear-gradient(90deg,var(--nm-dark),transparent); }
.awards__docs{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.8vw,22px); }
.doc{ display:flex; flex-direction:column; text-align:left; padding:clamp(13px,1.3vw,17px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); border:0; font:inherit; color:inherit; cursor:pointer;
  -webkit-tap-highlight-color:transparent; transition:box-shadow .4s, transform .4s var(--e-soft); }
.doc:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.doc:active{ transform:translateY(-1px); box-shadow:var(--nm-inset); }
.doc__badge{ align-self:flex-start; font-family:var(--font-display); font-weight:800; font-size:13px; letter-spacing:.02em;
  color:var(--accent-ink); padding:7px 14px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); margin-bottom:13px; }
.doc__thumb{ display:block; position:relative; border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--nm-inset-sm); background:var(--bg-2); }
.doc__thumb img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center top;
  transition:transform .55s var(--e-soft); }
.doc:hover .doc__thumb img{ transform:scale(1.05); }
.doc__cap{ display:flex; flex-direction:column; gap:5px; margin-top:14px; }
.doc__cap b{ font-family:var(--font-display); font-weight:700; font-size:1.02rem; color:var(--text); line-height:1.25; }
.doc__cap i{ font-style:normal; color:var(--text-2); font-size:.83rem; line-height:1.45; }
.doc__zoom{ display:inline-flex; align-items:center; gap:7px; margin-top:auto; padding-top:13px;
  font-size:.82rem; font-weight:600; color:var(--accent-ink); }
.doc__zoom svg{ flex:none; }

/* ---------- Lead magnet ---------- */
.magnet__hold{ position:relative; }
.magnet__badge{ position:absolute; top:clamp(-30px,-2.6vw,-18px); left:clamp(-18px,-1.8vw,-8px);
  width:clamp(72px,8.5vw,108px); height:auto; z-index:4; transform:rotate(-9deg);
  filter:drop-shadow(0 16px 24px rgba(18,38,86,.5)); pointer-events:none; }
.magnet__left{ padding-top:clamp(14px,2vw,26px); }
@media (max-width:560px){ .magnet__badge{ display:none; } .magnet__left{ padding-top:0; } }
.magnet__inner{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(26px,4vw,56px); align-items:center;
  padding:clamp(24px,3vw,40px); }
.magnet__left .title{ color:#fff; text-shadow:none; margin-bottom:12px; font-size:clamp(1.4rem,1.05rem + 1.25vw,2.05rem); line-height:1.1; }
.magnet__left p{ opacity:.9; line-height:1.6; }
.magnet__list{ list-style:none; margin-top:16px; display:grid; gap:11px; }
.magnet__list li{ display:flex; align-items:center; gap:12px; font-weight:500; }
.magnet__list svg{ flex:none; color:#fff; }
.magnet__form{ position:relative; background:var(--bg); border-radius:var(--r-lg); padding:clamp(24px,3vw,34px);
  box-shadow:0 24px 50px -22px rgba(9,32,74,.5), 0 8px 20px -10px rgba(9,32,74,.22), inset 0 1px 0 rgba(255,255,255,.85); }
.magnet__doc{ display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:13px;
  color:var(--accent-ink); padding:8px 14px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); margin-bottom:18px; }

/* ---------- Forms / fields ---------- */
.field{ position:relative; margin-bottom:14px; }
.field input, .field select{ width:100%; font:inherit; font-size:15.5px; color:var(--text);
  background:var(--bg); border:none; border-radius:var(--r); padding:18px 18px 18px;
  box-shadow:var(--nm-inset); transition:box-shadow .3s, padding .2s var(--e-out); }
.field input:focus, .field select:focus{ outline:none; box-shadow:var(--nm-inset),0 0 0 2px var(--accent); }
/* поле с содержимым/в фокусе: текст опускается, освобождая место плавающему лейблу ВНУТРИ поля
   (раньше лейбл уезжал на -26px и висел НАД полем - «криво/скачет», особенно с предзаполненной программой) */
.field input:focus, .field input:not(:placeholder-shown),
.field select:focus, .field select:valid{ padding-top:25px; padding-bottom:11px; }
.field label{ position:absolute; left:18px; top:17px; color:var(--text-2); font-size:15.5px;
  pointer-events:none; transition:transform .2s var(--e-out), color .2s, font-size .2s; transform-origin:left top; }
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field select:focus + label, .field select:valid + label{
  transform:translateY(-10px) scale(.76); color:var(--accent-ink); font-weight:600; }
.field--sel{ position:relative; }
.field--sel select{ appearance:none; cursor:pointer; }
/* свободное поле «Опишите задачу» (единая модалка-заявка, включается data-lead-ask) */
.field--area textarea{ display:block; width:100%; font:inherit; font-size:15.5px; color:var(--text);
  background:var(--bg); border:none; border-radius:var(--r); padding:18px;
  box-shadow:var(--nm-inset); transition:box-shadow .3s, padding .2s var(--e-out);
  resize:vertical; min-height:92px; }
.field--area textarea:focus{ outline:none; box-shadow:var(--nm-inset),0 0 0 2px var(--accent); }
.field--area textarea:focus, .field--area textarea:not(:placeholder-shown){ padding-top:25px; padding-bottom:11px; }
.field--area textarea:focus + label, .field--area textarea:not(:placeholder-shown) + label{
  transform:translateY(-10px) scale(.76); color:var(--accent-ink); font-weight:600; }
.field__chev{ position:absolute; right:16px; top:20px; color:var(--text-2); pointer-events:none; }
.btn--full{ width:100%; }
.cta__policy{ font-size:12px; color:var(--text-2); text-align:center; margin-top:14px; line-height:1.45; }
.form-consent{ display:flex; align-items:flex-start; gap:9px; margin:14px 0 2px; text-align:left; cursor:pointer; }
.form-consent input{ margin:3px 0 0; width:16px; height:16px; flex:none; accent-color:var(--accent); cursor:pointer; }
.form-consent span{ font-size:12px; color:var(--text-2); line-height:1.45; }
.form-consent a{ color:var(--accent-ink); text-decoration:underline; }
.cta__ok{ position:absolute; inset:0; background:var(--bg); border-radius:var(--r-lg);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center;
  padding:24px; opacity:0; visibility:hidden; transform:scale(.96); transition:.4s var(--e-soft); z-index:3; color:var(--text); }
.cta__ok.show{ opacity:1; visibility:visible; transform:none; }
.cta__ok svg{ color:var(--live); } .cta__ok b{ font-family:var(--font-display); font-size:1.3rem; }
.cta__ok span{ color:var(--text-2); font-size:.95rem; }

/* ---------- CTA ---------- */
.cta__inner{ display:grid; grid-template-columns:1fr .9fr; gap:clamp(26px,4vw,56px); align-items:center;
  padding:clamp(30px,4vw,56px); }
.cta__left .title{ color:#fff; text-shadow:none; }
.cta__hl{ color:#fff; }
.cta__left p{ opacity:.9; margin-top:14px; line-height:1.6; }
.cta__phones{ display:flex; flex-wrap:wrap; gap:20px; margin-top:22px; }
.cta__phones a{ display:inline-flex; align-items:center; gap:9px; font-weight:700; font-size:1.1rem; color:#fff; }
.cta__form{ position:relative; background:var(--bg); border-radius:var(--r-lg); padding:clamp(24px,3vw,34px);
  box-shadow:0 24px 50px -22px rgba(9,32,74,.5), 0 8px 20px -10px rgba(9,32,74,.22), inset 0 1px 0 rgba(255,255,255,.85); }

/* ---------- Footer ---------- */
.footer{ position:relative; z-index:1; padding:0 0 22px; }
.footer__inner{ padding:clamp(24px,2.6vw,34px); border-radius:var(--r-xl); box-shadow:var(--nm); }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1.1fr; gap:clamp(24px,3vw,40px); align-items:stretch; }
.footer__brand{ display:flex; flex-direction:column; }
.footer__brand p{ color:var(--text-2); font-size:.9rem; line-height:1.5; margin:12px 0 0; max-width:320px; }
.footer__brand .footer__legal{ margin-top:auto; }
.footer__soc{ display:flex; gap:10px; margin-top:16px; }
.footer__soc a{ display:grid; place-content:center; width:38px; height:38px; border-radius:50%;
  color:var(--accent-ink); box-shadow:var(--nm-sm); transition:box-shadow .3s, transform .3s; }
.footer__soc a:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.footer__col h4{ font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--text); margin-bottom:9px; }
.footer__col a{ display:block; color:var(--text-2); font-size:.93rem; padding:3.5px 0; transition:color .25s; }
.footer__col a:hover{ color:var(--accent-ink); }
.footer__col--c span{ display:block; color:var(--text-2); font-size:.93rem; padding:3.5px 0; }
.footer__cities{ margin-top:30px; padding-top:22px; border-top:1px solid rgba(120,134,160,.16);
  color:var(--text-2); font-size:.88rem; line-height:1.7; }
.footer__cities b{ color:var(--text); }
.footer__bottom{ margin-top:18px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  color:var(--text-2); font-size:.82rem; }

/* ---------- Sticky CTA ---------- */
.stickycta{ position:fixed; left:50%; bottom:18px; transform:translate(-50%,160%); z-index:100;
  display:flex; align-items:center; gap:14px; padding:11px 11px 11px 22px; border-radius:var(--pill);
  background:rgba(238,241,246,.96); box-shadow:var(--nm-lg);
  transition:transform .5s var(--e-out); max-width:calc(100% - 28px); }
.stickycta.show{ transform:translate(-50%,0); }
.stickycta__txt b{ display:block; font-family:var(--font-display); font-weight:700; font-size:14.5px; color:var(--text); }
.stickycta__txt span{ font-size:12px; color:var(--text-2); }
.stickycta__quiz{ font-weight:600; font-size:14px; color:var(--accent-ink); padding:11px 16px;
  border-radius:var(--pill); box-shadow:var(--nm-sm); }

/* ---------- Quiz modal ---------- */
.quiz, .lightbox{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px;
  opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
.quiz.open, .lightbox.open{ opacity:1; visibility:visible; }
.quiz__overlay, .lightbox__overlay{ position:absolute; inset:0; background:rgba(40,50,66,.42); backdrop-filter:blur(4px); }
.quiz__box{ position:relative; width:min(560px,100%); background:var(--bg); border-radius:var(--r-xl);
  box-shadow:var(--nm-lg); padding:clamp(28px,4vw,44px); transform:translateY(20px); transition:transform .4s var(--e-soft); }
.quiz.open .quiz__box{ transform:none; }
.quiz__close{ position:absolute; right:16px; top:16px; width:42px; height:42px; border-radius:50%;
  color:var(--text-2); box-shadow:var(--nm-sm); display:grid; place-content:center; }
.quiz__close:hover{ color:var(--text); }
.quiz__progress{ height:7px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); overflow:hidden; margin-bottom:26px; }
.quiz__progress span{ display:block; height:100%; width:0; background:linear-gradient(90deg,var(--accent),var(--accent-h));
  border-radius:var(--pill); transition:width .4s var(--e-out); }
.quiz__step{ font-size:13px; font-weight:600; color:var(--accent-ink); letter-spacing:.04em; margin-bottom:10px; }
.quiz__q{ font-family:var(--font-display); font-weight:700; font-size:1.42rem; color:var(--text); margin-bottom:22px; line-height:1.2; }
.quiz__opts{ display:grid; gap:11px; }
.quiz__opt{ text-align:left; font-weight:500; font-size:15.5px; color:var(--text); padding:16px 20px;
  border-radius:var(--r); background:var(--bg); box-shadow:var(--nm-sm); transition:box-shadow .3s, transform .25s var(--e-soft); }
.quiz__opt:hover{ transform:translateX(4px); box-shadow:var(--nm); color:var(--accent-ink); }
.quiz__back{ margin-top:18px; font-weight:600; color:var(--text-2); font-size:14px; }
.quiz__result{ text-align:center; }
.quiz__rname{ font-family:var(--font-display); font-weight:800; font-size:1.6rem; color:var(--text); margin:16px 0 10px; }
.quiz__rdesc{ color:var(--text-2); line-height:1.55; margin-bottom:24px; }
.quiz__rform{ text-align:left; }

/* ---------- Lightbox ---------- */
.lightbox__overlay{ background:rgba(28,34,46,.72); }
.lightbox img{ position:relative; max-width:min(1100px,92vw); max-height:84vh; border-radius:var(--r-md);
  box-shadow:0 30px 80px rgba(0,0,0,.5); }
.lightbox__close{ position:absolute; right:24px; top:24px; color:#fff; z-index:2; }
.lightbox__nav{ position:absolute; top:50%; transform:translateY(-50%); color:#fff; z-index:2;
  width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.12); display:grid; place-content:center;
  transition:background .25s; }
.lightbox__nav:hover{ background:rgba(255,255,255,.24); }
.lightbox__prev{ left:24px; } .lightbox__next{ right:24px; }

/* ===========================================================================
   Responsive
   =========================================================================== */
@media (max-width:980px){
  .nav__pill{ display:none; }
  .nav__phone{ display:none; }
  .nav__right{ display:none; }
  .nav{ gap:8px; }
  .nav__mob{ display:flex; gap:6px; }
  .burger{ display:inline-flex; gap:6px; padding:0 11px; }
  .burger__label{ font-size:11.5px; }
  .navicon{ width:42px; height:42px; }
  /* в шапке на мобиле — полный логотип с расшифровкой */
  .nav .brand:has(.brand__lockup) .brand__lockup{ display:block; height:clamp(26px,7vw,34px); }
  .nav .brand:has(.brand__lockup) .brand__img{ display:none; }
  /* плавающие кнопки звонок/чат больше не нужны — их функции в шапке */
  #cbk-fab{ display:none !important; }
  .mchat__btn, .mchat__teaser{ display:none !important; }
  .hero{ flex-direction:column; align-items:center; text-align:center;
    min-height:auto; overflow:visible;
    padding:104px var(--gut) 44px; gap:clamp(20px,5vw,34px); }
  .hero__head{ flex:none; align-self:auto; max-width:920px; }
  .hero__media{ flex:none; width:100%; max-width:560px; margin:0 auto; align-self:auto; }
  .hero__cta{ flex-direction:column; justify-content:center; align-items:center; }
  .hero__cta .btn{ width:100%; max-width:360px; }
  .hero__sub{ margin-left:auto; margin-right:auto; }

  /* sections at tablet */
  .head{ flex-direction:column; align-items:flex-start; gap:14px; }
  .head__right{ max-width:none; padding-bottom:0; }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .founder__inner{ grid-template-columns:1fr; }
  .founder__frame{ max-width:440px; margin:0 auto; aspect-ratio:4/3.4; }
  .grid{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:1fr; }
  .reviews__grid, .awards__grid, .awards__docs{ grid-template-columns:repeat(2,1fr); }
  .magnet__inner, .cta__inner{ grid-template-columns:1fr; }
  .intake__inner{ flex-direction:column; align-items:flex-start; }
  .footer__grid{ grid-template-columns:1fr 1fr; gap:26px; }
  .live__row img{ width:240px; height:170px; }
}
@media (max-width:560px){
  body{ font-size:16px; }
  /* поля форм >=16px - iOS Safari не зумит страницу при фокусе */
  .field input, .field select, .field textarea{ font-size:16px; }
  .nav{ padding:8px 8px 8px 14px; }
  .grid, .stats, .reviews__grid, .awards__grid{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr; }
  .quizcta, .intake__inner{ text-align:left; }
  .intake__timer .t{ min-width:46px; }
  .cta__form, .magnet__form{ padding:22px; }
  .footer__bottom{ flex-direction:column; }
}

/* ===========================================================================
   States: static screenshot mode, reduced motion, high contrast
   =========================================================================== */
html.cap .hero{ min-height:100svh; }

/* очень узкие экраны: подпись меню прячем, бургер — иконкой */
@media (max-width:380px){
  .burger__label{ display:none; }
  .burger{ padding:0; width:44px; justify-content:center; gap:0; }
  .nav__mob{ gap:5px; }
  .navicon{ width:40px; height:40px; }
}

@media (prefers-reduced-motion: reduce){
  .aurora{ animation:none; }
  .reveal{ opacity:1; transform:none; }
}

@media (prefers-contrast: more){
  .btn, .card, .nav__pill a.is-active{ outline:1px solid var(--nm-dark); }
  :root{ --text-2:#414b60; }
}

/* keep hero within one screen on short viewports (laptops) - sub hidden only when hero is full-height */
@media (max-height:780px) and (min-width:981px){
  .hero__sub{ display:none; }
}

/* ===========================================================================
   Schedule + calendar (внедрение из их варианта, в нашем неоморф-языке)
   =========================================================================== */
.schedule{ display:grid; grid-template-columns:1.4fr 1fr; gap:clamp(20px,3vw,40px); align-items:stretch; }
.schedule__list{ display:flex; flex-direction:column; gap:14px; justify-content:space-between; }
.event{ display:flex; align-items:center; gap:clamp(14px,2vw,22px);
  padding:clamp(16px,2vw,22px) clamp(18px,2.2vw,26px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm);
  transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft); }
.event:hover{ transform:translateY(-3px); box-shadow:var(--nm-float); }
.event__date{ flex:none; width:64px; text-align:center; padding:10px 0; border-radius:var(--r);
  box-shadow:var(--nm-inset-sm); }
.event__date b{ display:block; font-family:var(--font-display); font-weight:800; font-size:1.7rem;
  line-height:1; color:var(--accent-ink); }
.event__date span{ display:block; margin-top:3px; font-size:11px; text-transform:uppercase;
  letter-spacing:.08em; color:var(--text-2); }
.event--start .event__date{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }
.event--start .event__date b, .event--start .event__date span{ color:var(--on-accent); }
.event__body{ flex:1; min-width:0; }
.event__body h3{ font-family:var(--font-display); font-weight:700; font-size:1.08rem; letter-spacing:-.01em;
  color:var(--text); line-height:1.25; margin:8px 0 5px; }
.event__meta{ color:var(--text-2); font-size:.9rem; }
.ev__badge{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase;
  padding:5px 11px; border-radius:var(--pill); }
.ev__badge--free{ color:var(--accent-ink); box-shadow:var(--nm-inset-sm); }
.ev__badge--start{ color:var(--on-accent); background:linear-gradient(135deg,var(--accent),var(--accent-h)); box-shadow:var(--nm-accent); }
.schedule__all{ align-self:flex-start; display:inline-flex; align-items:center; gap:8px; margin-top:2px;
  font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--accent-ink); padding:10px 4px; }
.schedule__all svg{ transition:transform .3s var(--e-out); }
.schedule__all:hover svg{ transform:translateX(4px); }
.sched__top{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
.sched__top .tag{ margin-bottom:0; }
.schedule__year{ flex:none; }
.schedule__year:hover svg{ transform:none; }

.cal{ padding:clamp(18px,2.2vw,26px); border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm); }
.cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.cal__head b{ font-family:var(--font-display); font-weight:800; font-size:1.16rem; color:var(--text); }
.cal__nav{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; color:var(--accent-ink);
  background:var(--bg); box-shadow:var(--nm-sm); border:0; cursor:pointer;
  transition:box-shadow .25s, transform .25s; }
.cal__nav:hover{ transform:translateY(-1px); }
.cal__nav:active{ box-shadow:var(--nm-inset); }
.cal__nav:disabled{ opacity:.3; cursor:default; transform:none; box-shadow:var(--nm-inset-sm); }
.cal__d--empty{ visibility:hidden; pointer-events:none; }
.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:700; letter-spacing:.04em;
  color:var(--text-2); text-transform:uppercase; }
.cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal__d{ aspect-ratio:1; display:grid; place-items:center; border-radius:12px; position:relative;
  font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--text); }
.cal__d--wknd{ color:var(--text-2); }
.cal__d--today{ box-shadow:var(--nm-inset-sm); color:var(--accent-ink); font-weight:800; }
.cal__d--event{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); color:var(--on-accent); font-weight:800; box-shadow:var(--nm-sm); } /* заливка числа как на главной, без точки (client R3) */
.cal__d--start{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); color:var(--on-accent);
  font-weight:800; box-shadow:var(--nm-accent); }
.cal__year{ margin-top:16px; }
.cal__year--pulse{ animation:yearpulse 2.6s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce){ .cal__year--pulse{ animation:none; } }

@media (max-width:900px){
  .schedule{ grid-template-columns:1fr; }
  .cal{ order:-1; }
}
@media (max-width:560px){
  .event{ flex-wrap:wrap; }
  .event__date{ width:56px; }
}

/* ===========================================================================
   Hero cloud seam - Венера крупнее впритык вправо, низ растворяется в облаках
   на стыке со вторым экраном (по запросу Рустама)
   =========================================================================== */

/* ===========================================================================
   Animated soft clouds OVER the hero/partners seam - hide Венера's hard edge
   =========================================================================== */
#podcast{ position:relative; }

/* ===========================================================================
   PODCAST (second screen) - founder voice, player facade
   =========================================================================== */
.founder2{ display:grid; grid-template-columns:.92fr 1.08fr; gap:clamp(28px,4.5vw,72px); align-items:center; }
.founder2__left{ order:1; }
/* image only, on the page bg (no panel/box) */
.founder2__media{ position:relative; background:none; box-shadow:none; }
.founder2__glow{ display:none; }
/* Dissolve the hard bottom crop of the PNG by fading the IMAGE itself into the real page bg
   (mask = no colour seam, works over the decorative orbs). The veil below adds an extra soft cloud. */
.founder2__cut{ display:block; width:100%; height:auto; max-width:520px; margin:0 auto;
  -webkit-mask-image:linear-gradient(to bottom, #000 64%, rgba(0,0,0,.55) 82%, transparent 100%);
  mask-image:linear-gradient(to bottom, #000 64%, rgba(0,0,0,.55) 82%, transparent 100%); }
/* soft cloud veil ON TOP, swallowing any residual line at the dissolve zone */
.founder2__media::after{ content:''; position:absolute; left:50%; bottom:-6px; transform:translateX(-50%);
  width:min(116%,620px); height:clamp(150px,30%,260px); pointer-events:none; z-index:6;
  background:linear-gradient(to top,
    var(--bg) 0%, var(--bg) 40%,
    rgba(232,236,242,.85) 60%, rgba(232,236,242,.45) 78%, rgba(232,236,242,0) 100%);
  filter:blur(7px); }
/* quote sits BELOW the portrait, pulled up into the dissolve zone (negative margin closes
   the gap left by the masked-transparent bottom of the image) - bigger, handwritten */
.founder2__quote{ position:relative; z-index:7; margin:clamp(-92px,-5vw,-52px) 2px 0; padding-left:26px; }
.founder2__quote blockquote{ font-family:var(--font-script); font-weight:700;
  font-size:clamp(1.5rem,1.05rem + 1.15vw,2.05rem); line-height:1.2; color:var(--accent-ink);
  transform:rotate(-1.5deg); transform-origin:left center; margin:0; }
.founder2__quote blockquote::before{ content:'\201C'; position:absolute; left:0; top:-.32em;
  font-size:2.1em; line-height:1; color:var(--accent); opacity:.4; }
.founder2__quote figcaption{ font-family:var(--font-script); font-weight:600;
  font-size:clamp(1.08rem,.9rem + .5vw,1.32rem); color:var(--text-2); margin-top:10px;
  transform:rotate(-1.5deg); transform-origin:left center; }
.founder2__body{ order:2; }
.founder2__body .lead{ margin:18px 0 4px; }
.founder2__body .founder__awards{ margin-top:22px; }
.founder2__body .btn{ margin-top:26px; }

/* ===========================================================================
   TRACKS (воронка по типу клиента - корп / проф / личн)
   =========================================================================== */
.tracks__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.track{ display:flex; flex-direction:column; padding:clamp(26px,3vw,38px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft); }
.track:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.track__ic{ display:grid; place-content:center; width:60px; height:60px; border-radius:18px;
  color:var(--accent-ink); box-shadow:var(--nm-inset-sm); margin-bottom:20px; }
.track h3{ font-family:var(--font-display); font-weight:700; font-size:1.34rem; letter-spacing:-.02em;
  color:var(--text); margin-bottom:10px; }
.track p{ color:var(--text-2); font-size:.98rem; line-height:1.55; flex:1; }
.track__tags{ display:block; margin-top:16px; font-size:13px; font-weight:600; color:var(--text-2); }
.track__go{ display:inline-block; margin-top:14px; font-weight:600; font-size:14px; color:var(--accent-ink);
  transition:letter-spacing .25s; }
.track:hover .track__go{ letter-spacing:.02em; }
@media (max-width:980px){ .tracks__grid{ grid-template-columns:1fr; } }
.tracks__all{ text-align:center; margin-top:clamp(24px,3vw,40px); }

/* ===========================================================================
   DELIVERABLES (что получаете)
   =========================================================================== */
.deliver__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.deliver{ padding:clamp(24px,2.6vw,32px); border-radius:var(--r-lg); background:var(--bg);
  box-shadow:var(--nm); transition:box-shadow .4s var(--e-out), transform .4s var(--e-soft); }
.deliver:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.deliver__ic{ display:grid; place-content:center; width:56px; height:56px; border-radius:16px;
  color:var(--accent-ink); box-shadow:var(--nm-inset-sm); margin-bottom:18px; }
.deliver h3{ font-family:var(--font-display); font-weight:700; font-size:1.16rem; letter-spacing:-.02em;
  color:var(--text); margin-bottom:9px; line-height:1.2; }
.deliver p{ color:var(--text-2); font-size:.96rem; line-height:1.5; }

/* ===========================================================================
   REVIEWS - tabs (text / video / photo)
   =========================================================================== */
.revtabs{ display:inline-flex; gap:5px; padding:5px; border-radius:var(--pill);
  box-shadow:var(--nm-inset-sm); margin-bottom:30px; }
/* section subheadings - handwritten everywhere (like the founder quote).
   `.head .head__right` (0,2,0) outranks `.reveal.is-in{transform:none}` so the tilt survives the reveal. */
.revtab{ font-weight:600; font-size:14.5px; color:var(--text-2); padding:11px 24px;
  border-radius:var(--pill); transition:color .25s, box-shadow .3s, background .3s; }
.revtab:hover{ color:var(--text); }
.revtab.is-active{ color:var(--accent-ink); background:var(--bg); box-shadow:var(--nm-sm); }
.revpanel{ display:none; }
.revpanel.is-active{ display:block; animation:fadeUp .5s var(--e-out); }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px) } to{ opacity:1; transform:none } }

.revvid__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.revvid{ position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--nm);
  aspect-ratio:16/9; cursor:pointer; display:block; width:100%; padding:0;
  transition:box-shadow .4s, transform .4s var(--e-soft); }
.revvid:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.revvid img{ width:100%; height:100%; object-fit:cover; }
.revvid__shade{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(11,40,90,0) 45%,rgba(11,40,90,.6) 100%); }
.revvid__play{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:62px; height:62px; border-radius:50%; background:linear-gradient(135deg,var(--accent),var(--accent-h));
  color:#fff; display:grid; place-content:center; box-shadow:0 12px 26px rgba(11,40,90,.4);
  transition:transform .3s var(--e-soft); }
.revvid__play svg{ margin-left:3px; }
.revvid:hover .revvid__play{ transform:translate(-50%,-50%) scale(1.08); }
.revvid__cap{ position:absolute; left:16px; bottom:14px; z-index:2; color:#fff; font-weight:600;
  font-size:.95rem; text-shadow:0 1px 6px rgba(0,0,0,.5); }
.revvid.is-playing{ aspect-ratio:16/9; cursor:default; }
.revvid.is-playing img, .revvid.is-playing .revvid__shade,
.revvid.is-playing .revvid__play, .revvid.is-playing .revvid__cap{ display:none; }
.revvid iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }

.revshot__note{ color:var(--text-2); font-size:.98rem; margin-bottom:18px; }
.rev__plat{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; color:var(--accent-ink); margin-bottom:10px; }
/* ---------- Custom neumorphic reviews wall (replaces Yandex iframe) ---------- */
.revwall__sources{ display:flex; flex-wrap:wrap; gap:clamp(10px,1.4vw,16px); margin-bottom:clamp(20px,2.4vw,30px); }
.rsrc{ display:inline-flex; align-items:center; gap:9px; padding:11px 18px; border-radius:var(--pill);
  background:var(--bg); box-shadow:var(--nm-sm); transition:box-shadow .3s, transform .3s var(--e-soft); }
.rsrc:hover{ transform:translateY(-2px); box-shadow:var(--nm); }
.rsrc__dot{ width:8px; height:8px; border-radius:50%; background:var(--src-c,#9aa3b2); flex:none; }
.rsrc__dot[data-src="yandex"]{ --src-c:#FC3F1D; }
.rsrc__dot[data-src="gis"]{ --src-c:#19AA1E; }
.rsrc__dot[data-src="vt"]{ --src-c:#00A99D; }
.rsrc__dot[data-src="zoon"]{ --src-c:#F5821F; }
.rsrc__name{ font-weight:600; color:var(--text-2); font-size:14px; }
.rsrc__rate{ font-family:var(--font-display); font-weight:800; color:var(--accent-ink); font-size:1.18rem; line-height:1; }
.rsrc__cnt{ color:var(--text-2); font-size:12.5px; }

.revwall{ position:relative; display:flex; align-items:center; gap:8px; }
.revwall__track{ display:flex; align-items:flex-start; gap:clamp(14px,1.5vw,18px); overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:10px 4px 20px; -webkit-overflow-scrolling:touch; scrollbar-width:none; flex:1; min-width:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%); }
.revwall__track::-webkit-scrollbar{ display:none; }
.revwall__nav{ flex:none; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  background:var(--bg); box-shadow:var(--nm-sm); color:var(--accent-ink);
  transition:box-shadow .25s, transform .25s, opacity .25s; }
.revwall__nav:hover{ transform:translateY(-1px); box-shadow:var(--nm); }
.revwall__nav:active{ box-shadow:var(--nm-inset-sm); }
.revwall__nav:disabled{ opacity:.3; cursor:default; box-shadow:var(--nm-inset-sm); }
@media (max-width:680px){ .revwall__nav{ display:none; } }

.rcard{ scroll-snap-align:start; flex:0 0 clamp(240px,26%,300px); box-sizing:border-box;
  display:flex; flex-direction:column; padding:clamp(16px,1.5vw,22px);
  border-radius:var(--r-lg); background:var(--bg-2); box-shadow:0 12px 30px rgba(86,100,132,.13); }
.rcard__top{ display:flex; align-items:flex-start; gap:11px; margin-bottom:11px; }
.rcard__ava{ display:none; }
.rcard__id{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.rcard__name{ font-family:var(--font-display); font-weight:700; font-size:.95rem; line-height:1.28; color:var(--text);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:2.56em; }
.rcard__meta{ display:inline-flex; align-items:center; gap:9px; flex-wrap:nowrap; min-width:0; }
.rcard__date{ font-size:12.5px; color:var(--text-2); white-space:nowrap; }
.rcard__src{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; color:var(--text-2); white-space:nowrap; flex:none; }
.rcard__src::before{ content:''; width:6px; height:6px; border-radius:50%; background:var(--src-c,#9aa3b2); flex:none; }
.rcard__src[data-src="yandex"]{ --src-c:#FC3F1D; }
.rcard__src[data-src="gis"]{ --src-c:#19AA1E; }
.rcard__src[data-src="vt"]{ --src-c:#00A99D; }
.rcard__src[data-src="zoon"]{ --src-c:#F5821F; }
.rcard__stars{ margin-left:auto; flex:none; color:#F0A92B; display:inline-flex; gap:1px; align-self:flex-start; }
.rcard__text{ color:var(--text-2); font-size:.9rem; line-height:1.55; margin:0;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:4; overflow:hidden; min-height:6.2em; }
.rcard.is-open .rcard__text{ -webkit-line-clamp:unset; overflow:visible; min-height:0; }
.rcard__more{ align-self:flex-start; margin-top:auto; font-weight:600; font-size:13px;
  color:var(--accent-ink); padding:9px 0 0; transition:color .2s; }
.rcard__more:hover{ color:var(--accent); }

.revwall__all{ display:inline-flex; margin-top:clamp(16px,2vw,24px); font-weight:600; font-size:14.5px;
  color:var(--accent-ink); transition:color .2s; }
.revwall__all:hover{ color:var(--accent); }
@media (max-width:680px){ .rcard{ flex-basis:84%; } }

/* ---------- Company gratitude letters (real scans) ---------- */
.letters__intro{ margin-bottom:clamp(18px,2.2vw,26px); }
.letters__lead{ display:block; font-size:.96rem; color:var(--text-2); line-height:1.62; max-width:72ch; }
.letters{ position:relative; display:flex; align-items:center; gap:8px; }
.letters__track{ display:flex; gap:clamp(14px,1.6vw,20px); overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:10px 4px 18px; -webkit-overflow-scrolling:touch; scrollbar-width:none; flex:1; min-width:0;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 26px,#000 calc(100% - 26px),transparent 100%); }
.letters__track::-webkit-scrollbar{ display:none; }
.letters__nav{ flex:none; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  background:var(--bg); box-shadow:var(--nm-sm); color:var(--accent-ink);
  transition:box-shadow .25s, transform .25s, opacity .25s; }
.letters__nav:hover{ transform:translateY(-1px); box-shadow:var(--nm); }
.letters__nav:active{ box-shadow:var(--nm-inset-sm); }
.letters__nav:disabled{ opacity:.3; cursor:default; box-shadow:var(--nm-inset-sm); }
@media (max-width:680px){ .letters__nav{ display:none; } }
.lcard{ scroll-snap-align:start; flex:0 0 clamp(186px,22vw,236px); box-sizing:border-box;
  display:flex; flex-direction:column; gap:12px; padding:clamp(12px,1.2vw,15px); border:0; cursor:pointer;
  border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm); color:inherit; font:inherit;
  -webkit-tap-highlight-color:transparent; transition:box-shadow .4s, transform .4s var(--e-soft); }
.lcard:hover{ transform:translateY(-5px); box-shadow:var(--nm-float); }
.lcard:active{ transform:translateY(-1px); box-shadow:var(--nm-inset); }
.lcard__thumb{ display:block; position:relative; border-radius:var(--r-md); overflow:hidden;
  box-shadow:var(--nm-inset-sm); background:var(--bg-2); }
.lcard__thumb img{ display:block; width:100%; aspect-ratio:3/4; object-fit:cover; object-position:center top;
  transition:transform .55s var(--e-soft); }
.lcard:hover .lcard__thumb img{ transform:scale(1.05); }
.lcard__name{ font-family:var(--font-display); font-weight:700; font-size:.92rem; color:var(--text);
  line-height:1.3; text-align:center; padding:0 4px 4px; }
.revshot__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.revshot{ display:flex; flex-direction:column; align-items:flex-start; gap:8px;
  padding:clamp(24px,2.6vw,34px); border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm);
  transition:box-shadow .4s, transform .4s var(--e-soft); }
.revshot:hover{ transform:translateY(-4px); box-shadow:var(--nm-float); }
.revshot__plat{ font-weight:600; font-size:13px; letter-spacing:.04em; text-transform:uppercase; color:var(--text-2); }
.revshot__rate{ font-family:var(--font-display); font-weight:800; font-size:2.6rem; line-height:1; color:var(--accent-ink); }
.revshot__stars{ color:#F5A623; letter-spacing:2px; font-size:15px; }
.revshot__go{ margin-top:8px; font-weight:600; font-size:14px; color:var(--accent-ink); }

/* ===========================================================================
   FAQ accordion
   =========================================================================== */
.faq{ max-width:960px; margin-inline:auto; }
.faq__item{ border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm); margin-bottom:14px;
  overflow:hidden; transition:box-shadow .35s; }
.faq__item.open{ box-shadow:var(--nm-float); }
.faq__q{ width:100%; display:flex; align-items:center; justify-content:space-between; gap:18px;
  text-align:left; padding:clamp(18px,2.2vw,24px) clamp(20px,2.4vw,28px);
  font-family:var(--font-display); font-weight:700; font-size:clamp(1.02rem,1.4vw,1.18rem);
  color:var(--text); line-height:1.3; }
.faq__ic{ position:relative; flex:none; width:24px; height:24px; }
.faq__ic::before, .faq__ic::after{ content:''; position:absolute; left:50%; top:50%;
  background:var(--accent-ink); border-radius:2px; transition:transform .3s var(--e-out); }
.faq__ic::before{ width:14px; height:2.4px; transform:translate(-50%,-50%); }
.faq__ic::after{ width:2.4px; height:14px; transform:translate(-50%,-50%); }
.faq__item.open .faq__ic::after{ transform:translate(-50%,-50%) scaleY(0); }
.faq__a{ max-height:0; overflow:hidden; transition:max-height .4s var(--e-io); }
.faq__a p{ padding:0 clamp(20px,2.4vw,28px) clamp(20px,2.4vw,26px); color:var(--text-2);
  font-size:1rem; line-height:1.6; }

/* ===========================================================================
   Responsive - new sections
   =========================================================================== */
@media (max-width:980px){
  .founder2{ grid-template-columns:1fr; gap:clamp(20px,4vw,32px); }
  .founder2__left{ order:1; max-width:420px; margin:0 auto; width:100%; }
  .founder2__body{ order:2; text-align:center; }
  .founder2__body .founder__awards{ justify-content:center; }
  .founder2__body .btn{ margin-left:auto; margin-right:auto; }
  .founder2__quote{ text-align:center; padding-left:0; max-width:420px; margin-inline:auto; }
  .founder2__quote blockquote::before{ display:none; }
  .deliver__grid, .revvid__grid, .revshot__grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .deliver__grid, .revvid__grid, .revshot__grid{ grid-template-columns:1fr; }
  .revtabs{ display:flex; width:100%; }
  .revtab{ flex:1; padding:11px 10px; text-align:center; }
}

/* ===========================================================================
   Program page (program.html)
   =========================================================================== */
.prog__hero{ position:relative; z-index:1; padding:clamp(126px,14vh,150px) 0 clamp(16px,3vh,32px); }
.prog__back{ display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px;
  color:var(--accent-ink); margin-bottom:20px; }
.prog__back svg{ transition:transform .3s var(--e-out); }
.prog__back:hover svg{ transform:translateX(-4px); }
.prog__title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.8rem,1.2rem + 2.3vw,3.15rem); /* поменьше, но остаётся крупнее секций (client R3) */
  line-height:1.02; letter-spacing:-.035em; color:var(--text); text-transform:uppercase; max-width:18ch;
  text-shadow:1px 1px 1px var(--nm-light), 2px 3px 4px rgba(150,162,185,.45); margin-top:8px; }
.prog__lead{ margin-top:18px; max-width:680px; color:var(--text-2); font-size:clamp(1rem,1.3vw,1.14rem); line-height:1.6; }
.prog__meta{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.prog__chip{ display:inline-flex; align-items:center; font-weight:600; font-size:13px; color:var(--text-2);
  padding:10px 16px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); }
.prog__cta{ display:flex; flex-wrap:wrap; gap:13px; margin-top:28px; }

.prog__cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px); align-items:start; }
.prog__col{ padding:clamp(24px,2.6vw,32px); border-radius:var(--r-lg); background:var(--bg); box-shadow:var(--nm); }
.prog__h{ font-family:var(--font-display); font-weight:700; font-size:1.22rem; color:var(--text); margin-bottom:18px; letter-spacing:-.02em; }
.prog__list{ list-style:none; display:grid; gap:13px; }
.prog__list li{ display:flex; align-items:flex-start; gap:11px; color:var(--text); font-size:.98rem; line-height:1.45; font-weight:500; }
.prog__list svg{ flex:none; margin-top:1px; color:var(--accent-ink); }
.prog__mods{ list-style:none; display:grid; gap:12px; }
.prog__mods li{ display:flex; align-items:flex-start; gap:12px; color:var(--text); font-size:.98rem; line-height:1.4; font-weight:500; }
.prog__num{ flex:none; font-family:var(--font-display); font-weight:800; font-size:13px; color:var(--accent-ink);
  width:30px; height:30px; border-radius:9px; display:grid; place-content:center; box-shadow:var(--nm-inset-sm); }

.prog__docs{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,1.8vw,20px); }
.prog__doc{ display:flex; flex-direction:column; gap:5px; padding:clamp(20px,2.2vw,26px); border-radius:var(--r-lg);
  background:var(--bg); box-shadow:var(--nm); }
.prog__doc svg{ color:var(--accent-ink); margin-bottom:6px; }
.prog__doc b{ font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--text); line-height:1.2; }
.prog__doc span{ color:var(--text-2); font-size:.88rem; line-height:1.4; }

@media (max-width:980px){
  .prog__cols{ grid-template-columns:1fr; }
  .prog__docs{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  .prog__docs{ grid-template-columns:1fr; }
}

/* ===========================================================================
   HERO USP strip (УТП на первом экране)
   =========================================================================== */
.hero__usp{ list-style:none; display:flex; flex-wrap:wrap; gap:9px; margin-top:clamp(14px,2vh,22px); }
.hero__usp li{ display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600;
  color:var(--text-2); padding:9px 14px; border-radius:var(--pill); box-shadow:var(--nm-inset-sm); line-height:1.2; }
.hero__usp svg{ flex:none; color:var(--accent-ink); }
@media (max-height:820px) and (min-width:981px){ .hero__usp{ display:none; } }
@media (max-width:980px){ .hero__usp{ justify-content:center; } }

/* ===========================================================================
   Schedule (full year) modal
   =========================================================================== */
.schedmodal{ position:fixed; inset:0; z-index:200; display:grid; place-items:center; padding:20px;
  opacity:0; visibility:hidden; transition:opacity .35s, visibility .35s; }
.schedmodal.open{ opacity:1; visibility:visible; }
.schedmodal__overlay{ position:absolute; inset:0; background:rgba(40,50,66,.42); backdrop-filter:blur(4px); }
.schedmodal__box{ position:relative; width:min(640px,100%); max-height:86vh; display:flex; flex-direction:column;
  background:var(--bg); border-radius:var(--r-xl); box-shadow:var(--nm-lg);
  padding:clamp(24px,3.4vw,40px); transform:translateY(20px); transition:transform .4s var(--e-soft); }
.schedmodal.open .schedmodal__box{ transform:none; }
.schedmodal__close{ position:absolute; right:16px; top:16px; width:42px; height:42px; border-radius:50%;
  color:var(--text-2); box-shadow:var(--nm-sm); display:grid; place-content:center; }
.schedmodal__close:hover{ color:var(--text); }
.schedmodal__title{ font-family:var(--font-display); font-weight:800; font-size:clamp(1.4rem,2.4vw,2rem);
  color:var(--text); letter-spacing:-.02em; }
.schedmodal__title .c-accent{ color:var(--accent-ink); }
.schedmodal__sub{ color:var(--text-2); margin:8px 0 18px; font-size:.96rem; line-height:1.5; }
.schedmodal__scroll{ overflow-y:auto; padding-right:6px; margin-right:-6px; display:flex; flex-direction:column; gap:22px; }
.schedmonth h4{ font-family:var(--font-display); font-weight:700; font-size:1.04rem; color:var(--accent-ink);
  margin-bottom:10px; position:sticky; top:0; background:var(--bg); padding:4px 0; z-index:1; }
.schedrow{ display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid rgba(120,134,160,.14); }
.schedrow:last-child{ border-bottom:0; }
.schedrow__d{ flex:none; width:46px; height:46px; border-radius:14px; display:grid; place-content:center;
  font-family:var(--font-display); font-weight:800; font-size:1.16rem; color:var(--accent-ink); box-shadow:var(--nm-inset-sm); }
.schedrow--start .schedrow__d{ background:linear-gradient(135deg,var(--accent),var(--accent-h)); color:#fff; box-shadow:var(--nm-accent); }
.schedrow__b{ flex:1; min-width:0; }
.schedrow__b h5{ font-family:var(--font-display); font-weight:600; font-size:1rem; color:var(--text); line-height:1.25; }
.schedrow__b span{ color:var(--text-2); font-size:.86rem; }
.schedrow__tag{ flex:none; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:5px 11px; border-radius:var(--pill); white-space:nowrap; }
.schedrow__tag--free{ color:var(--accent-ink); box-shadow:var(--nm-inset-sm); }
.schedrow__tag--start{ color:#fff; background:linear-gradient(135deg,var(--accent),var(--accent-h)); }
.schedmodal__foot{ margin-top:18px; padding-top:16px; border-top:1px solid rgba(120,134,160,.16); }
.schedmodal__foot .btn{ width:100%; }
@media (max-width:560px){ .schedrow__tag{ display:none; } }

/* ===========================================================================
   CTA (бесплатная консультация) - компактнее
   =========================================================================== */
#cta{ padding:clamp(40px,6vh,72px) 0; }
.cta__inner{ padding:clamp(22px,2.8vw,38px); gap:clamp(22px,3vw,42px); align-items:center; }
.cta__left .title{ font-size:clamp(1.45rem,1.1rem + 1.4vw,2.2rem); margin-bottom:4px; }
.cta__left p{ font-size:.96rem; margin-top:10px; }
.cta__phones{ margin-top:16px; gap:16px; }
.cta__phones a{ font-size:1rem; }
.cta__form{ padding:clamp(20px,2.4vw,28px); }

/* ===========================================================================
   2026-06-04 - REMOVE HANDWRITTEN TEXT (client: no script/serif look).
   --font-script now points to Onest; below we strip the handwritten tilt
   and right-size the places that were tuned for Caveat so they read as
   clean modern subheadings.
   =========================================================================== */
.head .head__right{
  font-family:var(--font-body); font-weight:500;
  font-size:clamp(1rem, .94rem + .5vw, 1.28rem); line-height:1.5;
  color:var(--text-2); transform:none; max-width:460px;
}
@media (min-width:981px){
  #reviews .head__right{ transform:none; padding-bottom:0; }
}
.eyebrow{
  font-family:var(--font-body); font-weight:600;
  font-size:clamp(.78rem, .72rem + .3vw, .95rem); letter-spacing:.12em;
  text-transform:uppercase; transform:none; line-height:1.4;
}
.founder__body blockquote,
.founder2__quote blockquote{
  font-family:var(--font-display); font-weight:600; font-style:normal;
  letter-spacing:-.01em; line-height:1.3; transform:none;
}
.founder2__quote figcaption{ font-family:var(--font-body); font-weight:600; }

/* a11y: skip-to-content link (hidden until focused) */
.skip-link{ position:absolute; left:8px; top:-52px; z-index:2000; background:var(--accent); color:#fff; padding:10px 16px; border-radius:10px; font-weight:600; text-decoration:none; transition:top .2s var(--e-out,ease); }
.skip-link:focus{ top:8px; outline:3px solid var(--accent-ink); outline-offset:2px; }

/* Cookie-баннер - единый стандарт на ВСЕХ страницах (стиль перенесён из mabk-landing.css,
   который грузится только на index/about; здесь в style.css он доступен везде). */
/* z-index 150: выше контента, но НИЖЕ рабочих оверлеев (quiz/lightbox/schedmodal 200, modal/mchat.open 300) -
   иначе баннер перехватывает тапы по их нижним кнопкам на мобиле */
.cookie{ position:fixed; left:18px; right:18px; bottom:18px; z-index:150; max-width:760px; margin:0 auto; display:flex; align-items:center; gap:18px; flex-wrap:wrap; justify-content:space-between; background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--nm-lg); padding:18px 24px; }
.cookie[hidden]{ display:none; } /* .cookie display:flex overrides UA [hidden]; restore it */
.cookie p{ margin:0; font-size:13px; color:var(--text-2); line-height:1.45; flex:1; min-width:240px; }

/* ============================================================
   КАРТОЧКА МЕРОПРИЯТИЯ - единый стандарт (рендер: landings.js evCardHTML).
   Жила в <style> внутри schedule.html; вынесена сюда, чтобы блок
   «Ближайшие мероприятия» на главной рисовал такие же карточки.
   ============================================================ */
.ev-card{ display:grid; grid-template-columns:92px 1fr auto; gap:0; align-items:stretch;
  padding:0; overflow:hidden; border-radius:var(--r-md); box-shadow:var(--nm-sm); margin-bottom:12px;
  transition:transform .28s var(--e-out), box-shadow .28s; position:relative; background:var(--bg); }
.ev-card:hover{ transform:translateY(-3px); box-shadow:var(--nm); }
.ev-card.is-soon{ opacity:.86; }
.ev-card__date{ background:linear-gradient(160deg,var(--accent),var(--accent-h)); color:#fff;
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:10px 8px; gap:1px; }
.ev-card__day{ font-family:var(--font-display); font-weight:800; font-size:1.18rem; color:#fff; line-height:1.05; white-space:nowrap; }
.ev-card__md{ display:flex; flex-direction:row; align-items:baseline; gap:0; line-height:1; margin-top:2px; }
.ev-card__day--sm{ font-size:.82rem; font-weight:700; letter-spacing:.02em; }
/* месяц полным словом («июля»), ниже - количество дней («4 дня») в столбик */
.ev-card__mon{ font-size:.74rem; color:#fff; opacity:.95; line-height:1.15; margin-top:1px; }
/* «4 дня» в дате — ТОЛЬКО мобильная версия; на десктопе слева не показываем (client 29.06) */
.ev-card__days{ display:none; font-size:.66rem; color:#fff; opacity:.8; line-height:1.1; margin-top:1px; }
.ev-card__dow{ font-size:.62rem; color:#fff; opacity:.78; }
.ev-card.is-start .ev-card__date{ background:linear-gradient(180deg,var(--accent),var(--accent-h)); box-shadow:none; }
.ev-card.is-start .ev-card__day,.ev-card.is-start .ev-card__mon,.ev-card.is-start .ev-card__dow{ color:#fff; }
.ev-card__badges{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
.ev-badge{ font-size:11px; font-weight:700; letter-spacing:.02em; padding:4px 9px; border-radius:999px; text-transform:uppercase; }
.ev-badge--disc{ color:#fff; background:linear-gradient(180deg,#e8915b,#d4763d); }
.ev-badge--online{ color:#fff; background:linear-gradient(180deg,#3fae8f,#2e8f73); }
.ev-card__body{ min-width:0; display:flex; flex-direction:column; justify-content:center; padding:13px 16px; }
/* название мероприятия показываем полностью (клиент: «названия должны быть видны полностью») */
.ev-card__name{ font-family:var(--font-display); font-weight:700; font-size:.96rem; color:var(--text); line-height:1.25; margin:0; overflow-wrap:anywhere; }
.ev-card__sub{ font-size:.85rem; color:var(--text-2); margin:4px 0 0; }
.ev-card__meta{ display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:9px; }
.ev-card__meta span{ display:inline-flex; align-items:center; gap:6px; font-size:.86rem; color:var(--text-2); }
.ev-card__meta svg{ flex:none; color:var(--text-2); }
.ev-card__more-dates{ color:var(--accent-ink); font-weight:600; }
.ev-card__right{ display:flex; flex-direction:row; align-items:center; gap:14px; min-width:0; padding:13px 16px 13px 0; }
.ev-card__acts{ display:flex; flex-direction:row; gap:7px; }
/* онлайн / бесплатный вебинар - зелёная дата-плашка + бейдж «Бесплатно» (вместо синей) */
.ev-card.is-green .ev-card__date{ background:linear-gradient(160deg,#3fae8f,#2e8f73); }
.ev-card.is-green.is-start .ev-card__date{ background:linear-gradient(180deg,#3fae8f,#2e8f73); }
/* МОБИЛЬНАЯ карточка мероприятия (client 29.06): слева дата/месяц/дни,
   справа только название + кнопка по горизонтали, без дубля «4 дн.»/«Казань» */
@media (max-width:640px){
  .ev-card__days{ display:block; }            /* «4 дня» показываем слева */
  .ev-card__meta{ display:none; }             /* справа не дублируем длительность/город */
  .ev-card{ grid-template-columns:84px 1fr auto; }
  .ev-card__body{ padding:12px 12px 12px 14px; }
  .ev-card__name{ font-size:.92rem; }
  .ev-card__right{ padding:12px 12px 12px 0; }
  .ev-card__right .btn{ padding:9px 14px; font-size:13px; }   /* кнопка чуть меньше */
}
/* Очень узкие (≤430): поджимаем дату-плашку и кнопку «Подробнее», чтобы названию
   хватило ширины и слова переносились по словам, а не по слогам. */
@media (max-width:430px){
  .ev-card{ grid-template-columns:68px 1fr auto; }
  .ev-card__body{ padding:11px 8px 11px 11px; }
  .ev-card__day{ font-size:1rem; }
  .ev-card__right{ padding:11px 9px 11px 0; }
  .ev-card__right .btn{ padding:10px 12px; font-size:12.5px; }
}
.ev-badge--free{ color:#fff; background:linear-gradient(180deg,#3fae8f,#2e8f73); }

/* ============================================================
   ТАЧ-ЗОНЫ ≥44px на мобиле (требование проекта). Только ширина экрана
   ≤680px — десктоп не трогаем. min-height у .btn безопасен: .btn = inline-flex
   c align-items:center, контент остаётся по центру.
   ============================================================ */
@media (max-width:680px){
  .btn--sm{ min-height:44px; }
  .cr-tier__btn, .cr-tier__docs, .cr-payswitch__opt, .pl-ses__btn,
  .events__all, .leadform__catalog{ min-height:44px; }
  .rcard__more, .pl-back, .cr-hd--more, .pl-course__go, .schedule__all,
  .picks__foot a, .prog__back, .brand{ min-height:44px; display:inline-flex; align-items:center; }
  /* .promo__arrow / .evp__arrow скрыты на мобиле (стрелки уехали на бока карточки, навигация = точки) */
  .cal__nav{ min-width:44px; min-height:44px; }
  .footer__soc a{ width:44px; height:44px; }
  .footer__col a{ padding:11px 0; }
  /* PDF-кнопка расписания не должна вылезать за экран на 320 */
  .sched-pdf{ max-width:100%; white-space:normal; }
  /* мелкие точки-индикаторы каруселей: зрительно те же, но зона нажатия ~44px */
  .promo__dot, .hero__dot, .evp__dot{ position:relative; }
  .promo__dot::after, .hero__dot::after, .evp__dot::after{ content:''; position:absolute; inset:-17px; }
}

/* ============================================================
   ЕДИНАЯ МОДАЛКА-ЗАЯВКА (инжектится landings.js на всех страницах,
   открывается window.openLeadModal — напр. из AI-консультанта).
   На index существует своя #cost-modal (mabk-landing.css) с тем же
   видом + каталогом; эти правила её дублируют (значения идентичны).
   ============================================================ */
.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__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__pick{ margin:-6px 0 18px; padding:10px 14px; border-radius:12px; background:var(--bg); box-shadow:var(--nm-sm); color:var(--accent-ink); font-weight:700; font-size:.95rem; }
.leadform{ position:relative; display:flex; flex-direction:column; gap:14px; }
.leadform__ok{ position:absolute; inset:-24px; background:var(--bg); 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; }
