/* =========================================================
   M.HORN — Couverture & Peinture — Val-de-Marne (94)
   Feuille de style unique. Aucune dépendance.
   ========================================================= */

/* ---------- 1. Jetons ---------- */
:root{
  --noir:#08090B;
  --noir-2:#0D0F13;
  --surface:#14171C;
  --surface-2:#1B1F26;
  --surface-3:#242931;
  --ligne:rgba(255,255,255,.085);
  --ligne-forte:rgba(255,255,255,.16);

  --rouge:#E30613;
  --rouge-vif:#FF2733;
  --rouge-sombre:#78040C;
  --rouge-halo:rgba(227,6,19,.42);

  --chrome-1:#FFFFFF;
  --chrome-2:#DCE1E7;
  --chrome-3:#96A0AB;
  --chrome-4:#525A64;

  --texte:#EEF1F4;
  --texte-2:#99A3AE;
  --texte-3:#6B747E;

  --metal:linear-gradient(178deg,#FFFFFF 0%,#E6EBF0 18%,#9AA4AF 42%,#F4F7FA 56%,#B4BDC6 74%,#6F7883 100%);
  --metal-sombre:linear-gradient(180deg,#2A2F36 0%,#171B20 60%,#0E1115 100%);

  --r-s:8px; --r-m:14px; --r-l:22px; --r-xl:32px;
  --wrap:1280px;
  --pad:clamp(18px,4vw,40px);
  --sect:clamp(64px,8vw,116px);

  --ombre:0 24px 70px rgba(0,0,0,.55);
  --ombre-rouge:0 12px 44px rgba(227,6,19,.28);

  --f-titre:"Saira Condensed",'Arial Narrow',sans-serif;
  --f-texte:"Barlow",system-ui,-apple-system,sans-serif;
  --f-util:"Barlow Semi Condensed","Barlow",sans-serif;

  --t:.42s cubic-bezier(.2,.7,.25,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--noir);color:var(--texte);
  font-family:var(--f-texte);font-size:16.5px;line-height:1.72;
  font-weight:400;letter-spacing:.005em;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(900px 620px at 12% -8%,rgba(227,6,19,.13),transparent 62%),
    radial-gradient(760px 520px at 92% 8%,rgba(120,140,170,.09),transparent 60%);
}
img{max-width:100%;display:block;border:0}
/* Garde-fou : une icône SVG sans largeur ni hauteur explicite prendrait
   la taille par défaut du navigateur (300 px). On la cale sur le texte.
   Toutes les règles de composants qui suivent restent prioritaires. */
svg{width:1.1em;height:1.1em;flex:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--rouge-vif);outline-offset:3px;border-radius:4px}
::selection{background:var(--rouge);color:#fff}

/* barre de défilement */
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-track{background:#0B0D10}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3A4149,#1B1F26);border-radius:9px;border:2px solid #0B0D10}
::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--rouge),var(--rouge-sombre))}

/* ---------- 2. Typographie ---------- */
h1,h2,h3,h4,.titre{
  font-family:var(--f-titre);font-weight:800;
  line-height:1.02;letter-spacing:-.005em;margin:0 0 .5em;
  text-transform:uppercase;
}
h1{font-size:clamp(2.5rem,6.4vw,5.1rem)}
h2{font-size:clamp(2rem,4.4vw,3.5rem)}
h3{font-size:clamp(1.3rem,2.1vw,1.72rem)}
h4{font-size:1.1rem;letter-spacing:.02em}
p{margin:0 0 1.1em}
.chrome{
  background:var(--metal);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 0 rgba(0,0,0,.55)) drop-shadow(0 0 22px rgba(190,205,220,.16));
}
.rouge{color:var(--rouge-vif);-webkit-text-fill-color:var(--rouge-vif);
  filter:drop-shadow(0 0 20px var(--rouge-halo))}
.lead{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--texte-2);max-width:64ch}
.mono{font-family:var(--f-util);font-variant-numeric:tabular-nums;letter-spacing:.04em}

/* ---------- 3. Grille ---------- */
.wrap{width:min(100% - var(--pad)*2,var(--wrap));margin-inline:auto;position:relative;z-index:1}
.sect{padding-block:var(--sect);position:relative}
.grid{display:grid;gap:clamp(16px,2vw,26px)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.g2,.g3,.g4{grid-template-columns:1fr}}

/* eyebrow / intitulé de section */
.eyebrow{
  display:inline-flex;align-items:center;gap:11px;
  font-family:var(--f-util);font-size:.79rem;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--rouge-vif);
  margin:0 0 16px;
}
.eyebrow::before{
  content:"";width:34px;height:2px;flex:none;
  background:linear-gradient(90deg,transparent,var(--rouge));
  box-shadow:0 0 12px var(--rouge-halo);
}
.tete{max-width:78ch;margin-bottom:clamp(30px,4vw,52px)}
.tete.centre{margin-inline:auto;text-align:center}
.tete.centre .eyebrow::after{content:"";width:34px;height:2px;background:linear-gradient(90deg,var(--rouge),transparent);box-shadow:0 0 12px var(--rouge-halo)}

/* ---------- 4. Boutons ---------- */
.btn{
  --bg:var(--surface-2);
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:11px;
  padding:15px 27px;border-radius:var(--r-s);border:1px solid var(--ligne-forte);
  background:var(--bg);color:var(--texte);
  font-family:var(--f-util);font-weight:600;font-size:1.03rem;
  letter-spacing:.07em;text-transform:uppercase;cursor:pointer;
  transition:transform var(--t),box-shadow var(--t),border-color var(--t),background var(--t);
  overflow:hidden;isolation:isolate;min-height:52px;
}
.btn::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.22) 46%,transparent 68%);
  transform:translateX(-120%);transition:transform .75s cubic-bezier(.3,.8,.3,1);
}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{transform:translateY(-3px)}
.btn svg{width:19px;height:19px;flex:none}

