/* ============================================================================
   Allied Insurance, homepage v2 (the REDO)
   Structure + motion: Rise at Seven (riseatseven.com), captured to viz/rise-at-seven-ref.
   Palette: Allied's OWN logo colours (gold / amber / brown on warm cream + dark brown).
   Every :root brand hue traces to the Allied logo (gate-taste). No green, no mint.
   Flat: zero box-shadows anywhere; depth is dark rounded panels on the cream canvas.
   Type: Switzer (Fontshare, self-hosted) as the flagged substitute for Saans.
   ========================================================================== */

/* ---------- Switzer (self-hosted, flagged substitute for Saans) ---------- */
@font-face{ font-family:"Switzer"; font-weight:300; font-style:normal; font-display:swap;
  src:url("../fonts/switzer-300.woff2") format("woff2"); }
@font-face{ font-family:"Switzer"; font-weight:400; font-style:normal; font-display:swap;
  src:url("../fonts/switzer-400.woff2") format("woff2"); }
@font-face{ font-family:"Switzer"; font-weight:500; font-style:normal; font-display:swap;
  src:url("../fonts/switzer-500.woff2") format("woff2"); }

/* ---------- Brand tokens (every non-neutral hue traces to the Allied logo) ---------- */
:root{
  --canvas:        #f4eddf; /* warm cream page base */
  --surface:       #fbf7ee; /* warm white surface */
  --ink:           #1c1710; /* warm dark brown-black: dark panels + body text */
  --brand-dark:    #1c1710; /* the dark rounded panels (hero, card-stack, legacy, footer) */
  --brand-dark-2:  #2a2116; /* second warm-dark for panel depth/gradients */
  --line:          #e6dbc6; /* warm hairline on light */
  --cream-on-dark: #f5efe3; /* cream text/marks on dark panels */
  --gold:          #c99a3b; /* logo gold: accent, active states, card gradient */
  --gold-bright:   #e0b657; /* brighter gold for gradients/highlights on dark */
  --amber:         #af5f05; /* deeper amber: CTAs, emphasis */
  --brown:         #744700; /* deep brown: hover/press, deep accents */

  /* derived (rgba, not brand tokens; the gate reads only hex) */
  --ink-70: rgba(28,23,16,.66);
  --ink-50: rgba(28,23,16,.5);
  --cream-70: rgba(245,239,227,.66);
  --cream-45: rgba(245,239,227,.45);
  --line-dark: rgba(245,239,227,.12);

  --pill: 9999px;
  --r-card: 24px;
  --r-panel: 32px;
  --slot: 70vh;      /* card-stack: one card ~ one viewport */
  --gap: 26px;
  --nav-h: 76px;
  --pad: clamp(20px, 5vw, 80px);
}

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

/* Lenis lint: overflow-x clip (not hidden), no scroll-behavior:smooth (Lenis owns scroll) */
html,body{ overflow-x:clip; }
html.lenis, html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-smooth [data-lenis-prevent]{ overscroll-behavior:contain; }
.lenis.lenis-stopped{ overflow:hidden; }

html{ -webkit-text-size-adjust:100%; }
body{
  background:var(--canvas);
  color:var(--ink);
  font-family:"Switzer","Hanken Grotesk",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-weight:400;
  font-size:clamp(16px,1.05vw,19px);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--gold); color:var(--ink); }

.wrap{ width:100%; padding-inline:var(--pad); }
.container{ width:100%; max-width:1360px; margin-inline:auto; padding-inline:var(--pad); }
section{ position:relative; }

.eyebrow{
  font-size:13px; font-weight:500; letter-spacing:.2em; text-transform:uppercase;
  color:var(--amber);
}
.on-dark .eyebrow, .sec-dark .eyebrow{ color:var(--gold-bright); }

