/* ============================================================
   НОВА · одноэкранные квиз-посадки на апексе 1development.online
   Структура повторяет dombai-resort (intro → quiz → form),
   оформление — «Казанская роскошь» (см. nova/concept/v2).
   Три темы задаются классом на <body>:
     .theme-night — тёплая ночь + медь   (/nova-kazan)
     .theme-ink   — глубокий уголь + бронза (/nova-premium)
     .theme-bone  — светлый пергамент + бронза (/nova-business)
   ============================================================ */

:root{
  --e: cubic-bezier(.19,1,.22,1);
  --dur-step: 170ms;
  --pad: clamp(20px,4.5vw,60px);
  /* фирменная пара НОВЫ (как на живом nova.1development.online):
     Montserrat 800 в заголовках + Onest в тексте. Цифры, ₽ и % — единое начертание. */
  --font-ui: 'Onest', 'Montserrat', system-ui, -apple-system, sans-serif;
  --font-display: 'Montserrat', 'Onest', system-ui, sans-serif;
}

/* ---------- темы ---------- */

.theme-night{
  --bg: #12100C;
  --bg-2: #1A1611;
  --bg-3: #241E17;
  --line: #332C22;
  --txt: #E4D8C6;
  --dim: #9C9081;
  --paper: #F6F1E7;
  --accent: #C08A4E;
  --accent-hi: #E0AC71;
  --on-accent: #170F05;
  --scrim: 18,16,12;
  --card: #1E1913;
  --input-bg: rgba(246,241,231,.045);
  --grain-opacity: .18;
}

.theme-ink{
  --bg: #0D0D10;
  --bg-2: #14141A;
  --bg-3: #1C1C24;
  --line: #2A2A34;
  --txt: #ECE4D2;
  --dim: #8E8878;
  --paper: #F6F1E7;
  --accent: #D5A96E;
  --accent-hi: #E6C79C;
  --on-accent: #14100A;
  --scrim: 13,13,16;
  --card: #131318;
  --input-bg: rgba(246,241,231,.045);
  --grain-opacity: .14;
}

/* стиль живого nova.1development.online: светлый, зелёный #4F857A, прямые углы */
.theme-nova{
  --bg: #F8F8F8;
  --bg-2: #FFFFFF;
  --bg-3: #EFEFED;
  --line: rgba(20,20,20,.14);
  --txt: #363633;
  --dim: #79796F;
  --paper: #141414;
  --accent: #4F857A;
  --accent-hi: #3E6E64;
  --on-accent: #FFFFFF;
  --scrim: 248,248,248;
  --card: #FFFFFF;
  --input-bg: rgba(20,20,20,.035);
  --grain-opacity: 0;
}

/* ---------- база ---------- */

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* классы вида .screen{display:flex} иначе перебивают атрибут hidden */
[hidden]{display:none!important}
body{
  background:var(--bg);color:var(--txt);
  font-family:var(--font-ui);font-weight:400;
  font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100svh;
}
img{display:block;max-width:100%}
a{color:inherit}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--accent);color:var(--on-accent)}

/* тёплое зерно поверх всего */
body::after{
  content:"";position:fixed;inset:0;z-index:400;pointer-events:none;
  opacity:var(--grain-opacity);
  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='4'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)'/%3E%3C/svg%3E");
}

.stage{min-height:100svh;display:flex;flex-direction:column}

.screen{flex:1;display:flex;animation:screenIn .8s var(--e) both}
@keyframes screenIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  .screen{animation:none}
}

/* ---------- типографика ---------- */

.eyebrow{
  font-size:11px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--accent);font-weight:600;
}
.accent{color:var(--accent-hi)}
.nowrap{white-space:nowrap}

/* ---------- бренд ---------- */

.brand{display:flex;align-items:baseline;gap:14px}
.brand__mark{
  font-family:var(--font-display);font-size:19px;font-weight:800;
  letter-spacing:.3em;text-indent:.06em;color:var(--paper);
}
.brand__sub{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
}
@media(max-width:700px){
  .brand{flex-direction:column;gap:2px}
}

/* ============================================================
   ЭКРАН 1 — ИНТРО
   ============================================================ */

