/* ==========================================================================
   ООО «Звуки Бизнеса» — автоимпорт
   Тёмная студийная эстетика: чёрный павильон, луч света, платина.
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  /* Surfaces — near-black, very low saturation */
  --ink:        #08080a;
  --ink-2:      #0d0d10;
  --ink-3:      #131318;
  --ink-4:      #1a1a20;
  --paper:      #f2f0ec;
  --paper-2:    #e6e3dd;

  /* Type */
  --text:       #eae8e4;
  --text-dim:   #93908a;
  --text-faint: #858279;
  --on-paper:   #111110;
  --on-paper-dim:#56544e;

  /* Accents — same L/C, different hue */
  --gold:  oklch(0.80 0.062 82);    /* платина / шампань */
  --gold-bright: oklch(0.80 0.062 82); /* та же платина, не меняется на бумаге */
  --steel: oklch(0.80 0.062 238);   /* холодный луч */
  --gold-dim: oklch(0.62 0.048 82);
  /* Платина, читаемая на бумаге: 5.3:1 на --paper, 4.7:1 на --paper-2 */
  --gold-ink:     oklch(0.50 0.075 82);
  --gold-ink-dim: oklch(0.58 0.065 82);
  --focus: var(--gold);
  --gold-hi:  oklch(0.88 0.052 82);   /* верхняя точка платины */
  --warn:     oklch(0.72 0.13 55);    /* «что не входит» / отказ */

  /* Lines */
  --line:       rgba(234,232,228,.13);
  --line-soft:  rgba(234,232,228,.07);
  --line-paper: rgba(17,17,16,.14);

  /* Metrics */
  --gut: clamp(20px, 4.2vw, 64px);
  --maxw: 1360px;
  --nav-h: 78px;
  --r: 2px;

  /* Вертикальный ритм — один модуль 8px на весь сайт */
  --s1: 8px;  --s2: 16px; --s3: 24px; --s4: 32px;
  --s5: 48px; --s6: 64px; --s7: 96px; --s8: 128px;

  /* Длительности моушна: ничего мгновенного, ничего затяжного */
  --t-fast: 200ms;
  --t-mid:  320ms;
  --t-slow: 480ms;

  /* Type scale (fluid) */
  --fs-mega:  clamp(2.7rem, 8.6vw, 7.6rem);
  --fs-xl:    clamp(2.3rem, 6vw, 5rem);
  --fs-lg:    clamp(1.75rem, 3.6vw, 3rem);
  --fs-md:    clamp(1.25rem, 2vw, 1.6rem);
  --fs-body:  clamp(1rem, 1.05vw, 1.075rem);
  --fs-sm:    .875rem;
  --fs-xs:    .75rem;
  --fs-micro: .6875rem;   /* 11px — нижняя граница для трекинговых капс-меток */

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-io: cubic-bezier(.65,.05,.36,1);

  --ff-display: "Unbounded", "Futura", "Century Gothic", ui-sans-serif, system-ui, sans-serif;
  --ff-body: "Onest", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;

  color-scheme: dark;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ink);
  color:var(--text);
  font-family:var(--ff-body);
  font-size:var(--fs-body);
  line-height:1.62;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,svg,canvas,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{margin:0;font-family:var(--ff-display);font-weight:300;line-height:1.04;letter-spacing:-.015em}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
::selection{background:var(--gold);color:var(--ink)}

/* ---------- Utilities ---------- */
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.stack{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.stack--lg{gap:28px}
.stack--sm{gap:12px}
.muted{color:var(--text-dim)}
.lead{font-size:var(--fs-md);line-height:1.5;letter-spacing:-.01em}
.gold{color:var(--gold)}
.nowrap{white-space:nowrap}
.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

.overline{
  font-family:var(--ff-body);
  font-size:var(--fs-xs);
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--text-faint);
  display:inline-flex;align-items:center;gap:10px;
}
.overline::before{
  content:"";width:26px;height:1px;background:var(--gold);opacity:.7;flex:none;
}
.overline--plain::before{display:none}

.rule{border:0;height:1px;background:var(--line);width:100%;margin:0}

.skip{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--gold);color:var(--ink);padding:12px 20px;font-weight:600;
}
.skip:focus{left:var(--gut);top:12px}

/* ---------- Grain + vignette ---------- */
.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:3;
  opacity:.32;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--gold);--fg:var(--ink);
  position:relative;display:inline-flex;align-items:center;gap:12px;
  padding:15px 26px;background:var(--bg);color:var(--fg);
  font-family:var(--ff-body);font-size:var(--fs-sm);font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;border-radius:var(--r);
  overflow:hidden;transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  isolation:isolate;
}
.btn svg{width:14px;height:10px;flex:none;transition:transform .4s var(--ease)}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
  transform:translateX(-120%);transition:transform .7s var(--ease);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 32px -12px oklch(0.80 0.062 82 / .55)}
.btn:hover::before{transform:translateX(120%)}
.btn:hover svg{transform:translateX(4px)}
.btn-ghost{--bg:transparent;--fg:var(--text);box-shadow:inset 0 0 0 1px var(--line)}
.btn-ghost:hover{--fg:var(--ink);background:var(--text);box-shadow:none}
.btn-sm{padding:11px 18px;font-size:var(--fs-xs)}
.on-paper .btn-ghost{--fg:var(--on-paper);box-shadow:inset 0 0 0 1px var(--line-paper)}
.on-paper .btn-ghost:hover{--fg:var(--paper);background:var(--on-paper)}

/* ---------- Платина на бумаге ----------
   На светлых поверхностях исходная платина даёт 1.65:1 — текст ею нечитаем.
   Внутри «бумаги» тот же тон опускается по светлоте до 5.3:1, а заливки
   (кнопка, выделение) остаются светлой платиной на тёмном тексте.          */
.section--paper,.on-paper,.calcsheet,.quote{
  --gold:     var(--gold-ink);
  --gold-dim: var(--gold-ink-dim);
  --gold-hi:  var(--gold-ink);
  --focus:    var(--gold-ink);
}
/* На главной раскадровка делает карточки отзывов тёмными — платина
   возвращается к светлой. */
body.has-stage .quote{
  --gold:     var(--gold-bright);
  --gold-dim: oklch(0.62 0.048 82);
  --gold-hi:  oklch(0.88 0.052 82);
  --focus:    var(--gold-bright);
}
/* .price нарисован для тёмной секции, но используется и на бумаге */
.section--paper .price__row span,.on-paper .price__row span{color:var(--on-paper-dim)}
.section--paper .price__row b,.on-paper .price__row b{color:var(--on-paper)}
.section--paper .btn:not(.btn-ghost),
.on-paper .btn:not(.btn-ghost),
.calcsheet .btn:not(.btn-ghost){--bg:var(--gold-bright);--fg:var(--ink)}
.section--paper ::selection,.on-paper ::selection,
.calcsheet ::selection,.quote ::selection{background:var(--gold-bright);color:var(--ink)}

.link-arrow{
  display:inline-flex;align-items:center;gap:10px;
  font-size:var(--fs-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);padding-bottom:4px;position:relative;min-height:24px;
}
.link-arrow svg{width:14px;height:10px;transition:transform .4s var(--ease)}
.link-arrow::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;opacity:.3;transform-origin:right;transform:scaleX(0);transition:transform .45s var(--ease)}
.link-arrow:hover::after{transform-origin:left;transform:scaleX(1)}
.link-arrow:hover svg{transform:translateX(5px)}

/* ---------- Header ---------- */
.hdr{
  position:fixed;inset:0 0 auto;z-index:90;height:var(--nav-h);
  display:flex;align-items:center;
  transition:background .5s var(--ease), backdrop-filter .5s var(--ease), border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
.hdr.is-stuck{
  background:color-mix(in oklab, var(--ink) 82%, transparent);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line-soft);
}
.hdr__inner{display:flex;align-items:center;justify-content:space-between;gap:24px;width:100%}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand__logo{flex:none;display:block;line-height:0}
.brand__logo img{
  display:block;width:auto;height:46px;
  filter:drop-shadow(0 1px 6px rgba(0,0,0,.45));
}
@media (max-width:760px){.brand__logo img{height:38px}}
.brand__text{display:flex;flex-direction:column;line-height:1.1}
.brand__name{
  font-family:var(--ff-display);font-weight:400;font-size:.95rem;
  letter-spacing:.16em;text-transform:uppercase;
}
.brand__sub{font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint);margin-top:3px}

