/* La Bulle de Stéf, maquette v2 « bulles de verre » */
:root{
  --fond:#F8EDEA;
  --rose:#A8455A;
  --rose-fonce:#7E3243;
  --titre:#3F2A2D;
  --texte:#4E3436;
  --doux:#765658;
  --or:#CD8916;
  --serif:'Marcellus',Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,'Mulish','Segoe UI',system-ui,sans-serif;
  --verre-fond:rgba(255,255,255,.52);
  --verre-bord:rgba(255,255,255,.75);
  --verre-ombre:0 10px 40px rgba(126,50,67,.10),inset 0 1px 0 rgba(255,255,255,.9);
  --rayon:26px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:100px}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--rose)}a:hover{color:var(--rose-fonce)}
a:focus-visible,button:focus-visible{outline:3px solid var(--or);outline-offset:3px;border-radius:12px}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--titre);margin:0}
p{margin:0 0 1em}
ul{list-style:none;margin:0;padding:0}
.skip{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 14px;z-index:100}
.skip:focus{left:8px}
.conteneur{max-width:980px;margin:0 auto;padding:0 20px}

/* Verre liquide */
.verre{background:var(--verre-fond);border:1px solid var(--verre-bord);box-shadow:var(--verre-ombre);
  -webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.verre{background:rgba(255,255,255,.88)}}

