/*
  Design plan v2 — Swiss-poster / brutalist-editorial, not the AI defaults.
  Layout: sharp-cornered, thick black rules, asymmetric hero (headline vs.
  a live "dashboard" mock), a horizontal marquee ticker standing in for a
  logo wall, a literal ticket-stub treatment for the guarantee (notched
  edges + perforation), huge bleeding ghost numerals for the process.
  Color: true black / true white + one functional cobalt accent (never
  decorative) + a muted forest green reserved for "included / free" tags.
  Type: Bricolage Grotesque (display, big & tight) / Hanken Grotesk
  (body) / IBM Plex Mono (numbers, tags, index marks).
*/

:root{
  --bg:#ffffff;
  --surface:#eef1f4;
  --ink:#0a0a0a;
  --ink-soft:#43474d;
  --line:#0a0a0a;
  --line-soft:#d4d8dd;
  --cobalt:#1b3bf0;
  --cobalt-ink:#0d1f8c;
  --on-dark:#f6f7f5;
  --on-dark-soft:#9a9fa8;
  --ok:#1f7a4d;
  --ok-soft:#e3f1e9;
  --font-display:'Bricolage Grotesque', 'Hanken Grotesk', Arial, sans-serif;
  --font-body:'Hanken Grotesk', -apple-system, 'Segoe UI', sans-serif;
  --font-mono:'IBM Plex Mono', 'SFMono-Regular', Consolas, monospace;
  --radius:3px;
  color-scheme:light;
}

*{box-sizing:border-box;}
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;
}
img{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;text-wrap:balance;font-weight:700;letter-spacing:-0.01em;}
p{margin:0;}
.wrap{
  max-width:1180px;
  margin:0 auto;
  padding-left:max(20px, env(safe-area-inset-left,0px));
  padding-right:max(20px, env(safe-area-inset-right,0px));
}
.band{padding-block:88px;}
@media (max-width:640px){.band{padding-block:56px;}}
.band-dark{background:var(--ink);color:var(--on-dark);position:relative;overflow:hidden;}
.band-light{background:var(--bg);color:var(--ink);}
.band-surface{background:var(--surface);color:var(--ink);}

/* subtle grain on every dark surface, ties the ink bands together */
.band-dark::after, footer.site-footer::after{
  content:"";
  position:absolute; inset:0;
  pointer-events:none;
  z-index:0;
  opacity:.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.band-dark > .wrap, footer.site-footer > .wrap{position:relative;z-index:1;}
.hero::before{
  content:"";
  position:absolute; inset:0;
  z-index:0;
  background:
    linear-gradient(195deg, rgba(10,10,10,.62), rgba(10,10,10,.93)),
    url('hero-bg.png');
  background-size:cover;
  background-position:center;
}
.rule-top{border-top:1.5px solid var(--line);}
.rule-top-cobalt{border-top:4px solid var(--cobalt);}
.band-dark.rule-top{border-top-color:rgba(246,247,245,.18);}

.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cobalt);
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.band-dark .eyebrow{color:#7d93ff;}
.eyebrow::before{
  content:"";
  width:7px;height:7px;background:currentColor;display:inline-block;
}

/* ---------- nav ---------- */
.site-nav{
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:40;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  border-bottom:2px solid var(--line);
}
body::before{
  content:"";
  position:fixed;
  inset:0 0 auto;
  height:env(safe-area-inset-top,0px);
  z-index:41;
  background:#ffffff;
}
.site-nav .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-block:17px;
  gap:16px;
}
.brand{
  font-family:var(--font-display);
  font-weight:800;
  font-size:19px;
  letter-spacing:-.01em;
  white-space:nowrap;
  text-transform:uppercase;
  text-decoration:none;
}
.brand-mark{color:var(--cobalt);}
.brand-mark img{height:1.5em;width:1.5em;object-fit:contain;vertical-align:middle;margin-right:1px;}
.nav-links{
  display:flex;
  gap:30px;
  list-style:none;
  margin:0;padding:0;
  font-size:14px;
  font-weight:600;
}
.nav-links a{text-decoration:none;}
.nav-links a:hover{color:var(--cobalt);}
.nav-cta{display:flex;align-items:center;gap:14px;}
.nav-toggle{
  display:none;
  background:none;border:1.5px solid var(--line);
  color:var(--ink);
  width:40px;height:40px;border-radius:var(--radius);
  font-size:18px;
  cursor:pointer;
}
.mobile-panel{display:none;}
@media (max-width:860px){
  .nav-links{display:none;}
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .mobile-panel.open{
    display:flex;flex-direction:column;gap:2px;
    padding:0 20px 18px;
    background:#fff;
    border-bottom:2px solid var(--line);
  }
  .mobile-panel a{
    color:var(--ink);
    text-decoration:none;
    padding:12px 4px;
    border-top:1px solid var(--line-soft);
    font-size:15px;
    font-weight:600;
  }
}

