/* ==========================================================================
   AG Garage Mecan'Auto — feuille de style
   Direction artistique : noir carbone, rouge signature, argent. Concept
   « la ligne rouge » : un filet rouge guide le visiteur d'une section à l'autre.
   ========================================================================== */

/* 1. Polices (auto-hébergées, licence OFL — voir assets/fonts) ---------- */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/barlow-condensed-500.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-condensed-600.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/barlow-condensed-700.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/barlow-400.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/barlow-400-italic.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/barlow-500.woff2") format("woff2")}
@font-face{font-family:"Barlow";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-600.woff2") format("woff2")}

/* 2. Jetons ------------------------------------------------------------- */
:root{
  --noir:#0b0c0e;
  --carbone:#101114;
  --anthracite:#1c1f24;
  --graphite:#2a2e35;
  --acier:#3b4049;
  --rouge:#e31b23;
  --rouge-profond:#b8151b;
  --rouge-clair:#ff4a52;
  --argent:#c4c7cc;
  --argent-clair:#e6e8eb;
  --blanc:#f5f6f7;
  --blanc-pur:#ffffff;
  --gris-technique:#737982;
  --encre:#15171b;
  --encre-douce:#4a505a;

  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --texte:"Barlow","Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --gouttiere:clamp(1.25rem,4vw,3rem);
  --conteneur:1200px;
  --conteneur-large:1400px;
  --section:clamp(4.5rem,10vw,8.5rem);
  --rayon:4px;

  --duree:.6s;
  --courbe:cubic-bezier(.22,.61,.36,1);
  --header-h:84px;
}

/* 3. Base --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:var(--header-h);overflow-x:hidden;overflow-x:clip}
body{margin:0;font-family:var(--texte);font-size:1.0625rem;line-height:1.6;color:var(--encre);background:var(--blanc);overflow-x:hidden;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
[hidden]{display:none!important}
img{height:auto}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:none}
p{margin:0 0 1.1em}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
address{font-style:normal}
:focus-visible{outline:3px solid var(--rouge);outline-offset:3px}
.sombre :focus-visible,.header :focus-visible,.menu :focus-visible{outline-color:var(--blanc)}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:1rem;top:-4rem;z-index:200;background:var(--rouge);color:#fff;padding:.6rem 1rem;font-weight:600;border-radius:var(--rayon)}
.skip:focus{top:1rem}
::selection{background:var(--rouge);color:#fff}

/* 4. Typographie -------------------------------------------------------- */
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:.98;letter-spacing:-.005em;margin:0 0 .5em;text-transform:uppercase;text-wrap:balance}
h1{font-size:clamp(2.6rem,7vw,5.4rem)}
h2{font-size:clamp(2.1rem,4.6vw,3.6rem)}
h3{font-size:clamp(1.45rem,2.4vw,1.9rem);font-weight:600;letter-spacing:.01em}
h4{font-size:1.2rem;font-weight:600;letter-spacing:.02em}
.surtitre{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--texte);font-weight:600;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge);margin:0 0 1.1rem}
.surtitre::before{content:"";width:2.2rem;height:2px;background:var(--rouge);flex:none}
.sombre .surtitre,.anthracite .surtitre{color:var(--rouge-clair)}
.sombre .surtitre::before,.anthracite .surtitre::before{background:var(--rouge-clair)}
.chapeau{font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.55;color:var(--encre-douce);max-width:62ch}
.sombre .chapeau,.anthracite .chapeau{color:var(--argent)}
.texte{max-width:64ch}
.texte p:last-child{margin-bottom:0}
.sombre{background:var(--carbone);color:var(--blanc)}
.sombre p{color:#d6d9de}
.anthracite{background:var(--anthracite);color:var(--blanc)}
.anthracite p{color:#d6d9de}
.clair{background:var(--blanc)}
.blanc{background:var(--blanc-pur)}
.accent{color:var(--rouge)}
.sombre .accent{color:var(--rouge-clair)}
strong{font-weight:600}
.liste-coche li{position:relative;padding-left:1.7rem;margin:0 0 .55rem}
.liste-coche li::before{content:"";position:absolute;left:0;top:.62em;width:.85rem;height:2px;background:var(--rouge)}

/* 5. Mise en page ------------------------------------------------------- */
.conteneur{width:min(100% - 2*var(--gouttiere),var(--conteneur));margin-inline:auto}
.conteneur--large{width:min(100% - 2*var(--gouttiere),var(--conteneur-large))}
.section{padding-block:var(--section)}
.section--serree{padding-block:clamp(3rem,7vw,5.5rem)}
.entete-section{max-width:46rem;margin-bottom:clamp(2.2rem,5vw,3.6rem)}
.entete-section--centre{margin-inline:auto;text-align:center}
.entete-section--centre .surtitre{justify-content:center}
.entete-section h2{margin-bottom:.45em}
.grille-2{display:grid;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media(min-width:900px){.grille-2{grid-template-columns:1fr 1fr}.grille-2--texte-large{grid-template-columns:1.15fr .85fr}.grille-2--image-large{grid-template-columns:1.15fr .85fr}}
.grille-3{display:grid;gap:1.5rem}
@media(min-width:700px){.grille-3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grille-3{grid-template-columns:repeat(3,1fr)}}
.grille-4{display:grid;gap:1.25rem}
@media(min-width:600px){.grille-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grille-4{grid-template-columns:repeat(4,1fr)}}

/* 6. Boutons ------------------------------------------------------------ */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3.25rem;padding:.8rem 1.6rem;font-family:var(--display);font-weight:600;font-size:1.05rem;letter-spacing:.09em;text-transform:uppercase;line-height:1;border-radius:var(--rayon);border:2px solid transparent;transition:transform .25s var(--courbe),background-color .25s,border-color .25s,color .25s,box-shadow .25s;overflow:hidden;isolation:isolate}
.btn svg{width:1.1em;height:1.1em;flex:none;transition:transform .3s var(--courbe)}
.btn:hover svg,.btn:focus-visible svg{transform:translateX(3px)}
.btn--rouge{background:var(--rouge);color:#fff;border-color:var(--rouge)}
.btn--rouge::after{content:"";position:absolute;inset:0;background:var(--rouge-profond);transform:translateX(-101%);transition:transform .35s var(--courbe);z-index:-1}
.btn--rouge:hover::after,.btn--rouge:focus-visible::after{transform:translateX(0)}
.btn--rouge:hover{box-shadow:0 10px 24px -10px rgba(227,27,35,.6)}
.btn--contour{background:transparent;color:var(--encre);border-color:currentColor}
.btn--contour:hover,.btn--contour:focus-visible{background:var(--encre);color:#fff;border-color:var(--encre)}
.sombre .btn--contour,.btn--contour.btn--sur-sombre{color:#fff}
.sombre .btn--contour:hover,.btn--contour.btn--sur-sombre:hover,.sombre .btn--contour:focus-visible{background:#fff;color:var(--carbone);border-color:#fff}
.btn--lien{min-height:0;padding:0;border:0;border-radius:0;font-family:var(--texte);font-size:.95rem;letter-spacing:.1em;color:var(--rouge);gap:.45rem}
.btn--lien::after{content:"";position:absolute;left:0;bottom:-3px;width:100%;height:2px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .3s var(--courbe)}
.btn--lien:hover::after,.btn--lien:focus-visible::after{transform:scaleX(1)}
.sombre .btn--lien{color:var(--rouge-clair)}
.btn:active{transform:translateY(1px)}
.groupe-btn{display:flex;flex-wrap:wrap;gap:.9rem 1.1rem;align-items:center}
.tel{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:600;font-size:1.3rem;letter-spacing:.06em;white-space:nowrap}
.tel svg{width:1.15em;height:1.15em;color:var(--rouge)}
.tel:hover{color:var(--rouge)}

/* 7. En-tête & navigation ----------------------------------------------- */
.header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);display:flex;align-items:center;color:#fff;transition:background-color .4s,box-shadow .4s,height .4s}
.header::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,12,14,.72),rgba(11,12,14,0));pointer-events:none;transition:opacity .4s}
.header--fixe,.header--page{background:rgba(16,17,20,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 0 rgba(255,255,255,.06),0 10px 30px -20px rgba(0,0,0,.8)}
.header--fixe::before,.header--page::before{opacity:0}
.header--fixe{height:70px}
.header--cache{transform:translateY(-100%)}
.header{transition:background-color .4s,box-shadow .4s,height .4s,transform .45s var(--courbe)}
.header .conteneur--large{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;position:relative}
.marque{display:flex;align-items:center;gap:.8rem;min-width:0}
.marque img{width:54px;height:54px;flex:none;transition:width .4s,height .4s}
.header--fixe .marque img{width:46px;height:46px}
.marque__nom{display:flex;flex-direction:column;line-height:1;font-family:var(--display);text-transform:uppercase}
.marque__nom b{font-weight:700;font-size:1.35rem;letter-spacing:.04em}
.marque__nom span{font-weight:500;font-size:.78rem;letter-spacing:.2em;color:var(--argent);margin-top:.2rem}
.nav{display:none;align-items:center;gap:1.9rem}
.nav a{position:relative;font-weight:500;font-size:.95rem;letter-spacing:.04em;padding:.4rem 0;color:#fff;opacity:.9}
.nav a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--rouge);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--courbe)}
.nav a:hover::after,.nav a:focus-visible::after,.nav a[aria-current="page"]::after{transform:scaleX(1);transform-origin:left}
.nav a[aria-current="page"]{opacity:1}
.header__actions{display:none;align-items:center;gap:1.4rem}
.header__actions .tel{font-size:1.1rem}
.header__actions .btn{min-height:2.8rem;padding:.6rem 1.2rem;font-size:.95rem}
@media(min-width:1080px){.nav,.header__actions{display:flex}}
.burger{position:relative;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;margin-right:-.5rem}
.burger span{position:relative;display:block;width:24px;height:2px;background:#fff;transition:transform .35s var(--courbe),background .2s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:24px;height:2px;background:#fff;transition:transform .35s var(--courbe),top .35s}
.burger span::before{top:-8px}.burger span::after{top:8px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}
@media(min-width:1080px){.burger{display:none}}
.menu{position:fixed;inset:0;z-index:99;background:var(--carbone);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--header-h) + 1rem) var(--gouttiere) 2rem;transform:translateY(-100%);visibility:hidden;transition:transform .5s var(--courbe),visibility 0s .5s;overflow-y:auto}
.menu[data-ouvert="true"]{transform:translateY(0);visibility:visible;transition:transform .5s var(--courbe),visibility 0s}
.menu::before{content:"";position:absolute;left:var(--gouttiere);top:calc(var(--header-h) + .5rem);width:3rem;height:2px;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform .5s .3s var(--courbe)}
.menu[data-ouvert="true"]::before{transform:scaleX(1)}
.menu ul{display:flex;flex-direction:column;gap:.2rem;margin-bottom:2rem}
.menu li{opacity:0;transform:translateY(14px);transition:opacity .4s var(--courbe),transform .4s var(--courbe)}
.menu[data-ouvert="true"] li{opacity:1;transform:none}
.menu[data-ouvert="true"] li:nth-child(1){transition-delay:.12s}.menu[data-ouvert="true"] li:nth-child(2){transition-delay:.17s}.menu[data-ouvert="true"] li:nth-child(3){transition-delay:.22s}.menu[data-ouvert="true"] li:nth-child(4){transition-delay:.27s}.menu[data-ouvert="true"] li:nth-child(5){transition-delay:.32s}.menu[data-ouvert="true"] li:nth-child(6){transition-delay:.37s}
.menu a.menu__lien{display:flex;align-items:baseline;gap:1rem;font-family:var(--display);font-weight:600;font-size:clamp(2rem,8vw,3rem);text-transform:uppercase;line-height:1.1;padding:.35rem 0}
.menu a.menu__lien small{font-family:var(--texte);font-size:.8rem;letter-spacing:.14em;color:var(--gris-technique);font-weight:600}
.menu a.menu__lien[aria-current="page"]{color:var(--rouge-clair)}
.menu__pied{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;align-items:center;border-top:1px solid rgba(255,255,255,.1);padding-top:1.5rem;opacity:0;transition:opacity .4s .4s}
.menu[data-ouvert="true"] .menu__pied{opacity:1}
.menu__pied address{color:var(--argent);font-size:.95rem}
body.menu-ouvert{overflow:hidden}

