:root{
  color-scheme: light;
  --vert:#40A534; --vert-clair:#7DC66A; --vert-pale:#E6F3E1; --vert-profond:#1F5C1A;
  --encre:#1B2A1E; --texte:#3C4A3F; --gris:#6E7B70; --papier:#F6F7F6; --blanc:#FFFFFF;
  --ombre:rgba(31,92,26,.14);
  --display:"Advent Pro","Arial Narrow",sans-serif;
  --body:"Mulish","Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--papier);color:var(--texte);font:16px/1.6 var(--body);overflow-x:hidden}
a{color:inherit}
button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--vert-clair);outline-offset:3px}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}

/* ---------- Barre + menu drop-down ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:60;height:8px;background:var(--vert);padding-top:env(safe-area-inset-top,0px)}
.menu-tab{position:absolute;left:50%;top:calc(100% - 1px);width:190px;height:36px;transform:translateX(-50%);background:none;border:0;padding:0;color:#fff;
  filter:drop-shadow(0 4px 6px rgba(20,50,20,.18));transition:height .35s cubic-bezier(.3,1.4,.5,1)}
.menu-tab svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.menu-tab span{position:relative;display:block;font:300 13px/1 var(--body);letter-spacing:.34em;text-transform:lowercase;padding-left:.34em;margin-top:-2px;transition:transform .35s}
.menu-tab:hover,.menu-tab[aria-expanded="true"]{height:42px}
.menu-tab:hover span,.menu-tab[aria-expanded="true"] span{transform:translateY(2px)}
.mega{position:fixed;left:0;right:0;top:0;z-index:55;background:rgba(255,255,255,.9);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-radius:0 0 50% 50% / 0 0 90px 90px;box-shadow:0 18px 40px rgba(20,40,30,.07);
  transform:translateY(-110%);transition:transform .6s cubic-bezier(.2,.8,.2,1);max-height:100vh;overflow:auto;padding-bottom:70px}
.mega.open{transform:none}
.mega-inner{display:grid;grid-template-columns:.8fr 1fr 3fr;gap:44px;padding-block:84px 20px}
.mega h3{font:300 24px/1.1 var(--display);color:var(--vert);letter-spacing:.02em;margin:0 0 14px}
.mega ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.mega li a,.mega li button{position:relative;display:block;width:100%;text-align:left;background:none;border:0;padding:6px 0 6px 0;color:var(--encre);
  text-decoration:none;font:300 15.5px/1.35 var(--body);transition:color .25s,padding .3s}
.mega li a::before,.mega li button::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--vert);transform:scale(0);transition:transform .3s}
.mega li a:hover,.mega li button:hover{color:var(--vert-profond);padding-left:16px}
.mega li a:hover::before,.mega li button:hover::before{transform:scale(1)}
.mega .modules ul{grid-template-columns:repeat(3,1fr);column-gap:26px;gap:0 26px}
.mega .modules li button{font-size:14px;padding:5px 0}
.mega .modules small{display:none}

.mega-foot{padding-block:10px 0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 28px;font:300 13.5px var(--body);color:var(--gris)}
.mega-foot b{font-weight:600;color:var(--vert-profond)}
.scrim{position:fixed;inset:0;z-index:50;background:rgba(27,42,30,.12);opacity:0;pointer-events:none;transition:opacity .3s}
.scrim.on{opacity:1;pointer-events:auto}

/* ---------- Hero ---------- */
.hero{position:relative;height:clamp(620px,52vw,900px);overflow:hidden;background:#6d8fb5}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:70% 50%;animation:houle 18s ease-in-out infinite alternate}
@keyframes houle{from{transform:scale(1.02) translateY(0)}to{transform:scale(1.05) translateY(-8px)}}
.hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(100deg,rgba(18,40,60,.35),rgba(18,40,60,0) 55%)}
.hero::after{content:"";position:absolute;inset:0;z-index:2;background:rgba(12,28,20,.55);opacity:0;transition:opacity .45s;pointer-events:none}
.hero.dim::after{opacity:1}
.hero.dim .bulles{opacity:.25;transition:opacity .45s}.bulles{transition:opacity .45s}
.hero.dim-spot .hero-title{opacity:.25}.hero-title{transition:opacity .45s}
.logo{position:absolute;z-index:5;left:clamp(16px,3.4vw,66px);top:32px;display:flex;align-items:flex-end;gap:6px;text-decoration:none}
.logo img{width:135px;height:auto;filter:drop-shadow(0 2px 6px rgba(0,0,0,.2))}
.logo span{color:#fff;font:400 15px/1 Georgia,serif;letter-spacing:.35em;padding-bottom:12px}

.hero-title{position:absolute;z-index:4;pointer-events:none;left:clamp(16px,5.5vw,108px);top:clamp(190px,12.5vw,245px);max-width:min(900px,62vw)}
.hero-title h1,.plus-btn{pointer-events:auto}
.hero-title h1{margin:0;color:#fff;font:300 clamp(34px,3.9vw,62px)/1 var(--display);letter-spacing:.01em;text-transform:uppercase;
  text-shadow:0 2px 18px rgba(0,0,0,.25);display:inline}
.plus-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--vert);color:#fff;border:0;
  font:400 30px/1 var(--display);vertical-align:top;margin-left:6px;transform:translateY(-14px);transition:transform .35s,background .2s;
  box-shadow:0 4px 14px rgba(0,0,0,.2)}