.skip-link{
  position:fixed; top:-60px; left:16px; z-index:400; background:var(--ink); color:var(--cream-on-dark);
  padding:10px 16px; border-radius:10px; transition:top .2s;
}
.skip-link:focus{ top:12px; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6em; justify-content:center;
  font-family:inherit; font-weight:500; font-size:16px; letter-spacing:-.01em;
  padding:15px 26px; border-radius:var(--pill); border:1px solid transparent; cursor:pointer;
  transition:transform .5s cubic-bezier(.16,1,.3,1), background-color .3s, color .3s, border-color .3s;
}
.btn:focus-visible{ outline:2px solid var(--gold-bright); outline-offset:3px; }
.btn-gold{ background:var(--gold); color:var(--ink); }
.btn-gold:hover{ background:var(--gold-bright); }
.btn-ink{ background:var(--ink); color:var(--cream-on-dark); }
.btn-ink:hover{ background:var(--brand-dark-2); }
.btn-ghost{ background:transparent; border-color:var(--ink); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:var(--cream-on-dark); }
.on-dark .btn-ghost{ border-color:var(--cream-45); color:var(--cream-on-dark); }
.on-dark .btn-ghost:hover{ background:var(--cream-on-dark); color:var(--ink); }
.btn .btn-ic{ display:inline-flex; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.btn:hover .btn-ic{ transform:translateX(4px); }
.btn .btn-ic svg{ width:18px; height:18px; }

/* ============================================================================
   NAV (colour-follows on scroll)
   ========================================================================== */
.nav{
  position:fixed; top:0; left:0; width:100%; z-index:120; height:var(--nav-h);
  display:flex; align-items:center;
  transition:background-color .4s ease, border-color .4s ease, transform .5s ease;
  border-bottom:1px solid transparent;
}
.nav__inner{
  width:100%; max-width:1500px; margin-inline:auto; padding-inline:var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.nav__brand{ display:flex; align-items:center; height:40px; position:relative; }
.nav__brand img{ height:34px; width:auto; transition:opacity .4s ease; }
.nav__brand .logo-cream{ position:absolute; inset:0; }
.nav__brand .logo-ink{ opacity:0; }
.nav__links{ display:flex; align-items:center; gap:34px; list-style:none; }
.nav__links a{
  font-size:15px; font-weight:500; letter-spacing:-.01em; color:var(--cream-on-dark);
  position:relative; padding:6px 0; transition:color .35s ease;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0; background:currentColor;
  transition:width .35s cubic-bezier(.16,1,.3,1);
}
.nav__links a:hover::after{ width:100%; }
.nav__right{ display:flex; align-items:center; gap:18px; }
.nav__contact{ font-size:15px; font-weight:500; color:var(--cream-on-dark); transition:color .35s; }
.nav .btn{ padding:11px 20px; font-size:15px; }
.nav__toggle{ display:none; }

/* scrolled onto a LIGHT section -> ink content on a cream bar */
.nav.is-light{ background:rgba(244,237,223,.9); backdrop-filter:blur(12px); border-bottom-color:var(--line); }
.nav.is-light .logo-cream{ opacity:0; }
.nav.is-light .logo-ink{ opacity:1; }
.nav.is-light .nav__links a,
.nav.is-light .nav__contact{ color:var(--ink); }

/* scrolled onto a DARK section (past the hero) -> keep cream, add a solid dark bar */
.nav.is-dark.is-stuck{ background:rgba(28,23,16,.82); backdrop-filter:blur(12px); border-bottom-color:var(--line-dark); }

.nav.is-hidden{ transform:translateY(-100%); }

/* ============================================================================
   HERO (dark, full-bleed image panel, 100vh, giant cream headline)
   ========================================================================== */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:flex-end;
  background:var(--brand-dark); color:var(--cream-on-dark); overflow:hidden;
  padding:calc(var(--nav-h) + 40px) 0 clamp(40px,6vh,72px);
}
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; object-position:70% 40%; }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(28,23,16,.55) 0%, rgba(28,23,16,.1) 32%, rgba(28,23,16,.35) 62%, rgba(28,23,16,.92) 100%),
    linear-gradient(90deg, rgba(28,23,16,.78) 0%, rgba(28,23,16,.28) 46%, rgba(28,23,16,0) 78%);
}
.hero__inner{ position:relative; z-index:2; width:100%; }
.hero__eyebrow{ margin-bottom:24px; color:var(--gold-bright); }
.hero h1{
  font-weight:500; letter-spacing:-.035em; line-height:.92;
  font-size:clamp(48px, 8.7vw, 132px); max-width:15ch;
}
.hero h1 .beat{ display:block; }
.hero h1 .beat-2{ color:var(--cream-70); }
.hero h1 .word{ display:inline-block; overflow:hidden; vertical-align:top; padding-bottom:.06em; }
.hero h1 .word .ch{ display:inline-block; will-change:transform; }
.hero__sub{
  margin-top:30px; max-width:56ch; color:var(--cream-70);
  font-size:clamp(16px,1.35vw,20px); line-height:1.55; font-weight:400;
}
.hero__ctas{ margin-top:38px; display:flex; flex-wrap:wrap; gap:14px; }
.hero__cue{
  position:absolute; z-index:3; right:var(--pad); bottom:clamp(40px,6vh,72px);
  display:flex; flex-direction:column; align-items:center; gap:10px; background:none; border:0; cursor:pointer;
  color:var(--cream-70); font-size:12px; letter-spacing:.18em; text-transform:uppercase;
}
.hero__cue-mouse{ width:24px; height:38px; border:1.5px solid var(--cream-45); border-radius:14px; position:relative; }
.hero__cue-mouse::after{
  content:""; position:absolute; left:50%; top:8px; width:3px; height:7px; border-radius:2px;
  background:var(--gold-bright); transform:translateX(-50%); animation:cue 1.6s ease-in-out infinite;
}
@keyframes cue{ 0%,100%{ opacity:0; transform:translate(-50%,0);} 40%{ opacity:1;} 70%{ opacity:1; transform:translate(-50%,10px);} }

