:root{
  --bg:#F3F5EA; --bg-2:#E4E9D0; --panel:#FFFFFF;
  --ink:#222A19; --ink-soft:#4C5640; --line:rgba(34,42,25,.18);
  --moss:#57621F; --moss-soft:#8B9A3F;
  --clay:#A64B22; --clay-deep:#86381A; --on-clay:#FFFFFF;
  --amber:#E2A93B; --on-amber:#2A1F08; --amber-text:#7C5A10;
  --forest:#182014; --forest-2:#232E1B; --on-forest:#F3EFDF; --on-forest-soft:#CBD1B5;
  --wa:#25D366; --on-wa:#06281C;
  --mark:#FFE7A3; --on-mark:#3D2B00;
  --serif:"Marcellus", Georgia, "Times New Roman", serif;
  --sans:"Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --gutter:clamp(20px,5vw,48px);
  --pebble:58% 42% 52% 48% / 48% 56% 44% 52%;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#11170E; --bg-2:#19220F; --panel:#1B2415;
    --ink:#EDF0DD; --ink-soft:#C3CBAE; --line:rgba(237,240,221,.2);
    --moss:#B9C673; --moss-soft:#8FA046;
    --clay:#E5926C; --clay-deep:#F2AD8A; --on-clay:#2B160B;
    --amber-text:#E8BC5C;
    --forest:#0B0F09; --forest-2:#141B0F;
    --mark:#6B5310; --on-mark:#FFF1C7;
  }
}
:root[data-theme="dark"]{
  --bg:#11170E; --bg-2:#19220F; --panel:#1B2415;
  --ink:#EDF0DD; --ink-soft:#C3CBAE; --line:rgba(237,240,221,.2);
  --moss:#B9C673; --moss-soft:#8FA046;
  --clay:#E5926C; --clay-deep:#F2AD8A; --on-clay:#2B160B;
  --amber-text:#E8BC5C;
  --forest:#0B0F09; --forest-2:#141B0F;
  --mark:#6B5310; --on-mark:#FFF1C7;
}

*,*::before,*::after{box-sizing:inherit}
html{background:var(--bg);scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
p{margin:0 0 1em}
ul,ol,dl{margin:0;padding:0}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.14;margin:0;color:inherit;text-wrap:balance}
h1{font-size:clamp(2.5rem,5.4vw,4.4rem);letter-spacing:-.005em}
h2{font-size:clamp(1.9rem,3.5vw,2.8rem)}
h3{font-size:clamp(1.4rem,2.2vw,1.8rem)}
:focus-visible{outline:3px solid var(--clay);outline-offset:3px;border-radius:4px}
.hero :focus-visible,.dark :focus-visible,.site-header :focus-visible,.site-footer :focus-visible,.explorer :focus-visible,.rdv :focus-visible{outline-color:var(--amber)}
main:focus{outline:none}
.wrap{width:min(1140px,calc(100% - 2*var(--gutter)));margin-inline:auto}
.narrow{max-width:64ch}
.lead{font-size:clamp(1.15rem,1.8vw,1.35rem);line-height:1.6;color:var(--ink-soft)}
.page[hidden]{display:none}
[hidden]{display:none!important}
.skip{position:absolute;left:-999px;top:8px;background:var(--amber);color:var(--on-amber);padding:10px 16px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* ---------- En-tête ---------- */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--forest);color:var(--on-forest);border-bottom:1px solid rgba(243,239,223,.12)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}
.badge{width:46px;height:46px;border-radius:50%;background:#F3F1E6;display:grid;place-items:center;flex:none}
.badge img{width:36px;height:36px}
.brand-name{font-family:var(--serif);font-size:1.45rem;color:#F2B992;white-space:nowrap}
.nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px)}
.nav a:not(.btn){text-decoration:none;font-weight:600;padding:6px 2px;color:var(--on-forest)}
.nav a:not(.btn)[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--amber);text-decoration-thickness:2px;text-underline-offset:9px}
.nav a:not(.btn):hover{color:var(--amber)}
.nav .btn{text-decoration:none}
.menu-btn{display:none;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(243,239,223,.6);background:transparent;color:var(--on-forest);font:700 .95rem var(--sans);cursor:pointer}

