/* ==========================================================================
   EP-STUDY — фирменный стиль с листовки.
   Кремовая бумага · высококонтрастный сериф · три цвета курсов · синяя сова.
   ========================================================================== */

:root{
  /* бумага */
  --paper:#F6F1E7;
  --paper-2:#FCFAF4;
  --paper-3:#EEE7D7;
  --rule:#DBD1BF;
  --rule-2:#C6B9A2;
  --field-line:#8E8574;   /* границы полей и кнопок: нужен контраст 3:1 */
  /* текст */
  --ink:#1B1813;
  --ink-2:#574F43;
  --ink-3:#6F675C;
  --chalk:#F2EDE3;
  --chalk-2:#B9B0A0;
  /* бренд */
  --brand:#1E22B4;          /* синяя сова */
  --brand-lt:#8A8EEA;       /* она же на тёмном фоне */
  --epm:#8B1E2D;            /* бордовый */
  --epd:#16498F;            /* синий */
  --epe:#1C5134;            /* зелёный */
  --dark:#211C16;           /* тёмная полоса */
  --dark-2:#2C2620;
  /* акцент страницы — переопределяется на страницах курсов */
  --c:#8B1E2D;
  --c-dark:#6F1724;
  --max:1240px;
}
body.epm{--c:var(--epm); --c-dark:#6F1724}
body.epd{--c:var(--epd); --c-dark:#0F3869}
body.epe{--c:var(--epe); --c-dark:#133B26}

*{box-sizing:border-box}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto} *{transition:none!important}}

body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Golos Text","Helvetica Neue",Arial,sans-serif;
  font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased;
}
/* зерно бумаги */
body::before{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.55;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");
}
body > *{position:relative; z-index:2}

h1,h2,h3,h4,.serif{font-family:"Playfair Display",Georgia,"Times New Roman",serif;
  font-weight:700; margin:0; text-wrap:balance; color:var(--ink)}
h1{font-size:clamp(38px,5.6vw,68px); line-height:1.03; letter-spacing:-.02em}
h2{font-size:clamp(28px,3.6vw,44px); line-height:1.08; letter-spacing:-.015em}
h3{font-size:clamp(21px,2.2vw,27px); line-height:1.2}
h4{font-size:20px; line-height:1.28}
p{margin:0}
a{color:inherit}
img{max-width:100%; display:block}

.lede{font-size:clamp(17px,1.8vw,20px); line-height:1.5; color:var(--ink-2); max-width:58ch}
.body-t{font-size:16.5px; color:var(--ink-2); max-width:66ch}
.note{font-size:13.5px; color:var(--ink-3); line-height:1.5}

/* надзаголовок как на листовке: разрядка + линейка */
.eyebrow{display:flex; align-items:center; gap:16px; font-family:"Playfair Display",Georgia,serif;
  font-size:13px; font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--c)}
.eyebrow::after{content:""; flex:1; height:1px; background:var(--rule-2)}
.band.dark .eyebrow{color:var(--chalk-2)}
.band.dark .eyebrow::after{background:#453C32}

.wrap{max-width:var(--max); margin:0 auto; padding:0 clamp(18px,4vw,40px)}
.band{padding:clamp(52px,7vw,96px) 0}
.band.alt{background:var(--paper-3)}
.band.dark{background:var(--dark); color:var(--chalk)}
.band.dark h1,.band.dark h2,.band.dark h3,.band.dark h4{color:var(--chalk)}
.band.dark .lede,.band.dark .body-t{color:var(--chalk-2)}
.band.dark .note{color:#9A9183}

.stack{display:flex; flex-direction:column}
.g8{gap:8px} .g14{gap:14px} .g20{gap:20px} .g28{gap:28px}
.g40{gap:clamp(26px,3.6vw,42px)} .g56{gap:clamp(34px,4.6vw,58px)}

/* ---------- шапка ---------- */
.nav{position:sticky; top:0; z-index:60; background:rgba(246,241,231,.94);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--rule)}
.nav-in{max-width:var(--max); margin:0 auto; padding:11px clamp(18px,4vw,40px);
  display:flex; align-items:center; gap:14px; flex-wrap:wrap}
.logo{display:flex; align-items:center; gap:11px; text-decoration:none; flex:none}
.logo img{height:32px; width:auto; display:block}
.logo .wm{font-family:"Playfair Display",Georgia,serif; font-weight:700; font-size:22px;
  letter-spacing:.01em; color:var(--brand); line-height:1}
.nav-links{display:flex; gap:2px; flex-wrap:wrap; margin-left:auto; align-items:center}
.nav-links a{text-decoration:none; font-size:15px; color:var(--ink-2); padding:8px 12px;
  border-radius:3px; transition:color .15s, background .15s; white-space:nowrap}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--ink); background:var(--paper-3); outline:none}
