/* ============================================================
   landing.css — главная страница («/»). Подключается только на ней
   поверх app.css; всё внутри .lp, шапка и подвал переопределены
   через body.is-landing.

   Две темы на одной разметке:
   · тёмная (по умолчанию) — настроение Linear / Vercel: почти чёрный
     фон, тонкие рамки, лёгкое свечение, станции маршрута светящейся линией;
   · светлая (data-theme="light" на <html>) — настроение Notion: тёплая
     бумага, пастельные карточки, крупные скругления.

   Шрифты: Inter (текст и заголовки), JetBrains Mono (цифры модулей,
   названия технологий, подписи к ценам).
   ============================================================ */

@font-face{ font-family:"LP Inter"; font-weight:400; font-style:normal; font-display:swap; src:url("/fonts/inter-400.woff") format("woff"); }
@font-face{ font-family:"LP Inter"; font-weight:500; font-style:normal; font-display:swap; src:url("/fonts/inter-500.woff") format("woff"); }
@font-face{ font-family:"LP Inter"; font-weight:600; font-style:normal; font-display:swap; src:url("/fonts/inter-600.woff") format("woff"); }
@font-face{ font-family:"LP Inter Display"; font-weight:600; font-style:normal; font-display:swap; src:url("/fonts/inter-display-600.woff") format("woff"); }
@font-face{ font-family:"LP Mono"; font-weight:400; font-style:normal; font-display:swap; src:url("/fonts/jbmono-400.woff") format("woff"); }
@font-face{ font-family:"LP Mono"; font-weight:500; font-style:normal; font-display:swap; src:url("/fonts/jbmono-500.woff") format("woff"); }

/* ---------- Токены: тёмная тема по умолчанию ---------- */
body.is-landing{
  --bg:#08090d;
  --surface:#0e1016;
  --surface-2:#141722;
  --line:rgba(255,255,255,.09);
  --line-2:rgba(255,255,255,.16);
  --text:#e8eaf0;
  --text-2:#b4bac8;
  --muted:#8a91a1;
  --accent:#8b93ff;          /* линия маршрута, цифры, ссылки */
  --accent-text:#a9afff;
  --accent-glow:rgba(139,147,255,.55);
  --btn-bg:#eceef5;          /* главная кнопка: светлая на тёмном */
  --btn-text:#0a0b10;
  --btn-bg-h:#ffffff;
  --top-bg:rgba(8,9,13,.78);
  --r:12px;
  --r-lg:16px;
  --shadow:none;
  --card-hi:inset 0 1px 0 rgba(255,255,255,.05);
  --h-a:#ffffff;             /* градиент заголовка первого экрана */
  --h-b:#8f96aa;
  --glow:radial-gradient(60% 60% at 50% 0%, rgba(124,131,255,.30), transparent 72%);
  --grid:rgba(255,255,255,.035);
  --p1:var(--surface); --p2:var(--surface); --p3:var(--surface); --p4:var(--surface); --p5:var(--surface);
  --field:#0b0d13;
  --field-line:rgba(255,255,255,.14);
  --hint:#6f778a;
  --err-bg:rgba(255,99,99,.12); --err-text:#ffb4b4;
  /* совместимость с public-theme.css */
  --ink:var(--text);
  --route:var(--accent);
  --hover:rgba(255,255,255,.07);
  background:var(--bg);
  color:var(--text);
  font-family:"LP Inter","Navigacia Sans","Segoe UI",sans-serif;
}

