/* ============================================================
   AC PREMIUM CARS — styles.css
   Charte : Fraunces (display) / Newsreader (lecture) / Jost (labels)
   Fond : noir chaud + aurora champagne animée + grain
   ============================================================ */

:root{
  --ink:#0B0B0C; --ink-1:#101012; --ink-2:#161618; --ink-3:#1C1C1F;
  --line:rgba(237,235,230,.10); --line-2:rgba(237,235,230,.20);
  --snow:#EDEBE6; --paper:#D8D5CD; --fog:#B7B4AC; --fog-2:#807E77;
  --gold:#C9AE7C; --gold-hi:#E4CD9F; --gold-dim:rgba(201,174,124,.5);
  --whats:#25D366;
  --wrap:1220px;
  --pad:clamp(1.25rem,5vw,4rem);
  --ff-display:"Fraunces",Georgia,"Times New Roman",serif;
  --ff-body:"Newsreader",Georgia,serif;
  --ff-label:"Jost",system-ui,-apple-system,sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);

  /* --- surfaces : voiles sombres la nuit, voiles clairs le jour --- */
  --surf:rgba(16,16,18,.6); --surf-soft:rgba(16,16,18,.55); --surf-card:rgba(16,16,18,.7);
  --surf-deep:rgba(11,11,12,.82); --surf-foot:rgba(16,16,18,.75);
  --surf-field:rgba(16,16,18,.8); --surf-chip:rgba(16,16,18,.92);
  --header-bg:rgba(11,11,12,.78);
  --panel-a:rgba(22,22,24,.7); --panel-b:rgba(11,11,12,.4);
  /* --- profondeur --- */
  --veil:rgba(0,0,0,.5); --veil-top:rgba(0,0,0,.55);
  --shadow-soft:rgba(0,0,0,.35); --shadow:rgba(0,0,0,.4); --shadow-deep:rgba(0,0,0,.85);
  /* --- lumiere --- */
  --sweep:rgba(237,235,230,.045); --shine:rgba(255,255,255,.5);
  --solid-hi:#fff; --solid-glow:rgba(237,235,230,.45); --sheen-hi:#fff;
  --whats-fg:#7BE3A6;
  --ghost-stroke:rgba(201,174,124,.20); --ghost-stroke-2:rgba(201,174,124,.09);
  /* --- intensite des couches d'ambiance --- */
  --aurora-op:.55; --grain-op:.05; --grain-blend:overlay; --atmo-op:1; --refl-op:.14;
  --dust:226,201,148; --logo-tint:brightness(1);
  color-scheme:dark;
}

/* ============================================================
   MODE JOUR
   Le site est nocturne par identite : le jour n'est pas une
   inversion, c'est le meme showroom eclaire au naturel.
   Deux portees suffisent — la preference du systeme, et le
   bouton. :root porte la nuit ; la requete media ne s'applique
   pas si le visiteur a explicitement force la nuit.
   ============================================================ */
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]){
  --ink:#F2F0EA; --ink-1:#E8E5DD; --ink-2:#DFDCD3; --ink-3:#D6D2C8;
  --line:rgba(26,24,20,.13); --line-2:rgba(26,24,20,.24);
  --snow:#1A1815; --paper:#33302B; --fog:#56534C; --fog-2:#6B6860;
  --gold:#7D5F26; --gold-hi:#5E4719; --gold-dim:rgba(125,95,38,.45);
  --surf:rgba(255,255,255,.66); --surf-soft:rgba(255,255,255,.55); --surf-card:rgba(255,255,255,.78);
  --surf-deep:rgba(255,255,255,.82); --surf-foot:rgba(255,255,255,.6);
  --surf-field:#FFFFFF; --surf-chip:rgba(255,255,255,.94);
  --header-bg:rgba(242,240,234,.86);
  --panel-a:rgba(255,255,255,.72); --panel-b:rgba(255,255,255,.34);
  --veil:rgba(120,104,72,.10); --veil-top:rgba(120,104,72,.07);
  --shadow-soft:rgba(60,50,30,.14); --shadow:rgba(60,50,30,.18); --shadow-deep:rgba(60,50,30,.26);
  --sweep:rgba(125,95,38,.05); --shine:rgba(255,255,255,.85);
  --solid-hi:#0B0B0C; --solid-glow:rgba(26,24,21,.28); --sheen-hi:#A98446;
  --whats-fg:#0C6E36;
  --ghost-stroke:rgba(125,95,38,.22); --ghost-stroke-2:rgba(125,95,38,.11);
  --aurora-op:.20; --grain-op:.03; --grain-blend:multiply; --atmo-op:.42; --refl-op:.07;
  --dust:150,118,54; --logo-tint:brightness(0) opacity(.88);
  color-scheme:light;
  }
}
:root[data-theme="light"]{
  --ink:#F2F0EA; --ink-1:#E8E5DD; --ink-2:#DFDCD3; --ink-3:#D6D2C8;
  --line:rgba(26,24,20,.13); --line-2:rgba(26,24,20,.24);
  --snow:#1A1815; --paper:#33302B; --fog:#56534C; --fog-2:#6B6860;
  --gold:#7D5F26; --gold-hi:#5E4719; --gold-dim:rgba(125,95,38,.45);
  --surf:rgba(255,255,255,.66); --surf-soft:rgba(255,255,255,.55); --surf-card:rgba(255,255,255,.78);
  --surf-deep:rgba(255,255,255,.82); --surf-foot:rgba(255,255,255,.6);
  --surf-field:#FFFFFF; --surf-chip:rgba(255,255,255,.94);
  --header-bg:rgba(242,240,234,.86);
  --panel-a:rgba(255,255,255,.72); --panel-b:rgba(255,255,255,.34);
  --veil:rgba(120,104,72,.10); --veil-top:rgba(120,104,72,.07);
  --shadow-soft:rgba(60,50,30,.14); --shadow:rgba(60,50,30,.18); --shadow-deep:rgba(60,50,30,.26);
  --sweep:rgba(125,95,38,.05); --shine:rgba(255,255,255,.85);
  --solid-hi:#0B0B0C; --solid-glow:rgba(26,24,21,.28); --sheen-hi:#A98446;
  --whats-fg:#0C6E36;
  --ghost-stroke:rgba(125,95,38,.22); --ghost-stroke-2:rgba(125,95,38,.11);
  --aurora-op:.20; --grain-op:.03; --grain-blend:multiply; --atmo-op:.42; --refl-op:.07;
  --dust:150,118,54; --logo-tint:brightness(0) opacity(.88);
  color-scheme:light;
}