.btn--rouge{
  background:linear-gradient(165deg,#FF2733,#E30613 46%,#8E040C);
  border-color:rgba(255,90,90,.5);color:#fff;
  box-shadow:0 10px 30px rgba(227,6,19,.34),inset 0 1px 0 rgba(255,255,255,.35);
}
.btn--rouge:hover{box-shadow:0 18px 44px rgba(227,6,19,.5),inset 0 1px 0 rgba(255,255,255,.45)}
.btn--chrome{
  background:var(--metal);color:#0A0C0F;border-color:rgba(255,255,255,.6);
  text-shadow:0 1px 0 rgba(255,255,255,.5);
  box-shadow:0 10px 28px rgba(0,0,0,.5),inset 0 1px 0 #fff;
}
.btn--chrome:hover{box-shadow:0 18px 40px rgba(0,0,0,.6),inset 0 1px 0 #fff}
.btn--fant{background:rgba(255,255,255,.03);backdrop-filter:blur(8px)}
.btn--fant:hover{border-color:var(--rouge);box-shadow:0 0 0 1px var(--rouge-halo),0 14px 34px rgba(0,0,0,.5)}
.btn--bloc{width:100%}
.btn--grand{padding:19px 34px;font-size:1.1rem}

/* ---------- 5. Bandeau défilant ---------- */
.ticker{
  position:relative;z-index:60;background:linear-gradient(90deg,#0A0B0E,#171B21 30%,#171B21 70%,#0A0B0E);
  border-bottom:1px solid rgba(227,6,19,.3);overflow:hidden;
}
.ticker::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:linear-gradient(90deg,transparent,var(--rouge),transparent);
  animation:balayage 5.5s linear infinite;
}
@keyframes balayage{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.ticker__piste{display:flex;width:max-content;animation:defile 42s linear infinite}
.ticker:hover .ticker__piste{animation-play-state:paused}
@keyframes defile{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ticker__grp{display:flex;align-items:center;flex:none}
.ticker__item{
  display:inline-flex;align-items:center;gap:9px;padding:9px 24px;
  font-family:var(--f-util);font-size:.83rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--chrome-3);white-space:nowrap;
}
.ticker__item b{color:var(--chrome-1);font-weight:700}
.ticker__item::after{content:"";width:5px;height:5px;transform:rotate(45deg);background:var(--rouge);margin-left:16px;box-shadow:0 0 9px var(--rouge)}

/* ---------- 6. En-tête ---------- */
.entete{
  position:sticky;top:0;z-index:200;
  background:rgba(8,9,11,.72);backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--ligne);
  transition:background .3s,border-color .3s,box-shadow .3s;
}
.entete.dur{background:rgba(8,9,11,.95);box-shadow:0 14px 40px rgba(0,0,0,.6);border-bottom-color:rgba(227,6,19,.28)}
.entete__in{display:flex;align-items:center;gap:20px;height:84px}
.entete.dur .entete__in{height:70px}
.entete__in,.entete__in *{transition:height .3s}
.logo{display:flex;align-items:center;flex:none}
.logo img{height:56px;width:auto;transition:height .3s,filter var(--t)}
.entete.dur .logo img{height:46px}
.logo:hover img{filter:drop-shadow(0 0 16px rgba(227,6,19,.55))}

.nav{margin-left:auto;display:flex;align-items:center;gap:2px}
.nav a{
  position:relative;padding:11px 14px;border-radius:6px;
  font-family:var(--f-util);font-size:.94rem;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;color:var(--texte-2);
  transition:color var(--t),background var(--t);
}
.nav a::after{
  content:"";position:absolute;left:14px;right:14px;bottom:5px;height:2px;
  background:linear-gradient(90deg,var(--rouge),var(--rouge-vif));
  transform:scaleX(0);transform-origin:left;transition:transform var(--t);
  box-shadow:0 0 10px var(--rouge-halo);
}
.nav a:hover,.nav a[aria-current]{color:#fff;background:rgba(255,255,255,.04)}
.nav a:hover::after,.nav a[aria-current]::after{transform:scaleX(1)}

/* sous-menu */
.nav__grp{position:relative}
.nav__pop{
  position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%,10px);
  min-width:290px;padding:10px;border-radius:var(--r-m);
  background:rgba(16,19,24,.97);border:1px solid var(--ligne-forte);
  box-shadow:var(--ombre);opacity:0;visibility:hidden;transition:all var(--t);
}
.nav__grp:hover .nav__pop,.nav__grp:focus-within .nav__pop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav__pop a{display:flex;align-items:center;gap:11px;padding:11px 13px;width:100%;text-transform:none;letter-spacing:.01em;font-size:.98rem;font-family:var(--f-texte)}
.nav__pop a::after{display:none}
.nav__pop a:hover{background:rgba(227,6,19,.13);color:#fff;transform:translateX(4px)}
.nav__pop span{width:7px;height:7px;transform:rotate(45deg);background:var(--rouge);flex:none}

/* deux lignes téléphoniques dans un seul bloc */
.entete__tels{
  display:grid;gap:2px;padding:7px;border-radius:var(--r-s);flex:none;
  background:linear-gradient(165deg,#FF2733,#D5050F);
  box-shadow:0 8px 24px rgba(227,6,19,.35);
  transition:transform var(--t),box-shadow var(--t);
}
.entete__tels:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(227,6,19,.55)}
.entete__tels a{
  display:flex;align-items:center;gap:9px;padding:5px 11px;border-radius:5px;color:#fff;
  transition:background var(--t);
}
.entete__tels a:hover{background:rgba(255,255,255,.16)}
.entete__tels a+a{border-top:1px solid rgba(255,255,255,.28);border-radius:0 0 5px 5px}
.entete__tels b{font-family:var(--f-util);font-size:1.02rem;font-weight:600;letter-spacing:.05em;line-height:1.15;white-space:nowrap}
.entete__tels svg{width:17px;height:17px;flex:none;opacity:.92}
.entete__tels a:first-child svg{animation:sonne 2.4s ease-in-out infinite}
@keyframes sonne{0%,72%,100%{transform:rotate(0)}76%{transform:rotate(-13deg)}80%{transform:rotate(11deg)}84%{transform:rotate(-9deg)}88%{transform:rotate(7deg)}92%{transform:rotate(-4deg)}}

.burger{display:none;width:50px;height:50px;border-radius:var(--r-s);border:1px solid var(--ligne-forte);background:var(--surface-2);cursor:pointer;position:relative;flex:none}
.burger span{position:absolute;left:13px;right:13px;height:2px;background:var(--chrome-2);transition:all .3s}
.burger span:nth-child(1){top:17px}.burger span:nth-child(2){top:24px}.burger span:nth-child(3){top:31px}
.burger[aria-expanded="true"] span:nth-child(1){top:24px;transform:rotate(45deg);background:var(--rouge-vif)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){top:24px;transform:rotate(-45deg);background:var(--rouge-vif)}

.mob{
  position:fixed;inset:0;z-index:190;background:rgba(6,7,9,.985);
  padding:104px var(--pad) 40px;overflow-y:auto;
  opacity:0;visibility:hidden;transition:opacity .32s;
}
.mob.on{opacity:1;visibility:visible}
.mob a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:17px 4px;border-bottom:1px solid var(--ligne);
  font-family:var(--f-titre);font-size:1.55rem;font-weight:700;text-transform:uppercase;
  opacity:0;transform:translateY(14px);
}
.mob.on a{animation:monte .48s cubic-bezier(.2,.7,.25,1) forwards}
@keyframes monte{to{opacity:1;transform:none}}
.mob a small{font-family:var(--f-util);font-size:.72rem;color:var(--rouge-vif);letter-spacing:.16em}
.mob__cta{display:grid;gap:12px;margin-top:28px}
@media(max-width:1180px){
  .nav{display:none}
  .burger{display:block;margin-left:auto}
  .entete__tels{margin-left:0}
}
@media(max-width:820px){.entete__tels a:last-child{display:none}}
@media(max-width:520px){.entete__tels b{font-size:.95rem}.entete__tels a{padding:5px 8px}.logo img{height:44px}}

/* ---------- 7. Héros ---------- */
.hero{position:relative;min-height:min(94vh,880px);display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero__bg{position:absolute;inset:-6%;z-index:-2}
.hero__bg img{width:100%;height:100%;object-fit:cover;animation:kenburns 30s ease-in-out infinite alternate}
@keyframes kenburns{0%{transform:scale(1.06) translate(0,0)}100%{transform:scale(1.19) translate(-2.4%,-1.8%)}}
.hero__voile{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(100deg,rgba(6,7,9,.96) 8%,rgba(6,7,9,.82) 42%,rgba(6,7,9,.42) 74%,rgba(6,7,9,.7) 100%),
    radial-gradient(120% 80% at 50% 120%,rgba(227,6,19,.22),transparent 60%);
}
.hero__voile::after{
  content:"";position:absolute;inset:0;opacity:.32;
  background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 4px);
  mix-blend-mode:overlay;
}
.hero__in{padding-block:clamp(60px,10vw,120px);max-width:900px}
.hero__marque{
  display:inline-flex;align-items:center;gap:12px;padding:9px 17px 9px 11px;margin-bottom:24px;
  border:1px solid rgba(227,6,19,.45);border-radius:100px;background:rgba(227,6,19,.11);
  backdrop-filter:blur(9px);
  font-family:var(--f-util);font-size:.8rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
}
.pastille{width:9px;height:9px;border-radius:50%;background:var(--rouge-vif);position:relative;flex:none}
.pastille::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--rouge);animation:onde 2s ease-out infinite}
@keyframes onde{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.9);opacity:0}}
.hero h1{margin-bottom:22px}
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l>span{display:block;transform:translateY(110%);animation:levee .95s cubic-bezier(.16,.9,.24,1) forwards}
@keyframes levee{to{transform:none}}
.hero h1 .l>span.hero__fils,.hero__fils{
  display:inline-flex;align-items:center;gap:clamp(12px,1.6vw,20px);
  font-family:var(--f-titre);font-style:normal;font-weight:800;text-transform:uppercase;
  font-size:clamp(1.35rem,3vw,2.5rem);letter-spacing:.02em;line-height:1.05;
  margin-top:.16em;
}
.hero__fils::before{
  content:"";width:clamp(28px,5vw,64px);height:2px;flex:none;
  background:linear-gradient(90deg,var(--rouge),transparent);
  box-shadow:0 0 12px var(--rouge-halo);
}
.hero__sous{font-size:clamp(1.05rem,1.7vw,1.3rem);color:#C4CCD5;max-width:60ch;margin-bottom:32px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:44px}
.hero__stats{display:flex;flex-wrap:wrap;gap:clamp(20px,4vw,48px);padding-top:28px;border-top:1px solid var(--ligne-forte)}
.hero__stat b{display:block;font-family:var(--f-titre);font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:800;line-height:1}
.hero__stat span{font-family:var(--f-util);font-size:.78rem;letter-spacing:.19em;text-transform:uppercase;color:var(--texte-3)}
.hero__flottant{
  position:absolute;right:var(--pad);bottom:clamp(20px,5vw,54px);z-index:2;
  display:flex;flex-direction:column;gap:10px;align-items:flex-end;
}
@media(max-width:1080px){.hero__flottant{display:none}}
.hero__puce{
  display:flex;align-items:center;gap:11px;padding:12px 18px;border-radius:var(--r-s);
  background:rgba(13,15,19,.78);border:1px solid var(--ligne-forte);backdrop-filter:blur(12px);
  font-family:var(--f-util);font-size:.87rem;letter-spacing:.08em;text-transform:uppercase;
  animation:flotte 5s ease-in-out infinite;
}
.hero__puce:nth-child(2){animation-delay:.7s}.hero__puce:nth-child(3){animation-delay:1.4s}
@keyframes flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
.hero__puce svg{width:19px;height:19px;color:var(--rouge-vif)}
.hero__defile{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:2;color:var(--texte-3);display:grid;justify-items:center;gap:7px;font-family:var(--f-util);font-size:.68rem;letter-spacing:.28em;text-transform:uppercase}
.hero__defile i{display:block;width:1px;height:38px;background:linear-gradient(180deg,var(--rouge),transparent);animation:tombe 1.9s ease-in-out infinite}
@keyframes tombe{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* héros compact des pages internes */
.hero--page{min-height:min(56vh,480px)}
.hero--page .hero__in{padding-block:clamp(48px,7vw,86px)}
.fil{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-family:var(--f-util);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--texte-3);margin-bottom:18px}
.fil a:hover{color:var(--rouge-vif)}
.fil span{color:var(--chrome-4)}

/* ---------- 8. Bandeau de confiance ---------- */
.confiance{background:var(--noir-2);border-block:1px solid var(--ligne);padding-block:26px;position:relative;z-index:1}
.confiance__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(18px,3.4vw,44px)}
.confiance__item{display:flex;align-items:center;gap:13px;transition:transform var(--t),filter var(--t);filter:grayscale(.35) opacity(.82)}
.confiance__item:hover{transform:translateY(-4px) scale(1.03);filter:none}
.confiance__item img{height:52px;width:auto}
.confiance__item svg{height:52px;width:52px;color:var(--rouge-vif)}
.confiance__item b{display:block;font-family:var(--f-util);font-size:.93rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;line-height:1.2}
.confiance__item small{display:block;font-size:.76rem;color:var(--texte-3);letter-spacing:.04em}

