@import url("fonts.css");

/* ==========================================================================
   FEROZ — art direction "Frontera"
   Near-black filmic base, one fierce ember accent, editorial display type.
   Mobile (390px portrait) is the design origin; desktop scales up.
   ========================================================================== */

:root{
  /* --- surface --- */
  --ink:        #050506;
  --ink-1:      #08090B;
  --ink-2:      #0C0E11;
  --ink-3:      #121418;
  --ink-card:   rgba(18,20,24,.62);

  /* --- accent: ember --- */
  --ember:      #FF5A1F;
  --ember-2:    #FFA245;
  --ember-deep: #C7360C;
  --ember-glow: rgba(255,90,31,.42);

  /* --- brand secondaries (from the FEROZ mark) --- */
  --leaf:       #3D9E68;
  --navy:       #071527;

  /* --- ink on dark --- */
  --bone:       #EFE9E0;
  --bone-2:     rgba(239,233,224,.78);
  --mute:       rgba(239,233,224,.56);
  --faint:      rgba(239,233,224,.38);
  --line:       rgba(239,233,224,.10);
  --line-2:     rgba(239,233,224,.18);

  /* --- type --- */
  --display: 'Clash Display', 'Satoshi', system-ui, -apple-system, sans-serif;
  --body:    'Satoshi', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* --- motion --- */
  --ease:     cubic-bezier(.16,1,.3,1);
  --ease-out: cubic-bezier(.22,.61,.36,1);

  /* --- rhythm --- */
  --gutter:  clamp(20px, 5.2vw, 72px);
  --measure: 1360px;
  --chapter-pad: clamp(86px, 14vh, 200px);

  --header-h: 62px;
  --mobilebar-h: 0px;
}

/* ==========================================================================
   Reset & base
   ========================================================================== */

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h) + 12px);
}

body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--body);
  font-size:16px;
  line-height:1.62;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  padding-bottom:var(--mobilebar-h);
}

img,svg,canvas{ display:block; max-width:100% }
img{ height:auto }
a{ color:inherit; text-decoration:none }
button,input,select,textarea{ font:inherit; color:inherit }
::selection{ background:var(--ember); color:#160800 }

:focus-visible{
  outline:2px solid var(--ember-2);
  outline-offset:3px;
  border-radius:4px;
}

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ember); color:#160800; padding:12px 18px; font-weight:700;
}
.skip:focus{ left:12px; top:12px }

.sr{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

/* ==========================================================================
   Filmic overlays — grain + light leak. Purely decorative.
   ========================================================================== */

/* The grain jitters via background-position rather than a transform on an
   oversized box: the box stays exactly viewport-sized, so it can never widen
   the scrollable area on a 320px screen, and the pattern tiles seamlessly. */
.grain{
  position:fixed; inset:0; z-index:9000; pointer-events:none;
  opacity:.05;
  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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  background-repeat:repeat;
  animation:grain 720ms steps(3) infinite;
}
@keyframes grain{
  0%{background-position:0 0}      25%{background-position:-37px 24px}
  50%{background-position:29px -31px} 75%{background-position:-19px -17px}
  100%{background-position:0 0}
}

.leak{
  position:fixed; inset:0; z-index:8998; pointer-events:none; opacity:.5;
  background:
    radial-gradient(58% 40% at 88% -6%,  rgba(255,120,50,.12), transparent 62%),
    radial-gradient(42% 34% at -6% 22%,  rgba(255,90,31,.07),  transparent 60%);
  mix-blend-mode:screen;
}

/* ==========================================================================
   Layout shell
   ========================================================================== */

.wrap{ width:100%; max-width:var(--measure); margin-inline:auto; padding-inline:var(--gutter) }

.chapter{
  position:relative;
  padding-block:var(--chapter-pad);
  border-top:1px solid var(--line);
}
.chapter:first-of-type{ border-top:0 }

/* section background media, always heavily crushed */
.chapter-bg{
  position:absolute; inset:0; z-index:-1; overflow:hidden; contain:paint; pointer-events:none;
}
.chapter-bg img{
  width:100%; height:100%; object-fit:cover;
  opacity:.20; filter:saturate(.85);
}
.chapter-bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, var(--ink) 0%, rgba(5,5,6,.72) 26%, rgba(5,5,6,.72) 74%, var(--ink) 100%);
}

/* chapter marker: 01 — LABEL */
.marker{
  display:flex; align-items:center; gap:14px;
  font-size:11px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--faint); margin-bottom:clamp(20px,3.2vh,34px);
  font-variant-numeric:tabular-nums;
}
.marker b{
  color:var(--bone-2); font-weight:600; letter-spacing:.16em;
}
.marker::after{
  content:""; flex:1; height:1px; max-width:180px;
  background:linear-gradient(90deg, var(--line-2), transparent);
}

/* ==========================================================================
   Typography
   ========================================================================== */

/* safety net: no heading may ever push a 320px column wider than itself */
h1,h2,h3,h4,.h-xl,.h-lg,.h-md,.h-sm,.pull,.risk .big{ overflow-wrap:break-word }

.h-xl{
  font-family:var(--display); font-weight:500;
  font-size:clamp(2.5rem, 7.4vw, 5.6rem);
  line-height:.95; letter-spacing:-.034em; text-wrap:balance;
}
.h-lg{
  font-family:var(--display); font-weight:500;
  font-size:clamp(2rem, 4.6vw, 3.5rem);
  line-height:1.02; letter-spacing:-.028em; text-wrap:balance;
}
.h-md{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.35rem, 2.3vw, 1.85rem);
  line-height:1.16; letter-spacing:-.02em;
}
.h-sm{
  font-family:var(--display); font-weight:600;
  font-size:1.02rem; line-height:1.3; letter-spacing:-.008em;
}

.lede{
  font-size:clamp(1.02rem, 1.42vw, 1.24rem);
  line-height:1.6; color:var(--bone-2); max-width:56ch;
}
.body{ color:var(--mute); max-width:62ch }
.body + .body{ margin-top:1em }
.body strong, .lede strong{ color:var(--bone); font-weight:600 }

