
:root{
  --white:#ffffff; --pearl:#fbf9f4; --pearl-2:#f5f0e4; --mist:#ebe4d3;
  --ink:#1f1e1c; --text:#4a4743; --muted:#7a756c; --line:#ede7da;
  --gold:#b8964a; --gold-2:#d9bd72; --gold-soft:#f6edd2; --yellow:#f4e6b8;
  --pink:#e94b9c; --pink-soft:#fdeef6;
  --sh-1:0 1px 2px rgba(20,20,30,.04),0 14px 36px rgba(20,20,30,.07);
  --sh-2:0 2px 8px rgba(20,20,30,.05),0 36px 80px rgba(20,20,30,.12);
  --display:"Montserrat","Open Sans",system-ui,Arial,sans-serif;
  --sans:"Open Sans",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{margin:0;overflow-x:clip;background:var(--white);color:var(--text);font-family:var(--sans);font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
p{margin:0}
a{color:inherit}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;color:var(--ink);font-family:var(--display);text-wrap:balance}
.wrap{max-width:1120px;margin:0 auto;padding-inline:22px}
.center{text-align:center}
section{padding-block:100px}
.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:var(--muted)}
.kicker::before{content:"";width:22px;height:1px;background:var(--gold)}
.h-sec{font-size:clamp(30px,4.4vw,54px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;line-height:1.1;margin-top:16px}
.h-sec b{font-weight:500;color:var(--gold)}
.lead{font-size:18px;max-width:56ch;margin-top:18px}
.center .lead{margin-inline:auto}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* buttons: ink primary, white secondary, gold only as a hairline */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;border:0;cursor:pointer;font-family:var(--display);font-weight:600;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;padding:20px 30px;border-radius:999px;color:#fff;background:var(--ink);box-shadow:0 14px 30px rgba(20,20,30,.18);transition:transform .25s ease,box-shadow .25s ease}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn:hover svg{transform:translateX(4px)}
.btn.light{background:var(--white);color:var(--ink);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}

.proto{background:var(--pearl-2);color:var(--muted);font-family:var(--display);font-size:10px;letter-spacing:.24em;text-transform:uppercase;text-align:center;padding:8px 16px}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:rgba(255,255,255,.82);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:20px;padding-block:12px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}
.brand img{width:34px}
.brand span{font-family:var(--display);font-weight:500;font-size:11px;letter-spacing:.3em;color:var(--ink)}
.nav{display:flex;gap:2px;flex:1;justify-content:center}
.nav a{white-space:nowrap;text-decoration:none;font-family:var(--display);font-size:10.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:9px 12px;border-radius:999px;transition:color .3s ease,background .3s ease}
.nav a:hover{color:var(--ink);background:var(--pearl)}
.hbtns{display:flex;gap:8px;flex:none}
.hb{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:10px 14px;border-radius:999px;background:var(--white);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.hb svg{width:15px;height:15px}
.hb.flash{background:var(--ink);color:#fff;box-shadow:none;position:relative;overflow:hidden}
.hb.flash svg{color:#e8d6a6}
.hb.flash::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-100%);animation:sheen 3.2s ease-in-out infinite}
@keyframes sheen{60%,100%{transform:translateX(100%)}}

/* hero */
.hero{padding-block:64px 90px;background:radial-gradient(900px 480px at 78% 30%,var(--pearl) 0%,rgba(247,247,248,0) 70%),var(--white)}
.hgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.hero h1{font-size:clamp(38px,5.6vw,72px);font-weight:200;letter-spacing:.04em;text-transform:uppercase;line-height:1.05;margin-top:20px}
.hero h1 b{font-weight:500;display:block;color:var(--gold)}
.hero .lead b{color:var(--ink);font-weight:600}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px;max-width:560px}
.choice{display:flex;flex-direction:column;gap:6px;text-decoration:none;padding:20px 22px;border-radius:24px;background:var(--white);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.choice:hover{transform:translateY(-4px);box-shadow:var(--sh-2),inset 0 0 0 1px var(--mist)}
.choice small{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.choice b{font-family:var(--display);font-size:15px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px}
.choice b svg{width:18px;height:18px;flex:none;transition:transform .3s var(--ease)}
.choice:hover b svg{transform:translateX(4px)}
.choice.dark{background:var(--ink);box-shadow:0 18px 40px rgba(20,20,30,.22)}
.choice.dark small{color:#b9b6b0}
.choice.dark b{color:#fff}
.hvis{position:relative;justify-self:center;width:min(420px,100%);aspect-ratio:4/5}
.hvis .arch{position:absolute;inset:6% 4% 0;border-radius:230px 230px 36px 36px;background:linear-gradient(180deg,#fff 0%,var(--pearl-2) 100%);box-shadow:var(--sh-2),inset 0 0 0 1px rgba(255,255,255,.9)}
.hvis .arch::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.7) 45%,rgba(255,255,255,0) 60%);background-size:260% 100%;animation:pearl 7s ease-in-out infinite}
@keyframes pearl{0%{background-position:120% 0}100%{background-position:-120% 0}}
.hvis img{position:absolute;bottom:0;left:50%;transform:translateX(-48%);height:95%;width:auto;max-width:none;filter:drop-shadow(0 18px 22px rgba(20,20,30,.16))}
.hvis .note{position:absolute;left:-2%;bottom:14%;z-index:2;background:rgba(255,255,255,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:18px;box-shadow:var(--sh-1);padding:12px 16px;font-size:13.5px;line-height:1.4;color:var(--ink);max-width:210px}
.hvis .note b{display:block;font-family:var(--display);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}

/* story */
.story{background:linear-gradient(180deg,var(--white),var(--pearl))}
.trail{position:relative;margin-top:70px}
.trail svg.path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.trail svg.path path{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;opacity:.55}
.beat{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding-block:34px}
.beat:nth-child(odd) .ph{order:2}
.beat .ph{justify-self:center;width:min(300px,100%);aspect-ratio:4/5;border-radius:28px;background:linear-gradient(170deg,#fff,var(--pearl-2));box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);display:grid;place-items:center;text-align:center;color:var(--muted);padding:18px}
.beat .ph svg{width:34px;height:34px;margin:0 auto;color:var(--gold)}
.beat .ph b{display:block;font-family:var(--display);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;margin-top:10px;color:var(--ink)}
.beat .ph span{display:block;font-size:13px;margin-top:4px}
.beat .yr{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.beat h3{font-size:clamp(22px,2.6vw,30px);font-weight:300;letter-spacing:.06em;text-transform:uppercase;margin-top:8px}
.beat h3 b{font-weight:500}
.beat p{margin-top:12px;max-width:44ch}
.beat .txt{position:relative;z-index:1;background:rgba(255,255,255,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:24px;padding:22px 24px}

/* offer */
.twin{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:56px;text-align:left}
.uni{border-radius:32px;padding:38px 34px;background:var(--white);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);display:flex;flex-direction:column}
.uni.dark{background:var(--ink);color:#d9d6d0;box-shadow:var(--sh-2)}
.uni.dark h3,.uni.dark .zone b{color:#fff}
.uni .tag{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.uni h3{font-size:clamp(24px,3vw,32px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;margin-top:10px}
.uni h3 b{font-weight:500}
.uni>p{margin-top:10px;font-size:15.5px}
.zones{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:24px}
.zone{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:14px 6px;border-radius:18px;background:var(--pearl)}
.uni.dark .zone{background:rgba(255,255,255,.06)}
.zone svg{width:34px;height:34px;color:var(--ink)}
.uni.dark .zone svg{color:#e8d6a6}
.zone b{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.also{margin-top:14px;font-size:13.5px;color:var(--muted)}
.uni.dark .also{color:#a9a59e}
.also b{color:var(--ink);font-weight:600}
.uni.dark .also b{color:#fff}
.uni .btn{margin-top:28px;align-self:flex-start}
.uni.dark .btn{background:#fff;color:var(--ink)}
.methods{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.methods span{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:9px 13px;border-radius:999px;background:rgba(255,255,255,.07);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.ticks{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:8px;font-size:15px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:#e8d6a6;margin-top:10px}

/* reviews */
.rev{background:var(--pearl)}
.tabs{display:inline-flex;background:var(--white);border-radius:999px;box-shadow:var(--sh-1);padding:5px;gap:4px;margin-top:28px}
.tabs button{border:0;cursor:pointer;background:none;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:11px 20px;border-radius:999px;color:var(--muted)}
.tabs button[aria-selected="true"]{background:var(--ink);color:#fff}
.live{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:18px;font-size:12.5px;color:var(--muted)}
.live i{width:8px;height:8px;border-radius:50%;background:#5cb87a;box-shadow:0 0 0 4px rgba(92,184,122,.18)}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:34px;text-align:left}
.q{background:var(--white);border-radius:24px;box-shadow:var(--sh-1);padding:26px;display:flex;flex-direction:column;gap:14px}
.q .stars{display:flex;gap:2px;color:var(--gold)}
.q .stars svg{width:14px;height:14px}
.q p{font-size:15px}
.q .by{margin-top:auto;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.q .by small{display:block;font-weight:500;letter-spacing:.1em;color:var(--muted);margin-top:2px}
.hint{font-size:12.5px;color:var(--muted);margin-top:18px}

/* footer (compact) */
footer{background:var(--white);border-top:1px solid var(--line);padding-block:28px}
.frow{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 28px;font-size:13.5px}
.frow .brand img{width:28px}
.fcontact{display:flex;flex-wrap:wrap;gap:6px 22px;color:var(--text)}
.flinks{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12px;color:var(--muted)}
.flinks a{text-decoration:none}
.flinks a:hover{color:var(--ink)}

/* note pour Marlène */
.memo{background:var(--pearl-2);padding-block:44px}
.memo .box{background:var(--white);border-radius:24px;box-shadow:var(--sh-1);padding:26px 28px;display:grid;gap:10px;font-size:15px}
.memo h3{font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase}
.memo ul{margin:0;padding-left:18px;display:grid;gap:4px}

/* v3 : intro + histoire animée + médaillons + LM REPAIR */
.hero{position:relative;background:radial-gradient(800px 460px at 80% 30%,var(--gold-soft) 0%,rgba(246,237,210,0) 70%),var(--pearl)}
body{background:var(--pearl)}
.intro{position:absolute;inset:0;z-index:30;background:var(--pearl);display:grid;place-items:center;transition:opacity .8s ease,visibility .8s}
.intro.done{opacity:0;visibility:hidden}
.intro .scene{position:absolute;display:flex;flex-direction:column;align-items:center;gap:18px;opacity:0;transition:opacity .6s ease,transform .6s var(--ease);transform:translateY(12px)}
.intro .scene.on{opacity:1;transform:none}
.intro svg{width:130px;height:auto;overflow:visible}
.intro .draw{fill:none;stroke:var(--gold);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:400;stroke-dashoffset:400}
.intro .on .draw{animation:drawin 1.2s var(--ease) forwards}
.intro .s1.on path{animation:drawin 1.2s var(--ease) forwards,fillheart .6s ease 1s forwards}
@keyframes drawin{to{stroke-dashoffset:0}}
@keyframes fillheart{to{fill:var(--gold-soft)}}
.intro span{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.34em;text-transform:uppercase;color:var(--ink)}
.logo-pop{width:120px;height:120px;border-radius:50%;background:#fff;box-shadow:var(--sh-2);display:grid;place-items:center;transform:scale(.4)}
.s3.on .logo-pop{animation:pop .8s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes pop{to{transform:scale(1)}}
.logo-pop img{width:64px}
#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.skip{position:absolute;right:18px;bottom:18px;border:0;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;background:#fff;box-shadow:var(--sh-1);padding:9px 14px;border-radius:999px;color:var(--muted)}
.cue{display:inline-flex;align-items:center;gap:14px;margin-top:34px;text-decoration:none;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--ink)}
.mouse{width:24px;height:38px;border-radius:14px;box-shadow:inset 0 0 0 1.6px var(--ink);display:grid;justify-items:center;padding-top:7px}
.mouse i{width:3px;height:8px;border-radius:2px;background:var(--gold);animation:wheel 1.6s ease-in-out infinite}
@keyframes wheel{0%{transform:translateY(0);opacity:1}80%{transform:translateY(10px);opacity:0}100%{opacity:0}}
.duo-tag{position:absolute;right:6%;top:10%;z-index:2;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:#fff;padding:6px 10px;border-radius:999px;box-shadow:var(--sh-1)}
.hvis .arch{background:linear-gradient(180deg,#fff 0%,var(--gold-soft) 100%)}
.story{background:linear-gradient(180deg,var(--pearl),#fff);padding-top:40px}
.trail svg.path path{stroke:var(--gold);opacity:.9;stroke-width:1.8}
.beat .ph{position:relative;background:linear-gradient(170deg,#fff,var(--pearl-2))}
.beat .ph .cam{width:30px;height:30px;color:var(--muted)}
.badge{position:absolute;top:-22px;left:-22px;width:64px;height:64px;border-radius:50%;background:#fff;box-shadow:var(--sh-2);display:grid;place-items:center;transform:scale(.4) rotate(-30deg);opacity:0;transition:transform .7s cubic-bezier(.2,1.5,.4,1),opacity .4s ease}
.beat:nth-child(even) .badge{left:auto;right:-22px}
.beat.in .badge{transform:none;opacity:1}
.badge svg{width:28px;height:28px;fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.b-heart svg{fill:var(--gold-soft)}
.beat.in .b-heart svg{animation:beat 1.4s ease-in-out infinite .7s}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
.beat .txt{transition:transform .8s var(--ease)}
.js .beat .txt{transform:translateY(0)}
.spark{position:absolute;width:6px;height:6px;border-radius:50%;pointer-events:none;z-index:3}
.zones{gap:12px}
.zone{background:transparent;padding:4px}
.med{width:74px;height:74px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 4px #fff,0 0 0 5px var(--gold-2),var(--sh-1);display:grid;place-items:center;background:var(--gold-soft);transition:transform .4s var(--ease)}
.zone:hover .med{transform:translateY(-4px) rotate(-4deg)}
.med img{width:100%;height:100%;object-fit:cover}
.med.drawn svg{width:40px;height:40px;color:var(--gold)}
.uni.dark .med{box-shadow:0 0 0 4px var(--ink),0 0 0 5px var(--gold-2)}
.uni.dark .med.drawn{background:#2d2b27}
.novice{margin-top:18px;font-size:14px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(233,214,166,.25);color:#e8d6a6}
.repair{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;text-align:left;text-decoration:none;margin-top:24px;padding:22px 28px;border-radius:28px;background:linear-gradient(120deg,#fff,var(--pink-soft));box-shadow:var(--sh-1),inset 0 0 0 1px #f8d3e5;transition:transform .35s var(--ease)}
.repair:hover{transform:translateY(-3px)}
.repair img{width:74px}
.repair small{display:block;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--pink)}
.repair b{display:block;font-family:var(--display);font-size:15px;font-weight:500;letter-spacing:.04em;color:var(--ink);margin:4px 0}
.repair span{font-size:14.5px}
.repair .go{width:22px;height:22px;color:var(--pink)}
.rev{background:var(--pearl-2)}
.q .stars{color:var(--gold-2)}
.hb.flash svg{color:var(--gold-2)}
.btn{background:var(--ink)}
@media (max-width:700px){.repair{grid-template-columns:auto 1fr}.repair .go{display:none}.repair img{width:56px}.badge{width:52px;height:52px;top:-16px;left:-10px}.beat:nth-child(even) .badge{right:-10px}}
@media (prefers-reduced-motion:reduce){.intro{display:none}.badge{transform:none;opacity:1}}

/* v4 */
.intro .craft{display:flex;flex-direction:column;align-items:center;gap:22px}
.intro .browdraw{width:min(620px,88vw);height:auto;overflow:visible}
.browdraw .st path,.browdraw .st circle{fill:none;stroke:#5a4636;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.browdraw .st .liner{stroke:#1f1e1c;stroke-width:2.6}
.browdraw .lbl text{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;fill:var(--gold);text-anchor:middle;opacity:0;transition:opacity .5s ease}
.browdraw .lbl text.on{opacity:1}
#lipsG.done path:first-child{fill:rgba(207,143,134,.35);transition:fill .6s ease}
#areoG.done circle:nth-child(2){fill:rgba(191,120,110,.35);transition:fill .6s ease}
.browdraw .hair{fill:none;stroke:#5a4636;stroke-width:1.25;stroke-linecap:round;stroke-dasharray:30;stroke-dashoffset:30}
.browdraw .hair.on{animation:drawin .35s ease-out forwards}
.needle{fill:var(--gold);opacity:0;transition:opacity .3s}
.needle.on{opacity:1}
.brands{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}
.brands span{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--ink);opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s var(--ease)}
.brands span.pk{color:var(--pink)}
.brands i{width:4px;height:4px;border-radius:50%;background:var(--gold);opacity:0;transition:opacity .5s}
.brands.on span,.brands.on i{opacity:1;transform:none}
.brands.on span:nth-of-type(2){transition-delay:.25s}.brands.on span:nth-of-type(3){transition-delay:.5s}
.tagline{font-family:var(--display);font-weight:200;font-size:clamp(24px,3.6vw,40px);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity .8s ease .9s}
.tagline.on{opacity:1}
.heroacts{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.vidslot{justify-self:center;width:min(440px,100%)}
.vid{aspect-ratio:4/5;border-radius:36px;background:linear-gradient(170deg,#fff,var(--gold-soft));box-shadow:var(--sh-2),inset 0 0 0 1px #fff;display:grid;place-items:center;align-content:center;gap:10px;text-align:center;padding:24px;position:relative;overflow:hidden}
.vid::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.7) 45%,rgba(255,255,255,0) 60%);background-size:260% 100%;animation:pearl 7s ease-in-out infinite}
.vid .play{width:78px;height:78px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);position:relative}
.vid .play::before{content:"";position:absolute;left:32px;top:25px;border-left:20px solid var(--ink);border-top:14px solid transparent;border-bottom:14px solid transparent}
.vid b{font-family:var(--display);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.vid span:last-child{font-size:14px;color:var(--text)}
/* scrolly */
.scrolly{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:60px}
.stagewrap{position:relative}
.stage{position:sticky;top:120px;aspect-ratio:1/1;border-radius:40px;background:radial-gradient(circle at 50% 40%,#fff,var(--pearl-2));box-shadow:var(--sh-2);overflow:hidden}
.frame{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:18px;opacity:0;transform:scale(.86);transition:opacity .7s ease,transform .9s var(--ease)}
.frame.on{opacity:1;transform:none}
.frame.out{opacity:0;transform:scale(1.12)}
.frame em{font-style:normal;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.duo{display:flex;align-items:flex-end;gap:0}
.duo .p{width:120px;height:200px;border-radius:60px 60px 20px 20px;background:linear-gradient(180deg,#fff,var(--mist));box-shadow:var(--sh-1);transition:transform 1s var(--ease)}
.frame:not(.on) .p1{transform:translateX(-60px)}.frame:not(.on) .p2{transform:translateX(60px)}
.duo .p2{margin-left:-18px;height:215px}
.door{display:flex;gap:6px}
.door span{width:90px;height:190px;border-radius:12px;background:linear-gradient(180deg,#fff,var(--gold-soft));box-shadow:var(--sh-1);transition:transform 1s var(--ease);transform-origin:left center}
.door span:last-child{transform-origin:right center}
.frame.on .door span:first-child{transform:perspective(500px) rotateY(-38deg)}
.frame.on .door span:last-child{transform:perspective(500px) rotateY(38deg)}
.logo-ring{width:170px;height:170px;border-radius:50%;background:#fff;box-shadow:0 0 0 10px rgba(255,255,255,.6),0 0 0 11px var(--gold-2),var(--sh-2);display:grid;place-items:center;align-content:center;gap:4px}
.logo-ring img{width:92px}
.logo-ring small{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.34em;color:var(--gold)}
.logo-ring.rp{box-shadow:0 0 0 10px rgba(255,255,255,.6),0 0 0 11px #f5a9cd,var(--sh-2)}
.logo-ring.rp img{width:120px}
.frame.on .logo-ring{animation:ringin 1s cubic-bezier(.2,1.3,.4,1)}
@keyframes ringin{from{transform:scale(.5) rotate(-20deg)}}
.cert{position:relative;width:220px;height:170px}
.cert span{position:absolute;width:150px;height:110px;border-radius:10px;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 6px var(--gold-soft);transition:transform .9s var(--ease)}
.cert span:nth-child(1){left:0;top:40px;transform:rotate(-10deg)}
.cert span:nth-child(2){left:70px;top:0;transform:rotate(6deg)}
.cert span:nth-child(3){left:40px;top:60px;transform:rotate(-2deg)}
.frame:not(.on) .cert span{transform:none}
.dots{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:6px}
.dots i{width:6px;height:6px;border-radius:50%;background:var(--mist);transition:width .4s ease,background .4s ease}
.dots i.on{width:22px;border-radius:4px;background:var(--gold)}
.steps{display:grid}
.step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;opacity:.25;transition:opacity .5s ease}
.step.on{opacity:1}
.step .yr{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.step h3{font-size:clamp(24px,3vw,36px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;margin-top:10px}
.step h3 b{font-weight:500}
.step p{margin-top:14px;max-width:42ch;font-size:17px}
/* univers */
.academy-ring{position:relative;margin-top:60px;padding:46px 28px 28px;border-radius:40px;text-align:left}
.ringsvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.ringsvg rect{fill:rgba(255,255,255,.55);stroke:var(--gold);stroke-width:1.6;stroke-dasharray:var(--L,4000);stroke-dashoffset:var(--L,4000);transition:stroke-dashoffset 2.4s var(--ease)}
.academy-ring.on .ringsvg rect{stroke-dashoffset:0}
.ringlabel{position:absolute;top:0;left:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;gap:10px;white-space:nowrap;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:var(--pearl);padding:8px 16px;border-radius:999px;box-shadow:var(--sh-1)}
.ringlabel img{width:22px}
.trio{display:grid;grid-template-columns:1fr 1fr;gap:22px;position:relative}
.brand-card{border-radius:30px;padding:34px 30px;background:#fff;box-shadow:var(--sh-1);display:flex;flex-direction:column}
.brand-card .tag{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.brand-card .tag.pk{color:var(--pink)}
.brand-card h3{font-size:clamp(22px,2.6vw,30px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;margin-top:10px}
.brand-card h3 b{font-weight:500}
.brand-card>p{margin-top:10px;font-size:15.5px}
.brand-card .zones{grid-template-columns:repeat(3,1fr)}
.brand-card .btn{margin-top:auto;align-self:flex-start}
.brand-card .also{margin-bottom:24px}
.pinkc{background:linear-gradient(160deg,#fff,var(--pink-soft))}
.pinkc h3 b{color:var(--pink)}
.rlist{list-style:none;padding:0;margin:20px 0 26px;display:grid;gap:10px}
.rlist li{display:flex;gap:14px;align-items:center;background:rgba(255,255,255,.8);border-radius:18px;padding:10px 14px;font-size:13.5px}
.rlist img,.rlist .dotc{width:46px;height:46px;border-radius:50%;object-fit:cover;flex:none}
.rlist .dotc{background:radial-gradient(circle,#f6b3d2 0 30%,#fde3ef 31% 100%)}
.rlist b{display:block;font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.pinkbtn{background:var(--pink);box-shadow:0 14px 30px rgba(233,75,156,.3)}
.acad-strip{position:relative;margin-top:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:22px 26px;border-radius:26px;background:linear-gradient(120deg,var(--gold-soft),#fff);box-shadow:var(--sh-1)}
.acad-strip b{display:block;font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.acad-strip span{display:block;font-size:14.5px;max-width:60ch;margin-top:4px}
/* ===== Institut ===== */
.i-hero{padding-block:70px 80px;background:radial-gradient(800px 460px at 80% 40%,var(--gold-soft) 0%,rgba(246,237,210,0) 70%),var(--pearl)}
.i-hero h1{font-size:clamp(34px,4.8vw,60px);font-weight:200;letter-spacing:.04em;text-transform:uppercase;line-height:1.08;margin-top:18px}
.i-hero h1 b{font-weight:500;color:var(--gold);display:block}
.basics{display:grid;gap:12px}
.basic{border:0;cursor:pointer;text-align:left;background:#fff;border-radius:24px;box-shadow:var(--sh-1);padding:20px 22px;display:grid;grid-template-columns:48px 1fr;column-gap:16px;align-items:center;transition:box-shadow .3s ease}
.basic .n{grid-row:1/3;width:48px;height:48px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-family:var(--display);font-size:18px;color:var(--gold)}
.basic b{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.basic .more{grid-column:2;font-size:14.5px;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s var(--ease),opacity .4s ease,margin .4s ease}
.basic[aria-expanded="true"]{box-shadow:var(--sh-2),inset 0 0 0 1px var(--gold-2)}
.basic[aria-expanded="true"] .more{max-height:140px;opacity:1;margin-top:6px}
.explore{background:#fff}
.pickers{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.switch{display:inline-flex;background:var(--pearl);border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);padding:5px;gap:4px}
.switch button{border:0;cursor:pointer;background:none;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:11px 20px;border-radius:999px;color:var(--muted);transition:background .3s ease,color .3s ease}
.switch button[aria-pressed="true"]{background:var(--ink);color:#fff}
.ai-note{font-size:12.5px;color:var(--muted);margin-top:12px}
.explore .grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:36px;text-align:left}
.viewer{position:relative;width:min(400px,100%);justify-self:center;aspect-ratio:220/300}
.view{position:absolute;inset:0;transition:opacity .6s ease,transform .8s var(--ease)}
.view.face{transform-origin:50% 40%}
.view.body{opacity:0;transform:scale(1.4);pointer-events:none}
.viewer.b .view.face{opacity:0;transform:scale(.45) translateY(-40%);pointer-events:none}
.viewer.b .view.body{opacity:1;transform:none;pointer-events:auto}
.view svg{width:100%;height:100%;overflow:visible}
.brow{stroke:var(--browc);stroke-width:4.5}
#lipsP{fill:var(--lipc)}
.hot{position:absolute;transform:translate(-50%,-50%);border:0;cursor:pointer;background:none;padding:0;width:44px;height:44px;display:grid;place-items:center}
.hot i{width:16px;height:16px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 5px rgba(217,189,114,.3);position:relative}
.hot i::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--gold-2);animation:ping 2s ease-out infinite}
@keyframes ping{to{transform:scale(2.4);opacity:0}}
.hot.pk i{background:var(--pink);box-shadow:0 0 0 5px rgba(233,75,156,.2)}
.hot.pk i::after{border-color:var(--pink)}
.hot span{position:absolute;left:50%;top:calc(100% - 8px);transform:translateX(-50%);pointer-events:none;white-space:nowrap;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);background:rgba(255,255,255,.94);padding:4px 8px;border-radius:999px;box-shadow:var(--sh-1)}
.hot[aria-pressed="true"] i{background:var(--ink)}
.hot.new i{background:#fff;box-shadow:0 0 0 5px rgba(217,189,114,.25),inset 0 0 0 2px var(--gold-2)}
.zpanel{background:linear-gradient(170deg,#fff,var(--pearl));border-radius:30px;box-shadow:var(--sh-2);padding:32px;min-height:420px}
.zpanel.pinkp{background:linear-gradient(170deg,#fff,var(--pink-soft))}
.zk{font-family:var(--display);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);font-weight:600}
.pinkp .zk{color:var(--pink)}
.zpanel h3{font-size:clamp(22px,2.8vw,32px);font-weight:200;letter-spacing:.04em;text-transform:uppercase;margin-top:8px}
.zpanel h3 b{font-weight:500}
.zpanel .zintro{margin-top:10px;font-size:15.5px}
.techs{display:grid;gap:10px;margin-top:18px}
.tech{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;background:#fff;border-radius:18px;padding:10px 12px;box-shadow:inset 0 0 0 1px var(--line)}
.tech img,.tech .ph{width:52px;height:52px;border-radius:50%;object-fit:cover;background:var(--gold-soft)}
.tech b{display:block;font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.tech span{display:block;font-size:14px;line-height:1.5}
.tech em{font-style:normal;font-family:var(--display);font-size:8.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);background:var(--gold-soft);padding:3px 7px;border-radius:999px;margin-left:6px;vertical-align:1px}
.zpanel .heroacts{margin-top:22px}
.zin{animation:tlin .5s var(--ease) both}
@keyframes tlin{from{opacity:0;transform:translateY(10px)}}
.hintline{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:22px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.hintline svg{width:20px;height:20px}
/* simulateur */
.sim{background:var(--pearl)}
.simgrid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;margin-top:44px}
.stage2{position:relative;border-radius:32px;background:linear-gradient(170deg,#f6efe4,#efe3d0);box-shadow:var(--sh-2);aspect-ratio:16/10;overflow:hidden}
.stage2 canvas{width:100%;height:100%;display:block}
.stage2 .lab{position:absolute;left:16px;bottom:14px;font-family:var(--display);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:rgba(255,255,255,.9);padding:6px 10px;border-radius:999px}
.ctrl h4{margin:22px 0 0;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.ctrl h4:first-child{margin-top:0}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.chip{border:0;cursor:pointer;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:#fff;padding:11px 16px;border-radius:999px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:none}
.swatches{display:flex;gap:10px;margin-top:10px}
.sw{width:36px;height:36px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 3px #fff,var(--sh-1)}
.sw[aria-pressed="true"]{box-shadow:inset 0 0 0 3px #fff,0 0 0 2px var(--ink)}
.simdesc{margin-top:20px;background:#fff;border-radius:18px;padding:16px 18px;font-size:15px}
.simdesc b{color:var(--ink)}
.soon2{display:flex;gap:12px;align-items:center;margin-top:14px;font-size:14px}
.soon2 span{flex:none;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;background:var(--ink);color:#fff;padding:6px 10px;border-radius:999px}
.simnote{font-size:12.5px;color:var(--muted);margin-top:12px}
/* parcours rdv */
.journey{display:grid;grid-template-columns:.8fr 1.2fr;gap:28px;margin-top:44px;text-align:left}
.jsteps{display:grid;gap:8px;align-content:start;position:relative}
.jsteps button{border:0;cursor:pointer;text-align:left;display:flex;align-items:center;gap:14px;background:var(--pearl);border-radius:18px;padding:12px 14px;font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);transition:background .3s ease,box-shadow .3s ease}
.jsteps button i{font-style:normal;width:30px;height:30px;border-radius:50%;background:#fff;display:grid;place-items:center;font-weight:400;color:var(--gold);flex:none}
.jsteps button[aria-selected="true"]{background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--gold-2)}
.jsteps button.done i{background:var(--gold-soft)}
.jstage{background:linear-gradient(170deg,#fff,var(--pearl-2));border-radius:32px;box-shadow:var(--sh-2);padding:30px;min-height:440px;display:flex;flex-direction:column}
.jstage h3{font-size:clamp(22px,2.4vw,28px);font-weight:200;letter-spacing:.05em;text-transform:uppercase}
.jstage h3 b{font-weight:500}
.jstage p{margin-top:8px;font-size:15.5px}
.jvis{flex:1;display:grid;place-items:center;min-height:220px;margin-block:14px}
.jnav{display:flex;justify-content:space-between;gap:10px}
.jnav button{border:0;cursor:pointer;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:12px 18px;border-radius:999px;background:#fff;box-shadow:var(--sh-1);color:var(--ink)}
.jnav button.next{background:var(--ink);color:#fff}
.facts2{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.facts2 span{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--gold-soft);color:var(--ink);padding:6px 10px;border-radius:999px}
.phone{width:170px;height:300px;border-radius:30px;background:#fff;box-shadow:var(--sh-2),inset 0 0 0 7px #f2efe9;padding:26px 14px;display:flex;flex-direction:column;gap:8px;justify-content:flex-end}
.bub{max-width:88%;padding:8px 11px;border-radius:14px;font-size:11.5px;line-height:1.35;animation:tlin .5s both}
.bub.me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}
.bub.her{align-self:flex-start;background:var(--gold-soft);color:var(--ink);border-bottom-left-radius:4px}
.typing{align-self:flex-start;display:flex;gap:3px;padding:10px;background:var(--pearl-2);border-radius:14px}
.typing i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:typ 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes typ{50%{transform:translateY(-3px);opacity:.4}}
.sheet{width:230px;height:290px;background:#fff;border-radius:10px;box-shadow:var(--sh-2);padding:20px;display:flex;flex-direction:column;gap:8px}
.sheet i{height:6px;border-radius:3px;background:var(--pearl-2)}
.sheet i:nth-child(odd){width:80%}
.sheet svg{margin-top:auto;width:100%;height:60px}
.sheet svg path{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420;animation:drawin 2s .5s ease forwards}
@keyframes drawin{to{stroke-dashoffset:0}}
.cal{display:grid;grid-template-columns:repeat(7,26px);gap:6px}
.cal i{width:26px;height:26px;border-radius:8px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.cal i.m{background:var(--gold-soft);box-shadow:inset 0 0 0 1.5px var(--gold)}
.cal i.r{background:var(--ink)}
/* engagements */
.engage{background:#fff}
.eng{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px;text-align:left}
.eng div{background:var(--pearl);border-radius:22px;padding:22px}
.eic{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);font-size:18px;box-shadow:var(--sh-1)}
.eng b{display:block;margin-top:12px;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.eng p{font-size:14px;margin-top:6px}
.refs{display:inline-flex;flex-direction:column;gap:2px;margin-top:26px;background:var(--pearl);border-radius:18px;padding:14px 20px;font-size:14px}
.refs b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
/* avis + infos */
.infos{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px;align-items:stretch}
.card{background:#fff;border-radius:28px;box-shadow:var(--sh-1);padding:30px}
.card h3{font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase}
.row{display:flex;gap:14px;align-items:flex-start;margin-top:18px}
.row svg{width:22px;height:22px;color:var(--gold);flex:none;margin-top:3px}
.row b{color:var(--ink)}
.copy{border:0;cursor:pointer;margin-top:6px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;background:var(--gold-soft);color:var(--ink);padding:7px 12px;border-radius:999px}
.mapph{border-radius:26px;background:repeating-linear-gradient(45deg,var(--pearl) 0 14px,var(--pearl-2) 14px 28px);min-height:260px;display:grid;place-items:center;text-align:center;color:var(--gold);padding:20px}
.mapph b{display:block;font-family:var(--display);font-size:10px;letter-spacing:.3em;text-transform:uppercase;margin-top:10px}
.mapph span{display:block;font-size:14px;color:var(--text);margin-top:6px}
.mapph svg{width:34px;height:34px;margin:0 auto}
.amen{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.amen span{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:var(--pearl);color:var(--ink);padding:8px 12px;border-radius:999px}
#infos{background:#fff}
@media (max-width:980px){.explore .grid,.simgrid,.journey,.infos{grid-template-columns:1fr}.eng{grid-template-columns:1fr 1fr}.jsteps{grid-template-columns:repeat(4,1fr)}.jsteps button span{display:none}.jsteps button{justify-content:center}}
@media (max-width:700px){.eng{grid-template-columns:1fr}.zpanel{padding:24px 18px;min-height:0}.jstage{padding:22px 18px;min-height:0}.jsteps{grid-template-columns:repeat(4,1fr);gap:6px}.jsteps button{padding:10px}.switch button{padding:10px 14px}}

@media (max-width:980px){.scrolly{display:block}.stagewrap{position:sticky;top:64px;z-index:2;padding-block:8px;background:linear-gradient(180deg,var(--pearl) 85%,rgba(251,249,244,0))}.stage{position:relative;top:0;height:38vh;aspect-ratio:auto;max-width:520px;margin:0 auto}.step{min-height:72vh;justify-content:flex-end;padding-bottom:6vh}.trio{grid-template-columns:1fr}}
@media (max-width:700px){.stage{top:70px;border-radius:28px}.duo .p{width:80px;height:140px}.duo .p2{height:150px}.door span{width:62px;height:130px}.logo-ring{width:120px;height:120px}.logo-ring img{width:64px}.logo-ring.rp img{width:84px}.cert{transform:scale(.7)}.step{text-align:center;align-items:center}.ringlabel{white-space:normal;text-align:center;width:88%;justify-content:center}.academy-ring{padding:56px 14px 16px}.acad-strip .btn{width:100%}}
@media (prefers-reduced-motion:reduce){.step{opacity:1}.frame{transition:none}}

@media (max-width:980px){
  .nav{display:none}
  .hgrid,.twin{grid-template-columns:1fr}
  .quotes{grid-template-columns:1fr 1fr}
  .brand span{display:none}
}
@media (max-width:700px){
  body{font-size:16px}
  section{padding-block:72px}
  .wrap{padding-inline:18px}
  .hb .t{display:none}
  .choices{grid-template-columns:1fr}
  .beat{grid-template-columns:1fr;gap:18px;padding-block:22px}
  .beat:nth-child(odd) .ph{order:0}
  .beat .ph{width:min(240px,100%)}
  .zones{grid-template-columns:repeat(2,1fr)}
  .quotes{grid-template-columns:1fr}
  .uni{padding:30px 22px}
  .btn{width:100%}
  .uni .btn{align-self:stretch}
  .frow{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

.zphoto{position:relative;margin:-6px -6px 16px;border-radius:22px;overflow:hidden;aspect-ratio:16/9;box-shadow:var(--sh-1)}
.zphoto img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);animation:zkb 5s ease forwards}
@keyframes zkb{to{transform:scale(1)}}
.zphoto span,.jstage .jphoto .jcap,.tabph span{position:absolute;left:12px;bottom:12px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);backdrop-filter:blur(6px);padding:6px 11px;border-radius:999px}
.jphoto{position:relative;width:min(300px,100%);aspect-ratio:3/4;border-radius:24px;overflow:hidden;box-shadow:var(--sh-2);margin-inline:auto}
.jstage .jphoto{padding:0;background:#1f1e1c}
.jphoto img,.jphoto video{width:100%;height:100%;object-fit:cover;display:block}
.tabph{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:4/3;margin:18px 0 12px;box-shadow:var(--sh-1)}
.tabph img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.engph{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0 8px}
.engph figure{margin:0;position:relative;border-radius:26px;overflow:hidden;aspect-ratio:4/3;box-shadow:var(--sh-2)}
.engph img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;transition:transform 1.2s var(--ease)}
.engph figure:hover img{transform:scale(1.05)}
.engph figcaption{position:absolute;left:14px;bottom:14px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);backdrop-filter:blur(6px);padding:7px 12px;border-radius:999px}
@media (max-width:700px){.engph{grid-template-columns:1fr}.jphoto{width:220px}}
.heal{background:linear-gradient(180deg,#fff,var(--pearl))}
.heal-card{max-width:900px;margin:30px auto 0;background:#fff;border-radius:32px;box-shadow:var(--sh-2);padding:18px 18px 26px}
.heal-stage{position:relative;border-radius:24px;overflow:hidden}
.heal-stage canvas{display:block;width:100%;height:auto}
.heal-day{position:absolute;left:16px;top:16px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:rgba(255,255,255,.92);padding:8px 13px;border-radius:999px;box-shadow:var(--sh-1)}
#hrange{width:calc(100% - 40px);margin:22px 20px 0;accent-color:var(--gold)}
.heal-ticks{display:grid;grid-template-columns:repeat(6,1fr);margin:6px 8px 0}
.heal-ticks button{border:0;background:none;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;padding:6px 2px}
.heal-ticks button[aria-pressed="true"]{color:var(--ink)}
.heal-text{max-width:620px;margin:14px auto 0;min-height:96px}
.heal-text h3{font-size:clamp(20px,2.2vw,25px);font-weight:200;letter-spacing:.05em;text-transform:uppercase}
.heal-text h3 b{font-weight:500}
.heal-text p{margin-top:6px}
.heal-text .tipx{display:inline-block;margin-top:10px;font-size:13px;background:var(--gold-soft);color:#6b5a2a;padding:6px 12px;border-radius:999px}
@media (max-width:700px){.heal-card{padding:10px 10px 20px}.heal-ticks button{font-size:8px;letter-spacing:.04em}}
.pbar{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--gold),var(--gold-2));z-index:200;pointer-events:none}
.mcta{display:none}
@media (max-width:700px){.mcta{position:fixed;left:12px;right:12px;bottom:12px;z-index:150;display:flex;gap:8px;padding:8px;border-radius:999px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 30px rgba(31,30,28,.16);transform:translateY(140%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.mcta.on{transform:none}.mcta a{flex:1;justify-content:center;text-align:center;padding:12px 10px;font-size:10px}}

/* ===================== v4 · Institut étape par étape ===================== */
body{background:var(--pearl)}
p,li,.e-t small,.lede{text-wrap:pretty}
h1,h2,h3,.e-t b{text-wrap:balance}
.parcours{padding-top:56px;background:radial-gradient(900px 460px at 50% 0%,var(--gold-soft) 0%,rgba(246,237,210,0) 70%),var(--pearl)}
.p-head h1{font-size:clamp(32px,5vw,60px);font-weight:200;letter-spacing:.04em;text-transform:uppercase;line-height:1.08;margin-top:14px}
.p-head h1 b{font-weight:500;color:var(--gold);display:block}
.p-head .one{margin:16px auto 0;font-size:17.5px;max-width:44ch}
.herobrow{display:block;width:min(330px,76%);height:auto;margin:22px auto 0;overflow:visible}
.herobrow .guide{fill:none;stroke:var(--gold-2);stroke-width:.8;stroke-dasharray:3 5;opacity:.7}
.invite{display:flex;flex-direction:column;align-items:center;gap:10px;margin:26px auto 0;max-width:40ch;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.7;color:var(--ink)}
.invite i{width:1px;height:34px;background:linear-gradient(var(--gold),rgba(184,150,74,0));animation:drip 2.4s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.etape{min-width:0}
.e-body{min-width:0}
.lede{font-size:16px;max-width:60ch}
.mini{font-size:12.5px;color:var(--muted);margin-top:10px}
.simlab{display:inline-flex;align-items:center;gap:6px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:rgba(255,255,255,.94);padding:6px 11px;border-radius:999px;box-shadow:0 1px 4px rgba(20,20,30,.06)}
.facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.facts span{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--gold-soft);color:var(--ink);padding:7px 11px;border-radius:999px}
.duo2{display:grid;grid-template-columns:1.1fr .9fr;gap:34px;align-items:center}
.duo2>*{min-width:0}
.stage3{position:relative;border-radius:26px;background:linear-gradient(170deg,#f8efe3,#ecdcc6);box-shadow:var(--sh-1);overflow:hidden}
.stage3 svg{display:block;width:100%;height:auto}
.stage3 .simlab{position:absolute;left:14px;bottom:12px}
.seg{display:inline-flex;flex-wrap:wrap;background:var(--pearl);border-radius:26px;box-shadow:inset 0 0 0 1px var(--line);padding:4px;gap:4px}
.seg button{border:0;cursor:pointer;background:none;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:10px 15px;border-radius:999px;color:var(--muted);transition:background .3s,color .3s}
.seg button[aria-pressed="true"]{background:var(--ink);color:#fff}
.stack{display:grid}
.stack>*{grid-area:1/1;min-width:0;transition:opacity .45s ease}
.stack>.off{visibility:hidden;opacity:0;pointer-events:none}
.tile{background:var(--pearl);border-radius:22px;padding:20px}
.tile b.t{display:block;font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.tile p{font-size:14.5px;margin-top:6px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.tiles>*{min-width:0}
.replay{border:0;cursor:pointer;background:none;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding:8px 0}
.say{margin-top:20px;display:flex;gap:14px;align-items:flex-start;background:#fff;border-radius:20px;padding:16px 18px;box-shadow:inset 0 0 0 1px var(--gold-2);font-size:14.5px}
.say svg{flex:none;width:22px;height:22px;color:var(--gold);margin-top:2px}
.say b{color:var(--ink)}

/* 01 · la peau en coupe */
.skin{position:relative;border-radius:26px;overflow:hidden;background:#fbf4ea;box-shadow:var(--sh-1)}
.skin svg{display:block;width:100%;height:auto}
.skin text{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;fill:#8a7456}
.skin .dots{transition:transform 1.1s var(--ease)}
.skin .dots circle{transition:opacity .6s ease}
.skin .needle{transition:transform .9s var(--ease)}
.skinctl{display:grid;gap:16px}
.yrs{display:grid;gap:6px}
.yrs label{font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.yrs input{width:100%;accent-color:var(--gold)}
.yrs .scale{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.three{display:grid;gap:10px}
.three div{display:flex;gap:12px;align-items:center;font-size:15px}
.three span{flex:none;width:34px;height:34px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;font-family:var(--display);font-size:12px;color:var(--gold)}

/* 02 · explorateur */
.xgrid{display:grid;grid-template-columns:.95fr 1.05fr;gap:30px;align-items:start}
.xgrid>*{min-width:0}
.xtop{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:10px}
.clickme{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px auto 14px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-align:center}
.clickme svg{width:20px;height:20px;flex:none}
.viewer{margin:0 auto;width:min(340px,100%)}
.view svg{filter:drop-shadow(0 16px 20px rgba(20,20,30,.08))}
.finger{position:absolute;width:38px;height:38px;color:var(--ink);pointer-events:none;z-index:4;margin:-4px 0 0 -8px;animation:fing 3.4s var(--ease) infinite;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18))}
.finger svg{width:100%;height:100%;fill:#fff}
.finger.gone{opacity:0!important;animation:none;transition:opacity .3s}
@keyframes fing{0%{transform:translate(90px,120px);opacity:0}18%{opacity:1}45%{transform:translate(0,0) scale(1)}52%{transform:translate(0,0) scale(.82)}60%{transform:translate(0,0) scale(1)}88%{opacity:1}100%{transform:translate(0,0);opacity:0}}
.people{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}
.people button{width:44px;height:44px;border-radius:50%;border:0;padding:0;cursor:pointer;background:var(--pearl-2);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s}
.people button:hover{transform:translateY(-3px)}
.people button[aria-pressed="true"]{box-shadow:0 0 0 2px #fff,0 0 0 3.5px var(--gold)}
.people svg{width:100%;height:100%;display:block}
.people-note{font-size:12.5px;color:var(--muted);margin-top:10px;text-align:center}
.zpanel{height:520px;overflow:auto;min-height:0;padding:26px 24px;scrollbar-width:thin}
.zpanel .zphoto{aspect-ratio:21/9}
.zpanel .techs{gap:8px}
.tech{grid-template-columns:44px 1fr;padding:9px 11px}
.tech img,.tech .ph{width:44px;height:44px}
.tech .ph{display:grid;place-items:center;color:var(--gold)}
.tech .ph svg{width:24px;height:24px}
.tech span{font-size:13.5px}
.tech .pz{display:block;margin-top:2px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--gold)}
.pinkp .tech .pz{color:var(--pink)}
.zacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.zacts button{border:0;cursor:pointer;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:13px 18px;border-radius:999px;background:var(--ink);color:#fff}
.zacts button.l{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.pinkp .zacts button{background:var(--pink)}
.pinkp .zacts button.l{background:#fff;color:var(--ink)}
.bchoose{display:grid;gap:12px;margin-top:20px}
.bchoose button{display:flex;gap:14px;align-items:center;text-align:left;border:0;cursor:pointer;background:#fff;border-radius:20px;padding:16px;box-shadow:inset 0 0 0 1px #f8d3e5;transition:transform .3s var(--ease)}
.bchoose button:hover{transform:translateX(4px)}
.bchoose b{display:block;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.bchoose span.s{font-size:13.5px}
.bchoose i{flex:none;width:44px;height:44px;border-radius:50%;background:var(--pink-soft);display:grid;place-items:center;color:var(--pink)}
.bchoose i svg{width:24px;height:24px}
.zback{border:0;background:none;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--pink);padding:0 0 10px}

/* 03 · techniques */
.ttabs{display:flex;justify-content:center;margin-bottom:22px}
.simgrid{margin-top:0;gap:30px;grid-template-columns:1.1fr .9fr}
.simgrid>*{min-width:0}
.ctrl .simdesc{min-height:96px}
.sim-l .lfill,.sim-l .ledge,.sim-l .l3d{transition:opacity .7s ease,fill .5s ease,stroke .5s ease}
.eyl{fill:none;stroke-linecap:round;transition:stroke-dashoffset 1s var(--ease),opacity .5s ease}
.frk circle{transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .45s cubic-bezier(.2,1.5,.4,1)}
.frk.on circle{transform:scale(1)}
.tp circle{transform-box:fill-box;transform-origin:center;transform:scale(0);transition:transform .35s ease}
.tp.on circle{transform:scale(1)}
.below{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.below>*{min-width:0}
.cover{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}
.cover svg{width:100%;height:auto;border-radius:16px;background:linear-gradient(170deg,#f8efe3,#ecdcc6)}
.cover input{width:100%;accent-color:var(--gold);margin-top:8px}
.tabcard{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}
.tabcard img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:16px}

/* 04 · LM REPAIR */
.rp-wrap{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:center}
.rp-wrap>*{min-width:0}
.rp-stage{position:relative;border-radius:26px;background:linear-gradient(160deg,#fff,var(--pink-soft));box-shadow:var(--sh-1),inset 0 0 0 1px #f8d3e5;overflow:hidden}
.rp-stage svg{display:block;width:100%;height:auto}
.ribbon{fill:none;stroke:var(--pink);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1}
.rp-go .ribbon{transition:stroke-dashoffset 1.8s var(--ease);stroke-dashoffset:0}
.ph1,.ph2,.ph3{transition:opacity .7s ease,transform .9s var(--ease)}
.ar-mold{fill:none;stroke:#c98f86;stroke-width:1.6;stroke-dasharray:5 6}
.rp-phase .seg button[aria-pressed="true"]{background:var(--pink)}
.rp-phase{display:flex;justify-content:center;margin-top:12px}
.rp-cap{text-align:center;font-size:14px;min-height:46px;margin:10px 16px 16px}
.veil{position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:var(--pink-soft)}
.veil img{width:100%;height:100%;object-fit:cover;filter:blur(22px) saturate(.7);transform:scale(1.15);transition:filter .7s ease,transform .9s var(--ease)}
.veil.show img{filter:none;transform:none}
.veil .vbtn{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:0;cursor:pointer;background:rgba(255,255,255,.94);color:var(--ink);border-radius:999px;padding:12px 18px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;box-shadow:var(--sh-1);white-space:nowrap}
.veil.show .vbtn{top:auto;bottom:12px;transform:translateX(-50%);font-size:9.5px;padding:8px 12px}
.veil .vcap{position:absolute;left:12px;top:12px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);padding:6px 10px;border-radius:999px}
.rp .facts span,.etape[data-tone="rp"] .facts span{background:var(--pink-soft)}
.etape[data-tone="rp"] .say{box-shadow:inset 0 0 0 1px #f3a9cb}
.etape[data-tone="rp"] .say svg{color:var(--pink)}
.etape[data-tone="rp"] .tile{background:#fff7fb}
.rprices{display:grid;gap:8px;margin-top:16px}
.rprices div{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px dashed #f3c6dc;padding-bottom:8px;font-size:14.5px}
.rprices b{font-family:var(--display);font-weight:500;color:var(--ink);white-space:nowrap}

/* 05 · engagements */
.pouch{position:relative;border-radius:26px;background:radial-gradient(circle at 50% 40%,#fff,var(--pearl-2));box-shadow:var(--sh-1);overflow:hidden}
.pouch svg{display:block;width:100%;height:auto}
.pouch .flap{transform-box:fill-box;transform-origin:50% 0;transition:transform 1s var(--ease) .2s}
.pouch .cart{transition:transform 1.1s var(--ease) .9s}
.pouch .seal{transform-box:fill-box;transform-origin:center;transform:scale(0) rotate(-40deg);transition:transform .7s cubic-bezier(.2,1.5,.4,1) 1.9s}
.pouch .drop{opacity:0;transition:opacity .6s ease 2.2s}
.pouch.go .flap{transform:scaleY(-.55)}
.pouch.go .cart{transform:translateY(-78px)}
.pouch.go .seal{transform:none}
.pouch.go .drop{opacity:1}
.pouch .replay{position:absolute;right:14px;bottom:8px}
.eng{grid-template-columns:1fr 1fr;margin-top:0;gap:10px}
.eng div{padding:16px}
.eng b{margin-top:8px}
.eng p{font-size:13.5px}

/* 06 · contre-indications */
.cif{display:flex;justify-content:center;margin:4px 0 18px}
.cigrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ci{perspective:900px;border:0;background:none;padding:0;cursor:pointer;height:200px;text-align:left;transition:opacity .4s ease,transform .4s var(--ease);font:inherit;color:inherit}
.ci .in{position:relative;display:block;width:100%;height:100%;transition:transform .7s var(--ease);transform-style:preserve-3d}
.ci[aria-pressed="true"] .in{transform:rotateY(180deg)}
.ci .f,.ci .b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;padding:16px;display:flex;flex-direction:column}
.ci .f{background:var(--pearl);justify-content:space-between}
.ci .f .ic{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1)}
.ci .f .ic svg{width:20px;height:20px}
.ci .f b{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);line-height:1.35}
.ci .f small{font-size:11.5px;color:var(--muted)}
.ci .b{background:#fff;box-shadow:inset 0 0 0 1px var(--gold-2);transform:rotateY(180deg);font-size:12.5px;line-height:1.45;overflow:auto}
.ci .b ul{margin:0;padding-left:15px;display:grid;gap:2px}
.ci .b .tag{margin-top:auto;padding-top:8px;align-self:flex-start;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--gold-soft);color:var(--ink);padding:6px 9px;border-radius:999px}
.ci.dim{opacity:.32;transform:scale(.97)}
.ci.hl .f{box-shadow:inset 0 0 0 1.5px var(--gold),var(--sh-1);background:#fff}

/* 07 · tarifs */
.pgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:start}
.pgrid>*{min-width:0}
.ptabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.ptabs button{border:0;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--pearl);color:var(--muted);padding:9px 13px;border-radius:999px}
.ptabs button[aria-pressed="true"]{background:var(--ink);color:#fff}
.plist{display:grid;gap:8px;align-content:start}
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;cursor:pointer;background:#fff;border-radius:16px;padding:13px 16px;box-shadow:inset 0 0 0 1px var(--line);text-align:left;font-size:14.5px;color:var(--ink);transition:box-shadow .3s}
.prow b{font-family:var(--display);font-weight:500;white-space:nowrap}
.prow small{display:block;font-size:11.5px;color:var(--muted)}
.prow[aria-pressed="true"]{box-shadow:inset 0 0 0 1.5px var(--gold),var(--sh-1)}
.balance{background:linear-gradient(170deg,#fff,var(--pearl));border-radius:26px;box-shadow:var(--sh-2);padding:24px}
.balance .nm{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);min-height:34px}
.bline{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.bline .num{font-family:var(--display);font-size:20px;font-weight:300;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.bline.big .num{font-size:30px}
.bbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--pearl-2);margin:14px 0 4px}
.bbar i{display:block;height:100%;transition:width .8s var(--ease)}
.bbar .a{background:linear-gradient(90deg,var(--gold-2),var(--gold))}
.bbar .r{background:var(--ink)}
.blegend{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.bookbtn{margin-top:18px;width:100%}
.conds{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:20px}
.conds div{background:var(--pearl);border-radius:18px;padding:14px;font-size:13px;line-height:1.45}
.conds b{display:block;font-family:var(--display);font-size:16px;font-weight:400;color:var(--gold);margin-bottom:4px}
.solid{margin-top:14px;display:flex;gap:14px;align-items:center;background:#fff;border-radius:20px;padding:16px 18px;box-shadow:inset 0 0 0 1px var(--line);font-size:14.5px}
.solid svg{flex:none;width:26px;height:26px;color:var(--gold)}

/* 08 · premier message */
.compose{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:start}
.compose>*{min-width:0}
.cstep{margin-top:16px}
.cstep:first-child{margin-top:0}
.cstep h4{margin:0 0 8px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.cchips{display:flex;flex-wrap:wrap;gap:6px}
.cchips button{border:0;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:#fff;color:var(--ink);padding:9px 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line)}
.cchips button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:none}
.cchips button.rpb[aria-pressed="true"]{background:var(--pink)}
.cdim{transition:opacity .3s}
.cdim.off{opacity:.3;pointer-events:none}
.phototip{min-height:66px;margin-top:14px;font-size:13.5px;background:var(--pearl);border-radius:16px;padding:12px 14px}
.cbtns{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cbtns .btn{padding:15px 20px;font-size:10.5px}
.phone2{width:250px;height:430px;border-radius:40px;background:#fff;box-shadow:var(--sh-2),inset 0 0 0 8px #f2efe9;padding:40px 16px 18px;display:flex;flex-direction:column;gap:8px;justify-content:flex-end;position:relative;overflow:hidden}
.phone2::before{content:"";position:absolute;top:16px;left:50%;width:70px;height:6px;border-radius:3px;background:#ebe6dc;transform:translateX(-50%)}
.phone2 .to{position:absolute;top:30px;left:0;right:0;text-align:center;font-size:11px;color:var(--muted)}
.phone2 .bub{font-size:12px;max-width:94%;white-space:pre-line;line-height:1.45}
.phone2 .bub.me{min-height:40px}
.phone2 .caret{display:inline-block;width:1px;height:12px;background:#fff;margin-left:1px;vertical-align:-2px;animation:blink 1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.light3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.light3 figure{margin:0;text-align:center;font-size:11.5px;line-height:1.3}
.light3 svg{width:100%;height:auto;border-radius:12px;display:block}
.light3 .ok{color:#3e7d52;font-weight:600}.light3 .ko{color:#a0463c;font-weight:600}
.hourglass{width:56px;height:auto;display:block;margin:4px 0 8px}
.hourglass .sand-top{transform-box:fill-box;transform-origin:50% 100%;animation:sandtop 4s linear infinite}
.hourglass .sand-bot{transform-box:fill-box;transform-origin:50% 100%;animation:sandbot 4s linear infinite}
.hourglass .glass{transform-box:fill-box;transform-origin:center;animation:flip 4s var(--ease) infinite}
@keyframes sandtop{0%{transform:scaleY(1)}85%,100%{transform:scaleY(0)}}
@keyframes sandbot{0%{transform:scaleY(0)}85%,100%{transform:scaleY(1)}}
@keyframes flip{0%,88%{transform:none}100%{transform:rotate(180deg)}}

/* 09 · jour J */
.jgrid{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:center}
.jgrid>*{min-width:0}
.dial{position:relative;width:100%;max-width:300px;margin:0 auto}
.dial svg{display:block;width:100%;height:auto;overflow:visible}
.dial .sg{fill:none;stroke:var(--pearl-2);stroke-width:16;cursor:pointer;transition:stroke .5s ease}
.dial .sg.on{stroke:var(--gold-2)}
.dial .sg.cur{stroke:var(--gold)}
.dial .sg:focus-visible{outline:none;stroke:var(--ink)}
.dial .lbl{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted);pointer-events:none}
.dial .mid b{font-family:var(--display)}
.dial .mid{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center;pointer-events:none}
.dial .mid strong{font-family:var(--display);font-size:30px;font-weight:200;color:var(--ink);letter-spacing:.04em}
.dial .mid small{font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.jpane{display:grid;grid-template-columns:1fr 200px;gap:20px;align-items:center}
.jpane>*{min-width:0}
.jpane h3{font-size:clamp(20px,2.2vw,26px);font-weight:200;letter-spacing:.05em;text-transform:uppercase}
.jpane h3 b{font-weight:500}
.jpane p{margin-top:8px;font-size:15px}
.jpane .k{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.jvis2{width:200px;aspect-ratio:3/4;border-radius:22px;overflow:hidden;box-shadow:var(--sh-2);background:#fff;display:grid;place-items:center;position:relative}
.jvis2 img,.jvis2 video{width:100%;height:100%;object-fit:cover;display:block}
.jvis2 .jcap{position:absolute;left:10px;bottom:10px;font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.4);padding:5px 9px;border-radius:999px}
.jvis2 .sheet{width:78%;height:auto;aspect-ratio:3/4;box-shadow:none;padding:14px}
.jvis2 .sheet svg path{animation:none;stroke-dashoffset:420}
.jpane.on .sheet svg path{animation:drawin 2s .3s ease forwards}
.jvis2 .care{display:grid;gap:8px;padding:14px;width:100%}
.jvis2 .care div{display:flex;gap:8px;align-items:center;background:var(--pearl);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.3}
.jvis2 .care span{flex:none;width:18px;height:18px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;color:var(--gold);font-size:11px}

/* 10 · cicatrisation */
.heal-card{margin-top:0;max-width:none}
.heal-text{min-height:132px}
.bars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 8px 0}
.bars>div{background:var(--pearl);border-radius:16px;padding:12px 14px}
.bars b{display:block;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.bars .left{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;min-height:19px}
.track{height:6px;background:#fff;border-radius:3px;overflow:hidden;margin-top:8px}
.track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold-2),var(--gold));transform-origin:left;transition:transform .7s var(--ease)}
.care2{margin-top:20px}
.care2 .stack{margin-top:12px}
.care2 ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.care2 li{background:var(--pearl);border-radius:16px;padding:12px 14px;font-size:13.5px}
.care2 li b{display:block;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:2px}

/* 11 · retouche */
.cushion{position:relative;border-radius:26px;background:linear-gradient(180deg,#fdf7ea,#f5ead2);box-shadow:var(--sh-1);overflow:hidden}
.cushion svg{display:block;width:100%;height:auto}
.cushion .strip{transition:fill 1.2s ease}
.cushion .sunrays{transform-box:fill-box;transform-origin:center;animation:spin 30s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.cushion .umb{transition:transform .25s ease}
.cushion input{position:absolute;left:18px;right:18px;bottom:12px;width:calc(100% - 36px);accent-color:var(--gold)}
.frise{margin-top:6px}
.frise .line{position:relative;height:76px;margin:14px 6px 0}
.frise .axis{position:absolute;left:0;right:0;top:40px;height:2px;background:var(--line)}
.frise .zone{position:absolute;top:32px;height:18px;border-radius:9px;background:var(--gold-soft);box-shadow:inset 0 0 0 1px var(--gold-2);transition:background .5s}
.frise .zone.best{background:linear-gradient(90deg,var(--gold-2),var(--gold));box-shadow:0 0 0 4px rgba(217,189,114,.25);animation:glow 2.4s ease-in-out infinite}
@keyframes glow{50%{box-shadow:0 0 0 8px rgba(217,189,114,.12)}}
.frise .t.up{top:4px;color:var(--gold);font-weight:600}
.frise .t{position:absolute;top:58px;transform:translateX(-50%);font-size:11px;color:var(--muted);white-space:nowrap}
.frise .mk{position:absolute;top:26px;width:2px;height:34px;background:var(--ink);transition:left 2.2s var(--ease)}
.frise .mk::before{content:"";position:absolute;left:50%;top:-6px;width:10px;height:10px;border-radius:50%;background:var(--ink);transform:translateX(-50%)}
.rtiers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px}
.rtiers div{background:var(--pearl);border-radius:16px;padding:12px 14px;font-size:13px;line-height:1.4}
.rtiers b{display:block;font-family:var(--display);font-size:20px;font-weight:300;color:var(--ink)}
.rtiers .best{background:var(--gold-soft);box-shadow:inset 0 0 0 1px var(--gold-2)}

/* avis + infos */
.rev .kicker .v{display:inline-flex;align-items:center;gap:6px}
.vbadge{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:13px;background:#fff;border-radius:999px;padding:8px 14px;box-shadow:var(--sh-1)}
.vbadge svg{width:16px;height:16px;color:#3e7d52}
.mapbox{border-radius:26px;overflow:hidden;background:#f3ecdc;box-shadow:var(--sh-1);position:relative;min-height:300px}
.mapbox svg{display:block;width:100%;height:100%}
.mapbox .route{fill:none;stroke:var(--ink);stroke-width:2;stroke-dasharray:4 6;stroke-linecap:round}
.mapbox .pinm{transform-box:fill-box;transform-origin:50% 100%;animation:pindrop 1.4s cubic-bezier(.2,1.4,.4,1) both,bob 2.6s ease-in-out 1.4s infinite}
@keyframes pindrop{from{transform:translateY(-60px);opacity:0}}
@keyframes bob{50%{transform:translateY(-4px)}}
.mapbox .gm{position:absolute;right:12px;bottom:12px}
.access{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px;counter-reset:a}
.access li{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.access li::before{counter-increment:a;content:counter(a);flex:none;width:24px;height:24px;border-radius:50%;background:var(--gold-soft);color:var(--gold);display:grid;place-items:center;font-family:var(--display);font-size:11px;margin-top:1px}
.flinks{gap:6px 16px}

@media (max-width:980px){
  .duo2,.xgrid,.rp-wrap,.pgrid,.jgrid,.compose,.simgrid{grid-template-columns:1fr}
  .cigrid{grid-template-columns:repeat(2,1fr)}
  .conds{grid-template-columns:1fr 1fr}
  .phone2{margin:0 auto}
}
@media (max-width:760px){
  .tiles,.below,.bars,.care2 ul,.rtiers{grid-template-columns:1fr}
  .rtiers{grid-template-columns:1fr 1fr}
  .zpanel{height:500px;padding:20px 16px}
  .zpanel .zphoto{display:none}
  .jpane{grid-template-columns:1fr;text-align:center}
  .jvis2{width:170px;margin:0 auto}
  .cover,.tabcard{grid-template-columns:110px 1fr}
  .ci{height:190px}
  .ci .f,.ci .b{padding:13px}
  .seg button{padding:9px 11px;font-size:9.5px;letter-spacing:.1em}
  .heal-text{min-height:176px}
  .p-head .one{font-size:16px}
  .jpane .k{display:block}
  .conds{grid-template-columns:1fr 1fr}
  .conds div{font-size:12.5px}
  .phone2{width:236px;height:410px}
}
@media (max-width:420px){.cigrid{grid-template-columns:1fr 1fr;gap:8px}.ci .f b{font-size:11px}.ci .b{font-size:11.5px}}
@media (prefers-reduced-motion:reduce){.finger{display:none}.frk circle,.tp circle{transform:scale(1)}.pouch .flap{transform:scaleY(-.55)}.pouch .cart{transform:translateY(-78px)}.pouch .seal{transform:none}.pouch .drop{opacity:1}.ribbon{stroke-dashoffset:0}}

/* correctifs */
.e-t small{font-weight:400}
.zback{display:block}
.pinkp .tech .ph{background:var(--pink-soft);color:var(--pink)}
.stack>*{align-self:start}
.simgrid{align-items:start}
.stage2,.stage3{margin-top:4px}
.balance .nm{min-height:40px}
@media (max-width:760px){.balance .nm{min-height:58px}.phototip{min-height:92px}}
#facesvg{overflow:hidden}
.dial .sg{outline:none}
.dial .sg:focus-visible{stroke:var(--ink)}
.e-next a.nx{text-decoration:none}
.ctrl .simdesc{min-height:124px}
.balance .nm{min-height:56px}
.phototip{min-height:78px}
#technique .ctrl .chip{padding:10px 14px;font-size:10.5px}
#technique .ctrl h4{margin-top:16px}
@media (max-width:760px){.invite{font-size:10.5px;letter-spacing:.12em;max-width:32ch}.ctrl .simdesc{min-height:150px}.herobrow{width:min(260px,70%)}}
.ctrl .simdesc{min-height:140px}
@media (max-width:760px){.phototip{min-height:114px}}
.balance .bline:has(#bt){min-height:66px;align-items:center}
.balance .bline.big{min-height:62px}

/* ===================== v5 ===================== */
.kk2::after{content:"";width:22px;height:1px;background:var(--gold)}
.p-head h1{line-height:1.02;margin-top:10px}
.p-head h1 .l1{display:block;white-space:nowrap;font-size:clamp(17px,4.6vw,56px)}
.p-head h1 b{font-size:clamp(17px,4.6vw,56px);margin-top:4px}
.e-t b{line-height:1.15}
.e-t small{margin-top:3px}
h3,.h-sec{line-height:1.08}
.e-next{justify-content:flex-start}

/* 01 · zones qui s'illuminent */
.facezones{position:relative;border-radius:26px;background:radial-gradient(circle at 50% 40%,#fff,var(--pearl-2));box-shadow:var(--sh-1);padding:14px 14px 10px;text-align:center}
.facezones svg{display:block;width:min(280px,100%);height:auto;margin:0 auto;overflow:visible}
.fz{opacity:0;transition:opacity .7s ease}
.fz.on{opacity:1}
.fz-needle{transition:transform 1s var(--ease)}
.fz-label{margin:4px 0 0;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);min-height:20px}
.dur{margin-top:18px}
.dur-bar{height:8px;border-radius:4px;background:var(--pearl-2);overflow:hidden}
.dur-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--gold-2),var(--gold));transform-origin:left;transform:scaleX(.2);transition:transform 1.6s var(--ease)}
.dur-l{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:6px}

/* 02 · zones : portrait au centre, panneau plein cadre */
.xwrap{position:relative}
.xport{transition:opacity .45s ease,transform .5s var(--ease)}
.xwrap.pan .xport{opacity:0;visibility:hidden;transform:scale(.98)}
.viewer{width:min(330px,100%)}
.people{display:flex;flex-wrap:nowrap;justify-content:center;gap:8px;margin-top:12px}
.people button{width:42px;height:42px;flex:none}
.zpanel2{position:absolute;inset:0;border-radius:26px;background:linear-gradient(170deg,#fff,var(--pearl));box-shadow:var(--sh-2);padding:28px;display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .45s ease,transform .55s var(--ease),visibility 0s .45s;overflow:auto}
.xwrap.pan .zpanel2{opacity:1;visibility:visible;transform:none;transition:opacity .45s ease .1s,transform .55s var(--ease) .1s}
.zpanel2>*{min-width:0}
.zpanel2 .zph{border-radius:22px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh-1);background:var(--pearl-2);display:grid;place-items:center;position:relative}
.zpanel2 .zph img{width:100%;height:100%;object-fit:cover}
.zpanel2 .zph span{position:absolute;left:12px;bottom:12px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);padding:6px 10px;border-radius:999px}
.zpanel2 .zph .ico{width:90px;height:90px;color:var(--gold)}
.zpanel2 .zph .ico svg{width:100%;height:100%}
.zpanel2 .zph em{font-style:normal;font-family:var(--display);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);position:absolute;bottom:16px}
.zpanel2 h3{font-size:clamp(20px,2.3vw,28px);font-weight:200;letter-spacing:.04em;text-transform:uppercase;margin-top:6px;line-height:1.12}
.zpanel2 h3 b{font-weight:500}
.zpanel2 .zintro{margin-top:8px;font-size:15.5px}
.zpanel2 .techs{display:grid;gap:8px;margin-top:14px}
.zpanel2 .tech{display:block;background:#fff;border-radius:16px;padding:11px 14px;box-shadow:inset 0 0 0 1px var(--line)}
.zpanel2 .tech b{display:block;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.zpanel2 .tech span{font-size:13.5px;line-height:1.45}
.zback2{margin-top:18px;border:0;cursor:pointer;background:var(--ink);color:#fff;border-radius:999px;padding:13px 20px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.zpanel2 .rlink{display:inline-block;margin-top:10px;font-size:14px;color:var(--ink);font-weight:600}

/* 03 */
.ttabs .seg{justify-content:center}
.seg button.rtab{box-shadow:inset 0 0 0 1px #f3c6dc;color:#b3246e}
.seg button.rtab[aria-pressed="true"]{background:#fff;color:#b3246e;box-shadow:inset 0 0 0 1.5px var(--pink)}
.repair-tile{display:grid;place-items:center}
.rt-in{max-width:520px;text-align:center;background:#fff;border-radius:26px;padding:34px 28px;box-shadow:var(--sh-1),inset 0 0 0 1px #f8d3e5;display:grid;gap:16px;justify-items:center}
.rt-in img{width:120px}
.rt-in p{font-size:15.5px}
.gallery{margin-top:26px;background:var(--pearl);border-radius:24px;padding:18px 0 18px}
.g-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:0 18px}
.g-head>b{font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.g-tabs{display:flex;flex-wrap:wrap;gap:6px}
.g-tabs button{border:0;cursor:pointer;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:#fff;color:var(--muted);padding:8px 12px;border-radius:999px}
.g-tabs button[aria-pressed="true"]{background:var(--ink);color:#fff}
.g-view{overflow:hidden;margin-top:14px;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.g-track{display:flex;gap:12px;width:max-content;animation:gscroll 28s linear infinite;padding:0 12px}
.g-view:hover .g-track{animation-play-state:paused}
@keyframes gscroll{to{transform:translateX(-50%)}}
.g-it{flex:none;width:180px;aspect-ratio:4/5;border-radius:18px;overflow:hidden;position:relative;background:linear-gradient(160deg,#fff,var(--pearl-2));box-shadow:var(--sh-1)}
.g-it img{width:100%;height:100%;object-fit:cover}
.g-it.ph{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--gold)}
.g-it.ph svg{width:30px;height:30px}
.g-it.ph span{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.g-it .gc{position:absolute;left:10px;bottom:10px;font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);padding:5px 9px;border-radius:999px}
.seeyou{margin-top:22px;border-radius:24px;padding:22px;background:linear-gradient(120deg,var(--gold-soft),#fff);box-shadow:inset 0 0 0 1px var(--gold-2)}
.seeyou .t{display:block;font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.sy2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}
.sy2>div{display:flex;gap:12px;align-items:flex-start;background:#fff;border-radius:18px;padding:14px 16px;font-size:14.5px}
.sy-i{flex:none;width:38px;height:38px;border-radius:50%;background:var(--gold-soft);display:grid;place-items:center;color:var(--gold)}
.sy-i svg{width:20px;height:20px}
.sy2 b{color:var(--ink)}

/* 04 · engagements 3D doux */
.eng4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.en{margin:0;background:linear-gradient(170deg,#fff,var(--pearl));border-radius:24px;box-shadow:var(--sh-1);padding:14px 14px 18px;text-align:center;perspective:700px}
.en-s{transform:rotateX(8deg) rotateY(-10deg);transform-style:preserve-3d;transition:transform .8s var(--ease)}
.en:hover .en-s{transform:rotateX(0) rotateY(0)}
.en svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 10px 12px rgba(20,20,30,.08))}
.en figcaption{font-size:13.5px;line-height:1.45;margin-top:6px}
.en figcaption b{display:block;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:3px}
.a-flap{transform-box:fill-box;transform-origin:50% 0;transition:transform .9s var(--ease) .2s}
.a-cart{transition:transform 1s var(--ease) .9s}
.go .a-flap{transform:scaleY(-.6)}
.go .a-cart{transform:translateY(-56px)}
.a-cap{transition:transform .9s var(--ease) .3s}
.a-drop{opacity:0}
.a-ring{opacity:0;transform-box:fill-box;transform-origin:center}
.go .a-cap{transform:translate(30px,-10px) rotate(18deg)}
.go .a-drop{animation:dropfall 1.4s cubic-bezier(.5,0,.9,.6) 1.1s forwards}
.go .a-ring{animation:ring 1s ease-out 2.4s forwards}
@keyframes dropfall{0%{opacity:1;transform:translate(30px,-12px)}100%{opacity:1;transform:translate(46px,30px)}}
@keyframes ring{0%{opacity:.9;transform:scale(.2)}100%{opacity:0;transform:scale(1.6)}}
.a-tick{transition:stroke-dashoffset .5s ease .4s}
.a-sig{transition:stroke-dashoffset 1.6s ease 1s}
.go .a-tick,.go .a-sig{stroke-dashoffset:0}
.a-pen{transform:translate(150px,40px);opacity:0;transition:transform 1.6s ease 1s,opacity .3s ease .8s}
.go .a-pen{transform:translate(138px,122px);opacity:1}
.a-m1,.a-m2,.a-m3,.a-m4{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .5s var(--ease)}
.go .a-m1{opacity:1;transform:none;transition-delay:.3s}
.go .a-m2{opacity:1;transform:none;transition-delay:1s}
.go .a-m3{opacity:1;transform:none;transition-delay:1.7s}
.go .a-m4{opacity:1;transform:none;transition-delay:2.4s}
.go .a-m4 circle{animation:typ 1s infinite}
.go .a-m4 circle:nth-child(2){animation-delay:.15s}.go .a-m4 circle:nth-child(3){animation-delay:.3s}
#engR{display:block;margin:10px auto 0}

/* 05 · contre-indications en familles */
.cifam{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cif2{border-radius:24px;padding:20px;background:var(--pearl)}
.cif2 h3{font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;display:flex;gap:10px;align-items:center}
.cif2 h3 i{flex:none;width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1);font-style:normal}
.cif2 h3 i svg{width:18px;height:18px}
.cif2 .sub{font-size:13.5px;color:var(--muted);margin-top:6px}
.cif2 ul{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.cif2 li{background:#fff;border-radius:999px;padding:7px 12px;font-size:13px;line-height:1.3;box-shadow:inset 0 0 0 1px var(--line);opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .5s var(--ease)}
.cifam.go li{opacity:1;transform:none}
.cif2.medic{background:#fff;box-shadow:inset 0 0 0 1px var(--gold-2)}
.cif2.medic li{background:var(--pearl)}

/* 06 · tarifs */
.prow b small{display:inline;font-size:10px;color:var(--muted);margin-left:3px;letter-spacing:.06em}
.prow.sol{background:none;box-shadow:none;padding:8px 4px;justify-content:flex-start;gap:8px;font-size:13px;color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.prow.sol[aria-pressed="true"]{color:var(--ink);box-shadow:none}
.soltxt{font-size:13.5px;line-height:1.55;margin-top:10px}
#bfree{font-size:22px}
.balance .stack>div{min-height:0}
.conds3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
.cd{display:flex;gap:14px;align-items:center;background:var(--pearl);border-radius:20px;padding:14px 16px}
.cd svg{flex:none;width:70px;height:70px}
.cd p{font-size:13px;line-height:1.45}
.cd b{display:block;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--ink);margin-bottom:2px}
.c-arc{transition:stroke-dashoffset 1.4s var(--ease)}
.go .c-arc{stroke-dashoffset:70}
.c-days rect{transition:fill .4s ease}
.go .c-d{fill:var(--gold-2);transition-delay:.4s}
.go .c-x{fill:#1f1e1c;transition-delay:1s}
.c-hand{transform-box:view-box;transform-origin:40px 42px}
.go .c-hand{animation:hand 2.4s var(--ease) .3s both}
@keyframes hand{from{transform:rotate(0)}to{transform:rotate(90deg)}}
.c-q{opacity:0;transition:opacity .6s ease 2.2s}
.go .c-q{opacity:1}

/* 07 · route */
.road{border-radius:24px;background:var(--pearl);padding:10px 16px}
.road svg{display:block;width:100%;height:auto}
.rd-env{offset-path:path("M40 70C140 20 220 110 320 60S520 20 600 64");offset-distance:0%;offset-rotate:0deg}
.go .rd-env{animation:env 3.2s var(--ease) forwards}
@keyframes env{to{offset-distance:100%}}

/* 08 · frise horizontale */
.tl{margin-top:8px}
.tl-bar{display:flex;gap:3px;height:74px}
.tl-seg{position:relative;border:0;cursor:pointer;padding:0;border-radius:10px;background:var(--pearl-2);overflow:hidden;min-width:0;text-align:left;color:var(--ink)}
.tl-seg i{position:absolute;inset:0;background:linear-gradient(180deg,var(--gold-2),var(--gold));transform-origin:left;transform:scaleX(0);transition:transform .6s var(--ease)}
.tl-seg.on i{transform:scaleX(1)}
.tl-seg span{position:relative;display:block;padding:8px 8px 0;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;line-height:1.25;overflow:hidden}
.tl-seg small{position:relative;display:block;padding:2px 8px 0;font-size:10.5px;color:var(--muted)}
.tl-seg.on small{color:var(--ink)}
.tl-seg.cur{box-shadow:0 0 0 2px var(--ink)}
.tl-seg:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.tl-scale{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:6px}
.tl-info{margin-top:18px}
.tli{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center;background:var(--pearl);border-radius:22px;padding:20px 22px}
.tli .ic{width:64px;height:64px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1)}
.tli .ic svg{width:30px;height:30px}
.tli h3{font-size:clamp(18px,2vw,22px);font-weight:300;letter-spacing:.05em;text-transform:uppercase}
.tli h3 b{font-weight:500}
.tli p{font-size:15px;margin-top:6px}
.tli .k{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}

/* 09 · consignes par période */
.heal-text{min-height:120px}
.rules{margin-top:20px;text-align:center}
.rgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;text-align:left}
.rule{background:var(--pearl);border-radius:18px;padding:14px;transition:background .4s ease}
.rule .ri{width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);position:relative;box-shadow:var(--sh-1)}
.rule .ri svg{width:20px;height:20px}
.rule .ri::after{content:"";position:absolute;left:6px;right:6px;top:50%;height:2px;background:#a0463c;transform:rotate(-45deg) scaleX(0);transition:transform .4s var(--ease)}
.rule.no .ri::after{transform:rotate(-45deg) scaleX(1)}
.rule b{display:block;margin-top:10px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.rule .rs{display:block;font-size:13px;margin-top:4px;min-height:38px}
.rule.ok{background:#f1f6ef}
.rule.sun{background:var(--gold-soft)}

/* 10 */
#retouche .frise{margin:0 0 6px}

/* 11 · contact */
.me{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center}
.me figure{margin:0;position:relative;border-radius:22px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh-2)}
.me img{width:100%;height:100%;object-fit:cover}
.me figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.35);padding:5px 9px;border-radius:999px}
.me p{font-size:17px;line-height:1.6}
.faqwrap{display:grid;grid-template-columns:1fr 220px;gap:18px;margin-top:26px;align-items:start}
.faqwrap>*{min-width:0}
.faq{display:grid;gap:8px}
.fq{background:var(--pearl);border-radius:18px}
.fq button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;background:none;cursor:pointer;text-align:left;padding:14px 16px;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--ink)}
.fq button::after{content:"+";font-size:18px;font-weight:300;color:var(--gold);transition:transform .3s}
.fq button[aria-expanded="true"]::after{transform:rotate(45deg)}
.fq .fa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s var(--ease)}
.fq .fa>div{overflow:hidden;min-height:0}
.fq .fa p{padding:0 16px 14px;font-size:14.5px}
.fq button[aria-expanded="true"]+.fa{grid-template-rows:1fr}
.follow{position:sticky;top:170px;background:#fff;border-radius:20px;padding:14px;box-shadow:var(--sh-1),inset 0 0 0 1px var(--gold-2);font-size:13.5px}
.follow .av,.mlnote .av,.mc-top .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 60%,var(--gold-2));font-family:"Allura",cursive;font-size:18px;color:var(--ink);flex:none}
.follow p{margin-top:8px}
.follow button,.mlnote button{margin-top:10px;border:0;cursor:pointer;background:var(--ink);color:#fff;border-radius:999px;padding:9px 14px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.mchat{margin-top:24px;border-radius:26px;background:#fff;box-shadow:var(--sh-2),inset 0 0 0 1px var(--line);overflow:hidden;display:flex;flex-direction:column}
.mc-top{display:flex;gap:12px;align-items:center;padding:14px 18px;background:var(--pearl);border-bottom:1px solid var(--line)}
.mc-top b{font-family:var(--display);font-size:13px;letter-spacing:.08em;color:var(--ink);display:block}
.mc-top small{font-size:11.5px;color:var(--muted)}
.mc-re{margin-left:auto;border:0;background:#fff;border-radius:999px;padding:8px 12px;font-size:11.5px;cursor:pointer;box-shadow:inset 0 0 0 1px var(--line)}
.mc-msgs{height:360px;overflow:auto;padding:16px 18px;display:flex;flex-direction:column;gap:10px;font-size:14.5px;line-height:1.5;scroll-behavior:smooth}
.mc-msgs .it{align-self:flex-start;background:var(--pearl);border-radius:16px 16px 16px 4px;padding:10px 13px;max-width:88%;animation:tlin .4s both}
.mc-msgs .me2{align-self:flex-end;background:var(--ink);color:#fff;border-radius:16px 16px 4px 16px;padding:9px 13px;max-width:80%;animation:tlin .4s both}
.mc-msgs .ready{align-self:stretch;background:linear-gradient(120deg,var(--gold-soft),#fff);border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1px var(--gold-2);animation:tlin .4s both}
.mc-msgs .ready pre{white-space:pre-wrap;font-family:var(--sans);font-size:13px;background:#fff;border-radius:12px;padding:10px 12px;margin:10px 0}
.mc-msgs .ready .light3{max-width:300px}
.mc-msgs .ready .cbtns{margin-top:12px}
.mc-in{min-height:116px;padding:12px 18px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;background:#fff}
.mc-in button{border:0;cursor:pointer;background:var(--pearl);border-radius:999px;padding:10px 14px;font-size:13px;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.mc-in button.pk{background:var(--ink);color:#fff}
.mc-in input{flex:1 1 150px;min-width:0;border:0;border-radius:14px;padding:12px 14px;font:inherit;font-size:14.5px;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line)}
.mc-in input:focus-visible{outline:2px solid var(--gold)}
.mc-note{padding:10px 18px 14px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--line);margin:0}
.mlnote{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px;background:var(--pearl);border-radius:18px;padding:12px 14px;font-size:13.5px;position:relative}
.mlnote p{flex:1 1 160px}
.mlnote button{margin-top:0}

@media (max-width:980px){.eng4{grid-template-columns:1fr 1fr}.conds3{grid-template-columns:1fr}.faqwrap{grid-template-columns:1fr}.follow{position:static}.zpanel2{grid-template-columns:1fr;align-content:start}.zpanel2 .zph{aspect-ratio:16/9}}
@media (max-width:760px){
  .people{gap:5px}.people button{width:38px;height:38px}
  .sy2,.cifam,.me{grid-template-columns:1fr}
  .me figure{width:180px;margin:0 auto}
  .rgrid{grid-template-columns:1fr 1fr}
  .tl-bar{height:92px}
  .tl-seg span{font-size:7.5px;padding:6px 4px 0;letter-spacing:.02em}
  .tl-seg small{display:none}
  .tli{grid-template-columns:1fr;text-align:center;justify-items:center}
  .zpanel2{padding:18px 16px;gap:14px}
  .zpanel2 .zph{aspect-ratio:21/9}
  .eng4{gap:10px}
  .en figcaption{font-size:12.5px}
  .mc-msgs{height:400px}
  .g-it{width:140px}
}
@media (prefers-reduced-motion:reduce){.g-track{animation:none}.fz{opacity:1}.cif2 li{opacity:1;transform:none}.a-m1,.a-m2,.a-m3,.a-m4{opacity:1;transform:none}.a-tick,.a-sig{stroke-dashoffset:0}.c-arc{stroke-dashoffset:70}}

.p-head{max-width:1040px}
.hot[hidden]{display:none}
.zpanel2 .zph .ico{position:static;background:none;padding:0;border-radius:0}
.two{display:flex;flex-wrap:wrap;gap:0 26px}
#technique .ctrl .simdesc{min-height:110px}
.fz.on{opacity:.9}
.tl-seg.tiny em{position:relative;display:grid;place-items:center;height:100%;color:var(--ink)}
.tl-seg.tiny em svg{width:14px;height:14px}
@media (max-width:760px){.rule .rs{min-height:58px}.mc-in{min-height:178px}}

.tl-seg em{display:none}
.tl-seg.tiny em{display:grid}
@media (max-width:760px){.tl-seg em{display:grid;position:relative;place-items:center;height:100%;color:var(--ink)}.tl-seg em svg{width:14px;height:14px}.tl-seg span,.tl-seg small{display:none}.tl-bar{height:56px}.rule{min-height:210px}.invite{font-weight:500;font-size:10px}}

/* ===================== v6 ===================== */
/* hero centré, machine animée */
.h1c{display:flex;flex-direction:column;align-items:center;text-align:center}
.h1c .l1,.h1c b{white-space:nowrap;font-size:clamp(16px,4.3vw,54px)}
.heromac{display:block;width:min(340px,80%);height:auto;margin:20px auto 0;overflow:visible}
.mac-ndl{animation:ndl .16s linear infinite}
@keyframes ndl{50%{transform:translateX(-5px)}}
.mac-ring path{animation:ring6 .6s linear infinite}
@keyframes ring6{to{transform:translateX(-8px)}}
.mac-grip{opacity:.9}
.mac-dots circle{opacity:0;animation:dotin 2.4s ease-in-out infinite}
.mac-dots circle:nth-child(2){animation-delay:.3s}.mac-dots circle:nth-child(3){animation-delay:.6s}.mac-dots circle:nth-child(4){animation-delay:.9s}
@keyframes dotin{30%,70%{opacity:.8}100%{opacity:0}}
.invite{flex-direction:column;gap:2px}
.invite span{display:block}
.invite span:first-child{font-size:1.15em;color:var(--gold)}
.invite span:nth-child(2),.invite span:nth-child(3){font-weight:500;color:var(--ink)}

/* blocs */
.blk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:30px 0 4px;padding:0 8px}
.blk:first-child{margin-top:0}
.blk span{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#fff;background:var(--ink);padding:7px 12px;border-radius:999px}
.blk b{font-family:var(--display);font-size:clamp(15px,1.8vw,19px);font-weight:300;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.blk::after{content:"";flex:1 1 60px;height:1px;background:linear-gradient(90deg,var(--gold-2),rgba(217,189,114,0));order:2}
.blk em{order:3;flex-basis:100%;font-style:normal;font-size:14.5px;color:var(--muted)}
.etape.open.settled .e-in{overflow:visible}

/* 01 · la machine sur les zones */
.penscene{position:relative;border-radius:26px;background:radial-gradient(circle at 50% 40%,#fff,var(--pearl-2));box-shadow:var(--sh-1);padding:10px 10px 8px;text-align:center;overflow:hidden}
.penscene svg{display:block;width:100%;height:auto;max-width:420px;margin:0 auto}
.ps-scene{transform-box:view-box;transform-origin:0 0;transition:transform 1.3s var(--ease)}
.ps-pen{transition:transform .9s var(--ease)}
.ps-pen.work .ps-ndl{animation:pndl .14s linear infinite}
@keyframes pndl{50%{transform:translateY(-2.4px)}}
.ps-pen.work>g{animation:pwig 1.7s ease-in-out infinite}
@keyframes pwig{0%,100%{transform:rotate(35deg) translateX(0)}50%{transform:rotate(35deg) translateX(3px)}}
.ps-dot{fill:#b8964a;opacity:.85;animation:psd 2.6s ease forwards}
@keyframes psd{0%{opacity:0}20%{opacity:.85}100%{opacity:0}}
.peda{font-size:16px;line-height:1.55}
.peda p{margin-top:10px}
.peda p:first-child{margin-top:0;font-size:17px}
.peda b{color:var(--ink)}
.peda-t{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:18px!important}
ul.dash{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:4px}
ul.dash li{position:relative;padding-left:20px;font-size:15px;line-height:1.5}
ul.dash li::before{content:"–";position:absolute;left:2px;color:var(--gold)}
.peda ul.dash{grid-template-columns:1fr 1fr;gap:4px 18px}

/* 02 · zones et techniques fusionnées */
.zt{position:relative;display:grid;grid-template-columns:230px 1fr;gap:28px;align-items:start}
.zt>*{min-width:0}
.zt-side{position:sticky;top:150px;display:grid;gap:12px;justify-items:center;z-index:3}
.zt-port{position:relative;width:100%;border-radius:22px;background:radial-gradient(circle at 50% 35%,#fff,var(--pearl-2));box-shadow:var(--sh-1);padding:10px 10px 6px}
.zt .viewer{width:100%;cursor:zoom-in}
.zt .view.body{display:none}
.zt .hot{pointer-events:none;opacity:0;transition:opacity .3s}
.zt .hot span{display:none}
.zt-zoom{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);z-index:2;border:0;cursor:pointer;background:rgba(255,255,255,.94);color:var(--ink);border-radius:999px;padding:7px 12px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;box-shadow:var(--sh-1);white-space:nowrap}
.zt-opts{display:grid;gap:10px;justify-items:center}
.skins{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.skins button{width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset 0 0 0 2px #fff,0 0 0 1px var(--line)}
.skins button[aria-pressed="true"]{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--gold)}
/* portrait agrandi */
.zt.big .zt-side{position:absolute;inset:0 0 auto 0;z-index:8;background:rgba(255,255,255,.97);border-radius:24px;box-shadow:var(--sh-2);padding:18px;top:0}
.zt.big .zt-port{max-width:380px}
.zt.big .viewer{cursor:default}
.zt.big .hot{pointer-events:auto;opacity:1}
.zt.big .hot span{display:block}
.zt.big .hot[hidden]{display:none}
.zt-main{display:grid;gap:14px}
.zt-q h4{margin:0 0 8px;display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.zt-q h4 span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);color:var(--gold);font-size:11px;letter-spacing:0}
.zt-q h4 em{font-style:normal}
.zt-q .chips{margin-top:0}
.zt-q .chip small{font-size:9px;letter-spacing:.06em;opacity:.7;margin-left:4px;text-transform:none;font-family:var(--sans)}
.zt-q .chip.rtab{box-shadow:inset 0 0 0 1px #f3c6dc;color:#b3246e}
.zt-q .chip.rtab[aria-pressed="true"]{background:#fff;color:#b3246e;box-shadow:inset 0 0 0 1.5px var(--pink)}
#zTech{min-height:44px}
#zQ3{min-height:84px}
#zQ3.none{visibility:hidden}
#zQ3 .swatches{margin-top:8px}
.zt-stage{margin-top:4px}
.zt-stage .stage2,.zt-stage .stage3{margin:0}
.zt-stage .repair-tile{align-self:center}
.zt-desc{min-height:78px;margin-top:0}
/* carrousel de photos */
.car{background:var(--pearl);border-radius:24px;padding:16px 0}
.car-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 16px}
.car-h b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.car-nav{display:flex;gap:6px}
.car-nav button{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;background:#fff;box-shadow:var(--sh-1);font-size:18px;line-height:1;color:var(--ink)}
.car-v{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;margin-top:12px;padding:0 16px 6px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.car-v::-webkit-scrollbar{display:none}
.car-t{display:flex;gap:14px;width:max-content}
.c-it{flex:none;margin:0;width:250px;aspect-ratio:4/5;border-radius:20px;overflow:hidden;position:relative;background:linear-gradient(160deg,#fff,var(--pearl-2));box-shadow:var(--sh-1)}
.c-it img{width:100%;height:100%;object-fit:cover}
.c-it figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.4);padding:6px 10px;border-radius:999px}
.c-it.ph{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--gold);box-shadow:inset 0 0 0 1px var(--line)}
.c-it.ph svg{width:32px;height:32px}
.c-it.ph figcaption{position:static;background:none;color:var(--muted);font-size:9px;line-height:1.6;padding:0 12px}
.c-it.ph figcaption b{color:var(--ink);font-weight:600}

/* 03 · engagements en boucle douce */
.go .h-mist circle{animation:mist 2.2s ease-out infinite}
.go .h-mist circle:nth-child(2){animation-delay:.2s}.go .h-mist circle:nth-child(3){animation-delay:.4s}.go .h-mist circle:nth-child(4){animation-delay:.6s}
.h-mist circle{opacity:0}
@keyframes mist{0%{opacity:0;transform:translate(0,0)}25%{opacity:.9}100%{opacity:0;transform:translate(16px,-6px)}}
.h-shine{opacity:0}
.go .h-shine{animation:shine 3s ease-in-out infinite 1s}
@keyframes shine{0%,60%,100%{opacity:0;transform:translateY(22px)}75%{opacity:.9;transform:translateY(0)}}
.h-glove{transform-box:fill-box;transform-origin:50% 100%}
.go .h-glove{animation:glove 3.4s ease-in-out infinite}
@keyframes glove{50%{transform:rotate(-3deg)}}
.p-cap{transform-box:fill-box;transform-origin:50% 100%;transition:transform .8s var(--ease) .2s}
.go .p-cap{transform:translate(-26px,6px) rotate(-30deg)}
.p-drop{opacity:0}
.go .p-drop{animation:pdrop 2.6s cubic-bezier(.5,0,.9,.6) 1s infinite}
@keyframes pdrop{0%{opacity:0;transform:translateY(-40px)}15%{opacity:1}70%{opacity:1;transform:translateY(28px)}80%,100%{opacity:0;transform:translateY(28px)}}
.p-ring{opacity:0;transform-box:fill-box;transform-origin:center}
.go .p-ring{animation:ring 2.6s ease-out 2.9s infinite}
@keyframes ring{0%{opacity:.9;transform:scale(.2)}40%{opacity:0;transform:scale(1.6)}100%{opacity:0}}
.a-heart{opacity:0;transform-box:fill-box;transform-origin:center}
.go .a-heart{animation:heart 1.6s ease 3s infinite}
@keyframes heart{0%{opacity:0;transform:scale(.4)}30%{opacity:1;transform:scale(1.1)}60%{transform:scale(1)}100%{opacity:1}}

/* 04 · tarifs, conditions en texte */
.conds-t{margin-top:20px}
.conds-t li{font-size:15px}
.endnote{margin-top:18px;padding:16px 18px;border-radius:18px;background:var(--gold-soft);font-size:15px;color:var(--ink)}

/* contre-indications : texte simple */
.cif3{border-radius:24px;padding:20px;background:var(--pearl)}
.cif3.medic{background:#fff;box-shadow:inset 0 0 0 1px var(--gold-2)}
.cif3 h3{font-size:14px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;display:flex;gap:10px;align-items:center}
.cif3 h3 i{flex:none;width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1);font-style:normal}
.cif3 h3 i svg{width:18px;height:18px}
.cif3 .sub{font-size:13.5px;color:var(--muted);margin-top:6px}
.cif3 ul.dash{margin-top:12px}
.cif3 ul.dash li{font-size:14px}

/* avant ton rendez-vous */
.before{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;position:relative}
.before::before{content:"";position:absolute;left:4%;right:4%;top:16px;height:1px;background:linear-gradient(90deg,var(--gold-2),var(--gold))}
.before li{position:relative;background:var(--pearl);border-radius:18px;padding:40px 14px 14px;font-size:13.5px;line-height:1.45}
.before li::before{content:"";position:absolute;left:14px;top:10px;width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--gold)}
.before .bd{position:absolute;left:34px;top:9px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.before b{display:block;font-family:var(--display);font-size:11.5px;font-weight:600;letter-spacing:.06em;color:var(--ink);text-transform:uppercase}
.before small{display:block;margin-top:4px;font-size:13px;color:var(--text)}

/* contact : premier contact en 3 temps (repris de l'accueil) */
.fsteps{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px;counter-reset:fs}
.fsteps li{position:relative;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:start;padding:16px 18px;border-radius:22px;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.fsteps li::before{counter-increment:fs;content:counter(fs);grid-row:span 2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-family:var(--display);font-size:13px;font-weight:500;color:var(--gold);background:var(--pearl);box-shadow:inset 0 0 0 1px var(--gold-2)}
.fsteps b{font-family:var(--display);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);line-height:1.4;padding-top:6px}
.fsteps .acts{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:14px}
.fsteps .acts a,.fsteps .acts button{border:0;background:none;padding:4px 0;cursor:pointer;font:inherit;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--gold-2)}
.fsteps li.last{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.fsteps li.last b{color:var(--muted)}
.fsteps .acts .ghost{color:var(--muted);border-bottom-style:dashed}
.fsteps .chk{grid-column:2;font-size:14px;color:var(--text);display:grid;gap:10px}
.fsteps .chk[hidden],.fsteps .num[hidden]{display:none}
.fsteps .num{grid-column:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.fsteps .num span{font-family:var(--display);font-size:18px;letter-spacing:.06em;color:var(--ink)}
.fsteps .num small{flex-basis:100%;font-size:12.5px;color:var(--muted)}

/* contact */
.book{margin-top:22px;border-radius:24px;padding:22px;background:linear-gradient(120deg,var(--gold-soft),#fff);box-shadow:inset 0 0 0 1px var(--gold-2);display:grid;gap:8px;justify-items:start}
.book b{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.book .btn{margin-top:6px}
.rd-sms{margin-top:12px;font-size:13.5px}
.linky{border:0;background:none;padding:0;cursor:pointer;font:inherit;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.fsteps .acts.small{font-size:13.5px;color:var(--muted);align-items:center}
.fsteps .acts .ghost{text-transform:none;letter-spacing:.02em;font-family:var(--sans);font-size:13.5px;font-weight:400}
.fsteps .chk[hidden],.fsteps .num[hidden],.fsteps .acts[hidden]{display:none}
.mlnote .av{flex:none}

/* avis qui défilent (repris de l'accueil) */
.quotes.marq{display:block;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scroll-behavior:auto;-webkit-overflow-scrolling:touch;margin-inline:-22px;padding:10px 22px 30px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);cursor:grab;text-align:left}
.quotes.marq::-webkit-scrollbar{display:none}
.quotes.marq:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.qtrack{display:flex;gap:18px;width:max-content}
.qtrack .q{width:340px;flex:none}
.marq-hint{margin-top:4px;font-size:12px;color:var(--muted)}
.fcontact a{text-decoration:none;color:inherit}

@media (max-width:980px){
  .before{grid-template-columns:1fr 1fr}.before::before{display:none}
}
@media (max-width:760px){
  .peda ul.dash{grid-template-columns:1fr}
  .zt{grid-template-columns:1fr;gap:14px}
  .zt-side{position:sticky;top:132px;grid-template-columns:78px 1fr;justify-items:start;align-items:center;background:rgba(255,255,255,.96);border-radius:18px;padding:6px;box-shadow:var(--sh-1);gap:10px}
  .zt-port{padding:4px;border-radius:14px;box-shadow:none}
  .zt-zoom{display:none}
  .zt-opts{justify-items:start;gap:6px}
  .zt-opts .switch button{padding:8px 12px;font-size:9.5px}
  .skins button{width:20px;height:20px}
  .zt.big .zt-side{grid-template-columns:1fr;justify-items:center;padding:14px;position:absolute}
  .zt.big .zt-port{max-width:300px}
  .zt.big .zt-zoom{display:block}
  #zQ3{min-height:96px}
  .zt-desc{min-height:104px}
  .c-it{width:190px}
  .before{grid-template-columns:1fr}
  .qtrack .q{width:78vw}.quotes.marq{margin-inline:-18px;padding-inline:18px}
}
@media (prefers-reduced-motion:reduce){.mac-ndl,.mac-ring path,.ps-pen.work .ps-ndl,.ps-pen.work>g{animation:none}.mac-dots circle{opacity:.8}.p-drop,.h-mist circle{opacity:1}}
.zt-main{grid-template-columns:minmax(0,1fr)}
.zt-main>*{min-width:0}
.car,.car-v{max-width:100%}
#zTech{min-height:98px;align-content:flex-start}
#zQ3{min-height:132px}
.zt-desc{min-height:100px}
@media (max-width:760px){#zZone{min-height:152px;align-content:flex-start}#zTech{min-height:160px}#zQ3{min-height:150px}.zt-desc{min-height:150px}}
@media (max-width:760px){#zZone{min-height:190px}#zTech{min-height:190px}#zQ3{min-height:168px}.zt-desc{min-height:176px}}
.zt.big .zt-side{inset:0;background:#fff;align-content:start}
@media (max-width:760px){.zt.big .zt-side{inset:0 0 auto 0;min-height:520px}}
.e-next:empty{display:none}

/* ===== v7 ===== */
/* hero : 3 lignes maximum */
.parcours p.invite{max-width:none;width:min(900px,calc(100vw - 32px));position:relative;left:50%;transform:translateX(-50%)}
.parcours p.invite span:nth-child(2),.parcours p.invite span:nth-child(3){font-size:15.5px;letter-spacing:.1em}
br.mbr{display:none}
@media (max-width:760px){
  .parcours p.invite{display:block;text-align:center}
  .parcours p.invite span:first-child{display:block;margin-bottom:4px}
  .parcours p.invite span:nth-child(2),.parcours p.invite span:nth-child(3){display:inline;font-size:12.4px;letter-spacing:.045em;line-height:1.75}
  .parcours p.invite i{display:block;margin:10px auto 0}
  .parcours p.invite .mbr{display:inline}
}

/* plus de gros boutons « Étape suivante » : une petite invitation discrète */
.e-next{display:none!important}
.nexthint{display:flex;align-items:center;gap:10px;margin:26px 0 0;padding:6px 0;border:0;background:none;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-align:left}
.nexthint i{position:relative;flex:none;width:22px;height:22px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--gold-2)}
.nexthint i::after{content:"";position:absolute;left:50%;top:5px;width:6px;height:6px;margin-left:-3px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);animation:nhint 2.2s ease-in-out infinite}
.nexthint:hover{color:var(--ink)}
@keyframes nhint{0%,100%{transform:translateY(0) rotate(45deg);opacity:.5}50%{transform:translateY(4px) rotate(45deg);opacity:1}}
.bl-end{display:block;height:1px}

/* blocs repliables */
.bloc{margin-top:26px}
.bloc:first-child{margin-top:0}
.blk{cursor:default}
.blk-t{order:2;border:0;cursor:pointer;background:#fff;box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;padding:7px 14px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.blk::after{order:1}
.blk em{order:4}
.bl-c{display:grid;grid-template-rows:0fr;transition:grid-template-rows .6s var(--ease)}
.bl-in{overflow:hidden;min-height:0}
.bloc.open .bl-c{grid-template-rows:1fr}
.bloc.open .bl-in{overflow:visible}
.bloc.instant .bl-c{transition:none}
.bloc:not(.open) .bl-in{visibility:hidden}
.bloc.done:not(.open) .blk span{background:var(--gold)}
.bloc.done:not(.open) .blk span::after{content:" · lu";}

/* découvre ta praticienne (repris de l'académie) */
.me-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:44px;align-items:center}
.me-ph{margin:0;border-radius:220px 220px 32px 32px;overflow:hidden;aspect-ratio:4/5;box-shadow:var(--sh-2);background:#fff;max-width:340px;justify-self:center;width:100%}
.me-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 12%}
.me-lead{margin:0;font-family:var(--display);font-weight:200;font-size:clamp(22px,2.6vw,30px);line-height:1.3;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
.me-lead b{font-weight:500;color:var(--gold)}
.fr{list-style:none;margin:24px 0 0;padding:0;position:relative;display:grid;gap:0}
.fr::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:2px;background:var(--line)}
.fr::after{content:"";position:absolute;left:21px;top:22px;width:2px;height:calc(100% - 44px);background:linear-gradient(var(--gold-2),var(--gold));transform-origin:top;transform:scaleY(var(--fp,0));transition:transform 1.4s var(--ease)}
.fr li{position:relative;display:grid;grid-template-columns:44px 1fr;column-gap:16px;padding:8px 0;opacity:.25;transform:translateX(-8px);transition:opacity .6s,transform .6s var(--ease)}
.fr li.in{opacity:1;transform:none}
.fr i{grid-row:span 2;width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--pearl),inset 0 0 0 1.5px var(--gold-2);display:grid;place-items:center;position:relative;z-index:1}
.fr i svg{width:22px;height:22px;fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.fr li:last-child i{background:var(--ink)}
.fr li:last-child i svg{stroke:var(--gold-2)}
.fr b{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding-top:4px}
.fr span{font-size:14.5px}
.me-more{margin:18px 0 0;font-size:14.5px;color:var(--muted)}

/* zones et méthodes : grand portrait en haut */
.zt7{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}
.zt7>*,.z7-meth>*,.z7-top>*{min-width:0}
.z7-meth{grid-template-columns:minmax(0,1fr)}
.z7-top{display:grid;justify-items:center;gap:14px;text-align:center}
.z7-top .clickme{margin:0}
.zt7 .viewer{position:relative;width:min(440px,100%);border-radius:28px;background:radial-gradient(circle at 50% 35%,#fff,var(--pearl-2));box-shadow:var(--sh-1);padding:12px 12px 4px}
.zt7 .view.body{display:none}
.zt7 .view.face{display:block;position:relative;opacity:1}
.zt7 #facesvg{display:block;width:100%;height:auto}
.zt7 .hot{width:48px;height:48px}
.zt7 .hot span{display:block;background:rgba(255,255,255,.92);border-radius:999px;padding:3px 8px;top:calc(100% - 10px);color:var(--ink)}
.zt7 .hot[aria-pressed="true"] span{background:var(--ink);color:#fff}
.z7-rep{font-size:13.5px;color:var(--muted);text-decoration:none}
.z7-rep b{color:#b3246e;font-weight:600}
.z7-go{margin:0;min-height:40px;display:flex;flex-direction:column;align-items:center;gap:6px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);opacity:0;transform:translateY(-6px);transition:opacity .4s,transform .4s var(--ease)}
.z7-go.on{opacity:1;transform:none}
.z7-go i{width:10px;height:10px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);animation:nhint 1.6s ease-in-out infinite}
.z7-meth{display:grid;gap:16px;scroll-margin-top:150px;border-top:1px solid var(--line);padding-top:26px}
.z7-h{display:grid;gap:6px}
.z7-h .zk{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.z7-h h3{margin:0;font-family:var(--display);font-weight:200;font-size:clamp(20px,2.4vw,28px);letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.z7-h h3 b{font-weight:500}
#zTech{display:flex;flex-wrap:wrap;gap:8px;min-height:44px;margin:0}
#zTech .chip small{font-size:9px;letter-spacing:.06em;opacity:.7;margin-left:4px;text-transform:none;font-family:var(--sans)}
.z7-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:22px;align-items:center}
.z7-zoom{position:relative;margin:0;aspect-ratio:16/10;border-radius:22px;overflow:hidden;background:#fff;box-shadow:var(--sh-1)}
.z7-zoom svg{display:block;width:100%;height:100%}
.z7-zoom .lab{position:absolute;left:10px;top:10px;z-index:2;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;background:rgba(31,30,28,.72);color:#fff;padding:5px 9px;border-radius:999px}
.z7-txt{min-height:170px}
.z7-txt .z7-n{display:block;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}
.z7-txt p{margin:0;font-size:15px;line-height:1.65}
.z7-txt .sol{display:inline-block;margin-top:8px;font-size:13.5px;color:var(--muted)}
.z7-txt .mini{margin-top:6px;font-size:12.5px;color:var(--muted)}
.c-it.vid video{width:100%;height:100%;object-fit:cover;display:block}
.simu{display:flex;gap:14px;align-items:flex-start;background:var(--gold-soft);border-radius:20px;padding:16px 18px}
.simu b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.simu p{margin:6px 0 0;font-size:14.5px}

/* engagements : un seul gant ; la signature s'écrit puis s'efface, en boucle */
.en-sign .a-sig{transition:none;animation:sigloop 5s ease-in-out infinite}
.en-sign .a-pen{transition:none;opacity:1;animation:penloop 5s ease-in-out infinite}
@keyframes sigloop{0%,8%{stroke-dashoffset:1}45%,70%{stroke-dashoffset:0}92%,100%{stroke-dashoffset:1}}
@keyframes penloop{0%,8%{transform:translate(76px,126px);opacity:1}45%{transform:translate(136px,122px);opacity:1}70%{transform:translate(136px,122px);opacity:1}80%,92%{transform:translate(136px,122px);opacity:0}100%{transform:translate(76px,126px);opacity:0}}

/* tarifs : une simple liste */
.plist7 ul{list-style:none;margin:0;padding:0;display:grid;gap:0;background:#fff;border-radius:20px;box-shadow:var(--sh-1);padding:4px 18px}
.plist7 li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line)}
.plist7 li:last-child{border-bottom:0}
.pl-n b{display:block;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.pl-n small{font-size:13px;color:var(--muted)}
.pl-p{flex:none;font-family:var(--display);font-size:15px;font-weight:500;color:var(--ink);white-space:nowrap}
.pl-p small{font-size:9px;letter-spacing:.12em;color:var(--muted)}
.pl-note{margin:10px 2px 0;font-size:13.5px;color:var(--muted);min-height:1.4em}
.solx{margin-top:10px;background:#fff;border-radius:18px;box-shadow:inset 0 0 0 1px var(--line);padding:0 18px}
.solx summary{cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:13px 0;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.solx summary::-webkit-details-marker{display:none}
.solx summary small{font-family:var(--sans);font-size:13px;letter-spacing:0;text-transform:none;font-weight:400;color:var(--muted)}
.solx summary span{margin-left:auto;color:var(--gold)}
.solx summary span::after{content:" +"}
.solx[open] summary span::after{content:" −"}
.solx-b{padding-bottom:14px;font-size:14px}
.solx-b p{margin:0 0 8px}
.solx-b .mini{font-size:12px;color:var(--muted)}

@media (max-width:760px){
  .me-grid{grid-template-columns:1fr;gap:22px}
  .me-ph{max-width:250px}
  .z7-grid{grid-template-columns:1fr;gap:14px}
  .z7-txt{min-height:290px}
  #zTech{min-height:100px;align-content:flex-start}
  .zt7 .viewer{padding:8px 8px 2px}
  .zt7 .hot span{font-size:8.5px;letter-spacing:.12em}
  .blk-t{padding:6px 11px}
  #zTech{gap:6px}
  #zTech .chip{padding:9px 12px;font-size:9.5px;letter-spacing:.1em}
  #zTech .chip small{margin-left:2px}
  .plist7 ul{padding:2px 14px}
  .pl-p{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .en-sign .a-sig{animation:none;stroke-dashoffset:0}.en-sign .a-pen{animation:none;opacity:0}
  .nexthint i::after,.z7-go i{animation:none}.bl-c{transition:none}
}
/* avis dans l'étape : le ruban ne doit pas élargir l'étape */
#avis-clientes .e-body{min-width:0;display:block}
#avis-clientes .e-in,#avis-clientes .e-c{min-width:0}
.quotes.marq{max-width:calc(100% + 44px);min-width:0}
@media (max-width:760px){.quotes.marq{max-width:calc(100% + 36px)}}
/* tarifs : la liste prend sa propre hauteur (pas de grand vide sous les petites catégories) */
#pstack{display:block}
#pstack .plist7.off{display:none}

/* ===================== v8 ===================== */
/* repris du kit (le kit n'est plus chargé sur cette page) */
.parcours{padding-block:90px 60px;position:relative}
.p-head{margin:0 auto}
.p-head .h-sec{margin-top:12px}
.p-head p{margin:18px auto 0;font-size:17.5px;max-width:52ch}
.pbar{z-index:120}
html,body{overflow-anchor:none}

/* sommaire collant */
.somm{position:sticky;top:var(--hh,62px);z-index:30;padding:8px 16px;background:linear-gradient(180deg,rgba(251,249,244,.96),rgba(251,249,244,.86));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.somm-in{max-width:1120px;margin:0 auto;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;justify-content:center}
.somm-in::-webkit-scrollbar{display:none}
.somm button{flex:none;display:flex;align-items:center;gap:8px;border:0;cursor:pointer;background:none;border-radius:999px;padding:6px 12px 6px 6px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:background .3s,color .3s}
.somm button i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:300;font-size:13px;letter-spacing:0;color:var(--gold);box-shadow:inset 0 0 0 1.5px var(--gold-2);transition:background .3s,color .3s}
.somm button.done i{background:var(--gold-soft)}
.somm button.on{background:var(--ink);color:#fff}
.somm button.on i{background:var(--gold-2);color:var(--ink);box-shadow:none}
.somm button em{font-style:normal;font-weight:500;letter-spacing:.08em;color:var(--gold-2);max-width:0;overflow:hidden;white-space:nowrap;transition:max-width .5s var(--ease)}
.somm button.on em:not(:empty){max-width:220px}
.somm button.on em:not(:empty)::before{content:"· ";color:#8a8378}

/* les 4 blocs */
.blocs8{padding-block:34px 90px;background:var(--pearl)}
.bk{position:relative;padding:0;margin-top:22px;background:#fff;border-radius:34px;box-shadow:var(--sh-1);scroll-margin-top:calc(var(--th,120px) + 8px);transition:box-shadow .4s}
.bk:first-child{margin-top:0}
.bk.open{box-shadow:var(--sh-2)}
.bk-hh{margin:0;font-size:inherit}
.bk-h{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;border:0;background:none;cursor:pointer;text-align:left;padding:30px 34px;border-radius:34px;color:inherit}
.bk-n{position:relative;width:96px;height:96px;display:grid;place-items:center}
.bk-n::before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 70%);box-shadow:inset 0 0 0 1.5px var(--gold-2);transition:transform .6s var(--ease),background .4s}
.bk-n em{position:relative;font-style:normal;font-family:var(--display);font-weight:200;font-size:64px;line-height:1;color:var(--gold);letter-spacing:-.02em}
.bk.done .bk-n::after{content:"";position:absolute;right:2px;bottom:6px;width:26px;height:26px;border-radius:50%;background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23d9bd72' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:0 0 0 3px #fff}
.bk.open .bk-n::before{background:radial-gradient(circle at 35% 30%,#3a3632,var(--ink) 70%);box-shadow:none}
.bk.open .bk-n em{color:var(--gold-2)}
.bk-t{min-width:0}
.bk-t b{display:block;font-family:var(--display);font-size:clamp(20px,2.6vw,30px);font-weight:300;letter-spacing:.07em;text-transform:uppercase;color:var(--ink);line-height:1.15}
.bk-t small{display:block;margin-top:6px;font-size:15px;color:var(--gold);font-family:var(--display);font-weight:500;letter-spacing:.06em}
.bk-sum{display:flex;flex-wrap:wrap;gap:4px 0;margin-top:10px;font-size:13.5px;color:var(--muted)}
.bk-sum span+span::before{content:"·";margin:0 8px;color:var(--gold-2)}
.bk-o{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
.bk-o i{position:relative;width:44px;height:44px;border-radius:50%;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line)}
.bk-o i::before,.bk-o i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1.6px;background:var(--gold);transform:translate(-50%,-50%);transition:transform .35s var(--ease)}
.bk-o i::after{transform:translate(-50%,-50%) rotate(90deg)}
.bk.open .bk-o i{background:var(--gold-soft)}
.bk.open .bk-o i::after{transform:translate(-50%,-50%) rotate(0)}
.bk:not(.open) .bk-h:hover .bk-o i{animation:nudge8 1s ease-in-out infinite}
@keyframes nudge8{50%{transform:translateY(3px)}}
.bk-c{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease)}
.bk.open>.bk-c{grid-template-rows:1fr}
.bk-in{overflow:hidden;min-height:0}
.bk.open.ready>.bk-c>.bk-in{overflow:visible}
.bk:not(.open)>.bk-c>.bk-in{visibility:hidden}
.bk.instant>.bk-c{transition:none}
/* l'ouverture : le numéro tourne, le sommaire s'égrène */
.bk.opening .bk-n::before{animation:nring .8s var(--ease)}
.bk.opening .bk-n em{animation:nnum .8s var(--ease)}
.bk.opening .bk-sum span{animation:sumin .5s var(--ease) both}
.bk.opening .bk-sum span:nth-child(2){animation-delay:.06s}.bk.opening .bk-sum span:nth-child(3){animation-delay:.12s}.bk.opening .bk-sum span:nth-child(4){animation-delay:.18s}.bk.opening .bk-sum span:nth-child(5){animation-delay:.24s}.bk.opening .bk-sum span:nth-child(6){animation-delay:.3s}.bk.opening .bk-sum span:nth-child(7){animation-delay:.36s}
@keyframes nring{0%{transform:scale(.7) rotate(-90deg)}60%{transform:scale(1.08)}100%{transform:none}}
@keyframes nnum{0%{opacity:0;transform:translateY(14px) scale(.8)}100%{opacity:1;transform:none}}
@keyframes sumin{from{opacity:0;transform:translateY(6px)}}

/* dans un bloc : une ligne verticale, un numéro qui reste visible */
.bk-flow{display:grid;grid-template-columns:86px minmax(0,1fr);gap:0 18px;padding:6px 34px 40px 22px}
.bk-rail{position:relative}
.bk-line{position:absolute;left:42px;top:0;bottom:0;width:2px;background:var(--line);border-radius:2px}
.bk-line i{position:absolute;inset:0;background:linear-gradient(180deg,var(--gold-2),var(--gold));transform-origin:top;transform:scaleY(0);border-radius:2px}
.bk-badge{position:sticky;top:calc(var(--th,120px) + 24px);z-index:2;display:grid;justify-items:center;gap:6px;margin-top:10px}
.bk-badge em{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--display);font-weight:200;font-size:26px;color:var(--gold-2);background:var(--ink);box-shadow:0 0 0 6px #fff,0 12px 24px rgba(31,30,28,.18)}
.bk-badge small{max-width:86px;text-align:center;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);line-height:1.35;background:#fff;padding:2px 4px;border-radius:6px}
.bk-badge.pop em{animation:bpop .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes bpop{0%{transform:scale(.6) rotate(-20deg);opacity:.2}100%{transform:none;opacity:1}}
.bk-steps{min-width:0}
.stp{position:relative;padding:26px 0 40px;scroll-margin-top:calc(var(--th,120px) + 10px)}
.stp+.stp{border-top:1px dashed var(--line)}
.stp-h{margin-bottom:22px}
.stp-k{display:inline-block;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.stp-h h3{margin-top:6px;font-size:clamp(22px,2.8vw,32px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;line-height:1.15}
.stp-h h3 b{font-weight:500;color:var(--gold)}
.stp-h p{margin-top:8px;font-size:15.5px;color:var(--muted)}
.stp-h::after{content:"";display:block;width:0;height:2px;margin-top:14px;background:linear-gradient(90deg,var(--gold-2),rgba(217,189,114,0));transition:width .9s var(--ease) .15s}
.stp.in .stp-h::after{width:120px}
.stp .stp-h>*{transition:opacity .6s ease,transform .7s var(--ease)}
.stp:not(.in) .stp-h>*{opacity:0;transform:translateY(14px)}
.stp.in .stp-h h3{transition-delay:.08s}.stp.in .stp-h p{transition-delay:.16s}
.bk-end{padding-top:6px}
.bk-end .nexthint{margin-top:10px}
/* le chemin du bloc 3 : l'objet voyageur */
.path8 .bk-line{background:repeating-linear-gradient(180deg,var(--gold-2) 0 8px,transparent 8px 16px);opacity:.55}
.path8 .bk-line i{opacity:1}
.trav8 .ico{width:64px;height:64px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 3px var(--gold-2),0 12px 24px rgba(92,74,30,.2)}
.trav8 .ico svg{width:34px;height:34px}
.trav8 em{width:28px;height:28px;font-size:12px;font-weight:500;margin-top:-18px;box-shadow:0 0 0 3px #fff}
.trav8.pop .ico{animation:bpop .55s cubic-bezier(.3,1.6,.5,1)}
.trav8.pop em{animation:none}
.path8 .stp::before{content:"";position:absolute;left:-71px;top:34px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--gold-2);transition:background .4s}
.path8 .stp.in::before{background:var(--gold)}
/* le bloc 4 : à part */
.bk-solo{padding:6px 34px 44px}
.bk-solo .stp{padding-top:18px}
.bk-solo .stp+.stp,.bk-solo .stp{border-top:0}
.center{text-align:center}
.stp-h.center::after{margin-inline:auto}

/* praticienne : photo détourée, sans arche */
.me-ph8{position:relative;margin:0;justify-self:center;width:min(360px,100%);aspect-ratio:430/560}
.me-ph8 .glow{position:absolute;left:4%;right:4%;bottom:0;top:12%;border-radius:50%;background:radial-gradient(circle at 50% 45%,var(--gold-soft) 0%,rgba(246,237,210,.6) 45%,rgba(246,237,210,0) 70%)}
.me-ph8 img{position:relative;width:100%;height:100%;object-fit:contain;object-position:50% 100%;-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent);filter:drop-shadow(0 18px 24px rgba(31,30,28,.12))}
.fr li:nth-child(5) i{background:var(--ink)}.fr li:nth-child(5) i svg{stroke:var(--gold-2)}
.fr li:last-child i{background:var(--ink)}

/* le lieu */
.lieu{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}
.lieu-v{position:relative;margin:0;border-radius:26px;overflow:hidden;aspect-ratio:4/3;background:var(--pearl);box-shadow:var(--sh-1)}
.lieu-v img,.lieu-v video{width:100%;height:100%;object-fit:cover;display:block}
.lieu-v .play{position:absolute;left:50%;top:50%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;background:rgba(255,255,255,.9);box-shadow:var(--sh-2)}
.lieu-v .play::before{content:"";position:absolute;left:28px;top:22px;border-left:19px solid var(--ink);border-top:13px solid transparent;border-bottom:13px solid transparent}
.lieu-v figcaption{position:absolute;left:14px;bottom:14px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.55);padding:7px 12px;border-radius:999px}
.lieu-t p{font-size:16px}
.lieu-t .dash{margin-top:12px}
.lieu-g{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}
.lieu-g figure{position:relative;margin:0;border-radius:18px;overflow:hidden;aspect-ratio:3/4;background:linear-gradient(160deg,#fff,var(--pearl-2));box-shadow:var(--sh-1)}
.lieu-g img{width:100%;height:100%;object-fit:cover}
.lieu-g figcaption{position:absolute;left:10px;bottom:10px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.45);padding:5px 9px;border-radius:999px}
.lieu-g .ph{display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--gold);box-shadow:inset 0 0 0 1px var(--line)}
.lieu-g .ph svg{width:30px;height:30px}
.lieu-g .ph figcaption{position:static;background:none;color:var(--muted);font-size:8.5px;line-height:1.6}
.lieu-g .ph figcaption b{color:var(--ink)}

/* checklist */
.lead8{font-size:16.5px;max-width:60ch}
.tick8{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px;counter-reset:ck}
.tick8 button{width:100%;display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:center;text-align:left;border:0;cursor:pointer;padding:13px 16px;border-radius:18px;background:var(--pearl);color:var(--ink);font-size:15.5px;line-height:1.45;transition:background .4s,box-shadow .4s}
.tick8 i{position:relative;width:40px;height:40px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 2px var(--gold-2)}
.tick8 i::after{content:"";position:absolute;left:14px;top:6px;width:10px;height:20px;border-right:3px solid var(--gold);border-bottom:3px solid var(--gold);transform:rotate(45deg) scale(0);transform-origin:50% 60%;transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.tick8 li.on button{background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.tick8 li.on i{background:var(--gold-soft)}
.tick8 li.on i::after{transform:rotate(45deg) scale(1)}
.tick8 li.pop i{animation:tpop .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes tpop{0%{transform:scale(.7)}100%{transform:none}}
.tick8 b{font-weight:600}
.tick8 small{display:block;margin-top:3px;font-size:13px;color:var(--gold)}
.tick8 li.key button{box-shadow:inset 0 0 0 1.5px var(--gold-2)}
/* photos */
.pho3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.pho3>div{background:var(--pearl);border-radius:20px;padding:18px}
.pho3 .pi{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1)}
.pho3 .pi svg{width:22px;height:22px}
.pho3 b{display:block;margin-top:12px;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.pho3 p{margin-top:6px;font-size:14.5px}
.ent8 p{font-size:16px;max-width:64ch}
.ent8 .rtiers{margin-top:16px}

/* bloc 4 */
.recap3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px}
.recap3 button{position:relative;display:grid;justify-items:start;gap:4px;text-align:left;border:0;cursor:pointer;padding:22px 20px;border-radius:24px;background:var(--pearl);color:var(--ink);transition:transform .3s var(--ease),box-shadow .3s}
.recap3 button:hover{transform:translateY(-3px);box-shadow:var(--sh-1)}
.recap3 .rn{font-family:var(--display);font-weight:200;font-size:44px;line-height:1;color:var(--gold)}
.recap3 b{font-family:var(--display);font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.recap3 small{font-size:13.5px;color:var(--muted)}
.recap3 .st{position:absolute;right:16px;top:18px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);background:#fff;padding:5px 9px;border-radius:999px}
.recap3 .ok .st{background:var(--ink);color:var(--gold-2)}
.mword{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;max-width:760px;margin:40px auto 10px}
.mw-av{margin:0;width:74px;height:74px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 4px #fff,0 0 0 5px var(--gold-2),var(--sh-1)}
.mw-av img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.mw-b{position:relative;background:var(--gold-soft);border-radius:6px 26px 26px 26px;padding:18px 22px 20px;min-height:74px}
.mw-k{display:block;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.mw-typ{display:none;gap:5px;padding:6px 0}
.mw-typ i{width:8px;height:8px;border-radius:50%;background:var(--gold);animation:blink8 1s infinite}
.mw-typ i:nth-child(2){animation-delay:.15s}.mw-typ i:nth-child(3){animation-delay:.3s}
@keyframes blink8{50%{opacity:.25;transform:translateY(-2px)}}
.mword.typing .mw-typ{display:flex}
.mw-t{display:grid;gap:10px;font-size:16px;line-height:1.6;color:var(--ink)}
.mword:not(.shown) .mw-t{display:none}
.mword.shown .mw-t>*{animation:sumin .6s var(--ease) both}
.mword.shown .mw-t>*:nth-child(2){animation-delay:.25s}.mword.shown .mw-t>*:nth-child(3){animation-delay:.5s}.mword.shown .mw-t>*:nth-child(4){animation-delay:.75s}.mword.shown .mw-t>*:nth-child(5){animation-delay:1s}
.mw-sig{font-family:"Allura",cursive;font-size:30px;color:var(--gold);line-height:1}
/* FAQ */
.faq8{max-width:860px;margin:0 auto}
.faq8-s input{width:100%;font:inherit;font-size:15px;border:0;border-radius:999px;padding:14px 20px;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.faq8-c{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;justify-content:center}
.faq8-c button{border:0;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--pearl);color:var(--muted);padding:9px 13px;border-radius:999px}
.faq8-c button[aria-pressed="true"]{background:var(--ink);color:#fff}
.faq8-l{margin-top:18px;display:grid;gap:18px}
.fq8-g h4{margin:0 0 8px;font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.fq8{border-radius:18px;background:var(--pearl);margin-top:8px}
.fq8 button{width:100%;display:flex;justify-content:space-between;gap:14px;align-items:center;text-align:left;border:0;background:none;cursor:pointer;padding:15px 18px;font-size:15.5px;font-weight:600;color:var(--ink);line-height:1.4}
.fq8 button::after{content:"+";flex:none;width:28px;height:28px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);font-weight:400;font-size:18px;transition:transform .3s}
.fq8 button[aria-expanded="true"]::after{transform:rotate(45deg)}
.fa8{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.fa8>div{overflow:hidden;min-height:0;padding:0 18px;font-size:15px}
.fa8>div p{margin:0 0 10px}
.fq8 button[aria-expanded="true"]+.fa8{grid-template-rows:1fr}
.fq8 button[aria-expanded="true"]+.fa8>div{padding-bottom:8px}
.faq8-none{margin-top:14px;text-align:center;color:var(--muted)}
.faq-mid{display:block;height:1px}
/* fin : les deux messages */
.endmsg{max-width:760px;margin:30px auto 0;display:grid;gap:14px}
.mlnote{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;align-items:center;padding:20px 22px;border-radius:24px;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line)}
.mlnote .av{grid-row:span 2;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 60%,var(--gold-2));font-family:"Allura",cursive;font-size:28px;color:var(--ink)}
.mlnote .av.pic img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.mlnote p{font-size:15.5px;color:var(--ink)}
.mlnote .btn{justify-self:start;padding:14px 20px;font-size:10.5px}
.mlnote.big{background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-2),var(--sh-1)}
.num8{grid-column:2;display:grid;gap:8px;justify-items:start;animation:sumin .5s var(--ease)}
.num8 .tel{font-family:var(--display);font-size:24px;font-weight:300;letter-spacing:.08em;color:var(--ink)}
.num8 small{font-size:13px;color:var(--muted)}

/* nous trouver : même rendu que l'accueil */
.find8{background:#fff;padding-block:90px}
.cblock8{display:grid;grid-template-columns:1fr 1.1fr;gap:44px;margin-top:40px;padding:40px;border-radius:36px;background:#fff;box-shadow:var(--sh-2),inset 0 0 0 1px #efe3c6}
.cblock8 .ctitle{margin:0;font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.cblock8 address{font-style:normal;margin-top:18px;font-size:17px;line-height:1.75;color:var(--ink)}
.access8{margin:16px 0 0;padding-left:20px;display:grid;gap:6px;font-size:15px}
.access8 li::marker{color:var(--gold);font-family:var(--display)}
.cblock8 .amen{margin-top:18px}
.fmap{position:relative;aspect-ratio:16/10;border-radius:30px;overflow:hidden;background:var(--pearl);box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.fmap svg{position:absolute;inset:0;width:100%;height:100%}
.fmap .rd{fill:none;stroke:#fff;stroke-linecap:round}
.fmap .pinm{position:absolute;left:58%;top:44%;width:44px;height:44px;margin:-44px 0 0 -22px;animation:pinb 2.4s ease-in-out infinite}
.fmap .pinm::before{content:"";position:absolute;inset:0;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--ink);box-shadow:var(--sh-2)}
.fmap .pinm::after{content:"";position:absolute;left:15px;top:13px;width:14px;height:14px;border-radius:50%;background:var(--gold-2)}
@keyframes pinb{50%{transform:translateY(-6px)}}
.fmap .lbl{position:absolute;left:16px;bottom:16px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:rgba(255,255,255,.92);padding:8px 12px;border-radius:999px}
.fbtns{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}

/* avatars réalistes (quand ils seront prêts) */
.viewer .av-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:20px}
.viewer.img #facesvg{visibility:hidden}
.z7-zoom .zimg{position:absolute;inset:0;background-repeat:no-repeat}

@media (max-width:760px){
  .somm{padding:6px 10px}
  .somm-in{justify-content:flex-start}
  .somm button{padding:5px 10px 5px 5px;font-size:9.5px;letter-spacing:.08em}
  .somm button:not(.on) span{display:none}
  .somm button.on em:not(:empty){max-width:130px}
  .blocs8{padding-block:20px 60px}
  .bk{border-radius:26px;margin-top:16px}
  .bk-h{grid-template-columns:auto 1fr;gap:14px;padding:20px 18px}
  .bk-o{grid-column:1/-1;justify-self:end;margin-top:-6px}
  .bk-n{width:62px;height:62px}
  .bk-n em{font-size:40px}
  .bk.done .bk-n::after{width:22px;height:22px;right:-2px;bottom:0;background-size:13px}
  .bk-t b{font-size:19px}
  .bk-t small{font-size:13.5px}
  .bk-sum{font-size:12.5px}
  .bk-flow{grid-template-columns:40px minmax(0,1fr);gap:0 12px;padding:0 16px 30px 8px}
  .bk-line{left:19px}
  .bk-badge em{width:40px;height:40px;font-size:15px;box-shadow:0 0 0 4px #fff,0 8px 16px rgba(31,30,28,.16)}
  .bk-badge small{display:none}
  .trav8 .ico{width:40px;height:40px}.trav8 .ico svg{width:22px;height:22px}
  .trav8 em{width:22px;height:22px;font-size:10px;margin-top:-12px}
  .path8 .stp::before{left:-26px;width:10px;height:10px}
  .stp{padding:20px 0 30px}
  .bk-solo{padding:0 16px 30px}
  .me-ph8{width:min(260px,80%)}
  .lieu{grid-template-columns:1fr;gap:18px}
  .lieu-g{grid-template-columns:1fr 1fr}
  .pho3{grid-template-columns:1fr}
  .recap3{grid-template-columns:1fr}
  .recap3 button{padding:16px 18px;grid-template-columns:auto 1fr;column-gap:14px}
  .recap3 .rn{grid-row:span 2;font-size:36px}
  .mword{grid-template-columns:1fr;gap:10px;margin-top:28px}
  .mw-av{width:58px;height:58px}
  .mw-b{border-radius:26px}
  .mw-t{font-size:15px}
  .mlnote{grid-template-columns:auto 1fr;padding:16px}
  .mlnote .btn{grid-column:1/-1;width:100%}
  .num8{grid-column:1/-1}
  .cblock8{grid-template-columns:1fr;gap:26px;padding:22px 18px;border-radius:26px}
  .find8{padding-block:64px}
  .fbtns .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .bk-c,.fa8{transition:none}
  .bk.opening .bk-n::before,.bk.opening .bk-n em,.bk.opening .bk-sum span,.bk-badge.pop em,.trav8.pop .ico,.fmap .pinm,.mword.shown .mw-t>*{animation:none}
  .stp:not(.in) .stp-h>*{opacity:1;transform:none}
}
/* MARLOU · styles du module partagé (marlou_core.js). Variables attendues : --gold, --gold-2, --gold-soft, --ink, --pearl, --line, --muted, --sh-2, --ease, --display, --sans */
/* ============ Marlou ============ */
.ml8{position:fixed;right:18px;bottom:18px;z-index:140;font-family:var(--sans)}
.ml8-b{position:relative;display:flex;align-items:center;gap:10px;border:0;cursor:pointer;background:#fff;border-radius:999px;padding:7px 14px 7px 7px;box-shadow:0 0 0 5px rgba(217,189,114,.28),var(--sh-2);color:var(--ink);transition:transform .6s cubic-bezier(.2,1.4,.4,1);transform-origin:100% 100%;animation:mlbob 6s ease-in-out infinite}
.ml8-b .av{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 60%,var(--gold-2));display:grid;place-items:center;font-family:"Allura",cursive;font-size:26px;color:var(--ink)}
.ml8-b .av::after{content:"";position:absolute;left:7px;top:7px;width:44px;height:44px;border-radius:50%;box-shadow:0 0 0 2px var(--gold-2);animation:mlring 2.6s ease-out infinite}
.ml8-b .lb{display:grid;text-align:left;line-height:1.2}
.ml8-b .lb b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.ml8-b .lb small{font-size:12px;color:var(--muted)}
.ml8-b .ia{font-family:var(--display);font-size:9px;font-weight:600;background:var(--ink);color:var(--gold-2);border-radius:6px;padding:3px 6px;letter-spacing:.1em}
@keyframes mlbob{0%,86%,100%{transform:none}90%{transform:translateY(-6px) rotate(-3deg)}94%{transform:translateY(0) rotate(2deg)}}
@keyframes mlring{0%{transform:scale(1);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.ml8.big .ml8-b{transform:scale(1.3);animation:none}
.ml8.open .ml8-b{animation:none}
.ml8-hi{position:absolute;right:0;bottom:84px;width:min(300px,calc(100vw - 40px));padding:16px 40px 16px 18px;border-radius:20px 20px 6px 20px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-2),var(--sh-2);font-size:14.5px;line-height:1.5;color:var(--ink);cursor:pointer;opacity:0;transform:translateY(12px) scale(.94);transform-origin:100% 100%;transition:opacity .35s ease,transform .45s cubic-bezier(.2,1.4,.4,1);pointer-events:none}
.ml8-hi.on{opacity:1;transform:none;pointer-events:auto}
.ml8.big .ml8-hi{bottom:98px}
.ml8-hi b{display:block;font-family:var(--display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:4px}
.ml8-hi .x{position:absolute;right:8px;top:8px;width:28px;height:28px;border:0;border-radius:50%;background:var(--pearl);cursor:pointer;font-size:15px;line-height:1}
.ml8-p{position:absolute;right:0;bottom:74px;width:min(420px,calc(100vw - 36px));height:min(640px,calc(100vh - 120px));display:flex;flex-direction:column;background:#fff;border-radius:26px;box-shadow:var(--sh-2);border:1px solid var(--line);overflow:hidden;opacity:0;transform:translateY(14px) scale(.98);transform-origin:100% 100%;pointer-events:none;transition:opacity .3s ease,transform .4s var(--ease)}
.ml8.open .ml8-p{opacity:1;transform:none;pointer-events:auto}
.ml8.open .ml8-hi{opacity:0;pointer-events:none}
.ml8-top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,var(--pearl))}
.ml8-top .av{width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 60%,var(--gold-2));display:grid;place-items:center;font-family:"Allura",cursive;font-size:24px;color:var(--ink);flex:none}
.ml8-top b{display:block;font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.ml8-top small{font-size:12px;color:var(--muted)}
.ml8-top .ia{margin-left:auto;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.18em;color:#fff;background:var(--ink);padding:5px 9px;border-radius:999px}
.ml8-x{border:0;background:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;box-shadow:inset 0 0 0 1px var(--line)}
.ml8-f{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:10px;background:var(--pearl)}
.ml8 .msg{max-width:90%;padding:10px 13px;border-radius:18px;font-size:14.5px;line-height:1.55;animation:mlpop .35s var(--ease)}
@keyframes mlpop{from{opacity:0;transform:translateY(6px)}}
.ml8 .msg p{margin:0}.ml8 .msg p+p{margin-top:8px}
.ml8 .msg ul{margin:6px 0 0;padding-left:18px}
.ml8 .msg strong{color:var(--ink)}
.ml8 .bot{align-self:flex-start;background:#fff;border-bottom-left-radius:6px;box-shadow:0 4px 12px rgba(60,45,20,.06)}
.ml8 .me{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:6px}
.ml8 .sep{align-self:stretch;height:1px;padding:0;background:var(--line);border-radius:0}
.ml8 .note{align-self:center;font-size:11.5px;color:var(--muted);text-align:center;max-width:90%}
.ml8 .typing{display:inline-flex;gap:4px;align-items:center}
.ml8 .typing i{width:6px;height:6px;border-radius:50%;background:var(--gold-2);animation:blink8 1s infinite}
.ml8 .typing i:nth-child(2){animation-delay:.15s}.ml8 .typing i:nth-child(3){animation-delay:.3s}
.ml8 .tw{margin-left:8px;font-size:12.5px;color:var(--muted)}
.ml8 .chips{display:flex;flex-wrap:wrap;gap:6px}
.ml8 .chips.inline{align-self:flex-end;justify-content:flex-end;max-width:94%;animation:mlpop .35s var(--ease)}
.ml8 .chip{text-transform:none;letter-spacing:0;box-shadow:none;font-family:var(--sans);border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 12px;font:600 12.5px var(--sans);cursor:pointer;transition:background .2s,border-color .2s;text-align:left}
.ml8 .chip:hover{border-color:var(--gold-2)}
.ml8 .chip[aria-pressed="true"]{background:var(--ink);color:#fff;border-color:var(--ink)}
.ml8 .chip[disabled]{cursor:default;opacity:.55}
.ml8 .chip[aria-pressed="true"][disabled]{opacity:1}
.ml8 .chip .box{display:inline-block;width:12px;height:12px;border:1.5px solid currentColor;border-radius:3px;margin-right:7px;vertical-align:-1px}
.ml8 .chip[aria-pressed="true"] .box{background:var(--gold-2);border-color:var(--gold-2)}
.ml8 .chip.ok{background:var(--gold);color:#fff;border-color:var(--gold)}
.ml8 .chip.gold{background:var(--gold-soft);border-color:var(--gold-2)}
.ml8 .go{display:inline-block;margin-top:8px;border:0;background:var(--gold-2);color:var(--ink);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer}
.ml8 .fld{align-self:flex-end;display:flex;gap:6px;width:90%}
.ml8 .fld input{flex:1;min-width:0;font:inherit;font-size:14px;border:1px solid var(--line);border-radius:999px;padding:9px 13px;background:#fff;color:var(--ink)}
.ml8 .pic{align-self:flex-start;margin:0;max-width:78%;background:#fff;border-radius:18px;padding:8px;box-shadow:0 4px 12px rgba(60,45,20,.06);animation:mlpop .35s var(--ease)}
.ml8 .pic img{width:100%;max-width:210px;border-radius:12px;display:block}
.ml8 .pic figcaption{font-size:12px;color:var(--muted);padding:6px 4px 2px}
.ml8 .smscard{align-self:stretch;background:#fff;border:1px solid var(--gold-2);border-radius:18px;padding:14px;display:grid;gap:10px;box-shadow:0 4px 12px rgba(60,45,20,.06);animation:mlpop .35s var(--ease)}
.ml8 .smscard .k{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.ml8 .smscard pre{margin:0;white-space:pre-wrap;font:14px/1.5 var(--sans);color:var(--ink);background:#dff3d0;border-radius:12px;padding:12px}
.ml8 .smscard .row{display:flex;flex-wrap:wrap;gap:8px}
.ml8 .smscard .btn{padding:11px 16px;font-size:10.5px;box-shadow:none;width:auto}
.ml8 .btn.light{background:var(--pearl);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.ml8 .smscard .num{font-size:12.5px;color:var(--muted)}
.ml8-s{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;gap:6px;padding:10px 14px 0;background:#fff;border-top:1px solid var(--line)}
.ml8-s:empty{display:none}
.ml8-s .chip{flex:none;white-space:nowrap;background:var(--gold-soft);border-color:transparent;font-weight:500}
.ml8-c{display:flex;gap:8px;padding:10px 14px 12px;background:#fff;align-items:flex-end}
.ml8-c textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:16px;padding:10px 12px;font:14px/1.4 var(--sans);color:var(--ink);background:var(--pearl);max-height:110px}
.ml8-c.off textarea{opacity:.6}
.ml8-c .send{width:42px;height:42px;border-radius:50%;border:0;background:var(--gold);color:#fff;font-size:18px;cursor:pointer;flex:none}
.ml8-c .send[disabled]{opacity:.45;cursor:default}
.ml8-l{margin:0;font-size:10.5px;color:var(--muted);padding:0 16px 12px;background:#fff;line-height:1.4}

.ml8 .fld.area{flex-direction:column;align-items:stretch}
.ml8 .fld textarea{font:inherit;font-size:14px;border:1px solid var(--line);border-radius:14px;padding:9px 12px;background:#fff;color:var(--ink);resize:vertical}
.ml8 .fld .fb{display:flex;gap:6px;justify-content:flex-end}
.ml8 .msg ul{margin:6px 0 8px}
@media (max-width:760px){
  .ml8{right:12px;bottom:12px}
  .ml8-b{padding:6px 12px 6px 6px}
  .ml8-b .av{width:40px;height:40px}.ml8-b .av::after{left:6px;top:6px;width:40px;height:40px}
  .ml8-b .lb small{display:none}
  .ml8.big .ml8-b{transform:scale(1.15)}
  .ml8.open .ml8-b{display:none}
  .ml8-p{position:fixed;left:8px;right:8px;bottom:8px;width:auto;height:min(78vh,640px);border-radius:24px}
  .ml8-hi{bottom:70px}.ml8.big .ml8-hi{bottom:80px}
}
@media (prefers-reduced-motion:reduce){.ml8-b,.ml8-b .av::after{animation:none}}

/* ===================== v9 ===================== */
/* le numéro d'étape se cale au bout de la barre dorée, un peu au-dessus du milieu */
.bk-badge{top:calc(42vh - 32px)}
.trav8.bk-badge{top:calc(42vh - 32px)}

/* praticienne : la frise suit la lecture */
.me-lead{font-size:clamp(20px,2.3vw,28px)}
.fr li{transition:opacity .5s,transform .5s var(--ease)}
.fr li.cur{opacity:1;transform:scale(1.045);transform-origin:0 50%}
.fr li.cur i{background:var(--gold-soft);box-shadow:0 0 0 4px var(--pearl),0 0 0 9px rgba(217,189,114,.35),inset 0 0 0 1.5px var(--gold)}
.fr li.cur b{color:var(--gold)}
.fr li:nth-child(5).cur i,.fr li:last-child.cur i{background:var(--ink)}

/* le lieu */
.lieu-lead{font-family:var(--display);font-weight:300;font-size:clamp(18px,2vw,22px);line-height:1.6;color:var(--ink);letter-spacing:.01em}
.lieu-lead b{font-weight:500}
.lieu-lead em{font-style:normal;font-weight:500;color:var(--gold);background:linear-gradient(90deg,var(--gold-2),rgba(217,189,114,.2)) 0 100%/100% 2px no-repeat;padding-bottom:2px}

/* checklist : les parties */
.tick8 span small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
.tick8 li.key span small{color:var(--gold)}

/* photos */
.pho9{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.pho9 .pc{background:var(--pearl);border-radius:20px;padding:18px 16px}
.pho9 .pi{width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1)}
.pho9 .pi svg{width:30px;height:30px}
.pho9 .pi.four{width:64px;height:64px;border-radius:18px}.pho9 .pi.four svg{width:44px;height:44px}
.pho9 b{display:block;margin-top:12px;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.pho9 p{margin-top:6px;font-size:14px}
.pho9 p b{display:inline;margin:0;font-family:inherit;font-size:inherit;letter-spacing:0;text-transform:none}
.cadre9{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;margin-top:18px;padding:22px 26px;border-radius:24px;background:linear-gradient(160deg,#fff,var(--gold-soft));box-shadow:inset 0 0 0 1px var(--line)}
.cad-ph svg{display:block;width:150px;height:auto;filter:drop-shadow(0 12px 20px rgba(31,30,28,.18))}
.cad-face{transform-origin:80px 104px;animation:cad 12s var(--ease) infinite}
@keyframes cad{0%,24%{transform:none}33%,57%{transform:translate(0,22px) scale(2.3)}66%,90%{transform:translate(0,-38px) scale(2.3)}100%{transform:none}}
.cad-brk{animation:brk 4s ease-in-out infinite}
@keyframes brk{0%,100%{opacity:.6}50%{opacity:1}}
.cad-l{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.cad-l li{display:flex;align-items:center;gap:12px;font-size:15px;color:var(--ink);opacity:.35;animation:cadl 12s infinite}
.cad-l li b{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--gold);font-family:var(--display);font-weight:500;box-shadow:inset 0 0 0 1.5px var(--gold-2)}
.cad-l .c2{animation-name:cadl2}.cad-l .c3{animation-name:cadl3}
@keyframes cadl{0%,27%{opacity:1}30%,100%{opacity:.35}}
@keyframes cadl2{0%,30%{opacity:.35}33%,60%{opacity:1}63%,100%{opacity:.35}}
@keyframes cadl3{0%,63%{opacity:.35}66%,93%{opacity:1}96%,100%{opacity:.35}}

/* texte de transition entre les parties */
.trans9{margin:6px 0 14px;padding:18px 22px;border-radius:20px;background:var(--gold-soft);font-size:16px;line-height:1.6;color:var(--ink);max-width:720px;position:relative}
.trans9 b{font-family:var(--display);font-weight:600;letter-spacing:.04em}
.trans9::before{content:"";position:absolute;left:-7px;top:22px;width:14px;height:14px;background:var(--gold-soft);transform:rotate(45deg);border-radius:3px}

/* rendez-vous validé */
.val9{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.val-s{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:v}
.val-s li{display:grid;grid-template-columns:52px 1fr;gap:14px;align-items:center;padding:14px 16px;border-radius:20px;background:var(--pearl);opacity:.4;transform:translateX(-6px);transition:opacity .6s,transform .6s var(--ease),background .6s,box-shadow .6s}
.val-s .vi{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--gold);box-shadow:inset 0 0 0 1.5px var(--gold-2)}
.val-s .vi svg{width:28px;height:28px}
.val-s b{display:block;font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.val-s small{display:block;margin-top:3px;font-size:14px;color:var(--text)}
.val9.s1 .val-s li:nth-child(1),.val9.s2 .val-s li:nth-child(-n+2),.val9.s3 .val-s li{opacity:1;transform:none;background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.val9.s3 .val-s li:nth-child(3){box-shadow:inset 0 0 0 1.5px var(--gold-2)}
.val9.s3 .val-s li:nth-child(3) .vi{background:var(--ink);color:var(--gold-2);animation:vpop .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes vpop{0%{transform:scale(.6)}100%{transform:none}}
.val-ph{width:190px;height:330px;border-radius:32px;background:#1f1e1c;padding:12px;box-shadow:var(--sh-2)}
.val-ph .scr{position:relative;width:100%;height:100%;border-radius:22px;background:var(--pearl);overflow:hidden}
.val-ph .scr>div{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:10px;padding:16px;opacity:0;transition:opacity .5s,transform .6s var(--ease);transform:translateY(10px)}
.val9.s1 .sc1,.val9.s2 .sc2,.val9.s3 .sc3{opacity:1;transform:none}
.sc1 .bkl{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.sc1 .cal{display:grid;grid-template-columns:repeat(4,22px);gap:6px}
.sc1 .cal i{width:22px;height:22px;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.sc1 .cal i.on{background:var(--gold-2)}
.sc1 .slot{font-size:12px;background:#fff;border-radius:999px;padding:6px 10px;box-shadow:var(--sh-1)}
.sc1 .tap{width:26px;height:26px;border-radius:50%;background:rgba(31,30,28,.18);animation:tap 1.2s ease-in-out infinite}
@keyframes tap{50%{transform:scale(.7);background:rgba(31,30,28,.35)}}
.sc2 .notif{display:block;background:#fff;border-radius:16px;padding:10px 12px;font-size:12.5px;line-height:1.4;box-shadow:var(--sh-1);animation:notif .6s cubic-bezier(.3,1.4,.5,1)}
.sc2 .notif b{display:block;font-family:var(--display);font-size:9.5px;letter-spacing:.18em;color:var(--gold);margin-bottom:3px}
@keyframes notif{from{transform:translateY(-40px);opacity:0}}
.sc3 .seal{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;font-size:38px;color:#fff;background:radial-gradient(circle at 35% 30%,#f3e1a6,var(--gold) 70%)}
.val9.s3 .sc3 .seal{animation:vpop .7s cubic-bezier(.3,1.6,.5,1)}
.sc3 b{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}

/* le jour J : une grande barre de temps */
.jj{position:relative}
.jj-top{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
.jj-clock{display:grid;justify-items:center;gap:2px}
.jj-clock svg{width:54px;height:54px}
.jj-clock .hand,.jj-clock .hand2{transform-origin:20px 20px}
.jj-clock em{font-style:normal;font-family:var(--display);font-size:11px;font-weight:600;color:var(--gold);min-width:52px;text-align:center}
.jj-track{position:relative;height:74px;border-radius:18px;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.jj-fill{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--gold-soft),#f0dfae);border-right:3px solid var(--gold)}
.jj-seg{position:absolute;top:0;bottom:0;border:0;background:none;cursor:pointer;padding:0 6px;display:grid;align-content:center;justify-items:center;gap:3px;color:var(--ink);text-align:center}
.jj-seg+.jj-seg{border-left:2px solid #fff}
.jj-seg::before{content:"";position:absolute;left:-2px;top:10px;bottom:10px;width:2px;background:var(--gold-2);opacity:.6}
.jj-seg:first-of-type::before{display:none}
.jj-seg em{width:22px;height:22px;display:grid;place-items:center;color:var(--gold)}
.jj-seg em svg{width:20px;height:20px}
.jj-seg span{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.jj-seg.cur{background:rgba(255,255,255,.55)}
.jj-seg.cur em{color:var(--ink)}
.jj-scale{display:flex;justify-content:space-between;margin:6px 0 0 70px;font-size:11px;color:var(--muted)}
.jj-hint{display:flex;align-items:center;gap:8px;margin:10px 0 0 70px;font-size:13px;color:var(--gold);opacity:0;transition:opacity .5s}
.jj.ended .jj-hint,.jj.stopped .jj-hint{opacity:1}
.jj-hint i{width:10px;height:10px;border-left:1.8px solid var(--gold);border-top:1.8px solid var(--gold);transform:rotate(45deg);animation:hup 1.4s ease-in-out infinite}
@keyframes hup{50%{transform:translateY(-4px) rotate(45deg)}}
.jj-panel{margin-top:16px}
.jji{display:grid;grid-template-columns:230px 1fr;gap:22px;align-items:center;background:#fff;border-radius:22px;padding:14px;box-shadow:var(--sh-1)}
.jji figure{margin:0;aspect-ratio:4/3;border-radius:16px;overflow:hidden;background:linear-gradient(160deg,#fff,var(--pearl-2));display:grid;place-items:center;text-align:center;color:var(--gold);box-shadow:inset 0 0 0 1px var(--line)}
.jji figure img{width:100%;height:100%;object-fit:cover}
.jji figure svg{width:28px;height:28px}
.jji figure figcaption{font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);line-height:1.6}
.jji .k{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.jji h4{margin:4px 0 0;font-family:var(--display);font-size:clamp(17px,2vw,21px);font-weight:300;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.jji h4 b{font-weight:500}
.jji p{margin-top:6px;font-size:15px}

/* la retouche : rien de cliquable, une petite animation */
.ret9{display:grid;grid-template-columns:auto 1fr;gap:30px;align-items:center}
.ret-a{display:grid;gap:14px;justify-items:center}
.cal9{position:relative;width:150px;height:130px}
.cal9 .ring{position:absolute;left:18px;right:18px;top:-6px;height:14px;background:repeating-linear-gradient(90deg,transparent 0 14px,var(--ink) 14px 18px);z-index:2}
.cal9 .pg{position:absolute;inset:0;border-radius:16px;background:#fff;box-shadow:var(--sh-1),inset 0 12px 0 var(--gold-2);display:grid;align-content:center;justify-items:center;gap:0;padding-top:12px;animation:pg 9s infinite;transform-origin:50% 0;opacity:0}
.cal9 .pg b{font-family:var(--display);font-weight:200;font-size:44px;line-height:1;color:var(--ink)}
.cal9 .pg small{font-size:11px;color:var(--muted)}
.cal9 .p2{animation-delay:3s}.cal9 .p3{animation-delay:6s}
@keyframes pg{0%{opacity:0;transform:rotateX(-70deg)}5%,30%{opacity:1;transform:none}36%,100%{opacity:0;transform:rotateX(70deg)}}
.pig9{position:relative;width:200px}
.pig9 svg{display:block;width:100%}
.pig9 .st1{animation:pig 9s infinite}
@keyframes pig{0%,30%{opacity:.25;filter:blur(1.2px)}60%{opacity:.45;filter:blur(.6px)}75%,100%{opacity:1;filter:none}}
.pig9 .lb{position:absolute;left:0;right:0;bottom:-6px;text-align:center;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);animation:lb1 9s infinite}
.pig9 .l2{animation-name:lb2}
@keyframes lb1{0%,62%{opacity:1}68%,100%{opacity:0}}
@keyframes lb2{0%,66%{opacity:0}72%,100%{opacity:1}}
.ret-t p{font-size:16px}
.ret-t .dash{margin-top:12px}

/* le mot de Marlène */
.mw-av{position:relative;width:96px;height:96px}
.mw-av video{width:100%;height:100%;object-fit:cover;object-position:50% 20%;background:#fff}
.mw-av::after{content:"";position:absolute;inset:-6px;border-radius:50%;box-shadow:0 0 0 2px var(--gold-2);animation:mlring 2.6s ease-out infinite}
.mword .mw-typ{display:none;align-items:center;gap:5px;padding:6px 0}
.mword.typing .mw-typ{display:flex}
.mw-typ span{margin-left:8px;font-size:13px;color:var(--muted);font-style:italic}
.mword .mw-t{display:grid}
.mword:not(.shown) .mw-t{display:none}
.mword .mw-t p{margin:0}
.mword .mw-t .w{opacity:0;animation:wd .35s ease forwards}
@keyframes wd{to{opacity:1}}
.mword:not(.shown) .mw-sig{opacity:0}
.mw-sig{transition:opacity .6s}

/* le pop-up de Marlou */
.end-h{margin:10px 0 4px;text-align:center;font-family:var(--display);font-size:clamp(20px,2.4vw,26px);font-weight:200;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.end-h b{font-weight:500;color:var(--gold)}
.pop9{position:relative;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;padding:24px 26px;border-radius:28px;background:#fff;box-shadow:inset 0 0 0 2px var(--gold-2),0 24px 60px rgba(92,74,30,.2);transform:scale(.9);opacity:0;transition:transform .7s cubic-bezier(.2,1.4,.4,1),opacity .5s}
.pop9.in{transform:none;opacity:1}
.pop9 .halo{position:absolute;inset:-10px;border-radius:36px;box-shadow:0 0 0 0 rgba(217,189,114,.45);animation:halo9 2.4s ease-out infinite;pointer-events:none}
@keyframes halo9{0%{box-shadow:0 0 0 0 rgba(217,189,114,.5)}100%{box-shadow:0 0 0 22px rgba(217,189,114,0)}}
.pop9 .av{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff,var(--gold-soft) 60%,var(--gold-2));font-family:"Allura",cursive;font-size:34px;color:var(--ink);box-shadow:0 0 0 4px #fff,0 0 0 5px var(--gold-2)}
.pop9.in .av{animation:wave9 1.4s ease-in-out .5s 2}
@keyframes wave9{25%{transform:rotate(-10deg)}75%{transform:rotate(8deg)}}
.pop9 .pk{display:block;font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.pop9 p{margin:6px 0 14px;font-size:16px;color:var(--ink)}
.pop9 .btn{padding:15px 24px;font-size:10.5px}

@media (max-width:760px){
  .bk-badge,.trav8.bk-badge{top:calc(42vh - 20px)}
  .pho9{grid-template-columns:1fr 1fr}
  .recap3 button{padding-right:78px}
  .pho9 .pc{padding:14px 12px}
  .cadre9{grid-template-columns:1fr;justify-items:center;padding:18px}
  .cad-ph svg{width:130px}
  .val9{grid-template-columns:1fr;justify-items:center}
  .val-ph{width:170px;height:280px}
  .jj-top{grid-template-columns:1fr}
  .jj-clock{grid-auto-flow:column;justify-content:start;align-items:center;gap:8px}
  .jj-clock svg{width:40px;height:40px}
  .jj-track{height:58px}
  .jj-seg span{display:none}
  .jj-scale,.jj-hint{margin-left:0}
  .jji{grid-template-columns:1fr;padding:12px}
  .ret9{grid-template-columns:1fr;justify-items:center}
  .mw-av{width:72px;height:72px}
  .pop9{grid-template-columns:1fr;justify-items:start;padding:20px}
  .pop9 .btn{width:100%}
  .trans9{font-size:15px}
}
@media (prefers-reduced-motion:reduce){
  .cad-face,.cad-l li,.cal9 .pg,.pig9 .st1,.pig9 .lb,.pop9 .halo,.mw-av::after,.sc1 .tap{animation:none}
  .cal9 .p3,.cad-l li,.pig9 .l2{opacity:1}.cal9 .pg{opacity:0}.cal9 .p3{opacity:1}.pig9 .l1{opacity:0}
  .pop9{transform:none;opacity:1}
}

/* ===================== v10 ===================== */
/* praticienne : les cercles passent au-dessus de la ligne, fond plein */
.fr li{opacity:1;transform:none}
.fr li>b,.fr li>span{transition:opacity .5s}
.fr li:not(.in)>b,.fr li:not(.in)>span{opacity:.32}
.fr i{z-index:2;background:#fff}
.fr li:not(.in) i{background:#fbf9f4;box-shadow:0 0 0 4px #fff,inset 0 0 0 1.5px #e9dcc0}
.fr li:not(.in) i svg{opacity:.4}
.fr::before,.fr::after{z-index:0}
.fr li.cur{transform:scale(1.045)}

/* barre de progression fine, jusqu'à « Réserve ton rendez-vous » */
.pbar.pb10{height:3px;background:linear-gradient(90deg,var(--gold-2),var(--gold));transition:transform .15s linear}
.pbar.pb10.full{background:linear-gradient(90deg,var(--gold),#8e7132)}

/* la checklist réapparaît en petit quand une étape se coche */
.ck-toast{position:fixed;left:18px;bottom:18px;z-index:130;width:250px;padding:14px 16px 12px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-2),var(--sh-2);font-size:13px;color:var(--ink);opacity:0;transform:translateY(16px) scale(.96);transform-origin:0 100%;pointer-events:none;transition:opacity .35s,transform .45s cubic-bezier(.2,1.4,.4,1)}
.ck-toast.on{opacity:1;transform:none}
.ck-toast b{display:block;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.ck-toast ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.ck-toast li{display:flex;align-items:center;gap:8px;color:var(--muted)}
.ck-toast li i{position:relative;flex:none;width:16px;height:16px;border-radius:5px;box-shadow:inset 0 0 0 1.5px var(--gold-2);background:#fff}
.ck-toast li.on{color:var(--ink)}
.ck-toast li.on i{background:var(--gold-soft)}
.ck-toast li.on i::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:9px;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(45deg)}
.ck-toast li.new{font-weight:600}
.ck-toast li.new i{animation:tpop .7s cubic-bezier(.3,1.6,.5,1) .3s both}
.ck-toast li.new i::after{animation:ckin .5s ease .5s both}
@keyframes ckin{from{opacity:0;transform:rotate(45deg) scale(.2)}}

/* photos : 3 étapes, l'objectif arrière qui se retourne */
.pho9.three{grid-template-columns:repeat(3,1fr)}
.pho9 .pc{display:block}
.pho9 .flip9{margin:-6px 0 -4px -18px}
.flip9{position:relative;width:96px;height:96px;perspective:500px}
.fl-card{position:absolute;left:28px;top:4px;width:44px;height:84px;transform-style:preserve-3d;animation:flip9 7s ease-in-out infinite}
.fl-f,.fl-b{position:absolute;inset:0;border-radius:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.fl-f{background:#1f1e1c;box-shadow:inset 0 0 0 3px #1f1e1c,inset 0 0 0 5px #3a3632}
.fl-f .cam1{position:absolute;left:50%;top:6px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#6b6660}
.fl-f .fme{position:absolute;left:0;right:0;top:30px;text-align:center;font-size:20px}
.fl-b{background:linear-gradient(160deg,#3a3632,#1f1e1c);transform:rotateY(180deg)}
.fl-b .lens{position:absolute;left:6px;top:6px;width:24px;height:24px;border-radius:7px;background:#2a2724;display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:3px}
.fl-b .lens i{border-radius:50%;background:radial-gradient(circle at 40% 35%,#8aa0b8,#1a1c22 60%);box-shadow:0 0 0 1px #555}
@keyframes flip9{0%,38%{transform:none}50%,90%{transform:rotateY(180deg)}100%{transform:rotateY(360deg)}}
.fl-no,.fl-yes{position:absolute;right:-4px;top:24px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;align-content:center;font-size:20px;font-weight:700;color:#fff;line-height:1;opacity:0}
.fl-no small,.fl-yes small{font-size:8px;letter-spacing:.1em;text-transform:uppercase;font-family:var(--display);margin-top:1px}
.fl-no{background:#c9463d;animation:fno 7s infinite}
.fl-yes{background:#3e8a57;animation:fyes 7s infinite}
@keyframes fno{0%,8%{opacity:0;transform:scale(.5)}14%,34%{opacity:1;transform:none}40%,100%{opacity:0}}
@keyframes fyes{0%,52%{opacity:0;transform:scale(.5)}58%,86%{opacity:1;transform:none}92%,100%{opacity:0}}

/* rendez-vous validé : 4 temps */
.val-s li{opacity:.4;transform:translateX(-6px)}
.val-s li.on{opacity:1;transform:none;background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.val-s li.now{box-shadow:inset 0 0 0 1.5px var(--gold-2)}
.val-s li.now .vi{animation:vpop .6s cubic-bezier(.3,1.6,.5,1)}
.val-s li:first-child.on .vi,.val-s li:last-child.on .vi{background:var(--ink);color:var(--gold-2)}
.val-ph .scr>div{opacity:0}
.val-ph .scr>div.on{opacity:1;transform:none}
.sc0 .notif.sms{display:block;background:#dff3d0;border-radius:16px 16px 16px 4px;padding:10px 12px;font-size:12.5px;line-height:1.4;box-shadow:var(--sh-1)}
.sc0 .notif b{display:block;font-family:var(--display);font-size:9.5px;letter-spacing:.18em;color:var(--gold);margin-bottom:3px;text-transform:uppercase}
.sc0 .ok0{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--gold-2);font-size:24px}
.sc0.on .notif{animation:notif .6s cubic-bezier(.3,1.4,.5,1)}
.sc0.on .ok0{animation:vpop .6s cubic-bezier(.3,1.6,.5,1) .9s both}
.sc2.on .notif{animation:notif .6s cubic-bezier(.3,1.4,.5,1)}
.sc3.on .seal{animation:vpop .7s cubic-bezier(.3,1.6,.5,1)}

/* jour J : lecture / pause */
.jj-ctl{display:flex;align-items:center;gap:14px;margin:10px 0 0 70px}
.jj-ctl .jj-hint{margin:0}
.jj-pp{display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:var(--ink);color:#fff;border-radius:999px;padding:8px 14px 8px 10px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.jj-pp i{display:none}
.jj-pp .ic-pause{display:inline-block;width:10px;height:12px;border-left:3px solid var(--gold-2);border-right:3px solid var(--gold-2)}
.jj-pp.paused .ic-pause{display:none}
.jj-pp.paused .ic-play{display:inline-block;width:0;height:0;border-left:10px solid var(--gold-2);border-top:6px solid transparent;border-bottom:6px solid transparent}
.jj-seg.done em{color:var(--gold)}

/* retouche : un carré de peau et une ligne de pigment */
.skin9{position:relative;width:210px}
.skin9 svg{display:block;width:100%}
.skin9 .pg-l{animation:pgl 12s infinite}
.skin9 .pg-b{animation:pgb 12s infinite}
.skin9 .pg-c{animation:pgc 12s infinite;opacity:0}
@keyframes pgl{0%,16%{opacity:1;stroke-width:7}22%,36%{opacity:.55}42%,56%{opacity:.14}62%,76%{opacity:.5}82%,100%{opacity:.95;stroke-width:6}}
@keyframes pgb{0%,16%{opacity:.35}22%,100%{opacity:0}}
@keyframes pgc{0%,18%{opacity:0}22%,36%{opacity:.95}42%,100%{opacity:0}}
.skin9 .lb{position:absolute;left:0;right:0;bottom:-10px;text-align:center;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);opacity:0;animation:lbx 12s infinite}
.skin9 .d2{animation-delay:2.4s}.skin9 .d3{animation-delay:4.8s}.skin9 .d4{animation-delay:7.2s}.skin9 .d5{animation-delay:9.6s}
@keyframes lbx{0%{opacity:0}3%,17%{opacity:1}20%,100%{opacity:0}}
.info9{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;margin-top:22px;padding:16px 18px;border-radius:18px;background:var(--pearl);box-shadow:inset 0 0 0 1px var(--line)}
.info9 .ii{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--gold-soft);color:var(--gold);font-family:Georgia,serif;font-style:italic;font-weight:700}
.info9 p{font-size:14.5px;line-height:1.6}

/* le mot de Marlène : vidéo plus grande, bulle qui s'ouvre, reliée par un trait */
.mword{grid-template-columns:auto auto 1fr;gap:0;align-items:center;max-width:860px}
.mw-av{width:170px;height:170px;margin:0;display:grid;justify-items:center}
.mw-av video{border-radius:50%}
.mw-av::after{inset:-7px;border-radius:50%}
.mw-av figcaption{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);font-family:"Allura",cursive;font-size:22px;color:var(--gold);background:#fff;padding:0 10px;border-radius:999px}
.mw-link{width:60px;height:40px;align-self:start;margin-top:40px;opacity:0;transition:opacity .4s .2s}
.mword.pop .mw-link{opacity:1}
.mw-b{transform:scale(.6);transform-origin:0 30%;opacity:0;transition:transform .6s cubic-bezier(.2,1.5,.4,1),opacity .35s;box-shadow:0 18px 44px rgba(92,74,30,.18),inset 0 0 0 1.5px var(--gold-2);background:#fff;border-radius:26px 26px 26px 26px;min-height:96px}
.mword.pop .mw-b{transform:none;opacity:1}
.mw-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mw-snd{display:inline-flex;align-items:center;gap:6px;border:0;cursor:pointer;background:var(--pearl);border-radius:999px;padding:4px 10px 4px 8px;font-size:11px;color:var(--muted)}
.mw-snd i{width:14px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'%3E%3Cpath d='M2 7h4l6-5v16l-6-5H2z'/%3E%3Cpath d='M16 6l6 8M22 6l-6 8' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'%3E%3Cpath d='M2 7h4l6-5v16l-6-5H2z'/%3E%3Cpath d='M16 6l6 8M22 6l-6 8' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
.mw-snd[aria-pressed="true"]{background:var(--gold-soft);color:var(--ink)}
.mw-snd[aria-pressed="true"] i{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'%3E%3Cpath d='M2 7h4l6-5v16l-6-5H2z'/%3E%3Cpath d='M16 6q3 4 0 8M19 3q6 7 0 14' stroke='%23000' stroke-width='2' fill='none'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 20'%3E%3Cpath d='M2 7h4l6-5v16l-6-5H2z'/%3E%3Cpath d='M16 6q3 4 0 8M19 3q6 7 0 14' stroke='%23000' stroke-width='2' fill='none'/%3E%3C/svg%3E")}
.mword .mw-typ{padding:10px 0 4px}
.mword .mw-typ i{width:9px;height:9px}
.mw-typ span{font-size:14px;color:var(--gold);font-style:italic}

@media (max-width:760px){
  .pho9.three{grid-template-columns:1fr}
  .pho9 .pc.flipc{display:grid;grid-template-columns:96px 1fr;column-gap:12px;align-items:center}
  .flipc .flip9{grid-row:span 2}
  .flipc b{margin-top:0}
  .jj-ctl{margin-left:0;flex-wrap:wrap}
  .mword{grid-template-columns:1fr;justify-items:center}
  .mw-av{width:150px;height:150px}
  .mw-link{transform:rotate(80deg);margin:6px 0 -6px;height:34px}
  .mw-b{transform-origin:50% 0;justify-self:stretch}
  .ck-toast{left:10px;bottom:84px;width:220px}
}
@media (prefers-reduced-motion:reduce){
  .fl-card,.fl-no,.fl-yes,.skin9 .pg-l,.skin9 .pg-b,.skin9 .pg-c,.skin9 .lb{animation:none}
  .fl-yes,.skin9 .d5{opacity:1}
  .mw-b{transform:none;opacity:1}
}
.pho9 .flip9 .fme{background:none!important;box-shadow:none!important;width:auto!important;height:auto!important;border-radius:0!important}
.pho9 .flip9 .fl-no{background:#c9463d!important;color:#fff!important;box-shadow:0 6px 14px rgba(201,70,61,.35)!important;width:44px!important;height:44px!important}
.pho9 .flip9 .fl-yes{background:#3e8a57!important;color:#fff!important;box-shadow:0 6px 14px rgba(62,138,87,.35)!important;width:44px!important;height:44px!important}

/* ===================== v11 ===================== */
/* frise : la ligne (et son animation) passe SOUS les ronds, toujours opaques */
.fr{isolation:isolate}
.fr::before,.fr::after{z-index:0}
.fr li{position:relative;z-index:1}
.fr i{position:relative;z-index:2;background:#fff!important;opacity:1!important}
.fr li:not(.in) i{background:#fbf9f4!important}
.fr li:nth-child(5).cur i,.fr li:last-child.in i{background:var(--ink)!important}

/* checklist : sous-étapes de la partie 2 */
.tick8 .sub8{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px}
.tick8 .sub8 em{font-style:normal;font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.tick8 .sub8 em::before{content:"";width:12px;height:12px;border-radius:4px;box-shadow:inset 0 0 0 1.5px var(--gold-2);background:#fff}
.tick8 .sub8 em.on{color:var(--ink)}
.tick8 .sub8 em.on::before{background:var(--gold-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 6.2l2 2 4-4.4' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/10px no-repeat}
/* la mini-checklist apparaît en haut, sous le sommaire */
.ck-toast{left:auto;right:18px;top:calc(var(--th,120px) + 14px);bottom:auto;transform-origin:100% 0;transform:translateY(-12px) scale(.96)}
.ck-toast.on{transform:none}
.ck-toast li.sub{padding-left:14px;font-size:12px}

/* tes photos : trois grandes animations */
.ph10{display:grid;gap:18px}
.phr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:center;padding:22px;border-radius:26px;background:var(--pearl)}
.phr.rev .pha{order:2}
.pha{display:grid;place-items:center;min-height:240px;border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden}
.pht .n{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--gold-2);font-family:var(--display);font-weight:300;font-size:18px}
.pht>b{display:block;margin-top:12px;font-family:var(--display);font-size:clamp(17px,2vw,22px);font-weight:300;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.pht p{margin-top:8px;font-size:16px;line-height:1.65}
.pht .cad-l{margin-top:14px}
.light10 svg{display:block;width:100%;max-width:420px;height:auto}
.light10 .beam10{animation:beam10 5s ease-in-out infinite}
@keyframes beam10{0%,100%{opacity:.75}50%{opacity:1}}
.light10 .dust10 circle{animation:dust10 6s linear infinite}
.light10 .dust10 circle:nth-child(2){animation-delay:-2s}.light10 .dust10 circle:nth-child(3){animation-delay:-4s}.light10 .dust10 circle:nth-child(4){animation-delay:-1s}.light10 .dust10 circle:nth-child(5){animation-delay:-3s}
@keyframes dust10{0%{transform:translate(0,0);opacity:0}20%{opacity:.9}100%{transform:translate(30px,-40px);opacity:0}}
.light10 .tag10{animation:tag10 5s ease-in-out infinite}
@keyframes tag10{0%,20%{opacity:0;transform:translateY(8px)}35%,85%{opacity:1;transform:none}100%{opacity:0}}
.flip10 .flip9{transform:scale(2.1);margin:60px 0}
.cad10 .cad-ph svg{width:210px}
.ph-end{display:block;height:1px}

/* cicatrisation : le libellé tient sur une ligne, sa hauteur est réservée */
.skin9{width:240px;padding-bottom:26px}
.skin9 .lb{white-space:nowrap;bottom:0;font-size:9px;letter-spacing:.06em}

@media (max-width:760px){
  .phr{grid-template-columns:1fr;padding:14px;gap:14px}
  .phr.rev .pha{order:0}
  .pha{min-height:200px}
  .flip10 .flip9{transform:scale(1.7);margin:44px 0}
  .ck-toast{right:10px;top:calc(var(--th,110px) + 8px);width:210px}
}
@media (prefers-reduced-motion:reduce){.light10 .beam10,.light10 .dust10 circle,.light10 .tag10{animation:none}}

/* ===================== v12 : intro de l'institut ===================== */
html.ilock,html.ilock body{overflow:hidden}
.ii12{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:radial-gradient(110% 90% at 50% 42%,#fffdf8,var(--pearl));transition:opacity .6s ease,visibility .6s}
.ii12.done{opacity:0;visibility:hidden;pointer-events:none}
.ii12 .ii-stage{display:flex;flex-direction:column;align-items:center;gap:14px;padding:0 16px}
.ii12 .ii-svg{width:min(640px,92vw);height:auto;overflow:visible}
.ii12 .ii-sw{transform:rotate(0deg) scaleY(.4);transform-origin:0 0;opacity:0;transition:transform .6s cubic-bezier(.3,1.35,.5,1),opacity .3s}
.ii12.c .ii-sw{transform:rotate(var(--r));opacity:1}
.ii12.c .ii-sw:nth-child(2){transition-delay:.04s}.ii12.c .ii-sw:nth-child(3){transition-delay:.08s}.ii12.c .ii-sw:nth-child(4){transition-delay:.12s}.ii12.c .ii-sw:nth-child(5){transition-delay:.16s}
.ii12 .ii-fan>circle{opacity:0;transition:opacity .3s}.ii12.c .ii-fan>circle{opacity:1}
.ii12.v .ii-pick{transform:rotate(var(--r)) translateY(-14px);transition-delay:0s}
.ii12 .ii-mir{opacity:0;transform:translateY(10px) scale(.94);transform-box:fill-box;transform-origin:50% 60%;transition:opacity .45s ease,transform .6s cubic-bezier(.3,1.3,.5,1)}
.ii12.go .ii-mir{opacity:1;transform:none}
.ii12 .ii-m path{fill:none;stroke:#c9a45c;stroke-width:1.3;stroke-dasharray:3 4;opacity:0;transition:opacity .35s}
.ii12.go .ii-m path{opacity:.9;transition-delay:.3s}.ii12.go .ii-m path:nth-child(2){transition-delay:.38s}.ii12.go .ii-m path:nth-child(3){transition-delay:.46s}.ii12.go .ii-m path:nth-child(4){transition-delay:.54s}
.ii12 .ii-dots circle{fill:#c9a45c;opacity:0;transition:opacity .3s .55s}.ii12.go .ii-dots circle{opacity:1}
.ii12 .ii-p{fill:none;stroke:#1d1a17;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ii12 .ii-fill{fill:#6f4d34;opacity:0;transition:opacity .5s}
.ii12.f .ii-fill{opacity:.55}
.ii12 .ii-pen{opacity:0;transition:opacity .15s}.ii12 .ii-pen.on{opacity:1}
.ii12 .ii-hand{opacity:0;transform:translate(492px,198px) translateX(40px) scale(1.3);transition:opacity .45s ease,transform .6s cubic-bezier(.25,1,.4,1)}
.ii12.h .ii-hand{opacity:1;transform:translate(492px,198px) scale(1.3)}
.ii12 .ii-ok{opacity:0;transform:translate(470px,110px) scale(.3);transition:opacity .25s,transform .5s cubic-bezier(.3,1.7,.5,1)}
.ii12.v .ii-ok{opacity:1;transform:translate(470px,146px)}
.ii12 .ii-ck{stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset .35s ease .15s}
.ii12.v .ii-ck{stroke-dashoffset:0}
.ii12 .ii-ring{transform-box:fill-box;transform-origin:center;opacity:0}
.ii12.v .ii-ring{animation:iiRing .7s ease-out .2s}
@keyframes iiRing{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.6)}}
.ii12 .ii-t{text-align:center;opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease}
.ii12.t .ii-t{opacity:1;transform:none}
.ii12 .ii-t .big{font-family:var(--display);font-size:clamp(14px,2vw,19px);font-weight:600;letter-spacing:.32em;color:var(--ink)}
.ii12 .ii-t p{margin:8px 0 0;font-family:var(--display);font-size:clamp(11px,1.4vw,13px);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.ii12 .ii-skip{position:absolute;right:18px;bottom:18px;border:0;cursor:pointer;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;background:#fff;box-shadow:var(--sh-1);padding:9px 14px;border-radius:999px;color:var(--muted)}

/* ===================== v14 ===================== */
/* l'ancienne mini-checklist en pop-up : remplacée par la checklist qui suit la lecture */
.ck-toast{display:none!important}
/* revoir l'intro */
.parcours{position:relative}
.replay14{display:inline-flex;align-items:center;gap:6px;border:0;cursor:pointer;background:rgba(255,255,255,.7);box-shadow:inset 0 0 0 1px var(--line);border-radius:999px;padding:7px 12px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.replay14 svg{width:13px;height:13px}
.replay14:hover{color:var(--ink)}
.parcours>.wrap>.replay14{position:absolute;top:14px;right:16px;z-index:2}
.replay14.ft{background:none;box-shadow:none;padding:0;font:inherit;letter-spacing:0;text-transform:none;font-size:12px;text-decoration:underline;text-underline-offset:3px}

/* checklist : la liste (grande ou petite) */
.clg{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.clg-g{position:relative}
.clg-h{display:flex;align-items:center;gap:10px}
.clg-h .gn{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--gold-2);font-family:var(--display);font-size:13px;font-weight:500}
.clg-g.full .clg-h .gn{background:var(--gold-2);color:#fff}
.clg-h b{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.clg-h .cnt{margin-left:auto;font-family:var(--display);font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.06em}
.clg ul{list-style:none;margin:8px 0 0;padding:0 0 0 38px;display:grid;gap:2px}
.clg li[data-k] button{display:flex;align-items:flex-start;gap:10px;width:100%;border:0;background:none;cursor:pointer;text-align:left;padding:5px 6px;border-radius:10px;font-size:14.5px;line-height:1.4;color:var(--text)}
.clg li[data-k] button:hover{background:rgba(217,189,114,.12)}
.clg .bx{flex:none;display:grid;place-items:center;width:18px;height:18px;margin-top:1px;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--gold-2);transition:background .25s ease}
.clg .bx svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:12;stroke-dashoffset:12;transition:stroke-dashoffset .35s ease .1s}
.clg li.on .bx{background:var(--gold-2)}
.clg li.on .bx svg{stroke-dashoffset:0}
.clg li.on button{color:var(--ink)}
.clg li.just .bx{animation:clpop .55s cubic-bezier(.3,1.6,.5,1)}
@keyframes clpop{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:none}}
.clg.big{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 30px}
.cl-reset{margin-top:14px;border:0;background:none;cursor:pointer;font-size:12px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;padding:0}

/* étape 0 */
.cl0{margin:0 0 26px;padding:30px 32px;border-radius:32px;background:linear-gradient(160deg,#fff,var(--gold-soft));box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.cl0-h{display:flex;gap:20px;align-items:flex-start;margin-bottom:24px}
.cl0-n{flex:none;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--ink);color:var(--gold-2);font-family:var(--display);font-size:30px;font-weight:200}
.cl0 h2{font-size:clamp(22px,2.8vw,32px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;line-height:1.15}
.cl0 h2 b{font-weight:500;color:var(--gold)}
.cl0-h p{margin-top:8px;font-size:15.5px;max-width:60ch}
.cl0-f{margin-top:18px;font-size:13px;color:var(--muted)}
.cl0-f .mb{display:none}
@media (max-width:1359px){.cl0-f .dk{display:none}.cl0-f .mb{display:inline}}
#checklist .cl14{margin-top:18px;padding:22px 24px;border-radius:24px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}

/* la checklist qui suit : fixe sur le côté (grand écran), pastille repliable en bas (téléphone, écran étroit) */
.cl-dock{position:fixed;z-index:130;left:12px;bottom:12px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease,visibility .35s}
.cl-dock.on{opacity:1;visibility:visible;transform:none}
.cl-dock.wait{opacity:0!important}
.cl-dock.arrive{animation:clarr .6s cubic-bezier(.3,1.5,.5,1)}
@keyframes clarr{0%{transform:scale(.9)}100%{transform:none}}
.cl-ghost{position:fixed;z-index:131;pointer-events:none;background:linear-gradient(160deg,#fff,var(--gold-soft));box-shadow:var(--sh-2),inset 0 0 0 1.5px var(--gold-2);display:grid;place-items:center}
.cl-ghost b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.cl-pill{position:relative;display:flex;align-items:center;gap:10px;border:0;cursor:pointer;background:#fff;border-radius:999px;padding:7px 14px 7px 7px;box-shadow:0 10px 28px rgba(31,30,28,.18),inset 0 0 0 1px var(--line);text-align:left;max-width:calc(100vw - 220px)}
.cl-pill .ring{position:relative;flex:none;width:38px;height:38px}
.cl-pill .ring svg{width:38px;height:38px;transform:rotate(-90deg)}
.cl-pill .ring circle{fill:none;stroke:var(--gold-soft);stroke-width:3.4}
.cl-pill .ring .pr{stroke:var(--gold-2);stroke-dasharray:94.25;stroke-dashoffset:94.25;stroke-linecap:round;transition:stroke-dashoffset .6s ease}
.cl-pill .ring em{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:14px;color:var(--ink)}
.cl-pill .pt{display:grid;line-height:1.25}
.cl-pill .pt b{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.cl-pill .pt small{font-size:12px;color:var(--muted)}
.cl-pill .last{position:absolute;left:0;bottom:calc(100% + 8px);white-space:nowrap;max-width:min(260px,calc(100vw - 24px));overflow:hidden;text-overflow:ellipsis;background:var(--ink);color:#fff;font-size:12.5px;padding:7px 12px;border-radius:12px;box-shadow:var(--sh-1);opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
.cl-dock.bump .cl-pill .last{opacity:1;transform:none}
.cl-dock.bump .cl-pill .ring{animation:clarr .5s cubic-bezier(.3,1.5,.5,1)}
.cl-dock.open .cl-pill .last{opacity:0}
.cl-panel{display:none}
.cl-ph{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.cl-ph b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.cl-ph small{font-size:12px;color:var(--muted)}
.cl-x{margin-left:auto;border:0;background:var(--pearl);width:30px;height:30px;border-radius:50%;cursor:pointer;color:var(--ink)}
.cl-dock.open .cl-panel{display:block;position:absolute;left:0;bottom:calc(100% + 10px);width:min(340px,calc(100vw - 24px));max-height:min(70vh,560px);overflow:auto;background:#fff;border-radius:22px;padding:16px 16px 12px;box-shadow:0 20px 50px rgba(31,30,28,.22),inset 0 0 0 1px var(--line);animation:clup .3s ease}
@keyframes clup{from{opacity:0;transform:translateY(10px)}}
.clg.dock{gap:10px}
.clg.dock ul{padding-left:30px;margin-top:4px}
.clg.dock .clg-h .gn{width:22px;height:22px;font-size:11px}
.clg.dock .clg-h b{font-size:10.5px;letter-spacing:.12em}
.clg.dock li[data-k] button{font-size:13.5px;padding:4px 6px}
.clg.dock li.now button{background:rgba(217,189,114,.14)}
/* grand écran : fixe sur le côté gauche, toujours ouverte, compacte */
@media (min-width:1360px){
  .cl-dock{left:14px;bottom:auto;top:calc(var(--th,120px) + 24px);width:162px}
  .cl-pill{display:none}
  .cl-panel,.cl-dock.open .cl-panel{display:block;position:static;width:auto;max-height:calc(100vh - var(--th,120px) - 48px);overflow:auto;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:18px;padding:12px 10px 10px;box-shadow:0 10px 30px rgba(31,30,28,.12),inset 0 0 0 1px var(--line);animation:none;scrollbar-width:none}
  .cl-x{display:none}
  .cl-ph{margin:0 2px 8px;flex-wrap:wrap;gap:2px 8px}
  .cl-ph b{font-size:9.5px;letter-spacing:.16em}
  .cl-ph small{font-size:11px}
  .clg.dock{gap:6px}
  .clg.dock .clg-h{gap:7px}
  .clg.dock .clg-h b{font-size:9px;letter-spacing:.08em;line-height:1.25}
  .clg.dock .clg-h .cnt{font-size:9.5px}
  .clg.dock .clg-h .gn{width:20px;height:20px;font-size:10px}
  .clg.dock ul{padding-left:4px;margin-top:4px;display:none}
  .clg.dock .clg-g.cur ul,.clg.dock .clg-g.peek ul{display:grid;animation:clup .3s ease}
  .clg.dock li[data-k] button{font-size:12px;line-height:1.3;gap:7px;padding:3px 4px}
  .clg.dock .bx{width:14px;height:14px;border-radius:4px}
  .clg.dock .bx svg{width:10px;height:10px}
}
@media (max-width:760px){
  .cl0{padding:22px 18px;border-radius:26px}
  .cl0-h{gap:14px}
  .cl0-n{width:48px;height:48px;font-size:22px}
  .clg.big{grid-template-columns:1fr;gap:18px}
  .clg ul{padding-left:30px}
  #checklist .cl14{padding:16px 12px}
  .parcours>.wrap>.replay14{top:10px;right:10px}
}
@media (prefers-reduced-motion:reduce){.cl-dock,.cl-dock.arrive,.cl-dock.bump .cl-pill .ring,.clg li.just .bx{animation:none;transition:none}}

/* tes photos : deux sous-étapes, deux zooms (sourcils puis bouche) */
.cad-face{animation:cad14 14s var(--ease) infinite}
@keyframes cad14{0%,20%{transform:none}26%,46%{transform:translate(0,36px) scale(2.3)}52%,70%{transform:none}76%,94%{transform:translate(0,-27px) scale(2.3)}100%{transform:none}}
.cad14 li{animation:cad14a 14s infinite!important}
.cad14 .c2{animation-name:cad14b!important}
.cad14 li span{display:block}
@keyframes cad14a{0%,22%{opacity:1}25%,49%{opacity:.35}52%,72%{opacity:1}75%,100%{opacity:.35}}
@keyframes cad14b{0%,22%{opacity:.35}25%,49%{opacity:1}52%,72%{opacity:.35}75%,97%{opacity:1}100%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.cad14 li{animation:none!important;opacity:1}}

/* le mot de Marlène : aéré */
.mword .mw-t{gap:12px}

/* ===================== v15 ===================== */
/* plus de checklist : ni pastille, ni étape 0 */
.cl-dock,.cl0{display:none!important}
/* l'encart guide, juste après le hero */
.guide15{padding:6px 0 30px}
.g15{display:flex;align-items:center;gap:30px;max-width:900px;margin:0 auto;padding:20px 28px;border-radius:28px;background:linear-gradient(120deg,#fff,var(--gold-soft));box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.g15 p{font-size:17px;line-height:1.6;color:var(--ink)}
.g15 p b{font-weight:600}
.g15-ill{flex:none;width:300px;height:auto;overflow:visible}
.g15-l{stroke:#e6dcc6;stroke-width:2;fill:none}
.g15-lf{stroke:var(--gold-2);stroke-width:2.4;fill:none;stroke-dasharray:232;stroke-dashoffset:232;animation:g15lf 8s ease-in-out infinite}
.g15-s circle{fill:#fff;stroke:var(--gold-2);stroke-width:1.6}
.g15-s text{font-family:var(--display);font-size:12px;font-weight:500;fill:var(--ink);text-anchor:middle}
.g15-m{animation:g15m 8s cubic-bezier(.5,0,.3,1) infinite}
.g15-mi .rg{fill:none;stroke:rgba(217,189,114,.25);stroke-width:3}
.g15-mi .rf{fill:none;stroke:var(--gold);stroke-width:3;stroke-linecap:round;stroke-dasharray:144.5;stroke-dashoffset:144.5;transform:rotate(-90deg);animation:g15rf 8s linear infinite}
.g15-mi .dt{fill:none}
.g15-sms{opacity:0;animation:g15sms 8s ease infinite}
.g15-sms rect,.g15-sms path{fill:var(--ink);stroke:none}
.g15-sms .ck{fill:none;stroke:var(--gold-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.g15-e text{animation:g15e 8s ease infinite}
@keyframes g15m{0%,14%{transform:translate(34px,38px)}22%,36%{transform:translate(111px,38px)}44%,58%{transform:translate(188px,38px)}66%,92%{transform:translate(266px,38px)}100%{transform:translate(34px,38px)}}
@keyframes g15rf{0%{stroke-dashoffset:144.5}13%{stroke-dashoffset:0}14%,22%{stroke-dashoffset:144.5}35%{stroke-dashoffset:0}36%,44%{stroke-dashoffset:144.5}57%{stroke-dashoffset:0}58%,66%{stroke-dashoffset:144.5}78%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:144.5}}
@keyframes g15lf{0%,14%{stroke-dashoffset:232}22%,36%{stroke-dashoffset:155}44%,58%{stroke-dashoffset:78}66%,92%{stroke-dashoffset:0}100%{stroke-dashoffset:232}}
@keyframes g15sms{0%,76%{opacity:0;transform:translate(266px,38px) scale(.6)}80%,94%{opacity:1;transform:translate(266px,38px)}100%{opacity:0;transform:translate(266px,38px)}}
@keyframes g15e{0%,76%{opacity:1}80%,94%{opacity:0}100%{opacity:1}}
@media (max-width:760px){.g15{flex-direction:column;gap:14px;padding:18px 16px;text-align:center}.g15-ill{width:min(290px,100%)}.g15 p{font-size:15.5px}.guide15{padding:0 0 22px}}
@media (prefers-reduced-motion:reduce){.g15-lf{stroke-dashoffset:0}.g15-m{transform:translate(266px,38px)}.g15-mi .rf{stroke-dashoffset:0}.g15-sms{opacity:1;transform:translate(266px,38px)}.g15-e text{opacity:0}}

/* le cercle guide : anneau intérieur (étape en cours) et anneau extérieur en 4 segments */
.bk-badge.g15b{position:sticky}
.bk-badge.g15b>small{margin-top:22px;position:relative;z-index:1}
.bk-badge.g15b.trav8>small{margin-top:14px}
.gr15{position:absolute;left:50%;top:-26px;width:116px;height:116px;margin-left:-58px;overflow:visible;pointer-events:none;z-index:0}
.bk-badge.g15b>em,.bk-badge.g15b>.ico{position:relative;z-index:1}
.gr15 circle{fill:none}
.gr15 .bg{fill:#fff}
.gr15 .t{stroke:#efe6cf;stroke-width:4}
.gr15 .p{stroke:var(--gold-2);stroke-width:4.4;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.gr15 .s0{stroke:#e6dcc4;stroke-width:4;stroke-linecap:round}
.gr15 .s1{stroke:var(--gold);stroke-width:4.6;stroke-linecap:round;opacity:0;transition:opacity .4s ease}
.gr15 .s1.on{opacity:1}
.gr15 .s1.cur{opacity:.35;animation:g15cur 2.2s ease-in-out infinite}
@keyframes g15cur{50%{opacity:.7}}
.bk-badge.full .gr15 .p{stroke:var(--gold)}
.ck15{position:absolute;left:50%;top:0;width:64px;height:64px;margin-left:-32px;border-radius:50%;display:grid;place-items:center;z-index:2;background:var(--gold-2);color:#fff;font-size:30px;font-weight:600;opacity:0;transform:scale(.4);pointer-events:none}
.bk-badge.win .ck15{animation:g15ck 2.4s cubic-bezier(.3,1.5,.5,1) forwards}
@keyframes g15ck{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.12)}25%,75%{opacity:1;transform:none}100%{opacity:0;transform:none}}
.bk-badge.win .gr15 .s1.on{animation:g15seg 1.2s ease 2}
@keyframes g15seg{50%{stroke:#f1dc9f;stroke-width:6}}
.burst15{position:absolute;left:50%;top:32px;width:0;height:0;z-index:0;pointer-events:none}
.burst15 i{position:absolute;left:-3px;top:-3px;width:6px;height:6px;border-radius:50%;background:var(--gold-2);opacity:0}
.bk-badge.win .burst15 i{animation:g15b .9s ease-out forwards}
.burst15 i:nth-child(2n){background:var(--gold);width:4px;height:4px}
.burst15 i:nth-child(1){--a:0deg}.burst15 i:nth-child(2){--a:36deg}.burst15 i:nth-child(3){--a:72deg}.burst15 i:nth-child(4){--a:108deg}.burst15 i:nth-child(5){--a:144deg}.burst15 i:nth-child(6){--a:180deg}.burst15 i:nth-child(7){--a:216deg}.burst15 i:nth-child(8){--a:252deg}.burst15 i:nth-child(9){--a:288deg}.burst15 i:nth-child(10){--a:324deg}
@keyframes g15b{0%{opacity:1;transform:rotate(var(--a)) translateY(-30px)}100%{opacity:0;transform:rotate(var(--a)) translateY(-66px) scale(.4)}}
.win15{position:fixed;left:50%;top:calc(var(--th,120px) + 14px);z-index:180;display:flex;align-items:center;gap:14px;padding:10px 20px 10px 10px;border-radius:999px;background:var(--ink);color:#fff;box-shadow:0 18px 40px rgba(31,30,28,.28);opacity:0;visibility:hidden;transform:translate(-50%,-14px) scale(.96);transition:opacity .35s ease,transform .45s cubic-bezier(.3,1.5,.5,1),visibility .35s;width:max-content;max-width:calc(100vw - 24px)}
.win15.on{opacity:1;visibility:visible;transform:translate(-50%,0)}
.win15 .wr{position:relative;flex:none;width:46px;height:46px}
.win15 .wr svg{width:46px;height:46px}
.win15 .wr circle{fill:none}
.win15 .wr .s0{stroke:rgba(255,255,255,.18);stroke-width:5}
.win15 .wr .s1{stroke:var(--gold-2);stroke-width:5;stroke-linecap:round;opacity:0}
.win15 .wr .s1.on{opacity:1}
.win15.on .wr .s1.now{animation:g15now .8s ease .15s both}
@keyframes g15now{0%{opacity:0;stroke:#fff}60%{opacity:1;stroke:#fff5d6}100%{opacity:1}}
.win15 .wr b{position:absolute;inset:0;display:grid;place-items:center;color:var(--gold-2);font-size:18px}
.win15 .wt{display:grid;line-height:1.3}
.win15 .wt b{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.win15 .wt small{font-size:13px;color:#e8dcc0}
.cf15{position:fixed;left:0;top:0;width:100%;z-index:179;pointer-events:none}
@media (max-width:760px){.gr15{width:72px;height:72px;margin-left:-36px;top:-16px}.ck15{width:40px;height:40px;margin-left:-20px;font-size:20px}.burst15{top:20px}.win15{top:calc(var(--th,110px) + 10px);padding:8px 16px 8px 8px}.win15 .wt b{font-size:11px}}
@media (prefers-reduced-motion:reduce){.gr15 .s1.cur,.bk-badge.win .ck15,.bk-badge.win .burst15 i,.bk-badge.win .gr15 .s1.on{animation:none}.gr15 .p{transition:none}}

/* le mot de Marlène : signature aérée, trait relié à la vidéo */
.mword{position:relative}
.mword>.mw-link{display:none}
.mw-link15{position:absolute;left:0;top:0;pointer-events:none;overflow:visible;opacity:0;transition:opacity .4s .2s;z-index:0}
.mword.pop .mw-link15{opacity:1}
.mw-link15 path{fill:none;stroke:var(--gold-2);stroke-width:2;stroke-dasharray:4 5;stroke-linecap:round}
.mw-link15 circle{fill:var(--gold-2)}
.mw-b{position:relative;z-index:1}
.mw-sig{display:block;margin-top:26px}
@media (min-width:761px){.mword{grid-template-columns:auto 1fr;column-gap:70px}.mw-av{align-self:start;margin-top:30px}}
@media (max-width:760px){.mword .mw-b{margin-top:40px}}

/* ===================== v16 : avatars réalistes ===================== */
.zt7 .viewer.img{width:min(360px,100%);background:#ece8e1}
.viewer.img .view.face{aspect-ratio:var(--ar,320 / 545)}
.viewer.img #facesvg{display:none}
.viewer.img .view.face>.av-im,.viewer.img .view.face>.av-er,.viewer.img .view.face>.av-fx{position:absolute;inset:0;width:100%;height:100%;border-radius:20px}
.av-im{object-fit:cover;display:block}
.av-er{pointer-events:none}
.av-fx{pointer-events:none;mix-blend-mode:multiply}
.viewer.img .hot{z-index:2}
.z7-zoom .zst{position:absolute;left:0;top:0;transform-origin:0 0;transition:transform .5s var(--ease),width .5s var(--ease),height .5s var(--ease)}
.z7-zoom .zst>*{position:absolute;inset:0;width:100%!important;height:100%!important}
.z7-zoom .zst .av-im{object-fit:fill}
@media (prefers-reduced-motion:reduce){.z7-zoom .zst{transition:none}}
.av-lab{position:absolute;left:12px;top:12px;z-index:2;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;background:rgba(31,30,28,.72);color:#fff;padding:5px 9px;border-radius:999px;pointer-events:none}

/* ===================== v17 : vidéos de Marlène, bon cadeau ===================== */
.vbox{position:relative;border-radius:22px;overflow:hidden;background:#1f1e1c;box-shadow:var(--sh-2)}
.vbox video{display:block;width:100%;height:100%;object-fit:cover}
.vbox.r45,.vbox[data-ar="4x5"]{aspect-ratio:4/5}
.vbox.r169m45,.vbox[data-ar="16x9"]{aspect-ratio:16/9}
.vbox[data-ar="9x16"]{aspect-ratio:9/16}
@media (max-width:760px){.vbox.r169m45{aspect-ratio:4/5}}
/* la praticienne */
.me-ph17{position:relative;margin:0;justify-self:center;width:min(360px,100%)}
.me-ph17 .vbox{border-radius:28px}
.me-ph17 .me-por{position:absolute;left:-18px;bottom:-22px;width:118px;height:118px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff,var(--gold-soft));box-shadow:0 0 0 5px #fff,0 0 0 6.5px var(--gold-2),var(--sh-2)}
.me-ph17 .me-por img{width:100%;height:100%;object-fit:cover;object-position:50% 8%}
.me-ph17 figcaption{position:absolute;right:12px;top:12px;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#fff;background:rgba(31,30,28,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:6px 10px;border-radius:999px}
@media (max-width:760px){.me-ph17{width:min(300px,86%)}.me-ph17 .me-por{width:90px;height:90px;left:-10px;bottom:-16px}}
/* zones : la vidéo de la méthode */
.mv17{margin:22px 0 6px;display:grid;gap:12px}
.mv17 .mv-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.mv17 .mv-h b{font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.mv17 .mv-h small{font-size:12.5px;color:var(--muted)}
.mv17 .vbox{max-width:760px}
.mv-ph{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mv-ph figure,.mv-img{margin:0;border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--sh-1)}
.mv-ph img{width:100%;height:160px;object-fit:cover;display:block}
.mv-img{max-width:520px}.mv-img img{width:100%;height:auto;display:block}
@media (max-width:760px){.mv-ph{grid-template-columns:1fr 1fr}.mv-ph img{height:120px}}
/* jour J : le rendez-vous */
.rdv17{margin:0 0 24px}
.rdv17 .vbox{max-width:760px;margin:0 auto}
.rdv17 figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;max-width:760px;margin:12px auto 0;font-size:15px}
.rdv17 .rdv-all{padding:12px 18px;font-size:10px;gap:8px}
.rdv17 .rdv-all svg{width:14px;height:14px}
.dlg17{border:0;padding:0;background:transparent;max-width:min(96vw,1100px);width:100%;overflow:visible}
.dlg17::backdrop{background:rgba(20,18,16,.82)}
.dlg17 .dlg-v{width:100%;max-height:86vh;margin:0 auto}
.dlg17 .dlg-v[data-ar="9x16"]{width:auto;height:min(86vh,calc(92vw * 16 / 9));aspect-ratio:9/16}
.dlg17 video{object-fit:contain;background:#000}
.dlg17 .dlg-x{position:absolute;right:-6px;top:-44px;width:38px;height:38px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:22px;cursor:pointer;box-shadow:var(--sh-1)}
/* bon cadeau */
.bc17{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:34px;align-items:start}
.bc-vis{display:grid;gap:12px}
.bc-ph{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bc-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:16px;box-shadow:var(--sh-1);display:block}
.bc-l{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.bc-l li{position:relative;padding-left:26px;font-size:16px;line-height:1.6}
.bc-l li::before{content:"";position:absolute;left:4px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--gold-2);box-shadow:0 0 0 4px var(--gold-soft)}
.bc-note{margin-top:18px;padding:14px 16px;border-radius:16px;background:var(--gold-soft);font-size:14.5px;line-height:1.6}
.bc-pay,.bc-val{margin-top:12px;font-size:14.5px}
.bc-val .tbc{color:var(--muted);font-style:italic;background:var(--pearl);padding:2px 8px;border-radius:8px;box-shadow:inset 0 0 0 1px var(--line)}
.bc-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;align-items:center}
.bc-act .btn{padding:16px 22px}
.bc-num{flex-basis:100%}
@media (max-width:760px){.bc17{grid-template-columns:1fr;gap:20px}.bc-act .btn{width:100%}}

/* ===================== v19 ===================== */
.mv-soon{display:grid;place-items:center;align-content:center;gap:6px;text-align:center;max-width:760px;aspect-ratio:16/5;border-radius:22px;background:repeating-linear-gradient(45deg,var(--pearl) 0 14px,var(--pearl-2) 14px 28px);box-shadow:inset 0 0 0 1.5px var(--gold-soft);padding:18px}
.mv-soon span{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.mv-soon small{font-size:13px;color:var(--muted)}
.bc-ex{margin-top:8px;font-size:13px;color:var(--muted)}
@media (max-width:760px){.mv-soon{aspect-ratio:auto;min-height:110px}}

/* ===================== v20 ===================== */
/* plus de gros numéro sticky ni d'anneaux sur le rail, plus de bandeau « étape terminée » */
.bk-badge,.win15,.cf15{display:none!important}
/* titres d'étape : rond blanc, petit logo doré, numéro en petit */
.bk-n::before,.bk.open .bk-n::before{background:#fff!important;box-shadow:0 0 0 1.5px var(--gold-2),0 10px 24px rgba(92,74,30,.14)!important}
.bk-n .lg{position:relative;width:46%;height:46%;background:var(--gold)}
.bk-n em,.bk.open .bk-n em{position:absolute!important;right:-2px;top:-2px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px!important;font-weight:500!important;letter-spacing:0!important;color:var(--gold-2)!important;background:var(--ink);box-shadow:0 0 0 3px #fff}
.bk.done .bk-n::after{right:-2px;bottom:-2px}
@media (max-width:760px){.bk-n em,.bk.open .bk-n em{width:22px;height:22px;font-size:11px!important}}
/* le suivi de lecture : 4 ronds collés à gauche */
.trk20{position:fixed;z-index:120;left:18px;top:50%;transform:translate(-8px,-50%);display:flex;flex-direction:column;align-items:center;gap:0;padding:12px 8px;border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 8px 26px rgba(31,30,28,.1),inset 0 0 0 1px var(--line);opacity:0;visibility:hidden;transition:opacity .35s ease,transform .35s ease,visibility .35s}
.trk20.on{opacity:1;visibility:visible;transform:translate(0,-50%)}
.trk-s,.trk-c{position:relative;border:0;background:none;padding:0;cursor:pointer;width:34px;height:34px;display:grid;place-items:center;color:var(--ink)}
.trk-s .rg{position:absolute;inset:0;width:34px;height:34px;transform:rotate(-90deg)}
.trk-s .rg circle{fill:#fff;stroke-width:3}
.trk-s .t{stroke:#ece4d0}
.trk-s .p{fill:none!important;stroke:var(--gold-2);stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.trk-s .n{position:relative;font-family:var(--display);font-size:11px;font-weight:600;color:var(--muted);transition:opacity .25s}
.trk-s.cur .n{color:var(--ink)}
.trk-s .ck{position:absolute;inset:7px;width:20px;height:20px;border-radius:50%;background:var(--gold-2);opacity:0;transform:scale(.4);transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1)}
.trk-s .ck path{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:18;transition:stroke-dashoffset .35s ease .15s}
.trk-s.ok .ck{opacity:1;transform:none}.trk-s.ok .ck path{stroke-dashoffset:0}.trk-s.ok .n{opacity:0}
.trk-s.ok .p{stroke:var(--gold)}
.trk-s.pop{animation:trkpop .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes trkpop{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.trk-s.pop::after{content:"";position:absolute;inset:-4px;border-radius:50%;box-shadow:0 0 0 2px var(--gold-2);animation:trkring .8s ease-out forwards}
@keyframes trkring{from{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.8)}}
.trk-s em,.trk-c em{position:absolute;left:calc(100% + 10px);top:50%;transform:translate(-4px,-50%);white-space:nowrap;font-style:normal;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:#fff;padding:5px 9px;border-radius:999px;box-shadow:var(--sh-1);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.trk-s:hover em,.trk-s:focus-visible em,.trk-s.cur em,.trk-c:hover em,.trk20.all .trk-c em{opacity:1;transform:translate(0,-50%)}
.trk-l{display:block;width:2px;height:14px;margin:2px 0;background:#ece4d0;border-radius:2px;overflow:hidden}
.trk-l b{display:block;width:100%;height:100%;background:var(--gold-2);transform:scaleY(var(--f,0));transform-origin:0 0;transition:transform .4s ease}
.trk-c{border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.5px #ece4d0;color:#c9bfa8}
.trk-c .bb{width:18px;height:18px}
.trk20.all .trk-c{background:var(--ink);color:var(--gold-2);box-shadow:0 0 0 3px rgba(217,189,114,.35)}
.trk-c.pop{animation:trkpop .8s cubic-bezier(.3,1.6,.5,1)}
/* écran étroit et téléphone : une fine barre sous le sommaire */
@media (max-width:1240px){
  .trk20{left:50%;top:calc(var(--th,110px) + 6px);transform:translate(-50%,-6px);flex-direction:row;padding:4px 10px;gap:0}
  .trk20.on{transform:translate(-50%,0)}
  .trk-s,.trk-c{width:26px;height:26px}.trk-s .rg{width:26px;height:26px}.trk-s .ck{inset:5px;width:16px;height:16px}.trk-c .bb{width:15px;height:15px}
  .trk-s .n{font-size:10px}
  .trk-l{width:18px;height:2px;margin:0 3px}.trk-l b{transform:scaleX(var(--f,0))}
  .trk-s em{display:none}
  .trk-c em{left:calc(100% + 6px);font-size:8.5px;padding:4px 7px}
  .trk20:not(.all) .trk-c em{display:none}
}
@media (prefers-reduced-motion:reduce){.trk-s.pop,.trk-c.pop,.trk-s.pop::after{animation:none}}
/* la praticienne : ombre douce */
.me-ph17.w20{width:min(460px,100%)}
.me-ph17.w20 .vbox{box-shadow:0 2px 6px rgba(92,74,30,.08),0 24px 60px rgba(92,74,30,.22),0 0 0 6px #fff,0 0 0 7px var(--gold-soft)}
@media (max-width:760px){.me-ph17.w20{width:min(320px,88%)}}
/* zones et méthodes : les photos et vidéos de la technique (pas de simulation dessinée pour l'instant) */
#zZoom{display:none!important}
.z7-grid{grid-template-columns:1fr!important}
.av-lab{display:none}.lay .av-lab{display:block}
/* bon cadeau : même chemin que tout le monde */
.bc-path{margin-top:18px;font-size:15px;line-height:1.6}
.bc-path ol{margin:8px 0 0;padding-left:22px;display:grid;gap:4px}
.bc-path li::marker{color:var(--gold);font-weight:600}
/* tout à la fin : Booksy */
.bk20{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-top:18px;padding:20px 24px;border-radius:24px;background:linear-gradient(120deg,#fff,var(--gold-soft));box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.bk20-i{width:48px;height:48px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--gold);box-shadow:var(--sh-1)}
.bk20-i svg{width:24px;height:24px}
.bk20 b{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.bk20 p{margin-top:4px;font-size:15px}
.bk20 .btn{padding:16px 24px}
.bk20 .btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.bk20-todo{grid-column:1/-1;font-size:12px;color:var(--muted);font-style:italic}
@media (max-width:760px){.bk20{grid-template-columns:auto 1fr}.bk20 .btn{grid-column:1/-1;width:100%}}
/* jour J : téléphone + texte + frise */
.jv20{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px 40px;align-items:center;margin:0 auto 28px;max-width:820px}
.jv-ph{justify-self:center}
.jv-frame{position:relative;width:250px;aspect-ratio:9/19.2;border-radius:38px;background:#111;padding:11px;box-shadow:0 0 0 2px #2c2a27,0 26px 60px rgba(31,30,28,.28)}
.jv-frame video{width:100%;height:100%;object-fit:cover;border-radius:28px;display:block;background:#1f1e1c}
.jv-notch{position:absolute;left:50%;top:18px;width:74px;height:20px;margin-left:-37px;border-radius:12px;background:#111}
.jv-txt{align-self:center}
.jv-k{font-family:var(--display);font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.jv-txt h4{margin:8px 0 0;font-family:var(--display);font-size:clamp(20px,2.4vw,28px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.jv-txt h4 b{font-weight:500}
.jv-txt p{margin-top:10px;font-size:16px;line-height:1.65;min-height:5.2em}
.jv20.swp .jv-txt h4,.jv20.swp .jv-txt p{animation:jvsw .45s ease}
@keyframes jvsw{from{opacity:0;transform:translateY(6px)}}
.jv-pp{margin-top:14px;display:inline-flex;align-items:center;gap:8px;border:0;cursor:pointer;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);border-radius:999px;padding:9px 14px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.jv-pp i{width:10px;height:10px;display:block}
.jv-pp .ic-pause{border-left:3px solid var(--ink);border-right:3px solid var(--ink);width:10px}
.jv-pp .ic-play{display:none;border-left:9px solid var(--ink);border-top:5px solid transparent;border-bottom:5px solid transparent;width:0;height:0}
.jv-pp.paused .ic-pause{display:none}.jv-pp.paused .ic-play{display:block}
.jv-bar{grid-column:1/-1;position:relative;height:44px;margin-top:4px}
.jv-bar::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;border-radius:4px;background:#ece4d0}
.jv-fill{position:absolute;left:0;right:0;top:9px;height:4px;border-radius:4px;background:var(--gold-2);transform:scaleX(0);transform-origin:0 50%}
.jv-m{position:absolute;top:0;height:44px;border:0;background:none;cursor:pointer;padding:0}
.jv-m::before{content:"";position:absolute;left:0;top:5px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px #ddd1b4}
.jv-m.past::before,.jv-m.on::before{box-shadow:inset 0 0 0 2px var(--gold-2);background:var(--gold-2)}
.jv-m.on::before{background:#fff;box-shadow:inset 0 0 0 3px var(--gold);transform:scale(1.25)}
.jv-m span{position:absolute;left:0;top:22px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.jv-m.on span{color:var(--ink)}
@media (max-width:760px){
  .jv20{grid-template-columns:1fr;gap:14px}
  .jv-frame{width:200px}
  .jv-txt{text-align:center}.jv-txt p{min-height:6.5em}
  .jv-m span{display:none}.jv-m.on span{display:block;left:50%;transform:translateX(-30%)}
}
/* cicatrisation : emplacements par étape */
.cic20{margin-top:18px;display:grid;gap:14px;justify-items:center}
.cic-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;width:100%}
.cic-it{margin:0;border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--sh-1);text-align:center}
.cic-it img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.cic-it.soon span{display:grid;place-items:center;aspect-ratio:1;font-size:12px;color:var(--muted);background:var(--pearl)}
.cic-it figcaption{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:6px 4px;color:var(--ink)}
@media (max-width:760px){.cic-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:761px){.me-grid:has(.w20){grid-template-columns:1.1fr 1fr}}
@media (max-width:1240px){.trk-c em{left:auto;right:-4px;top:calc(100% + 14px);transform:none}.trk20.all .trk-c em{transform:none}}

/* ===================== v21 ===================== */
/* plus de marqueurs noirs sur les titres d'étape */
.bk-n em,.bk.open .bk-n em{background:#fff!important;color:var(--gold)!important;box-shadow:0 0 0 1.5px var(--gold-2)!important}
.bk.done .bk-n::after{background-color:var(--gold-2)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;box-shadow:0 0 0 3px #fff}
.trk20{display:none!important}
/* le suivi : les ronds de l'encadré, en compact, collés à gauche */
.gt21{position:fixed;z-index:120;left:20px;top:50%;transform:translate(-10px,-50%);display:flex;flex-direction:column;align-items:center;padding:12px 7px;border-radius:999px;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 10px 30px rgba(31,30,28,.1),inset 0 0 0 1px var(--line);opacity:0;visibility:hidden;transition:opacity .35s ease,transform .35s ease,visibility .35s}
.gt21.on{opacity:1;visibility:visible;transform:translate(0,-50%)}
.gt21.wait{opacity:0!important}
.gt21.arrive{animation:gtarr .6s cubic-bezier(.3,1.5,.5,1)}
@keyframes gtarr{0%{transform:translate(0,-50%) scale(.85)}100%{transform:translate(0,-50%)}}
.gt-ghost{position:fixed;z-index:121;pointer-events:none;transform-origin:50% 50%}
.gt-s,.gt-c{position:relative;border:0;background:none;padding:0;cursor:pointer;width:38px;height:38px;display:grid;place-items:center}
.gt-s .rg{position:absolute;inset:0;width:38px;height:38px;transform:rotate(-90deg);overflow:visible}
.gt-s .bg{fill:#fff;stroke:var(--gold-2);stroke-width:1.6}
.gt-s .p{fill:none;stroke:var(--gold);stroke-width:2.8;stroke-linecap:round;transition:stroke-dashoffset .2s linear}
.gt-s .n{position:relative;font-family:var(--display);font-size:12px;font-weight:500;color:var(--ink);transition:opacity .25s}
.gt-s .ck{position:absolute;left:9px;top:9px;width:20px;height:20px;border-radius:50%;background:var(--gold-2);opacity:0;transform:scale(.4);transition:opacity .25s,transform .35s cubic-bezier(.3,1.6,.5,1)}
.gt-s .ck path{fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18;stroke-dashoffset:18;transition:stroke-dashoffset .35s ease .15s}
.gt-s.ok .ck{opacity:1;transform:none}.gt-s.ok .ck path{stroke-dashoffset:0}.gt-s.ok .n{opacity:0}
.gt-s.pop{animation:trkpop .7s cubic-bezier(.3,1.6,.5,1)}
.gt-s.pop::after{content:"";position:absolute;inset:-3px;border-radius:50%;box-shadow:0 0 0 2px var(--gold-2);animation:trkring .8s ease-out forwards}
@keyframes trkpop{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes trkring{from{opacity:1;transform:scale(.8)}to{opacity:0;transform:scale(1.8)}}
.gt-s em,.gt-c em{position:absolute;left:calc(100% + 10px);top:50%;transform:translate(-4px,-50%);white-space:nowrap;font-style:normal;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:#fff;padding:5px 9px;border-radius:999px;box-shadow:var(--sh-1);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.gt-s:hover em,.gt-s.cur em,.gt-c:hover em,.gt21.all .gt-c em{opacity:1;transform:translate(0,-50%)}
.gt-l{display:block;width:2px;height:12px;margin:1px 0;background:#e6dcc6;border-radius:2px;overflow:hidden}
.gt-l b{display:block;width:100%;height:100%;background:var(--gold-2);transform:scaleY(var(--f,0));transform-origin:0 0;transition:transform .4s ease}
.gt-c{border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1.6px #e6dcc6;color:#c9bfa8}
.gt-c .bb{width:18px;height:18px}
.gt21.all .gt-c{background:var(--ink);color:var(--gold-2);box-shadow:0 0 0 3px rgba(217,189,114,.35)}
.gt-c.pop{animation:trkpop .8s cubic-bezier(.3,1.6,.5,1)}
@media (max-width:1240px){
  .gt21{left:50%;top:calc(var(--th,110px) + 6px);transform:translate(-50%,-6px);flex-direction:row;padding:4px 10px}
  .gt21.on{transform:translate(-50%,0)}
  .gt21.arrive{animation:none}
  .gt-s,.gt-c{width:30px;height:30px}.gt-s .rg{width:30px;height:30px}.gt-s .ck{left:6px;top:6px;width:18px;height:18px}.gt-c .bb{width:15px;height:15px}
  .gt-s .n{font-size:11px}
  .gt-l{width:16px;height:2px;margin:0 2px}.gt-l b{transform:scaleX(var(--f,0))}
  .gt-s em{display:none}
  .gt-c em{left:auto;right:-4px;top:calc(100% + 14px);transform:none!important;font-size:8.5px;padding:4px 7px}
  .gt21:not(.all) .gt-c em{display:none}
}
@media (prefers-reduced-motion:reduce){.gt-s.pop,.gt-c.pop,.gt-s.pop::after,.gt21.arrive{animation:none}}
/* zones : le portrait glisse à gauche, les fiches à droite */
.zt7 .z7-h,#zTech,.zt7 .z7-grid,#mVid,#car{display:none!important}
.zt7:not(.zsel) .zc21{display:none}
.zt7:not(.zsel) .z7-meth{border-top:0;padding-top:0}
.zt7.zsel{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:34px}
.zt7.zsel .z7-top{position:sticky;top:calc(var(--th,120px) + 16px);animation:zslide .6s var(--ease)}
.zt7.zsel .z7-meth{border-top:0;padding-top:0}
@keyframes zslide{from{transform:translateX(35%);opacity:.6}}
.zc21{display:grid;gap:18px}
.zc-h{display:grid;gap:4px}
.zc-h b{font-family:var(--display);font-size:clamp(18px,2vw,24px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.zc{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;padding:18px;border-radius:26px;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);animation:tlin .5s var(--ease) both}
.zc:nth-child(3){animation-delay:.08s}.zc:nth-child(4){animation-delay:.16s}.zc:nth-child(5){animation-delay:.24s}
.zc-vis{display:grid;gap:10px;align-content:start}
.zc-ill{margin:0;position:relative;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff,var(--pearl-2));aspect-ratio:16/9}
.zc-ill .zc-draw{display:block;width:100%;height:100%}
.zc-ill figcaption,.zc-tag{position:absolute;left:8px;top:8px;font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;background:rgba(31,30,28,.62);color:#fff;padding:4px 8px;border-radius:999px}
.zc-med{position:relative}
.zc-med .vbox,.nm-v .vbox{border-radius:16px;box-shadow:none}
@media (max-width:760px){.zc-med .vbox.r169m45,.nm-v .vbox.r169m45{aspect-ratio:16/9}}
.zc-b h5{margin:0;font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.zc-b h5 small,.nm-b h5 small{font-size:11px;font-weight:500;letter-spacing:.08em;color:var(--gold);text-transform:none}
.zc-what{margin-top:8px;font-size:15px;line-height:1.55}
.zc-l{margin:8px 0 0;padding-left:18px;font-size:14px;line-height:1.55;color:var(--text)}
.zc-ideal{margin-top:10px;font-size:14px;background:var(--gold-soft);border-radius:12px;padding:8px 12px}
.zc-dl{margin:12px 0 0;display:grid;gap:6px}
.zc-dl div{display:flex;gap:10px;align-items:baseline;border-top:1px solid var(--line);padding-top:6px}
.zc-dl dt{flex:none;width:92px;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.zc-dl dd{margin:0;font-size:14px;color:var(--ink)}
.zc-soon{display:grid;place-items:center;aspect-ratio:16/9;border-radius:16px;background:repeating-linear-gradient(45deg,var(--pearl) 0 12px,var(--pearl-2) 12px 24px);box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.zc-soon span{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
@media (max-width:980px){.zt7.zsel{grid-template-columns:1fr}.zt7.zsel .z7-top{position:static;animation:none}}
@media (max-width:760px){.zc{grid-template-columns:1fr;padding:14px}}
/* nos méthodes en images */
.nm21{margin-top:40px;padding-top:30px;border-top:1px solid var(--line)}
.nm-h{display:grid;gap:4px;margin-bottom:18px}
.nm-h h4{margin:0;font-family:var(--display);font-size:clamp(20px,2.6vw,30px);font-weight:200;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.nm-h h4 b{font-weight:500;color:var(--gold)}
.nm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.nm{display:flex;flex-direction:column;border-radius:22px;overflow:hidden;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line)}
.nm-v{position:relative}
.nm-v .vbox,.nm-v .zc-soon{border-radius:0}
.nm-b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.nm-b h5{margin:0;font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.nm-b p{margin:0;font-size:14px;line-height:1.5}
.nm-i{color:var(--ink)}
.nm-i b{color:var(--gold);font-weight:600}
.nm-p{margin-top:auto;padding-top:6px;font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--ink)}
@media (max-width:980px){.nm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.nm-grid{grid-template-columns:1fr}}

.vbox[data-ar="1x1"]{aspect-ratio:1/1}
@media (max-width:760px){.nm-v .vbox.r169m45[data-ar="1x1"]{aspect-ratio:1/1}}
/* v23 : carrousels automatiques */
.c23{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:var(--pearl-2)}
.c23-t{position:absolute;inset:0}
.c23-s{position:absolute;inset:0;opacity:0;transition:opacity .7s ease;pointer-events:none}
.c23-s.on{opacity:1;pointer-events:auto}
.c23-s img,.c23-s video{display:block;width:100%;height:100%;object-fit:cover;background:#1f1e1c}
.c23-d{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:6px;z-index:2}
.c23-d button{width:7px;height:7px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 0 0 1px rgba(31,30,28,.18);cursor:pointer;transition:width .3s,background .3s}
.c23-d button.on{width:18px;border-radius:4px;background:var(--gold-2)}
.c23-empty{display:grid;place-items:center;background:repeating-linear-gradient(45deg,var(--pearl) 0 12px,var(--pearl-2) 12px 24px);box-shadow:inset 0 0 0 1.5px var(--gold-soft)}
.c23-empty span{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-align:center;padding:0 12px}
.nm-v .c23{border-radius:0}
.zc.zc-txt{grid-template-columns:1fr}
.rep23{width:min(360px,100%);margin:10px auto 0}
.rep23 .c23{aspect-ratio:16/6}
/* v23 : l'aide animée sur le portrait */
.zg23{position:absolute;z-index:4;left:50%;top:40%;width:0;height:0;pointer-events:none;opacity:0;transition:left .85s cubic-bezier(.5,0,.2,1),top .85s cubic-bezier(.5,0,.2,1),opacity .4s}
.zg23.go,.zg23.still{opacity:1}.zg23.bye{opacity:0!important}
.zg23 svg{position:absolute;left:-8px;top:2px;width:34px;height:34px;filter:drop-shadow(0 4px 8px rgba(31,30,28,.3));transform-origin:9px 4px}
.zg23 em{position:absolute;left:26px;top:30px;white-space:nowrap;font-style:normal;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:#fff;padding:5px 9px;border-radius:999px;box-shadow:var(--sh-1)}
.zg-r{position:absolute;left:-14px;top:-14px;width:28px;height:28px;border-radius:50%;border:2px solid var(--gold-2);opacity:0}
.zg23.tap svg{animation:zgtap .5s ease}
.zg23.tap .zg-r{animation:zgrip .8s ease-out}
@keyframes zgtap{0%{transform:none}40%{transform:translate(1px,3px) scale(.86)}100%{transform:none}}
@keyframes zgrip{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.8)}}
/* v23 : jour J, étiquettes de la frise sur deux lignes, photo d'étape */
.jv-bar{height:58px}
.jv-m.lo span{top:38px}
.jv-m.lo::after{content:"";position:absolute;left:5.5px;top:19px;width:1px;height:17px;background:#e6dcc6}
.jv-m.end span{left:auto;right:0}
.jv-shot{margin:12px 0 0;width:min(240px,100%);aspect-ratio:4/3;border-radius:14px;overflow:hidden;box-shadow:var(--sh-1)}
.jv-shot img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:760px){.jv-bar{height:44px}.jv-m.lo span{top:22px}.jv-m.lo::after{display:none}.jv-m.end.on span{left:auto;right:0;transform:none}}
/* v24 : praticienne, vidéo verticale en colonne à côté de la frise */
@media (min-width:761px){.me-grid:has(.w24){grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:start;gap:48px}}
.me-ph17.w24{width:min(300px,100%);align-self:start}
@media (min-width:761px){.me-ph17.w24{position:sticky;top:calc(var(--th,120px) + 24px)}}
.me-ph17.w24 .vbox{aspect-ratio:9/16;border-radius:30px;box-shadow:0 2px 6px rgba(92,74,30,.08),0 24px 60px rgba(92,74,30,.22),0 0 0 6px #fff,0 0 0 7px var(--gold-soft)}
.me-ph17.w24 .vbox video{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:760px){.me-ph17.w24{width:min(250px,72%)}}
/* v24 : le lieu */
.lieu-v.l24{aspect-ratio:auto}
.lieu-v.l24 .vbox{border-radius:0;box-shadow:none}
.lieu-v.l24 video{width:100%;height:100%;object-fit:cover;display:block}
.lieu-g .gv video{width:100%;height:100%;object-fit:cover;display:block}
.lieu-g figcaption{white-space:normal;max-width:calc(100% - 20px);line-height:1.45}
/* v24 : carrousels au format 4:5 */
.c23{aspect-ratio:4/5}
.zc{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
@media (max-width:760px){.zc{grid-template-columns:1fr}.zc-vis .c23{width:min(320px,100%);margin:0 auto}}
/* v24 : LM REPAIR dans les zones */
.rep24{width:min(360px,100%);margin:14px auto 0;padding:14px;border-radius:22px;background:linear-gradient(160deg,#fff,var(--pink-soft));box-shadow:var(--sh-1),inset 0 0 0 1px #f8d3e5;text-align:left}
.rep24 .vbox{border-radius:14px;overflow:hidden;position:relative}
.rep24 .vbox video{width:100%;height:100%;object-fit:cover;display:block}
.rep24 p{margin:10px 2px 0;font-size:14px;line-height:1.55;color:var(--ink)}
.rep-b{display:inline-flex;align-items:center;gap:8px;margin-top:10px;text-decoration:none;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--pink);padding:11px 16px;border-radius:999px;box-shadow:0 10px 24px rgba(233,75,156,.25)}
.nm-b .rep-b{align-self:flex-start;margin-top:4px}
/* v27 : simulateur */
.sim27{width:min(360px,100%);margin:14px auto 0;padding:14px 14px 12px;border-radius:22px;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);display:grid;gap:10px;text-align:left}
.s27-row{display:grid;gap:6px}
.s27-row[hidden]{display:none}
.s27-k{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.s27-m,.s27-i,.s27-t{display:flex;flex-wrap:wrap;gap:6px}
.s27-m button,.s27-i button{border:0;cursor:pointer;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:8px 11px;border-radius:999px;background:var(--pearl);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.s27-m button[aria-pressed="true"],.s27-i button[aria-pressed="true"]{background:var(--ink);color:#fff;box-shadow:none}
.sw27{width:28px;height:28px;border-radius:50%;border:0;cursor:pointer;background:var(--c);box-shadow:inset 0 0 0 2px #fff,0 0 0 1px var(--line)}
.sw27[aria-pressed="true"]{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px var(--gold)}
.s27-ab{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.s27-ab input{width:100%;accent-color:var(--gold)}
.s27-hint{margin:0;font-size:12px;color:var(--muted)}
.s27-note{margin:0;font-size:11.5px;line-height:1.5;color:var(--muted);border-top:1px solid var(--line);padding-top:8px}
.s27-l{position:absolute;z-index:1;pointer-events:none;max-width:none;transition:opacity .2s}
.s27-cut{position:absolute;z-index:1;top:0;bottom:0;width:2px;margin-left:-1px;background:rgba(255,255,255,.9);box-shadow:0 0 0 1px rgba(184,150,74,.5);pointer-events:none}
#vface{touch-action:pan-y}
/* v27 : cicatrisation illustrée */
.cic27{max-width:820px;margin:0 auto;display:grid;gap:14px;text-align:center}
.c27-m{justify-self:center;flex-wrap:wrap;justify-content:center}
.c27-f{position:relative;margin:0;border-radius:24px;overflow:hidden;background:#f3e6dc;box-shadow:var(--sh-2);aspect-ratio:8/5}
.c27-f img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s}
.c27-day{position:absolute;left:14px;top:14px;font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);background:rgba(255,255,255,.92);padding:7px 12px;border-radius:999px;box-shadow:var(--sh-1)}
.c27-s{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;position:relative}
.c27-s::before{content:"";position:absolute;left:8%;right:8%;top:9px;height:2px;background:#ece4d0}
.c27-s button{position:relative;border:0;background:none;cursor:pointer;display:grid;justify-items:center;gap:6px;padding:0;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.c27-s button i{width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px #ddd1b4}
.c27-s button.past i{background:var(--gold-2);box-shadow:none}
.c27-s button[aria-pressed="true"] i{background:#fff;box-shadow:inset 0 0 0 4px var(--gold)}
.c27-s button[aria-pressed="true"]{color:var(--ink)}
.c27-t h4{margin:0;font-family:var(--display);font-size:clamp(18px,2vw,22px);font-weight:300;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.c27-t p{margin:6px auto 0;max-width:56ch;min-height:3.2em}
.c27-n{margin:0;font-size:12.5px;color:var(--muted)}
@media (max-width:600px){.c27-s span{font-size:7.5px;letter-spacing:.02em}.c27-m button{padding:8px 10px;font-size:9px}}
#vface.simon .hot{opacity:.5;transition:opacity .3s}
#vface.simon .hot span{opacity:0;transition:opacity .3s}
#vface.simon .hot:hover,#vface.simon .hot:focus-visible{opacity:1}
#vface.simon .hot:hover span,#vface.simon .hot:focus-visible span{opacity:1}
/* v28 : étiquettes rangées au bord du portrait */
.hl28{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .6s ease .2s}
#vface.lab28 .hl28{opacity:1}
#vface.lab28 .hot span{opacity:0!important;transition:opacity .4s}
.hl28 span{position:absolute;transform:translateY(-50%);pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:4px}
.hl28 span b{font-family:var(--display);font-size:7.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:rgba(255,255,255,.86);padding:3px 6px;border-radius:999px;box-shadow:0 1px 4px rgba(31,30,28,.12);white-space:nowrap}
.hl28 .hl-l{left:4px}
.hl28 .hl-r{right:4px;flex-direction:row-reverse}
.hl28 span::after{content:"";height:1px;width:10px;background:var(--gold-2);opacity:.8}
#vface.simon .hl28{opacity:.55}
/* v28 : Jour J, animation par étape */
.jv-anim{width:132px;height:88px;margin:0 0 6px}
.a28{width:100%;height:100%;overflow:visible}
.a28 .st{fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.a28 .dw{fill:none;stroke:var(--gold);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:120;stroke-dashoffset:120}
.a28 .dr{fill:var(--gold-soft);stroke:var(--gold);stroke-width:1.3;transform-box:fill-box;transform-origin:0 50%}
.a28 .dr.op{animation:a28open 3.2s ease-in-out infinite}
.a28 .dr.cl{transform-origin:100% 50%;animation:a28close 3.2s ease-in-out infinite}
@keyframes a28open{0%,12%{transform:scaleX(1)}45%,85%{transform:scaleX(.18)}100%{transform:scaleX(1)}}
@keyframes a28close{0%,12%{transform:scaleX(.18)}50%,85%{transform:scaleX(1)}100%{transform:scaleX(.18)}}
.a28 .fi{opacity:0;animation:a28fi 3.2s ease-in-out infinite}
@keyframes a28fi{0%,35%{opacity:0;transform:translateX(-6px)}55%,85%{opacity:1;transform:none}100%{opacity:0}}
.a28 .fo{animation:a28fo 3.2s ease-in-out infinite}
@keyframes a28fo{0%,10%{opacity:1;transform:none}45%,100%{opacity:0;transform:translateX(-10px)}}
.a28 .dp{animation:a28drop 1.8s ease-in infinite}
@keyframes a28drop{0%{transform:translateY(-6px);opacity:0}30%{opacity:1}100%{transform:translateY(8px);opacity:0}}
.a28 .cp2{animation:a28slide 3s ease-in-out infinite}
@keyframes a28slide{0%,20%{transform:translate(0,0)}50%,80%{transform:translate(8px,-4px)}100%{transform:translate(0,0)}}
.a28 .sp{transform-box:fill-box;transform-origin:center;animation:a28spark 1.6s ease-in-out infinite}
@keyframes a28spark{0%,100%{transform:scale(.6);opacity:.3}50%{transform:scale(1.15);opacity:1}}
.a28 .d1{animation:a28draw 4.5s linear infinite}
.a28 .d2{animation:a28draw2 4.5s linear infinite}
.a28 .d3{animation:a28draw3 4.5s linear infinite}
@keyframes a28draw{0%{stroke-dashoffset:120}25%,95%{stroke-dashoffset:0}100%{stroke-dashoffset:120}}
@keyframes a28draw2{0%,25%{stroke-dashoffset:120}55%,95%{stroke-dashoffset:0}100%{stroke-dashoffset:120}}
@keyframes a28draw3{0%,55%{stroke-dashoffset:120}85%,95%{stroke-dashoffset:0}100%{stroke-dashoffset:120}}
.a28 .pen{animation:a28pen 4.5s linear infinite}
@keyframes a28pen{0%{transform:translate(14px,26px)}12%{transform:translate(34px,17px)}25%{transform:translate(56px,22px)}40%{transform:translate(66px,58px)}55%{transform:translate(102px,58px)}70%{transform:translate(62px,24px)}85%{transform:translate(96px,24px)}100%{transform:translate(14px,26px)}}
.a28 .fillc.c1,.a28 .dotc.c1{fill:#8a5a3c}.a28 .fillc.c2,.a28 .dotc.c2{fill:#b98a5a}
.a28 .fl{transform-box:fill-box;transform-origin:50% 100%}
.a28 .f1{animation:a28grow 3s ease-in-out infinite}.a28 .f2{animation:a28shrink 3s ease-in-out infinite}
@keyframes a28grow{0%,100%{transform:scale(.85)}50%{transform:scale(1.12)}}
@keyframes a28shrink{0%,100%{transform:scale(1.12)}50%{transform:scale(.85)}}
.a28 .dt1{animation:a28drop 2.2s ease-in infinite}.a28 .dt2{animation:a28drop 2.2s ease-in .7s infinite}
.a28 .mach{animation:a28tap .18s ease-in-out infinite alternate,a28move 3.6s ease-in-out infinite}
@keyframes a28tap{from{translate:0 0}to{translate:0 1.6px}}
@keyframes a28move{0%,100%{transform:translateX(0)}50%{transform:translateX(-18px)}}
.a28 .pg1,.a28 .pg2,.a28 .pg3,.a28 .pg4{opacity:0;animation:a28pg 3.6s ease-in-out infinite}
.a28 .pg2{animation-delay:.45s}.a28 .pg3{animation-delay:.9s}.a28 .pg4{animation-delay:1.35s}
@keyframes a28pg{0%,10%{opacity:0}30%,80%{opacity:1}100%{opacity:0}}
.a28 .fl2{fill:#fff;opacity:0;animation:a28flash 2.4s ease-out infinite}
@keyframes a28flash{0%,60%{opacity:0}66%{opacity:.85}100%{opacity:0}}
.a28 .ph{animation:a28tilt 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes a28tilt{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(2deg)}}
.a28 .b1{opacity:0;animation:a28pop 3.6s ease-out infinite}.a28 .b2{opacity:0;animation:a28pop 3.6s ease-out .6s infinite}
@keyframes a28pop{0%,5%{opacity:0;transform:translateY(4px)}20%,85%{opacity:1;transform:none}100%{opacity:0}}
.a28 .ok{animation:a28draw3 3.6s linear infinite}
@media (max-width:760px){.jv-anim{width:104px;height:70px;margin:0 auto 4px}}
@media (prefers-reduced-motion:reduce){.a28 *{animation:none!important}.a28 .dw{stroke-dashoffset:0}.a28 .fi,.a28 .pg1,.a28 .pg2,.a28 .pg3,.a28 .pg4,.a28 .b1,.a28 .b2{opacity:1}}
#vface.lab28 .zg23 em{display:none}
/* v29 : FAQ en thèmes */
.fqt{border-radius:22px;background:#fff;box-shadow:var(--sh-1),inset 0 0 0 1px var(--line);margin-top:10px}
.fqt-b{width:100%;display:grid;grid-template-columns:52px 1fr auto 26px;align-items:center;gap:12px;border:0;background:none;cursor:pointer;padding:12px 16px;text-align:left}
.fqt-b b{font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.fqt-b small{font-family:var(--display);font-size:10px;font-weight:600;color:var(--gold);background:var(--gold-soft);border-radius:999px;padding:3px 8px}
.fqt-b::after{content:"";width:9px;height:9px;border-right:1.6px solid var(--gold);border-bottom:1.6px solid var(--gold);transform:rotate(45deg);justify-self:center;transition:transform .3s}
.fqt-b[aria-expanded="true"]::after{transform:rotate(-135deg)}
.fqt-i{width:52px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--pearl)}
.fqt-p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s var(--ease)}
.fqt-p>div{overflow:hidden;min-height:0;padding:0 12px}
.fqt.on .fqt-p{grid-template-rows:1fr}
.fqt.on .fqt-p>div{padding-bottom:12px}
.fqt .fq8{margin-top:6px}
.fqt .fa8>div{line-height:1.6}
.fqt .fa8>div p{margin:0 0 8px}
.fqt .fa8>div ul{margin:0 0 8px;padding-left:18px;display:grid;gap:3px}
.fi29{width:46px;height:40px;overflow:visible}
.fi29 .st{fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.fi29 .fd,.fi29 .fb{fill:none;stroke:var(--gold);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:80;stroke-dashoffset:80;animation:fi29d 4s ease-in-out infinite}
.fi29 .fb{animation-delay:1.2s}
@keyframes fi29d{0%{stroke-dashoffset:80}40%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:80}}
.fi29 .fdrop{fill:var(--gold);animation:fi29drop 2.4s ease-in infinite}
@keyframes fi29drop{0%{transform:translateY(-4px);opacity:0}30%{opacity:1}100%{transform:translateY(14px);opacity:0}}
.fi29 .lt{fill:var(--pearl);stroke:var(--gold);stroke-width:1.2;animation:fi29lt 3.2s ease-in-out infinite}
.fi29 .l2{animation-delay:.4s}.fi29 .l3{animation-delay:.8s}.fi29 .l4{animation-delay:1.2s}
@keyframes fi29lt{0%,100%{fill:var(--pearl)}30%,60%{fill:var(--gold-2)}}
.fi29 .flip{transform-box:fill-box;transform-origin:center;animation:fi29flip 3.4s ease-in-out infinite}
@keyframes fi29flip{0%,40%{transform:scaleX(1)}55%{transform:scaleX(-1)}90%{transform:scaleX(-1)}100%{transform:scaleX(1)}}
.fi29 .bub{animation:fi29pop 3s ease-out infinite;opacity:0}
@keyframes fi29pop{0%,10%{opacity:0;transform:translateY(3px)}25%,85%{opacity:1;transform:none}100%{opacity:0}}
.fi29 .door{fill:var(--gold-soft);stroke:var(--gold);stroke-width:1.2;transform-box:fill-box;transform-origin:0 50%;animation:a28open 3.2s ease-in-out infinite}
.fi29 .ph{fill:var(--gold);animation:fi29ph 4s ease-in-out infinite}
.fi29 .p1{opacity:1;animation:none}.fi29 .p2{animation-delay:.3s}.fi29 .p3{animation-delay:.6s}.fi29 .p4{animation-delay:.9s}.fi29 .p5{animation-delay:1.2s}
@keyframes fi29ph{0%,100%{opacity:1}40%{opacity:.12}70%{opacity:.8}}
.fi29 .ar{animation:fi29d 4s ease-in-out infinite;stroke-dasharray:60}
.fi29 .ar2{fill:#d9a3a0;animation:fi29lt2 4s ease-in-out infinite}
@keyframes fi29lt2{0%,30%{opacity:0}60%,100%{opacity:1}}
.fi29 .env{fill:none;stroke:var(--gold);stroke-width:1.3;transform-box:fill-box;transform-origin:50% 0;animation:fi29env 3.2s ease-in-out infinite}
@keyframes fi29env{0%,30%{transform:scaleY(1)}60%,90%{transform:scaleY(-1)}100%{transform:scaleY(1)}}
.fi29 .star{fill:var(--gold-2);animation:a28spark 1.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.fi29 .s2{animation-delay:.6s}
.fi29 .dt{fill:var(--gold);animation:fi29dt 1.2s ease-in-out infinite}.fi29 .d2{animation-delay:.2s}.fi29 .d3{animation-delay:.4s}
@keyframes fi29dt{0%,100%{opacity:.2}50%{opacity:1}}
@media (max-width:600px){.fqt-b{grid-template-columns:44px 1fr auto 18px;gap:8px;padding:10px 12px}.fqt-i{width:44px;height:38px}.fqt-b b{font-size:11.5px}}
@media (prefers-reduced-motion:reduce){.fi29 *{animation:none!important}.fi29 .fd,.fi29 .fb{stroke-dashoffset:0}}
.faq8-c[hidden]{display:none!important}
.jji{grid-template-columns:120px 1fr}
.jji .jji-anim{width:120px;height:80px;margin:0}
@media (max-width:760px){.jji{grid-template-columns:1fr}.jji .jji-anim{margin:0 auto}}
.pay30{margin-top:14px;padding:12px 16px;border-radius:16px;background:var(--pearl);font-size:14px}
.pay30 p{margin:0}
.pay30 .mini{margin-top:6px;font-size:11.5px;line-height:1.5;color:var(--muted)}
.fqt .fa8 small{display:block;margin-top:4px;font-size:11.5px;line-height:1.5;color:var(--muted)}
.z18{margin:14px 0 4px;padding:14px;border-radius:18px;background:var(--pearl,#faf6f1);box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:12px;width:100%;max-width:560px;box-sizing:border-box;margin-left:auto;margin-right:auto}
.z18-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.z18-k{font-family:var(--display);font-size:9px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.z18-tabs{display:flex;gap:4px;padding:3px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.z18-tabs button{border:0;cursor:pointer;background:none;font-family:var(--display);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:8px 13px;border-radius:999px;color:var(--ink)}
.z18-tabs button.on{background:var(--ink);color:#fff}
.z18-st{position:relative;border-radius:12px;overflow:hidden;background:#e9e1d8;aspect-ratio:720/302}
.z18-st canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.z18-l{transition:opacity .15s}
.z18-st .lab{position:absolute;left:8px;top:8px;z-index:2;font-family:var(--display);font-size:8.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;background:rgba(255,255,255,.85);color:var(--ink);padding:4px 8px;border-radius:999px}
.z18-st.busy canvas{opacity:.6}
.z18-m{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.z18-m button{min-width:0;border:0;cursor:pointer;background:#fff;border-radius:12px;padding:6px 6px 7px;box-shadow:inset 0 0 0 1px var(--line);display:grid;gap:4px;justify-items:center}
.z18-m button span{display:flex;align-items:center;justify-content:center;width:100%;height:42px}
.z18-m img{max-width:100%;max-height:42px;display:block}
.z18-m small{font-family:var(--display);font-size:8px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;line-height:1.25;text-align:center;color:var(--ink)}
.z18-m button[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--gold)}
.z18-row{display:grid;gap:6px}
.z18-t{display:flex;flex-wrap:wrap;gap:6px}
.z18-i{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}
.z18-i small{font-size:10.5px;color:var(--muted)}
.z18-i input{width:100%;accent-color:var(--gold)}
@media (max-width:600px){.z18{padding:12px;gap:10px}.z18-m{grid-template-columns:repeat(3,1fr)}.z18-i small{font-size:9.5px}}
.z18-row[hidden]{display:none}

.c27-f .c27-x{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.c27-f .c27-x.out{animation:c27fade .9s ease forwards}
@keyframes c27fade{from{opacity:1}to{opacity:0}}
.c27-pb{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.45)}
.c27-pb b{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));transform-origin:0 50%;transform:scaleX(0)}
.c27-s button[aria-pressed="true"] i{animation:c27glow 1.6s ease-in-out infinite}
@keyframes c27glow{0%,100%{box-shadow:inset 0 0 0 4px var(--gold),0 0 0 0 rgba(217,189,114,.55)}50%{box-shadow:inset 0 0 0 4px var(--gold),0 0 0 7px rgba(217,189,114,0)}}
.c27-s button i{transition:background .4s ease,box-shadow .4s ease}
.c27-hint{margin:0;font-size:12.5px;color:var(--gold);font-family:var(--display);font-weight:600;letter-spacing:.12em;text-transform:uppercase}
footer .fleg{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
footer .fleg p{margin:0}

