/* ==========================================================================
   Carrera Motors — San Mateo
   German car service: Porsche · BMW · Mercedes
   Palette derived from the shop's own street sign + the Martini livery
   stripe painted on their service-bay wall.
   ========================================================================== */

:root{
  /* graphite base */
  --ink-950:#07090C;
  --ink-900:#0B0E13;
  --ink-850:#10141A;
  --ink-800:#151A22;
  --ink-700:#1D242E;
  --ink-600:#2A323E;

  /* light surfaces */
  --paper:#F4F6F9;
  --paper-2:#E7EBF1;

  /* type */
  --silver-100:#F2F5F9;
  --silver-300:#BFC8D4;
  --silver-500:#8792A2;
  --silver-600:#697485;

  /* brand — taken from the shop sign */
  --blue:#2455AE;
  --blue-bright:#4B87F0;
  --red:#E9583C;
  --red-deep:#CE4029;

  /* martini livery — painted on their bay wall */
  --mart-lblue:#63B9E8;
  --mart-navy:#1B2A5E;
  --mart-red:#E8502E;

  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.20);

  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --shell:min(1360px,92vw);
  --ease:cubic-bezier(.16,.84,.44,1);
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--ink-900);
  color:var(--silver-100);
  font-family:var(--font-display);
  font-weight:400;
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg,canvas,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

::selection{background:var(--red);color:#fff}

/* focus visibility for keyboard users */
:focus-visible{outline:2px solid var(--mart-lblue);outline-offset:3px;border-radius:2px}

/* --------------------------------------------------------------------------
   Shared type devices
   -------------------------------------------------------------------------- */

.shell{width:var(--shell);margin-inline:auto}

.eyebrow{
  font-family:var(--font-mono);
  font-size:.7rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--silver-500);
  display:flex;
  align-items:center;
  gap:.85rem;
}
.eyebrow::before{
  content:"";
  width:26px;height:2px;
  background:var(--red);
  flex:none;
}
.eyebrow--light{color:var(--silver-600)}

.idx{
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.18em;
  color:var(--silver-600);
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:800;
  line-height:1.02;
  letter-spacing:-.028em;
  margin:0;
  text-wrap:balance;
}

.h-xl{font-size:clamp(2.5rem,1.35rem + 4.6vw,5.5rem);font-weight:900}
.h-lg{font-size:clamp(2.1rem,1.3rem + 3.4vw,4.1rem)}
.h-md{font-size:clamp(1.5rem,1.15rem + 1.5vw,2.3rem)}

.lede{
  font-size:clamp(1.06rem,1rem + .45vw,1.32rem);
  line-height:1.55;
  color:var(--silver-300);
  max-width:56ch;
  text-wrap:pretty;
}

/* the martini stripe, used as a recurring graphic rule */
.stripe{
  display:flex;height:6px;width:100%;overflow:hidden;
}
.stripe span{flex:1}
.stripe span:nth-child(1){background:var(--mart-lblue)}
.stripe span:nth-child(2){background:var(--mart-navy)}
.stripe span:nth-child(3){background:var(--mart-red)}
.stripe--thin{height:3px}
.stripe--short{width:120px}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.btn{
  --btn-bg:var(--red);
  --btn-fg:#fff;
  display:inline-flex;align-items:center;gap:.7rem;
  padding:1.02rem 1.7rem;
  background:var(--btn-bg);
  color:var(--btn-fg);
  border:none;border-radius:2px;
  font-family:var(--font-display);
  font-size:.9rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;
  position:relative;overflow:hidden;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);
  box-shadow:0 0 0 rgba(233,88,60,0);
}
.btn::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.32),transparent 70%);
  transform:translateX(-120%);
  transition:transform .7s var(--ease);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px -12px rgba(233,88,60,.75)}
.btn:hover::after{transform:translateX(120%)}
.btn svg{width:17px;height:17px;flex:none}

