/* «Тілмаш» — языковая школа английского (демо-шаблон Webman). Поверх _engine/base.css.
   Цвета, шрифты и скругления — токены ниже: поменяйте их, чтобы перекрасить весь сайт. */
:root {
  --bg: #fff; --fg: #1E1A2B; --muted: #5D5872; --line: #E7E3F0; --line-2: #D9D4E6; --soft: #F4F4F8;
  --accent: #FF9F1C; --accent-ink: #1E1A2B; --orange-2: #FF8A00;
  --violet: #6F42E8; --violet-2: #5A30D6; --violet-3: #9C7BFF; --yellow: #FFD23F; --green: #2FB463; --red: #EF4A4A; --ok-ink: #157A3F;
  --lav: #EEE6FF; --lav-2: #DED0FF;
  --sky: #DDEFFB; --sky-2: #BCE0F6; --peach: #FFE6CC; --peach-2: #FFCF9F; --lemon: #FBF6B4; --lemon-2: #F1E77A;
  --lilac: #EEE7FF; --lilac-2: #D9CBFF; --mint: #DDF4E5; --mint-2: #B5E6C6; --pink: #FFE3EC; --pink-2: #FFC4D7;
  --radius: 24px; --radius-btn: 999px; --wrap: 1200px; --pad: 32px; --gap: 20px;
  --font-head: 'Unbounded', 'Nunito', system-ui, sans-serif; --font-body: 'Nunito', system-ui, sans-serif;
  --step--1: 14px; --step-0: 17px; --step-1: 19px; --step-2: 22px; --step-3: clamp(22px, 2.4vw, 30px); --step-4: clamp(30px, 3.8vw, 50px);
  --zig: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='14' viewBox='0 0 32 14'%3E%3Cpath d='M0 0h32L16 14z'/%3E%3C/svg%3E");
  --zig-up: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='14' viewBox='0 0 32 14'%3E%3Cpath d='M0 14h32L16 0z'/%3E%3C/svg%3E");
  --shadow: 0 1px 0 rgba(30, 26, 43, .04), 0 12px 32px rgba(30, 26, 43, .07);
}
body { line-height: 1.55; }
main { overflow-x: clip; }
h1, h2, h3 { font-weight: 800; letter-spacing: -.01em; }
h3 { font-weight: 700; }
:focus-visible { outline: 3px solid var(--violet); outline-offset: 3px; }
::selection { background: var(--lav-2); }
.muted { color: var(--muted); }
.small { font-size: var(--step--1); }
.note { margin-top: 18px; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* иконки внутри интерфейса (наклейки .stk рисуются своими цветами) */
:is(.btn, .more, .top__menu, .search__go, .top__tel, .gcard__info, .facts, .ticks, .hero__pts, .how__a, .acard__more, .br, .kb__h, .kc__l, .yn, .learn__list, .lvbar, .tnote) svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ——— кнопки ——— */
.btn { min-height: 50px; padding: 10px 26px; border: 2px solid var(--accent); font: 700 14.5px/1.2 var(--font-head); letter-spacing: -.005em; white-space: normal; text-align: center; transition: background .2s, color .2s, border-color .2s, transform .15s, box-shadow .2s; }
.btn:hover { filter: none; background: var(--orange-2); border-color: var(--orange-2); box-shadow: 0 8px 20px rgba(255, 138, 0, .28); }
.btn--lg { min-height: 58px; padding: 12px 32px; font-size: 15.5px; }
.btn--sm { min-height: 42px; padding: 8px 18px; font-size: 13px; }
.btn--ghost { background: transparent; border-color: var(--fg); color: var(--fg); }
.btn--ghost:hover { background: var(--fg); border-color: var(--fg); color: #fff; box-shadow: none; }
.btn--dark { background: var(--fg); border-color: var(--fg); color: #fff; }
.btn--dark:hover { background: var(--violet); border-color: var(--violet); box-shadow: 0 8px 20px rgba(111, 66, 232, .25); }
.btn--ghost-w { background: transparent; border-color: #fff; color: #fff; }
.btn--ghost-w:hover { background: #fff; border-color: #fff; color: var(--violet); box-shadow: none; }
.btn svg { width: 18px; height: 18px; }
.btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.linkbtn { border: 0; background: none; padding: 0; color: var(--violet); font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; }
.linkbtn:hover { color: var(--violet-2); }
.more { display: inline-flex; align-items: center; gap: 8px; color: var(--violet); font-weight: 800; text-decoration: none; white-space: nowrap; }
.more svg { width: 20px; height: 20px; transition: transform .2s; }
.more:hover svg { transform: translateX(4px); }

/* флажок-плашка */
.flag { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 34px 6px 24px; margin-bottom: 18px; background: var(--violet); color: #fff; font: 800 14px/1.15 var(--font-head); text-transform: uppercase; letter-spacing: .02em;
  clip-path: polygon(12px 0, 100% 0, calc(100% - 15px) 50%, 100% 100%, 12px 100%, 0 50%); }
.flag--orange { background: var(--accent); color: var(--fg); }
.flag--dark { background: var(--fg); color: #fff; }

/* наклейки */
.stk { position: absolute; display: block; pointer-events: none; z-index: 3; filter: drop-shadow(0 6px 10px rgba(30, 26, 43, .14)); }
.stk svg { width: 100%; height: auto; overflow: visible; }
@media (prefers-reduced-motion: no-preference) {
  .stk--b1, .stk--hi, .stk--salem, .stk--c1, .stk--cta-m, .stk--age, .stk--mascot { animation: bob 5.5s ease-in-out infinite; }
  .stk--hi, .stk--c1 { animation-delay: -2s; }
  .stk--salem { animation-delay: -3.5s; }
}
@keyframes bob { 50% { translate: 0 -7px; } }

/* рамки фото */
.frame { display: block; position: relative; border-radius: 34px; overflow: hidden; background: var(--lav-2); box-shadow: 0 24px 50px rgba(30, 26, 43, .16); }
.frame img { width: 100%; height: 100%; object-fit: cover; }
.frame--tilt { transform: rotate(3.5deg); }
.frame--tilt-r { transform: rotate(-3deg); }
.zz, .hero, .phead, .chero { position: relative; }
.hero::after, .phead::after, .chero::after { content: ''; position: absolute; left: 0; right: 0; top: calc(100% - 1px); height: 15px; background: var(--zz, var(--lav));
  -webkit-mask: var(--zig) 0 0 / 32px 15px repeat-x; mask: var(--zig) 0 0 / 32px 15px repeat-x; z-index: 2; pointer-events: none; }
.zwin { -webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; }

/* ——— шапка ——— */
.top { background: rgba(255, 255, 255, .95); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.top.is-scrolled { border-color: var(--line); box-shadow: 0 8px 26px rgba(30, 26, 43, .06); }
.top__in { display: flex; align-items: center; gap: 14px; min-height: 74px; }
.top__logo { text-decoration: none; flex: none; margin-right: 6px; }
.logo { display: inline-flex; align-items: center; gap: 10px; color: var(--fg); }
.logo__m { width: 44px; height: 44px; flex: none; }
.logo__w { display: grid; gap: 4px; font: 800 22px/1 var(--font-head); letter-spacing: -.03em; }
.logo__w small { font: 800 9.5px/1 var(--font-body); letter-spacing: .09em; text-transform: uppercase; color: var(--muted); }
.top__menu { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 20px 0 14px; border: 0; border-radius: 999px; background: var(--fg); color: #fff; font: 700 13.5px var(--font-head); flex: none; transition: background .2s; }
.top__menu:hover { background: var(--violet); }
.top__menu svg { width: 20px; height: 20px; stroke-width: 2.4; }
.search { position: relative; flex: 1; min-width: 0; max-width: 520px; }
.search input { width: 100%; height: 46px; padding: 0 50px 0 20px; border: 1.5px solid var(--line); border-radius: 999px; background: #fff; font-size: 15.5px; -webkit-appearance: none; appearance: none; }
.search input::placeholder { color: #8C88A0; }
.search input:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 4px rgba(111, 66, 232, .14); }
.search input::-webkit-search-cancel-button { display: none; }
.search__go { position: absolute; right: 5px; top: 5px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: none; color: var(--muted); display: grid; place-items: center; }
.search__go:hover { background: var(--lav); color: var(--violet); }
.search__go svg { width: 20px; height: 20px; }
.search__list { position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 60; max-height: 70vh; overflow: auto; padding: 8px; background: #fff; border-radius: 22px; box-shadow: 0 24px 60px rgba(30, 26, 43, .18); border: 1px solid var(--line); }
.search__list a { display: grid; gap: 1px; padding: 10px 14px; border-radius: 14px; text-decoration: none; }
.search__list a:hover, .search__list a:focus { background: var(--lav); outline: none; }
.search__list b { font-weight: 800; }
.search__list small { color: var(--muted); font-size: 13.5px; }
.search__k, .search__none { margin: 4px 14px 6px; font-size: 13px; color: var(--muted); font-weight: 700; }
.top__tel { display: inline-flex; align-items: center; gap: 8px; color: var(--fg); text-decoration: none; font-weight: 800; white-space: nowrap; margin-left: auto; }
.top__tel svg { width: 20px; height: 20px; color: var(--violet); }
.top__tel:hover { color: var(--violet); }
.top__cta { display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border: 2px solid var(--accent); border-radius: 999px; background: #FFF5E8; color: var(--fg); font: 700 13px var(--font-head); text-decoration: none; white-space: nowrap; flex: none; transition: background .2s; }
.top__cta:hover, .top__cta.is-on { background: var(--accent); }
.top__cta-s { display: none; }

/* меню: на компьютере — панель сверху, на телефоне — шторка справа */
.mnav { background: #fff; }
.mnav__h { margin: 0 0 12px; font: 700 12px var(--font-head); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.mnav__courses { gap: 6px !important; }
.mnav__courses a { display: grid !important; grid-template-columns: 16px 1fr; column-gap: 12px; align-items: center; padding: 8px 14px !important; border-radius: 16px; font-size: 16px !important; transition: background .15s; }
.mnav__courses a:hover, .mnav__courses a.is-on { background: var(--lav); }
.mnav__courses b { font: 700 16px var(--font-head); }
.mnav__courses small { grid-column: 2; color: var(--muted); font-size: 14px; }
.dot { display: inline-block; width: 14px; height: 14px; border-radius: 5px; transform: rotate(12deg); flex: none; }
.dot--sky { background: #6CC3EE; } .dot--peach { background: #FFAB5C; } .dot--lemon { background: #E8D52E; } .dot--lilac { background: #A98BFF; } .dot--mint { background: #4CC57A; }
.mnav__pages a { padding: 8px 0 !important; font: 700 17px var(--font-head) !important; }
.mnav__pages a:hover, .mnav__pages a.is-on { color: var(--violet); }
.mnav__foot { margin-top: 0; align-content: start; }
.mnav__c { display: grid; gap: 6px; margin-top: 10px; font-size: 15px; color: var(--muted); }
.mnav__c a { color: var(--fg); font-weight: 800; text-decoration: none; }
.mnav__grid { display: grid; gap: 28px; }
@media (min-width: 900px) {
  .mnav { left: 0; right: 0; bottom: auto; width: auto; max-height: 100vh; padding: 22px max(var(--pad), calc((100vw - var(--wrap)) / 2)) 36px; border-radius: 0 0 36px 36px; transform: translateY(-104%); box-shadow: 0 30px 70px rgba(30, 26, 43, .2); }
  .mnav.is-open { transform: none; }
  .mnav__grid { grid-template-columns: 1.15fr 1fr .9fr; gap: 48px; }
  .mnav .mnav__pages { grid-template-columns: repeat(2, max-content); gap: 2px 44px; }
  .mnav .mnav__courses { grid-template-columns: 1fr 1fr; gap: 6px 8px; }
}

/* ——— первый экран ——— */
.hero { background: var(--lav); padding: 54px 0 78px; margin-bottom: 15px; }
.hero__in { display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px; align-items: center; }
.hero__t { font-size: clamp(31px, 3.55vw, 50px); line-height: 1.1; letter-spacing: -.025em; }
.hero__lead { margin: 22px 0 0; font-size: var(--step-1); max-width: 54ch; color: #3E3A4F; }
.hero__pts { list-style: none; padding: 0; margin: 26px 0 0; display: flex; flex-wrap: wrap; gap: 10px 22px; font-weight: 700; font-size: 15.5px; }
.hero__pts li { display: inline-flex; align-items: center; gap: 8px; }
.hero__pts svg, .ticks svg { width: 22px; height: 22px; padding: 4px; border-radius: 50%; background: var(--green); color: #fff; stroke-width: 3; flex: none; }
.hero__pic { position: relative; width: min(430px, 100%); justify-self: center; }
.frame--hero { aspect-ratio: 4 / 5; }
.stk--flag { width: 120px; left: -66px; top: 31%; transform: rotate(-14deg); }
.stk--hi { width: 86px; left: -8px; top: calc(31% + 62px); transform: rotate(8deg); }
.stk--salem { width: 116px; right: -50px; bottom: 11%; transform: rotate(-7deg); }
.stk--b1 { width: 60px; right: -30px; top: -22px; }
.stk--b2 { width: 34px; right: 52px; top: -40px; }
.stk--b3 { width: 24px; right: -52px; top: 74px; }
.stk--b4 { width: 30px; left: 26px; top: -30px; }
.stk--b5 { width: 18px; right: -14px; top: 128px; }

/* ——— секции ——— */
.sec { padding: 76px 0; }
.sec--gray { background: var(--soft); }
.sec--tight { padding: 52px 0; }
.sec--top { padding-top: 44px; }
.sec--flush { padding-top: 0; }
.h2 { font-size: clamp(26px, 2.7vw, 38px); line-height: 1.12; margin-bottom: 30px; }
.h2--big { font-size: clamp(28px, 3.3vw, 46px); }
.h3 { font-size: var(--step-2); margin-bottom: 18px; }
.sec__h { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 30px; }
.sec__h .h2, .sec__h h3 { margin: 0; }
.sec__lead { max-width: 64ch; margin: -12px 0 30px; color: var(--muted); font-size: 18px; }

/* цвета карточек: --c фон, --c2 насыщеннее */
.sky, [class*="--sky"] { --c: var(--sky); --c2: var(--sky-2); }
[class*="--peach"] { --c: var(--peach); --c2: var(--peach-2); }
[class*="--lemon"] { --c: var(--lemon); --c2: var(--lemon-2); }
[class*="--lilac"] { --c: var(--lilac); --c2: var(--lilac-2); }
[class*="--mint"] { --c: var(--mint); --c2: var(--mint-2); }
[class*="--pink"] { --c: var(--pink); --c2: var(--pink-2); }
[class*="--lav"] { --c: var(--lav); --c2: var(--lav-2); }

/* ситуации «Когда к нам приходят» */
.sits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.sit { position: relative; display: flex; flex-direction: column; min-height: 310px; padding: 26px 28px; border-radius: 26px; background: var(--c); overflow: hidden; }
.sit--wide { grid-column: span 2; }
.sit__t { position: relative; z-index: 4; max-width: 340px; font-size: clamp(17px, 1.45vw, 20px); line-height: 1.28; }
.sit__art { position: relative; flex: 1; min-height: 180px; margin: 12px -28px -26px; }
.sit--wide .sit__t { max-width: 40%; }
.sit--wide .sit__art { position: absolute; inset: 0; margin: 0; }
.sit__plate { position: absolute; right: -4%; bottom: -24%; width: 56%; height: 120%; background: var(--c2); border-radius: 26px; transform: rotate(13deg); }
.sit__img { position: absolute; right: 7%; bottom: 0; width: min(46%, 400px); height: 86%; object-fit: cover; border-radius: 26px 26px 0 0; box-shadow: 0 -8px 30px rgba(30, 26, 43, .12); }
.stk--s1 { width: 50px; right: 48%; bottom: 46%; transform: rotate(-12deg); }
.stk--s2 { width: 30px; right: 44%; bottom: 30%; }
.stk--s3 { width: 54px; right: 4%; top: 12%; transform: rotate(12deg); }
.stk--s4 { width: 96px; right: 48%; top: 46%; transform: rotate(-9deg); }
.chat { position: absolute; left: 18%; right: 14%; top: 14px; bottom: -30px; display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 18px; border: 7px solid #fff; border-radius: 30px; background: var(--c2); }
.chat__b { position: relative; max-width: 96%; padding: 9px 14px; border-radius: 16px; font: 800 14.5px/1.25 var(--font-body); }
.chat__b--a { align-self: flex-start; background: var(--accent); color: var(--fg); transform: rotate(-4deg) translateX(-34%); }
.chat__b--b { align-self: flex-end; background: var(--violet); color: #fff; transform: rotate(3deg) translateX(22%); }
.chat__b--a::after, .chat__b--b::after { content: ''; position: absolute; bottom: -7px; width: 14px; height: 14px; background: inherit; }
.chat__b--a::after { left: 18px; clip-path: polygon(0 0, 100% 0, 0 100%); }
.chat__b--b::after { right: 18px; clip-path: polygon(0 0, 100% 0, 100% 100%); }
.chat--work { left: 16%; right: 16%; }
.cards3 { position: absolute; inset: 0; }
.wcard { position: absolute; display: grid; place-content: center; gap: 2px; width: 138px; height: 96px; padding: 8px; border-radius: 16px; background: #fff; box-shadow: 0 10px 24px rgba(30, 26, 43, .12); text-align: center; font: 700 14px/1.2 var(--font-body); color: var(--muted); }
.wcard b { font: 800 21px/1.1 var(--font-head); color: var(--fg); }
.wcard--1 { left: 8%; bottom: 34px; transform: rotate(-8deg); }
.wcard--2 { left: 38%; bottom: 74px; transform: rotate(5deg); z-index: 2; }
.wcard--3 { right: 7%; bottom: 18px; width: 104px; transform: rotate(11deg); background: var(--violet); z-index: 3; }
.wcard--3 b { color: #fff; font-size: 34px; }

/* курсы по возрасту: окно с зубчатым краем */
.ages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.acard { position: relative; display: flex; flex-direction: column; border-radius: 26px; background: var(--c); color: inherit; text-decoration: none; overflow: hidden; transition: transform .25s, box-shadow .25s; }
.acard:hover { transform: translateY(-5px); box-shadow: 0 18px 40px rgba(30, 26, 43, .12); }
.acard__win { position: relative; display: block; aspect-ratio: 1 / .84; background: var(--c2); }
.acard__win img { width: 100%; height: 100%; object-fit: cover; -webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; }
.stk--age { width: 70px; right: 12px; top: 12px; transform: rotate(8deg); }
.acard--sky .stk--age { width: 92px; }
.acard__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 16px 22px 24px; }
.acard__age { align-self: flex-start; padding: 4px 10px; border-radius: 999px; background: #fff; font: 800 12px var(--font-head); letter-spacing: .02em; }
.acard__t { font: 800 21px/1.15 var(--font-head); letter-spacing: -.02em; }
.acard__d { font-size: 15.5px; line-height: 1.5; }
.acard__more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 6px; color: var(--violet); font-weight: 800; }
.acard__more svg { width: 18px; height: 18px; transition: transform .2s; }
.acard:hover .acard__more svg, .ielts:hover .acard__more svg { transform: translateX(4px); }
.ielts { display: grid; grid-template-columns: 1fr 42%; margin-top: 20px; border-radius: 26px; background: var(--mint); color: inherit; text-decoration: none; overflow: hidden; transition: box-shadow .25s; }
.ielts:hover { box-shadow: 0 18px 40px rgba(30, 26, 43, .12); }
.ielts__txt { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 30px 34px; }
.ielts__txt .flag { margin-bottom: 6px; }
.ielts__t { font: 800 clamp(22px, 2.2vw, 30px)/1.1 var(--font-head); }
.ielts__txt > span:not(.flag):not(.acard__more) { max-width: 52ch; }
.ielts__pic { position: relative; min-height: 220px; background: var(--mint-2); clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
.ielts__pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.stk--ib { width: 104px; left: 16%; bottom: 18px; transform: rotate(-8deg); }

/* вопрос-тизер */
.teaser { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; padding: 52px; border-radius: 36px; background: var(--violet); color: #fff; overflow: hidden; }
.teaser::before { content: ''; position: absolute; right: -120px; top: -140px; width: 420px; height: 420px; border-radius: 50%; background: var(--violet-3); opacity: .45; }
.teaser::after { content: ''; position: absolute; right: -44px; bottom: -62px; width: 150px; height: 150px; border-radius: 36px; background: var(--yellow); transform: rotate(24deg); }
.teaser > * { position: relative; z-index: 1; }
.teaser h2 { font-size: clamp(26px, 2.8vw, 40px); line-height: 1.12; margin-bottom: 16px; }
.teaser__txt > p { color: rgba(255, 255, 255, .9); max-width: 46ch; }
.teaser__txt .btn { margin-top: 12px; }
.teaser__txt .small { color: rgba(255, 255, 255, .85); margin-top: 14px; max-width: 44ch; }
.teaser__q { padding: 30px; border-radius: 28px; background: #fff; color: var(--fg); box-shadow: 0 30px 60px rgba(20, 8, 60, .3); transform: rotate(1.6deg); }
.teaser__k { margin: 0 0 10px; font: 700 12px var(--font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.teaser__s { margin: 0 0 20px; font: 700 clamp(19px, 1.9vw, 24px)/1.3 var(--font-head); }
.teaser__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.teaser__opts button { min-height: 54px; padding: 8px 14px; border: 2px solid var(--line); border-radius: 16px; background: #fff; font: 800 18px var(--font-body); transition: border-color .15s, background .15s; }
.teaser__opts button:hover:not(:disabled) { border-color: var(--violet); background: #FBF9FF; }
.teaser__opts button:disabled { cursor: default; color: var(--fg); }
.teaser__opts .is-right { border-color: var(--green); background: #E5F7EC; }
.teaser__opts .is-wrong { border-color: var(--red); background: #FDE9E9; }
.teaser__r { margin: 16px 0 0; font-size: 15.5px; min-height: 1px; }
.teaser__r:empty { display: none; }
.teaser__r a { color: var(--violet); font-weight: 800; }

/* шаги «Как мы учим» */
.how { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.how--3 { grid-template-columns: repeat(3, 1fr); }
.how__i { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 28px 26px 26px; border-radius: 26px; background: var(--c); }
.how__n { display: grid; place-items: center; width: 50px; height: 50px; margin-bottom: 6px; border-radius: 15px; background: var(--fg); color: #fff; font: 800 20px var(--font-head); transform: rotate(-7deg); }
.how__i:nth-child(even) .how__n { transform: rotate(6deg); background: var(--violet); }
.how__i h3 { font-size: 18px; line-height: 1.25; }
.how__i p { margin: 0; font-size: 15.5px; }
.how__a { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding: 8px 0 0; border: 0; background: none; color: var(--violet); font: 800 15.5px var(--font-body); text-decoration: none; align-self: flex-start; }
.how__a svg { width: 18px; height: 18px; transition: transform .2s; }
.how__a:hover svg { transform: translateX(4px); }

/* таблица форматов */
.cmp { padding: 10px 30px; border-radius: 28px; background: #fff; box-shadow: var(--shadow); }
.cmp__row { display: grid; grid-template-columns: 1fr 1.35fr 1.35fr; gap: 28px; padding: 16px 0; border-top: 1px solid var(--line); align-items: start; }
.cmp__row--head { border-top: 0; padding: 18px 0 12px; }
.cmp__k { padding-top: 10px; font-weight: 800; font-size: 16px; }
.cmp__row--head .cmp__k { font: 700 13px var(--font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.cmp__c { padding: 11px 16px; border-radius: 12px; font-size: 15.5px; line-height: 1.45; }
.cmp__c--a { background: #FFF0DD; }
.cmp__c--b { background: #F2EDFF; }
.cmp__row--head .cmp__c { display: grid; gap: 2px; padding: 14px 16px; }
.cmp__row--head .cmp__c b { font: 800 16px/1.25 var(--font-head); }
.cmp__row--head .cmp__c small { font-size: 13.5px; color: var(--muted); font-weight: 700; }
.cmp__c b { font-weight: 800; }
.yn { display: inline-flex; align-items: center; gap: 10px; font-weight: 700; }
.yn svg { width: 24px; height: 24px; padding: 4px; border-radius: 50%; color: #fff; stroke-width: 3.2; flex: none; }
.yn--y svg { background: var(--green); }
.yn--n svg { background: var(--red); }

/* карточка группы */
.glist { display: grid; grid-template-columns: repeat(auto-fill, minmax(262px, 1fr)); gap: 18px; }
.glist--3 { grid-template-columns: repeat(3, 1fr); }
.gcard { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 20px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); transition: box-shadow .2s, border-color .2s; }
.gcard__head { display: flex; align-items: center; gap: 14px; }
.gcard__lvl { display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 16px; background: var(--c2); font: 800 18px var(--font-head); transform: rotate(-5deg); }
.gcard__ttl { min-width: 0; }
.gcard__course { margin: 0 0 2px; font-size: 14px; font-weight: 700; color: var(--muted); }
.gcard__id { font: 800 18px/1.2 var(--font-head); }
.gcard__st { align-self: flex-start; margin: 0; padding: 4px 11px; border-radius: 999px; font-size: 13.5px; font-weight: 800; }
.gcard__st--new { background: #E2F6E9; color: #17663A; }
.gcard__st--running { background: #FFF0DC; color: #8A4B00; }
.gcard__st--full { background: #FDE6E6; color: #A32626; }
.gcard__info { list-style: none; padding: 0; display: grid; gap: 8px; font-size: 15.5px; }
.gcard__info li { display: flex; gap: 10px; align-items: flex-start; }
.gcard__info svg { width: 20px; height: 20px; margin-top: 2px; flex: none; color: var(--violet); }
.gcard__info a { color: inherit; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.gcard__info a:hover { color: var(--violet); }
.gcard__seats { display: grid; gap: 7px; font-size: 14px; color: var(--muted); font-weight: 600; }
.seats { display: flex; gap: 4px; }
.seats i { width: 18px; height: 8px; border-radius: 4px; background: var(--green); }
.seats i.on { background: var(--line-2); }
.gcard__btn { margin-top: auto; width: 100%; }
.gcard.is-match { border-color: var(--violet); box-shadow: 0 0 0 2px var(--violet), var(--shadow); }
.gcard__badge { position: absolute; top: -13px; right: 16px; z-index: 2; padding: 6px 12px; border-radius: 999px; background: var(--violet); color: #fff; font: 700 11.5px var(--font-head); transform: rotate(3deg); }
.gcard:not(.is-match) .gcard__badge { background: var(--fg); }
.gcard.is-hl { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent), var(--shadow); }

/* преподаватели */
.tgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.tcard { display: flex; flex-direction: column; gap: 6px; color: inherit; text-decoration: none; }
.tcard__win { display: block; aspect-ratio: 4 / 5; margin-bottom: 10px; border-radius: 26px; overflow: hidden; background: var(--lav); transform: rotate(-2deg); transition: transform .3s; }
.tcard:nth-child(even) .tcard__win { transform: rotate(2deg); }
.tcard:hover .tcard__win { transform: rotate(0) scale(1.02); }
.tcard__win img { width: 100%; height: 100%; object-fit: cover; }
.tcard__n { font: 800 18px/1.2 var(--font-head); }
.tcard__r { color: var(--muted); font-size: 15.5px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 6px 0 0; }
.chip { display: inline-flex; align-items: center; min-height: 30px; padding: 3px 12px; border-radius: 999px; background: var(--soft); font-size: 13.5px; font-weight: 700; }
.chip a { color: inherit; text-decoration: none; }
.chip a:hover { color: var(--violet); }
.chip--v { background: var(--violet); color: #fff; }

/* филиалы на главной */
.brs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.br { display: grid; gap: 6px; align-content: start; padding: 26px; border-radius: 24px; background: var(--c); color: inherit; text-decoration: none; transition: transform .2s; }
.br:hover { transform: translateY(-4px); }
.br svg { width: 34px; height: 34px; margin-bottom: 6px; color: var(--violet); }
.br b { font: 800 18px/1.25 var(--font-head); }
.br small { color: var(--muted); font-size: 14.5px; }

/* баннер «Не знаете, с чего начать?» */
.cta { position: relative; display: grid; grid-template-columns: 1.3fr .7fr; min-height: 380px; border-radius: 36px; background: var(--violet); color: #fff; overflow: hidden; }
.cta__txt { position: relative; z-index: 2; padding: 54px; align-self: center; }
.cta h2 { font-size: clamp(28px, 3.1vw, 44px); line-height: 1.1; margin-bottom: 16px; }
.cta p { color: rgba(255, 255, 255, .92); max-width: 50ch; font-size: 18px; }
.cta__pic { position: relative; min-height: 300px; }
.cta__plate { position: absolute; right: -18%; top: -20%; width: 92%; height: 150%; background: var(--violet-3); transform: skewX(-14deg); }
.cta__img { position: absolute; bottom: 0; right: 10%; width: 74%; max-width: 290px; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 30px 30px 0 0; }
.stk--cta-m { width: 120px; left: -14%; bottom: 26px; transform: rotate(-9deg); }
.stk--cta-s1 { width: 40px; right: 8%; top: 18%; }
.stk--cta-s2 { width: 26px; left: 30%; top: 22%; }

/* вопросы */
.faqwrap { display: grid; grid-template-columns: .75fr 1.25fr; gap: 48px; align-items: start; }
.faq__side { position: sticky; top: 100px; }
.faq__side .h2 { margin-bottom: 16px; }
.faq__note { max-width: 32ch; color: var(--muted); font-size: 16.5px; }
.faq__note a { color: var(--violet); font-weight: 800; white-space: nowrap; }
.faq summary { font: 800 19px/1.35 var(--font-body); padding: 22px 0; }
.faq summary::after { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--lav); color: var(--violet); font: 400 26px/1 var(--font-body); }
.faq summary:hover { color: var(--violet); }
.faq details > div { color: #3E3A4F; font-size: 16.5px; }

/* блок заявки */
.leadbox { position: relative; display: grid; grid-template-columns: 1fr 1.05fr; gap: 48px; padding: 52px; border-radius: 36px; background: var(--lav); overflow: hidden; }
.leadbox__txt { position: relative; padding-bottom: 150px; }
.leadbox h2 { font-size: clamp(26px, 2.7vw, 38px); line-height: 1.12; margin-bottom: 14px; }
.leadbox__txt > p { color: #3E3A4F; font-size: 17.5px; max-width: 46ch; }
.ticks { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 10px; font-weight: 700; }
.ticks li { display: flex; gap: 10px; align-items: center; }
.stk--mascot { width: 138px; left: 0; bottom: 0; transform: rotate(-6deg); }
.leadbox__form { padding: 30px; border-radius: 28px; background: #fff; box-shadow: var(--shadow); align-self: start; }
.lead__extra { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { color: var(--muted); font-weight: 700; }
.field input, .field select, .field textarea { border: 1.5px solid var(--line-2); border-radius: 14px; font-weight: 600; transition: border-color .15s, box-shadow .15s; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 4px rgba(111, 66, 232, .14); }
.field select { -webkit-appearance: none; appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%235D5872' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") right 16px center / 14px 9px no-repeat; }
.agree { font-weight: 600; }
.done { border-radius: 20px; background: var(--mint); border-color: var(--mint-2); }
.done__t { font-family: var(--font-head); font-weight: 800; }
.modal__box { border-radius: 30px; }
.modal__t { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.15; }
.modal__k { font: 700 12px var(--font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--violet); }
.lvchip { margin: 0; padding: 10px 14px; border-radius: 14px; background: var(--lav); font-size: 15px; }

/* заголовки внутренних страниц */
.phead { background: var(--c, var(--lav)); --zz: var(--c, var(--lav)); padding: 4px 0 62px; margin-bottom: 15px; }
.phead__in { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; }
.phead__t { font-size: clamp(30px, 3.9vw, 54px); line-height: 1.08; letter-spacing: -.025em; max-width: 18ch; }
.phead__lead { margin: 18px 0 0; max-width: 60ch; font-size: var(--step-1); color: #3E3A4F; }
.crumbs { padding: 24px 0 18px; font-weight: 700; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--violet); }
.phead__art { position: relative; width: 260px; height: 190px; }
.stk--ph1 { width: 150px; left: 0; top: 10px; transform: rotate(-8deg); }
.stk--ph2 { width: 104px; right: 0; bottom: 0; transform: rotate(7deg); }
.stk--ph3 { width: 44px; right: 30px; top: 0; }
.lvslot:empty { display: none; }

/* плашка «Ваш уровень» */
.lvbar { display: flex; align-items: center; gap: 16px; margin: 26px 0 0; padding: 12px 14px 12px 12px; border: 2px solid var(--violet); border-radius: 24px; background: #fff; box-shadow: 0 12px 30px rgba(111, 66, 232, .12); }
.lvbar__b { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 16px; background: var(--violet); color: #fff; font: 800 18px var(--font-head); transform: rotate(-5deg); }
.lvbar__t { flex: 1; display: grid; gap: 2px; margin: 0; }
.lvbar__t b { font: 800 16px/1.25 var(--font-head); }
.lvbar__t span { font-size: 15px; color: var(--muted); }
.lvbar .btn { flex: none; }
.lvbar__re { flex: none; color: var(--violet); font-weight: 800; font-size: 15px; }
.lvbar__x { flex: none; width: 38px; height: 38px; border: 0; border-radius: 50%; background: var(--soft); font-size: 22px; line-height: 1; color: var(--muted); }
.lvbar__x:hover { background: var(--lav); color: var(--fg); }

/* страница курса */
.chero { background: var(--c); --zz: var(--c); padding: 4px 0 64px; margin-bottom: 15px; }
.chero__in { display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; }
.chero__t { font-size: clamp(30px, 3.6vw, 50px); line-height: 1.08; letter-spacing: -.025em; }
.chero__lead { margin: 20px 0 0; max-width: 56ch; font-size: var(--step-1); color: #3E3A4F; }
.chero__pic { position: relative; width: min(400px, 100%); justify-self: center; margin-top: 24px; }
.chero__pic .frame { aspect-ratio: 1; }
.stk--c1 { width: 104px; left: -48px; top: -26px; transform: rotate(-10deg); }
.stk--c2 { width: 46px; right: -24px; top: 22%; }
.stk--c3 { width: 62px; right: 22%; bottom: -26px; }
.facts { list-style: none; padding: 0; margin: 26px 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.facts__i { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 20px; background: #fff; }
.facts__i svg { width: 40px; height: 40px; padding: 9px; flex: none; border-radius: 13px; background: var(--lav); color: var(--violet); }
.facts__i span { display: grid; min-width: 0; }
.facts__i small { font-size: 13px; color: var(--muted); font-weight: 700; }
.facts__i b { font-size: 15.5px; line-height: 1.25; }
.who { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.who__i { padding: 24px; border-radius: 24px; background: var(--c); }
.who__n { display: block; margin-bottom: 14px; font: 800 30px/1 var(--font-head); color: var(--violet); }
.who__i h3 { font-size: 17px; line-height: 1.28; margin-bottom: 10px; }
.who__i p { margin: 0; font-size: 15.5px; }
.learn { display: grid; grid-template-columns: .8fr 1.2fr; gap: 48px; align-items: start; }
.learn__h { position: relative; }
.learn__h .h2 { margin-bottom: 16px; }
.learn__h .muted { max-width: 40ch; }
.stk--learn { position: relative; display: block; width: 64px; margin-top: 18px; z-index: 1; }
.learn__list { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.learn__list li { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; border-radius: 20px; background: #fff; font-weight: 700; font-size: 16px; line-height: 1.4; }
.learn__list svg { width: 26px; height: 26px; padding: 5px; flex: none; border-radius: 9px; background: var(--violet); color: #fff; stroke-width: 3; }
.steps { position: relative; list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.steps::before { content: ''; position: absolute; top: 25px; left: 30px; right: 30px; border-top: 3px dashed var(--lav-2); }
.steps__i { position: relative; display: flex; flex-direction: column; gap: 8px; }
.steps__n { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--violet); color: #fff; font: 800 19px var(--font-head); box-shadow: 0 0 0 6px #fff; }
.steps__i:nth-child(odd) .steps__n { background: var(--fg); }
.steps__m { align-self: flex-start; margin-top: 8px; padding: 3px 10px; border-radius: 999px; background: #FFF0DC; color: #8A4B00; font-size: 13px; font-weight: 800; }
.steps__i h3 { font-size: 16.5px; line-height: 1.25; }
.steps__i p { margin: 0; font-size: 15.5px; color: #3E3A4F; }
.mods { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.mod { padding: 24px; border-radius: 24px; background: var(--c); }
.mod__k { margin: 0 0 8px; font-size: 13.5px; font-weight: 800; color: var(--muted); }
.mod h3 { font-size: 19px; line-height: 1.2; margin-bottom: 14px; }
.mod ul { list-style: none; padding: 0; display: grid; gap: 8px; font-size: 15.5px; }
.mod li { position: relative; padding-left: 20px; }
.mod li::before { content: ''; position: absolute; left: 0; top: .5em; width: 9px; height: 9px; border-radius: 3px; background: var(--fg); transform: rotate(45deg); }
.prices { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.price { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 28px; border-radius: 26px; background: var(--c); }
.price--hot { box-shadow: 0 0 0 3px var(--fg); }
.price__tag { position: absolute; top: -14px; left: 24px; padding: 6px 12px; border-radius: 999px; background: var(--fg); color: #fff; font: 700 11.5px var(--font-head); transform: rotate(-2deg); }
.price__t { margin: 0; font: 700 15px var(--font-head); }
.price__p { margin: 0; font: 800 clamp(26px, 2.6vw, 34px)/1.15 var(--font-head); letter-spacing: -.02em; }
.price__p small { font: 700 16px var(--font-body); color: var(--muted); }
.price__x { margin: 0; color: #3E3A4F; font-size: 15.5px; }
.price .btn { margin-top: 14px; align-self: flex-start; }
.tmini { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; }
.tmini__i { display: flex; align-items: center; gap: 22px; padding: 16px 24px 16px 16px; border-radius: 28px; background: var(--c); color: inherit; text-decoration: none; transition: transform .2s; }
.tmini__i:hover { transform: translateY(-3px); }
.tmini__i img { width: 132px; height: 160px; border-radius: 20px; object-fit: cover; flex: none; transform: rotate(-3deg); }
.tmini__i span { display: grid; gap: 4px; }
.tmini__i b { font: 800 19px var(--font-head); }
.tmini__i small { color: #3E3A4F; font-size: 14.5px; font-weight: 700; }
.tmini__i q { margin-top: 8px; font-size: 16px; font-weight: 700; quotes: '«' '»'; }
.others { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.other { display: flex; align-items: center; gap: 14px; padding: 10px; border-radius: 20px; background: var(--c); color: inherit; text-decoration: none; transition: transform .2s; }
.other:hover { transform: translateY(-3px); }
.other img { width: 64px; height: 64px; border-radius: 16px; object-fit: cover; flex: none; }
.other span { display: grid; }
.other b { font: 800 15px var(--font-head); }
.other small { color: var(--muted); font-size: 14px; }

/* все курсы */
.crows { display: grid; gap: 20px; }
.crow { display: grid; grid-template-columns: 250px 1fr 230px; gap: 32px; align-items: center; padding: 22px; border-radius: 30px; background: var(--c); }
.crow__win { display: block; aspect-ratio: 1; border-radius: 22px; overflow: hidden; transform: rotate(-2.5deg); background: var(--c2); }
.crow:nth-child(even) .crow__win { transform: rotate(2.5deg); }
.crow__win img { width: 100%; height: 100%; object-fit: cover; }
.crow__age { display: inline-block; margin-bottom: 8px; padding: 4px 10px; border-radius: 999px; background: #fff; font: 800 12px var(--font-head); }
.crow__t { font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; margin-bottom: 10px; }
.crow__t a { text-decoration: none; }
.crow__t a:hover { color: var(--violet); }
.crow__body p { color: #3E3A4F; margin-bottom: 4px; }
.crow .chip { background: rgba(255, 255, 255, .75); }
.crow__side { display: grid; gap: 10px; padding: 20px; border-radius: 22px; background: #fff; }
.crow__price { margin: 0 0 4px; font: 800 26px/1.1 var(--font-head); }
.crow__price small { display: block; font: 700 14px var(--font-body); color: var(--muted); }

/* тест */
.phead--test { padding-bottom: 104px; }
.sec--test { position: relative; z-index: 3; margin-top: -88px; padding-top: 0; }
.tbox { max-width: 1000px; margin: 0 auto; padding: 38px; border-radius: 34px; background: #fff; box-shadow: 0 2px 0 rgba(30, 26, 43, .03), 0 30px 70px rgba(30, 26, 43, .12); border: 1px solid var(--line); }
.tbox__h { font-size: clamp(24px, 2.4vw, 32px); margin-bottom: 8px; outline: none; }
.tbox__s { color: var(--muted); margin-bottom: 24px; }
.tnote { display: flex; align-items: center; justify-content: center; gap: 10px; max-width: 1000px; margin: 20px auto 0; color: var(--muted); font-weight: 700; text-align: center; }
.tnote svg { width: 24px; height: 24px; flex: none; padding: 4px; border-radius: 50%; background: var(--lav); color: var(--violet); stroke-width: 3; }
.twho { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.twho__b { display: flex; flex-direction: column; gap: 10px; padding: 0 0 20px; border: 2px solid var(--line); border-radius: 26px; background: #fff; text-align: left; overflow: hidden; transition: border-color .2s, transform .2s, box-shadow .2s; }
.twho__b:hover { border-color: var(--violet); transform: translateY(-4px); box-shadow: 0 16px 34px rgba(111, 66, 232, .14); }
.twho__b img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; -webkit-mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; mask: linear-gradient(#000 0 0) top / 100% calc(100% - 12px) no-repeat, var(--zig) bottom left / 26px 13px repeat-x; }
.twho__b span { display: grid; gap: 6px; padding: 0 20px; }
.twho__b b { font: 800 18px/1.2 var(--font-head); }
.twho__b small { color: var(--muted); font-size: 15px; line-height: 1.45; }
.twho__go { margin-top: auto; padding: 0 20px; color: var(--violet); font-style: normal; font-weight: 800; }
.tkids { display: flex; align-items: center; gap: 18px; margin-top: 18px; padding: 14px 18px 14px 14px; border-radius: 22px; background: var(--peach); }
.tkids img { width: 74px; height: 74px; flex: none; border-radius: 50%; object-fit: cover; }
.tkids p { flex: 1; margin: 0; font-size: 15.5px; }
.tkids .btn { flex: none; }
.tsaved { display: flex; align-items: center; gap: 14px; margin-bottom: 26px; padding: 12px 14px; border-radius: 20px; background: var(--lav); }
.tsaved p { flex: 1; margin: 0; }
.tsaved .lvbar__b { width: 46px; height: 46px; font-size: 15px; }
.tq__top { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; }
.tq__back { padding: 8px 0; border: 0; background: none; color: var(--violet); font-weight: 800; }
.tq__back:hover { color: var(--violet-2); }
.tq__n { margin: 0; color: var(--muted); }
.tq__n b { font: 800 17px var(--font-head); color: var(--fg); }
.tq__who { margin: 0 0 0 auto; padding: 4px 12px; border-radius: 999px; background: var(--soft); font-size: 14px; font-weight: 700; color: var(--muted); }
.tq__bar { height: 12px; margin-bottom: 30px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.tq__bar span { display: block; height: 100%; min-width: 12px; border-radius: 999px; background: linear-gradient(90deg, var(--violet), var(--violet-3)); transition: width .45s cubic-bezier(.2, .7, .2, 1); }
.tq fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.tq__q { display: grid; gap: 14px; width: 100%; padding: 0; margin-bottom: 24px; outline: none; }
.tq__q small { color: var(--muted); font-size: 15px; font-weight: 700; }
.tq__s { font: 700 clamp(22px, 2.6vw, 32px)/1.35 var(--font-head); letter-spacing: -.01em; }
.blank { display: inline-block; width: 3.4em; margin: 0 .12em; border-bottom: 4px solid var(--accent); color: transparent; line-height: 1; vertical-align: baseline; }
.tq__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.opt { position: relative; display: flex; align-items: center; gap: 14px; min-height: 66px; padding: 12px 18px; border: 2px solid var(--line); border-radius: 20px; background: #fff; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
.opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.opt__l { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: 11px; background: var(--soft); font: 800 14px var(--font-head); transition: background .15s, color .15s; }
.opt__t { font: 800 19px/1.25 var(--font-body); }
.opt:hover { border-color: var(--lav-2); background: #FBF9FF; }
.opt:has(input:checked) { border-color: var(--violet); background: var(--lav); }
.opt:has(input:checked) .opt__l { background: var(--violet); color: #fff; }
.opt:has(input:focus-visible) { outline: 3px solid var(--violet); outline-offset: 3px; }
.opt:active { transform: scale(.99); }
.tq__act { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; }
.tq__hint { margin: 14px 0 0; text-align: right; font-size: 13.5px; color: var(--muted); }
.tbox--q .tq__act .btn { min-width: 220px; }
/* результат */
.res__top { display: grid; grid-template-columns: 210px 1fr; gap: 36px; align-items: start; padding-bottom: 30px; border-bottom: 2px dashed var(--line); }
.res__badge { display: grid; place-content: center; gap: 2px; aspect-ratio: 1; border-radius: 40px; text-align: center; transform: rotate(-4deg); box-shadow: 0 20px 40px rgba(30, 26, 43, .14); }
.res__badge small { font: 700 12px var(--font-head); letter-spacing: .06em; text-transform: uppercase; opacity: .85; }
.res__badge b { font: 800 76px/1 var(--font-head); letter-spacing: -.04em; }
.res__badge span { font: 700 14.5px var(--font-head); }
.res__badge--A0 { background: #CDEBFA; color: var(--fg); }
.res__badge--A1 { background: #BFEFD0; color: var(--fg); }
.res__badge--A2 { background: var(--accent); color: var(--fg); }
.res__badge--B1 { background: var(--violet); color: #fff; }
.res__badge--B2 { background: var(--fg); color: #fff; }
.res__h { font-size: clamp(23px, 2.4vw, 32px); line-height: 1.15; margin-bottom: 10px; outline: none; }
.res__p { color: #3E3A4F; }
.scale { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; }
.scale__i { display: grid; gap: 2px; padding: 10px 6px; border-radius: 14px; background: var(--soft); text-align: center; }
.scale__i b { font: 800 16px var(--font-head); }
.scale__i small { font-size: 12px; color: var(--muted); font-weight: 700; line-height: 1.2; }
.scale__i.is-past { background: var(--lav); }
.scale__i.is-cur { background: var(--violet); color: #fff; transform: translateY(-4px); box-shadow: 0 10px 20px rgba(111, 66, 232, .3); }
.scale__i.is-cur small { color: #fff; }
.scale__i.is-off { opacity: .45; }
.res__note { margin: 14px 0 0; font-size: 15px; color: var(--muted); font-weight: 700; }
.res__note .linkbtn { margin-left: 6px; }
.res__cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 30px 0; }
.res__col { padding: 22px; border-radius: 24px; }
.res__col--can { background: var(--mint); }
.res__col--next { background: var(--lemon); }
.res__col--bands { background: var(--lilac); }
.res__col h3 { font-size: 16.5px; margin-bottom: 12px; }
.res__col ul { list-style: none; padding: 0; display: grid; gap: 8px; font-size: 15.5px; }
.res__col--can li, .res__col--next li { position: relative; padding-left: 22px; }
.res__col--can li::before, .res__col--next li::before { content: ''; position: absolute; left: 2px; top: .45em; width: 10px; height: 10px; border-radius: 3px; background: var(--fg); transform: rotate(45deg); }
.bands li { display: grid; grid-template-columns: 30px 1fr 54px; gap: 10px; align-items: center; font-weight: 700; }
.bands__l { font: 800 14px var(--font-head); }
.bands__bar { height: 10px; border-radius: 999px; background: #fff; overflow: hidden; }
.bands__bar i { display: block; height: 100%; border-radius: 999px; background: var(--violet-3); }
.bands .is-pass .bands__bar i { background: var(--green); }
.bands__n { font-size: 14px; text-align: right; }
.res__col--bands .small { margin: 12px 0 0; }
.res__errs { margin-bottom: 30px; }
.res__errs h3, .res__rec h3, .res__groups h3 { font-size: 20px; margin-bottom: 16px; }
.errs { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.err { padding: 16px 18px; border: 1px solid var(--line); border-radius: 20px; }
.err__q { margin: 0 0 8px; font-weight: 700; font-size: 17px; }
.err__lv { display: inline-block; margin-right: 8px; padding: 1px 8px; border-radius: 8px; background: var(--soft); font: 800 12px var(--font-head); vertical-align: 2px; }
.fill { padding: 0 6px; border-radius: 6px; background: #E2F6E9; color: var(--ok-ink); }
.err__a { display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; font-size: 15px; }
.err__you { color: var(--muted); }
.err__you s { color: #B42323; font-weight: 800; text-decoration-thickness: 2px; }
.err__ok b { color: var(--ok-ink); }
.err__why { margin: 8px 0 0; font-size: 14.5px; color: var(--muted); }
.res__rec { margin-bottom: 30px; }
.rec { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.reci { display: grid; grid-template-columns: 130px 1fr; gap: 18px; align-items: center; padding: 14px; border-radius: 24px; background: var(--c); color: inherit; text-decoration: none; transition: transform .2s; }
.reci:hover { transform: translateY(-3px); }
.reci img { width: 130px; height: 130px; border-radius: 18px; object-fit: cover; }
.reci > span { display: grid; gap: 4px; }
.reci small { font: 700 11.5px var(--font-head); letter-spacing: .06em; text-transform: uppercase; color: var(--violet); }
.reci b { font: 800 18px/1.2 var(--font-head); }
.reci span span { font-size: 15px; color: #3E3A4F; }
.reci i { font-style: normal; font-weight: 800; color: var(--violet); }
.res__groups .sec__h { margin-bottom: 26px; }
.res__groups .gcard { box-shadow: none; }

/* шкала уровней на странице теста */
.cefr { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.cefr__i { display: flex; flex-direction: column; gap: 4px; padding: 22px; border-radius: 26px; background: #fff; }
.cefr__l { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 12px; border-radius: 17px; font: 800 20px var(--font-head); transform: rotate(-5deg); }
.cefr__i--0 .cefr__l { background: #CDEBFA; } .cefr__i--1 .cefr__l { background: #BFEFD0; } .cefr__i--2 .cefr__l { background: var(--accent); }
.cefr__i--3 .cefr__l { background: var(--violet); color: #fff; } .cefr__i--4 .cefr__l { background: var(--fg); color: #fff; }
.cefr__i b { font: 800 16px/1.2 var(--font-head); }
.cefr__ru { color: var(--muted); font-weight: 700; font-size: 14.5px; }
.cefr__i p { margin: 8px 0 12px; font-size: 15.5px; }
.cefr__i small { margin-top: auto; padding-top: 10px; border-top: 1.5px dashed var(--line-2); font-weight: 800; font-size: 14px; color: var(--violet); }

/* расписание */
.filters { display: grid; grid-template-columns: 1.25fr 1fr; gap: 18px 36px; padding: 24px 26px; border: 1px solid var(--line); border-radius: 28px; background: #fff; box-shadow: var(--shadow); }
.fgrp__k { margin: 0 0 8px; font: 700 12px var(--font-head); letter-spacing: .07em; text-transform: uppercase; color: var(--muted); }
.fgrp__b { display: flex; flex-wrap: wrap; gap: 8px; }
.fchip { min-height: 40px; padding: 0 16px; border: 1.5px solid var(--line-2); border-radius: 999px; background: #fff; font: 700 15px var(--font-body); transition: background .15s, border-color .15s, color .15s; }
.fchip:hover { border-color: var(--fg); }
.fchip.is-on { background: var(--fg); border-color: var(--fg); color: #fff; }
.fbar2 { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 24px 0; }
.fcount { margin: 0; font-weight: 700; }
.fcount b { font-family: var(--font-head); }
.view { display: inline-flex; margin-left: auto; padding: 4px; border-radius: 999px; background: var(--soft); }
.view__b { height: 38px; padding: 0 18px; border: 0; border-radius: 999px; background: none; font-weight: 800; color: var(--muted); }
.view__b.is-on { background: #fff; color: var(--fg); box-shadow: 0 2px 8px rgba(30, 26, 43, .1); }
.glist--all { margin-top: 6px; }
.week { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.wday { display: grid; align-content: start; gap: 8px; padding: 12px; border-radius: 20px; background: var(--soft); }
.wday__h { display: flex; justify-content: space-between; align-items: center; margin: 2px 2px 4px; font-size: 14px; }
.wday__h small { display: grid; place-items: center; min-width: 26px; height: 26px; border-radius: 9px; background: #fff; font-size: 13px; }
.wslot { display: grid; gap: 2px; padding: 10px 12px; border: 0; border-radius: 14px; background: var(--c); text-align: left; font-size: 13.5px; transition: transform .15s, box-shadow .15s; }
.wslot:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(30, 26, 43, .1); }
.wslot b { font: 800 14.5px var(--font-head); }
.wslot span { font-weight: 800; }
.wslot small { color: var(--muted); font-size: 12.5px; line-height: 1.35; }
.wday__none { margin: 4px; font-size: 13.5px; color: var(--muted); }
.empty { display: flex; align-items: center; gap: 28px; padding: 28px 32px; border-radius: 28px; background: var(--lav); }
.empty .stk { position: static; width: 120px; flex: none; }
.empty h3 { font-size: 22px; margin-bottom: 8px; }

/* преподаватели — страница */
.tlong { display: grid; }
.tl { display: grid; grid-template-columns: 360px 1fr; gap: 56px; align-items: start; padding: 44px 0; border-bottom: 2px dashed var(--line); }
.tl:first-child { padding-top: 10px; }
.tl:nth-child(even) { grid-template-columns: 1fr 360px; }
.tl:nth-child(even) .tl__pic { order: 2; }
.tl__pic { position: relative; }
.tl__pic .frame { aspect-ratio: 4 / 5; }
.stk--tl { width: 96px; right: -22px; top: -18px; transform: rotate(9deg); }
.tl__role { display: inline-block; margin: 0 0 10px; padding: 5px 12px; border-radius: 999px; background: var(--c); font: 700 12.5px var(--font-head); }
.tl__n { font-size: clamp(28px, 3vw, 40px); line-height: 1.1; margin-bottom: 10px; }
.tl__body .chips { margin-bottom: 18px; }
.tl__body > p { max-width: 62ch; }
.tl__q { position: relative; margin: 22px 0; padding: 20px 24px 20px 58px; border-radius: 22px; background: var(--c); font: 700 18px/1.45 var(--font-body); max-width: 56ch; }
.tl__q::before { content: '“'; position: absolute; left: 18px; top: 8px; font: 800 50px/1 var(--font-head); color: var(--violet); }
.tl__gk { margin: 0 0 8px; font-weight: 800; }
.tl__gs { display: flex; flex-wrap: wrap; gap: 8px; }
.gpill { display: inline-flex; padding: 6px 12px; border: 1.5px solid var(--line-2); border-radius: 999px; font-size: 14px; font-weight: 700; text-decoration: none; transition: border-color .15s, color .15s; }
.gpill:hover { border-color: var(--violet); color: var(--violet); }

/* о школе */
.about { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.about__pic { position: relative; }
.about__pic .frame { aspect-ratio: 16 / 11; }
.stk--ab1 { width: 124px; left: -26px; bottom: -30px; transform: rotate(-8deg); }
.stk--ab2 { width: 58px; right: -18px; top: -24px; }
.about__txt p { font-size: 17.5px; color: #3E3A4F; }
.rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rule { padding: 28px; border-radius: 26px; background: var(--c); }
.rule__n { display: grid; place-items: center; width: 46px; height: 46px; margin-bottom: 16px; border-radius: 14px; background: #fff; font: 800 19px var(--font-head); color: var(--violet); transform: rotate(-6deg); }
.rule h3 { font-size: 18.5px; line-height: 1.22; margin-bottom: 10px; }
.rule p { margin: 0; font-size: 16px; }
.nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.num { display: grid; gap: 6px; padding: 26px; border-radius: 26px; background: #fff; }
.num b { font: 800 clamp(38px, 4vw, 52px)/1 var(--font-head); color: var(--violet); letter-spacing: -.03em; }
.num span { font-weight: 700; }
.year { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.year__i { position: relative; display: grid; gap: 6px; padding-top: 30px; border-top: 4px solid var(--lav-2); }
.year__i::before { content: ''; position: absolute; top: -13px; left: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 0 5px #fff; }
.year__i:nth-child(even)::before { background: var(--accent); }
.year__i b { font: 800 16px var(--font-head); }
.year__i span { color: #3E3A4F; font-size: 15.5px; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.duo__i { margin: 0; }
.duo__i img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 28px; }
.duo__i figcaption { margin-top: 10px; font-weight: 700; color: var(--muted); }

/* цены */
.ptable-w { border: 1px solid var(--line); border-radius: 26px; background: #fff; overflow: hidden; box-shadow: var(--shadow); }
.ptable { width: 100%; border-collapse: collapse; }
.ptable th, .ptable td { padding: 16px 22px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); }
.ptable tbody tr:last-child > * { border-bottom: 0; }
.ptable thead th { background: var(--soft); font: 700 14px var(--font-head); }
.ptable small { display: block; margin-top: 3px; font: 600 13.5px/1.35 var(--font-body); color: var(--muted); }
.ptable tbody th a { display: inline-flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; text-decoration: none; }
.ptable tbody th a:hover { color: var(--violet); }
.ptable td b { font: 800 19px var(--font-head); letter-spacing: -.01em; }
.ptable td:last-child { background: #FFF7EC; }
.fam { display: grid; grid-template-columns: .85fr 1.15fr; gap: 48px; align-items: start; }
.fam__txt { position: relative; padding-bottom: 150px; }
.fam__txt p { max-width: 46ch; }
.stk--fam { width: 130px; left: 0; bottom: 0; transform: rotate(-7deg); }
.calc { padding: 30px; border-radius: 30px; background: #fff; box-shadow: var(--shadow); }
.calc__h { font-size: 18px; margin-bottom: 16px; }
.calc__m { list-style: none; padding: 0; display: grid; gap: 12px; }
.calc__m li { display: grid; grid-template-columns: 38px 1fr 42px; gap: 12px; align-items: end; }
.calc__n { display: grid; place-items: center; width: 38px; height: 48px; border-radius: 12px; background: var(--lav); font: 800 16px var(--font-head); color: var(--violet); }
.calc__x { width: 42px; height: 48px; border: 1.5px solid var(--line-2); border-radius: 12px; background: #fff; font-size: 22px; color: var(--muted); }
button.calc__x:hover { border-color: var(--red); color: var(--red); }
span.calc__x { border: 0; }
.calc__add { margin-top: 12px; }
.calc__p { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 22px 0; padding: 0; border: 0; }
.calc__p legend { margin-bottom: 8px; font-weight: 800; }
.seg { position: relative; }
.seg input { position: absolute; opacity: 0; }
.seg span { display: grid; gap: 2px; height: 100%; padding: 10px 8px; border: 2px solid var(--line); border-radius: 16px; text-align: center; font-weight: 800; cursor: pointer; transition: border-color .15s, background .15s; }
.seg small { font-size: 12.5px; color: var(--muted); font-weight: 700; }
.seg input:checked + span { border-color: var(--violet); background: var(--lav); }
.seg input:focus-visible + span { outline: 3px solid var(--violet); outline-offset: 2px; }
.calc__out { display: grid; gap: 10px; padding: 20px; border-radius: 22px; background: var(--soft); }
.calc__rows { list-style: none; padding: 0; display: grid; gap: 8px; }
.calc__rows li { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: baseline; }
.calc__off { color: var(--ok-ink); font-weight: 800; font-size: 14px; }
.calc__rows b { font-weight: 800; min-width: 92px; text-align: right; }
.calc__sum, .calc__tot { display: flex; justify-content: space-between; align-items: baseline; margin: 0; padding-top: 10px; border-top: 1.5px dashed var(--line-2); font-weight: 800; }
.calc__sum b { font: 800 26px var(--font-head); }
.calc__tot b { font: 800 19px var(--font-head); }
.calc__save { justify-self: start; margin: 0; padding: 6px 12px; border-radius: 999px; background: #E2F6E9; color: var(--ok-ink); font-weight: 800; font-size: 14.5px; }
.calc__save--no { background: #fff; color: var(--muted); }

/* контакты */
.kont { display: grid; grid-template-columns: 1.05fr .95fr; gap: 28px; align-items: start; }
.kont__list { display: grid; gap: 18px; }
.kb { padding: 26px; border-radius: 26px; background: var(--c); }
.kb__h { display: flex; align-items: center; gap: 12px; }
.kb__h svg { width: 32px; height: 32px; color: var(--violet); flex: none; }
.kb__h h3 { font-size: 20px; }
.kb__l { list-style: none; padding: 0; display: grid; gap: 10px; margin: 18px 0; }
.kb__l li { display: grid; grid-template-columns: 130px 1fr; gap: 12px; }
.kb__l small { font-size: 13px; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.kb__a { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.kont__side { position: sticky; top: 96px; display: grid; gap: 18px; }
.map { margin: 0; }
.map__svg { width: 100%; height: auto; border-radius: 26px; }
.map figcaption { margin-top: 8px; }
.kc { padding: 26px; border-radius: 26px; background: var(--soft); }
.kc .h3 { margin-bottom: 14px; }
.kc__l { list-style: none; padding: 0; display: grid; gap: 12px; }
.kc__l li { display: flex; align-items: center; gap: 12px; }
.kc__l svg { width: 24px; height: 24px; color: var(--violet); flex: none; }
.kc__l a { font-weight: 800; text-decoration: none; }
.kc__l a:hover { color: var(--violet); }

/* 404 и подвал */
.lost { padding: 40px 0 80px; position: relative; }
.lost__code { color: var(--violet); opacity: .18; }
.stk--404 { position: relative; display: block; width: 150px; margin-bottom: -40px; }
.foot { position: relative; margin-top: 30px; padding: 70px 0 28px; background: var(--fg); color: #D9D5E6; }
.foot::before { content: ''; position: absolute; left: 0; right: 0; bottom: calc(100% - 1px); height: 15px; background: var(--fg); -webkit-mask: var(--zig-up) 0 0 / 32px 15px repeat-x; mask: var(--zig-up) 0 0 / 32px 15px repeat-x; }
.foot__in { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1.15fr; gap: 40px; }
.foot__logo { text-decoration: none; display: inline-block; margin-bottom: 16px; }
.foot .logo { color: #fff; }
.foot .logo__w small { color: #B9B4C9; }
.foot__brand p { max-width: 36ch; font-size: 15.5px; }
.foot__brand .btn { margin-top: 8px; }
.foot__h { margin: 4px 0 14px; font: 700 12px var(--font-head); letter-spacing: .08em; text-transform: uppercase; color: #fff; }
.foot ul { list-style: none; padding: 0; display: grid; gap: 9px; font-size: 15.5px; }
.foot ul a { color: #D9D5E6; text-decoration: none; }
.foot ul a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.foot__legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-top: 46px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 14px; color: #B9B4C9; }
.foot :focus-visible { outline-color: var(--accent); }

.cr-list a { white-space: nowrap; }

/* появление с задержкой */
.rv [data-reveal] { transition-delay: var(--d, 0ms); }

/* ——— адаптив ——— */
@media (max-width: 1180px) {
  .top__tel { display: none; }
  .search { max-width: none; }
  .facts { grid-template-columns: repeat(3, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); row-gap: 30px; }
  .steps::before { display: none; }
}
@media (max-width: 1080px) {
  .hero__in, .chero__in { gap: 40px; }
  .ages, .tgrid { grid-template-columns: repeat(2, 1fr); }
  .how { grid-template-columns: repeat(2, 1fr); }
  .who, .mods { grid-template-columns: repeat(2, 1fr); }
  .crow { grid-template-columns: 200px 1fr; }
  .crow__side { grid-column: 1 / -1; grid-template-columns: 1fr auto auto; align-items: center; }
  .week { grid-template-columns: repeat(3, 1fr); }
  .others { grid-template-columns: repeat(2, 1fr); }
  .year { grid-template-columns: repeat(3, 1fr); row-gap: 34px; }
  .errs { grid-template-columns: 1fr; }
  .cefr { grid-template-columns: repeat(3, 1fr); }
  .foot__in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  :root { --pad: 24px; }
  .search { display: none; }
  .top__menu { order: 3; }
  .top__cta { margin-left: auto; }
  .hero__in, .chero__in, .about, .learn, .faqwrap, .fam, .kont, .teaser, .leadbox, .cta { grid-template-columns: 1fr; }
  .hero { padding-top: 34px; }
  .hero__pic { width: min(340px, 74%); margin: 10px auto 0; }
  .chero__pic { width: min(320px, 70%); }
  .phead__in { grid-template-columns: 1fr; }
  .phead__art { display: none; }
  .sits { grid-template-columns: 1fr 1fr; }
  .sit--wide { grid-column: span 2; }
  .brs, .rules, .prices, .glist--3, .res__cols { grid-template-columns: 1fr 1fr; }
  .twho { grid-template-columns: 1fr; }
  .twho__b { flex-direction: row; align-items: center; padding: 0 16px 0 0; }
  .twho__b img { width: 150px; aspect-ratio: 1; flex: none; -webkit-mask: none; mask: none; }
  .twho__b span { padding: 14px 0; }
  .twho__go { display: none; }
  .tl, .tl:nth-child(even) { grid-template-columns: 1fr; gap: 30px; }
  .tl:nth-child(even) .tl__pic { order: 0; }
  .tl__pic { width: min(320px, 80%); }
  .kont__side { position: static; }
  .cta__pic { min-height: 280px; }
  .cta__img { width: 46%; right: 10%; }
  .stk--cta-m { left: 8%; }
  .teaser { padding: 40px; }
  .teaser__q { transform: none; }
  .teaser__k { line-height: 1.3; }
  .leadbox__txt { padding-bottom: 0; }
  .leadbox .stk--mascot { display: none; }
  .fam__txt { padding-bottom: 0; }
  .fam .stk--fam { display: none; }
  .nums { grid-template-columns: 1fr 1fr; }
  .filters { grid-template-columns: 1fr; }
  .res__top { grid-template-columns: 170px 1fr; gap: 26px; }
  .res__badge b { font-size: 60px; }
}
@media (max-width: 760px) {
  :root { --pad: 16px; --step-0: 16.5px; --step-1: 18px; }
  .sec { padding: 56px 0; }
  .sec--tight { padding: 40px 0; }
  .sec--top { padding-top: 30px; }
  .sec--flush { padding-top: 0; }
  .top__in { min-height: 64px; gap: 10px; }
  .logo__m { width: 38px; height: 38px; }
  .logo__w { font-size: 19px; }
  .logo__w small { font-size: 8.5px; }
  .top__menu { height: 42px; padding: 0 16px 0 12px; font-size: 12.5px; }
  .top__cta { height: 42px; padding: 0 14px; }
  .top__cta-l { display: none; }
  .top__cta-s { display: inline; }
  .btn--lg { min-height: 54px; padding: 10px 24px; font-size: 14.5px; }
  .btns .btn { flex: 1 1 100%; }
  .flag { font-size: 12.5px; min-height: 36px; padding: 5px 30px 5px 22px; }
  .hero { padding: 26px 0 60px; }
  .hero__t { font-size: clamp(27px, 7.4vw, 34px); }
  .hero__lead { font-size: 17px; }
  .hero__pts { flex-direction: column; gap: 8px; }
  .stk--flag { width: 84px; left: -30px; }
  .stk--hi { width: 64px; left: -12px; top: calc(31% + 44px); }
  .stk--salem { width: 88px; right: -26px; }
  .stk--b1 { width: 46px; right: -16px; }
  .stk--b3 { right: -22px; }
  .stk--b5 { display: none; }
  .h2 { margin-bottom: 24px; }
  .sec__h { flex-direction: column; align-items: flex-start; gap: 10px; }
  .sec__lead { font-size: 16.5px; margin-top: -8px; }
  .sits { grid-template-columns: 1fr; gap: 14px; }
  .sit, .sit--wide { grid-column: auto; min-height: 0; padding: 22px 22px 0; }
  .sit--wide .sit__t, .sit__t { max-width: none; font-size: 17px; }
  .sit__art, .sit--wide .sit__art { position: relative; inset: auto; min-height: 190px; margin: 10px -22px 0; }
  .sit__img { width: 60%; height: 92%; right: 8%; }
  .sit__plate { width: 70%; }
  .stk--s1 { right: 64%; bottom: 40%; }
  .stk--s2 { right: 70%; bottom: 18%; }
  .stk--s4 { right: 64%; top: 34%; width: 84px; }
  .chat { left: 14%; right: 12%; top: 6px; }
  .chat__b--a { transform: rotate(-4deg) translateX(-18%); }
  .chat__b--b { transform: rotate(3deg) translateX(10%); }
  .wcard { width: 124px; height: 88px; }
  .wcard--3 { width: 92px; }
  .ages { display: flex; gap: 14px; margin: 0 calc(-1 * var(--pad)); padding: 4px var(--pad) 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--pad); scrollbar-width: none; }
  .ages::-webkit-scrollbar { display: none; }
  .acard { flex: 0 0 80%; scroll-snap-align: start; }
  .acard:hover { transform: none; }
  .ielts { grid-template-columns: 1fr; }
  .ielts__txt { padding: 24px 22px; }
  .ielts__pic { min-height: 190px; clip-path: polygon(0 12%, 100% 0, 100% 100%, 0 100%); }
  .teaser { padding: 30px 20px 26px; border-radius: 30px; gap: 30px; }
  .teaser__q { padding: 22px 18px; transform: none; }
  .teaser__opts button { font-size: 17px; }
  .how, .how--3 { grid-template-columns: 1fr; gap: 14px; }
  .how__i { padding: 22px; }
  .cmp { padding: 4px 16px; border-radius: 24px; }
  .cmp__row { grid-template-columns: 1fr 1fr; gap: 8px; padding: 14px 0; }
  .cmp__row--head { display: none; }
  .cmp__row:nth-child(2) { border-top: 0; }
  .cmp__k { grid-column: 1 / -1; padding-top: 0; font-size: 15.5px; }
  .cmp__c { padding: 10px 12px; font-size: 14.5px; }
  .cmp__c::before { content: attr(data-col); display: block; margin-bottom: 3px; font: 700 10.5px var(--font-head); letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
  .yn { gap: 8px; }
  .glist, .glist--3 { grid-template-columns: 1fr; }
  .glist--scroll { display: flex; gap: 14px; margin: 0 calc(-1 * var(--pad)); padding: 16px var(--pad) 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: var(--pad); scrollbar-width: none; }
  .glist--scroll::-webkit-scrollbar { display: none; }
  .glist--scroll .gcard { flex: 0 0 82%; scroll-snap-align: start; }
  .cefr { grid-template-columns: 1fr; gap: 10px; }
  .cefr__i { display: grid; grid-template-columns: 58px 1fr; column-gap: 16px; padding: 18px; }
  .cefr__l { grid-row: 1 / 3; margin: 0; }
  .cefr__i p, .cefr__i small { grid-column: 1 / -1; }
  .cefr__i p { margin: 10px 0 8px; }
  .tmini__i { padding: 12px 16px 12px 12px; gap: 16px; }
  .tmini__i img { width: 92px; height: 112px; }
  .tmini__i b { font-size: 16px; }
  .tmini__i q { font-size: 15px; }
  .tnote { justify-content: flex-start; text-align: left; }
  .tgrid { gap: 18px 14px; }
  .tcard__n { font-size: 15.5px; }
  .tcard__r { font-size: 14px; }
  .tcard .chip { font-size: 12.5px; padding: 2px 9px; min-height: 26px; }
  .brs, .rules, .prices, .res__cols, .nums { grid-template-columns: 1fr; }
  .cta { border-radius: 30px; }
  .cta__txt { padding: 32px 22px 10px; }
  .cta p { font-size: 16.5px; }
  .cta__pic { min-height: 250px; }
  .cta__img { width: 56%; right: 8%; }
  .stk--cta-m { width: 96px; left: 4%; }
  .faqwrap { gap: 10px; }
  .faq__side { position: static; }
  .faq__note { margin-bottom: 8px; }
  .faq summary { font-size: 17px; padding: 18px 0; }
  .leadbox { padding: 30px 18px 18px; border-radius: 30px; gap: 26px; }
  .leadbox__form { padding: 20px 16px; border-radius: 22px; }
  .lead__extra { grid-template-columns: 1fr; }
  .phead { padding-bottom: 48px; }
  .phead__t { font-size: clamp(28px, 8vw, 36px); }
  .phead__lead { font-size: 17px; }
  .crumbs { padding: 18px 0 14px; }
  .chero { padding-bottom: 50px; }
  .chero__t { font-size: clamp(27px, 7.6vw, 34px); }
  .chero__pic { width: 72%; margin-top: 6px; }
  .stk--c1 { width: 80px; left: -24px; }
  .stk--c2 { right: -12px; }
  .facts { grid-template-columns: 1fr 1fr; gap: 8px; }
  .facts__i { padding: 10px 12px; gap: 10px; border-radius: 16px; }
  .facts__i:last-child { grid-column: 1 / -1; }
  .facts__i svg { width: 34px; height: 34px; padding: 7px; }
  .facts__i b { font-size: 14.5px; }
  .who, .mods { grid-template-columns: 1fr; gap: 12px; }
  .learn { gap: 18px; }
  .learn__list { grid-template-columns: 1fr; }
  .stk--learn { display: none; }
  .steps { grid-template-columns: 1fr; gap: 0; }
  .steps__i { display: grid; grid-template-columns: 52px 1fr; column-gap: 16px; row-gap: 4px; padding-bottom: 24px; }
  .steps__i::before { content: ''; position: absolute; left: 25px; top: 52px; bottom: 0; border-left: 3px dashed var(--lav-2); }
  .steps__i:last-child::before { display: none; }
  .steps__n { grid-row: 1 / 4; }
  .steps__m { margin-top: 0; justify-self: start; }
  .steps__i h3, .steps__i p, .steps__m { grid-column: 2; }
  .tmini { grid-template-columns: 1fr; }
  .others { grid-template-columns: 1fr; gap: 10px; }
  .crow { grid-template-columns: 1fr; gap: 18px; padding: 16px; border-radius: 26px; }
  .crow__win { aspect-ratio: 16 / 10; transform: none !important; }
  .crow__side { grid-template-columns: 1fr; }
  .phead--test { padding-bottom: 86px; }
  .sec--test { margin-top: -72px; }
  .tbox { padding: 22px 16px; border-radius: 26px; }
  .twho__b img { width: 104px; }
  .twho__b b { font-size: 16px; }
  .twho__b small { font-size: 14px; }
  .tkids { flex-wrap: wrap; }
  .tkids img { width: 58px; height: 58px; }
  .tkids p { flex: 1 1 calc(100% - 80px); font-size: 14.5px; }
  .tkids .btn { flex: 1 1 100%; }
  .tsaved { flex-wrap: wrap; }
  .tsaved p { flex: 1 1 calc(100% - 64px); font-size: 15px; }
  .tsaved .btn { flex: 1 1 100%; }
  .tq__top { gap: 12px; }
  .tq__who { display: none; }
  .tq__n { margin-left: auto; }
  .tq__opts { grid-template-columns: 1fr; gap: 10px; }
  .opt { min-height: 58px; padding: 10px 14px; }
  .opt__t { font-size: 18px; }
  .tq__act { flex-direction: column-reverse; align-items: stretch; }
  .tq__act .linkbtn { align-self: center; padding: 6px; }
  .tbox--q .tq__act .btn { min-width: 0; }
  .tq__hint { display: none; }
  .res__top { grid-template-columns: 1fr; gap: 22px; }
  .res__badge { width: 170px; justify-self: center; }
  .scale { gap: 4px; }
  .scale__i { padding: 8px 2px; }
  .scale__i small { font-size: 10px; }
  .reci { grid-template-columns: 96px 1fr; gap: 14px; }
  .reci img { width: 96px; height: 96px; }
  .rec { grid-template-columns: 1fr; }
  .filters { padding: 18px 16px; border-radius: 22px; gap: 14px; }
  .fchip { min-height: 38px; padding: 0 11px; font-size: 14.5px; }
  .fgrp__b { gap: 6px; }
  .glist--all .gcard { display: grid; grid-template-columns: 1fr auto; gap: 10px 12px; padding: 16px; }
  .glist--all .gcard > :not(.gcard__seats):not(.gcard__btn) { grid-column: 1 / -1; }
  .glist--all .gcard__seats { align-self: center; }
  .glist--all .gcard__st { justify-self: start; }
  .glist--all .gcard__btn { width: auto; margin: 0; align-self: center; }
  .glist--all .gcard__info { gap: 4px; font-size: 15px; }
  .glist--all .gcard__lvl { width: 48px; height: 48px; font-size: 16px; }
  .view { margin-left: 0; width: 100%; }
  .view__b { flex: 1; }
  .week { grid-template-columns: 1fr; }
  .empty { flex-direction: column; text-align: center; padding: 24px 18px; }
  .tl { padding: 32px 0; }
  .tl__pic { width: 78%; margin-left: 4%; }
  .stk--tl { width: 76px; right: -30px; }
  .tl__q { padding: 18px 18px 18px 48px; font-size: 16.5px; }
  .tl__q::before { left: 12px; font-size: 40px; }
  .about { gap: 40px; }
  .about__pic { margin: 0 10px; }
  .stk--ab1 { width: 96px; left: -14px; }
  .year { grid-template-columns: 1fr; gap: 0; border-left: 4px solid var(--lav-2); margin-left: 9px; }
  .year__i { padding: 0 0 22px 26px; border-top: 0; }
  .year__i::before { top: 2px; left: -15px; }
  .duo { grid-template-columns: 1fr; }
  .ptable-w { border-radius: 22px; }
  .ptable thead { display: none; }
  .ptable, .ptable tbody, .ptable tr, .ptable th, .ptable td { display: block; }
  .ptable tr { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--line); }
  .ptable tbody tr:last-child { border-bottom: 0; }
  .ptable th, .ptable td { border: 0; padding: 12px 12px; }
  .ptable tbody th { grid-column: 1 / -1; padding: 16px 14px 4px; }
  .ptable td { padding-top: 6px; }
  .ptable td::before { content: attr(data-p); display: block; font: 700 10.5px var(--font-head); letter-spacing: .03em; text-transform: uppercase; color: var(--muted); margin-bottom: 3px; }
  .ptable td b { font-size: 15.5px; }
  .ptable td small { font-size: 12px; }
  .ptable td:last-child { background: none; }
  .calc { padding: 20px 16px; border-radius: 24px; }
  .calc__m li { grid-template-columns: 32px 1fr 42px; gap: 8px; }
  .calc__n { width: 32px; }
  .calc__p { gap: 6px; }
  .seg span { padding: 8px 4px; font-size: 14.5px; }
  .seg small { font-size: 11.5px; }
  .calc__rows li { grid-template-columns: 1fr auto; }
  .calc__off { grid-row: 2; grid-column: 1; margin-top: -6px; }
  .kb { padding: 22px 18px; }
  .kb__l li { grid-template-columns: 1fr; gap: 2px; }
  .lvbar { flex-wrap: wrap; gap: 12px; padding: 14px; }
  .lvbar__t { flex: 1 1 calc(100% - 120px); }
  .lvbar .btn { flex: 1 1 auto; }
  .lvbar__x { order: -1; position: absolute; }
  .lvslot { position: relative; }
  .lvbar { position: relative; padding-right: 48px; }
  .lvbar__x { right: 8px; top: 8px; }
  .foot { padding-top: 54px; }
  .foot__in { grid-template-columns: 1fr; gap: 30px; }
  .foot__legal { margin-top: 32px; }
}
@media (max-width: 380px) {
  .logo__w small { display: none; }
  .tgrid { grid-template-columns: 1fr 1fr; }
}