/* ---------- 9. Cartes de prestation ---------- */
.presta{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  border-radius:var(--r-l);border:1px solid var(--ligne);background:var(--surface);
  transition:transform var(--t),border-color var(--t),box-shadow var(--t);
  min-height:400px;isolation:isolate;
}
.presta::before{
  content:"";position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:inherit;
  background:radial-gradient(340px 240px at var(--mx,50%) var(--my,50%),rgba(227,6,19,.19),transparent 70%);
  opacity:0;transition:opacity var(--t);
}
.presta:hover::before{opacity:1}
.presta:hover{transform:translateY(-9px);border-color:rgba(227,6,19,.5);box-shadow:0 30px 70px rgba(0,0,0,.6),0 0 0 1px rgba(227,6,19,.22)}
.presta__img{position:relative;aspect-ratio:16/10;overflow:hidden;flex:none}
.presta__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.25,1),filter var(--t);filter:saturate(.82) contrast(1.05)}
.presta:hover .presta__img img{transform:scale(1.11);filter:saturate(1.05) contrast(1.08)}
.presta__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 32%,rgba(20,23,28,.94))}
.presta__num{
  position:absolute;top:14px;left:14px;z-index:2;
  font-family:var(--f-titre);font-size:1.1rem;font-weight:800;letter-spacing:.06em;
  padding:5px 11px;border-radius:6px;background:rgba(8,9,11,.72);border:1px solid var(--ligne-forte);
  backdrop-filter:blur(8px);color:var(--chrome-2);
}
.presta__corps{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1;position:relative;z-index:2}
.presta h3{margin-bottom:10px}
.presta p{color:var(--texte-2);font-size:.98rem;margin-bottom:16px}
.presta__liste{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:7px}
.presta__liste li{display:flex;align-items:flex-start;gap:9px;font-size:.93rem;color:var(--chrome-3)}
.presta__liste li::before{content:"";width:6px;height:6px;margin-top:8px;flex:none;transform:rotate(45deg);background:var(--rouge);box-shadow:0 0 8px var(--rouge-halo)}
.presta__lien{
  margin-top:auto;display:inline-flex;align-items:center;gap:9px;
  font-family:var(--f-util);font-size:.9rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  color:var(--chrome-2);transition:gap var(--t),color var(--t);
}
.presta:hover .presta__lien{gap:16px;color:var(--rouge-vif)}
.presta__lien svg{width:17px;height:17px}