.nav-links a.m-epm{color:var(--epm); font-weight:500}
.nav-links a.m-epd{color:var(--epd); font-weight:500}
.nav-links a.m-epe{color:var(--epe); font-weight:500}
.nav-links a.cta{background:var(--c); color:#FFF8EC; font-weight:500; padding:9px 18px}
.nav-links a.cta:hover{background:var(--c-dark); color:#fff}

/* ---------- кнопки ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px; text-decoration:none;
  font-family:"Golos Text",sans-serif; font-size:16px; font-weight:500; padding:14px 28px;
  border-radius:3px; border:1.5px solid transparent; cursor:pointer;
  transition:background .16s, border-color .16s, color .16s}
.btn-p{background:var(--c); color:#FFF8EC}
.btn-p:hover{background:var(--c-dark)}
.btn-s{background:transparent; color:var(--ink); border-color:var(--field-line)}
.btn-s:hover{border-color:var(--ink-3); background:var(--paper-3)}
.band.dark .btn-s{color:var(--chalk); border-color:#4A4036}
.band.dark .btn-s:hover{border-color:var(--chalk-2); background:var(--dark-2)}
.btn:focus-visible{outline:2px solid var(--c); outline-offset:3px}
.btns{display:flex; gap:12px; flex-wrap:wrap}

/* ---------- первый экран ---------- */
.hero{padding:clamp(30px,4.2vw,52px) 0 clamp(26px,3vw,36px)}
.hero-row{display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);
  gap:clamp(22px,4vw,56px); align-items:end}
@media (max-width:880px){.hero-row{grid-template-columns:1fr; align-items:start}}

/* крупный логотип на первом экране */
.brandmark{display:flex; align-items:center; justify-content:center;
  gap:clamp(14px,2.2vw,30px); flex-wrap:nowrap}
.brandmark img{height:clamp(62px,9.4vw,124px); width:auto; flex:none}
.brandmark .bw{font-family:"Playfair Display",Georgia,serif; font-weight:700;
  font-size:clamp(42px,9.6vw,124px); line-height:.88; letter-spacing:-.025em;
  color:var(--brand); white-space:nowrap}
.brandrule{height:2px; background:var(--ink); border:0; margin:0; width:100%}
.hero-slogan{font-size:clamp(25px,3.6vw,46px); line-height:1.08; text-align:center}
.hero h1.hero-slogan em{font-style:italic; color:var(--epm)}
@media (max-width:560px){
  .brandmark{gap:12px}
  .brandmark .bw{font-size:clamp(34px,11vw,56px)}
  .brandmark img{height:clamp(48px,13vw,70px)}
}
.hero-facts{display:flex; flex-direction:column; border-top:2px solid var(--ink)}
.hero-facts div{display:flex; align-items:baseline; gap:13px; padding:11px 0; border-bottom:1px solid var(--rule)}
.hero-facts b{font-family:"Playfair Display",Georgia,serif; font-size:21px; font-weight:700;
  min-width:92px; flex:none}
.hero-facts span{font-size:14px; color:var(--ink-2); line-height:1.4}

/* ---------- крупные блоки курсов ---------- */
:root{--cgap:clamp(16px,2vw,24px)}
.courses{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--cgap)}
@media (max-width:980px){.courses{grid-template-columns:1fr}}
.course{--c:var(--epm);
  display:flex; flex-direction:column; background:var(--paper-2);
  border:1.5px solid var(--rule); border-top:5px solid var(--c); border-radius:4px;
  text-decoration:none; color:inherit; overflow:hidden;
  transition:transform .16s, box-shadow .16s, border-color .16s}