.nav{display:flex;align-items:center;gap:clamp(14px,1.8vw,30px)}
.nav a{
  font-size:var(--fs-xs);font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-dim);position:relative;padding:6px 0;transition:color .35s var(--ease);
}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav a:hover,.nav a[aria-current="page"]{color:var(--text)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.hdr__side{display:flex;align-items:center;gap:12px;flex:none}

.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;flex:none}
.burger span{display:block;width:20px;height:1px;background:var(--text);position:relative;transition:background .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:20px;height:1px;background:var(--text);transition:transform .4s var(--ease)}
.burger span::before{top:-6px}
.burger span::after{top:6px}
body.nav-open .burger span{background:transparent}
body.nav-open .burger span::before{transform:translateY(6px) rotate(45deg)}
body.nav-open .burger span::after{transform:translateY(-6px) rotate(-45deg)}

@media (max-width:1080px){
  .nav{
    position:fixed;inset:var(--nav-h) 0 auto;flex-direction:column;align-items:flex-start;
    gap:0;background:var(--ink-2);padding:20px var(--gut) 40px;
    border-bottom:1px solid var(--line);
    transform:translateY(-110%);transition:transform .55s var(--ease);
    max-height:calc(100dvh - var(--nav-h));overflow:auto;
  }
  body.nav-open .nav{transform:translateY(0)}
  .nav a{font-size:1rem;letter-spacing:.1em;padding:16px 0;width:100%;border-bottom:1px solid var(--line-soft)}
  .burger{display:flex}
  .hdr__cta{display:none}
}

/* ---------- Social rail ---------- */
.rail{
  position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:80;
  display:flex;flex-direction:column;align-items:center;gap:18px;
  padding:0 14px;
}
.rail__socials{display:flex;flex-direction:column;gap:12px}
.rail__socials a{
  display:grid;place-items:center;width:34px;height:34px;border-radius:50%;
  color:var(--text-dim);box-shadow:inset 0 0 0 1px var(--line);
  transition:color .35s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
.rail__socials a:hover{color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);transform:translateY(-2px)}
.rail__socials svg{width:15px;height:15px}
.rail__mark{
  writing-mode:vertical-rl;font-size:var(--fs-micro);letter-spacing:.3em;text-transform:uppercase;
  color:var(--text-faint);
}
.rail__mark::before{content:"";display:block;width:1px;height:44px;background:var(--line);margin:0 auto 14px}
@media (max-width:1280px){.rail{display:none}}

/* ---------- Reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .46s var(--ease), transform .46s var(--ease)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .hero__track{height:auto}
  .hero__pin{position:relative;min-height:100svh}
  .beat{position:relative;opacity:1;visibility:visible;transform:none}
}

/* ---------- Sections ---------- */
.section{padding:clamp(72px,11vh,150px) 0;position:relative}
.section--paper{background:var(--paper);color:var(--on-paper)}
.section--paper .muted{color:var(--on-paper-dim)}
.section--paper .overline{color:var(--on-paper-dim)}
.section--paper .rule{background:var(--line-paper)}
.section--tight{padding:clamp(48px,7vh,90px) 0}

.section-head{
  display:flex;flex-direction:column;gap:18px;align-items:flex-start;
  max-width:44rem;margin-bottom:clamp(40px,6vh,72px);
}
.section-head h2{font-size:var(--fs-xl);font-weight:200;letter-spacing:-.03em;text-wrap:balance;max-width:15ch}
.section-head--wide{max-width:58rem}
.section-head--row{
  flex-direction:row;align-items:flex-end;justify-content:space-between;max-width:none;gap:40px;
}
.section-head--row .section-head__t{display:flex;flex-direction:column;gap:18px;max-width:40rem}
@media (max-width:860px){.section-head--row{flex-direction:column;align-items:flex-start}}

/* ---------- Marquee ---------- */
.marquee{
  overflow:hidden;border-block:1px solid var(--line);
  padding:18px 0;background:var(--ink-2);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__row{display:flex;gap:0;width:max-content;animation:marq 42s linear infinite}
.marquee__row span{
  display:inline-flex;align-items:center;gap:22px;padding-right:22px;
  font-family:var(--ff-display);font-weight:200;font-size:clamp(1rem,1.8vw,1.5rem);
  letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;
}
.marquee__row span::after{content:"";width:5px;height:5px;background:var(--gold);border-radius:50%;flex:none}
.marquee:hover .marquee__row{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee__row{animation:none}}

/* ---------- Telemetry / доставка ---------- */
.delivery{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,80px);align-items:center}
.delivery__media{margin:0;position:relative;overflow:hidden;border-radius:var(--r)}
.delivery__media img{width:100%;object-fit:cover;aspect-ratio:3/4;filter:grayscale(.35) contrast(1.06) brightness(.82)}
.delivery__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(160deg,transparent 45%, rgba(0,0,0,.6));
}
.delivery__panel{display:flex;flex-direction:column;gap:26px}

.telemetry{border:1px solid var(--line);background:var(--ink-2);padding:clamp(22px,3vw,34px)}
.telemetry__id{display:flex;align-items:center;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line-soft)}
.telemetry__badge{
  display:grid;place-items:center;width:46px;height:46px;flex:none;
  border:1px solid var(--gold);color:var(--gold);
  font-family:var(--ff-display);font-size:11px;letter-spacing:.05em;
}
.telemetry__route{display:block;font-weight:500;margin-top:5px;font-size:var(--fs-sm)}
.telemetry__bars{display:flex;flex-direction:column;gap:18px;padding:24px 0}
.bar__top{display:flex;justify-content:space-between;font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}
.bar__track{height:2px;background:var(--ink-4);position:relative;overflow:hidden}
.bar__fill{position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(--gold-dim),var(--gold));transition:width 1.6s var(--ease)}
.telemetry__note{font-size:var(--fs-sm);color:var(--text-dim);border-top:1px solid var(--line-soft);padding-top:20px}

.route{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line)}
.route li{
  background:var(--ink);padding:18px 14px;display:flex;flex-direction:column;gap:10px;
  font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);
}
.route li span{font-family:var(--ff-display);font-size:1.1rem;color:var(--gold);font-weight:300}
@media (max-width:900px){
  .delivery{grid-template-columns:1fr}
  .route{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- Stats ---------- */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}
.stat{background:var(--ink);padding:clamp(26px,4vw,48px) clamp(18px,2.5vw,32px);display:flex;flex-direction:column;gap:12px}
.stat b{font-family:var(--ff-display);font-weight:200;font-size:clamp(2.2rem,4.6vw,3.8rem);line-height:1;letter-spacing:-.03em;color:var(--text)}
.section--paper .stats{background:var(--line-paper)}
.section--paper .stat{background:var(--paper)}
.section--paper .stat b{color:var(--on-paper)}
@media (max-width:760px){.stats{grid-template-columns:1fr}}

/* ---------- About ---------- */
.about__head{position:relative}
.about__banner{position:relative;height:clamp(220px,36vh,420px);overflow:hidden}
.about__banner img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) brightness(.85)}
.about__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(8,8,10,.55),transparent 40%,var(--paper))}
.about__wordmark{
  position:absolute;left:50%;bottom:-.12em;transform:translateX(-50%);z-index:2;
  font-family:var(--ff-display);font-weight:200;
  font-size:clamp(3rem,13vw,11rem);letter-spacing:-.04em;line-height:.8;
  color:var(--paper);white-space:nowrap;
}
.about__grid{display:grid;grid-template-columns:minmax(0,.22fr) minmax(0,1fr) minmax(0,.6fr);gap:clamp(24px,4vw,64px);align-items:start}
.about__label{font-size:var(--fs-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--on-paper-dim);padding-top:10px}
.about__card{border:1px solid var(--line-paper);overflow:hidden;background:#fff}
.about__card img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.2)}
.about__req{display:flex;flex-direction:column;gap:8px;padding:24px;font-size:var(--fs-sm);color:var(--on-paper-dim)}
.about__req b{font-family:var(--ff-display);font-size:1rem;color:var(--on-paper);font-weight:400;letter-spacing:.02em}
.about__req a{color:var(--on-paper);border-bottom:1px solid var(--line-paper);display:inline-flex;align-items:center;min-height:24px;align-self:flex-start}
@media (max-width:1000px){.about__grid{grid-template-columns:1fr}}