/* 8. Hero --------------------------------------------------------------- */
.hero{position:relative;display:grid;align-items:end;min-height:min(100svh,920px);color:#fff;background:var(--carbone);isolation:isolate;overflow:hidden}
.hero--page{min-height:min(72svh,680px);align-items:end}
.hero__fond{position:absolute;inset:0;z-index:-2}
.hero__fond img{width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero__fond::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(11,12,14,.93) 0%,rgba(11,12,14,.78) 34%,rgba(11,12,14,.28) 68%,rgba(11,12,14,.12) 100%),
  linear-gradient(0deg,rgba(11,12,14,.9) 0%,rgba(11,12,14,.25) 40%,rgba(11,12,14,0) 70%),
  linear-gradient(180deg,rgba(11,12,14,.55) 0%,rgba(11,12,14,0) 30%)}
.hero--page .hero__fond::after{background:
  linear-gradient(90deg,rgba(11,12,14,.9) 0%,rgba(11,12,14,.7) 40%,rgba(11,12,14,.3) 80%),
  linear-gradient(0deg,rgba(11,12,14,.85) 0%,rgba(11,12,14,.1) 50%),
  linear-gradient(180deg,rgba(11,12,14,.6) 0%,rgba(11,12,14,0) 35%)}
.hero__contenu{position:relative;padding-top:calc(var(--header-h) + 3rem);padding-bottom:clamp(3.5rem,8vw,6rem);max-width:52rem}
.hero--page .hero__contenu{padding-bottom:clamp(2.5rem,6vw,4rem);max-width:48rem}
.hero__ligne{display:block;width:5.5rem;height:3px;background:var(--rouge);margin-bottom:1.4rem;transform-origin:left}
.hero__surtitre{display:block;font-weight:600;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--argent);margin-bottom:1rem}
.hero h1{font-size:clamp(2.7rem,7.6vw,5.9rem);line-height:.95;margin-bottom:.4em}
.hero h1 em{font-style:normal;color:var(--rouge-clair)}
.hero--page h1{font-size:clamp(2.5rem,6.2vw,4.8rem)}
.hero__texte{font-size:clamp(1.05rem,1.5vw,1.25rem);color:#d6d9de;max-width:38rem;margin-bottom:1.8rem;line-height:1.55}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center}
.hero__actions .tel{color:#fff}
.hero__bandeau{position:relative;border-top:1px solid rgba(255,255,255,.14);background:rgba(11,12,14,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero__bandeau ul{display:flex;flex-wrap:wrap;justify-content:center;gap:0 clamp(1.2rem,4vw,3rem);padding:.9rem var(--gouttiere)}
.hero__bandeau li{font-family:var(--display);font-weight:600;letter-spacing:.2em;font-size:clamp(.85rem,1.5vw,1.05rem);text-transform:uppercase;color:var(--argent-clair);position:relative;padding:.3rem 0}
.hero__bandeau li+li::before{content:"";position:absolute;left:calc(-1*clamp(.6rem,2vw,1.5rem));top:50%;width:2px;height:1.1em;background:var(--rouge);transform:translateY(-50%)}
@media(max-width:520px){.hero__bandeau li+li::before{display:none}.hero__bandeau ul{gap:.2rem 1.2rem}}
.defiler{position:absolute;right:var(--gouttiere);bottom:4.4rem;display:none;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--argent)}
.defiler i{display:block;width:1px;height:3.2rem;background:linear-gradient(180deg,var(--rouge),rgba(255,255,255,0));animation:defiler 2.2s var(--courbe) infinite}
@media(min-width:900px){.defiler{display:flex}}
@keyframes defiler{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* Animation d'entrée (sans préchargement) */
.js .hero__ligne{animation:ligne .9s var(--courbe) .15s both}
.js .hero__surtitre{animation:monter .7s var(--courbe) .45s both}
.js .hero h1 .mot{display:inline-block;animation:mot .8s var(--courbe) both}
.js .hero h1 .mot:nth-child(1){animation-delay:.6s}.js .hero h1 .mot:nth-child(2){animation-delay:.68s}.js .hero h1 .mot:nth-child(3){animation-delay:.76s}.js .hero h1 .mot:nth-child(4){animation-delay:.84s}.js .hero h1 .mot:nth-child(5){animation-delay:.92s}.js .hero h1 .mot:nth-child(6){animation-delay:1s}.js .hero h1 .mot:nth-child(7){animation-delay:1.08s}.js .hero h1 .mot:nth-child(8){animation-delay:1.16s}.js .hero h1 .mot:nth-child(9){animation-delay:1.24s}.js .hero h1 .mot:nth-child(10){animation-delay:1.32s}.js .hero h1 .mot:nth-child(n+11){animation-delay:1.4s}
.js .hero__texte{animation:monter .8s var(--courbe) 1.2s both}
.js .hero__actions{animation:monter .8s var(--courbe) 1.4s both}
.js .hero__bandeau{animation:apparaitre 1s var(--courbe) 1.6s both}
.js .defiler{animation:apparaitre 1s 2s both}
.js .hero__fond img{animation:zoomer 7s var(--courbe) both}
@keyframes ligne{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes monter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes mot{from{opacity:0;transform:translateY(.45em) skewY(2deg)}to{opacity:1;transform:none}}
@keyframes apparaitre{from{opacity:0}to{opacity:1}}
@keyframes zoomer{from{transform:scale(1.07)}to{transform:scale(1)}}

/* 9. Sections de l'accueil --------------------------------------------- */
/* Nouvelle identité */
.identite{position:relative;overflow:hidden}
.identite::before{content:"";position:absolute;left:50%;top:0;width:1px;height:100%;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.08),rgba(255,255,255,0));display:none}
@media(min-width:900px){.identite::before{display:block}}
.identite__visuel{position:relative;display:grid;place-items:center;padding:1rem}
.identite__visuel::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,rgba(227,27,35,.28),rgba(227,27,35,0) 65%);filter:blur(8px)}
.identite__visuel img{position:relative;width:min(100%,420px);filter:drop-shadow(0 30px 40px rgba(0,0,0,.6))}
.identite__cover{position:relative;margin-top:1.5rem;border:1px solid rgba(255,255,255,.1);border-left:3px solid var(--rouge);overflow:hidden}
.identite__cover img{width:100%}
.identite__cover figcaption{position:absolute;left:0;bottom:0;padding:.4rem .8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--argent);background:rgba(11,12,14,.7)}
.valeurs{display:grid;gap:1rem;margin-top:2rem}
@media(min-width:560px){.valeurs{grid-template-columns:repeat(3,1fr)}}
.valeur{position:relative;padding:1.2rem 1.2rem 1.2rem 1.3rem;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);transition:border-color .3s,transform .3s var(--courbe)}
.valeur::before{content:"";position:absolute;left:-1px;top:1rem;bottom:1rem;width:3px;background:var(--rouge);transform:scaleY(.4);transform-origin:top;transition:transform .4s var(--courbe)}
.valeur:hover{border-color:rgba(255,255,255,.25);transform:translateY(-3px)}
.valeur:hover::before{transform:scaleY(1)}
.valeur h3{font-size:1.35rem;margin-bottom:.3rem}
.valeur p{font-size:.95rem;margin:0;color:var(--argent)}
.adresse-rappel{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.1);font-size:.95rem;color:var(--argent)}
.adresse-rappel b{color:#fff;font-weight:600}

/* Expertises + rail rouge */
.expertises{position:relative}
.rail{position:relative;display:grid;gap:1.5rem;margin-top:1rem}
@media(min-width:700px){.rail{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1100px){.rail{grid-template-columns:repeat(4,1fr);gap:1.4rem}}
.rail__ligne{position:absolute;left:0;right:0;top:-1.7rem;height:12px;display:none;pointer-events:none}
@media(min-width:1100px){.rail__ligne{display:block}}
.rail__ligne i{position:absolute;left:0;right:0;top:5px;height:2px;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform 1.4s var(--courbe)}
.est-visible .rail__ligne i{transform:scaleX(1)}
.rail__ligne span{position:absolute;top:0;width:12px;height:12px;border-radius:50%;background:var(--blanc);border:2px solid var(--rouge);transform:translateX(-50%) scale(0);transition:transform .4s var(--courbe)}
.rail__ligne span:nth-child(2){left:12.5%;transition-delay:.3s}.rail__ligne span:nth-child(3){left:37.5%;transition-delay:.6s}.rail__ligne span:nth-child(4){left:62.5%;transition-delay:.9s}.rail__ligne span:nth-child(5){left:87.5%;transition-delay:1.2s}
.est-visible .rail__ligne span{transform:translateX(-50%) scale(1)}
@keyframes tracer{to{stroke-dashoffset:0}}
.carte-expertise{position:relative;display:flex;flex-direction:column;background:var(--blanc-pur);border:1px solid #e1e4e8;overflow:hidden;transition:transform .45s var(--courbe),box-shadow .45s var(--courbe),border-color .3s;isolation:isolate}
.carte-expertise:hover,.carte-expertise:focus-within{transform:translateY(-6px);box-shadow:0 30px 50px -30px rgba(16,17,20,.45);border-color:#cfd3d8}
.carte-expertise__img{position:relative;aspect-ratio:4/3.1;}
@media(max-width:699px){.carte-expertise__img{aspect-ratio:16/9}}
.carte-expertise__img{overflow:hidden;background:var(--anthracite)}
.carte-expertise__img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--courbe),filter .6s}
.carte-expertise:hover .carte-expertise__img img{transform:scale(1.06)}
.carte-expertise__img::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(0deg,rgba(11,12,14,.75),rgba(11,12,14,0))}
.carte-expertise__num{position:absolute;left:1rem;top:1rem;z-index:1;font-family:var(--display);font-weight:600;font-size:.85rem;letter-spacing:.15em;color:#fff;background:rgba(11,12,14,.55);padding:.25rem .55rem;border-left:2px solid var(--rouge)}
.carte-expertise__corps{display:flex;flex-direction:column;flex:1;padding:1.4rem 1.4rem 1.5rem;gap:.6rem}
.carte-expertise h3{margin:0;font-size:1.5rem}
.carte-expertise p{margin:0;color:var(--encre-douce);font-size:.98rem;flex:1}
.carte-expertise .btn--lien{margin-top:.6rem;align-self:flex-start}
.carte-expertise > a::before{content:"";position:absolute;inset:0;z-index:2}
.carte-expertise__filet{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--courbe)}
.carte-expertise:hover .carte-expertise__filet,.carte-expertise:focus-within .carte-expertise__filet{transform:scaleX(1)}

/* Module véhicule interactif */
.vehicule{position:relative;overflow:hidden}
.vehicule::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 60%,rgba(227,27,35,.1),rgba(227,27,35,0) 70%);pointer-events:none}
.vehicule__grille{display:grid;gap:2rem;align-items:center}
@media(min-width:1000px){.vehicule__grille{grid-template-columns:1.35fr .85fr;gap:3rem}}
.vehicule__scene{position:relative}
.vehicule__scene svg{width:100%;height:auto;overflow:visible}
.vehicule__scene .carrosserie-trait{fill:none;stroke:var(--argent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .35s,filter .35s}
.vehicule__scene .carrosserie-fond{fill:rgba(255,255,255,.02);transition:fill .35s}
.vehicule__scene .vitre{fill:rgba(196,199,204,.08);stroke:var(--argent);stroke-width:1.6;transition:fill .35s,stroke .35s}
.vehicule__scene .roue{fill:var(--carbone);stroke:var(--argent);stroke-width:2.2;transition:stroke .35s,fill .35s}
.vehicule__scene .jante{fill:none;stroke:var(--gris-technique);stroke-width:1.4;transition:stroke .35s}
.vehicule__scene .detail{fill:none;stroke:var(--gris-technique);stroke-width:1.4;stroke-linecap:round}
.vehicule__scene .sol{stroke:rgba(255,255,255,.12);stroke-width:1;stroke-dasharray:4 8}
.vehicule__scene .moteur-bloc{fill:none;stroke:var(--gris-technique);stroke-width:1.4;stroke-dasharray:3 4;opacity:.7;transition:stroke .35s,opacity .35s}
.vehicule__scene .zone{fill:var(--rouge);opacity:0;transition:opacity .4s}
.vehicule__scene .trace{fill:none;stroke:var(--rouge);stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;transition:opacity .3s}
.vehicule__scene[data-actif="moteur"] .z-moteur,.vehicule__scene[data-actif="roues"] .z-roues,.vehicule__scene[data-actif="carrosserie"] .z-carrosserie,.vehicule__scene[data-actif="peinture"] .z-peinture,.vehicule__scene[data-actif="vitrage"] .z-vitrage{opacity:.22}
.vehicule__scene[data-actif="moteur"] .moteur-bloc{stroke:var(--rouge-clair);opacity:1}
.vehicule__scene[data-actif="roues"] .roue{stroke:var(--rouge-clair)}
.vehicule__scene[data-actif="roues"] .jante{stroke:var(--rouge-clair)}
.vehicule__scene[data-actif="carrosserie"] .carrosserie-trait{stroke:var(--rouge-clair);filter:drop-shadow(0 0 6px rgba(255,74,82,.5))}
.vehicule__scene[data-actif="peinture"] .carrosserie-fond{fill:rgba(227,27,35,.16)}
.vehicule__scene[data-actif="vitrage"] .vitre{fill:rgba(255,74,82,.22);stroke:var(--rouge-clair)}
.vehicule__scene .trace.est-actif{opacity:1;animation:tracer .7s var(--courbe) forwards}
.point{cursor:pointer}
.point circle.halo{fill:rgba(227,27,35,.25);transform-origin:center;transform-box:fill-box;animation:halo 2.4s ease-out infinite}
.point circle.coeur{fill:var(--rouge);stroke:#fff;stroke-width:2;transition:fill .3s,transform .3s var(--courbe);transform-origin:center;transform-box:fill-box}
.point:hover circle.coeur,.point:focus-visible circle.coeur,.point[aria-pressed="true"] circle.coeur{transform:scale(1.25);fill:var(--rouge-clair)}
.point:focus-visible{outline:none}
.point:focus-visible circle.coeur{stroke:var(--blanc);stroke-width:3}
.point text{font-family:var(--display);font-weight:600;font-size:15px;letter-spacing:.14em;fill:var(--argent-clair);text-transform:uppercase;pointer-events:none;transition:fill .3s}
.point[aria-pressed="true"] text{fill:#fff}
@media(max-width:620px){.point text{display:none}}
@keyframes halo{0%{transform:scale(.6);opacity:.9}70%{transform:scale(1.9);opacity:0}100%{transform:scale(1.9);opacity:0}}
.vehicule__panneau{position:relative;border:1px solid rgba(255,255,255,.12);background:rgba(28,31,36,.75);padding:clamp(1.4rem,3vw,2.2rem);min-height:17rem;display:flex;flex-direction:column;justify-content:center}
.vehicule__panneau::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--rouge)}
.vehicule__panneau [data-fiche]{display:none;animation:monter .45s var(--courbe)}
.vehicule__panneau [data-fiche].est-actif{display:block}
.vehicule__panneau .etiquette{display:inline-block;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rouge-clair);font-weight:600;margin-bottom:.6rem}
.vehicule__panneau h3{font-size:1.8rem;margin-bottom:.5rem}
.vehicule__panneau p{color:#d6d9de;margin-bottom:1rem}
.vehicule__panneau ul{display:flex;flex-wrap:wrap;gap:.4rem .5rem;margin-bottom:1.3rem}
.vehicule__panneau li{font-size:.85rem;padding:.3rem .65rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;color:var(--argent-clair)}
.vehicule__onglets{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}
.vehicule__onglets button{font-family:var(--display);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:.95rem;padding:.55rem .9rem;border:1px solid rgba(255,255,255,.18);color:var(--argent-clair);border-radius:var(--rayon);transition:background .3s,color .3s,border-color .3s}
.vehicule__onglets button[aria-pressed="true"]{background:var(--rouge);border-color:var(--rouge);color:#fff}
.vehicule__onglets button:hover{border-color:var(--rouge-clair)}
@media(min-width:1000px){.vehicule__onglets{display:none}}

/* Focus carrosserie / peinture : composition éditoriale */
.focus{position:relative}
@media(min-width:900px){.focus .grille-2{grid-template-columns:1.25fr .75fr;gap:clamp(2rem,4vw,4rem)}}
.focus__composition{position:relative;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:auto auto;gap:1rem;align-items:start}
.focus__img{position:relative;overflow:hidden;background:var(--anthracite)}
.focus__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--courbe)}
.focus__img:hover img{transform:scale(1.04)}
.focus__img--grande{grid-column:1/9;grid-row:1/3;aspect-ratio:4/3}
.focus__img--haut{grid-column:9/13;grid-row:1/2;aspect-ratio:1/1;clip-path:polygon(0 0,100% 0,100% 100%,0 84%)}
.focus__img--bas{grid-column:7/13;grid-row:2/3;aspect-ratio:5/3;align-self:end;transform:translateY(14%);box-shadow:-16px 16px 0 0 var(--rouge);z-index:1}
.cadre--decale::before{pointer-events:none}
@media(max-width:640px){.cadre--decale::before{display:none}}
@media(max-width:699px){.focus__composition{grid-template-columns:repeat(6,1fr)}.focus__img--grande{grid-column:1/7;grid-row:auto}.focus__img--haut{grid-column:1/4;grid-row:auto;clip-path:none}.focus__img--bas{grid-column:4/7;grid-row:auto;transform:none;box-shadow:-8px 8px 0 0 var(--rouge);align-self:start}}
.focus__legende{position:absolute;left:0;bottom:0;padding:.5rem .9rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(11,12,14,.65);border-left:2px solid var(--rouge)}
.etapes-peinture{display:grid;gap:1.2rem;margin-top:2rem}
@media(min-width:700px){.etapes-peinture{grid-template-columns:repeat(2,1fr)}}
.etape-peinture{display:flex;gap:1rem;align-items:flex-start}
.etape-peinture i{flex:none;width:2.4rem;height:2.4rem;display:grid;place-items:center;border:1px solid var(--rouge);color:var(--rouge);font-family:var(--display);font-weight:700;font-style:normal;font-size:1rem}
.etape-peinture h3{font-size:1.25rem;margin:.1rem 0 .25rem}
.etape-peinture p{margin:0;font-size:.95rem;color:var(--encre-douce)}