/* ---------- Токены: светлая тема ---------- */
:root[data-theme="light"] body.is-landing{
  --bg:#fbfaf7;
  --surface:#ffffff;
  --surface-2:#f3f1ea;
  --line:#e8e5dc;
  --line-2:#d6d2c6;
  --text:#1f1f1d;
  --text-2:#46453f;
  --muted:#66655e;
  --accent:#2a62f0;
  --accent-text:#1d4fd8;
  --accent-glow:rgba(42,98,240,0);
  --btn-bg:#2a62f0;
  --btn-text:#ffffff;
  --btn-bg-h:#1d4fd8;
  --top-bg:rgba(251,250,247,.86);
  --r:16px;
  --r-lg:24px;
  --shadow:0 1px 2px rgba(31,31,29,.04), 0 8px 24px -10px rgba(31,31,29,.10);
  --card-hi:none;
  --h-a:#1f1f1d;
  --h-b:#1f1f1d;
  --glow:radial-gradient(50% 50% at 18% 0%, rgba(255,214,102,.30), transparent 70%), radial-gradient(45% 45% at 85% 10%, rgba(180,160,255,.22), transparent 70%);
  --grid:transparent;
  --p1:#fff1c2; --p2:#dce9ff; --p3:#dcf3e1; --p4:#ffdfe9; --p5:#e9e0fb;
  --field:#ffffff;
  --field-line:#d6d2c6;
  --hint:#8a897f;
  --err-bg:#ffe3e3; --err-text:#8f1d1d;
  --hover:rgba(31,31,29,.06);
}