/* ---------- Cards (разделы) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1px;background:var(--line)}
.card{
  position:relative;background:var(--ink);padding:clamp(26px,3vw,38px);
  display:flex;flex-direction:column;gap:14px;min-height:250px;
  transition:background .5s var(--ease);overflow:hidden;
}
.card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);
}
.card:hover{background:var(--ink-3)}
.card:hover::before{transform:scaleX(1)}
.card__num{font-size:var(--fs-xs);letter-spacing:.2em;color:var(--text-faint)}
.card h3{font-size:var(--fs-md);font-weight:300;letter-spacing:-.01em}
.card p{color:var(--text-dim);font-size:var(--fs-sm);flex:1}

/* ---------- Services (детальные) ---------- */
.svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:var(--line)}
.svc__item{background:var(--ink);padding:clamp(26px,3.4vw,44px);display:flex;flex-direction:column;gap:18px}
.svc__head{display:flex;align-items:baseline;gap:16px}
.svc__n{font-family:var(--ff-display);font-weight:200;font-size:1.6rem;color:transparent;-webkit-text-stroke:1px var(--gold-dim);flex:none}
.svc__item h3{font-size:var(--fs-md);font-weight:300}
.svc__item > p{color:var(--text-dim);font-size:var(--fs-sm)}
.ticks{display:flex;flex-direction:column;gap:11px;margin-top:auto;padding-top:8px}
.ticks li{display:flex;gap:12px;font-size:var(--fs-sm);color:var(--text-dim);line-height:1.5}
.ticks li::before{
  content:"";flex:none;width:14px;height:14px;margin-top:5px;
  background:var(--gold);opacity:.85;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M1 7.4 5 11.4 13 2.6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M1 7.4 5 11.4 13 2.6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat center/contain;
}
.section--paper .ticks li{color:var(--on-paper-dim)}

/* ---------- Process steps ---------- */
.steps{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.step{
  display:grid;grid-template-columns:90px minmax(0,1fr) 150px;gap:clamp(16px,3vw,48px);
  padding:clamp(26px,3.6vw,44px) 0;border-bottom:1px solid var(--line);align-items:start;
  transition:padding-left .5s var(--ease);
}
.step:hover{padding-left:12px}
.step__n{font-family:var(--ff-display);font-weight:200;font-size:clamp(2rem,3.6vw,3.2rem);line-height:.9;color:transparent;-webkit-text-stroke:1px var(--line)}
.step:hover .step__n{-webkit-text-stroke-color:var(--gold)}
.step__b{display:flex;flex-direction:column;gap:12px}
.step__b h3{font-size:var(--fs-md);font-weight:300}
.step__b p{color:var(--text-dim);font-size:var(--fs-sm);max-width:56ch}
.step__t{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--gold);text-align:right}
.section--paper .step,.section--paper .steps{border-color:var(--line-paper)}
.section--paper .step__n{-webkit-text-stroke-color:var(--line-paper)}
.section--paper .step__b p{color:var(--on-paper-dim)}
@media (max-width:800px){
  .step{grid-template-columns:60px minmax(0,1fr)}
  .step__t{grid-column:2;text-align:left}
}

/* ---------- Checklist (17 пунктов) ---------- */
.checklist{columns:2;column-gap:clamp(24px,4vw,64px)}
.checklist li{
  break-inside:avoid;display:flex;gap:14px;padding:13px 0;
  border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--text-dim);
}
.checklist li b{font-family:var(--ff-display);font-weight:300;color:var(--gold);flex:none;font-size:var(--fs-xs);padding-top:3px}
.section--paper .checklist li{border-color:var(--line-paper);color:var(--on-paper-dim)}
@media (max-width:760px){.checklist{columns:1}}

/* ---------- Price table ---------- */
.price{border:1px solid var(--line)}
.price__row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:20px clamp(18px,2.6vw,30px);border-bottom:1px solid var(--line-soft)}
.price__row:last-child{border-bottom:0}
.price__row span{font-size:var(--fs-sm);color:var(--text-dim)}
.price__row b{font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);color:var(--text);text-align:right;letter-spacing:-.01em}
.price__row--hi{background:var(--ink-2)}
.price__row--hi b{color:var(--gold)}
.section--paper .price{border-color:var(--line-paper)}
.section--paper .price__row{border-color:var(--line-paper)}
.section--paper .price__row b{color:var(--on-paper)}
.section--paper .price__row--hi{background:var(--paper-2)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:clamp(20px,2.6vw,30px) 0;text-align:left;
  font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);line-height:1.25;
  transition:color .35s var(--ease);
}
.faq__q:hover{color:var(--gold)}
.faq__icon{position:relative;width:16px;height:16px;flex:none}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;background:currentColor;transition:transform .45s var(--ease),opacity .3s}
.faq__icon::before{left:0;top:7.5px;width:16px;height:1px}
.faq__icon::after{left:7.5px;top:0;width:1px;height:16px}
.faq__item.is-open .faq__icon::after{transform:scaleY(0)}
.faq__item.is-open .faq__q{color:var(--gold)}
.faq__a{overflow:hidden;max-height:0;transition:max-height .6s var(--ease)}
.faq__a p{padding-bottom:clamp(22px,2.6vw,32px);max-width:74ch;color:var(--text-dim);font-size:var(--fs-sm)}
.section--paper .faq,.section--paper .faq__item{border-color:var(--line-paper)}
.section--paper .faq__a p{color:var(--on-paper-dim)}

/* ---------- Reviews ---------- */
.reviews{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1px;background:var(--line)}
.review{
  background:var(--ink);padding:clamp(24px,2.8vw,34px);
  display:flex;flex-direction:column;gap:18px;
}
.review__stars{color:var(--gold);letter-spacing:.24em;font-size:var(--fs-sm)}
.review > p{
  font-size:var(--fs-sm);color:var(--text-dim);line-height:1.66;
  display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;
}
.review.is-open > p{-webkit-line-clamp:unset;display:block}
.review__more,.checkgroup__btn{min-height:24px}
.review__more{
  align-self:flex-start;font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid transparent;transition:border-color .3s;
}
.review__more:hover{border-bottom-color:currentColor}
.review footer{display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line-soft)}
.review footer b{font-family:var(--ff-display);font-weight:400;font-size:var(--fs-sm);letter-spacing:.02em}
.review footer span{font-size:var(--fs-xs);color:var(--text-faint);letter-spacing:.04em}
.review[hidden]{display:none}

.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}
.filter{
  padding:9px 16px;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-dim);box-shadow:inset 0 0 0 1px var(--line);border-radius:var(--r);
  transition:color .3s,box-shadow .3s,background .3s;
}
.filter:hover{color:var(--text)}
.filter[aria-pressed="true"]{background:var(--gold);color:var(--ink);box-shadow:none;font-weight:600}

.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:44px}
.pagination__status{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}

/* Отзывы-лента на главной */
.quotes{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1px;background:var(--line-paper)}
.quote{background:var(--paper);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column;gap:16px}
.quote__stars{color:var(--gold-dim);letter-spacing:.22em;font-size:var(--fs-sm)}
.quote p{font-size:var(--fs-sm);color:var(--on-paper-dim);line-height:1.66}
.quote footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--line-paper);display:flex;flex-direction:column;gap:4px}
.quote footer b{font-family:var(--ff-display);font-weight:400;font-size:var(--fs-sm);color:var(--on-paper)}
.quote footer span{font-size:var(--fs-xs);color:var(--on-paper-dim)}

/* ---------- Requisites ---------- */
.req{border:1px solid var(--line)}
.req__row{display:grid;grid-template-columns:minmax(0,.5fr) minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px clamp(18px,2.4vw,28px);border-bottom:1px solid var(--line-soft)}
.req__row:last-child{border-bottom:0}
.req__k{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}
.req__v{font-size:var(--fs-sm);color:var(--text)}
.req__copy{
  font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);
  white-space:nowrap;display:inline-flex;align-items:center;
  min-height:24px;padding:2px 8px;margin:-2px -8px;border-radius:var(--r);
}
.req__copy.is-done{color:var(--text-dim)}
@media (max-width:760px){.req__row{grid-template-columns:1fr auto;gap:6px}.req__k{grid-column:1/-1}}