.btn--ghost{
  --btn-bg:transparent;--btn-fg:var(--silver-100);
  border:1px solid var(--line-strong);
}
.btn--ghost:hover{
  border-color:var(--silver-100);
  box-shadow:none;
  background:rgba(255,255,255,.05);
}
.btn--dark{--btn-bg:var(--ink-900);--btn-fg:#fff}
.btn--dark:hover{box-shadow:0 12px 34px -14px rgba(0,0,0,.7)}

/* --------------------------------------------------------------------------
   Navigation
   -------------------------------------------------------------------------- */

.nav{
  position:fixed;inset:0 0 auto 0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  gap:2rem;
  width:var(--shell);margin-inline:auto;
  padding:1.15rem 0;
  transition:padding .4s var(--ease);
}
.nav-bg{
  position:fixed;inset:0 0 auto 0;height:78px;z-index:89;
  background:rgba(11,14,19,.86);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  opacity:0;pointer-events:none;
  transition:opacity .4s var(--ease);
}
body.scrolled .nav-bg{opacity:1}
body.scrolled .nav{padding:.85rem 0}

/* z-index keeps the mark above the full-screen mobile menu overlay */
.nav-logo{display:flex;align-items:center;gap:.85rem;flex:none;position:relative;z-index:92}
.nav-logo svg,.nav-logo img{width:104px;height:auto}

.nav-links{
  display:flex;align-items:center;gap:2.1rem;
  font-family:var(--font-mono);
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--silver-300);
}
.nav-links a{position:relative;padding:.3rem 0;transition:color .3s var(--ease)}
.nav-links a::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--red);
  transform:scaleX(0);transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav-links a:hover{color:#fff}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}

.nav-cta{display:flex;align-items:center;gap:1rem;flex:none}
.nav-phone{
  font-family:var(--font-mono);font-size:.86rem;font-weight:500;
  letter-spacing:.03em;color:#fff;
  display:flex;align-items:center;gap:.55rem;
  transition:color .3s var(--ease);
}
.nav-phone:hover{color:var(--red)}
.nav-phone svg{width:15px;height:15px}

.nav-toggle{display:none;background:none;border:none;padding:.4rem;cursor:pointer}
.nav-toggle span{display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:transform .35s var(--ease),opacity .25s}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.menu-open .nav-toggle span:nth-child(2){opacity:0}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* --------------------------------------------------------------------------
   HERO — scroll-scrubbed frame sequence
   -------------------------------------------------------------------------- */

.hero{position:relative;height:340vh;background:var(--ink-950)}

.hero-pin{
  position:sticky;top:0;height:100svh;
  overflow:hidden;
  display:grid;place-items:center;
}

.hero-canvas{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;
  z-index:1;
}

/* Scrim stack. The copy lives on the left and the car occupies the right,
   so the horizontal pass is weighted left — it buys legibility for the
   headline without flattening the bodywork the whole shot is about. */
.hero-pin::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(96deg,rgba(7,9,12,.94) 0%,rgba(7,9,12,.82) 26%,rgba(7,9,12,.42) 50%,rgba(7,9,12,.06) 72%,transparent 88%),
    radial-gradient(120% 90% at 50% 42%,transparent 34%,rgba(7,9,12,.45) 80%,rgba(7,9,12,.88) 100%),
    linear-gradient(to bottom,rgba(7,9,12,.72) 0%,transparent 22%,transparent 56%,rgba(7,9,12,.9) 94%);
}

.hero-copy{
  position:relative;z-index:3;
  width:var(--shell);
  height:100%;
  display:grid;
  align-content:center;
}

/* Beats share one grid cell, so a plain crossfade renders both at once
   mid-scroll. The outgoing beat clears first; the incoming one waits. */
.hero-beat{
  grid-area:1/1;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .2s var(--ease),transform .2s var(--ease);
  pointer-events:none;
}
.hero-beat.is-live{
  opacity:1;transform:none;pointer-events:auto;
  transition:opacity .42s var(--ease) .17s,transform .42s var(--ease) .17s;
}

.hero-beat h1{max-width:16ch}
.hero-beat .lede{margin-top:1.5rem}
.hero-beat .eyebrow{margin-bottom:1.5rem}

