/* ==========================================================================
   PERLE NOIRE ESTHÉTIQUE — Design system
   Archétype : « Showroom alterné » (noir profond ↔ blanc cassé)
   Accent    : rouge (action + emphase) ; nacre réservée au logo et aux chiffres
   Typo      : Archivo Expanded (titres, axe wdth) + DM Sans (corps)
   ========================================================================== */

/* --------------------------------------------------------------- 1. TOKENS */
:root{
  /* Sombre */
  --ink:        #08080A;
  --ink-2:      #101015;
  --ink-3:      #17171E;
  --line-d:     rgba(255,255,255,.10);
  --line-d-2:   rgba(255,255,255,.18);
  --txt-l:      #F4F3F1;
  --txt-l-mut:  #9C9CA8;

  /* Clair */
  --paper:      #F7F6F4;
  --paper-2:    #EFEDE9;
  --line-l:     #DFDCD5;
  --txt-d:      #0B0B0E;
  --txt-d-mut:  #6B6B75;

  /* ROUGE = couleur d'action et d'emphase (boutons, mots-accents, états actifs) */
  --red:      #E01F26;   /* sur fond sombre */
  --red-d:    #C4161C;   /* sur fond clair : garde le contraste du texte */
  --red-dk:   #9E1015;   /* survol sur fond clair */
  --red-lo:   rgba(224,31,38,.13);

  /* NACRE = réservée au logo et aux gros chiffres (le « perle » de Perle Noire) */
  --pearl:      linear-gradient(115deg,#B9D0E6 0%,#E7DAEB 34%,#F6E8D2 62%,#C6DAE8 100%);
  --pearl-soft: linear-gradient(115deg,rgba(185,208,230,.22),rgba(231,218,235,.22),rgba(246,232,210,.22));
  --pearl-line: #C9D6E3;

  /* Système */
  --wdth:   118;   /* axe de largeur d'Archivo : 100 = normal, 125 = max */

  --r:      14px;
  --r-lg:   22px;
  --maxw:   1220px;
  --pad:    clamp(20px,5vw,48px);
  --sect:   clamp(72px,10vw,132px);
  --ease:   cubic-bezier(.22,.61,.36,1);
  --ease-o: cubic-bezier(.16,1,.3,1);
}

/* ----------------------------------------------------------------- 2. BASE */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }

body{
  margin:0;
  background:var(--ink);
  color:var(--txt-l);
  font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; color:inherit; background:none; border:0; cursor:pointer}
input,select,textarea{font:inherit; color:inherit}

h1,h2,h3,h4{
  font-family:'Archivo',system-ui,sans-serif;
  font-weight:800;
  font-variation-settings:'wdth' var(--wdth);   /* Archivo Expanded */
  font-stretch:118%;                            /* repli si l'axe variable ne charge pas */
  line-height:1.04;
  letter-spacing:-.018em;
  margin:0;
  text-wrap:balance;
}
h1{font-size:clamp(2.6rem,6.4vw,5.1rem)}
h2{font-size:clamp(1.8rem,3.1vw,2.85rem)}
/* Dans une demi-colonne, le titre doit descendre encore d'un cran */
.split h2,.ba-grid h2,.cta-grid h2{font-size:clamp(1.65rem,2.5vw,2.25rem)}
h3{font-size:clamp(1.25rem,2vw,1.7rem); font-weight:700; letter-spacing:-.015em}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}

/* ------------------------------------------------------------ 3. STRUCTURE */
.wrap{max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad)}
.wrap-wide{max-width:1460px; margin-inline:auto; padding-inline:var(--pad)}
.sect{padding-block:var(--sect); position:relative}

.s-dark {background:var(--ink);   color:var(--txt-l)}
.s-dark2{background:var(--ink-2); color:var(--txt-l)}
.s-light{background:var(--paper); color:var(--txt-d)}
.s-light2{background:var(--paper-2); color:var(--txt-d)}
.s-light p, .s-light2 p{color:var(--txt-d-mut)}
.s-dark  p, .s-dark2 p{color:var(--txt-l-mut)}

.lede{font-size:clamp(1.02rem,1.5vw,1.2rem); max-width:60ch}

