/* =====================================================================
   MAÎTRE HOUNYOVI — habillage vodoun  (cauris · veve · Fa · appliqué d'Abomey)
   ===================================================================== */
@font-face{font-family:'Cormorant Garamond';src:url(../fonts/cormorant.woff2) format('woff2');font-weight:500 700;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url(../fonts/cormorant-italic.woff2) format('woff2');font-weight:500 600;font-style:italic;font-display:swap}
@font-face{font-family:'Cinzel';src:url(../fonts/cinzel.woff2) format('woff2');font-weight:500 700;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(../fonts/nunito.woff2) format('woff2');font-weight:400 800;font-display:swap}

:root{
  --nuit:#0d0709; --nuit2:#160c0e; --terre:#25110c; --terre2:#3a1a10;
  --rouge:#b3261e; --rouge2:#d63a2a; --brique:#7a1410;
  --or:#e8b04a; --or2:#f6d58b; --ocre:#c98a24;
  --indigo:#1b2a6b; --kaolin:#f4ead5; --sable:#e9dcc0; --fumee:#b9a994;
  --f-titre:'Cormorant Garamond','Georgia',serif; --f-label:'Cinzel','Georgia',serif; --f-texte:'Nunito Sans','Segoe UI',Arial,sans-serif;
  --ligne:rgba(232,176,74,.28); --r:14px;
  --band:url(../svg/abomey-band.svg); --band-thin:url(../svg/band-thin.svg); --tex:url(../svg/texture.svg);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--nuit);color:var(--kaolin);font-family:var(--f-texte);font-size:17px;line-height:1.75;overflow-x:hidden;overflow-x:clip;
  background-image:var(--tex)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--f-titre);font-weight:600;line-height:1.08;margin:0;color:var(--kaolin)}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:4px}
::selection{background:var(--rouge);color:#fff}
.ico{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ico.cw{stroke-width:2.4}
.wrap{width:min(1220px,92%);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{font-family:var(--f-label);font-size:13.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--or);display:inline-flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:38px;height:1px;background:var(--or)}
.accent{color:var(--or);font-style:italic;font-weight:500}

/* ---------- Boutons ---------- */
.btn{--b:var(--rouge);position:relative;display:inline-flex;align-items:center;gap:12px;padding:15px 32px;border:1px solid var(--or);background:linear-gradient(180deg,var(--rouge2),var(--brique));color:var(--kaolin)!important;
  font-family:var(--f-label);font-weight:600;font-size:14px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border-radius:999px;transition:transform .25s,box-shadow .25s,filter .25s;box-shadow:0 8px 30px -8px rgba(214,58,42,.6),inset 0 1px 0 rgba(255,255,255,.25)}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 36px -8px rgba(214,58,42,.8),0 0 0 4px rgba(232,176,74,.18);filter:brightness(1.08)}
.btn .ico{font-size:18px}
.btn--or{background:linear-gradient(180deg,var(--or2),var(--ocre));color:#2a120c!important;border-color:var(--or2);box-shadow:0 8px 30px -8px rgba(232,176,74,.55)}
.btn--ghost{background:transparent;color:var(--or)!important;box-shadow:none}
.btn--ghost:hover{background:rgba(232,176,74,.12);box-shadow:none}
.btn--wa{background:linear-gradient(180deg,#25c869,#128c4a);border-color:#7ff0ab;box-shadow:0 8px 30px -8px rgba(37,200,105,.5)}

/* ---------- Séparateur cauris ---------- */
.divider{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--or);margin:0 auto 18px;max-width:420px}
.divider span{height:1px;flex:1;background:linear-gradient(90deg,transparent,var(--or))}
.divider span:last-child{transform:scaleX(-1)}
.divider .cw{font-size:20px;transform:rotate(18deg)}.divider .cw.big{font-size:30px;transform:none;color:var(--or2)}.divider .cw:last-of-type{transform:rotate(-18deg)}
.divider.left{margin-left:0;justify-content:flex-start}.divider.left span:first-child{display:none}

/* ---------- Bandeau d'Abomey ---------- */
.band{height:44px;background:var(--band) repeat-x center/auto 44px}
.band--thin{height:22px;background:var(--band-thin) repeat-x center/auto 22px;opacity:.9}

/* ---------- Chargement ---------- */
.loader{position:fixed;inset:0;z-index:999;background:var(--nuit);display:none;place-items:center;transition:opacity .7s .1s,visibility .7s .1s}
.js .loader{display:grid}
.loader.off{opacity:0;visibility:hidden}
.loader svg{width:min(190px,48vw);animation:spin 6s linear infinite}
.loader p{margin-top:18px;font-family:var(--f-label);letter-spacing:.4em;color:var(--or);font-size:13px;text-align:center;text-transform:uppercase}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Barre de progression ---------- */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--rouge2),var(--or),var(--or2));z-index:200}