/* ---------- buttons ---------- */
.btn{
  font-family:var(--font-body);
  font-weight:700;
  font-size:14.5px;
  border-radius:var(--radius);
  padding:14px 24px;
  border:2px solid var(--ink);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  white-space:nowrap;
  transition:background .12s ease, color .12s ease, border-color .12s ease;
}
.btn-primary{background:var(--ink);color:var(--bg);}
.btn-primary:hover{background:var(--cobalt);border-color:var(--cobalt);}
.btn-ghost{background:transparent;border-color:currentColor;}
.band-dark .btn-ghost{color:var(--on-dark);}
.band-dark .btn-ghost:hover{background:var(--on-dark);color:var(--ink);}
.band-light .btn-ghost:hover,.band-surface .btn-ghost:hover{background:var(--ink);color:var(--bg);}
.btn-outline{background:var(--bg);border-color:var(--ink);color:var(--ink);}
.btn-outline:hover{background:var(--ink);color:var(--bg);}
.btn-sm{padding:10px 17px;font-size:13px;}
.btn-block{width:100%;justify-content:center;}
.cta-note{font-size:13px;color:var(--ink-soft);}
.band-dark .cta-note{color:var(--on-dark-soft);}

/* ---------- marquee ---------- */
.marquee{
  background:var(--ink);
  color:var(--on-dark);
  overflow:hidden;
  border-bottom:2px solid var(--line);
  border-top:2px solid var(--line);
}
.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 32s linear infinite;
  padding-block:14px;
}
.marquee-track span{
  font-family:var(--font-mono);
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding-inline:28px;
  white-space:nowrap;
  display:flex;align-items:center;gap:28px;
}
.marquee-track span::after{content:"\2022";color:var(--cobalt);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;}}

/* ---------- hero ---------- */
.hero{padding-top:64px;}
.hero-grid{
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:48px;
  align-items:end;
}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr;}}
.hero-copy{display:grid;gap:26px;}
.hero h1{
  font-size:clamp(36px, 5.6vw, 60px);
  line-height:1.03;
  letter-spacing:-.015em;
}
.hero h1 .hl{
  background:var(--cobalt);
  color:#fff;
  padding:0 .12em;
  display:inline;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.hero-sub{
  font-size:17.5px;
  color:var(--on-dark-soft);
  max-width:520px;
}
.hero-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
}