.hot{
  background:linear-gradient(96deg, var(--ember) 4%, var(--ember-2) 52%, var(--ember) 96%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.eyebrow{
  font-size:11px; letter-spacing:.32em; text-transform:uppercase; color:var(--mute);
}

/* pull quote */
.pull{
  margin-top:clamp(38px,6vh,74px);
  padding:clamp(26px,4vw,44px) 0 0;
  border-top:1px solid var(--line);
  font-family:var(--display); font-weight:400;
  font-size:clamp(1.4rem,3.1vw,2.5rem);
  line-height:1.16; letter-spacing:-.024em; color:var(--bone); text-wrap:balance;
}

/* ==========================================================================
   Reveal — progressive enhancement, content is visible without JS
   ========================================================================== */

.js .rv{ opacity:0; transform:translateY(26px); }
.js .rv.in{
  opacity:1; transform:none;
  transition:opacity .9s var(--ease) var(--rvd,0s), transform .9s var(--ease) var(--rvd,0s);
}

/* ==========================================================================
   Header
   ========================================================================== */

.hdr{
  position:fixed; inset:0 0 auto; z-index:120;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .45s var(--ease), border-color .45s var(--ease), backdrop-filter .45s;
  border-bottom:1px solid transparent;
}
.hdr.stuck{
  background:rgba(5,5,6,.80);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line);
}
.hdr .wrap{ display:flex; align-items:center; justify-content:space-between; gap:16px }

.brand{ display:flex; align-items:center; gap:11px; flex:none }
.brand img{ width:30px; height:auto }
.brand span{
  font-family:var(--display); font-weight:600; font-size:17px;
  letter-spacing:.24em; text-transform:uppercase;
}

.nav{ display:flex; align-items:center; gap:clamp(16px,2vw,30px) }
.nav a{
  font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute);
  transition:color .3s; position:relative; padding-block:6px;
}
.nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--ember); transition:right .45s var(--ease);
}
.nav a:hover, .nav a:focus-visible{ color:var(--bone) }
.nav a:hover::after{ right:0 }

.lang{
  display:inline-flex; align-items:center; gap:7px;
  border:1px solid var(--line-2); border-radius:999px;
  min-height:44px; padding:7px 15px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--mute); transition:border-color .35s, color .35s, background .35s;
}
.lang b{ color:var(--bone); font-weight:600 }
.lang:hover{ border-color:var(--line-2); background:rgba(239,233,224,.05); color:var(--bone) }

/* .nav prefix needed: .btn sets display:inline-flex later in this file and
   would otherwise win on equal specificity, leaking the button onto mobile. */
.nav .hdr-cta{ display:none }

/* ==========================================================================
   Buttons
   ========================================================================== */

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  min-height:52px; padding:14px 26px; border:0; border-radius:999px; cursor:pointer;
  font-family:var(--body); font-size:15px; font-weight:700; line-height:1.2;
  text-align:center; text-wrap:balance;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease),
             background .35s var(--ease), border-color .35s, color .35s;
  -webkit-tap-highlight-color:transparent;
}
.btn svg{ flex:none }

.btn-1{
  background:linear-gradient(100deg, var(--ember) 6%, var(--ember-2) 94%);
  color:#180800;
  box-shadow:0 16px 44px -16px rgba(255,90,31,.78);
}
.btn-1:hover, .btn-1:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 0 34px -6px var(--ember-glow), 0 22px 54px -16px rgba(255,90,31,.9);
}
.btn-1:active{ transform:translateY(0) scale(.985) }

.btn-2{
  background:rgba(239,233,224,.045); color:var(--bone);
  border:1px solid var(--line-2);
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.btn-2:hover, .btn-2:focus-visible{
  transform:translateY(-2px);
  background:rgba(239,233,224,.09); border-color:rgba(239,233,224,.3);
}
.btn-2:active{ transform:translateY(0) scale(.985) }

.btn-ghost{
  background:transparent; color:var(--ember-2); border:1px solid rgba(255,90,31,.34);
  min-height:48px; padding:12px 22px; font-size:14px;
}
.btn-ghost:hover, .btn-ghost:focus-visible{
  background:rgba(255,90,31,.1); border-color:rgba(255,90,31,.6); transform:translateY(-2px);
}

.btn-sm{ min-height:46px; padding:12px 20px; font-size:14px }
.btn-block{ width:100% }

.cta-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:clamp(26px,4vh,42px) }

/* inline text link with ember underline */
.link{
  color:var(--ember-2); font-weight:600;
  box-shadow:inset 0 -1px 0 rgba(255,162,69,.45);
  transition:box-shadow .35s, color .35s;
}
.link:hover{ color:var(--bone); box-shadow:inset 0 -1px 0 var(--bone) }

/* ==========================================================================
   Chapter 00 — Hero
   ========================================================================== */

.hero{
  position:relative;
  min-height:100svh;
  display:flex; flex-direction:column;
  isolation:isolate; overflow:hidden; contain:paint;
  padding-top:var(--header-h);
}

#route{
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
}

/* Painted as a background on a viewport-sized box rather than an oversized
   circle, so nothing escapes the hero and inflates the scroll area. */
.hero-glow{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(58% 62% at 86% 112%,
    rgba(255,90,31,.40) 0%, rgba(255,90,31,.19) 26%, rgba(255,90,31,.055) 48%, transparent 70%);
  animation:breathe 12s var(--ease) infinite alternate;
}
@keyframes breathe{ from{opacity:.72} to{opacity:1} }

.hero-vig{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(126% 84% at 46% 44%, transparent 32%, rgba(5,5,6,.6) 72%, rgba(5,5,6,.97) 100%);
}
/* type scrim — keeps the headline readable where the route crosses it */
.hero-scrim{
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(102deg,
    rgba(5,5,6,.72) 0%, rgba(5,5,6,.56) 26%, rgba(5,5,6,.3) 44%, rgba(5,5,6,.08) 60%, transparent 72%);
}

.hero-in{
  position:relative; z-index:3; flex:1;
  display:flex; flex-direction:column; justify-content:center;
  padding-block:clamp(28px,5vh,72px);
}

.hero-eyebrow{
  display:flex; align-items:center; gap:13px; flex-wrap:wrap;
  margin-bottom:clamp(18px,3vh,32px);
  font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--mute);
}
.hero-eyebrow::before{
  content:""; width:clamp(24px,4vw,54px); height:1px;
  background:linear-gradient(90deg,var(--ember),transparent);
}
.hero-eyebrow em{ font-style:normal; color:var(--ember-2) }

/* The headline is short enough to hold two lines, so it gets a wider measure
   than the rest of the page and a size that tracks the available width —
   a fixed clamp would break to three lines on a 1440px laptop. */
.hero .wrap{ max-width:1700px }
.hero h1{
  font-family:var(--display); font-weight:500;
  font-size:clamp(2.25rem, calc(4.05vw - 4px), 4.25rem);
  line-height:.98; letter-spacing:-.036em;
  max-width:none; text-wrap:balance;
}
/* per-word rise-in */
.hero h1 .wr{ display:inline-block; overflow:hidden; vertical-align:bottom; padding-bottom:.06em; margin-bottom:-.06em }
.js .hero h1 .wd{ display:inline-block; transform:translateY(106%); opacity:0 }
.js .hero.lit h1 .wd{
  transform:none; opacity:1;
  transition:transform 1s var(--ease) var(--d), opacity 1s var(--ease) var(--d);
}

.hero .lede{
  margin-top:clamp(18px,2.6vh,30px);
  max-width:58ch;
}
.js .hero .lede,
.js .hero .cta-row,
.js .hero-scarcity{ opacity:0; transform:translateY(16px) }
.js .hero.lit .lede,
.js .hero.lit .cta-row,
.js .hero.lit .hero-scarcity{
  opacity:1; transform:none;
  transition:opacity .9s var(--ease) var(--d), transform .9s var(--ease) var(--d);
}

