:root{--bx:#56253b;--bx2:#3b1727;--gris:#e7e3e4;--rose:#d9b9c0;--or:#b8843f;--creme:#f6efe8;--script:'Quando',Georgia,serif;--texte:'Quando',Georgia,serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--gris);color:var(--bx2);font:400 .95rem/1.9 var(--texte);overflow-x:hidden}
a{color:inherit}
h1,h2{font-family:var(--script);font-weight:400;line-height:1.05;color:var(--bx)}
h1{font-size:clamp(4rem,11vw,8rem)}h2{font-size:clamp(2.8rem,6vw,4.6rem)}
h3{font:400 1.2rem/1.4 var(--texte);color:var(--bx)}
.blobs{position:fixed;inset:0;z-index:-1;overflow:hidden;filter:blur(80px)}
.blobs i{position:absolute;width:44vw;height:44vw;background:var(--rose);opacity:.4;border-radius:42% 58% 63% 37%/45% 40% 60% 55%;animation:morph 26s ease-in-out infinite alternate}
.blobs i:nth-child(1){top:-12vw;left:-10vw}.blobs i:nth-child(2){bottom:-16vw;right:-10vw;background:#a0577a;opacity:.3;animation-delay:-9s}.blobs i:nth-child(3){display:none}
@keyframes morph{to{border-radius:63% 37% 40% 60%/55% 60% 40% 45%;transform:translate(5vw,4vw) rotate(20deg)}}
.glass{position:relative;overflow:hidden;background:linear-gradient(135deg,#ffffff80,#ffffff40);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border:1px solid #ffffffc0;border-radius:26px;box-shadow:inset 0 1px 0 #fff,0 20px 44px -28px #56253b99}
.glass::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px circle at var(--mx,-200px) var(--my,-200px),#ffffff8c,transparent 70%);opacity:.9}
.glass.sombre{background:linear-gradient(135deg,#ffffff26,#ffffff0d);border-color:#ffffff40;color:var(--creme)}
.tete{position:relative;padding:24vh 20px 13vh;text-align:center;color:var(--creme);background:radial-gradient(60vw 40vw at 80% 0,#7a3852,transparent 70%),var(--bx)}
.tete h1{color:var(--creme);animation:mont 1.2s var(--ease) both}.tete p{max-width:560px;margin:14px auto 0;opacity:.8;font-size:.9rem;animation:mont 1.2s .2s var(--ease) both}
.tete::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:6vw;min-height:30px;background:var(--gris);clip-path:ellipse(75% 100% at 50% 100%)}
@keyframes mont{from{opacity:0;transform:translateY(24px);filter:blur(8px)}}
main{max-width:1040px;margin:auto;padding:0 24px 80px}
section{margin-top:110px}
.centre{text-align:center}.pad{padding:clamp(28px,4.5vw,56px)}
.grille{display:grid;gap:30px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.duo{display:grid;gap:64px;grid-template-columns:1fr 1.15fr;align-items:center}
.duo.inv{grid-template-columns:1.15fr 1fr}.duo.inv>:first-child{order:2}
.img{width:100%;display:block;object-fit:cover;aspect-ratio:4/5;background:linear-gradient(160deg,#d9b9c0,#a0577a66);border-radius:999px 999px 28px 28px;transition:transform 1.4s var(--ease)}
.img.carre{aspect-ratio:auto;min-height:220px;border-radius:24px}
.duo:hover .img,.tuile:hover .img{transform:scale(1.025)}
.tuile{text-align:center;display:flex;flex-direction:column;gap:20px;align-items:center;text-decoration:none;overflow:hidden}
.btn{display:inline-block;margin:6px 6px 6px 0;padding:12px 30px;border-radius:999px;text-decoration:none;font-size:.78rem;letter-spacing:.05em;color:var(--creme);background:var(--bx);border:1px solid var(--bx);transition:background .4s,color .4s,transform .4s var(--ease)}
.btn:hover{background:transparent;color:var(--bx);transform:translateY(-2px)}
.btn.clair{background:transparent;color:var(--bx)}.btn.clair:hover{background:var(--bx);color:var(--creme)}
.centre .btn,.band .btn{margin:6px}
.tag{display:none}
.carte{padding:18px 18px 26px;display:flex;flex-direction:column;gap:12px;transition:transform .6s var(--ease)}.carte:hover{transform:translateY(-6px)}
.carte .img{aspect-ratio:4/3;border-radius:18px}
.prix{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid #56253b1f}.prix b{font-weight:400;color:var(--bx);white-space:nowrap}
.passe{display:none}
.rv{opacity:0;transform:translateY(36px);filter:blur(6px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease),filter 1.1s var(--ease)}.rv.on{opacity:1;transform:none;filter:none}
footer{background:var(--bx);color:var(--creme);text-align:center;padding:70px 20px 40px;margin-top:80px;font-size:.8rem}
footer .m{font:400 5rem/1 var(--script)}footer p{opacity:.8;margin-top:6px}
.ronds a{display:inline-grid;place-items:center;width:42px;height:42px;margin:16px 5px 4px;border-radius:50%;border:1px solid #ffffff44;text-decoration:none;transition:background .3s}.ronds a:hover{background:#ffffff26}
@media(max-width:860px){.duo,.duo.inv{grid-template-columns:1fr;gap:32px}.duo.inv>:first-child{order:0}section{margin-top:80px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none;filter:none}}
:focus-visible{outline:2px solid var(--or);outline-offset:3px}
.hero{height:240vh;position:relative}
.hero-in{position:sticky;top:0;height:100vh;overflow:hidden;display:grid;place-items:center;background:radial-gradient(70vw 70vw at 30% 20%,#7a3852,transparent 65%),var(--bx2)}
.vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:inset(calc(var(--p,0)*12vh) calc(var(--p,0)*8vw) round calc(var(--p,0)*44px))}
.voile{position:absolute;inset:0;background:linear-gradient(180deg,#3b172799,#56253b44 50%,#3b1727cc)}
.titre{position:relative;text-align:center;color:var(--creme);padding:0 20px;opacity:calc(1 - var(--p,0)*2.4);transform:translateY(calc(var(--p,0)*-70px))}
.titre h1{color:var(--creme);font-size:clamp(9rem,30vw,24rem);line-height:.85;text-shadow:0 10px 60px #0005;animation:ecrit 2.6s .3s var(--ease) both}
@keyframes ecrit{from{clip-path:inset(-20% 100% -20% 0);opacity:.2}to{clip-path:inset(-20% -6% -20% 0);opacity:1}}
.titre p{display:inline-block;margin-top:18px;padding:10px 28px;border-radius:999px;font-size:.78rem;letter-spacing:.08em;animation:mont 1.4s 1.8s var(--ease) both}
.fleche{position:absolute;bottom:26px;left:50%;translate:-50% 0;color:var(--creme);font-size:.72rem;letter-spacing:.1em;animation:bob 2.4s ease-in-out infinite,mont 1.4s 2.2s both}
@keyframes bob{50%{transform:translateY(8px)}}
.manifeste{max-width:900px;margin:auto;padding:24vh 24px 14vh;text-align:center}
.manifeste p{font:400 clamp(1.5rem,3.2vw,2.3rem)/1.6 var(--texte);color:var(--bx)}
.manifeste span{opacity:.15;transition:opacity .5s}.manifeste span.on{opacity:1}
.piles{padding:0 24px 8vh}
.pile{position:sticky;top:13vh;max-width:980px;margin:0 auto 10vh;min-height:58vh;display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border-radius:32px}
.pile>div{padding:clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:center;gap:14px;align-items:flex-start}
.pile img{width:100%;height:100%;min-height:280px;object-fit:cover;background:linear-gradient(135deg,#7a3852,#d9b9c0)}
.pile:nth-child(2){top:17vh}.pile:nth-child(3){top:21vh}
.band{background:var(--bx);color:var(--creme);text-align:center;padding:14vh 20px;margin-top:12vh}.band h2{color:var(--creme);margin-bottom:12px}.band .btn{background:var(--creme);color:var(--bx);border-color:var(--creme)}.band .btn:hover{background:transparent;color:var(--creme)}.band .btn.clair{background:transparent;color:var(--creme);border-color:#ffffff66}
.ev{display:flex;gap:28px;align-items:center;padding:18px 32px;margin-bottom:14px;text-decoration:none;border-radius:999px;transition:transform .5s var(--ease)}.ev:hover{transform:translateX(10px)}
.ev b{font:400 1.05rem var(--texte);min-width:130px;color:var(--bx)}
@media(max-width:860px){.pile{grid-template-columns:1fr;position:relative;top:0!important}.ev{flex-direction:column;align-items:flex-start;gap:0;border-radius:26px}}

h1{font-size:clamp(2.4rem,5.5vw,4.2rem);letter-spacing:.02em}h2{font-size:clamp(1.6rem,3.2vw,2.4rem);letter-spacing:.01em;line-height:1.25}
footer .m{font:400 2.4rem/1 var(--texte);letter-spacing:.42em;margin-right:-.42em}
.barre{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px clamp(22px,4vw,64px);color:var(--creme);transition:transform .7s var(--ease),padding .5s,color .5s}
.barre::before{content:"";position:absolute;inset:0;z-index:-1;background:#e7e3e4c8;backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);box-shadow:0 1px 0 #56253b14;opacity:0;transition:opacity .5s}
.barre.fond{color:var(--bx);padding-top:14px;padding-bottom:14px}.barre.fond::before{opacity:1}
.barre.cache{transform:translateY(-110%)}
.barre .m{font:400 1.1rem var(--texte);letter-spacing:.42em;text-decoration:none}
.barre nav{display:flex;gap:clamp(16px,2.4vw,38px)}
.barre nav a{position:relative;font-size:.68rem;letter-spacing:.16em;text-decoration:none;padding:6px 0;white-space:nowrap}
.barre nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.barre nav a:hover::after,.barre nav a[aria-current]::after{transform:scaleX(1)}
#burger{display:none;background:none;border:0;color:inherit;font:400 .7rem var(--texte);letter-spacing:.2em;cursor:pointer}
@media(max-width:1020px){#burger{display:block}.barre nav{position:fixed;inset:0;background:#3b1727f2;backdrop-filter:blur(24px);flex-direction:column;align-items:center;justify-content:center;gap:24px;opacity:0;pointer-events:none;transition:opacity .5s;color:var(--creme)}.barre nav a{font-size:.95rem}.barre.ouvert nav{opacity:1;pointer-events:auto}.barre.ouvert .m,.barre.ouvert #burger{position:relative;z-index:2;color:var(--creme)}}
.titre h1{font-size:clamp(5rem,17vw,13rem);letter-spacing:.14em;margin-right:-.14em;line-height:1;animation:ecart 2.2s .2s var(--ease) both}
@keyframes ecart{from{letter-spacing:.7em;opacity:0;filter:blur(16px)}}

/* pages riches (soins / accompagnement) */
main{max-width:1180px}
.pilules{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:26px auto 10px}
.pilule{padding:9px 20px;border-radius:999px;background:#56253b0f;color:var(--bx);text-decoration:none;font-size:.78rem;letter-spacing:.04em;transition:background .3s}
.pilule:hover{background:#56253b1f}
.riche{scroll-margin-top:110px;display:grid;grid-template-columns:1.15fr 1fr;gap:60px;align-items:center;padding:56px clamp(20px,4vw,56px);border-radius:34px}
.riche.inv{grid-template-columns:1fr 1.15fr}.riche.inv .riche-txt{order:2}.riche.inv .riche-img{order:1}
.riche:nth-child(odd){background:linear-gradient(135deg,#ffffff70,#ffffff20)}
.riche-txt{text-align:left}.riche-txt h2{text-align:left;margin-bottom:14px}
.riche-img{aspect-ratio:3/4;border-radius:28px;width:100%}
.pastille{background:#56253b0a;border-radius:16px;padding:14px 18px;margin-top:14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px}
.pastille b{font-weight:400;font-size:1.05rem}
.pastille .prix-val{margin-left:auto;color:var(--bx);font-size:1.1rem}
.pastille small{flex-basis:100%;opacity:.7;font-size:.82rem}
.grille .carte h3{margin-bottom:8px}
@media(max-width:900px){.riche,.riche.inv{grid-template-columns:1fr;gap:26px;padding:36px 22px}.riche.inv .riche-txt,.riche.inv .riche-img{order:0}.riche-img{aspect-ratio:16/10}}

/* sélecteur visuel (soins / accompagnement) */
.selecteur{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px 10px;margin:30px auto 10px;max-width:900px}
.selecteur-item{display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;padding:14px 8px 10px;border-radius:28px;transition:transform .5s var(--ease),background .4s}
.selecteur-item:hover{transform:translateY(-6px);background:#56253b0c}
.selecteur-item:hover .selecteur-img{transform:scale(1.06);box-shadow:0 14px 26px -12px #56253b55}
.selecteur-img{width:78px;height:78px;object-fit:cover;border-radius:50% 46% 54% 50%/54% 50% 50% 46%;transition:transform .5s var(--ease),box-shadow .5s;background:linear-gradient(160deg,#d9b9c0,#a0577a55)}
.selecteur-item span{font-size:.72rem;line-height:1.35;letter-spacing:.02em;color:var(--bx);text-align:center}
@media(max-width:600px){.selecteur{grid-template-columns:repeat(3,1fr)}}

/* listes riches sans photo (ex : petites prestations d'accompagnement) */
.riche.sansimg{grid-template-columns:1fr;max-width:760px;margin-left:auto;margin-right:auto;text-align:center}
.riche.sansimg .riche-txt{text-align:center}
.riche.sansimg .riche-txt h2{text-align:center}
.riche.sansimg .pastille{justify-content:center;text-align:center}
.selecteur-img.vide{display:flex;align-items:center;justify-content:center;font:400 1.7rem var(--texte);color:var(--bx)}

/* logos */
.logo-img{height:40px;width:auto;display:block}
.barre .m{display:inline-flex;align-items:center;background:#f6efe8d9;padding:6px 14px;border-radius:999px;box-shadow:0 4px 14px -8px #0004;transition:background .4s}
.barre.fond .m{background:transparent;box-shadow:none;padding:0}
footer .logo-rond{width:64px;height:64px;object-fit:contain;display:block;margin:0 auto 16px}

/* ---- v4 : livre en une, cartes, programmes, tutoriels, livre d'or ---- */
[hidden]{display:none!important}
.une{display:grid;grid-template-columns:minmax(220px,.7fr) 1.3fr;gap:clamp(30px,6vw,80px);align-items:center;padding:clamp(28px,4vw,60px);margin-top:clamp(90px,14vh,150px)}
.une .couv{width:100%;max-width:340px;justify-self:center}
.couv{display:block;height:auto;border-radius:6px;box-shadow:0 30px 55px -22px #3b1727aa,0 0 0 1px #3b172714;transform:rotate(-2.2deg);transition:transform .8s var(--ease)}
.une:hover .couv{transform:rotate(0) scale(1.02)}
.kicker{display:inline-block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:#7a3852;margin-bottom:14px}
.carte .actions{margin-top:auto;display:flex;flex-wrap:wrap;gap:2px}
.riche-img.cliquable{cursor:zoom-in}
.riche-img.cliquable:hover{transform:scale(1.02)}
dialog#programme{border:0;padding:0;border-radius:28px;width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 40px);background:#f6efe8;color:var(--bx2);box-shadow:0 40px 90px -30px #000a;overflow:hidden}
dialog#programme::backdrop{background:#3b1727aa;backdrop-filter:blur(6px)}
.modal-in{padding:clamp(26px,4vw,46px);overflow:auto;max-height:calc(100vh - 40px)}
.modal-in h2{margin-bottom:10px;padding-right:44px}
.modal-x{position:absolute;top:16px;right:16px;width:40px;height:40px;padding:0;border-radius:50%;background:#56253b14;color:var(--bx);font-size:1rem}
.niveau{padding:20px 0;border-top:1px solid #56253b22}
.niveau header{display:flex;justify-content:space-between;gap:18px;align-items:baseline}
.niveau h3{font-size:1.1rem}.niveau b{font-weight:400;color:var(--bx);white-space:nowrap}
.niveau p{margin-top:10px;font-size:.92rem}.niveau .cond{font-size:.8rem;opacity:.75}
.modal-cta{margin-top:24px;padding-top:22px;border-top:1px solid #56253b22}
.tutos{display:grid;gap:18px;max-width:900px;margin:0 auto}
.tuto{padding:0}
.tuto summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:20px 26px;font-size:1.02rem;color:var(--bx)}
.tuto summary::-webkit-details-marker{display:none}
.tuto summary::after{content:"+";margin-left:auto;font-size:1.5rem;line-height:1}
.tuto[open] summary::after{content:"–"}
.tuto-n{width:38px;height:38px;border-radius:50%;background:var(--bx);color:var(--creme);display:grid;place-items:center;flex:none;font-size:.9rem}
.etapes{list-style:none;counter-reset:e;margin:0;padding:0 26px 26px;display:grid;gap:4px}
.etapes li{counter-increment:e;display:grid;grid-template-columns:1fr minmax(0,300px);gap:26px;align-items:center;padding:22px 0 8px;border-top:1px solid #56253b1a}
.etapes li.sansimg{grid-template-columns:1fr}
.etape-txt h4{margin:0 0 6px;font:400 1rem var(--texte);color:var(--bx)}
.etape-txt h4::before{content:counter(e);display:inline-grid;place-items:center;width:26px;height:26px;margin-right:10px;border-radius:50%;background:#56253b14;font-size:.78rem}
.etape-txt p{font-size:.92rem}
.etape-img{width:100%;border-radius:16px;box-shadow:0 14px 30px -18px #3b1727aa}
.or-intro{max-width:720px;margin:0 auto;text-align:center}
.or-mur{columns:3 280px;column-gap:28px;margin-top:70px}
.mot{break-inside:avoid;margin:0 0 28px;padding:34px 28px 24px;transform:rotate(var(--r,0deg));transition:transform .6s var(--ease)}
.mot:hover{transform:rotate(0) translateY(-4px)}
.mot::after{content:"“";position:absolute;top:4px;left:18px;font:400 4.6rem/1 var(--texte);color:#56253b22;pointer-events:none}
.mot blockquote{margin:6px 0 18px;font-size:.96rem;line-height:1.85;position:relative}
.mot figcaption{font-size:.78rem;letter-spacing:.08em;color:#7a3852}
.mot img{width:100%;display:block;border-radius:8px;margin-bottom:16px;box-shadow:0 14px 30px -16px #3b1727aa}
.mot.vide{text-align:center;column-span:all;max-width:520px;margin:0 auto;transform:none;padding:34px 28px}
@media(max-width:860px){.une{grid-template-columns:1fr}.etapes li{grid-template-columns:1fr}}
.grille.cartes{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
dialog#programme{margin:auto}