/* ---------- dashboard mock ---------- */
.dash-mock{
  background:#121418;
  border:2px solid rgba(246,247,245,.18);
  border-radius:var(--radius);
  padding:22px;
  display:grid;
  gap:16px;
}
.dash-head{
  display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--on-dark-soft);
}
.dash-live{display:inline-flex;align-items:center;gap:7px;color:#7bd99a;}
.dash-live::before{
  content:"";width:7px;height:7px;border-radius:50%;background:#7bd99a;
  animation:pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
.dash-row{display:grid;gap:7px;}
.dash-row-top{display:flex;justify-content:space-between;align-items:baseline;}
.dash-row-top span:first-child{font-size:13px;color:var(--on-dark-soft);}
.dash-row-top b{font-family:var(--font-mono);color:var(--on-dark);font-size:16px;font-variant-numeric:tabular-nums;}
.dash-bar{height:6px;background:rgba(246,247,245,.12);border-radius:2px;overflow:hidden;}
.dash-bar i{display:block;height:100%;background:var(--cobalt);}
.dash-foot{
  font-size:11.5px;color:var(--on-dark-soft);
  border-top:1px solid rgba(246,247,245,.14);
  padding-top:12px;
}

/* ---------- section headers ---------- */
.section-head{
  max-width:640px;
  margin-bottom:48px;
  display:grid;
  gap:16px;
}
.section-head h2{font-size:clamp(28px,3.8vw,42px);}
.section-head p{color:var(--ink-soft);font-size:16px;}
.band-dark .section-head p{color:var(--on-dark-soft);}

/* ---------- VSL ---------- */
.vsl-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.vsl-copy{display:grid;gap:16px;}
.vsl-player{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  border:2px solid var(--line);
  aspect-ratio:16/9;
  cursor:pointer;
  display:block;
}
.vsl-player img{width:100%;height:100%;object-fit:cover;display:block;}
.vsl-player::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(195deg, rgba(10,10,10,.12), rgba(10,10,10,.58));
}
.vsl-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:72px;height:72px;border-radius:50%;
  background:#fff;color:var(--ink);
  display:flex;align-items:center;justify-content:center;
  z-index:2;
  box-shadow:0 10px 28px rgba(0,0,0,.4);
}
.vsl-play svg{width:24px;height:24px;margin-left:3px;}
.vsl-note{font-size:13px;color:var(--ink-soft);}
@media (max-width:860px){.vsl-grid{grid-template-columns:1fr;}}

/* ---------- section-head with a photo ---------- */
.section-head-split{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:40px;
  align-items:end;
  margin-bottom:44px;
}
.section-head-split .section-head{margin-bottom:0;}
.photo-frame{
  border:2px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  aspect-ratio:4/3;
}
.photo-frame img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:860px){.section-head-split{grid-template-columns:1fr;}}

/* ---------- guarantee grid with photo ---------- */
.guarantee-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:24px;align-items:stretch;}
.guarantee-photo{border:2px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:260px;}
.guarantee-photo img{width:100%;height:100%;object-fit:cover;display:block;}
@media (max-width:860px){.guarantee-grid{grid-template-columns:1fr;}}

/* ---------- comparison ---------- */
.compare-grid{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--line);}
.compare-col{padding:30px 28px;}
.compare-col.us{border-right:2px solid var(--line);}
.compare-col h3{
  font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  margin-bottom:18px;color:var(--ink-soft);
}
.compare-col.us h3{color:var(--cobalt);}
.compare-col ul{list-style:none;margin:0;padding:0;display:grid;gap:15px;}
.compare-col li{display:flex;gap:11px;font-size:14.5px;align-items:flex-start;color:var(--ink-soft);}
.compare-col.us li{color:var(--ink);font-weight:500;}
.compare-col.us li::before{content:"\2713";color:var(--ok);font-weight:700;flex:none;}
.compare-col.typical li::before{content:"\2013";color:var(--ink-soft);font-weight:700;flex:none;}
@media (max-width:640px){
  .compare-grid{grid-template-columns:1fr;}
  .compare-col.us{border-right:none;border-bottom:2px solid var(--line);}
}

/* ---------- problem ---------- */
.problem-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  border:2px solid var(--line);
}
.problem-card{
  padding:32px 28px;
  display:grid;
  gap:14px;
  align-content:start;
  border-left:2px solid var(--line);
}
.problem-card:first-child{border-left:none;}
.problem-card .num{
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--cobalt);
}
.problem-card h3{font-size:19px;font-family:var(--font-body);font-weight:700;}
.problem-card p{color:var(--ink-soft);font-size:14.5px;}
@media (max-width:760px){
  .problem-grid{grid-template-columns:1fr;}
  .problem-card{border-left:none;border-top:2px solid var(--line);}
  .problem-card:first-child{border-top:none;}
}
.problem-foot{
  margin-top:0;
  padding:22px 28px;
  border:2px solid var(--line);
  border-top:none;
  font-size:14.5px;
  color:var(--ink-soft);
  background:var(--surface);
}
.problem-foot strong{color:var(--ink);}