/* Grain subtil sur les sections sombres = évite le noir « plat » du web */
.s-dark::before,.s-dark2::before{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.42; mix-blend-mode:overlay;
  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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
.s-dark > *, .s-dark2 > *{position:relative; z-index:1}

/* --------------------------------------------------------- 4. TYPO UTILS */
.eyebrow{
  font-size:.72rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase;
  display:inline-flex; align-items:center; gap:.7em; margin:0 0 1.1rem;
}
.eyebrow::before{content:''; width:26px; height:2px; background:var(--red); flex:none; border-radius:2px}
.s-dark .eyebrow, .s-dark2 .eyebrow{color:var(--red)}
.s-light .eyebrow, .s-light2 .eyebrow{color:var(--red-d)}
.s-light .eyebrow::before,.s-light2 .eyebrow::before{background:var(--red-d)}

/* Mot mis en valeur : rouge (le seul rouge « texte » de la page) */
.accent{color:var(--red)}
.s-light .accent,.s-light2 .accent{color:var(--red-d)}

.sect-head{max-width:74ch; margin-bottom:clamp(36px,5vw,64px)}
.sect-head.center{margin-inline:auto; text-align:center}
.sect-head.center .eyebrow{justify-content:center}
.sect-head h2 + p{margin-top:1.1rem}

.num{
  font-family:'Archivo',sans-serif; font-weight:800; font-size:.78rem; letter-spacing:.14em;
  opacity:.5;
}

/* ------------------------------------------------------------ 5. BOUTONS */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:1.02em 1.9em; border-radius:100px;
  font-weight:700; font-size:.94rem; letter-spacing:.01em; line-height:1;
  transition:transform .3s var(--ease-o), box-shadow .3s var(--ease), background .25s, color .25s, border-color .25s;
  will-change:transform; text-align:center;
}
.btn svg{flex:none}

