/* ===== Tokens ===== */
:root{
  --bg: #15140f;
  --bg-soft: #1c1a13;
  --panel: #211f17;
  --line: rgba(255,240,210,0.08);
  --line-strong: rgba(255,240,210,0.16);
  --ink: #f3ede0;
  --ink-dim: #b9b2a0;
  --ink-faint: #7d7767;
  --amber: #ffb347;
  --amber-strong: #ff8a00;
  --blueprint: #6ea8c9;
  --radius: 14px;
  --font-display: 'Space Grotesk', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html, body{ overflow-x: hidden; max-width: 100%; }
body{
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums;
}
h1,h2,h3{ text-wrap: balance; overflow-wrap: break-word; hyphens: none; }
p,li,summary,figcaption{ text-wrap: pretty; }
img{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
.wrap{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ===== Background texture ===== */
.grid-overlay{
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 90%);
  opacity: .6;
}

/* ===== Header ===== */
.site-header{
  position: sticky;
  top: 0;
  z-index: 20;
  backdrop-filter: blur(10px);
  background: rgba(21,20,15,0.72);
  border-bottom: 1px solid var(--line);
}
.header-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand-mark{
  width: 14px; height: 14px;
  border-radius: 3px;
  background: var(--amber);
  box-shadow: 0 0 16px 2px rgba(255,179,71,0.7);
}
.brand-text{
  font-family: var(--font-mono);
  font-size: 14px;
  letter-spacing: .08em;
  color: var(--ink);
}
.brand-accent{ color: var(--ink-faint); }

.header-actions{ display: flex; align-items: center; gap: 20px; }
.header-phone{
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--ink-dim);
  transition: color .18s ease;
  white-space: nowrap;
}
.header-phone svg{ width: 16px; height: 16px; }
.header-phone:hover{ color: var(--amber); }
.header-phone-copy{ display: grid; gap: 1px; }
.header-phone-copy strong{ color: var(--ink-dim); font: inherit; }
.header-phone-copy small{
  color: var(--ink-faint);
  font: 10px/1.2 var(--font-mono);
  letter-spacing: .02em;
}

/* ===== Buttons ===== */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: 999px;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 15px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  white-space: nowrap;
}
.btn-primary{
  background: linear-gradient(180deg, #ffc46b, var(--amber-strong));
  color: #191305;
  box-shadow: 0 0 0 1px rgba(255,138,0,0.4), 0 10px 30px -8px rgba(255,138,0,0.65);
}
.btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 0 0 1px rgba(255,138,0,0.55), 0 16px 34px -8px rgba(255,138,0,0.8); }
.btn-outline{
  background: transparent;
  border-color: var(--line-strong);
  color: var(--ink);
}
.btn-outline:hover{ border-color: var(--amber); color: var(--amber); }
.btn-ghost{
  padding: 10px 20px;
  font-size: 14px;
  background: transparent;
  border-color: var(--line-strong);
  color: var(--ink-dim);
}
.btn-ghost:hover{ color: var(--ink); border-color: var(--amber); }

/* ===== Mounting methods ===== */
.mounting{ position:relative; z-index:1; padding:88px 0; border-top:1px solid var(--line); }
.mounting-lead{ max-width:720px; margin:-12px 0 34px; color:var(--ink-dim); font-size:17px; }
.mounting-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.mounting-card-wide{ grid-column:span 2; }
.mounting-duo{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.mounting-duo .mounting-visual{ min-width:0; }
.mounting-card{ position:relative; min-width:0; padding:10px 10px 20px; border:1px solid var(--line-strong); border-radius:var(--radius); background:linear-gradient(180deg,rgba(33,31,23,.96),rgba(24,23,18,.9)); overflow:hidden; }
.mounting-visual{ display:block; width:100%; height:clamp(180px,20vw,236px); margin-bottom:18px; border-radius:9px; object-fit:cover; box-shadow:inset 0 0 0 1px rgba(255,179,71,.16); }
.mounting-index{ display:block; margin:0 8px 8px; color:var(--amber); font:12px var(--font-mono); letter-spacing:.08em; }
.mounting-card h3{ margin:0 8px 8px; font-family:var(--font-display); font-size:18px; }
.mounting-card p{ margin:0 8px; color:var(--ink-dim); font-size:14px; }

@media (max-width:900px){ .mounting-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .mounting{ padding:64px 0; } .mounting-grid{ grid-template-columns:1fr; } .mounting-card-wide{grid-column:auto}.mounting-duo{gap:6px} }

/* ===== Hero ===== */
.hero{ position: relative; z-index: 1; padding: 96px 0 80px; overflow: hidden; }
.hero-grid{
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 48px;
  align-items: center;
}
.eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--ink-dim);
  margin: 0 0 28px;
}
.eyebrow-dot{
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--amber);
  box-shadow: 0 0 10px 2px rgba(255,179,71,.8);
}
.hero-title{
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(34px, 4.4vw, 62px);
  line-height: 1.03;
  letter-spacing: -0.01em;
  margin: 0 0 26px;
}
.hero-title-glow{
  color: var(--amber);
  text-shadow: 0 0 40px rgba(255,179,71,0.45);
}
.hero-sub{
  font-size: 18px;
  color: var(--ink-dim);
  max-width: 46ch;
  margin: 0 0 40px;
}
.hero-copy{ min-width:0; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; width:calc(100% - 44px); max-width:100%; margin-bottom:56px; align-items:stretch; overflow:visible; }
.hero-actions .btn{ flex:1 1 230px; width:auto; max-width:100%; min-width:0; min-height:66px; padding-inline:15px; display:inline-flex; align-items:center; justify-content:center; text-align:center; white-space:nowrap; font-size:clamp(14px,1.12vw,16px); }
.hero-meta{ display: flex; gap: 40px; }
.hero-meta-item{ display: flex; flex-direction: column; gap: 6px; }
.hero-meta-num{
  font-family: var(--font-mono);
  font-size: 22px;
  color: var(--amber);
}
.hero-meta-label{
  font-size: 13px;
  color: var(--ink-faint);
  line-height: 1.35;
}