/* ---------- Шапка и подвал ---------- */
body.is-landing .top{
  background:var(--top-bg);
  color:var(--text);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.is-landing .top::after{ display:none; }
body.is-landing .brand{ color:var(--text); }
body.is-landing .brand:hover{ background:transparent; }
body.is-landing .brand__icon{ background:var(--surface-2); border:1px solid var(--line); box-shadow:none; border-radius:9px; }
body.is-landing .brand:hover .brand__icon{ transform:none; box-shadow:none; }
body.is-landing .brand__text{ font-weight:600; color:var(--text); }
body.is-landing .brand__text span{ color:var(--muted); font-weight:400; }
body.is-landing .nav a{ color:var(--text-2); border-radius:8px; }
body.is-landing .nav a:hover{ color:var(--text); background:var(--hover); }
body.is-landing .nav a::after{ background:var(--accent); }
body.is-landing .nav .btn{
  background:var(--btn-bg) !important;
  color:var(--btn-text) !important;
  border-radius:9px;
  box-shadow:none;
  font-weight:600;
}
body.is-landing .nav .btn:hover{ background:var(--btn-bg-h) !important; color:var(--btn-text) !important; filter:none; }
body.is-landing .burger span,
body.is-landing .burger span::before,
body.is-landing .burger span::after{ background:var(--text); }
@media (max-width:860px){
  body.is-landing .nav{ background:var(--bg); border:1px solid var(--line); box-shadow:0 18px 40px rgba(0,0,0,.35); }
  /* вошедший пользователь: «Кабинет» и «Выйти» в одну строку справа, без выпадающей плашки */
  body.is-landing .top--app .nav{
    display:flex; position:static; flex-direction:row; flex-wrap:nowrap; align-items:center; gap:6px;
    background:transparent; border:0; box-shadow:none; padding:0; margin-left:auto;
  }
  body.is-landing .top--app .nav a{ font-size:15px; font-weight:500; padding:8px 10px; }
  body.is-landing .top--app .nav a:first-child{
    border:1px solid var(--line-2); border-radius:9px; color:var(--text); padding:7px 14px;
  }
  body.is-landing .top--app .nav a:last-child{ color:var(--muted); }
  body.is-landing .top--app .top__in{ gap:6px; }
  body.is-landing .top--app .pub-theme{ margin-left:2px; }
  body.is-landing .top--app .nav a{ padding:8px 8px; }
  body.is-landing .top--app .nav a:first-child{ padding:7px 12px; }
}
body.is-landing .foot{
  background:var(--bg);
  border-top:1px solid var(--line);
  color:var(--muted);
}
body.is-landing .foot a{ color:var(--text-2); }
body.is-landing .foot a:hover{ color:var(--text); }

/* ---------- Базовое ---------- */
body.is-landing .main--home{ padding:0; }
.lp{
  font-size:17px;
  line-height:1.62;
  letter-spacing:-.006em;
  font-feature-settings:"cv11","ss01";
  font-variant-numeric:lining-nums;
}
.lp *{ box-sizing:border-box; }
.lp h1,.lp h2,.lp h3{
  font-family:"LP Inter Display","LP Inter",sans-serif;
  font-weight:600; color:var(--text);
}
.lp h1{
  font-size:clamp(38px,6.2vw,76px);
  line-height:1.04;
  letter-spacing:-.036em;
  margin:0 auto 24px;
  max-width:15em;
  text-wrap:balance;
  background:linear-gradient(180deg,var(--h-a) 30%,var(--h-b));
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.lp h2{
  font-size:clamp(28px,3.4vw,44px);
  line-height:1.12;
  letter-spacing:-.028em;
  margin:0 0 14px;
  text-wrap:balance;
}
.lp h3{ font-size:19px; line-height:1.3; letter-spacing:-.02em; margin:0 0 8px; font-family:"LP Inter",sans-serif; }
.lp p{ margin:0 0 14px; max-width:62ch; }
.lp a{ color:var(--accent-text); text-underline-offset:3px; }
.lp a:hover{ color:var(--text); }
.lp :focus-visible{ outline:2px solid var(--accent); outline-offset:3px; border-radius:6px; }
.lp-in{ max-width:1120px; margin:0 auto; padding:0 20px; }
.lp-sec{ padding:clamp(64px,9vw,120px) 0 0; scroll-margin-top:70px; }
.lp-split{
  display:grid;
  grid-template-columns:minmax(0,4fr) minmax(0,8fr);
  gap:clamp(24px,5vw,72px);
  align-items:start;
}
.lp-split__head{ position:sticky; top:96px; }
.lp-split__head p{ color:var(--muted); font-size:16px; }
.lp-note{ color:var(--muted); }

/* Карточка: общая «посадка» для блоков с рамкой */
.lp-for__grid article,
.lp-stats__grid article,
.lp-why article,
.lp-quotes blockquote,
.lp-quotes details.quote,
.lp-route,
.lp-apply__in{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--card-hi), var(--shadow);
}

/* ---------- Кнопки ---------- */
.lp-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 22px;
  border-radius:10px;
  border:1px solid transparent;
  font-family:inherit; font-size:16px; font-weight:600; line-height:1.2; letter-spacing:-.01em;
  text-decoration:none;
  cursor:pointer;
  transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
:root[data-theme="light"] .lp-btn{ border-radius:12px; padding:14px 24px; }
.lp .lp-btn--main{ background:var(--btn-bg); color:var(--btn-text); }
.lp .lp-btn--main:hover{ background:var(--btn-bg-h); color:var(--btn-text); transform:translateY(-1px); }
.lp .lp-btn--ghost,
.lp .lp-btn--line{ border-color:var(--line-2); color:var(--text); background:transparent; }
.lp .lp-btn--ghost:hover,
.lp .lp-btn--line:hover{ background:var(--hover); color:var(--text); border-color:var(--muted); }

/* ---------- Первый экран ---------- */
.lp-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(56px,8vw,112px) 0 clamp(8px,2vw,24px);
}
.lp-hero::before{
  content:""; position:absolute; inset:0 0 auto 0; height:640px;
  background:var(--glow);
  pointer-events:none;
}
.lp-hero::after{
  content:""; position:absolute; inset:0 0 auto 0; height:640px;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask:radial-gradient(ellipse 60% 70% at 50% 0%,#000,transparent 75%);
  mask:radial-gradient(ellipse 60% 70% at 50% 0%,#000,transparent 75%);
  pointer-events:none;
}
.lp-hero__in{ position:relative; z-index:1; }
.lp-hero__copy{ text-align:center; }
.lp-kicker{
  display:inline-block;
  margin:0 0 26px !important;
  padding:6px 14px;
  border:1px solid var(--line-2);
  border-radius:99px;
  background:var(--surface);
  font-size:14px; font-weight:500;
  color:var(--text-2);
}
.lp-lead{
  font-size:clamp(18px,1.7vw,21px);
  line-height:1.55;
  color:var(--text-2);
  max-width:38em !important;
  margin:0 auto 32px !important;
}
.lp-cta{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin:0 auto !important; }

.lp-facts{
  margin:56px auto 0;
  max-width:880px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--surface);
  box-shadow:var(--card-hi), var(--shadow);
}
.lp-facts div{ padding:20px 24px; min-width:0; }
.lp-facts div + div{ border-left:1px solid var(--line); }
.lp-facts dt{ font-size:14px; color:var(--muted); margin:0 0 6px; }
.lp-facts dd{ margin:0; font-weight:600; line-height:1.4; letter-spacing:-.015em; color:var(--text); }

/* ---------- Маршрут ---------- */
.lp-route{
  margin:20px auto 0;
  padding:28px clamp(20px,3vw,36px) 26px;
  position:relative;
  overflow:hidden;
}
:root:not([data-theme="light"]) .lp-route::before{
  content:""; position:absolute; left:10%; right:10%; top:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(139,147,255,.7),transparent);
}
.lp-route__head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 24px; margin-bottom:30px; }
.lp .lp-route__h{ font-size:22px; margin:0; letter-spacing:-.03em; }
.lp-route__sub{ margin:0 !important; color:var(--muted); font-size:15px; }
.lp-line{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:30px 0;
}
.lp-st{ position:relative; padding:42px 18px 0 0; line-height:1.4; min-width:0; }
/* станция: кружок 28px; у обычных станций в нём номер модуля */
.lp-st::before,
.lp-st__n{
  position:absolute; left:0; top:0;
  width:28px; height:28px; border-radius:50%;
  background:var(--surface); border:2px solid var(--accent);
  z-index:2;
}
.lp-st::before{ content:""; }
.lp-st--n::before{ display:none; }
.lp-st__n{
  display:grid; place-items:center;
  font-family:"LP Mono",ui-monospace,monospace; font-weight:500; font-size:13px; line-height:1;
  color:var(--accent-text); font-variant-numeric:tabular-nums;
}
/* перегон до следующей станции */
.lp-st::after{
  content:""; position:absolute; left:28px; right:0; top:13px;
  height:2px; background:var(--accent);
  box-shadow:0 0 10px var(--accent-glow);
  transform-origin:left; z-index:1;
}
.lp-st:nth-child(5n)::after,
.lp-st--end::after{ display:none; }
.lp-st__t{ display:block; font-size:15.5px; color:var(--text); }
.lp-st--start::before{ background:var(--accent); }
.lp-st--start .lp-st__t strong{ font-weight:600; }
.lp-st--end::before{
  background:var(--accent); border:5px solid var(--surface);
  box-shadow:0 0 0 2px var(--accent), 0 0 18px var(--accent-glow);
}
.lp-st--end .lp-st__t{ font-size:19px; font-weight:600; letter-spacing:-.02em; }
.lp-st--after{ grid-column:1 / -1; padding:3px 0 0 44px; min-height:28px; }
.lp-st--after::before{ background:transparent; border:2px dashed var(--muted); }
.lp-st--after::after{ display:none; }
.lp-st--after .lp-st__t{ color:var(--text-2); }
.lp-route__more{ margin:22px 0 0 !important; padding-top:18px; border-top:1px solid var(--line); font-size:15px; color:var(--muted); max-width:none !important; }