.hero-scarcity{
  margin-top:clamp(22px,3.4vh,34px);
  display:flex; flex-wrap:wrap; gap:8px 22px;
  font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--faint);
}
.hero-scarcity span{ display:inline-flex; align-items:center; gap:9px }
.hero-scarcity b{ color:var(--bone); font-weight:600 }
.pip{
  width:5px; height:5px; border-radius:50%; flex:none;
  background:var(--ember); box-shadow:0 0 12px var(--ember);
  animation:pip 2.6s ease-in-out infinite;
}
@keyframes pip{ 0%,100%{opacity:1} 50%{opacity:.22} }

/* hero foot: the route legend — origin → destination is SALES, not the border */
.hero-foot{
  position:relative; z-index:3;
  border-top:1px solid var(--line);
}
.hero-foot .wrap{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding-block:15px;
  font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--faint);
}
.legrid{ display:flex; align-items:center; gap:10px; flex-wrap:wrap }
.legrid i{ font-style:normal; color:var(--faint) }
.legrid b{ color:var(--bone); font-weight:500; letter-spacing:.2em }
.legrid .end{ color:var(--ember-2) }
.scrollcue{ display:flex; align-items:center; gap:9px }
.scrollcue s{ display:block; width:26px; height:1px; background:var(--line-2); text-decoration:none; position:relative; overflow:hidden }
.scrollcue s::after{
  content:""; position:absolute; inset:0; background:var(--ember);
  animation:cue 2.4s var(--ease) infinite;
}
@keyframes cue{ 0%{transform:translateX(-100%)} 60%,100%{transform:translateX(100%)} }

/* ==========================================================================
   Capability grid (chapter 01)
   ========================================================================== */

.split{
  display:grid; gap:clamp(30px,5vw,72px);
  grid-template-columns:1fr;
  align-items:start;
}

.caps{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:clamp(34px,5vh,58px);
  background:var(--line); border:1px solid var(--line);
}
.cap{
  background:var(--ink-1); padding:clamp(20px,2.6vw,28px);
  position:relative; overflow:hidden;
  transition:background .45s var(--ease);
}
.cap::before{
  content:""; position:absolute; inset:0 auto 0 0; width:2px;
  background:linear-gradient(180deg,rgba(239,233,224,.5),rgba(239,233,224,.12));
  transform:scaleY(0); transform-origin:top; transition:transform .55s var(--ease);
}
.cap:hover{ background:var(--ink-2) }
.cap:hover::before{ transform:scaleY(1) }
.cap .n{
  font-size:11px; letter-spacing:.24em; color:var(--faint);
  font-variant-numeric:tabular-nums; font-weight:600; display:block; margin-bottom:11px;
}
.cap h3{ font-family:var(--display); font-weight:600; font-size:1.02rem; letter-spacing:-.008em; margin-bottom:7px }
.cap p{ font-size:14.5px; line-height:1.56; color:var(--mute) }

/* negation list — "what we are not" */
.nots{ margin-top:clamp(26px,4vh,40px); display:grid; gap:11px }
.not{
  display:flex; gap:13px; align-items:flex-start;
  font-size:15px; line-height:1.5; color:var(--mute);
}
.not i{
  flex:none; margin-top:5px; width:15px; height:1px; background:var(--faint);
}
.not.yes{ color:var(--bone) }
.not.yes i{ background:var(--ember); height:2px; box-shadow:0 0 10px var(--ember-glow) }

/* ==========================================================================
   Chapter 02 — the two offers
   ========================================================================== */

.offers{
  display:grid; grid-template-columns:1fr; gap:16px;
  margin-top:clamp(34px,5vh,56px);
}

.offer{
  position:relative; overflow:hidden; contain:paint;
  border:1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(18,20,24,.72), rgba(8,9,11,.86));
  padding:clamp(24px,3.2vw,40px);
  display:flex; flex-direction:column;
  transition:border-color .55s var(--ease), transform .55s var(--ease), box-shadow .55s var(--ease);
}
.offer::before{
  content:""; position:absolute; inset:-1px -1px auto; height:2px;
  background:linear-gradient(90deg, transparent, var(--ember), transparent);
  opacity:0; transition:opacity .55s var(--ease);
}
/* in-box gradient — see .hero-glow; anything bleeding past the card would
   still widen the document's scrollable width at 320px */
.offer::after{
  content:""; position:absolute; z-index:-1; inset:0;
  background:radial-gradient(62% 52% at 108% 104%, var(--ember-glow), transparent 68%);
  opacity:0; transition:opacity .7s var(--ease);
}
.offer.flag{ border-color:rgba(255,90,31,.28) }
.offer.flag::before{ opacity:.7 }
.offer.flag::after{ opacity:.4 }

.offer-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap }
.badge{
  display:inline-flex; align-items:center; gap:7px;
  /* must be allowed to shrink and wrap: at 320px the flagship badge is
     wider than the card's content box */
  max-width:100%; text-wrap:balance;
  border:1px solid var(--line-2); border-radius:999px; padding:5px 12px;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute);
}
.badge.em{ border-color:rgba(255,90,31,.4); color:var(--ember-2); background:rgba(255,90,31,.08) }

.offer .letter{
  font-family:var(--display); font-weight:600; font-size:12px;
  letter-spacing:.28em; text-transform:uppercase; color:var(--faint);
  display:block; margin-bottom:10px;
}
.offer h3{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.5rem,2.6vw,2.05rem); line-height:1.06; letter-spacing:-.026em;
}
.offer .who{
  margin-top:14px; font-size:15px; line-height:1.56; color:var(--bone-2);
  padding-bottom:clamp(18px,2.6vw,24px); border-bottom:1px solid var(--line);
}

.offer h4{
  margin-top:clamp(18px,2.6vw,24px); margin-bottom:11px;
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--faint);
}
.offer ul{ list-style:none; display:grid; gap:9px }
.offer li{
  display:flex; gap:11px; align-items:flex-start;
  font-size:14.5px; line-height:1.52; color:var(--mute);
}
.offer li svg{ flex:none; margin-top:4px; color:var(--ember) }
.offer li b{ color:var(--bone); font-weight:600 }
.offer.b li svg{ color:var(--faint) }

.offer .rule-note{
  margin-top:auto; padding-top:clamp(20px,3vw,28px);
  font-size:14px; line-height:1.55; color:var(--bone-2);
}
.offer .rule-note.hard{
  border-top:1px solid rgba(255,90,31,.24);
  color:var(--bone);
}
.offer .cta-row{ margin-top:20px }

.offers-note{
  margin-top:clamp(20px,3vh,28px);
  display:flex; gap:12px; align-items:flex-start;
  border:1px solid rgba(255,90,31,.2); background:rgba(255,90,31,.05);
  padding:16px 18px;
  font-size:14px; line-height:1.55; color:var(--bone-2);
}
.offers-note svg{ flex:none; margin-top:3px; color:var(--ember-2) }