/* ---------- Doc / contract ---------- */
.doc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(28px,5vw,70px);align-items:start}
.doc__frame{border:1px solid var(--line);background:var(--ink-2);aspect-ratio:3/4;width:100%}
.doc-actions{display:flex;flex-wrap:wrap;gap:14px}
.note{font-size:var(--fs-xs);color:var(--text-faint)}
.section--paper .note{color:var(--on-paper-dim)}
@media (max-width:900px){.doc{grid-template-columns:1fr}}

.pay{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--line)}
.pay li{background:var(--ink);padding:24px;display:flex;flex-direction:column;gap:10px}
.pay li b{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.pay li span{font-size:var(--fs-sm);color:var(--text-dim)}

/* ---------- Page hero (внутренние страницы) ---------- */
.phero{position:relative;padding:calc(var(--nav-h) + clamp(70px,12vh,140px)) 0 clamp(50px,8vh,90px);overflow:hidden;background:var(--ink)}
.phero__bg{position:absolute;inset:0;z-index:0;opacity:.3}
.phero__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1) brightness(.5)}
.phero::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(8,8,10,.7),var(--ink) 92%);z-index:1}
.phero .container{position:relative;z-index:2}
.phero__ghost{
  position:absolute;right:var(--gut);top:50%;transform:translateY(-40%);z-index:1;
  font-family:var(--ff-display);font-weight:200;font-size:clamp(5rem,17vw,15rem);
  color:transparent;-webkit-text-stroke:1px rgba(234,232,228,.05);line-height:.8;
  pointer-events:none;user-select:none;
}
.phero h1{font-size:var(--fs-xl);font-weight:200;letter-spacing:-.035em;margin-top:20px}
.phero .lead{max-width:52ch;color:var(--text-dim);margin-top:22px}
.crumbs{display:flex;align-items:center;gap:10px;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}
.crumbs a{display:inline-flex;align-items:center;min-height:24px}
.crumbs a:hover{color:var(--gold)}

/* ---------- Showcase ---------- */
.showcase{position:relative;height:clamp(320px,62vh,620px);overflow:hidden}
.showcase img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4) brightness(.8)}
.showcase::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(8,8,10,.95),transparent 55%)}
.showcase__caption{position:absolute;z-index:2;left:0;right:0;bottom:0;padding-bottom:34px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.showcase__note{font-size:var(--fs-xs);color:var(--text-faint)}

/* ---------- CTA ---------- */
.cta{position:relative;overflow:hidden;background:var(--ink-2)}
.cta__bg{position:absolute;inset:0;z-index:0;opacity:.22}
.cta__bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.55)}
.cta::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(90% 120% at 50% 50%, transparent, rgba(8,8,10,.9))}
.cta__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;max-width:52rem;margin-inline:auto}
.cta__inner h2{font-size:var(--fs-xl);font-weight:200;letter-spacing:-.03em;text-wrap:balance}
.cta__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:10px}

/* ---------- Next section link ---------- */
.next{border-top:1px solid var(--line)}
.next a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(30px,5vh,60px) 0;transition:padding .5s var(--ease)}
.next a:hover{padding-inline:12px}
.next b{font-family:var(--ff-display);font-weight:200;font-size:var(--fs-lg);letter-spacing:-.02em}
.next svg{width:34px;height:12px;color:var(--gold);transition:transform .5s var(--ease)}
.next a:hover svg{transform:translateX(10px)}

/* ---------- Form ---------- */
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.field{display:flex;flex-direction:column;gap:9px}
.field--full{grid-column:1/-1}
.field label{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}
.field input,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);
  color:var(--text);font:inherit;padding:12px 0;transition:border-color .35s var(--ease);
}
.field input:focus,.field textarea:focus{border-bottom-color:var(--gold)}
.field input:focus:not(:focus-visible),
.field textarea:focus:not(:focus-visible){outline:none}
.field textarea{resize:vertical;min-height:96px}
.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-xs);color:var(--text-dim);line-height:1.5}
.consent input{width:16px;height:16px;margin-top:3px;accent-color:var(--gold);flex:none}
.consent a{color:var(--gold);border-bottom:1px solid rgba(201,178,138,.3)}
.form__note{font-size:var(--fs-xs);color:var(--text-faint)}

/* Сводка ошибок: появляется только после неудачной отправки, получает фокус */
.form__errsum{
  grid-column:1/-1;padding:14px 16px;border-radius:var(--r);
  box-shadow:inset 0 0 0 1px var(--warn);background:rgba(0,0,0,.25);
  display:flex;flex-direction:column;gap:8px;
}
.form__errsum[hidden]{display:none}
.form__errsum h3{
  font-family:var(--ff-body);font-size:var(--fs-xs);font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--warn);
}
.form__errsum ul{display:flex;flex-direction:column;gap:2px}
.form__errsum a{
  display:inline-flex;align-items:center;min-height:24px;
  font-size:var(--fs-sm);color:var(--text);
  border-bottom:1px solid rgba(234,232,228,.3);
}
.form__errsum a:hover{border-bottom-color:var(--warn)}
.consent.is-invalid span{color:var(--warn)}
@media (max-width:700px){.form{grid-template-columns:1fr}}

.contacts{display:flex;flex-direction:column;gap:1px;background:var(--line)}
.contacts li{background:var(--ink);padding:22px 24px;display:flex;flex-direction:column;gap:6px}
.contacts b{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-weight:500}
.contacts span,.contacts a{font-size:var(--fs-sm);color:var(--text)}
.contacts a:hover{color:var(--gold)}