.intro{
  flex:1;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  min-height:100svh;
}
@media(max-width:960px){
  .intro{grid-template-columns:1fr;min-height:auto}
}

.intro__content{
  display:flex;flex-direction:column;justify-content:space-between;
  gap:clamp(26px,4vh,44px);
  padding:clamp(22px,4vh,44px) var(--pad);
  position:relative;z-index:2;
}

.intro__head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:18px;
}
.intro__geo{
  font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim);text-align:right;line-height:1.6;
}
@media(max-width:700px){.intro__geo{display:none}}

.intro__pitch{max-width:60ch}

/* ПСК: по требованию к рекламе кредита — не мельче заголовка.
   Тот же clamp, что у .intro__title, менять размер отдельно нельзя. */
.psk{
  font-family:var(--font-display);
  font-size:clamp(23px,2.7vw,37px);
  font-weight:800;line-height:1.14;letter-spacing:-.03em;
  color:var(--dim);
  margin-top:14px;
}

.intro__title{
  font-family:var(--font-display);
  font-size:clamp(23px,2.7vw,37px);
  font-weight:800;line-height:1.14;letter-spacing:-.03em;
  color:var(--paper);
  margin-top:10px;
  text-wrap:balance;
}
.intro__title .accent{font-weight:800}

.intro__lede{
  font-size:clamp(15px,1.25vw,17px);color:var(--txt);
  max-width:52ch;margin-top:16px;
}

/* УТП-чипы */
.chips{
  list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;
}
.chip{
  font-size:12.5px;font-weight:400;letter-spacing:.02em;
  border:1px solid var(--line);border-radius:999px;
  padding:7px 14px;color:var(--txt);
  background:var(--input-bg);
}
.chip--hi{border-color:var(--accent);color:var(--accent-hi)}

.intro__cta{display:flex;flex-direction:column;gap:14px;align-items:flex-start}

.hint-quiz{
  font-size:12px;letter-spacing:.06em;color:var(--dim);
  display:flex;align-items:center;gap:10px;
}
.hint-quiz::before{
  content:"";width:26px;height:1px;background:var(--accent);flex:none;
}

/* кнопки */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  border:1px solid var(--accent);background:transparent;color:var(--accent-hi);
  font-size:12.5px;font-weight:600;letter-spacing:.17em;text-transform:uppercase;
  padding:17px 34px;position:relative;overflow:hidden;isolation:isolate;
  transition:color .45s var(--e);
}
.btn::before{
  content:"";position:absolute;inset:0;background:var(--accent);
  transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--e);z-index:-1;
}
.btn:hover{color:var(--on-accent)}
.btn:hover::before{transform:scaleY(1)}
.btn--primary{background:var(--accent);color:var(--on-accent)}
.btn--primary::before{background:var(--accent-hi)}
.btn--primary:hover{color:var(--on-accent)}
.btn--ghost{
  border-color:var(--line);color:var(--dim);padding:13px 22px;font-size:11.5px;
}
.btn--ghost::before{background:var(--bg-3)}
.btn--ghost:hover{color:var(--txt)}
.btn--submit{width:100%;padding:18px 20px;background:var(--accent);color:var(--on-accent)}
.btn--submit::before{background:var(--accent-hi)}
.btn--submit[disabled]{opacity:.65;cursor:wait}
.btn:focus-visible{outline:2px solid var(--accent-hi);outline-offset:3px}

/* медиа-колонка */
.intro__media{position:relative;overflow:hidden;min-height:320px}
.intro__photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) contrast(1.03);
}
@media(max-width:960px){
  .intro__media{order:-1;min-height:44svh}
  .intro__photo{position:absolute}
}
.intro__scrim{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to right, rgba(var(--scrim),.55) 0%, rgba(var(--scrim),0) 38%),
    linear-gradient(to top, rgba(var(--scrim),.72) 0%, rgba(var(--scrim),0) 46%);
}
@media(max-width:960px){
  .intro__scrim{
    background:linear-gradient(to bottom, rgba(var(--scrim),.18) 0%, rgba(var(--scrim),0) 35%, rgba(var(--scrim),1) 100%);
  }
}