.course.c-epm{--c:var(--epm)} .course.c-epd{--c:var(--epd)} .course.c-epe{--c:var(--epe)}
.course:hover,.course:focus-visible{transform:translateY(-4px); outline:none;
  box-shadow:0 18px 40px -26px rgba(27,24,19,.55); border-color:var(--rule-2)}
.course-shot{aspect-ratio:1.114; background:var(--paper-3); position:relative; overflow:hidden;
  border-bottom:1px solid var(--rule)}
.course-shot img{width:100%; height:100%; object-fit:cover}
.shot-soon{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:7px; text-align:center; padding:18px; color:var(--ink-3); font-size:13.5px}
.shot-soon::before{content:""; position:absolute; inset:0; opacity:.6;
  background:repeating-linear-gradient(45deg, transparent 0 8px, var(--rule) 8px 9px)}
.shot-soon span{position:relative}
.shot-soon .big{font-family:"Playfair Display",Georgia,serif; font-size:40px; font-weight:700;
  color:var(--c); opacity:.5; line-height:1}
.course-body{padding:clamp(20px,2.4vw,28px); display:flex; flex-direction:column; gap:14px; flex:1}
.course-code{font-family:"Playfair Display",Georgia,serif; font-size:clamp(30px,3.4vw,40px);
  font-weight:700; color:var(--c); line-height:1; letter-spacing:-.01em}
.course-sub{font-family:"Playfair Display",Georgia,serif; font-size:19px; font-weight:400;
  font-style:italic; color:var(--ink-2); margin-top:-6px}
.course-price{font-family:"Playfair Display",Georgia,serif; font-size:23px; font-weight:700;
  color:var(--c); padding-top:11px; border-top:1px solid var(--rule); margin-top:auto}
.course-price small{font-family:"Golos Text",sans-serif; font-size:13.5px; font-weight:400;
  color:var(--ink-3); display:block; letter-spacing:.02em; min-height:1.4em}
.course ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px;
  font-size:15.5px; color:var(--ink-2)}
.course ul li{position:relative; padding-left:19px}
.course ul li::before{content:""; position:absolute; left:0; top:9px;
  width:5px; height:5px; background:var(--c); border-radius:50%}
.course-go{padding-top:6px; font-weight:500; color:var(--c); font-size:15.5px;
  display:flex; align-items:center; gap:8px}

/* гарантия — главный довод в Premium */
.course ul li.guarantee,.plan ul li.guarantee{font-weight:600; color:var(--c);
  background:rgba(139,30,45,.07); border-left:3px solid var(--c);
  padding:10px 13px; border-radius:0 3px 3px 0; margin-top:4px}
.course ul li.guarantee::before,.plan ul li.guarantee::before{content:none}
.course ul li.noguarantee,.plan ul li.noguarantee{color:var(--ink-3)}

/* ---------- второй ряд: онлайн-курсы ---------- */
/* те же вертикальные карточки, что и сверху, но их две — ставим по центру */
.courses-wide{display:flex; flex-wrap:wrap; gap:clamp(26px,4vw,58px); justify-content:center}
.courses-wide > .course{flex:0 1 clamp(300px, 37%, 440px)}
@media (max-width:980px){.courses-wide{gap:var(--cgap)} .courses-wide > .course{flex:1 1 100%}}

/* вместо картинки — название тарифа, цена и даты */
.shot-tariff{position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:13px; text-align:center; padding:24px}
.shot-tariff::before{content:""; position:absolute; inset:0; opacity:.5;
  background:repeating-linear-gradient(45deg, transparent 0 8px, var(--rule) 8px 9px)}