*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--ink); color:var(--snow);
  transition:background .35s var(--ease), color .35s var(--ease);
  font-family:var(--ff-body); font-weight:400; font-size:1.08rem; line-height:1.78;
  font-feature-settings:"liga" 1,"kern" 1;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
::selection{background:var(--gold); color:var(--ink)}
a{color:inherit; text-decoration:none}
img{max-width:100%; display:block}
h1,h2,h3{margin:0; font-family:var(--ff-display); font-weight:370; line-height:1.12;
  font-variation-settings:'opsz' 144,'SOFT' 0,'WONK' 0; letter-spacing:-.015em; text-wrap:balance}
p,blockquote,.lede,.statement{text-wrap:pretty}
h1 em,h2 em{font-style:italic; font-weight:340; color:var(--gold-hi)}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:2px}
.wrap{max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad)}

/* ---------- fond animé global ---------- */
.stage{position:fixed; inset:0; z-index:-2; background:var(--ink); overflow:hidden}
.stage::after{content:""; position:absolute; inset:0;
  background:radial-gradient(140% 100% at 50% 0%, transparent 55%, var(--veil-top));}
.aurora{position:absolute; border-radius:50%; filter:blur(110px); opacity:var(--aurora-op); will-change:transform}
.aurora.a{width:60vmax; height:60vmax; left:-18vmax; top:-22vmax;
  background:radial-gradient(circle at 35% 35%, rgba(201,174,124,.20), rgba(201,174,124,.05) 45%, transparent 70%);
  animation:aur-a 34s ease-in-out infinite alternate}
.aurora.b{width:52vmax; height:52vmax; right:-16vmax; top:14vmax;
  background:radial-gradient(circle at 60% 40%, rgba(148,164,190,.14), transparent 68%);
  animation:aur-b 42s ease-in-out infinite alternate}
.aurora.c{width:46vmax; height:46vmax; left:26vw; bottom:-24vmax;
  background:radial-gradient(circle, rgba(228,205,159,.10), transparent 66%);
  animation:aur-c 38s ease-in-out infinite alternate}
@keyframes aur-a{to{transform:translate(9vmax,7vmax) scale(1.15) rotate(8deg)}}
@keyframes aur-b{to{transform:translate(-7vmax,9vmax) scale(1.12)}}
@keyframes aur-c{to{transform:translate(-6vmax,-8vmax) scale(1.18)}}
/* balayage lumineux très lent, façon reflet de carrosserie */
.sweep{position:absolute; inset:-20%;
  background:linear-gradient(115deg, transparent 42%, var(--sweep) 50%, transparent 58%);
  animation:sweep 16s ease-in-out infinite; will-change:transform}
@keyframes sweep{0%,100%{transform:translateX(-30%)}50%{transform:translateX(30%)}}
.grain{position:fixed; inset:0; z-index:60; pointer-events:none; opacity:var(--grain-op); mix-blend-mode:var(--grain-blend);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* ---------- labels ---------- */
.eyebrow{font-family:var(--ff-label); font-size:.72rem; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); font-weight:500; display:inline-flex; align-items:center; gap:.9em}
.eyebrow::before{content:""; width:34px; height:1px; background:var(--gold-dim)}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:""; width:34px; height:1px; background:var(--gold-dim)}

/* ---------- header ---------- */
header.site{position:fixed; top:0; left:0; right:0; z-index:40;
  transition:border-color .5s var(--ease);
  border-bottom:1px solid transparent}
/* Le voile flouté est porté par un pseudo-élément : un backdrop-filter posé sur
   l'en-tête lui-même en ferait le repère des éléments fixes qu'il contient, et
   le menu mobile s'écraserait à la hauteur de la barre dès le premier défilement. */
header.site::before{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:var(--header-bg); -webkit-backdrop-filter:blur(16px) saturate(1.2); backdrop-filter:blur(16px) saturate(1.2);
  opacity:0; transition:opacity .5s var(--ease)}
header.site.scrolled::before{opacity:1}
header.site.scrolled{border-bottom-color:var(--line)}
.nav{max-width:var(--wrap); margin-inline:auto; padding:1.05rem var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:1rem}
.brand img{display:block; transition:transform .5s var(--ease), filter .5s var(--ease); filter:var(--logo-tint) drop-shadow(0 2px 10px var(--shadow-soft))}
.brand:hover img{transform:scale(1.045); filter:var(--logo-tint) drop-shadow(0 4px 16px var(--gold-dim))}

/* ---------- logo (marque ivoire directe sur fond sombre) ---------- */
/* Marque centrale de l'identité : volontairement grand et affirmé, pas discret. */
header .brand img{height:64px; width:auto}
@media(max-width:640px){ header .brand img{height:50px} }

.foot-brand img{height:150px; width:auto; margin-bottom:1.4rem;
  transition:transform .5s var(--ease), filter .5s var(--ease); filter:var(--logo-tint) drop-shadow(0 2px 10px var(--shadow-soft))}
