/* Olivia Chatel · thème du site + socle commun (therapeute-club/socle) */
/* THÈME de Ma Bulle d'O'Pale. Direction de la maquette C « La bougie », choisie par William le 21/09/2026 :
   Young Serif (titres, ronde et chaleureuse) et Nunito Sans (texte), absentes du parc, ivoire, rose, bois de rose.
   Accueil refondu le même jour (« son site est ultra simpliste ») : en haut, le héros d'origine de la maquette C
   (titre centré, triptyque), puis la lettre de la refonte 1, la refonte 2 « La bulle », le bandeau de rendez-vous C.
   NE PAS ÉDITER À LA MAIN : fichier produit par
   refonte-accueil/assembler-theme.py, qui ne garde que les règles dont les classes existent dans le site monté.
   Fond ivoire lumineux, teintes tirées vers le rose (10 à 15°) et JAMAIS vers le beige (30 à 40°) :
   c'est le défaut de son site actuel. Contrastes vérifiés, tous au-dessus de 4,5:1. */
@font-face{font-family:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/YoungSerif-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Young Serif";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/YoungSerif-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/NunitoSans-400-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/NunitoSans-400-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  --blanc:#FFFCF9;
  --encre:#231A17;--encre-2:#4D403B;--encre-3:#72645E;
  --eau:#FAF1EF;--eau-fonce:#F2E1DD;--eau-texte:#6B3A2E;
  --rose:#F8ECE8;--rose-fonce:#F0D9D3;
  --gris:#F4EFEE;--gris-fonce:#E8DFDD;--gris-texte:#4D403B;
  --rouge:#8E3F4E;--rouge-2:#743341;--rouge-pale:#F7E6E9;
  --encre-rvb:35,26,23;--rouge-rvb:142,63,78;--rouge-2-rvb:116,51,65;
  --ligne:rgba(35,26,23,.09);
  --ombre:0 1px 2px rgba(35,26,23,.04),0 10px 26px -14px rgba(35,26,23,.14);
  --ombre-haute:0 2px 4px rgba(35,26,23,.05),0 22px 44px -20px rgba(35,26,23,.22);
  --r:16px;
  --serif:"Young Serif",Georgia,"Times New Roman",serif;
  --sans:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gouttiere:20px;--entete:72px;
}
@media (min-width:768px){
:root{--gouttiere:40px;--entete:84px}
}
h1,h2,h3{letter-spacing:-.02em}
/* ── héros : centré, la lettre commence ──────────────────────────────────────── */
.c-heros{text-align:center;padding-block:clamp(40px,7vw,96px) clamp(32px,5vw,56px)}
.c-surtitre{display:block;font-size:.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge)}
.c-heros h1{margin:20px auto 0;max-width:13em;font-size:clamp(2.4rem,5.4vw,4.4rem);line-height:1.04}
.c-heros .heros__chapo{margin:26px auto 0;max-width:34em}
.c-heros .heros__actions{justify-content:center}
.c-heros .heros__reperes{justify-content:center}
.c-triptyque{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;margin-top:clamp(40px,6vw,72px)}
.c-triptyque figure{margin:0;border-radius:var(--r);overflow:hidden;background:var(--rose)}
.c-triptyque img{display:block;width:100%;height:100%;object-fit:cover}
.c-triptyque .c-centre{grid-column:1/-1;aspect-ratio:4/5;order:-1}
.c-triptyque .c-cote{aspect-ratio:3/4}
/* ── la lettre d'Olivia ──────────────────────────────────────────────────────── */
.c-lettre{max-width:40em;margin:0 auto;padding:clamp(32px,5vw,64px);background:#fff;border-radius:var(--r);
  box-shadow:var(--ombre);font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.75;color:var(--encre)}
.c-lettre p{margin:0 0 1em}
.c-lettre p:first-of-type::first-letter{float:left;font-family:var(--serif);font-size:4.4em;line-height:.8;padding:.06em .1em 0 0;color:var(--rouge)}
.c-lettre__signe{margin-top:1.4em;font-family:var(--serif);font-size:1.6rem;color:var(--rouge)}
.c-lettre__faits{margin:28px 0 0;padding:22px 0 0;border-top:1px solid var(--ligne);display:grid;gap:8px;list-style:none;
  font-size:.9375rem;color:var(--encre-2)}
