/* AI007 — общая система сегментных лендингов ФБС */
:root{
  --bg:#FFFFFF; --fg:#16182B; --surface:#F5F5F8; --surface-2:#EFEFF4;
  --line:#E5E4EC; --muted:#6E6D80;
  --accent:#8B2FE8; --accent-deep:#6D28D9; --accent-lite:#A855F7; --accent-wash:#F4ECFD;
  --gold:#FFC531; --gold-deep:#F0A81A; --on-gold:#16182B;
  --flag:#B3341F; --ok:#1F7A4D;
  --shadow:0 1px 2px rgba(22,24,43,.06), 0 8px 24px -12px rgba(22,24,43,.18);
  --maxw:1040px; --r:14px;
}
/* тёмная тема: по системной настройке, если пользователь не выбрал светлую вручную */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#101223; --fg:#ECEAF5; --surface:#191B2E; --surface-2:#1F2137;
    --line:#2C2E45; --muted:#9E9CB2;
    --accent:#B47CF5; --accent-deep:#8B2FE8; --accent-lite:#C9A4F9; --accent-wash:#221A38;
    --gold:#FFCB45; --gold-deep:#E9A417; --on-gold:#16182B;
    --flag:#E88A76; --ok:#5FCB98;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
  }
}
/* ручной выбор тёмной темы перекрывает системную настройку */
:root[data-theme="dark"]{
  --bg:#101223; --fg:#ECEAF5; --surface:#191B2E; --surface-2:#1F2137;
  --line:#2C2E45; --muted:#9E9CB2;
  --accent:#B47CF5; --accent-deep:#8B2FE8; --accent-lite:#C9A4F9; --accent-wash:#221A38;
  --gold:#FFCB45; --gold-deep:#E9A417; --on-gold:#16182B;
  --flag:#E88A76; --ok:#5FCB98;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 30px -14px rgba(0,0,0,.7);
}
*{box-sizing:border-box}
html{color-scheme:light dark;scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
h1,h2,h3{
  font-family:"Bricolage Grotesque",Inter,sans-serif;font-weight:600;
  line-height:1.12;letter-spacing:-.02em;text-wrap:balance;margin:0;
}
p{margin:0}
a{color:inherit}
/* только боковые поля: сокращённый padding обнулял вертикальные отступы
   разделов, и блоки разделяла одна линия без воздуха */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:24px;padding-right:24px}
section{padding:56px 0;border-top:1px solid var(--line)}
section:first-of-type{border-top:0}
section[id]{scroll-margin-top:96px}

/* мобильная версия: прокрутка останавливается на начале раздела,
   высота раздела остаётся по содержимому */
@media(max-width:900px){
  html{scroll-snap-type:y proximity}
  main > section{scroll-snap-align:start}
}
/* десктоп: короткие разделы занимают экран целиком и защёлкиваются,
   длинные (цена, вопросы, финал) прокручиваются обычно */
@media(min-width:901px) and (min-height:660px){
  html{scroll-snap-type:y proximity}
  main > section{scroll-snap-align:start}
  main > section.full{
    min-height:calc(100vh - 63px);
    display:flex;flex-direction:column;justify-content:center;
  }
}
h2{font-size:clamp(24px,4.6vw,34px);margin-bottom:14px}
.lead{color:var(--muted);max-width:62ch;font-size:17px}
.eyebrow{
  font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:14px;
}
.note{margin-top:22px;color:var(--muted);font-size:14px;max-width:66ch}

/* ---------- header ---------- */
header.site{
  position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line);
}
@supports (backdrop-filter:blur(1px)){
  header.site{
    background:color-mix(in srgb, var(--bg) 86%, transparent);
    backdrop-filter:saturate(180%) blur(12px);
    -webkit-backdrop-filter:saturate(180%) blur(12px);
  }
}
.top{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 0}
.top-actions{display:flex;align-items:center;gap:10px;flex:none}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none}
.brand img{height:34px;width:34px;display:block}
.brand b{font-family:"Bricolage Grotesque",sans-serif;font-weight:700;font-size:21px;letter-spacing:-.03em}
.brand em{font-style:normal;color:var(--muted);font-size:13px;padding-left:9px;margin-left:2px;border-left:1px solid var(--line)}
@media(max-width:620px){.brand em{display:none}}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:10px;border:1px solid transparent;
  font:inherit;font-weight:500;font-size:15px;text-decoration:none;cursor:pointer;
}
.btn-gold{background:linear-gradient(135deg,var(--gold),var(--gold-deep));color:var(--on-gold);font-weight:600;box-shadow:var(--shadow)}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--fg)}
.btn-sm{padding:9px 16px;font-size:14px}
.btn-lg{padding:17px 30px;font-size:17px;border-radius:12px}
.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* ---------- переключатель темы ---------- */
.theme-btn{
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  width:36px;height:36px;padding:0;border-radius:9px;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--muted);
}
.theme-btn:hover{color:var(--fg);border-color:var(--muted)}
.theme-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.theme-btn svg{width:17px;height:17px}
.theme-btn .i-sun{display:block}
.theme-btn .i-moon{display:none}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-btn .i-sun{display:none}
  :root:not([data-theme="light"]) .theme-btn .i-moon{display:block}
}
:root[data-theme="dark"] .theme-btn .i-sun{display:none}
:root[data-theme="dark"] .theme-btn .i-moon{display:block}