/* ---------- Boutons ---------- */
.btn{color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:.75rem 1.6rem;border-radius:999px;font:700 1rem/1.2 var(--sans);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s;text-align:center}
.btn svg{width:22px;height:22px;flex:none}
.btn-amber{background:var(--amber);color:var(--on-amber)}
.btn-amber:hover{background:#F0BC55}
.btn-clay{background:var(--clay);color:var(--on-clay)}
.btn-clay:hover{background:var(--clay-deep)}
.btn-wa{background:var(--wa);color:var(--on-wa)}
.btn-wa:hover{background:#43E086}
.btn-outline{border-color:currentColor;background:transparent}
.btn-outline:hover{background:rgba(226,169,59,.16)}
.btn-small{min-height:42px;padding:.5rem 1.2rem;font-size:.95rem}
.btn-row{display:flex;flex-wrap:wrap;gap:14px}

/* ---------- Sections ---------- */
.section{padding-block:clamp(56px,8vw,104px)}
.band{background:var(--bg-2)}
.dark{background:var(--forest);color:var(--on-forest)}
.section-head{margin-bottom:clamp(28px,4vw,48px)}
.section-head h2{margin-bottom:14px}
.pebble{border-radius:var(--pebble);overflow:hidden;background:var(--bg-2)}
.pebble img{width:100%;height:100%;object-fit:cover}
.link-line{display:inline-block;margin-top:6px;font-weight:700;color:var(--clay);text-underline-offset:5px;text-decoration-thickness:2px}
.link-line:hover{color:var(--clay-deep)}

/* ---------- Héro ---------- */
.hero{position:relative;overflow:hidden;color:var(--on-forest);background:
  radial-gradient(55% 75% at 76% 48%, rgba(226,169,59,.22), transparent 72%),
  linear-gradient(180deg,var(--forest) 0%,var(--forest-2) 100%);
  padding-block:clamp(44px,6vw,88px) clamp(52px,7vw,96px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,5vw,72px);align-items:center}
.hero h1{color:var(--on-forest);margin-bottom:24px;font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.1}
.hero .lead{color:var(--on-forest-soft);max-width:38ch;margin-bottom:32px}
.hero-note{margin:24px 0 0;font-size:.98rem;color:var(--on-forest-soft);max-width:46ch}
.hero-art{width:100%;max-width:470px;justify-self:end}
.hero-art svg{width:100%;height:auto;overflow:visible}
.ho{fill:none;stroke:#D9B265;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s cubic-bezier(.4,.1,.2,1) .2s forwards}
.hfill{fill:var(--forest-2);stroke:none;opacity:.9}
.hz{fill:rgba(226,169,59,.9);stroke:none;opacity:0;animation:zoneOn 1.2s ease-out forwards;animation-delay:var(--d);filter:drop-shadow(0 0 8px rgba(226,169,59,.8))}
.hz.line{fill:none;stroke:rgba(226,169,59,.95);stroke-width:9;stroke-linecap:round}
.hl{opacity:0;animation:fadeIn .9s ease-out forwards;animation-delay:var(--d)}
.hl text{fill:var(--on-forest);font:600 13px var(--sans)}
.hl line{stroke:rgba(243,239,223,.45);stroke-width:1;stroke-dasharray:3 3}
.hr{fill:none;stroke:rgba(226,169,59,.8);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center;animation:ripple 5s ease-out 6.4s infinite}
.hr.r2{animation-delay:8s}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes zoneOn{from{opacity:0}to{opacity:.55}}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes ripple{0%{opacity:.8;transform:scale(.3)}80%,100%{opacity:0;transform:scale(1.5)}}

/* ---------- Pictogrammes animés ---------- */
.picto{display:block;width:100%;aspect-ratio:1}
.pg{width:100%;height:100%;overflow:visible}
.pg *{fill:none;stroke:var(--amber);stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round}
.pg .fill{fill:var(--amber);stroke:none}
.pg [class*="dash"]{stroke-dasharray:1;stroke-dashoffset:0}
.js-anim .pg .dash,.js-anim .pg .dash2{stroke-dashoffset:1}
.in-view .pg .dash{animation:draw 1.4s ease-out forwards}
.in-view .pg .dash2{animation:draw 1.2s ease-out forwards}
/* premier pas */
.js-anim .pg-pas .a{opacity:0}
.in-view .pg-pas .a1{animation:pop .7s .1s ease-out forwards}
.in-view .pg-pas .a2{animation:pop .7s .8s ease-out forwards}
.in-view .pg-pas .a3{animation:pop .7s 1.5s ease-out forwards}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:none}}
.pg-pas .a{transform-box:fill-box;transform-origin:center}
/* fil du chemin */
.in-view .pg-fil .dash{animation-duration:1.8s}
.js-anim .pg-fil .a{opacity:0}
.in-view .pg-fil .a{animation:pop .6s 1.6s ease-out forwards}
.pg-fil .a{transform-box:fill-box;transform-origin:center}
/* lâcher prise */
.js-anim .pg-rings .rg{opacity:0}
.in-view .pg-rings .rg{animation:ringIn 1.3s ease-out forwards}
.in-view .pg-rings .r2{animation-delay:.3s}
.in-view .pg-rings .r3{animation-delay:.6s}
.pg-rings .rg{transform-box:fill-box;transform-origin:center}
@keyframes ringIn{from{opacity:0;transform:scale(.4)}to{opacity:.9;transform:none}}
/* second souffle */
.js-anim .pg-wind .lf{opacity:0}
.in-view .pg-wind .lf{animation:lift 1.2s 1s ease-out forwards}
.pg-wind .lf{transform-box:fill-box;transform-origin:center}
@keyframes lift{from{opacity:0;transform:translate(-16px,16px) rotate(-35deg)}to{opacity:1;transform:none}}
.in-view .pg-wind .dash2:nth-of-type(2){animation-delay:.2s}
.in-view .pg-wind .dash2:nth-of-type(3){animation-delay:.4s}
/* dénouement */
.pg-knot .tg,.pg-knot .st,.pg-cure .tk{stroke-dasharray:1;stroke-dashoffset:0}
.js-anim .pg-knot .st{stroke-dashoffset:1}
.in-view .pg-knot .tg{animation:untangle 1s .3s ease-in forwards}
.in-view .pg-knot .st{animation:draw 1s .9s ease-out forwards}
@keyframes untangle{to{stroke-dashoffset:1;opacity:0}}
.js-anim .pg-knot .a{opacity:0}
.in-view .pg-knot .a{animation:pop .5s 1.8s ease-out forwards}
.pg-knot .a{transform-box:fill-box;transform-origin:center}
/* ancrage */
.in-view .pg-root .dash2:nth-of-type(2){animation-delay:.25s}
.in-view .pg-root .dash2:nth-of-type(3){animation-delay:.5s}
.in-view .pg-root .dash2:nth-of-type(4){animation-delay:.75s}
/* point juste */
.pg-tgt .rg{transform-box:fill-box;transform-origin:center}
.in-view .pg-tgt .rg{animation:pulse 1.6s ease-out 2}
.in-view .pg-tgt .r2{animation-delay:.35s}
@keyframes pulse{0%{transform:scale(.55);opacity:0}35%{opacity:1}100%{transform:scale(1.12);opacity:.15}}
/* cure */
.js-anim .pg-cure .tk{stroke-dashoffset:1}
.in-view .pg-cure .tk{animation:draw .6s ease-out forwards}
.in-view .pg-cure .k2{animation-delay:.7s}
.in-view .pg-cure .k3{animation-delay:1.4s}
.js-anim .pg-cure .cc{fill-opacity:0}
.in-view .pg-cure .cc{animation:fillIn .5s ease-out forwards}
.in-view .pg-cure .c2{animation-delay:.7s}
.in-view .pg-cure .c3{animation-delay:1.4s}
@keyframes fillIn{to{fill-opacity:.22}}
.pg-cure .cc{fill:var(--amber)}
/* cadeau */
.in-view .pg-gift rect:nth-of-type(2){animation-delay:.5s}
.in-view .pg-gift path.dash2{animation-delay:1s}
/* sommeil */
.js-anim .pg-moon .z{opacity:0}
.in-view .pg-moon .z1{animation:pop .6s .8s ease-out forwards}
.in-view .pg-moon .z2{animation:pop .6s 1.3s ease-out forwards}
.in-view .pg-moon .z3{animation:pop .6s 1.8s ease-out forwards}
.pg-moon .z{transform-box:fill-box;transform-origin:center}
/* équilibre */
.pg-bal .beam{transform-origin:60px 78px}
.in-view .pg-bal .beam{animation:settle 2.4s ease-out forwards}
@keyframes settle{0%{transform:rotate(-15deg)}30%{transform:rotate(9deg)}55%{transform:rotate(-5deg)}78%{transform:rotate(2deg)}100%{transform:rotate(0)}}

/* ---------- Accueil ---------- */
.univers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,340px);gap:clamp(36px,7vw,96px);align-items:center}
.univers h2{margin-bottom:22px}
.univers .pebble{aspect-ratio:294/520;max-height:560px}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.tile{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;align-items:center;padding:20px 24px 20px 20px;border-radius:26px;background:var(--panel);border:1px solid var(--line);text-decoration:none;transition:border-color .2s,transform .25s}
.tile:hover{border-color:var(--clay);transform:translateY(-3px)}
.tile .ti{width:96px;height:96px;border-radius:50%;background:var(--forest-2);padding:8px}
.tile .ressenti{display:block;font-family:var(--serif);font-size:1.3rem;line-height:1.25;margin-bottom:6px}
.tile .ref{font-weight:700;color:var(--moss);font-size:.95rem}
.steps-wrap,.tl-wrap{position:relative}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;list-style:none;counter-reset:st}
.steps-line,.tl-line{position:absolute;left:0;right:0;top:0;width:100%;height:48px;pointer-events:none}
.steps-line path,.tl-line path{fill:none;stroke:var(--moss-soft);stroke-width:2}
.js-anim .steps-line path{stroke-dasharray:1;stroke-dashoffset:1}