/* Parcours client : ligne verticale qui se remplit */
.parcours{position:relative}
.parcours__liste{position:relative;display:grid;gap:0;max-width:52rem;margin-inline:auto}
.parcours__liste::before{content:"";z-index:0;position:absolute;left:1.2rem;top:0;bottom:0;width:2px;background:rgba(255,255,255,.12)}
.parcours__liste::after{content:"";z-index:0;position:absolute;left:1.2rem;top:0;width:2px;height:var(--progression,0%);background:var(--rouge);transition:height .2s linear}
@media(min-width:800px){.parcours__liste::before,.parcours__liste::after{left:50%;transform:translateX(-50%)}}
.etape{position:relative;padding:1.4rem 0 1.4rem 3.6rem}
.etape__num{position:absolute;z-index:2;left:0;top:1.6rem;width:2.4rem;height:2.4rem;display:grid;place-items:center;border-radius:50%;background:var(--carbone);border:2px solid rgba(255,255,255,.25);font-family:var(--display);font-weight:700;font-size:1rem;color:var(--argent);transition:border-color .4s,color .4s,background .4s,box-shadow .4s}
.etape.est-visible .etape__num{border-color:var(--rouge);color:#fff;background:var(--rouge);box-shadow:0 0 0 6px #401e24}
.etape h3{font-size:1.5rem;margin-bottom:.3rem}
.etape p{margin:0;max-width:34rem}
@media(min-width:800px){
  .etape{width:50%;padding:1.4rem 3rem 1.4rem 0}
  .etape:nth-child(even){margin-left:50%;padding:1.4rem 0 1.4rem 3rem}
  .etape:nth-child(odd){text-align:right}
  .etape:nth-child(odd) p{margin-left:auto}
  .etape__num{left:auto;right:-1.2rem}
  .etape:nth-child(even) .etape__num{right:auto;left:-1.2rem}
}

/* Anthony Goetz */
.portrait{position:relative;max-width:520px;margin-inline:auto}
.portrait__cadre{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--graphite)}
.portrait__cadre img{width:100%;height:100%;object-fit:cover}
.portrait__cadre::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(11,12,14,.75),rgba(11,12,14,0) 55%);pointer-events:none}
.portrait__cadre::after{content:"";position:absolute;left:-1px;top:8%;bottom:8%;width:3px;background:var(--rouge)}
.portrait__logo{position:absolute;right:-1.2rem;bottom:2rem;width:clamp(96px,22%,140px);filter:drop-shadow(0 16px 24px rgba(0,0,0,.6))}
.portrait__tag{position:absolute;right:1rem;top:1rem;z-index:1;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--argent);background:rgba(11,12,14,.6);padding:.3rem .55rem}
.portrait__legende{position:absolute;left:1.2rem;bottom:1.2rem;right:30%;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--argent)}
.portrait__legende b{display:block;font-family:var(--display);font-size:1.6rem;letter-spacing:.03em;color:#fff;font-weight:700;margin-bottom:.15rem}
.citation{position:relative;margin:1.6rem 0 0;padding-left:1.4rem;border-left:3px solid var(--rouge);font-size:1.2rem;line-height:1.5;font-style:italic;color:#fff}
.citation cite{display:block;margin-top:.6rem;font-style:normal;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--argent)}
.engagements{display:grid;gap:.9rem;margin-top:1.8rem}
@media(min-width:560px){.engagements{grid-template-columns:repeat(2,1fr)}}
.engagement{display:flex;gap:.8rem;align-items:flex-start;font-size:.98rem;color:#d6d9de}
.engagement svg{flex:none;width:1.4rem;height:1.4rem;color:var(--rouge-clair);margin-top:.15rem}

/* Accès au garage */
.acces__carte{position:relative;background:var(--blanc-pur);border:1px solid #e1e4e8;padding:clamp(1.5rem,3vw,2.4rem);overflow:hidden}
.acces__carte::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--rouge),var(--rouge-profond))}
.acces__carte address{font-family:var(--display);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:600;line-height:1.1;text-transform:uppercase;margin:0 0 .4rem}
.acces__carte address span{display:block;font-family:var(--texte);font-size:.9rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris-technique);font-weight:600;margin-top:.4rem}
.acces__infos{display:grid;gap:1.2rem;margin:1.6rem 0;padding:1.2rem 0;border-top:1px solid #e1e4e8;border-bottom:1px solid #e1e4e8}
@media(min-width:560px){.acces__infos{grid-template-columns:1fr 1fr}}
.acces__infos h3{font-size:1rem;letter-spacing:.14em;color:var(--gris-technique);margin-bottom:.3rem}
.acces__infos p{margin:0;font-size:.98rem}
.communes{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}
.communes li{font-size:.85rem;padding:.3rem .7rem;background:var(--blanc);border:1px solid #e1e4e8;border-radius:999px;color:var(--encre-douce)}
.acces .grille-2{align-items:stretch}
.acces__photo{position:relative;overflow:hidden;min-height:320px;background:var(--anthracite);margin:0}
.acces__photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.acces__photo figcaption{position:absolute;left:0;bottom:0;right:0;padding:.6rem 1rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--argent);background:linear-gradient(0deg,rgba(11,12,14,.85),rgba(11,12,14,0))}
@media(min-width:900px){.acces__photo{clip-path:polygon(6% 0,100% 0,100% 100%,0 100%)}}

/* Bandeau CTA */
.cta{position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(227,27,35,.18),rgba(227,27,35,0) 50%),radial-gradient(circle at 85% 20%,rgba(255,255,255,.05),rgba(255,255,255,0) 40%)}
.cta .conteneur{position:relative;display:grid;gap:1.8rem;align-items:center}
@media(min-width:900px){.cta .conteneur{grid-template-columns:1.2fr .8fr}}
.cta h2{margin-bottom:.4rem}
.cta p{margin:0;color:var(--argent)}
.cta__actions{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;align-items:center;justify-self:start}
@media(min-width:900px){.cta__actions{justify-self:end;flex-direction:column;align-items:flex-end}}
.cta__actions .tel{font-size:1.8rem;color:#fff}

/* Pied de page */
.pied{background:var(--noir);color:var(--argent);font-size:.95rem;padding-block:3.5rem 2rem}
.pied__grille{display:grid;gap:2rem;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.1)}
@media(min-width:800px){.pied__grille{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.pied .marque{margin-bottom:1rem}
.pied__texte{max-width:34ch;color:var(--gris-technique)}
.pied h3{font-size:.85rem;letter-spacing:.18em;color:#fff;margin-bottom:1rem;font-family:var(--texte);font-weight:600}
.pied ul{display:grid;gap:.45rem}
.pied a{position:relative;transition:color .25s}
.pied a:hover{color:#fff}
.pied address{line-height:1.5}
.pied .tel{color:#fff;font-size:1.15rem;margin-top:.6rem}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;padding-top:1.5rem;font-size:.82rem;color:var(--gris-technique)}
.pied__bas a:hover{color:#fff}
.pied__legal{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem}

/* 10. Pages intérieures ------------------------------------------------- */
.intro{position:relative}
.intro__grille{display:grid;gap:2.5rem;align-items:start}
@media(min-width:900px){.intro__grille{grid-template-columns:1.1fr .9fr}}
.encart{position:relative;background:var(--blanc-pur);border:1px solid #e1e4e8;padding:1.6rem 1.6rem 1.6rem 1.9rem}
.encart::before{content:"";position:absolute;left:-1px;top:1.4rem;bottom:1.4rem;width:3px;background:var(--rouge)}
.encart h3{font-size:1.15rem;letter-spacing:.1em;margin-bottom:.8rem}
.encart ul{display:grid;gap:.5rem;font-size:.98rem}
.encart li{display:flex;gap:.7rem;align-items:flex-start}
.encart li svg{flex:none;width:1.1rem;height:1.1rem;color:var(--rouge);margin-top:.3rem}
.services{display:grid;gap:1.2rem}
@media(min-width:640px){.services{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.services{grid-template-columns:repeat(3,1fr)}}
.service{position:relative;background:var(--blanc-pur);border:1px solid #e1e4e8;padding:1.6rem 1.5rem 1.7rem;display:flex;flex-direction:column;gap:.7rem;transition:transform .4s var(--courbe),box-shadow .4s var(--courbe),border-color .3s;overflow:hidden}
.service::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--courbe)}
.service:hover{transform:translateY(-4px);box-shadow:0 26px 40px -30px rgba(16,17,20,.4);border-color:#cfd3d8}
.service:hover::after{transform:scaleX(1)}
.service__icone{width:2.8rem;height:2.8rem;display:grid;place-items:center;border:1px solid #e1e4e8;color:var(--rouge);background:var(--blanc)}
.service__icone svg{width:1.5rem;height:1.5rem}
.service h3{font-size:1.4rem;margin:0}
.service p{margin:0;color:var(--encre-douce);font-size:.97rem}
.service ul{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.4rem}
.service li{font-size:.78rem;letter-spacing:.04em;padding:.22rem .55rem;background:var(--blanc);border:1px solid #e1e4e8;color:var(--encre-douce)}
.sombre .service{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
.sombre .service p{color:#d6d9de}
.sombre .service__icone{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.15);color:var(--rouge-clair)}
.sombre .service li{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);color:var(--argent-clair)}
/* Image éditoriale avec cadre */
.cadre{position:relative;isolation:isolate}
.cadre__img{position:relative;overflow:hidden;background:var(--anthracite)}
.cadre__img img{width:100%;height:100%;object-fit:cover}
.cadre--decale::before{content:"";position:absolute;inset:1.4rem -1.4rem -1.4rem 1.4rem;border:1px solid var(--rouge);z-index:-1}
.cadre--sombre::before{border-color:rgba(255,255,255,.2)}
.cadre--liser .cadre__img::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--rouge)}
.cadre__badge{position:absolute;left:-1rem;bottom:1.6rem;background:var(--carbone);color:#fff;padding:.9rem 1.2rem;font-family:var(--display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:1.05rem;border-left:3px solid var(--rouge);max-width:70%}
.cadre__badge small{display:block;font-family:var(--texte);font-weight:600;font-size:.7rem;letter-spacing:.16em;color:var(--argent);margin-bottom:.2rem}
.cadre__legende{margin-top:.6rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-technique)}
.duo{display:grid;gap:1rem;grid-template-columns:1fr 1fr;align-items:end}
.duo .cadre__img:first-child{aspect-ratio:3/4}
.duo .cadre__img:last-child{aspect-ratio:1/1;margin-bottom:2.5rem}
/* Galerie en bande */
.bande{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:800px){.bande{grid-template-columns:repeat(4,1fr)}}
.bande figure{margin:0;position:relative;overflow:hidden;aspect-ratio:1/1;background:var(--anthracite)}
.bande figure:nth-child(2){aspect-ratio:4/5}
.bande figure:nth-child(3){aspect-ratio:4/5;margin-top:2rem}
.bande img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--courbe)}
.bande figure:hover img{transform:scale(1.05)}
.bande figcaption{position:absolute;left:0;bottom:0;padding:.5rem .8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:rgba(11,12,14,.65);border-left:2px solid var(--rouge)}
/* FAQ */
.faq{max-width:52rem;margin-inline:auto}
.faq details{border-top:1px solid #d9dce0}
.faq details:last-child{border-bottom:1px solid #d9dce0}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 0;font-family:var(--display);font-weight:600;font-size:1.3rem;text-transform:uppercase;letter-spacing:.02em;transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:.9rem;height:.9rem;border-right:2px solid var(--rouge);border-bottom:2px solid var(--rouge);transform:rotate(45deg);transition:transform .3s var(--courbe);margin-right:.3rem}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq summary:hover{color:var(--rouge)}
.faq .faq__corps{padding:0 0 1.4rem;color:var(--encre-douce);max-width:60ch}
.faq .faq__corps p:last-child{margin-bottom:0}
/* Bloc réassurance en bande */
.reperes{display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:900px){.reperes{grid-template-columns:repeat(4,1fr)}}
.repere{padding:1.3rem 1.2rem;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03)}
.repere b{display:block;font-family:var(--display);font-size:2.2rem;line-height:1;color:#fff;margin-bottom:.3rem;font-weight:700}
.repere span{font-size:.88rem;color:var(--argent)}
.repere i{display:block;width:2rem;height:2px;background:var(--rouge);margin-bottom:.8rem}
/* Split image/texte sur fond sombre (utilitaires) */
.split{display:grid;gap:0;background:var(--anthracite);color:#fff;overflow:hidden}
@media(min-width:900px){.split{grid-template-columns:1fr 1fr}}
.split__img{position:relative;min-height:320px}
.split__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split__img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(28,31,36,0) 60%,rgba(28,31,36,.9))}
@media(max-width:899px){.split__img::after{background:linear-gradient(0deg,rgba(28,31,36,.95),rgba(28,31,36,0) 60%)}}
.split__texte{padding:clamp(2.5rem,5vw,4.5rem) clamp(1.5rem,5vw,4rem);display:flex;flex-direction:column;justify-content:center}
.split__texte p{color:#d6d9de}

/* 11. Formulaire -------------------------------------------------------- */
.formulaire{background:var(--blanc-pur);border:1px solid #e1e4e8;padding:clamp(1.5rem,3.5vw,2.6rem);position:relative}
.formulaire::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--rouge)}
.champs{display:grid;gap:1.1rem}
@media(min-width:600px){.champs{grid-template-columns:1fr 1fr}.champ--large{grid-column:1/-1}}
.champ{display:flex;flex-direction:column;gap:.35rem}
.champ label{font-weight:600;font-size:.9rem;letter-spacing:.04em}
.champ label small{font-weight:400;color:var(--gris-technique);letter-spacing:0}
.champ input,.champ select,.champ textarea{font:inherit;font-size:1rem;color:var(--encre);background:var(--blanc);border:1px solid #cfd3d8;border-radius:var(--rayon);padding:.8rem .9rem;min-height:3rem;transition:border-color .25s,box-shadow .25s;width:100%}
.champ textarea{min-height:8rem;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--rouge);box-shadow:0 0 0 3px rgba(227,27,35,.18)}
.champ input:user-invalid,.champ select:user-invalid,.champ textarea:user-invalid{border-color:var(--rouge-profond)}
.champ select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23e31b23' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;padding-right:2.4rem}
.consentement{display:flex;gap:.7rem;align-items:flex-start;font-size:.9rem;color:var(--encre-douce)}
.consentement input{width:1.2rem;height:1.2rem;margin:.15rem 0 0;accent-color:var(--rouge);flex:none}
.consentement a{color:var(--rouge);text-decoration:underline;text-underline-offset:3px}
.formulaire__note{font-size:.88rem;color:var(--gris-technique);margin:0}
.note-demo{display:flex;gap:.6rem;align-items:flex-start;background:#fff6f6;border:1px dashed var(--rouge);padding:.8rem 1rem;font-size:.88rem;color:var(--encre-douce);margin-bottom:1.2rem}
.note-demo svg{flex:none;width:1.1rem;height:1.1rem;color:var(--rouge);margin-top:.15rem}
.erreur-formulaire{color:var(--rouge-profond);font-weight:600;font-size:.9rem;margin:0}
.coordonnees{display:grid;gap:1.4rem}
.coordonnee{display:flex;gap:1rem;align-items:flex-start}
.coordonnee svg{flex:none;width:1.4rem;height:1.4rem;color:var(--rouge);margin-top:.25rem}
.coordonnee h3{font-size:.85rem;letter-spacing:.16em;color:var(--gris-technique);margin-bottom:.25rem;font-family:var(--texte);font-weight:600}
.coordonnee p{margin:0}
.coordonnee .tel{font-size:1.5rem}

/* 12. Retour en haut, barre mobile -------------------------------------- */
.haut{position:fixed;right:max(1rem,env(safe-area-inset-right,0px));bottom:max(1.2rem,env(safe-area-inset-bottom,0px));z-index:90;width:52px;height:52px;border-radius:50%;background:rgba(16,17,20,.9);color:#fff;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(12px) scale(.9);transition:opacity .35s var(--courbe),transform .35s var(--courbe),visibility 0s .35s,background .25s;box-shadow:0 10px 24px -12px rgba(0,0,0,.7)}
.haut.est-visible{opacity:1;visibility:visible;transform:none;transition:opacity .35s var(--courbe),transform .35s var(--courbe),visibility 0s}
.haut:hover{background:var(--rouge)}
.haut svg{position:absolute;inset:0;width:100%;height:100%}
.haut circle{fill:none;stroke-width:2.5}
.haut .haut__fond{stroke:rgba(255,255,255,.15)}
.haut .haut__progression{stroke:var(--rouge);stroke-linecap:round;stroke-dasharray:150.8;stroke-dashoffset:calc(150.8 - 150.8*var(--defilement,0));transform:rotate(-90deg);transform-origin:center;transition:stroke .25s}
.haut:hover .haut__progression{stroke:#fff}
.haut .haut__fleche{position:relative;width:1.1rem;height:1.1rem}
@media(max-width:899px){.haut{bottom:calc(4.4rem + env(safe-area-inset-bottom,0px))}}
.barre-mobile{position:fixed;inset:auto 0 0 0;z-index:95;display:grid;grid-template-columns:1fr 1fr;background:rgba(16,17,20,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid rgba(255,255,255,.1);padding-bottom:env(safe-area-inset-bottom,0px);transform:translateY(100%);transition:transform .4s var(--courbe)}
.barre-mobile.est-visible{transform:none}
.barre-mobile a{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.4rem;font-family:var(--display);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.95rem;color:#fff}
.barre-mobile a svg{width:1.1rem;height:1.1rem}
.barre-mobile a:first-child{border-right:1px solid rgba(255,255,255,.12)}
.barre-mobile a:last-child{background:var(--rouge)}
@media(min-width:900px){.barre-mobile{display:none}}
@media(max-width:899px){body{padding-bottom:3.4rem}.pied{padding-bottom:3rem}}

/* 13. Révélations au défilement ---------------------------------------- */
.js .reveler{opacity:0;transform:translateY(26px);transition:opacity var(--duree) var(--courbe),transform var(--duree) var(--courbe)}
.js .reveler.est-visible{opacity:1;transform:none}
.js .reveler--gauche{transform:translateX(-24px)}
.js .reveler--droite{transform:translateX(24px)}
.js .reveler--fondu{transform:none}
.js .reveler--zoom{transform:scale(.96)}
.js [data-delai="1"]{transition-delay:.1s}.js [data-delai="2"]{transition-delay:.2s}.js [data-delai="3"]{transition-delay:.3s}.js [data-delai="4"]{transition-delay:.4s}.js [data-delai="5"]{transition-delay:.5s}
/* Rideau sur les images */
.js .rideau{position:relative;overflow:hidden}
.js .rideau::after{content:"";position:absolute;inset:0;background:var(--carbone);transform:scaleX(1);transform-origin:right;transition:transform .9s var(--courbe);z-index:3}
.js .rideau::before{content:"";position:absolute;inset:0;background:var(--rouge);transform:scaleX(1);transform-origin:right;transition:transform .9s .12s var(--courbe);z-index:4}
.js .rideau.est-visible::after,.js .rideau.est-visible::before{transform:scaleX(0)}
.js .rideau img{transform:scale(1.12);transition:transform 1.3s var(--courbe)}
.js .rideau.est-visible img{transform:scale(1)}
.js .rideau.focus__img:hover img{transform:scale(1.04)}

/* 14. Mouvement réduit ------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .js .reveler,.js .rideau img{opacity:1;transform:none}
  .js .rideau::before,.js .rideau::after{display:none}
  .defiler i{animation:none}
  .point circle.halo{animation:none;opacity:.3}
  .parcours__liste::after{height:100%}
  .est-visible .rail__ligne line{stroke-dashoffset:0;animation:none}
}

/* 15. Pages utilitaires ------------------------------------------------- */
.page-simple{padding-top:calc(var(--header-h) + clamp(2rem,6vw,4rem))}
.page-simple .texte{max-width:70ch}
.page-simple h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:2.2rem}
.page-simple h3{font-size:1.25rem;margin-top:1.6rem}
.page-simple table{border-collapse:collapse;width:100%;font-size:.95rem;margin:1rem 0}
.page-simple th,.page-simple td{text-align:left;padding:.6rem .8rem;border-bottom:1px solid #e1e4e8;vertical-align:top}
.page-simple th{font-weight:600;white-space:nowrap}
.page-simple td{overflow-wrap:anywhere}
@media(max-width:640px){.page-simple tr{display:block;padding:.5rem 0;border-bottom:1px solid #e1e4e8}.page-simple th,.page-simple td{display:block;border:0;padding:.15rem 0;white-space:normal}.page-simple th{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris-technique)}}
.a-confirmer{background:#fff3c4;color:#5c4300;padding:.05rem .35rem;font-size:.88em;font-weight:600;border-radius:3px}
.page-simple ul.liste{list-style:disc;padding-left:1.3rem}
.page-simple ul.liste li{margin-bottom:.4rem}
.page-404{min-height:100svh;display:grid;place-items:center;text-align:center;padding:calc(var(--header-h) + 2rem) var(--gouttiere) 4rem;position:relative;overflow:hidden}
.page-404::before{content:"404";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:700;font-size:clamp(14rem,40vw,30rem);color:rgba(255,255,255,.035);line-height:1;pointer-events:none}
.page-404 .hero__ligne{margin-inline:auto}
.page-404 h1{font-size:clamp(2.4rem,7vw,5rem)}
.page-404 p{color:var(--argent);max-width:40ch;margin-inline:auto}
.merci{min-height:80svh;display:grid;place-items:center;text-align:center;padding:calc(var(--header-h) + 2rem) var(--gouttiere) 4rem}
.merci .hero__ligne{margin-inline:auto}
.merci p{max-width:46ch;margin-inline:auto}