/* ---------- En-tête ---------- */
.topbar{background:#080405;border-bottom:1px solid rgba(232,176,74,.16);font-size:13.5px;color:var(--fumee)}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:8px 0;flex-wrap:wrap}
.topbar a{display:inline-flex;align-items:center;gap:8px;transition:color .2s}.topbar a:hover{color:var(--or)}
.topbar .ico{color:var(--or);font-size:16px}
.topbar .l{display:flex;gap:26px;flex-wrap:wrap}
.hdr{position:sticky;top:0;z-index:100;background:rgba(13,7,9,.82);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid var(--ligne);transition:background .3s,box-shadow .3s}
.hdr.stuck{background:rgba(13,7,9,.96);box-shadow:0 12px 40px -12px #000}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:10px 0}
.logo img{height:62px;width:auto;transition:height .3s}.hdr.stuck .logo img{height:52px}
.nav{display:flex;align-items:center;gap:34px}
.nav>ul{display:flex;gap:6px;align-items:center}
.nav>ul>li{position:relative}
.nav>ul>li>a{display:block;white-space:nowrap;padding:14px 12px;font-family:var(--f-label);font-weight:500;font-size:13.5px;letter-spacing:.16em;text-transform:uppercase;position:relative;transition:color .2s}
.nav>ul>li>a::after{content:"";position:absolute;left:14px;right:14px;bottom:8px;height:1px;background:var(--or);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav>ul>li:hover>a,.nav>ul>li>a.on{color:var(--or)}
.nav>ul>li:hover>a::after,.nav>ul>li>a.on::after{transform:scaleX(1)}
.mega{position:absolute;top:100%;left:50%;transform:translate(-50%,14px);width:min(640px,92vw);background:linear-gradient(180deg,#1d0f12,#120a0c);border:1px solid var(--ligne);border-radius:var(--r);padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;opacity:0;visibility:hidden;transition:.28s;box-shadow:0 30px 60px -20px #000}
.mega::before{content:"";position:absolute;top:-8px;left:calc(50% - 7px);width:14px;height:14px;background:#1d0f12;border-left:1px solid var(--ligne);border-top:1px solid var(--ligne);transform:rotate(45deg)}
.nav>ul>li:hover>.mega,.nav>ul>li:focus-within>.mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;font-size:15.5px;transition:background .2s,color .2s,padding .2s}
.mega a .ico{font-size:24px;color:var(--or)}
.mega a:hover{background:rgba(232,176,74,.1);color:var(--or2);padding-left:18px}
.burger{display:none;width:48px;height:48px;border:1px solid var(--or);border-radius:50%;background:transparent;color:var(--or);cursor:pointer;place-items:center;font-size:22px}
.burger[aria-expanded=true]{background:var(--or);color:var(--nuit)}

@media(max-width:1080px){
  .hdr{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(13,7,9,.97)}
  .burger{display:grid}
  .nav{position:fixed;inset:0 0 0 auto;width:min(380px,88vw);background:linear-gradient(180deg,#1a0d10,#0d0709);border-left:1px solid var(--ligne);flex-direction:column;align-items:stretch;justify-content:flex-start;gap:18px;padding:96px 24px 30px;overflow:auto;transform:translateX(105%);transition:transform .4s cubic-bezier(.2,.8,.2,1);z-index:120}
  .nav.open{transform:none;box-shadow:-30px 0 80px #000}
  .nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .nav>ul>li>a{padding:14px 6px;border-bottom:1px solid rgba(232,176,74,.12)}
  .nav>ul>li>a::after{display:none}
  .mega{position:static;transform:none;opacity:1;visibility:visible;width:auto;border:0;background:none;box-shadow:none;padding:6px 0 10px 8px;grid-template-columns:1fr;gap:0}
  .mega::before{display:none}
  .mega a{padding:8px 6px;font-size:15px}
  .burger{position:relative;z-index:130}
  .scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:110;opacity:0;visibility:hidden;transition:.3s}.scrim.on{opacity:1;visibility:visible}
}
@media(min-width:1081px){.scrim{display:none}}

/* ---------- HÉROS (slider) ---------- */
.hero{position:relative;min-height:calc(100vh - 118px);min-height:calc(100svh - 118px);max-height:980px;display:grid;overflow:hidden;background:#060304}
.slide{grid-area:1/1;position:relative;display:flex;align-items:center;opacity:0;visibility:hidden;transition:opacity 1.2s ease,visibility 1.2s;padding:90px 0 110px}
.slide.on{opacity:1;visibility:visible;z-index:2}
.slide__bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02)}
.slide.on .slide__bg{animation:kb 16s ease-out forwards}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
.slide::before{content:"";position:absolute;inset:0;z-index:1;background:
  linear-gradient(90deg,rgba(8,3,4,.94) 0,rgba(8,3,4,.78) 38%,rgba(8,3,4,.25) 75%,rgba(8,3,4,.5) 100%),
  radial-gradient(ellipse 60% 80% at 80% 50%,rgba(179,38,30,.35),transparent 70%)}
.slide::after{content:"";position:absolute;inset:auto 0 0 0;height:180px;z-index:1;background:linear-gradient(0deg,var(--nuit),transparent)}
.slide .wrap{position:relative;z-index:3}
.slide__txt{max-width:680px}
.slide h1{font-size:clamp(44px,6vw,88px);margin:20px 0 22px;font-weight:600;text-shadow:0 4px 40px rgba(0,0,0,.6)}
.slide p.lead{font-size:clamp(17px,1.5vw,20px);color:#eadfca;max-width:34em;margin-bottom:36px}
.slide .cta{display:flex;gap:16px;flex-wrap:wrap}
.slide .eyebrow,.slide h1,.slide p.lead,.slide .cta{opacity:0;transform:translateY(34px)}
.slide.on .eyebrow{animation:up .9s .3s forwards}.slide.on h1{animation:up 1s .5s forwards}.slide.on p.lead{animation:up 1s .75s forwards}.slide.on .cta{animation:up 1s .95s forwards}
@keyframes up{to{opacity:1;transform:none}}
.hero__veve{position:absolute;z-index:3;right:max(-120px,-6vw);top:50%;width:min(720px,56vw);transform:translateY(-50%);pointer-events:none;filter:drop-shadow(0 0 40px rgba(232,176,74,.25));opacity:.96}
.veve-art .r-slow{transform-origin:300px 300px;animation:spin 140s linear infinite}
.veve-art .r-slow2{transform-origin:300px 300px;animation:spin 200s linear infinite}
.veve-art .r-rev{transform-origin:300px 300px;animation:spin 110s linear infinite reverse}
.veve-art .r-cross{transform-origin:300px 300px;animation:spin 260s linear infinite}
.veve-art .breathe{transform-origin:300px 300px;animation:breathe 5s ease-in-out infinite}
.veve-art .flame{transform-origin:300px 205px;animation:flame 2.6s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.07)}}
@keyframes flame{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.12,1.2) rotate(3deg)}}
.hero__ui{position:absolute;z-index:6;left:0;right:0;bottom:54px}
.hero__ui .wrap{display:flex;align-items:center;gap:28px}
.dots{display:flex;gap:10px;align-items:center}
.dots button{width:46px;height:4px;border:0;border-radius:4px;background:rgba(244,234,213,.25);cursor:pointer;overflow:hidden;position:relative;padding:0}
.dots button i{position:absolute;inset:0;background:var(--or);transform:scaleX(0);transform-origin:left}
.dots button.on i{animation:fill var(--dur,7s) linear forwards}
.dots button.done i{transform:none}
@keyframes fill{to{transform:scaleX(1)}}
.count{font-family:var(--f-label);letter-spacing:.2em;color:var(--or);font-size:14px}
.arrows{margin-left:auto;display:flex;gap:10px}
.arrows button{width:50px;height:50px;border-radius:50%;border:1px solid var(--or);background:rgba(13,7,9,.5);color:var(--or);cursor:pointer;font-size:22px;display:grid;place-items:center;transition:.25s}
.arrows button:hover{background:var(--or);color:var(--nuit)}
.hero .band{position:absolute;z-index:7;left:0;right:0;bottom:0}
#embers{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
@media(max-width:900px){
  .hero__veve{width:120vw;right:-40vw;opacity:.2}
  .slide::before{background:linear-gradient(180deg,rgba(8,3,4,.72),rgba(8,3,4,.88))}
  .arrows{display:none}.hero__ui{bottom:62px}
}

/* ---------- Sections génériques ---------- */
.sec{position:relative;padding:120px 0;overflow-x:clip}
.sec--terre{background:linear-gradient(180deg,var(--terre),var(--nuit2));}
.sec--kaolin{background:var(--kaolin);color:#2b140d}
.sec--kaolin h2,.sec--kaolin h3{color:#2b140d}
.sec--kaolin .eyebrow{color:var(--brique)}.sec--kaolin .eyebrow::before{background:var(--brique)}
.sec--kaolin .divider{color:var(--ocre)}
.sec--kaolin::before{content:"";position:absolute;inset:0;background:var(--tex);opacity:.5;mix-blend-mode:multiply;pointer-events:none}
.head{text-align:center;max-width:780px;margin:0 auto 70px}
.head h2{font-size:clamp(38px,5vw,66px);margin-bottom:18px}
.head p{color:var(--fumee);font-size:18.5px}
.sec--kaolin .head p{color:#6a4a38}

/* ---------- À propos ---------- */
.about{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px;align-items:center}
.arch-wrap{position:relative;max-width:480px;margin-inline:auto;width:100%}
.arch-wrap::before{content:"";position:absolute;inset:-60px;background:url(../svg/veve-hero.svg) center/contain no-repeat;opacity:.18;animation:spin 240s linear infinite;pointer-events:none}
.arch{position:relative;aspect-ratio:4/5.3;border-radius:999px 999px 18px 18px;padding:12px;border:2px solid var(--or);background:linear-gradient(160deg,rgba(232,176,74,.25),transparent 40%);box-shadow:0 40px 80px -30px #000,0 0 0 10px rgba(232,176,74,.08)}
.arch>div,.arch>img{width:100%;height:100%;border-radius:999px 999px 10px 10px;object-fit:cover;overflow:hidden}
.arch__ph{display:grid;place-items:center;background:radial-gradient(circle at 50% 35%,#6a1d16,#1d0a0b 70%);text-align:center;color:var(--or);padding:30px}
.arch__ph svg{width:110px;height:110px;margin:0 auto 10px}
.arch__ph small{font-family:var(--f-label);letter-spacing:.2em;font-size:12px;text-transform:uppercase;color:var(--fumee);display:block}
.badge{position:absolute;right:-26px;bottom:60px;width:128px;height:128px;border-radius:50%;background:radial-gradient(circle,var(--rouge2),var(--brique));border:2px solid var(--or);display:grid;place-items:center;text-align:center;font-family:var(--f-label);font-size:12px;letter-spacing:.14em;text-transform:uppercase;line-height:1.4;box-shadow:0 20px 40px -10px #000;animation:float 6s ease-in-out infinite}
.badge b{display:block;font-family:var(--f-titre);font-size:42px;letter-spacing:0;color:var(--or2);line-height:1}
@keyframes float{50%{transform:translateY(-12px)}}
.about h2{font-size:clamp(40px,5vw,70px);margin:18px 0 24px}
.about p{color:#d9cbb4}
.about p.big{font-family:var(--f-titre);font-size:25px;line-height:1.4;color:var(--kaolin);font-style:italic}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px;margin:34px 0 40px}
.pillars li{display:flex;gap:14px;align-items:flex-start}
.pillars .ico{font-size:34px;color:var(--or);margin-top:2px}
.pillars b{display:block;font-family:var(--f-titre);font-size:22px;font-weight:600;line-height:1.2}
.pillars span{font-size:15px;color:var(--fumee);line-height:1.5;display:block}
@media(max-width:960px){.about{grid-template-columns:1fr;gap:70px}.badge{right:0}.pillars{grid-template-columns:1fr}}

/* ---------- Chiffres / valeurs ---------- */
.stats{position:relative;background:linear-gradient(90deg,var(--brique),#5b0f0c 50%,var(--brique));border-block:1px solid var(--or);padding:54px 0;overflow:hidden}
.stats::before{content:"";position:absolute;inset:0;background:var(--tex);opacity:.8}
.stats ul{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.stats li{padding:6px 10px;border-right:1px solid rgba(232,176,74,.3)}.stats li:last-child{border:0}
.stats b{display:block;font-family:var(--f-titre);font-size:clamp(44px,5vw,70px);font-weight:600;color:var(--or2);line-height:1}
.stats span{font-family:var(--f-label);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:#f2d9bb}
@media(max-width:760px){.stats ul{grid-template-columns:1fr 1fr;gap:34px 0}.stats li:nth-child(2){border:0}}

/* ---------- Rituels (cartes) ---------- */
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.rcard{--img:none;position:relative;isolation:isolate;display:flex;flex-direction:column;gap:12px;padding:40px 32px 34px;border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#1f1013,#130a0c);border:1px solid var(--ligne);transition:transform .4s,border-color .4s,box-shadow .4s}
.rcard .rbg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;opacity:0;transform:scale(1.15);transition:opacity .6s,transform 1.2s}
.rcard::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,7,9,.55),rgba(13,7,9,.92) 70%);opacity:0;transition:opacity .5s}
.rcard:hover{transform:translateY(-8px);border-color:var(--or);box-shadow:0 30px 60px -20px #000,0 0 0 1px var(--or)}
.rcard:hover .rbg{opacity:.75;transform:scale(1)}.rcard:hover::after{opacity:1}
.rcard .num{position:absolute;top:18px;right:24px;font-family:var(--f-titre);font-style:italic;font-size:56px;line-height:1;color:rgba(232,176,74,.16);transition:color .4s}
.rcard:hover .num{color:rgba(232,176,74,.45)}
.medal{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:44px;color:var(--or);border:1px solid var(--or);background:radial-gradient(circle,rgba(179,38,30,.5),rgba(13,7,9,.2) 70%);position:relative;margin-bottom:6px;transition:transform .5s,background .4s}
.medal::before{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px dashed rgba(232,176,74,.5);animation:spin 40s linear infinite}
.rcard:hover .medal{transform:scale(1.08) rotate(-6deg);background:radial-gradient(circle,var(--rouge2),var(--brique))}
.rcard h3{font-size:31px}
.rcard p{color:#cdbda6;font-size:16px;margin:0}
.rcard .more{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:10px;font-family:var(--f-label);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--or)}
.rcard .more .ico{transition:transform .3s}.rcard:hover .more .ico{transform:translateX(6px)}
@media(max-width:1000px){.rgrid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.rgrid{grid-template-columns:1fr}}

/* ---------- Le Fa (bandeau signes) ---------- */
.fa{position:relative;padding:70px 0;background:linear-gradient(180deg,var(--nuit2),#1d0d0d);border-block:1px solid var(--ligne);text-align:center;overflow:hidden}
.fa h2{font-size:clamp(32px,4vw,52px);margin:12px 0 10px}
.fa p{max-width:680px;margin:0 auto 34px;color:var(--fumee)}
.fa__row{display:flex;justify-content:center;gap:clamp(10px,2.4vw,34px);flex-wrap:wrap}
.odu{display:flex;flex-direction:column;gap:9px;align-items:center;opacity:.85;transition:.3s}
.odu:hover{opacity:1;transform:translateY(-6px)}
.odu i{display:flex;gap:7px}.odu i::before,.odu i::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--kaolin)}
.odu i.s::after{display:none}
.odu i.s::before{background:var(--or)}

/* ---------- Pourquoi / Étapes ---------- */
.why{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.why>div{text-align:center;padding:10px 20px}
.why .medal{margin:0 auto 22px;width:96px;height:96px;font-size:50px}
.why h3{font-size:34px;margin-bottom:10px}
.sec--kaolin .why p{color:#6a4a38}
.sec--kaolin .why .medal{background:radial-gradient(circle,var(--brique),#3b0b09);color:var(--or2)}
@media(max-width:860px){.why{grid-template-columns:1fr}}
.steps{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:40px;counter-reset:s}
.steps::before{content:"";position:absolute;left:8%;right:8%;top:46px;border-top:2px dotted var(--or);opacity:.55}
.step{position:relative;text-align:center;padding:0 12px}
.step .n{position:relative;width:92px;height:92px;margin:0 auto 24px;display:grid;place-items:center;font-family:var(--f-titre);font-style:italic;font-weight:600;font-size:48px;color:var(--or2);border-radius:50%;background:radial-gradient(circle,var(--rouge2),var(--brique));border:2px solid var(--or);box-shadow:0 0 0 8px var(--nuit),0 0 40px rgba(179,38,30,.6)}
.step h3{font-size:30px;margin-bottom:10px}.step p{color:#cdbda6;font-size:16.5px}
@media(max-width:860px){.steps{grid-template-columns:1fr;gap:50px}.steps::before{display:none}}

/* ---------- Galerie ---------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:14px}
.gal a{position:relative;overflow:hidden;border-radius:12px;border:1px solid var(--ligne);cursor:zoom-in}
.gal a:nth-child(1){grid-column:span 2;grid-row:span 2}.gal a:nth-child(4){grid-column:span 2}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s,filter .5s;filter:saturate(1.1)}
.gal a::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,7,9,.55),transparent 50%);opacity:.8;transition:.4s}
.gal a:hover img{transform:scale(1.1)}.gal a:hover::after{opacity:.2}
@media(max-width:860px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:170px}.gal a:nth-child(n){grid-column:auto;grid-row:auto}.gal a:nth-child(1){grid-column:span 2}}
.lb{position:fixed;inset:0;z-index:300;background:rgba(5,2,3,.94);display:none;place-items:center;padding:30px}
.lb.on{display:grid}.lb img{max-height:88vh;max-width:92vw;border-radius:10px;border:1px solid var(--or);box-shadow:0 30px 120px #000}
.lb button{position:absolute;top:22px;right:26px;width:52px;height:52px;border-radius:50%;border:1px solid var(--or);background:transparent;color:var(--or);font-size:24px;cursor:pointer;display:grid;place-items:center}

/* ---------- Témoignages ---------- */
.temo{position:relative}
.temo__track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;padding:10px 4px 30px;scrollbar-width:none}
.temo__track::-webkit-scrollbar{display:none}
.tcard{flex:0 0 min(440px,86%);scroll-snap-align:start;position:relative;background:#fff8e8;color:#3a1f14;border-radius:18px 18px 18px 60px;padding:44px 34px 30px;box-shadow:0 24px 50px -24px rgba(0,0,0,.6);border-top:5px solid var(--rouge)}
.tcard .q{position:absolute;top:-22px;left:30px;width:52px;height:52px;border-radius:50%;background:var(--rouge);color:var(--or2);display:grid;place-items:center;font-size:26px;border:2px solid var(--or)}
.tcard p{font-family:var(--f-titre);font-size:22px;font-style:italic;line-height:1.45;margin:0 0 22px;font-weight:500}
.tcard footer{display:flex;align-items:center;gap:14px}
.av{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,var(--rouge2),var(--brique));color:var(--or2);font-family:var(--f-titre);font-size:22px;font-weight:600}
.tcard b{display:block;font-family:var(--f-label);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--brique)}
.tcard small{color:#8a6a56;font-size:13.5px}
.temo__nav{display:flex;justify-content:center;gap:12px;margin-top:10px}
.temo__nav button{width:52px;height:52px;border-radius:50%;border:1px solid var(--or);background:transparent;color:var(--or);font-size:22px;cursor:pointer;display:grid;place-items:center;transition:.25s}
.temo__nav button:hover{background:var(--or);color:var(--nuit)}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 26px}
.tgrid .tcard{flex:none}
@media(max-width:1000px){.tgrid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.tgrid{grid-template-columns:1fr}}

/* ---------- Appel final ---------- */
.final{position:relative;overflow:hidden;text-align:center;padding:140px 0;background:radial-gradient(ellipse at center,#4d1410 0,var(--nuit) 72%);border-top:1px solid var(--ligne)}
.final .vv{position:absolute;left:50%;top:50%;width:min(900px,120vw);transform:translate(-50%,-50%);opacity:.22;pointer-events:none}
.final .wrap{position:relative;z-index:3}
.final h2{font-size:clamp(42px,6.4vw,92px);margin:20px 0 20px}
.final p{max-width:560px;margin:0 auto 38px;color:#dccdb6;font-size:19px}
.final .cta{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* ---------- Pied de page ---------- */
.foot{background:#070304;color:var(--fumee);font-size:15.5px;position:relative}
.foot__in{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:50px;padding:80px 0 50px}
.foot img.fl{height:70px;width:auto;margin-bottom:20px}
.foot h4{font-family:var(--f-label);font-weight:500;font-size:14px;letter-spacing:.22em;text-transform:uppercase;color:var(--or);margin-bottom:22px}
.foot li{margin-bottom:10px}.foot a{transition:color .2s}.foot a:hover{color:var(--or2)}
.foot .ct{display:flex;gap:12px;align-items:flex-start;margin-bottom:14px}.foot .ct .ico{color:var(--or);font-size:20px;margin-top:3px}
.foot__bas{border-top:1px solid rgba(232,176,74,.14);padding:22px 0 90px;text-align:center;font-size:13.5px}
.foot__bas small{display:block;margin-top:6px;opacity:.7;max-width:760px;margin-inline:auto}
@media(max-width:960px){.foot__in{grid-template-columns:1fr 1fr}}@media(max-width:560px){.foot__in{grid-template-columns:1fr}}
.wa{position:fixed;right:20px;bottom:20px;z-index:90;width:62px;height:62px;border-radius:50%;background:linear-gradient(180deg,#25c869,#128c4a);color:#fff;display:grid;place-items:center;font-size:32px;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.wa::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25c869;animation:ping 2.4s infinite}
@keyframes ping{to{transform:scale(1.7);opacity:0}}
.top{position:fixed;right:28px;bottom:96px;z-index:90;width:46px;height:46px;border-radius:50%;border:1px solid var(--or);background:rgba(13,7,9,.8);color:var(--or);display:grid;place-items:center;font-size:20px;opacity:0;visibility:hidden;transition:.3s;cursor:pointer}
.top.on{opacity:1;visibility:visible}.top .ico{transform:rotate(-90deg)}

/* ---------- Pages intérieures ---------- */
.phero{position:relative;padding:110px 0 90px;text-align:center;overflow:hidden;isolation:isolate}
.phero__bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:center;transform:scale(1.05)}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,3,4,.8),rgba(8,3,4,.55) 50%,var(--nuit)),radial-gradient(ellipse at 50% 100%,rgba(179,38,30,.4),transparent 70%)}
.phero h1{font-size:clamp(44px,6.5vw,92px);margin:16px 0 18px}
.phero p.sub{max-width:660px;margin:0 auto 18px;color:#e2d4bc;font-size:19px}
.crumbs{display:flex;justify-content:center;gap:12px;font-family:var(--f-label);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--fumee)}
.crumbs a:hover{color:var(--or)}.crumbs .sep{color:var(--or)}

.svc{display:grid;grid-template-columns:1fr 340px;gap:60px;align-items:start}
.svc__photo{position:relative;border-radius:var(--r);overflow:hidden;aspect-ratio:16/9;border:1px solid var(--or);margin-bottom:44px;box-shadow:0 30px 60px -30px #000}
.svc__photo img{width:100%;height:100%;object-fit:cover}
.svc__photo .medal{position:absolute;left:24px;bottom:24px;background:rgba(13,7,9,.8);backdrop-filter:blur(6px)}
.svc h2{font-size:clamp(34px,4vw,52px);margin-bottom:16px}
.svc .intro{font-family:var(--f-titre);font-size:26px;line-height:1.4;font-style:italic;color:var(--kaolin);margin-bottom:24px}
.svc p{color:#d9cbb4}
.checks{display:grid;gap:14px;margin:30px 0}
.checks li{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border:1px solid var(--ligne);border-radius:12px;background:rgba(232,176,74,.04)}
.checks .ico{font-size:22px;color:var(--nuit);background:var(--or);border-radius:50%;padding:4px;margin-top:2px}
.note{display:flex;gap:16px;padding:22px 24px;border-radius:12px;background:rgba(179,38,30,.14);border:1px solid rgba(214,58,42,.45);font-size:15.5px;color:#e8d8c0;margin:30px 0}
.note .ico{font-size:28px;color:var(--or);margin-top:2px}
.side{position:sticky;top:110px;display:grid;gap:24px}
.side__box{border:1px solid var(--ligne);border-radius:var(--r);background:linear-gradient(160deg,#1d0f12,#120a0c);padding:28px}
.side__box h3{font-size:28px;margin-bottom:16px}
.side__list a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;font-size:16px;transition:.25s}
.side__list a .ico{font-size:22px;color:var(--or)}
.side__list a:hover,.side__list a.on{background:rgba(232,176,74,.12);color:var(--or2);padding-left:18px}
.side__cta{text-align:center;background:linear-gradient(160deg,var(--rouge),var(--brique));border-color:var(--or)}
.side__cta p{color:#f3dcc0;font-size:15.5px}.side__cta .btn{width:100%;justify-content:center;margin-bottom:10px}
@media(max-width:1000px){.svc{grid-template-columns:1fr}.side{position:static}}

/* ---------- Formulaires ---------- */
.formgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:start}
.form{background:linear-gradient(160deg,#1d0f12,#120a0c);border:1px solid var(--ligne);border-radius:20px;padding:clamp(26px,4vw,52px);position:relative}
.form::before{content:"";position:absolute;inset:8px;border:1px solid rgba(232,176,74,.14);border-radius:14px;pointer-events:none}
.form h2{font-size:clamp(34px,4vw,50px);margin-bottom:8px}
.form .lead{color:var(--fumee);margin-bottom:28px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:block;margin-bottom:18px}
.fld>span{display:block;font-family:var(--f-label);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--or);margin-bottom:8px}
.fld input,.fld select,.fld textarea{width:100%;padding:15px 18px;border-radius:10px;border:1px solid rgba(232,176,74,.3);background:rgba(244,234,213,.05);color:var(--kaolin);font:inherit;font-size:16px;transition:border-color .2s,background .2s,box-shadow .2s}
.fld select option{background:#1a0d10;color:var(--kaolin)}
.fld textarea{min-height:150px;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:#8c7a69}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--or);background:rgba(244,234,213,.09);box-shadow:0 0 0 4px rgba(232,176,74,.14)}
.hp{position:absolute;left:-9999px;opacity:0}
.alert{padding:18px 22px;border-radius:12px;margin-bottom:26px;font-size:16px;display:flex;gap:14px;align-items:flex-start}
.alert--ok{background:rgba(37,200,105,.12);border:1px solid #25c869;color:#c9f5da}
.alert--ko{background:rgba(214,58,42,.14);border:1px solid var(--rouge2);color:#ffd9d3}
.alert .ico{font-size:24px;margin-top:2px}
.secure{display:flex;gap:10px;align-items:center;margin-top:18px;color:var(--fumee);font-size:14px}.secure .ico{color:var(--or);font-size:18px}
.info{display:grid;gap:22px}
.info__card{display:flex;gap:18px;padding:26px;border:1px solid var(--ligne);border-radius:var(--r);background:rgba(232,176,74,.04);transition:.3s}
.info__card:hover{border-color:var(--or);transform:translateX(6px)}
.info__card .medal{width:62px;height:62px;font-size:30px;margin:0}.info__card .medal::before{inset:-5px}
.info__card h3{font-size:26px;margin-bottom:4px}.info__card p,.info__card a{margin:0;color:#d9cbb4;font-size:16px;word-break:break-word}
.info__photo{border-radius:var(--r);overflow:hidden;border:1px solid var(--or);aspect-ratio:16/10}.info__photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:960px){.formgrid{grid-template-columns:1fr}.row{grid-template-columns:1fr}}

/* ---------- FAQ ---------- */
.faq{max-width:900px;margin:0 auto;display:grid;gap:14px}
.faq details{border:1px solid var(--ligne);border-radius:14px;background:linear-gradient(160deg,#1d0f12,#130a0c);transition:border-color .3s}
.faq details[open]{border-color:var(--or)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:22px 26px;font-family:var(--f-titre);font-size:26px;font-weight:600;line-height:1.2}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ico{margin-left:auto;font-size:26px;color:var(--or);transition:transform .35s}
.faq details[open] summary .ico{transform:rotate(135deg)}
.faq details>div{padding:0 26px 26px;color:#d9cbb4}
.faq details>div p{margin:0}

/* ---------- Révélations ---------- */
.js .rv{opacity:0;transform:translateY(46px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .rv.l{transform:translateX(-60px)}.js .rv.r{transform:translateX(60px)}.js .rv.l.in,.js .rv.r.in{transform:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .rv{opacity:1;transform:none}.slide .eyebrow,.slide h1,.slide p.lead,.slide .cta{opacity:1;transform:none}
}
@media(max-width:640px){body{font-size:16.5px}.sec{padding:84px 0}.head{margin-bottom:48px}.topbar .l{gap:14px}.final{padding:100px 0}}