/* ==========================================================================
   Chapter 03 — who we accept
   ========================================================================== */

.statline{
  display:flex; align-items:baseline; gap:clamp(14px,2vw,24px); flex-wrap:wrap;
  margin-bottom:clamp(26px,4vh,42px);
}
.statline .fig{
  font-family:var(--display); font-weight:600;
  font-size:clamp(3.4rem,10vw,7.2rem); line-height:.84; letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(170deg,var(--ember-2),var(--ember) 62%,var(--ember-deep));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.statline .cap-t{
  font-size:14.5px; line-height:1.5; color:var(--mute); max-width:30ch;
}

.criteria{ display:grid; gap:1px; background:var(--line); border-block:1px solid var(--line) }
.crit{
  background:var(--ink); padding:clamp(16px,2.2vw,22px) 0;
  display:flex; gap:clamp(14px,2vw,22px); align-items:flex-start;
  transition:background .4s var(--ease), padding-inline .4s var(--ease);
}
.crit .n{
  flex:none; width:2.4ch; font-size:11px; letter-spacing:.14em; color:var(--faint);
  font-variant-numeric:tabular-nums; font-weight:600; padding-top:5px;
}
.crit p{ font-size:clamp(1rem,1.5vw,1.14rem); line-height:1.5; color:var(--bone-2) }
.crit p b{ color:var(--bone); font-weight:600 }
.crit:hover{ background:var(--ink-1) }

.route-out{
  margin-top:clamp(24px,3.6vh,36px);
  border-left:2px solid var(--ember);
  padding:4px 0 4px 18px;
  font-size:clamp(1rem,1.5vw,1.14rem); line-height:1.55; color:var(--bone);
}

.reject{
  margin-top:clamp(30px,4.6vh,48px); padding-top:clamp(22px,3vw,30px);
  border-top:1px solid var(--line);
}
.reject h3{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--faint); margin-bottom:14px;
}
.reject ul{ list-style:none; display:flex; flex-wrap:wrap; gap:8px }
.reject li{
  font-size:13.5px; color:var(--mute);
  border:1px solid var(--line); border-radius:999px; padding:7px 14px;
}

/* ==========================================================================
   Chapter 04 — economics
   ========================================================================== */

.econ{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:clamp(34px,5vh,56px);
  background:var(--line); border:1px solid var(--line);
}
.econ > div{
  background:linear-gradient(180deg,var(--ink-1),var(--ink));
  padding:clamp(24px,3vw,34px);
  position:relative; overflow:hidden;
}
.econ .k{
  font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--ember-2);
  display:block; margin-bottom:16px; font-weight:600;
}
.econ h3{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.35rem,2.2vw,1.72rem); line-height:1.12; letter-spacing:-.022em;
  margin-bottom:11px;
}
.econ p{ font-size:14.5px; line-height:1.58; color:var(--mute) }

.risk{
  margin-top:clamp(30px,4.6vh,48px);
  border:1px solid rgba(255,90,31,.26);
  background:
    radial-gradient(120% 160% at 88% 0%, rgba(255,90,31,.12), transparent 62%),
    linear-gradient(180deg, rgba(18,20,24,.7), rgba(8,9,11,.9));
  padding:clamp(26px,4vw,48px);
  position:relative; overflow:hidden; contain:paint;
}
.risk .big{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.55rem,3.6vw,2.9rem); line-height:1.1; letter-spacing:-.028em;
  text-wrap:balance;
}
.risk p{ margin-top:16px; font-size:15px; line-height:1.6; color:var(--bone-2); max-width:62ch }

/* ==========================================================================
   Chapter 05 — how it works
   ========================================================================== */

.steps{ margin-top:clamp(34px,5vh,56px); display:grid; gap:0 }
.step{
  display:grid; grid-template-columns:auto 1fr; gap:clamp(16px,2.6vw,30px);
  padding-block:clamp(22px,3.2vw,32px);
  border-top:1px solid var(--line);
  position:relative;
}
.step:last-child{ border-bottom:1px solid var(--line) }
.step .n{
  font-family:var(--display); font-weight:600;
  font-size:clamp(1.6rem,3.4vw,2.6rem); line-height:.9; letter-spacing:-.04em;
  color:transparent; -webkit-text-stroke:1px rgba(239,233,224,.3);
  font-variant-numeric:tabular-nums; min-width:2.2ch;
  transition:-webkit-text-stroke-color .5s var(--ease), color .5s var(--ease);
}
.step:hover .n, .step.in .n{ -webkit-text-stroke-color:var(--ember); }
.step h3{ font-family:var(--display); font-weight:500; font-size:clamp(1.15rem,1.9vw,1.5rem); letter-spacing:-.018em; margin-bottom:8px }
.step p{ font-size:15px; line-height:1.58; color:var(--mute); max-width:60ch }
.step .meta{
  margin-top:8px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--faint);
}

/* ==========================================================================
   Chapter 06 — application
   ========================================================================== */

.apply{
  position:relative;
  border-top:1px solid var(--line);
  background:
    radial-gradient(90% 60% at 50% 0%, rgba(255,90,31,.07), transparent 62%),
    var(--ink);
}
.apply-grid{
  display:grid; grid-template-columns:1fr; gap:clamp(30px,4vw,64px);
  margin-top:clamp(30px,4.6vh,52px); align-items:start;
}

.gate{
  border:1px solid rgba(255,90,31,.24); background:rgba(255,90,31,.05);
  padding:18px 20px; display:flex; gap:13px; align-items:flex-start;
  font-size:14.5px; line-height:1.55; color:var(--bone-2);
}
.gate svg{ flex:none; margin-top:3px; color:var(--ember-2) }

.after{ margin-top:clamp(26px,4vh,36px); display:grid; gap:14px }
.after h3{ font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--faint) }
.after li{ list-style:none; display:flex; gap:13px; font-size:14.5px; line-height:1.5; color:var(--mute) }
.after li em{ font-style:normal; color:var(--ember-2); font-weight:600; font-variant-numeric:tabular-nums; flex:none }

/* --- form --- */
.form{
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(18,20,24,.62), rgba(8,9,11,.86));
  padding:clamp(22px,3.2vw,36px);
}
.fset{ border:0; display:grid; gap:16px }
.fset + .fset{ margin-top:26px; padding-top:26px; border-top:1px solid var(--line) }
.fset legend{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--ember-2);
  font-weight:600; margin-bottom:4px; padding:0;
}
.frow{ display:grid; grid-template-columns:1fr; gap:16px }

.fld{ display:grid; gap:7px }
.fld label{ font-size:12.5px; letter-spacing:.06em; color:var(--bone-2); font-weight:500 }
.fld label .req{ color:var(--ember) }
.fld .hint{ font-size:12px; color:var(--faint); line-height:1.45 }