/* одно движение при загрузке: линия дорисовывается станция за станцией */
@media (prefers-reduced-motion:no-preference){
  .lp-st::after{ animation:lp-draw .4s cubic-bezier(.55,0,.25,1) both; animation-delay:calc(var(--i) * .1s + .35s); }
  .lp-st::before,.lp-st__n{ animation:lp-dot .3s ease-out both; animation-delay:calc(var(--i) * .1s + .3s); }
  .lp-st__t{ animation:lp-txt .4s ease-out both; animation-delay:calc(var(--i) * .1s + .4s); }
  @keyframes lp-draw{ from{ transform:scaleX(0); } to{ transform:scaleX(1); } }
  @keyframes lp-dot{ from{ transform:scale(0); } to{ transform:scale(1); } }
  @keyframes lp-txt{ from{ opacity:0; } to{ opacity:1; } }
}

/* ---------- Наставник ---------- */
.lp-about__in{
  display:grid;
  grid-template-columns:minmax(0,4fr) minmax(0,8fr);
  gap:clamp(28px,5vw,72px);
  align-items:center;
}
.lp-about__photo{ margin:0 14px 0 0; max-width:380px; }
.lp-about__frame{ position:relative; }
.lp-about__frame::before{
  content:""; position:absolute; inset:14px -14px -14px 14px;
  border-radius:calc(var(--r-lg) + 6px);
  background:linear-gradient(160deg,rgba(139,147,255,.35),transparent 70%);
  z-index:0;
}
:root[data-theme="light"] .lp-about__frame::before{ background:var(--p1); }
.lp-about__photo img{
  position:relative; z-index:1;
  display:block; width:100%; height:auto;
  border-radius:var(--r-lg);
  background:var(--surface-2);
  border:1px solid var(--line);
}
.lp-about__photo figcaption{ margin-top:32px; font-size:14px; color:var(--muted); }
.lp-about__body p{ font-size:19px; line-height:1.6; color:var(--text-2); }
.lp-about__body h2{ margin-bottom:20px; }