.hero-mark{
  color:var(--red);
  display:block;
  font-size:.42em;
  letter-spacing:.02em;
  font-weight:800;
  margin-bottom:.35rem;
}

.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.3rem}

/* beat 2 — the numbers */
.hero-stats{display:flex;flex-wrap:wrap;gap:clamp(2rem,5vw,5.5rem)}
.hero-stat .n{
  font-size:clamp(3rem,2rem + 4.4vw,5.6rem);
  font-weight:900;line-height:.9;letter-spacing:-.04em;
  display:flex;align-items:flex-start;gap:.12em;
}
.hero-stat .n sup{font-size:.34em;font-weight:800;color:var(--red);margin-top:.35em}
.hero-stat .k{
  font-family:var(--font-mono);
  font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--silver-500);margin-top:1rem;
  padding-top:.85rem;border-top:1px solid var(--line);
  max-width:19ch;
}

/* scroll indicator */
.hero-cue{
  position:absolute;z-index:4;
  left:50%;bottom:2.4rem;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  font-family:var(--font-mono);font-size:.62rem;
  letter-spacing:.24em;text-transform:uppercase;color:var(--silver-500);
  transition:opacity .4s var(--ease);
}
.hero-cue .rail{width:1px;height:44px;background:var(--line-strong);position:relative;overflow:hidden}
.hero-cue .rail::after{
  content:"";position:absolute;top:0;left:0;width:100%;height:40%;
  background:var(--red);
  animation:railDrop 2.1s var(--ease) infinite;
}
@keyframes railDrop{0%{transform:translateY(-100%)}60%,100%{transform:translateY(260%)}}
body.past-hero .hero-cue{opacity:0}

/* progress readout, bottom-right of the pin */
.hero-meter{
  position:absolute;z-index:4;right:0;bottom:2.4rem;
  width:var(--shell);left:50%;transform:translateX(-50%);
  display:flex;justify-content:flex-end;
}
.hero-meter .box{
  display:flex;align-items:center;gap:1rem;
  font-family:var(--font-mono);font-size:.64rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--silver-500);
}
.hero-meter .track{width:110px;height:2px;background:var(--line-strong);position:relative}
.hero-meter .fill{position:absolute;inset:0 auto 0 0;width:0%;background:var(--red)}

/* loading state for the frame sequence */
.hero-loading{
  position:absolute;inset:auto 0 0 0;z-index:5;height:2px;
  background:var(--line);
}
.hero-loading i{display:block;height:100%;width:0;background:var(--mart-lblue);transition:width .3s linear}
body.frames-ready .hero-loading{opacity:0;transition:opacity .5s .2s}

/* --------------------------------------------------------------------------
   Section chrome
   -------------------------------------------------------------------------- */

section{position:relative}

.sec{padding:clamp(5rem,3rem + 8vw,9.5rem) 0}
.sec--tight{padding:clamp(3.5rem,2rem + 5vw,6rem) 0}
.sec--light{background:var(--paper);color:var(--ink-900)}
.sec--light .lede{color:#4A5464}
.sec--light .eyebrow{color:#6B7686}
.sec--mid{background:var(--ink-850)}

.sec-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,.85fr);
  gap:clamp(1.6rem,4vw,4.5rem);
  align-items:end;
  margin-bottom:clamp(2.6rem,2rem + 3vw,4.5rem);
}
.sec-head .lede{margin:0}
@media(max-width:900px){.sec-head{grid-template-columns:1fr;align-items:start}}

/* --------------------------------------------------------------------------
   Marques — Porsche / BMW / Mercedes
   -------------------------------------------------------------------------- */