/* ---------- Footer ---------- */
.ftr{border-top:1px solid var(--line);padding:clamp(50px,8vh,90px) 0 30px;background:var(--ink)}
.ftr__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1fr);gap:clamp(28px,4vw,64px)}
.ftr__mark{
  font-family:var(--ff-display);font-weight:200;font-size:clamp(2rem,4vw,3.2rem);
  letter-spacing:-.03em;line-height:1;
}
.ftr__nav{display:flex;flex-direction:column;gap:11px}
.ftr__nav a{font-size:var(--fs-sm);color:var(--text-dim);transition:color .3s,padding-left .3s;display:flex;align-items:center;min-height:24px}
.ftr__nav a:hover{color:var(--gold);padding-left:6px}
.ftr__contacts{display:flex;flex-direction:column;gap:11px;font-size:var(--fs-sm);color:var(--text-dim)}
.ftr__contacts b{color:var(--text-faint);font-weight:500;font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase}
.ftr__contacts a:hover{color:var(--gold)}
.ftr__socials{display:flex;gap:10px}
.ftr__socials a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);color:var(--text-dim);transition:color .3s,box-shadow .3s}
.ftr__socials a:hover{color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.ftr__socials svg{width:16px;height:16px}
.ftr__bottom{
  display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;
  margin-top:clamp(40px,6vh,70px);padding-top:24px;border-top:1px solid var(--line-soft);
  font-size:var(--fs-xs);color:var(--text-faint);
}
@media (max-width:900px){.ftr__grid{grid-template-columns:1fr}}

/* ---------- Placeholder marker ---------- */
.ph{
  color:var(--gold);background:rgba(201,178,138,.1);
  padding:1px 6px;border:1px dashed rgba(201,178,138,.45);border-radius:2px;
  font-size:.92em;white-space:nowrap;
}
.section--paper .ph{background:rgba(120,95,45,.09);color:#7a5f2c;border-color:rgba(120,95,45,.4)}



/* ==========================================================================
   Редакционный индекс разделов — вместо сетки одинаковых карточек
   ========================================================================== */
.index{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.index__row{
  display:grid;grid-template-columns:56px minmax(0,.9fr) minmax(0,1.5fr) 40px;
  align-items:baseline;gap:clamp(14px,2.5vw,40px);
  padding:clamp(20px,2.6vw,30px) 0;border-bottom:1px solid var(--line);
  position:relative;transition:padding-left .55s var(--ease);
}
.index__row::after{
  content:"";position:absolute;left:0;bottom:-1px;height:1px;width:100%;
  background:var(--gold);transform:scaleX(0);transform-origin:right;
  transition:transform .6s var(--ease);
}
.index__row:hover{padding-left:14px}
.index__row:hover::after{transform:scaleX(1);transform-origin:left}
.index__n{
  font-family:var(--ff-display);font-weight:200;font-size:1.5rem;line-height:1;
  color:transparent;-webkit-text-stroke:1px var(--line);transition:-webkit-text-stroke-color .45s var(--ease);
}
.index__row:hover .index__n{-webkit-text-stroke-color:var(--gold)}
.index__t{font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);letter-spacing:-.01em}
.index__d{color:var(--text-dim);font-size:var(--fs-sm);line-height:1.55;text-wrap:pretty}
.index__go{color:var(--gold);justify-self:end;transition:transform .5s var(--ease)}
.index__go svg{width:16px;height:11px}
.index__row:hover .index__go{transform:translateX(6px)}
@media (max-width:860px){
  .index__row{grid-template-columns:38px minmax(0,1fr) 28px;row-gap:6px}
  .index__d{grid-column:2/4;grid-row:2}
  .index__go{grid-column:3;grid-row:1;align-self:center}
}

/* ---------- Полировка: курсор, фокус, доступность ---------- */
a,button,[role="button"],summary,label.consent,.filter,.faq__q,.review__more,.req__copy{cursor:pointer}
.field input,.field textarea{cursor:text}
button:disabled{cursor:not-allowed}

/* Параллакс-слои двигаются только там, где это уместно */
[data-parallax]{will-change:transform}
@media (prefers-reduced-motion:reduce){
  [data-parallax]{transform:none!important;will-change:auto}
}

/* ==========================================================================
   РАСКАДРОВКА НА ВЕСЬ САЙТ
   Кадры лежат фиксированной подложкой, все блоки идут поверх неё.
   ========================================================================== */
body.has-stage{background:#000}
body.has-stage .hdr,
body.has-stage main,
body.has-stage .ftr,
body.has-stage .rail{position:relative;z-index:1}
body.has-stage .hdr{position:fixed;z-index:90}

.stagebg{position:fixed;inset:0;z-index:0;background:#000;pointer-events:none}
.stagebg__canvas{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:0;transition:opacity 1.2s var(--ease);
}
.stagebg__canvas.is-ready{opacity:1}
/* Постоянная вуаль: текст поверх движущегося кадра должен читаться всегда */
.stagebg__veil{
  position:absolute;inset:0;
  background:
    radial-gradient(130% 90% at 50% 45%, transparent 30%, rgba(0,0,0,.5) 80%, rgba(0,0,0,.82) 100%),
    linear-gradient(rgba(8,8,10,.34), rgba(8,8,10,.34));
}
.stagebg__boot{
  position:absolute;inset:auto 0 0 0;z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:14px;padding-bottom:14vh;
  transition:opacity .7s var(--ease), visibility .7s;
}
.stagebg__boot.is-done{opacity:0;visibility:hidden}
.stagebg__boot-bar{width:min(220px,40vw);height:1px;background:var(--line);position:relative;overflow:hidden}
.stagebg__boot-bar i{position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s linear}
.stagebg__boot-label{font-size:var(--fs-micro);letter-spacing:.3em;text-transform:uppercase;color:var(--text-faint)}

/* ---------- Первый экран ---------- */
.hero{position:relative}
.hero__track{position:relative;height:460vh}
.hero__pin{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center}
.hero__vignette{
  position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to right, rgba(0,0,0,.8) 0%, rgba(0,0,0,.46) 30%, rgba(0,0,0,.08) 56%, transparent 74%),
    linear-gradient(to bottom, rgba(0,0,0,.72) 0%, transparent 24%, transparent 64%, rgba(0,0,0,.8) 100%);
}
.hero__beats{position:absolute;inset:0}
.hero h1{
  font-size:var(--fs-mega);font-weight:200;line-height:.92;
  letter-spacing:-.035em;text-wrap:balance;margin:18px 0 0;
}
.hero h1 em{font-style:normal;color:var(--gold);display:block}
.hero__foot{
  position:absolute;z-index:2;left:0;right:0;bottom:0;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:0 var(--gut) 26px;max-width:var(--maxw);margin-inline:auto;
  font-size:var(--fs-micro);letter-spacing:.24em;text-transform:uppercase;color:var(--text-faint);
}
.hero__foot-line{flex:1;height:1px;background:var(--line);max-width:200px}
.hero__scroll{display:flex;align-items:center;gap:10px}
.hero__scroll i{display:block;width:1px;height:28px;background:linear-gradient(var(--gold),transparent);animation:scrollHint 2.2s var(--ease-io) infinite}
@keyframes scrollHint{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (prefers-reduced-motion:reduce){.hero__scroll i{animation:none}}
@media (max-width:760px){.hero__foot > span:first-child{display:none}}

/* Такты */
.beat{
  position:absolute;inset:0;z-index:2;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 var(--gut);max-width:var(--maxw);margin-inline:auto;
  opacity:0;visibility:hidden;transform:translateY(22px);
  transition:opacity .22s var(--ease), visibility 0s linear .22s, transform .3s var(--ease);
}
.beat.is-on{
  opacity:1;visibility:visible;transform:none;
  transition:opacity .5s var(--ease) .16s, visibility 0s, transform .7s var(--ease) .16s;
}
.beat > *{pointer-events:auto}
.beat--end{align-items:center;text-align:center}
.beat--end .beat__cap{margin-inline:auto}
.beat__sub{margin-top:22px;max-width:34ch;color:var(--text-dim);font-size:var(--fs-md);line-height:1.5;text-wrap:pretty}
.beat__num{
  font-family:var(--ff-display);font-weight:200;
  font-size:clamp(4rem,14vw,11rem);line-height:.85;letter-spacing:-.05em;
  color:transparent;-webkit-text-stroke:1px rgba(234,232,228,.22);
}
.beat__cap{font-size:var(--fs-md);max-width:30ch;color:var(--text);margin-top:8px;text-wrap:pretty}
.beat__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}

/* ---------- Секции поверх кадра ---------- */
/* «Стекло» — плотная подложка там, где много текста */
.section--glass{
  background:rgba(8,8,10,.66);
  -webkit-backdrop-filter:blur(18px) saturate(125%);
  backdrop-filter:blur(18px) saturate(125%);
  border-block:1px solid var(--line-soft);
}
/* «Открытая» секция — кадр виден почти целиком */
.section--open{background:transparent}

body.has-stage .marquee{background:rgba(8,8,10,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
body.has-stage .ftr{background:rgba(8,8,10,.82);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}

/* Карточки внутри стекла не должны быть «дырой» */
body.has-stage .stats,
body.has-stage .route,
body.has-stage .quotes{background:var(--line)}
body.has-stage .stat,
body.has-stage .route li{background:rgba(13,13,16,.72)}
body.has-stage .section--open .stat{background:rgba(13,13,16,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
body.has-stage .telemetry{background:rgba(13,13,16,.8)}

/* Отзывы на главной — тёмное стекло вместо светлых карточек */
body.has-stage .quote{background:rgba(13,13,16,.74)}
body.has-stage .quote p{color:var(--text-dim)}
body.has-stage .quote footer{border-top-color:var(--line-soft)}
body.has-stage .quote footer b{color:var(--text)}
body.has-stage .quote footer span{color:var(--text-faint)}
body.has-stage .quote__stars{color:var(--gold)}

/* Блок «О нас» на главной */
body.has-stage .about__grid{
  display:grid;grid-template-columns:minmax(0,.18fr) minmax(0,1fr) minmax(0,.52fr);
  gap:clamp(24px,4vw,64px);align-items:start;
}
body.has-stage .about__label{color:var(--text-faint)}
body.has-stage .about__card{background:rgba(13,13,16,.78);border:1px solid var(--line)}
body.has-stage .about__req b{color:var(--text)}
body.has-stage .about__req{color:var(--text-dim)}
body.has-stage .about__req a{color:var(--text)}
@media (max-width:1000px){body.has-stage .about__grid{grid-template-columns:1fr}}

/* CTA на главной — без фотоподложки */
.cta--open{background:transparent}
.cta--open::after{display:none}

/* Мобильная раскладка первого экрана */
@media (max-width:760px){
  .hero__track{height:400vh}
  .beat{justify-content:flex-end;padding-bottom:16vh}
  .beat--end{justify-content:flex-end}
  .hero h1{font-size:clamp(2.3rem,11vw,3.4rem)}
  .beat__sub{font-size:1rem;margin-top:16px;max-width:30ch}
  .beat__num{font-size:clamp(3rem,16vw,5rem)}
  .beat__cap{font-size:1rem}
  .beat__actions{margin-top:24px;gap:10px}
  .hero__vignette{
    background:linear-gradient(to bottom, rgba(0,0,0,.72) 0%, transparent 18%, transparent 42%, rgba(0,0,0,.74) 60%, rgba(0,0,0,.92) 100%);
  }
  .stagebg__boot{padding-bottom:9vh}
  .section--glass{background:rgba(8,8,10,.74)}
}

@media (prefers-reduced-motion:reduce){
  .hero__track{height:auto}
  .hero__pin{position:relative;min-height:100svh}
  .beat{position:relative;opacity:1;visibility:visible;transform:none;padding-block:12vh}
  .hero__beats{position:relative;inset:auto}
}

/* CTA на главной: мягкая подложка только под текстом, кадр остаётся виден */
.cta--open{position:relative}
.cta--open .cta__inner::before{
  content:"";position:absolute;z-index:-1;
  inset:-8% -12%;
  background:radial-gradient(60% 60% at 50% 50%, rgba(8,8,10,.82) 0%, rgba(8,8,10,.6) 55%, transparent 100%);
  pointer-events:none;
}
.cta--open .cta__inner{isolation:isolate}

/* Блок «Активная поставка» без фотографии: панель по центру,
   кадр раскадровки виден по сторонам и не перекрывается картинкой. */
body.has-stage .delivery{display:block}
body.has-stage .delivery__panel{
  max-width:860px;margin-inline:auto;
  display:flex;flex-direction:column;gap:26px;
}


/* ==========================================================================
   ДОСЬЕ СДЕЛКИ
   Сквозная идея: сайт — не рекламный буклет, а папка по вашей сделке.
   Сигнатурный мотив: шифр раздела в волосяной рамке (ЗБ-04 · ПРОВЕРКА)
   и нумерация строк как в описи. Работает на 390 px и в печати.
   ========================================================================== */

/* Цифры везде табличные: суммы, сроки, номера не «пляшут» при пересчёте */
b,strong,.stat b,.price__row b,.calcrow__v,.calctotal__v,.revstat b,
.step__t,.index__n,.beat__num,.checkline__n,.calcrow__n,td,th{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}

/* ---------- Шифр раздела: сигнатурный мотив ---------- */
.cipher{
  display:inline-flex;align-items:center;gap:0;
  font-family:var(--ff-body);font-size:var(--fs-micro);font-weight:500;
  letter-spacing:.2em;text-transform:uppercase;
  color:var(--text-faint);
}
.cipher > span{
  padding:5px 9px 4px;
  box-shadow:inset 0 0 0 1px var(--line);
}
.cipher > span:first-child{
  color:var(--gold);
  box-shadow:inset 0 0 0 1px rgba(201,178,138,.4);
}
.cipher > span + span{margin-left:-1px}
.section--paper .cipher,.on-paper .cipher{color:var(--on-paper-dim)}
.section--paper .cipher > span,.on-paper .cipher > span{box-shadow:inset 0 0 0 1px var(--line-paper)}
.section--paper .cipher > span:first-child,.on-paper .cipher > span:first-child{
  color:#7a5f2c;box-shadow:inset 0 0 0 1px rgba(120,95,45,.4);
}

/* ---------- Заголовок секции с шифром ---------- */
.section-head .cipher{margin-bottom:2px}
.section-head p.muted{max-width:62ch;text-wrap:pretty}

/* ---------- Опись: нумерованные строки ---------- */
.ledger{border-top:1px solid var(--line)}
.ledger__row{
  display:grid;grid-template-columns:44px minmax(0,1fr);
  gap:clamp(12px,2vw,28px);align-items:start;
  padding:var(--s3) 0;border-bottom:1px solid var(--line);
}
.ledger__n{
  font-size:var(--fs-xs);letter-spacing:.14em;color:var(--text-faint);
  padding-top:4px;
}
.ledger__b h3{font-size:var(--fs-md);font-weight:300;margin-bottom:10px}
.ledger__b p{color:var(--text-dim);font-size:var(--fs-sm);max-width:66ch}
.section--paper .ledger,.section--paper .ledger__row{border-color:var(--line-paper)}
.section--paper .ledger__b p{color:var(--on-paper-dim)}

/* ==========================================================================
   КАЛЬКУЛЯТОР «ПОД КЛЮЧ»
   ========================================================================== */
.calc{
  display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,64px);align-items:start;
}
@media (max-width:960px){.calc{grid-template-columns:1fr}}

.calc__form{display:flex;flex-direction:column;gap:var(--s3)}
.calc__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.calc__grid .field--full{grid-column:1/-1}
@media (max-width:520px){.calc__grid{grid-template-columns:1fr}}

.field select{
  width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);
  color:var(--text);font:inherit;padding:12px 0;cursor:pointer;
  transition:border-color var(--t-mid) var(--ease);
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23938f8a' stroke-width='1.3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 2px center;background-size:12px 8px;
  padding-right:24px;border-radius:0;
}
.field select:focus{border-bottom-color:var(--gold)}
.field select:focus:not(:focus-visible){outline:none}
.field select option{background:var(--ink-2);color:var(--text)}
.field__hint{font-size:var(--fs-xs);color:var(--text-faint);line-height:1.5}
.field__err{
  font-size:var(--fs-xs);color:var(--warn);line-height:1.5;
  display:block;min-height:0;
}
.field.is-invalid input,.field.is-invalid textarea,.field.is-invalid select{
  border-bottom-color:var(--warn);
}

/* Возврат к сохранённому расчёту */
.calc__resume{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);
  padding:14px 18px;background:var(--ink-2);
  box-shadow:inset 0 0 0 1px var(--line);
  font-size:var(--fs-sm);color:var(--text-dim);
}
.calc__resume b{color:var(--text);font-weight:500}
.calc__resume button{
  font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);border-bottom:1px solid transparent;transition:border-color var(--t-fast);
}
.calc__resume button{display:inline-flex;align-items:center;min-height:24px}
.calc__resume button:hover{border-bottom-color:currentColor}
.calc__resume button + button{color:var(--text-faint)}

/* Лист результата — «бумага» поверх тёмного экрана */
.calcsheet{
  background:var(--paper);color:var(--on-paper);
  box-shadow:0 40px 80px -50px rgba(0,0,0,.9);
  padding:clamp(22px,3vw,38px);
  display:flex;flex-direction:column;gap:var(--s3);
  position:relative;
}
.calcsheet[hidden]{display:none}
.calcsheet::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--gold-dim),var(--gold),transparent);
}
.calcsheet__head{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:var(--s2);padding-bottom:var(--s2);border-bottom:1px solid var(--line-paper);
}
.calcsheet__title{
  font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);
  letter-spacing:-.01em;
}
.calcsheet__stamp{
  font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;
  color:#7a5f2c;box-shadow:inset 0 0 0 1px rgba(120,95,45,.4);padding:5px 9px;
}