/* ---------- Как устроено ---------- */
.lp-steps{
  list-style:none; margin:0; padding:0 0 0 56px;
  counter-reset:st; position:relative;
}
.lp-steps::before{
  content:""; position:absolute; left:17px; top:20px; bottom:20px; width:2px;
  background:linear-gradient(180deg,var(--accent),var(--line));
}
.lp-steps li{ position:relative; counter-increment:st; padding:0 0 30px; max-width:46em; color:var(--text-2); }
.lp-steps li:last-child{ padding-bottom:0; }
.lp-steps li::before{
  content:counter(st);
  position:absolute; left:-56px; top:-4px;
  width:36px; height:36px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--surface); border:1px solid var(--line-2);
  font-family:"LP Mono",ui-monospace,monospace; font-weight:500; font-size:14px; line-height:1;
  color:var(--accent-text);
}
.lp-steps strong{ font-weight:600; color:var(--text); }

/* ---------- Результаты ---------- */
.lp-stats__grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.lp-stats__grid article{ padding:28px 28px 24px; }
.lp-stats__grid article:nth-child(1){ background:var(--p2); }
.lp-stats__grid article:nth-child(2){ background:var(--p3); }
.lp-stats__n{
  margin:0 0 10px !important;
  font-family:"LP Inter Display","LP Inter",sans-serif;
  font-size:clamp(40px,5vw,60px); font-weight:600;
  line-height:1; letter-spacing:-.05em;
  white-space:nowrap;
  color:var(--text);
  font-variant-numeric:tabular-nums;
}
.lp-stats__grid h3{ font-size:19px; }
.lp-stats__grid p:last-child{ color:var(--muted); font-size:15.5px; margin:0; }
:root[data-theme="light"] .lp-stats__grid p:last-child{ color:var(--text-2); }

/* ---------- Стек ---------- */
.lp-stack{ margin:0; }
.lp-stack__row{
  display:grid; grid-template-columns:minmax(0,200px) minmax(0,1fr);
  gap:10px 24px; padding:18px 0;
  border-top:1px solid var(--line);
}
.lp-stack__row:last-child{ border-bottom:1px solid var(--line); }
.lp-stack dt{ font-weight:600; color:var(--text); }
.lp-stack dd{ margin:0; display:flex; flex-wrap:wrap; gap:8px; }
.lp-stack dd span{
  padding:3px 10px;
  border:1px solid var(--line-2); border-radius:8px;
  background:var(--surface);
  font-family:"LP Mono",ui-monospace,monospace; font-size:14px; line-height:1.55; color:var(--text-2);
}

/* ---------- Кому подходит ---------- */
.lp-for__grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:32px; }
.lp-for__grid article{ padding:26px 26px 22px; }
.lp-for__grid article:nth-child(1){ background:var(--p1); }
.lp-for__grid article:nth-child(2){ background:var(--p5); }
.lp-for__grid article:nth-child(3){ background:var(--p4); }
.lp-for__grid p{ color:var(--text-2); margin:0; font-size:16px; }