.foot-brand:hover img{transform:scale(1.03)}
@media(max-width:640px){ .foot-brand img{height:110px} }

/* ---------- emblème d'ouverture (grand, hero accueil uniquement) ---------- */
.hero-crest{display:flex; justify-content:flex-start; margin-bottom:2rem}
.hero-crest img{height:150px; width:auto; filter:var(--logo-tint) drop-shadow(0 4px 22px var(--shadow))}
@media(max-width:640px){ .hero-crest img{height:104px} }

.nav-links{display:flex; align-items:center; gap:1.9rem}
.nav-links a{font-family:var(--ff-label); font-size:.7rem; letter-spacing:.17em;
  text-transform:uppercase; color:var(--fog); transition:color .3s; position:relative; padding:.3rem 0}
.nav-links a::after{content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0;
  background:var(--gold); transition:width .35s var(--ease)}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--snow)}
.nav-links a[aria-current="page"]::after,.nav-links a:hover::after{width:100%}
/* sélecteur renforcé : « .nav-links a » (plus spécifique) annulait sinon le
   rembourrage horizontal, et le texte touchait les bords de la pastille */
.nav-links .nav-cta{font-family:var(--ff-label); font-size:.68rem; font-weight:500; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink)!important; background:var(--snow);
  padding:.72rem 1.35rem; border-radius:100px; transition:all .35s var(--ease)}
.nav-cta::after{display:none}
.nav-cta:hover{background:var(--gold-hi); transform:translateY(-1px)}
.burger{display:none; background:none; border:0; color:var(--snow); cursor:pointer; padding:0;
  width:44px; height:44px; place-items:center}
.burger svg{width:26px; height:26px}
.nav-scrim{display:none}
.nav-links > a{white-space:nowrap}
@media(min-width:1200px) and (max-width:1320px){ .nav-links{gap:1.4rem} }
/* Les six rubriques + le bouton ne tiennent sur une ligne qu'à partir de 1200 px :
   en dessous (tablettes, petits portables), menu latéral. */
@media(max-width:1199px){
  .nav-links{position:fixed; inset:0 0 0 auto; z-index:1; width:min(84vw,360px); height:100vh; height:100dvh;
    flex-direction:column; align-items:flex-start; justify-content:center; gap:.35rem;
    background:var(--ink-1); padding:6rem var(--pad) 2.5rem; transform:translateX(100%);
    visibility:hidden; overflow-y:auto; overscroll-behavior:contain;
    transition:transform .5s var(--ease), visibility 0s linear .5s; border-left:1px solid var(--line);
    box-shadow:-30px 0 60px -30px var(--shadow-deep)}
  .nav-links.open{transform:translateX(0); visibility:visible; transition:transform .5s var(--ease), visibility 0s}
  .nav-links a{font-size:.95rem; padding:.7rem 0}
  .nav-links a::after{bottom:.45rem}
  .nav-links .nav-cta{margin-top:1rem; padding:.95rem 1.5rem; font-size:.8rem}
  .nav-tools{position:relative; z-index:2}
  .burger{display:grid}
  .nav-tools .themetog{width:44px; height:44px}
  /* voile derrière le menu ouvert : ferme au toucher */
  .nav-scrim{display:block; position:fixed; inset:0; z-index:0; background:rgba(0,0,0,.5); opacity:0; visibility:hidden;
    transition:opacity .4s var(--ease), visibility 0s linear .4s}
  body.menu-open .nav-scrim{opacity:1; visibility:visible; transition:opacity .4s var(--ease), visibility 0s}
  body.menu-open{overflow:hidden}
  body.menu-open .wa-fab{opacity:0; pointer-events:none}
}


/* ---------- bascule jour / nuit ----------
   L'icone annonce la destination : un soleil quand on est la nuit,
   une lune quand on est le jour. */
.nav-tools{display:flex; align-items:center; gap:.15rem}
.themetog{display:grid; place-items:center; width:38px; height:38px; padding:0; flex:none;
  background:none; border:1px solid transparent; border-radius:50%; color:var(--fog); cursor:pointer;
  transition:color .3s var(--ease), border-color .3s var(--ease), background .3s var(--ease)}
.themetog:hover{color:var(--gold-hi); border-color:var(--line-2); background:var(--surf-soft)}
.themetog svg{width:19px; height:19px; display:block; fill:none; stroke:currentColor;
  stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
.themetog .ic-nuit{display:none}
:root[data-theme="light"] .themetog .ic-nuit{display:block}
:root[data-theme="light"] .themetog .ic-jour{display:none}
@media (prefers-color-scheme:light){
  :root:not([data-theme="dark"]) .themetog .ic-nuit{display:block}
  :root:not([data-theme="dark"]) .themetog .ic-jour{display:none}
}
@media (prefers-reduced-motion:reduce){body{transition:none}}

.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}

/* ---------- boutons ---------- */
.btn{display:inline-flex; align-items:center; gap:.7em; font-family:var(--ff-label);
  font-size:.72rem; letter-spacing:.17em; text-transform:uppercase; font-weight:500;
  padding:1.05rem 1.9rem; border-radius:100px; border:1px solid transparent;
  cursor:pointer; transition:all .4s var(--ease); white-space:nowrap}