/* карточка фактов на фото */
.fact-card{
  position:absolute;left:clamp(18px,3vw,40px);bottom:clamp(18px,3.5vh,40px);
  right:clamp(18px,3vw,40px);max-width:520px;
  background:rgba(var(--scrim),.78);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  border:1px solid var(--line);
  padding:clamp(16px,2.2vw,24px) clamp(18px,2.4vw,28px);
}
.fact-card__label{
  font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);font-weight:600;margin-bottom:12px;
}
.fact-card__grid{display:flex;align-items:stretch;gap:clamp(14px,2vw,24px)}
.fact-card__rule{width:1px;background:var(--line);flex:none}
.fact-card__item{flex:1;min-width:0}
.fact-card__num{
  font-family:var(--font-display);
  font-size:clamp(15px,1.7vw,21px);font-weight:700;line-height:1.1;letter-spacing:-.02em;
  color:var(--paper);white-space:nowrap;
}
.fact-card__cap{
  font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--dim);margin-top:6px;
}
@media(max-width:960px){.fact-card{display:none}}

/* компактные метрики — только mobile */
.metrics{display:none}
@media(max-width:960px){
  .metrics{
    display:flex;gap:18px;margin-top:20px;
    border-top:1px solid var(--line);padding-top:16px;
  }
  .metrics__item{flex:1;min-width:0}
  .metrics__num{
    font-family:var(--font-display);font-size:15px;font-weight:700;
    line-height:1.1;color:var(--paper);white-space:nowrap;letter-spacing:-.02em;
  }
  .metrics__cap{
    font-size:10px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--dim);margin-top:4px;
  }
}

/* ============================================================
   ЭКРАН 2 — КВИЗ
   ============================================================ */

.screen--quiz{align-items:stretch}
.quiz{
  flex:1;display:flex;flex-direction:column;
  max-width:860px;margin:0 auto;width:100%;
  padding:clamp(20px,4vh,40px) var(--pad) clamp(24px,5vh,56px);
}

.quiz__head{
  display:flex;justify-content:space-between;align-items:baseline;gap:16px;
  margin-bottom:18px;
}
.quiz__counter{font-size:12px;letter-spacing:.08em;color:var(--dim)}
.quiz__counter-short{display:none}
@media(max-width:700px){
  .quiz__counter-full{display:none}
  .quiz__counter-short{display:inline}
}

.progress{
  height:2px;background:var(--line);position:relative;overflow:hidden;
  margin-bottom:clamp(26px,5vh,48px);
}
.progress__fill{
  position:absolute;inset:0 auto 0 0;width:0;background:var(--accent);
  transition:width .5s var(--e);
}

.quiz__body{
  flex:1;display:flex;flex-direction:column;gap:clamp(22px,4vh,36px);
  transition:opacity var(--dur-step) ease, transform var(--dur-step) ease;
}
.quiz__body.is-leaving{opacity:0;transform:translateY(10px)}

.quiz__question{
  font-family:var(--font-display);
  font-size:clamp(21px,2.5vw,32px);font-weight:800;line-height:1.16;letter-spacing:-.02em;
  color:var(--paper);max-width:24ch;
  outline:none;
}

.quiz__options{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:640px}
@media(max-width:640px){.quiz__options{grid-template-columns:1fr}}

.option{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border:1px solid var(--line);background:var(--input-bg);
  color:var(--txt);font-size:15px;font-weight:400;text-align:left;
  padding:16px 18px;
  transition:border-color .3s var(--e), background .3s var(--e), transform .3s var(--e);
}
.option:hover{border-color:var(--accent);transform:translateY(-1px)}
.option:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.option__check{
  width:22px;height:22px;border:1px solid var(--line);border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  font-size:12px;color:transparent;transition:all .25s var(--e);
}
.option.is-selected{border-color:var(--accent);background:rgba(192,138,78,.1)}
.option.is-selected .option__check{
  background:var(--accent);border-color:var(--accent);color:var(--on-accent);
}

/* УТП под вариантами ответов: сразу за ними, карточками, меняются по шагам.
   Заметные, но приглушённые — внимание остаётся на вопросе и ответах. */