.c-centre-titre{text-align:center;max-width:24em;margin:0 auto 44px}
.c-centre-titre .chapeau{margin:14px auto 0}
/* 44 px de haut : c'est un bouton pour le pouce, pas un lien au fil d'une phrase */
.c-lien{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:16px;font-weight:600;color:var(--rouge)}
.c-venir{max-width:46em;margin:0 auto;display:grid;gap:14px}
.c-venir .carte{padding:24px 26px;display:grid;gap:4px}
.c-venir h3{font-size:1.35rem}
.c-venir p{margin:0;color:var(--encre-2)}
.c-regle{max-width:46em;margin:22px auto 0;text-align:center;font-weight:600}
.c-limites{max-width:40em;margin:8px auto 0;text-align:center;font-size:.9375rem;color:var(--encre-2)}
@media (min-width:760px){
.c-triptyque{grid-template-columns:1fr 1.25fr 1fr;gap:18px}
.c-triptyque .c-centre{grid-column:auto;order:0}
.c-triptyque .c-cote{aspect-ratio:3/4}
.c-venir{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* DE LA REFONTE 1 · « Le cocon » : sa lettre à côté du portrait en arche, et le bouton à contour clair du
   bandeau de rendez-vous.
   Le thème passe AVANT socle.css : pour l'emporter sur une règle du socle, il faut une spécificité plus haute. */
.v1-bouton-trait{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.62)}
.v1-bouton-trait:hover{box-shadow:inset 0 0 0 1.5px #fff}
/* sa lettre, à côté de son portrait en arche */
.v1-lettre{display:grid;gap:32px;align-items:center}
.v1-lettre__portrait{margin:0;width:min(100%,380px);justify-self:center}
.v1-lettre__portrait picture,.v1-lettre__portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px var(--r) var(--r)}
.v1-lettre__portrait figcaption{margin-top:12px;text-align:center;font-size:.875rem;color:var(--encre-3)}
.v1-lettre .v1-lettre__texte{margin:0;max-width:none}
@media (min-width:980px){
.v1-lettre{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}
}
/* correction après capture : une carte « venir » haute étirait son texte au milieu */
.c-venir .carte{align-content:start}

/* DE LA REFONTE 2 · « La bulle » : tout ce qui suit la lettre. Son nom devient la forme : rondeurs, teintes de rose.
   Contrastes : encre sur toutes les teintes de cartes au-dessus de 12:1.
   Le thème passe AVANT socle.css : pour l'emporter sur une règle du socle, il faut une spécificité plus haute. */
:root{--v2-poudre:#F2D7D2;--v2-dragee:#EBD3D8;--v2-rose-vif:#EDB7C2}
/* les motifs : des bulles de couleurs différentes */
.v2-motifs .grille-motifs>.carte{border-radius:32px;box-shadow:none;background:#fff}
.v2-motifs .grille-motifs>.carte:nth-child(1){background:var(--v2-poudre)}
.v2-motifs .grille-motifs>.carte:nth-child(2){background:#fff}
.v2-motifs .grille-motifs>.carte:nth-child(3){background:var(--v2-dragee)}
.v2-motifs .grille-motifs>.carte:nth-child(4){background:#fff}
.v2-motifs .grille-motifs>.carte:nth-child(5){background:var(--v2-rose-vif)}
.v2-motifs .grille-motifs>.carte .motif__icone{border-radius:50%;background:rgba(255,255,255,.7);color:var(--rouge)}
.v2-motifs .grille-motifs>.carte:nth-child(even) .motif__icone{background:var(--rose)}
.v2-motifs .grille-motifs>.carte .rond-fleche{background:#fff}
.v2-motifs .grille-motifs>.carte:nth-child(even) .rond-fleche{background:var(--rose)}
.v2-motifs .grille-motifs>.carte p{color:var(--encre-2)}
/* sa phrase, surlignée */
.v2-phrase{padding-block:clamp(56px,8vw,112px);text-align:center}
.v2-phrase p{margin:0 auto;max-width:15em;font-family:var(--serif);font-size:clamp(2.2rem,6vw,4.8rem);line-height:1.1;color:var(--encre)}
.v2-phrase mark{background:linear-gradient(transparent 58%,var(--v2-rose-vif) 58%,var(--v2-rose-vif) 92%,transparent 92%);color:inherit;padding-inline:.06em}
/* les massages : un numéro en bulle sur chaque carte */
.v2-soins .grille-soins{counter-reset:v2soin}
.v2-soins .grille-soins>.carte{counter-increment:v2soin;position:relative;border-radius:32px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--v2-poudre);padding-top:34px}
.v2-soins .grille-soins>.carte::before{content:counter(v2soin);position:absolute;top:24px;right:24px;width:48px;height:48px;border-radius:50%;
  display:grid;place-items:center;background:var(--rose);color:var(--rouge);font-family:var(--serif);font-size:1.35rem;line-height:1}
.v2-soins .grille-soins>.carte .soin__tete{margin-bottom:20px;padding-right:60px}
.v2-soins .grille-soins>.carte .soin__duree{background:var(--rose);white-space:nowrap}
.v2-soins .grille-soins>.carte .rond-fleche{background:var(--rose)}
.v2-soins .grille-soins>a.carte:hover{box-shadow:var(--ombre-haute)}
/* la séance : quatre ronds reliés */
.v2-etapes{list-style:none;margin:0 auto;padding:0;max-width:1100px;display:grid;gap:28px;position:relative}
.v2-etapes li{position:relative;padding-left:76px}
.v2-etapes li::before{content:"";position:absolute;left:27px;top:56px;bottom:-28px;width:2px;background:var(--v2-poudre)}
.v2-etapes li:last-child::before{display:none}
.v2-etapes__rond{position:absolute;left:0;top:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:var(--blanc);color:var(--rouge);font-family:var(--serif);font-size:1.5rem;box-shadow:inset 0 0 0 2px var(--v2-rose-vif)}
.v2-etapes h3{font-size:1.45rem;line-height:1.2;margin:12px 0 6px}
.v2-etapes p{margin:0;color:var(--encre-2)}
/* les avis : des bulles de parole */
.v2-avis{max-width:1040px;margin:0 auto;display:grid;gap:34px;align-items:start}
.v2-avis .avis{position:relative;margin:0;padding:32px;border-radius:32px;background:var(--rose)}
.v2-avis .avis::after{content:"";position:absolute;left:44px;bottom:-16px;width:34px;height:34px;background:inherit;border-radius:0 0 34px 0;rotate:0deg;
  clip-path:polygon(0 0,100% 0,0 100%)}
.v2-avis .avis:nth-child(even){background:var(--v2-poudre)}
.v2-avis .avis blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.45}
.v2-avis .avis blockquote p{margin:0 0 .45em}
.v2-avis .avis figcaption{margin-top:14px;font-size:.875rem;color:var(--encre-2)}
/* venir : un rond d'icône en tête de chaque carte */
.v2-venir .carte{border-radius:32px;box-shadow:none;text-align:center;justify-items:center}
.v2-venir__rond{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:var(--rouge);margin-bottom:10px}
.v2-venir__rond svg{width:24px;height:24px}
@media (min-width:760px){
.v2-avis{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2-etapes{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.v2-etapes li{padding-left:0;text-align:center}
.v2-etapes li::before{left:calc(50% + 40px);right:calc(-50% + 16px);top:27px;bottom:auto;width:auto;height:2px}
.v2-etapes__rond{position:relative;margin:0 auto 6px}
}
/* corrections après capture : cinq massages sans case vide (3 puis 2, comme les motifs), texte des cartes « venir » en haut */
@media (min-width:700px) and (max-width:1079px){
.v2-soins .grille-soins>.carte:last-child{grid-column:1/-1}
}
@media (min-width:1080px){
.v2-soins .grille-soins{grid-template-columns:repeat(6,minmax(0,1fr))}
.v2-soins .grille-soins>.carte{grid-column:span 2}
.v2-soins .grille-soins>.carte:nth-child(4),.v2-soins .grille-soins>.carte:nth-child(5){grid-column:span 3}
}
.c-venir .carte{align-content:start}

/* LA FUSION. Ce qui ne vient ni de la 1 ni de la 2 : son étiquette en bulle (à la place de la pastille du socle,
   présente sur tous les sites du parc), ses horaires en liste, le bouton blanc du bandeau. */
.v4-etiquette{display:inline-flex;align-items:center;gap:10px;font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge);line-height:1.3}
.v4-etiquette::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;background:var(--v2-rose-vif);box-shadow:0 0 0 3px var(--v2-poudre)}
.v4-etiquette--clair{color:#fff}
.v4-etiquette--clair::before{box-shadow:0 0 0 3px rgba(255,255,255,.2)}
/* les motifs sur l'ivoire : les cartes blanches reçoivent un filet rose pour ne pas disparaître */
.v4-clair .v2-motifs .grille-motifs>.carte:nth-child(even){box-shadow:inset 0 0 0 1.5px var(--v2-poudre)}
/* sa phrase sur une bande rose poudré, le surlignage devient clair */
.v2-phrase.v4-phrase{background:var(--v2-poudre)}
.v4-phrase mark{background:linear-gradient(transparent 58%,rgba(255,252,249,.9) 58%,rgba(255,252,249,.9) 92%,transparent 92%)}
/* ses horaires, tirés de config.py par construire.py */
.v4-horaires{margin:0;display:grid;gap:6px}
.v4-horaires div{display:flex;justify-content:space-between;gap:14px}
.v4-horaires dt{font-weight:600}
.v4-horaires dd{margin:0;white-space:nowrap}
.v4-bouton-blanc{background:#fff;color:var(--rouge)}
.v4-bouton-blanc:hover{background:var(--rouge-pale)}

/* RENDEZ-VOUS C · « Tout sous la main ». Une bande bois de rose pleine largeur pour finir la page.
   Ivoire sur bois de rose 6,9:1, rose pâle sur bois de rose 6:1. .v4c__grille.rdv neutralise la carte du socle. */
.v4c{background:var(--rouge);color:#fff;padding-block:clamp(64px,8vw,112px);overflow:hidden}
.v4c__grille.rdv{position:relative;top:auto;align-self:auto;padding:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible;
  display:grid;gap:36px;align-items:center}
.v4c__grille.rdv::after{width:520px;height:520px;right:-260px;top:-300px;background:rgba(255,255,255,.06)}
.v4c__photo{margin:0;width:min(72vw,300px);aspect-ratio:1;border-radius:50%;overflow:hidden;justify-self:center;box-shadow:0 0 0 10px rgba(255,255,255,.14)}
.v4c__photo picture,.v4c__photo img{display:block;width:100%;height:100%;object-fit:cover}
.v4c__texte h2{color:#fff;font-size:clamp(2.1rem,4.4vw,3.2rem);line-height:1.05;margin:16px 0 0}
.v4c__sous{margin:12px 0 0;color:var(--rouge-pale);max-width:30em}
.v4c__num{display:inline-flex;align-items:center;min-height:44px;margin:18px 0 20px;font-family:var(--serif);font-size:clamp(2rem,4.4vw,2.8rem);line-height:1.1;color:#fff;text-decoration:none;white-space:nowrap}
.v4c__num:hover{color:var(--rouge-pale)}
.v4c__actions{display:grid;gap:10px}
.v4c__actions .bouton{width:100%}
.v4c__infos{display:grid;gap:22px;margin-top:32px;padding-top:26px;border-top:1px solid rgba(255,255,255,.2);font-size:.9375rem;color:var(--rouge-pale)}
/* .rdv h3 du socle passe après le thème : .v4c__grille .v4c__infos h3 (0,2,1) l'emporte */
.v4c__grille .v4c__infos h3{max-width:none;line-height:1.3;font-family:var(--sans);font-size:.8125rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;margin:0 0 10px}
.v4c__infos ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.v4c__infos dt{color:#fff}
@media (min-width:760px){
.v4c__actions{grid-template-columns:repeat(3,auto);justify-content:start}
.v4c__actions .bouton{width:auto}
.v4c__infos{grid-template-columns:1fr 1fr;gap:36px}
}
@media (min-width:980px){
.v4c__grille.rdv{grid-template-columns:400px minmax(0,1fr);gap:72px}
.v4c__photo{width:400px}
}

/* LE BANDEAU DES PAGES INTÉRIEURES, habillé comme le bandeau C de l'accueil. Son balisage est celui du socle
   (.rdv.rdv--seul, figé, contrôlé par verif-socle) : on change son apparence, pas son contenu. Il n'a donc pas de
   bouton « Réserver en ligne », que le socle ne prévoit pas.
   Le socle passe APRÈS le thème et pose .rdv.rdv--seul (0,2,0) sur fond encre : :root .rdv.rdv--seul (0,3,0) l'emporte.
   Ivoire sur bois de rose 6,9:1, rose pâle sur bois de rose 6:1. */
:root .rdv.rdv--seul{background:var(--rouge);box-shadow:0 30px 60px -34px rgba(var(--rouge-2-rvb),.6);border-radius:32px}
:root .rdv.rdv--seul::before{background:#fff;opacity:.06}
:root .rdv--seul .rdv__sous{color:var(--rouge-pale)}
:root .rdv--seul .pastille{background:transparent!important;padding:0;gap:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
:root .rdv--seul .pastille::before{width:12px;height:12px;background:var(--v2-rose-vif);box-shadow:0 0 0 3px rgba(255,255,255,.2)}
:root .rdv--seul .bouton--rouge{background:#fff;color:var(--rouge);box-shadow:none}
:root .rdv--seul .bouton--rouge:hover{background:var(--rouge-pale)}
:root .rdv--seul .bouton--clair{box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.62)}

/* L'EN-TÊTE (William, 21/09/2026, proposition 1 « Trois bulles » de entete-anim/comparer.html) : trois bulles de
   tailles différentes à la place du point (sa marque, Ma Bulle), en tête et en pied de page ; les liens du menu en
   encre, bois de rose au survol. Le socle passe après le thème et pose .marque__point (0,1,0) deux fois :
   .marque .marque__point (0,2,0) l'emporte, comme :root .nav__lien. */
.marque .marque__point{width:26px;height:26px;margin-top:2px;border-radius:0;box-shadow:none;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2026%2026%22%3E%3Ccircle%20cx%3D%229.5%22%20cy%3D%2215.5%22%20r%3D%227.5%22%20fill%3D%22%238E3F4E%22/%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%227.5%22%20r%3D%224.5%22%20fill%3D%22%23EDB7C2%22/%3E%3Ccircle%20cx%3D%2221%22%20cy%3D%2218.5%22%20r%3D%222.6%22%20fill%3D%22%238E3F4E%22%20fill-opacity%3D%22.45%22/%3E%3C/svg%3E") center/contain no-repeat}
:root .nav__lien{color:var(--encre)}
:root .nav__lien:hover,:root .nav__lien[aria-expanded="true"]{color:var(--rouge)}
:root .menu-mobile ul a{color:var(--rouge)}
/* correction après mesure : à 360 px, le signe (26 px au lieu des 10 du point) poussait le bouton du menu hors de l'écran
   (page de 373 px). Sous 390 px, signe, écart et sous-titre rétrécissent. */
@media (max-width:389px){
.entete .marque{gap:8px}
.marque .marque__point{width:18px;height:18px;margin-top:4px}
.marque .marque__sous{font-size:.6875rem}
}
/* sous 360 px (les plus petits téléphones), le sous-titre passe sur deux lignes : l'en-tête a la hauteur pour */
@media (max-width:359px){
.marque .marque__sous{white-space:normal;max-width:12.5em;line-height:1.25}
}

/* LES BULLES DU HAUT DE PAGE (William, 21/09/2026, animation B de entete-anim/comparer.html) : sept bulles autour du
   titre, jamais sur le texte ; elles apparaissent (1,1 s), puis flottent doucement sans fin (14 px, 8 à 12 s).
   HORS CATALOGUE (socle/ANIMATIONS.md : une animation dure 1,3 s au plus) : exception choisie par William en
   connaissance de cause, le 21/09/2026. Sans JavaScript, les bulles sont là, immobiles ; si l'appareil demande moins
   de mouvement, rien ne bouge. */
.c-heros{position:relative;overflow:hidden}
.c-heros>.enveloppe{position:relative;z-index:1}
.c-bulles{position:absolute;inset:0 0 auto 0;height:620px;pointer-events:none;z-index:0}
.c-bulles i{position:absolute;display:block;border-radius:50%}
.c-bulles .b1{width:120px;height:120px;left:4%;top:50px;background:var(--v2-poudre);opacity:.85}
.c-bulles .b2{width:46px;height:46px;left:12%;top:300px;background:var(--v2-rose-vif);opacity:.7}
.c-bulles .b3{width:18px;height:18px;left:7%;top:440px;background:var(--rouge);opacity:.8}
.c-bulles .b4{width:64px;height:64px;right:6%;top:36px;box-shadow:inset 0 0 0 1.5px var(--rouge);opacity:.7}
.c-bulles .b5{width:150px;height:150px;right:8%;top:230px;background:var(--v2-poudre);opacity:.75}
.c-bulles .b6{width:28px;height:28px;right:3%;top:440px;background:var(--v2-rose-vif);opacity:.8}
.c-bulles .b7{width:12px;height:12px;left:22%;top:24px;background:var(--rouge);opacity:.55}
/* téléphone (correction après capture) : la place manque autour du texte ; deux bulles seulement, dans les coins,
   au-dessus de l'étiquette, pour ne jamais passer sur le titre ni sur les boutons */
@media (max-width:759px){
.c-bulles .b2,.c-bulles .b3,.c-bulles .b5,.c-bulles .b6,.c-bulles .b7{display:none}
.c-bulles .b1{width:64px;height:64px;left:-24px;top:-18px}
.c-bulles .b4{width:36px;height:36px;right:12px;top:4px}
}
@keyframes bulle-apparait{from{opacity:0;transform:translateY(18px) scale(.6)}}
@keyframes bulle-flotte{0%,100%{translate:0 0}50%{translate:0 -14px}}
.js .c-bulles i{animation:bulle-apparait 1.1s cubic-bezier(.16,1,.3,1) both,bulle-flotte 9s ease-in-out 1.1s infinite}
.js .c-bulles .b2{animation-duration:1.1s,11s}
.js .c-bulles .b3{animation-duration:1.1s,8s}
.js .c-bulles .b4{animation-duration:1.1s,12s}
.js .c-bulles .b5{animation-duration:1.1s,10s}
.js .c-bulles .b6{animation-duration:1.1s,8.5s}
.js .c-bulles .b7{animation-duration:1.1s,9.5s}
@media (prefers-reduced-motion:reduce){
.js .c-bulles i{animation:none}
}

/* PAGES INTÉRIEURES · direction 1 « La bulle », CHOISIE par William le 21/09/2026 (interieures/comparer.html) : la suite
   de l'accueil (« la page ressemble beaucoup à d'autres sites », les pages intérieures gardaient la composition du socle). Bandeau rose poudré à bulles, plus de grande
   carte blanche, titres précédés d'une bulle, « Ce qui t'amène » en bulles de couleur, fiche arrondie. */
.page .page-tete{position:relative;overflow:hidden;background:var(--v2-poudre);padding-block:clamp(16px,3vw,36px) clamp(56px,7vw,96px)}
.page .page-tete::before,.page .page-tete::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.page .page-tete::before{width:360px;height:360px;right:-110px;top:-140px;background:rgba(255,252,249,.55)}
.page .page-tete::after{width:130px;height:130px;left:5%;bottom:-60px;background:var(--v2-rose-vif);opacity:.4}
.page .page-tete>.enveloppe{position:relative;z-index:1}
.page .page-tete .pastille{background:transparent!important;padding:0;gap:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rouge)}
.page .page-tete .pastille::before{width:12px;height:12px;background:var(--v2-rose-vif);box-shadow:0 0 0 3px #fff}
.page .page-tete h1{font-size:clamp(2.5rem,5.2vw,4.2rem)}
.page .page-tete .fiche{border-top:0;border-radius:32px;box-shadow:0 24px 50px -30px rgba(35,26,23,.4)}
.page .page-tete+.section{background:var(--blanc)}
.page .contenu__carte{background:transparent;box-shadow:none;padding:0}
.page .prose{max-width:46rem;margin-inline:auto}
.page .prose h2{display:flex;align-items:center;gap:14px}
.page .prose h2::before{content:"";flex:none;width:14px;height:14px;border-radius:50%;background:var(--v2-rose-vif);box-shadow:0 0 0 4px var(--v2-poudre)}
.page .prose .raisons{display:grid;gap:14px;list-style:none;padding:0;margin:8px 0 28px}
.page .prose .raison{margin:0;padding:22px;border-radius:28px;background:var(--v2-poudre);box-shadow:none;border:0;display:grid;gap:12px;align-content:start}
.page .prose .raison:nth-child(2){background:#fff;box-shadow:inset 0 0 0 1.5px var(--v2-poudre)}
.page .prose .raison:nth-child(3){background:var(--v2-dragee)}
.page .prose .raison:nth-child(4){background:var(--rose)}
.page .prose .raison__icone{border-radius:50%;background:#fff;color:var(--rouge)}
.page .prose p:has(>strong:only-child){margin:28px 0;padding:26px 30px;border-radius:32px;background:var(--rose)}
.page .prose p:has(>strong:only-child) strong{font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2.4vw,1.75rem);line-height:1.3}
.page .encadre-medecin{border-radius:32px;background:var(--rose)}
.page .faq details{border-radius:28px;background:var(--rose)}
.page .faq details[open]{background:var(--v2-poudre)}
.page .lies .grille-soins>.carte{border-radius:32px;box-shadow:inset 0 0 0 1.5px var(--v2-poudre)}
@media (min-width:640px){
.page .prose .raisons{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* correction après capture : la grille du bas gardait le 3 + 1 du socle ; une rangée de bulles teintées, sans orpheline */
.page .lies .grille-soins,.page .lies .grille-motifs{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.page .lies .grille-soins>.carte,.page .lies .grille-motifs>.carte{grid-column:auto;border-radius:32px;box-shadow:none;background:var(--v2-poudre)}
.page .lies :is(.grille-soins,.grille-motifs)>.carte:nth-child(even){background:#fff;box-shadow:inset 0 0 0 1.5px var(--v2-poudre)}
.page .lies :is(.grille-soins,.grille-motifs)>.carte:nth-child(3){background:var(--v2-dragee)}
.page .lies :is(.grille-soins,.grille-motifs) .motif__icone{border-radius:50%;background:#fff}

/* LE MENU « LES MASSAGES » (William, 21/09/2026). Les cinq massages en cartes illustrées, 3 puis 2 (rendu A
   « Mosaïque ») ; en haut du panneau « Prendre rendez-vous », une bulle avec son portrait (rendu C). Dessins à
   l'aquarelle sans visage (jamais de réaliste généré, PHOTOS.md règle 2), décoratifs, donc en fond CSS.
   Produit par assembler-theme.py : un massage sans dessin monté garde sa carte, sans image. */
.nav__item .panneau--soins{width:min(1120px,calc(100vw - 80px))}
.panneau--soins > div:first-child > ul{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.panneau--soins > div:first-child > ul li{grid-column:span 2;border:0}
.panneau--soins > div:first-child > ul li:nth-child(4),.panneau--soins > div:first-child > ul li:nth-child(5){grid-column:span 3}
.panneau--soins .mm-soin{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;height:100%;min-height:0;padding:10px 10px 14px;border-radius:16px;background:#fff;text-decoration:none;box-shadow:inset 0 0 0 1.5px var(--v2-poudre);transition:box-shadow .25s ease}
.panneau--soins .mm-soin:hover,.panneau--soins .mm-soin:focus-visible{background:#fff;box-shadow:inset 0 0 0 2px var(--rouge),0 12px 28px -18px rgba(35,26,23,.4)}
.panneau--soins .mm-soin::before{content:"";display:block;aspect-ratio:16/10;border-radius:10px;margin-bottom:8px;background:var(--rose) center/cover no-repeat}
.panneau--soins > div:first-child > ul li:nth-child(4) .mm-soin::before,.panneau--soins > div:first-child > ul li:nth-child(5) .mm-soin::before{aspect-ratio:16/7}
.panneau--soins .mm-soin__nom{font-size:1.15rem;padding:0 4px}
.panneau--soins .mm-soin__info{white-space:normal;padding:0 4px}
.panneau--soins .mm-soin[href$="maderotherapie-visage/"]::before{background-image:url(images/menu-maderotherapie-visage-640.webp);background-image:image-set(url(images/menu-maderotherapie-visage-640.avif) type("image/avif"),url(images/menu-maderotherapie-visage-640.webp) type("image/webp"))}
.panneau--soins .mm-soin[href$="maderotherapie-corps/"]::before{background-image:url(images/menu-maderotherapie-corps-640.webp);background-image:image-set(url(images/menu-maderotherapie-corps-640.avif) type("image/avif"),url(images/menu-maderotherapie-corps-640.webp) type("image/webp"))}
.panneau--soins .mm-soin[href$="massage-du-ventre/"]::before{background-image:url(images/menu-massage-du-ventre-640.webp);background-image:image-set(url(images/menu-massage-du-ventre-640.avif) type("image/avif"),url(images/menu-massage-du-ventre-640.webp) type("image/webp"))}
.panneau--soins .mm-soin[href$="massage-profond/"]::before{background-image:url(images/menu-massage-profond-640.webp);background-image:image-set(url(images/menu-massage-profond-640.avif) type("image/avif"),url(images/menu-massage-profond-640.webp) type("image/webp"))}
.panneau--soins .mm-soin[href$="reflexologie-cranio-faciale/"]::before{background-image:url(images/menu-reflexologie-cranio-faciale-640.webp);background-image:image-set(url(images/menu-reflexologie-cranio-faciale-640.avif) type("image/avif"),url(images/menu-reflexologie-cranio-faciale-640.webp) type("image/webp"))}
.panneau--soins .pb-cote::before{content:"";display:block;flex:none;width:112px;height:112px;border-radius:50%;margin:2px 0 18px 4px;background:center 28%/cover no-repeat;background-image:url(images/portrait-olivia-480.webp);background-image:image-set(url(images/portrait-olivia-480.avif) type("image/avif"),url(images/portrait-olivia-480.webp) type("image/webp"));box-shadow:0 0 0 5px #fff,0 10px 26px -12px rgba(35,26,23,.35)}
.nav__item .panneau--motifs.pm2{width:min(1120px,calc(100vw - 80px))}
.nav__item .panneau ul.pm2__grille{grid-template-columns:repeat(6,minmax(0,1fr)) 300px;gap:12px;align-items:stretch}
.nav__item .panneau ul.pm2__grille>li{grid-column:span 2}
.nav__item .panneau ul.pm2__grille>li:nth-child(4),.nav__item .panneau ul.pm2__grille>li:nth-child(5){grid-column:span 3}
.nav__item .panneau ul.pm2__grille>li.pm2__aide{grid-column:7;grid-row:1/3}
.nav__item .pm2__motif{display:flex;flex-direction:column;gap:4px;height:100%;padding:10px 10px 14px;border-radius:16px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--v2-poudre);transition:box-shadow .25s ease}
.nav__item .pm2__motif:hover,.nav__item .pm2__motif:focus-visible{background:#fff;box-shadow:inset 0 0 0 2px var(--rouge),0 12px 28px -18px rgba(35,26,23,.4)}
.nav__item .pm2__motif::before{content:"";display:block;aspect-ratio:16/10;border-radius:10px;margin-bottom:8px;background:var(--rose) center/cover no-repeat}
.nav__item .panneau ul.pm2__grille>li:nth-child(4) .pm2__motif::before,.nav__item .panneau ul.pm2__grille>li:nth-child(5) .pm2__motif::before{aspect-ratio:16/7}
.nav__item .pm2__nom,.nav__item .pm2__phrase{padding:0 4px}
.nav__item .pm2__aide{justify-content:flex-start;padding:26px 24px 22px;background:var(--rose)}
.nav__item .pm2__aide::before{content:"";display:block;flex:none;width:112px;height:112px;border-radius:50%;margin:2px 0 18px 4px;background:center 28%/cover no-repeat;background-image:url(images/portrait-olivia-480.webp);background-image:image-set(url(images/portrait-olivia-480.avif) type("image/avif"),url(images/portrait-olivia-480.webp) type("image/webp"));box-shadow:0 0 0 5px #fff,0 10px 26px -12px rgba(35,26,23,.35)}
.nav__item .pm2__aide .bouton{margin-top:auto;width:100%}
.nav__item .pm2__motif[href$="charge-mentale/"]::before{background-image:url(images/menu-charge-mentale-640.webp);background-image:image-set(url(images/menu-charge-mentale-640.avif) type("image/avif"),url(images/menu-charge-mentale-640.webp) type("image/webp"))}
.nav__item .pm2__motif[href$="accompagnement/"]::before{background-image:url(images/menu-accompagnement-640.webp);background-image:image-set(url(images/menu-accompagnement-640.avif) type("image/avif"),url(images/menu-accompagnement-640.webp) type("image/webp"))}
.nav__item .pm2__motif[href$="premiere-seance/"]::before{background-image:url(images/menu-premiere-seance-640.webp);background-image:image-set(url(images/menu-premiere-seance-640.avif) type("image/avif"),url(images/menu-premiere-seance-640.webp) type("image/webp"))}
.nav__item .pm2__motif[href$="massage-a-domicile/"]::before{background-image:url(images/menu-massage-a-domicile-640.webp);background-image:image-set(url(images/menu-massage-a-domicile-640.avif) type("image/avif"),url(images/menu-massage-a-domicile-640.webp) type("image/webp"))}
.nav__item .pm2__motif[href$="bon-cadeau/"]::before{background-image:url(images/menu-bon-cadeau-640.webp);background-image:image-set(url(images/menu-bon-cadeau-640.avif) type("image/avif"),url(images/menu-bon-cadeau-640.webp) type("image/webp"))}

/* SOCLE · structure et composants communs à tous les sites clients.
   Ne contient AUCUNE couleur en dur ni aucune police : tout passe par les jetons de theme.css.
   Extrait le 2026-09-17 d'un site du parc (histoire : socle/README.md).
   AUCUNE donnée de cliente ici : ce fichier part dans chaque site (neutralite.mjs le vérifie). */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--entete) + 12px)}
body{margin:0;background:var(--blanc);color:var(--encre);font-family:var(--sans);font-size:17px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--encre);margin:0;letter-spacing:-.01em;text-wrap:balance}
p{margin:0 0 1em;text-wrap:pretty}
p:last-child{margin-bottom:0}
strong{font-weight:600}
:focus-visible{outline:3px solid var(--rouge);outline-offset:3px;border-radius:8px}
.saut{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--encre);color:#fff;padding:10px 16px;border-radius:999px;text-decoration:none}
.saut:focus{left:12px}

.enveloppe{width:100%;max-width:1240px;margin-inline:auto;padding-inline:var(--gouttiere)}
.section{padding-block:clamp(72px,9vw,128px)}
.fond-eau{background:var(--eau)}
.fond-rose{background:var(--rose)}
.fond-gris{background:var(--gris)}

/* Pastilles */
.pastille{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-size:.8125rem;font-weight:600;letter-spacing:.02em;line-height:1.3;background:var(--rouge-pale);color:var(--rouge)}
.pastille::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pastille--eau{background:#fff;color:var(--eau-texte)}
.pastille--rose{background:#fff;color:var(--rouge)}
.pastille--gris{background:#fff;color:var(--gris-texte)}
.pastille--simple::before{display:none}

/* Titres */
.titre-section{font-size:clamp(2.1rem,4.4vw,3.4rem);line-height:1.08;margin-top:18px}
.chapeau{font-size:clamp(1.0625rem,1.4vw,1.1875rem);color:var(--encre-2);max-width:36em}

/* Boutons */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;font-family:var(--sans);font-size:1rem;font-weight:600;text-decoration:none;border:0;cursor:pointer;white-space:nowrap;transition:background-color .2s ease,transform .2s ease,box-shadow .2s ease,color .2s ease}
.bouton svg{width:18px;height:18px;flex:none}
.bouton--rouge{background:var(--rouge);color:#fff;box-shadow:0 8px 20px -8px rgba(var(--rouge-rvb),.55)}
.bouton--rouge:hover{background:var(--rouge-2);transform:translateY(-1px);box-shadow:0 12px 24px -10px rgba(var(--rouge-rvb),.6)}
.bouton--clair{background:#fff;color:var(--encre);box-shadow:inset 0 0 0 1.5px var(--ligne),var(--ombre)}
.bouton--clair:hover{transform:translateY(-1px);box-shadow:inset 0 0 0 1.5px rgba(var(--encre-rvb),.16),var(--ombre-haute)}
.bouton--petit{min-height:44px;padding:0 20px;font-size:.9375rem}
.lien-fleche{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--encre);text-decoration:none;min-height:44px;border-bottom:0}
.lien-fleche span{background:linear-gradient(currentColor,currentColor) 0 100%/100% 1.5px no-repeat;padding-bottom:2px;transition:background-size .25s ease}
.lien-fleche svg{width:18px;height:18px;transition:transform .25s ease;color:var(--rouge)}
.lien-fleche:hover svg{transform:translateX(4px)}

/* ============ En-tête ============ */
.entete{position:sticky;top:0;z-index:50;height:var(--entete);transition:background-color .3s ease,box-shadow .3s ease,backdrop-filter .3s ease}
.entete.defile{background:rgba(255,255,255,.78);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);box-shadow:0 1px 0 var(--ligne)}
.entete .enveloppe{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.marque{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:44px}
.marque__point{width:10px;height:10px;border-radius:50%;background:var(--rouge);flex:none;box-shadow:0 0 0 4px var(--rouge-pale)}
.marque__nom{font-family:var(--serif);font-size:1.375rem;line-height:1;letter-spacing:-.01em;white-space:nowrap}
.nav{display:none}
.nav__liste{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:2px}
.nav__item{position:relative}
.nav__item--large{position:static}
.nav__lien{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 13px;border:0;background:none;font-family:var(--sans);font-size:.9375rem;font-weight:500;color:var(--encre-2);text-decoration:none;cursor:pointer;white-space:nowrap;transition:color .3s ease}
.nav__lien::after{content:"";position:absolute;left:13px;right:13px;bottom:8px;height:1px;background:var(--rouge);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.nav__lien:hover,.nav__lien[aria-expanded="true"]{color:var(--encre)}
.nav__lien:hover::after,.nav__lien[aria-expanded="true"]::after{transform:scaleX(1)}
.nav__lien svg{width:12px;height:12px;transition:transform .35s ease}
.nav__lien[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav__lien--declencheur::after{right:31px}
.entete.deploye{background:rgba(255,255,255,.9);-webkit-backdrop-filter:saturate(1.4) blur(18px);backdrop-filter:saturate(1.4) blur(18px);box-shadow:0 1px 0 var(--ligne)}
.entete__grille{position:relative}
.entete__actions{display:flex;align-items:center;gap:8px}
.entete__appel{display:none}
.petites-caps{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;line-height:1.2}

/* Méga-menu */
.panneau{position:absolute;top:calc(50% + 34px);z-index:60;background:#fff;border-radius:22px;box-shadow:0 0 0 1px rgba(var(--encre-rvb),.06),0 30px 60px -24px rgba(var(--encre-rvb),.24);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}
.panneau::before{content:"";position:absolute;left:0;right:0;top:-14px;height:14px}
.panneau.ouvert{opacity:1;visibility:visible;transform:none;transition:opacity .3s ease,transform .3s ease}
.panneau--soins,.panneau--motifs{left:0;right:0;margin-inline:auto;width:min(1000px,calc(100vw - 80px));padding:14px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}
.panneau ul{list-style:none;margin:0;padding:0}
.panneau__titre{margin:0;padding:14px 18px 10px;color:var(--encre-3)}
.mm-soin{display:flex;align-items:baseline;justify-content:space-between;gap:24px;min-height:52px;padding:12px 18px;border-radius:12px;text-decoration:none;transition:background-color .25s ease}
.mm-soin:hover,.mm-soin:focus-visible{background:var(--eau)}
.mm-soin__nom{font-family:var(--serif);font-size:1.25rem;line-height:1.2;color:var(--encre)}
.mm-soin__info{font-size:.875rem;color:var(--encre-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.panneau__cote{background:var(--eau);border-radius:14px;display:flex;flex-direction:column}
.pb-cote{padding:26px 24px 20px}
.pb-etiquette{color:var(--eau-texte);margin:0}
.pb-tel{font-family:var(--serif);font-size:2rem;line-height:1.1;color:var(--encre);text-decoration:none;margin-top:12px;white-space:nowrap}
.pb-tel:hover{color:var(--rouge)}
.pb-sous{margin:4px 0 0;font-size:.875rem;color:var(--encre-2)}
.panneau ul.pb-horaires{margin-top:20px;border-top:1px solid rgba(var(--encre-rvb),.1)}
.pb-horaires li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid rgba(var(--encre-rvb),.1);font-size:.875rem;color:var(--encre-2);font-variant-numeric:tabular-nums}
.pb-horaires li span:last-child{color:var(--encre);font-weight:500}
.pb-lieu{display:flex;align-items:flex-start;line-height:1.5;gap:8px;margin:14px 0 0;font-size:.875rem;color:var(--encre-2)}
.pb-lieu svg{width:16px;height:16px;margin-top:3px;flex:none;color:var(--rouge)}
.pb-actions{margin-top:auto;padding-top:22px;display:grid;gap:6px}
.pb-actions .bouton{width:100%}
.pb-actions .lien-fleche{justify-self:center;font-size:.9375rem}
.pm-motif{display:flex;align-items:center;gap:18px;padding:14px 18px;border-radius:12px;text-decoration:none;transition:background-color .25s ease}
.pm-motif:hover,.pm-motif:focus-visible{background:var(--eau)}
.pm-motif__texte{flex:1 1 auto;min-width:0}
.pm-motif__nom{display:block;font-family:var(--serif);font-size:1.25rem;line-height:1.2;color:var(--encre)}
.pm-motif__phrase{display:block;margin-top:3px;font-size:.875rem;line-height:1.45;color:var(--encre-3)}
.pm-motif__soins{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px}
.pm-motif__etiquette{font-size:.75rem;color:var(--encre-3);margin-right:2px}
.pm-pilule{font-size:.75rem;font-weight:500;line-height:1;padding:5px 10px;border-radius:999px;background:var(--eau);color:var(--eau-texte);white-space:nowrap}
.pm-motif:hover .pm-pilule{background:#fff}
.pm-motif__fleche{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:var(--encre);box-shadow:inset 0 0 0 1px var(--ligne);transition:background-color .25s ease,color .25s ease}
.pm-motif__fleche svg{width:15px;height:15px}
.pm-motif:hover .pm-motif__fleche{background:var(--rouge);color:#fff;box-shadow:none}
.pm-cote__texte{margin:10px 0 0;font-family:var(--serif);font-size:1.3rem;line-height:1.25;color:var(--encre)}
.pm .pb-tel{margin-top:16px;font-size:1.75rem}
.panneau--motifs.pm2{display:block;width:min(960px,calc(100vw - 80px));padding:14px 14px 16px}
.pm2 .panneau__titre{padding:12px 18px 8px}
.panneau ul.pm2__grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.pm2__motif{display:block;height:100%;padding:16px 18px 18px;border-radius:14px;text-decoration:none;transition:background-color .25s ease}
.pm2__motif:hover,.pm2__motif:focus-visible{background:var(--eau)}
.pm2__nom{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:1.2rem;line-height:1.2;color:var(--encre)}
.pm2__nom svg{width:15px;height:15px;color:var(--rouge);opacity:0;translate:-6px 0;transition:opacity .25s ease,translate .35s cubic-bezier(.16,1,.3,1)}
.pm2__motif:hover .pm2__nom svg,.pm2__motif:focus-visible .pm2__nom svg{opacity:1;translate:0 0}
.pm2__phrase{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:6px;font-size:.875rem;line-height:1.45;color:var(--encre-3)}
.pm2__aide{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px 18px 18px;border-radius:14px;background:var(--eau)}
.pm2__aide-titre{margin:0;font-family:var(--serif);font-size:1.2rem;line-height:1.2;color:var(--encre)}
.pm2__aide-texte{margin:0 0 6px;font-size:.875rem;line-height:1.45;color:var(--encre-2)}
/* les lignes des menus arrivent en cascade */
.panneau>div>ul>li{opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .5s cubic-bezier(.16,1,.3,1)}
.panneau.ouvert>div>ul>li{opacity:1;transform:none}
.panneau.ouvert>div>ul>li:nth-child(2){transition-delay:.04s}.panneau.ouvert>div>ul>li:nth-child(3){transition-delay:.08s}.panneau.ouvert>div>ul>li:nth-child(4){transition-delay:.12s}.panneau.ouvert>div>ul>li:nth-child(5){transition-delay:.16s}.panneau.ouvert>div>ul>li:nth-child(6){transition-delay:.2s}

/* Burger + menu téléphone plein écran */
.burger{width:48px;height:48px;border-radius:50%;border:0;background:transparent;box-shadow:inset 0 0 0 1px var(--ligne);color:var(--encre);display:inline-grid;place-items:center;cursor:pointer;position:relative;z-index:60;margin-right:-4px}
.burger span{position:absolute;left:15px;width:18px;height:1.5px;border-radius:2px;background:currentColor;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.burger span:nth-child(1){top:20px}
.burger span:nth-child(2){top:27px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}
.menu-mobile{position:fixed;inset:0;z-index:40;background:#fff;padding-top:var(--entete);display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
.menu-mobile.ouvert{opacity:1;visibility:visible;transition:opacity .35s ease}
.menu-mobile__defile{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px var(--gouttiere) 28px;border-top:1px solid var(--ligne)}
.menu-mobile__groupe{margin:28px 0 6px;color:var(--encre-3)}
.menu-mobile ul{list-style:none;margin:0;padding:0}
.menu-mobile li{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.menu-mobile.ouvert li{opacity:1;transform:none;transition-delay:calc(var(--i,0) * 32ms + 80ms)}
.menu-mobile li+li{border-top:1px solid var(--ligne)}
.menu-mobile ul a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;min-height:56px;padding:14px 0;font-family:var(--serif);font-size:1.3125rem;line-height:1.2;text-decoration:none;color:var(--encre)}
.menu-mobile__prix{font-family:var(--sans);font-size:.9375rem;color:var(--encre-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.menu-mobile__bas{flex:none;padding:14px var(--gouttiere) calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--ligne);display:grid;grid-template-columns:minmax(0,1fr);gap:8px;background:#fff}
.menu-mobile__bas .bouton{min-height:50px;padding:0 20px;width:100%}
.menu-mobile__infos{grid-column:1/-1;margin:2px 0 0;font-size:.875rem;color:var(--encre-3);text-align:center}
html.menu-ouvert,body.menu-ouvert{overflow:hidden}

@media (min-width:1180px){
  .entete__grille{display:grid!important;grid-template-columns:1fr auto 1fr}
  .nav{display:block}
  .entete__actions{justify-self:end}
  .burger,.menu-mobile{display:none}
  .entete__appel{display:inline-flex}
}

/* ============ Héros ============ */
.heros{padding-block:clamp(24px,5vw,72px) clamp(56px,9vw,120px);position:relative}
.heros__grille{display:grid;gap:48px;align-items:center}
.heros__texte .pastille{margin-bottom:22px}
.heros h1{font-size:clamp(2.5rem,5vw,4.25rem);line-height:1.02;letter-spacing:-.02em}
.heros h1 .h1-suite{display:block;color:var(--encre-2);font-size:.62em;line-height:1.15;margin-top:.35em;letter-spacing:-.01em}
.heros h1 .h1-suite em{font-style:normal;color:var(--rouge)}
.heros__chapo{margin-top:24px;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.6;color:var(--encre-2);max-width:32em}
.heros__actions{margin-top:32px;display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:559px){.heros__actions .bouton{flex:1 1 100%}.heros__reperes{gap:10px 18px}}
.heros__reperes{margin:36px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.9375rem;color:var(--encre-2)}
.heros__reperes li{display:flex;align-items:center;gap:8px}
.heros__reperes svg{width:18px;height:18px;color:var(--eau-texte);flex:none}

.cadre{position:relative;isolation:isolate;margin:0 8px 8px 0}
.cadre__fond{position:absolute;z-index:-1;inset:28px -8px -8px 28px;border-radius:32px;background:var(--eau)}
.cadre__rond{position:absolute;z-index:-1;width:88px;height:88px;border-radius:50%;background:var(--rose);top:-20px;right:18%}
.cadre__point{position:absolute;z-index:2;width:14px;height:14px;border-radius:50%;background:var(--rouge);top:22px;right:-4px;box-shadow:0 0 0 6px #fff}
.cadre__photo{border-radius:28px;overflow:hidden;aspect-ratio:4/3.3;background:var(--encre);box-shadow:var(--ombre-haute)}
.cadre__photo img{width:100%;height:100%;object-fit:cover;object-position:38% 55%}
.carte-flottante{position:absolute;z-index:3;left:16px;bottom:16px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;padding:14px 18px;box-shadow:var(--ombre-haute);display:flex;align-items:center;gap:14px;max-width:calc(100% - 32px)}
.carte-flottante__icone{width:44px;height:44px;border-radius:14px;background:var(--rouge-pale);color:var(--rouge);display:grid;place-items:center;flex:none}
.carte-flottante__icone svg{width:22px;height:22px}
.carte-flottante__haut{font-size:.8125rem;color:var(--encre-3);line-height:1.3}
.carte-flottante__bas{font-family:var(--serif);font-size:1.25rem;line-height:1.2}

@media (min-width:980px){
  .heros__grille{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:64px}
  .cadre{margin:0 0 20px 0}
  .cadre__fond{inset:48px -24px -24px 48px;border-radius:40px}
  .cadre__photo{aspect-ratio:4/4.6;border-radius:32px}
  .cadre__photo img{object-position:30% 50%}
  .carte-flottante{left:-40px;bottom:48px;padding:16px 22px}
}

/* ============ Motifs ============ */
.entete-section{display:grid;gap:20px;margin-bottom:48px}
@media (min-width:980px){
  .entete-section{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:end;margin-bottom:64px}
  .entete-section .chapeau{padding-bottom:6px}
}
.grille-motifs{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:640px){.grille-motifs{grid-template-columns:repeat(2,minmax(0,1fr))}.grille-motifs>:last-child{grid-column:1/-1}}
@media (min-width:980px){
  .grille-motifs{grid-template-columns:repeat(6,minmax(0,1fr));gap:20px}
  .grille-motifs>*{grid-column:span 2}
  .grille-motifs>:nth-child(4),.grille-motifs>:nth-child(5){grid-column:span 3}
}
.carte{background:#fff;border-radius:var(--r);box-shadow:var(--ombre);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s cubic-bezier(.2,.7,.2,1)}
a.carte{text-decoration:none;color:inherit;display:flex;flex-direction:column}
a.carte:hover{transform:translateY(-4px);box-shadow:var(--ombre-haute)}
.motif{padding:28px;min-height:100%}
.motif__icone{width:52px;height:52px;border-radius:16px;background:var(--eau);color:var(--eau-texte);display:grid;place-items:center;margin-bottom:24px}
.motif__icone svg{width:26px;height:26px}
.motif h3{font-size:1.625rem;line-height:1.15;margin-bottom:10px}
.motif p{color:var(--encre-2);font-size:1rem;line-height:1.6;margin-bottom:24px;text-wrap:wrap;max-width:32em}
.motif__suite{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:.9375rem;font-weight:600;color:var(--encre)}
.rond-fleche{width:40px;height:40px;border-radius:50%;background:var(--eau);color:var(--encre);display:grid;place-items:center;transition:background-color .25s,color .25s,transform .25s}
.rond-fleche svg{width:18px;height:18px}
a.carte:hover .rond-fleche{background:var(--rouge);color:#fff}

/* ============ Séance ============ */
.seance__grille{display:grid;gap:48px}
.seance__citation{font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,1.9rem);line-height:1.2;color:var(--encre);margin:28px 0 20px;letter-spacing:-.01em}
.seance__citation .guillemet{color:var(--rouge)}
.seance__intro{color:var(--encre-2);max-width:30em}
.etapes{display:grid;gap:16px;counter-reset:etape}
.etape{position:relative;padding:32px 28px 30px;border-radius:var(--r);background:var(--gris)}
.etape:nth-child(2){background:var(--eau)}
.etape__tete{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.etape__num{font-family:var(--serif);font-size:1rem;width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;color:var(--rouge)}
.etape__icone{width:40px;height:40px;color:var(--encre-2)}
.etape h3{font-size:clamp(1.5rem,2.4vw,1.875rem);line-height:1.15;margin-bottom:12px}
.etape p{color:var(--encre-2);font-size:1rem}
.phrase-forte{margin-top:clamp(56px,7vw,96px);text-align:center;font-family:var(--serif);font-size:clamp(1.875rem,4.2vw,3.25rem);line-height:1.12;letter-spacing:-.015em;max-width:18em;margin-inline:auto}
.phrase-forte span{position:relative;white-space:nowrap}
.phrase-forte span::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.34em;background:var(--rose-fonce);z-index:-1;border-radius:4px}
.phrase-forte{position:relative;z-index:0}
@media (min-width:980px){
  .seance__grille{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:96px;align-items:start}
  .seance__gauche{position:sticky;top:calc(var(--entete) + 40px)}
  .etapes{gap:20px}
  .etape{padding:40px 40px 38px}
  .etape:nth-child(2){margin-left:48px}
}

/* ============ Soins ============ */
.grille-soins{display:grid;gap:16px}
@media (min-width:700px){.grille-soins{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1080px){.grille-soins{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
.soin{padding:28px;min-height:100%}
.soin__tete{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px}
.soin__duree{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;color:var(--encre-2);background:var(--gris);padding:6px 12px;border-radius:999px;line-height:1.3}
.soin__duree svg{width:14px;height:14px;flex:none}
.soin__prix{font-family:var(--serif);font-size:1.75rem;line-height:1;color:var(--encre);white-space:nowrap}
.soin h3{font-size:1.5rem;line-height:1.18;margin-bottom:10px}
.soin p{font-size:1rem;color:var(--encre-2);margin-bottom:24px}
.soin .motif__suite .rond-fleche{background:var(--rose)}
.soin--vedette{background:#fff;box-shadow:inset 0 0 0 2px var(--rouge),var(--ombre)}
.soin--vedette .soin__duree{background:var(--rouge-pale);color:var(--rouge)}
.soin--vedette .soin__prix{color:var(--rouge)}
.soin--vedette .rond-fleche{background:var(--rouge)!important;color:#fff}

/* ============ Médecine chinoise ============ */
.mtc{display:grid;gap:40px}
.mtc__question{display:none;position:relative;padding:36px 30px;border-radius:var(--r);background:var(--rose);overflow:hidden}
.mtc__question::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;border:28px solid rgba(255,255,255,.55);right:-60px;bottom:-70px}
.mtc__question p{position:relative;z-index:1;font-family:var(--serif);font-size:clamp(1.625rem,2.8vw,2.25rem);line-height:1.2;margin:0}
.mtc__question small{display:block;font-family:var(--sans);font-size:.875rem;color:var(--encre-2);margin-bottom:14px;letter-spacing:.01em}
.mtc__texte p{color:var(--encre-2)}
.mtc__encadre{margin:28px 0;padding:20px 22px;border-radius:18px;background:var(--gris);display:flex;gap:14px;align-items:flex-start;color:var(--encre)}
.mtc__encadre svg{width:22px;height:22px;flex:none;color:var(--gris-texte);margin-top:3px}
.mtc__encadre p{color:var(--encre-2);margin:0}
.lien-texte{color:var(--rouge);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
.lien-texte:hover{color:var(--rouge-2)}
@media (min-width:980px){
  .mtc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:center}
  .mtc__question{display:block;padding:48px 44px;margin-top:40px}
}

/* ============ Qui je suis ============ */
.qui{display:grid;gap:20px}
.qui__carte{padding:32px 28px}
.qui__carte p{color:var(--encre-2)}
.qui__carte .titre-section{margin-bottom:24px}
.qui__citation{padding:32px 28px;border-radius:var(--r);background:var(--rouge);color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:28px;position:relative;overflow:hidden}
.qui__citation::before{content:"";position:absolute;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08);right:-70px;top:-70px}
.qui__citation svg{width:40px;height:40px;opacity:.9}
.qui__citation blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.75rem,2.8vw,2.375rem);line-height:1.15;position:relative}
.qui__citation figcaption{font-size:.9375rem;opacity:.9}
.jalons{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.jalon{background:#fff;border-radius:20px;padding:20px 22px;box-shadow:var(--ombre);display:flex;gap:18px;align-items:baseline}
.jalon__chiffre{font-family:var(--serif);font-size:1.75rem;line-height:1;color:var(--gris-texte);min-width:4.2em;white-space:nowrap}
.jalon__texte{font-size:.9375rem;line-height:1.5;color:var(--encre-2)}
@media (min-width:980px){
  .qui{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);grid-template-rows:auto auto;gap:20px}
  .qui__carte{grid-row:1/3;padding:56px 56px 52px}
  .qui__citation{padding:40px}
}

/* ============ Ce que je ne fais pas ============ */
.limites{display:grid;gap:24px;align-items:center;padding:32px 28px;border-radius:var(--r);background:#fff;box-shadow:var(--ombre-haute)}
.limites__icone{width:56px;height:56px;border-radius:18px;background:var(--gris);color:var(--gris-texte);display:grid;place-items:center}
.limites__icone svg{width:28px;height:28px}
.limites h2{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.1}
.limites p{color:var(--encre-2);margin:0}
.limites strong{color:var(--encre)}
.limites a{color:var(--rouge);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
@media (min-width:860px){.limites{grid-template-columns:auto minmax(0,.8fr) minmax(0,1.4fr);gap:40px;padding:44px 48px}}

/* ============ Venir ============ */
.venir{display:grid;gap:20px}
.venir__carte{padding:32px 28px}
.venir__carte p{color:var(--encre-2)}
.adresse{display:flex;gap:14px;align-items:flex-start;margin:28px 0;padding:18px 20px;border-radius:18px;background:var(--eau)}
.adresse svg{width:22px;height:22px;color:var(--eau-texte);flex:none;margin-top:3px}
.adresse strong{display:block;font-size:1.0625rem;color:var(--encre)}
.adresse span{color:var(--encre-2);font-size:.9375rem}
.horaires{list-style:none;margin:24px 0 0;padding:0}
.horaires li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--ligne);font-size:1rem}
.horaires li:last-child{border-bottom:1px solid var(--ligne)}
.horaires span:first-child{font-weight:500}
.horaires span:last-child{color:var(--encre-2);text-align:right;font-variant-numeric:tabular-nums}
.horaires li.ferme span{color:var(--encre-3);font-weight:400}
.rdv{padding:36px 28px;border-radius:var(--r);background:#fff;box-shadow:var(--ombre);position:relative;overflow:hidden}
.rdv::after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;background:var(--rose);right:-50px;top:-50px;z-index:0}
.rdv>*{position:relative;z-index:1}
.rdv h3{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1;margin:18px 0 14px;max-width:12em}
.rdv__num{display:block;font-family:var(--serif);font-size:clamp(2rem,4vw,2.75rem);line-height:1.1;color:var(--encre);text-decoration:none;margin:20px 0 24px;white-space:nowrap}
.rdv__num:hover{color:var(--rouge)}
.rdv__actions{display:grid;gap:12px}
.rdv__actions .bouton{width:100%}
@media (min-width:980px){
  .venir{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:stretch}
  .venir__carte{padding:52px 56px}
  .rdv{padding:52px 48px;align-self:start;position:sticky;top:calc(var(--entete) + 32px)}
  .rdv__actions{grid-template-columns:1fr 1fr}
}

/* ============ Pied ============ */
.pied{padding-block:56px 40px;border-top:1px solid var(--ligne)}
.pied__grille{display:grid;gap:32px}
.pied__marque .marque{margin-bottom:12px}
.pied p,.pied li{color:var(--encre-2);font-size:.9375rem;line-height:1.6}
.pied h4{margin:0 0 12px;font-size:.8125rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.pied ul{list-style:none;margin:0;padding:0}
.pied ul a{display:inline-flex;min-height:36px;align-items:center;text-decoration:none}
.pied ul a:hover{color:var(--rouge)}
.pied__bas{margin-top:40px;padding-top:24px;border-top:1px solid var(--ligne);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:.875rem;color:var(--encre-3)}
.pied__bas a{text-decoration:none;display:inline-flex;min-height:44px;align-items:center}
.pied__grille{grid-template-columns:1fr 1fr}
.pied__marque{grid-column:1/-1}
@media (min-width:860px){.pied__grille{grid-template-columns:1.4fr 1fr 1fr 1fr}.pied__marque{grid-column:auto}}

/* Barre d'appel mobile */
.barre-appel{position:fixed;left:12px;right:12px;bottom:12px;z-index:45;display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px;border-radius:999px;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 32px -8px rgba(var(--encre-rvb),.28),inset 0 0 0 1px var(--ligne);transform:translateY(140%);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.barre-appel.visible{transform:none}
.barre-appel .bouton{min-height:48px}
.barre-appel .bouton--clair{box-shadow:none;background:var(--eau);padding:0 18px}
@media (min-width:980px){.barre-appel{display:none}}
@media (max-width:979px){.pied{padding-bottom:110px}}

/* Apparitions */
.js .apparait{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.js .apparait.vu{opacity:1;transform:none}
.js .apparait[data-delai="1"]{transition-delay:.08s}
.js .apparait[data-delai="2"]{transition-delay:.16s}
.js .apparait[data-delai="3"]{transition-delay:.24s}
.js .apparait[data-delai="4"]{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;transition-delay:0s!important}
  .js .apparait{opacity:1;transform:none}
  a.carte:hover,.bouton:hover{transform:none}
}


/* ================================================================
   Pages intérieures, dans la charte de la maquette C validée par William le 16/09/2026
   ================================================================ */
.ariane{font-size:.875rem;color:var(--encre-3);margin-bottom:6px}
.ariane ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:0 8px}
.ariane li{display:flex;align-items:center;gap:8px}
.ariane li+li::before{content:"·";color:var(--encre-3)}
.ariane a{color:var(--encre-2);text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.ariane a:hover{color:var(--rouge)}
.ariane [aria-current]{color:var(--encre-3)}

.page-tete{padding-block:clamp(8px,2vw,24px) clamp(48px,6vw,88px)}
.page-tete__grille{display:grid;gap:32px;align-items:end}
.page-tete .pastille{margin-top:10px}
.page-tete h1{font-size:clamp(2.25rem,4.6vw,3.75rem);line-height:1.05;letter-spacing:-.02em;margin-top:18px;max-width:15em}
.page-tete .heros__actions{margin-top:28px}
@media (min-width:980px){.page-tete__grille.avec-fiche{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:56px}}

.fiche{padding:26px 26px 22px;position:relative;overflow:hidden}
.fiche{border-top:4px solid var(--rouge)}
.fiche>*{position:relative;z-index:1}
.fiche__haut{font-size:.8125rem;color:var(--encre-3);letter-spacing:.02em}
.fiche__prix{font-family:var(--serif);font-size:2.6rem;line-height:1.05;color:var(--encre);margin:6px 0 4px}
.fiche__duree{display:inline-flex;align-items:center;gap:6px;font-size:.8125rem;font-weight:600;color:var(--encre-2);background:var(--gris);padding:6px 12px;border-radius:999px}
.fiche__duree svg{width:14px;height:14px}
.fiche .bouton{width:100%;margin-top:20px}
.fiche__liste{list-style:none;margin:14px 0 0;padding:0}
.fiche__liste li+li{border-top:1px solid var(--ligne)}
.fiche__liste a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;text-decoration:none;color:var(--encre);font-weight:500}
.fiche__liste a span{color:var(--encre-3);font-size:.875rem;font-weight:400;white-space:nowrap}
.fiche__liste a:hover{color:var(--rouge)}

.contenu__carte{padding:clamp(28px,5.5vw,72px)}
.prose{max-width:44rem}
.prose h2{font-size:clamp(1.75rem,3vw,2.375rem);line-height:1.12;margin:56px 0 18px}
.prose>.bloc:first-child h2{margin-top:0}
.prose h3{font-size:1.4rem;line-height:1.22;margin:32px 0 10px}
.prose p,.prose li{color:var(--encre-2)}
.prose p{margin:0 0 1em}
.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1.1em}
.prose li{margin-bottom:.45em;padding-left:.2em}
.prose li::marker{color:var(--rouge)}
.prose strong{color:var(--encre)}
.prose a{color:var(--rouge);font-weight:600;text-decoration-thickness:1.5px;text-underline-offset:3px}
.prose a:hover{color:var(--rouge-2)}
.prose blockquote{margin:28px 0;padding:24px 28px;border-radius:20px;background:var(--rose)}
.prose blockquote p{font-family:var(--serif);font-size:1.4rem;line-height:1.3;color:var(--encre)}
.tableau{overflow-x:auto;margin:20px 0 28px}
.prose table{width:100%;border-collapse:collapse;font-size:.9375rem}
.prose th{text-align:left;font-weight:600;color:var(--encre-3);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;padding:10px 14px 10px 0;border-bottom:1px solid var(--ligne)}
.prose td{padding:12px 14px 12px 0;border-bottom:1px solid var(--ligne);vertical-align:top;color:var(--encre)}
.prose td a{display:inline-flex;align-items:center;min-height:40px}
/* la liste du blog (monteur.liste_articles, et l'atelier qui dessine la même) : elle vit dans la prose,
   on y annule donc ce que la prose donne aux listes et aux liens */
.prose ul.articles{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:14px}
.prose .articles li.articles__un{margin:0;padding:0}
.prose .articles li.articles__un::marker{content:none}
.prose a.articles__lien{display:flex;flex-direction:column;gap:8px;padding:22px 24px;border-radius:22px;border:1px solid var(--ligne);color:var(--encre);font-weight:400;text-decoration:none;transition:border-color .25s,box-shadow .25s}
.prose a.articles__lien:hover{color:var(--encre);border-color:transparent;box-shadow:var(--ombre)}
.articles__titre{font-family:var(--serif);font-size:1.35rem;line-height:1.2;color:var(--encre)}
.articles__resume{color:var(--encre-2);font-size:.975rem;line-height:1.55}
.articles .motif__suite{margin-top:4px}
.articles__meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--encre-3)}
.articles__rubrique{color:var(--rouge)}
/* sa vignette : à gauche sur un écran assez large, au-dessus sur un téléphone */
.articles__image{display:block;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--eau)}
.articles__image img{display:block;width:100%;height:100%;object-fit:cover;transition:scale .6s cubic-bezier(.16,1,.3,1)}
.prose a.articles__lien:hover .articles__image img{scale:1.04}
@media (min-width:700px){
  .prose a.articles__lien:has(.articles__image){display:grid;grid-template-columns:200px minmax(0,1fr);grid-template-rows:auto auto auto 1fr;column-gap:24px;row-gap:8px;align-items:start}
  .prose a.articles__lien:has(.articles__image) .articles__image{grid-row:1/5}
}

/* le sommaire d'un article (monteur.sommaire_article, et l'atelier qui dessine le même).
   Sur un téléphone, un encadré en tête de l'article ; sur un grand écran, une colonne qui reste
   à portée pendant la lecture. La section en cours s'allume et un filet se remplit au défilement
   (socle.js) : c'est la structure du texte qui s'anime, jamais un décor. */
.sommaire{margin:0 0 36px;padding:20px 22px;border:1px solid var(--ligne);border-radius:var(--r)}
.sommaire__titre{margin:0 0 6px;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--encre-3)}
.sommaire__liste{list-style:none;margin:0;padding:0;counter-reset:som}
.sommaire__liste li{counter-increment:som}
.sommaire__liste a{display:flex;gap:10px;align-items:baseline;min-height:40px;padding:8px 0;color:var(--encre-2);text-decoration:none;font-size:.9375rem;line-height:1.35;transition:color .25s}
.sommaire__liste a::before{content:counter(som,decimal-leading-zero);flex:none;min-width:1.7em;font-size:.75rem;font-variant-numeric:tabular-nums;color:var(--encre-3);transition:color .25s}
.sommaire__liste a:hover{color:var(--encre)}
.sommaire__liste a.est-courant{color:var(--encre);font-weight:600}
.sommaire__liste a.est-courant::before{color:var(--rouge)}
@media (min-width:1100px){
  .contenu__carte--article{display:grid;grid-template-columns:210px minmax(0,1fr);column-gap:48px;align-items:start}
  .contenu__carte--article>.prose{grid-column:2;min-width:0}
  .contenu__carte--article .sommaire{position:sticky;top:calc(var(--entete) + 28px);margin:0;padding:0 0 0 18px;border:0;border-left:2px solid var(--ligne);border-radius:0}
  .contenu__carte--article .sommaire::before{content:"";position:absolute;left:-2px;top:0;width:2px;height:calc(var(--lu,0) * 100%);background:var(--rouge);transition:height .2s linear}
}
@media (prefers-reduced-motion:reduce){.sommaire__liste a,.sommaire__liste a::before,.sommaire::before,.articles__image img{transition:none}}

.encadre-medecin{margin:48px 0;padding:clamp(24px,3.5vw,36px);border-radius:22px;background:var(--gris)}
.encadre-medecin h2{margin-top:0!important;font-size:clamp(1.5rem,2.4vw,1.875rem);display:flex;gap:14px;align-items:center}
.encadre-medecin h2::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;background:var(--rouge);box-shadow:0 0 0 5px #fff}
.encadre-medecin p:last-child,.encadre-medecin ul:last-child{margin-bottom:0}

.faq{display:grid;gap:12px;margin-top:6px}
.faq details{background:var(--gris);border-radius:18px;padding:0 22px;transition:background-color .2s}
.faq details[open]{background:var(--eau)}
.faq summary{list-style:none;cursor:pointer;min-height:60px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-weight:600;color:var(--encre);padding:14px 0}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--serif);font-size:1.7rem;color:var(--rouge);line-height:1;flex:none}
.faq details[open] summary::after{content:"\2212"}
.faq details>div{padding:0 0 20px}
.faq details p{margin:0}

.lies{padding-block:clamp(64px,8vw,112px) 0}
.lies .entete-section{margin-bottom:36px}
.rdv--seul{margin-top:clamp(56px,7vw,96px)}
@media (min-width:980px){.rdv--seul{position:static;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:center;padding:56px}.rdv--seul .rdv__actions{min-width:340px}}

.page-legale .contenu__carte{box-shadow:none}

/* retouches après captures (16/09) */
.rdv__num{display:inline-flex;align-items:center;min-height:44px}
.contenu__carte .prose{margin-inline:auto}
@media (max-width:640px){.ariane [aria-current]{display:none}.ariane li:nth-last-child(2)::after{content:none}}

/* fiche « Les séances proposées » plus lisible (17/09) */
.fiche--motif{padding:28px 28px 24px}
.fiche__titre{font-family:var(--serif);font-size:1.55rem;line-height:1.15;color:var(--encre);margin:0 0 6px}
.fiche--motif .fiche__liste{margin-top:8px}
.fiche--motif .fiche__liste a{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:14px;row-gap:4px;align-items:center;padding:16px 0;min-height:72px}
.fiche--motif .fiche__nom{grid-column:1;grid-row:1;font-family:var(--serif);font-size:1.22rem;line-height:1.2;color:var(--encre);white-space:normal}
.fiche--motif .fiche__infos{grid-column:1;grid-row:2;font-size:.9375rem;color:var(--encre-2);white-space:normal}
.fiche--motif .fiche__infos strong{color:var(--rouge);font-weight:600}
.fiche--motif .rond-fleche{grid-column:2;grid-row:1/3;background:var(--eau)}
.fiche--motif .fiche__liste a:hover .fiche__nom{color:var(--rouge)}
.fiche--motif .fiche__liste a:hover .rond-fleche{background:var(--rouge);color:#fff}

/* sous le nom : la spécialité et la ville, sur tous nos sites (décision du 17/09) */
.marque{align-items:flex-start}
.marque__texte{display:flex;flex-direction:column;gap:5px;padding-top:2px}
.marque__point{margin-top:8px}
.marque__sous{font-family:var(--sans);font-size:.75rem;line-height:1.2;font-weight:500;letter-spacing:.01em;color:var(--encre-3);white-space:nowrap}
.marque:hover .marque__sous{color:var(--encre-2)}
@media (max-width:359px){.marque__sous{font-size:.6875rem}}

/* ================= Photos (17/09) : vraies photos de Frédérique, illustrations sans visage ailleurs ================= */
.page-photo{margin:clamp(36px,4.5vw,64px) 0 0;border-radius:28px;overflow:hidden;aspect-ratio:4/3;background:var(--eau)}
.page-photo img,.seance__photo img,.qui__portrait img,.page-tete__portrait img,.venir__acces img,.galerie img{display:block;width:100%;height:100%;object-fit:cover}
@media (min-width:700px){.page-photo{aspect-ratio:21/9}}
.page-tete__portrait{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/5;width:100%;max-width:440px;justify-self:end;background:var(--eau);box-shadow:14px 14px 0 var(--eau)}
@media (max-width:979px){.page-tete__portrait{justify-self:start;max-width:360px}}
.galerie{display:grid;gap:14px;margin:8px 0 48px;grid-template-columns:1fr}
@media (min-width:560px){.galerie--2{grid-template-columns:1fr 1fr}}
.galerie figure{margin:0}
.galerie img{aspect-ratio:4/3;border-radius:18px;height:auto}
.galerie figcaption{margin-top:8px;font-size:.875rem;color:var(--encre-3)}
.seance__photo{margin:clamp(40px,5vw,72px) 0 0;border-radius:28px;overflow:hidden;aspect-ratio:4/3;background:var(--eau)}
@media (min-width:700px){.seance__photo{aspect-ratio:21/9}}
.qui__portrait{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:4/5;background:var(--eau)}
@media (min-width:980px){
  .qui{grid-template-rows:auto auto auto}
  .qui__carte{grid-row:1/4}
  .qui__portrait{aspect-ratio:1/1}
}
.venir__acces{display:grid;gap:14px;grid-template-columns:1fr}
.venir__acces figure{margin:0;border-radius:22px;overflow:hidden;background:#fff;position:relative}
.venir__acces img{aspect-ratio:4/3;height:auto}
.venir__acces figcaption{display:flex;align-items:center;gap:10px;padding:14px 18px;font-size:.9375rem;font-weight:500;color:var(--encre)}
.venir__acces figcaption span{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--rouge);color:#fff;font-size:.8125rem;font-weight:600}
@media (min-width:700px){.venir__acces{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:980px){.venir__acces{grid-column:1/-1}}
.page-tete__grille:has(.page-tete__portrait){align-items:center}

/* nom et logo du cabinet dans le pied de page (validé le 17/09) */
.pied__cabinet{display:flex;align-items:center;gap:12px;font-weight:500;color:var(--encre)!important}
.pied__cabinet img{width:44px;height:44px;flex:none;border-radius:12px;background:#fff;padding:4px;box-shadow:0 0 0 1px var(--ligne)}

/* images en <picture> : l'enveloppe ne doit pas casser les hauteurs à 100 % (17/09) */
picture{display:contents}
/* la carte « Prendre rendez-vous » de l'accueil ne colle plus au défilement : elle passait sous les photos d'accès */
@media (min-width:980px){.venir .rdv{position:relative;top:auto}}
@media (min-width:560px){.galerie--3{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* en-tête avec fiche : le titre en haut, la photo dessous, la fiche à droite sur toute la hauteur (17/09) */
.page-tete__grille.avec-photo{grid-template-areas:"texte" "fiche" "photo";align-items:start}
.avec-photo>.page-tete__texte{grid-area:texte}
.avec-photo>.fiche{grid-area:fiche}
.avec-photo>.page-photo{grid-area:photo;margin:0}
@media (min-width:980px){
  .page-tete__grille.avec-fiche.avec-photo{grid-template-areas:"texte fiche" "photo fiche";row-gap:40px}
  .avec-photo>.page-photo{aspect-ratio:16/10}
  .avec-photo>.fiche{position:sticky;top:calc(var(--entete) + 24px)}
}

/* ======================================================================
   Animations premium (17/09). Uniquement transform, clip-path et opacité (fluide, sans
   recalcul de mise en page). Tout est coupé si l'appareil demande moins de mouvement.
   ====================================================================== */
/* 1. Photos : un rideau qui s'ouvre, l'image qui se pose (léger dézoom) */
.page-photo{--r-photo:28px}.seance__photo{--r-photo:28px}.cadre__photo{--r-photo:28px}.page-tete__portrait{--r-photo:28px}
.qui__portrait{--r-photo:var(--r)}.venir__acces figure{--r-photo:22px}.galerie figure{--r-photo:18px}
.js .revele{clip-path:inset(7% 7% 7% 7% round var(--r-photo,24px));transition:clip-path 1.3s cubic-bezier(.16,1,.3,1) var(--delai,0s)}
.js .revele img{scale:1.16;transition:scale 1.8s cubic-bezier(.16,1,.3,1) var(--delai,0s)}
.js .revele.vu{clip-path:inset(0 0 0 0 round var(--r-photo,24px))}
.js .revele.vu img{scale:1}
/* au survol des vignettes, l'image avance doucement */
.js .venir__acces .revele.vu img,.js .galerie .revele.vu img{transition:scale .9s cubic-bezier(.16,1,.3,1)}
.js .venir__acces .revele.vu:hover img,.js .galerie .revele.vu:hover img{scale:1.05}

/* 2. Grands titres : chaque mot monte de sous sa ligne */
.js [data-mots].mots .mot{display:inline-block;overflow:hidden;vertical-align:top;padding:.12em 0 .16em;margin:-.12em 0 -.16em}
.js [data-mots].mots .mot>span{display:inline-block;translate:0 108%;transition:translate 1s cubic-bezier(.16,1,.3,1)}
.js [data-mots].mots-vus .mot>span{translate:0 0}

/* 3. La phrase forte de l'accueil : le surlignage se dessine */
.js .phrase-forte span::after{transform:scaleX(0);transform-origin:left center;transition:transform 1.1s cubic-bezier(.16,1,.3,1) .45s}
.js .phrase-forte.vu span::after{transform:none}

/* 4. Boutons rouges : un reflet traverse au survol */
.bouton--rouge{position:relative;overflow:hidden;isolation:isolate}
.bouton--rouge::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.26) 50%,transparent 70%);translate:-130% 0;transition:translate .9s cubic-bezier(.16,1,.3,1);pointer-events:none}
.bouton--rouge:hover::after{translate:130% 0}

/* 5. Flèches : elles avancent au survol */
.rond-fleche svg,.pm-motif__fleche svg{transition:translate .35s cubic-bezier(.16,1,.3,1)}
a:hover .rond-fleche svg{translate:3px 0}

/* 6. Questions fréquentes : la réponse se déplie en douceur (navigateurs récents) */
:root{interpolate-size:allow-keywords}
.faq details::details-content{block-size:0;overflow:hidden;transition:block-size .45s cubic-bezier(.16,1,.3,1),content-visibility .45s allow-discrete}
.faq details[open]::details-content{block-size:auto}
.faq summary::after{transition:rotate .35s cubic-bezier(.16,1,.3,1)}
.faq details[open] summary::after{rotate:180deg}

@media (prefers-reduced-motion:no-preference){
  /* 7. La carte « 1 h · 60 € » de l'accueil flotte très légèrement */
  .carte-flottante{animation:flotte 7s ease-in-out 1.5s infinite}
  @keyframes flotte{50%{translate:0 -7px}}
  /* 8. Grandes photos : léger effet de profondeur au défilement (navigateurs qui le permettent) */
  @supports (animation-timeline:view()){
    .page-photo.vu img,.seance__photo.vu img{scale:1.08;animation:profondeur linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
    @keyframes profondeur{from{translate:0 -3.5%}to{translate:0 3.5%}}
  }
}
@media (prefers-reduced-motion:reduce){
  .js .revele{clip-path:none}.js .revele img{scale:1}
  .js .phrase-forte span::after{transform:none}
  .bouton--rouge::after{display:none}
}

/* bandeau « Prendre rendez-vous » en fin de page (17/09) : bleu nuit, équilibré, décor contenu dans la carte */
.rdv.rdv--seul{position:relative;top:auto;display:grid;gap:28px;align-items:center;background:var(--encre);color:#fff;box-shadow:0 30px 60px -30px rgba(var(--encre-rvb),.55);padding:clamp(32px,5vw,64px);overflow:hidden;isolation:isolate}
.rdv--seul::after{width:420px;height:420px;right:-140px;top:-220px;background:rgba(255,255,255,.05);z-index:-1}
.rdv--seul::before{content:"";position:absolute;z-index:-1;width:260px;height:260px;border-radius:50%;background:var(--rouge);opacity:.16;left:-110px;bottom:-150px}
.rdv--seul>*{z-index:auto}
.rdv--seul .pastille{background:rgba(255,255,255,.1)!important;color:#fff}
.rdv--seul h3{color:#fff;margin:16px 0 10px;max-width:none}
.rdv__sous{margin:0;color:rgba(255,255,255,.72);max-width:28em}
.rdv__droite{display:grid;gap:18px}
.rdv--seul .rdv__num{color:#fff;margin:0;font-size:clamp(2rem,4.2vw,3rem)}
.rdv--seul .rdv__num:hover{color:var(--rouge-pale)}
.rdv--seul .rdv__actions{grid-template-columns:1fr 1fr;min-width:0}
.rdv--seul .bouton--clair{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.rdv--seul .bouton--clair:hover{background:rgba(255,255,255,.08)}
@media (min-width:980px){
  .rdv.rdv--seul{grid-template-columns:minmax(0,1fr) auto;gap:64px;padding:64px 72px}
  .rdv--seul .rdv__droite{min-width:360px}
}

/* « Qui je suis » de l'accueil, recomposé (17/09) : portrait + citation à gauche, texte + dates à droite, sans vide */
.qui.qui--v2{display:grid;gap:24px;grid-template-columns:minmax(0,1fr);grid-template-rows:none}
.qui--v2 .qui__carte{grid-row:auto}
.qui__visuel{position:relative}
.qui--v2 .qui__portrait{aspect-ratio:4/5;border-radius:var(--r)}
.qui--v2 .qui__citation{position:relative;margin:-72px 16px 0!important;padding:26px 28px;gap:14px;z-index:2;box-shadow:0 24px 48px -24px rgba(var(--rouge-2-rvb),.55)}
.qui--v2 .qui__citation svg{width:28px;height:28px}
.qui--v2 .qui__citation blockquote{font-size:clamp(1.4rem,2.2vw,1.85rem)}
.qui__droite{display:grid;gap:16px;align-content:center}
@media (min-width:700px){.qui--v2 .jalons{grid-template-columns:1fr 1fr}.qui--v2 .jalon{flex-direction:column;gap:8px}}
@media (min-width:980px){
  .qui.qui--v2{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:center}
  .qui--v2 .qui__portrait{aspect-ratio:4/5}
  .qui--v2 .qui__citation{position:absolute;left:-28px;right:auto;bottom:-28px;margin:0!important;max-width:78%}
  .qui--v2 .qui__carte{grid-row:auto;padding:52px 56px 48px}
  .qui__visuel{margin:0 0 28px 28px}
}

/* cascade d'apparition pour la grille « Ce qui vous amène » (17/09) */
.pm2__grille>li{opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .5s cubic-bezier(.16,1,.3,1)}
.panneau.ouvert .pm2__grille>li{opacity:1;transform:none}
.panneau.ouvert .pm2__grille>li:nth-child(2){transition-delay:.04s}.panneau.ouvert .pm2__grille>li:nth-child(3){transition-delay:.08s}.panneau.ouvert .pm2__grille>li:nth-child(4){transition-delay:.12s}.panneau.ouvert .pm2__grille>li:nth-child(5){transition-delay:.16s}.panneau.ouvert .pm2__grille>li:nth-child(6){transition-delay:.2s}

/* ================= Bienfaits attendus, dans la fiche des soins (17/09) ================= */
.bienfaits{margin:22px 0 4px;padding-top:20px;border-top:1px solid var(--ligne)}
.bienfaits__titre{margin:0 0 12px;font-size:.8125rem;font-weight:600;letter-spacing:.02em;color:var(--encre-3)}
.bienfaits__renvoi{color:var(--rouge);text-decoration:none;margin-left:2px}
.bienfaits__liste{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.bienfaits__liste li{display:flex;align-items:flex-start;gap:10px;font-size:.9375rem;line-height:1.4;color:var(--encre)}
.bienfaits__coche{flex:none;width:22px;height:22px;border-radius:50%;background:var(--eau);color:var(--eau-texte);display:grid;place-items:center;margin-top:-1px}
.bienfaits__coche svg{width:13px;height:13px}
.bienfaits__note{margin:14px 0 0;font-size:.75rem;line-height:1.45;color:var(--encre-3)}
/* les coches se dessinent l'une après l'autre quand la fiche apparaît */
.js .fiche .bienfaits__liste li{opacity:0;translate:-6px 0;transition:opacity .5s ease,translate .6s cubic-bezier(.16,1,.3,1);transition-delay:calc(.35s + var(--i,0) * .12s)}
.js .fiche.vu .bienfaits__liste li{opacity:1;translate:0 0}
.js .fiche .bienfaits__coche path{stroke-dasharray:16;stroke-dashoffset:16;transition:stroke-dashoffset .5s ease;transition-delay:calc(.55s + var(--i,0) * .12s)}
.js .fiche.vu .bienfaits__coche path{stroke-dashoffset:0}
.bienfaits__liste li .bienfaits__coche path{transition-delay:inherit}

/* ================= Déroulé animé des séances (17/09) ================= */
.deroule{list-style:none;margin:30px 0 8px;padding:0;position:relative;--progres:0}
.deroule::before,.deroule::after{content:"";position:absolute;left:23px;top:24px;bottom:40px;width:2px;border-radius:2px}
.deroule::before{background:var(--ligne)}
.deroule::after{background:var(--rouge);transform-origin:top;transform:scaleY(var(--progres));transition:transform .15s linear}
.deroule__etape{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:22px;padding-bottom:32px}
.deroule__etape:last-child{padding-bottom:0}
.deroule__num{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 2px var(--ligne);display:grid;place-items:center;font-family:var(--serif);font-size:1.3rem;line-height:1;color:var(--encre-3);transition:background-color .5s ease,color .5s ease,box-shadow .5s ease,scale .5s cubic-bezier(.16,1,.3,1)}
.deroule__num::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--rouge);opacity:0;pointer-events:none}
.deroule__etape.atteinte .deroule__num{background:var(--rouge);color:#fff;box-shadow:0 0 0 6px var(--rouge-pale)}
.deroule__etape.active .deroule__num{scale:1.06}
.deroule__etape.active .deroule__num::after{animation:onde 2.4s ease-out infinite}
@keyframes onde{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.85);opacity:0}}
.deroule__corps{padding-top:8px}
.prose .deroule__corps h3,.deroule__corps h3{margin:0 0 8px}
.deroule__corps p:last-child{margin-bottom:0}
.js .deroule__corps{opacity:.3;translate:0 12px;transition:opacity .7s ease,translate .9s cubic-bezier(.16,1,.3,1)}
.js .deroule__etape.atteinte .deroule__corps{opacity:1;translate:0 0}
.deroule--accueil{margin-top:0}
.deroule--accueil .deroule__corps h3{font-size:clamp(1.35rem,2vw,1.6rem);line-height:1.2}
.deroule--accueil .deroule__corps p{color:var(--encre-2)}
@media (prefers-reduced-motion:reduce){.js .deroule__corps{opacity:1;translate:0 0}.deroule__etape.active .deroule__num::after{animation:none}}
/* la ligne de la frise s'arrête au dernier rond */
.deroule::before,.deroule::after{z-index:0}
.deroule__etape:last-child::after{content:"";position:absolute;z-index:1;left:18px;top:50px;bottom:-40px;width:12px;background:#fff}

/* ================= Tarifs animés (17/09) ================= */
.prose .tarifs{list-style:none;margin:26px 0 22px;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.prose .tarifs li{margin:0}
.tarif{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:20px 20px 18px!important;border-radius:20px;background:var(--gris);overflow:hidden}
.tarif__cadran{width:46px;height:46px;margin-bottom:10px;rotate:-90deg}
.tarif__fond{fill:none;stroke:#fff;stroke-width:5}
.tarif__arc{fill:none;stroke:var(--rouge);stroke-width:5;stroke-linecap:round;stroke-dashoffset:calc(var(--tour) * (1 - var(--part)))}
.tarif__duree{font-size:.9375rem;font-weight:600;color:var(--encre-2)}
.tarif__prix{font-family:var(--serif);font-size:2.3rem;line-height:1.05;color:var(--encre);font-variant-numeric:tabular-nums}
.tarif--forfait{background:var(--encre)}
.tarif--forfait .tarif__duree{color:rgba(255,255,255,.78)}
.tarif--forfait .tarif__prix{color:#fff}
.tarif__etiquette{margin-bottom:12px;padding:5px 11px;border-radius:999px;background:var(--rouge);color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.04em}
.tarif__gain{margin-top:6px;font-size:.8125rem;line-height:1.4;color:rgba(255,255,255,.7)}
.prose .tarifs li::marker{content:none}
.js .tarifs .tarif{opacity:0;translate:0 14px;transition:opacity .6s ease,translate .8s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i,0) * .1s)}
.js .tarifs.vu .tarif{opacity:1;translate:0 0}
.js .tarifs .tarif__arc{stroke-dashoffset:var(--tour);transition:stroke-dashoffset 1.3s cubic-bezier(.16,1,.3,1);transition-delay:calc(.25s + var(--i,0) * .1s)}
.js .tarifs.vu .tarif__arc{stroke-dashoffset:calc(var(--tour) * (1 - var(--part)))}

/* ================= Méthode Vodder : le geste en mouvement (17/09) ================= */
.geste{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;align-items:center;margin:28px 0 8px;padding:20px 26px;border-radius:22px;background:var(--eau)}
.geste__dessin{width:120px;height:120px;overflow:visible}
.geste__piste{fill:none;stroke:rgba(35,97,78,.28);stroke-width:1.5;stroke-dasharray:3 6}
.geste__onde{fill:none;stroke:var(--eau-texte);stroke-width:1.5;opacity:0;transform-origin:100px 100px}
.geste__main circle{fill:var(--rouge)}
.geste__main{transform-origin:100px 100px}
.prose .geste__mots{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.prose .geste__mots li{margin:0;padding:8px 16px;border-radius:999px;background:#fff;font-family:var(--serif);font-size:1.3rem;line-height:1.1;color:var(--encre-3)}
.prose .geste__mots li::marker{content:none}
@media (prefers-reduced-motion:no-preference){
  .geste__main{animation:tourne 6s cubic-bezier(.45,.05,.55,.95) infinite}
  .geste__onde{animation:onde-geste 6s ease-out infinite}
  .geste__onde--2{animation-delay:2s}.geste__onde--3{animation-delay:4s}
  .prose .geste__mots li{animation:mot-actif 6s ease-in-out infinite}
  .prose .geste__mots li:nth-child(2){animation-delay:2s}.prose .geste__mots li:nth-child(3){animation-delay:4s}
  @keyframes tourne{to{rotate:360deg}}
  @keyframes onde-geste{0%{scale:.6;opacity:0}15%{opacity:.7}60%,100%{scale:2.1;opacity:0}}
  @keyframes mot-actif{0%,40%,100%{color:var(--encre-3);background:#fff}8%,30%{color:#fff;background:var(--rouge)}}
}
@media (max-width:520px){.geste{grid-template-columns:1fr;justify-items:center;text-align:center}.prose .geste__mots{justify-content:center}}

/* ================= Ce qui vous amène : cartes animées (17/09) ================= */
.prose .raisons{list-style:none;margin:24px 0 26px;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.prose .raisons li{margin:0}
.prose .raisons li::marker{content:none}
.prose .raison{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:18px;background:#fff;box-shadow:0 0 0 1px var(--ligne);color:var(--encre);line-height:1.45;transition:box-shadow .3s ease,translate .4s cubic-bezier(.16,1,.3,1)}
.prose .raison:hover{box-shadow:0 18px 36px -22px rgba(var(--encre-rvb),.35),0 0 0 1px var(--ligne);translate:0 -2px}
.raison__icone{flex:none;width:40px;height:40px;border-radius:12px;background:var(--rouge-pale);color:var(--rouge);display:grid;place-items:center}
.raison__icone svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.js .prose .raisons .raison{opacity:0;translate:0 14px;transition:opacity .6s ease,translate .8s cubic-bezier(.16,1,.3,1),box-shadow .3s ease;transition-delay:calc(var(--i,0) * .12s)}
.js .prose .raisons.vu .raison{opacity:1;translate:0 0}
.js .raisons .raison__icone path{stroke-dasharray:60;stroke-dashoffset:60;transition:stroke-dashoffset 1.2s ease;transition-delay:calc(.3s + var(--i,0) * .12s)}
.js .raisons.vu .raison__icone path{stroke-dashoffset:0}
@media (prefers-reduced-motion:reduce){.js .tarifs .tarif,.js .prose .raisons .raison{opacity:1;translate:0 0}.js .tarifs .tarif__arc{stroke-dashoffset:calc(var(--tour) * (1 - var(--part)))}.js .raisons .raison__icone path{stroke-dashoffset:0}}

/* retouches après captures (17/09) : forfait en bandeau, cartes compactes sur téléphone, geste plus grand */
.tarifs--4 .tarif--forfait{grid-column:1/-1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:18px;align-items:center}
.tarifs--4 .tarif--forfait .tarif__etiquette{margin:0;grid-row:1/3}
.tarifs--4 .tarif--forfait .tarif__duree{grid-column:2;grid-row:1}
.tarifs--4 .tarif--forfait .tarif__gain{grid-column:2;grid-row:2;margin:0}
.tarifs--4 .tarif--forfait .tarif__prix{grid-column:3;grid-row:1/3}
@media (max-width:560px){
  .prose .tarifs--4{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tarifs--4 .tarif:not(.tarif--forfait){padding:14px 12px 12px!important;border-radius:16px}
  .tarifs--4 .tarif:not(.tarif--forfait) .tarif__cadran{width:32px;height:32px;margin-bottom:6px}
  .tarifs--4 .tarif:not(.tarif--forfait) .tarif__prix{font-size:1.55rem}
  .tarifs--4 .tarif:not(.tarif--forfait) .tarif__duree{font-size:.8125rem}
  .tarifs--4 .tarif--forfait{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .tarifs--4 .tarif--forfait .tarif__etiquette{grid-row:1;grid-column:1;justify-self:start;margin-bottom:6px}
  .tarifs--4 .tarif--forfait .tarif__duree{grid-column:1;grid-row:2}
  .tarifs--4 .tarif--forfait .tarif__gain{grid-column:1/-1;grid-row:3}
  .tarifs--4 .tarif--forfait .tarif__prix{grid-column:2;grid-row:1/3;font-size:1.9rem}
}
.geste{grid-template-columns:170px minmax(0,1fr);padding:22px 30px}
.geste__dessin{width:170px;height:170px}
.geste__piste{stroke-width:2}
.geste__onde{stroke-width:2}
@media (max-width:520px){.geste{grid-template-columns:1fr}}
.geste__centre{fill:var(--eau-texte);opacity:.5}
@keyframes onde-geste{0%{scale:.3;opacity:0}15%{opacity:.8}60%,100%{scale:1.75;opacity:0}}

/* sous-titre sous le H1 des pages de soin (17/09) */
.page-tete__sous{margin:18px 0 0;max-width:34em;font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.5;color:var(--encre-2)}

/* cartes de tarifs : mêmes blancs que le reste du site, un seul accent rouge (17/09) */
.tarif{background:#fff!important;box-shadow:0 0 0 1px var(--ligne)}
.tarif__fond{stroke:rgba(var(--encre-rvb),.1)}
.tarif__duree{color:var(--encre-3);font-weight:500}
.tarif--forfait{background:var(--encre)!important;box-shadow:none}
.tarif--forfait .tarif__duree{color:rgba(255,255,255,.8);font-weight:600}

/* ================= Carte du cabinet et liens Google (17/09) ================= */
.carte-lieu{margin:24px 0 8px}
.carte-lieu__ouvrir{width:100%;min-height:200px;display:flex;align-items:center;gap:16px;padding:22px 24px;border:0;border-radius:22px;cursor:pointer;text-align:left;font-family:var(--sans);background:var(--eau);color:var(--encre);transition:box-shadow .3s ease,translate .3s ease}
.carte-lieu__ouvrir:hover{box-shadow:0 18px 36px -24px rgba(var(--encre-rvb),.4);translate:0 -2px}
.carte-lieu__fond{flex:none;width:56px;height:56px;border-radius:18px;background:#fff;color:var(--rouge);display:grid;place-items:center}
.carte-lieu__fond svg{width:26px;height:26px}
.carte-lieu__texte{display:grid;gap:4px}
.carte-lieu__texte strong{font-family:var(--serif);font-size:1.35rem;font-weight:400}
.carte-lieu__texte span{font-size:.9375rem;color:var(--encre-2)}
.carte-lieu__cadre{width:100%;height:340px;border:0;border-radius:22px;display:block;background:var(--eau)}
.carte-lieu__note{margin:10px 0 0;font-size:.8125rem;color:var(--encre-3)}
.liens-lieu{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 8px}
.venir__carte .liens-lieu{margin:24px 0 0}
.liens-lieu .bouton{box-shadow:inset 0 0 0 1px var(--ligne)}

/* un seul tarif : une carte en bandeau plutôt qu'un grand carré vide (17/09) */
.prose .tarifs--1{grid-template-columns:minmax(0,1fr)}
.tarifs--1 .tarif{flex-direction:row;align-items:center;gap:20px;padding:18px 24px!important}
.tarifs--1 .tarif__cadran{margin:0}
.tarifs--1 .tarif__duree{flex:1 1 auto;font-size:1.0625rem}
.tarifs--1 .tarif__prix{font-size:2rem}

/* trois points par séance, dans la carte des pages « Ce qui vous amène » (17/09) */
.fiche--motif .fiche__liste a{grid-template-rows:auto auto auto;row-gap:6px;padding:18px 0}
.fiche--motif .fiche__points{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.fiche__point{font-size:.75rem;line-height:1.25;padding:5px 10px;border-radius:999px;background:var(--eau);color:var(--eau-texte)}
.fiche--motif .rond-fleche{grid-row:1/4}
.fiche--motif .fiche__liste a:hover .fiche__point{background:#fff}