/* Fond vivant */
.fond{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.tache{position:absolute;border-radius:50%;filter:blur(70px);opacity:.75;animation:derive 26s ease-in-out infinite alternate}
.tache--rose{width:55vmax;height:55vmax;background:#F2B9C3;top:-18vmax;right:-14vmax}
.tache--or{width:40vmax;height:40vmax;background:#F3D3A2;bottom:-12vmax;left:-12vmax;animation-duration:32s}
.tache--lilas{width:34vmax;height:34vmax;background:#E9CFE6;top:38%;left:30%;opacity:.55;animation-duration:38s}
@keyframes derive{to{transform:translate(6vmax,4vmax) scale(1.08)}}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:999px;font-weight:700;font-size:17px;text-decoration:none;transition:transform .15s,background .2s}
.btn:active{transform:scale(.97)}
.btn--plein{background:var(--rose);color:#fff;box-shadow:0 6px 18px rgba(168,69,90,.28)}
.btn--plein:hover{background:var(--rose-fonce);color:#fff}
.btn--verre{background:rgba(255,255,255,.55);border:1px solid var(--verre-bord);color:var(--texte);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.btn--verre:hover{color:var(--rose)}
.btn--petit{min-height:42px;padding:0 20px;font-size:15px}
.btn--bloc{display:flex;width:100%}

/* Navigation pilule flottante */
.nav{position:sticky;top:12px;z-index:50;padding:0 12px}
.nav__pilule{max-width:760px;margin:12px auto 0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 6px 6px 14px;border-radius:999px}
.nav__logo img{height:44px;width:auto}
.nav__liens{display:flex;gap:6px}
.nav__liens a{color:var(--texte);text-decoration:none;font-weight:600;font-size:15px;padding:10px 14px;border-radius:999px}
.nav__liens a:hover{background:rgba(255,255,255,.6);color:var(--rose)}

/* Hero */
.hero{position:relative;max-width:1180px;margin:0 auto;padding:48px 20px 72px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:40px;min-height:min(820px,92vh)}
.hero__texte{grid-column:1;grid-row:1}
.hero__bulle{grid-column:2;grid-row:1;display:flex;justify-content:center}
.pastille{display:inline-block;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;color:var(--rose-fonce);margin-bottom:24px}
.hero h1{font-size:clamp(38px,5.4vw,64px);line-height:1.08;margin-bottom:20px}
.hero__intro{font-size:19px;max-width:30em;margin-bottom:30px}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px}

/* La grande bulle : effet bulle de savon */
.grande-bulle{position:relative;width:min(470px,78vw);aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(circle at 30% 24%,rgba(255,255,255,.95) 0 4%,rgba(255,255,255,0) 14%),
    radial-gradient(circle at 72% 82%,rgba(255,255,255,.55) 0 3%,rgba(255,255,255,0) 10%),
    radial-gradient(circle at 50% 50%,rgba(255,255,255,.55) 52%,rgba(255,255,255,.2) 70%,rgba(255,255,255,.05) 100%);
  border:1.5px solid rgba(255,255,255,.85);
  box-shadow:inset 0 0 40px rgba(255,255,255,.7),inset -18px -22px 50px rgba(212,106,124,.22),inset 16px 14px 40px rgba(205,137,22,.16),0 30px 80px rgba(126,50,67,.16);
  -webkit-backdrop-filter:blur(10px) saturate(150%);backdrop-filter:blur(10px) saturate(150%);
  animation:naissance 1.6s cubic-bezier(.2,.7,.2,1) both,flotte 9s 1.6s ease-in-out infinite}
.grande-bulle::after{content:"";position:absolute;inset:-2px;border-radius:50%;pointer-events:none;
  background:conic-gradient(from 200deg,rgba(242,185,195,.0),rgba(242,185,195,.55),rgba(243,211,162,.5),rgba(206,190,240,.45),rgba(242,185,195,.0));
  -webkit-mask:radial-gradient(circle,transparent 66%,#000 70%);mask:radial-gradient(circle,transparent 66%,#000 70%);opacity:.8}
.grande-bulle img{width:70%;position:relative;z-index:1;animation:logo 1.1s .7s ease-out both}
@keyframes naissance{from{opacity:0;transform:scale(.6)}70%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}
@keyframes flotte{50%{transform:translateY(-14px)}}
@keyframes logo{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}

/* Petites bulles qui montent */
.bulles{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.b{position:absolute;bottom:-80px;border-radius:50%;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.95) 0 8%,rgba(255,255,255,0) 22%),radial-gradient(circle,rgba(255,255,255,.25) 55%,rgba(255,255,255,.05) 100%);
  border:1px solid rgba(255,255,255,.8);box-shadow:inset -4px -6px 12px rgba(212,106,124,.2),inset 4px 4px 10px rgba(205,137,22,.14);
  animation:monte linear infinite}
.b1{width:42px;height:42px;left:8%;animation-duration:16s}
.b2{width:22px;height:22px;left:22%;animation-duration:12s;animation-delay:3s}
.b3{width:64px;height:64px;left:46%;animation-duration:20s;animation-delay:6s}
.b4{width:28px;height:28px;left:62%;animation-duration:14s;animation-delay:1s}
.b5{width:50px;height:50px;left:80%;animation-duration:18s;animation-delay:9s}
.b6{width:18px;height:18px;left:92%;animation-duration:11s;animation-delay:4s}
@keyframes monte{0%{transform:translate(0,0);opacity:0}10%{opacity:1}50%{transform:translate(18px,-50vh)}90%{opacity:.9}100%{transform:translate(-10px,-100vh);opacity:0}}

/* Sections */
.section{padding:72px 0}
.section h2{font-size:clamp(32px,4.4vw,46px);text-align:center;margin-bottom:10px}
.section__intro{text-align:center;color:var(--doux);margin-bottom:40px}

/* Listes groupées façon réglages iPhone */
.groupe__titre{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--doux);margin:28px 0 8px 18px}
.groupe{border-radius:var(--rayon);overflow:hidden}
.ligne{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;position:relative}
.ligne+.ligne::before{content:"";position:absolute;top:0;left:20px;right:0;height:1px;background:rgba(126,50,67,.12)}
.ligne__texte{display:flex;flex-direction:column;min-width:0}
.ligne__nom{font-weight:600;font-size:17px;color:var(--titre)}
.ligne__detail{font-size:15px;color:var(--doux);line-height:1.45;margin-top:2px}
.ligne__prix{display:flex;flex-direction:column;align-items:flex-end;font-weight:700;color:var(--rose);white-space:nowrap;font-size:17px}
.ligne__duree{font-size:13px;font-weight:600;color:var(--doux)}
.ligne--simple{min-height:52px}
.ligne__valeur{color:var(--doux)}
.ligne__lien{font-weight:700;text-decoration:none}
.mention{margin:32px auto 0;max-width:44em;text-align:center;font-size:13px;color:var(--doux)}

/* Portrait */
.portrait{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:center;gap:40px}
.portrait__bulle{aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;text-align:center;color:#8F5F5F;font-size:15px;
  background:radial-gradient(circle at 30% 24%,rgba(255,255,255,.95) 0 4%,rgba(255,255,255,0) 14%),rgba(243,225,221,.75);
  border:1.5px solid rgba(255,255,255,.85);box-shadow:inset -14px -16px 40px rgba(212,106,124,.2),inset 12px 10px 30px rgba(205,137,22,.14),0 24px 60px rgba(126,50,67,.12)}
.portrait__texte{border-radius:var(--rayon);padding:32px}
.portrait__texte h2{text-align:left;margin-bottom:16px}
.portrait__formations{font-size:15px;color:var(--doux);margin:0}

/* Infos */
.infos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px;align-items:start}
.reserver{border-radius:var(--rayon);padding:24px;display:flex;flex-direction:column;gap:12px;margin-top:49px}
.reserver h3{font-size:24px}
.reserver p{margin:0 0 4px;color:var(--doux)}

/* Pied */
.pied{padding:48px 0 56px;text-align:center;font-size:15px;color:var(--doux)}
.pied p{margin:0 0 4px}
.pied__nom{font-family:var(--serif);font-size:24px;color:var(--titre)}
.pied nav{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:14px}

/* Dock mobile */
.dock{display:none}

@media (max-width:760px){
  body{font-size:16px}
  .nav{top:8px}
  .nav__liens{display:none}
  .nav__logo img{height:40px}
  .hero{grid-template-columns:minmax(0,1fr);text-align:center;padding:28px 20px 56px;gap:28px;min-height:0}
  .hero__bulle{grid-column:1;grid-row:1}
  .hero__texte{grid-column:1;grid-row:2}
  .grande-bulle{width:min(300px,76vw)}
  .pastille{font-size:13px;margin-bottom:18px}
  .hero__intro{font-size:17px;margin-left:auto;margin-right:auto}
  .hero__actions{flex-direction:column}
  .section{padding:48px 0}
  .ligne{padding:14px 16px}
  .ligne+.ligne::before{left:16px}
  .portrait{grid-template-columns:minmax(0,1fr);gap:24px}
  .portrait__bulle{width:220px;margin:0 auto}
  .portrait__texte{padding:24px 20px}
  .portrait__texte h2{text-align:center}
  .reserver{margin-top:0}
  .pied{padding-bottom:120px}
  .dock{display:flex;align-items:center;gap:8px;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;padding:6px;border-radius:999px}
  .dock__rond{flex:0 0 50px;height:50px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--rose);background:rgba(255,255,255,.6)}
  .dock__lien{flex:0 0 auto;padding:0 14px;font-weight:600;color:var(--texte);text-decoration:none}
  .dock__cta{flex:1 1 auto;min-height:50px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tache,.grande-bulle,.grande-bulle img,.b{animation:none}
  .b{display:none}
}

/* ===== Multipage ===== */
.nav__liens a[aria-current="page"]{background:rgba(255,255,255,.75);color:var(--rose)}
.burger{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--verre-bord);background:rgba(255,255,255,.6);color:var(--texte);align-items:center;justify-content:center;padding:0;cursor:pointer}
.nav__droite{display:flex;align-items:center;gap:6px}

/* En-tete des pages internes */
.page-tete{position:relative;max-width:980px;margin:0 auto;padding:64px 20px 24px;text-align:center}
.page-tete h1{font-size:clamp(36px,5vw,58px);line-height:1.1;margin-bottom:14px}
.page-tete p{font-size:19px;color:var(--doux);max-width:34em;margin:0 auto}
.page-tete .bulle-deco{position:absolute;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.95) 0 8%,rgba(255,255,255,0) 22%),radial-gradient(circle,rgba(255,255,255,.3) 55%,rgba(255,255,255,.06) 100%);
  border:1px solid rgba(255,255,255,.85);box-shadow:inset -6px -8px 18px rgba(212,106,124,.2),inset 6px 6px 14px rgba(205,137,22,.14);animation:flotte 8s ease-in-out infinite}
.bulle-deco--a{width:90px;height:90px;left:4%;top:40px}
.bulle-deco--b{width:44px;height:44px;right:8%;top:30px;animation-delay:2s}
.bulle-deco--c{width:26px;height:26px;right:16%;top:150px;animation-delay:4s}

/* Bloc verre generique */
.carte-verre{border-radius:var(--rayon);padding:28px}
.carte-verre h2,.carte-verre h3{text-align:left}
.carte-verre h3{font-size:24px;margin-bottom:10px}
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}