.fld input, .fld select, .fld textarea{
  width:100%;
  /* 16px minimum prevents iOS zoom-on-focus */
  font-size:16px; line-height:1.4;
  background:rgba(5,5,6,.7); color:var(--bone);
  border:1px solid var(--line-2); border-radius:6px;
  padding:14px 15px; min-height:52px;
  transition:border-color .3s, background .3s, box-shadow .3s;
  -webkit-appearance:none; appearance:none;
}
.fld textarea{ min-height:104px; resize:vertical }
.fld select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23EFE9E0' stroke-opacity='.55' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center;
  padding-right:40px;
}
.fld input:focus, .fld select:focus, .fld textarea:focus{
  outline:none; border-color:rgba(255,90,31,.6);
  background:rgba(5,5,6,.95);
  box-shadow:0 0 0 3px rgba(255,90,31,.12);
}
.fld input::placeholder, .fld textarea::placeholder{ color:rgba(239,233,224,.28) }
.fld.err input, .fld.err select, .fld.err textarea{ border-color:#FF4A3D }
.fld .msg{ font-size:12px; color:#FF8A7D; display:none }
.fld.err .msg{ display:block }

/* radio pills */
.pills{ display:flex; flex-wrap:wrap; gap:9px }
.pill{ position:relative }
.pill input{
  position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer;
}
.pill span{
  display:flex; align-items:center; justify-content:center;
  min-height:46px; padding:11px 17px;
  border:1px solid var(--line-2); border-radius:999px;
  font-size:14px; color:var(--mute); cursor:pointer;
  transition:border-color .3s, color .3s, background .3s;
}
.pill input:checked + span{
  border-color:var(--ember); color:var(--bone); background:rgba(255,90,31,.13);
}
.pill input:focus-visible + span{ outline:2px solid var(--ember-2); outline-offset:2px }

/* the Offer B routing panel */
.reroute{
  display:none; margin-top:18px;
  border:1px solid rgba(255,90,31,.34);
  background:radial-gradient(120% 160% at 90% 0%, rgba(255,90,31,.14), transparent 60%), rgba(12,14,17,.9);
  padding:20px;
}
.reroute.on{ display:block; animation:rr .55s var(--ease) both }
@keyframes rr{ from{opacity:0; transform:translateY(-8px)} to{opacity:1; transform:none} }
.reroute .k{ font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--ember-2); font-weight:600 }
.reroute h4{ font-family:var(--display); font-weight:500; font-size:1.22rem; letter-spacing:-.018em; margin:10px 0 9px }
.reroute p{ font-size:14.5px; line-height:1.56; color:var(--bone-2) }
.reroute .cta-row{ margin-top:16px }

.consent{ display:flex; gap:11px; align-items:flex-start; font-size:13px; line-height:1.5; color:var(--mute) }
.consent input{
  flex:none; width:20px; height:20px; margin-top:2px; accent-color:var(--ember);
}

.form-foot{ margin-top:24px; padding-top:22px; border-top:1px solid var(--line); display:grid; gap:14px }
.form-note{ font-size:12.5px; color:var(--faint); line-height:1.5 }

.formstate{ display:none; font-size:14.5px; line-height:1.55; padding:15px 17px; border-radius:6px }
.formstate.on{ display:block }
.formstate.bad{ background:rgba(255,74,61,.1); border:1px solid rgba(255,74,61,.4); color:#FFB3AB }

.thanks{
  display:none; text-align:left;
  border:1px solid rgba(255,90,31,.3);
  background:radial-gradient(110% 140% at 88% 0%, rgba(255,90,31,.12), transparent 62%), rgba(12,14,17,.92);
  padding:clamp(26px,4vw,44px);
}
.thanks.on{ display:block; animation:rr .7s var(--ease) both }
.thanks .mark{ width:44px; height:44px; margin-bottom:18px }
.thanks h3{ font-family:var(--display); font-weight:500; font-size:clamp(1.4rem,2.6vw,1.9rem); letter-spacing:-.022em; margin-bottom:12px }
.thanks p{ color:var(--bone-2); font-size:15px; line-height:1.6; max-width:56ch }

/* ==========================================================================
   FAQ
   ========================================================================== */

.faq{ margin-top:clamp(30px,4.6vh,50px); border-top:1px solid var(--line) }
.qa{ border-bottom:1px solid var(--line) }
.qa summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px;
  padding-block:clamp(18px,2.6vw,24px);
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.02rem,1.6vw,1.2rem); line-height:1.34; letter-spacing:-.012em;
  color:var(--bone-2); transition:color .35s;
  min-height:56px;
}
.qa summary::-webkit-details-marker{ display:none }
.qa summary:hover{ color:var(--bone) }
.qa[open] summary{ color:var(--bone) }
.qa .ic{
  flex:none; width:22px; height:22px; margin-top:3px; position:relative;
}
.qa .ic::before, .qa .ic::after{
  content:""; position:absolute; inset:50% 0 auto; height:1.5px; background:var(--ember-2);
  transition:transform .45s var(--ease);
}
.qa .ic::after{ transform:rotate(90deg) }
.qa[open] .ic::after{ transform:rotate(0) }
.qa .ans{ padding-bottom:clamp(20px,2.8vw,28px) }
.qa .ans p{ font-size:15px; line-height:1.62; color:var(--mute); max-width:72ch }
.qa .ans p + p{ margin-top:.85em }

/* ==========================================================================
   Footer
   ========================================================================== */

.ftr{
  border-top:1px solid var(--line);
  background:linear-gradient(180deg, var(--ink), #030304);
  padding-block:clamp(46px,7vh,84px) clamp(28px,4vh,40px);
}
.ftr-grid{
  display:grid; grid-template-columns:1fr; gap:clamp(30px,4vw,54px);
}
.ftr-brand img{ width:150px; margin-bottom:18px }
.ftr-brand p{ font-size:14px; line-height:1.6; color:var(--mute); max-width:38ch }
.ftr h3{
  font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--faint);
  margin-bottom:15px;
}
.ftr ul{ list-style:none; display:grid; gap:11px }
.ftr li a{ font-size:14.5px; color:var(--mute); transition:color .3s }
.ftr li a:hover{ color:var(--ember-2) }
.wa{ display:inline-flex; align-items:center; gap:10px; min-height:44px }
.wa svg{ flex:none; color:var(--leaf) }

.ftr-base{
  margin-top:clamp(34px,5vh,56px); padding-top:22px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:12px 24px; justify-content:space-between; align-items:center;
  font-size:12px; color:var(--faint);
}
.ftr-base a{ transition:color .3s }
.ftr-base a:hover{ color:var(--bone-2) }

/* ==========================================================================
   Sticky mobile CTA bar
   ========================================================================== */

.mbar{
  position:fixed; inset:auto 0 0; z-index:130;
  display:none; gap:9px; padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));
  background:rgba(5,5,6,.9);
  backdrop-filter:blur(18px) saturate(140%); -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-top:1px solid var(--line);
  transform:translateY(110%); transition:transform .5s var(--ease);
}
.mbar.on{ transform:none }
.mbar .btn{ flex:1; min-height:50px; padding:12px 14px; font-size:14px }
.mbar .btn-2{ flex:0 0 auto; padding-inline:18px }