.marques{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.marque{
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:clamp(2rem,1.4rem + 2vw,3.2rem);
  position:relative;
  overflow:hidden;
  transition:background .45s var(--ease);
}
.marque::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:3px;
  background:var(--accent,var(--red));
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--ease);
}
.marque:hover{background:rgba(255,255,255,.028)}
.marque:hover::before{transform:scaleX(1)}
.marque .idx{display:block;margin-bottom:2.4rem}
.marque h3{font-size:clamp(1.7rem,1.3rem + 1.5vw,2.5rem);margin-bottom:.9rem}
.marque p{color:var(--silver-500);font-size:.95rem;margin:0;max-width:34ch}
.marque .models{
  margin-top:1.9rem;padding-top:1.2rem;border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;
  color:var(--silver-600);text-transform:uppercase;line-height:1.9;
}
@media(max-width:860px){.marques{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   Pillars — the four promises (from their own long-standing copy)
   -------------------------------------------------------------------------- */

.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.pillar{
  padding:clamp(1.6rem,1.2rem + 1.4vw,2.4rem) clamp(1.2rem,1rem + 1vw,2rem);
  border-left:1px solid rgba(0,0,0,.11);
  position:relative;
}
.pillar:first-child{border-left:none}
.pillar .n{
  font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;
  color:var(--red-deep);display:block;margin-bottom:1.6rem;
}
.pillar h3{font-size:1.16rem;line-height:1.2;margin-bottom:.7rem;letter-spacing:-.015em}
.pillar p{margin:0;font-size:.93rem;color:#5A6472;line-height:1.6}
@media(max-width:900px){
  .pillars{grid-template-columns:1fr 1fr}
  .pillar:nth-child(3){border-left:none}
  .pillar:nth-child(n+3){border-top:1px solid rgba(0,0,0,.11)}
}
@media(max-width:560px){
  .pillars{grid-template-columns:1fr}
  .pillar{border-left:none}
  .pillar+.pillar{border-top:1px solid rgba(0,0,0,.11)}
}

/* --------------------------------------------------------------------------
   Services — presented as a technical spec sheet
   -------------------------------------------------------------------------- */

.spec{border-top:1px solid var(--line)}
.spec-row{
  display:grid;
  grid-template-columns:70px minmax(0,1.05fr) minmax(0,1.5fr) auto;
  gap:clamp(1rem,3vw,2.6rem);
  align-items:center;
  padding:clamp(1.35rem,1rem + 1vw,1.95rem) 0;
  border-bottom:1px solid var(--line);
  position:relative;
  transition:padding-left .45s var(--ease);
}
.spec-row::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--red);
  transform:scaleY(0);transform-origin:bottom;
  transition:transform .45s var(--ease);
}
.spec-row:hover{padding-left:1.4rem}
.spec-row:hover::before{transform:scaleY(1);transform-origin:top}
.spec-row .idx{align-self:center}
.spec-row h3{font-size:clamp(1.1rem,1rem + .5vw,1.45rem);letter-spacing:-.02em}
.spec-row p{margin:0;color:var(--silver-500);font-size:.93rem;max-width:52ch}
.spec-tag{
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--silver-600);
  border:1px solid var(--line);border-radius:2px;
  padding:.42rem .7rem;white-space:nowrap;
}
@media(max-width:900px){
  .spec-row{grid-template-columns:46px 1fr;gap:.55rem 1rem;align-items:start}
  .spec-row p{grid-column:2}
  .spec-tag{grid-column:2;justify-self:start;margin-top:.35rem}
}

/* --------------------------------------------------------------------------
   Full-bleed detail band (the Fuchs wheel macro)
   -------------------------------------------------------------------------- */

.band{
  position:relative;
  min-height:clamp(420px,58vh,640px);
  display:grid;align-items:center;
  overflow:hidden;
}
.band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.35) contrast(1.06)}
.band::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(7,9,12,.95) 8%,rgba(7,9,12,.72) 46%,rgba(7,9,12,.25) 100%);
}
.band .shell{position:relative;z-index:2}
.band blockquote{
  margin:0;max-width:20ch;
  font-size:clamp(1.6rem,1.1rem + 2.4vw,3.1rem);
  font-weight:800;line-height:1.14;letter-spacing:-.03em;
}
.band cite{
  display:block;margin-top:1.8rem;font-style:normal;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--silver-500);
}