.hero-title:hover .plus-btn,.hero-title.open .plus-btn{transform:translateY(-14px) rotate(45deg);background:var(--vert-profond)}
.title-desc{max-width:560px;margin-top:18px;color:#fff;font:300 clamp(17px,1.3vw,21px)/1.5 var(--body);text-shadow:0 1px 12px rgba(0,0,0,.35);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .35s,transform .35s}
.hero-title:hover .title-desc,.hero-title.open .title-desc,.hero-title:focus-within .title-desc{opacity:1;transform:none;pointer-events:auto}

/* bulles */
.bulles{position:absolute;z-index:4;pointer-events:none;left:clamp(16px,12vw,240px);top:clamp(310px,18vw,350px);display:flex;align-items:center;gap:30px}
.bulle{pointer-events:auto;position:relative;border-radius:50%;border:0;color:#fff;text-decoration:none;display:grid;place-items:center;text-align:center;
  transition:transform .5s cubic-bezier(.3,1.5,.5,1),box-shadow .4s;isolation:isolate}
.bulle::before,.bulle::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);z-index:-1;
  opacity:0;transform:scale(.9)}
.bulle:hover::before,.bulle:focus-visible::before{animation:onde 1.6s ease-out infinite}
.bulle:hover::after,.bulle:focus-visible::after{animation:onde 1.6s .8s ease-out infinite}
@keyframes onde{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.35)}}
.bulle:hover,.bulle:focus-visible{transform:scale(1.14);box-shadow:0 30px 60px rgba(20,60,20,.35);z-index:2}
.bulle-inter,.bulle-intra{width:clamp(220px,15vw,290px);aspect-ratio:1}
.bulle-inter{background:var(--vert)}
.bulle-intra{background:var(--vert-clair)}
.bulle .lab{font:400 clamp(26px,1.8vw,34px)/1 var(--display);letter-spacing:.02em}
.bulle .cross{display:block;font:200 44px/1 var(--display);margin-top:4px;transition:transform .5s}
.bulle:hover .cross{transform:rotate(90deg)}
.bulle .txt{display:block;font-weight:400;font-size:clamp(14px,1vw,17px);line-height:1.35;margin-top:10px}
.bulle .more{display:block;font-size:13px;font-weight:800;max-height:0;opacity:0;overflow:hidden;transition:max-height .45s,opacity .45s,margin .45s;letter-spacing:.04em;text-transform:uppercase}
.bulle:hover .more,.bulle:focus-visible .more{max-height:80px;opacity:1;margin-top:10px}
.bulle .inner{padding:0 12%}
.bulle-inter .inner{padding:0 10%}