/* ==========================================================================
   Cookie consent
   ========================================================================== */

.cc{
  position:fixed; z-index:140; left:var(--gutter); right:var(--gutter);
  bottom:calc(14px + env(safe-area-inset-bottom));
  max-width:520px;
  background:rgba(10,11,13,.94);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line-2); border-radius:12px;
  padding:18px 20px;
  box-shadow:0 24px 60px -18px rgba(0,0,0,.9);
  transform:translateY(140%); opacity:0; pointer-events:none;
  transition:transform .6s var(--ease), opacity .6s var(--ease);
}
.cc.on{ transform:none; opacity:1; pointer-events:auto }
.cc p{ font-size:13.5px; line-height:1.55; color:var(--mute) }
.cc p a{ color:var(--ember-2) }
.cc .row{ display:flex; flex-wrap:wrap; gap:9px; margin-top:14px }
.cc .btn{ min-height:44px; padding:10px 18px; font-size:13.5px }

/* ==========================================================================
   Scroll progress rail (desktop)
   ========================================================================== */

.rail{ display:none }

/* ==========================================================================
   Breakpoints — mobile first, scaling up
   ========================================================================== */

@media (min-width:600px){
  .frow.two{ grid-template-columns:1fr 1fr }
  .caps{ grid-template-columns:1fr 1fr }
  .econ{ grid-template-columns:1fr 1fr }
  .econ > div:last-child{ grid-column:1/-1 }
  .ftr-grid{ grid-template-columns:1fr 1fr }
}

@media (min-width:860px){
  :root{ --header-h:74px }
  .nav .hdr-cta{ display:inline-flex }
  .caps{ grid-template-columns:repeat(3,1fr) }
  .offers{ grid-template-columns:1fr 1fr; gap:20px }
  .econ{ grid-template-columns:repeat(3,1fr) }
  .econ > div:last-child{ grid-column:auto }
  .split.two{ grid-template-columns:minmax(0,1fr) minmax(0,1fr) }
  .hero h1{ max-width:none }
  .apply-grid{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) }
  .ftr-grid{ grid-template-columns:1.6fr 1fr 1fr }

  /* hover tilt only where a pointer actually exists */
  @media (hover:hover) and (pointer:fine){
    .offer:hover{
      transform:translateY(-4px);
      border-color:rgba(255,90,31,.4);
      box-shadow:0 32px 70px -30px rgba(0,0,0,.95);
    }
    .offer:hover::after{ opacity:.55 }
    .offer.tilt{ transform:perspective(1200px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) translateY(-4px) }
  }

  /* chapter progress rail */
  .rail{
    display:block; position:fixed; z-index:110;
    left:22px; top:50%; transform:translateY(-50%);
  }
  .rail ol{ list-style:none; display:grid; gap:14px }
  .rail a{
    display:flex; align-items:center; gap:11px;
    font-size:10px; letter-spacing:.2em; color:var(--faint);
    font-variant-numeric:tabular-nums; transition:color .4s;
  }
  .rail i{
    display:block; width:16px; height:1px; background:var(--line-2);
    transition:width .5s var(--ease), background .4s;
  }
  .rail a:hover{ color:var(--bone-2) }
  .rail a:hover i{ width:26px }
  .rail li.on a{ color:var(--ember-2) }
  .rail li.on i{ width:32px; background:var(--ember); box-shadow:0 0 10px var(--ember-glow) }
  .rail .lbl{ opacity:0; transform:translateX(-6px); transition:opacity .4s, transform .4s }
  .rail:hover .lbl, .rail li.on .lbl{ opacity:1; transform:none }
}

@media (min-width:1180px){
  .hero h1{ max-width:none }
}

/* --- small screens: hide desktop nav, show sticky bar --- */
@media (max-width:859px){
  .nav .nlink{ display:none }
  .mbar{ display:flex }
  body.has-bar{ --mobilebar-h:74px }
  .cc{ bottom:calc(84px + env(safe-area-inset-bottom)) }
  .step{ grid-template-columns:1fr; gap:10px }
  .step .n{ font-size:1.5rem }

  /* Tighten the hero so the primary CTA lands well above the fold on a
     390px portrait screen without shrinking the headline. */
  .hero-in{ padding-block:clamp(18px,3vh,32px) }
  .hero-eyebrow{ font-size:9.5px; letter-spacing:.22em; gap:9px; margin-bottom:16px }
  .hero .lede{ margin-top:16px }
  .cta-row{ margin-top:22px; gap:10px }
  .hero .btn{ width:100% }
  .hero-scarcity{ margin-top:18px; gap:6px 16px; font-size:10px; line-height:1.4 }
  .hero-foot .wrap{ padding-block:11px; font-size:9px; letter-spacing:.16em }
  /* the route is already told in full by the canvas + headline; on mobile
     keep only the two ends of it */
  .hero-foot .legrid .mid{ display:none }
  .scrollcue{ display:none }
}

@media (max-width:400px){
  .hero h1{ font-size:2.15rem; letter-spacing:-.034em }
  .statline .fig{ font-size:3.1rem }
}

/* ==========================================================================
   Reduced motion — kill every non-essential transform/animation
   ========================================================================== */

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *, *::before, *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .grain, .leak{ display:none }
  .js .rv{ opacity:1; transform:none }
  .js .hero h1 .wd,
  .js .hero .lede, .js .hero .cta-row, .js .hero-scarcity{ opacity:1; transform:none }
  .mbar{ transform:none }
}

/* ==========================================================================
   Print
   ========================================================================== */

@media print{
  .grain,.leak,.mbar,.cc,.rail,#route,.hero-glow,.hero-vig{ display:none !important }
  body{ background:#fff; color:#000 }
}

/* ==========================================================================
   v2 — density, rhythm, cream contrast
   ========================================================================== */

/* --- the hero hard line: result + money model + every channel --------- */
.hero .lede.claim{ max-width:58ch }
.hero .lede, .hero .cta-row, .hero-scarcity, .hero-eyebrow{ max-width:min(100%,1216px) }
.hero .lede.claim b{ color:var(--bone); font-weight:600 }

/* --- disclosure: keeps depth behind one tap instead of on the page ---- */
.expand{
  margin-top:clamp(14px,2vw,20px);
  border-top:1px solid var(--line);
}
.expand > summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; gap:12px;
  min-height:52px; padding-block:14px;
  font-size:13.5px; letter-spacing:.02em; color:var(--bone-2);
  transition:color .35s;
}
.expand > summary::-webkit-details-marker{ display:none }
.expand > summary:hover{ color:var(--bone) }
.expand > summary .arw{
  flex:none; width:18px; height:1px; background:currentColor; position:relative;
  transition:width .45s var(--ease);
}
.expand > summary .arw::after{
  content:""; position:absolute; right:0; top:-3px;
  width:6px; height:6px; border-top:1px solid currentColor; border-right:1px solid currentColor;
  transform:rotate(45deg);
}
.expand[open] > summary .arw{ width:26px }
.expand[open] > summary{ color:var(--bone) }
.expand .inner{ padding-bottom:clamp(16px,2.4vw,24px) }