/* ---------- hero ---------- */
/* только вертикальные отступы: боковые поля берутся из .wrap,
   иначе сокращённый padding обнулял их и текст лип к краю экрана */
.hero{padding-top:44px;padding-bottom:60px}
.hero h1{font-size:clamp(31px,6.6vw,54px);max-width:16ch}
.hero .lead{margin-top:18px;font-size:clamp(16px,2.4vw,19px)}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px}
.micro{margin-top:12px;font-size:13px;color:var(--muted)}
.trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:26px;font-size:13px;color:var(--muted)}
.trust span{display:flex;align-items:center;gap:7px}
.dot{width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}

/* ---------- боль → решение ---------- */
.log{display:flex;flex-direction:column;margin-top:26px;border-top:1px solid var(--line)}
.log-row{
  display:grid;grid-template-columns:1fr;gap:6px;padding:16px 0 16px 16px;
  border-bottom:1px solid var(--line);border-left:2px solid var(--line);
}
.log-row:hover{border-left-color:var(--accent)}
.log-bad{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:13.5px;color:var(--flag);line-height:1.5}
.log-fix{color:var(--fg);font-size:15px}
@media(min-width:760px){
  .log-row{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:baseline}
}

/* ---------- шаги ---------- */
.steps{display:grid;gap:12px;margin-top:26px}
@media(min-width:700px){.steps{grid-template-columns:repeat(3,1fr)}}
@media(min-width:980px){.steps{grid-template-columns:repeat(5,1fr);gap:10px}}
.step{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--bg);display:flex;flex-direction:column;gap:7px}
.step .n{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;color:var(--accent);letter-spacing:.08em}
.step b{font-weight:600;font-size:15.5px}
.step p{color:var(--muted);font-size:13.5px;line-height:1.5}

/* ---------- карточки ---------- */
.cards{display:grid;gap:12px;margin-top:26px}
@media(min-width:700px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(min-width:980px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--surface)}
.card b{display:block;font-weight:600;font-size:15.5px;margin-bottom:6px}
.card p{color:var(--muted);font-size:14px;line-height:1.5}

/* ---------- горизонтальная прокрутка блоков на узком экране ----------
   Журнал смены, шаги смены и карточки отчётности листаются вбок:
   раздел перестаёт быть длинной лентой, следующая карточка видна краем.
   На компьютере блоки остаются сеткой. */
@media(max-width:900px){
  .log,.steps,.cards{
    display:flex;flex-direction:row;grid-template-columns:none;gap:12px;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    margin-left:-24px;margin-right:-24px;
    padding:2px 24px 12px;
    /* иначе снап защёлкивает первую карточку вплотную к краю экрана */
    scroll-padding-left:24px;scroll-padding-right:24px;
    scrollbar-width:none;
  }
  .log::-webkit-scrollbar,
  .steps::-webkit-scrollbar,
  .cards::-webkit-scrollbar{display:none}
  .log > .log-row,
  .steps > .step,
  .cards > .card{
    flex:0 0 82%;max-width:330px;scroll-snap-align:start;
  }
  /* строка журнала на узком экране становится карточкой */
  .log{border-top:0}
  .log > .log-row{
    display:block;padding:16px;background:var(--surface);
    border:1px solid var(--line);border-radius:12px;
  }
  .log > .log-row:hover{border-left-color:var(--line)}
  .log > .log-row .log-bad{margin-bottom:8px}
}