.btn .arw{transition:transform .4s var(--ease)}
.btn:hover .arw{transform:translateX(4px)}
.btn-solid{background:var(--snow); color:var(--ink)}
.btn-solid:hover{background:var(--solid-hi); transform:translateY(-2px); box-shadow:0 14px 44px -14px var(--solid-glow)}
.btn-ghost{border-color:var(--line-2); color:var(--snow)}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-hi)}
.btn-gold{border-color:var(--gold-dim); color:var(--gold)}
.btn-gold:hover{background:var(--gold); color:var(--ink); border-color:var(--gold)}
.btn-whats{background:rgba(37,211,102,.12); border-color:rgba(37,211,102,.4); color:var(--whats-fg)}
.btn-whats:hover{background:var(--whats); border-color:var(--whats); color:#04220F}

/* ---------- hero ---------- */
.hero{position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:7rem; padding-bottom:4.5rem}
.hero.compact{min-height:64svh; padding-top:9rem; padding-bottom:3rem}
/* Le trait de voiture est posé dans l'espace libre à droite de l'introduction,
   roues alignées sur le bas des boutons, sans jamais croiser le texte. Largeur
   mesurée : il reste au moins 56 px d'écart avec l'introduction de 1200 à 1920 px.
   En dessous de 1200 px le texte occupe toute la largeur : le trait est retiré. */
.hero-content{--car-w:min(34vw,420px)}
.hero-car{position:absolute; z-index:-1; right:calc(var(--pad) * .4); bottom:calc(var(--car-w) * -.056);
  width:var(--car-w); opacity:.45; pointer-events:none}
@media(max-width:1199px){ .hero-car,.floorlight{display:none} }
.hero-car path{fill:none; stroke:var(--snow); stroke-width:1.3; stroke-linecap:round;
  stroke-dasharray:2600; stroke-dashoffset:2600; animation:draw 3.2s var(--ease) .3s forwards}
.hero-car path.accent{stroke:var(--gold); opacity:.85; animation-delay:.75s}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-content{position:relative; z-index:2; width:100%}
.hero h1{font-size:clamp(2.7rem,7.6vw,6.6rem); margin-top:1.6rem; max-width:17ch; font-weight:330; letter-spacing:-.022em}
.hero.compact h1{font-size:clamp(2.4rem,5.6vw,4.6rem); max-width:20ch}
.sheen{background:linear-gradient(100deg,var(--snow) 0%,var(--snow) 38%,var(--sheen-hi) 48%,var(--gold-hi) 52%,var(--snow) 62%,var(--snow) 100%);
  background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:sheen 9s ease-in-out 3.6s infinite}
@keyframes sheen{0%,74%{background-position:132% 0}88%,100%{background-position:-32% 0}}
.lede{margin:1.9rem 0 0; max-width:56ch; color:var(--paper);
  font-size:clamp(1.1rem,1.5vw,1.28rem); line-height:1.72}
.hero-actions{display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.5rem}

/* ---------- marquee ---------- */
.marquee{border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--surf); padding:1.3rem 0; overflow:hidden; white-space:nowrap; position:relative}
.marquee::before,.marquee::after{content:""; position:absolute; top:0; bottom:0; width:14vw; z-index:2}
.marquee::before{left:0; background:linear-gradient(90deg,var(--ink),transparent)}
.marquee::after{right:0; background:linear-gradient(-90deg,var(--ink),transparent)}
.marquee-track{display:inline-flex; gap:3.4rem; animation:mq 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{font-family:var(--ff-display); font-style:italic; font-size:1.12rem;
  color:var(--fog); display:inline-flex; align-items:center; gap:3.4rem}
.marquee-track span::after{content:"◆"; font-style:normal; font-size:.48rem; color:var(--gold)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.section{padding:clamp(4.5rem,10vw,8.5rem) 0; position:relative}
.section.tight{padding:clamp(3.2rem,7vw,5.5rem) 0}
.section-head h2{font-size:clamp(2.1rem,4.8vw,3.6rem); margin-top:1.2rem}
.section-head p{color:var(--paper); margin-top:1.4rem; font-size:1.15rem; max-width:58ch; line-height:1.8}
.center{text-align:center}
.center .section-head p{margin-inline:auto}

.reveal{opacity:0; transform:translateY(26px); transition:opacity 1s var(--ease), transform 1s var(--ease)}
.reveal.in{opacity:1; transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}
.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}

/* ---------- cartes services ---------- */
.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
  border:1px solid var(--line); margin-top:3.2rem}
.svc{background:var(--surf-deep); padding:2.5rem 2.1rem; position:relative; overflow:hidden;
  transition:background .5s var(--ease)}
.svc::after{content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:linear-gradient(90deg,var(--gold),var(--gold-hi)); transition:width .5s var(--ease)}
.svc:hover{background:var(--ink-2)}
.svc:hover::after{width:100%}
/* Les cartes ne suivent pas d'ordre : un simple filet doré ouvre chaque titre,
   dans le style des accroches, au lieu d'une numérotation. */
.svc h3::before{content:""; display:block; width:34px; height:1px; margin-bottom:1.15rem; background:var(--gold-dim)}
.svc h3{font-size:1.45rem; margin-top:0; font-weight:430; line-height:1.22;
  font-variation-settings:'opsz' 40,'SOFT' 0,'WONK' 0; letter-spacing:-.006em}
.svc p{color:var(--fog); font-size:1.02rem; margin:.85rem 0 0; line-height:1.75}
.svc a.more{display:inline-flex; align-items:center; gap:.5em; margin-top:1.1rem;
  font-family:var(--ff-label); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold)}
@media(max-width:920px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.svc-grid{grid-template-columns:1fr}}

/* ---------- stats ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); margin-top:3rem}
.stat{padding:2.4rem 1.5rem; border-bottom:1px solid var(--line); border-right:1px solid var(--line)}
.stat:nth-child(4n){border-right:0}
.stat .num{font-family:var(--ff-display); font-weight:360; font-size:clamp(2.3rem,4.2vw,3.2rem);
  line-height:1; display:flex; align-items:baseline; gap:.12em;
  font-variation-settings:'opsz' 90,'SOFT' 0,'WONK' 0}
.stat .num .sub{font-size:.4em; color:var(--gold)}
.stat .lbl{margin-top:.75rem; font-family:var(--ff-label); font-size:.7rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--fog)}
.stars{color:var(--gold); font-size:.85rem; letter-spacing:.16em; margin-top:.45rem}
@media(max-width:720px){
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(4n){border-right:1px solid var(--line)}
  .stat:nth-child(2n){border-right:0}
}

/* ---------- éditorial 2 colonnes ---------- */
.duo{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,6vw,5rem); align-items:start}
@media(max-width:860px){.duo{grid-template-columns:1fr}}
.statement{font-family:var(--ff-display); font-size:clamp(1.5rem,2.6vw,2.15rem);
  line-height:1.3; font-weight:360; letter-spacing:-.006em}