.calcrows{display:flex;flex-direction:column}
.calcrow{
  display:grid;grid-template-columns:28px minmax(0,1fr) auto;
  gap:var(--s2);align-items:baseline;
  padding:12px 0;border-bottom:1px solid rgba(17,17,16,.08);
}
.calcrow__n{font-size:var(--fs-micro);letter-spacing:.12em;color:rgba(17,17,16,.62)}
.calcrow__k{font-size:var(--fs-sm);color:var(--on-paper);line-height:1.4}
.calcrow__k i{display:block;font-style:normal;font-size:var(--fs-xs);color:var(--on-paper-dim);margin-top:3px}
.calcrow__v{font-size:var(--fs-sm);font-weight:500;white-space:nowrap;text-align:right}

.calctotal{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--line-paper);
}
.calctotal__k{font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--on-paper-dim)}
.calctotal__v{
  font-family:var(--ff-display);font-weight:300;
  font-size:clamp(1.5rem,3.2vw,2.3rem);letter-spacing:-.03em;line-height:1.1;
  white-space:nowrap;
}
.calcsheet__note{font-size:var(--fs-xs);color:var(--on-paper-dim);line-height:1.6;max-width:64ch}
.calcsheet__actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:var(--s1)}
.calcsheet .btn-ghost{--fg:var(--on-paper);box-shadow:inset 0 0 0 1px var(--line-paper)}
.calcsheet .btn-ghost:hover{--fg:var(--paper);background:var(--on-paper)}
.calcsheet .btn-ghost.is-done{--fg:var(--paper);background:#2f6b46;box-shadow:none}

/* Плавное проявление листа при первом расчёте */
.calcsheet.is-live{animation:sheetIn var(--t-slow) var(--ease) both}
@keyframes sheetIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .calcsheet.is-live{animation:none}
}