.usps{
  list-style:none;display:flex;gap:10px;flex-wrap:wrap;
  margin-top:2px;max-width:760px;
}
.usp{
  display:flex;align-items:center;gap:13px;min-width:0;flex:1 1 220px;
  border:1px solid var(--line);background:var(--input-bg);
  padding:10px 14px 10px 10px;
}
.usp__img{
  width:64px;height:64px;object-fit:cover;border-radius:2px;flex:none;
}
.usp__text{font-size:13px;color:var(--txt);opacity:.86;line-height:1.45}

.quiz__foot{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  border-top:1px solid var(--line);padding-top:16px;
  margin-top:auto;
}
.quiz__hint{font-size:12px;color:var(--dim);letter-spacing:.04em}
@media(max-width:520px){.quiz__hint{display:none}}

/* ============================================================
   ЭКРАН 3 — ФОРМА
   ============================================================ */

.lead{
  flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(26px,4vw,64px);
  max-width:1180px;margin:0 auto;width:100%;
  padding:clamp(24px,5vh,56px) var(--pad);
  align-content:center;
}
@media(max-width:920px){.lead{grid-template-columns:1fr;gap:28px}}

.lead__title{
  font-family:var(--font-display);
  font-size:clamp(21px,2.3vw,30px);font-weight:800;line-height:1.18;letter-spacing:-.02em;
  color:var(--paper);margin-top:12px;text-wrap:balance;
}
.lead__lede{margin-top:14px;color:var(--txt);max-width:46ch;font-size:15px}
.lead__usps{
  list-style:none;margin-top:22px;display:flex;flex-direction:column;gap:9px;
}
.lead__usps li{
  font-size:13.5px;color:var(--dim);display:flex;gap:12px;align-items:baseline;
}
.lead__usps li::before{
  content:"";width:14px;height:1px;background:var(--accent);flex:none;
  transform:translateY(-3px);
}

.form-card{
  background:var(--card);border:1px solid var(--line);
  padding:clamp(20px,3vw,34px);
}
.form{display:flex;flex-direction:column;gap:18px}
.form__title{
  font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--paper);
  letter-spacing:-.01em;
}

.field{display:flex;flex-direction:column;gap:7px}
.field__label{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);font-weight:600;
}
.field__input{
  background:var(--input-bg);border:1px solid var(--line);color:var(--paper);
  font-family:inherit;font-size:17px;font-weight:400;
  padding:15px 16px;width:100%;border-radius:0;
  transition:border-color .3s var(--e);
}
.field__input::placeholder{color:var(--dim);opacity:.7}
.field__input:focus{outline:none;border-color:var(--accent)}
.field.is-invalid .field__input{border-color:#B3573F}
.field__err{font-size:12px;color:#C86A50}

/* каналы доставки подборки */
.channels{border:0}
.channels__legend{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);font-weight:600;margin-bottom:9px;
}
.channels__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
@media(max-width:440px){.channels__grid{grid-template-columns:repeat(2,1fr)}}
.channel{position:relative;display:block}
.channel input{position:absolute;opacity:0;inset:0}
.channel__ic{display:none}
.channel span:last-child{
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);background:var(--input-bg);
  font-size:12.5px;color:var(--dim);padding:11px 6px;
  transition:all .25s var(--e);
}
.channel input:checked + .channel__ic + span,
.channel input:checked ~ span:last-child{
  border-color:var(--accent);color:var(--accent-hi);background:rgba(192,138,78,.08);
}
.channel input:focus-visible ~ span:last-child{outline:2px solid var(--accent-hi);outline-offset:2px}

/* согласия */
.consents{display:flex;flex-direction:column;gap:9px}
.check{
  display:flex;gap:10px;align-items:flex-start;
  font-size:12px;color:var(--dim);line-height:1.5;cursor:pointer;
}
.check input{
  appearance:none;-webkit-appearance:none;flex:none;
  width:17px;height:17px;border:1px solid var(--line);background:var(--input-bg);
  display:inline-grid;place-content:center;margin-top:1px;cursor:pointer;
}
.check input::before{
  content:"✓";font-size:11px;color:var(--on-accent);transform:scale(0);
  transition:transform .2s var(--e);
}
.check input:checked{background:var(--accent);border-color:var(--accent)}
.check input:checked::before{transform:scale(1)}
.check input:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.check a{color:var(--accent-hi);text-decoration:underline;text-underline-offset:2px}
.consents.is-invalid .check{color:#C86A50}

.form__consent{font-size:11.5px;color:var(--dim);line-height:1.55}
.form__senderr{font-size:13px;color:#C86A50}

.success{text-align:center;padding:34px 8px;display:flex;flex-direction:column;gap:12px;align-items:center}
.success__mark{
  width:56px;height:56px;border-radius:50%;background:var(--accent);
  color:var(--on-accent);font-size:26px;display:grid;place-content:center;
}
.success__title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--paper)}
.success__text{color:var(--dim);font-size:14px}