/* Bouton principal : ROUGE partout, c'est le seul aplat de couleur de la page */
.btn-p{background:var(--red); color:#fff; box-shadow:0 0 0 0 rgba(224,31,38,.4)}
.btn-p:hover{background:#F32A31; box-shadow:0 16px 44px -14px rgba(224,31,38,.75)}
.s-light .btn-p,.s-light2 .btn-p{background:var(--red-d); color:#fff; box-shadow:0 10px 28px -14px rgba(196,22,28,.6)}
.s-light .btn-p:hover,.s-light2 .btn-p:hover{background:var(--red-dk); box-shadow:0 18px 44px -16px rgba(196,22,28,.5)}

.btn-g{border:1px solid var(--line-d-2); color:var(--txt-l)}
.btn-g:hover{border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.05)}
.s-light .btn-g,.s-light2 .btn-g{border-color:var(--line-l); color:var(--txt-d)}
.s-light .btn-g:hover,.s-light2 .btn-g:hover{border-color:#9C968A; background:rgba(0,0,0,.03)}

.btn-lg{padding:1.18em 2.3em; font-size:1rem}
.btn-full{width:100%}

/* Bouton magnétique (JS ajoute --mx/--my) */
.mag{transform:translate(var(--mx,0),var(--my,0))}

/* --------------------------------------------------------------- 6. NAV */
.nav{
  position:fixed; inset:0 0 auto; z-index:80;
  padding-block:18px;
  transition:background .35s var(--ease), backdrop-filter .35s, border-color .35s, padding .35s var(--ease);
  border-bottom:1px solid transparent;
}
/* Voile discret : les liens de nav passent au-dessus des traits de lumière du hero */
.nav::before{
  content:''; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(to bottom,rgba(8,8,10,.62),transparent);
  transition:opacity .35s var(--ease);
}
.nav.stuck::before{opacity:0}
.nav.stuck{
  background:rgba(8,8,10,.82); backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom-color:var(--line-d); padding-block:11px;
}
.nav-in{display:flex; align-items:center; gap:24px}
.nav-links{display:flex; gap:30px; margin-left:auto; font-size:.9rem; font-weight:500; color:var(--txt-l-mut)}
.nav-links a{position:relative; padding-block:4px; transition:color .2s}
.nav-links a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease-o);
}
.nav-links a:hover{color:var(--txt-l)}
.nav-links a:hover::after{transform:scaleX(1)}
.nav-tel{
  display:inline-flex; align-items:center; gap:.5em; font-weight:600; font-size:.9rem; color:var(--txt-l);
}
.nav-tel:hover{color:var(--red)}
.nav .btn{padding:.82em 1.4em; font-size:.86rem}
@media (max-width:940px){
  .nav-links{display:none}
  .nav-in{gap:10px}
  .nav-tel span{display:none}
  .nav-tel{margin-left:auto}   /* sans ça, l'icône se colle au logo (nav-links est masqué) */
}

/* --------------------------------------------------------------- LOGO
   Fichier officiel du client (blanc sur transparent, recadré au contenu).
   Il n'apparaît que sur fond sombre : nav et footer. */
.logo{display:flex; align-items:center; flex:none}
.logo-img{
  height:40px; width:auto; display:block;
  transition:opacity .25s var(--ease), height .35s var(--ease);
}
.logo:hover .logo-img{opacity:.82}
.nav.stuck .logo-img{height:34px}
@media (max-width:640px){ .logo-img{height:34px} .nav.stuck .logo-img{height:30px} }

/* --------------------------------------------------------------- 7. HERO */
.hero{position:relative; min-height:100svh; display:flex; align-items:center; padding-block:120px 72px; overflow:hidden}
.hero-bg{position:absolute; inset:0; z-index:0}
.hero-bg img{width:100%; height:100%; object-fit:cover; object-position:65% 50%}
/* Voile : très dense à gauche (sous le titre), volontairement léger au centre
   pour que la voiture reste visible, puis remontant à droite sous la carte. */
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(46% 66% at 15% 46%, rgba(8,8,10,.86), transparent 74%),
    linear-gradient(100deg,
      rgba(8,8,10,.94) 0%,
      rgba(8,8,10,.72) 22%,
      rgba(8,8,10,.34) 40%,
      rgba(8,8,10,.18) 56%,
      rgba(8,8,10,.34) 76%,
      rgba(8,8,10,.58) 100%),
    linear-gradient(to top,rgba(8,8,10,.94),transparent 38%);
}
.hero-in{position:relative; z-index:2; width:100%}
.hero-grid{display:grid; grid-template-columns:1.04fr .96fr; gap:clamp(32px,5vw,72px); align-items:center}
/* Le hero est en 2 colonnes : le titre doit être plus petit que le h1 pleine largeur */
.hero h1{font-size:clamp(2.05rem,3.35vw,3.2rem); line-height:1.05; margin-bottom:1.15rem}
.hero .lede{color:#C6C6CF; font-size:clamp(1.04rem,1.5vw,1.24rem); max-width:46ch}

/* Trait de lumière nacré qui balaie le haut du hero */
.hero-sheen{
  position:absolute; top:0; left:-30%; width:60%; height:1px; z-index:3;
  background:linear-gradient(90deg,transparent,#DDE8F2,transparent);
  animation:sheen 7s var(--ease) infinite;
}
@keyframes sheen{0%{left:-60%}55%,100%{left:120%}}

.hero-meta{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px}
.chip{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.5em 1em; border-radius:100px; border:1px solid var(--line-d);
  background:rgba(255,255,255,.04); font-size:.8rem; font-weight:500; color:#C9C9D4;
}
.chip svg{flex:none; opacity:.85}

@media (max-width:980px){
  .hero{min-height:auto; padding-block:104px 56px}
  .hero-grid{grid-template-columns:1fr; gap:32px}
  .hero-bg img{object-position:60% 50%}
  .hero-bg::after{background:linear-gradient(to bottom,rgba(8,8,10,.9),rgba(8,8,10,.82) 40%,rgba(8,8,10,.96))}
}
/* Mobile : on resserre le hero pour que la carte du formulaire monte plus haut */
@media (max-width:640px){
  .hero{padding-block:88px 40px}
  .hero h1{font-size:clamp(1.82rem,7.4vw,2.3rem); margin-bottom:.85rem}
  .hero .lede{font-size:1rem; line-height:1.55}
  .hero .eyebrow{margin-bottom:.8rem; font-size:.66rem; letter-spacing:.15em}
  .hero-meta{gap:7px; margin-top:18px}
  .chip{padding:.42em .85em; font-size:.74rem}
  .hero-grid{gap:24px}
}

/* ---------------------------------------------------------- 8. QUIZ CARD */
.quiz{
  background:rgba(18,18,23,.78); backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  border:1px solid var(--line-d-2); border-radius:var(--r-lg);
  padding:clamp(22px,3vw,32px);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.09);
  position:relative; overflow:hidden;
}
.quiz::before{ /* filet nacré en haut de la carte */
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg,var(--red),#F3565C 55%,var(--red));
}
.quiz-head{display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px}
.quiz-kicker{font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--txt-l-mut)}
.quiz-count{font-family:'Archivo',sans-serif; font-weight:800; font-size:.78rem; letter-spacing:.08em; color:var(--txt-l-mut)}
.quiz-bar{height:3px; border-radius:100px; background:rgba(255,255,255,.12); overflow:hidden; margin-bottom:24px}
.quiz-bar i{display:block; height:100%; width:14%; border-radius:100px; background:var(--red); transition:width .5s var(--ease-o)}