.steps li{position:relative;padding-top:74px;counter-increment:st}
.steps li::before{content:counter(st);position:absolute;top:0;left:0;width:48px;height:48px;border-radius:50%;background:var(--clay);color:var(--on-clay);display:grid;place-items:center;font-family:var(--serif);font-size:1.4rem}
.steps h3{margin-bottom:8px;font-size:1.35rem}
.steps p{margin:0;font-size:1rem}
.photo-band{position:relative;color:var(--on-forest);text-align:center;padding-block:clamp(80px,12vw,152px);background:
  linear-gradient(rgba(20,27,15,.72),rgba(20,27,15,.84)),var(--band-img) center/cover no-repeat}
.photo-band p.q{font-family:var(--serif);font-size:clamp(2rem,4.8vw,3.6rem);line-height:1.15;max-width:22ch;margin:0 auto 32px}
.gift-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,6vw,80px);align-items:center}
.gift-grid h2{margin-bottom:20px}
.gift{position:relative;aspect-ratio:2/1;max-width:520px;border-radius:14px;padding:5% 6%;background:linear-gradient(135deg,#FBF8EE,#EFE8D2);color:#35251B;box-shadow:0 26px 50px -26px rgba(0,0,0,.6);overflow:hidden;transform:rotate(-2deg);transition:transform .4s}
.gift:hover{transform:rotate(0) scale(1.02)}
.gift::before{content:"";position:absolute;inset:8px;border:1px solid rgba(87,98,31,.5);border-radius:9px;pointer-events:none}
.gift::after{content:"";position:absolute;top:0;bottom:0;width:30%;left:-40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg);transition:left .9s}
.gift:hover::after{left:120%}
.gift img{position:absolute;left:6%;top:12%;width:24%;height:auto}
.gift-t{position:absolute;right:7%;top:9%;font-family:var(--serif);font-size:clamp(1.3rem,3.6vw,2rem);letter-spacing:.02em}
.gift-b{position:absolute;left:6%;bottom:9%;width:24%;text-align:center;font-family:var(--serif);font-size:clamp(.7rem,1.7vw,.95rem);color:#A64B22;line-height:1.15}
.gift-f{position:absolute;left:36%;right:7%;top:30%;bottom:20%;display:grid;grid-template-rows:repeat(4,1fr);gap:0}
.gift-f div{display:flex;align-items:flex-end;gap:8px;border-bottom:1px solid rgba(53,37,27,.55);font-size:clamp(.62rem,1.5vw,.82rem);padding-bottom:2px}
.gift-v{position:absolute;right:7%;bottom:8%;font-size:clamp(.55rem,1.3vw,.72rem);color:#5E4E42}

/* ---------- Page Soins ---------- */
.page-head{padding-block:clamp(48px,7vw,96px) clamp(20px,3vw,36px)}
.page-head h1{margin-bottom:22px}
.jump{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.jump a{padding:.55rem 1.15rem;border:1.5px solid var(--line);border-radius:999px;text-decoration:none;font-weight:600;transition:border-color .2s,color .2s}
.jump a:hover{border-color:var(--clay);color:var(--clay)}
.groupe{padding-block:clamp(36px,6vw,68px);scroll-margin-top:calc(88px + env(safe-area-inset-top,0px))}
.groupe h2{color:var(--accent)}
.g-reflexo{--accent:var(--clay)}
.g-knap{--accent:var(--moss)}
.g-offres{--accent:var(--amber-text)}
.groupe-head{max-width:62ch;margin-bottom:8px}
.groupe-head h2{margin-bottom:12px}
.fiche{display:grid;grid-template-columns:172px minmax(0,1fr) minmax(220px,280px);background:var(--panel);border:1px solid var(--line);border-radius:26px;overflow:hidden;margin-top:22px;scroll-margin-top:calc(90px + env(safe-area-inset-top,0px))}
.fiche-panel{background:linear-gradient(160deg,var(--forest-2),var(--forest));display:grid;place-items:center;padding:24px;cursor:pointer}
.fiche-panel .picto{width:108px}
.fiche-main{padding:clamp(22px,3vw,34px)}
.fiche-main h3{margin-bottom:4px;color:var(--accent)}
.fiche-nom{font-weight:700;color:var(--ink-soft);margin:0 0 14px;font-size:1rem}
.fiche-main p{max-width:60ch}
.bienfaits{list-style:none;display:grid;gap:8px;margin:16px 0 0}
.bienfaits li{position:relative;padding-left:28px}
.bienfaits li::before{content:"";position:absolute;left:1px;top:.5em;width:13px;height:13px;background:var(--accent,var(--moss-soft));border-radius:0 100% 0 100%}
.pour-qui{margin:18px 0 0;padding:14px 18px;border-left:3px solid var(--accent,var(--moss-soft));background:var(--bg-2);border-radius:0 12px 12px 0;max-width:60ch}
.fiche-tarifs{padding:clamp(22px,3vw,34px);background:var(--bg-2);display:flex;flex-direction:column;justify-content:center;gap:4px}
.fiche-tarifs .btn{margin-top:14px}
.tarif{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px dashed var(--line)}
.tarif:last-of-type{border-bottom:0}
.tarif .duree{font-weight:700}
.tarif .prix{font-family:var(--serif);font-size:1.9rem;color:var(--accent,var(--clay));line-height:1}
.tarif-note{margin:8px 0 0;font-size:.95rem;color:var(--ink-soft)}
.fiche-cadeau .gift{max-width:100%;margin-bottom:8px}
.avis{display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);gap:clamp(20px,5vw,64px);padding:clamp(28px,4vw,44px);background:var(--bg-2);border-radius:26px}
.avis h2{font-size:clamp(1.6rem,2.6vw,2.1rem)}
.avis p{max-width:64ch}
.avis p:last-child{margin-bottom:0}

/* ---------- Explorateur interactif ---------- */
.explorer{background:var(--forest);color:var(--on-forest);border-radius:32px;padding:clamp(20px,4vw,48px)}
.tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px}
.tab{min-height:46px;padding:0 22px;border-radius:999px;border:1.5px solid rgba(243,239,223,.35);background:transparent;color:var(--on-forest);font:700 1rem var(--sans);cursor:pointer;transition:background-color .2s,color .2s}
.tab:hover{border-color:var(--amber)}
.tab[aria-selected="true"]{background:var(--amber);border-color:var(--amber);color:var(--on-amber)}
.tp-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.tp-art{background:radial-gradient(70% 60% at 50% 45%,rgba(226,169,59,.14),transparent 75%),var(--forest-2);border-radius:24px;padding:clamp(12px,2vw,24px)}
.tp-art svg{width:100%;height:auto;display:block;max-height:560px;margin-inline:auto}
.ol-s *{fill:var(--forest-2);stroke:#C9A25A;stroke-width:5}
.ol-f *{fill:var(--forest-2);stroke:none}
.zone{fill:rgba(226,169,59,.13);stroke:rgba(226,169,59,.5);stroke-width:1;cursor:pointer;transition:fill .25s,stroke .25s}
.zone:hover{fill:rgba(226,169,59,.36)}
.zone.on{fill:rgba(226,169,59,.9);stroke:#F7D37A;filter:drop-shadow(0 0 7px rgba(226,169,59,.9))}
.zone.line{fill:none;stroke:rgba(226,169,59,.5);stroke-width:10;stroke-linecap:round}
.zone.line:hover{stroke:rgba(226,169,59,.8)}
.zone.line.on{stroke:#F7D37A}
.svg-cap{fill:var(--on-forest-soft);font:600 13px var(--sans);text-anchor:middle}
.b-shape *{fill:var(--forest-2);stroke:#C9A25A;stroke-width:2}
.b-fill *{fill:var(--forest-2);stroke:none}
.b-reg{fill:rgba(226,169,59,.08);stroke:rgba(226,169,59,.25);stroke-width:1;transition:fill .3s}
.b-reg.line{fill:none;stroke-width:5;stroke-linecap:round}
.b-reg.on{fill:rgba(226,169,59,.95);stroke:#F7D37A;filter:drop-shadow(0 0 6px rgba(226,169,59,.9))}
.b-reg.line.on{stroke:#F7D37A}
.tp-info{display:grid;gap:20px}
.info-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:20px;align-items:center;padding:20px;border-radius:22px;background:rgba(243,239,223,.06);border:1px solid rgba(243,239,223,.14)}
.info-card svg{width:100%;height:auto}
.info-card h3{color:var(--amber);font-size:1.6rem;margin-bottom:8px}
.info-card p{margin:0;color:var(--on-forest)}
.nbadge{width:100%;max-width:88px;aspect-ratio:1;border-radius:50%;background:var(--amber);color:var(--on-amber);display:grid;place-items:center;font:400 2.6rem var(--serif)}
.info-note{margin:0;font-size:.92rem;color:var(--on-forest-soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 14px;min-height:40px;border-radius:999px;border:1.5px solid rgba(243,239,223,.3);background:transparent;color:var(--on-forest);font:600 .92rem var(--sans);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--amber)}
.chip[aria-pressed="true"]{background:var(--amber);border-color:var(--amber);color:var(--on-amber)}
.chips.nums .chip{min-width:44px;padding:8px 10px;text-align:center}
.tp-ctrl{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.kpg{cursor:pointer}
.kp{fill:var(--amber);stroke:#F7D37A;stroke-width:1}
.kp-r{fill:none;stroke:rgba(226,169,59,.7);stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.kpt{fill:var(--on-amber);font:800 10px var(--sans);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.kpg.on .kp{fill:#FFF3C8;filter:drop-shadow(0 0 8px rgba(255,220,120,1))}
.kpg.on .kp-r{animation:kpRing 1.4s ease-out infinite}
@keyframes kpRing{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(2.6)}}
.timer{display:flex;gap:18px;align-items:center;padding:16px 20px;border-radius:22px;background:rgba(243,239,223,.06);border:1px solid rgba(243,239,223,.14)}
.timer svg{width:88px;height:88px;flex:none}
.timer .tr-bg{fill:none;stroke:rgba(243,239,223,.18);stroke-width:7}
.timer .tr-fg{fill:none;stroke:var(--amber);stroke-width:7;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%}
.timer .tr-n{fill:var(--on-forest);font:700 22px var(--serif);text-anchor:middle;dominant-baseline:central}
.timer p{margin:0 0 10px;font-size:.98rem}

/* ---------- Comprendre : blocs ---------- */
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:clamp(28px,6vw,80px);align-items:center}
.two.rev{grid-template-columns:minmax(0,420px) minmax(0,1fr)}
.two h2{margin-bottom:20px}
.two .pebble{aspect-ratio:1/.8}
.cap{margin-top:14px;text-align:center;font-family:var(--serif);font-size:1.1rem;color:var(--ink-soft)}
.duo{display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;align-items:start;margin-top:22px}
.duo .pebble{aspect-ratio:1/1.2}
.tl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;list-style:none}
.js-anim .steps-line path,.js-anim .tl-line path{stroke-dasharray:1;stroke-dashoffset:1}
.in-view .steps-line path,.in-view .tl-line path{animation:draw 2.4s ease-out forwards}
.tl li{position:relative;padding-top:74px}
.tl li::before{content:"";position:absolute;top:4px;left:4px;width:40px;height:40px;border-radius:50%;background:var(--amber);border:8px solid var(--bg-2);box-shadow:0 0 0 2px var(--amber)}
.tl h3{font-size:1.3rem;margin-bottom:8px}
.tl p{margin:0;font-size:1rem}
.bien{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px clamp(24px,5vw,64px)}
.bien-item{display:grid;grid-template-columns:88px minmax(0,1fr);gap:20px;align-items:start}
.bien-item .bi{width:88px;height:88px;border-radius:50%;background:var(--forest-2);padding:8px}
.bien-item h3{font-size:1.4rem;margin-bottom:6px;color:var(--moss)}
.bien-item p{margin:0}
.breath{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(28px,6vw,72px);align-items:center;padding:clamp(28px,5vw,56px);border-radius:32px;background:var(--forest);color:var(--on-forest)}
.breath h2{margin-bottom:16px}
.breath-stage{position:relative;aspect-ratio:1;display:grid;place-items:center}
.b-circle{position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle at 40% 35%,#F5CD7A,var(--amber) 55%,#B87E1E);box-shadow:0 0 60px rgba(226,169,59,.55);transform:scale(.55);transition:transform 6s ease-in-out}
.b-circle.in{transform:scale(1);transition-duration:4s}
.b-halo{position:absolute;inset:6%;border-radius:50%;border:1.5px dashed rgba(226,169,59,.5)}
.b-text{position:relative;z-index:1;font-family:var(--serif);font-size:1.5rem;color:var(--on-amber);text-align:center}
.b-count{margin:0 0 20px;color:var(--on-forest-soft);min-height:1.6em}

/* ---------- À propos ---------- */
.apropos-top{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,7vw,96px);align-items:center;padding-block:clamp(48px,7vw,96px)}
.apropos-top .pebble{aspect-ratio:3/3.6}
.apropos-top h1{margin-bottom:26px}
.apropos-top p{max-width:60ch}
.philo h2{margin-bottom:22px;max-width:22ch}
.philo p{font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.55;max-width:56ch}
.quals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(28px,6vw,80px);margin:0}
.quals div{padding:24px 0;border-top:1px solid var(--line)}
.quals dt{font-family:var(--serif);font-size:1.45rem;color:var(--clay);margin-bottom:6px;line-height:1.25}
.quals dd{margin:0}
.appr{display:grid;gap:22px;max-width:760px}
.appr-item{display:grid;grid-template-columns:76px minmax(0,1fr);gap:20px;align-items:start}
.appr-item .ai{width:76px;height:76px;border-radius:50%;background:var(--forest-2);padding:7px}
.appr-item h3{font-size:1.4rem;margin-bottom:4px;color:var(--moss)}
.appr-item p{margin:0}

/* ---------- Mentions légales ---------- */
.legal{padding-block:clamp(48px,7vw,96px)}
.legal h1{margin-bottom:10px}
.legal .maj{color:var(--ink-soft);margin-bottom:40px}
.legal-body{max-width:760px}
.legal-body h2{font-size:clamp(1.4rem,2.4vw,1.8rem);margin:44px 0 12px;color:var(--clay)}
.legal-body p,.legal-body li{max-width:70ch}
.legal-body ul{margin:0 0 1em 1.2em}
.legal-body li{margin-bottom:.4em}
.id-list{display:grid;gap:6px;margin:0 0 1em;padding:18px 22px;background:var(--bg-2);border-radius:14px}
.id-list div{display:grid;grid-template-columns:170px 1fr;gap:12px}
.id-list dt{font-weight:700}
.id-list dd{margin:0}
mark.a-completer{background:var(--mark);color:var(--on-mark);padding:1px 6px;border-radius:4px}

/* ---------- Rendez-vous (WhatsApp, téléphone, e-mail) ---------- */
#contact{scroll-margin-top:calc(72px + env(safe-area-inset-top,0px))}
.rdv{background:linear-gradient(180deg,var(--forest-2),var(--forest));color:var(--on-forest);padding-block:clamp(56px,8vw,104px)}
.rdv-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.rdv h2{margin-bottom:16px}
.rdv .lead{color:var(--on-forest-soft);margin-bottom:26px}
.channels{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.channel{display:flex;gap:16px;align-items:center;padding:16px 20px;border-radius:20px;border:1.5px solid rgba(243,239,223,.25);text-decoration:none;color:var(--on-forest);transition:border-color .2s,background-color .2s}
.channel:hover{border-color:var(--amber);background:rgba(243,239,223,.05)}
.channel .ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;flex:none}
.channel .ic svg{width:28px;height:28px}
.channel.wa .ic{background:var(--wa);color:var(--on-wa)}
.channel.tel .ic{background:var(--amber);color:var(--on-amber)}
.channel.mail .ic{background:var(--on-forest);color:var(--forest)}
.channel>span:last-child{min-width:0}
.channel strong{display:block;font-size:1.1rem}
.channel .sub{display:block;font-size:.95rem;color:var(--on-forest-soft);overflow-wrap:anywhere}
.coord{display:grid;gap:14px;margin:28px 0 0;font-size:1rem}
.coord div{display:grid;grid-template-columns:104px 1fr;gap:12px}
.coord dt{font-weight:700;color:var(--amber)}
.coord dd{margin:0;color:var(--on-forest-soft)}
.coord a{text-underline-offset:4px}
.composer{background:var(--panel);color:var(--ink);border-radius:26px;padding:clamp(22px,3.5vw,36px)}
.composer h3{margin-bottom:6px;font-size:1.6rem}
.composer .hint{font-size:.95rem;color:var(--ink-soft);margin-bottom:18px}
.field{display:grid;gap:6px;margin-bottom:14px}
.field label{font-weight:700;font-size:.95rem}
.field select,.field input{width:100%;min-height:50px;border-radius:14px;border:1.5px solid var(--line);background:var(--bg);color:var(--ink);padding:0 14px;font:inherit}
.preview{margin:8px 0 18px;padding:14px 16px;border-radius:14px;background:var(--bg-2);font-size:.98rem;white-space:pre-line;color:var(--ink)}
.privacy-note{margin:16px 0 0;font-size:.9rem;color:var(--ink-soft)}

/* ---------- Pied de page ---------- */
.site-footer{background:var(--forest);color:var(--on-forest);padding-block:clamp(48px,6vw,80px) 96px;border-top:1px solid rgba(243,239,223,.12)}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px)}
.foot-brand{display:flex;gap:16px;align-items:center}
.foot-brand .badge{width:72px;height:72px}
.foot-brand .badge img{width:58px;height:58px}
.foot-brand strong{font-family:var(--serif);font-size:1.6rem;font-weight:400;display:block;line-height:1.15;color:#F2B992}
.foot-brand span{color:var(--on-forest-soft);font-size:.98rem;display:block;margin-top:4px}
.site-footer h2{font-size:1.2rem;color:var(--on-forest);margin-bottom:12px}
.foot-links{list-style:none;display:grid;gap:8px}
.site-footer a{text-underline-offset:4px}
.site-footer address{font-style:normal;color:var(--on-forest-soft)}
.foot-bottom{margin-top:40px;padding-top:24px;border-top:1px solid rgba(243,239,223,.2);font-size:.92rem;color:var(--on-forest-soft)}
.foot-bottom p{margin:0 0 6px;max-width:80ch}

/* ---------- Bouton WhatsApp flottant ---------- */
.wa-fab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:50;display:inline-flex;align-items:center;gap:10px;min-height:58px;padding:0 22px 0 16px;border-radius:999px;background:var(--wa);color:var(--on-wa);font:800 1rem var(--sans);text-decoration:none;box-shadow:0 12px 32px -8px rgba(0,0,0,.5);transition:transform .2s}
.wa-fab:hover{transform:translateY(-2px)}
.wa-fab svg{width:30px;height:30px;flex:none}
.wa-fab:focus-visible{outline-color:#fff}

/* ---------- Adaptation ---------- */
@media (max-width:1000px){
  .fiche{grid-template-columns:minmax(0,1fr)}
  .fiche-panel{grid-auto-flow:column;justify-content:start;gap:16px;padding:16px 24px}
  .fiche-panel .picto{width:84px}
  .fiche-tarifs{border-top:1px solid var(--line)}
  .tp-grid{grid-template-columns:minmax(0,1fr)}
  .steps,.tl{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
  .steps-line,.tl-line{display:none}
  .steps li,.tl li{padding-top:64px}
}
@media (max-width:860px){
  .menu-btn{display:inline-flex}
  .nav{position:absolute;left:0;right:0;top:100%;background:var(--forest);border-bottom:1px solid rgba(243,239,223,.15);padding:10px var(--gutter) 22px;display:none;flex-direction:column;align-items:stretch;gap:2px}
  .nav.open{display:flex}
  .nav a:not(.btn){padding:12px 4px}
  .nav .btn{margin-top:10px}
  .hero-grid,.univers,.gift-grid,.two,.two.rev,.rdv-grid,.apropos-top,.avis,.breath,.foot-grid{grid-template-columns:minmax(0,1fr)}
  .hero-art{justify-self:center;max-width:400px}
  .univers .pebble,.two .pebble,.apropos-top .pebble{max-width:340px}
  .two figure{max-width:340px}
  .tiles,.bien,.quals{grid-template-columns:minmax(0,1fr)}
  .id-list div{grid-template-columns:1fr;gap:0}
  .breath-stage{max-width:300px}
}
@media (max-width:640px){
  .wa-fab{padding:0;width:58px;justify-content:center}
  .wa-fab .lbl{display:none}
  .brand-name{font-size:1.2rem}
  .badge{width:40px;height:40px}
  .badge img{width:31px;height:31px}
  .steps,.tl{grid-template-columns:minmax(0,1fr)}
  .tile{grid-template-columns:76px minmax(0,1fr);gap:14px;padding:16px}
  .tile .ti{width:76px;height:76px;padding:6px}
  .info-card{grid-template-columns:78px minmax(0,1fr);gap:14px}
  .coord div{grid-template-columns:88px 1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
  .ho,.js-anim .pg .dash,.js-anim .pg .dash2,.js-anim .pg-knot .st,.js-anim .pg-cure .tk,.js-anim .steps-line path,.js-anim .tl-line path{stroke-dashoffset:0!important}
  .hz{opacity:.55}
  .hl,.js-anim .pg .a,.js-anim .pg .rg,.js-anim .pg .lf,.js-anim .pg .z{opacity:1!important}
  .js-anim .pg-cure .cc{fill-opacity:.22}
  .pg-knot .tg{opacity:0}
}
html:not(.js) .page[hidden]{display:block!important}