/* --------------------------------------------------------------------------
   Craftsmen
   -------------------------------------------------------------------------- */

.crew{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,3rem)}
.hand{
  border:1px solid var(--line);
  padding:clamp(1.7rem,1.3rem + 1.6vw,2.6rem);
  display:flex;gap:1.5rem;align-items:flex-start;
  background:linear-gradient(160deg,rgba(255,255,255,.035),transparent 60%);
  transition:border-color .45s var(--ease),transform .45s var(--ease);
}
.hand:hover{border-color:var(--line-strong);transform:translateY(-3px)}
.hand img{
  width:84px;height:84px;flex:none;border-radius:50%;
  object-fit:cover;filter:grayscale(1) contrast(1.1);
  border:1px solid var(--line-strong);
}
.hand h3{font-size:1.32rem;margin-bottom:.3rem}
.hand .role{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red);margin-bottom:1rem;display:block;
}
.hand p{margin:0;color:var(--silver-500);font-size:.93rem}
@media(max-width:800px){.crew{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */

.rating-head{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:1.4rem;
  padding-bottom:1.8rem;border-bottom:1px solid var(--line);margin-bottom:2.8rem;
}
.rating-head .score{font-size:clamp(3rem,2rem + 3.4vw,4.6rem);font-weight:900;letter-spacing:-.04em;line-height:1}
.rating-head .stars{color:var(--red);font-size:1.25rem;letter-spacing:.16em}
.rating-head .meta{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--silver-500)}

.reviews{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:clamp(1rem,2vw,1.6rem);
}
.review{
  flex:0 1 340px;
  border:1px solid var(--line);
  padding:1.9rem;
  display:flex;flex-direction:column;gap:1.1rem;
  transition:border-color .4s var(--ease),background .4s var(--ease);
}
.review:hover{border-color:var(--line-strong);background:rgba(255,255,255,.025)}
.review .stars{color:var(--red);font-size:.86rem;letter-spacing:.14em}
.review p{margin:0;font-size:.96rem;line-height:1.62;color:var(--silver-300);flex:1}
.review .who{
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--silver-600);
  padding-top:1.1rem;border-top:1px solid var(--line);
}

/* --------------------------------------------------------------------------
   Visit / contact
   -------------------------------------------------------------------------- */

.visit{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(2rem,4vw,4.5rem);
}
@media(max-width:900px){.visit{grid-template-columns:1fr}}