.statement em{font-style:italic; color:var(--gold-hi)}
.body-copy{color:var(--paper); font-size:1.16rem; line-height:1.84}
.body-copy p{margin:0 0 1.2em}
.body-copy strong{font-weight:600; color:var(--snow)}
.signature{margin-top:1.8rem; padding-top:1.5rem; border-top:1px solid var(--line);
  font-style:italic; font-size:1.15rem}
.signature small{display:block; font-family:var(--ff-label); font-style:normal;
  font-size:.68rem; letter-spacing:.22em; text-transform:uppercase; color:var(--fog-2); margin-top:.35rem}

/* ---------- panneau CTA ---------- */
.panel{border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-a),var(--panel-b)); position:relative; overflow:hidden}
.panel-inner{text-align:center; max-width:46ch; margin-inline:auto; position:relative; z-index:2}
.panel h2{font-size:clamp(2.2rem,5.6vw,4.2rem); margin-top:1.3rem}
.panel p{color:var(--paper); margin:1.5rem auto 0; font-size:1.15rem; line-height:1.8}
.panel-actions{display:flex; flex-wrap:wrap; gap:1rem; justify-content:center; margin-top:2.5rem}

/* ---------- avis ---------- */
.avis-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; margin-top:3rem}
.quote{margin:0; background:var(--surf-card); border:1px solid var(--line); border-radius:4px; padding:2.1rem}
.quote .qs{font-family:var(--ff-label); color:var(--gold); font-size:.8rem; letter-spacing:.16em; margin-bottom:1rem}
.quote blockquote{margin:0; font-style:italic; font-size:1.2rem; line-height:1.6; font-weight:400}
.quote cite{display:block; margin-top:1.3rem; font-style:normal; font-family:var(--ff-label);
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--fog-2)}
@media(max-width:840px){.avis-grid{grid-template-columns:1fr}}

/* ---------- process (étapes) ---------- */
.steps{counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; margin-top:3.2rem}
.step{position:relative; padding:2rem 1.7rem; border:1px solid var(--line); border-radius:4px; background:var(--surf-soft)}
.step::before{counter-increment:step; content:counter(step,decimal-leading-zero);
  font-family:var(--ff-display); font-style:italic; font-size:2.4rem; color:var(--gold-dim); line-height:1}
.step h3{font-size:1.22rem; margin-top:.9rem; font-weight:440; line-height:1.22; font-variation-settings:'opsz' 40}
.step p{color:var(--fog); font-size:.98rem; line-height:1.7; margin:.7rem 0 0}
@media(max-width:920px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* ---------- zone / villes ---------- */
.zones{display:grid; grid-template-columns:repeat(2,1fr); gap:1.3rem; margin-top:3.2rem}
.zone{border:1px solid var(--line); border-radius:4px; padding:2.2rem 2rem; background:var(--surf);
  transition:border-color .4s}
.zone:hover{border-color:var(--gold-dim)}
.zone .dep{font-family:var(--ff-display); font-style:italic; font-size:2.6rem; color:var(--gold); line-height:1}
.zone h3{font-size:1.35rem; margin-top:.9rem; font-weight:440; line-height:1.22; font-variation-settings:'opsz' 40}
.zone p{color:var(--fog); font-size:1rem; line-height:1.75; margin:.8rem 0 0}
.zone p strong{color:var(--paper); font-weight:500}
@media(max-width:860px){.zones{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{margin-top:2.8rem; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center;
  gap:1rem; padding:1.5rem 0; font-family:var(--ff-display); font-size:1.3rem; font-weight:420;
  line-height:1.35; text-wrap:balance; font-variation-settings:'opsz' 40; transition:color .3s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-family:var(--ff-label); font-size:1.3rem; color:var(--gold); transition:transform .35s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq summary:hover{color:var(--gold-hi)}
.faq .a{padding:0 0 1.6rem; color:var(--paper); font-size:1.1rem; line-height:1.8; max-width:70ch}

/* ---------- contact ---------- */
.contact-grid{display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(2rem,6vw,5rem)}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.info-block{padding:1.6rem 0; border-top:1px solid var(--line)}
.info-block:first-of-type{border-top:1px solid var(--line-2)}
.info-block .k{font-family:var(--ff-label); font-size:.68rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin-bottom:.55rem}
.info-block .v{font-size:1.12rem; font-feature-settings:"onum" 1}
.info-block .v a:hover{color:var(--gold-hi)}
.info-block .note{color:var(--fog); font-size:.98rem; margin-top:.25rem}
.badge-rdv{display:inline-block; margin-top:.55rem; font-family:var(--ff-label); font-size:.64rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold);
  border:1px solid var(--gold-dim); padding:.32rem .75rem; border-radius:100px}

form{display:grid; gap:1.05rem}
.field{display:grid; gap:.5rem}
label{font-family:var(--ff-label); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--fog)}
input,textarea,select{background:var(--surf-field); border:1px solid var(--line-2); color:var(--snow);
  font-family:var(--ff-label); font-size:1rem; padding:.95rem 1.1rem; border-radius:4px; transition:border-color .3s}
input:focus,textarea:focus,select:focus{outline:none; border-color:var(--gold)}
textarea{resize:vertical; min-height:130px}
.hp{position:absolute; left:-9999px}
.form-note{font-family:var(--ff-label); font-size:.78rem; color:var(--fog-2)}
.form-status{font-family:var(--ff-label); font-size:.9rem; color:var(--gold); min-height:1.2em}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line); padding:4rem 0 2.2rem; background:var(--surf-foot); position:relative; z-index:1}
.foot-top{display:flex; justify-content:space-between; align-items:flex-start; gap:2.5rem; flex-wrap:wrap}
.foot-brand img{height:72px; margin-bottom:1.1rem}
.foot-brand p{color:var(--fog); font-size:1rem; max-width:36ch; line-height:1.7}
.foot-nav{display:flex; gap:3rem; flex-wrap:wrap}
.foot-col h4{font-family:var(--ff-label); font-size:.68rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold); margin:0 0 1rem; font-weight:500}
.foot-col a,.foot-col span{display:block; font-family:var(--ff-label); color:var(--fog);
  font-size:.88rem; margin-bottom:.55rem; transition:color .3s}