/* ==========================================================================
   ЧЕК-ЛИСТ ПРОВЕРКИ — группы с раскрытием
   ========================================================================== */
.checkgroups{border-top:1px solid var(--line)}
.checkgroup{border-bottom:1px solid var(--line)}
.checkgroup__btn{
  width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;gap:clamp(12px,2vw,24px);
  padding:clamp(18px,2.4vw,26px) 0;text-align:left;
  transition:color var(--t-mid) var(--ease);
}
.checkgroup__btn:hover{color:var(--gold)}
.checkgroup__n{
  font-size:var(--fs-xs);letter-spacing:.14em;color:var(--text-faint);
  font-variant-numeric:tabular-nums;
}
.checkgroup__t{
  font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);
  line-height:1.25;letter-spacing:-.01em;
}
.checkgroup__c{
  font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-faint);white-space:nowrap;
}
.checkgroup__icon{position:relative;width:14px;height:14px;flex:none}
.checkgroup__icon::before,.checkgroup__icon::after{
  content:"";position:absolute;background:currentColor;
  transition:transform var(--t-slow) var(--ease);
}
.checkgroup__icon::before{left:0;top:6.5px;width:14px;height:1px}
.checkgroup__icon::after{left:6.5px;top:0;width:1px;height:14px}
.checkgroup.is-open .checkgroup__icon::after{transform:scaleY(0)}
.checkgroup.is-open .checkgroup__btn{color:var(--gold)}
.checkgroup__panel{overflow:hidden;max-height:0;transition:max-height var(--t-slow) var(--ease)}
.checkgroup__list{padding-bottom:var(--s3);display:flex;flex-direction:column}
.checkline{
  display:grid;grid-template-columns:34px minmax(0,1fr);
  gap:var(--s2);padding:12px 0;border-top:1px solid var(--line-soft);
}
.checkline__n{font-size:var(--fs-xs);color:var(--gold);padding-top:2px}
.checkline__b b{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--text);margin-bottom:4px}
.checkline__b span{display:block;font-size:var(--fs-sm);color:var(--text-dim);max-width:70ch;line-height:1.55}
@media (max-width:640px){
  .checkgroup__btn{grid-template-columns:auto minmax(0,1fr) auto;row-gap:4px}
  .checkgroup__c{grid-column:2;grid-row:2;text-transform:none;letter-spacing:.06em}
}

/* ==========================================================================
   СРАВНЕНИЕ СЦЕНАРИЕВ — честная таблица
   ========================================================================== */
.compare{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.compare table{width:100%;min-width:660px;border-collapse:collapse;text-align:left}
.compare th,.compare td{
  padding:16px clamp(12px,1.6vw,20px);vertical-align:top;
  border-bottom:1px solid var(--line);font-size:var(--fs-sm);
}
.compare thead th{
  font-family:var(--ff-display);font-weight:300;font-size:var(--fs-sm);
  letter-spacing:.02em;color:var(--text);border-bottom-color:var(--line);
  padding-top:0;
}
.compare thead th:first-child{color:var(--text-faint);font-family:var(--ff-body);
  font-size:var(--fs-xs);letter-spacing:.16em;text-transform:uppercase}
.compare tbody th{
  font-weight:500;color:var(--text-faint);font-size:var(--fs-xs);
  letter-spacing:.14em;text-transform:uppercase;width:22%;
}
.compare td{color:var(--text-dim)}
.compare td.is-us{color:var(--text);background:rgba(201,178,138,.05)}
.compare thead th.is-us{color:var(--gold)}
.section--paper .compare th,.section--paper .compare td{border-color:var(--line-paper)}
.section--paper .compare td{color:var(--on-paper-dim)}
.section--paper .compare thead th{color:var(--on-paper)}
.section--paper .compare thead th:first-child,
.section--paper .compare tbody th{color:var(--on-paper-dim)}
.section--paper .compare thead th.is-us{color:#7a5f2c}
.section--paper .compare td.is-us{color:var(--on-paper);background:rgba(120,95,45,.07)}
.section--paper .compare__hint{color:var(--on-paper-dim)}
.compare__hint{font-size:var(--fs-xs);color:var(--text-faint);margin-top:12px}

/* ==========================================================================
   ЮРИДИЧЕСКИЙ ПАСПОРТ
   ========================================================================== */
.passport{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:1px;background:var(--line);
}
.passport__cell{
  background:var(--ink-2);padding:20px clamp(16px,2vw,24px);
  display:flex;flex-direction:column;gap:7px;min-width:0;
}
.passport__k{font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--text-faint)}
.passport__v{font-size:var(--fs-sm);color:var(--text);overflow-wrap:anywhere}
.passport__cell--wide{grid-column:span 2}
@media (max-width:560px){.passport__cell--wide{grid-column:span 1}}
body.has-stage .passport__cell{background:rgba(13,13,16,.78)}
.passport__foot{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);
  margin-top:var(--s3);font-size:var(--fs-xs);color:var(--text-faint);
}

/* ==========================================================================
   РИСК-РЕВЕРС «ЧТО ЕСЛИ»
   ========================================================================== */
.riskrev{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1px;background:var(--line)}
.risk{
  background:var(--ink);padding:clamp(22px,2.8vw,32px);
  display:flex;flex-direction:column;gap:12px;
}
.risk__q{
  font-family:var(--ff-display);font-weight:300;font-size:var(--fs-md);
  line-height:1.22;letter-spacing:-.01em;max-width:22ch;
}
.risk__a{font-size:var(--fs-sm);color:var(--text-dim);line-height:1.6}
.risk__src{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--line-soft);
  font-size:var(--fs-micro);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
}
body.has-stage .risk{background:rgba(13,13,16,.74)}
.section--paper .risk{background:var(--paper)}
.section--paper .riskrev{background:var(--line-paper)}
.section--paper .risk__a{color:var(--on-paper-dim)}
.section--paper .risk__src{color:#7a5f2c;border-top-color:var(--line-paper)}

/* ==========================================================================
   СТАТИСТИКА ОТЗЫВОВ
   ========================================================================== */
.revstats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:1px;background:var(--line);margin-bottom:var(--s5);
}
.revstat{
  background:var(--ink-2);padding:clamp(20px,2.4vw,28px);
  display:flex;flex-direction:column;gap:8px;
}
.revstat b{
  font-family:var(--ff-display);font-weight:200;line-height:1;
  font-size:clamp(1.7rem,3.4vw,2.6rem);letter-spacing:-.03em;
}
.revstat span{font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint)}
.revbars{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.revbar{display:grid;grid-template-columns:30px minmax(0,1fr) 44px;gap:10px;align-items:center;font-size:var(--fs-xs);color:var(--text-dim)}
.revbar__track{height:2px;background:var(--ink-4)}
.revbar__fill{display:block;height:100%;background:var(--gold)}
.revbar__v{text-align:right;font-variant-numeric:tabular-nums}

/* ==========================================================================
   ЛИПКАЯ ПАНЕЛЬ ДЕЙСТВИЯ (мобильная)
   ========================================================================== */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;
  gap:10px;padding:10px var(--gut) calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in oklab, var(--ink) 88%, transparent);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border-top:1px solid var(--line-soft);
  transform:translateY(110%);
  transition:transform var(--t-slow) var(--ease);
}
.dock.is-on{transform:none}
.dock .btn{flex:1;justify-content:center;padding-inline:14px}
.dock .btn-ghost{flex:0 0 auto}
@media (max-width:760px){.dock{display:flex}}
@media (prefers-reduced-motion:reduce){.dock{transition:none}}
@media (max-width:760px){
  body:has(.dock) .ftr{padding-bottom:calc(70px + env(safe-area-inset-bottom))}
}