/* Appel a l'action de fin de page */
.cta-fin{text-align:center;border-radius:32px;padding:40px 24px;margin-top:48px}
.cta-fin h2{font-size:clamp(28px,3.6vw,38px);margin-bottom:10px}
.cta-fin p{color:var(--doux);margin-bottom:22px}
.cta-fin .hero__actions{justify-content:center}

/* Etapes (vraie sequence) */
.etapes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:16px;counter-reset:e}
.etape{border-radius:var(--rayon);padding:24px;counter-increment:e}
.etape::before{content:counter(e);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;margin-bottom:14px;font-family:var(--serif);font-size:20px;color:var(--rose);
  background:radial-gradient(circle at 30% 25%,#fff 0 12%,rgba(255,255,255,.4) 40%),rgba(255,255,255,.5);border:1px solid var(--verre-bord)}
.etape h3{font-family:var(--sans);font-weight:700;font-size:17px;margin-bottom:6px}
.etape p{margin:0;font-size:15px;color:var(--doux)}

/* Communes */
.communes{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}
.communes span{padding:8px 16px;border-radius:999px;font-size:15px;font-weight:600}

/* Rayon (illustration) */
.rayon{position:relative;width:min(320px,80vw);aspect-ratio:1/1;margin:0 auto;border-radius:50%;
  background:radial-gradient(circle,rgba(168,69,90,.10) 0 30%,rgba(168,69,90,.05) 31% 64%,rgba(255,255,255,.25) 65%);
  border:1.5px dashed rgba(168,69,90,.35);display:flex;align-items:center;justify-content:center;text-align:center}
.rayon strong{display:block;font-family:var(--serif);font-weight:400;font-size:44px;color:var(--rose);line-height:1}
.rayon span{font-size:14px;color:var(--doux)}

/* Valeurs */
.valeurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:16px}
.valeur{border-radius:var(--rayon);padding:22px;text-align:center}
.valeur h3{font-size:22px;margin-bottom:6px}
.valeur p{margin:0;font-size:15px;color:var(--doux)}
.formations{display:flex;flex-wrap:wrap;gap:8px}
.formations li{padding:8px 14px;border-radius:999px;font-size:15px;font-weight:600}

/* Contact */
.contact-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.contact-actions .btn{min-height:56px}
.carte-map{border-radius:var(--rayon);overflow:hidden;min-height:280px;border:1px solid var(--verre-bord)}
.carte-map iframe{display:block;width:100%;height:100%;min-height:280px;border:0}
.form{display:grid;gap:14px}
.form label{display:block;font-weight:600;font-size:15px;margin-bottom:6px;color:var(--titre)}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:16px;color:var(--texte);padding:14px 16px;border-radius:16px;border:1px solid rgba(126,50,67,.18);background:rgba(255,255,255,.75)}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:3px solid rgba(205,137,22,.5);outline-offset:1px}
.form .btn{border:0;cursor:pointer;font-family:inherit}
.note{font-size:13px;color:var(--doux);margin:0}

