/* АРИСТЕК — страница курса: шапка + hero (mobile first) */

:root{
  --ink:      #231F20;
  --ink-2:    #5E5564;
  --paper:    #FFFFFF;
  --mist:     #F7F2FA;
  --line:     #EAE2F0;
  --plum-9:   #2E0B44;
  --plum-8:   #40165E;
  --lilac:    #D9C4EC;
  --mag:      #E9008B;
  --vio:      #6E2B90;
  --grad:     linear-gradient(94deg, #E9008B 0%, #A4188D 46%, #6E2B90 100%);
  --focus:    #E9008B;
  --focus-on-dark: #FF8ACB;
  --radius:   14px;
  --header-z: 60;
}

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

html{ scroll-behavior:smooth; }
html.menu-open{ overflow:hidden; }

body{
  margin:0;
  font-family:"Golos Text","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:16px; line-height:1.5;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}

::selection{ background:var(--mag); color:#fff; }

a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
svg{ display:block; flex:none; }

:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; border-radius:6px; }
.menu :focus-visible,
.cat-panel :focus-visible{ outline-color:var(--focus-on-dark); }

[id]{ scroll-margin-top:92px; }
@media (min-width:1120px){ [id]{ scroll-margin-top:136px; } }

.container{
  width:min(100% - 32px, 1200px);
  margin-inline:auto;
}

.skip{
  position:absolute; left:16px; top:-48px; z-index:100;
  padding:10px 16px; border-radius:10px;
  background:var(--plum-9); color:#fff; font-weight:600; font-size:14px;
  transition:top .2s;
}
.skip:focus-visible{ top:12px; }

/* ШАПКА */
.site-header{
  position:sticky; top:0; z-index:var(--header-z);
  background:var(--paper);
}

.brand-ribbon{ height:3px; background:var(--grad); }

.u-strip{ display:none; }
@media (min-width:768px){
  .u-strip{
    display:block;
    background:var(--mist);
    border-bottom:1px solid var(--line);
  }
  .u-strip__in{
    display:flex; align-items:center; justify-content:space-between;
    gap:24px; min-height:38px; font-size:13px;
  }
  .u-links{ display:flex; align-items:center; gap:20px; }
  .u-links a{
    display:inline-flex; align-items:center; gap:7px;
    color:var(--ink-2); font-weight:500;
    transition:color .2s;
  }
  .u-links a:hover{ color:var(--ink); }
  .u-phone{
    display:inline-flex; align-items:center; gap:8px;
    font-weight:600; color:var(--ink); letter-spacing:.01em;
    transition:color .2s;
  }
  .u-phone:hover{ color:var(--vio); }
}

.h-bar{
  background:var(--paper);
  border-bottom:1px solid var(--line);
  transition:box-shadow .25s;
}
.site-header.is-scrolled .h-bar{
  box-shadow:0 12px 34px -20px rgba(46,11,68,.4);
}
.h-bar__in{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; min-height:66px;
  padding-block:8px;
}

.logo{ display:inline-flex; flex:none; }
.logo img{
  display:block;
  width:175px;
  height:auto;
}

.h-actions{ display:flex; align-items:center; gap:8px; }

.ico-btn{
  display:grid; place-items:center;
  width:42px; height:42px; border-radius:12px;
  background:var(--mist); color:var(--ink);
  transition:background .2s, color .2s;
}
.ico-btn:hover{ background:#EFE6F5; color:var(--vio); }
@media (min-width:768px){ .ico-btn{ display:none; } }

.burger{
  display:flex; flex-direction:column; align-items:flex-end; justify-content:center;
  gap:5px; width:46px; height:42px; padding:0 13px;
  border-radius:12px; background:var(--plum-9);
}
.burger span{
  display:block; height:2px; border-radius:2px; background:#fff;
  transition:transform .3s, width .3s;
}
.burger span:nth-child(1){ width:18px; }
.burger span:nth-child(2){ width:12px; }
.burger:hover span:nth-child(2){ width:18px; }

.h-nav{ display:none; }
@media (min-width:1120px){
  .h-bar__in{ min-height:78px; gap:24px; }
  .logo img{ width:200px; }
  .h-actions{ display:none; }

  .h-nav{
    display:flex; align-items:center; gap:20px; flex:1; min-width:0;
  }

  .cat-btn{
    display:inline-flex; align-items:center; gap:9px;
    padding:10px 15px; border-radius:999px;
    background:var(--mist); font-weight:600; font-size:14px;
    transition:background .2s, color .2s;
  }
  .cat-btn:hover{ background:#EFE6F5; }
  .cat-btn[aria-expanded="true"]{ background:var(--plum-9); color:#fff; }
  .cat-btn .chev{ transition:transform .25s; }
  .cat-btn[aria-expanded="true"] .chev{ transform:rotate(180deg); }

  .h-links{ display:flex; align-items:center; gap:19px; margin-left:2px; }
  .h-links a{
    position:relative; font-size:14px; font-weight:500;
    color:var(--ink-2); letter-spacing:.01em; padding:4px 0;
    transition:color .2s;
  }
  .h-links a::after{
    content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
    border-radius:2px; background:var(--grad);
    transform:scaleX(0); transform-origin:left;
    transition:transform .25s;
  }
  .h-links a:hover, .h-links a:focus-visible{ color:var(--ink); }
  .h-links a:hover::after, .h-links a:focus-visible::after{ transform:scaleX(1); }
}

.cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 20px; border-radius:999px;
  background:var(--grad); color:#fff;
  font-weight:600; font-size:14px; letter-spacing:.01em;
  box-shadow:0 10px 22px -12px rgba(233,0,139,.55);
  transition:transform .2s, box-shadow .2s, filter .2s;
}
.cta:hover{ transform:translateY(-1px); filter:brightness(1.07);
  box-shadow:0 14px 26px -12px rgba(233,0,139,.6); }
.cta:active{ transform:translateY(0); }
@media (min-width:1120px){ .h-nav .cta{ margin-left:auto; } }

/* ФИРМЕННЫЙ ЗНАК-МАРКЕР: «штрих крыла» */
.tick{
  display:block;
  width:16px; height:9px; border-radius:2px;
  background:var(--grad);
  transform:skewX(-22deg);
}
.ticks{ display:inline-flex; align-items:center; gap:3px; }
.ticks .tick:nth-child(1){ width:16px; }
.ticks .tick:nth-child(2){ width:11px; opacity:.62; }
.ticks .tick:nth-child(3){ width:7px;  opacity:.32; }

/* КАТАЛОГ КУРСОВ — десктопная панель под шапкой */
.cat-panel{
  position:absolute; left:0; right:0; top:100%;
  background:var(--plum-9); color:#fff;
  opacity:0; visibility:hidden; transform:translateY(-10px);
  pointer-events:none;
  transition:opacity .3s, transform .3s, visibility 0s .3s;
}
.cat-panel::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.cat-panel.is-open{
  opacity:1; visibility:visible; transform:translateY(0);
  pointer-events:auto; transition-delay:0s;
}
.cat-panel__in{ padding:30px 0 36px; }
.cat-panel__head{
  display:flex; align-items:baseline; gap:14px; margin-bottom:20px;
}
.cat-panel__head .ticks{ transform:translateY(-1px); }
.cat-panel__title{
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:22px; letter-spacing:.02em;
}
.cat-panel__count{ font-size:13px; color:var(--lilac); }

.cat-panel .cat-list{ columns:3; column-gap:28px; }
@media (max-width:1279px){ .cat-panel .cat-list{ columns:2; } }

.cat-list li{ break-inside:avoid; }
.cat-list a{
  display:flex; align-items:flex-start; gap:11px;
  padding:10px 12px; border-radius:12px;
  font-size:15px; line-height:1.35; color:#E9DCF4;
  transition:background .2s, color .2s;
}
.cat-list a .tick{ margin-top:6px; opacity:0; transition:opacity .2s; }
.cat-list a:hover{ background:var(--plum-8); color:#fff; }
.cat-list a:hover .tick{ opacity:1; }
.cat-list a[aria-current="page"]{
  background:var(--plum-8); color:#fff; font-weight:500;
}
.cat-list a[aria-current="page"] .tick{ opacity:1; }
.cat-list .here{
  font-style:normal; margin-left:auto; align-self:center;
  font-size:11px; letter-spacing:.06em; color:var(--lilac); white-space:nowrap;
}

.scrim{
  position:fixed; inset:0; z-index:50;
  background:rgba(35,11,55,.35);
  opacity:0; visibility:hidden; transition:opacity .3s, visibility 0s .3s;
}
.scrim.is-open{ opacity:1; visibility:visible; transition-delay:0s; }
@media (max-width:1119.98px){ .cat-panel, .scrim{ display:none; } }

/* МОБИЛЬНОЕ МЕНЮ — сливовый оверлей */
.menu{
  position:fixed; inset:0; z-index:90;
  background:
    radial-gradient(120% 55% at 100% 0%, rgba(233,0,139,.22), transparent 55%),
    var(--plum-9);
  color:#fff;
  overflow-y:auto; overscroll-behavior:contain;
  transform:translateX(100%); visibility:hidden;
  transition:transform .45s cubic-bezier(.22,.8,.28,1), visibility 0s .45s;
}
html.menu-open .menu{
  transform:translateX(0); visibility:visible; transition-delay:0s;
}
@media (min-width:1120px){ .menu{ display:none; } }

.menu__head{
  position:sticky; top:0; z-index:2;
  display:flex; align-items:center; gap:12px;
  padding:14px 20px;
  background:rgba(46,11,68,.9);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.menu__title{
  font-size:12px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--lilac);
}
.menu__close{
  margin-left:auto;
  display:grid; place-items:center;
  width:44px; height:44px; border-radius:12px;
  border:1px solid rgba(255,255,255,.2);
  transition:background .2s;
}
.menu__close:hover{ background:rgba(255,255,255,.1); }

.menu__body{
  display:flex; flex-direction:column;
  padding:6px 20px calc(36px + env(safe-area-inset-bottom));
}

.menu__body > *{
  opacity:0; transform:translateY(14px);
  transition:opacity .5s cubic-bezier(.22,.8,.28,1),
             transform .5s cubic-bezier(.22,.8,.28,1);
}
html.menu-open .menu__body > *{ opacity:1; transform:none; }
html.menu-open .menu__body > *:nth-child(1){ transition-delay:.08s; }
html.menu-open .menu__body > *:nth-child(2){ transition-delay:.14s; }
html.menu-open .menu__body > *:nth-child(3){ transition-delay:.20s; }
html.menu-open .menu__body > *:nth-child(4){ transition-delay:.26s; }
html.menu-open .menu__body > *:nth-child(5){ transition-delay:.32s; }

.m-solo{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:16px 4px;
  border-bottom:1px solid rgba(255,255,255,.13);
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(22px, 6vw, 26px); letter-spacing:.01em;
}
.m-solo svg{ color:var(--lilac); transition:transform .25s, color .25s; }
.m-solo:hover svg{ transform:translateX(4px); color:#fff; }

.m-group{ padding:18px 0 6px; }
.eyebrow{
  display:flex; align-items:center; gap:9px;
  margin:0 0 8px; padding:0 4px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--lilac);
}
.eyebrow .tick{ width:11px; height:6px; }
.m-anchors a{
  display:block; padding:10px 4px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(22px, 6vw, 26px); line-height:1.25; letter-spacing:.01em;
  color:#F4ECF9;
  transition:color .2s, transform .2s;
}
.m-anchors a:hover{ color:#fff; transform:translateX(4px); }

.menu .cta{
  width:100%; padding:15px 20px; font-size:15px; margin:14px 0 6px;
}

.m-cat{ border-block:1px solid rgba(255,255,255,.13); margin-top:12px; }
.m-cat__btn{
  display:flex; align-items:center; gap:12px; width:100%;
  padding:16px 4px; text-align:left;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(22px, 6vw, 26px); letter-spacing:.01em;
}
.m-cat__btn .count{
  font-family:"Golos Text",sans-serif;
  font-size:12px; font-weight:600; color:var(--lilac);
  padding:3px 9px; border:1px solid rgba(255,255,255,.25); border-radius:999px;
}
.m-cat__btn .chev{ margin-left:auto; color:var(--lilac); transition:transform .3s; }
.m-cat__btn[aria-expanded="true"] .chev{ transform:rotate(180deg); }

.m-cat__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .4s cubic-bezier(.22,.8,.28,1);
}
.m-cat.is-open .m-cat__panel{ grid-template-rows:1fr; }
.m-cat__inner{ overflow:hidden; }
.m-cat .cat-list{ padding:2px 0 16px; }

.m-contacts{ padding-top:20px; }
.m-phone{
  display:inline-flex; align-items:center; gap:11px;
  padding:4px 4px 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(24px, 6.6vw, 28px); letter-spacing:.02em; color:#fff;
}
.m-phone svg{ color:var(--lilac); }
.m-chips{ display:flex; flex-wrap:wrap; gap:10px; padding:2px 0; }
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 15px; border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  font-size:14px; font-weight:500;
  transition:background .2s;
}
.chip:hover{ background:rgba(255,255,255,.15); }

/* HERO — первый экран курса */
.hero{
  padding:16px 0 46px;
  background:
    radial-gradient(58rem 24rem at 112% -8rem, rgba(233,0,139,.07), transparent 62%),
    var(--paper);
}

@keyframes hero-rise{ from{ opacity:0; transform:translateY(14px); } }
.crumbs{      animation:hero-rise .6s cubic-bezier(.22,.8,.28,1) backwards; }
.hero__media{ animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.hero__body{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .14s backwards; }

.crumbs{ margin-bottom:16px; }
.crumbs ol{
  margin:0; padding:0; list-style:none;
  display:flex; flex-wrap:wrap; align-items:center;
  row-gap:4px; column-gap:10px;
  font-size:13px; color:var(--ink-2);
}
.crumbs li{ display:flex; align-items:center; gap:10px; min-width:0; }
.crumbs li+li::before{
  content:""; flex:none;
  width:7px; height:4px; border-radius:1.5px;
  background:var(--grad); opacity:.45;
  transform:skewX(-22deg);
}
.crumbs a{ transition:color .2s; }
.crumbs a:hover{ color:var(--ink); }
.crumbs [aria-current="page"]{ color:var(--ink); font-weight:500; }

.hero__grid{ display:grid; gap:22px; }

.hero__media{ position:relative; }
.hero__wing{
  position:absolute; top:-11px; right:20px; z-index:1;
  display:flex; flex-direction:column; align-items:flex-end; gap:5px;
}
.hero__wing i{
  display:block; height:10px; border-radius:3px;
  background:var(--grad); transform:skewX(-22deg);
}
.hero__wing i:nth-child(1){ width:78px; }
.hero__wing i:nth-child(2){ width:52px; opacity:.62; }
.hero__wing i:nth-child(3){ width:30px; opacity:.32; }

.hero__photo{
  margin:0; position:relative; overflow:hidden;
  border-radius:20px;
  aspect-ratio:3/2;
  box-shadow:0 26px 50px -30px rgba(46,11,68,.4);
}
.hero__photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center 40%;
}

.hero__tags{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 14px; }
.tag{
  display:inline-flex; align-items:baseline; gap:5px;
  padding:7px 13px; border-radius:999px;
  border:1px solid var(--line);
  font-size:13px; font-weight:500; color:var(--ink-2);
  transition:background .2s, color .2s, border-color .2s;
}
.tag span{
  font-weight:600;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.tag:hover{ background:var(--mist); border-color:transparent; color:var(--ink); }

.hero__title{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(30px, 8vw, 46px); line-height:1.12; letter-spacing:.01em;
}
.hero__title-sub{
  display:block; margin-top:9px;
  font-size:clamp(17px, 4.6vw, 21px); line-height:1.35;
  color:var(--ink-2);
}

.hero__lead{
  margin:0 0 20px; max-width:54ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

.hero__facts{
  margin:0 0 22px;
  display:grid; grid-template-columns:1fr 1fr;
  background:var(--mist);
  border:1px solid var(--line); border-radius:18px;
  overflow:hidden;
}
.fact{ padding:15px 18px 16px; min-width:0; }
.fact+.fact{ border-left:1px solid var(--line); }
.hero__facts .fact--docs{
  grid-column:1 / -1;
  border-left:0; border-top:1px solid var(--line);
}
.fact dt{
  margin:0 0 7px;
  font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2);
}
.fact dd{ margin:0; }
.fact__val{ display:flex; align-items:baseline; flex-wrap:wrap; gap:7px; }
.fact__num{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(24px, 6.4vw, 30px); line-height:1; letter-spacing:.01em;
  white-space:nowrap;
}
.fact__unit{ font-size:13px; color:var(--ink-2); }
.fact__doc{ margin:0 0 6px; font-size:15.5px; font-weight:600; line-height:1.4; }
.fact__note{ margin:0; font-size:13px; line-height:1.45; color:var(--ink-2); }

.hero .cta{ width:100%; padding:15px 22px; font-size:15px; }

@media (min-width:640px){
  .hero__photo{ aspect-ratio:2/1; }
  .hero .cta{ width:auto; }
}

@media (min-width:960px){
  .hero{ padding:24px 0 72px; }
  .crumbs{ margin-bottom:22px; }
  .hero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,6fr);
    gap:clamp(28px, 4.5vw, 56px);
    align-items:stretch;
  }
  .hero__media{ order:2; }
  .hero__body{
    order:1;
    display:flex; flex-direction:column;
    align-items:flex-start; justify-content:center;
  }
  .hero__facts{ align-self:stretch; }
  .hero__photo{ aspect-ratio:auto; height:100%; min-height:440px; }
  .hero__wing{ top:-12px; right:26px; }
  .hero__wing i{ height:11px; }
  .hero__wing i:nth-child(1){ width:92px; }
  .hero__wing i:nth-child(2){ width:62px; }
  .hero__wing i:nth-child(3){ width:36px; }
}

main{ padding:0; }

/* ОБЩИЕ ЭЛЕМЕНТЫ СЕКЦИЙ (переиспользуются следующими блоками) */
.sec-eyebrow{
  display:flex; align-items:center; gap:9px;
  margin:0 0 10px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-2);
}
.sec-eyebrow .tick{ width:12px; height:6px; }

.sec-title{
  margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(26px, 6.6vw, 38px); line-height:1.14; letter-spacing:.01em;
}
.sec-sub{
  margin:10px 0 0; max-width:56ch;
  font-size:15.5px; line-height:1.55; color:var(--ink-2);
}
.sec-sub a{
  border-bottom:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.sec-sub a:hover{ color:var(--ink); border-color:var(--vio); }

.sr{
  position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; border:0;
  clip-path:inset(50%); overflow:hidden; white-space:nowrap;
}

/* БЛИЖАЙШИЕ ГРУППЫ — слайдер расписания направления */
.groups{
  padding:48px 0 54px;
  background:
    radial-gradient(46rem 20rem at -8% 0%, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
  border-block:1px solid var(--line);
}

.groups__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}

.groups__nav{ display:none; gap:8px; }
.g-btn{
  display:grid; place-items:center;
  width:46px; height:46px; border-radius:999px;
  background:var(--paper); border:1px solid var(--line);
  transition:background .2s, color .2s, border-color .2s, opacity .2s;
}
.g-btn:hover:not(:disabled){
  background:var(--plum-9); border-color:var(--plum-9); color:#fff;
}
.g-btn:disabled{ opacity:.35; cursor:default; }

.g-track{
  display:flex; gap:14px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:8px max(16px, calc((100% - 1200px)/2)) 24px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.g-track::-webkit-scrollbar{ display:none; }

.g-card{
  position:relative;
  flex:0 0 clamp(254px, 82vw, 318px);
  scroll-snap-align:start;
  display:flex; flex-direction:column;
  padding:18px 18px 16px;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .g-card:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
}

.g-course{
  margin:0 0 14px; min-height:2.5em;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.25; letter-spacing:.01em;
}
.g-course a{ transition:color .2s; }
.g-course a:hover{ color:var(--vio); }
.g-course a svg{
  display:inline-block; vertical-align:baseline;
  margin-left:3px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
.g-course a:hover svg{ transform:translate(2px,-2px); opacity:1; }

.g-start{
  display:flex; align-items:flex-end; justify-content:space-between; gap:12px;
}
.g-label{
  display:block; margin:0 0 6px;
  font-size:10.5px; font-weight:600; letter-spacing:.15em;
  text-transform:uppercase; color:var(--ink-2);
}
.g-date{ display:flex; align-items:baseline; gap:7px; white-space:nowrap; }
.g-date b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:36px; line-height:.9; letter-spacing:.01em;
}
.g-date span{ font-size:15px; font-weight:500; }

.g-slot{
  display:inline-flex; align-items:center; gap:6px;
  margin-bottom:3px; padding:6px 11px;
  border-radius:999px; background:var(--mist); border:1px solid var(--line);
  font-size:12.5px; font-weight:600; color:var(--plum-8);
  white-space:nowrap;
}
.g-slot svg{ color:var(--vio); }

.g-sched{
  margin:14px 0 16px; padding-top:13px;
  border-top:1px dashed var(--line);
}
.g-week{ display:flex; gap:4px; }
.g-week i{
  position:relative; isolation:isolate;
  flex:1 1 0; height:30px;
  display:grid; place-items:center;
  font-style:normal; font-size:11px; font-weight:600; letter-spacing:.03em;
  color:var(--ink-2); opacity:.5;
}
.g-week i.on{ color:#fff; opacity:1; }
.g-week i.on::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:8px;
  transform:skewX(-12deg);
}
.g-time{
  display:flex; align-items:center; gap:8px;
  margin:11px 0 0;
  font-size:15px; font-weight:500;
  font-variant-numeric:tabular-nums;
}
.g-time svg{ color:var(--ink-2); }

.g-cta{
  margin-top:auto;
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 16px; border-radius:999px;
  background:var(--mist);
  font-size:14px; font-weight:600; letter-spacing:.01em;
  transition:background .2s, color .2s;
}
.g-cta svg{ transition:transform .2s; }
.g-cta:hover{ background:var(--plum-9); color:#fff; }
.g-cta:hover svg{ transform:translateX(3px); }

.groups__foot{ display:flex; align-items:center; }
.g-progress{
  flex:1; max-width:240px; height:3px;
  border-radius:2px; background:rgba(46,11,68,.12);
  overflow:hidden;
}
.g-progress i{
  display:block; height:100%; width:100%;
  background:var(--grad);
  transform-origin:left; transform:scaleX(.25);
}

@media (min-width:768px){
  .groups__nav{ display:flex; }
}
@media (min-width:960px){
  .groups{ padding:72px 0 76px; }
  .groups__head{ margin-bottom:24px; }
  .g-track{ gap:16px; }
  .g-card{ flex-basis:318px; padding:20px 20px 18px; }
}

/* ПРЕИМУЩЕСТВА КУРСА — тёмная брендовая полоса */
.perks{
  --hair:rgba(255,255,255,.14);
  position:relative;
  padding:52px 0 56px;
  background:
    radial-gradient(46rem 22rem at 110% -6rem, rgba(233,0,139,.18), transparent 62%),
    radial-gradient(40rem 22rem at -12% 118%, rgba(110,43,144,.4), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.perks::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.perks :focus-visible{ outline-color:var(--focus-on-dark); }

.perks .sec-eyebrow,
.perks .sec-sub{ color:var(--lilac); }

.perk-grid{ margin-top:22px; }

.perk{ padding:20px 0 24px; }
.perk + .perk{ border-top:1px solid var(--hair); }

.perk .ticks{ margin-bottom:14px; }
.perk .tick{
  transition:width .35s cubic-bezier(.22,.8,.28,1), opacity .35s;
}
@media (hover:hover){
  .perk:hover .ticks .tick{ width:16px; opacity:1; }
}

.perk__title{
  margin:0 0 8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.3; letter-spacing:.01em;
}
.perk__text{
  margin:0; max-width:46ch;
  font-size:14.5px; line-height:1.62; color:var(--lilac);
}
.perk__text a{
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
  transition:color .2s, border-color .2s;
}
.perk__text a:hover{ color:var(--focus-on-dark); border-color:var(--focus-on-dark); }

@media (min-width:640px) and (max-width:959.98px){
  .perk-grid{ display:grid; grid-template-columns:1fr 1fr; }
  .perk{ padding:24px 30px 26px 0; }
  .perk:nth-child(even){ padding:24px 0 26px 30px; border-left:1px solid var(--hair); }
  .perk:nth-child(2){ border-top:0; }
}

@media (min-width:960px){
  .perks{ padding:74px 0 80px; }
  .perks__head{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,42ch);
    gap:40px; align-items:end;
  }
  .perks__head .sec-sub{ margin:0 0 5px; }

  .perk-grid{
    margin-top:30px;
    display:grid; grid-template-columns:repeat(3,1fr);
  }
  .perk{ padding:26px 30px 28px; }
  .perk:nth-child(3n+1){ padding-left:0; }
  .perk:nth-child(3n){ padding-right:0; }
  .perk + .perk{ border-top:0; }
  .perk:nth-child(n+4){ border-top:1px solid var(--hair); }
  .perk:not(:nth-child(3n+1)){ border-left:1px solid var(--hair); }
}

/* ВЫ НАУЧИТЕСЬ — чек-лист результатов обучения */
.skills{
  padding:52px 0 56px;
  background:
    radial-gradient(44rem 20rem at -10% -4rem, rgba(110,43,144,.05), transparent 62%),
    var(--paper);
}

.skill-grid{ margin-top:24px; }

.skill{
  display:grid; grid-template-columns:30px minmax(0,1fr); column-gap:14px;
  padding:20px 0 22px;
}
.skill > *{ grid-column:2; min-width:0; }
.skill > .skill__box{ grid-column:1; grid-row:1; }
.skill + .skill{ border-top:1px dashed var(--line); }
.skill:first-child{ padding-top:4px; }

.skill__box{
  width:30px; height:30px; border-radius:9px;
  display:grid; place-items:center;
  background:var(--mist); border:1px solid var(--line);
  transition:background .25s, border-color .25s;
}
.skill__box .tick{ width:13px; height:7px; }
@media (hover:hover){
  .skill:hover .skill__box{ background:var(--plum-9); border-color:var(--plum-9); }
}

.skill__title{
  margin:4px 0 0;
  font-size:16.5px; font-weight:600; line-height:1.35; letter-spacing:.005em;
}
.skill__text{
  margin:7px 0 0; max-width:56ch;
  font-size:14.5px; line-height:1.6; color:var(--ink-2);
}

.s-chips{ display:flex; flex-wrap:wrap; gap:7px; margin:13px 0 0; }
.s-chip{
  display:inline-flex; align-items:baseline; gap:5px;
  padding:6px 11px; border-radius:999px;
  background:var(--mist); border:1px solid var(--line);
  font-size:12.5px; font-weight:600; color:var(--plum-8);
  white-space:nowrap;
}

.s-chip--plus b{
  font-weight:700;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.skills__foot{
  margin-top:2px; padding-top:22px;
  border-top:1px dashed var(--line);
  display:flex; flex-direction:column; align-items:flex-start; gap:14px;
}
.skills__note{
  margin:0; max-width:56ch;
  font-size:14.5px; line-height:1.6; color:var(--ink-2);
}
.skills__more{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14.5px; font-weight:600; letter-spacing:.01em;
  transition:color .2s;
}
.skills__more svg{ color:var(--vio); transition:transform .2s; }
.skills__more:hover{ color:var(--vio); }
.skills__more:hover svg{ transform:translateX(3px); }

.skills .will-reveal{
  opacity:0; transform:translateY(14px);
  transition:opacity .55s cubic-bezier(.22,.8,.28,1),
             transform .55s cubic-bezier(.22,.8,.28,1);
}
.skills .will-reveal.is-in{ opacity:1; transform:none; }

@media (min-width:960px){
  .skills{ padding:74px 0 80px; }
  .skills__head{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,42ch);
    gap:40px; align-items:end;
  }
  .skills__head .sec-sub{ margin:0 0 5px; }

  .skill-grid{
    margin-top:32px;
    display:grid; grid-template-columns:1fr 1fr;
    column-gap:clamp(44px, 5.5vw, 76px);
  }
  .skill{ padding:24px 0 26px; }
  .skill:nth-child(2){ border-top:0; padding-top:4px; }

  .skills__foot{
    padding-top:26px;
    flex-direction:row; align-items:center; justify-content:space-between; gap:24px;
  }
  .skills__more{ white-space:nowrap; }
}

/* ПРОГРАММА КУРСА — учебный план с раскрывающимися темами */
.program{
  --pad-x:18px;
  --numw:30px;
  --pgap:12px;
  padding:52px 0 56px;
  background:
    radial-gradient(46rem 20rem at 108% -6rem, rgba(233,0,139,.06), transparent 62%),
    var(--mist);
  border-block:1px solid var(--line);
}

.program__head{ margin-bottom:20px; }

.program__card{
  margin:0; padding:0; list-style:none;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 24px 44px -32px rgba(46,11,68,.35);
  overflow:hidden;
}

.pr-item + .pr-item{ border-top:1px solid var(--line); }

.pr-h{ margin:0; font-weight:400; }
.pr-btn,
.pr-h--plain{
  display:grid; grid-template-columns:var(--numw) minmax(0,1fr) auto;
  column-gap:var(--pgap); align-items:start;
  width:100%; padding:15px var(--pad-x) 16px;
  text-align:left;
}
@media (hover:hover){
  .pr-btn:hover{ background:var(--mist); }
}
.pr-btn:focus-visible{ outline-offset:-3px; }

.pr-num{
  padding-top:2px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(15px, 4vw, 17px); line-height:1.45; letter-spacing:.04em;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.pr-title{
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(17px, 4.7vw, 20px); line-height:1.32; letter-spacing:.01em;
}
.pr-btn .chev{ margin-top:5px; color:var(--vio); transition:transform .3s; }
.pr-btn[aria-expanded="true"] .chev{ transform:rotate(180deg); }

.pr-panel{
  display:grid; grid-template-rows:1fr;
  transition:grid-template-rows .45s cubic-bezier(.22,.8,.28,1);
}
.pr-item:not(.is-open) .pr-panel{ grid-template-rows:0fr; }
.pr-panel__in{ overflow:hidden; }

.pr-list{
  margin:0 var(--pad-x); padding:13px 0 18px;
  border-top:1px dashed var(--line);
}
.pr-list li{
  break-inside:avoid;
  display:flex; align-items:flex-start; gap:10px;
  padding:5px 0;
  font-size:14.5px; line-height:1.55; color:var(--ink-2);
}
.pr-list .tick{
  flex:0 0 11px;
  width:11px; height:6px; margin-top:8px;
}

@media (min-width:640px){
  .program{ --pad-x:22px; }
  .pr-list--cols{ columns:2; column-gap:32px; }
}

@media (min-width:960px){
  .program{ padding:74px 0 80px; --numw:36px; --pgap:14px; }
  .program__grid{
    display:grid; grid-template-columns:minmax(0,4fr) minmax(0,7fr);
    gap:clamp(36px, 5vw, 72px); align-items:start;
  }
  .program__head{ margin:0; position:sticky; top:132px; }
  .pr-btn, .pr-h--plain{ padding:18px var(--pad-x) 19px; }
  .pr-list{ margin-left:calc(var(--pad-x) + var(--numw) + var(--pgap)); }
}

/* КАК ПРОХОДИТ ОБУЧЕНИЕ — фотолента занятий: десять кадров */
.foto{
  position:relative;
  padding:52px 0 48px;
  background:
    radial-gradient(46rem 22rem at -10% -6rem, rgba(233,0,139,.16), transparent 62%),
    radial-gradient(44rem 24rem at 112% 116%, rgba(110,43,144,.45), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.foto::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.foto :focus-visible{ outline-color:var(--focus-on-dark); }

.foto .sec-eyebrow,
.foto .sec-sub{ color:var(--lilac); }

.foto__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:20px;
}

.foto__nav{ display:none; gap:8px; }
.f-btn{
  display:grid; place-items:center;
  width:46px; height:46px; border-radius:999px;
  border:1px solid rgba(255,255,255,.28); color:#fff;
  transition:background .2s, color .2s, border-color .2s, opacity .2s;
}
.f-btn:hover:not(:disabled){ background:#fff; border-color:#fff; color:var(--plum-9); }
.f-btn:disabled{ opacity:.35; cursor:default; }

.ph-track{
  display:flex; gap:14px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:6px max(16px, calc((100% - 1200px)/2)) 10px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.ph-track::-webkit-scrollbar{ display:none; }

.ph-slide{
  flex:0 0 clamp(262px, 84vw, 470px);
  scroll-snap-align:start;
}
.ph-fig{ margin:0; }

.ph-frame{
  position:relative; overflow:hidden;
  aspect-ratio:3/2; border-radius:18px;
  background:var(--plum-8);
  box-shadow:0 26px 46px -30px rgba(0,0,0,.55);
}
.ph-frame img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}
@media (hover:hover){
  .ph-slide:hover .ph-frame img{ transform:scale(1.03); }
}
.ph-num{
  position:absolute; top:12px; left:12px; z-index:1;
  isolation:isolate;
  display:grid; place-items:center;
  width:34px; height:26px;
  font-size:12.5px; font-weight:600; letter-spacing:.04em; color:#fff;
  font-variant-numeric:tabular-nums;
}
.ph-num::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:8px;
  transform:skewX(-12deg);
  box-shadow:0 8px 16px -6px rgba(0,0,0,.5);
}

.ph-frame--todo{
  display:grid; place-items:center;
  background:
    radial-gradient(120% 90% at 82% -6%, rgba(233,0,139,.12), transparent 60%),
    rgba(255,255,255,.05);
  border:1.5px dashed rgba(255,255,255,.28);
  box-shadow:none;
}
.ph-todo{
  display:grid; justify-items:center; gap:9px;
  padding:16px; text-align:center; color:var(--lilac);
}
.ph-todo svg{ opacity:.65; }
.ph-todo b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:17px; letter-spacing:.02em; color:#fff;
}
.ph-todo span{ font-size:12.5px; }

.ph-cap{ display:block; margin:13px 4px 0; }
.ph-stage{
  display:block; margin:0 0 5px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:18px; line-height:1.3; letter-spacing:.01em; color:#fff;
}
.ph-text{
  display:block; max-width:44ch;
  font-size:14px; line-height:1.6; color:var(--lilac);
}

.foto__foot{
  display:flex; align-items:center; gap:16px;
  margin-top:10px;
}
.ph-count{
  margin:0;
  display:flex; align-items:baseline; gap:7px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:14px; letter-spacing:.06em; color:var(--lilac);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.ph-count b{ font-weight:400; font-size:20px; color:#fff; }
.ph-progress{
  flex:1; max-width:240px; height:3px;
  border-radius:2px; background:rgba(255,255,255,.18);
  overflow:hidden;
}
.ph-progress i{
  display:block; height:100%; width:100%;
  background:var(--grad);
  transform-origin:left; transform:scaleX(.1);
}

.foto.will-anim .ph-slide{ opacity:0; transform:translateY(16px); }
.foto.will-anim .foto__foot{ opacity:0; }
.foto.in-view .ph-slide,
.foto.in-view .foto__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.foto.in-view .ph-slide:nth-child(2){ transition-delay:.08s; }
.foto.in-view .ph-slide:nth-child(3){ transition-delay:.16s; }
.foto.in-view .ph-slide:nth-child(4){ transition-delay:.24s; }
.foto.in-view .foto__foot{ transition-delay:.3s; }

@media (min-width:768px){
  .foto__nav{ display:flex; }
}
@media (min-width:960px){
  .foto{ padding:74px 0 64px; }
  .foto__head{ margin-bottom:26px; }
  .ph-track{ gap:18px; }
  .ph-slide{ flex-basis:470px; }
  .ph-cap{ margin-top:15px; }
  .foto__foot{ margin-top:14px; }
}

/* ПРЕПОДАВАТЕЛИ — лента портретов. На каждом портрете — */
.teachers{
  --bio-lines:4;
  padding:50px 0 54px;
  background:
    radial-gradient(44rem 20rem at 112% -6rem, rgba(233,0,139,.05), transparent 62%),
    var(--paper);
}

.teachers__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}
.teachers__nav{ display:none; gap:8px; }

.t-track{
  display:flex; align-items:flex-start;
  gap:14px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:8px max(16px, calc((100% - 1200px)/2)) 20px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.t-track::-webkit-scrollbar{ display:none; }

.t-slide{
  flex:0 0 clamp(246px, 76vw, 300px);
  scroll-snap-align:start;
  display:flex;
}

.t-card{
  width:100%;
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  overflow:hidden;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .t-card:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
  .t-card:hover .t-frame img{ transform:scale(1.03); }
}

.t-frame{
  position:relative; overflow:hidden;
  aspect-ratio:1/1;
  background:var(--mist);
}
.t-frame img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:50% 24%;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}

.t-fact{
  position:absolute; left:15px; bottom:13px; z-index:1;
  isolation:isolate;
  display:inline-flex; align-items:center;
  padding:6px 13px;
  font-size:12px; font-weight:600; letter-spacing:.04em; color:#fff;
  white-space:nowrap;
}
.t-fact::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:8px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(46,11,68,.55);
}

.t-frame--mono{
  display:grid; place-items:center;
  background:
    radial-gradient(120% 90% at 82% -6%, rgba(233,0,139,.10), transparent 60%),
    radial-gradient(110% 80% at -10% 110%, rgba(110,43,144,.14), transparent 62%),
    var(--mist);
}
.t-mono{
  display:grid; justify-items:center; gap:10px;
  padding-bottom:8px;
}
.t-mono b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:56px; line-height:1; letter-spacing:.08em;
  color:var(--vio);
}

.t-body{
  display:flex; flex-direction:column; align-items:flex-start;
  flex:1; padding:14px 16px 15px;
}
.t-name{
  margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:18px; line-height:1.25; letter-spacing:.01em;
}
.t-role{
  margin:7px 0 0;
  font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2);
}
.t-bio{
  margin:11px 0 0;
  font-size:14.5px; line-height:1.62; color:var(--ink-2);
  transition:max-height .4s cubic-bezier(.22,.8,.28,1);
}
.t-bio.is-clamped{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--bio-lines,4);
  line-clamp:var(--bio-lines,4);
  overflow:hidden;
}
.t-bio.is-anim{ overflow:hidden; }

.t-more{
  display:inline-flex; align-items:center; gap:7px;
  margin:9px 0 -6px -11px;
  padding:8px 13px 8px 11px; border-radius:999px;
  font-size:13.5px; font-weight:600; color:var(--vio);
  transition:background .2s, color .2s;
}
.t-more:hover{ background:var(--mist); color:var(--plum-8); }
.t-more svg{ transition:transform .3s; }
.t-more[aria-expanded="true"] svg{ transform:rotate(180deg); }
.t-more[hidden]{ display:none; }

.teachers__foot{
  display:flex; align-items:center; gap:16px;
}
.t-count{
  margin:0;
  display:flex; align-items:baseline; gap:7px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:14px; letter-spacing:.06em; color:var(--ink-2);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.t-count b{ font-weight:400; font-size:20px; color:var(--ink); }

.teachers.will-anim .t-slide{ opacity:0; transform:translateY(16px); }
.teachers.will-anim .teachers__foot{ opacity:0; }
.teachers.in-view .t-slide,
.teachers.in-view .teachers__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.teachers.in-view .t-slide:nth-child(2){ transition-delay:.08s; }
.teachers.in-view .t-slide:nth-child(3){ transition-delay:.16s; }
.teachers.in-view .t-slide:nth-child(4){ transition-delay:.24s; }
.teachers.in-view .teachers__foot{ transition-delay:.3s; }

@media (min-width:768px){
  .teachers__nav{ display:flex; }
}
@media (min-width:960px){
  .teachers{ padding:74px 0 78px; }
  .teachers__head{ margin-bottom:24px; }
  .t-track{ gap:16px; }
  .t-slide{ flex-basis:300px; }
  .t-body{ padding:16px 18px 16px; }
}

/* ЛИЦЕНЗИЯ И ДОКУМЕНТЫ — листы лицензии и сертификата поданы */
.docs{
  padding:48px 0 56px;
  background:
    radial-gradient(46rem 20rem at 110% -6rem, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
  border-block:1px solid var(--line);
}
.docs__head{ margin-bottom:24px; }

.docs__grid{ display:grid; gap:34px; align-items:start; }

.doc{ margin:0; }

.doc__pages{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.doc--cert .doc__pages{ grid-template-columns:minmax(0, 330px); }

.doc__sheet{
  position:relative; display:block; overflow:hidden;
  border-radius:12px;
  background:var(--paper);
  border:1px solid var(--line);
  box-shadow:0 24px 42px -30px rgba(46,11,68,.4);
  transition:transform .25s, box-shadow .25s;
}
.doc__sheet img{ display:block; width:100%; height:auto; }
@media (hover:hover){
  .doc__sheet:hover{
    transform:translateY(-3px);
    box-shadow:0 30px 50px -30px rgba(46,11,68,.5);
  }
}

.doc__zoom{
  position:absolute; right:10px; bottom:10px; z-index:1;
  isolation:isolate;
  display:grid; place-items:center;
  width:34px; height:26px; color:#fff;
}
.doc__zoom::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:8px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(46,11,68,.55);
}

.doc__pg{
  display:block; margin:9px 2px 0;
  font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2);
}

.doc__cap{ display:block; margin:16px 0 0; }
.doc__name{
  display:block; margin:0 0 8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.25; letter-spacing:.01em; color:var(--ink);
}
.doc__text{
  display:block; max-width:46ch;
  font-size:14.5px; line-height:1.62; color:var(--ink-2);
}

.req{ margin:4px 0 0; }
.req > div{
  display:flex; align-items:baseline; gap:12px;
  padding:8px 0;
}
.req dt{
  flex:1; display:flex; align-items:baseline; min-width:0;
  font-size:13.5px; color:var(--ink-2); white-space:nowrap;
}
.req dt::after{
  content:""; flex:1; min-width:24px;
  margin:0 0 3px 10px;
  border-bottom:1px dotted #C9B7DA;
}
.req dd{
  margin:0; max-width:58%;
  font-size:14.5px; font-weight:600; line-height:1.45; text-align:right;
  font-variant-numeric:tabular-nums;
}

.req__mark{
  position:relative; isolation:isolate;
  display:inline-flex; padding:4px 12px;
  font-size:12.5px; font-weight:600; letter-spacing:.04em; color:#fff;
  white-space:nowrap;
}
.req__mark::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:8px;
  transform:skewX(-12deg);
}

.req-note{
  display:flex; align-items:flex-start; gap:10px;
  margin:12px 2px 0;
  font-size:13px; line-height:1.5; color:var(--ink-2);
}
.req-note .ticks{ margin-top:4px; }

.docs.will-anim .doc{ opacity:0; transform:translateY(16px); }
.docs.in-view .doc{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.docs.in-view .doc--cert{ transition-delay:.12s; }

@media (min-width:768px){
  .docs__grid{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:36px; }
}
@media (min-width:960px){
  .docs{ padding:72px 0 80px; }
  .docs__head{ margin-bottom:30px; }
  .docs__grid{ gap:clamp(40px, 4.5vw, 60px); }
  .doc__pages{ gap:16px; }
  .doc--cert .doc__pages{ grid-template-columns:minmax(0, 340px); }
  .doc__name{ font-size:21px; }
  .req dt{ font-size:14px; }
  .req dd{ font-size:15px; }
}

/* ПРОСМОТР ДОКУМЕНТА — полноэкранный оверлей: листание */
html.dbox-open{ overflow:hidden; }

.dbox{
  position:fixed; inset:0; z-index:100;
  display:flex; flex-direction:column;
  background:rgba(28,8,42,.94);
  color:#fff;
  opacity:0; visibility:hidden;
  transition:opacity .3s, visibility 0s .3s;
}
.dbox.is-open{ opacity:1; visibility:visible; transition-delay:0s; }
.dbox :focus-visible{ outline-color:var(--focus-on-dark); }

.dbox__bar{
  display:flex; align-items:center; gap:10px;
  padding:12px 16px;
}
.dbox__cap{
  flex:1; min-width:0; margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:16px; letter-spacing:.02em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

.dbox__btn{
  flex:none;
  display:grid; place-items:center;
  width:44px; height:44px; border-radius:999px;
  border:1px solid rgba(255,255,255,.28); color:#fff;
  transition:background .2s, color .2s, border-color .2s;
}
.dbox__btn:hover,
.dbox__btn[aria-pressed="true"]{ background:#fff; border-color:#fff; color:var(--plum-9); }

.dbox__pane{
  flex:1; min-height:0;
  display:flex;
  overflow:auto; overscroll-behavior:contain;
  padding:6px 16px;
  -webkit-overflow-scrolling:touch;
}

.dbox__fit{ margin:auto; }
.dbox__img{
  display:block;
  max-width:min(94vw, 860px);
  max-height:calc(100vh - 170px);
  max-height:calc(100dvh - 170px);
  width:auto; height:auto;
  border-radius:10px;
  background:var(--paper);
  box-shadow:0 40px 80px -40px rgba(0,0,0,.8);
  cursor:zoom-in;
}
.dbox.is-zoom .dbox__img{
  max-width:none; max-height:none;
  width:min(1400px, 320vw);
  border-radius:6px;
  cursor:zoom-out;
}

.dbox__nav{
  display:flex; align-items:center; justify-content:center; gap:14px;
  padding:12px 16px calc(14px + env(safe-area-inset-bottom));
}
.dbox__count{
  margin:0; min-width:64px;
  display:flex; align-items:baseline; justify-content:center; gap:7px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:14px; letter-spacing:.06em; color:var(--lilac);
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.dbox__count b{ font-weight:400; font-size:20px; color:#fff; }

/* ПРЕИМУЩЕСТВА ШКОЛЫ — «крыло Аристека»: четыре причины */
.why{
  --hair:rgba(255,255,255,.15);
  --sweep:7px;
  position:relative;
  padding:52px 0 56px;
  background:
    radial-gradient(46rem 22rem at -8% -6rem, rgba(233,0,139,.16), transparent 62%),
    radial-gradient(44rem 24rem at 112% 112%, rgba(110,43,144,.42), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.why::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.why :focus-visible{ outline-color:var(--focus-on-dark); }

.why .sec-eyebrow,
.why .sec-sub{ color:var(--lilac); }

.why-wing{ display:grid; gap:10px; margin-top:24px; }

.why-item{
  position:relative; isolation:isolate;
  padding:17px 20px 18px 29px;
}
.why-item:nth-child(2){ margin-left:calc(var(--sweep)*1); }
.why-item:nth-child(3){ margin-left:calc(var(--sweep)*2); }
.why-item:nth-child(4){ margin-left:calc(var(--sweep)*3); }

.why-item::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:rgba(255,255,255,.055);
  border:1px solid var(--hair); border-radius:16px;
  transform:skewX(-6deg);
  transition:background .25s, border-color .25s;
}

.why-item::after{
  content:""; position:absolute; left:3px; top:12px; bottom:12px; z-index:-1;
  width:6px; border-radius:3px;
  background:var(--grad);
  transform:skewX(-6deg);
  transition:width .3s cubic-bezier(.22,.8,.28,1);
}
@media (hover:hover){
  .why-item:hover::before{
    background:rgba(255,255,255,.085);
    border-color:rgba(255,255,255,.26);
  }
  .why-item:hover::after{ width:9px; }
}

.why-item__title{
  margin:0 0 7px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.25; letter-spacing:.01em;
}
.why-item__text{
  margin:0; max-width:56ch;
  font-size:14.5px; line-height:1.6; color:var(--lilac);
}
.why-item__text a,
.why__foot a{
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
  transition:color .2s, border-color .2s;
}
.why-item__text a:hover,
.why__foot a:hover{ color:var(--focus-on-dark); border-color:var(--focus-on-dark); }

.why__foot{
  display:flex; align-items:flex-start; gap:10px;
  margin:18px 2px 0;
  font-size:13px; line-height:1.5; color:var(--lilac);
}
.why__foot .ticks{ margin-top:4px; }

.why.will-anim .why-item,
.why.will-anim .why__foot{ opacity:0; transform:translateX(-28px); }

.why.in-view .why-item,
.why.in-view .why__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.why.in-view .why-item:nth-child(2){ transition-delay:.08s; }
.why.in-view .why-item:nth-child(3){ transition-delay:.16s; }
.why.in-view .why-item:nth-child(4){ transition-delay:.24s; }
.why.in-view .why__foot{ transition-delay:.34s; }

@media (min-width:640px){
  .why{ --sweep:18px; }
  .why-item{ padding:20px 26px 21px 36px; }
}

@media (min-width:960px){
  .why{ --sweep:34px; padding:74px 0 80px; }

  .why__head{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,42ch);
    gap:40px; align-items:end;
  }
  .why__head .sec-sub{ margin:0 0 5px; }

  .why-wing{ gap:12px; margin-top:32px; }
  .why-item{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,58ch);
    column-gap:44px; align-items:start;
    padding:24px 34px 25px 42px;
  }
  .why-item__title{ margin:2px 0 0; font-size:21px; }
}

/* ОТЗЫВЫ */
.rev{
  --rev-lines:9;
  padding:50px 0 56px;
  background:
    radial-gradient(44rem 20rem at -8% -6rem, rgba(233,0,139,.05), transparent 62%),
    var(--paper);
}

.rev__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}
.rev__nav{ display:none; gap:8px; }

.rev-track{
  display:flex; align-items:flex-start;
  gap:14px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:8px max(16px, calc((100% - 1200px)/2)) 20px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.rev-track::-webkit-scrollbar{ display:none; }

.rev-slide{
  flex:0 0 clamp(262px, 84vw, 330px);
  scroll-snap-align:start;
  display:flex;
}

.rev-card{
  width:100%;
  display:flex; flex-direction:column; align-items:flex-start;
  padding:18px 18px 16px;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .rev-card:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
}

.rev-top{
  align-self:stretch;
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:14px; margin-bottom:12px;
}

.rev-quote{ display:inline-flex; gap:4px; padding-top:3px; }
.rev-quote i{
  display:block; width:9px; height:17px; border-radius:2.5px;
  background:var(--grad); transform:skewX(-22deg);
}
.rev-quote i:nth-child(2){ opacity:.62; }
.rev-quote i:nth-child(3){
  width:0; opacity:0; margin-left:-4px;
  transition:width .35s cubic-bezier(.22,.8,.28,1), opacity .35s, margin .35s;
}
@media (hover:hover){
  .rev-card:hover .rev-quote i:nth-child(3){ width:9px; opacity:.32; margin-left:0; }
}

.rev-tag{
  margin:1px 0 0; max-width:18ch; text-align:right;
  font-size:10.5px; font-weight:600; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-2); line-height:1.6;
}
.rev-tag a{ transition:color .2s; }
.rev-tag a:hover{ color:var(--vio); }
.rev-tag a svg{
  display:inline-block; vertical-align:-1px;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
.rev-tag a:hover svg{ transform:translate(1px,-1px); opacity:1; }

.rev-name{
  margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.25; letter-spacing:.01em;
}

.rev-text{
  margin:10px 0 0;
  font-size:14.5px; line-height:1.62; color:var(--ink-2);
  transition:max-height .4s cubic-bezier(.22,.8,.28,1);
}
.rev-text.is-clamped{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:var(--rev-lines,9);
  line-clamp:var(--rev-lines,9);
  overflow:hidden;
}
.rev-text.is-anim{ overflow:hidden; }

.rev__foot{ display:flex; align-items:center; gap:16px; }

.rev-yaw{ margin-top:26px; }

.rev-ya{
  --ya-pin:#FF4433;
  --ya-star:#FFCC00;
  --ya-laurel:#F0A400;
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:20px;
  padding:26px 22px 24px;
  text-align:center;
  background:
    radial-gradient(30rem 15rem at 50% -7rem, rgba(240,164,0,.12), transparent 65%),
    var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .rev-ya:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
  .rev-ya:hover .rev-ya__cta{ background:var(--plum-9); color:#fff; }
  .rev-ya:hover .rev-ya__cta svg{ transform:translateX(3px); }
}

.rev-ya__award{ display:flex; align-items:center; gap:12px; }
.rev-ya__laurel{ color:var(--ya-laurel); }
.rev-ya__laurel--r{ transform:scaleX(-1); }

.rev-ya__mid{ display:grid; justify-items:center; gap:7px; }
.rev-ya__pin{ color:var(--ya-pin); filter:drop-shadow(0 6px 10px rgba(255,68,51,.3)); }
.rev-ya__title{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:22px; line-height:1.1; letter-spacing:.01em; color:var(--ink);
  white-space:nowrap;
}
.rev-ya__cap{ margin:0; font-size:12.5px; line-height:1.5; color:var(--ink-2); }

.rev-ya__score{ display:grid; justify-items:center; gap:7px; }
.rev-ya__row{ display:flex; align-items:center; gap:12px; }
.rev-ya__num{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:42px; line-height:.9; letter-spacing:.01em; color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.rev-ya__stars{ display:inline-flex; gap:3px; color:var(--ya-star); }

.rev-ya__cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 18px; border-radius:999px;
  background:var(--mist);
  font-size:14px; font-weight:600; letter-spacing:.01em; color:var(--ink);
  transition:background .2s, color .2s;
}
.rev-ya__cta svg{ transition:transform .2s; }

.rev.will-anim .rev-slide{ opacity:0; transform:translateY(16px); }
.rev.will-anim .rev__foot,
.rev.will-anim .rev-yaw{ opacity:0; }
.rev.in-view .rev-slide,
.rev.in-view .rev__foot,
.rev.in-view .rev-yaw{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.rev.in-view .rev-slide:nth-child(2){ transition-delay:.08s; }
.rev.in-view .rev-slide:nth-child(3){ transition-delay:.16s; }
.rev.in-view .rev-slide:nth-child(4){ transition-delay:.24s; }
.rev.in-view .rev__foot{ transition-delay:.3s; }
.rev.in-view .rev-yaw{ transition-delay:.36s; }

@media (min-width:768px){
  .rev__nav{ display:flex; }

  .rev-ya{
    flex-direction:row; flex-wrap:wrap; text-align:left;
    gap:20px 26px; padding:22px 26px;
  }
  .rev-ya__score{ justify-items:start; padding-left:26px; border-left:1px solid var(--line); }
  .rev-ya__cta{ margin-left:auto; }
}
@media (min-width:960px){
  .rev{ padding:74px 0 78px; }
  .rev__head{ margin-bottom:24px; }
  .rev-track{ gap:16px; }
  .rev-slide{ flex-basis:330px; }
  .rev-card{ padding:20px 20px 18px; }
  .rev-yaw{ margin-top:32px; }
  .rev-ya{ gap:20px 34px; }
  .rev-ya__title{ font-size:24px; }
}

/* ЗАПИСЬ — «Выберите удобную форму обучения». Тёмная полоса */
.enr{
  position:relative;
  padding:52px 0 58px;
  background:
    radial-gradient(46rem 22rem at 112% -6rem, rgba(233,0,139,.17), transparent 62%),
    radial-gradient(44rem 24rem at -10% 114%, rgba(110,43,144,.42), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.enr::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.enr :focus-visible{ outline-color:var(--focus-on-dark); }
.enr-card--group :focus-visible{ outline-color:var(--focus); }

.enr .sec-eyebrow,
.enr .sec-sub{ color:var(--lilac); }
.enr__head{ margin-bottom:22px; }

.enr-grid{ display:grid; gap:14px; }

.enr-card{
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start;
  padding:20px;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.16); border-radius:20px;
}

.enr-card--group{
  background:var(--paper); color:var(--ink);
  border-color:var(--paper);
  box-shadow:0 30px 55px -32px rgba(0,0,0,.55);
  overflow:hidden;
}
.enr-card--group::before{
  content:""; position:absolute; left:0; right:0; top:0; height:3px;
  background:var(--grad);
}

.enr-kind{
  display:flex; align-items:center; gap:9px;
  margin:0 0 12px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--lilac);
}
.enr-kind .tick{ width:12px; height:6px; }
.enr-card--group .enr-kind{ color:var(--ink-2); }

.enr-price{ display:flex; align-items:baseline; flex-wrap:wrap; gap:7px 9px; margin:0; }
.enr-price b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(28px, 7vw, 34px); line-height:1; letter-spacing:.01em;
  white-space:nowrap;
}
.enr-price span{ font-size:13px; color:var(--lilac); }
.enr-card--group .enr-price span{ color:var(--ink-2); }

.enr-hours{
  display:flex; align-items:center; gap:8px;
  margin:10px 0 0;
  font-size:13.5px; font-weight:500; color:var(--lilac);
}
.enr-hours svg{ opacity:.8; }
.enr-card--group .enr-hours{ color:var(--ink-2); }

.enr-note{ margin:11px 0 0; max-width:46ch; font-size:14px; line-height:1.6; color:var(--lilac); }
.enr-card--group .enr-note{ color:var(--ink-2); }
.enr-card > .enr-note{ margin-bottom:18px; }

.enr-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; margin-top:auto; padding:13px 18px;
  border:1px solid rgba(255,255,255,.3); border-radius:999px; color:#fff;
  font-size:14px; font-weight:600; letter-spacing:.01em;
  transition:background .2s, color .2s, border-color .2s;
}
.enr-btn svg{ transition:transform .2s; }
.enr-btn:hover{ background:#fff; border-color:#fff; color:var(--plum-9); }
.enr-btn:hover svg{ transform:translateX(3px); }

.enr-lead{ align-self:stretch; }
.enr-book{
  align-self:stretch;
  margin-top:16px; padding-top:16px;
  border-top:1px dashed var(--line);
}
.enr-book .g-week{ margin-top:14px; max-width:340px; }
.enr-book .cta{ width:100%; margin-top:16px; padding:14px 20px; font-size:14.5px; }

.enr-more{ margin-top:14px; border-top:1px dashed var(--line); }
.enr-more__btn{
  display:flex; align-items:center; gap:10px; width:100%;
  padding:13px 2px 12px; text-align:left;
  font-size:14px; font-weight:600; color:var(--vio);
  transition:color .2s;
}
.enr-more__btn:hover{ color:var(--plum-8); }
.enr-more__btn .chev{ margin-left:auto; color:var(--ink-2); transition:transform .3s; }
.enr-more__btn[aria-expanded="true"] .chev{ transform:rotate(180deg); }

.enr-more__panel{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .4s cubic-bezier(.22,.8,.28,1);
}
.enr-more.is-open .enr-more__panel{ grid-template-rows:1fr; }
.enr-more__inner{ overflow:hidden; }

.enr-alt{ padding-bottom:4px; }
.enr-alt li{
  display:grid; grid-template-columns:minmax(0,1fr) auto;
  gap:3px 12px; align-items:center;
  padding:12px 2px;
  border-top:1px dashed var(--line);
}
.enr-alt__when{ display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; margin:0; }
.enr-alt__when b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; letter-spacing:.01em; white-space:nowrap;
}
.enr-alt__slot{
  padding:3px 9px; border:1px solid var(--line); border-radius:999px;
  background:var(--mist);
  font-size:10.5px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--plum-8); white-space:nowrap;
}
.enr-alt__sched{
  grid-column:1; margin:0;
  font-size:13px; color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.enr-alt__pick{
  grid-column:2; grid-row:1 / span 2; align-self:center;
  display:inline-flex; align-items:center; gap:7px;
  padding:10px 15px; border-radius:999px;
  background:var(--mist);
  font-size:13.5px; font-weight:600;
  transition:background .2s, color .2s;
}
.enr-alt__pick:hover{ background:var(--plum-9); color:#fff; }

.enr-empty{ display:grid; justify-items:start; gap:12px; }
.enr-empty p{ margin:0; max-width:48ch; font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.enr-empty b{ font-weight:600; color:var(--ink); }
.enr-empty .cta{ width:100%; padding:14px 20px; font-size:14.5px; }

.enr-call{
  display:flex; flex-direction:column; align-items:center; gap:12px;
  margin-top:16px; padding:18px 20px;
  border:1px dashed rgba(255,255,255,.28); border-radius:20px;
  text-align:center;
}
.enr-call p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--lilac); }
.enr-call .enr-btn{ width:auto; margin:0; padding:12px 20px; }

.enr.will-anim .enr-card,
.enr.will-anim .enr-call{ opacity:0; transform:translateY(16px); }
.enr.in-view .enr-card,
.enr.in-view .enr-call{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.enr.in-view .enr-card:nth-child(2){ transition-delay:.08s; }
.enr.in-view .enr-card:nth-child(3){ transition-delay:.16s; }
.enr.in-view .enr-call{ transition-delay:.26s; }

@media (min-width:640px){
  .enr-grid{ grid-template-columns:1fr 1fr; }
  .enr-card--group{ grid-column:1 / -1; }
  .enr-card:nth-child(2):last-child{ grid-column:1 / -1; }
  .enr-call{ flex-direction:row; justify-content:center; gap:10px 20px; text-align:left; }
}

@media (min-width:768px){
  .enr-card--group{ flex-direction:row; align-items:stretch; padding:24px 26px; }
  .enr-lead{
    flex:1 1 0; align-self:auto;
    display:flex; flex-direction:column;
    padding-right:28px;
  }
  .enr-lead .enr-note{ margin-bottom:0; }
  .enr-book{
    flex:1 1 0; align-self:auto;
    margin:0; padding:0 0 0 28px;
    border-top:0; border-left:1px dashed var(--line);
  }
}

@media (min-width:960px){
  .enr{ padding:74px 0 82px; }
  .enr__head{ margin-bottom:30px; }
  .enr-grid{ gap:16px; }
  .enr-card{ padding:22px; }
  .enr-card--group{ padding:26px 30px; }
  .enr-lead{ padding-right:32px; }
  .enr-book{ padding-left:32px; }
  .enr-call{ margin-top:18px; }
}

/* ФОРМА ЗАЯВКИ — «бланк записи»: белый лист поверх сливового */
html.zf-open{ overflow:hidden; }

.zf{
  --err:#C0392B;
  position:fixed; inset:0; z-index:110;
  display:flex; align-items:flex-end; justify-content:center;
  background:rgba(28,8,42,.82);
  opacity:0; visibility:hidden;
  transition:opacity .3s, visibility 0s .3s;
}
.zf.is-open{ opacity:1; visibility:visible; transition-delay:0s; }

.zf__sheet{
  width:100%; max-width:460px;
  max-height:calc(100vh - 24px);
  max-height:calc(100dvh - 24px);
  overflow-y:auto; overscroll-behavior:contain;
  background:var(--paper); color:var(--ink);
  border-radius:22px 22px 0 0;
  box-shadow:0 -30px 80px -30px rgba(0,0,0,.6);
  transform:translateY(28px);
  transition:transform .35s cubic-bezier(.22,.8,.28,1);
}
.zf.is-open .zf__sheet{ transform:none; }

.zf__head{
  position:sticky; top:0; z-index:2;
  display:flex; align-items:center; gap:12px;
  padding:15px 20px 13px;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.zf__title{
  flex:1; margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; letter-spacing:.01em;
}
.zf__close{
  flex:none;
  display:grid; place-items:center;
  width:40px; height:40px; border-radius:12px;
  background:var(--mist);
  transition:background .2s, color .2s;
}
.zf__close:hover{ background:#EFE6F5; color:var(--vio); }

.zf__body{ padding:14px 20px calc(22px + env(safe-area-inset-bottom)); }

.zf__sum{ margin:0 0 14px; padding-bottom:8px; border-bottom:1px solid var(--line); }
.zf .req > div{ padding:7px 0; }
.zf .req > div[hidden]{ display:none; }

.zf-field{ margin:0 0 13px; }
.zf-label{
  display:flex; align-items:baseline; gap:8px;
  margin:0 0 7px;
  font-size:13px; font-weight:600; letter-spacing:.02em;
}
.zf-label i{ font-style:normal; font-size:11.5px; font-weight:500; color:var(--ink-2); }

.zf-input{
  width:100%; padding:12px 14px;
  border:1px solid var(--line); border-radius:12px;
  background:var(--mist); color:var(--ink);
  font:inherit; font-size:16px;
  transition:border-color .2s, background .2s, box-shadow .2s;
}
.zf-input::placeholder{ color:#9A8FA3; }
.zf-input:hover{ border-color:#D8C9E4; }
.zf-input:focus,
.zf-input:focus-visible{
  outline:none;
  border-color:var(--vio); background:var(--paper);
  box-shadow:0 0 0 3px rgba(110,43,144,.14);
}

.zf-err{
  display:none; margin:7px 2px 0;
  font-size:12.5px; line-height:1.45; color:var(--err);
}
.zf-field.is-err .zf-err{ display:block; }
.zf-field.is-err .zf-input{ border-color:var(--err); background:#FCF2F1; }
.zf-field.is-err .zf-input:focus{ box-shadow:0 0 0 3px rgba(192,57,43,.14); }

.zf-field--agree{ margin-top:15px; }
.zf-agree{
  display:flex; align-items:flex-start; gap:11px;
  cursor:pointer;
  font-size:13.5px; line-height:1.5; color:var(--ink-2);
}
.zf-agree input{ position:absolute; width:1px; height:1px; opacity:0; }
.zf-box{
  flex:none; position:relative;
  width:21px; height:21px; margin-top:1px;
  border:1px solid #CBBBDB; border-radius:7px;
  background:var(--mist);
  transition:background .2s, border-color .2s;
}
.zf-box::after{
  content:""; position:absolute; left:4px; top:7px;
  width:11px; height:6px; border-radius:1.5px;
  background:#fff;
  transform:skewX(-22deg) scaleX(0); transform-origin:left;
  transition:transform .25s cubic-bezier(.22,.8,.28,1);
}
.zf-agree input:checked + .zf-box{ background:var(--grad); border-color:transparent; }
.zf-agree input:checked + .zf-box::after{ transform:skewX(-22deg) scaleX(1); }
.zf-agree input:focus-visible + .zf-box{ outline:2px solid var(--focus); outline-offset:2px; }
.zf-field.is-err .zf-box{ border-color:var(--err); background:#FCF2F1; }
.zf-agree a{
  color:var(--vio); border-bottom:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.zf-agree a:hover{ color:var(--plum-8); border-color:var(--vio); }

.zf-submit{ width:100%; margin-top:16px; padding:15px 22px; font-size:15px; }
.zf-submit:disabled,
.zf-submit:disabled:hover{
  opacity:.65; cursor:default;
  transform:none; filter:none;
  box-shadow:0 10px 22px -12px rgba(233,0,139,.35);
}

.zf-done{ display:none; padding:8px 2px 2px; text-align:center; }
.zf__sheet.is-sent .zf-done{ display:block; }
.zf__sheet.is-sent .zf-form{ display:none; }

.zf-done .ticks{ justify-content:center; gap:5px; margin-bottom:14px; }
.zf-done .tick{ width:26px; height:13px; border-radius:3.5px; }
.zf-done .tick:nth-child(2){ width:18px; }
.zf-done .tick:nth-child(3){ width:11px; }
@keyframes zf-pop{ from{ transform:skewX(-22deg) scale(.3); opacity:0; } }
.zf__sheet.is-sent .zf-done .tick{ animation:zf-pop .45s cubic-bezier(.22,.8,.28,1) backwards; }
.zf__sheet.is-sent .zf-done .tick:nth-child(2){ animation-delay:.08s; }
.zf__sheet.is-sent .zf-done .tick:nth-child(3){ animation-delay:.16s; }

.zf-done h4{
  margin:0 0 8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:23px; letter-spacing:.01em;
}
.zf-done h4:focus-visible{ outline:none; }
.zf-done p{ margin:0 auto; max-width:36ch; font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.zf-done .cta{ width:100%; margin-top:18px; padding:14px 22px; font-size:15px; }

@media (min-width:640px){
  .zf{ align-items:center; padding:24px 16px; }
  .zf__sheet{
    border-radius:22px;
    max-height:calc(100vh - 48px);
    max-height:calc(100dvh - 48px);
    box-shadow:0 50px 90px -40px rgba(0,0,0,.7);
  }
  .zf__head{ padding:16px 24px 14px; }
  .zf__body{ padding:16px 24px 24px; }
}

/* ПОХОЖИЕ КУРСЫ — лента направлений, которые надстраиваются */
.rel{
  padding:48px 0 50px;
  background:
    radial-gradient(46rem 20rem at 108% 0%, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
  border-bottom:1px solid var(--line);
}

.rel__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}
.rel__nav{ display:none; gap:8px; }

.rc-track{
  display:flex; gap:14px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:8px max(16px, calc((100% - 1200px)/2)) 20px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.rc-track::-webkit-scrollbar{ display:none; }

.rc-slide{
  flex:0 0 clamp(248px, 80vw, 300px);
  scroll-snap-align:start;
  display:flex;
}

.rc-card{
  width:100%;
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
.rc-card:focus-visible{ border-radius:20px; outline-offset:3px; }
@media (hover:hover){
  .rc-card:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
}

.rc-photo{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:3/2; background:var(--line);
}
.rc-photo img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}
@media (hover:hover){
  .rc-card:hover .rc-photo img{ transform:scale(1.03); }
}

.rc-price{
  position:relative; isolation:isolate; z-index:1;
  align-self:flex-start;
  margin:-17px 0 0 16px;
  padding:8px 15px 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:18px; line-height:1; letter-spacing:.02em; color:#fff;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.rc-price::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

.rc-body{
  flex:1; display:flex; flex-direction:column;
  padding:10px 16px 15px;
}
.rc-name{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1.3; letter-spacing:.01em;
  transition:color .2s;
}
.rc-name svg{
  display:inline-block; vertical-align:baseline;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
@media (hover:hover){
  .rc-card:hover .rc-name{ color:var(--vio); }
  .rc-card:hover .rc-name svg{ transform:translate(2px,-2px); opacity:1; }
}
.rc-hours{
  display:flex; align-items:center; gap:8px;
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed var(--line);
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.rc-hours svg{ opacity:.8; }

.rel__foot{ display:flex; align-items:center; gap:16px; }

.rel.will-anim .rc-slide{ opacity:0; transform:translateY(16px); }
.rel.will-anim .rel__foot{ opacity:0; }
.rel.in-view .rc-slide,
.rel.in-view .rel__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.rel.in-view .rc-slide:nth-child(2){ transition-delay:.08s; }
.rel.in-view .rc-slide:nth-child(3){ transition-delay:.16s; }
.rel.in-view .rc-slide:nth-child(4){ transition-delay:.24s; }
.rel.in-view .rel__foot{ transition-delay:.3s; }

@media (min-width:768px){
  .rel__nav{ display:flex; }
}
@media (min-width:960px){
  .rel{ padding:72px 0 62px; }
  .rel__head{ margin-bottom:24px; }
  .rc-track{ gap:16px; }
  .rc-slide{ flex-basis:300px; }
  .rc-body{ padding:12px 18px 17px; }
}

/* СТАТЬИ В БЛОГЕ — редакционная подборка материалов по теме */
.blog{
  padding:48px 0 56px;
  background:
    radial-gradient(44rem 20rem at 110% 106%, rgba(233,0,139,.05), transparent 62%),
    var(--paper);
}

.blog__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}
.blog__nav{ display:none; gap:8px; }

.blog-cat{
  border-bottom:1px solid var(--line);
  transition:color .2s, border-color .2s;
}
.blog-cat:hover, .blog-cat:focus-visible{ color:var(--vio); border-color:var(--vio); }

.bl-track{
  display:flex; gap:18px;
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:8px max(16px, calc((100% - 1200px)/2)) 20px;
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.bl-track::-webkit-scrollbar{ display:none; }

.bl-slide{
  flex:0 0 clamp(238px, 76vw, 286px);
  scroll-snap-align:start;
  display:flex;
}

.bl-card{
  width:100%;
  display:flex; flex-direction:column;
}
.bl-card:focus-visible{ border-radius:18px; outline-offset:4px; }

.bl-photo{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:3/2; border-radius:18px;
  background:var(--line);
  box-shadow:0 20px 32px -26px rgba(46,11,68,.45);
  transition:transform .25s, box-shadow .25s;
}
.bl-photo img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}
@media (hover:hover){
  .bl-card:hover .bl-photo{
    transform:translateY(-3px);
    box-shadow:0 26px 40px -26px rgba(46,11,68,.55);
  }
  .bl-card:hover .bl-photo img{ transform:scale(1.04); }
}

.bl-name{
  margin:13px 2px 0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:17px; line-height:1.42; letter-spacing:.01em;
  transition:color .2s;
}
.bl-name svg{
  display:inline-block; vertical-align:baseline;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
@media (hover:hover){
  .bl-card:hover .bl-name{ color:var(--vio); }
  .bl-card:hover .bl-name svg{ transform:translate(2px,-2px); opacity:1; }
}

.blog__foot{ display:flex; align-items:center; gap:16px; }

.blog.will-anim .bl-slide{ opacity:0; transform:translateY(16px); }
.blog.will-anim .blog__foot{ opacity:0; }
.blog.in-view .bl-slide,
.blog.in-view .blog__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.blog.in-view .bl-slide:nth-child(2){ transition-delay:.08s; }
.blog.in-view .bl-slide:nth-child(3){ transition-delay:.16s; }
.blog.in-view .bl-slide:nth-child(4){ transition-delay:.24s; }
.blog.in-view .blog__foot{ transition-delay:.3s; }

@media (min-width:768px){
  .blog__nav{ display:flex; }
}
@media (min-width:960px){
  .blog{ padding:72px 0 78px; }
  .blog__head{ margin-bottom:24px; }
  .bl-track{ gap:20px; }
  .bl-slide{ flex-basis:286px; }
  .bl-name{ font-size:17.5px; }
}

/* БАННЕР СООБЩЕСТВА ВКОНТАКТЕ — единственная секция-ссылка без */
.vkb{ padding:0 0 46px; background:var(--paper); }

.vkb-card{
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column; align-items:flex-start;
  gap:14px;
  padding:22px 20px 24px;
  border-radius:22px;
  background:
    radial-gradient(34rem 18rem at 108% -30%, rgba(255,255,255,.18), transparent 62%),
    linear-gradient(118deg, #0A5FD6 0%, #0077FF 56%, #2E92FF 100%);
  color:#fff;
  box-shadow:0 28px 50px -32px rgba(0,90,205,.75);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .vkb-card:hover{
    transform:translateY(-3px);
    box-shadow:0 34px 58px -32px rgba(0,90,205,.85);
  }
}
.vkb-card:focus-visible{ outline-color:#fff; }

.vkb-wing{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.vkb-wing i{
  position:absolute; top:-30%; bottom:-30%;
  border-radius:10px;
  transform:skewX(-22deg);
  background:rgba(255,255,255,.09);
}
.vkb-wing i:nth-child(1){ right:7%;  width:58px; }
.vkb-wing i:nth-child(2){ right:20%; width:38px; background:rgba(255,255,255,.06); }
.vkb-wing i:nth-child(3){ right:30%; width:22px; background:rgba(255,255,255,.04); }

.vkb-badge{
  display:grid; place-items:center; flex:none;
  width:54px; height:54px; border-radius:17px;
  background:#fff; color:#0077FF;
  font-weight:700; font-size:23px; letter-spacing:-.02em;
  box-shadow:0 12px 22px -12px rgba(4,38,88,.6);
}

.vkb-copy{ display:block; min-width:0; }
.vkb-name{
  display:block;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(21px, 5.4vw, 26px); line-height:1.22; letter-spacing:.01em;
}
.vkb-line{
  display:block; margin-top:6px; max-width:52ch;
  font-size:14px; line-height:1.5; color:rgba(255,255,255,.82);
}

.vkb-cta{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:2px;
  padding:10px 18px; border-radius:999px;
  background:#fff; color:#0068E0;
  font-weight:600; font-size:14px; letter-spacing:.01em;
  box-shadow:0 10px 20px -12px rgba(4,38,88,.55);
}
.vkb-cta svg{ transition:transform .2s; }
@media (hover:hover){
  .vkb-card:hover .vkb-cta svg{ transform:translateX(3px); }
}

.vkb.will-anim .vkb-card{ opacity:0; transform:translateY(16px); }
.vkb.in-view .vkb-card{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1),
             box-shadow .25s;
}

@media (min-width:768px){
  .vkb-card{
    flex-direction:row; align-items:center;
    gap:18px; padding:22px 26px;
  }
  .vkb-copy{ flex:1; }
  .vkb-badge{ width:60px; height:60px; border-radius:19px; font-size:25px; }
}
@media (min-width:960px){
  .vkb{ padding:0 0 68px; }
  .vkb-card{ padding:26px 30px; gap:22px; }
}

/* КОНТАКТЫ — три белых «листа» на дымчатой подложке (язык */
.contacts{
  padding:48px 0 56px;
  background:
    radial-gradient(46rem 20rem at -6% -6rem, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
  border-top:1px solid var(--line);
}
.contacts__head{ margin-bottom:22px; }

.cc-grid{ display:grid; gap:14px; }

.cc-card{
  display:flex; flex-direction:column; align-items:flex-start;
  padding:20px;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
}

.cc-kind{
  display:flex; align-items:center; gap:9px;
  margin:0 0 12px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-2);
}
.cc-kind .tick{ width:12px; height:6px; }

.cc-city{
  margin:0 0 7px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(22px, 5.6vw, 27px); line-height:1.2; letter-spacing:.01em;
}
.cc-addr{ margin:0; font-size:15px; line-height:1.6; }
.cc-zip{ display:block; margin-top:2px; font-size:13px; color:var(--ink-2); }

.cc-metro{
  display:flex; align-items:center; gap:9px;
  margin:14px 0 0;
  font-size:14px; font-weight:500;
}
.cc-metro i{
  flex:none; width:10px; height:10px; border-radius:50%;
  background:#D6083B;
  box-shadow:0 0 0 3px rgba(214,8,59,.14);
}

.cc-route{
  display:inline-flex; align-items:center; gap:7px;
  margin-top:16px;
  font-size:14px; font-weight:600; color:var(--vio);
  transition:color .2s;
}
.cc-route svg{ transition:transform .2s; }
.cc-route:hover{ color:var(--mag); }
.cc-route:hover svg{ transform:translate(2px,-2px); }

.cc-req{ width:100%; }
.cc-req dd{ max-width:none; }

.cc-status[hidden]{ display:none; }
.cc-status{
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 8px;
  width:100%;
  margin:12px 0 0; padding-top:13px;
  border-top:1px dashed var(--line);
  font-size:13.5px; color:var(--ink-2);
}
.cc-status i{
  flex:none; width:10px; height:10px; border-radius:50%;
  background:#BCB2C6;
}
.cc-status.is-open i{
  background:var(--mag);
  box-shadow:0 0 0 3px rgba(233,0,139,.15);
}
.cc-status b{ font-weight:600; color:var(--ink); }

.cc-phone{
  display:inline-block; margin-top:2px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:clamp(22px, 6vw, 26px); line-height:1.15; letter-spacing:.01em;
  font-variant-numeric:tabular-nums; white-space:nowrap;
  transition:color .2s;
}
.cc-phone:hover{ color:var(--vio); }

.cc-hint{
  margin:7px 0 0; max-width:38ch;
  font-size:13.5px; line-height:1.5; color:var(--ink-2);
}

.cc-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.cc-chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 14px; border-radius:999px;
  background:var(--mist); border:1px solid var(--line);
  font-size:13.5px; font-weight:500;
  transition:background .2s, color .2s, border-color .2s;
}
.cc-chip:hover{ background:var(--plum-9); border-color:var(--plum-9); color:#fff; }

.contacts.will-anim .cc-card{ opacity:0; transform:translateY(16px); }
.contacts.in-view .cc-card{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.contacts.in-view .cc-card:nth-child(2){ transition-delay:.08s; }
.contacts.in-view .cc-card:nth-child(3){ transition-delay:.16s; }

@media (min-width:768px){
  .cc-grid{ grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:16px; }
  .cc-card--addr{ grid-row:span 2; }
  .cc-card--addr .cc-route{ margin-top:auto; padding-top:18px; }
}
@media (min-width:960px){
  .contacts{ padding:72px 0 80px; }
  .contacts__head{ margin-bottom:30px; }
  .cc-card{ padding:24px 26px; }
  .cc-grid{ grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:18px; }
}

/* ФУТЕР — сливовое основание страницы. Реквизиты учреждения */
.site-footer{
  position:relative;
  padding:44px 0 26px;
  background:
    radial-gradient(44rem 20rem at 108% -8rem, rgba(233,0,139,.15), transparent 62%),
    radial-gradient(40rem 22rem at -8% 120%, rgba(110,43,144,.4), transparent 62%),
    var(--plum-9);
  color:#fff;
}
.site-footer::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.site-footer :focus-visible{ outline-color:var(--focus-on-dark); }

.f-top{ display:grid; gap:28px; }

.f-brand{ display:flex; align-items:center; gap:11px; }
.f-word{
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:19px; letter-spacing:.16em; text-transform:uppercase;
}
.f-name{
  margin:13px 0 0; max-width:52ch;
  font-size:13.5px; line-height:1.62; color:var(--lilac);
}

.site-footer .req dt{ color:var(--lilac); }
.site-footer .req dt::after{ border-color:rgba(217,196,236,.4); }
.site-footer .req dd{ color:#fff; }

.f-note{
  margin:10px 2px 0; max-width:56ch;
  font-size:12.5px; line-height:1.55; color:rgba(217,196,236,.75);
}

.f-bar{
  display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px;
  margin-top:30px; padding-top:18px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:13px; color:var(--lilac);
}
.f-links{ display:flex; flex-wrap:wrap; gap:8px 22px; }
.f-links a{
  border-bottom:1px solid rgba(217,196,236,.35); padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.f-links a:hover{ color:#fff; border-color:#fff; }

.f-copy{ margin:0; }

.f-up{
  display:inline-flex; align-items:center; gap:7px;
  margin-left:auto;
  padding:8px 14px; border-radius:999px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);
  font-size:13px; font-weight:500; color:#fff;
  transition:background .2s, border-color .2s;
}
.f-up:hover{ background:var(--plum-8); border-color:var(--plum-8); }

@media (min-width:768px){
  .f-top{ grid-template-columns:minmax(0,6fr) minmax(0,5fr); gap:44px; align-items:start; }
}
@media (min-width:960px){
  .site-footer{ padding:58px 0 30px; }
  .f-word{ font-size:20px; }
  .f-bar{ margin-top:38px; }
}
/* СТРАНИЦА НАПРАВЛЕНИЯ (категории) — вынуто из макета */

.btn-ghost{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:11px 20px; border-radius:999px;
  background:var(--paper); border:1px solid var(--line);
  font-weight:600; font-size:14px; letter-spacing:.01em; color:var(--ink);
  transition:background .2s, border-color .2s, color .2s;
}
.btn-ghost:hover{ background:var(--mist); border-color:transparent; color:var(--vio); }
.btn-ghost svg{ color:var(--vio); }

/* HERO НАПРАВЛЕНИЯ — первый экран страницы категории */
.dhero{
  padding:16px 0 50px;
  background:
    radial-gradient(52rem 22rem at -12% -6rem, rgba(110,43,144,.07), transparent 62%),
    radial-gradient(44rem 20rem at 108% 14rem, rgba(233,0,139,.05), transparent 60%),
    var(--paper);
}

.dhero__body{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.dhero__media{ animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .16s backwards; }

.dhero__grid{ display:grid; gap:30px; }

.dhero__title{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(30px, 8vw, 46px); line-height:1.12; letter-spacing:.01em;
}
.dhero__title-sub{
  display:block; margin-top:9px;
  font-size:clamp(17px, 4.6vw, 21px); line-height:1.35;
  color:var(--ink-2);
}

.dhero__lead{
  margin:0 0 22px; max-width:54ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

.dhero__stats{
  margin:0 0 24px; padding:0;
  display:grid; gap:14px;
}
.dstat{ display:grid; gap:3px; min-width:0; }
.dstat dt{
  order:2; margin:0;
  font-size:13px; line-height:1.4; color:var(--ink-2);
}
.dstat dd{ order:1; margin:0; }
.dstat b{
  display:inline-flex; align-items:baseline; gap:8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(22px, 5.6vw, 27px); line-height:1.05; letter-spacing:.01em;
  white-space:nowrap;
}
.dstat b::before{
  content:""; flex:none; align-self:center;
  width:12px; height:6px; border-radius:2px;
  background:var(--grad);
  transform:skewX(-22deg);
}

@media (min-width:560px){
  .dhero__stats{
    grid-template-columns:repeat(3, auto);
    justify-content:start; column-gap:0;
  }
  .dstat{ padding-right:22px; }
  .dstat+.dstat{ padding-left:22px; border-left:1px solid var(--line); }
  .dstat:last-child{ padding-right:0; }
}

.dhero__cta{ display:flex; flex-wrap:wrap; gap:10px; }
.dhero__cta .cta,
.dhero__cta .btn-ghost{ width:100%; padding:15px 22px; font-size:15px; }
@media (min-width:560px){
  .dhero__cta .cta,
  .dhero__cta .btn-ghost{ width:auto; }
}

/* «ЖИВАЯ КОЛОДА НАПРАВЛЕНИЯ» — стопка карт, где каждая карта — */
.dhero__media{ position:relative; }

.dhero__deck{ position:relative; isolation:isolate; }
.dhero__deck::before,
.dhero__deck::after{
  content:""; position:absolute; z-index:-1;
  border-radius:22px;
  background:var(--mist);
  border:1px solid var(--line);
}
.dhero__deck::before{
  inset:14px -9px -13px 10px;
  transform:rotate(2.2deg);
}
.dhero__deck::after{
  inset:18px 12px -22px -8px;
  transform:rotate(-2.6deg);
  opacity:.72;
}

.dhero__frame{ position:relative; aspect-ratio:3/2; }

.dslide{
  margin:0; position:absolute; inset:0; z-index:0;
  visibility:hidden;
  border-radius:20px; overflow:hidden;
  background:var(--mist);
  box-shadow:0 26px 50px -30px rgba(46,11,68,.4);
}
.dslide img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center 40%;
}
.dslide.is-top{     visibility:visible; z-index:2; }
.dslide.is-leaving{ visibility:visible; z-index:3; }

.dslide__plate{
  position:absolute; left:14px; top:14px; z-index:2;
  isolation:isolate;
  max-width:calc(100% - 28px);
  padding:8px 15px 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:15.5px; line-height:1.2; letter-spacing:.02em; color:#fff;
}
.dslide__plate::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

.dhero__deck.is-dealing .dslide.is-leaving{
  animation:deal-out .72s cubic-bezier(.22,.8,.28,1) forwards;
}
.dhero__deck.is-dealing .dslide.is-top{
  animation:deal-in .72s cubic-bezier(.22,.8,.28,1) backwards;
}
@keyframes deal-out{
  to{ transform:translate(-5.5%,-3%) rotate(-3.2deg); opacity:0; }
}
@keyframes deal-in{
  from{ transform:translateY(13px) scale(.966) rotate(1.6deg); }
}
.dhero__deck.is-dealing::before{ animation:deck-jog-r .72s cubic-bezier(.22,.8,.28,1); }
.dhero__deck.is-dealing::after{  animation:deck-jog-l .72s cubic-bezier(.22,.8,.28,1); }
@keyframes deck-jog-r{
  0%,100%{ transform:rotate(2.2deg); }
  45%{ transform:rotate(3.2deg) translate(2px,2px); }
}
@keyframes deck-jog-l{
  0%,100%{ transform:rotate(-2.6deg); }
  45%{ transform:rotate(-3.6deg) translate(-2px,2px); }
}

.dhero__deckbar{
  position:absolute; right:12px; bottom:14px; z-index:4;
  display:flex; align-items:center;
  padding:5px 7px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  box-shadow:0 14px 28px -14px rgba(46,11,68,.45);
}
.deckdot{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:26px; border-radius:999px;
}
.deckdot i{
  width:9px; height:6px; border-radius:2px;
  background:var(--line);
  transform:skewX(-22deg);
  transition:width .3s cubic-bezier(.22,.8,.28,1), background-color .2s;
}
.deckdot:hover i{ background:var(--vio); }
.deckdot[aria-current="true"] i{ width:17px; background:var(--grad); }
.deckdot:focus-visible,
.deckpause:focus-visible{ border-radius:999px; outline-offset:1px; }
.deckbar__sep{ width:1px; height:14px; margin:0 4px; background:var(--line); }
.deckpause{
  width:26px; height:26px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink-2);
  transition:color .2s, background .2s;
}
.deckpause:hover{ color:var(--vio); background:var(--mist); }
.deckpause svg{ width:11px; height:11px; }
.deckpause svg[hidden]{ display:none; }

.dhero__badge{
  position:absolute; left:14px; bottom:14px; z-index:4;
  display:inline-flex; align-items:center; gap:10px;
  padding:9px 15px 9px 13px; border-radius:999px;
  background:var(--paper); border:1px solid var(--line);
  box-shadow:0 14px 28px -14px rgba(46,11,68,.45);
  white-space:nowrap;
}
.dhero__badge .ticks .tick{ height:7px; }
.dhero__badge b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:21px; line-height:1; letter-spacing:.01em;
}
.dhero__badge span{ font-size:13.5px; font-weight:500; color:var(--ink-2); }

@media (max-width:559.98px){
  .dhero__badge .dhero__badge-tail{ display:none; }
  .dhero__badge .ticks{ display:none; }
}

@media (max-width:359.98px){
  .dhero__badge{ padding:8px 11px 8px 10px; gap:8px; }
  .dhero__badge b{ font-size:19px; }
  .dhero__deckbar{ padding:4px 5px; }
  .deckdot{ width:20px; }
}

.dhero__media{ padding-bottom:24px; }

@media (min-width:640px){
  .dhero__frame{ aspect-ratio:2/1; }
}

@media (min-width:960px){
  .dhero{ padding:24px 0 78px; }
  .dhero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,6fr);
    gap:clamp(32px, 5vw, 60px);
    align-items:stretch;
  }
  .dhero__media{ order:2; padding-bottom:26px; }
  .dhero__body{
    order:1;
    display:flex; flex-direction:column;
    align-items:flex-start; justify-content:center;
  }
  .dhero__stats{ align-self:stretch; }
  .dhero__deck{ height:100%; }
  .dhero__frame{ aspect-ratio:auto; height:100%; min-height:430px; }
  .dhero__deck::before{ inset:18px -13px -16px 14px; }
  .dhero__deck::after{ inset:24px 16px -26px -12px; }
  .dslide__plate{ left:18px; top:18px; font-size:16.5px; }
  .dhero__deckbar{ right:16px; bottom:18px; }
  .dhero__badge{ left:18px; bottom:18px; }
}


/* ПОДБОРКИ КУРСОВ */
.dcolls{
  padding:46px 0 52px;
  background:var(--mist);
  border-block:1px solid var(--line);
}

.dcolls__grid{ display:grid; gap:24px; }

.dcolls__count{
  margin:16px 0 0;
  display:inline-flex; align-items:center; gap:10px;
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.dcolls__count .tick{ height:6px; }
.dcolls__count b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1; letter-spacing:.01em; color:var(--ink);
}

.dcolls__list{ display:flex; flex-wrap:wrap; gap:8px; }

.dcoll{
  display:inline-flex; align-items:center; gap:9px;
  padding:11px 17px 11px 14px;
  border-radius:999px;
  background:var(--paper); border:1px solid var(--line);
  font-size:14px; font-weight:500; line-height:1.2;
  white-space:nowrap;
  transition:background .2s, color .2s, border-color .2s, transform .2s;
}
.dcoll .tick{ width:11px; height:6px; opacity:.42; transition:opacity .2s; }
.dcoll:hover{
  background:var(--plum-9); border-color:var(--plum-9); color:#fff;
  transform:translateY(-1px);
}
.dcoll:hover .tick{ opacity:1; }
.dcoll:active{ transform:translateY(0); }

@media (min-width:960px){
  .dcolls{ padding:66px 0 74px; }
  .dcolls__grid{
    grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    gap:clamp(36px, 5vw, 72px);
    align-items:center;
  }
  .dcolls__list{ gap:10px; }
  .dcoll{ font-size:14.5px; }
}

/* ВСЕ КУРСЫ НАПРАВЛЕНИЯ — основной каталог страницы: 55 карточек */
.dcat{
  padding:50px 0 58px;
  background:
    radial-gradient(50rem 24rem at -10% 30%, rgba(110,43,144,.05), transparent 62%),
    var(--paper);
}

.dcat__head{ margin-bottom:22px; }
.dcat__count{
  margin:16px 0 0;
  display:inline-flex; align-items:center; gap:10px;
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.dcat__count .tick{ height:6px; }
.dcat__count b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1; letter-spacing:.01em; color:var(--ink);
}

.dcat__grid{ display:grid; gap:14px; }
.dcat__item{ display:flex; min-width:0; }
.dcat__item[hidden]{ display:none; }

@media (max-width:559.98px){
  .dcat__grid.is-cut .dcat__item:nth-child(n+7):not(.dcat__more){ display:none; }
}
@media (min-width:560px) and (max-width:859.98px){
  .dcat__grid.is-cut .dcat__item:nth-child(n+8):not(.dcat__more){ display:none; }
}
@media (min-width:860px){
  .dcat__grid.is-cut .dcat__item:nth-child(n+12):not(.dcat__more){ display:none; }
}

.ccard{
  width:100%;
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
.ccard:focus-visible{ border-radius:20px; outline-offset:3px; }
@media (hover:hover){
  .ccard:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
}

.ccard__photo{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:3/2; background:var(--line);
}
.ccard__photo img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}
@media (hover:hover){
  .ccard:hover .ccard__photo img{ transform:scale(1.03); }
}

.ccard__price{
  position:relative; isolation:isolate; z-index:1;
  align-self:flex-start;
  margin:-17px 0 0 16px;
  padding:8px 15px 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:18px; line-height:1; letter-spacing:.02em; color:#fff;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.ccard__price::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

.ccard__body{
  flex:1; display:flex; flex-direction:column;
  padding:10px 16px 15px;
}
.ccard__name{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1.3; letter-spacing:.01em;
  transition:color .2s;
}
.ccard__name svg{
  display:inline-block; vertical-align:baseline;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
@media (hover:hover){
  .ccard:hover .ccard__name{ color:var(--vio); }
  .ccard:hover .ccard__name svg{ transform:translate(2px,-2px); opacity:1; }
}
.ccard__hours{
  display:flex; align-items:center; gap:8px;
  margin-top:auto;
  padding-top:12px;
  border-top:1px dashed var(--line);
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.ccard__hours svg{ opacity:.8; }

.more-card{
  position:relative; isolation:isolate;
  width:100%; min-height:216px;
  display:flex; flex-direction:column; align-items:flex-start;
  gap:8px; padding:20px 20px 18px;
  text-align:left;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  transition:transform .25s, box-shadow .25s;
}
.more-card::before,
.more-card::after{
  content:""; position:absolute; z-index:-1;
  border-radius:20px;
  background:var(--mist); border:1px solid var(--line);
}
.more-card::before{ inset:12px -8px -11px 9px;  transform:rotate(2.2deg); }
.more-card::after{  inset:16px 10px -18px -7px; transform:rotate(-2.6deg); opacity:.72; }
.more-card:focus-visible{ border-radius:20px; outline-offset:3px; }
@media (hover:hover){
  .more-card:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
  .more-card:hover .more-card__pill{ filter:brightness(1.07); }
}
.more-card .ticks .tick{ height:7px; }
.more-card__count{
  display:flex; align-items:baseline; gap:9px;
  margin-top:auto;
}
.more-card__num{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(38px, 9vw, 46px); line-height:1; letter-spacing:.01em;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
}
.more-card__word{ font-size:15px; font-weight:500; }
.more-card__note{ font-size:13.5px; color:var(--ink-2); }
.more-card__pill{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:12px; padding:11px 18px; border-radius:999px;
  background:var(--grad); color:#fff;
  font-weight:600; font-size:14px; letter-spacing:.01em;
  box-shadow:0 10px 22px -12px rgba(233,0,139,.55);
  transition:filter .2s;
}

.dcat.will-anim .dcat__head,
.dcat.will-anim .dcat__grid{ opacity:0; transform:translateY(16px); }
.dcat.in-view .dcat__head,
.dcat.in-view .dcat__grid{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.dcat.in-view .dcat__grid{ transition-delay:.1s; }

@media (min-width:560px){
  .dcat__grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; }
}
@media (min-width:860px){
  .dcat__grid{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (min-width:960px){
  .dcat{ padding:72px 0 80px; }
  .dcat__head{
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:24px; margin-bottom:26px;
  }
  .dcat__count{ margin:0 0 6px; flex:none; }
}
@media (min-width:1120px){
  .dcat__grid{ grid-template-columns:repeat(4, minmax(0,1fr)); }
}

/* ПРЕИМУЩЕСТВА КУРСОВ */
.dperks{
  --hair:rgba(255,255,255,.14);
  position:relative;
  padding:52px 0 56px;
  background:
    radial-gradient(46rem 22rem at 110% -6rem, rgba(233,0,139,.18), transparent 62%),
    radial-gradient(40rem 22rem at -12% 118%, rgba(110,43,144,.4), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.dperks::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.dperks :focus-visible{ outline-color:var(--focus-on-dark); }

.dperks .sec-eyebrow,
.dperks .sec-sub{ color:var(--lilac); }

.dperk-grid{ margin-top:22px; }

.dperk{ padding:20px 0 24px; }
.dperk + .dperk{ border-top:1px solid var(--hair); }

.dperk .ticks{ margin-bottom:14px; }
.dperk .tick{
  transition:width .35s cubic-bezier(.22,.8,.28,1), opacity .35s;
}
@media (hover:hover){
  .dperk:hover .ticks .tick{ width:16px; opacity:1; }
}

.dperk__title{
  margin:0 0 8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.3; letter-spacing:.01em;
}
.dperk__text{
  margin:0; max-width:46ch;
  font-size:14.5px; line-height:1.62; color:var(--lilac);
}
.dperk__text a{
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
  transition:color .2s, border-color .2s;
}
.dperk__text a:hover{ color:var(--focus-on-dark); border-color:var(--focus-on-dark); }

.dperks__foot{
  margin:4px 0 0; padding-top:22px;
  border-top:1px solid var(--hair);
  display:flex; align-items:flex-start; gap:10px;
  font-size:14px; line-height:1.55; color:var(--lilac);
}
.dperks__foot .ticks{ flex:none; margin-top:6px; }
.dperks__foot .tick{ height:6px; }
.dperks__foot a{
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
  transition:color .2s, border-color .2s;
}
.dperks__foot a:hover{ color:var(--focus-on-dark); border-color:var(--focus-on-dark); }

.dperks.will-anim .dperks__head,
.dperks.will-anim .dperk,
.dperks.will-anim .dperks__foot{ opacity:0; transform:translateY(16px); }
.dperks.in-view .dperks__head,
.dperks.in-view .dperk,
.dperks.in-view .dperks__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.dperks.in-view .dperk:nth-child(1){ transition-delay:.08s; }
.dperks.in-view .dperk:nth-child(2){ transition-delay:.13s; }
.dperks.in-view .dperk:nth-child(3){ transition-delay:.18s; }
.dperks.in-view .dperk:nth-child(4){ transition-delay:.23s; }
.dperks.in-view .dperk:nth-child(5){ transition-delay:.28s; }
.dperks.in-view .dperk:nth-child(6){ transition-delay:.33s; }
.dperks.in-view .dperks__foot{      transition-delay:.4s;  }

@media (min-width:640px) and (max-width:959.98px){
  .dperk-grid{ display:grid; grid-template-columns:1fr 1fr; }
  .dperk{ padding:24px 30px 26px 0; }
  .dperk:nth-child(even){ padding:24px 0 26px 30px; border-left:1px solid var(--hair); }
  .dperk:nth-child(2){ border-top:0; }
}

@media (min-width:960px){
  .dperks{ padding:74px 0 80px; }
  .dperks__head{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,42ch);
    gap:40px; align-items:end;
  }
  .dperks__head .sec-sub{ margin:0 0 5px; }

  .dperk-grid{
    margin-top:30px;
    display:grid; grid-template-columns:repeat(3,1fr);
  }
  .dperk{ padding:26px 30px 28px; }
  .dperk:nth-child(3n+1){ padding-left:0; }
  .dperk:nth-child(3n){ padding-right:0; }
  .dperk + .dperk{ border-top:0; }
  .dperk:nth-child(n+4){ border-top:1px solid var(--hair); }
  .dperk:not(:nth-child(3n+1)){ border-left:1px solid var(--hair); }

  .dperks__foot{ margin-top:6px; padding-top:26px; }
}

.trust{
  --hair:rgba(255,255,255,.14);
  position:relative;
  padding:50px 0 54px;
  background:
    radial-gradient(46rem 22rem at 108% -6rem, rgba(233,0,139,.14), transparent 62%),
    radial-gradient(40rem 22rem at -10% 115%, rgba(110,43,144,.38), transparent 62%),
    var(--plum-9);
  color:#fff;
}

.trust::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}
.trust :focus-visible{ outline-color:var(--focus-on-dark); }

.trust .sec-eyebrow,
.trust .sec-sub{ color:var(--lilac); }

.trust__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:22px;
}
.trust__nav{ display:none; gap:8px; }

.trust .g-btn{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.22);
  color:#fff;
}
.trust .g-btn:hover:not(:disabled){
  background:#fff; border-color:#fff; color:var(--plum-9);
}
.trust .g-progress{
  flex:none; width:240px; max-width:100%;
  background:rgba(255,255,255,.18);
}

.tr-track{
  display:flex; align-items:stretch;
  border-block:1px solid var(--hair);
  overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;

  padding:0 max(16px, calc((100% - 1200px)/2));
  scroll-padding-inline:max(16px, calc((100% - 1200px)/2));
  scrollbar-width:none;
}
.tr-track::-webkit-scrollbar{ display:none; }

.tr-slide{
  flex:none;
  scroll-snap-align:start;
  display:flex; align-items:center; justify-content:center;
  padding:24px 22px;
}
.tr-slide + .tr-slide{ border-left:1px solid var(--hair); }

.tr-slide img{
  display:block;
  width:auto; height:76px;
  opacity:.94;
}

.trust__foot{
  display:flex; flex-direction:column; gap:16px;
  margin-top:20px;
}
.tr-note{
  display:flex; align-items:flex-start; gap:10px;
  margin:0; max-width:56ch;
  font-size:13.5px; line-height:1.55; color:var(--lilac);
}
.tr-note .ticks{ flex:none; margin-top:4px; }
.tr-note a{
  color:#fff; border-bottom:1px solid rgba(255,255,255,.35);
  transition:color .2s, border-color .2s;
}
.tr-note a:hover{ color:var(--focus-on-dark); border-color:var(--focus-on-dark); }

.trust.will-anim .tr-slide,
.trust.will-anim .trust__foot{ opacity:0; transform:translateY(14px); }
.trust.in-view .tr-slide,
.trust.in-view .trust__foot{
  opacity:1; transform:none;
  transition:opacity .55s cubic-bezier(.22,.8,.28,1),
             transform .55s cubic-bezier(.22,.8,.28,1);
}
.trust.in-view .tr-slide:nth-child(2){ transition-delay:.05s; }
.trust.in-view .tr-slide:nth-child(3){ transition-delay:.1s; }
.trust.in-view .tr-slide:nth-child(4){ transition-delay:.15s; }
.trust.in-view .tr-slide:nth-child(5){ transition-delay:.2s; }
.trust.in-view .tr-slide:nth-child(6){ transition-delay:.25s; }
.trust.in-view .tr-slide:nth-child(7){ transition-delay:.3s; }
.trust.in-view .tr-slide:nth-child(8){ transition-delay:.35s; }
.trust.in-view .tr-slide:nth-child(9){ transition-delay:.4s; }
.trust.in-view .trust__foot{ transition-delay:.35s; }

@media (min-width:768px){
  .trust__nav{ display:flex; }
  .trust__foot{
    flex-direction:row; align-items:center; justify-content:space-between;
    gap:24px;
  }
  .tr-slide{ padding:30px 34px; }
  .tr-slide img{ height:92px; }
}
@media (min-width:960px){
  .trust{ padding:72px 0 76px; }
  .trust__head{ margin-bottom:28px; }
  .tr-slide{ padding:34px 38px; }
  .tr-slide img{ height:100px; }
}

/* СТРАНИЦА ПОДБОРКИ /selection/{slug}/ — hero (.phero), указатель */
.phero{
  padding:16px 0 52px;
  background:
    radial-gradient(52rem 22rem at -12% -6rem, rgba(110,43,144,.07), transparent 62%),
    radial-gradient(44rem 20rem at 108% 14rem, rgba(233,0,139,.05), transparent 60%),
    var(--paper);
}

.phero__body{   animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.phero__index{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .16s backwards; }

.phero__grid{ display:grid; gap:34px; }

.phero__title{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(30px, 8vw, 46px); line-height:1.12; letter-spacing:.01em;
}
.phero__title-sub{
  display:block; margin-top:9px;
  font-size:clamp(17px, 4.6vw, 21px); line-height:1.35;
  color:var(--ink-2);
}

.phero__lead{
  margin:0 0 22px; max-width:54ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

.phero__stats{
  margin:0 0 24px; padding:0;
  display:grid; gap:14px;
}
.pstat{ display:grid; gap:3px; min-width:0; }
.pstat dt{
  order:2; margin:0;
  font-size:13px; line-height:1.4; color:var(--ink-2);
}
.pstat dd{ order:1; margin:0; }
.pstat b{
  display:inline-flex; align-items:baseline; gap:8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(22px, 5.6vw, 27px); line-height:1.05; letter-spacing:.01em;
  white-space:nowrap;
}
.pstat b::before{
  content:""; flex:none; align-self:center;
  width:12px; height:6px; border-radius:2px;
  background:var(--grad);
  transform:skewX(-22deg);
}

@media (min-width:560px){
  .phero__stats{
    grid-template-columns:repeat(3, auto);
    justify-content:start; column-gap:0;
  }
  .pstat{ padding-right:22px; }
  .pstat+.pstat{ padding-left:22px; border-left:1px solid var(--line); }
  .pstat:last-child{ padding-right:0; }
}

.phero__cta .cta{ width:100%; padding:15px 22px; font-size:15px; }
@media (min-width:560px){
  .phero__cta .cta{ width:auto; }
}

/* «КАТАЛОЖНЫЙ РАЗДЕЛИТЕЛЬ» */
.phero__index{ padding-top:32px; }

.pindex{
  position:relative;
  padding:16px 10px 8px;
  background:
    radial-gradient(120% 55% at 100% 0%, rgba(233,0,139,.16), transparent 55%),
    var(--plum-9);
  color:#fff;
  border-radius:0 22px 22px 22px;
  box-shadow:0 32px 58px -34px rgba(46,11,68,.6);
}
.pindex :focus-visible{ outline-color:var(--focus-on-dark); }

.pindex__tab{
  position:absolute; bottom:100%; left:0;
  display:inline-flex; align-items:center; gap:9px;
  height:32px; padding:0 17px 0 15px;
  background:var(--plum-9);
  border-radius:12px 12px 0 0;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--lilac);
  white-space:nowrap;
}
.pindex__tab .tick{ width:11px; height:6px; }
.pindex__tab::after{
  content:""; position:absolute; left:100%; bottom:0;
  width:12px; height:12px;
  background:radial-gradient(circle at 100% 0, transparent 11.5px, var(--plum-9) 12px);
}

.pindex__head{
  display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 12px;
  padding:4px 12px 12px;
}
.pindex__title{
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:20px; letter-spacing:.02em;
}
.pindex__count{ font-size:13px; color:var(--lilac); }

.pindex__more{
  display:flex; align-items:center; gap:10px; width:100%;
  margin-top:2px; padding:11px 12px; border-radius:12px;
  font-size:13.5px; font-weight:600; letter-spacing:.01em;
  color:var(--lilac);
  transition:background .2s, color .2s;
}
.pindex__more:hover{ background:var(--plum-8); color:#fff; }
.pindex__more .chev{ margin-left:auto; color:var(--lilac); transition:transform .25s, color .25s; }
.pindex__more:hover .chev{ color:#fff; }
.pindex__more[aria-expanded="true"] .chev{ transform:rotate(180deg); }

.pindex__all{
  display:flex; align-items:center; gap:12px;
  margin:8px 2px 0; padding:14px 10px 15px;
  border-top:1px solid rgba(255,255,255,.14);
  font-size:13.5px; line-height:1.45; color:var(--lilac);
  transition:color .2s;
}
.pindex__all b{ font-weight:600; color:#fff; }
.pindex__all svg{
  margin-left:auto; color:var(--lilac);
  transition:transform .25s, color .25s;
}
.pindex__all:hover{ color:#fff; }
.pindex__all:hover svg{ transform:translateX(4px); color:#fff; }

@media (min-width:960px){
  .phero{ padding:24px 0 80px; }
  .phero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,5fr);
    gap:clamp(32px, 5vw, 64px);
    align-items:stretch;
  }
  .phero__index{ order:2; }
  .phero__body{
    order:1;
    display:flex; flex-direction:column;
    align-items:flex-start; justify-content:center;
  }
  .phero__stats{ align-self:stretch; }
  .pindex{ padding:18px 14px 10px; }
  .pindex__head{ padding:4px 12px 14px; }
}
/* КУРСЫ ПОДБОРКИ */
.klist{
  padding:52px 0 60px;
  background:
    radial-gradient(46rem 20rem at 106% -4rem, rgba(233,0,139,.05), transparent 60%),
    radial-gradient(50rem 26rem at -14% 82%, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
}

.klist__head{ margin-bottom:24px; }

.klist__list{ display:grid; gap:16px; }

.kcard{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--paper);
  border:1px solid var(--line); border-radius:20px;
  box-shadow:0 22px 38px -30px rgba(46,11,68,.35);
  overflow:hidden;
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .kcard:hover{
    transform:translateY(-3px);
    box-shadow:0 28px 46px -30px rgba(46,11,68,.45);
  }
  .kcard:hover .kcard__img img{ transform:scale(1.03); }
  .kcard:hover .kcard__name a{ color:var(--vio); }
  .kcard:hover .kcard__name svg{ transform:translate(2px,-2px); opacity:1; }
}

.kcard__media{ position:relative; }
.kcard__img{
  display:block; overflow:hidden;
  aspect-ratio:3/2; background:var(--line);
}
.kcard__img img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}

.kcard__price{
  position:absolute; z-index:1;
  left:16px; bottom:-15px;
  padding:8px 15px 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:18px; line-height:1; letter-spacing:.02em; color:#fff;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.kcard__price::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

.kcard__body{
  flex:1; display:flex; flex-direction:column;
  padding:28px 16px 16px;
}

.kcard__name{
  margin:0 0 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:20px; line-height:1.3; letter-spacing:.01em;
}
.kcard__name a{ transition:color .2s; }
.kcard__name svg{
  display:inline-block; vertical-align:baseline;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}

.kcard__meta{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:6px 16px;
  margin:0 0 14px;
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.kcard__meta > span{ display:inline-flex; align-items:center; gap:7px; }
.kcard__meta svg{ opacity:.8; }
.kcard__req{ color:var(--vio); }
.kcard__req svg{ opacity:1; }

.kcard__note{
  padding:12px 15px 13px;
  background:var(--mist); border-radius:14px;
}
.kcard__note-tag{
  display:flex; align-items:center; gap:8px;
  margin:0 0 5px;
  font-size:10.5px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--vio);
}
.kcard__note-tag .tick{ width:10px; height:5px; }
.kcard__note p{
  margin:0; max-width:62ch;
  font-size:14.5px; line-height:1.55; color:var(--ink-2);
}

@media (min-width:640px){
  .kcard{
    display:grid;
    grid-template-columns:minmax(220px, 300px) minmax(0,1fr);
  }
  .kcard__media, .kcard__img{ height:100%; }
  .kcard__img{ aspect-ratio:auto; min-height:216px; }
  .kcard__price{ left:14px; bottom:14px; }
  .kcard__body{ padding:18px 20px 17px 22px; }
}

@media (min-width:960px){
  .klist{ padding:70px 0 80px; }
  .klist__head{
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:24px; margin-bottom:28px;
  }
  .klist__hint{
    flex:none; margin:0 0 6px;
    display:inline-flex; align-items:center; gap:10px;
    font-size:13.5px; font-weight:500; color:var(--ink-2);
  }
  .klist__hint .tick{ height:6px; }
  .klist__list{ gap:18px; }
  .kcard{ grid-template-columns:320px minmax(0,1fr); }
  .kcard__body{ padding:20px 26px 19px 26px; }
  .kcard__name{ font-size:22px; }
  .kcard__note{ padding:13px 17px 14px; }
}
@media (max-width:959.98px){ .klist__hint{ display:none; } }

@media (min-width:1120px){
  .kcard{ grid-template-columns:360px minmax(0,1fr); }
}

.klist.will-anim .klist__head,
.klist.will-anim .klist__list{ opacity:0; transform:translateY(16px); }
.klist.in-view .klist__head,
.klist.in-view .klist__list{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.klist.in-view .klist__list{ transition-delay:.1s; }

/* ГЛАВНАЯ СТРАНИЦА / */
/* HERO ГЛАВНОЙ — первый экран центра. */
.mhero{
  --hang:52px;
  padding:18px 0 0;
  background:
    radial-gradient(48rem 20rem at -10% -6rem, rgba(110,43,144,.06), transparent 62%),
    var(--paper);
}

.mhero__body{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) backwards; }
.mhero__media{ animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .1s backwards; }
.mhero__shelf{ animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .18s backwards; }

.mhero__grid{ display:grid; gap:24px; }

.mhero__title{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(31px, 8.6vw, 52px); line-height:1.12; letter-spacing:.01em;
}
.mhero__title-sub{
  display:block; margin-top:13px;
  font-size:clamp(17px, 4.6vw, 21px); line-height:1.35;
  color:var(--ink-2);
}

.mhero__hand{ position:relative; white-space:nowrap; }
.mhero__trace{
  position:absolute; left:-2%; bottom:-.22em;
  width:104%; height:.32em; overflow:visible;
  pointer-events:none;
}
.mhero__trace path{
  stroke-dasharray:1; stroke-dashoffset:0;
  animation:trace-draw .9s cubic-bezier(.3,0,.2,1) .5s backwards;
}
@keyframes trace-draw{ from{ stroke-dashoffset:1; } }

.mhero__lead{
  margin:0 0 22px; max-width:54ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

.mhero .cta{ width:100%; padding:15px 22px; font-size:15px; }

.mhero__media{
  position:relative; z-index:1;
  margin-bottom:calc(-1 * var(--hang));
}
.mhero__show{ position:relative; }
.mhero__frame{ position:relative; aspect-ratio:3/2; }

.mslide{
  margin:0; position:absolute; inset:0; z-index:0;
  visibility:hidden;
  border-radius:20px; overflow:hidden;
  background:var(--mist);
  box-shadow:0 26px 50px -28px rgba(46,11,68,.55);
}
.mslide img{
  position:absolute; inset:0; z-index:1;
  width:100%; height:100%;
  object-fit:cover; object-position:center 40%;
}
.mslide.is-top{   visibility:visible; z-index:2; }
.mslide.is-under{ visibility:visible; z-index:1; }

.mslide::after{
  content:""; position:absolute; inset:-1px; z-index:0;
  background:var(--grad);
}

.mslide__plate{
  position:absolute; left:14px; top:14px; z-index:2;
  isolation:isolate;
  max-width:calc(100% - 28px);
  padding:8px 15px 9px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:15.5px; line-height:1.2; letter-spacing:.02em; color:#fff;
}
.mslide__plate::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

@keyframes mwipe{
  from{ clip-path:polygon(-1% 0, 0% 0, -21% 100%, -22% 100%); }
  to{   clip-path:polygon(-1% 0, 121% 0, 101% 100%, -22% 100%); }
}
.mhero__show.is-dealing .mslide.is-top img{
  animation:mwipe .8s cubic-bezier(.3,0,.2,1) both;
}
.mhero__show.is-dealing .mslide.is-top::after{
  animation:mwipe .8s cubic-bezier(.3,0,.2,1) both;
  animation-delay:-.07s;
}
.mhero__show.is-dealing .mslide.is-top .mslide__plate{
  animation:plate-in .3s cubic-bezier(.22,.8,.28,1) .48s backwards;
}
@keyframes plate-in{ from{ opacity:0; transform:translateY(7px); } }

.mhero__showbar{
  position:absolute; right:12px; bottom:14px; z-index:4;
  display:flex; align-items:center;
  padding:5px 7px;
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  box-shadow:0 14px 28px -14px rgba(46,11,68,.45);
}
.showdot{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:26px; border-radius:999px;
}
.showdot i{
  width:9px; height:6px; border-radius:2px;
  background:var(--line);
  transform:skewX(-22deg);
  transition:width .3s cubic-bezier(.22,.8,.28,1), background-color .2s;
}
.showdot:hover i{ background:var(--vio); }
.showdot[aria-current="true"] i{ width:17px; background:var(--grad); }
.showdot:focus-visible,
.showpause:focus-visible{ border-radius:999px; outline-offset:1px; }
.showbar__sep{ width:1px; height:14px; margin:0 4px; background:var(--line); }
.showpause{
  width:26px; height:26px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--ink-2);
  transition:color .2s, background .2s;
}
.showpause:hover{ color:var(--vio); background:var(--mist); }
.showpause svg{ width:11px; height:11px; }
.showpause svg[hidden]{ display:none; }

@media (max-width:359.98px){
  .mhero__showbar{ padding:4px 5px; }
  .showdot{ width:20px; }
}

/* «ПОЛКА» — сливовый цоколь героя во всю ширину: четыре */
.mhero__shelf{
  position:relative;
  background:
    radial-gradient(80rem 34rem at 88% -20%, rgba(233,0,139,.2), transparent 60%),
    var(--plum-9);
  color:#fff;
  padding:calc(var(--hang) + 22px) 0 26px;
}
.mhero__shelf::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px;
  background:var(--grad);
}

.mhero__facts{
  margin:0;
  display:grid; grid-template-columns:1fr 1fr;
}
.mfact{ display:grid; gap:4px; min-width:0; padding:13px 0 15px; }
.mfact:nth-child(odd){  padding-right:18px; }
.mfact:nth-child(even){ padding-left:18px; border-left:1px solid rgba(217,196,236,.24); }
.mfact:nth-child(n+3){  border-top:1px solid rgba(217,196,236,.24); }

.mfact dt{
  order:2; margin:0;
  font-size:12.5px; line-height:1.4; color:var(--lilac);
}
.mfact dd{ order:1; margin:0; }
.mfact b{
  display:inline-flex; align-items:baseline; gap:8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(20px, 5.4vw, 26px); line-height:1.05; letter-spacing:.01em;
  white-space:nowrap;
}
.mfact b::before{
  content:""; flex:none; align-self:center;
  width:12px; height:6px; border-radius:2px;
  background:var(--grad);
  transform:skewX(-22deg);
}

.mhero__note{
  display:flex; align-items:flex-start; gap:10px;
  margin:0; padding:15px 0 0;
  border-top:1px solid rgba(217,196,236,.24);
  font-size:13px; line-height:1.5; color:var(--lilac);
}
.mhero__note .ticks{ margin-top:4px; }
.mhero__note .ticks .tick{ height:7px; }

@media (min-width:640px){
  .mhero__frame{ aspect-ratio:2/1; }
  .mhero .cta{ width:auto; }
}

@media (min-width:960px){
  .mhero{ --hang:88px; padding-top:34px; }
  .mhero__grid{
    grid-template-columns:minmax(0,7fr) minmax(0,6fr);
    gap:clamp(32px, 5vw, 60px);
    align-items:stretch;
  }
  .mhero__body{
    display:flex; flex-direction:column;
    align-items:flex-start; justify-content:center;
    padding-bottom:36px;
  }
  .mhero__media{ margin-bottom:0; }
  .mhero__show{
    height:calc(100% + var(--hang));
    min-height:430px;
  }
  .mhero__frame{ aspect-ratio:auto; height:100%; }
  .mslide__plate{ left:18px; top:18px; font-size:16.5px; }
  .mhero__showbar{ right:16px; bottom:18px; }

  .mhero__shelf{ padding:0; }
  .mhero__shelf-in{
    display:grid;
    grid-template-columns:minmax(0,7fr) minmax(0,6fr);
    gap:clamp(32px, 5vw, 60px);
  }
  .mhero__facts{ padding:24px 0 28px; }
  .mfact{ padding:14px 0 16px; }
  .mfact:nth-child(odd){  padding-right:34px; }
  .mfact:nth-child(even){ padding-left:34px; }
  .mhero__note{
    border-top:0;
    padding:calc(var(--hang) + 18px) 0 26px;
    align-self:start;
  }
}

/* НАПРАВЛЕНИЯ ОБУЧЕНИЯ (#napravleniya) — ядро главной, сюда */
.ndir{
  padding:56px 0 68px;
  background:
    radial-gradient(52rem 26rem at 108% 10rem, rgba(233,0,139,.05), transparent 62%),
    var(--paper);
}

.ndir__head{ margin-bottom:28px; }

.ndir__total{
  margin:18px 0 0;
  display:inline-flex; align-items:center; gap:9px;
  font-size:13.5px; font-weight:500; color:var(--ink-2);
}
.ndir__total .tick{ height:6px; }
.ndir__total b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1; letter-spacing:.01em; color:var(--ink);
}

.ndir__grid{ display:grid; gap:24px; }
.ndir__item{
  position:relative; isolation:isolate;
  display:flex; min-width:0;
}

.ndir__item::before,
.ndir__item::after{
  content:""; position:absolute; z-index:0;
  border-radius:18px;
  background:var(--mist); border:1px solid var(--line);
}
.ndir__item::before{ inset:14px 9px  -8px  9px; transform:rotate(1.2deg); }
.ndir__item::after{  inset:18px 20px -15px 20px; transform:rotate(-1.6deg); opacity:.55; }

.ncard{
  position:relative; z-index:1; flex:1;
  display:flex; flex-direction:column; gap:8px;
  padding:19px 20px 17px;
  border-radius:20px;
  background:var(--paper); border:1px solid var(--line);
  box-shadow:0 16px 32px -26px rgba(46,11,68,.5);
  transition:background .25s, border-color .25s, transform .25s, box-shadow .25s;
}
.ncard:focus-visible{ outline-offset:3px; border-radius:20px; }
.ncard:active{ transform:translateY(-1px); }

.ncard__name{
  display:block;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(20px, 5.4vw, 22px); line-height:1.24; letter-spacing:.01em;
  transition:color .25s;
}
.ncard__name svg{
  display:inline-block; vertical-align:baseline; margin-left:7px;
  color:var(--vio); opacity:.38;
  transition:transform .25s, opacity .25s, color .25s;
}

.ncard__list{
  margin:0;
  font-size:13px; line-height:1.55; color:var(--ink-2);
  transition:color .25s;
}

.ncard__count{
  margin-top:auto; padding-top:13px;
  display:flex; align-items:center; gap:8px;
  border-top:1px solid var(--line);
  font-size:13px; font-weight:500; color:var(--ink-2);
  transition:color .25s, border-color .25s;
}
.ncard__count .tick{ width:12px; height:6px; }
.ncard__count b{
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:19px; line-height:1; letter-spacing:.01em; color:var(--ink);
  transition:color .25s;
}

@media (hover:hover){
  .ncard:hover{
    background:var(--plum-9); border-color:var(--plum-9);
    transform:translateY(-4px);
    box-shadow:0 26px 44px -24px rgba(46,11,68,.55);
  }
  .ncard:hover .ncard__name{ color:#fff; }
  .ncard:hover .ncard__name svg{
    color:var(--focus-on-dark); opacity:1;
    transform:translate(2px,-2px);
  }
  .ncard:hover .ncard__list{ color:var(--lilac); }
  .ncard:hover .ncard__count{
    color:var(--lilac);
    border-color:rgba(217,196,236,.3);
  }
  .ncard:hover .ncard__count b{ color:#fff; }
}

@media (min-width:560px){
  .ndir__grid{ grid-template-columns:1fr 1fr; gap:28px 16px; }
}

@media (min-width:960px){
  .ndir{ padding:84px 0 98px; }
  .ndir__head{
    display:flex; align-items:flex-end; justify-content:space-between;
    gap:32px; margin-bottom:36px;
  }
  .ndir__total{ margin:0 0 5px; flex:none; }
  .ndir__grid{ grid-template-columns:repeat(3,1fr); gap:32px 18px; }
  .ncard{ padding:23px 24px 19px; gap:9px; }
}

/* СТРАНИЦА 404 */

body:has(.err){
  display:flex; flex-direction:column;
  min-height:100vh; min-height:100svh;
}
body:has(.err) main{ flex:1; display:flex; }

.err{
  flex:1; display:flex; align-items:center;
  padding:36px 0 64px;
  background:
    radial-gradient(46rem 22rem at 112% -6rem, rgba(233,0,139,.06), transparent 62%),
    radial-gradient(42rem 26rem at -14% 112%, rgba(110,43,144,.05), transparent 60%),
    var(--paper);
}

.err__grid{ display:grid; gap:6px; }

@keyframes err-rise{ from{ opacity:0; transform:translateY(14px); } }
.err__stamp  { animation:err-rise .7s cubic-bezier(.22,.8,.28,1) backwards; }
.err__body   { animation:err-rise .7s cubic-bezier(.22,.8,.28,1) .1s backwards; }

.err__num{
  position:relative;
  display:inline-block;
  margin:2px 0 10px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(104px, 31vw, 172px); line-height:.94; letter-spacing:.03em;
  color:var(--ink);
}

.err__strike{
  position:absolute; left:-3%; top:53%;
  width:115%; height:.2em;
  transform:translateY(-50%) rotate(-6deg);
  overflow:visible; pointer-events:none;
}
.err__strike path{
  stroke-dasharray:1; stroke-dashoffset:0;
  animation:strike-draw .9s cubic-bezier(.3,0,.2,1) .55s backwards;
}
@keyframes strike-draw{ from{ stroke-dashoffset:1; } }

.err__title{
  margin:0 0 12px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(27px, 7.4vw, 40px); line-height:1.14; letter-spacing:.01em;
}
.err__lead{
  margin:0; max-width:54ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

.err__req{
  margin:20px 0 0;
  padding:7px 18px 9px;
  border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(180deg, #FBF8FD, var(--paper) 55%);
}
.err__req dd{ word-break:break-word; }

.err__url{ color:var(--vio); }

.err__actions{
  display:flex; flex-wrap:wrap; gap:10px;
  margin-top:22px;
}
.err__actions .cta,
.err__actions .btn-ghost{ width:100%; padding:14px 22px; font-size:15px; }

.err__note{
  display:flex; align-items:flex-start; gap:10px;
  margin:24px 0 0; padding-top:18px;
  border-top:1px solid var(--line);
  font-size:13.5px; line-height:1.55; color:var(--ink-2);
}
.err__note .ticks{ margin-top:5px; }
.err__note .ticks .tick{ height:7px; }
.err__note a{
  font-weight:600; color:var(--ink); white-space:nowrap;
  border-bottom:1px solid #D8C9E6;
  transition:color .2s, border-color .2s;
}
.err__note a:hover{ color:var(--vio); border-color:var(--vio); }

@media (min-width:640px){
  .err__actions .cta,
  .err__actions .btn-ghost{ width:auto; }
}

@media (min-width:960px){
  .err{ padding:56px 0 80px; }
  .err__grid{
    grid-template-columns:minmax(0,5fr) minmax(0,7fr);
    gap:clamp(40px, 6vw, 84px);
    align-items:center;
  }
  .err__stamp{ justify-self:center; text-align:left; }
  .err__num{ margin-bottom:0; font-size:clamp(168px, 18vw, 216px); }
  .err__req{ padding:8px 20px 10px; }
}

/* COOKIE */
.cook{
  position:fixed; left:12px; right:12px;
  bottom:calc(12px + env(safe-area-inset-bottom));
  z-index:80;
  display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px;
  padding:14px 16px 14px 21px;
  background:
    radial-gradient(30rem 16rem at 110% -60%, rgba(233,0,139,.2), transparent 62%),
    var(--plum-9);
  color:#fff;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 20px 44px -18px rgba(46,11,68,.65);
  opacity:0; transform:translateY(16px); visibility:hidden;
  transition:opacity .4s, transform .4s, visibility 0s .4s;
}
.cook.is-shown{
  opacity:1; transform:none; visibility:visible;
  transition-delay:0s;
}

.cook::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:3px;
  border-radius:3px; background:var(--grad);
}
.cook :focus-visible{ outline-color:var(--focus-on-dark); }

.cook__text{
  margin:0; flex:1 1 230px;
  font-size:13px; line-height:1.55; color:var(--lilac);
}
.cook__text a{
  color:#fff; border-bottom:1px solid rgba(217,196,236,.4);
  transition:border-color .2s;
}
.cook__text a:hover{ border-color:#fff; }

.cook__btn{
  flex:none;
  padding:9px 18px; border-radius:999px;
  background:#fff; color:var(--plum-9);
  font-size:13px; font-weight:600; letter-spacing:.01em;
  transition:background .2s, transform .2s;
}
.cook__btn:hover{ background:#F4ECF9; transform:translateY(-1px); }
.cook__btn:active{ transform:translateY(0); }

@media (min-width:640px){
  .cook{ left:16px; right:auto; bottom:16px; max-width:520px; }
}

/* СТРАНИЦА БЛОГА */
.bhead{
  padding:18px 0 26px;
  background:
    radial-gradient(46rem 20rem at 112% -6rem, rgba(233,0,139,.07), transparent 62%),
    var(--paper);
}

.bhead__title{ animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.bhead__lead{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .14s backwards; }

.bhead__title{
  margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(31px, 8.4vw, 48px); line-height:1.1; letter-spacing:.01em;
}
.bhead__wing{
  display:inline-flex; align-items:center; gap:5px;
  margin-left:13px; vertical-align:middle;
  transform:translateY(-3px);
}
.bhead__wing i{
  display:block; height:10px; border-radius:3px;
  background:var(--grad); transform:skewX(-22deg);
  animation:wing-in .55s cubic-bezier(.22,.8,.28,1) backwards;
}
@keyframes wing-in{ from{ opacity:0; transform:skewX(-22deg) translateX(-10px); } }
.bhead__wing i:nth-child(1){ width:30px; animation-delay:.26s; }
.bhead__wing i:nth-child(2){ width:20px; opacity:.62; animation-delay:.34s; }
.bhead__wing i:nth-child(3){ width:11px; opacity:.32; animation-delay:.42s; }

.bhead__lead{
  margin:13px 0 0; max-width:58ch;
  font-size:16.5px; line-height:1.6; color:var(--ink-2);
}

@media (min-width:960px){
  .bhead{ padding:26px 0 34px; }
  .bhead__wing{ margin-left:16px; }
  .bhead__wing i{ height:11px; }
  .bhead__wing i:nth-child(1){ width:36px; }
  .bhead__wing i:nth-child(2){ width:24px; }
  .bhead__wing i:nth-child(3){ width:13px; }
}

.bhead + .vkb{ padding:2px 0 40px; }
@media (min-width:960px){
  .bhead + .vkb{ padding:6px 0 54px; }
}

/* ЛЕНТА СТАТЕЙ БЛОГА — карточки в стиле блока «Статьи в блоге» */
.feed{
  padding:4px 0 62px;
  background:
    radial-gradient(44rem 22rem at -10% 22rem, rgba(110,43,144,.05), transparent 62%),
    var(--paper);
}

.fd-bar{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  row-gap:12px; column-gap:16px;
  margin:0 0 20px;
}
.fd-count{ margin:0; font-size:14px; color:var(--ink-2); }
.fd-count b{ font-weight:600; color:var(--ink); }

.fd-sort{
  display:inline-flex; gap:4px;
  padding:4px;
  background:var(--mist); border:1px solid var(--line); border-radius:999px;
}
.fd-sort__btn{
  padding:8px 14px; border-radius:999px;
  font-size:13.5px; font-weight:500; color:var(--ink-2); white-space:nowrap;
  transition:background .2s, color .2s;
}
.fd-sort__btn:hover{ color:var(--ink); }
.fd-sort__btn.is-on{ background:var(--plum-9); color:#fff; font-weight:600; }

.fd-item[hidden],
.fd-sort[hidden],
.feed__foot[hidden],
.fd-more[hidden]{ display:none; }

.fd-grid{ display:grid; gap:28px 18px; }
.fd-item{ display:flex; }

@keyframes fd-in{ from{ opacity:0; transform:translateY(14px); } }
.fd-item.is-new{ animation:fd-in .5s cubic-bezier(.22,.8,.28,1) backwards; }

.fd-card{
  width:100%;
  display:flex; flex-direction:column;
}
.fd-card:focus-visible{ border-radius:18px; outline-offset:4px; }

.fd-photo{
  display:block; position:relative; overflow:hidden;
  aspect-ratio:3/2; border-radius:18px;
  background:var(--line);
  box-shadow:0 20px 32px -26px rgba(46,11,68,.45);
  transition:transform .25s, box-shadow .25s;
}
.fd-photo img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}

.fd-meta{
  display:flex; align-items:center; gap:8px;
  margin:12px 2px 0;
  font-size:12.5px; color:var(--ink-2);
}
.fd-meta time{ font-weight:500; }

.fd-name{
  margin:7px 2px 0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:17px; line-height:1.42; letter-spacing:.01em;
  transition:color .2s;
}
.fd-name svg{
  display:inline-block; vertical-align:baseline;
  margin-left:4px; color:var(--vio); opacity:.55;
  transition:transform .2s, opacity .2s;
}
@media (hover:hover){
  .fd-card:hover .fd-photo{
    transform:translateY(-3px);
    box-shadow:0 26px 40px -26px rgba(46,11,68,.55);
  }
  .fd-card:hover .fd-photo img{ transform:scale(1.04); }
  .fd-card:hover .fd-name{ color:var(--vio); }
  .fd-card:hover .fd-name svg{ transform:translate(2px,-2px); opacity:1; }
}

.feed__foot{
  margin-top:34px;
  display:flex; flex-direction:column; align-items:center; gap:16px;
}
.fd-track{
  display:flex; align-items:center; gap:14px;
  width:min(100%, 430px);
}
.fd-state{
  margin:0; flex:none;
  font-size:13px; color:var(--ink-2); white-space:nowrap;
}
.fd-state b{ font-weight:600; color:var(--ink); }
.fd-progress{
  flex:1; height:3px; border-radius:2px;
  background:var(--line); overflow:hidden;
}
.fd-progress i{
  display:block; height:100%; width:0; border-radius:2px;
  background:var(--grad);
  transition:width .5s cubic-bezier(.22,.8,.28,1);
}

.fd-more{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  width:min(100%, 430px);
  padding:14px 22px;
  border:1px solid var(--line); border-radius:999px;
  background:var(--paper);
  font-weight:600; font-size:14.5px; letter-spacing:.01em;
  transition:background .2s, color .2s, border-color .2s;
}
.fd-more svg{ transition:transform .25s; }
.fd-more:hover{ background:var(--plum-9); border-color:var(--plum-9); color:#fff; }
.fd-more:hover svg{ transform:translateY(2px); }

.fd-nojs,
.fd-empty{
  margin:26px 0 0; text-align:center;
  font-size:13.5px; color:var(--ink-2);
}

@media (min-width:640px){
  .fd-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); gap:30px 20px; }
  .fd-more{ width:auto; }
}
@media (min-width:960px){
  .feed{ padding:8px 0 92px; }
  .fd-bar{ margin-bottom:26px; }
  .fd-grid{ grid-template-columns:repeat(3, minmax(0,1fr)); gap:36px 22px; }
  .fd-name{ font-size:17.5px; }
  .feed__foot{ margin-top:42px; }
}

/* СТРАНИЦА СТАТЬИ — лента прочтения. Градиентная нить под */
.read-line{
  position:sticky; top:var(--hdr-h, 70px); z-index:45;
  height:3px; margin-bottom:-3px;
  pointer-events:none;
}
.read-line i{
  display:block; height:100%;
  background:var(--grad);
  transform:scaleX(0); transform-origin:left;
}

/* СТАТЬЯ — «понятный протокол»: одна спокойная колонка чтения */
.article{
  padding:16px 0 56px;
  background:
    radial-gradient(58rem 24rem at 112% -8rem, rgba(233,0,139,.06), transparent 62%),
    var(--paper);
}
.art-wrap{ width:min(100%, 46rem); margin-inline:auto; }

@keyframes rise{ from{ opacity:0; transform:translateY(14px); } }
.art-head{ animation:rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.art-body{ animation:rise .7s cubic-bezier(.22,.8,.28,1) .14s backwards; }

.art-head{ margin-bottom:28px; }
.art-title{
  margin:0 0 14px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(27px, 7vw, 40px); line-height:1.18; letter-spacing:.01em;
  text-wrap:balance;
}
.art-date{
  display:flex; align-items:center; gap:9px;
  margin:0;
  font-size:12px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2);
}
.art-date .tick{ width:12px; height:6px; }

.art-body{ font-size:17px; line-height:1.7; }
.art-body > :first-child{ margin-top:0; }
.art-body > :last-child{ margin-bottom:0; }

.art-body p{ margin:0 0 18px; }
.art-body > p:first-child{ font-size:18.5px; line-height:1.65; }

.art-body strong{ font-weight:600; }

.art-body a{
  color:var(--vio); font-weight:500;
  text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:3px; text-decoration-color:rgba(110,43,144,.35);
  transition:color .2s, text-decoration-color .2s;
}
.art-body a:hover{ color:var(--mag); text-decoration-color:rgba(233,0,139,.5); }

.art-body h2{
  margin:42px 0 14px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(23px, 5.8vw, 30px); line-height:1.22; letter-spacing:.01em;
  text-wrap:balance;
}
.art-body h2::before{
  content:""; display:block;
  width:26px; height:8px; border-radius:2.5px;
  margin-bottom:12px;
  background:var(--grad);
  transform:skewX(-22deg); transform-origin:left bottom;
}
.art-body h3{
  margin:30px 0 10px;
  font-size:18.5px; font-weight:600; line-height:1.35;
}
.art-body h2 + h3{ margin-top:18px; }

.art-body ul,
.art-body ol{ margin:0 0 20px; padding:0; }
.art-body li{ margin:0 0 10px; }
.art-body li:last-child{ margin-bottom:0; }

.art-body ul li{ position:relative; padding-left:27px; }
.art-body ul li::before{
  content:""; position:absolute; left:1px; top:.6em;
  width:13px; height:6px; border-radius:2px;
  background:var(--grad);
  transform:skewX(-22deg);
}

.art-body ol{ list-style:none; counter-reset:art-step; }
.art-body ol li{
  counter-increment:art-step;
  position:relative; padding-left:36px;
}
.art-body ol li::before{
  content:counter(art-step);
  position:absolute; left:2px; top:2px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:19px; line-height:1.35;
  font-variant-numeric:tabular-nums;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.art-body figure{ margin:28px 0; }
.art-body figure img{
  display:block; width:100%; height:auto;
  aspect-ratio:3/2; object-fit:cover;
  border-radius:16px;
  background:var(--mist);
  box-shadow:0 22px 44px -30px rgba(46,11,68,.35);
}
.art-body figcaption{
  position:relative;
  margin-top:11px; padding-left:22px;
  font-size:13.5px; line-height:1.55; color:var(--ink-2);
}
.art-body figcaption::before{
  content:""; position:absolute; left:1px; top:.5em;
  width:11px; height:5px; border-radius:2px;
  background:var(--grad); opacity:.55;
  transform:skewX(-22deg);
}

.art-body > img{
  display:block; width:100%; height:auto;
  margin:28px 0; border-radius:16px;
}

@media (min-width:960px){
  .article{ padding:24px 0 88px; }
  .article .crumbs{ margin-bottom:22px; }
  .art-head{ margin-bottom:34px; }
  .art-body{ font-size:17.5px; }
  .art-body > p:first-child{ font-size:19.5px; }
  .art-body h2{ margin-top:52px; }
  .art-body figure{ margin:34px -56px; }
  .art-body figcaption{ margin-inline:56px; }
}

/* КУРС ПО ТЕМЕ СТАТЬИ — сливовая карточка-«закладка» после */
.crs{ padding:0 0 52px; background:var(--paper); }

.crs-card{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; flex-direction:column;
  border-radius:24px;
  background:
    radial-gradient(34rem 18rem at 106% -24%, rgba(233,0,139,.26), transparent 62%),
    var(--plum-9);
  color:#fff;
  box-shadow:0 30px 54px -34px rgba(46,11,68,.75);
  transition:transform .25s, box-shadow .25s;
}
@media (hover:hover){
  .crs-card:hover{
    transform:translateY(-3px);
    box-shadow:0 36px 62px -34px rgba(46,11,68,.85);
  }
  .crs-card:hover .crs-media img{ transform:scale(1.03); }
  .crs-card:hover .crs-cta{ filter:brightness(1.07); }
  .crs-card:hover .crs-cta svg{ transform:translateX(3px); }
}

.crs-wing{ position:absolute; inset:0; z-index:-1; pointer-events:none; }
.crs-wing i{
  position:absolute; top:-30%; bottom:-30%;
  border-radius:10px;
  transform:skewX(-22deg);
  background:rgba(255,255,255,.07);
}
.crs-wing i:nth-child(1){ right:6%;  width:56px; }
.crs-wing i:nth-child(2){ right:17%; width:36px; background:rgba(255,255,255,.05); }
.crs-wing i:nth-child(3){ right:26%; width:20px; background:rgba(255,255,255,.03); }

.crs-media{
  position:relative; overflow:hidden;
  aspect-ratio:3/2; background:var(--plum-8);
}
.crs-media img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s cubic-bezier(.22,.8,.28,1);
}
.crs-price{
  position:absolute; left:16px; bottom:14px; z-index:1;
  isolation:isolate;
  padding:9px 16px 10px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:19px; line-height:1; letter-spacing:.02em; color:#fff;
  font-variant-numeric:tabular-nums; white-space:nowrap;
}
.crs-price::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:9px;
  transform:skewX(-12deg);
  box-shadow:0 10px 18px -8px rgba(233,0,139,.55);
}

.crs-body{
  flex:1; display:flex; flex-direction:column;
  padding:20px 20px 22px;
}
.crs-eyebrow{
  display:flex; align-items:center; gap:9px;
  margin:0 0 10px;
  font-size:11px; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--lilac);
}
.crs-eyebrow .tick{ width:12px; height:6px; }

.crs-title{
  margin:0 0 10px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(24px, 6.2vw, 33px); line-height:1.16; letter-spacing:.01em;
  text-wrap:balance;
}

.crs-title a::after{
  content:""; position:absolute; inset:0; z-index:2;
  border-radius:24px;
}
.crs-title a:focus-visible{ outline:none; }
.crs-title a:focus-visible::after{
  outline:2px solid var(--focus-on-dark); outline-offset:3px;
}

.crs-line{
  margin:0 0 18px; max-width:52ch;
  font-size:15px; line-height:1.55; color:var(--lilac);
}

.crs-meta{
  margin-top:auto;
  display:flex; align-items:center; justify-content:space-between;
  gap:12px 18px; flex-wrap:wrap;
}
.crs-hours{
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:#E9DCF4;
}
.crs-hours svg{ color:var(--lilac); }
.crs-cta{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 18px; border-radius:999px;
  background:var(--grad); color:#fff;
  font-size:14px; font-weight:600; letter-spacing:.01em;
  box-shadow:0 10px 22px -12px rgba(233,0,139,.55);
  transition:filter .2s;
}
.crs-cta svg{ transition:transform .2s; }

@media (min-width:768px){
  .crs-card{
    display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  }
  .crs-card--nomedia{ display:flex; }
  .crs-media{ aspect-ratio:auto; min-height:300px; height:100%; }
  .crs-body{ padding:26px 28px; }
}
@media (min-width:960px){
  .crs{ padding:0 0 72px; }
  .crs-body{ padding:32px 36px; }
  .crs-line{ font-size:15.5px; }
}

.crs.will-anim .crs-card{ opacity:0; }
.crs.in-view  .crs-card{
  opacity:1;
  animation:rise .7s cubic-bezier(.22,.8,.28,1) backwards;
}

/* ЛЕНТЫ СТАТЕЙ СТРАНИЦЫ СТАТЬИ — «По теме статьи» и */
.rail{ padding:48px 0 50px; }
.rail--rel{
  background:
    radial-gradient(46rem 20rem at 108% 0%, rgba(110,43,144,.06), transparent 62%),
    var(--mist);
  border-block:1px solid var(--line);
}
.rail--pop{
  padding-bottom:64px;
  background:
    radial-gradient(44rem 20rem at -6% 106%, rgba(233,0,139,.05), transparent 62%),
    var(--paper);
}

.rail__head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:18px; margin-bottom:18px;
}
.rail__nav{ display:none; gap:8px; }

.pp-rank{
  position:absolute; top:12px; left:12px; z-index:1;
  isolation:isolate;
  padding:6px 10px 7px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:13.5px; line-height:1; letter-spacing:.05em; color:#fff;
  font-variant-numeric:tabular-nums;
}
.pp-rank::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:var(--grad); border-radius:7px;
  transform:skewX(-12deg);
  box-shadow:0 8px 14px -7px rgba(233,0,139,.6);
}

.rail__foot{ display:flex; align-items:center; gap:16px; }

.rail.will-anim .bl-slide{ opacity:0; transform:translateY(16px); }
.rail.will-anim .rail__foot{ opacity:0; }
.rail.in-view .bl-slide,
.rail.in-view .rail__foot{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.22,.8,.28,1),
             transform .6s cubic-bezier(.22,.8,.28,1);
}
.rail.in-view .bl-slide:nth-child(2){ transition-delay:.08s; }
.rail.in-view .bl-slide:nth-child(3){ transition-delay:.16s; }
.rail.in-view .bl-slide:nth-child(4){ transition-delay:.24s; }
.rail.in-view .rail__foot{ transition-delay:.3s; }

@media (min-width:768px){
  .rail__nav{ display:flex; }
}
@media (min-width:960px){
  .rail{ padding:72px 0 62px; }
  .rail--pop{ padding-bottom:80px; }
  .rail__head{ margin-bottom:24px; }
}
/* ШАПКА ДОКУМЕНТА — крошки, заголовок с «крылом», лид */
.dhead{
  padding:18px 0 4px;
  background:
    radial-gradient(46rem 20rem at 112% -6rem, rgba(233,0,139,.07), transparent 62%),
    var(--paper);
}

@keyframes hero-rise{ from{ opacity:0; transform:translateY(14px); } }
.dhead .crumbs{ animation:hero-rise .6s cubic-bezier(.22,.8,.28,1) backwards; }
.dhead__title{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .06s backwards; }
.dhead__lead{   animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .14s backwards; }
.dhead__stamp{  animation:hero-rise .7s cubic-bezier(.22,.8,.28,1) .2s backwards; }

.dhead__title{
  margin:0;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(29px, 7.6vw, 44px); line-height:1.12; letter-spacing:.01em;
  text-wrap:balance;
}
.dhead__wing{
  display:inline-flex; align-items:center; gap:5px;
  margin-left:13px; vertical-align:middle;
  transform:translateY(-3px);
}
.dhead__wing i{
  display:block; height:10px; border-radius:3px;
  background:var(--grad); transform:skewX(-22deg);
}
.dhead__wing i:nth-child(1){ width:30px; }
.dhead__wing i:nth-child(2){ width:20px; opacity:.62; }
.dhead__wing i:nth-child(3){ width:11px; opacity:.32; }

.dhead__lead{
  margin:14px 0 0; max-width:62ch;
  font-size:15.5px; line-height:1.6; color:var(--ink-2);
}

.dhead__stamp{
  margin:18px 0 0;
  padding:6px 18px 8px;
  border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(180deg, #FBF8FD, var(--paper) 55%);
}

@media (min-width:960px){
  .dhead{ padding:26px 0 6px; }
  .dhead__lead{ font-size:16.5px; }
  .dhead__stamp{ max-width:34rem; }
}

/* ДОКУМЕНТ */
.pdoc{ padding:22px 0 56px; }
.pdoc__grid{ display:grid; gap:24px; }

@media (min-width:1120px){
  .pdoc{ padding:30px 0 88px; }
  .pdoc__grid{
    grid-template-columns:minmax(0,264px) minmax(0,1fr);
    gap:clamp(40px, 5vw, 76px);
    align-items:start;
  }
}

.brief{
  position:relative;
  padding:15px 18px 15px 22px;
  border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(180deg, #FBF8FD, var(--paper) 60%);
}
.brief::before{
  content:""; position:absolute; left:0; top:14px; bottom:14px; width:3px;
  border-radius:3px; background:var(--grad);
}
.brief h2{
  margin:0 0 10px;
  font-size:12px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink-2);
}
.brief li{
  position:relative; padding-left:26px; margin-bottom:9px;
  font-size:14.5px; line-height:1.55;
}
.brief li:last-child{ margin-bottom:0; }
.brief li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:13px; height:6px; border-radius:2px;
  background:var(--grad); transform:skewX(-22deg);
}
.brief a{
  font-weight:500; color:var(--vio);
  text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:3px; text-decoration-color:rgba(110,43,144,.35);
  transition:color .2s, text-decoration-color .2s;
}
.brief a:hover{ color:var(--mag); text-decoration-color:rgba(233,0,139,.5); }

.toc{
  border:1px solid var(--line); border-radius:16px;
  background:var(--paper);
}
.toc__sum{
  display:flex; align-items:center; gap:11px;
  padding:14px 16px; cursor:pointer;
  font-size:13.5px; font-weight:600; letter-spacing:.01em;
  list-style:none;
}
.toc__sum::-webkit-details-marker{ display:none; }
.toc__sum .ticks .tick{ width:12px; height:6px; }
.toc__sum .num{ font-weight:500; color:var(--ink-2); }
.toc__sum .chev{ margin-left:auto; color:var(--ink-2); transition:transform .3s; }
.toc[open] .toc__sum .chev{ transform:rotate(180deg); }

.toc ol{
  counter-reset:toc;
  margin:0; padding:0 10px 10px; list-style:none;
}
.toc li{ counter-increment:toc; }
.toc a{
  display:flex; align-items:baseline; gap:9px;
  padding:8px 6px; border-radius:10px;
  font-size:14px; line-height:1.35; color:var(--ink-2);
  transition:background .2s, color .2s;
}
.toc a::before{
  content:counter(toc) ".";
  flex:none; width:19px;
  font-family:"Tenor Sans","Optima",Georgia,serif;
  font-size:15px; font-variant-numeric:tabular-nums;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.toc a:hover{ background:var(--mist); color:var(--ink); }

@media (min-width:1120px){
  .toc{ position:sticky; top:calc(var(--hdr-h, 84px) + 18px); }
}

.doc-body{
  counter-reset:sec;
  max-width:42rem;
  font-size:15.5px; line-height:1.65;
}
.doc-sec{
  counter-increment:sec; counter-reset:cl;
  margin:0 0 34px;
  scroll-margin-top:calc(var(--hdr-h, 84px) + 14px);
}
.doc-sec:last-child{ margin-bottom:0; }

.doc-sec > h2{
  display:flex; align-items:baseline; gap:11px;
  margin:0 0 14px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(21px, 5.4vw, 27px); line-height:1.22; letter-spacing:.01em;
  text-wrap:balance;
}
.doc-sec > h2::before{
  content:counter(sec) ".";
  flex:none;
  font-variant-numeric:tabular-nums;
  background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.cl{ margin:0; padding:0; list-style:none; }
.cl > li{
  counter-increment:cl;
  position:relative; padding-left:38px; margin:0 0 13px;
}
.cl > li:last-child{ margin-bottom:0; }
.cl > li::before{
  content:counter(sec) "." counter(cl) ".";
  position:absolute; left:0; top:0;
  font-size:13.5px; font-weight:600; line-height:1.9;
  color:var(--ink-2); font-variant-numeric:tabular-nums;
}
.cl strong{ font-weight:600; }
.cl a{
  color:var(--vio); font-weight:500;
  text-decoration:underline; text-decoration-thickness:1px;
  text-underline-offset:3px; text-decoration-color:rgba(110,43,144,.35);
  transition:color .2s, text-decoration-color .2s;
}
.cl a:hover{ color:var(--mag); text-decoration-color:rgba(233,0,139,.5); }

.cl ul{ margin:9px 0 0; padding:0; }
.cl ul li{
  position:relative; padding-left:24px; margin-bottom:8px;
  font-size:15px; line-height:1.55;
}
.cl ul li:last-child{ margin-bottom:0; }
.cl ul li::before{
  content:""; position:absolute; left:0; top:.6em;
  width:12px; height:5px; border-radius:2px;
  background:var(--grad); opacity:.75;
  transform:skewX(-22deg);
}

.cl .aims{ margin:10px 0 0; padding:0; }
.cl .aims li{
  position:relative; padding-left:24px; margin-bottom:14px;
  font-size:15px; line-height:1.55;
}
.cl .aims li:last-child{ margin-bottom:0; }
.cl .aims li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:12px; height:5px; border-radius:2px;
  background:var(--grad); opacity:.75;
  transform:skewX(-22deg);
}
.cl .aims b{ display:block; font-weight:600; }
.cl .aims span{
  display:block; margin-top:3px;
  font-size:13.5px; line-height:1.5; color:var(--ink-2);
}

.todo{
  color:var(--mag); font-weight:500;
  border-bottom:1px dotted currentColor;
}

.doc-req{
  margin:2px 0 14px;
  padding:6px 18px 8px;
  border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(180deg, #FBF8FD, var(--paper) 55%);
}
.doc-req dd{ word-break:break-word; }
.doc-req dd a{ color:var(--vio); }
.doc-req .todo{ color:var(--mag); }

.ask{
  margin-top:34px; padding:20px;
  border-radius:18px; background:var(--mist);
}
.ask h2{
  margin:0 0 8px;
  font-family:"Tenor Sans","Optima",Georgia,serif; font-weight:400;
  font-size:clamp(20px, 5vw, 25px); line-height:1.2;
}
.ask p{ margin:0; font-size:14.5px; line-height:1.6; color:var(--ink-2); }
.ask__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.ask__actions .cta,
.ask__actions .btn-ghost{ width:100%; padding:13px 22px; }
@media (min-width:520px){
  .ask__actions .cta,
  .ask__actions .btn-ghost{ width:auto; }
}
@media (min-width:960px){ .ask{ padding:26px 28px; } }

/* ПЕЧАТЬ */
@media print{
  .site-header, .menu, .scrim, .cook, .site-footer,
  .skip, .toc, .ask__actions, .dhead__wing{ display:none !important; }
  body{ font-size:11pt; color:#000; }
  .container{ width:100%; }
  .pdoc__grid{ display:block; }
  .doc-body{ max-width:none; font-size:11pt; }
  .doc-sec{ page-break-inside:avoid; }
  .doc-sec > h2::before,
  .brief li::before, .cl ul li::before, .aims li::before{
    -webkit-text-fill-color:#000; color:#000; background:none;
  }
  .brief li::before, .cl ul li::before, .aims li::before{ background:#000; }
  .ask{ background:none; border:1px solid #000; }
}
/* ДОСТУПНОСТЬ: уважение к reduced motion */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition:none !important; animation:none !important; }
}
