
:root{
  --rouge:#e02b20;      /* rouge Cardio Défi — boutons, accents */
  --bordeaux:#af1f23;   /* titres */
  --nuit:#2b0b0d;       /* bandeau sombre */
  --encre:#2a2627;      /* texte fort */
  --texte:#5c5657;      /* texte courant */
  --rose:#fdf1ef;       /* fond de section alterné */
  --trait:#ece6e5;
  --blanc:#fff;
  --r-lg:28px; --r-md:16px; --r-sm:10px;
  --wrap:1200px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Figtree,system-ui,sans-serif;font-size:17px;line-height:1.6;color:var(--texte);background:var(--blanc);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
:focus-visible{outline:3px solid var(--rouge);outline-offset:3px;border-radius:6px}
h1,h2,h3,.disp{font-family:Comfortaa,system-ui,sans-serif;color:var(--encre);font-weight:700;letter-spacing:-.01em;line-height:1.15}
h2{font-size:clamp(28px,3.4vw,40px);color:var(--bordeaux)}
h3{font-size:19px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
section{padding:96px 0}
.lead{font-size:19px;max-width:620px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:Comfortaa,sans-serif;font-weight:700;font-size:15px;padding:15px 26px;border-radius:100px;border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.btn-rouge{background:var(--rouge);color:#fff}
.btn-rouge:hover{background:var(--bordeaux)}
.btn-ligne{border-color:var(--encre);color:var(--encre)}
.btn-ligne:hover{background:var(--encre);color:#fff}
.btn-blanc{background:#fff;color:var(--bordeaux)}
.btn-blanc:hover{background:var(--rose)}

/* ---------- barre haute ---------- */
.topbar{background:var(--nuit);color:#e9d9d8;font-size:14px}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px}
.topbar .infos{display:flex;gap:22px;flex-wrap:wrap}
.topbar .infos a{color:#fff;font-weight:600}
.topbar .infos span{display:inline-flex;align-items:center;gap:7px}
.espaces{display:flex;gap:8px}
.espaces a{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:100px;font-weight:600;font-size:14px;color:#fff;border:1px solid rgba(255,255,255,.25);transition:background .2s}
.espaces a:hover{background:rgba(255,255,255,.12)}
.espaces a.formateur{background:var(--rouge);border-color:var(--rouge)}
.espaces a.formateur:hover{background:#c4241a}

/* ---------- navigation ---------- */
.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--trait)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:86px}
.nav .logo img{height:52px;width:auto}
.menu{display:flex;gap:2px;margin-left:auto;list-style:none;align-items:center;flex-wrap:nowrap}
.menu>li{position:relative}
.menu>li>a,.menu>li>button{display:flex;align-items:center;gap:6px;font-family:Comfortaa,sans-serif;font-weight:700;font-size:15px;color:var(--encre);padding:12px 13px;white-space:nowrap;border-radius:100px;background:none;border:0;cursor:pointer}
.menu>li>a:hover,.menu>li>button:hover,.menu>li.open>button{color:var(--rouge)}
.menu .chev{transition:transform .2s}
.menu li.open .chev{transform:rotate(180deg)}
.nav .btn{padding:12px 20px;font-size:14px}
.mega{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%);width:640px;background:#fff;border-radius:var(--r-md);box-shadow:0 24px 60px rgba(43,11,13,.16);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:4px;opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s}
.mega.small{width:300px;grid-template-columns:1fr}
.menu li.open .mega{opacity:1;visibility:visible}
.mega a{display:flex;align-items:center;gap:14px;padding:10px 12px;border-radius:12px;font-weight:600;color:var(--encre);font-size:15.5px}
.mega a:hover{background:var(--rose)}
.ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--rose);color:var(--rouge)}
.ico svg{width:22px;height:22px}
.burger{display:none;margin-left:auto;background:none;border:0;width:46px;height:46px;border-radius:50%;cursor:pointer}
.burger span{display:block;width:22px;height:2px;background:var(--encre);margin:5px auto;border-radius:2px}

/* ---------- hero ---------- */
.hero{position:relative;padding:72px 0 88px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;position:relative;z-index:2}
.hero h1{font-size:clamp(36px,4.4vw,60px);line-height:1.08;color:var(--encre);margin-bottom:24px}
.hero h1 span{display:block;white-space:nowrap}
.hero h1 .l2{color:var(--bordeaux)}
.hero .lead{margin-bottom:34px}
.hero .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px}
.preuves{display:flex;gap:30px;flex-wrap:wrap;align-items:center;padding-top:28px;border-top:1px solid var(--trait)}
.preuves div{font-size:14.5px;line-height:1.35}
.preuves b{display:block;font-family:Comfortaa,sans-serif;font-size:24px;color:var(--encre)}
.preuves img{height:46px;width:auto}
.ecg{position:absolute;left:0;right:0;bottom:-12px;width:100%;height:220px;z-index:1;pointer-events:none}
.ecg path{fill:none;stroke:var(--rouge);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.3;stroke-dasharray:2600;stroke-dashoffset:2600;animation:trace 2.6s cubic-bezier(.6,.05,.3,1) .2s forwards}
@keyframes trace{to{stroke-dashoffset:0}}
.visuel{position:relative;aspect-ratio:1/1;max-width:560px;justify-self:end;width:100%}
.visuel .tri{position:absolute;inset:0;clip-path:url(#triangle);background:var(--rouge)}
.visuel .tri img{width:100%;height:100%;object-fit:cover;object-position:35% 50%}
.visuel .carte-fr{position:absolute;left:-36px;bottom:4%;background:#fff;border-radius:22px;box-shadow:0 22px 50px rgba(43,11,13,.2);padding:16px 22px 16px 14px;display:flex;gap:14px;align-items:center;width:340px}
.carte-fr svg.fr{width:150px;height:auto;flex:none;overflow:visible}
.carte-fr .pays{fill:#fbe9e7;stroke:#f0c3be;stroke-width:2;stroke-linejoin:round}
.carte-fr .coeur{fill:var(--rouge);transform-box:fill-box;transform-origin:50% 60%;animation:bat 1.4s ease-in-out infinite}
.carte-fr .onde{fill:none;stroke:var(--rouge);stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center;animation:onde 1.4s ease-out infinite}
.carte-fr g:nth-of-type(2) .coeur,.carte-fr g:nth-of-type(2) .onde{animation-delay:.35s}
.carte-fr g:nth-of-type(3) .coeur,.carte-fr g:nth-of-type(3) .onde{animation-delay:.7s}
.carte-fr g:nth-of-type(4) .coeur,.carte-fr g:nth-of-type(4) .onde{animation-delay:1.05s}
.carte-fr b{display:block;color:var(--encre);font-family:Comfortaa,sans-serif;font-size:16px;line-height:1.25;margin-bottom:6px}
.carte-fr ul{list-style:none;font-size:14px;line-height:1.55}
.carte-fr li{display:flex;align-items:center;gap:7px}
.carte-fr li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--rouge)}
.carte-fr .tous{display:block;margin-top:6px;font-size:13px;color:var(--bordeaux);font-weight:600}
@keyframes bat{0%,100%{transform:scale(1)}12%{transform:scale(1.35)}24%{transform:scale(1)}36%{transform:scale(1.22)}56%{transform:scale(1)}}
@keyframes onde{0%{opacity:.55;transform:scale(.4)}70%,100%{opacity:0;transform:scale(1.6)}}

/* ---------- formations ---------- */
.formations{background:var(--rose);border-radius:var(--r-lg) var(--r-lg) 0 0}
.tete{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:44px;flex-wrap:wrap}
.tete p{max-width:520px}
.grille-f{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:14px}
.f{background:#fff;border-radius:var(--r-md);padding:22px;display:flex;gap:16px;align-items:flex-start;transition:box-shadow .2s,transform .2s;border:1px solid transparent}
.f:hover{box-shadow:0 14px 34px rgba(175,31,35,.12);border-color:#f3d4d1}
.f h3{margin-bottom:4px}
.f p{font-size:15px;line-height:1.5}
.f.cta{background:var(--encre);color:#d9cfce}
.f.cta h3{color:#fff}
.f.cta .ico{background:rgba(255,255,255,.1);color:#fff}
.f.cta:hover{box-shadow:none;border-color:transparent;background:#000}
.f.vedette{grid-row:span 4;flex-direction:column;padding:0;overflow:hidden;background:var(--bordeaux);color:#f7e3e1}
.f.vedette img{width:100%;height:58%;object-fit:cover;flex:1}
.f.vedette .in{padding:26px 28px 30px}
.f.vedette h3{color:#fff;font-size:26px;margin-bottom:8px}
.f.vedette .ico{background:rgba(255,255,255,.14);color:#fff;margin-bottom:14px}
.f.vedette p{font-size:16px}
.f .plus{display:inline-block;margin-top:14px;font-weight:700;color:#fff;border-bottom:2px solid rgba(255,255,255,.5);padding-bottom:2px}

/* ---------- unité mobile ---------- */
.mobile{padding:0;background:var(--rose)}
.mobile .carte{background:var(--nuit);border-radius:var(--r-lg);display:grid;grid-template-columns:1fr 1.1fr;overflow:hidden;color:#e9d9d8}
.mobile .txt{padding:64px 56px}
.mobile h2{color:#fff;margin-bottom:18px}
.mobile ul{list-style:none;margin:24px 0 32px;display:grid;gap:12px}
.mobile li{display:flex;gap:12px;align-items:flex-start}
.mobile li::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--rouge);margin-top:9px;flex:none}
.mobile .photo{background:url("https://www.cardio-defi.com/wp-content/uploads/2026/05/Unite-mobile-banniere-scaled.webp") center/cover;min-height:420px}

/* ---------- boutique ---------- */
.filtres{display:flex;gap:8px;flex-wrap:wrap}
.filtres button{font:600 15px Figtree,sans-serif;padding:10px 18px;border-radius:100px;border:1px solid var(--trait);background:#fff;color:var(--encre);cursor:pointer}
.filtres button:hover{border-color:var(--rouge)}
.filtres button.on{background:var(--encre);border-color:var(--encre);color:#fff}
.produits{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.prod{border:1px solid var(--trait);border-radius:var(--r-md);overflow:hidden;display:flex;flex-direction:column;background:#fff;transition:box-shadow .2s}
.prod:hover{box-shadow:0 16px 40px rgba(43,11,13,.1)}
.prod .vis{position:relative;background:#f6f4f4;aspect-ratio:4/3;display:grid;place-items:center;padding:18px}
.prod .vis img{max-height:100%;width:auto;object-fit:contain;mix-blend-mode:multiply}
.prod .etiq{position:absolute;left:14px;top:14px;background:var(--rouge);color:#fff;font-size:12.5px;font-weight:700;padding:4px 10px;border-radius:100px}
.prod .in{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.prod.large{grid-column:span 2;flex-direction:row}
.prod.large .vis{flex:1;aspect-ratio:auto}
.prod.large .in{flex:1;padding:30px 32px;justify-content:center}
.prod.large h3{font-size:23px}
.prod.large p{flex:none}
.prod.volume{background:var(--nuit);color:#e9d9d8;border-color:var(--nuit);justify-content:center;padding:30px 28px}
.prod.volume h3{color:#fff;font-size:21px;margin-bottom:10px}
.prod.volume p{flex:none;margin-bottom:22px}
.prod.volume .btn{align-self:flex-start}
.prod.volume.wide{grid-column:span 2;padding:40px 44px}
.prod.volume.wide p{max-width:520px}
.prod h3{font-size:18px;margin-bottom:6px}
.prod p{font-size:14.5px;line-height:1.5;flex:1}
.prix{margin:16px 0 14px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.prix b{font-family:Comfortaa,sans-serif;font-size:26px;color:var(--encre)}
.prix span{font-size:13.5px}
.prix.devis b{font-size:18px;color:var(--bordeaux)}
.achat{display:flex;gap:10px}
.qte{display:flex;align-items:center;border:1px solid var(--trait);border-radius:100px;overflow:hidden;flex:none}
.qte button{width:38px;height:44px;border:0;background:none;font-size:18px;cursor:pointer;color:var(--encre)}
.qte button:hover{background:var(--rose)}
.qte input{width:38px;border:0;text-align:center;font:600 15px Figtree,sans-serif;color:var(--encre);-moz-appearance:textfield}
.qte input::-webkit-inner-spin-button{-webkit-appearance:none}
.achat .btn{flex:1;justify-content:center;padding:12px 16px;font-size:14px}
.garanties{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px;padding:28px 30px;border-radius:var(--r-md);background:var(--rose);font-size:14.5px;line-height:1.45}
.garanties b{display:block;color:var(--encre);font-family:Comfortaa,sans-serif;font-size:15px;margin-bottom:4px}
.panier-btn{position:relative;width:48px;height:48px;border-radius:50%;border:1px solid var(--trait);background:#fff;color:var(--encre);display:grid;place-items:center;cursor:pointer;flex:none}
.panier-btn:hover{border-color:var(--rouge);color:var(--rouge)}
.badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:100px;background:var(--rouge);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}
.badge[hidden]{display:none}
.voile{position:fixed;inset:0;background:rgba(29,17,18,.45);z-index:60}
.tiroir{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:#fff;z-index:61;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s ease;box-shadow:-20px 0 50px rgba(0,0,0,.15)}
.tiroir.ouvert{transform:none}
.tiroir-tete{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--trait)}
.fermer{width:38px;height:38px;border-radius:50%;border:0;background:var(--rose);font-size:22px;cursor:pointer;color:var(--encre)}
.tiroir-corps{flex:1;overflow:auto;padding:8px 24px}
.ligne{display:flex;gap:14px;align-items:center;padding:16px 0;border-bottom:1px solid var(--trait)}
.ligne img{width:58px;height:58px;object-fit:contain;background:#f6f4f4;border-radius:10px;padding:4px;mix-blend-mode:multiply}
.ligne .nom{flex:1;font-size:14.5px;line-height:1.35;color:var(--encre);font-weight:600}
.ligne .nom span{display:block;font-weight:400;color:var(--texte);font-size:13.5px}
.ligne .qte button{width:30px;height:34px}
.ligne .qte input{width:30px}
.tiroir-pied{padding:20px 24px 24px;border-top:1px solid var(--trait);background:#fcfafa}
.tot{display:flex;justify-content:space-between;font-size:15px;margin-bottom:6px}
.tot.ttc{font-family:Comfortaa,sans-serif;font-weight:700;color:var(--encre);font-size:19px;margin:10px 0 18px}
.tiroir-pied .btn{width:100%;justify-content:center;margin-bottom:10px}
.vide{text-align:center;padding:60px 10px;color:var(--texte)}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--encre);color:#fff;padding:13px 22px;border-radius:100px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:70}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- avis ---------- */
.avis-tete{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:36px}
.note-g{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--trait);border-radius:var(--r-md);padding:14px 20px}
.note-g .g{width:38px;height:38px}
.note-g b{display:block;font-family:Comfortaa,sans-serif;color:var(--encre);font-size:17px}
.note-g span[data-g]{font-size:13.5px}
.etoiles{color:#fbbc05;letter-spacing:2px;font-size:16px}
.avis-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.carte-avis{background:#fff;border:1px solid var(--trait);border-radius:var(--r-md);padding:24px}
.carte-avis .qui{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.carte-avis .av{width:42px;height:42px;border-radius:50%;background:var(--rose)}
.sk{display:block;height:11px;border-radius:6px;background:#efe9e8;margin:8px 0}
.carte-avis .etoiles{display:block;margin-bottom:6px}
.avis-info{margin-top:18px;font-size:14px;background:#fff8e6;border:1px dashed #e8c768;color:#6b5000;border-radius:12px;padding:12px 16px}
.avis-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* ---------- chiffres ---------- */
.chiffres{background:var(--bordeaux);color:#f7e3e1;position:relative;overflow:hidden}
.chiffres h2{color:#fff;max-width:520px}
.chiffres .row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin-top:48px;border-top:1px solid rgba(255,255,255,.25)}
.chiffres .c{padding:30px 28px 0 0}
.chiffres .c + .c{padding-left:28px;border-left:1px solid rgba(255,255,255,.25)}
.chiffres .n{font-family:Comfortaa,sans-serif;font-weight:700;color:#fff;font-size:clamp(46px,6vw,76px);line-height:1}
.chiffres .n small{font-size:.45em;margin-left:4px}
.chiffres .ecg2{position:absolute;right:-40px;top:24px;width:560px;opacity:.18}
.chiffres .ecg2 path{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}

/* ---------- engagements ---------- */
.eng .grille{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 48px;margin-top:48px}
.eng .ico{margin-bottom:16px;width:52px;height:52px}
.eng .ico svg{width:26px;height:26px}
.eng h3{margin-bottom:8px}

/* ---------- formateurs ---------- */
.recrut{padding-top:0}
.recrut .carte{border:2px dashed #f0b9b4;border-radius:var(--r-lg);padding:48px 52px;display:flex;gap:40px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(120deg,#fff 0%,var(--rose) 100%)}
.recrut h2{font-size:clamp(26px,3vw,34px);margin-bottom:10px}
.recrut p{max-width:560px}

/* ---------- FAQ ---------- */
.faq{background:var(--rose)}
.faq .grille{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px}
details{background:#fff;border-radius:var(--r-md);padding:4px 24px;margin-bottom:12px}
summary{list-style:none;cursor:pointer;padding:20px 36px 20px 0;font-family:Comfortaa,sans-serif;font-weight:700;color:var(--encre);font-size:17px;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:4px;top:50%;width:12px;height:12px;border-right:2.5px solid var(--rouge);border-bottom:2.5px solid var(--rouge);transform:translateY(-70%) rotate(45deg);transition:transform .2s}
details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
details p{padding-bottom:22px}

/* ---------- contact ---------- */
.contact .grille{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.contact .boite{background:var(--nuit);color:#e9d9d8;border-radius:var(--r-lg);padding:40px}
.contact .boite h3{color:#fff;font-size:20px;margin-bottom:18px}
.pers{padding:16px 0;border-top:1px solid rgba(255,255,255,.15)}
.pers b{color:#fff;display:block}
.pers a{color:#fff;font-weight:600}
.contact .ctas{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* ---------- pied ---------- */
footer{background:#1d1112;color:#bfaeac;font-size:15px;padding:64px 0 30px}
footer .cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px}
footer h4{font-family:Comfortaa,sans-serif;color:#fff;font-size:16px;margin-bottom:14px}
footer ul{list-style:none;display:grid;gap:8px}
footer a:hover{color:#fff}
footer .logo-b{background:#fff;border-radius:14px;padding:10px 14px;display:inline-block;margin-bottom:16px}
footer .logo-b img{height:44px}
footer .bas{margin-top:48px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13.5px}

/* ---------- responsive ---------- */
@media (max-width:1320px){
  .nav > .wrap > .btn{display:none}
  .menu>li>a,.menu>li>button{padding:12px 11px}
}
@media (max-width:1100px){
  .menu{display:none}
  .burger{display:block}
  .panier-btn{margin-left:auto;order:1}
  .nav > .wrap > .btn{order:2;display:inline-flex}
  .burger{margin-left:0;order:3}
  .menu.ouvert{display:flex;position:absolute;top:86px;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;padding:12px 16px 20px;border-bottom:1px solid var(--trait);box-shadow:0 20px 40px rgba(0,0,0,.08);max-height:calc(100vh - 86px);overflow:auto}
  .menu.ouvert .mega{position:static;transform:none;width:auto;box-shadow:none;display:none;opacity:1;visibility:visible;grid-template-columns:1fr;padding:0 0 8px}
  .menu.ouvert li.open .mega{display:grid}
}
@media (max-width:960px){
  section{padding:72px 0}
  .ecg{display:none}
  .hero .wrap,.mobile .carte,.faq .grille,.contact .grille{grid-template-columns:1fr}
  .visuel{justify-self:center;max-width:440px}
  .grille-f{grid-template-columns:1fr 1fr}
  .f.vedette{grid-row:auto;grid-column:1/-1}
  .f.vedette img{height:240px;flex:none}
  .produits,.avis-grille,.eng .grille{grid-template-columns:1fr 1fr}
  .prod.large{flex-direction:column}
  .prod.large .vis{aspect-ratio:4/3}
  .garanties{grid-template-columns:1fr 1fr}
  .mobile .txt{padding:44px 32px}
  .mobile .photo{min-height:260px}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16px}
  .wrap{padding:0 16px}
  .topbar .infos span.h{display:none}
  .topbar .wrap{flex-direction:column;align-items:stretch;padding:8px 16px;gap:8px}
  .espaces a{flex:1;justify-content:center}
  .nav .wrap{height:72px;gap:12px}
  .nav > .wrap > .btn{display:none}
  .nav .logo img{height:42px}
  .menu.ouvert{top:72px}
  .prod.large,.prod.volume.wide{grid-column:auto}
  .grille-f,.produits,.avis-grille,.garanties,.eng .grille,.chiffres .row,footer .cols{grid-template-columns:1fr}
  .panier-btn{margin-left:auto}
  .burger{margin-left:6px}
  .chiffres .c + .c{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.25);margin-top:24px}
  .recrut .carte{padding:32px 24px}
  .visuel .carte-fr{left:50%;transform:translateX(-50%);bottom:-40px;width:min(340px,100%)}
  .visuel{margin-bottom:40px}
  .preuves{gap:20px}
}
@media (prefers-reduced-motion:reduce){
  .ecg path{animation:none;stroke-dashoffset:0}
  .carte-fr .coeur,.carte-fr .onde{animation:none}
  html{scroll-behavior:auto}
}

/* ---------- nous trouver (carte) ---------- */
.trouver{padding:72px 0;background:var(--rose)}
.trouver .wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:stretch}
.trouver h2{font-size:clamp(28px,3vw,38px);margin-bottom:20px}
.trouver p{margin-bottom:16px;line-height:1.55}
.trouver .adr b{display:block;font-family:Comfortaa,sans-serif;color:var(--encre);font-size:18px;margin-bottom:4px}
.trouver a:not(.btn){color:var(--encre);font-weight:600}
.trouver a:not(.btn):hover{color:var(--rouge)}
.trouver .h{color:var(--texte);font-size:15px}
.trouver-carte{border-radius:var(--r-md);overflow:hidden;min-height:340px;background:#eee;box-shadow:0 10px 30px rgba(29,17,18,.08)}
.trouver-carte iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
footer .bas a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media(max-width:860px){.trouver{padding:52px 0}.trouver .wrap{grid-template-columns:1fr;gap:24px}.trouver-carte,.trouver-carte iframe{min-height:280px}}

/* ---------- page Dossier ERP ---------- */
.erp-cas{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:22px 0}
.erp-cas div{display:grid;grid-template-columns:30px 1fr;gap:2px 10px;align-items:start;background:var(--rose);border-radius:var(--r-md);padding:16px}
.erp-cas .ok{grid-row:span 2;width:28px;height:28px;border-radius:50%;background:#fff;color:var(--rouge);display:grid;place-items:center}
.erp-cas .ok svg{width:16px;height:16px}
.erp-cas b{color:var(--encre);font-size:15.5px}
.erp-cas span:last-child{font-size:14.5px;line-height:1.45}
.erp-deux{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}
.erp-deux>div{border:1px solid var(--trait);border-radius:var(--r-md);padding:20px}
.erp-deux h3{font-size:18px;margin-bottom:8px}
.erp-deux ul{margin:0;padding-left:18px}
.erp-deux a{color:var(--rouge);font-weight:600}
.pre-erp{display:grid;gap:14px;margin:20px 0 6px}
.pre-erp .deux{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pre-erp label{display:grid;gap:6px;font-weight:600;color:var(--encre);font-size:14.5px}
.pre-erp select,.pre-erp input{font:15px Figtree,sans-serif;padding:11px 13px;border:1px solid var(--trait);border-radius:12px;background:#fff;color:var(--encre);width:100%}
.resultat-erp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}
.resultat-erp>div{background:var(--nuit);color:#e9d9d8;border-radius:var(--r-md);padding:18px;font-size:14px;line-height:1.45}
.resultat-erp b{display:block;color:#fff;font:700 22px Comfortaa,sans-serif;margin:4px 0}
.resultat-erp small{display:block;opacity:.8;font-size:12.5px;margin-top:4px}
.form-erp{margin-top:14px}
.form-erp input,.form-erp textarea{border-color:transparent}
.form-erp .btn{width:100%;justify-content:center}
.form-erp .merci{background:#fff;color:var(--encre);border-radius:12px;padding:16px;font-weight:600}
@media(max-width:700px){.erp-deux,.pre-erp .deux,.resultat-erp{grid-template-columns:1fr}}

/* ---------- blog ---------- */
.blog-liste{padding:24px 0 96px}
.blog-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.carte-art{display:flex;flex-direction:column;background:#fff;border:1px solid var(--trait);border-radius:var(--r-md);overflow:hidden;color:inherit;transition:transform .2s,box-shadow .2s}
.carte-art:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(29,17,18,.1)}
.carte-art .vis{aspect-ratio:16/10;background:var(--rose);display:block;overflow:hidden}
.carte-art .vis img{width:100%;height:100%;object-fit:cover;display:block}
.carte-art .sans-img{display:grid;place-items:center;height:100%;color:var(--rouge)}
.carte-art .sans-img svg{width:54px;height:54px}
.carte-art .in{display:flex;flex-direction:column;gap:8px;padding:20px 22px 22px;flex:1}
.carte-art .date{font-size:13px;color:var(--texte)}
.carte-art b{font:700 19px/1.3 Comfortaa,sans-serif;color:var(--encre)}
.carte-art .res{font-size:15px;line-height:1.55;color:var(--texte)}
.carte-art .lire{margin-top:auto;padding-top:6px;color:var(--rouge);font-weight:700;font-size:14.5px}
.pagination{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:44px}
.pagination .page-numbers{min-width:44px;height:44px;padding:0 14px;border-radius:100px;border:1px solid var(--trait);display:grid;place-items:center;color:var(--encre);font-weight:600;background:#fff}
.pagination .page-numbers.current{background:var(--rouge);border-color:var(--rouge);color:#fff}
.pagination a.page-numbers:hover{border-color:var(--rouge);color:var(--rouge)}
.art-hero{padding:48px 0 28px;background:linear-gradient(180deg,var(--rose) 0%,#fff 100%)}
.art-hero .wrap,.art-corps .wrap{max-width:860px}
.art-hero h1{font-size:clamp(30px,4vw,48px);line-height:1.12;margin-bottom:12px}
.art-hero .meta{color:var(--texte);font-size:15px}
.art-corps{padding:12px 0 72px}
.art-image{margin:0 0 32px;border-radius:var(--r-md);overflow:hidden}
.art-image img{width:100%;max-height:460px;object-fit:cover;display:block}
.article-corps{font-size:17.5px;line-height:1.75;color:#3a3132}
.article-corps h2{font-size:clamp(24px,2.6vw,30px);margin:40px 0 14px}
.article-corps h3{font-size:21px;margin:30px 0 10px}
.article-corps h4{font-size:18px;margin:24px 0 8px}
.article-corps p{margin:0 0 18px}
.article-corps ul,.article-corps ol{margin:0 0 20px;padding-left:24px}
.article-corps li{margin-bottom:6px}
.article-corps a{color:var(--rouge);text-decoration:underline;text-underline-offset:3px}
.article-corps img{max-width:100%;height:auto;border-radius:12px}
.article-corps blockquote{margin:24px 0;padding:18px 22px;border-left:4px solid var(--rouge);background:var(--rose);border-radius:0 12px 12px 0}
.article-corps table{width:100%;border-collapse:collapse;margin:20px 0;font-size:15.5px}
.article-corps th,.article-corps td{border:1px solid var(--trait);padding:10px 12px;text-align:left}
.article-corps iframe{max-width:100%}
/* contenu construit avec Divi : remis à plat dans la colonne de lecture */
.article-corps [class*="et_pb_"]{float:none!important;width:auto!important;max-width:100%!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important;background-color:transparent!important;box-shadow:none!important}
.article-corps .et_pb_section,.article-corps .et_pb_row{padding-top:0!important;padding-bottom:0!important}
.article-corps .et_pb_module,.article-corps .et_pb_column{margin-bottom:12px!important}
.article-corps .et_pb_button{display:inline-block;background:var(--rouge)!important;color:#fff!important;padding:12px 22px!important;border-radius:100px;text-decoration:none;font-weight:700}
.article-corps .et_pb_divider,.article-corps .et_pb_space{display:none}
.art-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:44px;padding:26px 28px;border-radius:var(--r-md);background:var(--nuit);color:#e9d9d8;font-size:15px}
.art-cta b{display:block;color:#fff;font:700 20px Comfortaa,sans-serif;margin-bottom:4px}
.art-cta .btns{display:flex;gap:10px;flex-wrap:wrap}
.art-cta .btn-ligne{color:#fff;border-color:rgba(255,255,255,.5)}
@media(max-width:980px){.blog-grille{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.blog-grille{grid-template-columns:1fr}.article-corps{font-size:16.5px}}

/* ================= PAGES INTÉRIEURES ================= */
.ariane{font-size:14px;margin-bottom:20px;color:var(--texte)}
.ariane a{color:var(--texte);text-decoration:underline;text-underline-offset:3px}
.ariane a:hover{color:var(--rouge)}
.p-hero{padding:56px 0 64px;background:linear-gradient(180deg,var(--rose) 0%,#fff 100%)}
.p-hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.p-hero h1{font-size:clamp(34px,4.4vw,54px);line-height:1.08;margin-bottom:18px}
.p-hero .lead{margin-bottom:28px}
.p-hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.p-hero .media{justify-self:end;width:100%;max-width:440px;aspect-ratio:1/1;position:relative}
.p-hero .media.photo .tri{position:absolute;inset:0;clip-path:url(#triangle);background:var(--rouge)}
.p-hero .media.photo img{width:100%;height:100%;object-fit:cover}
.p-hero .media.rond img{width:100%;height:100%;object-fit:contain}
.sommaire{position:sticky;top:86px;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--trait)}
.sommaire .wrap{display:flex;gap:8px;overflow-x:auto;padding-top:12px;padding-bottom:12px;scrollbar-width:none}
.sommaire a{white-space:nowrap;padding:8px 16px;border-radius:100px;border:1px solid var(--trait);font-weight:600;font-size:14.5px;color:var(--encre)}
.sommaire a:hover{border-color:var(--rouge);color:var(--rouge)}
.p-corps{padding:56px 0 40px}
.p-corps .wrap{display:grid;grid-template-columns:1fr 330px;gap:48px;align-items:start}
.fiches{display:grid;gap:28px;min-width:0}
.fiche{border:1px solid var(--trait);border-radius:var(--r-lg);padding:36px 38px;scroll-margin-top:170px;background:#fff}
.fiche h2{font-size:clamp(24px,2.6vw,30px);margin-bottom:6px}
.fiche .sous{color:var(--bordeaux);font-weight:600;margin-bottom:14px;display:block}
.fiche > p{max-width:700px}
.faits{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--trait);border:1px solid var(--trait);border-radius:var(--r-md);overflow:hidden;margin:24px 0 30px}
.faits div{background:#fff;padding:14px 16px;font-size:15px;line-height:1.4;color:var(--encre)}
.faits dt{font-size:13px;color:var(--texte);margin-bottom:3px}
.obj{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-bottom:32px}
.obj h3{font-size:16px;margin-bottom:10px;color:var(--bordeaux)}
.obj ul{list-style:none;display:grid;gap:8px;font-size:15px;line-height:1.5}
.obj li{display:flex;gap:9px}
.obj li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--rouge);margin-top:8px;flex:none}
.prog h3{font-size:18px;margin-bottom:16px}
.prog ol{list-style:none;counter-reset:etape;display:grid;gap:0}
.prog li{counter-increment:etape;display:grid;grid-template-columns:38px 1fr;gap:14px;padding-bottom:18px;position:relative}
.prog li::before{content:counter(etape);width:32px;height:32px;border-radius:50%;background:var(--rose);color:var(--rouge);font-weight:700;display:grid;place-items:center;font-size:14px;position:relative;z-index:1}
.prog li:not(:last-child)::after{content:"";position:absolute;left:15.5px;top:32px;bottom:0;width:1px;background:#f0c3be}
.prog li b{display:block;color:var(--encre);font-size:15.5px}
.prog li span{font-size:15px}
.ref{margin-top:18px;font-size:14px;padding:14px 16px;background:#f7f5f5;border-radius:12px}
.fiche .pied{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px;padding-top:24px;border-top:1px solid var(--trait)}
.fiche .pied p{font-weight:600;color:var(--encre)}
.fiche.courte{padding:28px 30px}
.fiche.courte .pied{margin-top:18px;padding-top:18px}
.mini-grille{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.cote{position:sticky;top:170px;display:grid;gap:18px}
.boite-info{border-radius:var(--r-md);padding:24px;background:var(--nuit);color:#e9d9d8;font-size:15px}
.boite-info h3{color:#fff;font-size:17px;margin-bottom:12px}
.boite-info p + h3{margin-top:18px}
.boite-info a{color:#fff;font-weight:600}
.boite-info .btn{margin-top:18px;width:100%;justify-content:center}
.boite-dl{border:1px solid var(--trait);border-radius:var(--r-md);padding:20px 22px;display:grid;gap:10px}
.boite-dl a{display:flex;align-items:center;gap:10px;font-weight:600;color:var(--encre)}
.boite-dl a:hover{color:var(--rouge)}
.boite-dl svg{flex:none;color:var(--rouge)}
.acompleter{border:2px dashed #e8c768;background:#fff8e6;color:#6b5000;border-radius:var(--r-md);padding:18px 20px;font-size:15px}
.loi{background:var(--bordeaux);color:#f7e3e1;border-radius:var(--r-lg);padding:36px 38px}
.loi h2{color:#fff;font-size:clamp(22px,2.4vw,28px);margin-bottom:14px}
.loi blockquote{font-family:Comfortaa,sans-serif;color:#fff;font-size:19px;line-height:1.45;border-left:3px solid rgba(255,255,255,.5);padding-left:18px;margin:18px 0}
.loi ul{list-style:none;display:grid;gap:10px;margin-top:16px}
.loi li{display:flex;gap:10px}
.loi li::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;margin-top:9px;flex:none}
.classes{width:100%;border-collapse:collapse;font-size:15px;margin-top:18px}
.classes th{text-align:left;font-size:13px;color:var(--texte);font-weight:600;padding:10px 12px;border-bottom:2px solid var(--trait)}
.classes td{padding:13px 12px;border-bottom:1px solid var(--trait);vertical-align:top}
.classes td:first-child{font-family:Comfortaa,sans-serif;font-weight:700;color:var(--rouge);white-space:nowrap}
.tbl-x{overflow-x:auto}
.autres{background:var(--rose)}
.autres .grille-f{grid-template-columns:repeat(4,1fr)}
.cat-hero{padding:56px 0 40px;background:linear-gradient(180deg,var(--rose) 0%,#fff 100%)}
.cat-hero h1{font-size:clamp(34px,4.4vw,54px);margin-bottom:14px}
@media (max-width:1100px){
  .p-corps .wrap{grid-template-columns:1fr}
  .cote{position:static;grid-template-columns:1fr 1fr}
  .autres .grille-f{grid-template-columns:1fr 1fr}
}
@media (max-width:960px){
  .p-hero .wrap{grid-template-columns:1fr}
  .p-hero .media{justify-self:center;max-width:300px}
  .obj{grid-template-columns:1fr}
  .faits{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .sommaire{top:72px}
  .fiche{padding:26px 20px}
  .loi{padding:28px 22px}
  .cote,.mini-grille,.autres .grille-f{grid-template-columns:1fr}
  .faits{grid-template-columns:1fr}
}

/* ================= BOUTIQUE (v2) ================= */
.shop-hero{padding:56px 0 8px;background:linear-gradient(180deg,var(--rose) 0%,#fff 100%)}
.shop-hero h1{font-size:clamp(36px,4.6vw,58px);line-height:1.08;margin-bottom:16px}
.shop-hero .lead{max-width:640px}
.shop{padding:40px 0 64px}
.shop .produits{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:stretch}
.shop .prod{border:1px solid var(--trait);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;background:#fff;transition:box-shadow .35s ease,translate .35s ease,border-color .35s ease;scroll-margin-top:120px}
.shop .prod:hover{box-shadow:0 22px 50px rgba(43,11,13,.12);border-color:#f0d3cf}
@media (hover:hover){.shop .prod:hover{translate:0 -4px}}
.shop .prod .vis{position:relative;aspect-ratio:1/1;background:#f6f3f2;display:grid;place-items:center;padding:34px;overflow:hidden}
.shop .prod .vis img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:scale .6s cubic-bezier(.2,.7,.2,1)}
.shop .prod:hover .vis img{scale:1.05}
.shop .prod .etiq{position:absolute;left:18px;top:18px;background:var(--rouge);color:#fff;font-size:13px;font-weight:700;padding:5px 12px;border-radius:100px;z-index:1}
.shop .prod .in{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}
.shop .prod .modele{color:var(--bordeaux);font-weight:600;font-size:14.5px;margin-bottom:4px}
.shop .prod h3{font-size:24px;margin-bottom:10px}
.shop .prod p{font-size:15.5px;line-height:1.55;flex:none;margin-bottom:16px}
.shop .prod ul{list-style:none;display:grid;gap:8px;font-size:15px;color:var(--encre);margin-bottom:6px}
.shop .prod li{display:flex;gap:10px;align-items:flex-start;line-height:1.4}
.shop .prod li::before{content:"";flex:none;width:18px;height:18px;margin-top:1px;border-radius:50%;background:var(--rose) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e02b20' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/11px no-repeat}
.shop .prod .bas-prod{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:22px;border-top:1px solid var(--trait)}
.shop .prod .in > ul{margin-bottom:24px}
.shop .prod .devis{font-family:Comfortaa,sans-serif;font-weight:700;color:var(--bordeaux);font-size:18px;white-space:nowrap}
.shop .prod .bas-prod .btn{padding:12px 20px;font-size:14px}
.shop-plus{padding:0 0 96px}
.shop-plus .garanties{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:0 0 40px;padding:0;background:none;border-radius:0}
.shop-plus .garanties > div{display:grid;grid-template-columns:48px 1fr;column-gap:14px;align-items:start;font-size:15px;line-height:1.5;padding-top:24px;border-top:2px solid var(--rose)}
.shop-plus .garanties .ico{grid-row:span 2;width:48px;height:48px}
.shop-plus .garanties b{font-family:Comfortaa,sans-serif;color:var(--encre);font-size:16px;margin:4px 0 2px}
.shop-cta{background:var(--nuit);border-radius:28px;padding:48px 56px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;color:#e9d9d8;position:relative;overflow:hidden}
.shop-cta::after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;border:40px solid rgba(224,43,32,.18)}
.shop-cta h2{color:#fff;font-size:clamp(24px,2.8vw,32px);margin-bottom:10px}
.shop-cta p{max-width:540px}
.shop-cta-btns{display:flex;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
.btn-contour{border-color:rgba(255,255,255,.45);color:#fff}
.btn-contour:hover{background:rgba(255,255,255,.1)}
@media (max-width:1100px){
  .shop .produits{gap:20px}
  .shop .prod .in{padding:22px}
  .shop .prod .bas-prod{flex-direction:column;align-items:stretch}
  .shop .prod .bas-prod .btn{justify-content:center}
}
@media (max-width:860px){
  .shop .produits{grid-template-columns:1fr}
  .shop .prod{flex-direction:row}
  .shop .prod .vis{width:42%;aspect-ratio:auto;flex:none}
  .shop .prod .bas-prod{flex-direction:row;align-items:center}
  .shop-plus .garanties{grid-template-columns:1fr}
}
@media (max-width:560px){
  .shop .prod{flex-direction:column}
  .shop .prod .vis{width:100%;aspect-ratio:4/3}
  .shop .prod .bas-prod{flex-direction:column;align-items:stretch}
  .shop-cta{padding:34px 24px}
  .shop-cta-btns .btn{flex:1;justify-content:center}
}

/* ---------- panier « sur devis » ---------- */
.shop .prod .bas-prod{flex-wrap:wrap}
.shop .prod .bas-prod .ajout{display:flex;gap:10px;align-items:center;width:100%}
.shop .prod .bas-prod .ajout .btn{flex:1;justify-content:center}
.panier-flottant{position:fixed;right:24px;bottom:24px;z-index:55;display:flex;align-items:center;gap:10px;padding:14px 22px 14px 18px;border:0;border-radius:100px;background:var(--encre);color:#fff;font:700 15px Comfortaa,sans-serif;cursor:pointer;box-shadow:0 12px 30px rgba(29,17,18,.28);transition:transform .2s,background .2s}
.panier-flottant:hover{background:var(--rouge);transform:translateY(-2px)}
.panier-flottant[hidden]{display:none}
.panier-flottant .badge{position:static;margin-left:2px}
.ligne .nom span.sd{color:var(--bordeaux);font-weight:700}
.ligne .suppr{border:0;background:none;color:var(--texte);font-size:13px;text-decoration:underline;cursor:pointer;padding:0;margin-top:2px}
.form-devis{display:grid;gap:10px}
.form-devis .deux{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form-devis input,.form-devis textarea{width:100%;font:15px Figtree,sans-serif;padding:11px 13px;border:1px solid var(--trait);border-radius:12px;background:#fff;color:var(--encre)}
.form-devis input:focus,.form-devis textarea:focus{outline:2px solid var(--rouge);outline-offset:-1px;border-color:transparent}
.form-devis textarea{min-height:70px;resize:vertical}
.form-devis .piege{position:absolute;left:-9999px}
.form-devis .mention{font-size:12.5px;color:var(--texte);line-height:1.4;margin:0}
.form-devis .btn{margin:6px 0 0}
.envoi-ok{text-align:center;padding:40px 6px}
.envoi-ok b{display:block;font:700 20px Comfortaa,sans-serif;color:var(--encre);margin-bottom:8px}
@media(max-width:560px){.panier-flottant{right:16px;bottom:16px}.form-devis .deux{grid-template-columns:1fr}}
.tiroir{visibility:hidden;box-shadow:none;transition:transform .28s ease,visibility 0s linear .28s}
.tiroir.ouvert{visibility:visible;box-shadow:-20px 0 50px rgba(0,0,0,.15);transition:transform .28s ease}

/* ---------- pages produit ---------- */
.shop .prod .vis{display:block}
.shop .prod h3 a{color:inherit}
.shop .prod h3 a:hover{color:var(--rouge)}
.voir-fiche{display:inline-block;margin-top:10px;color:var(--rouge);font-weight:700;font-size:14.5px}
.fp-hero{padding:48px 0 56px;background:linear-gradient(180deg,var(--rose) 0%,#fff 100%)}
.fp-hero .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.fp-vis{background:#f6f4f4;border-radius:var(--r-lg,28px);aspect-ratio:1/1;display:grid;place-items:center;padding:40px;overflow:hidden}
.fp-vis img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.fp-txt .modele{display:block;color:var(--rouge);font-weight:700;font-size:15px;margin:6px 0 6px}
.fp-txt h1{font-size:clamp(32px,4vw,50px);line-height:1.08;margin-bottom:16px}
.fp-txt .lead{margin-bottom:18px}
ul.coches{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:9px}
ul.coches li{position:relative;padding-left:30px;line-height:1.45}
ul.coches li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;border-radius:50%;background:var(--rose) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e02b20' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l4 4 10-10'/%3E%3C/svg%3E") center/12px no-repeat}
.fp-achat{border-top:1px solid var(--trait);padding-top:20px;display:grid;gap:14px}
.fp-achat .devis{font:700 22px Comfortaa,sans-serif;color:var(--bordeaux)}
.fp-achat .ajout{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.fp-achat .ajout .btn{flex:1;min-width:200px;justify-content:center}
.fp-aide{font-size:14.5px;margin:0}
.fp-aide a{color:var(--encre);font-weight:700}
.fp-corps .wrap{max-width:980px}
.fp-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}
.fp-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px;background:#f6f4f4}
.kit-grille{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:10px}
.kit-grille>div{display:flex;flex-direction:column;gap:6px;background:var(--rose);border-radius:var(--r-md);padding:18px;font-size:14.5px;line-height:1.45}
.kit-grille img{height:120px;width:100%;object-fit:contain;mix-blend-mode:multiply;margin-bottom:6px}
.kit-grille .kit-ico{height:120px;display:grid;place-items:center;color:var(--rouge);margin-bottom:6px}
.kit-grille .kit-ico svg{width:64px;height:64px}
.kit-grille b{color:var(--encre);font-size:16px}
ol.etapes{counter-reset:e;list-style:none;padding:0;margin:0 0 16px;display:grid;gap:12px}
ol.etapes li{counter-increment:e;position:relative;padding:14px 16px 14px 60px;background:var(--rose);border-radius:14px;line-height:1.45}
ol.etapes li::before{content:counter(e);position:absolute;left:16px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--rouge);color:#fff;font:700 15px Comfortaa,sans-serif;display:grid;place-items:center}
ol.etapes b{display:block;color:var(--encre)}
.fiche a:not(.btn){color:var(--rouge);font-weight:600}
.erp-cas .ok{font:700 14px Comfortaa,sans-serif}
@media(max-width:900px){.fp-hero .wrap{grid-template-columns:1fr;gap:28px}.fp-vis{aspect-ratio:4/3;padding:24px}.kit-grille{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.fp-photos{grid-template-columns:1fr 1fr}.kit-grille{grid-template-columns:1fr}}

/* ================= ANIMATIONS AU DÉFILEMENT ================= */
.nav{transition:box-shadow .3s ease}
.nav.scrolled{box-shadow:0 10px 30px rgba(43,11,13,.08)}
.js-anim .rv{opacity:0;translate:0 28px;transition:opacity .8s cubic-bezier(.2,.7,.2,1),translate .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--rd,0s)}
.js-anim .rv.rv-scale{translate:none;scale:.92;transition-property:opacity,scale;transition-duration:1s}
.js-anim .rv.rv-gauche{translate:-36px 0}
.js-anim .rv.in{opacity:1;translate:none;scale:none}
/* carte de France : le contour se dessine, puis les cœurs apparaissent un par un */
.js-anim .carte-fr{opacity:0;translate:-30px 0;transition:opacity .8s ease .5s,translate .9s cubic-bezier(.2,.7,.2,1) .5s}
.js-anim .carte-fr.in{opacity:1;translate:none}
.js-anim .carte-fr .pays{stroke-dasharray:3000;stroke-dashoffset:3000;fill-opacity:0;transition:stroke-dashoffset 1.8s ease .8s,fill-opacity .9s ease 1.6s}
.js-anim .carte-fr.in .pays{stroke-dashoffset:0;fill-opacity:1}
.js-anim .carte-fr .coeur{scale:0;transition:scale .6s cubic-bezier(.3,1.9,.5,1)}
.js-anim .carte-fr .onde{visibility:hidden}
.js-anim .carte-fr.in .coeur{scale:1}
.js-anim .carte-fr.in .onde{visibility:visible}
.js-anim .carte-fr g:nth-of-type(1) .coeur{transition-delay:1.9s}
.js-anim .carte-fr g:nth-of-type(2) .coeur{transition-delay:2.1s}
.js-anim .carte-fr g:nth-of-type(3) .coeur{transition-delay:2.3s}
.js-anim .carte-fr g:nth-of-type(4) .coeur{transition-delay:2.5s}
.js-anim .carte-fr li{opacity:0;translate:10px 0;transition:opacity .5s ease,translate .5s ease}
.js-anim .carte-fr.in li{opacity:1;translate:none}
.js-anim .carte-fr.in li:nth-child(1){transition-delay:1.9s}
.js-anim .carte-fr.in li:nth-child(2){transition-delay:2.1s}
.js-anim .carte-fr.in li:nth-child(3){transition-delay:2.3s}
.js-anim .carte-fr.in li:nth-child(4){transition-delay:2.5s}
/* photo du hero : légère respiration du triangle à l'arrivée */
.js-anim .visuel .tri img{scale:1.12;transition:scale 1.6s cubic-bezier(.2,.7,.2,1) .2s}
.js-anim .visuel.in .tri img{scale:1}
/* électrocardiogramme des chiffres */
.js-anim .chiffres .ecg2 path{stroke-dasharray:900;stroke-dashoffset:900;transition:stroke-dashoffset 2s ease .2s}
.js-anim .chiffres.in .ecg2 path{stroke-dashoffset:0}
/* cartes formations : survol */
.f{transition:box-shadow .3s ease,translate .3s ease,border-color .3s ease}
@media (hover:hover){.f:hover{translate:0 -3px}}
@media (prefers-reduced-motion:reduce){
  .js-anim .rv,.js-anim .carte-fr,.js-anim .carte-fr *{opacity:1!important;translate:none!important;scale:none!important;transition:none!important;stroke-dashoffset:0!important;fill-opacity:1!important;visibility:visible!important}
}

/* ================= LIGNE CARDIAQUE QUI BAT EN CONTINU ================= */
/* un trait lumineux parcourt la ligne en boucle, comme sur un moniteur */
.ecg path.pulse{opacity:1;stroke:var(--rouge);stroke-width:3.2;stroke-dasharray:90 1000;stroke-dashoffset:90;animation:balayage 2.4s linear 2.8s infinite;filter:drop-shadow(0 0 4px rgba(224,43,32,.55))}
.chiffres .ecg2 path.pulse{stroke:#fff;stroke-width:3.4;stroke-dasharray:120 1000;stroke-dashoffset:120;opacity:1;animation:balayage 2.4s linear infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,.7))}
.js-anim .chiffres .ecg2 path.pulse{transition:none;stroke-dashoffset:120}
@keyframes balayage{from{stroke-dashoffset:90}to{stroke-dashoffset:-1000}}
/* la ligne de fond respire légèrement au rythme du cœur */
.ecg path:not(.pulse){animation:trace 2.6s cubic-bezier(.6,.05,.3,1) .2s forwards,respire 2.4s ease-in-out 2.8s infinite}
@keyframes respire{0%,100%{opacity:.3}12%{opacity:.5}24%{opacity:.3}36%{opacity:.45}56%{opacity:.3}}
@media (prefers-reduced-motion:reduce){
  .ecg path.pulse,.chiffres .ecg2 path.pulse{animation:none;opacity:0}
  .ecg path:not(.pulse){animation:none}
}

/* ligne du bandeau des chiffres : bien visible et qui bat aussi */
.chiffres .ecg2{opacity:1}
.chiffres .ecg2 path:not(.pulse){stroke-opacity:.22;animation:respire2 2.4s ease-in-out 2s infinite}
.chiffres .ecg2 path.pulse{stroke-opacity:.95;stroke-width:3.6;animation:balayage 2.4s linear infinite;filter:drop-shadow(0 0 6px rgba(255,255,255,.85))}
@keyframes respire2{0%,100%{stroke-opacity:.22}12%{stroke-opacity:.38}24%{stroke-opacity:.22}36%{stroke-opacity:.32}56%{stroke-opacity:.22}}
@media (prefers-reduced-motion:reduce){.chiffres .ecg2 path:not(.pulse){animation:none}}