.facts{display:grid;gap:0;border-top:1px solid rgba(0,0,0,.12)}
.fact{
  display:grid;grid-template-columns:110px 1fr;gap:1.5rem;
  padding:1.15rem 0;border-bottom:1px solid rgba(0,0,0,.12);
  align-items:baseline;
}
.fact dt{
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:#77808F;
}
.fact dd{margin:0;font-size:1rem;line-height:1.55}
.fact dd a{border-bottom:1px solid rgba(0,0,0,.25);transition:border-color .3s,color .3s}
.fact dd a:hover{color:var(--red-deep);border-color:var(--red-deep)}
.hours-grid{display:grid;grid-template-columns:auto 1fr;gap:.15rem 1.2rem;font-size:.95rem}
.hours-grid .d{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.08em;color:#77808F;text-transform:uppercase;align-self:center}
.hours-grid .closed{color:#9AA3B0}

.book{
  background:var(--ink-900);color:var(--silver-100);
  padding:clamp(1.9rem,1.4rem + 2vw,3rem);
  align-self:start;
  border-top:3px solid var(--red);
}
.book h3{font-size:clamp(1.4rem,1.1rem + 1.2vw,2rem);margin-bottom:.85rem}
.book p{color:var(--silver-500);font-size:.95rem;margin:0 0 1.9rem}
.book .btn{width:100%;justify-content:center;margin-bottom:.8rem}
.book .fineprint{
  font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;
  color:var(--silver-600);text-align:center;margin:1.1rem 0 0;line-height:1.7;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.foot{background:var(--ink-950);padding:clamp(3rem,2rem + 3vw,4.5rem) 0 2.2rem}
.foot-top{
  display:grid;grid-template-columns:minmax(0,1.1fr) repeat(2,minmax(0,.7fr));
  gap:2.4rem;padding-bottom:2.8rem;border-bottom:1px solid var(--line);
}
.foot-top img,.foot-top svg{width:132px;margin-bottom:1.3rem}
.foot-top p{color:var(--silver-600);font-size:.9rem;margin:0;max-width:38ch}
.foot h4{
  font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:var(--silver-500);margin:0 0 1.2rem;
}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.foot ul a,.foot ul li{color:var(--silver-300);font-size:.92rem;transition:color .3s}
.foot ul a:hover{color:var(--red)}
.foot-base{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:1.2rem;
  padding-top:1.8rem;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.1em;
  color:var(--silver-600);line-height:1.9;
}
.disclaimer{max-width:78ch;margin-top:1.4rem;color:#4E5766;font-size:.6rem;line-height:1.9}
@media(max-width:800px){.foot-top{grid-template-columns:1fr}}

/* --------------------------------------------------------------------------
   Mobile sticky call bar
   -------------------------------------------------------------------------- */

.callbar{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:none;
  background:var(--red);
  transform:translateY(100%);
  transition:transform .45s var(--ease);
}
.callbar a{
  display:flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.05rem;color:#fff;font-weight:700;
  font-size:.95rem;letter-spacing:.05em;text-transform:uppercase;
}
body.past-hero .callbar{transform:none}

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media(max-width:980px){
  /* the left-weighted scrim is sized for a wide frame; on a narrow one it
     covers the whole image, so fall back to a vertical wash */
  .hero-pin::after{
    background:linear-gradient(to bottom,
      rgba(7,9,12,.9) 0%,rgba(7,9,12,.58) 26%,
      rgba(7,9,12,.58) 62%,rgba(7,9,12,.96) 100%);
  }
  .nav-links{
    position:fixed;inset:0;z-index:88;
    flex-direction:column;justify-content:center;
    gap:2.2rem;font-size:1rem;
    background:rgba(7,9,12,.97);
    backdrop-filter:blur(18px);
    opacity:0;pointer-events:none;
    transition:opacity .38s var(--ease);
  }
  body.menu-open .nav-links{opacity:1;pointer-events:auto}
  .nav-toggle{display:block;position:relative;z-index:92}
  .nav-phone span{display:none}
  .callbar{display:block}
  .hero{height:300vh}
  .hero-meter{display:none}
}

@media(max-width:600px){
  .hero-actions .btn{flex:1 1 100%;justify-content:center}
  .hero-stats{gap:1.8rem}
  .hero-stat{flex:1 1 40%}
  .band blockquote{max-width:none}
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .hero{height:auto}
  .hero-pin{position:relative;height:auto;min-height:82svh;padding:9rem 0 5rem}
  .hero-beat{opacity:1;transform:none;position:relative;pointer-events:auto}
  .hero-beat+.hero-beat{margin-top:3rem}
  .hero-copy{display:block;height:auto}
  .hero-cue,.hero-meter{display:none}
}

/* --------------------------------------------------------------------------
   Static hero — phones, save-data, or no frame sequence.
   Mirrors the reduced-motion treatment: un-pinned, all beats stacked.
   -------------------------------------------------------------------------- */

body.static-hero .hero{height:auto}
body.static-hero .hero-pin{
  position:relative;height:auto;min-height:88svh;
  padding:8.5rem 0 4.5rem;
  align-content:center;
}
body.static-hero .hero-copy{display:block;height:auto}
body.static-hero .hero-beat{
  position:relative;opacity:1;transform:none;pointer-events:auto;
}
body.static-hero .hero-beat + .hero-beat{
  margin-top:3.2rem;padding-top:3.2rem;border-top:1px solid var(--line);
}
body.static-hero .hero-cue,
body.static-hero .hero-meter{display:none}
body.static-hero .callbar{transform:none}