/* ==========================================================================
   СОСТОЯНИЯ ФОРМЫ
   ========================================================================== */
.form.is-sending .btn[type="submit"]{opacity:.65;pointer-events:none}
.btn:disabled,.btn[disabled]{opacity:.5;pointer-events:none}
.btn:active{transform:translateY(0) scale(.99)}
.form__note--ok{color:var(--gold)}
.form__note--err{color:var(--warn)}
.form__note{transition:color var(--t-mid) var(--ease)}
/* Запасное поле: буфер обмена недоступен — текст заявки копируют руками */
.form__leadcopy{
  grid-column:1/-1;width:100%;margin-top:14px;padding:14px 16px;
  background:var(--ink-2);border:1px solid var(--line);color:var(--text);
  font:inherit;font-size:var(--fs-xs);line-height:1.6;resize:vertical;
}
.form__leadcopy:focus{outline:1px solid var(--gold);outline-offset:2px}

/* Подсветка активного поля — подтверждение состоянием, а не тостом */
.field input:focus,.field textarea:focus,.field select:focus{border-bottom-width:1px}
.field:focus-within label{color:var(--gold)}
.field label{transition:color var(--t-fast) var(--ease)}

/* ==========================================================================
   ПЕЧАТЬ: расчёт и реквизиты выходят документом на A4
   ========================================================================== */
@media print{
  @page{size:A4;margin:16mm 14mm}
  :root{--text:#111110;--text-dim:#3d3b37;--text-faint:#6a6862}

  html,body{background:#fff!important;color:#111110!important}
  body{font-size:10.5pt;line-height:1.45}

  .stagebg,.hdr,.rail,.dock,.marquee,.next,.cta,.ftr__socials,
  .burger,.skip,.hero,.phero__bg,.phero__ghost,.filters,.pagination,
  .calc__form,.calc__resume,.calcsheet__actions,.doc__frame,
  .req__copy,.passport__foot,.checkgroup__icon,.faq__icon,
  .link-arrow,.btn,.review__more,.field__hint,
  .section--glass::before{display:none!important}

  /* Аккордеоны на печати раскрыты: бумага не кликается */
  .faq__a,.checkgroup__panel{max-height:none!important;overflow:visible!important}

  .section,.section--tight{padding:10mm 0!important;background:none!important}
  .container{max-width:none;padding:0}
  .reveal{opacity:1!important;transform:none!important}

  /* Шапка печатного листа собирается из данных страницы */
  .calcsheet{
    box-shadow:none!important;background:#fff!important;padding:0!important;
    break-inside:avoid;
  }
  .calcsheet::before{display:none}
  .calcsheet__stamp{box-shadow:inset 0 0 0 1px #999!important;color:#111!important}
  .calcrow{border-bottom:1px solid #ddd!important;padding:7pt 0}
  .calctotal{border-top:1px solid #111!important}
  .calctotal__v{font-size:16pt}

  /* Кнопка «Версия для печати» печатает только лист расчёта */
  body.print-calc main > section{display:none!important}
  body.print-calc main > section#calc{display:block!important}
  body.print-calc #calc .section-head{display:none!important}
  body.print-calc .ftr,body.print-calc .marquee{display:none!important}

  .print-only{display:block!important}
  .printhead{
    display:flex!important;justify-content:space-between;align-items:flex-start;
    gap:10mm;padding-bottom:4mm;margin-bottom:6mm;border-bottom:1px solid #111;
  }
  .printhead b{font-family:var(--ff-display);font-size:13pt;font-weight:400}
  .printhead span{display:block;font-size:8.5pt;color:#444;line-height:1.5}

  a{color:#111!important;text-decoration:none}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555}
  a[href^="#"]::after,a[href^="mailto"]::after{content:""}

  .ph{border:1px solid #999!important;background:none!important;color:#333!important}
  .req,.price,.passport{break-inside:avoid}
  .passport{background:#fff!important;gap:0}
  .passport__cell{background:#fff!important;border:1px solid #ddd;margin:-0.5px}
  h2,h3{break-after:avoid}
}
.print-only{display:none}
.printhead{display:none}

/* ==========================================================================
   ПОЛИРОВКА
   ========================================================================== */
/* Заголовки не уходят в простыню и не рвут слова */
h1,h2,h3{text-wrap:balance;overflow-wrap:break-word}
.lead,p{text-wrap:pretty}

/* Мягкое подчёркивание текстовых ссылок внутри абзацев */
.stack p a:not(.btn):not(.link-arrow),
.risk__a a,.calcsheet__note a{
  color:inherit;border-bottom:1px solid rgba(201,178,138,.45);
  transition:border-color var(--t-fast) var(--ease);
}
.stack p a:not(.btn):not(.link-arrow):hover{border-bottom-color:var(--gold)}

/* Скрытая область для объявлений скринридеру */
.sr-live{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Контейнер горизонтальной прокрутки не должен ронять всю страницу */
html,body{overflow-x:clip}

/* Мобильный первый экран: якорь после шапки */
:target{scroll-margin-top:calc(var(--nav-h) + 16px)}

/* Атрибут hidden всегда сильнее любых display-правил компонентов */
[hidden]{display:none!important}

/* ==========================================================================
   ПРОКРУЧИВАЕМАЯ РАСКАДРОВКА В СЕКЦИИ
   Кадр меняется, пока секция проходит мимо экрана. Матовая подложка
   под текст: сам кадр уже приглушён на этапе нарезки, здесь только вуаль.
   ========================================================================== */
.scrub{position:relative;isolation:isolate;overflow:hidden;background:var(--ink)}
.scrub__media{position:absolute;inset:0;z-index:-1;pointer-events:none;background:#000}
.scrub__canvas{
  position:absolute;inset:0;width:100%;height:100%;display:block;
  opacity:0;transition:opacity var(--t-slow) var(--ease);
}
.scrub__canvas.is-ready{opacity:1}

/* Вуаль: текст поверх движущегося кадра должен читаться всегда.
   Плотнее слева, где лежит заголовок, и по краям — кадр остаётся виден. */
.scrub__veil{
  position:absolute;inset:0;
  background:
    linear-gradient(100deg, rgba(8,8,10,.94) 0%, rgba(8,8,10,.82) 34%, rgba(8,8,10,.5) 62%, rgba(8,8,10,.42) 100%),
    linear-gradient(to bottom, var(--ink) 0%, rgba(8,8,10,.18) 22%, rgba(8,8,10,.18) 74%, var(--ink) 100%);
}
/* Волосяная рамка сверху и снизу — полоса читается как врезка, а не «дыра» */
.scrub::before,.scrub::after{
  content:"";position:absolute;left:0;right:0;height:1px;background:var(--line);z-index:1;
}
.scrub::before{top:0}
.scrub::after{bottom:0}

/* Карточки внутри полосы: плотнее обычных, чтобы не спорить с кадром */
.scrub .cards{background:var(--line-soft)}
.scrub .card{
  background:rgba(8,8,10,.62);
  -webkit-backdrop-filter:blur(14px) saturate(120%);
  backdrop-filter:blur(14px) saturate(120%);
}
.scrub .card:hover{background:rgba(19,19,24,.74)}

/* Подпись к кадру: откуда взялся и что показывает */
.scrub__cap{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  margin-top:clamp(28px,4vh,48px);
  font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;
  color:var(--text-faint);
}
.scrub__cap i{
  font-style:normal;display:inline-block;width:26px;height:1px;background:var(--gold);opacity:.7;
}

@media (max-width:760px){
  /* На телефоне кадр уходит глубже в фон: колонка текста узкая */
  .scrub__veil{
    background:
      linear-gradient(to bottom, var(--ink) 0%, rgba(8,8,10,.72) 16%, rgba(8,8,10,.72) 84%, var(--ink) 100%);
  }
  .scrub .card{background:rgba(8,8,10,.78)}
}

@media (prefers-reduced-motion:reduce){
  .scrub__canvas{transition:none}
}

@media print{
  .scrub__media{display:none!important}
  .scrub{background:#fff!important}
  .scrub .card{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
}