/* ---------- 10. Carte du 94 (élément signature) ---------- */
.zone94{background:linear-gradient(180deg,var(--noir),#0B0D11 45%,var(--noir));position:relative;overflow:hidden}
.zone94::before{
  content:"94";position:absolute;right:-3vw;top:2%;z-index:0;
  font-family:var(--f-titre);font-size:clamp(16rem,34vw,34rem);font-weight:800;line-height:.8;
  color:rgba(255,255,255,.022);pointer-events:none;letter-spacing:-.04em;
}
.zone94__grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(26px,4vw,58px);align-items:center}
@media(max-width:980px){.zone94__grid{grid-template-columns:1fr}}
.carte{
  position:relative;border-radius:var(--r-xl);padding:clamp(14px,2.4vw,30px);
  background:radial-gradient(120% 110% at 50% 0%,#171B21,#0A0C0F 72%);
  border:1px solid var(--ligne-forte);box-shadow:var(--ombre);overflow:hidden;
}
.carte::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(70% 70% at 50% 50%,#000,transparent);
}
.carte svg{width:100%;height:auto;display:block;position:relative;z-index:1;overflow:visible}
.cm{
  fill:#1C2128;stroke:#39414B;stroke-width:1.6;stroke-linejoin:round;
  cursor:pointer;transition:fill .3s,stroke .3s,filter .3s;
}
.cm.vu{fill:#232A33;stroke:#525C69;animation:allume .8s ease forwards}
@keyframes allume{
  0%{fill:#1C2128;stroke:#39414B}
  40%{fill:#4A1116;stroke:var(--rouge-vif);filter:drop-shadow(0 0 12px var(--rouge-halo))}
  100%{fill:#232A33;stroke:#525C69;filter:none}
}
.cm:hover,.cm.actif{fill:var(--rouge);stroke:#FF6B72;filter:drop-shadow(0 0 16px var(--rouge-halo));stroke-width:2}
.carte__contour{fill:none;stroke:var(--rouge);stroke-width:3;opacity:.85;filter:drop-shadow(0 0 12px var(--rouge))}
.carte__contour.trace{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:tracer 4.5s ease forwards}
@keyframes tracer{to{stroke-dashoffset:0}}
.carte__bulle{
  position:absolute;z-index:6;pointer-events:none;padding:11px 15px;border-radius:10px;
  background:rgba(9,11,14,.96);border:1px solid rgba(227,6,19,.5);
  box-shadow:0 14px 36px rgba(0,0,0,.66);opacity:0;transform:translate(-50%,-118%) scale(.94);
  transition:opacity .18s,transform .18s;white-space:nowrap;
}
.carte__bulle.on{opacity:1;transform:translate(-50%,-128%) scale(1)}
.carte__bulle b{display:block;font-family:var(--f-titre);font-size:1.06rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.carte__bulle span{font-family:var(--f-util);font-size:.79rem;color:var(--texte-2);letter-spacing:.06em}
.carte__legende{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-top:16px;font-family:var(--f-util);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-3)}
.carte__legende i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:7px;vertical-align:-1px}

/* vérificateur de zone */
.verif{
  border-radius:var(--r-l);border:1px solid var(--ligne-forte);
  background:linear-gradient(165deg,var(--surface-2),var(--surface));
  padding:clamp(22px,3vw,34px);box-shadow:var(--ombre);position:relative;overflow:hidden;
}
.verif::before{
  content:"";position:absolute;top:-1px;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--rouge),transparent);
  animation:balayage 4s linear infinite;
}
.verif h3{margin-bottom:8px}
.verif p{color:var(--texte-2);font-size:.96rem}
.champ{position:relative;margin-top:18px}
.champ input,.champ select,.champ textarea{
  width:100%;padding:16px 18px;border-radius:var(--r-s);
  background:rgba(6,7,9,.7);border:1px solid var(--ligne-forte);color:var(--texte);
  font-size:1rem;transition:border-color var(--t),box-shadow var(--t),background var(--t);
}
.champ input:focus,.champ select:focus,.champ textarea:focus{
  outline:none;border-color:var(--rouge);background:rgba(6,7,9,.92);
  box-shadow:0 0 0 4px rgba(227,6,19,.14);
}
.champ input::placeholder,.champ textarea::placeholder{color:var(--texte-3)}
.champ label{display:block;font-family:var(--f-util);font-size:.79rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-3);margin-bottom:8px}
.champ textarea{min-height:132px;resize:vertical}
.champ select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2399A3AE' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:19px;padding-right:46px}
.auto{
  position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:262px;overflow-y:auto;
  border-radius:var(--r-s);background:rgba(12,14,18,.99);border:1px solid var(--ligne-forte);
  box-shadow:var(--ombre);display:none;
}
.auto.on{display:block}
.auto button{
  display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;background:none;border:0;border-bottom:1px solid var(--ligne);
  text-align:left;cursor:pointer;transition:background var(--t),padding-left var(--t);
}
.auto button:hover,.auto button.surv{background:rgba(227,6,19,.15);padding-left:22px}
.auto b{font-weight:600}
.auto span{font-family:var(--f-util);font-size:.83rem;color:var(--texte-3)}
.verif__res{margin-top:18px;padding:18px 20px;border-radius:var(--r-s);border:1px solid var(--ligne-forte);background:rgba(6,7,9,.6);display:none;animation:apparait .45s ease}
.verif__res.on{display:block}
@keyframes apparait{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.verif__res.ok{border-color:rgba(40,190,110,.5);background:rgba(20,70,45,.28)}
.verif__res.non{border-color:rgba(227,6,19,.5);background:rgba(90,12,18,.28)}
.verif__res b{display:flex;align-items:center;gap:10px;font-family:var(--f-titre);font-size:1.28rem;text-transform:uppercase;margin-bottom:6px}
.verif__res p{margin:0;font-size:.95rem}
.verif__res .btn{margin-top:14px}

/* ---------- 11. Comparateur avant/après ---------- */
.ba{position:relative;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--ligne-forte);box-shadow:var(--ombre);user-select:none;touch-action:pan-y}
.ba__img{display:block;width:100%;height:auto;pointer-events:none}
.ba__apres{position:absolute;inset:0;overflow:hidden;width:50%}
.ba__apres img{position:absolute;top:0;left:0;height:100%;width:auto;max-width:none;object-fit:cover}
.ba__poignee{position:absolute;top:0;bottom:0;left:50%;width:3px;background:var(--rouge);cursor:ew-resize;z-index:4;box-shadow:0 0 20px var(--rouge)}
.ba__poignee::after{
  content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border-radius:50%;background:rgba(9,11,14,.9);
  border:2px solid var(--rouge);box-shadow:0 0 28px var(--rouge-halo),inset 0 0 18px rgba(227,6,19,.28);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M9 6L4 12l5 6M15 6l5 6-5 6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:26px;
}
.ba__etiq{
  position:absolute;top:16px;z-index:3;padding:7px 15px;border-radius:100px;
  font-family:var(--f-util);font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  background:rgba(9,11,14,.82);border:1px solid var(--ligne-forte);backdrop-filter:blur(8px);
}
.ba__etiq--a{left:16px}
.ba__etiq--b{right:16px;border-color:rgba(227,6,19,.6);color:#fff;background:rgba(227,6,19,.3)}
.ba__aide{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:3;font-family:var(--f-util);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--chrome-3);background:rgba(9,11,14,.72);padding:6px 14px;border-radius:100px;pointer-events:none;transition:opacity .3s}
.ba.touche .ba__aide{opacity:0}

/* ---------- 12. Chiffres ---------- */
.chiffres{background:var(--noir-2);border-block:1px solid var(--ligne)}
.chiffre{text-align:center;padding:22px 12px;border-radius:var(--r-m);transition:background var(--t),transform var(--t)}
.chiffre:hover{background:rgba(255,255,255,.03);transform:translateY(-5px)}
.chiffre b{display:block;font-family:var(--f-titre);font-size:clamp(2.4rem,5vw,4rem);font-weight:800;line-height:1;margin-bottom:8px}
.chiffre span{font-family:var(--f-util);font-size:.83rem;letter-spacing:.18em;text-transform:uppercase;color:var(--texte-3)}

/* ---------- 13. Processus ---------- */
.etape{position:relative;padding:28px 24px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--ligne);transition:transform var(--t),border-color var(--t),background var(--t)}
.etape:hover{transform:translateY(-7px);border-color:rgba(227,6,19,.45);background:var(--surface-2)}
.etape__n{
  width:56px;height:56px;border-radius:14px;display:grid;place-items:center;margin-bottom:18px;
  font-family:var(--f-titre);font-size:1.5rem;font-weight:800;
  background:var(--metal-sombre);border:1px solid var(--ligne-forte);color:var(--chrome-2);
  transition:all var(--t);
}
.etape:hover .etape__n{background:linear-gradient(165deg,#FF2733,#B00510);color:#fff;border-color:rgba(255,90,90,.6);box-shadow:var(--ombre-rouge)}
.etape h3{font-size:1.2rem;margin-bottom:8px}
.etape p{color:var(--texte-2);font-size:.95rem;margin:0}

/* ---------- 14. Galerie ---------- */
.filtres{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:26px}
.filtre{
  padding:10px 19px;border-radius:100px;border:1px solid var(--ligne-forte);background:rgba(255,255,255,.03);
  font-family:var(--f-util);font-size:.85rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;transition:all var(--t);
}
.filtre:hover{border-color:var(--rouge);color:#fff}
.filtre[aria-pressed="true"]{background:linear-gradient(165deg,#FF2733,#C0050E);border-color:transparent;color:#fff;box-shadow:var(--ombre-rouge)}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.gal__it{
  position:relative;overflow:hidden;border-radius:var(--r-m);border:1px solid var(--ligne);
  aspect-ratio:4/3;cursor:zoom-in;background:var(--surface);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.gal__it:nth-child(6n+1){grid-row:span 2;aspect-ratio:4/6}
.gal__it img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.25,1),filter var(--t);filter:grayscale(.22) contrast(1.05)}
.gal__it:hover{transform:scale(1.015);border-color:rgba(227,6,19,.5);box-shadow:0 22px 54px rgba(0,0,0,.6)}
.gal__it:hover img{transform:scale(1.1);filter:none}
.gal__it figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:2;padding:32px 16px 15px;
  background:linear-gradient(transparent,rgba(6,7,9,.94));
  font-family:var(--f-util);font-size:.86rem;letter-spacing:.09em;text-transform:uppercase;
  transform:translateY(8px);opacity:.86;transition:all var(--t);
}
.gal__it:hover figcaption{transform:none;opacity:1}
.gal__it figcaption em{display:block;font-style:normal;font-size:.72rem;color:var(--rouge-vif);letter-spacing:.18em}

.visio{position:fixed;inset:0;z-index:400;background:rgba(4,5,7,.96);display:none;place-items:center;padding:24px;backdrop-filter:blur(6px)}
.visio.on{display:grid;animation:apparait .3s ease}
.visio img{max-width:min(94vw,1200px);max-height:84vh;border-radius:var(--r-m);box-shadow:var(--ombre);object-fit:contain}
.visio__x,.visio__p,.visio__s{
  position:absolute;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:rgba(20,23,28,.9);border:1px solid var(--ligne-forte);cursor:pointer;transition:all var(--t);
}
.visio__x:hover,.visio__p:hover,.visio__s:hover{background:var(--rouge);border-color:transparent;transform:scale(1.08)}
.visio__x{top:22px;right:22px}
.visio__p{left:22px;top:50%;transform:translateY(-50%)}
.visio__s{right:22px;top:50%;transform:translateY(-50%)}
.visio__p:hover,.visio__s:hover{transform:translateY(-50%) scale(1.08)}
.visio__lg{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-family:var(--f-util);letter-spacing:.1em;text-transform:uppercase;font-size:.88rem;color:var(--chrome-3);text-align:center}
.visio svg{width:22px;height:22px}

/* ---------- 15. Météo ---------- */
.meteo{
  border-radius:var(--r-l);border:1px solid var(--ligne-forte);overflow:hidden;
  background:linear-gradient(165deg,#171B21,#0B0D11);box-shadow:var(--ombre);
}
.meteo__tete{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px 24px;border-bottom:1px solid var(--ligne);background:rgba(255,255,255,.02)}
.meteo__tete b{font-family:var(--f-titre);font-size:1.24rem;text-transform:uppercase;letter-spacing:.02em}
.meteo__tete small{display:block;font-family:var(--f-util);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-3)}
.meteo__now{display:flex;align-items:center;gap:22px;padding:24px}
.meteo__ico{width:74px;height:74px;flex:none;color:var(--rouge-vif);filter:drop-shadow(0 0 16px var(--rouge-halo))}
.meteo__deg{font-family:var(--f-titre);font-size:3.5rem;font-weight:800;line-height:1}
.meteo__txt{color:var(--texte-2);font-size:.96rem}
.meteo__jours{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ligne)}
.meteo__j{padding:16px 8px;text-align:center;border-right:1px solid var(--ligne);transition:background var(--t)}
.meteo__j:last-child{border-right:0}
.meteo__j:hover{background:rgba(227,6,19,.1)}
.meteo__j b{display:block;font-family:var(--f-util);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-3);margin-bottom:8px}
.meteo__j svg{width:30px;height:30px;margin:0 auto 8px;color:var(--chrome-2)}
.meteo__j span{font-family:var(--f-util);font-size:.98rem;font-variant-numeric:tabular-nums}
.meteo__j span i{font-style:normal;color:var(--texte-3)}
.meteo__avis{padding:16px 24px;border-top:1px solid var(--ligne);font-size:.92rem;color:var(--chrome-3);display:flex;gap:11px;align-items:flex-start}
.meteo__avis svg{width:19px;height:19px;flex:none;margin-top:3px;color:var(--rouge-vif)}

/* ---------- 16. Avis ---------- */
.avis{display:grid;gap:18px}
.avis__carte{
  padding:28px;border-radius:var(--r-l);border:1px solid var(--ligne);background:var(--surface);
  position:relative;transition:transform var(--t),border-color var(--t);
}
.avis__carte:hover{transform:translateY(-6px);border-color:rgba(227,6,19,.4)}
.avis__carte::before{
  content:"“";position:absolute;top:-6px;right:22px;font-family:Georgia,serif;font-size:6rem;
  color:rgba(227,6,19,.16);line-height:1;
}
.etoiles{display:flex;gap:3px;margin-bottom:14px}
.etoiles svg{width:18px;height:18px;color:#FFC107}
.avis__carte p{font-size:1rem;color:var(--chrome-2);margin-bottom:18px}
.avis__qui{display:flex;align-items:center;gap:13px;padding-top:16px;border-top:1px solid var(--ligne)}
.avis__ini{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--metal-sombre);border:1px solid var(--ligne-forte);font-family:var(--f-titre);font-weight:800;color:var(--chrome-2)}
.avis__qui b{display:block;font-family:var(--f-util);letter-spacing:.06em}
.avis__qui small{color:var(--texte-3);font-size:.83rem}

/* carrousel : défilement automatique en boucle + tirage à la main */
.carrou-zone{position:relative;margin-inline:calc(var(--pad)*-1)}
.carrou-zone::before,.carrou-zone::after{content:"";position:absolute;top:0;bottom:0;width:clamp(28px,7vw,110px);z-index:3;pointer-events:none}
.carrou-zone::before{left:0;background:linear-gradient(90deg,var(--noir) 12%,transparent)}
.carrou-zone::after{right:0;background:linear-gradient(270deg,var(--noir) 12%,transparent)}
.carrou{
  overflow-x:auto;overflow-y:hidden;padding-inline:var(--pad);padding-block:6px;
  scrollbar-width:none;-ms-overflow-style:none;cursor:grab;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
}
.carrou::-webkit-scrollbar{display:none}
.carrou.tire{cursor:grabbing}
.carrou.tire *{user-select:none;pointer-events:none}
.carrou__piste{display:flex;gap:18px;width:max-content}
.carrou__piste>*{width:min(84vw,400px);flex:none}
.carrou__nav{
  position:absolute;top:50%;translate:0 -50%;z-index:4;
  width:50px;height:50px;border-radius:50%;display:grid;place-items:center;
  background:rgba(16,19,24,.92);border:1px solid var(--ligne-forte);color:var(--chrome-2);
  cursor:pointer;transition:all var(--t);backdrop-filter:blur(8px);
}
.carrou__nav:hover{background:var(--rouge);border-color:transparent;color:#fff;scale:1.08}
.carrou__nav svg{width:20px;height:20px}
.carrou__nav--g{left:6px}
.carrou__nav--d{right:6px}
@media(max-width:700px){.carrou__nav{display:none}}

/* carte d'avis */
.avis__note{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.avis__note .etoiles{margin:0}
.avis__src{
  display:inline-flex;align-items:center;gap:6px;font-family:var(--f-util);
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-3);
}
.avis__date{margin-left:auto;font-family:var(--f-util);font-size:.78rem;color:var(--texte-3)}
.avis__invite{
  display:flex;flex-direction:column;justify-content:center;text-align:center;
  border-style:dashed;border-color:rgba(227,6,19,.45);
  background:radial-gradient(120% 120% at 50% 0%,rgba(120,4,12,.28),var(--surface) 70%);
}
.avis__invite h3{margin-bottom:10px}
.avis__invite p{color:var(--texte-2);font-size:.95rem}

/* ---------- 17. FAQ ---------- */
.faq{display:grid;gap:11px;max-width:920px;margin-inline:auto}
.faq details{border-radius:var(--r-m);border:1px solid var(--ligne);background:var(--surface);overflow:hidden;transition:border-color var(--t),background var(--t)}
.faq details[open]{border-color:rgba(227,6,19,.42);background:var(--surface-2)}
.faq summary{
  list-style:none;cursor:pointer;padding:20px 56px 20px 24px;position:relative;
  font-family:var(--f-titre);font-size:1.13rem;font-weight:700;text-transform:uppercase;letter-spacing:.01em;
  transition:color var(--t);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--rouge-vif)}
.faq summary::after{
  content:"";position:absolute;right:22px;top:50%;width:14px;height:14px;margin-top:-7px;
  border-right:2px solid var(--rouge);border-bottom:2px solid var(--rouge);
  transform:rotate(45deg);transition:transform var(--t);
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq__c{padding:0 24px 22px;color:var(--texte-2);font-size:.98rem}
.faq__c p:last-child{margin-bottom:0}

/* ---------- 18. Formulaire ---------- */
.form{
  border-radius:var(--r-xl);border:1px solid var(--ligne-forte);padding:clamp(24px,3.6vw,44px);
  background:linear-gradient(165deg,var(--surface-2),#0C0E12);box-shadow:var(--ombre);position:relative;overflow:hidden;
}
.form::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--rouge-sombre),var(--rouge-vif),var(--rouge-sombre));background-size:200% 100%;animation:glisse 4s linear infinite}
@keyframes glisse{to{background-position:200% 0}}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form__grid .plein{grid-column:1/-1}
@media(max-width:680px){.form__grid{grid-template-columns:1fr}}
.choix{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.choix label{
  display:flex;align-items:center;gap:10px;padding:14px 15px;border-radius:var(--r-s);
  border:1px solid var(--ligne-forte);background:rgba(6,7,9,.6);cursor:pointer;
  font-family:var(--f-util);font-size:.94rem;letter-spacing:.05em;transition:all var(--t);
}
.choix label:hover{border-color:var(--rouge);background:rgba(227,6,19,.09)}
.choix input{accent-color:var(--rouge);width:18px;height:18px;flex:none}
.choix input:checked+span{color:#fff;font-weight:600}
.choix label:has(input:checked){border-color:var(--rouge);background:rgba(227,6,19,.16);box-shadow:0 0 0 1px rgba(227,6,19,.3)}
.rgpd{display:flex;gap:11px;align-items:flex-start;font-size:.87rem;color:var(--texte-3);line-height:1.6}
.rgpd input{accent-color:var(--rouge);width:19px;height:19px;flex:none;margin-top:2px}
.rgpd a{color:var(--chrome-3);text-decoration:underline}
.form__msg{margin-top:16px;padding:15px 18px;border-radius:var(--r-s);display:none;font-size:.95rem}
.form__msg.on{display:block;animation:apparait .4s ease}
.form__msg.ok{background:rgba(20,70,45,.35);border:1px solid rgba(40,190,110,.5)}
.form__msg.err{background:rgba(90,12,18,.35);border:1px solid rgba(227,6,19,.5)}

/* ---------- 19. Encadrés & listes ---------- */
.bloc{border-radius:var(--r-l);border:1px solid var(--ligne);background:var(--surface);padding:clamp(22px,3vw,32px);transition:border-color var(--t),transform var(--t)}
.bloc:hover{border-color:rgba(227,6,19,.35);transform:translateY(-4px)}
.bloc h3{font-size:1.24rem;display:flex;align-items:center;gap:.5em}
.bloc h3 svg{width:1.05em;height:1.05em;color:var(--rouge-vif);-webkit-text-fill-color:var(--rouge-vif)}
.bloc p:last-child{margin-bottom:0}
.bloc--rouge{border-color:rgba(227,6,19,.45);background:linear-gradient(165deg,rgba(90,10,16,.4),var(--surface))}
.puces{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.puces li{display:flex;align-items:flex-start;gap:12px;color:var(--chrome-3)}
.puces li svg{width:20px;height:20px;flex:none;margin-top:3px;color:var(--rouge-vif)}
.puces--2{grid-template-columns:1fr 1fr}
@media(max-width:680px){.puces--2{grid-template-columns:1fr}}

.tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{
  padding:8px 15px;border-radius:100px;border:1px solid var(--ligne);background:rgba(255,255,255,.03);
  font-family:var(--f-util);font-size:.85rem;letter-spacing:.05em;color:var(--texte-2);
  transition:all var(--t);
}
a.tag:hover{border-color:var(--rouge);color:#fff;background:rgba(227,6,19,.14);transform:translateY(-2px)}

.tableau{width:100%;border-collapse:collapse;font-size:.96rem}
.tableau th,.tableau td{padding:15px 16px;text-align:left;border-bottom:1px solid var(--ligne)}
.tableau thead th{font-family:var(--f-util);font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge-vif);background:rgba(255,255,255,.02)}
.tableau tbody tr{transition:background var(--t)}
.tableau tbody tr:hover{background:rgba(227,6,19,.07)}
.tableau td:last-child{font-family:var(--f-util);white-space:nowrap;color:var(--chrome-2)}
.tableau-enrobe{overflow-x:auto;border-radius:var(--r-m);border:1px solid var(--ligne);background:var(--surface)}

/* ---------- 20. Appel à l'action ---------- */
.cta{position:relative;overflow:hidden;border-radius:var(--r-xl);border:1px solid rgba(227,6,19,.35);padding:clamp(32px,5vw,64px);text-align:center;background:radial-gradient(120% 130% at 50% 0%,rgba(120,4,12,.5),#0B0D11 68%)}
.cta::before{
  content:"";position:absolute;inset:-50%;
  background:conic-gradient(from 0deg,transparent 0 70%,rgba(227,6,19,.22) 82%,transparent 92%);
  animation:tourne 11s linear infinite;
}
@keyframes tourne{to{transform:rotate(360deg)}}
.cta>*{position:relative;z-index:1}
.cta h2{margin-bottom:14px}
.cta .lead{margin-inline:auto;margin-bottom:28px}
.cta__btns{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

/* ---------- 21. Pied de page ---------- */
.pied{background:var(--noir-2);border-top:1px solid var(--ligne);padding-top:clamp(48px,6vw,80px);position:relative;z-index:1}
.pied__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(24px,3vw,44px);padding-bottom:44px}
@media(max-width:980px){.pied__grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pied__grid{grid-template-columns:1fr}}
.pied img.pied__logo{height:74px;width:auto;margin-bottom:18px}
.pied h4{font-family:var(--f-util);font-size:.83rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rouge-vif);margin-bottom:18px;font-weight:600}
.pied ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pied li a,.pied li span{display:flex;align-items:flex-start;gap:10px;color:var(--texte-2);font-size:.95rem;transition:color var(--t),transform var(--t)}
.pied li a:hover{color:#fff;transform:translateX(4px)}
.pied li svg{width:17px;height:17px;flex:none;margin-top:4px;color:var(--rouge)}
.pied__bas{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;padding:22px 0;border-top:1px solid var(--ligne);font-size:.86rem;color:var(--texte-3)}
.pied__bas nav{display:flex;flex-wrap:wrap;gap:18px}
.pied__bas a:hover{color:var(--rouge-vif)}
.pied__villes{padding:26px 0;border-top:1px solid var(--ligne)}
.pied__villes p{font-family:var(--f-util);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-3);margin-bottom:12px}
.pied__villes div{display:flex;flex-wrap:wrap;gap:7px 14px}
.pied__villes a{font-size:.86rem;color:var(--chrome-4);transition:color var(--t)}
.pied__villes a:hover{color:var(--rouge-vif)}

/* ---------- 22. Éléments flottants ---------- */
.appel-flottant{
  position:fixed;right:22px;bottom:22px;z-index:150;
  width:64px;height:64px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(165deg,#FF2733,#B00510);color:#fff;
  box-shadow:0 14px 40px rgba(227,6,19,.5);transition:transform var(--t);
}
.appel-flottant::before,.appel-flottant::after{
  content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--rouge);
  animation:onde 2.4s ease-out infinite;
}
.appel-flottant::after{animation-delay:1.2s}
.appel-flottant:hover{transform:scale(1.1)}
.appel-flottant svg{width:28px;height:28px;position:relative;z-index:1}
@media(max-width:860px){.appel-flottant{display:none}}

.barre-mob{
  position:fixed;left:0;right:0;bottom:0;z-index:180;display:none;
  grid-template-columns:repeat(4,1fr);
  background:rgba(10,12,15,.97);backdrop-filter:blur(14px);border-top:1px solid rgba(227,6,19,.34);
  padding-bottom:env(safe-area-inset-bottom);
}
.barre-mob a{
  display:grid;justify-items:center;gap:5px;padding:11px 6px;min-height:60px;
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--texte-2);
  border-right:1px solid var(--ligne);text-align:center;
}
.barre-mob a:last-child{border-right:0}
.barre-mob a svg{width:21px;height:21px}
.barre-mob a.actif{color:#fff;background:linear-gradient(0deg,rgba(227,6,19,.25),transparent)}
.barre-mob a.actif svg{color:var(--rouge-vif)}
@media(max-width:860px){.barre-mob{display:grid}body{padding-bottom:64px}}

.remonte{
  position:fixed;right:22px;bottom:96px;z-index:150;width:46px;height:46px;border-radius:12px;
  display:grid;place-items:center;background:rgba(20,23,28,.9);border:1px solid var(--ligne-forte);
  opacity:0;visibility:hidden;transition:all var(--t);cursor:pointer;
}
.remonte.on{opacity:1;visibility:visible}
.remonte:hover{background:var(--rouge);border-color:transparent;transform:translateY(-3px)}
.remonte svg{width:19px;height:19px}
@media(max-width:860px){.remonte{bottom:76px;right:14px}}

/* barre de progression de lecture */
.progres{position:fixed;top:0;left:0;height:3px;z-index:300;width:0;background:linear-gradient(90deg,var(--rouge-sombre),var(--rouge-vif));box-shadow:0 0 12px var(--rouge)}

/* ---------- 23. Révélations au défilement ---------- */
[data-rev]{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.2,.7,.25,1),transform .8s cubic-bezier(.2,.7,.25,1)}
[data-rev].vu{opacity:1;transform:none}
[data-rev="g"]{transform:translateX(-38px)}
[data-rev="d"]{transform:translateX(38px)}
[data-rev="z"]{transform:scale(.94)}

/* ---------- 24. Divers ---------- */
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.saut{
  position:absolute;left:-9999px;top:0;z-index:999;padding:12px 20px;background:var(--rouge);color:#fff;
  font-family:var(--f-util);letter-spacing:.1em;text-transform:uppercase;
}
.saut:focus{left:12px;top:12px}
.centre{text-align:center}
.mt{margin-top:clamp(24px,3.4vw,44px)}
hr.sep{border:0;height:1px;background:linear-gradient(90deg,transparent,var(--ligne-forte),transparent);margin-block:clamp(30px,4vw,54px)}

/* ---------- 25. Accessibilité mouvement ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-rev]{opacity:1!important;transform:none!important}
  .hero h1 .l>span{transform:none}
}

/* ---------- 26. Impression ---------- */
@media print{
  body{background:#fff;color:#000}
  .entete,.ticker,.barre-mob,.appel-flottant,.remonte,.hero__bg,.progres{display:none!important}
}