/* the folded-away operational detail, as quiet chips */
.detail{ list-style:none; display:flex; flex-wrap:wrap; gap:8px }
.detail li{
  font-size:13px; color:var(--mute);
  border:1px solid var(--line); border-radius:999px; padding:7px 14px;
}

/* --- CREAM section: the economics block. Dark type on cream reads as
       transparency, and this is where trust is decided. ------------------ */
.chapter--cream{
  --bone:      #14100C;
  --bone-2:    rgba(20,16,12,.80);
  --mute:      rgba(20,16,12,.62);
  --faint:     rgba(20,16,12,.44);
  --line:      rgba(20,16,12,.13);
  --line-2:    rgba(20,16,12,.22);
  --ink-1:     #FFFFFF;
  --ember-2:   #B8410E;
  background:
    radial-gradient(120% 80% at 84% -10%, rgba(255,146,64,.16), transparent 60%),
    #F6F1E8;
  color:#14100C;
  border-top:0;
}
.chapter--cream .marker b{ color:rgba(20,16,12,.72) }
.chapter--cream .marker::after{ background:linear-gradient(90deg, rgba(20,16,12,.22), transparent) }
.chapter--cream .hot{
  background:linear-gradient(96deg,#C6400A 4%,#E9670F 54%,#C6400A 96%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.chapter--cream .grain-c{
  position:absolute; inset:0; pointer-events:none; opacity:.35; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23p)' opacity='.09'/%3E%3C/svg%3E");
}

/* the plain-math statement */
.math{
  margin-top:clamp(26px,4vh,42px);
  border:1px solid rgba(20,16,12,.18);
  background:rgba(255,255,255,.62);
  padding:clamp(24px,3.6vw,40px);
  font-size:clamp(1.06rem,1.62vw,1.32rem);
  line-height:1.56; color:#14100C; max-width:62ch;
}
.math b{ font-weight:700 }
.math .lead-in{
  display:block; margin-bottom:12px;
  font-family:var(--body); font-size:10.5px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:rgba(20,16,12,.5);
}

/* three short economics facts */
.facts{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:clamp(24px,3.4vh,38px);
  background:rgba(20,16,12,.13); border:1px solid rgba(20,16,12,.13);
}
.facts > div{ background:#FBF7EF; padding:clamp(20px,2.6vw,28px) }
.facts h3{
  font-family:var(--display); font-weight:600; font-size:1.02rem;
  letter-spacing:-.01em; margin-bottom:7px; color:#14100C;
}
.facts p{ font-size:14.5px; line-height:1.55; color:rgba(20,16,12,.66) }

.closer{
  margin-top:clamp(26px,4vh,44px);
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.35rem,2.9vw,2.15rem);
  line-height:1.14; letter-spacing:-.024em; color:#14100C; text-wrap:balance;
}

/* --- PROOF: one real case, our own brand ---------------------------------- */
.proof-card{
  margin-top:clamp(28px,4.4vh,46px);
  display:grid; grid-template-columns:1fr; gap:0;
  border:1px solid var(--line-2); overflow:hidden; contain:paint;
  background:linear-gradient(180deg, rgba(18,20,24,.72), rgba(8,9,11,.9));
}
.proof-media{ position:relative; min-height:200px; overflow:hidden }
/* the food has to actually read here — this section sells appetite */
.proof-media img{ width:100%; height:100%; object-fit:cover; opacity:.92 }
.proof-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(5,5,6,0) 30%, rgba(5,5,6,.55) 100%);
}
@media (min-width:860px){
  .proof-media::after{
    background:linear-gradient(90deg, rgba(5,5,6,0) 55%, rgba(5,5,6,.6) 100%);
  }
}
.proof-body{ padding:clamp(24px,3.4vw,44px); display:flex; flex-direction:column }
.proof-tag{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  border:1px solid var(--line-2); border-radius:999px; padding:6px 13px;
  font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute);
  margin-bottom:16px;
}
.proof-tag i{
  width:5px; height:5px; border-radius:50%; background:var(--leaf); flex:none;
  box-shadow:0 0 10px rgba(61,158,104,.7);
}
.proof-body h3{
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.5rem,2.8vw,2.15rem); line-height:1.06; letter-spacing:-.026em;
}
.proof-body .sub{ margin-top:9px; font-size:14.5px; color:var(--mute) }
.proof-figure{
  margin-top:clamp(18px,2.6vw,26px); padding-top:clamp(18px,2.6vw,26px);
  border-top:1px solid var(--line);
  font-family:var(--display); font-weight:500;
  font-size:clamp(1.15rem,2vw,1.55rem); line-height:1.24; letter-spacing:-.018em;
  color:var(--bone); text-wrap:balance;
}
.proof-figure em{ font-style:normal; color:var(--ember-2) }
.proof-body p.detail-line{
  margin-top:12px; font-size:14.5px; line-height:1.58; color:var(--mute); max-width:60ch;
}
.proof-body .cta-row{ margin-top:auto; padding-top:clamp(18px,2.6vw,26px) }
.proof-note{
  margin-top:clamp(18px,2.6vh,26px);
  font-size:14.5px; line-height:1.55; color:var(--bone-2); max-width:58ch;
}
.proof-disclaimer{
  margin-top:10px; font-size:12px; line-height:1.5; color:var(--faint); max-width:64ch;
}

/* --- WIZARD: same fields, same API, three honest steps ------------------- */
.wiz-bar{
  display:flex; gap:8px; margin-bottom:clamp(20px,3vw,28px);
  counter-reset:step;
}
.wiz-bar li{ list-style:none; flex:1; min-width:0 }
.wiz-bar button{
  width:100%; min-width:0; min-height:44px;      /* tap target */
  display:flex; flex-direction:column; justify-content:flex-start;
  text-align:left; background:none; border:0; padding:0; cursor:pointer;
  color:var(--faint); transition:color .35s;
}
.wiz-bar .track{
  display:block; height:2px; background:var(--line-2); margin-bottom:9px; overflow:hidden;
}
.wiz-bar .track i{
  display:block; height:100%; width:0; background:var(--ember);
  transition:width .55s var(--ease);
}
.wiz-bar .lbl{
  display:block; min-width:0; font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  white-space:nowrap;
}
.wiz-bar li.done button, .wiz-bar li.now button{ color:var(--bone) }
.wiz-bar li.done .track i, .wiz-bar li.now .track i{ width:100% }
.wiz-bar li.now .track i{ background:linear-gradient(90deg,var(--ember),var(--ember-2)) }
.wiz-bar li:not(.done):not(.now) button{ cursor:default }

.wiz-step{ display:none }
.wiz-step.on{ display:block; animation:wizin .45s var(--ease) both }
@keyframes wizin{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:none} }
.js .wiz-step .fset + .fset{ margin-top:22px; padding-top:22px }

