/* Polices hébergées sur le site (pas d'appel à Google Fonts) */
@font-face{font-family:"Alegreya";font-style:normal;font-weight:400 900;font-display:swap;src:url("../fonts/alegreya-latin-wght-normal.woff2") format("woff2-variations"),url("../fonts/alegreya-latin-wght-normal.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:"Alegreya";font-style:italic;font-weight:400 900;font-display:swap;src:url("../fonts/alegreya-latin-wght-italic.woff2") format("woff2-variations"),url("../fonts/alegreya-latin-wght-italic.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:"Alegreya Sans";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/alegreya-sans-latin-400-normal.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:"Alegreya Sans";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/alegreya-sans-latin-500-normal.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:"Alegreya Sans";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/alegreya-sans-latin-700-normal.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:"Alegreya Sans";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/alegreya-sans-latin-400-italic.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{
  --lagune:#025158; --eau:#3e848c; --brume:#79b8bf; --ecume:#c5eef2;
  --sable:#FEF5D0; --terre:#a6785e; --encre:#403d34; --violet:#FFB8FA;
  --fond:#F2F8F7; --fond-2:#E6F3F2; --carte:#ffffff; --ligne:rgba(2,81,88,.16);
  --doux:#59675f; --brun:#6e4a35; --eau-t:#2b6a71;
  --serif:"Alegreya", Georgia, "Times New Roman", serif;
  --sans:"Alegreya Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --wrap:1180px; --r-l:30px; --r-m:18px; --header-h:84px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;background:var(--fond);color:var(--encre);font:400 1.15rem/1.62 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,canvas{display:block;max-width:100%}
a{color:var(--lagune);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--eau-t)}
:focus-visible{outline:2px solid var(--terre);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--serif);color:var(--lagune);font-weight:500;line-height:1.08;margin:0;letter-spacing:-.012em;text-wrap:balance}
h1{font-size:clamp(2.9rem,7vw,6.1rem)}
h2{font-size:clamp(2rem,4vw,3.2rem)}
h3{font-size:clamp(1.35rem,2vw,1.62rem);line-height:1.2}
p{margin:0 0 1em;text-wrap:pretty}
ul,ol{margin:0;padding:0}
strong{font-weight:700;color:var(--lagune)}
.wrap{width:min(100% - 2.5rem, var(--wrap));margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--lagune);color:#fff;padding:.6rem 1rem;z-index:100;border-radius:0 0 10px 0}
.skip:focus{left:0}
main:focus{outline:none}
.view h1:focus{outline:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:.7rem 1.45rem;border-radius:999px;font:500 1.08rem/1.1 var(--sans);text-decoration:none;border:1.5px solid transparent;cursor:pointer;text-align:center;transition:background-color .2s,color .2s,border-color .2s,transform .2s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--lagune);color:#fff}
.btn-primary:hover{background:#013f45;color:#fff}
.btn-ghost{border-color:var(--lagune);color:var(--lagune);background:transparent}
.btn-ghost:hover{background:var(--lagune);color:#fff}
.btn-light{background:var(--sable);color:var(--lagune)}
.btn-light:hover{background:#fff;color:var(--lagune)}
.link-more{font-weight:500;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:2px}
.link-more:hover{border-bottom-color:transparent}
.actions{display:flex;flex-wrap:wrap;gap:.8rem}

/* Bandeau infos */
.topbar{background:var(--lagune);color:#d9eeec;font-size:.98rem}
.topbar .wrap{width:min(100% - 2.5rem, 1320px);display:flex;gap:1.75rem;align-items:center;min-height:42px}
.topbar a{color:#fff;text-decoration:none}
.topbar a:hover{text-decoration:underline}
.tb-page{color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tb-left{display:flex;gap:1.75rem;align-items:center;margin-right:auto}
.tb-item{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.tb-short{display:none}
@media (max-width:1100px){.tb-long{display:none}.tb-short{display:inline}}
@media (max-width:480px){.tb-gift{padding:.3rem .5rem}.tb-gift-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}}
.topbar svg{width:16px;height:16px;opacity:.85}

/* En-tête */
.site-header{position:sticky;top:0;z-index:50;background:rgba(242,248,247,.92);-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px);border-bottom:1px solid transparent;transition:border-color .25s}
.site-header.scrolled{border-bottom-color:var(--ligne)}
.site-header .wrap{width:min(100% - 2.5rem, 1320px);display:flex;align-items:center;gap:1.25rem;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--lagune);margin-right:auto;flex:none}
.brand .mark{width:48px;height:48px;flex:none}
.brand-name{font-family:var(--serif);font-size:1.4rem;line-height:1;display:block;font-weight:500}
.brand-sub{font-size:.95rem;color:var(--eau-t);display:block;margin-top:.22rem;line-height:1.1}
.nav ul{display:flex;gap:.15rem;list-style:none}
.nav a{display:block;padding:.48rem .62rem;border-radius:999px;text-decoration:none;color:var(--encre);font-weight:500;font-size:1.03rem;white-space:nowrap;transition:background-color .2s,color .2s}
.nav a:hover{background:rgba(62,132,140,.1);color:var(--lagune)}
.nav a[aria-current="page"]{color:var(--lagune);background:var(--ecume)}
.header-cta{min-height:46px;padding:.55rem 1.2rem;flex:none}
.burger{display:none;align-items:center;gap:.6rem;min-height:46px;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid var(--lagune);background:transparent;color:var(--lagune);font:500 1.05rem var(--sans);cursor:pointer}
.burger .bars{width:18px;height:12px;position:relative}
.burger .bars::before,.burger .bars::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px}
.burger .bars::before{top:1px}.burger .bars::after{bottom:1px}

/* Menu mobile */
.menu{position:fixed;inset:0;z-index:80;background:var(--lagune);color:#fff;display:flex;flex-direction:column;padding:1.25rem 1.25rem 2rem;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s}
.menu.open{opacity:1;visibility:visible;transition:opacity .3s,visibility 0s}
.menu-top{display:flex;align-items:center;justify-content:space-between;min-height:56px}
.menu-top .brand{color:#fff}
.menu-top .brand-sub{color:var(--ecume)}
.menu-close{min-height:46px;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid rgba(255,255,255,.5);background:transparent;color:#fff;font:500 1.05rem var(--sans);cursor:pointer}
.menu ol{list-style:none;margin:2rem 0;display:grid;gap:.1rem}
.menu ol a{display:block;font-family:var(--serif);font-size:clamp(1.9rem,7vw,2.6rem);line-height:1.25;color:#fff;text-decoration:none;padding:.12rem 0;transform:translateY(10px);opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .45s}
.menu.open ol a{transform:none;opacity:1}
.menu ol a[aria-current="page"]{color:var(--sable)}
.menu-info{margin-top:auto;display:grid;gap:.9rem;font-size:1.05rem;color:#d9eeec}
.menu-info a{color:#fff}
.menu-info .btn{justify-self:start}

/* Vues */
.view{display:none}
.view.active{display:block;animation:viewIn .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Photos */
.ph{position:relative;margin:0;overflow:hidden;background:var(--fond-2)}
.ph img{width:100%;height:100%;object-fit:cover}
.ph-arch{border-radius:999px 999px var(--r-l) var(--r-l)}
.ph-round{border-radius:var(--r-l)}
.ph figcaption{position:absolute;left:1rem;bottom:1rem;background:rgba(242,248,247,.92);color:var(--lagune);padding:.35rem .85rem;border-radius:999px;font-size:.98rem}

/* Schémas */
.schema{margin:2rem 0;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-l);padding:clamp(1rem,2.5vw,1.8rem)}
.schema svg{width:100%;height:auto}
.schema figcaption{margin-top:.8rem;color:var(--doux);font-size:1rem;text-align:center}
.schema-pair{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.schema-pair svg + svg{border-left:1px solid var(--ligne);padding-left:1.2rem}
.schema text{font-family:var(--sans)}
.schema .t-serif{font-family:var(--serif)}

/* Hero */
.hero{position:relative;padding:clamp(1.5rem,4.5vw,4rem) 0 clamp(3rem,6vw,5.5rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.5rem,4vw,4rem);align-items:center}
.hero-who{font-size:1.12rem;color:var(--eau-t);margin:0 0 1.4rem;display:flex;align-items:center;gap:.6rem}
.hero-who::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--terre);flex:none}
.hero h1{font-size:clamp(3rem,6.2vw,5.7rem);line-height:.98;letter-spacing:-.02em}
.hero h1 .l2{display:block;padding-left:.8em;font-style:italic;font-weight:400;color:var(--eau);white-space:nowrap}
.hero .lead{font-size:clamp(1.2rem,1.7vw,1.36rem);max-width:36ch;margin:1.8rem 0 2.1rem}
.proof{display:flex;align-items:center;gap:.65rem;margin:2rem 0 0;font-size:1.02rem;color:var(--doux)}
.proof a{color:inherit}
.stars{color:var(--terre);letter-spacing:.08em;font-size:1.05rem}
.hero-art{position:relative;aspect-ratio:1/1;width:100%;max-width:620px;justify-self:center;margin:0}
.hero-photo{position:absolute;inset:18%;border-radius:50%;overflow:hidden;box-shadow:0 30px 60px -30px rgba(2,81,88,.45);background:var(--fond-2)}
.hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-art canvas{position:absolute;inset:0;width:100%;height:100%}

/* Sections */
.section{padding:clamp(3.5rem,7vw,6.5rem) 0}
.section-head{max-width:62ch;margin-bottom:clamp(2rem,4vw,3.2rem)}
.section-head p{margin-top:1rem;font-size:1.2rem;color:var(--doux)}
.split{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.tint{background:var(--fond-2)}
.block{padding:clamp(3rem,6vw,5rem) 0}

.dot-list{list-style:none;display:grid}
.dot-list li{position:relative;padding:.85rem 0 .85rem 1.9rem;border-top:1px solid var(--ligne);font-size:1.15rem}
.dot-list li:last-child{border-bottom:1px solid var(--ligne)}
.dot-list li::before{content:"";position:absolute;left:.15rem;top:1.4rem;width:9px;height:9px;border-radius:50%;background:var(--eau);box-shadow:12px 0 0 -2px var(--brume)}
.dot-list li small{display:block;color:var(--doux);font-size:.98rem}
.dot-list.cols{grid-template-columns:1fr 1fr;column-gap:2.5rem}
.dot-list.cols li:nth-last-child(2){border-bottom:1px solid var(--ligne)}

/* Offres */
.offers{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-rows:auto auto;gap:1.25rem}
.offer{position:relative;border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column}
.offer-body{padding:clamp(1.5rem,2.6vw,2.2rem);display:flex;flex-direction:column;gap:.85rem;flex:1}
.offer h3{font-size:clamp(1.7rem,2.6vw,2.2rem)}
.offer p{margin:0;max-width:46ch}
.offer .link-more{margin-top:auto;align-self:flex-start}
.offer .ph{aspect-ratio:2.4/1}
.offer-main{grid-row:span 2;background:var(--lagune);color:#e3f3f2;min-height:600px;justify-content:flex-end}
.offer-main > .ph{position:absolute;inset:0;aspect-ratio:auto}
.offer-main > .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,81,88,0) 25%,rgba(2,81,88,.78) 58%,rgba(1,61,66,.97) 100%)}
.offer-main .offer-body{position:relative;flex:none}
.offer-main h3{color:#fff;font-size:clamp(2.2rem,3.6vw,3rem)}
.offer-main .link-more{color:var(--sable);margin-top:.5rem}
.tagline{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--sable)}
.offer-brain{background:var(--ecume)}
.offer-massage{background:var(--sable)}
.offer-massage h3,.offer-massage .link-more{color:var(--brun)}
.offer-reflexes{background:#fbe4f8}
.offer-reflexes .ph img{object-position:50% 28%}
.offer-wide{grid-column:1 / -1;flex-direction:row}
.offer-wide > .ph{flex:0 0 50%;aspect-ratio:auto;min-height:290px}
.offer-wide .offer-body{justify-content:center}
.offer-wide .link-more{margin-top:.3rem}
.chip{align-self:flex-start;font-size:.95rem;padding:.25rem .75rem;border-radius:999px;background:rgba(255,255,255,.65);color:var(--lagune)}
.offer-main .chip{background:rgba(255,255,255,.14);color:#fff}

/* Séance */
.seance{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.steps{list-style:none;display:grid}
.steps li{display:grid;grid-template-columns:56px 1fr;gap:0 1.3rem;position:relative;padding-bottom:1.8rem}
.steps li:not(:last-child)::before{content:"";position:absolute;left:26px;top:60px;bottom:6px;width:4px;background:radial-gradient(circle,var(--brume) 1.6px,transparent 2.2px) 50% 0/4px 12px repeat-y}
.step-n{grid-row:span 2;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--fond-2);border:1.5px solid var(--eau);color:var(--lagune);font:500 1.5rem/1 var(--serif)}
.steps h3{font-size:1.45rem;margin:.6rem 0 .4rem}
.steps p{margin:0;color:var(--doux);font-size:1.08rem}
.seance-side{display:grid;gap:1.2rem;position:sticky;top:calc(var(--header-h) + 1.5rem)}
.seance-side .ph{aspect-ratio:4/3}
.facts{list-style:none;display:grid;gap:.5rem;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.3rem 1.4rem}
.facts li{position:relative;padding-left:1.4rem;font-size:1.05rem;color:var(--doux)}
.facts li::before{content:"";position:absolute;left:0;top:.62rem;width:7px;height:7px;border-radius:50%;background:var(--eau)}

/* Bandeau citation */
.band{background:var(--lagune);color:#dcefee;position:relative;overflow:hidden}
.band .wrap{position:relative;padding:clamp(3.5rem,7vw,6rem) 0}
.band .band-quote{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.12;color:#fff;margin:0 0 1.6rem;max-width:20ch;letter-spacing:-.01em}
.band p{max-width:52ch;font-size:1.2rem}
.band strong{color:#fff}
.band .stars{color:var(--sable);font-size:1.3rem}
.band .actions{margin-top:1.8rem}
.band-mark{position:absolute;right:-6%;top:50%;width:min(46vw,560px);transform:translateY(-50%);opacity:.22;pointer-events:none}

/* À propos */
.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.about .ph{aspect-ratio:3/4;max-width:460px}
.about-text p{font-size:1.2rem}
.about-text h2{margin-bottom:1.2rem}
.about-text .sign{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--eau-t);margin:1.2rem 0 1.6rem}

.infos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}
.info{border-top:2px solid var(--lagune);padding-top:1.1rem}
.info h3{font-size:1.35rem;margin-bottom:.6rem}
.info p,.info li{color:var(--doux);font-size:1.08rem;margin:0}
.info ul{list-style:none;display:grid;gap:.3rem}
.info a{font-weight:500}

/* Pages intérieures */
.page-head{padding:clamp(2.5rem,5.5vw,4.5rem) 0 clamp(2.5rem,5vw,4rem)}
.page-head .wrap{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.page-head.no-photo .wrap{grid-template-columns:minmax(0,1fr) auto}
.page-head h1{font-size:clamp(2.8rem,6.2vw,5.1rem);max-width:15ch}
.page-head .lead{font-size:clamp(1.2rem,1.8vw,1.42rem);max-width:44ch;margin:1.4rem 0 0}
.page-head .ph{aspect-ratio:4/5}
.page-head .ph.wide{aspect-ratio:4/3}
.head-mark{width:clamp(120px,18vw,230px);opacity:.95}
.page-body{padding-bottom:clamp(3.5rem,7vw,6rem)}
.prose{max-width:66ch}
.prose p{font-size:1.18rem}
.prose h2{font-size:clamp(1.8rem,3vw,2.4rem);margin:2.6rem 0 1rem}
.prose h2:first-child{margin-top:0}
.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.aside{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.6rem 1.7rem;position:sticky;top:calc(var(--header-h) + 1.5rem)}
.aside h3,.aside h2{font-size:1.4rem;margin-bottom:.8rem}
.aside p{color:var(--doux);margin:0}
.aside .dot-list li{font-size:1.06rem;padding:.6rem 0 .6rem 1.8rem}
.aside .dot-list li::before{top:1.08rem}
.aside .btn{margin-top:1.3rem;width:100%}
.aside .price-big{font-family:var(--serif);font-size:2.6rem;color:var(--lagune);line-height:1;margin:.2rem 0 .3rem}
.aside .ph{aspect-ratio:4/3;border-radius:var(--r-m);margin:-.4rem -.5rem 1.2rem}
.prose .pull,.pull{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,2.6vw,2.15rem);line-height:1.25;color:var(--lagune);border-left:3px solid var(--brume);padding-left:1.2rem;margin:2rem 0;max-width:32ch}
.why{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:1.25rem;align-items:stretch;margin:1.6rem 0 1.8rem}
.why .ph{border-radius:var(--r-m);min-height:300px}
.says{display:grid;gap:1rem;align-content:center}
.prose .says p,.says p{margin:0;font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.3;color:var(--lagune);background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m) var(--r-m) var(--r-m) 4px;padding:1rem 1.2rem}
.notice{display:flex;gap:1rem;align-items:flex-start;background:var(--sable);border-radius:var(--r-m);padding:1.3rem 1.5rem;color:#5b4a38;font-size:1.05rem;margin-top:2.5rem}
.notice svg{flex:none;width:24px;height:24px;color:var(--terre);margin-top:.15rem}
.notice p{margin:0}
.notice b{color:var(--brun)}
.banner{aspect-ratio:21/8;border-radius:var(--r-l);margin-bottom:clamp(2rem,4vw,3rem)}
.banner img{object-position:50% 40%}

.areas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.area{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.5rem 1.5rem 1.6rem}
.area h3{font-size:1.4rem;margin-bottom:.6rem}
.area p{margin:0;color:var(--doux);font-size:1.05rem}
.area.kids{background:var(--sable);border-color:var(--sable)}
.area.kids h3{color:var(--brun)}
.area.ask{background:transparent;border-style:dashed}

.techs{display:grid;gap:1.6rem}
.tech{border-top:2px solid var(--eau);padding-top:1.1rem}
.tech h3{font-size:1.45rem;margin-bottom:.15rem}
.tech .fr{display:block;font-family:var(--serif);font-style:italic;color:var(--eau-t);margin-bottom:.6rem}
.tech p{margin:0;color:var(--doux);font-size:1.06rem}

.timeline{list-style:none;display:grid;border-left:2px solid var(--brume);margin-left:.4rem}
.timeline li{position:relative;padding:0 0 2rem 1.8rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-8px;top:.45rem;width:14px;height:14px;border-radius:50%;background:var(--fond);border:2px solid var(--eau)}
.aside .timeline li::before{background:#fff}
.timeline .when{font-family:var(--serif);font-size:1.25rem;color:var(--eau-t);display:block}
.timeline h3{font-size:1.4rem;margin:.1rem 0 .35rem}
.timeline p{margin:0;color:var(--doux)}

/* Brain Gym */
.gallery{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:1rem;margin-top:1.8rem}
.gallery .ph{aspect-ratio:4/5;border-radius:var(--r-m)}
.ecap{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.ecap li{background:var(--carte);border-radius:var(--r-m);padding:1.5rem 1.5rem 1.7rem;border:1px solid var(--ligne);position:relative}
.ecap .ico-e{width:64px;height:64px;border-radius:50%;background:var(--ecume);color:var(--lagune);display:grid;place-items:center;margin-bottom:1rem}
.ecap li:nth-child(2) .ico-e{background:var(--sable);color:var(--brun)}
.ecap li:nth-child(3) .ico-e{background:var(--lagune);color:#fff}
.ecap li:nth-child(4) .ico-e{background:#fbe3fa;color:#7a3f76}
.ecap .ico-e svg{width:34px;height:34px}
.ecap .letter{position:absolute;top:1rem;right:1.2rem;font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--ecume)}
.ecap h3{font-size:1.35rem;margin-bottom:.45rem}
.ecap p{margin:0;color:var(--doux);font-size:1.05rem}
.video{position:relative;aspect-ratio:16/9;border-radius:var(--r-l);overflow:hidden;background:var(--lagune);margin-top:2.5rem;max-width:860px}
.video button{position:absolute;inset:0;width:100%;border:0;padding:0;cursor:pointer;background:radial-gradient(circle at 50% 45%,#0b6a72,#013d42);color:#fff}
.video .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:.8rem;background:var(--sable);color:var(--lagune);border-radius:999px;padding:.8rem 1.4rem .8rem 1rem;font:500 1.1rem var(--sans);white-space:nowrap}
.video .play svg{width:28px;height:28px}
.video .vmark{position:absolute;inset:12% 30%;opacity:.25}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video small{position:absolute;left:1rem;bottom:.8rem;color:#e3f3f2;font-size:.92rem}
.media-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.25rem,3vw,2rem);align-items:start}
.media-pair .video{margin-top:0;max-width:none}
.media-pair .schema{margin:0}
.schema.chart img{width:100%;height:auto;border-radius:12px}
.atelier-steps{list-style:none;display:grid;counter-reset:a}
.atelier-steps li{counter-increment:a;display:grid;grid-template-columns:2.2rem 1fr;gap:.6rem;padding:.75rem 0;border-top:1px solid var(--ligne);font-size:1.1rem}
.atelier-steps li::before{content:counter(a);font-family:var(--serif);font-size:1.3rem;color:var(--eau-t);line-height:1.35}
.themes{display:flex;flex-wrap:wrap;gap:.6rem}
.themes span{padding:.45rem 1rem;border-radius:999px;background:var(--carte);border:1px solid var(--ligne);font-size:1.05rem}
.themes span b{font-family:var(--serif);font-weight:500;color:var(--lagune)}
.groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.group{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.5rem}
.group h3{font-size:1.45rem;margin-bottom:.4rem}
.group .when{color:var(--eau-t);font-weight:500;display:block;margin-bottom:.8rem}
.group p{margin:0;color:var(--doux);font-size:1.05rem}
.group .p{margin-top:1rem;font-family:var(--serif);font-size:1.5rem;color:var(--lagune);line-height:1.2}
.group .p small{display:block;font-family:var(--sans);font-size:.98rem;color:var(--doux)}
.emo{aspect-ratio:20/9;border-radius:var(--r-m);margin-bottom:1.4rem}

/* Tarifs */
.tarifs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;align-items:stretch}
.tarif{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-l);overflow:hidden}
.tarif .ph{aspect-ratio:2.2/1}
.tarif-head{padding:1.3rem 1.6rem 1.1rem;background:var(--lagune);color:#dcefee}
.tarif-head h2{font-size:1.9rem;color:#fff}
.tarif-head p{margin:.3rem 0 0;font-size:1.02rem}
.tarif.t2 .tarif-head{background:var(--sable);color:#5b4a38}
.tarif.t2 .tarif-head h2{color:var(--brun)}
.tarif.t3 .tarif-head{background:var(--ecume);color:var(--encre)}
.tarif.t3 .tarif-head h2{color:var(--lagune)}
.tarif.t4 .tarif-head{background:#fbe4f8;color:var(--encre)}
.tarif.t4 .tarif-head h2{color:var(--lagune)}
.tarif.t4 .ph img{object-position:50% 30%}
.tarif ul{list-style:none;padding:.4rem 1.6rem 1.4rem}
.tarif li{display:grid;grid-template-columns:1fr auto;gap:.2rem 1rem;padding:1rem 0;border-bottom:1px solid var(--ligne);align-items:baseline}
.tarif li:last-child{border-bottom:0}
.tarif h3{font-size:1.3rem}
.tarif .eur{font-family:var(--serif);font-size:1.75rem;color:var(--lagune);white-space:nowrap}
.tarif li p{grid-column:1 / -1;margin:0;color:var(--doux);font-size:1rem}
.gift{display:inline-block;margin-top:.3rem;font-size:.92rem;padding:.12rem .6rem;border-radius:999px;background:var(--violet);color:#5c2a59}
.pay{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin-top:2.5rem;padding-top:1.6rem;border-top:1px solid var(--ligne);color:var(--doux)}
.pay b{color:var(--lagune);font-family:var(--serif);font-weight:500;font-size:1.2rem}
/* Paiement en ligne (page Tarifs) */
.paybox{margin-top:2.5rem;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-l);padding:clamp(1.4rem,3vw,2.2rem)}
.paybox-head{display:flex;gap:1rem;align-items:center;margin-bottom:.8rem}
.paybox-head .ico{width:54px;height:54px;border-radius:50%;background:var(--ecume);color:var(--lagune);display:grid;place-items:center;flex:none}
.paybox-head .ico svg{width:26px;height:26px}
.paybox h2{font-size:clamp(1.6rem,2.6vw,2rem)}
.paybox-head p{margin:.2rem 0 0;color:var(--doux)}
.paylist{list-style:none;display:grid}
.paylist li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem 1.5rem;align-items:center;padding:1.1rem 0;border-top:1px solid var(--ligne)}
.paylist h3{font-size:1.3rem}
.paylist p{margin:.15rem 0 0;color:var(--doux);font-size:1rem}
.paylist .eur{font-family:var(--serif);font-size:1.75rem;color:var(--lagune);white-space:nowrap}
/* Bons cadeaux */
.tb-gift{padding:.12rem .75rem;border-radius:999px;background:rgba(254,245,208,.16);color:var(--sable)!important}
.tb-gift:hover{background:var(--sable);color:var(--lagune)!important;text-decoration:none!important}
.tb-gift svg{opacity:1}
.tb-gift[aria-current]{background:var(--sable);color:var(--lagune)!important}
.page-head .actions{margin-top:1.8rem}
.voucher-art{position:relative;display:grid;place-items:center;padding:1.5rem .5rem;width:100%;max-width:460px;justify-self:center}
.voucher-art > *{grid-area:1 / 1}
.voucher,.voucher-back{width:100%;aspect-ratio:1.62/1;border-radius:22px}
.voucher-back{background:var(--sable);border:1px solid rgba(110,74,53,.18);rotate:5deg;translate:14px 12px}
.voucher{position:relative;overflow:hidden;rotate:-4deg;background:linear-gradient(135deg,#013d42 0%,#025158 45%,#2b6a71 100%);color:#d9eeec;padding:clamp(1.1rem,3vw,1.6rem) clamp(1.2rem,3.2vw,1.8rem);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 34px 60px -34px rgba(2,61,66,.75)}
.voucher > div,.voucher .v-foot{position:relative;max-width:68%}
.v-ribbon{position:absolute;top:0;bottom:0;left:76%;width:22px;background:linear-gradient(90deg,#f3e3a6,var(--sable) 45%,#f3e3a6)}
.v-bow{position:absolute;left:calc(76% + 11px);top:4px;width:84px;translate:-50% 0}
.v-top{display:flex;align-items:center;gap:.7rem}
.voucher .mark{width:40px;height:40px;flex:none}
.v-kicker{margin:0;font-weight:500;font-size:.88rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sable)}
.v-title{margin:0;font-family:var(--serif);font-size:clamp(1.45rem,2.6vw,1.95rem);line-height:1.08;color:#fff}
.v-meta{margin:.35rem 0 0;font-size:1rem;color:var(--ecume)}
.v-foot{margin:0;font-size:.9rem;color:#a9cfcc}
.v-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 38%,rgba(255,255,255,.2) 50%,transparent 62%);translate:-120% 0;animation:vShine 7s ease-in-out 1.8s infinite;pointer-events:none}
@keyframes vShine{0%{translate:-120% 0}30%,100%{translate:120% 0}}
.voucher-art .voucher{animation:vFloat 6s ease-in-out infinite}
@keyframes vFloat{0%,100%{translate:0 0}50%{translate:0 -10px}}
.aside .btn + .btn{margin-top:.6rem}
.secure{display:flex;align-items:center;justify-content:center;gap:.4rem;margin:.7rem 0 0!important;font-size:.92rem}
.secure svg{width:16px;height:16px;flex:none}
.aside-note{margin-top:1.1rem!important;font-size:.98rem}
.thanks{display:flex;gap:1rem;align-items:flex-start;margin:0 0 2.5rem;padding:1.2rem 1.5rem;border-radius:var(--r-m);background:#e3f5ef;color:#1d4d3c;font-size:1.08rem}
.thanks svg{width:28px;height:28px;flex:none;color:#1d6b4f}
.thanks p{margin:0}
.thanks b{color:#1d6b4f}
.thanks.is-info{background:var(--sable);color:#5b4a38}.thanks.is-info svg,.thanks.is-info b{color:var(--brun)}
.thanks.is-error{background:#fde8e4;color:#7a2e22}.thanks.is-error svg,.thanks.is-error b{color:#9a3f28}
.gift-offers{list-style:none;padding:0;margin:0 0 2.4rem;display:grid;gap:.6rem}
.gift-offers a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.2rem;border:1px solid var(--ligne);border-radius:14px;background:var(--carte);color:var(--encre);text-decoration:none;transition:border-color .25s,box-shadow .25s,translate .25s}
.gift-offers a:hover{border-color:var(--eau);translate:4px 0;box-shadow:0 14px 28px -24px rgba(2,81,88,.6)}
.gift-offers b{display:block;font-weight:500;color:var(--lagune);font-size:1.12rem}
.gift-offers small{display:block;color:var(--doux);font-size:.98rem}
.gift-offers .eur{font-family:var(--serif);font-size:1.5rem;color:var(--lagune);white-space:nowrap}
/* Commande d'un bon cadeau */
.order{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(1.5rem,4vw,3.2rem);align-items:start}
.o-step{border:0;margin:0 0 1.8rem;padding:0;min-width:0}
.o-step legend{display:flex;align-items:center;gap:.7rem;padding:0;margin-bottom:1rem;font:500 1.45rem/1.2 var(--serif);color:var(--lagune)}
.o-n{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--lagune);color:#fff;font:500 1.05rem/1 var(--sans);flex:none}
.o-choices{display:grid;gap:.6rem}
.o-choice{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:.85rem;align-items:center;padding:.9rem 1.1rem;border:1.5px solid var(--ligne);border-radius:14px;background:var(--fond);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
.o-choice:hover{border-color:var(--brume)}
.o-choice input{width:20px;height:20px;margin:0;accent-color:var(--lagune)}
.o-choice:has(input:checked){border-color:var(--lagune);background:#fff;box-shadow:0 12px 26px -20px rgba(2,81,88,.7)}
.o-choice:has(input:focus-visible){outline:3px solid var(--brume);outline-offset:2px}
.o-txt b{display:block;font-weight:500;color:var(--encre)}
.o-txt small{display:block;color:var(--doux);font-size:.95rem;line-height:1.35}
.o-price{font:500 1.35rem var(--serif);color:var(--lagune);white-space:nowrap}
.hint{font-size:.95rem;color:var(--doux)}
.btn-pay{min-height:56px;font-size:1.12rem;gap:.3em}
.order-form .secure{margin-top:.8rem!important;color:var(--doux)}
.btn-pay:disabled{opacity:.55;cursor:not-allowed}
.btn-pay:disabled + .o-soon{margin-top:1rem}
.o-soon{margin:0;padding:1rem 1.2rem;border-radius:12px;background:var(--sable);color:#5b4a38}
.o-soon a{color:var(--brun)}
.order-preview{position:sticky;top:calc(var(--header-h) + 1.5rem)}
.op-label{margin:0 0 .8rem;font-size:.9rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--eau-t)}
.voucher.v-live{aspect-ratio:auto;min-height:300px;rotate:-2deg;gap:.4rem;animation:vFloat 7s ease-in-out infinite}
.v-who{margin:.4rem 0 0;display:grid;gap:.15rem;max-width:68%;position:relative}
.v-who div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;align-items:baseline}
.v-who dt{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sable)}
.v-who dd{margin:0;font:500 1.15rem/1.3 var(--serif);color:#fff;overflow-wrap:anywhere}
.v-mot{position:relative;max-width:68%;margin:.2rem 0 0;font:italic 400 1rem/1.4 var(--serif);color:var(--ecume);overflow-wrap:anywhere}
.v-mot:empty{display:none}
.v-upd{animation:vUpd .45s ease}
@keyframes vUpd{0%{opacity:.25;transform:translateY(5px)}100%{opacity:1;transform:none}}
.op-total{display:flex;justify-content:space-between;align-items:baseline;margin:1.6rem 0 .7rem;font-size:1.1rem;color:var(--doux)}
.op-total b{font:500 2.1rem/1 var(--serif);color:var(--lagune)}
.op-facts{list-style:none;padding:0;margin:0;display:grid;gap:.4rem;color:var(--doux)}
.op-facts li{position:relative;padding-left:1.6rem}
.op-facts li::before{content:"";position:absolute;left:.1rem;top:.45em;width:.8rem;height:.45rem;border-left:2px solid var(--eau);border-bottom:2px solid var(--eau);rotate:-45deg}
.offer-links{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;margin-top:auto!important;max-width:none!important}
.offer .offer-links .link-more{margin-top:0}
.offer-wide .offer-links{margin-top:.3rem!important}

/* Paiement en ligne d'une prestation */
.p-choices{display:grid;gap:1.15rem}
.p-grp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.p-group{grid-column:1 / -1;margin:0;font-size:.88rem;font-weight:500;letter-spacing:.13em;text-transform:uppercase;color:var(--eau-t)}
.p-grp .o-choice{padding:.8rem 1rem;gap:.7rem}
.p-qte{grid-template-columns:auto 7rem minmax(0,1fr);justify-content:start;align-items:center;gap:.4rem 1rem;margin:1.4rem 0 0}
.p-qte select{padding:.65rem 1rem}
.p-gift{margin:1rem 0 0;font-size:1rem;color:var(--doux)}
.o-opt{font:400 1.02rem var(--sans);color:var(--doux)}
.recap{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-l);padding:1.4rem 1.5rem 1.3rem;box-shadow:0 24px 50px -38px rgba(2,81,88,.55)}
.recap-head{display:flex;gap:.9rem;align-items:center;padding-bottom:1.1rem;border-bottom:1px dashed var(--brume)}
.recap-ico{width:48px;height:48px;border-radius:50%;background:var(--ecume);color:var(--lagune);display:grid;place-items:center;flex:none}
.recap-ico svg{width:24px;height:24px}
.recap-k{margin:0;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--eau-t)}
.recap-t{margin:.15rem 0 0;font:500 1.45rem/1.2 var(--serif);color:var(--lagune)}
.recap-rows{margin:.5rem 0 0;display:grid}
.recap-rows div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--ligne)}
.recap-rows div[hidden]{display:none}
.recap-rows dt{color:var(--doux)}
.recap-rows dd{margin:0;text-align:right;font-weight:500;color:var(--encre);overflow-wrap:anywhere}
.recap .recap-total{margin:1.1rem 0 0}
.recap-note{margin:1.2rem 0 0;padding:1rem 1.2rem;border-radius:12px;background:var(--sable);color:#5b4a38;font-size:1rem}
.recap-note a{color:var(--brun)}
.tarif{display:flex;flex-direction:column}
.tarif-pay{margin:auto 1.6rem 1.5rem;padding-top:1rem;border-top:1px dashed var(--brume)}

/* Avis */
.score{display:flex;align-items:center;gap:1.2rem;margin-bottom:1.6rem}
.score .num{font-family:var(--serif);font-size:clamp(3.4rem,7vw,5rem);line-height:1;color:var(--lagune)}
.score .stars{font-size:1.5rem;display:block}
.score small{display:block;color:var(--doux);font-size:1.02rem}

/* On en parle */
.press{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.press-card{display:flex;flex-direction:column;gap:.7rem;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.5rem;text-decoration:none;color:var(--encre)}
.press-card:hover{border-color:var(--eau);color:var(--encre)}
.press-card .kind{font-size:.98rem;color:var(--eau-t);display:flex;align-items:center;gap:.5rem}
.press-card .kind svg{width:20px;height:20px;flex:none}
.press-card h2{font-size:1.38rem;line-height:1.2}
.press-card p{margin:0;color:var(--doux);font-size:1.03rem}
.press-card .go{margin-top:auto;padding-top:.4rem;font-weight:500;color:var(--lagune)}
.press-filter{display:flex;gap:.5rem;margin-bottom:1.8rem;flex-wrap:wrap}
.press-filter button{min-height:44px;padding:.4rem 1.1rem;border-radius:999px;border:1.5px solid var(--ligne);background:var(--carte);color:var(--encre);font:500 1.02rem var(--sans);cursor:pointer}
.press-filter button[aria-pressed="true"]{background:var(--lagune);border-color:var(--lagune);color:#fff}

/* Contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.contact-lines{list-style:none;display:grid;gap:1.3rem;margin-bottom:2rem}
.contact-lines li{display:grid;grid-template-columns:44px 1fr;gap:1rem;align-items:start}
.ico{width:44px;height:44px;border-radius:50%;background:var(--ecume);display:grid;place-items:center;color:var(--lagune)}
.ico svg{width:20px;height:20px}
.contact-lines b{display:block;font-family:var(--serif);font-weight:500;font-size:1.3rem;color:var(--lagune);line-height:1.2;margin-bottom:.15rem}
.contact-lines span,.contact-lines a{font-size:1.08rem}
.contact-lines .muted{color:var(--doux)}
.form{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-l);padding:clamp(1.5rem,3vw,2.4rem)}
.form h2{font-size:clamp(1.8rem,3vw,2.3rem);margin-bottom:.4rem}
.form .sub{color:var(--doux);margin-bottom:1.6rem}
.field{display:grid;gap:.4rem;margin-bottom:1.1rem}
.field label{font-weight:500;color:var(--lagune)}
.field input,.field textarea,.field select{font:400 1.08rem/1.4 var(--sans);color:var(--encre);background:var(--fond);border:1.5px solid transparent;border-radius:12px;padding:.85rem 1rem;width:100%;transition:border-color .2s,background-color .2s}
.field textarea{min-height:150px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--eau);background:#fff}
.field [aria-invalid="true"]{border-color:#b4553b;background:#fff}
.err{color:#9a3f28;font-size:.98rem;display:none}
.err.show{display:block}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.check{display:grid;grid-template-columns:22px 1fr;gap:.7rem;align-items:start;font-size:1rem;color:var(--doux);margin:.4rem 0 1.2rem}
.check input{width:20px;height:20px;margin:.15rem 0 0;accent-color:var(--lagune)}
.form .btn{width:100%}
.form-status{margin:1rem 0 0;padding:.9rem 1.1rem;border-radius:12px;background:var(--ecume);color:var(--lagune);display:none}
.form-status.show{display:block}
.access{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}

/* CTA + pied de page */
.cta-final{padding:clamp(3.5rem,7vw,6rem) 0}
.cta-box{background:var(--ecume);border-radius:var(--r-l);padding:clamp(2rem,5vw,3.5rem);display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:2rem;align-items:center}
.cta-box h2{font-size:clamp(1.9rem,3.6vw,2.8rem);max-width:22ch}
.cta-box p{margin:.9rem 0 0;max-width:48ch}
.cta-box .actions{flex-direction:column;align-items:stretch}
.site-footer{background:#013d42;color:#b9d8d6;padding:clamp(3rem,6vw,4.5rem) 0 2rem;font-size:1.05rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:2rem}
.site-footer .brand{color:#fff;margin-bottom:1rem}
.site-footer .brand-sub{color:var(--ecume)}
.site-footer h2{color:#fff;font-size:1.25rem;line-height:1.2;margin-bottom:.8rem}
.site-footer ul{list-style:none;display:grid;gap:.4rem}
.site-footer a{color:#e3f3f2;text-decoration:none}
.site-footer a:hover{text-decoration:underline;color:#fff}
.legal{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:grid;gap:.6rem;font-size:.95rem;color:#8fb8b5}
.legal p{margin:0;max-width:92ch}
.site-footer .legal a{text-decoration:underline;text-underline-offset:.2em}
.mobile-bar{display:none}


/* ===================== Animations ===================== */
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:90;background:linear-gradient(90deg,var(--lagune),var(--eau),var(--brume));transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
.ph img{translate:0 var(--py,0px)}
html.anim .rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1) var(--d,0s),transform .9s cubic-bezier(.2,.7,.2,1) var(--d,0s),translate .35s ease,box-shadow .35s ease,border-color .35s ease}
html.anim .rv.in{opacity:1;transform:none}
html.anim .rv-img{background:transparent}
html.anim .rv-img img{clip-path:inset(100% 0 0 0);scale:1.18;transition:clip-path 1.15s cubic-bezier(.7,0,.2,1) var(--d,0s),scale 1.7s cubic-bezier(.2,.7,.2,1) var(--d,0s)}
html.anim .rv-img.in img{clip-path:inset(0 0 0 0);scale:var(--sc,1)}
html.anim .rv-img figcaption{opacity:0;transition:opacity .6s ease calc(var(--d,0s) + .9s)}
html.anim .rv-img.in figcaption{opacity:1}
.px{--sc:1.1}
.ph img.px{scale:1.1}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .06em .12em 0;margin-bottom:-.12em}
html.anim .rv-words .w > span{display:inline-block;transform:translateY(112%);transition:transform 1s cubic-bezier(.2,.7,.2,1) var(--wd,0s)}
html.anim .rv-words.in .w > span{transform:none}
html.anim .rv-pop .hero-photo{opacity:0;transform:scale(.82);transition:opacity 1s ease .55s,transform 1.5s cubic-bezier(.2,.7,.2,1) .55s}
html.anim .rv-pop.in .hero-photo{opacity:1;transform:none}
html.anim .rv-pop .voucher{opacity:0;scale:.8;rotate:-16deg;transition:opacity .8s ease .35s,scale 1.3s cubic-bezier(.2,.8,.2,1) .35s,rotate 1.3s cubic-bezier(.2,.8,.2,1) .35s}
html.anim .rv-pop.in .voucher{opacity:1;scale:1;rotate:-4deg}
html.anim .rv-pop .voucher-back{opacity:0;rotate:-4deg;translate:0 0;transition:opacity .6s ease .9s,rotate 1.1s cubic-bezier(.2,.8,.2,1) .9s,translate 1.1s cubic-bezier(.2,.8,.2,1) .9s}
html.anim .rv-pop.in .voucher-back{opacity:1;rotate:5deg;translate:14px 12px}
html.anim .steps li::before{transform:scaleY(0);transform-origin:top;transition:transform 1s ease calc(var(--d,0s) + .35s)}
html.anim .steps li.in::before{transform:none}
html.anim .steps .step-n,html.anim .timeline li::before{transition:transform .65s cubic-bezier(.3,1.6,.5,1) calc(var(--d,0s) + .15s),opacity .4s ease calc(var(--d,0s) + .15s)}
html.anim .steps li:not(.in) .step-n,html.anim .timeline li:not(.in)::before{transform:scale(.3);opacity:0}
html.anim .offer-main .ph img{scale:1.16;transition:scale 1.8s cubic-bezier(.2,.7,.2,1)}
html.anim .offer-main.in .ph img{scale:1}
.offer .ph img{transition:scale 1.1s cubic-bezier(.2,.7,.2,1)}
.offer:hover .ph img,html.anim .offer:hover .ph img,html.anim .offer.in:hover .rv-img.in img{scale:1.06}
.view.leaving{animation:viewOut .24s ease forwards}
@keyframes viewOut{to{opacity:0;transform:translateY(-12px)}}
.tarif,.group,.area,.ecap li,.press-card,.format{transition:translate .35s ease,box-shadow .35s ease,border-color .35s ease}
.tarif:hover,.group:hover,.area:hover,.ecap li:hover,.press-card:hover{translate:0 -5px;box-shadow:0 26px 44px -30px rgba(2,81,88,.5)}
.ecap li:hover .ico-e svg{animation:wiggle .7s ease}
@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg) scale(1.08)}60%{transform:rotate(9deg) scale(1.05)}}
.btn-primary{position:relative;overflow:hidden}
.btn-primary::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.22),transparent);transform:skewX(-20deg);transition:left .7s ease}
.btn-primary:hover::after{left:130%}
/* Schémas animés */
html.anim .schema .draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.3s ease var(--sd,0s)}
html.anim .schema.in .draw{stroke-dashoffset:0}
html.anim .schema .pop{opacity:0;transform:scale(.55);transform-box:fill-box;transform-origin:center;transition:opacity .5s ease var(--sd,0s),transform .8s cubic-bezier(.3,1.5,.5,1) var(--sd,0s)}
html.anim .schema.in .pop{opacity:1;transform:none}
html.anim .schema .gyri path{stroke-dasharray:120;stroke-dashoffset:120;transition:stroke-dashoffset 1.5s ease .35s}
html.anim .schema.in .gyri path{stroke-dashoffset:0}
.flow{animation:flow 1.2s linear infinite}
.lights .lamp-on{animation:lampGlow 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes lampGlow{0%,100%{opacity:.22;transform:scale(1)}50%{opacity:.4;transform:scale(1.12)}}
@keyframes flow{to{stroke-dashoffset:-18}}
.arm2{transform-box:view-box;transform-origin:46px 100px;animation:drop 5.2s ease-in-out infinite}
@keyframes drop{0%,20%{transform:rotate(-17.3deg)}42%,78%{transform:rotate(0)}100%{transform:rotate(-17.3deg)}}
.bob{animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-5px)}50%{transform:translateY(4px)}}
.ring-rot{transform-box:view-box;transform-origin:260px 260px;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.lazy8{stroke-dasharray:30 12;animation:flow8 2.6s linear infinite}
@keyframes flow8{to{stroke-dashoffset:-84}}
.band-mark svg,.head-mark svg,.vmark svg{animation:spin 140s linear infinite}
.ico-e svg{transform-origin:center}

/* ===================== Intro ===================== */
.intro{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 38%,#0b6c74 0%,#025158 52%,#013a3f 100%);color:#fff;overflow:hidden;cursor:pointer}
.intro.show{display:flex}
.intro-inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 1.5rem}
.intro-canvas{width:min(56vmin,400px);height:min(56vmin,400px)}
.intro-name{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,6vw,3.6rem);line-height:1.05;margin:.6rem 0 0;opacity:0;transform:translateY(18px);animation:introUp .9s cubic-bezier(.2,.7,.2,1) .85s forwards}
.intro-sub{font-size:clamp(1rem,2.3vw,1.22rem);color:var(--ecume);margin:.45rem 0 0;opacity:0;transform:translateY(12px);animation:introUp .8s cubic-bezier(.2,.7,.2,1) 1.1s forwards}
.intro-tag{font-family:var(--serif);font-style:italic;color:var(--sable);font-size:clamp(1.35rem,3.4vw,1.95rem);margin:1.1rem 0 0}
.intro-tag span{display:inline-block;opacity:0;transform:translateY(14px);animation:introUp .75s cubic-bezier(.2,.7,.2,1) forwards}
.intro-tag span:nth-child(1){animation-delay:1.4s}.intro-tag span:nth-child(2){animation-delay:1.52s}.intro-tag span:nth-child(3){animation-delay:1.64s}
@keyframes introUp{to{opacity:1;transform:none}}
.intro-skip{position:absolute;right:1.2rem;bottom:calc(1.2rem + env(safe-area-inset-bottom));min-height:44px;padding:.5rem 1.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;font:500 .98rem var(--sans);cursor:pointer;opacity:0;animation:introUp .6s ease .5s forwards}
.intro-skip:hover{background:rgba(255,255,255,.1)}
.intro.leave{animation:introLeave .95s cubic-bezier(.76,0,.24,1) forwards}
.intro.leave .intro-inner{animation:introFade .5s ease forwards}
@keyframes introLeave{0%{transform:translateY(0);border-radius:0}100%{transform:translateY(-105%);border-radius:0 0 50% 50% / 0 0 16vh 16vh}}
@keyframes introFade{to{opacity:0;transform:translateY(-30px)}}
@media (prefers-reduced-motion:reduce){.intro{display:none!important}}

@media (max-width:1360px){.nav,.header-cta{display:none}.burger{display:inline-flex}}
@media (max-width:980px){
  .row2{grid-template-columns:1fr}
  .offers{grid-template-columns:1fr}
  .order{grid-template-columns:1fr}
  .order-preview{position:static;order:-1;max-width:460px}
  .pay-aside{order:0;max-width:520px}
  .offer-main{grid-row:auto;min-height:520px}
  .offer-wide{flex-direction:column}
  .offer-wide > .ph{flex:none;aspect-ratio:2.4/1;min-height:0}
  .ecap{grid-template-columns:1fr 1fr}
  .infos,.press,.areas,.groups,.access{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .cta-box{grid-template-columns:1fr}
  .cta-box .actions{flex-direction:row;flex-wrap:wrap}
}
@media (max-width:760px){
  .hero-grid{grid-template-columns:1fr}
  .hero-art{max-width:420px;order:-1;margin:-.5rem auto 0}
  .split,.about,.two-col,.contact-grid,.seance{grid-template-columns:1fr}
  .page-head .wrap,.page-head.no-photo .wrap{grid-template-columns:1fr}
  .page-head .ph,.page-head .ph.wide{aspect-ratio:3/2}
  .head-mark{display:none}
  .tarifs{grid-template-columns:1fr}
  .aside,.seance-side{position:static}
  .about .ph{max-width:420px}
  :root{--header-h:72px}
  body{font-size:1.08rem;padding-bottom:76px}
  .tb-addr{display:none}
  .voucher-art{max-width:370px;padding:.8rem 1.5rem 1.6rem}
  .paylist li{grid-template-columns:minmax(0,1fr) auto}
  .paylist li > form,.paylist li > .btn{grid-column:1 / -1}
  .paylist form .btn{width:100%}
  .topbar .wrap{gap:1rem;font-size:.95rem}
  .site-header .brand{flex:1 1 auto;min-width:0}
  .brand .mark{width:42px;height:42px}
  .brand-name{font-size:1.25rem}
  .brand-sub{font-size:.86rem}
  .burger{padding:.5rem .95rem;flex:none}
  .hero h1 .l2{padding-left:.6em}
  .hero-art{max-width:340px}
  .dot-list.cols{grid-template-columns:1fr}
  .dot-list.cols li:nth-last-child(2){border-bottom:0}
  .schema{padding:.9rem}
  .schema-pair{grid-template-columns:1fr}
  .schema-pair svg + svg{border-left:0;padding-left:0;border-top:1px solid var(--ligne);padding-top:1rem}
  .ecap,.infos,.press,.areas,.groups,.access,.foot-grid,.row2,.why,.media-pair{grid-template-columns:1fr}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery .ph:first-child{grid-column:1 / -1;aspect-ratio:3/2}
  .banner{aspect-ratio:3/2}
  .band-mark{width:90vw;right:-35%;opacity:.14}
  .offer-main{min-height:480px}
  .mobile-bar{display:grid;grid-template-columns:1fr 1.5fr;gap:.6rem;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:.7rem .9rem calc(.7rem + env(safe-area-inset-bottom));background:rgba(242,248,247,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--ligne)}
  .mobile-bar .btn{min-height:50px;padding:.6rem .8rem}
}
@media (max-width:560px){
  .p-grp{grid-template-columns:1fr}
  .p-qte .hint{grid-column:1 / -1}
}
@media (prefers-reduced-motion:reduce){
  .view.active,.view.leaving{animation:none}
  .menu,.menu ol a,.btn,.press-card,.tarif,.group,.area,.ecap li{transition:none}
  .flow,.arm2,.bob,.ring-rot,.lazy8,.band-mark svg,.head-mark svg,.vmark svg,.ecap li:hover .ico-e svg,.lights .lamp-on,.voucher-art .voucher,.v-shine,.voucher.v-live,.v-upd{animation:none}
  .v-shine{display:none}
  .arm2{transform:none}
  .btn-primary::after{display:none}
  .progress{display:none}
}

/* =====================================================================
   Ajouts propres à WordPress
   ===================================================================== */

/* Barre d'administration (visible seulement une fois connecté) */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:600px){.admin-bar .site-header{top:0}}

/* Accessibilité : texte réservé aux lecteurs d'écran (classe standard WordPress) */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.screen-reader-text:focus{background:#fff;clip:auto!important;clip-path:none;color:var(--lagune);display:block;height:auto;left:5px;padding:.8rem 1.2rem;top:5px;width:auto;z-index:100000}

/* Formulaire de contact : champ piège anti-robots, états d'envoi */
.hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form-status.is-error{background:var(--sable);color:var(--brun)}
.form .btn[disabled]{opacity:.75;cursor:progress}

/* Pages classiques (politique de confidentialité, articles, etc.) */
.page-head-sm h1{font-size:clamp(2.3rem,4.6vw,3.6rem);max-width:24ch}
.entry{max-width:70ch}
.entry > :first-child{margin-top:0}
.entry p,.entry li{font-size:1.15rem}
.entry h2{font-size:clamp(1.7rem,2.8vw,2.2rem);margin:2.4rem 0 1rem}
.entry h3{margin:2rem 0 .8rem}
.entry h4,.entry h5,.entry h6{font-family:var(--serif);color:var(--lagune);font-weight:500;margin:1.6rem 0 .6rem}
.entry ul,.entry ol{padding-left:1.4rem;margin:0 0 1.2em}
.entry li{margin:.35em 0}
.entry img{height:auto;border-radius:var(--r-m)}
.entry figure{margin:1.6rem 0}
.entry figcaption{font-size:.95rem;color:var(--doux);margin-top:.5rem}
.entry blockquote{margin:1.8rem 0;padding-left:1.2rem;border-left:3px solid var(--brume);font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--lagune)}
.entry table{border-collapse:collapse;width:100%;margin:1.5rem 0}
.entry th,.entry td{border:1px solid var(--ligne);padding:.55rem .75rem;text-align:left;vertical-align:top}
.entry a{overflow-wrap:anywhere}
.entry iframe,.entry video{max-width:100%}
.alignleft{float:left;margin:.3rem 1.5rem 1rem 0}
.alignright{float:right;margin:.3rem 0 1rem 1.5rem}
.aligncenter{display:block;margin-inline:auto}
.wp-caption{max-width:100%}
.post-meta{color:var(--doux);font-size:1rem;margin:1rem 0 0}
.post-list{display:grid;gap:1.2rem;list-style:none;padding:0;max-width:70ch}
.post-list li{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--r-m);padding:1.4rem 1.6rem}
.post-list h2{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:0 0 .4rem}
.post-list h2 a{text-decoration:none}
.post-list p{margin:.4rem 0 0;color:var(--doux)}
.pagination{margin-top:2rem;display:flex;gap:.6rem;flex-wrap:wrap}
.pagination .page-numbers{display:inline-flex;min-width:44px;min-height:44px;align-items:center;justify-content:center;border:1px solid var(--ligne);border-radius:999px;padding:0 .9rem;text-decoration:none;background:var(--carte)}
.pagination .current{background:var(--lagune);color:#fff;border-color:var(--lagune)}
.not-found .actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}

/* Badge Resalib : sur mobile, la barre « Appeler / Prendre rendez-vous » fait déjà ce travail */
@media (max-width:760px){.rlb-badge{display:none!important}}

/* Bandeau cookies */
.mj-cookies{position:fixed;left:1rem;bottom:1rem;z-index:70;max-width:390px;display:flex;gap:1rem;align-items:center;background:var(--carte);color:var(--encre);border:1px solid var(--ligne);border-radius:var(--r-m);box-shadow:0 18px 40px -18px rgba(2,81,88,.35);padding:1rem 1.1rem;font-size:.98rem;line-height:1.45}
.mj-cookies[hidden]{display:none}
.mj-cookies p{margin:0}
.mj-cookies .btn{min-height:44px;padding:.5rem 1.15rem;flex:none}
@media (max-width:760px){.mj-cookies{left:.75rem;right:.75rem;max-width:none;bottom:calc(84px + env(safe-area-inset-bottom))}}