/* hero circle-reveal enter mask (barba echo) */
.hero-reveal{
  position:fixed; inset:0; z-index:200; background:var(--brand-dark); pointer-events:none; --r:0vmax;
  -webkit-mask:radial-gradient(circle at 50% 52%, transparent calc(var(--r) - 1px), #000 var(--r));
  mask:radial-gradient(circle at 50% 52%, transparent calc(var(--r) - 1px), #000 var(--r));
}

/* ============================================================================
   INTRO BAND (light, thin full-width statement)
   ========================================================================== */
.intro-band{ padding:clamp(56px,9vh,120px) 0; border-bottom:1px solid var(--line); }
.intro-band p{
  font-size:clamp(24px,3.2vw,44px); font-weight:500; letter-spacing:-.025em; line-height:1.14;
  max-width:22ch;
}
.intro-band .lead-accent{ color:var(--amber); }

/* ============================================================================
   STATEMENT (light, big statement + supporting text + image)
   ========================================================================== */
.statement{ padding:clamp(64px,11vh,150px) 0; }
.statement__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,80px); align-items:center; }
.statement__eyebrow{ margin-bottom:22px; }
.statement h2{
  font-weight:500; letter-spacing:-.03em; line-height:1.02; font-size:clamp(32px,4.4vw,68px); max-width:16ch;
}
.statement__body{ margin-top:26px; max-width:52ch; }
.statement__body p{ color:var(--ink-70); margin-bottom:16px; }
.statement__body .btn{ margin-top:12px; }
.statement__media{ border-radius:var(--r-card); overflow:hidden; aspect-ratio:4/5; }
.statement__media img{ width:100%; height:100%; object-fit:cover; }

/* ============================================================================
   CARD-STACK (dark panel, gold cards) -- THE SIGNATURE (lifted from proto)
   ========================================================================== */