.foot-col a:hover{color:var(--snow)}
.foot-bottom{margin-top:3.2rem; padding-top:1.7rem; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  font-family:var(--ff-label); font-size:.76rem; color:var(--fog-2); letter-spacing:.04em}
.foot-bottom a:hover{color:var(--gold)}
.foot-bottom .credit{flex-basis:100%; text-align:center; margin-top:1.1rem}
.foot-bottom .credit a{border-bottom:1px solid var(--line-2); padding-bottom:1px;
  transition:color .3s var(--ease), border-color .3s var(--ease)}
.foot-bottom .credit a:hover{border-color:var(--gold)}

/* ---------- widget WhatsApp ---------- */
.wa-fab{position:fixed; right:1.4rem; bottom:1.4rem; z-index:50;
  display:flex; align-items:center; gap:.75rem; text-decoration:none}
.wa-label{font-family:var(--ff-label); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--snow); background:var(--surf-chip); border:1px solid var(--line-2);
  padding:.6rem 1rem; border-radius:100px; opacity:0; transform:translateX(8px);
  transition:opacity .4s var(--ease), transform .4s var(--ease); backdrop-filter:blur(8px)}
.wa-fab:hover .wa-label{opacity:1; transform:none}
.wa-btn{width:60px; height:60px; border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(145deg,#2BE071,#1FA855); box-shadow:0 10px 30px -8px rgba(37,211,102,.55);
  transition:transform .35s var(--ease)}
.wa-btn svg{width:30px; height:30px; fill:#fff}
.wa-fab:hover .wa-btn{transform:scale(1.08)}
.wa-btn::before{content:""; position:absolute; width:60px; height:60px; border-radius:50%;
  border:2px solid rgba(37,211,102,.55); animation:wa-pulse 2.6s ease-out infinite}
@keyframes wa-pulse{0%{transform:scale(1); opacity:.8}70%,100%{transform:scale(1.55); opacity:0}}
@media(max-width:640px){.wa-label{display:none}}

/* ---------- breadcrumb ---------- */
.crumbs{font-family:var(--ff-label); font-size:.68rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--fog-2); display:flex; gap:.7em; flex-wrap:wrap}
.crumbs a:hover{color:var(--gold)}
.crumbs .sep{color:var(--gold-dim)}

/* ---------- prose (mentions légales etc.) ---------- */
.prose{max-width:74ch}
.prose h2{font-size:1.7rem; margin:2.6rem 0 .9rem}
.prose p,.prose li{color:var(--paper); font-size:1.08rem; line-height:1.82}
.prose a{color:var(--gold-hi); border-bottom:1px solid var(--gold-dim)}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1; transform:none; transition:none}
  .hero-car path{animation:none; stroke-dashoffset:0}
  .sheen{animation:none; color:var(--snow); -webkit-text-fill-color:var(--snow)}
  .aurora,.sweep,.marquee-track,.wa-btn::before{animation:none}
}

/* ============================================================
   PAROXYSME — animations premium additionnelles
   ============================================================ */

/* ---------- preloader (index uniquement) ---------- */
#loader{position:fixed;inset:0;z-index:200;background:var(--ink);display:flex;
 align-items:center;justify-content:center;flex-direction:column;gap:1.6rem;
 transition:transform 1s cubic-bezier(.16,1,.3,1) .15s;will-change:transform}
#loader.done{transform:translateY(-101%)}
#loader .mono{font-family:var(--ff-display);font-style:italic;font-weight:340;
 font-size:clamp(2.4rem,7vw,4.6rem);letter-spacing:-.02em;line-height:1;
 background:linear-gradient(100deg,var(--gold) 30%,var(--gold-hi) 48%,var(--sheen-hi) 50%,var(--gold-hi) 52%,var(--gold) 70%);
 background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
 animation:lsheen 2.2s ease-in-out infinite}
@keyframes lsheen{0%{background-position:120% 0}100%{background-position:-40% 0}}
#loader .bar{width:min(300px,60vw);height:1px;background:var(--line-2);position:relative;overflow:hidden}
#loader .bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),var(--gold-hi));
 transform:scaleX(0);transform-origin:left;transition:transform .18s linear}
#loader .pct{font-family:var(--ff-label);font-size:.64rem;letter-spacing:.4em;text-transform:uppercase;color:var(--fog-2)}
body.loading{overflow:hidden}

/* ---------- barre de progression scroll ---------- */
#progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:120;pointer-events:none}
#progress i{display:block;height:100%;width:0;
 background:linear-gradient(90deg,var(--gold),var(--gold-hi));box-shadow:0 0 12px rgba(201,174,124,.55)}

