/* ==========================================================================
   A1 Automotive — hand-rolled stylesheet. No frameworks.
   Palette: A1 red (action/emphasis only) + deep fleet navy (dark sections).
   ========================================================================== */

:root{
  --red:        #d8232a;   /* A1 red — CTAs, accents */
  --red-dark:   #a5121f;
  --red-soft:   #fdeeee;
  /* Brand darks: true black, not blue (navy token names kept, values redefined) */
  --navy:       #0c0c0e;   /* near-black — dark sections, footer */
  --navy-2:     #17171a;
  --ink:        #101012;
  --ink-2:      #2b2b30;
  --ink-3:      #5b5b63;
  --line:       #e5e6ea;
  --bg:         #ffffff;
  --bg-2:       #f4f5f7;
  --gold:       #f5b400;
  --good:       #1f8a4c;
  --shadow-sm:  0 1px 2px rgba(12,12,14,.06), 0 1px 1px rgba(12,12,14,.04);
  --shadow-md:  0 12px 32px -12px rgba(12,12,14,.22);
  --shadow-lg:  0 32px 72px -24px rgba(12,12,14,.42);
  --r-sm: 5px;  --r-md: 8px;  --r-lg: 10px;  --r-pill: 999px;
  --ease: cubic-bezier(.2,.7,.2,1);

  --t-xs:  clamp(.78rem, .76rem + .1vw,  .84rem);
  --t-sm:  clamp(.88rem, .85rem + .15vw, .95rem);
  --t-base:clamp(1rem,   .95rem + .2vw,  1.08rem);
  --t-lg:  clamp(1.14rem, 1.05rem + .35vw, 1.28rem);
  --t-xl:  clamp(1.38rem, 1.2rem + .7vw,   1.8rem);
  --t-2xl: clamp(1.75rem, 1.4rem + 1.4vw,  2.5rem);
  --t-3xl: clamp(2.2rem,  1.6rem + 2.6vw,  3.4rem);
  --t-4xl: clamp(2.6rem,  1.8rem + 4vw,    4.4rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font:400 var(--t-base)/1.65 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:var(--red); text-decoration:none; }
a:hover{ color:var(--red-dark); }
h1,h2,h3,h4{
  font-family:'Manrope', system-ui, sans-serif; font-weight:800;
  letter-spacing:-.02em; line-height:1.1; color:var(--ink);
  margin:0 0 .5em;
}
h2{ font-size:var(--t-2xl); }
h3{ font-size:var(--t-xl); }
p{ margin:0 0 1em; }
ul{ margin:0 0 1em; }
:focus-visible{ outline:3px solid var(--red); outline-offset:3px; border-radius:6px; }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:-9999px; top:0; }
.skip:focus{ left:16px; top:16px; background:var(--navy); color:#fff; padding:10px 16px; z-index:9999; border-radius:6px; }

.container{ max-width:1360px; margin-inline:auto; padding-inline:clamp(20px,4vw,48px); }
section{ padding-block:clamp(64px,9vw,120px); }
section.alt{ background:var(--bg-2); }
section.dark{ background:var(--navy); color:#d9d9de; }
section.dark h1,section.dark h2,section.dark h3{ color:#fff; }
section.dark p{ color:#b9b9c0; }

.eyebrow{
  font:600 var(--t-sm)/1 'Inter'; text-transform:uppercase;
  letter-spacing:.14em; color:var(--red-dark); margin:0 0 14px;
}
.eyebrow--light{ color:#ff6b72; }
.lede{ font-size:var(--t-lg); color:var(--ink-2); max-width:62ch; }
section.dark .lede{ color:#cfcfd4; }
.section-head{ max-width:760px; margin-bottom:clamp(32px,5vw,56px); }
.section-head--center{ margin-inline:auto; text-align:center; }
.section-head--center .lede{ margin-inline:auto; }

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--red); --fg:#fff;
  display:inline-flex; align-items:center; gap:10px;
  font:600 var(--t-base)/1 'Inter'; padding:15px 24px; border-radius:6px;
  background:var(--bg); color:var(--fg); border:1.5px solid var(--bg);
  transition:transform .2s var(--ease), background .2s, box-shadow .2s, border-color .2s;
  cursor:pointer; box-shadow:var(--shadow-sm); text-align:center;
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); color:var(--fg); background:var(--red-dark); border-color:var(--red-dark); }
.btn:active{ transform:translateY(0); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); border-color:var(--line); }
.btn--ghost:hover{ background:var(--bg-2); border-color:var(--ink-3); color:var(--ink); }
.btn--ghost-light{ --bg:transparent; --fg:#fff; border-color:rgba(255,255,255,.35); }
.btn--ghost-light:hover{ background:rgba(255,255,255,.1); border-color:#fff; color:#fff; }
.btn--dark{ --bg:var(--navy); --fg:#fff; border-color:var(--navy); }
.btn--dark:hover{ background:var(--navy-2); border-color:var(--navy-2); }
.btn--lg{ padding:18px 30px; font-size:var(--t-lg); }
.btn--sm{ padding:11px 18px; font-size:var(--t-sm); }
.btn[aria-busy="true"]{ opacity:.7; pointer-events:none; }

/* ---------- Utility strip + header ---------- */
.utility{ background:var(--navy); color:#b9b9c0; font-size:var(--t-xs); }
.utility__row{ display:flex; gap:14px; align-items:center; min-height:38px; }
.utility__sep{ color:#4a4a52; }
.utility__phone{ margin-left:auto; color:#fff; font-weight:700; letter-spacing:.02em; }
.utility__phone:hover{ color:#ffb3b6; }

.site-header{
  /* z-index must clear .nav-backdrop (55): the mobile panel is a child of
     this header, so its own z-index is scoped to this stacking context */
  position:sticky; top:0; z-index:60; background:#fff;
  border-bottom:1px solid var(--line);
  transition:box-shadow .2s;
}
.site-header.is-scrolled{ box-shadow:var(--shadow-md); }
.site-header__row{ display:flex; align-items:center; gap:20px; min-height:78px; }
.brand{ flex:0 0 auto; display:flex; align-items:center; }
.brand img{ height:50px; width:auto; }
.nav{ margin-left:auto; }
.nav__list{ display:flex; gap:2px; list-style:none; margin:0; padding:0; align-items:center; }
.nav__list a{ display:flex; align-items:center; gap:8px; padding:10px 13px; border-radius:6px; color:var(--ink-2); font-weight:500; font-size:var(--t-sm); }
.nav__list a svg{ width:17px; height:17px; color:var(--ink-3); flex:0 0 auto; transition:color .15s; }
.nav__list a:hover{ background:var(--bg-2); color:var(--ink); }
.nav__list a:hover svg{ color:var(--red); }
.nav__list a.is-active{ color:var(--red); font-weight:700; }
.nav__list a.is-active svg{ color:var(--red); }
.nav__cta-row, .nav__contact{ display:none; }
.header-cta{ margin-left:6px; flex:0 0 auto; }
.nav-toggle{ display:none; }

@media (max-width: 1200px){
  .brand img{ height:40px; }
  .nav-toggle{
    display:flex; flex-direction:column; gap:5px; margin-left:auto;
    background:none; border:0; padding:10px; cursor:pointer;
  }
  .nav-toggle span{ width:26px; height:2.5px; background:var(--ink); border-radius:2px; transition:.2s var(--ease); }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }
  .nav{
    position:absolute; top:100%; left:0; right:0; max-height:calc(100dvh - 80px);
    background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow-lg);
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:transform .22s var(--ease), opacity .22s;
    overflow-y:auto; z-index:60;
  }
  .nav.is-open{ transform:none; opacity:1; pointer-events:auto; }
  .nav__list{ flex-direction:column; align-items:stretch; padding:14px 20px; gap:2px; }
  .nav__list a{ padding:13px 12px; font-size:var(--t-lg); border-radius:6px; }
  .nav__list a svg{ display:block; width:20px; height:20px; }
  .nav__cta-row{ display:block; padding:6px 20px 0; }
  .nav__cta{ width:100%; justify-content:center; }
  .nav__contact{
    display:flex; gap:10px; padding:16px 20px 22px; margin-top:12px;
    border-top:1px solid var(--line);
  }
  .nav__contact a{
    flex:1; display:flex; align-items:center; justify-content:center; gap:9px;
    padding:13px 12px; border:1px solid var(--line); border-radius:6px;
    font:600 var(--t-sm)/1.2 'Inter'; color:var(--ink); text-align:center;
  }
  .nav__contact a svg{ width:17px; height:17px; color:var(--red); flex:0 0 auto; }
  .header-cta{ display:none; }
  .utility__row span:nth-of-type(2),
  .utility__row span:nth-of-type(3){ display:none; }
}
.nav-backdrop{
  position:fixed; inset:0; background:rgba(12,12,14,.45); z-index:55;
  opacity:0; pointer-events:none; transition:opacity .25s;
}
.nav-backdrop.is-open{ opacity:1; pointer-events:auto; }

/* ---------- Heroes ---------- */
.hero{
  position:relative; color:#fff; overflow:hidden;
  background:var(--navy);
  padding-block:clamp(80px,12vw,150px);
}
.hero__bg{ position:absolute; inset:0; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; opacity:.45; }
.hero--kenburns .hero__bg img{
  animation:kb 28s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes kb{ from{ transform:scale(1); } to{ transform:scale(1.08); } }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(12,12,14,.94) 20%, rgba(12,12,14,.68) 55%, rgba(12,12,14,.32) 100%);
}
.hero__inner{ position:relative; max-width:760px; }
.hero h1{ color:#fff; font-size:var(--t-4xl); margin-bottom:18px; }
.hero .lede{ color:#cfcfd4; margin-bottom:30px; }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero__strip{
  position:relative; margin-top:34px; display:flex; flex-wrap:wrap; gap:10px 22px;
  font-size:var(--t-sm); color:#dbe2ec; font-weight:500;
}
.hero__strip span{ display:inline-flex; align-items:center; gap:8px; }
.hero__strip svg{ color:#ff6b72; flex:0 0 auto; }
.hero--sub{ padding-block:clamp(56px,8vw,96px); }
.hero--sub h1{ font-size:var(--t-3xl); }

/* Home hero — dark variant, split layout: copy left, offer cards right */
.hero--home{ padding-block:clamp(64px,8vw,110px); }
.hero--home h1{ font-size:var(--t-2xl); }
.hero--home .lede{ margin-bottom:8px; max-width:46ch; }
.hero--home .hero__bg img{ opacity:.55; object-position:center 62%; }
.hero__split{
  position:relative; display:grid;
  grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,72px); align-items:center;
}
.hero__split .hero__inner{ max-width:none; }
.hero__offers{ display:grid; gap:18px; }
@media (max-width:980px){
  .hero__split{ grid-template-columns:1fr; }
  .hero__offers{ margin-top:8px; }
}

/* Homepage v2 — proof in the hero, offers below (does not change live home) */
.hero--v2{ padding-block:clamp(56px,7vw,88px) clamp(36px,5vw,56px); }
.hero--v2 .hero__inner{ max-width:none; margin-bottom:clamp(22px,3vw,32px); }
.hero--v2 h1{ font-size:clamp(1.9rem, 1.45rem + 1.8vw, 2.85rem); }
.hero--v2 .lede{ max-width:none; }
.stats--on-hero{
  background:transparent; padding:clamp(18px,2.4vw,26px) 0;
  margin:0 0 clamp(18px,2.4vw,26px);
  border-top:1px solid rgba(255,255,255,.22);
  position:relative;
}
.stats--on-hero .stats__grid{ gap:0; }
.stats--on-hero .reveal{
  padding:0 22px;
  border-left:1px solid rgba(255,255,255,.16);
}
.stats--on-hero .reveal:first-child{ padding-left:0; border-left:0; }
@media (max-width:820px){
  .stats--on-hero .reveal{ padding:10px 16px; }
  .stats--on-hero .reveal:nth-child(odd){ padding-left:0; border-left:0; }
}
.stats--on-hero .stat__num{
  font-size:clamp(1.7rem,3vw,2.4rem);
  text-shadow:0 1px 14px rgba(0,0,0,.45);
}
.stats--on-hero .stat__label{
  color:#e4e4e8; margin-top:4px; font-size:var(--t-xs);
  letter-spacing:.06em; text-transform:uppercase; font-weight:600;
  text-shadow:0 1px 10px rgba(0,0,0,.4);
}
.hero--v2 .clients{ padding-block:0; }
.hero--v2 .clients__label{ color:#cfcfd4; margin-bottom:14px; }
.offers-band{ padding-block:clamp(36px,5vw,56px); }
.offers-band .hero__offers{ grid-template-columns:1fr 1fr; margin:0; }
@media (max-width:700px){ .offers-band .hero__offers{ grid-template-columns:1fr; } }

/* Red underline mark — skewed bar that sweeps in (sharper take on the
   hand-drawn squiggle; flat geometry suits the brand) */
.redline{ position:relative; white-space:nowrap; }
.redline::after{
  content:""; position:absolute; left:-1.5%; right:-1.5%; bottom:-.1em; height:.13em;
  background:linear-gradient(90deg, var(--red) 0%, var(--red) 78%, var(--red-dark) 100%);
  transform:skewX(-14deg); transform-origin:left center;
  animation:redline-in .7s cubic-bezier(.22,1,.36,1) .45s backwards;
}
@keyframes redline-in{
  from{ transform:skewX(-14deg) scaleX(0); opacity:0; }
  to{ transform:skewX(-14deg) scaleX(1); opacity:1; }
}
@media (prefers-reduced-motion:reduce){ .redline::after{ animation:none; } }

/* Offer cards — stacked in the home hero's right column */
.offer{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(18px,2.2vw,24px); box-shadow:var(--shadow-md);
  display:grid; grid-template-columns:auto 1fr; grid-template-rows:auto auto auto auto;
  column-gap:18px; align-items:start;
  text-decoration:none; color:var(--ink);
  transition:transform .25s var(--ease), box-shadow .25s, border-color .25s;
}
.offer:hover{ transform:translateY(-4px); box-shadow:0 40px 84px -26px rgba(0,0,0,.55); border-color:#d8d9de; }
.offer__icon{
  grid-row:1 / -1; width:52px; height:52px; border-radius:10px; background:var(--red-soft);
  display:grid; place-items:center; color:var(--red);
}
.offer__eyebrow{
  font:700 var(--t-xs)/1 'Inter'; letter-spacing:.12em; text-transform:uppercase;
  color:var(--red); margin-bottom:6px;
}
.offer__title{ font:800 clamp(1.2rem,1.6vw,1.4rem)/1.2 'Manrope'; letter-spacing:-.02em; margin:0 0 6px; }
.offer p{ margin:0 0 10px; color:var(--ink-2); font-size:var(--t-sm); }
.offer__cta{
  display:inline-flex; align-items:center; gap:10px;
  font:600 var(--t-sm)/1 'Inter'; color:var(--red);
}
.offer__cta svg{ transition:transform .2s var(--ease); }
.offer:hover .offer__cta svg{ transform:translateX(5px); }

/* Home hero: cards wait, then fade in one after the other (desktop only).
   visibility:hidden keeps them out of the tab order until they appear. */
@keyframes offer-in{
  from{ opacity:0; transform:translateY(14px); visibility:hidden; }
  to{ opacity:1; transform:none; visibility:visible; pointer-events:auto; }
}
@media (min-width:981px){
  .hero--home .hero__offers .offer{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    animation:offer-in .75s var(--ease) both;
  }
  .hero--home .hero__offers .offer:nth-child(1){ animation-delay:2s; }
  .hero--home .hero__offers .offer:nth-child(2){ animation-delay:2.8s; }
}

/* ---------- Stats band ---------- */
.stats{ background:var(--navy); color:#fff; padding-block:clamp(40px,6vw,64px); }
.stats__grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:32px;
  text-align:center;
}
.stat__num{
  font-family:'Manrope'; font-weight:800; font-size:clamp(2.2rem,4vw,3.2rem);
  color:#fff; letter-spacing:-.02em; line-height:1;
}
.stat__num em{ color:#ff6b72; font-style:normal; }
.stat__label{ color:#b9b9c0; font-size:var(--t-sm); margin-top:10px; }
.stats--flush{ padding-block:clamp(28px,4vw,44px); border-top:2px solid var(--red); }
.stats--light{ background:var(--bg-2); color:var(--ink); }
.stats--light .stat__num{ color:var(--ink); }
.stats--light .stat__label{ color:var(--ink-2); }
@media (max-width:820px){ .stats__grid{ grid-template-columns:repeat(2,1fr); } }

/* ---------- Feature blocks (alternating service sections) ---------- */
.feature{
  display:grid; grid-template-columns:1.05fr 1fr; gap:clamp(28px,5vw,72px);
  align-items:center;
}
.feature + .feature{ margin-top:clamp(48px,7vw,96px); }
.feature--flip .feature__media{ order:2; }
.feature__media{ position:relative; }
.feature__media img{
  width:100%; aspect-ratio:3/2; object-fit:cover;
  border-radius:var(--r-lg); box-shadow:var(--shadow-md);
}
.img--cab{ object-position:left center; }
.feature__tag{
  position:absolute; top:18px; left:18px; background:var(--red); color:#fff;
  font:700 var(--t-xs)/1 'Inter'; letter-spacing:.1em; text-transform:uppercase;
  padding:8px 14px; border-radius:var(--r-pill); box-shadow:var(--shadow-md);
}
.feature__body h3{ font-size:var(--t-xl); }
.tick-list{ list-style:none; padding:0; margin:0 0 26px; display:grid; gap:12px; }
.tick-list li{ display:flex; gap:12px; align-items:flex-start; color:var(--ink-2); }
.tick-list svg{ flex:0 0 auto; margin-top:4px; color:var(--good); }
@media (max-width:900px){
  .feature{ grid-template-columns:1fr; }
  .feature--flip .feature__media{ order:0; }
}

/* ---------- Cards / grids ---------- */
.card-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.card-grid--4{ grid-template-columns:repeat(4,1fr); }
.card-grid--2{ grid-template-columns:repeat(2,1fr); }
@media (max-width:1000px){ .card-grid,.card-grid--4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .card-grid,.card-grid--4,.card-grid--2{ grid-template-columns:1fr; } }
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:28px; box-shadow:var(--shadow-sm);
  transition:transform .2s var(--ease), box-shadow .2s;
}
.card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); }
.card h3{ font-size:var(--t-lg); margin-bottom:10px; }
.card p{ color:var(--ink-2); margin-bottom:0; }
.card__icon{
  width:52px; height:52px; border-radius:8px; background:var(--red-soft);
  display:grid; place-items:center; color:var(--red); margin-bottom:18px;
}
section.dark .card{ background:var(--navy-2); border-color:rgba(255,255,255,.08); }
section.dark .card h3{ color:#fff; }
section.dark .card p{ color:#b9b9c0; }

/* ---------- Steps (how it works) ---------- */
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:step; }
.step{ position:relative; padding:26px; background:#fff; border:1px solid var(--line); border-radius:var(--r-md); }
.step::before{
  counter-increment:step; content:counter(step);
  display:grid; place-items:center; width:44px; height:44px; margin-bottom:16px;
  border-radius:50%; background:var(--red); color:#fff;
  font:800 1.15rem/1 'Manrope';
}
.step h3{ font-size:var(--t-lg); margin-bottom:8px; }
.step p{ color:var(--ink-2); margin:0; font-size:var(--t-sm); }
@media (max-width:900px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .steps{ grid-template-columns:1fr; } }

/* ---------- Timeline (about) — single rail on mobile, centred two-rail on desktop ---------- */
.timeline{ position:relative; margin-left:8px; padding-left:34px; border-left:3px solid var(--line); display:grid; gap:34px; }
.timeline__item{ position:relative; }
.timeline__item::before{
  content:""; position:absolute; left:-45px; top:4px; width:18px; height:18px;
  border-radius:50%; background:var(--red); border:4px solid #fff; box-shadow:0 0 0 2px var(--red);
}
.timeline__year{ font:800 var(--t-lg)/1 'Manrope'; color:var(--red); margin-bottom:6px; }
.timeline__item p{ margin:0; color:var(--ink-2); }
@media (min-width:900px){
  .timeline{
    margin-left:0; padding-left:0; border-left:0;
    grid-template-columns:1fr 1fr; gap:44px 72px;
  }
  .timeline::before{
    content:""; position:absolute; left:50%; top:6px; bottom:6px; width:3px;
    background:var(--line); transform:translateX(-50%); border-radius:2px;
  }
  .timeline__item{ padding:0; }
  .timeline__item::before{ left:auto; top:6px; }
  .timeline__item:nth-child(odd){ grid-column:1; text-align:right; }
  .timeline__item:nth-child(odd)::before{ right:-45px; }
  .timeline__item:nth-child(even){ grid-column:2; }
  .timeline__item:nth-child(even)::before{ left:-45px; }
}

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:12px; max-width:860px; }
.faq details{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
  padding:4px 22px; transition:box-shadow .2s;
}
.faq details[open]{ box-shadow:var(--shadow-sm); }
.faq summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:14px;
  padding:16px 0; font:700 var(--t-base)/1.35 'Manrope'; color:var(--ink);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"+"; margin-left:auto; font:800 1.4rem/1 'Manrope'; color:var(--red);
  transition:transform .2s;
}
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq details p{ color:var(--ink-2); margin:0 0 18px; }

/* ---------- Forms ---------- */
.form-card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(26px,4vw,44px); box-shadow:var(--shadow-md);
}
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-grid .field--full{ grid-column:1 / -1; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-weight:600; font-size:var(--t-sm); }
.field .hint{ color:var(--ink-3); font-size:var(--t-xs); font-weight:400; }
.input,.select,.textarea{
  width:100%; padding:13px 16px; font:500 var(--t-base) 'Inter'; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:var(--r-sm);
  transition:border-color .15s, box-shadow .15s;
}
.textarea{ min-height:130px; resize:vertical; }
.input:focus,.select:focus,.textarea:focus{
  outline:0; border-color:var(--red); box-shadow:0 0 0 4px var(--red-soft);
}
.field.is-error .input,.field.is-error .select,.field.is-error .textarea{ border-color:#d72c2c; }
.field__error{ color:#a3201d; font-size:var(--t-xs); display:none; }
.field.is-error .field__error{ display:block; }
.form-note{ font-size:var(--t-xs); color:var(--ink-3); margin-top:16px; }
.form-success{
  text-align:center; padding:clamp(30px,5vw,50px) 20px;
}
.form-success h3{ color:var(--good); }
.hp-field{ position:absolute !important; left:-9999px !important; height:1px; width:1px; overflow:hidden; }

/* Multi-step (application form) */
.apply-steps{ display:flex; gap:8px; margin-bottom:28px; flex-wrap:wrap; }
.apply-dot{
  flex:1; min-width:90px; text-align:center; font:600 var(--t-xs) 'Inter';
  color:var(--ink-3); padding-bottom:10px; border-bottom:3px solid var(--line);
  transition:.2s;
}
.apply-dot.is-active{ color:var(--red); border-color:var(--red); }
.apply-dot.is-done{ color:var(--good); border-color:var(--good); }
.apply-step{ display:none; }
.apply-step.is-active{ display:block; }
.apply-greet{ margin:0 0 18px; font-weight:600; color:var(--ink); }
.apply-nav{ display:flex; gap:14px; margin-top:28px; }
.apply-nav .btn{ flex:1; justify-content:center; }

/* ---------- Contact / info panels ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(28px,5vw,64px); align-items:start; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.info-list{ list-style:none; padding:0; margin:0 0 26px; display:grid; gap:18px; }
.info-list li{ display:flex; gap:14px; align-items:flex-start; }
.info-list svg{ flex:0 0 auto; color:var(--red); margin-top:3px; }
.info-list strong{ display:block; font-size:var(--t-sm); color:var(--ink-3); text-transform:uppercase; letter-spacing:.08em; font-size:var(--t-xs); margin-bottom:2px; }
.phone-menu{ display:block; margin-top:8px; font-size:var(--t-sm); color:var(--ink-2); font-weight:400; text-transform:none; letter-spacing:0; }
.depot-card{ border:1px solid var(--line); border-radius:var(--r-md); padding:22px; background:#fff; }
.depot-card h3{ font-size:var(--t-base); margin-bottom:6px; }
.depot-card p{ margin:0; color:var(--ink-2); font-size:var(--t-sm); }

/* ---------- CTA band + footer ---------- */
.cta-band{
  background:linear-gradient(120deg, var(--red) 0%, var(--red-dark) 100%);
  color:#fff; padding-block:clamp(48px,7vw,80px);
}
.cta-band__inner{
  display:flex; align-items:center; justify-content:space-between;
  gap:32px; flex-wrap:wrap;
}
.cta-band h2{ color:#fff; margin-bottom:8px; }
.cta-band__sub{ color:rgba(255,255,255,.85); margin:0; max-width:46ch; }
.cta-band .eyebrow--light{ color:#ffd7d9; }
.cta-band__actions{ display:flex; gap:14px; flex-wrap:wrap; }
.cta-band .btn--primary{ --bg:#fff; --fg:var(--red-dark); border-color:#fff; }
.cta-band .btn--primary:hover{ background:var(--navy); border-color:var(--navy); color:#fff; }
.cta-band .btn--ghost-light:hover{ background:rgba(255,255,255,.14); }

.site-footer{ background:var(--bg-2); color:var(--ink-3); padding-top:clamp(48px,7vw,80px); border-top:1px solid var(--line); }
.site-footer__grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px;
  padding-bottom:44px;
}
.site-footer__logo{ height:44px; width:auto; margin-bottom:18px; }
.site-footer h4{ color:var(--ink); font-size:var(--t-sm); text-transform:uppercase; letter-spacing:.1em; margin-bottom:16px; }
.site-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.site-footer a{ color:var(--ink-3); }
.site-footer a:hover{ color:var(--ink); }
.site-footer__brand p{ font-size:var(--t-sm); color:var(--ink-3); }
.site-footer__legal{
  display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-top:1px solid var(--line); padding-block:22px;
  font-size:var(--t-xs); color:var(--ink-3);
}
.site-footer__legal ul{ display:flex; gap:20px; }
.site-footer__legal p{ margin:0; }
@media (max-width:900px){ .site-footer__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .site-footer__grid{ grid-template-columns:1fr; } }

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.08s; }
.reveal[data-delay="2"]{ transition-delay:.16s; }
.reveal[data-delay="3"]{ transition-delay:.24s; }
/* Grid staggering without per-element markup */
.card-grid>.reveal:nth-child(2),.steps>.reveal:nth-child(2){ transition-delay:.08s; }
.card-grid>.reveal:nth-child(3),.steps>.reveal:nth-child(3){ transition-delay:.16s; }
.card-grid>.reveal:nth-child(4),.steps>.reveal:nth-child(4){ transition-delay:.24s; }
.card-grid>.reveal:nth-child(5){ transition-delay:.32s; }
.card-grid>.reveal:nth-child(6){ transition-delay:.4s; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .hero--home .hero__offers .offer{ opacity:1; visibility:visible; pointer-events:auto; animation:none !important; }
}

/* ---------- Misc ---------- */
.pill-row{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 8px; padding:0; list-style:none; }
.pill-row li{
  background:var(--bg-2); border:1px solid var(--line); border-radius:var(--r-pill);
  padding:8px 16px; font-size:var(--t-sm); font-weight:500; color:var(--ink-2);
}
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,64px); align-items:start; }
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; } }
.img-rounded{ border-radius:var(--r-lg); box-shadow:var(--shadow-md); width:100%; object-fit:cover; aspect-ratio:3/2; }
/* ---------- Simple pages (404, thank-you) ---------- */
.page-simple{ padding-block:clamp(80px,12vw,140px); }
.page-simple .container{ max-width:680px; text-align:center; }
.page-simple .lede{ margin-inline:auto; }
.page-simple__actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:28px; }
.next-steps{ list-style:none; padding:0; margin:26px auto 0; display:grid; gap:10px; max-width:420px; text-align:left; }
.next-steps li{
  display:flex; gap:12px; align-items:flex-start; color:var(--ink-2);
  background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); padding:12px 16px;
}
.next-steps svg{ flex:0 0 auto; margin-top:3px; color:var(--good); }

/* ---------- Coverage statement band (home) ---------- */
.coverage-band .section-head{ max-width:820px; }
.coverage-band .section-head p{ color:#b9b9c0; }
.coverage-band .cta-center{ text-align:center; }
.coverage-pins{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  margin:0 auto clamp(30px,4vw,44px); max-width:920px; text-align:center;
}
.coverage-pin{
  padding:22px 16px; border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-md); background:rgba(255,255,255,.04);
}
.coverage-pin svg{ display:block; margin:0 auto 12px; color:#ff6b72; }
.coverage-pin h3{ font-size:var(--t-lg); margin-bottom:6px; }
.coverage-pin p{ margin:0; color:#b9b9c0; font-size:var(--t-sm); }
@media (max-width:700px){ .coverage-pins{ grid-template-columns:1fr; } }

section.clients-wrap{ padding-block:0; }
.section--compact{ padding-block:clamp(48px,7vw,80px); }
.clients{ padding-block:clamp(28px,4vw,40px); text-align:center; }
.clients__label{
  font:700 var(--t-xs)/1 'Inter'; letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink-3); margin:0 0 18px;
}
.clients__list{
  list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap;
  gap:22px 36px; justify-content:center; align-items:center;
}
.clients__list li{ padding:0; border:0; background:none; line-height:0; }
.clients__logo{
  display:block; height:28px; width:auto; max-width:128px;
  object-fit:contain; filter:grayscale(1);
  opacity:.72; transition:opacity .2s;
}
.clients__logo:hover{ opacity:1; }
.clients--on-dark .clients__label{ color:#b9b9c0; }
.clients--on-dark .clients__logo{ filter:grayscale(1) invert(1); opacity:.8; }

.workshop-bar{
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin-top:clamp(36px,5vw,56px); padding:22px 26px;
  border:1px solid var(--line); border-radius:var(--r-md); background:var(--bg-2);
  text-decoration:none; color:var(--ink);
  transition:transform .2s var(--ease), box-shadow .2s, border-color .2s;
}
.workshop-bar:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); border-color:#d8d9de; color:var(--ink); }
.workshop-bar__tag{
  font:700 var(--t-xs)/1 'Inter'; letter-spacing:.1em; text-transform:uppercase;
  background:var(--red); color:#fff; padding:6px 10px; border-radius:var(--r-pill);
}
.workshop-bar__copy{ flex:1; color:var(--ink-2); font-size:var(--t-sm); margin:0; }
.workshop-bar__cta{ font:600 var(--t-sm)/1 'Inter'; color:var(--red); display:inline-flex; align-items:center; gap:8px; }

.job-fields[hidden]{ display:none !important; }

/* ---------- Map embeds ---------- */
.map-embed{
  width:100%; aspect-ratio:4/3; border:1px solid var(--line);
  border-radius:var(--r-md); box-shadow:var(--shadow-sm); display:block;
}
.map-embed--spaced{ margin-top:18px; }
.depot-card--spaced{ margin-top:24px; }
.depot-card__phone{ margin-top:10px; }
.chip{
  display:inline-flex; align-items:center; gap:6px; vertical-align:middle;
  background:var(--red-soft); color:var(--red-dark); border:1px solid #f3cdcf;
  font:700 var(--t-xs)/1 'Inter'; padding:5px 10px; border-radius:var(--r-pill);
}

/* ---------- Privacy data table ---------- */
.data-table{ width:100%; border-collapse:collapse; margin:26px 0 8px; font-size:var(--t-sm); }
.data-table th,.data-table td{ text-align:left; padding:13px 16px; border-bottom:1px solid var(--line); vertical-align:top; }
.data-table th{ background:var(--bg-2); font:700 var(--t-xs) 'Inter'; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-3); }
.data-table tr:first-child th:first-child{ border-radius:var(--r-sm) 0 0 0; }
.data-table tr:first-child th:last-child{ border-radius:0 var(--r-sm) 0 0; }
.data-table td:first-child{ font-weight:600; white-space:nowrap; }
@media (max-width:620px){ .data-table td:first-child{ white-space:normal; } }

/* ---------- Small screens ---------- */
@media (max-width:480px){
  .hero h1{ font-size:var(--t-3xl); }
  .hero--home h1{ font-size:var(--t-2xl); }
  .hero--v2 h1{ font-size:clamp(1.9rem, 1.45rem + 1.8vw, 2.85rem); }
}