/* Lien suite dans l'accueil */
.lien-suite{display:inline-block;margin-top:18px;font-weight:700;text-decoration:none}

@media (max-width:760px){
  .burger{display:flex}
  .nav__droite .btn{display:none}
  .nav__liens{position:absolute;left:12px;right:12px;top:calc(100% + 8px);flex-direction:column;gap:2px;padding:10px;border-radius:24px;
    background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--verre-bord);box-shadow:var(--verre-ombre)}
  .nav__liens.ouvert{display:flex}
  .nav__liens a{padding:14px 16px;font-size:17px}
  .nav{position:sticky}
  .page-tete{padding:40px 20px 16px}
  .page-tete p{font-size:17px}
  .bulle-deco--a{width:56px;height:56px;left:2%;top:12px}
  .carte-verre{padding:22px 18px}
  .cta-fin{padding:32px 18px}
}

/* Cookies */
.cookies{position:fixed;left:50%;transform:translateX(-50%);bottom:20px;z-index:80;width:min(640px,calc(100% - 24px));border-radius:24px;padding:18px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;background:rgba(255,255,255,.85)}
.cookies[hidden]{display:none}
.cookies p{margin:0;flex:1 1 300px;font-size:14px}
.cookies__actions{display:flex;gap:8px}
.cookies .btn{border:0;cursor:pointer;font-family:inherit}
.cookies .btn--verre{border:1px solid rgba(126,50,67,.2)}
.texte-legal h3{font-size:22px;margin:24px 0 8px}
.texte-legal h3:first-child{margin-top:0}
.texte-legal p{font-size:16px}
@media (max-width:760px){.cookies{bottom:calc(84px + env(safe-area-inset-bottom))}}