.stack{ position:relative; background:var(--canvas); }
.stack__inner{
  position:sticky; top:0; height:100vh; height:100svh; overflow:hidden;
  display:grid; grid-template-columns:1fr 1fr; align-items:stretch;
  padding:14px;
}
.stack__panel{
  position:absolute; inset:14px; border-radius:var(--r-panel);
  background:radial-gradient(120% 90% at 15% 0%, #241c11 0%, var(--brand-dark) 55%);
  z-index:0;
}
.stack__head{ position:absolute; z-index:5; top:34px; left:var(--pad); color:var(--gold-bright); }
.stack__left{ position:relative; z-index:2; height:100%; padding-left:var(--pad); }
.stack__list{ position:relative; height:100%; overflow:hidden; }
.stack__list::before,.stack__list::after{
  content:""; position:absolute; left:0; right:0; height:32%; z-index:4; pointer-events:none;
}
.stack__list::before{ top:0; background:linear-gradient(to bottom, var(--brand-dark) 8%, transparent); }
.stack__list::after{ bottom:0; background:linear-gradient(to top, var(--brand-dark) 8%, transparent); }
.stack__list-inner{ will-change:transform; }
.stack__item{
  height:var(--slot); display:flex; align-items:center; gap:.5em;
  font-size:clamp(30px,3.9vw,72px); font-weight:500; letter-spacing:-.03em; line-height:.95;
  color:var(--cream-45); transition:color .35s ease, transform .35s ease;
}
.stack__item.is-active{ color:var(--gold-bright); transform:translateX(14px); }
.stack__item .idx{ font-size:.3em; color:var(--gold); letter-spacing:0; align-self:flex-start; margin-top:.4em; }

.stack__right{ position:relative; z-index:2; height:100%; overflow:hidden; padding-right:6px; }
.stack__cards{ will-change:transform; }
.al-card{
  height:var(--slot); margin-bottom:var(--gap); border-radius:var(--r-card);
  display:flex; flex-direction:column; justify-content:center; padding:clamp(24px,3vw,44px);
  color:var(--ink); overflow:hidden; position:relative;
}
.al-card__top{ position:absolute; top:clamp(24px,3vw,40px); left:clamp(24px,3vw,44px); right:clamp(24px,3vw,44px); display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.al-card__num{ font-size:clamp(44px,5vw,86px); font-weight:500; letter-spacing:-.04em; line-height:.82; opacity:.85; }
.al-card__ic{ width:clamp(38px,4vw,58px); height:auto; opacity:.9; }
.al-card__ic svg{ width:100%; height:100%; }
.al-card__name{ font-size:clamp(26px,3vw,46px); font-weight:500; letter-spacing:-.02em; line-height:1; }
.al-card__gist{ margin-top:12px; max-width:34ch; font-size:clamp(15px,1.15vw,18px); line-height:1.42; color:rgba(28,23,16,.72); }
.al-card__link{
  margin-top:20px; display:inline-flex; align-items:center; gap:.5em; font-weight:500; font-size:15px;
  border-bottom:1.5px solid rgba(28,23,16,.35); padding-bottom:3px; transition:gap .4s cubic-bezier(.16,1,.3,1);
}
.al-card__link:hover{ gap:.9em; }
.al-card__link svg{ width:16px; height:16px; }
.al-card:nth-child(1){ background:linear-gradient(150deg,#f0cd8c,#d4a24e); }
.al-card:nth-child(2){ background:linear-gradient(150deg,#e6bb6b,#c0862f); }
.al-card:nth-child(3){ background:linear-gradient(150deg,#f5e3b0,#e0a53f); }
.al-card:nth-child(4){ background:linear-gradient(150deg,#d99a3a,#a9691d); color:var(--cream-on-dark); }
.al-card:nth-child(4) .al-card__gist{ color:rgba(245,239,227,.8); }
.al-card:nth-child(4) .al-card__link{ border-bottom-color:rgba(245,239,227,.4); }
.al-card:nth-child(5){ background:linear-gradient(150deg,#f0cd8c,#caa050); }
.al-card:nth-child(6){ background:linear-gradient(150deg,#e2b25f,#8f5a12); color:var(--cream-on-dark); }
.al-card:nth-child(6) .al-card__gist{ color:rgba(245,239,227,.8); }
.al-card:nth-child(6) .al-card__link{ border-bottom-color:rgba(245,239,227,.4); }
.al-card:nth-child(7){ background:linear-gradient(150deg,#f3daa0,#d69b3e); }

/* reduced-motion / no-JS: card-stack becomes a normal stacked list */
.stack.is-static .stack__inner{ position:static; height:auto; grid-template-columns:1fr; padding:var(--pad) 14px; }
.stack.is-static .stack__left{ display:none; }
.stack.is-static .al-card{ height:auto; min-height:320px; }

/* ============================================================================
   SERVICES GRID (light, coherent gold icon set)
   ========================================================================== */
.services{ padding:clamp(64px,11vh,140px) 0; background:var(--canvas); }
.services__head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:44px; flex-wrap:wrap; }
.services__head h2{ font-weight:500; letter-spacing:-.03em; line-height:1; font-size:clamp(30px,4vw,60px); max-width:14ch; }
.services__head p{ color:var(--ink-70); max-width:36ch; }
.services__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.svc{
  grid-column:span 1; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-card);
  padding:26px 24px 22px; display:flex; flex-direction:column; min-height:210px;
  transition:background-color .4s ease, border-color .4s ease, transform .5s cubic-bezier(.16,1,.3,1);
}
.svc:hover{ background:var(--ink); border-color:var(--ink); transform:translateY(-4px); }
.svc__ic{ width:44px; height:44px; color:var(--amber); transition:color .4s ease, transform .5s cubic-bezier(.16,1,.3,1); }
.svc__ic svg{ width:100%; height:100%; }
.svc:hover .svc__ic{ color:var(--gold-bright); transform:scale(1.08); }
.svc__name{ margin-top:auto; font-size:clamp(19px,1.5vw,24px); font-weight:500; letter-spacing:-.02em; transition:color .4s ease; }
.svc__desc{ margin-top:6px; font-size:14px; color:var(--ink-70); transition:color .4s ease; }
.svc__arrow{ margin-top:16px; color:var(--amber); transition:color .4s ease, transform .5s cubic-bezier(.16,1,.3,1); }
.svc__arrow svg{ width:20px; height:20px; }
.svc:hover .svc__name{ color:var(--cream-on-dark); }
.svc:hover .svc__desc{ color:var(--cream-70); }
.svc:hover .svc__arrow{ color:var(--gold-bright); transform:translateX(5px); }
/* first tile is a wide statement tile */
.svc--lead{ grid-column:span 2; background:var(--ink); border-color:var(--ink); color:var(--cream-on-dark); justify-content:space-between; }
.svc--lead h3{ font-size:clamp(24px,2.4vw,38px); font-weight:500; letter-spacing:-.025em; line-height:1.04; }
.svc--lead p{ margin-top:14px; color:var(--cream-70); max-width:32ch; }
.svc--lead:hover{ transform:none; }

/* ============================================================================
   MARQUEE (light, kinetic cover-line names, loop + scroll-scrub drift)
   ========================================================================== */
.marquee{ padding:clamp(40px,7vh,90px) 0; overflow:hidden; border-block:1px solid var(--line); }
.marquee__view{ overflow:hidden; }
.marquee__track{ display:flex; width:max-content; will-change:transform; }
.marquee__row{ display:flex; align-items:center; flex:0 0 auto; }
.marquee__item{
  font-size:clamp(40px,7vw,110px); font-weight:500; letter-spacing:-.03em; line-height:1;
  padding-inline:.35em; white-space:nowrap; color:var(--ink);
}
.marquee__item.is-ghost{ color:transparent; -webkit-text-stroke:1.4px var(--amber); }
.marquee__dot{ color:var(--gold); font-size:clamp(30px,4vw,70px); padding-inline:.1em; }

/* ============================================================================
   LEGACY / TRUST (dark panel, duotone bg, count-ups) -- REAL only
   ========================================================================== */
.legacy{ position:relative; background:var(--brand-dark); color:var(--cream-on-dark); overflow:hidden; }
.legacy__bg{ position:absolute; inset:0; z-index:0; opacity:.16; }
.legacy__bg img{ width:100%; height:100%; object-fit:cover; }
.legacy::after{ content:""; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, var(--brand-dark) 0%, rgba(28,23,16,.7) 40%, var(--brand-dark) 100%); }
.legacy__inner{ position:relative; z-index:2; padding:clamp(72px,13vh,170px) 0; }
.legacy__eyebrow{ margin-bottom:22px; }
.legacy h2{ font-weight:500; letter-spacing:-.03em; line-height:1.02; font-size:clamp(32px,4.6vw,72px); max-width:16ch; }
.legacy__lead{ margin-top:26px; max-width:60ch; color:var(--cream-70); }
.legacy__stats{ margin-top:clamp(40px,6vh,72px); display:grid; grid-template-columns:repeat(3,1fr); gap:24px; border-top:1px solid var(--line-dark); padding-top:clamp(32px,5vh,56px); }
.legacy__num{ font-size:clamp(56px,8vw,120px); font-weight:500; letter-spacing:-.04em; line-height:.86; color:var(--gold-bright); display:flex; align-items:baseline; }
.legacy__num .suf{ font-size:.32em; margin-left:.14em; color:var(--gold); letter-spacing:-.02em; }
.legacy__stat-label{ margin-top:14px; color:var(--cream-70); font-size:clamp(15px,1.15vw,18px); max-width:24ch; }

/* ============================================================================
   CLOSER: giant kinetic wordmark + CTA + FOOTER (dark)
   ========================================================================== */
.closer{ background:var(--brand-dark); color:var(--cream-on-dark); overflow:hidden; }
.wordmark-sec{ height:62vh; min-height:420px; display:flex; align-items:center; overflow:hidden; }
.wordmark{
  white-space:nowrap; will-change:transform;
  font-size:16vw; font-weight:500; letter-spacing:-.035em; line-height:1; color:var(--gold);
}
.wordmark .ch{ display:inline-block; will-change:transform; transform-origin:50% 100%; }

.cta-band{ padding:0 0 clamp(56px,9vh,110px); }
.cta-band__grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,72px); align-items:end; padding-top:clamp(32px,5vh,56px); border-top:1px solid var(--line-dark); }
.cta-band h2{ font-weight:500; letter-spacing:-.03em; line-height:1.02; font-size:clamp(30px,4vw,60px); max-width:14ch; }
.cta-band__form-label{ color:var(--cream-70); margin-bottom:14px; }
.news-form{ display:flex; gap:10px; flex-wrap:wrap; }
.news-form input{
  flex:1 1 220px; background:transparent; border:1px solid var(--cream-45); color:var(--cream-on-dark);
  border-radius:var(--pill); padding:14px 20px; font-family:inherit; font-size:16px;
}
.news-form input::placeholder{ color:var(--cream-45); }
.news-form input:focus-visible{ outline:2px solid var(--gold-bright); outline-offset:2px; }
.news-note{ margin-top:12px; font-size:14px; color:var(--gold-bright); min-height:1.2em; }

/* footer */
.footer{ padding:clamp(48px,7vh,84px) 0 40px; border-top:1px solid var(--line-dark); }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:36px; }
.footer__brand img{ height:38px; width:auto; margin-bottom:18px; }
.footer__brand p{ color:var(--cream-70); max-width:34ch; font-size:15px; }
.footer h3{ font-size:13px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-bright); margin-bottom:16px; }
.footer ul{ list-style:none; display:flex; flex-direction:column; gap:11px; }
.footer ul a, .footer__contact a, .footer__contact p{ color:var(--cream-70); font-size:15px; transition:color .3s; }
.footer ul a:hover, .footer__contact a:hover{ color:var(--gold-bright); }
.footer__contact p{ margin-bottom:11px; line-height:1.5; }
.footer__store{ display:inline-flex; align-items:center; gap:.5em; margin-top:6px; color:var(--gold-bright); font-weight:500; }
.footer__store svg{ width:16px; height:16px; }
.footer__socials{ display:flex; gap:12px; margin-top:18px; }
.footer__socials a{ width:40px; height:40px; border:1px solid var(--line-dark); border-radius:var(--pill); display:grid; place-items:center; color:var(--cream-70); transition:color .3s, border-color .3s, background-color .3s; }
.footer__socials a:hover{ color:var(--ink); background:var(--gold-bright); border-color:var(--gold-bright); }
.footer__socials svg{ width:18px; height:18px; }
.footer__legal{ display:flex; gap:22px; flex-wrap:wrap; margin-top:clamp(40px,6vh,64px); padding-top:26px; border-top:1px solid var(--line-dark); }
.footer__legal a{ color:var(--cream-70); font-size:14px; transition:color .3s; }
.footer__legal a:hover{ color:var(--gold-bright); }
.footer__base{ margin-top:22px; display:flex; flex-direction:column; gap:6px; color:var(--cream-45); font-size:13px; line-height:1.5; }
.footer__base strong{ color:var(--cream-70); font-weight:500; }

/* ---------- reveal-on-scroll (calm; no-JS safe: hidden state only when html.js is set) ---------- */
html.js .rise{ opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
html.js .rise.in{ opacity:1; transform:none; }

/* ============================================================================
   MOBILE MENU + RESPONSIVE
   ========================================================================== */
.mobile-menu{
  position:fixed; inset:0; z-index:115; background:var(--brand-dark); color:var(--cream-on-dark);
  transform:translateY(-100%); transition:transform .55s cubic-bezier(.76,0,.24,1);
  display:flex; flex-direction:column; justify-content:center; padding:var(--pad); gap:8px; pointer-events:none;
}
.mobile-menu.open{ transform:none; pointer-events:auto; }
.mobile-menu a{ font-size:clamp(30px,9vw,52px); font-weight:500; letter-spacing:-.03em; padding:10px 0; }
.mobile-menu .btn{ margin-top:26px; align-self:flex-start; }

@media (max-width:1080px){
  .footer__grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .footer__brand{ grid-column:1 / -1; }
}
@media (max-width:900px){
  :root{ --slot:66vh; --nav-h:66px; }
  .nav__links, .nav__contact{ display:none; }
  .nav__toggle{
    display:inline-flex; flex-direction:column; gap:5px; width:44px; height:44px; align-items:center; justify-content:center;
    background:none; border:0; cursor:pointer;
  }
  .nav__toggle span, .nav__toggle::before, .nav__toggle::after{
    content:""; display:block; width:24px; height:2px; background:var(--cream-on-dark); transition:transform .4s, opacity .3s, background-color .4s;
  }
  .nav.is-light .nav__toggle span, .nav.is-light .nav__toggle::before, .nav.is-light .nav__toggle::after{ background:var(--ink); }
  .nav__toggle.open::before{ transform:translateY(7px) rotate(45deg); background:var(--cream-on-dark); }
  .nav__toggle.open span{ opacity:0; }
  .nav__toggle.open::after{ transform:translateY(-7px) rotate(-45deg); background:var(--cream-on-dark); }
  .statement__grid{ grid-template-columns:1fr; gap:36px; }
  .statement__media{ aspect-ratio:16/10; order:-1; }
  .stack__inner{ grid-template-columns:1fr; }
  .stack__left{ display:none; }
  .services__grid{ grid-template-columns:repeat(2,1fr); }
  .svc--lead{ grid-column:span 2; }
  .legacy__stats{ grid-template-columns:1fr; gap:32px; }
  .cta-band__grid{ grid-template-columns:1fr; gap:34px; }
}
@media (max-width:560px){
  .services__grid{ grid-template-columns:1fr; }
  .svc--lead{ grid-column:span 1; }
  .hero{ align-items:flex-end; }
  .hero__cue{ display:none; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .hero h1 .word .ch{ transform:none !important; }
  .wordmark .ch{ transform:none !important; }
  html.js .rise, .rise{ opacity:1 !important; transform:none !important; }
  .hero-reveal{ display:none; }
}