/* ---- hero visual: blueprint panel ---- */
.hero-visual{ position: relative; height: 460px; }
.beam{
  position: absolute;
  top: -120px; left: 50%;
  width: 640px; height: 640px;
  transform: translateX(-50%);
  background: conic-gradient(from 200deg at 50% 0%, transparent 0deg, rgba(255,179,71,0.16) 35deg, transparent 70deg);
  pointer-events: none;
}
.grid-panel{
  position: absolute;
  inset: 40px 20px;
  border: 1px solid var(--line-strong);
  border-radius: 18px;
  background: linear-gradient(160deg, var(--panel), var(--bg-soft));
  box-shadow: 0 40px 80px -30px rgba(0,0,0,0.6), inset 0 0 0 1px rgba(255,255,255,0.02);
  display: flex;
  flex-direction: column;
  padding: 28px;
  gap: 18px;
}
.grid-panel-row{
  flex: 1;
  border-radius: 10px;
  background:
    radial-gradient(120px 60px at 50% 50%, rgba(255,179,71,0.22), transparent 70%),
    repeating-linear-gradient(90deg, rgba(255,240,210,0.05) 0 1px, transparent 1px 33.33%);
  border: 1px solid var(--line);
  position: relative;
}
.grid-panel-row::after{
  content: '';
  position: absolute;
  inset: 10px;
  border: 1px dashed rgba(255,179,71,0.35);
  border-radius: 6px;
}
.dim-label{
  position: absolute;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--blueprint);
  letter-spacing: .05em;
}
.dim-top{ top: 8px; right: 32px; }
.dim-side{ bottom: 32px; left: 8px; writing-mode: vertical-rl; }

/* ===== Footer ===== */
.site-footer{ border-top: 1px solid var(--line); padding: 28px 0 40px; position: relative; z-index: 1; }
.footer-row{
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px;
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--ink-faint);
}
.footer-row a.footer-muted:hover{ color: var(--amber); }

@media (max-width: 640px){
  .header-phone-copy{ display: none; }
}

/* ===== Section shared ===== */
.section-kicker{
  font-family: var(--font-mono);
  font-size: 13px;
  letter-spacing: .08em;
  color: var(--amber);
  margin: 0 0 14px;
}
.section-title{
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.15;
  margin: 0 0 48px;
  max-width: 20ch;
}

/* ===== Audience ===== */
.audience{ position: relative; z-index: 1; padding: 40px 0 100px; }
.audience-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}
.audience-card{
  background: var(--bg);
  padding: 36px 30px 40px;
  transition: background .2s ease;
}
.audience-card:hover{ background: var(--bg-soft); }
.audience-num{
  font-family: var(--font-mono);
  color: var(--ink-faint);
  font-size: 13px;
}
.audience-card h3{
  font-family: var(--font-display);
  font-size: 22px;
  margin: 14px 0 10px;
}
.audience-card p{ color: var(--ink-dim); font-size: 15px; margin: 0; }