.wiz-nav{ display:flex; gap:10px; margin-top:24px; padding-top:22px; border-top:1px solid var(--line) }
.wiz-nav .btn{ flex:1 }
.wiz-nav .btn-back{ flex:0 0 auto; padding-inline:20px }

/* without JS the wizard degrades to one long, fully usable form */
.no-js-note{ display:none }
html:not(.js) .wiz-bar,
html:not(.js) .wiz-nav{ display:none }
html:not(.js) .wiz-step{ display:block }
html:not(.js) .wiz-step + .wiz-step{ margin-top:26px; padding-top:26px; border-top:1px solid var(--line) }
html:not(.js) .no-js-note{ display:block }

@media (min-width:600px){
  .facts{ grid-template-columns:repeat(3,1fr) }
}
@media (min-width:860px){
  .proof-card{ grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr) }
  .proof-media{ min-height:100% }
}
@media (max-width:599px){
  .wiz-bar .lbl{ font-size:9.5px; letter-spacing:.1em }
}
/* At 320px the step words cannot fit three-across — the numeral carries it.
   Hiding rather than clipping keeps the row from widening the document. */
@media (max-width:430px){
  .wiz-bar .lbl .w{ display:none }
}

/* ==========================================================================
   v3 — one page one offer, downsell band, utility page
   ========================================================================== */

/* --- the single discreet pointer to the downsell ---------------------- */
.downsell{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:clamp(30px,4.6vh,52px);
  border:1px solid var(--line); border-left:2px solid var(--line-2);
  padding:clamp(16px,2.4vw,22px) clamp(18px,2.6vw,26px);
  background:rgba(239,233,224,.022);
  transition:border-color .4s var(--ease), background .4s var(--ease);
}
.downsell:hover{ border-left-color:var(--ember); background:rgba(239,233,224,.045) }
.downsell p{ font-size:15px; line-height:1.5; color:var(--mute); margin:0 }
.downsell p b{ color:var(--bone); font-weight:600 }
.downsell .go{
  display:inline-flex; align-items:center; gap:9px; flex:none; min-height:44px;
  font-size:14px; font-weight:600; color:var(--bone-2);
  transition:color .35s, gap .35s var(--ease);
}
.downsell .go:hover{ color:var(--ember-2); gap:13px }

/* --- El Sabor Market logo on its own light plate ---------------------- */
.proof-media.plate{
  display:grid; place-items:center;
  background:
    radial-gradient(120% 90% at 50% 10%, #FFFFFF, #F2ECE1 70%);
  padding:clamp(26px,4vw,44px);
  min-height:220px;
}
.proof-media.plate img{
  width:min(100%,300px); height:auto; object-fit:contain; opacity:1;
  filter:drop-shadow(0 8px 24px rgba(20,16,12,.16));
}
.proof-media.plate::after{ content:none }

/* --- utility page (Customs & Compliance) ------------------------------ */
.util-hero{
  position:relative; isolation:isolate; overflow:hidden; contain:paint;
  padding-top:calc(var(--header-h) + clamp(48px,9vh,110px));
  padding-bottom:clamp(48px,9vh,110px);
  border-bottom:1px solid var(--line);
}
.util-hero::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(70% 80% at 88% 0%, rgba(255,90,31,.13), transparent 62%);
}
.util-hero h1{
  font-family:var(--display); font-weight:500;
  font-size:clamp(2rem,4.4vw,3.5rem); line-height:1.02; letter-spacing:-.03em;
  max-width:20ch; text-wrap:balance;
}
.util-hero .lede{ margin-top:clamp(14px,2.2vh,22px); max-width:54ch }
.util-back{
  display:inline-flex; align-items:center; gap:9px; min-height:44px;
  font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--faint);
  margin-bottom:clamp(16px,2.4vh,26px); transition:color .35s, gap .35s var(--ease);
}
.util-back:hover{ color:var(--bone-2); gap:13px }

.scope{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:clamp(30px,4.6vh,50px);
  background:var(--line); border:1px solid var(--line);
}
.scope > div{ background:var(--ink-1); padding:clamp(20px,2.8vw,30px) }
.scope h3{
  font-family:var(--display); font-weight:600; font-size:1.02rem;
  letter-spacing:-.008em; margin-bottom:7px;
}
.scope p{ font-size:14.5px; line-height:1.5; color:var(--mute) }

.terms-strip{
  display:grid; grid-template-columns:1fr; gap:1px;
  margin-top:clamp(24px,3.4vh,38px);
  background:var(--line); border:1px solid var(--line);
}
.terms-strip > div{
  background:var(--ink); padding:clamp(18px,2.4vw,26px);
  font-size:14.5px; line-height:1.5; color:var(--bone-2);
}
.terms-strip b{ display:block; color:var(--bone); font-family:var(--display); font-weight:600; margin-bottom:5px }

@media (min-width:600px){
  .scope{ grid-template-columns:1fr 1fr }
  .terms-strip{ grid-template-columns:repeat(3,1fr) }
}
@media (max-width:599px){
  .downsell{ flex-direction:column; align-items:flex-start; gap:12px }
}

/* ==========================================================================
   v4 — compact model card with the base fee shown as waived
   ========================================================================== */

.model{
  margin-top:clamp(26px,4vh,42px);
  border:1px solid rgba(20,16,12,.18);
  background:rgba(255,255,255,.66);
  padding:clamp(22px,3.2vw,34px);
  max-width:64ch;
}
.model .lead-in{
  display:block; margin-bottom:16px;
  font-family:var(--body); font-size:10.5px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:rgba(20,16,12,.5);
}
.model ol{ list-style:none; display:grid; gap:0 }
.model li{
  display:flex; gap:14px; align-items:baseline;
  padding-block:clamp(13px,1.9vw,17px);
  font-size:clamp(1rem,1.5vw,1.2rem); line-height:1.45; color:#14100C;
}
.model li + li{ border-top:1px solid rgba(20,16,12,.13) }
.model li .k{
  flex:none; width:2.2ch; font-family:var(--body); font-weight:700;
  font-size:11px; letter-spacing:.14em; color:rgba(20,16,12,.42);
  font-variant-numeric:tabular-nums;
}
.model li b{ font-weight:700 }

/* the anchor line: the fee exists, and it is not being charged this cohort */
.model li.waived .txt{ display:flex; flex-wrap:wrap; align-items:baseline; gap:9px }
.model li.waived s{
  text-decoration:line-through;
  text-decoration-thickness:1.5px;
  text-decoration-color:rgba(20,16,12,.42);
  color:rgba(20,16,12,.52);
}
.waived-tag{
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid rgba(184,65,14,.42); border-radius:999px;
  background:rgba(184,65,14,.09);
  padding:3px 11px;
  font-family:var(--body); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:#B8410E;
  white-space:nowrap; transform:translateY(-1px);
}
.model li.waived .tail{ color:rgba(20,16,12,.72) }

@media (max-width:520px){
  .model li{ flex-direction:column; gap:7px }
  .model li .k{ width:auto }
}