/* hotspots */
.spots{position:absolute;z-index:3;inset:0;pointer-events:none}
.hero.dim-spot .spot:not(.act){opacity:.35}.spot{transition:opacity .3s}
.spot{position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:rgba(255,255,255,.85);border:0;padding:0;pointer-events:auto;
  box-shadow:0 0 0 0 rgba(64,165,52,.6);animation:pulse 2.4s infinite}
.spot::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--vert);border:2px solid #fff}
.spot:nth-child(2n){animation-delay:.8s}.spot:nth-child(3n){animation-delay:1.5s}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(64,165,52,.65)}70%{box-shadow:0 0 0 16px rgba(64,165,52,0)}100%{box-shadow:0 0 0 0 rgba(64,165,52,0)}}
.spot-tip{position:absolute;z-index:6;width:260px;color:#fff;font:300 15px/1.4 var(--body);text-align:right;text-shadow:0 1px 10px rgba(0,0,0,.4);
  transform:translate(-100%,-50%) translateX(-26px);opacity:0;pointer-events:none;transition:opacity .3s,transform .3s}
.spot-tip.on{transform:translate(-100%,-50%) translateX(-20px)}
.spot-tip.on{opacity:1;pointer-events:auto}
.spot-tip b{display:block;font:300 30px/1.02 var(--display);margin-bottom:6px}
.spot-tip .d{opacity:.85;font-size:13px;letter-spacing:.04em}
.spot-tip button{background:none;border:0;padding:0;margin-top:8px;color:#9BE08A;font:600 14px var(--body);text-shadow:inherit}
.spot-tip button:hover{text-decoration:underline}

/* ---------- Moteur de recherche rétractable ---------- */
.finder{position:fixed;z-index:45;right:24px;top:44px;width:min(470px,calc(100vw - 32px));color:var(--encre);
  background:rgba(255,255,255,.84);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);
  border-radius:44px;padding:34px 34px 30px;box-shadow:0 24px 60px rgba(20,40,30,.18),inset 0 1px 0 rgba(255,255,255,.9);
  clip-path:inset(-60px -60px -60px -60px round 44px);
  transition:transform .8s cubic-bezier(.7,0,.2,1),clip-path .8s cubic-bezier(.7,0,.2,1)}
.finder.closed{transform:translateX(calc(100% - 64px));clip-path:inset(0 calc(100% - 64px) calc(100% - 64px) 0 round 32px)}
.f-kicker{font:400 11px/1 var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--vert);margin-bottom:10px}
.finder h2{margin:0 0 22px;font:200 34px/1.02 var(--display);letter-spacing:.01em}
.finder h2 strong{font-weight:400;color:var(--vert)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.f-field{position:relative;display:block;background:#fff;border-radius:22px;padding:9px 16px 8px 46px;box-shadow:0 0 0 1px rgba(20,40,30,.08),0 4px 12px rgba(20,40,30,.05);transition:box-shadow .25s,transform .25s}
.f-field:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(64,165,52,.35),0 8px 18px rgba(20,40,30,.08)}
.f-field:focus-within{box-shadow:0 0 0 2px var(--vert),0 8px 18px rgba(20,40,30,.08)}
.f-field svg{position:absolute;left:16px;top:50%;width:20px;height:20px;margin-top:-10px;color:var(--vert)}
.f-field small{display:block;font:400 10.5px/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.f-field select{width:100%;appearance:none;border:0;background:transparent;color:var(--encre);font:300 16px/1.4 var(--body);padding:2px 18px 0 0;outline:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--vert) 50%),linear-gradient(135deg,var(--vert) 50%,transparent 50%);
  background-position:calc(100% - 7px) 60%,calc(100% - 2px) 60%;background-size:5px 5px;background-repeat:no-repeat}