.lead__legal{
  grid-column:1 / -1;font-size:11px;color:var(--dim);line-height:1.6;
  border-top:1px solid var(--line);padding-top:16px;
}

/* ============================================================
   ПОДВАЛ
   ============================================================ */

.disclaimer{
  padding:16px var(--pad) calc(16px + env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:24px;align-items:flex-end;
  background:var(--bg-2);
}
@media(max-width:820px){.disclaimer{flex-direction:column;align-items:flex-start;gap:12px}}
.disclaimer__legal{font-size:10.5px;color:var(--dim);line-height:1.6;max-width:100ch}
.disclaimer__legal a{color:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.disclaimer__legal a:hover{color:var(--accent-hi)}

.credit{
  display:flex;flex-direction:column;gap:3px;text-decoration:none;flex:none;
}
.credit__label{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.credit__badge{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--txt)}
.credit__mark{color:var(--accent);font-size:9px}
.credit__x{color:var(--dim)}

/* ============================================================
   ДИАЛОГ «УСЛОВИЯ АКЦИЙ»
   ============================================================ */

.terms{border:0;padding:0;margin:auto;max-width:min(760px,92vw);width:100%;background:transparent;color:var(--txt)}
.terms::backdrop{background:rgba(10,8,6,.72);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.terms__box{
  position:relative;background:var(--card);border:1px solid var(--line);
  padding:clamp(26px,4vw,46px);max-height:86vh;overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.terms__close{
  position:absolute;top:10px;right:12px;width:44px;height:44px;
  background:none;border:0;color:var(--dim);font-size:1.7rem;line-height:1;
}
.terms__close:hover{color:var(--accent-hi)}
.terms__close:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}
.terms__eyebrow{margin:0 0 .7rem;font-size:.72rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}
.terms__title{
  font-family:var(--font-display);
  margin:0 0 1.4rem;font-size:clamp(1.15rem,2.2vw,1.5rem);line-height:1.25;
  font-weight:700;color:var(--paper);max-width:26ch;letter-spacing:-.01em;
}
.terms__list{margin:0;padding-left:1.35em;display:flex;flex-direction:column;gap:1.05rem}
.terms__list li{color:var(--dim);font-size:.88rem;line-height:1.65}
.terms__list b{color:var(--txt);font-weight:600}

/* ============================================================
   ОФОРМЛЕНИЕ theme-nova — как на живом nova.1development.online:
   светлый фон, зелёный #4F857A, прямые углы, чистая сетка
   ============================================================ */

.theme-nova .chip{border-radius:0;background:var(--bg-2);border-color:var(--line)}
.theme-nova .chip--hi{border-color:var(--accent);color:var(--accent)}
.theme-nova .btn{color:var(--accent)}
.theme-nova .btn--primary,
.theme-nova .btn--submit{color:var(--on-accent)}
.theme-nova .btn--primary:hover,
.theme-nova .btn--submit:hover{color:var(--on-accent)}
.theme-nova .btn--ghost{color:var(--dim)}
.theme-nova .fact-card{background:rgba(255,255,255,.88)}
.theme-nova .option{background:var(--bg-2)}
.theme-nova .usp{background:var(--bg-2)}
.theme-nova .option.is-selected{background:rgba(79,133,122,.08)}
.theme-nova .channel input:checked ~ span:last-child{
  color:var(--accent);background:rgba(79,133,122,.08);
}
.theme-nova .field__input{background:var(--bg-2);color:var(--paper)}
.theme-nova .check a{color:var(--accent)}
.theme-nova .form-card{box-shadow:0 20px 60px -30px rgba(20,20,20,.18)}
.theme-nova .intro__scrim{
  background:linear-gradient(to top, rgba(248,248,248,.4) 0%, rgba(248,248,248,0) 30%);
}

/* ============================================================
   ДЕСКТОП: всё помещается в высоту экрана, без полосы прокрутки
   ============================================================ */

@media (min-width:961px){
  .stage{height:100vh;overflow:hidden}
  .screen{min-height:0;overflow:auto}
  .intro{min-height:0;height:100%}
  .intro__content{padding-top:clamp(14px,3vh,36px);padding-bottom:clamp(14px,3vh,36px)}
  .disclaimer{flex:none}
}

/* компактный режим для невысоких десктопных экранов (ноутбуки) */
@media (min-width:961px) and (max-height:880px){
  .psk,
  .intro__title{font-size:clamp(18px,2.9vh,29px)}
  .psk{margin-top:8px}
  .intro__title{margin-top:6px}
  .intro__lede{margin-top:10px;font-size:14.5px}
  .chips{margin-top:14px;gap:6px}
  .chip{padding:5px 12px;font-size:11.5px}
  .intro__content{gap:14px}
  .intro__cta{gap:10px}
  .btn--primary{padding:14px 28px}
  .fact-card{padding:14px 20px}
  .fact-card__num{font-size:clamp(16px,2.6vh,22px)}
  .fact-card__cap{margin-top:4px}
  .brand__mark{font-size:18px}
  .disclaimer{padding-top:9px;padding-bottom:11px}
  .disclaimer__legal{font-size:9.5px;line-height:1.45}
  .credit__label{display:none}
}

/* ============================================================
   theme-nova (nova-business) — ДЕСКТОП
   Крупнее заголовок, чипы и кнопка; шапка прижата вверх,
   питч + CTA собраны в один блок по центру — вместо трёх
   элементов, разогнанных space-between по краям экрана.
   ============================================================ */

@media (min-width:961px){
  .theme-nova .intro__content{
    justify-content:flex-start;
    gap:0;
    padding-top:clamp(20px,3.4vh,40px);
    padding-bottom:clamp(20px,3.4vh,40px);
  }
  .theme-nova .intro__pitch{margin-top:auto;max-width:min(780px,100%)}
  .theme-nova .intro__cta{margin-top:clamp(26px,3.6vh,42px);margin-bottom:auto}

  .theme-nova .brand__mark{font-size:22px}
  .theme-nova .brand__sub{font-size:12px}

  .theme-nova .eyebrow{font-size:12.5px;letter-spacing:.26em}
  /* ПСК держим вровень с заголовком — требование к рекламе кредита */
  .theme-nova .psk,
  .theme-nova .intro__title{font-size:clamp(34px,3.6vw,52px)}
  .theme-nova .intro__title{margin-top:16px;line-height:1.1}
  .theme-nova .psk{margin-top:18px}
  .theme-nova .intro__lede{font-size:18px;margin-top:20px}

  .theme-nova .chips{margin-top:28px;gap:10px}
  .theme-nova .chip{font-size:14.5px;padding:10px 18px}

  .theme-nova .btn--primary{font-size:14.5px;padding:22px 46px;letter-spacing:.15em}
  .theme-nova .hint-quiz{font-size:14px}
  .theme-nova .hint-quiz::before{width:34px}
}

/* невысокие десктопы/ноутбуки — держим в 100vh, но всё равно крупнее исходного */
@media (min-width:961px) and (max-height:880px){
  .theme-nova .psk,
  .theme-nova .intro__title{font-size:clamp(22px,3.5vh,36px)}
  .theme-nova .intro__title{margin-top:10px}
  .theme-nova .psk{margin-top:11px}
  .theme-nova .intro__lede{font-size:15.5px;margin-top:12px}
  .theme-nova .chips{margin-top:18px;gap:8px}
  .theme-nova .chip{font-size:13px;padding:7px 14px}
  .theme-nova .btn--primary{font-size:13px;padding:17px 34px}
  .theme-nova .hint-quiz{font-size:12.5px}
  .theme-nova .intro__cta{margin-top:clamp(18px,2.8vh,28px)}
  .theme-nova .brand__mark{font-size:20px}
}

/* ============================================================
   ПРЕДУПРЕЖДЕНИЕ О РИСКАХ — реклама кредита (nova-premium, nova-kazan)
   Показывается сразу, закрыть можно только через 3 секунды,
   само уходит через 15. Разметка есть только на страницах со ставкой/платежом.
   ============================================================ */

.risk-note{
  position:fixed;z-index:500;
  left:50%;bottom:calc(20px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(440px,calc(100vw - 28px));
  display:flex;align-items:center;gap:13px;
  padding:13px 15px;
  background:var(--bg-3);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  box-shadow:0 22px 50px -20px rgba(0,0,0,.8), 0 0 0 1px rgba(0,0,0,.25);
  animation:riskIn .55s var(--e) both;
}
.risk-note.is-out{animation:riskOut .35s var(--e) both}

.risk-note__mark{
  flex:none;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent);color:var(--on-accent);
  font-family:var(--font-display);font-size:14px;font-weight:800;line-height:1;
}
.risk-note__text{
  flex:1;margin:0;
  font-size:13.5px;line-height:1.42;color:var(--paper);
  letter-spacing:.005em;
}
.risk-note__close{
  flex:none;width:30px;height:30px;margin:-4px -4px -4px 0;
  background:none;border:0;color:var(--dim);
  font-size:1.35rem;line-height:1;
}
.risk-note__close:hover{color:var(--accent-hi)}
.risk-note__close:focus-visible{outline:2px solid var(--accent-hi);outline-offset:2px}

@keyframes riskIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes riskOut{from{opacity:1;transform:translate(-50%,0)}to{opacity:0;transform:translate(-50%,10px)}}
@media(prefers-reduced-motion:reduce){
  .risk-note{animation:none}
  .risk-note.is-out{animation:none;opacity:0}
}

@media(max-width:520px){
  .risk-note{
    left:14px;right:14px;transform:none;width:auto;
    bottom:calc(14px + env(safe-area-inset-bottom));
    padding:12px 13px;gap:11px;
  }
  .risk-note__text{font-size:13px}
  @keyframes riskIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
}

/* ============================================================
   НОЯБРЬ 2026 — правки по ТЗ «Нова: правки посадочных»
   слоган капителью, двойная цена, видео в hero, планировки
   «цена была — стала» (полоса под hero и экран «Ваш подбор готов»)
   ============================================================ */

/* «Официальный сайт застройщика» — в шапке мелким, видно и на мобильном */
.intro__official{
  font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);
  text-align:right;line-height:1.5;
}
/* логотип застройщика «Новастрой» над «Официальный сайт застройщика» */
.intro__official:has(.intro__dev-logo){display:flex;flex-direction:column;align-items:flex-end}
.intro__official:has(.intro__dev-logo) .intro__official-geo br{display:none}
.intro__dev-logo{display:block;flex:none;height:24px;width:auto;max-width:none;margin:0 0 12px}
@media(max-width:700px){
  .intro__dev-logo{height:16px;margin-bottom:8px}
  .intro__official{font-size:9px;letter-spacing:.1em;max-width:19ch}
  .intro__official-geo{display:none}
}

/* слоган над H1 — капителью */
.slogan{
  font-variant-caps:all-small-caps;text-transform:none;
  font-size:15px;letter-spacing:.16em;font-weight:600;color:var(--accent);
}
.theme-nova .slogan{font-size:16px}

/* двойная цена: прайс зачёркнут, цена со скидкой крупно */
.price{
  margin-top:14px;font-size:clamp(15px,1.35vw,19px);line-height:1.4;color:var(--txt);
}
.price__old{
  color:var(--dim);white-space:nowrap;
  text-decoration:line-through;text-decoration-thickness:1px;
}
.price__new{
  font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;
  font-size:1.35em;color:var(--paper);white-space:nowrap;
}
.price sup,.chip sup,.fact-card sup,.metrics sup,.intro__title sup,.plan sup{
  font-size:.6em;line-height:0;vertical-align:super;
}
/* условия ипотеки рядом со ставкой */
.price__terms{display:block;margin-top:4px;font-size:.82em;color:var(--dim)}

@media (min-width:961px) and (max-height:880px){
  .price{margin-top:8px;font-size:clamp(14px,2vh,17px)}
  .slogan{font-size:13px}
}

/* видео в hero: поверх постера, только десктоп/планшет без reduced-motion
   (src ставит app.js — мобильные видео не качают) */
.intro__video{opacity:0;transition:opacity .6s ease}
.intro__video.is-playing{opacity:1}

/* ---------- планировки «цена была — стала» ---------- */

.plans{
  list-style:none;display:grid;grid-auto-flow:column;
  grid-auto-columns:minmax(220px,1fr);gap:12px;
  overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;padding-bottom:6px;
  scrollbar-width:thin;
}
.plan{
  scroll-snap-align:start;display:flex;flex-direction:column;
  background:var(--card);border:1px solid var(--line);min-width:0;
}
.plan__fig{position:relative;background:#fff;aspect-ratio:688/528}
.plan__img{width:100%;height:100%;object-fit:contain}
.plan__meta{
  position:absolute;left:8px;top:8px;
  font-size:10.5px;letter-spacing:.04em;color:#363633;
  background:rgba(255,255,255,.9);padding:3px 7px;line-height:1.3;
}
.plan__body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:3px}
.plan__type{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.plan__old{
  font-size:13.5px;color:var(--dim);
  text-decoration:line-through;text-decoration-thickness:1px;
}
.plan__new{
  font-family:var(--font-display);font-weight:800;font-size:20px;
  letter-spacing:-.02em;color:var(--paper);line-height:1.15;white-space:nowrap;
}
.plan__gain{font-size:12.5px;color:var(--accent-hi);font-weight:600}
.theme-nova .plan__gain{color:var(--accent)}
.plan__tag{font-size:11.5px;color:var(--dim)}

/* полоса под hero (nova-business): первый экран не меняется,
   на десктопе экран интро прокручивается к планировкам */
.screen--intro.has-band{flex-direction:column}
.plans-band{
  padding:clamp(28px,5vh,56px) var(--pad) clamp(28px,5vh,48px);
  border-top:1px solid var(--line);background:var(--bg-2);
}
.plans-band__head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:18px;
  flex-wrap:wrap;margin-bottom:20px;
}
.plans-band__title{
  font-family:var(--font-display);font-size:clamp(21px,2.3vw,30px);font-weight:800;
  line-height:1.15;letter-spacing:-.02em;color:var(--paper);margin-top:8px;
}
.plans-band .btn{padding:14px 26px}
@media (min-width:961px){
  .screen--intro.has-band .intro{flex:none;height:100%}
  .plans-band .plans{grid-auto-flow:row;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}
}

/* экран «Ваш подбор готов»: 2–3 планировки по выбранной комнатности */
.lead__plans{margin-top:22px}
.lead__plans-cap{
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);font-weight:600;margin-bottom:10px;
}
.lead__plans .plans{grid-auto-columns:minmax(170px,1fr)}
.lead__plans .plan__new{font-size:17px}
.lead__plans .plan__body{padding:10px 12px 12px}
.lead.has-plans .lead__usps{display:none}

/* юрблок клиента целиком: в подвале на десктопе — прокручиваемый блок,
   чтобы длинный текст не съедал первый экран (полный текст и в модалке) */
@media (min-width:961px){
  .disclaimer__legal--full{
    display:block;max-height:calc(4 * 1.6em);overflow-y:auto;padding-right:8px;
    scrollbar-width:thin;
  }
}
@media (min-width:961px) and (max-height:880px){
  .disclaimer__legal--full{max-height:calc(4 * 1.45em)}
}
/* текстовое значение в плашке фактов («ключи зимой») — переносится */
.fact-card__num--text,.metrics__num--text{white-space:normal}
.terms__text p{color:var(--dim);font-size:.88rem;line-height:1.65}
.terms__text p + p{margin-top:1rem}
.terms__text b{color:var(--txt);font-weight:600}
/* колонки экрана формы не растягиваются под ленту планировок */
.lead__pitch,.lead__panel{min-width:0}
@media(max-width:920px){.lead{grid-template-columns:minmax(0,1fr)}}