/* ---------- light streaks (phares) ---------- */
.streaks{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.streak{position:absolute;height:1px;width:30vw;opacity:0;
 background:linear-gradient(90deg,transparent,var(--gold-hi) 45%,var(--sheen-hi) 50%,var(--gold-hi) 55%,transparent);
 filter:drop-shadow(0 0 7px rgba(228,205,159,.85));animation:stk 7.5s linear infinite}
.streak:nth-child(1){top:15%}
.streak:nth-child(2){top:36%;animation-delay:2.4s;width:22vw}
.streak:nth-child(3){top:60%;animation-delay:4.2s;width:38vw}
.streak:nth-child(4){top:78%;animation-delay:5.8s;width:18vw}
@keyframes stk{0%{transform:translateX(-45vw);opacity:0}6%{opacity:.9}14%{opacity:.9}
 22%{transform:translateX(125vw);opacity:0}100%{transform:translateX(125vw);opacity:0}}

/* ---------- poussière dorée ---------- */
#dust{position:fixed;inset:0;z-index:-1;pointer-events:none}

/* ---------- vignette ---------- */
.vignette{position:fixed;inset:0;z-index:1;pointer-events:none;
 background:radial-gradient(125% 92% at 50% 38%,transparent 58%,var(--veil))}

/* ---------- projecteur hero ---------- */
.spot{position:absolute;left:50%;top:-12%;transform:translateX(-50%);width:70vw;height:88vh;z-index:0;
 background:conic-gradient(from 180deg at 50% 0%,transparent 42%,rgba(228,205,159,.06) 50%,transparent 58%);
 opacity:var(--atmo-op);pointer-events:none;animation:spotSway 11s ease-in-out infinite alternate}
@keyframes spotSway{from{transform:translateX(-54%)}to{transform:translateX(-46%)}}

/* ---------- reflet showroom sous le trait de voiture ---------- */
.hero-car.refl{bottom:calc(var(--car-w) * -.211);transform:scaleY(-1);opacity:var(--refl-op);
 -webkit-mask-image:linear-gradient(rgba(0,0,0,.85),transparent 60%);
 mask-image:linear-gradient(rgba(0,0,0,.85),transparent 60%)}
.floorlight{position:absolute;right:calc(var(--pad) * .4);bottom:-60px;z-index:-1;
 width:var(--car-w);height:110px;border-radius:50%;filter:blur(42px);pointer-events:none;
 background:radial-gradient(ellipse,rgba(228,205,159,.12),transparent 70%);opacity:var(--atmo-op)}

/* ---------- titres hero ligne par ligne ---------- */
/* Marges de sécurité du masque : accents des capitales en haut, jambages (p, q, g) en bas. */
.hero h1 .line{display:block;overflow:hidden;padding:.1em 0 .16em;margin:-.1em 0 -.16em}
.hero h1 .line span{display:block;transform:translateY(115%);animation:lreveal 1.2s cubic-bezier(.16,1,.3,1) forwards}
.hero h1 .line:nth-child(1) span{animation-delay:.25s}
.hero h1 .line:nth-child(2) span{animation-delay:.42s}
@keyframes lreveal{to{transform:none}}
body.loading .hero h1 .line span{animation-play-state:paused}

/* ---------- split-words des h2 ---------- */
h2 .w{display:inline-block;overflow:hidden;vertical-align:top;padding:.08em 0 .16em;margin:-.08em 0 -.16em}
h2 .w i{display:inline-block;font-style:inherit;transform:translateY(112%);transition:transform 1s cubic-bezier(.16,1,.3,1)}
h2.vis .w i{transform:none}

/* ---------- ligne dorée qui se dessine ---------- */
.rule{height:1px;width:0;background:linear-gradient(90deg,var(--gold),transparent);
 margin-top:2rem;transition:width 1.5s var(--ease) .25s}
.reveal.in .rule,.vis .rule{width:min(340px,62%)}

/* ---------- numéros de chapitre ---------- */
/* Taille et position calculées pour que le numéro reste dans la marge haute de
   la section, au-dessus du texte, à toutes les largeurs. */
.chap{position:absolute;top:clamp(1.1rem,2.4vw,2rem);right:var(--pad);font-family:var(--ff-display);
 font-style:italic;font-size:clamp(3rem,6vw,5.5rem);line-height:1;color:transparent;
 -webkit-text-stroke:1px var(--ghost-stroke);pointer-events:none;user-select:none;z-index:0}

/* ---------- nav roll effect ---------- */
/* La fenêtre du « roll » doit mesurer exactement une ligne : avec l'interligne
   hérité (1.78) la ligne de base tombait sous la fenêtre et le bas des lettres
   était rogné. */
.nav-links a .roll{display:block;overflow:hidden;height:1.4em;line-height:1.4}
.nav-links a .roll s{display:block;line-height:1.4;text-decoration:none;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.nav-links a .roll s::after{content:attr(data-t);display:block;color:var(--gold-hi)}
.nav-links a:hover .roll s{transform:translateY(-1.4em)}

/* ---------- boutons: shine + magnétique ---------- */
.btn{position:relative;overflow:hidden;will-change:transform}
.btn .shine{position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,var(--shine) 50%,transparent 60%);
 transform:translateX(-130%);transition:transform .75s var(--ease);pointer-events:none}
.btn:hover .shine{transform:translateX(130%)}

/* ---------- glowspot + tilt sur cartes ---------- */
.svc,.zone,.step,.quote{position:relative;overflow:hidden;transform-style:preserve-3d;will-change:transform}
.glowspot{position:absolute;inset:0;opacity:0;transition:opacity .4s;pointer-events:none;
 background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(201,174,124,.14),transparent 65%)}