/* Carte aussi haute que les deux blocs horaires + cabinet */
.duo--map{align-items:stretch}
.duo--map .carte-map{display:flex;margin-top:49px!important}
.duo--map .carte-map iframe{flex:1 1 auto;height:auto}
@media (max-width:760px){.duo--map .carte-map{margin-top:0!important;min-height:320px}}

/* Pages soins */
.ligne__lien-soin{color:var(--titre);text-decoration:none}
.ligne__lien-soin::after{content:"";position:absolute;inset:0}
.ligne:has(.ligne__lien-soin):hover{background:rgba(255,255,255,.45)}
.chevron{color:var(--doux);font-size:22px;line-height:1}
.ligne__valeur--fort{font-weight:700;color:var(--rose)}
.duo--soin{align-items:start}
.duo--soin .carte-verre p{font-size:18px}
.photo-soin{margin:20px 0 0;height:220px;border-radius:20px;background:rgba(243,225,221,.8);display:flex;align-items:center;justify-content:center;color:#8F5F5F;font-size:15px!important}

/* Menu mobile ouvert : fond plein pour bien lire les liens */
@media (max-width:760px){
  .nav__liens{background:#FFF8F6;-webkit-backdrop-filter:none;backdrop-filter:none;border:1px solid #F0DCD8;box-shadow:0 18px 40px rgba(63,42,45,.22)}
  .nav__liens a{color:var(--titre)}
  .nav__liens a+a{border-top:1px solid #F3E3E0;border-radius:0}
  .nav__liens a:first-child{border-radius:14px 14px 0 0}
  .nav__liens a:last-child{border-radius:0 0 14px 14px}
}

/* Signature */
.signature{margin-top:18px!important;font-size:12px;opacity:.75}
.signature a{color:inherit}