/* ---------- Чем отличается ---------- */
.lp-why{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.lp-why article{ padding:22px 24px; }
.lp-why article:last-child:nth-child(odd){ grid-column:1 / -1; }
.lp-why p{ color:var(--text-2); margin:0; font-size:16px; }

/* ---------- Программа ---------- */
.lp-prog__toc{ margin-top:18px; }
.lp-prog .lp-btn{ margin-top:8px; }
.lp-mods{ list-style:none; margin:0; padding:0; }
.lp-mod{
  display:grid; grid-template-columns:44px minmax(0,1fr);
  gap:14px; padding:18px 0;
  border-top:1px solid var(--line);
}
.lp-mod:last-child{ border-bottom:1px solid var(--line); }
.lp-mod__n{
  font-family:"LP Mono",ui-monospace,monospace; font-weight:500; font-size:18px; line-height:1.5;
  color:var(--accent-text); font-variant-numeric:tabular-nums;
}
.lp-mod__body{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.lp-mod__body strong{ font-weight:600; font-size:18px; letter-spacing:-.02em; line-height:1.3; color:var(--text); }
.lp-mod__body span{ color:var(--muted); font-size:15.5px; line-height:1.5; }

/* ---------- Тарифы ---------- */
.lp-tariffs{ display:flex; flex-direction:column; gap:12px; }
.lp-tariffs article{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,15rem);
  gap:10px 28px; align-items:start;
  padding:22px 24px;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--card-hi), var(--shadow);
}
.lp-tariffs h3{ margin:0 0 6px; }
.lp-tariffs p{ margin:0; color:var(--muted); font-size:16px; }
.lp-tariffs .lp-tariffs__price{ color:var(--text); text-align:right; }
.lp-tariffs .lp-tariffs__price b{
  display:block; font-family:"LP Inter Display","LP Inter",sans-serif;
  font-size:26px; font-weight:600; letter-spacing:-.035em; line-height:1.2;
}
.lp-tariffs .lp-tariffs__price span{
  display:block; margin-top:4px;
  font-family:"LP Mono",ui-monospace,monospace; font-size:13px; font-weight:400; color:var(--muted); letter-spacing:0;
}
.lp-tariffs .is-main{
  border-color:var(--accent);
  box-shadow:0 0 0 1px var(--accent), 0 18px 50px -20px var(--accent-glow);
}
:root[data-theme="light"] .lp-tariffs .is-main{ background:var(--p2); box-shadow:var(--shadow); border-color:#b9cffb; }
:root[data-theme="light"] .lp-tariffs .is-main p{ color:var(--text-2); }

/* ---------- Отзывы ---------- */
.lp-quotes{ columns:2; column-gap:20px; margin-top:28px; }
.lp-quotes > *{ break-inside:avoid; margin:0 0 20px; }
.lp-quotes blockquote,
.lp-quotes details.quote{ padding:24px 26px; color:var(--text); }
.lp-quotes blockquote{ margin:0 0 20px; }
.lp-quotes .quote__mark{ display:none; }
.lp-quotes p{ margin:0 0 12px; max-width:none; color:var(--text-2); }
.lp-quotes summary{ list-style:none; cursor:pointer; }
.lp-quotes summary::-webkit-details-marker{ display:none; }
.lp-quotes .quote__more{ color:var(--accent-text); font-weight:600; font-size:15px; text-decoration:underline; text-underline-offset:3px; }
.lp-quotes details[open] .quote__more{ display:none; }
.lp-quotes footer{ font-size:14px; color:var(--muted); }

/* ---------- Заявка ---------- */
.lp-apply{ margin-top:clamp(64px,9vw,120px); padding:0 20px clamp(64px,9vw,120px); scroll-margin-top:60px; }
.lp-apply__in{
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(28px,6vw,80px); align-items:start;
  max-width:1080px; padding:clamp(28px,5vw,56px);
  position:relative; overflow:hidden;
}
:root:not([data-theme="light"]) .lp-apply__in::before{
  content:""; position:absolute; left:15%; right:15%; top:0; height:1px;
  background:linear-gradient(90deg,transparent,rgba(139,147,255,.7),transparent);
}
.lp-apply__body p{ color:var(--text-2); }
.lp-apply__q{ margin:0; padding-left:1.3em; color:var(--text-2); }
.lp-apply__q li{ margin:0 0 8px; padding-left:4px; }
.lp-form{ display:flex; flex-direction:column; gap:18px; }
.lp-form label{ display:flex; flex-direction:column; gap:6px; font-weight:600; font-size:15px; color:var(--text); }
.lp-form input:not([type=checkbox]),
.lp-form textarea{
  width:100%;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid var(--field-line);
  background:var(--field); color:var(--text);
  font-family:inherit; font-size:16.5px; font-weight:400; line-height:1.45;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.lp-form textarea{ min-height:200px; resize:vertical; }
.lp-form input::placeholder,.lp-form textarea::placeholder{ color:var(--hint); }
.lp-form input:focus-visible,.lp-form textarea:focus-visible{
  outline:0; border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-glow);
}
:root[data-theme="light"] .lp-form input:focus-visible,
:root[data-theme="light"] .lp-form textarea:focus-visible{ box-shadow:0 0 0 3px rgba(42,98,240,.2); }
.lp-form .lp-check{ flex-direction:row; align-items:flex-start; gap:12px; font-weight:400; font-size:15px; color:var(--text-2); }
.lp-form .lp-check input{ margin-top:4px; width:20px; height:20px; flex:0 0 20px; accent-color:var(--accent); }
.lp-form .lp-btn{ align-self:flex-start; }
.lp-err{ margin:0; padding:12px 14px; border-radius:10px; background:var(--err-bg); color:var(--err-text); font-weight:600; }
.lp-ok{ margin:0; padding:20px; border-radius:12px; background:var(--surface-2); color:var(--text); font-weight:600; font-size:19px; }

/* ---------- Адаптив ---------- */
@media (max-width:980px){
  .lp-split,.lp-about__in,.lp-apply__in{ grid-template-columns:minmax(0,1fr); }
  .lp-split__head{ position:static; }
  .lp-about__photo{ max-width:300px; }
  .lp-line{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .lp-st:nth-child(5n)::after{ display:block; }
  .lp-st:nth-child(3n)::after,.lp-st--end::after{ display:none; }
}
@media (max-width:720px){
  .lp{ font-size:16px; }
  .lp-in{ padding:0 16px; }
  .lp-apply{ padding-left:16px; padding-right:16px; }
  .lp-facts{ grid-template-columns:minmax(0,1fr); margin-top:40px; }
  .lp-facts div + div{ border-left:0; border-top:1px solid var(--line); }
  .lp-for__grid,.lp-why,.lp-stats__grid{ grid-template-columns:minmax(0,1fr); }
  .lp-quotes{ columns:1; }
  .lp-stack__row{ grid-template-columns:minmax(0,1fr); }
  .lp-tariffs article{ grid-template-columns:minmax(0,1fr); }
  .lp-tariffs .lp-tariffs__price{ text-align:left; }
  .lp-cta{ flex-direction:column; align-items:stretch; }
  .lp-btn{ width:100%; }
  .lp-form .lp-btn{ align-self:stretch; }
  /* маршрут на узком экране — вертикальная линия */
  .lp-line{ grid-template-columns:minmax(0,1fr); gap:0; }
  .lp-st{ padding:3px 0 24px 44px; min-height:28px; }
  .lp-st::after{ display:block; left:13px; right:auto; top:28px; width:2px; height:calc(100% - 28px); transform-origin:top; }
  .lp-st:nth-child(5n)::after,.lp-st:nth-child(3n)::after{ display:block; }
  .lp-st--end::after,.lp-st--after::after{ display:none; }
  .lp-st--after{ padding:3px 0 0 44px; }
  .lp-st--end{ padding-top:0; }
  .lp-route{ padding-top:24px; }
  @media (prefers-reduced-motion:no-preference){
    .lp-st::after{ animation-name:lp-draw-y; }
    @keyframes lp-draw-y{ from{ transform:scaleY(0); } to{ transform:scaleY(1); } }
  }
}

/* совсем узкие экраны: у вошедшего пользователя в шапке остаётся только значок */
@media (max-width:350px){
  body.is-landing .top--app .brand__text{ display:none; }
}