/* ---------- process ---------- */
.process-list{border-top:1.5px solid rgba(246,247,245,.18);}
.process-item{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:8px;
  padding-block:34px;
  border-bottom:1.5px solid rgba(246,247,245,.18);
  position:relative;
}
.process-item .ghost-num{
  font-family:var(--font-display);
  font-size:84px;
  font-weight:800;
  color:transparent;
  -webkit-text-stroke:1.5px var(--cobalt);
  line-height:1;
  letter-spacing:-.03em;
}
.process-item .step-label{
  font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--on-dark-soft);display:block;margin-bottom:8px;
}
.process-item h3{color:var(--on-dark);font-size:23px;margin-bottom:8px;font-family:var(--font-body);font-weight:700;}
.process-item p{color:var(--on-dark-soft);font-size:15.5px;max-width:520px;}
@media (max-width:640px){
  .process-item{grid-template-columns:1fr;gap:4px;}
  .process-item .ghost-num{font-size:48px;}
}

/* ---------- guarantee / ticket ---------- */
.ticket{
  background:var(--bg);
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:40px;
  position:relative;
}
@media (max-width:640px){.ticket{padding:22px;}}
.ticket-badge{
  position:absolute;
  top:22px; right:22px;
  font-family:var(--font-mono);
  font-size:10.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  background:var(--cobalt);
  color:#fff;
  padding:6px 11px;
  border-radius:999px;
}
.ticket-headline{
  font-size:clamp(26px,4vw,38px);
  max-width:640px;
  margin-top:8px;
}
.ticket-headline .hl{
  background:var(--ink);color:#fff;padding:0 .1em;
  box-decoration-break:clone;-webkit-box-decoration-break:clone;
}
.ticket-perf{
  margin:28px -40px;
  border-top:2px dashed var(--line);
  position:relative;
}
@media (max-width:640px){.ticket-perf{margin-inline:-22px;}}
.ticket-perf::before,.ticket-perf::after{
  content:"";
  position:absolute; top:50%; transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;
  background:var(--surface);
  border:2px solid var(--line);
}
.ticket-perf::before{left:-13px;}
.ticket-perf::after{right:-13px;}
.ticket-terms{
  display:grid;
  gap:13px;
}
.ticket-terms li{
  list-style:none;
  display:flex;
  gap:11px;
  font-size:15px;
}
.ticket-terms li::before{
  content:"";
  margin-top:7px;
  width:7px;height:7px;flex:none;
  background:var(--cobalt);
}
.ticket-fine{
  font-size:13px;
  color:var(--ink-soft);
  max-width:620px;
  margin-top:20px;
}

/* ---------- included ---------- */
.included-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0;
  border:2px solid var(--line);
}
.included-item{
  padding:26px 28px;
  display:grid;
  grid-template-columns:38px 1fr;
  gap:16px;
  border-top:2px solid var(--line);
  border-left:2px solid var(--line);
}
.included-item:nth-child(1),.included-item:nth-child(2){border-top:none;}
.included-item:nth-child(odd){border-left:none;}
.included-item .idx{
  font-family:var(--font-mono);
  font-size:13px;
  color:var(--cobalt);
}
.included-item h4{font-size:16px;font-family:var(--font-body);font-weight:700;margin-bottom:5px;}
.included-item p{font-size:14px;color:var(--ink-soft);}
@media (max-width:760px){
  .included-grid{grid-template-columns:1fr;}
  .included-item{border-left:none!important;}
  .included-item:nth-child(2){border-top:2px solid var(--line);}
}