.f-results{margin-top:14px;max-height:0;overflow:auto;transition:max-height .5s;scrollbar-width:thin}
.f-results.on{max-height:270px}
.f-results ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.f-results li{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(20,40,30,.04);padding:9px 9px 9px 18px;border-radius:22px;font:300 14px/1.35 var(--body);transition:background .2s}
.f-results li:hover{background:rgba(64,165,52,.08)}
.f-results li b{font-weight:600;letter-spacing:.01em}
.f-results li button{border:0;background:var(--vert);color:#fff;font:600 13px var(--body);padding:8px 16px;border-radius:999px;white-space:nowrap;transition:background .2s,transform .2s}
.f-results li button:hover{background:var(--vert-profond);transform:scale(1.04)}
.f-count{font:300 13px var(--body);color:var(--gris);margin:0 0 8px 4px}
.f-handle{position:absolute;left:0;top:0;width:64px;height:64px;border:0;background:none;color:var(--vert);display:none;place-items:center;border-radius:44px 0 0 44px}

.finder.closed .f-handle{display:grid}
.f-handle svg{width:22px;height:22px}
.finder.closed .f-handle{animation:pulse 2.4s infinite;border-radius:50%}
.finder.closed>*:not(.f-handle){opacity:0;pointer-events:none}
.finder>*{transition:opacity .3s}
.f-tempo{position:absolute;left:44px;right:44px;bottom:14px;height:2px;background:rgba(20,40,30,.08);border-radius:2px;overflow:hidden}
.f-tempo i{display:block;height:100%;width:100%;background:var(--vert);transform-origin:left;transform:scaleX(1)}

/* ---------- Vagues papier ---------- */
.vagues{position:absolute;left:0;right:0;bottom:-2px;z-index:4;height:clamp(120px,15vw,240px);pointer-events:none}
.vagues svg{position:absolute;left:0;bottom:0;width:100%;height:100%;overflow:visible}
.p1{filter:drop-shadow(-4px -8px 16px rgba(20,30,25,.15))}
.p2{filter:drop-shadow(-2px -5px 9px rgba(20,30,25,.12))}
.p3{filter:drop-shadow(-10px -4px 22px rgba(20,30,25,.12))}
.p4{filter:drop-shadow(-2px -3px 5px rgba(20,30,25,.10))}
.p5{filter:drop-shadow(0 -8px 16px rgba(20,30,25,.08))}
.w1{filter:drop-shadow(0 -2px 3px rgba(20,40,30,.10))}
.w2{filter:drop-shadow(0 -8px 14px rgba(20,40,30,.09))}
.w3{filter:drop-shadow(0 -16px 26px rgba(20,40,30,.08))}
.sep .w1{filter:drop-shadow(0 4px 6px rgba(20,40,30,.07))}
.sep .w2{filter:drop-shadow(0 10px 18px rgba(20,40,30,.06))}
.v1{animation:derive 14s ease-in-out infinite alternate}
.v2{animation:derive 18s ease-in-out infinite alternate-reverse}
@keyframes derive{from{transform:translateX(0)}to{transform:translateX(-2.5%)}}
.sep{position:relative;height:90px;margin-top:-1px}
.sep svg{position:absolute;inset:0;width:100%;height:100%}

/* ---------- Sections ---------- */
section{position:relative}
.eyebrow{font:800 12px/1 var(--body);text-transform:uppercase;letter-spacing:.18em;color:var(--vert)}
.h2{font:300 clamp(36px,4.2vw,58px)/1.02 var(--display);color:var(--encre);margin:10px 0 18px;text-wrap:balance;text-transform:uppercase}
.h2 em{font-style:normal;color:var(--vert);font-weight:400}
.lead{font-size:18px;max-width:60ch;color:var(--texte)}

.mhe{padding-block:40px 60px;background:var(--blanc)}
.mhe-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,70px);align-items:center}
.photo{position:relative;overflow:hidden;background:#E9ECE8}
.photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.photo:hover img{transform:scale(1.05)}
.photo img:not([src]),.photo img[src=""]{display:none}
.photo.blob{border-radius:58% 42% 55% 45%/48% 55% 45% 52%;aspect-ratio:1.05}
.faits{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:40px}
.fait{position:relative;display:grid;place-content:center;text-align:center;border-radius:50%;background:#fff;
  box-shadow:0 0 0 1px rgba(64,165,52,.22),0 10px 26px rgba(20,40,30,.07);transition:transform .5s cubic-bezier(.3,1.6,.5,1),box-shadow .4s,background .4s;isolation:isolate;cursor:default}
.fait:nth-child(1){width:108px;height:108px}
.fait:nth-child(2){width:132px;height:132px}
.fait:nth-child(3){width:100px;height:100px}
.fait:nth-child(4){width:116px;height:116px}
.fait::before{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--vert);opacity:0;z-index:-1}
.fait:hover{transform:scale(1.12) translateY(-4px);box-shadow:0 0 0 1px rgba(64,165,52,.5),0 20px 40px rgba(64,165,52,.2)}
.fait:hover::before{animation:onde 1.4s ease-out infinite}
.fait b{display:block;font:200 40px/1 var(--display);color:var(--vert);font-variant-numeric:tabular-nums;transition:transform .4s,letter-spacing .4s}
.fait:nth-child(2) b{font-size:36px}
.fait b{white-space:nowrap}
.fait:hover b{letter-spacing:.03em}
.fait span{display:block;font:300 12px/1.25 var(--body);color:var(--gris);max-width:92px;margin:4px auto 0}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;padding:13px 24px;font-weight:900;font-size:15px;text-decoration:none;transition:transform .25s,background .25s,box-shadow .25s}
.btn-plein{background:var(--vert);color:#fff;box-shadow:0 10px 24px rgba(64,165,52,.3)}
.btn-plein:hover{background:var(--vert-profond);transform:translateY(-2px)}
.btn-ligne{background:transparent;color:var(--vert-profond);box-shadow:inset 0 0 0 2px var(--vert)}
.btn-ligne:hover{background:var(--vert-pale)}

.intra{padding-block:40px 70px;background:var(--papier)}
.intra-head{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:end;margin-bottom:34px}
.parcours{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:34px}
.parc{background:var(--blanc);border-radius:28px;padding:24px 26px;box-shadow:0 10px 30px var(--ombre)}
.parc h3{margin:0 0 6px;font:600 25px/1.1 var(--display);color:var(--vert-profond)}
.parc p{margin:0 0 10px;font-size:15px}
.parc .fmt{display:flex;flex-wrap:wrap;gap:6px}
.parc .fmt span{font-size:12px;font-weight:800;color:var(--vert-profond);background:var(--vert-pale);padding:4px 10px;border-radius:999px}
.filtres{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.filtres button{border:0;border-radius:999px;padding:8px 16px;background:var(--blanc);color:var(--encre);font-weight:800;font-size:13px;box-shadow:inset 0 0 0 1.5px #D5E4D1;transition:all .2s}
.filtres button[aria-pressed="true"]{background:var(--vert);color:#fff;box-shadow:none}
.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.mod{position:relative;text-align:left;border:0;background:var(--blanc);border-radius:20px;padding:18px 18px 16px 20px;color:var(--encre);overflow:hidden;
  box-shadow:0 1px 0 #E3ECE0;transition:transform .3s,box-shadow .3s,color .3s;isolation:isolate;min-height:108px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.mod::before{content:"";position:absolute;z-index:-1;width:30px;height:30px;right:14px;bottom:14px;border-radius:50%;background:var(--vert);transition:transform .55s cubic-bezier(.6,0,.2,1)}
.mod:hover::before,.mod:focus-visible::before{transform:scale(22)}
.mod:hover,.mod:focus-visible{color:#fff;transform:translateY(-3px);box-shadow:0 18px 34px var(--ombre)}
.mod b{font-weight:800;font-size:15.5px;line-height:1.3;padding-right:34px}
.mod small{font-size:12.5px;color:var(--gris);transition:color .3s}
.mod:hover small,.mod:focus-visible small{color:rgba(255,255,255,.85)}
.mod .pl{position:absolute;right:14px;bottom:14px;width:30px;height:30px;display:grid;place-items:center;color:#fff;font:300 24px/1 var(--display)}

.bande{position:relative;padding-block:0}
.mosaique{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:250px 250px;gap:14px}
.mosaique .photo{border-radius:30px}
.mosaique .photo:first-child{grid-row:span 2}
.citation{background:var(--vert);color:#fff;border-radius:30px;padding:28px;display:flex;flex-direction:column;justify-content:space-between}
.citation p{margin:0;font:300 26px/1.15 var(--display)}
.citation span{font-size:13px;font-weight:700;opacity:.85}

.sessions{padding-block:70px 40px;background:var(--blanc)}
.sess-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(28px,5vw,60px);align-items:start}
.cal{display:grid;gap:22px}
.mois h4{margin:0 0 8px;font:600 22px/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--vert-profond);display:flex;justify-content:space-between;align-items:baseline}
.mois h4 small{font:700 12px var(--body);color:var(--gris);letter-spacing:.04em;text-transform:none}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:0;border-radius:14px;background:var(--vert-pale);color:var(--vert-profond);padding:7px 12px;font-size:13px;line-height:1.2;text-align:left;transition:background .2s,color .2s,transform .2s}
.chip b{display:block;font-weight:900;font-size:12.5px;letter-spacing:.03em}
.chip:hover,.chip.sel{background:var(--vert);color:#fff;transform:translateY(-2px)}

.resa{background:var(--papier);border-radius:36px;padding:clamp(22px,3.5vw,40px);box-shadow:0 20px 50px var(--ombre);scroll-margin-top:30px}
.resa h3{margin:0 0 6px;font:400 34px/1 var(--display);color:var(--encre);text-transform:uppercase}
.resa .intro{font-size:14px;color:var(--gris);margin:0 0 18px}
.memo{display:flex;align-items:center;gap:14px;background:var(--vert);color:#fff;border-radius:20px;padding:14px 16px;margin-bottom:18px;transition:transform .4s}
.memo.flash{animation:flash 1s}
@keyframes flash{0%{transform:scale(1)}30%{transform:scale(1.03)}100%{transform:scale(1)}}
.memo .ic{flex:none;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center}
.memo small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.memo strong{display:block;font-size:15px;line-height:1.3}
.memo.vide{background:#fff;color:var(--gris);box-shadow:inset 0 0 0 1.5px #D5E4D1}
.memo.vide .ic{background:var(--vert-pale);color:var(--vert)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}
.form .full{grid-column:1/-1}
.form label{display:grid;gap:5px;font-size:12.5px;font-weight:800;color:var(--encre)}
.form label i{font-style:normal;color:var(--vert)}
.form input,.form textarea,.form select{font:15px var(--body);color:var(--encre);border:0;border-radius:12px;padding:11px 13px;background:#fff;box-shadow:inset 0 0 0 1.5px #D5E4D1;width:100%}
.form input:focus,.form textarea:focus,.form select:focus{outline:none;box-shadow:inset 0 0 0 2px var(--vert)}
.form textarea{min-height:74px;resize:vertical}
.form .actions{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px}
.ok{grid-column:1/-1;background:var(--vert-pale);color:var(--vert-profond);border-radius:14px;padding:12px 14px;font-size:14px}

footer{background:var(--vert-profond);color:#DDEBD8;padding-block:50px 30px;font-size:14px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:34px}
footer h4{margin:0 0 10px;font:600 20px/1 var(--display);text-transform:uppercase;letter-spacing:.05em;color:#fff}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
footer a{text-decoration:none}footer a:hover{color:#fff;text-decoration:underline}
.copy{user-select:all;color:#fff;font-weight:800}
.credit{margin-top:30px;padding-top:16px;border-top:1px solid rgba(255,255,255,.15);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:12.5px;opacity:.8}

/* fiche formation (overlay) */
.fiche{position:fixed;z-index:80;inset:0;display:grid;place-items:center;padding:16px;background:rgba(27,42,30,.45);opacity:0;pointer-events:none;transition:opacity .3s}
.fiche.on{opacity:1;pointer-events:auto}
.fiche-box{position:relative;width:min(520px,100%);background:#fff;border-radius:34px;padding:34px 30px 28px;box-shadow:0 30px 80px rgba(0,0,0,.3);transform:translateY(14px) scale(.98);transition:transform .35s}
.fiche.on .fiche-box{transform:none}
.fiche-box h3{margin:6px 0 8px;font:400 34px/1.02 var(--display);color:var(--encre);text-wrap:balance}
.fiche-box p{margin:0 0 18px;font-size:15px}
.fiche-box .x{position:absolute;right:16px;top:16px;width:40px;height:40px;border-radius:50%;border:0;background:var(--vert-pale);color:var(--vert-profond);font:300 26px/1 var(--display)}
.fiche-box .cta-row{margin-top:0}

@media (max-width:1100px){.finder{width:min(420px,calc(100vw - 32px));padding:28px 26px 26px}.finder h2{font-size:29px}}
@media (max-width:900px){
  .mega .modules ul{grid-template-columns:1fr 1fr}
  .hero{height:auto;min-height:0;padding-block:130px 180px}
  .hero-title,.bulles{position:relative;left:auto;top:auto;max-width:none;padding-inline:16px}
  .hero-title{margin-bottom:26px}
  .bulles{gap:14px;flex-wrap:wrap}
  .spots{display:none}
  .mhe-grid,.intra-head,.sess-grid,.parcours,.f-grid{grid-template-columns:1fr}
  .faits{justify-content:center}
  .mosaique{grid-template-columns:1fr 1fr;grid-template-rows:200px 200px 200px}
  .mosaique .photo:first-child{grid-row:auto;grid-column:span 2}
  .mega-inner{grid-template-columns:1fr;padding-block:64px 26px}
  .finder{top:auto;bottom:16px;right:16px}
}
@media (max-width:560px){
  .form{grid-template-columns:1fr}
  .f-row{grid-template-columns:1fr;gap:10px}
  .mega .modules ul{grid-template-columns:1fr}
  .mega{border-radius:0 0 50% 50% / 0 0 40px 40px}
  .menu-tab{width:160px}
  .bulle-inter,.bulle-intra{width:min(200px,44vw)}
  .finder{padding:24px 20px 26px;border-radius:32px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition-duration:.01ms!important}}

/* ---------- Version statique transitoire ---------- */
.dates-box{background:var(--papier);border-radius:32px;padding:clamp(22px,3vw,32px);box-shadow:0 14px 36px var(--ombre)}
.db-count{margin:0 0 18px;font-size:15px;color:var(--texte)}
.db-count b{display:block;font:200 56px/1 var(--display);color:var(--vert)}
.dates-box h4{margin:0 0 10px;font:600 20px/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--vert-profond)}
.db-next{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:8px}
.db-next li{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;padding:9px 9px 9px 18px;border-radius:22px;font:300 14px/1.35 var(--body)}
.db-next li b{display:block;font-weight:800;color:var(--encre)}
.db-next li button{border:0;background:var(--vert);color:#fff;font:600 13px var(--body);padding:8px 16px;border-radius:999px;white-space:nowrap;transition:background .2s,transform .2s}
.db-next li button:hover{background:var(--vert-profond);transform:scale(1.04)}
.dates-box .btn{width:100%;justify-content:center}
.dates-modal .fiche-box{width:min(820px,100%);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;padding-bottom:20px}
.dates-modal .cal{overflow-y:auto;margin:16px -10px 0 0;padding-right:10px;overscroll-behavior:contain}
.d-ville{max-width:340px;margin-top:6px}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.ok.err{background:#FDEBDD;color:#8A2E07}
.form button[disabled]{opacity:.6;cursor:wait}
.mentions{margin-top:26px;font-size:13px;line-height:1.55;opacity:.85}
.mentions h4{margin:0 0 6px}
.mentions p{margin:0;max-width:110ch}

/* Recherche toujours visible, filtre par lieu seul */
.finder .f-row{grid-template-columns:1fr}
.finder{padding-bottom:28px}
.finder.flash{animation:flash 1s}
@media (max-width:900px){
  .finder{padding:16px 18px 18px;border-radius:26px}
  .finder .f-kicker{display:none}
  .finder h2{font-size:22px;margin-bottom:10px}
  .finder h2 br{display:none}
  .f-results.on{max-height:42vh}
}

/* Boîte « Toutes les dates de formation » : plus étroite, réductible */
.finder{width:min(360px,calc(100vw - 32px));padding:22px 24px 22px;border-radius:32px;clip-path:none;transition:padding .3s,width .3s,border-radius .3s}
.f-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.finder h2,.finder.reduit h2{margin:0;font:200 26px/1.05 var(--display);letter-spacing:.01em}
.finder.reduit h2{font-size:19px;cursor:pointer;white-space:nowrap}
.f-min{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:var(--vert-pale);color:var(--vert-profond);display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .3s}
.f-min:hover{background:var(--vert);color:#fff}
.f-min span{position:relative;display:block;width:12px;height:2px;background:currentColor;border-radius:2px}
.f-min span::after{content:"";position:absolute;inset:0;background:currentColor;border-radius:2px;transform:rotate(90deg) scaleX(0);transition:transform .3s}
.finder.reduit .f-min span::after{transform:rotate(90deg) scaleX(1)}
.f-corps{margin-top:14px}
.finder.reduit{width:auto;padding:10px 10px 10px 22px;border-radius:999px}
.finder.reduit .f-corps{display:none}
.finder .f-kicker{margin-bottom:10px;letter-spacing:.18em}
.f-results.on{max-height:300px}
.f-tout{margin-top:12px;border:0;background:none;padding:4px 2px;color:var(--vert-profond);font:600 14px var(--body);cursor:pointer}
.f-tout:hover{color:var(--vert)}
/* Formulaire intra dans la fiche */
.form-intra{margin-top:6px}
.form-intra .actions{display:flex;flex-wrap:wrap;gap:10px}
.fiche-box{max-height:calc(100dvh - 32px);overflow-y:auto}
@media (max-width:900px){
  .finder{padding:16px 18px 18px;border-radius:26px}
  .finder.reduit{padding:8px 8px 8px 18px;border-radius:999px}
  .finder .f-kicker{display:block}
  .finder h2 br{display:none}
}
[hidden]{display:none!important}
.finder.reduit h2 br{display:none}
.finder .f-kicker{font-size:10px;letter-spacing:.14em}

/* v7 : titre de la boîte dates */
.f-titres{min-width:0}
.f-titres .f-kicker{margin:0 0 6px;font-size:10px;letter-spacing:.14em}
.finder .f-titres h2{margin:0;font:300 30px/1 var(--display);text-transform:uppercase;letter-spacing:.03em;color:var(--encre)}
.finder.reduit .f-titres{cursor:pointer}
.finder.reduit .f-titres .f-kicker{display:none}
.finder.reduit .f-titres h2{font-size:20px;white-space:nowrap}
/* Encadré Qualiopi */
.qualiopi{display:flex;align-items:center;gap:14px;margin-top:6px;max-width:360px;padding:14px 18px;border-radius:22px;background:#fff;color:var(--vert-profond)!important;text-decoration:none!important;box-shadow:0 10px 26px rgba(0,0,0,.18);transition:transform .25s,box-shadow .25s}
.qualiopi:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(0,0,0,.24)}
.q-ic{flex:none;width:46px;height:46px;border-radius:50%;background:var(--vert);color:#fff;display:grid;place-items:center}
.q-ic svg{width:24px;height:24px}
.qualiopi b{display:block;font:600 20px/1.1 var(--display);text-transform:uppercase;letter-spacing:.04em;color:var(--encre)}
.qualiopi span{font-size:13px;line-height:1.35}
.qualiopi em{display:block;margin-top:4px;font-style:normal;font-weight:800;color:var(--vert)}
.mega-foot a{color:var(--vert-profond);font-weight:600;text-decoration:underline;text-underline-offset:3px}