.svc:hover .glowspot,.zone:hover .glowspot,.step:hover .glowspot,.quote:hover .glowspot{opacity:1}
.quote{transition:transform .55s var(--ease),border-color .55s,box-shadow .55s,background .5s}
.quote:hover{transform:translateY(-8px);border-color:var(--gold-dim);box-shadow:0 26px 55px -22px var(--shadow-deep)}
.zone{transition:border-color .5s,transform .5s var(--ease)}
.zone:hover{transform:translateY(-6px)}
.step{transition:border-color .5s,transform .5s var(--ease)}
.step:hover{border-color:var(--gold-dim);transform:translateY(-5px)}

/* ---------- halo conique tournant dans les panels ---------- */
.panel .halo{position:absolute;left:50%;top:50%;width:135vmax;height:135vmax;transform:translate(-50%,-50%);
 background:conic-gradient(from 0deg,transparent 0 68deg,rgba(201,174,124,.09) 90deg,transparent 112deg,
 transparent 248deg,rgba(148,164,190,.07) 270deg,transparent 292deg);
 opacity:var(--atmo-op);animation:spin 26s linear infinite;will-change:transform;z-index:0}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.panel-inner{position:relative;z-index:2}

/* ---------- marquee inversé (2e rangée) ---------- */
.marquee .mrow{padding:0}
.marquee .row2{border-top:1px solid var(--line);margin-top:1.3rem;padding-top:1.3rem}
.marquee .row2 .marquee-track{animation:mqR 44s linear infinite}
.marquee .row2 .marquee-track span{color:var(--fog-2)}
@keyframes mqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}

/* ---------- footer filigrane ---------- */
footer{overflow:hidden;position:relative}
footer .ghost{position:absolute;left:50%;bottom:-.26em;transform:translateX(-50%);
 font-family:var(--ff-display);font-style:italic;font-size:clamp(7rem,22vw,18rem);line-height:1;
 color:transparent;-webkit-text-stroke:1px var(--ghost-stroke-2);
 pointer-events:none;user-select:none;white-space:nowrap;z-index:0}
footer .wrap{position:relative;z-index:1}

/* ---------- formulaire questionnaire ---------- */
select{appearance:none;-webkit-appearance:none;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9AE7C' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 1.1rem center;padding-right:2.6rem;cursor:pointer}
select option{background:var(--ink-1);color:var(--snow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.05rem}
.form-grid .full{grid-column:1/-1}
@media(max-width:640px){.form-grid{grid-template-columns:1fr}}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
 #loader{display:none}
 body.loading{overflow:auto}
 .hero h1 .line span,h2 .w i{transform:none!important;animation:none!important}
 .streak,.spot,.panel .halo,#loader .mono{animation:none!important}
 .rule{width:min(340px,62%)}
}

/* ── Stock — page en construction ── */
.stock-soon{
  position:relative;
  border:1px solid var(--line-2);
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(180deg,var(--ink-1),var(--ink-2));
  box-shadow:0 30px 80px -40px var(--shadow-deep);
  padding:clamp(3.4rem,9vw,6rem) clamp(1.6rem,5vw,3rem);
  text-align:center;
}
.stock-soon::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  border-radius:16px;border:1px solid rgba(201,174,124,.12);
}
.stock-soon h2{font-size:clamp(2.6rem,6.4vw,4.8rem); margin-top:1.3rem}
.stock-soon .lede{margin-top:1.4rem; color:var(--paper)}

/* ============================================================
   FINITIONS TACTILES — téléphone et tablette
   Lisibilité (aucun texte sous 12 px), cibles tactiles d'au moins
   44 px, rien sous le bouton WhatsApp en bas de page.
   ============================================================ */
.wa-fab{transition:opacity .35s var(--ease), transform .35s var(--ease)}
/* Sous 1280 px la bulle empiète sur la colonne de texte : elle s'efface pendant
   la lecture (défilement vers le bas) et revient dès que l'on remonte. */
body.wa-off .wa-fab{opacity:0; transform:translateY(18px) scale(.92); pointer-events:none}
.eyebrow,.signature small,.stat .lbl,.quote cite,.foot-col h4,.info-block .k,label,.crumbs{text-wrap:balance}
@media(max-width:900px){
  .eyebrow,.btn{font-size:.78rem}
  .stat .lbl,.svc a.more,.quote cite,.foot-col h4,.crumbs,.info-block .k,label,
  .badge-rdv,.signature small{font-size:.76rem}
  /* zones de toucher agrandies sans décaler la mise en page */
  .crumbs a,.foot-bottom span:not(.credit) a,.info-block .v a,.info-block .note a{display:inline-block; padding:.7rem 0; margin:-.7rem 0}
  .foot-bottom .credit a{position:relative}
  .foot-bottom .credit a::before{content:""; position:absolute; inset:-.8rem -.4rem}
  .stat .num .sub{font-size:max(.4em,12px)}
  .svc a.more{padding:.75rem 0; margin-top:.35rem}
  .foot-col a,.foot-col span{padding:.5rem 0; margin-bottom:0}
}
@media(max-width:720px){
  .stat{padding:1.9rem 1rem}
  .stat .num{font-size:clamp(1.75rem,7.6vw,2.3rem)}
}
@media(max-width:560px){
  .eyebrow{letter-spacing:.24em}
  .svc{padding:2.1rem 1.6rem}
  .quote{padding:1.8rem 1.6rem}
  .btn{white-space:normal; text-align:center; justify-content:center; line-height:1.5; padding:1.1rem 1.25rem;
    letter-spacing:.13em; text-wrap:balance}
  .stock-soon{padding:3.2rem 1.1rem}
  .hero-actions .btn,.panel-actions .btn,form .btn{width:100%}
  .hero-actions,.panel-actions{gap:.8rem}
}
@media(max-width:640px){
  .wa-fab{right:1rem; bottom:1rem}
  .wa-btn,.wa-btn::before{width:54px; height:54px}
  .wa-btn svg{width:27px; height:27px}
  footer{padding-bottom:calc(2.2rem + 74px)}
}