/* ---------- bonuses ---------- */
.bonus-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:28px;
}
.bonus-card{
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  background:var(--bg);
  display:grid;
  gap:11px;
  align-content:start;
}
.bonus-value{
  font-family:var(--font-mono);
  font-size:12.5px;
  color:var(--ink-soft);
  display:inline-flex;
  gap:8px;
  align-items:center;
}
.bonus-value .strike{text-decoration:line-through;text-decoration-thickness:1.5px;}
.bonus-free{
  color:var(--ok);
  font-weight:700;
  background:var(--ok-soft);
  padding:2px 8px;
  border-radius:999px;
}
.bonus-card h4{font-size:17px;font-family:var(--font-body);font-weight:700;}
.bonus-card p{font-size:14px;color:var(--ink-soft);}
@media (max-width:860px){.bonus-grid{grid-template-columns:1fr;}}

/* ---------- pricing ---------- */
.pricing-panel{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:0;
  border:2px solid var(--line);
}
.pricing-list{display:grid;gap:0;padding:8px 0;}
.pricing-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:16px 28px;
  border-bottom:1.5px solid var(--line-soft);
  font-size:15px;
}
.pricing-row:last-child{border-bottom:none;}
.pricing-row .label{color:var(--ink-soft);}
.pricing-row .value{font-family:var(--font-mono);font-weight:600;text-align:right;}
.pricing-side{
  background:var(--ink);
  color:var(--on-dark);
  padding:32px 28px;
  display:grid;
  gap:14px;
  align-content:start;
  border-left:2px solid var(--line);
}
.pricing-side h4{color:var(--on-dark);font-size:17px;font-family:var(--font-body);font-weight:700;}
.pricing-side p{font-size:14px;color:var(--on-dark-soft);}
@media (max-width:860px){
  .pricing-panel{grid-template-columns:1fr;}
  .pricing-side{border-left:none;border-top:2px solid var(--line);}
}

/* ---------- faq ---------- */
.faq-list{border-top:2px solid var(--line);max-width:780px;}
details.faq-item{border-bottom:2px solid var(--line);}
details.faq-item summary{
  padding-block:22px;
  cursor:pointer;
  font-weight:700;
  font-size:16.5px;
  list-style:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
details.faq-item summary::-webkit-details-marker{display:none;}
details.faq-item summary .plus{
  font-family:var(--font-mono);
  font-size:20px;
  color:var(--cobalt);
  flex:none;
  transition:transform .2s ease;
}
details.faq-item[open] summary .plus{transform:rotate(45deg);}
details.faq-item p{
  padding-bottom:24px;
  margin:0;
  color:var(--ink-soft);
  font-size:15px;
  max-width:620px;
}

/* ---------- team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:2px solid var(--line);}
.team-card{
  display:grid;
  grid-template-columns:76px 1fr;
  gap:18px;
  padding:28px;
  border-left:2px solid var(--line);
}
.team-card:first-child{border-left:none;}
.avatar{
  width:76px;height:76px;
  border-radius:var(--radius);
  background:var(--cobalt);
  color:#fff;
  font-family:var(--font-display);
  font-weight:800;
  font-size:22px;
  display:flex;align-items:center;justify-content:center;
}
.team-card h4{color:var(--on-dark);font-size:18px;font-family:var(--font-body);font-weight:700;}
.team-role{
  font-family:var(--font-mono);
  font-size:11.5px;
  color:#7d93ff;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-block:5px 9px;
}
.team-card p{color:var(--on-dark-soft);font-size:14px;}
@media (max-width:640px){
  .team-grid{grid-template-columns:1fr;}
  .team-card{border-left:none;border-top:2px solid var(--line);}
  .team-card:first-child{border-top:none;}
}

/* ---------- final CTA / booking ---------- */
.cta-final-inner{display:grid;gap:30px;max-width:660px;}
.booking-slot{
  margin-top:8px;
  border:2px dashed rgba(246,247,245,.3);
  border-radius:var(--radius);
  padding:36px 30px;
  display:grid;
  gap:12px;
  justify-items:start;
}
.booking-slot p{color:var(--on-dark-soft);font-size:14px;max-width:460px;}

/* ---------- contact form ---------- */
.contact-panel{
  background:var(--bg);
  border:2px solid var(--line);
  border-radius:var(--radius);
  padding:clamp(24px,4vw,38px);
  display:grid;
  gap:17px;
}
.form-row{display:grid;gap:8px;}
.form-row label{font-size:13px;font-weight:700;color:var(--ink);}
.form-row input,.form-row textarea{
  font-family:var(--font-body);
  font-size:15px;
  padding:13px 14px;
  border:1.5px solid var(--line);
  border-radius:var(--radius);
  background:var(--bg);
  color:var(--ink);
  width:100%;
}
.form-row input:focus,.form-row textarea:focus{
  outline:2px solid var(--cobalt);
  outline-offset:1px;
  border-color:var(--cobalt);
}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:17px;}
@media (max-width:560px){.form-grid-2{grid-template-columns:1fr;}}
.consent-row{display:flex;gap:11px;align-items:flex-start;font-size:13.5px;color:var(--ink-soft);}
.consent-row input{margin-top:3px;width:16px;height:16px;flex:none;}
.consent-row a{text-decoration:underline;}
.form-note{font-size:13px;color:var(--ink-soft);}
.form-success{
  display:none;
  padding:14px 16px;
  border:2px solid var(--ok);
  border-radius:var(--radius);
  color:var(--ok);
  font-size:14px;
  font-weight:700;
}
.form-success.show{display:block;}