/* ===== Process ===== */
.process{ position: relative; z-index: 1; padding: 40px 0 110px; }
.process-list{
  list-style: none;
  margin: 0; padding: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.process-step{
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid var(--line-strong);
  position: relative;
}
.process-step::before{
  content: '';
  position: absolute;
  top: -1px; left: 0;
  width: 34px; height: 1px;
  background: var(--amber);
}
.process-index{
  font-family: var(--font-mono);
  color: var(--amber);
  font-size: 14px;
}
.process-step h3{ font-family: var(--font-display); font-size: 18px; margin: 0 0 8px; }
.process-step p{ color: var(--ink-dim); font-size: 14px; margin: 0; line-height: 1.5; }

/* ===== Calculator ===== */
.calculator{ position: relative; z-index: 1; padding: 78px 0 120px;scroll-margin-top:92px;border-block:1px solid rgba(255,179,71,.18);background:radial-gradient(circle at 12% 4%,rgba(255,179,71,.13),transparent 38%),linear-gradient(180deg,rgba(255,179,71,.025),transparent 38%) }
.calc-start{max-width:820px;margin-bottom:28px;padding-left:18px;border-left:3px solid var(--amber)}
.calc-start .section-title{margin-bottom:14px}
.calculator-lead{max-width:68ch;margin:0;color:var(--ink-dim);font-size:17px;line-height:1.65}
#calculator:target .calc-start{animation:calcAttention 1.35s ease}
@keyframes calcAttention{0%,100%{filter:none}30%{filter:drop-shadow(0 0 16px rgba(255,179,71,.5))}}
.calc-mode{
  display: grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap: 10px;
  margin: 0 0 24px;
  padding: 8px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: rgba(0,0,0,.14);
}
.calc-mode[hidden],
.calc-panel[hidden],
.mount-choice[hidden],
.help-stage[hidden]{ display: none; }
.mount-choice{
  display: grid;
  gap: 8px;
  max-width: none;
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 1px solid rgba(255,179,71,.35);
  border-radius: 14px;
  background: rgba(255,179,71,.06);
}
.mount-choice legend{padding:0 8px;color:var(--amber);font:700 13px var(--font-mono);letter-spacing:.035em}
.mount-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mount-options button{min-width:0;display:grid;gap:5px;text-align:left;padding:15px;border:1px solid var(--line-strong);border-radius:11px;background:rgba(0,0,0,.12);color:var(--ink);cursor:pointer}
.mount-options button strong{font-size:15px;line-height:1.25}
.mount-options button span{color:var(--ink-faint);font-size:12px;line-height:1.35}
.mount-options button:hover,.mount-options button.is-active{border-color:var(--amber);background:rgba(255,179,71,.09);box-shadow:inset 0 0 0 1px rgba(255,179,71,.16)}
.mount-options button.is-active::after{content:'Выбрано';margin-top:4px;color:var(--amber);font:11px var(--font-mono);text-transform:uppercase;letter-spacing:.06em}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.calc-mode-btn{
  display:grid;
  gap:5px;
  border: 1px solid transparent;
  border-radius: 10px;
  padding: 15px 18px;
  background: transparent;
  color: var(--ink-dim);
  text-align:left;
  cursor: pointer;
}
.calc-mode-btn strong{font:700 15px var(--font-main);color:var(--ink)}
.calc-mode-btn span{font:12px/1.4 var(--font-mono);color:var(--ink-faint)}
.calc-mode-btn.is-active{
  border-color:var(--amber);
  background: rgba(255,179,71,.1);
}
.calc-mode-btn.is-active strong{color:var(--amber)}
.help-fields{
  display: grid;
  grid-template-columns: 210px minmax(0,1fr);
  align-items: start;
  gap: 0;
  margin: 0 0 18px;
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  background:linear-gradient(135deg,rgba(255,179,71,.045),transparent 34%),var(--panel);
  overflow:hidden;
  box-shadow:0 35px 80px -50px rgba(0,0,0,.8);
}
.help-progress{display:grid;align-content:start;min-height:520px;padding:24px 16px;border-right:1px solid var(--line-strong);background:rgba(0,0,0,.16)}
.help-progress button{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:8px;padding:14px 10px;border:0;border-left:2px solid var(--line-strong);background:transparent;color:var(--ink-faint);text-align:left;font:12px var(--font-mono);cursor:pointer}
.help-progress button span{color:var(--ink-faint)}
.help-progress button.is-active{border-left-color:var(--amber);color:var(--ink);background:linear-gradient(90deg,rgba(255,179,71,.1),transparent)}
.help-progress button.is-active span{color:var(--amber)}
.help-stage{min-width:0;padding:34px 38px}
.help-stage h3{margin:0 0 8px;font-size:clamp(23px,3vw,34px);line-height:1.12}
.help-intro{max-width:62ch;margin:0 0 24px;color:var(--ink-dim);line-height:1.6}
.help-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:22px}
.help-choice-grid button{min-height:54px;padding:10px;border:1px solid var(--line-strong);border-radius:10px;background:rgba(0,0,0,.15);color:var(--ink-dim);font-weight:700;cursor:pointer}
.help-choice-grid button:hover,.help-choice-grid button.is-active{border-color:var(--amber);background:rgba(255,179,71,.09);color:var(--ink)}
.help-dimensions{grid-template-columns:repeat(4,minmax(0,1fr))}
.help-area{display:grid;align-content:center;gap:4px;padding:10px 14px;border:1px solid rgba(255,179,71,.3);border-radius:8px;background:rgba(255,179,71,.06)}
.help-area span{color:var(--ink-faint);font:11px var(--font-mono);text-transform:uppercase}.help-area strong{color:var(--amber);font-size:22px}
.help-stage>.calc-field{max-width:680px}.help-stage>.calc-field+.calc-field{margin-top:14px}
.help-checks{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:18px}.help-checks .addon-check{margin:0}.help-checks .addon-text{white-space:normal}.help-checks .addon-price{white-space:nowrap}
.help-panel-distance{margin-top:18px}.help-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:30px;padding-top:20px;border-top:1px solid var(--line-strong)}
.help-actions .btn{min-height:48px}.help-result-stage{padding-top:38px}.help-recommendation{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:18px}.help-recommendation-main,.help-recommendation-price{padding:22px;border:1px solid var(--line-strong);border-radius:14px;background:rgba(0,0,0,.14)}
.help-recommendation-main h4{margin:0 0 10px;font-size:22px}.help-recommendation-main p{margin:6px 0;color:var(--ink-dim)}.help-recommendation-price{display:grid;align-content:center}.help-recommendation-price span{color:var(--ink-faint);font:11px var(--font-mono);text-transform:uppercase}.help-recommendation-price strong{margin:7px 0;color:var(--amber);font-size:clamp(27px,4vw,42px);white-space:nowrap}.help-recommendation-price small{color:var(--ink-dim);line-height:1.45}.help-included{grid-column:1/-1;padding:16px 18px;border-left:3px solid var(--amber);background:rgba(255,179,71,.06);color:var(--ink-dim);line-height:1.55}.help-fields .route-note{margin:18px 0 0}
.calc-panel{
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 28px;
  background: var(--panel);
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  padding: 36px;
  box-shadow: 0 40px 80px -40px rgba(0,0,0,0.7);
}
.calc-panel.is-help-mode{ grid-template-columns: minmax(0,1.15fr) minmax(340px,.85fr); }
.calc-panel.is-help-mode .known-only-label{ display:none; }
.calc-panel > *,
.calc-fixtures,
.calc-side,
.calc-addons,
.calc-result,
.route-fields,
.route-fields > *{
  min-width: 0;
}
.calc-label{
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: .06em;
  color: var(--ink-faint);
  text-transform: uppercase;
  margin: 0 0 16px;
}
.group-tabs{ display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.group-tab{
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: .01em;
  color: var(--ink-dim);
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  min-height: 44px;
  padding: 10px 14px;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease, background .18s ease;
}
.group-tab:hover{ border-color: rgba(255,179,71,0.5); color: var(--ink); }
.group-tab.is-active{
  border-color: var(--amber);
  color: var(--amber);
  background: rgba(255,179,71,0.08);
}
.group-hint{ color: var(--ink-faint); font-size: 13px; margin: 0 0 14px; }
.qty-stock-hint{ color: var(--ink-faint); font-size: 13px; margin: 8px 0 0; }
.fixture-preview{
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  align-items: center;
  gap: 18px;
  margin: 0 0 14px;
  padding: 10px;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: rgba(255,255,255,.018);
  overflow: hidden;
}
.fixture-preview[hidden]{ display: none; }
.fixture-preview img{
  display: block;
  width: 116px;
  height: 92px;
  object-fit: cover;
  border-radius: 9px;
  background: #17140f;
}
.fixture-preview figcaption{ min-width: 0; }
.fixture-preview figcaption span{
  display: block;
  margin-bottom: 5px;
  font-family: var(--font-display);
  font-size: 16px;
  color: var(--ink);
}
.fixture-preview figcaption small{
  display: block;
  color: var(--ink-faint);
  font-size: 12px;
  line-height: 1.45;
}
.fixture-list{ display: flex; flex-direction: column; gap: 10px; max-height: 460px; overflow-y: auto; padding-right: 6px; }
.fixture-list,
.group-tabs{
  scrollbar-color: rgba(255,179,71,.42) transparent;
  scrollbar-width: thin;
}
.fixture-list::-webkit-scrollbar{ width: 5px; }
.group-tabs::-webkit-scrollbar{ height: 4px; }
.fixture-list::-webkit-scrollbar-track,
.group-tabs::-webkit-scrollbar-track{ background: transparent; }
.fixture-list::-webkit-scrollbar-thumb,
.group-tabs::-webkit-scrollbar-thumb{
  background: rgba(255,179,71,.42);
  border-radius: 999px;
}
.fixture-card{
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  column-gap: 12px;
  row-gap: 4px;
  padding: 14px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
  position: relative;
}
.fixture-card input{ position: absolute; opacity: 0; pointer-events: none; }
.fixture-card:hover{ border-color: rgba(255,179,71,0.5); }
.fixture-card.is-selected{
  border-color: var(--amber);
  background: rgba(255,179,71,0.06);
  box-shadow: 0 0 0 1px rgba(255,179,71,0.25) inset;
}
.fixture-headline{
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.fixture-price{
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--amber);
  white-space: nowrap;
}
.fixture-note{ grid-column: 1 / 2; color: var(--ink-dim); font-size: 13.5px; }
.fixture-meta{
  grid-column: 1 / -1;
  font-family: var(--font-mono);
  font-size: 12px;
  color: var(--ink-faint);
}

.calc-side{ display: flex; flex-direction: column; gap: 28px; }
.qty-control{
  display: flex;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  padding: 8px 10px;
}
.qty-btn{
  width: 44px; height: 44px;
  border-radius: 8px;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--ink);
  font-size: 18px;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}