.shot-tariff > *{position:relative}
.t-sub{font-size:12px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; color:var(--ink-3)}
.t-name{font-family:"Playfair Display",Georgia,serif; font-size:clamp(36px,4.2vw,50px);
  font-weight:700; color:var(--c); line-height:1}
.t-dates{font-size:13.5px; font-weight:500; color:var(--c); background:var(--paper-2);
  border:1.5px solid var(--c); padding:6px 13px; border-radius:3px}

/* ---------- что входит ---------- */
.feats{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr)); gap:clamp(20px,2.6vw,34px)}
.feat{display:flex; flex-direction:column; gap:9px; padding-top:16px; border-top:2px solid var(--c)}
.band.dark .feat{border-top-color:var(--chalk-2)}
.feat h4{font-size:19px}
.feat p{font-size:15.5px; color:var(--ink-2); line-height:1.5}
.band.dark .feat p{color:var(--chalk-2)}

/* ---------- видео ---------- */
.vid{border:1.5px solid var(--rule); border-radius:4px; overflow:hidden; background:var(--paper-2)}
.band.dark .vid{border-color:#453C32; background:var(--dark-2)}
.vid .ratio{position:relative; aspect-ratio:16/9; width:100%}
.vid iframe,.vid video{position:absolute; inset:0; width:100%; height:100%; border:0}
.vid video{object-fit:contain; background:#000}
.vid-soon{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center;
  justify-content:center; gap:10px; text-align:center; padding:26px; color:var(--ink-3)}
.vid-soon::before{content:""; position:absolute; inset:0; opacity:.55;
  background:repeating-linear-gradient(45deg, transparent 0 9px, var(--rule) 9px 10px)}
.band.dark .vid-soon{color:var(--chalk-2)}
.band.dark .vid-soon::before{background:repeating-linear-gradient(45deg, transparent 0 9px, #3A322A 9px 10px)}
.vid-soon b{font-family:"Playfair Display",Georgia,serif; font-size:22px; font-weight:700;
  color:var(--ink); position:relative}
.band.dark .vid-soon b{color:var(--chalk)}
.vid-soon span{position:relative; max-width:36ch; font-size:14.5px; line-height:1.45}
.vid-cap{padding:13px 18px; font-size:14.5px; color:var(--ink-2); border-top:1px solid var(--rule)}
.band.dark .vid-cap{color:var(--chalk-2); border-top-color:#453C32}
.vids{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); gap:clamp(16px,2.2vw,26px)}

/* ---------- расписание / тарифы ---------- */
.plans{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(272px,100%),1fr)); gap:clamp(16px,2vw,22px)}
.plan{background:var(--paper-2); border:1.5px solid var(--rule); border-radius:4px;
  padding:clamp(20px,2.4vw,28px); display:flex; flex-direction:column; gap:14px; position:relative}
.plan.hl{border-color:var(--c); border-width:2px}
.plan.off{opacity:.68}
.plan-head{display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding-bottom:11px; border-bottom:1px solid var(--rule)}
.plan-name{font-family:"Playfair Display",Georgia,serif; font-size:15px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase; color:var(--ink-2)}
.plan-price{font-family:"Playfair Display",Georgia,serif; font-size:27px; font-weight:700; color:var(--c)}
.plan-flag{position:absolute; top:-11px; left:18px; font-size:10.5px; font-weight:600;
  letter-spacing:.11em; text-transform:uppercase; padding:4px 10px; border-radius:3px;
  background:var(--c); color:#FFF8EC}
.plan-flag.wait{background:var(--dark); color:var(--chalk)}
.plan ul{margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px;
  font-size:15.5px; color:var(--ink-2)}
.plan ul li{position:relative; padding-left:21px}
.plan ul li::before{content:"—"; position:absolute; left:0; top:0; color:var(--c); font-weight:600}
.plan ul li b{color:var(--ink); font-weight:600}
.plan .foot{margin-top:auto; padding-top:6px; display:flex; flex-direction:column; gap:9px}

/* ---------- отзывы: карточки со звёздами ---------- */
.rev-top{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap}
.rev-score{display:flex; align-items:center; gap:14px; flex:none;
  background:var(--paper-2); border:1.5px solid var(--rule); border-radius:4px; padding:14px 20px}
.rev-score b{font-family:"Playfair Display",Georgia,serif; font-size:40px; font-weight:700;
  line-height:.9; color:var(--c)}
.rev-score .meta{display:flex; flex-direction:column; gap:3px}
.rev-score .meta span{font-size:13.5px; color:var(--ink-3)}
.revs{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(282px,100%),1fr)); gap:clamp(16px,2vw,22px)}
.rev{background:var(--paper-2); border:1.5px solid var(--rule); border-radius:4px;
  padding:clamp(20px,2.3vw,26px); display:flex; flex-direction:column; gap:13px}
.rev .tx{font-size:15.5px; color:var(--ink-2); line-height:1.55}
.rev .sig{margin-top:auto; padding-top:13px; border-top:1px solid var(--rule);
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap}
.rev .nm{font-family:"Playfair Display",Georgia,serif; font-size:18px; font-weight:700}
.rev .dt{font-size:13px; color:var(--ink-3)}
.rev .crs{font-size:11px; font-weight:600; letter-spacing:.1em; padding:3px 8px; border-radius:3px;
  color:#FFF8EC; background:var(--ink-3)}
.rev .crs.t-epm{background:var(--epm)} .rev .crs.t-epd{background:var(--epd)} .rev .crs.t-epe{background:var(--epe)}
.stars{display:flex; gap:2px; font-size:16px; color:#A47E25; letter-spacing:.5px; flex:none}
.stars .off{color:var(--field-line)}

/* ---------- формы ---------- */
.two{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.86fr); gap:clamp(24px,3.4vw,46px);
  align-items:start}
@media (max-width:900px){.two{grid-template-columns:1fr}}
.form{background:var(--paper-2); border:1.5px solid var(--rule); border-radius:4px;
  padding:clamp(22px,2.8vw,32px); display:flex; flex-direction:column; gap:18px}
.band.dark .form{background:var(--dark-2); border-color:#453C32}
.field{display:flex; flex-direction:column; gap:7px}
.field label{font-size:13px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--ink-2)}
.band.dark .field label{color:var(--chalk-2)}
.field .hint{font-size:13.5px; color:var(--ink-3)}
input[type=text],textarea{font-family:"Golos Text",sans-serif; font-size:16.5px; color:var(--ink);
  background:var(--paper); border:1.5px solid var(--field-line); border-radius:3px; padding:12px 14px; width:100%}
.band.dark input[type=text],.band.dark textarea{background:var(--dark); border-color:#453C32; color:var(--chalk)}
input[type=text]::placeholder,textarea::placeholder{color:var(--ink-3)}
input[type=text]:focus,textarea:focus{outline:2px solid var(--c); outline-offset:1px; border-color:transparent}
textarea{min-height:122px; resize:vertical; line-height:1.55}
.rate{display:flex; gap:5px}
.rate input{position:absolute; opacity:0; width:1px; height:1px}
.rate label{cursor:pointer; font-size:30px; line-height:1; color:var(--field-line); padding:1px;
  transition:color .12s; letter-spacing:0; text-transform:none}
.rate label:hover,.rate label.on{color:#A47E25}
.rate input:focus-visible + label{outline:2px solid var(--c); outline-offset:2px}

/* галочка согласия на обработку данных.
   .form .check перебивает .field label — там капслок и разрядка, тут обычный текст */
.form .check{display:grid; grid-template-columns:auto minmax(0,1fr); gap:11px;
  align-items:start; cursor:pointer; font-size:14px; line-height:1.45;
  font-weight:400; letter-spacing:normal; text-transform:none; color:var(--ink-2)}
.form .check input{appearance:none; -webkit-appearance:none; margin:0; flex:none;
  width:21px; height:21px; border:1.5px solid var(--field-line); border-radius:3px;
  background:var(--paper); cursor:pointer; position:relative;
  transition:background .14s, border-color .14s}
.form .check input:checked{background:var(--c); border-color:var(--c)}
.form .check input:checked::after{content:""; position:absolute; left:6.5px; top:2.5px;
  width:5px; height:10px; border:solid #FFF8EC; border-width:0 2px 2px 0;
  transform:rotate(43deg)}
.form .check input:focus-visible{outline:2px solid var(--c); outline-offset:2px}
.form .check a{color:var(--c); text-decoration:underline; text-underline-offset:2px}
.band.dark .form .check{color:var(--chalk-2)}
.band.dark .form .check input{background:var(--dark); border-color:#564B3F}
.band.dark .form .check input:checked{background:var(--c); border-color:var(--c)}
.band.dark .form .check a{color:#D9A0A8}
.sent{display:none; background:#E4EDE1; border:1.5px solid #BBD2B6; color:#27492F;
  border-radius:3px; padding:14px 16px; font-size:15px}
.sent.on{display:block}
.copybox{display:none; flex-direction:column; gap:11px}
.copybox.on{display:flex}
.copybox pre{margin:0; background:var(--paper); border:1.5px solid var(--rule); border-radius:3px;
  padding:14px; font-family:ui-monospace,Menlo,monospace; font-size:13px; line-height:1.5;
  white-space:pre-wrap; word-break:break-word}
.band.dark .copybox pre{background:var(--dark); border-color:#453C32; color:var(--chalk)}

/* ---------- FAQ ---------- */
.faq{border-top:2px solid var(--ink)}
.band.dark .faq{border-top-color:var(--chalk-2)}
.faq details{border-bottom:1px solid var(--rule)}
.band.dark .faq details{border-bottom-color:#453C32}
.faq summary{cursor:pointer; padding:19px 0; list-style:none; display:grid;
  grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:baseline;
  font-family:"Playfair Display",Georgia,serif; font-size:clamp(19px,1.9vw,23px); font-weight:700}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--c)}
.band.dark .faq summary:hover{color:#D9A0A8}
.faq summary:focus-visible{outline:2px solid var(--c); outline-offset:3px}
.faq summary .qn{font-size:13px; font-weight:600; color:var(--c); font-family:"Golos Text",sans-serif}
.band.dark .faq summary .qn{color:var(--chalk-2)}
.faq summary .pm{font-size:20px; color:var(--c); font-weight:400; font-family:"Golos Text",sans-serif}
.band.dark .faq summary .pm{color:var(--chalk-2)}
.faq .ans{padding:0 0 22px calc(16px + 1.6em); font-size:16.5px; color:var(--ink-2);
  max-width:74ch; line-height:1.56}
.band.dark .faq .ans{color:var(--chalk-2)}
@media (max-width:620px){.faq .ans{padding-left:0}}

/* ---------- контакты ---------- */
.clist{border-top:1px solid #453C32}
.clist a{display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:17px 0; border-bottom:1px solid #453C32; text-decoration:none; transition:padding-left .16s}
.clist a:hover{padding-left:8px}
.clist b{display:block; font-size:16.5px; color:var(--chalk); font-weight:500}
.clist span.sub{display:block; font-size:14px; color:var(--chalk-2); margin-top:2px}
.clist .ar{color:var(--chalk-2); flex:none}

/* ---------- мелочи ---------- */
.callout{border-left:3px solid var(--c); padding:3px 0 3px 20px; font-size:16.5px;
  color:var(--ink-2); max-width:64ch; line-height:1.55}
.band.dark .callout{color:var(--chalk-2)}
.crumb{display:flex; gap:9px; flex-wrap:wrap; font-size:13.5px; color:var(--ink-3)}
.crumb a{text-decoration:none; color:var(--c)}
.crumb a:hover{text-decoration:underline}
.tagline{display:inline-flex; align-items:center; gap:9px; font-size:14px; font-weight:500;
  color:var(--c); border:1.5px solid var(--rule-2); padding:8px 15px; border-radius:3px}

/* ---------- подвал ---------- */
footer{background:#1A1610; color:var(--chalk-2); padding:clamp(38px,4.6vw,56px) 0 clamp(34px,4vw,48px);
  font-size:14.5px}
footer .in{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr)); gap:30px}
footer .logo .wm{color:var(--brand-lt)}
footer .logo img{filter:brightness(1.95) saturate(.95)}
footer a{color:var(--chalk-2); text-decoration:none; display:block; padding:3px 0}
footer a:hover{color:var(--chalk)}
footer .fl{display:flex; flex-direction:column; gap:5px}
footer .ft{font-family:"Playfair Display",Georgia,serif; font-size:12px; letter-spacing:.2em;
  text-transform:uppercase; color:#8E8475; margin-bottom:8px}

.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

/* ═══════════ РАСПРОДАЖА ═══════════ */
.sale-bar{background:var(--dark); color:var(--chalk); position:relative; z-index:70;
  border-bottom:1px solid #3A3229}
.sale-in{max-width:1180px; margin:0 auto; padding:11px clamp(16px,4vw,40px);
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:8px clamp(12px,2.2vw,24px); text-align:center}
.sale-tag{font-family:"Playfair Display",Georgia,serif; font-size:13.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:var(--paper-2); white-space:nowrap}
.sale-txt{font-size:14px; color:var(--chalk)}
.sale-extra{font-size:13px; color:var(--chalk-2); padding-left:clamp(12px,2.2vw,24px);
  border-left:1px solid #4A4137}
@media (max-width:760px){
  .sale-extra{border-left:0; padding-left:0; width:100%}
  .sale-txt{width:100%}
}

s.was{font-weight:400; color:var(--ink-3); text-decoration-thickness:1.5px; margin-right:5px}
b.now{font-weight:700; color:var(--c)}
.plan-price s.was,.course-price s.was{font-size:.74em}
.plan-price b.now,.course-price b.now{font-weight:700}
h2 s.was{font-size:.78em}

/* ═══════════ ТЕЛЕФОНЫ И ПЛАНШЕТЫ ═══════════
   Всё, что касается узких экранов, собрано здесь одним блоком.      */

/* ссылка внутри заглушки видео */
.vid-soon a{position:relative; color:var(--c); text-decoration:underline;
  text-underline-offset:2px}
.band.dark .vid-soon a{color:#D9A0A8}

/* вырез под «монобровь»: в горизонтальном положении контент не лезет под неё */
@supports (padding:max(0px,env(safe-area-inset-left))){
  .wrap,.nav-in,.sale-in{
    padding-left:max(clamp(18px,4vw,40px), env(safe-area-inset-left));
    padding-right:max(clamp(18px,4vw,40px), env(safe-area-inset-right))}
}

/* ---------- шапка на телефоне ----------
   Шесть ссылок при переносе строк превращали липкую шапку в три ряда
   и съедали пол-экрана. Теперь это одна прокручиваемая строка.      */
@media (max-width:760px){
  .nav-in{gap:10px; padding-top:9px; padding-bottom:9px}
  .logo img{height:27px}
  .logo .wm{font-size:19px}
  .nav-links{flex:1 1 auto; min-width:0; margin-left:auto; gap:0;
    flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    /* правый край растворяется — видно, что строка продолжается */
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 20px),transparent 100%);
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 20px),transparent 100%)}
  .nav-links::-webkit-scrollbar{display:none}
  .nav-links a{padding:9px 11px; font-size:14.5px; flex:none}
  .nav-links a.cta{padding:9px 15px; margin-left:4px}
}

/* ---------- видео на телефоне ----------
   Во всю ширину экрана: на 375 пикселях рамка с отступами крала
   треть картинки, а в обзорах разбирается мелкий текст.             */
@media (max-width:620px){
  .vids{margin-left:calc(-1 * clamp(18px,4vw,40px));
        margin-right:calc(-1 * clamp(18px,4vw,40px))}
  .vids > .vid{border-left:0; border-right:0; border-radius:0}
  .vid-cap{padding:12px clamp(18px,4vw,40px); font-size:14px}
  .vid-soon{padding:18px; gap:7px}
  .vid-soon b{font-size:18px}
  .vid-soon span{font-size:13.5px; max-width:none}
}

/* ---------- остальное на телефоне ---------- */
@media (max-width:560px){
  body{font-size:16.5px}
  .rev-score{padding:12px 16px}
  .rev-score b{font-size:34px}
  .hero-facts b{font-size:19px; min-width:84px}
  .plan-head{gap:8px}
  /* длинные ссылки и формулы не должны расталкивать страницу */
  .copybox pre{font-size:12px}
}

/* на совсем узких экранах цена со скидкой переносится, а не сжимается */
@media (max-width:380px){
  .course-price,.plan-price{line-height:1.25}
  .course-price s.was,.plan-price s.was{margin-right:4px}
}

/* ═══════════ ДОСТУПНОСТЬ С КЛАВИАТУРЫ ═══════════ */

/* видимая рамка фокуса у всего, по чему можно пройти клавишей Tab */
a:focus-visible,button:focus-visible,summary:focus-visible,
video:focus-visible,[tabindex]:focus-visible{
  outline:2px solid var(--c); outline-offset:3px; border-radius:2px}
.band.dark a:focus-visible,.band.dark button:focus-visible,
.band.dark summary:focus-visible,footer a:focus-visible{outline-color:var(--chalk)}
/* у цели перехода рамка не нужна — туда просто уводится фокус */
[id="main"]:focus{outline:none}

/* «К содержимому»: прячется за верхним краем и выезжает по Tab,
   чтобы не проходить шапку каждый раз заново */
.skip{position:absolute; left:14px; top:-70px; z-index:100;
  background:var(--c); color:#FFF8EC; padding:12px 20px; border-radius:3px;
  text-decoration:none; font-weight:500; font-size:15.5px;
  transition:top .16s}
.skip:focus{top:14px; outline:2px solid var(--ink); outline-offset:2px}

/* незаполненное юридическое поле — видно сразу, мимо не пройдёшь */
.todo{background:#FBE3E5; color:#8B1E2D; border:1px dashed #C9737F; border-radius:3px;
  padding:1px 7px; font-size:.88em; font-family:ui-monospace,Menlo,monospace;
  font-weight:500; white-space:nowrap}

/* ═══════════ ЮРИДИЧЕСКИЕ СТРАНИЦЫ ═══════════ */
.legal{max-width:78ch}
.legal > * + *{margin-top:14px}
.legal h3{margin-top:clamp(26px,3vw,38px)}
.legal h3:first-child{margin-top:0}
.legal p,.legal li{font-size:16.5px; color:var(--ink-2); line-height:1.6}
.legal ul,.legal ol{margin:0; padding-left:22px; display:flex; flex-direction:column; gap:8px}
.legal a{color:var(--c); text-decoration:underline; text-underline-offset:2px}
/* типовая форма отказа: бланк, который можно скопировать */
.legal .form-tpl{background:var(--paper); border:1.5px solid var(--rule);
  border-radius:3px; padding:clamp(16px,2.2vw,24px); margin-top:14px}
.legal .form-tpl > * + *{margin-top:12px}
.legal .form-tpl p{font-size:15.5px}

.legal dl{display:grid; grid-template-columns:minmax(160px,auto) minmax(0,1fr);
  gap:11px clamp(18px,2.4vw,32px); margin:0;
  border-top:2px solid var(--ink); padding-top:18px}
.legal dt{font-size:12.5px; font-weight:600; letter-spacing:.09em;
  text-transform:uppercase; color:var(--ink-3); line-height:1.45}
.legal dd{margin:0; font-size:16.5px; color:var(--ink); line-height:1.45}
@media (max-width:560px){
  .legal dl{grid-template-columns:1fr; gap:2px 0}
  .legal dt{margin-top:12px}
  .legal dt:first-child{margin-top:0}
}