/* ---------- footer ---------- */
footer.site-footer{
  background:var(--ink);
  color:var(--on-dark-soft);
  border-top:2px solid var(--line);
  position:relative;
}
.footer-top{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:40px;
  padding-block:56px 34px;
}
.footer-brand .brand{display:block;margin-bottom:12px;color:var(--on-dark);}
.footer-brand .brand .brand-mark{color:#7d93ff;}
.footer-brand p{font-size:14px;max-width:320px;}
.footer-col h5{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--on-dark-soft);
  margin-bottom:15px;
}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;}
.footer-col a{text-decoration:none;font-size:14.5px;color:var(--on-dark);}
.footer-col a:hover{color:#7d93ff;}
.footer-legal{
  border-top:1.5px solid rgba(246,247,245,.18);
  padding-block:22px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:12px;
  font-size:12.5px;
}
@media (max-width:760px){.footer-top{grid-template-columns:1fr;}}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:60;
  background:var(--ink);
  color:var(--on-dark);
  border-top:2px solid var(--line);
  padding:18px max(20px,env(safe-area-inset-right,0px)) max(18px,env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));
  display:none;
}
.cookie-banner.show{display:block;}
.cookie-inner{
  max-width:1180px;
  margin:0 auto;
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
}
.cookie-inner p{font-size:13.5px;color:var(--on-dark-soft);max-width:620px;}
.cookie-inner p a{text-decoration:underline;color:var(--on-dark);}
.cookie-actions{display:flex;gap:10px;flex:none;}

/* ---------- privacy page ---------- */
.legal-wrap{
  max-width:740px;margin:0 auto;padding-block:80px;
  padding-left:max(20px, env(safe-area-inset-left,0px));
  padding-right:max(20px, env(safe-area-inset-right,0px));
}
.legal-wrap h1{font-size:clamp(28px,4vw,40px);margin-bottom:10px;}
.legal-updated{font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);margin-bottom:44px;display:block;text-transform:uppercase;letter-spacing:.06em;}
.legal-wrap h2{font-size:20px;margin-top:40px;margin-bottom:13px;font-family:var(--font-body);font-weight:700;}
.legal-wrap p{color:var(--ink-soft);font-size:15px;margin-bottom:14px;}
.legal-wrap ul{color:var(--ink-soft);font-size:15px;padding-left:20px;margin-bottom:14px;}
.legal-wrap li{margin-bottom:6px;}
.legal-wrap a{text-decoration:underline;}
.legal-table{width:100%;border-collapse:collapse;margin-block:16px;font-size:14px;}
.legal-table th,.legal-table td{border:1.5px solid var(--line-soft);padding:10px 12px;text-align:left;color:var(--ink-soft);}
.legal-table th{color:var(--ink);font-weight:700;}
.back-link{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;font-weight:700;color:var(--ink);
  text-decoration:none;margin-bottom:30px;
}

@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;}
}