.qty-btn:hover{ border-color: var(--amber); color: var(--amber); }
.qty-input{
  flex: 1;
  text-align: center;
  background: transparent;
  border: none;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 20px;
  width: 60px;
}
.qty-input:focus{ outline: none; }

input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.number-stepper{
  display:grid;
  grid-template-columns:38px minmax(0,1fr) 38px;
  align-items:stretch;
  width:100%;
  min-width:0;
  border:1px solid var(--line-strong);
  border-radius:8px;
  overflow:hidden;
  background:var(--bg);
}
.number-stepper input[type="number"]{
  min-width:0;
  width:100%;
  border:0;
  border-inline:1px solid var(--line-strong);
  border-radius:0;
  text-align:center;
}
.number-stepper-btn{
  min-width:0;
  border:0;
  background:rgba(255,179,71,.035);
  color:var(--ink-dim);
  font:18px var(--font-mono);
  cursor:pointer;
}
.number-stepper-btn:hover,
.number-stepper-btn:focus-visible{
  outline:0;
  background:rgba(255,179,71,.12);
  color:var(--amber);
}
.field .number-stepper input{
  padding-inline:8px;
}

.calc-addons{ display: flex; flex-direction: column; gap: 10px; }
.calc-field{
  display: grid;
  gap: 7px;
  padding: 12px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
}
.calc-field > span{
  color: var(--ink-dim);
  font-size: 12.5px;
}
.route-fields{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.route-fields[hidden],
.route-note[hidden],
.help-fields[hidden],
#warehouseZoneWrap[hidden],
#helpDemolitionWrap[hidden]{ display: none; }
.route-fields .addon-check{ min-width: 0; }
.route-fields .addon-check{ grid-column:1 / -1; }
.route-note{
  margin: 0;
  padding: 12px 14px;
  border: 1px solid rgba(255,179,71,0.28);
  border-radius: 10px;
  background: rgba(255,179,71,0.06);
  color: var(--ink-dim);
  font-size: 12.5px;
  line-height: 1.55;
}
.addon-check{
  display: grid;
  grid-template-columns: 18px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease;
}
.addon-check:hover{ border-color: rgba(255,179,71,0.5); }
.addon-check input[type="checkbox"],
.consent-check input[type="checkbox"]{
  appearance: none;
  -webkit-appearance: none;
  width: 18px; height: 18px;
  margin: 0;
  border-radius: 5px;
  border: 1px solid var(--line-strong);
  background: var(--bg);
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  transition: background .15s ease, border-color .15s ease;
}
.addon-check input[type="checkbox"]:hover,
.consent-check input[type="checkbox"]:hover{ border-color: rgba(255,179,71,0.6); }
.addon-check input[type="checkbox"]:checked,
.consent-check input[type="checkbox"]:checked{
  background: var(--amber);
  border-color: var(--amber);
}
.addon-check input[type="checkbox"]:checked::after,
.consent-check input[type="checkbox"]:checked::after{
  content: '';
  position: absolute;
  left: 5px; top: 1px;
  width: 5px; height: 9px;
  border: solid #191305;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.addon-check input[type="checkbox"]:focus-visible,
.consent-check input[type="checkbox"]:focus-visible{
  outline: 2px solid var(--amber);
  outline-offset: 2px;
}
.addon-check:has(input:checked){
  border-color: var(--amber);
  background: rgba(255,179,71,0.06);
}
.addon-text{ font-size: 14px; color: var(--ink); }
.addon-price{ font-family: var(--font-mono); font-size: 12.5px; color: var(--ink-faint); white-space: nowrap; }
.addon-sub{
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 10px;
  padding: 10px 14px 10px 42px;
  margin-top: -4px;
}
.addon-sub label{ font-size: 13px; color: var(--ink-dim); }
.addon-input{
  width: 100%;
  background: var(--bg);
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  padding: 8px 10px;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 14px;
  text-align: center;
}
.addon-input,
.field input[type="date"]{
  accent-color:var(--amber);
  scrollbar-color:rgba(255,179,71,.72) #17140f;
  scrollbar-width:thin;
}
.addon-input option{
  color:var(--ink);
  background:#17140f;
}
.addon-input option:checked{
  color:#191305;
  background:var(--amber);
}
.demolition-type{ margin-top:-2px; background:rgba(255,179,71,.035); }
.calc-field select.addon-input{ text-align: left; }
.addon-input:focus{ outline: none; border-color: var(--amber); }

.calc-result{
  width: 100%;
  min-width: 0;
  margin-top: auto;
  border-top: 1px solid var(--line-strong);
  padding-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.calc-cta{ max-width: 100%; white-space: normal; text-align: center; }
.calc-row{
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-size: 14px;
  color: var(--ink-dim);
}
.calc-row > span:first-child{ min-width: 0; }
.calc-mono{ font-family: var(--font-mono); color: var(--ink); white-space: nowrap; flex-shrink: 0; }
.calc-total{
  font-size: 17px;
  color: var(--ink);
  padding-top: 10px;
  border-top: 1px dashed var(--line-strong);
}
.calc-total .calc-mono{ color: var(--amber); font-size: 22px; }

@media (max-width: 380px){
  .calc-total .calc-mono{ font-size: 18px; }
  .route-fields{ grid-template-columns: 1fr; }
  .calc-mode{display:grid;grid-template-columns:1fr;width:100%}
}
.calc-note{ font-size: 12.5px; color: var(--ink-faint); line-height: 1.5; margin: 4px 0 6px; }
.form-error{margin:8px 0 0;color:#ff9b82;font-size:13px;line-height:1.45}
.visit-note{
  margin: 4px 0 8px;
  padding: 12px 14px;
  border-left: 2px solid var(--amber);
  background: rgba(255,179,71,.06);
  color: var(--ink-dim);
  font-size: 12.5px;
  line-height: 1.55;
}
.calc-cta{ width: 100%; }
.calc-cta.is-disabled{ opacity:.45; pointer-events:none; }

.wrap-narrow{ max-width: 760px; }
.transferred-calc{
  margin: -24px 0 20px;
  padding: 12px 14px;
  border: 1px solid rgba(255,179,71,.35);
  border-radius: 10px;
  color: var(--amber);
  background: rgba(255,179,71,.06);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline: 3px solid rgba(255,179,71,.72);
  outline-offset: 3px;
}
.fixture-card:has(input:focus-visible){
  outline: 3px solid rgba(255,179,71,.72);
  outline-offset: 2px;
}

/* ===== Trust ===== */
.trust{ position: relative; z-index: 1; padding: 20px 0 110px; }
.trust-grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.trust-card{
  padding: 28px 22px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(160deg, var(--panel), transparent);
}
.trust-icon{ display: block; margin-bottom: 18px; color: var(--amber); }
.trust-icon svg{ width: 26px; height: 26px; }
.trust-card h3{ font-family: var(--font-display); font-size: 16px; margin: 0 0 8px; }
.trust-card p{ font-size: 13.5px; color: var(--ink-dim); margin: 0; line-height: 1.5; }

/* ===== FAQ ===== */
.faq{ position: relative; z-index: 1; padding: 20px 0 110px; }
.faq-list{ display: flex; flex-direction: column; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.faq-item{ background: var(--bg); padding: 22px 26px; }
.faq-item summary{
  cursor: pointer;
  font-family: var(--font-display);
  font-size: 16px;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.faq-item summary::-webkit-details-marker{ display: none; }
.faq-item summary::after{
  content: '+';
  font-family: var(--font-mono);
  font-size: 20px;
  color: var(--amber);
  flex-shrink: 0;
  transition: transform .2s ease;
}
.faq-item[open] summary::after{ content: '−'; }
.faq-item p{ margin: 14px 0 0; color: var(--ink-dim); font-size: 14.5px; line-height: 1.6; }

/* ===== Lead form ===== */
.cta-form{ position: relative; z-index: 1; padding: 20px 0 140px; }
.lead-form{
  display: flex;
  flex-direction: column;
  gap: 18px;
  background: var(--panel);
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  padding: 36px;
}
.field{ display: flex; flex-direction: column; gap: 8px; flex: 1; }
.field-row{ display: flex; gap: 18px; }
.field label{ font-family: var(--font-mono); font-size: 12px; color: var(--ink-faint); letter-spacing: .04em; }
.field input{
  width: 100%;
  min-width: 0;
  background: var(--bg);
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  padding: 13px 16px;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 15px;
}
.field input:focus{ outline: none; border-color: var(--amber); }
.field input::placeholder{ color: var(--ink-faint); }
.field input[type="date"]{ color-scheme:dark; accent-color:var(--amber); padding-right:18px; }
.field input[type="date"]::-webkit-calendar-picker-indicator{
  width:22px;
  height:22px;
  margin:0 5px 0 0;
  cursor:pointer;
  opacity:.82;
  filter:sepia(1) saturate(1.8) hue-rotate(345deg);
}
.lead-submit{ margin-top: 6px; }
.lead-note{ font-size: 12.5px; color: var(--ink-faint); margin: 0; text-align: center; }
.modal-overlay{
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(10,9,6,0.72);
  backdrop-filter: blur(4px);
}
/* [hidden] из UA-стиля имеет ту же специфичность, что и .modal-overlay{display:flex}
   и проигрывает по порядку в каскаде — без этого правила hidden=true не скрывал бы окно. */
.modal-overlay[hidden]{ display: none; }
.lead-success{
  position: relative;
  width: 100%;
  max-width: 420px;
  background: var(--panel);
  border: 1px solid var(--line-strong);
  border-radius: 20px;
  padding: 36px;
  text-align: center;
  box-shadow: 0 40px 80px -30px rgba(0,0,0,0.7);
}
.lead-success-title{ font-family: var(--font-display); font-size: 22px; font-weight: 600; color: var(--amber); margin: 0 0 10px; }
.lead-success p{ color: var(--ink-dim); font-size: 15px; line-height: 1.5; margin: 0; }
.lead-success .lead-number{ margin: 0 0 14px; color: var(--ink); font: 600 17px var(--font-mono); }
.lead-success a{ color: var(--amber); }
.modal-close{
  position: absolute;
  top: 14px; right: 14px;
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  background: transparent;
  color: var(--ink-dim);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: border-color .18s ease, color .18s ease;
}
.modal-close:hover{ border-color: var(--amber); color: var(--amber); }

/* ===== Cookie banner ===== */
.cookie-banner{
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding: 18px 32px;
  background: var(--panel);
  border-top: 1px solid var(--line-strong);
  box-shadow: 0 -20px 40px -20px rgba(0,0,0,0.5);
}
/* см. .modal-overlay[hidden] выше — та же причина: [hidden] и display:flex
   на классе имеют равную специфичность, без этого правила баннер не скрылся бы. */
.cookie-banner[hidden]{ display: none; }
.cookie-banner p{ margin: 0; font-size: 13.5px; color: var(--ink-dim); line-height: 1.5; max-width: 640px; }
.cookie-banner a{ color: var(--amber); text-decoration: underline; text-underline-offset: 2px; }
.cookie-banner-actions{ display: flex; gap: 10px; flex-shrink: 0; }
.cookie-banner-actions .btn{ padding: 10px 20px; font-size: 13.5px; }

@media (max-width: 560px){
  .cookie-banner{ flex-direction: column; align-items: stretch; padding: 16px 20px; }
  .cookie-banner-actions{ justify-content: flex-end; }
}

/* ===== Policy page ===== */
.policy-page{ position: relative; z-index: 1; padding: 64px 0 120px; }
.policy-h1{ max-width: none; }
.policy-updated{ color: var(--ink-faint); font-size: 13px; margin: 0 0 48px; }
.policy-content h2{
  font-family: var(--font-display);
  font-size: 19px;
  margin: 36px 0 12px;
}
.policy-content h2:first-child{ margin-top: 0; }
.policy-content p{ color: var(--ink-dim); font-size: 15px; line-height: 1.7; margin: 0 0 8px; }
.policy-content a{ color: var(--amber); text-decoration: underline; text-underline-offset: 2px; }

/* ===== Consent checkbox ===== */
.consent-check{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: var(--ink-dim);
  line-height: 1.5;
  cursor: pointer;
}
.consent-check input{ margin-top: 1px; }
.consent-check a{ color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.consent-check a:hover{ color: var(--amber); }

/* ===== Scroll reveal ===== */
.reveal{ opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.reveal.is-visible{ opacity: 1; transform: translateY(0); }

@media (max-width: 900px){
  .hero-grid{ grid-template-columns: 1fr; }
  .hero-actions{ width:100%; }
  .hero-visual{
    width:100%;
    max-width:560px;
    height:clamp(280px,78vw,360px);
    justify-self:center;
    order:initial;
    margin-top:28px;
  }
  .hero-visual .beam{
    top:50%;
    left:50%;
    width:min(145vw,620px);
    height:min(145vw,620px);
    transform:translate(-50%,-50%);
    background:radial-gradient(ellipse at center, rgba(255,179,71,.20) 0%, rgba(255,179,71,.09) 34%, transparent 70%);
  }
  .hero-visual .grid-panel{ inset:0 12px; }
  .hero{ padding-top: 56px; }
  .audience-grid{ grid-template-columns: 1fr; }
  .process-list{ grid-template-columns: 1fr 1fr; }
  .calc-panel{ grid-template-columns: 1fr; }
  .calc-panel.is-help-mode{ grid-template-columns:1fr; }
  .trust-grid{ grid-template-columns: 1fr 1fr; }
  .help-fields{ grid-template-columns:1fr; }
  .help-progress{grid-template-columns:repeat(4,1fr);min-height:0;padding:10px;border-right:0;border-bottom:1px solid var(--line-strong)}
  .help-progress button{display:grid;justify-items:center;grid-template-columns:1fr;gap:3px;padding:9px 3px;border-left:0;border-bottom:2px solid transparent;text-align:center;font-size:10px}.help-progress button.is-active{border-bottom-color:var(--amber)}
  .help-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}.help-checks{grid-template-columns:1fr}.help-recommendation{grid-template-columns:1fr}
}
@media (max-width: 560px){
  .wrap{ padding: 0 20px; }
  .process-list{ grid-template-columns: 1fr; }
  .calc-panel{ padding: 20px; gap: 22px; }
  .trust-grid{ grid-template-columns: 1fr; }
  .field-row{ flex-direction: column; }
  .lead-form{ padding: 24px; }
  .lead-success{ padding: 24px; }
  .hero{ padding:48px 0 56px; }
  .hero-visual{ height:min(82vw,320px); margin-top:24px; }
  .hero-visual .grid-panel{ inset:0 6px; padding:22px; gap:14px; }
  .hero-visual .beam{ width:135vw; height:135vw; }
  .fixture-list{ max-height: none; overflow-y: visible; padding-right: 0; }
  .calculator, .cta-form{ padding-bottom: 74px; }
  .calculator{padding-top:60px}
  .calculator-lead{font-size:15px}
  .mount-options{grid-template-columns:1fr}
  .hero-actions{display:grid;grid-template-columns:1fr;overflow:visible}
  .hero-actions .btn{white-space:nowrap;font-size:14px}
  .mounting-visual{height:190px}
  .help-stage{padding:24px 16px}.help-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.help-dimensions{grid-template-columns:1fr}.help-actions{display:grid;grid-template-columns:1fr}.help-actions span:empty{display:none}.help-actions .btn{width:100%}.help-progress button{font-size:0}.help-progress button span{font-size:11px}.help-recommendation-price strong{white-space:normal}
}
@media (max-width: 460px){
  .calculator .wrap{ padding: 0 12px; }
  .calc-mode{ display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .calc-mode-btn{ padding: 9px 8px; font-size: 11.5px; }
  .calc-panel{ padding: 16px; border-radius: 14px; }
  .group-tabs{ flex-wrap: wrap; overflow: visible; padding-bottom: 0; }
  .group-tab{ flex: 1 1 140px; white-space: normal; }
  .fixture-preview{ grid-template-columns: 82px minmax(0, 1fr); gap: 12px; }
  .fixture-preview img{ width: 82px; height: 72px; }
  .fixture-preview figcaption span{ font-size: 14px; }
  .fixture-card{ grid-template-columns: 1fr; row-gap: 6px; }
  .fixture-price{ grid-column: 1; }
  .addon-check{ grid-template-columns: 18px 1fr; row-gap: 4px; }
  .addon-price{ grid-column: 2; white-space: nowrap; }
  .addon-sub{ grid-template-columns: 1fr; padding-left: 28px; row-gap: 6px; }
  .calc-row{ align-items: flex-start; }
  .calc-row > span:first-child{ max-width: 62%; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal{ opacity: 1; transform: none; }
}