/* ---------- сравнение ---------- */
.compare{margin-top:26px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.compare-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:12px;padding:13px 16px;border-top:1px solid var(--line);font-size:14.5px}
.compare-row:first-child{border-top:0}
.compare-head{background:var(--surface-2);font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.compare-row span:first-child{color:var(--muted)}
.compare-row span:last-child{color:var(--fg);font-weight:500}

/* ---------- маркетплейсы ---------- */
.mp{display:grid;gap:12px;margin-top:26px}
@media(min-width:760px){.mp{grid-template-columns:repeat(3,1fr)}}
.mp-item{border:1px solid var(--line);border-radius:12px;padding:18px;background:var(--bg)}
.mp-item b{display:block;font-family:"Bricolage Grotesque",sans-serif;font-size:19px;font-weight:600;letter-spacing:-.02em}
.mp-item span{display:block;color:var(--muted);font-size:13.5px;margin-top:6px;line-height:1.45}
.mp-item.ready{border-color:var(--accent);background:var(--accent-wash)}

/* ---------- цена ---------- */
.price-box{
  margin-top:26px;border:1px solid var(--accent);border-radius:var(--r);
  background:var(--surface);padding:26px;max-width:520px;box-shadow:var(--shadow);
}
.price-box .tag{
  display:inline-block;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;
}
.price-box h3{font-size:21px;margin-bottom:12px}
.price{display:flex;align-items:baseline;gap:9px}
.price b{font-family:"Bricolage Grotesque",sans-serif;font-size:42px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.price span{color:var(--muted);font-size:15px}
.year{color:var(--muted);font-size:13.5px;margin-top:6px}
.price-box ul{list-style:none;margin:18px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.price-box li{position:relative;padding-left:22px;font-size:15px}
.price-box li::before{content:"";position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.price-box .btn{width:100%}
.anchor-line{margin-top:22px;font-size:16px;font-weight:500;max-width:60ch}
.addons{margin-top:10px;color:var(--muted);font-size:13.5px;max-width:66ch}

/* ---------- вопросы ---------- */
.faq{margin-top:22px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;padding:15px 0;font-weight:500;font-size:16px;
  display:flex;justify-content:space-between;gap:16px;align-items:baseline;
  list-style:none;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-family:"JetBrains Mono",ui-monospace,monospace}
.faq details[open] summary::after{content:"−"}
.faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.faq p{padding:0 0 16px;color:var(--muted);font-size:15px;max-width:70ch}
.faq-more-btn{margin-top:18px}

/* ---------- финал ---------- */
.final{text-align:center;padding:64px 0}
.final h2{max-width:20ch;margin:0 auto 14px}
.final .lead{margin:0 auto}
.final .cta-row{justify-content:center}

/* ---------- футер ---------- */
footer{border-top:1px solid var(--line);padding:26px 0 34px;color:var(--muted);font-size:13.5px}
.foot{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;justify-content:space-between}
.foot a{color:var(--muted)}
.foot a:hover{color:var(--fg)}

/* ---------- липкая кнопка на мобиле ---------- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:60;display:none;
  padding:12px 24px calc(12px + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--bg) 92%, transparent);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
}
.sticky .btn{width:100%}
/* призыв не показывается дважды на одном экране: панель и кнопка в шапке
   прячутся, пока на экране видна кнопка из самой страницы */
.sticky{transition:transform .22s ease, opacity .22s ease}
.sticky.is-off{transform:translateY(140%);opacity:0;pointer-events:none}
.top-actions .btn{transition:opacity .22s ease}
.top-actions .btn.is-off{opacity:0;visibility:hidden;pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .sticky,.top-actions .btn{transition:none}
}
.sticky small{display:block;text-align:center;color:var(--muted);font-size:11.5px;margin-top:6px}
@media(max-width:900px){
  section{padding:64px 0}
  .hero{padding-top:40px;padding-bottom:64px}
}
@media(max-width:760px){
  .sticky{display:block}
  body{padding-bottom:96px}
  .cta-row .btn{width:100%}
  /* на узком экране кнопка из шапки убрана: она дублируется липкой панелью
     снизу, а в шапке наезжала на логотип */
  .top-actions .btn{display:none}
}

/* ---------- модальное окно закрытой беты ---------- */
.modal-open{overflow:hidden}
/* пока окно открыто, липкая панель не показывает второй такой же призыв */
.modal-open .sticky{transform:translateY(140%);opacity:0;pointer-events:none}
.modal{
  border:0;padding:0;background:transparent;margin:auto;
  width:100%;max-width:min(430px, calc(100vw - 32px));
  color:var(--fg);
}
.modal::backdrop{background:rgba(10,11,22,.66)}
.modal-inner{
  position:relative;background:var(--bg);
  border:1px solid var(--line);border-radius:16px;
  padding:28px 24px 22px;
  box-shadow:0 30px 60px -22px rgba(0,0,0,.5);
}
.modal h3{font-size:22px;margin-bottom:10px;padding-right:30px}
.modal-inner > p{color:var(--muted);font-size:15px;line-height:1.55}
.modal form{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.modal input[type="email"]{
  width:100%;font:inherit;font-size:16px;color:var(--fg);
  background:var(--surface);border:1px solid var(--line);
  border-radius:10px;padding:14px;
}
.modal input[type="email"]::placeholder{color:var(--muted)}
.modal input[type="email"]:focus{outline:2px solid var(--accent);outline-offset:1px}
.modal input[aria-invalid="true"]{border-color:var(--flag)}
.modal form .btn{width:100%}
.modal-close{
  position:absolute;top:12px;right:12px;width:32px;height:32px;
  display:inline-flex;align-items:center;justify-content:center;
  border:0;border-radius:8px;background:transparent;color:var(--muted);
  font:inherit;font-size:20px;line-height:1;cursor:pointer;
}
.modal-close:hover{color:var(--fg);background:var(--surface)}
.modal-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.modal-msg{margin-top:14px;font-size:14px;line-height:1.5;display:none}
.modal-msg.show{display:block}
.modal-msg.ok{color:var(--ok)}
.modal-msg.err{color:var(--flag)}
.modal-note{margin-top:14px;font-size:12px;color:var(--muted);line-height:1.45}
.modal-note a{color:var(--muted)}