.step{display:none; animation:stepIn .45s var(--ease-o) both}
.step.on{display:block}
@keyframes stepIn{from{opacity:0; transform:translateY(14px)}to{opacity:1; transform:none}}
@media (prefers-reduced-motion:reduce){ .step{animation:none} }

.step-q{font-family:'Archivo',sans-serif; font-weight:700; font-size:clamp(1.22rem,2.1vw,1.55rem); line-height:1.18; letter-spacing:-.015em; margin:0 0 6px}
.step-hint{font-size:.87rem; color:var(--txt-l-mut); margin:0 0 18px}

.opts{display:grid; gap:9px}
.opts.two{grid-template-columns:1fr 1fr}
@media (max-width:520px){ .opts.two{grid-template-columns:1fr} }

.opt{
  display:flex; align-items:center; gap:13px; width:100%; text-align:left;
  padding:15px 16px; border-radius:var(--r);
  border:1px solid var(--line-d); background:rgba(255,255,255,.028);
  transition:border-color .22s, background .22s, transform .22s var(--ease-o);
}
.opt:hover{border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.07); transform:translateX(3px)}
.opt.sel{border-color:var(--red); background:var(--red-lo)}
.opt.sel .opt-ic{border-color:var(--red); background:var(--red-lo)}
.opt.sel .opt-ic svg{stroke:#FF6B6F}
.opt-ic{
  width:38px; height:38px; flex:none; border-radius:10px;
  display:grid; place-items:center; border:1px solid var(--line-d);
  background:rgba(255,255,255,.05);
}
.opt-ic svg{width:19px; height:19px; stroke:#D6DEE8}
.opt-t{font-weight:600; font-size:.97rem; line-height:1.25; display:block}
.opt-d{font-size:.79rem; color:var(--txt-l-mut); line-height:1.4; display:block; margin-top:2px}
.opt-go{margin-left:auto; opacity:0; transform:translateX(-6px); transition:.22s var(--ease-o); flex:none}
.opt:hover .opt-go{opacity:.8; transform:none}

/* Champs */
.fields{display:grid; gap:12px}
.fields.two{grid-template-columns:1fr 1fr}
@media (max-width:520px){ .fields.two{grid-template-columns:1fr} }
.field label{display:block; font-size:.78rem; font-weight:600; letter-spacing:.04em; color:var(--txt-l-mut); margin-bottom:6px}
.field input,.field select{
  width:100%; padding:14px 15px; border-radius:var(--r);
  border:1px solid var(--line-d); background:rgba(255,255,255,.045); color:var(--txt-l);
  font-size:.97rem; transition:border-color .2s, background .2s, box-shadow .2s;
  appearance:none;
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%239C9CA8' stroke-width='1.8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 15px center; padding-right:38px;
}
.field input::placeholder{color:#63636E}
.field input:focus,.field select:focus{
  outline:none; border-color:var(--red); background:rgba(255,255,255,.08);
  box-shadow:0 0 0 3px rgba(224,31,38,.2);
}
.field.err input,.field.err select{border-color:#E0574F; box-shadow:0 0 0 3px rgba(224,87,79,.14)}
.field-msg{font-size:.76rem; color:#F0938C; margin-top:5px; display:none}
.field.err .field-msg{display:block}

.step-nav{display:flex; align-items:center; gap:12px; margin-top:18px}
.back{
  display:inline-flex; align-items:center; gap:.4em; font-size:.85rem; font-weight:600;
  color:var(--txt-l-mut); transition:color .2s;
}
.back:hover{color:var(--txt-l)}
.consent{font-size:.72rem; line-height:1.5; color:#75757F; margin-top:12px}
.consent a{text-decoration:underline; text-underline-offset:2px}

/* Écran résultat */
.result{text-align:center; padding-block:6px}
.result-ic{
  width:60px; height:60px; margin:0 auto 18px; border-radius:50%;
  display:grid; place-items:center; background:var(--red);
  box-shadow:0 0 0 8px rgba(224,31,38,.14);
}
.result-ic svg{width:28px; height:28px; stroke:#fff; stroke-width:2.6}
.result h3{margin-bottom:10px}
.result-box{
  margin-top:20px; padding:16px 18px; border-radius:var(--r);
  border:1px solid var(--line-d); background:rgba(255,255,255,.04); text-align:left;
}
.result-box dt{font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--txt-l-mut); font-weight:700}
.result-box dd{margin:3px 0 12px; font-weight:600; font-size:.97rem}
.result-box dd:last-child{margin-bottom:0}

/* -------------------------------------------------------- 9. BANDE LOGOS */
.marquee{overflow:hidden; border-block:1px solid var(--line-d); padding-block:20px; position:relative}
.marquee::before,.marquee::after{
  content:''; position:absolute; top:0; bottom:0; width:90px; z-index:2; pointer-events:none;
}
.marquee::before{left:0;  background:linear-gradient(90deg,var(--ink-2),transparent)}
.marquee::after {right:0; background:linear-gradient(270deg,var(--ink-2),transparent)}
.marquee-track{display:flex; gap:52px; width:max-content; animation:slide 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee-item{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:.94rem; letter-spacing:.16em;
  text-transform:uppercase; color:#5C5C68; white-space:nowrap; transition:color .3s;
}
.marquee-item:hover{color:#C9D6E3}
@media (prefers-reduced-motion:reduce){ .marquee-track{animation:none} }

/* Compteurs */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-d); margin-top:0}
.stat{background:var(--ink-2); padding:clamp(24px,3.6vw,40px) clamp(16px,2vw,26px); text-align:center}
.stat b{
  display:block; font-family:'Archivo',sans-serif; font-weight:800; font-size:clamp(1.9rem,3.6vw,2.9rem);
  line-height:1; letter-spacing:-.03em; margin-bottom:8px;
  background:var(--pearl); -webkit-background-clip:text; background-clip:text; color:transparent;
}
/* ⚠ `>` obligatoire : sinon la règle attrape aussi le <span data-count> dans le <b> */
.stat > span{font-size:.79rem; color:var(--txt-l-mut); letter-spacing:.03em; line-height:1.4; display:block}
@media (max-width:760px){ .stats{grid-template-columns:1fr 1fr} }

/* ------------------------------------------------- 10. AVANT / APRÈS */
.ba{
  position:relative; aspect-ratio:3/2; border-radius:var(--r-lg); overflow:hidden;
  --p:50%; box-shadow:0 40px 80px -44px rgba(0,0,0,.5); background:#111;
  touch-action:pan-y;
}
.ba-lay{position:absolute; inset:0}
.ba-lay img{width:100%; height:100%; object-fit:cover}
.ba-lay--before{clip-path:inset(0 calc(100% - var(--p)) 0 0)}
.ba-tag{
  position:absolute; top:16px; z-index:3;
  padding:.44em 1em; border-radius:100px; font-size:.72rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; backdrop-filter:blur(8px);
}
.ba-tag--a{left:16px;  background:rgba(8,8,10,.62); color:#E6E6EE; border:1px solid rgba(255,255,255,.2)}
.ba-tag--b{right:16px; background:rgba(247,246,244,.9); color:var(--ink)}
.ba-handle{
  position:absolute; top:0; bottom:0; left:var(--p); width:2px; z-index:4;
  background:linear-gradient(to bottom,transparent,#EDF2F7 12%,#EDF2F7 88%,transparent);
  transform:translateX(-1px); pointer-events:none;
}
.ba-knob{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:50px; height:50px; border-radius:50%;
  background:rgba(247,246,244,.96); display:grid; place-items:center;
  box-shadow:0 8px 26px rgba(0,0,0,.42);
}
.ba-knob svg{stroke:var(--ink); width:22px; height:22px}
.ba-range{
  position:absolute; inset:0; z-index:5; width:100%; height:100%; margin:0;
  opacity:0; cursor:ew-resize; appearance:none; background:none;
}
.ba-range:focus-visible + .ba-handle .ba-knob{box-shadow:0 0 0 4px rgba(224,31,38,.6), 0 8px 26px rgba(0,0,0,.42)}
.ba-note{
  display:flex; align-items:center; justify-content:center; gap:.55em;
  font-size:.82rem; color:var(--txt-d-mut); margin-top:16px; font-weight:500;
}

.ba-grid{display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(32px,5vw,64px); align-items:center}
@media (max-width:960px){ .ba-grid{grid-template-columns:1fr} }

.tick-list{list-style:none; padding:0; margin:26px 0 0; display:grid; gap:13px}
.tick-list li{display:flex; gap:12px; align-items:flex-start; font-size:.96rem; line-height:1.5}
.tick-list svg{flex:none; margin-top:3px}
.s-light .tick-list li{color:var(--txt-d)}

/* ------------------------------------------------------- 11. SPLIT MEDIA */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,72px); align-items:center}
.split.rev .split-media{order:-1}
.split-media{position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3}
.split-media img{width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-o)}
.split-media:hover img{transform:scale(1.045)}
@media (max-width:900px){
  .split{grid-template-columns:1fr}
  .split.rev .split-media{order:0}
}

.pull{
  border-left:3px solid var(--red); padding:4px 0 4px 20px; margin:26px 0 0;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:clamp(1.05rem,1.7vw,1.3rem);
  line-height:1.3; letter-spacing:-.01em;
}
.s-dark .pull{color:var(--txt-l)}

/* --------------------------------------------- 12. SHOWCASE STICKY (procédé) */
.show{display:grid; grid-template-columns:.94fr 1.06fr; gap:clamp(32px,5vw,72px); align-items:start}
.show-vis{
  position:sticky; top:118px; aspect-ratio:1/1; border-radius:var(--r-lg); overflow:hidden;
  background:var(--ink-2); box-shadow:0 30px 70px -40px rgba(0,0,0,.4);
}
.show-panel{position:absolute; inset:0; opacity:0; transform:scale(1.05); transition:opacity .7s var(--ease), transform 1.1s var(--ease-o)}
.show-panel.on{opacity:1; transform:none}
.show-panel img{width:100%; height:100%; object-fit:cover}
.show-panel::after{content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(8,8,10,.55),transparent 45%)}
.show-panel b{
  position:absolute; left:22px; bottom:20px; z-index:2; color:#fff;
  font-family:'Archivo',sans-serif; font-weight:800; font-size:1.02rem; letter-spacing:-.01em;
  opacity:0; transition:opacity .22s var(--ease);   /* évite 2 libellés superposés pendant le fondu */
}
.show-panel.on b{opacity:1; transition-delay:.28s}
.show-steps{display:grid}
.show-step{
  padding-block:clamp(40px,7vh,74px); border-top:1px solid var(--line-l);
  opacity:.34; transition:opacity .5s var(--ease);
}
.show-step:first-child{border-top:0; padding-top:0}
.show-step.on{opacity:1}
.show-step .num{
  display:inline-block; margin-bottom:12px; font-size:.74rem; opacity:1;
  color:var(--red-d); letter-spacing:.18em;
}
.show-step h3{margin-bottom:10px}
.show-step p{font-size:.97rem; max-width:52ch}
@media (max-width:900px){
  .show{grid-template-columns:1fr; gap:26px}
  .show-vis{position:sticky; top:78px; aspect-ratio:16/10; z-index:5}
  .show-step{opacity:1; padding-block:28px}
}

/* --------------------------------------------------- 13. TABLEAU COMPARATIF */
.tbl-scroll{overflow-x:auto; -webkit-overflow-scrolling:touch; margin-inline:calc(var(--pad) * -1); padding-inline:var(--pad)}
.tbl{width:100%; min-width:760px; border-collapse:separate; border-spacing:0; font-size:.9rem}
.tbl th,.tbl td{padding:15px 16px; text-align:left; border-bottom:1px solid var(--line-d); vertical-align:top}
.tbl thead th{
  font-family:'Archivo',sans-serif; font-weight:700; font-size:.82rem; letter-spacing:.02em;
  color:var(--txt-l); border-bottom-color:var(--line-d-2); white-space:nowrap;
}
.tbl tbody th{font-weight:600; color:var(--txt-l-mut); font-size:.85rem; white-space:nowrap}
.tbl td{color:var(--txt-l-mut)}
.tbl .col-hi{background:rgba(224,31,38,.07); position:relative}
.tbl thead .col-hi{
  background:rgba(224,31,38,.16); border-radius:12px 12px 0 0;
  color:var(--txt-l); box-shadow:inset 0 3px 0 var(--red);
}
.tbl thead .col-hi span{
  display:block; font-size:.65rem; letter-spacing:.14em; text-transform:uppercase;
  font-family:'DM Sans',sans-serif; font-weight:700; margin-top:4px; color:#FF6B6F;
}
.tbl tbody .col-hi{color:var(--txt-l); font-weight:600}
.tbl tr:last-child td,.tbl tr:last-child th{border-bottom:0}
.tbl tbody tr:last-child .col-hi{border-radius:0 0 12px 12px}
.tbl-note{font-size:.76rem; color:#6E6E79; margin-top:16px; line-height:1.55}

/* -------------------------------------------------------------- 14. PPF */
.zones{display:grid; grid-template-columns:repeat(auto-fit,minmax(215px,1fr)); gap:12px; margin-top:32px}
.zone{
  padding:20px; border-radius:var(--r); border:1px solid var(--line-l); background:#fff;
  transition:transform .35s var(--ease-o), box-shadow .35s var(--ease), border-color .25s;
}
.zone:hover{transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(0,0,0,.28); border-color:#BFB8A8}
.zone-h{display:flex; align-items:center; gap:10px; margin-bottom:9px}
.zone-h b{font-family:'Archivo',sans-serif; font-weight:700; font-size:1rem}
.zone-ic{width:32px; height:32px; flex:none; border-radius:9px; background:var(--paper-2); display:grid; place-items:center}
.zone-ic svg{width:17px; height:17px; stroke:#5B5B66}
.zone p{font-size:.87rem; margin:0; line-height:1.5}

/* ------------------------------------------------------------ 15. GALERIE */
.gal{columns:3; column-gap:14px}
@media (max-width:900px){ .gal{columns:2} }
@media (max-width:520px){ .gal{columns:1} }
.gal figure{
  break-inside:avoid; margin:0 0 14px; border-radius:var(--r); overflow:hidden;
  position:relative; background:var(--ink-2);
}
.gal img{width:100%; height:auto; transition:transform 1s var(--ease-o), filter .5s}
.gal figure::after{
  content:''; position:absolute; inset:0; background:rgba(8,8,10,.34);
  opacity:1; transition:opacity .45s var(--ease);
}
.gal figure:hover::after{opacity:0}
.gal figure:hover img{transform:scale(1.055)}
.gal figcaption{
  position:absolute; left:15px; bottom:13px; z-index:2; font-size:.78rem; font-weight:600;
  color:#fff; letter-spacing:.02em; opacity:0; transform:translateY(8px);
  transition:.45s var(--ease-o); text-shadow:0 2px 12px rgba(0,0,0,.8);
}
.gal figure:hover figcaption{opacity:1; transform:none}

/* ------------------------------------------------ 16b. PREUVES / LABO */
.proofs{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line-l); border:1px solid var(--line-l);
  border-radius:var(--r-lg); overflow:hidden;
}
@media (max-width:900px){ .proofs{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .proofs{grid-template-columns:1fr} }
.proof{
  background:#fff; padding:clamp(24px,3vw,32px);
  display:flex; flex-direction:column; transition:background .3s;
}
.proof:hover{background:#FCFBFA}
.proof-n{
  font-family:'Archivo',sans-serif; font-weight:800;
  font-variation-settings:'wdth' var(--wdth); font-stretch:118%;
  font-size:clamp(1.9rem,3.2vw,2.6rem); line-height:1; letter-spacing:-.03em;
  color:var(--red-d); margin-bottom:14px; display:block;
}
.proof-n small{font-size:.36em; font-weight:700; letter-spacing:.06em; color:var(--txt-d-mut); margin-left:.25em}
.proof h3{font-size:1.02rem; margin-bottom:8px}
.proof p{font-size:.89rem; margin:0 0 16px; line-height:1.55}
.proof-src{
  margin-top:auto; font-size:.68rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:#9A948A;
  padding-top:12px; border-top:1px solid var(--line-l);
}

.proof-cta{
  margin-top:clamp(24px,3vw,34px); padding:clamp(24px,3.2vw,36px);
  border-radius:var(--r-lg); background:var(--paper-2); border:1px solid var(--line-l);
  display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
}
.proof-cta > div{flex:1 1 380px}
.proof-cta h3{margin-bottom:8px}
.proof-cta p{font-size:.93rem; margin:0; max-width:62ch}
.proof-cta .btn{flex:none}

/* -------------------------------------------------------- 16. TÉMOIGNAGES
   (gabarit conservé : il resservira quand Josée fournira de vrais avis Google
    avec de vraies photos de véhicules traités) */
.temos{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,2.4vw,26px)}
@media (max-width:900px){ .temos{grid-template-columns:1fr} }
.temo{display:flex; flex-direction:column}
.temo-img{border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; margin-bottom:18px; background:var(--paper-2)}
.temo-img img{width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease-o)}
.temo:hover .temo-img img{transform:scale(1.04)}
.temo-stars{display:flex; gap:2px; margin-bottom:10px}
.temo-stars svg{width:15px; height:15px; fill:#C9A227}
.temo blockquote{
  margin:0 0 14px; font-family:'Archivo',sans-serif; font-weight:600; font-size:1.02rem;
  line-height:1.42; letter-spacing:-.01em; color:var(--txt-d);
}
.temo cite{font-style:normal; font-size:.85rem; color:var(--txt-d-mut); line-height:1.45; display:block}
.temo cite b{display:block; color:var(--txt-d); font-weight:700; font-size:.92rem; margin-bottom:1px}

/* --------------------------------------------------------- 17. GARANTIES */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:1px; background:var(--line-d); border:1px solid var(--line-d); border-radius:var(--r-lg); overflow:hidden}
.card{background:var(--ink-2); padding:clamp(24px,3vw,32px); transition:background .35s}
.card:hover{background:var(--ink-3)}
.card:hover .card-ic{border-color:var(--red); background:var(--red-lo)}
.card-ic{transition:border-color .3s, background .3s}
.card-ic{
  width:42px; height:42px; border-radius:11px; display:grid; place-items:center; margin-bottom:16px;
  border:1px solid var(--line-d-2); background:rgba(255,255,255,.045);
}
.card-ic svg{width:20px; height:20px; stroke:#D6DEE8}
.card h3{font-size:1.05rem; margin-bottom:8px}
.card p{font-size:.9rem; margin:0}

/* ------------------------------------------------------------- 18. FAQ */
.faq{max-width:830px; margin-inline:auto}
.faq-i{border-bottom:1px solid var(--line-l)}
.faq-q{
  width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:20px;
  padding:22px 0; text-align:left;
  font-family:'Archivo',sans-serif; font-weight:700; font-size:clamp(1rem,1.5vw,1.12rem);
  line-height:1.35; letter-spacing:-.01em; color:var(--txt-d);
}
.faq-q:hover{color:var(--red-d)}
.faq-ic{flex:none; width:22px; height:22px; margin-top:2px; position:relative}
.faq-ic::before,.faq-ic::after{
  content:''; position:absolute; top:50%; left:50%; width:14px; height:1.6px;
  background:currentColor; transform:translate(-50%,-50%); transition:transform .4s var(--ease-o);
}
.faq-ic::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq-i.open .faq-ic::after{transform:translate(-50%,-50%) rotate(0)}
.faq-a{max-height:0; overflow:hidden; transition:max-height .5s var(--ease-o)}
.faq-a p{padding-bottom:22px; font-size:.96rem; max-width:70ch; margin:0}

/* -------------------------------------------------------- 19. CTA FINALE */
.cta-final{position:relative; overflow:hidden}
.cta-glow{
  position:absolute; top:-38%; left:50%; transform:translateX(-50%);
  width:min(1000px,120vw); aspect-ratio:1; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle,rgba(224,31,38,.16),transparent 62%);
}
.cta-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(32px,5vw,64px); align-items:center}
@media (max-width:900px){ .cta-grid{grid-template-columns:1fr} }
.info-list{list-style:none; padding:0; margin:0; display:grid; gap:16px}
.info-list li{display:flex; gap:13px; align-items:flex-start; font-size:.95rem}
.info-list svg{flex:none; margin-top:3px; stroke:var(--red); width:18px; height:18px}
.info-list b{display:block; color:var(--txt-l); font-weight:600; margin-bottom:1px}
.info-list span{color:var(--txt-l-mut)}

/* ---------------------------------------------------------- 20. FOOTER */
.foot{border-top:1px solid var(--line-d); padding-block:34px; background:var(--ink)}
.foot-in{display:flex; flex-wrap:wrap; gap:18px 32px; align-items:center; justify-content:space-between}
.foot small{color:#5E5E69; font-size:.79rem; line-height:1.6}
.foot-links{display:flex; gap:22px; font-size:.82rem; color:var(--txt-l-mut)}
.foot-links a:hover{color:var(--txt-l)}

/* ------------------------------------------------- 21. BARRE MOBILE FIXE */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:70; display:none;
  padding:11px 14px calc(11px + env(safe-area-inset-bottom));
  background:rgba(8,8,10,.9); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border-top:1px solid var(--line-d); gap:9px;
}
.mobile-cta .btn{flex:1; padding:.95em 1em; font-size:.88rem}
.mobile-cta .btn-g{flex:0 0 52px; padding:0}
@media (max-width:760px){ .mobile-cta{display:flex} body{padding-bottom:74px} }

/* ------------------------------------------------------- 22. REVEAL / A11Y */
[data-reveal]{opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .9s var(--ease-o)}
[data-reveal].in{opacity:1; transform:none}
.no-js [data-reveal]{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1; transform:none; transition:none}
  .split-media img,.gal img,.temo-img img{transition:none}
}
:focus-visible{outline:2px solid var(--red); outline-offset:3px; border-radius:4px}
.sr{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:12px; z-index:200; padding:.7em 1.2em; background:var(--txt-l); color:var(--ink); border-radius:8px; font-weight:700}
.skip:focus{left:12px}
