/* C'Bio Institut — v3 « Marbrure » : l'encre turquoise de l'enseigne, la coccinelle du logo.
   Chargé après index.css. Sans JS ou en mouvement réduit, tout reste lisible et à plat. */
:root{
  --font-titre:'Fraunces',Georgia,serif;
  --turq:#3EBFBF;--night:#0E2F2E;--night-2:#123B3A;--cream:#F7F3EA;--ink-cream:#F3ECDE;
  --header-h:72px;--bar-h:64px;
}
@media (min-width:1024px){:root{--bar-h:0px}}
h1,h2,h3{font-weight:400;letter-spacing:-.02em;font-optical-sizing:auto}
h1{font-size:clamp(2.5rem,6.2vw,4.8rem);line-height:1.02}
h1 em,h2 em{font-weight:300}
.brand{font-weight:500}
.kicker{letter-spacing:.16em}
section{position:relative}

/* ---------- Coccinelle (motif du logo) ---------- */
.bug,.trail__bug{display:block;width:22px;height:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cg stroke='%231E2424' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M7 13 3 10M6 19H2M8 25l-4 3M25 13l4-3M26 19h4M24 25l4 3M13 5 11 1M19 5l2-4'/%3E%3C/g%3E%3Ccircle cx='16' cy='9' r='5' fill='%231E2424'/%3E%3Cellipse cx='16' cy='19' rx='9.5' ry='10.5' fill='%23CC2C31'/%3E%3Cpath d='M16 8.5v21' stroke='%231E2424' stroke-width='1.2'/%3E%3Cg fill='%231E2424'%3E%3Ccircle cx='11.5' cy='15' r='1.9'/%3E%3Ccircle cx='20.5' cy='15' r='1.9'/%3E%3Ccircle cx='10.5' cy='22' r='1.9'/%3E%3Ccircle cx='21.5' cy='22' r='1.9'/%3E%3Ccircle cx='16' cy='26' r='1.4'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}

/* Fil de progression : la coccinelle suit la lecture */
.trail{position:fixed;z-index:45;pointer-events:none;left:0;right:0;top:var(--header-h);height:2px;background:linear-gradient(90deg,var(--accent) calc(var(--sp,0)*100%),transparent 0);opacity:0;transition:opacity .4s}
.trail.is-on{opacity:1}
.trail__bug{position:absolute;top:-10px;left:0;width:20px;height:20px;transform:translateX(calc(var(--sp,0)*(100vw - 20px))) rotate(calc(90deg + var(--dir,0)*180deg));transition:rotate .3s}
@media (min-width:1024px){
  .trail{left:auto;right:14px;top:calc(var(--header-h) + 28px);bottom:28px;width:2px;height:auto;background:linear-gradient(180deg,var(--accent) calc(var(--sp,0)*100%),color-mix(in srgb,var(--accent) 22%,transparent) 0)}
  .trail__bug{top:0;left:-10px;width:22px;height:22px;transform:translateY(calc(var(--sp,0)*(100vh - var(--header-h) - 78px))) rotate(calc(180deg + var(--dir,0)*180deg))}
}

/* Bord organique entre deux sections */
.wave-top::before{content:"";position:absolute;left:0;right:0;bottom:calc(100% - 1px);height:clamp(28px,5vw,64px);background:var(--wave,var(--bg));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'%3E%3Cpath d='M0 64V38c120-30 250-34 400-12s270 26 400 2 270-30 400-4v40z'/%3E%3C/svg%3E") center/100% 100% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 64' preserveAspectRatio='none'%3E%3Cpath d='M0 64V38c120-30 250-34 400-12s270 26 400 2 270-30 400-4v40z'/%3E%3C/svg%3E") center/100% 100% no-repeat;z-index:3;pointer-events:none}

/* ---------- Parti pris ---------- */
.manifeste{background:var(--bg);z-index:2}
.manifeste__grid{display:grid;gap:3rem;align-items:center}
.manifeste h2{font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.1;max-width:18ch}
.manifeste h2 .w{transition:opacity .5s var(--ease),color .5s}
.fx .manifeste h2 .w{opacity:.16}
.fx .manifeste h2 .w.is-lit{opacity:1}
.manifeste h2 .w.is-key{font-style:italic;font-weight:300;color:var(--accent)}
.facts{list-style:none;padding:0;margin:2.5rem 0 0;display:grid;gap:1.4rem}
.facts li{display:grid;gap:.2rem;padding-top:1rem;border-top:1px solid var(--border)}
.facts strong{font-family:var(--font-titre);font-weight:300;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.facts li > span{color:var(--muted);font-size:.95rem;max-width:22ch}
.manifeste__media{margin:0 auto;width:min(100%,440px)}
.blob{position:relative;aspect-ratio:1;overflow:hidden;border-radius:61% 39% 52% 48%/47% 55% 45% 53%;background:var(--accent-dim);animation:blob 16s ease-in-out infinite alternate;box-shadow:0 40px 70px -40px rgba(23,112,110,.55)}
.blob img,.blob video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.blob video{opacity:0;transition:opacity .5s}.blob video.is-ready{opacity:1}
@keyframes blob{to{border-radius:44% 56% 41% 59%/56% 42% 58% 44%}}
.manifeste__media figcaption{margin-top:1rem;font-size:.8rem;color:var(--muted);text-align:center}
@media (min-width:640px){.facts{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.manifeste__grid{grid-template-columns:1.25fr .75fr;gap:5rem}}

/* ---------- Prestations : filtres + cartes ---------- */
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.6rem}
.chip{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem 1.1rem;border-radius:999px;border:1.5px solid var(--border);background:transparent;color:var(--text);font-weight:600;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s var(--ease)}
.chip span{font-size:.75rem;font-weight:700;color:var(--muted);transition:color .25s}
.chip:hover{border-color:var(--accent)}
.chip:active{transform:scale(.96)}
.chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.chip.is-on span{color:color-mix(in srgb,var(--on-accent) 75%,transparent)}
.pcard.is-hidden{display:none}
.pcards.is-swapping .pcard{animation:card-in .5s var(--ease) both}
.pcards.is-swapping .pcard:nth-child(3n+2){animation-delay:.05s}.pcards.is-swapping .pcard:nth-child(3n){animation-delay:.1s}
@keyframes card-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:767px){
  .pcards{display:flex;gap:.9rem;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:calc(-1*var(--gutter));padding:.4rem var(--gutter) 1.4rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pcards::-webkit-scrollbar{display:none}
  .pcard{flex:0 0 80%;scroll-snap-align:center}
}

/* ---------- Head Spa : la nuit, l'arc de pluie ---------- */
.spa3{--bg:var(--night);--bg-2:var(--night-2);--text:#F3EFE5;--muted:#B9C7C4;--accent:#7EDBD5;--on-accent:#0E2F2E;--border:rgba(243,239,229,.2);--wave:var(--night);background:var(--night);color:var(--text);overflow:visible;padding-block:clamp(5rem,12vw,9rem);min-height:100svh;display:grid;align-items:center;isolation:isolate}
.spa3 .lead{color:rgba(243,239,229,.86)}
.spa3 h2{font-size:clamp(2.4rem,6vw,4.4rem)}
.spa3 .btn-primary{box-shadow:0 10px 30px -12px var(--accent)}
.spa3 .btn-secondary{border-color:rgba(243,239,229,.35);color:var(--text)}
.spa3__grid{display:grid;gap:2.5rem}
.flow{list-style:none;counter-reset:f;padding:0;margin:2rem 0 0;display:grid;gap:.1rem}
.flow li{counter-increment:f;position:relative;padding:.55rem 0 .55rem 2.4rem;font-weight:600;transition:opacity .5s var(--ease),color .5s}
.flow li::before{content:counter(f);position:absolute;left:0;top:.5rem;width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;font-size:.75rem;transition:background .5s,color .5s,border-color .5s}
.flow li:not(:last-child)::after{content:"";position:absolute;left:.8rem;top:2.2rem;bottom:-.4rem;width:1px;background:currentColor;opacity:.35}
.fx .flow li{opacity:.4}
.fx .flow li.is-on{opacity:1}
.fx .flow li.is-on::before{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ritual{background:rgba(10,35,35,.72);border:1px solid var(--border);border-radius:26px;padding:clamp(1.2rem,3vw,2rem)}
.ritual__tabs{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:rgba(243,239,229,.08);border:1px solid var(--border)}
.ritual__tabs::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--accent);transition:transform .5s var(--ease)}
.ritual__tabs[data-on="atama"]::before{transform:translateX(100%)}
.ritual__tabs button{position:relative;min-height:46px;border:0;background:none;color:var(--text);font-weight:700;letter-spacing:.02em;cursor:pointer;border-radius:999px;transition:color .3s}
.ritual__tabs button[aria-selected="true"]{color:var(--on-accent)}
.ritual__panel{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center;margin:1.6rem 0 1.2rem}
.dial{position:relative;width:clamp(104px,26vw,136px);aspect-ratio:1;display:grid;place-content:center;text-align:center}
.dial svg{position:absolute;inset:0;transform:rotate(-90deg)}
.dial circle{fill:none;stroke-width:5}
.dial__track{stroke:rgba(243,239,229,.16)}
.dial__arc{stroke:var(--accent);stroke-linecap:round;transition:stroke-dasharray .9s var(--ease)}
.dial__num{font-family:var(--font-titre);font-size:clamp(2rem,6vw,2.7rem);line-height:1;font-variant-numeric:tabular-nums}
.dial__unit{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ritual__price{font-family:var(--font-titre);font-size:clamp(2.2rem,6vw,3rem);line-height:1;margin:0 0 .5rem;color:var(--accent)}
.ritual__desc{margin:0;color:rgba(243,239,229,.86)}
.ritual__info.is-swap{animation:card-in .5s var(--ease)}
.ritual__note{font-size:.88rem;color:var(--muted);padding-top:1rem;border-top:1px solid var(--border)}
.ritual .hero__cta{margin:1rem 0 0}
@media (min-width:1024px){.spa3__grid{grid-template-columns:1.05fr .95fr;gap:5rem;align-items:center}}

/* ---------- Mère & fille + devanture ---------- */
.duo{background:var(--bg);--wave:var(--bg);padding-bottom:0}
.duo__grid{display:grid;gap:2.5rem;align-items:center}
.duo__portrait{position:relative;margin:0 auto;width:min(100%,400px);aspect-ratio:1;display:grid;place-items:center}
.duo__portrait img{width:80%;aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 30px 60px -30px rgba(23,112,110,.5)}
.duo__ring{position:absolute;inset:0;width:100%;height:100%;color:var(--turq);animation:spin 50s linear infinite}
.bug--ring{position:absolute;left:9%;bottom:15%;width:30px;height:30px;transform:rotate(-40deg);animation:crawl 7s ease-in-out infinite}
@keyframes crawl{0%,100%{transform:translate(0,0) rotate(-40deg)}50%{transform:translate(12px,-14px) rotate(-22deg)}}
.duo__portrait figcaption{position:absolute;bottom:-1.2rem;left:50%;translate:-50% 0;font-family:var(--font-titre);font-style:italic;background:var(--bg-2);padding:.3rem 1rem;border-radius:999px;border:1px solid var(--border);white-space:nowrap}
.team{list-style:none;padding:0;margin:1.6rem 0;display:grid;gap:0}
.team li{display:grid;gap:.2rem 1.5rem;padding:1.1rem 0;border-top:1px solid var(--border)}
.team li:last-child{border-bottom:1px solid var(--border)}
.team h3{margin:0;color:var(--accent);font-style:italic;font-weight:300;font-size:1.5rem}
.team p{margin:0;color:var(--muted)}
@media (min-width:640px){.team li{grid-template-columns:7rem 1fr;align-items:baseline}}
@media (min-width:1024px){.duo__grid{grid-template-columns:.8fr 1.2fr;gap:5rem}}
/* ---------- Avis : rail à faire glisser ---------- */
.reviews3{overflow:hidden}
.reviews3__head{display:flex;align-items:end;justify-content:space-between;gap:1rem;max-width:none}
.reviews3__head h2{margin:0}
.rail-nav{display:none;gap:.5rem}
.rail-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--border);background:var(--bg-2);color:var(--text);font-size:1.1rem;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .2s var(--ease)}
.rail-btn:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.rail-btn:active:not(:disabled){transform:scale(.94)}
.rail-btn:disabled{opacity:.35;cursor:default}
.rail{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem max(var(--gutter),calc((100vw - var(--container))/2)) 1.6rem;scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.is-drag{cursor:grabbing;scroll-snap-type:none;user-select:none}
.rail .review{flex:0 0 min(82vw,380px);scroll-snap-align:center;border-radius:22px;padding:1.6rem}
.rail .review:nth-child(even){background:var(--accent);color:#fff;border-color:transparent}
.rail .review:nth-child(even) figcaption{color:rgba(255,255,255,.85)}
.rail .review blockquote{font-weight:300;font-size:1.2rem}
@media (hover:hover) and (min-width:768px){.rail-nav{display:flex}}

/* ---------- Accès ---------- */
.open-now{display:inline-flex;align-items:center;gap:.55rem;margin:0 0 1rem;padding:.4rem .9rem;border-radius:999px;background:var(--bg-2);border:1px solid var(--border);font-weight:600;font-size:.92rem}
.open-now::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ladybird)}
.open-now.is-open::before{background:#1E9E62;box-shadow:0 0 0 0 rgba(30,158,98,.5);animation:pulse 2.2s infinite}
@keyframes pulse{to{box-shadow:0 0 0 9px rgba(30,158,98,0)}}

@media (prefers-reduced-motion:reduce){
  .blob,.duo__ring,.bug--ring,.hero4__hint span,.hero4__line,.ticket__float{animation:none}
  .trail{display:none}
}

/* ============================================================
   « Plongée » — surface fleurie → sous l'eau → arc de pluie.
   Un seul film, piloté par le défilement, derrière trois sections.
   ============================================================ */
:root{--coral:#F2604F;--sun:#F6B93B;--pink:#EE5FA0;--leaf:#4E9F6B;--lilac:#9C7BE0;--turq-vif:#2FB8B8;--sun-soft:#FFE27A;--deep:rgba(4,58,60,.6)}
.dive{position:relative;background:var(--turq-vif);--p:0;--h:0}
.dive__stage{position:sticky;top:0;height:100lvh;margin-bottom:-100lvh;overflow:hidden;z-index:0}
.dive__stage img,.dive__stage video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.dive__film,.dive__loop{opacity:0;transition:opacity .7s}
.dive__film.is-ready{opacity:1}
.dive.is-deep .dive__loop.is-ready{opacity:1}
.dive__tint{position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,58,60,.5),rgba(4,58,60,.16) 34%,rgba(4,58,60,.46))}
.dive > section{position:relative;z-index:1;background:none}
.on-dark,.hero4,.lieu,.gift3,.final{--fill:#fff}
.hero4 .btn-secondary,.lieu .btn-secondary,.spa3 .btn-secondary,.gift3 .btn-secondary,.final .btn-secondary{border-color:rgba(255,255,255,.65);color:#fff;background:rgba(4,58,60,.28)}
.hero4 .btn-secondary:hover,.lieu .btn-secondary:hover,.spa3 .btn-secondary:hover,.gift3 .btn-secondary:hover,.final .btn-secondary:hover{color:var(--night)}

/* Hero */
.hero4{min-height:calc(100svh - var(--header-h));display:grid;align-content:center;padding-block:clamp(1.5rem,4vh,4rem) calc(var(--bar-h) + 4.6rem);color:#fff;text-align:center}
.hero4__in{display:grid;justify-items:center}
.hero4 h1{color:#fff;font-size:clamp(2.25rem,min(9.6vw,12.5vh),7.2rem);line-height:.96;margin:0 0 1.5rem;text-shadow:0 3px 34px var(--deep),0 1px 2px rgba(4,58,60,.45)}
.hero4__kicker{display:block;font-family:var(--font-texte);font-size:clamp(.68rem,1.1vw,.82rem);line-height:1.5;letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:1.5rem;text-shadow:0 1px 12px rgba(4,58,60,.8)}
.hero4__line{display:block;animation:line-in 1.2s var(--ease) both}
.hero4__line:nth-of-type(3){animation-delay:.12s}
.hero4 h1 em{color:var(--sun-soft);animation-delay:.26s}
@keyframes line-in{from{opacity:0;transform:translateY(.55em) rotate(2deg);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
.hero4 .lead{color:#fff;max-width:44ch;margin-inline:auto;font-weight:500;text-shadow:0 1px 14px rgba(4,58,60,.85)}
.hero4 .hero__cta{justify-content:center}
.hero4 .proof{justify-content:center;gap:.5rem;color:#fff}
.hero4 .proof li{background:rgba(4,58,60,.42);border:1px solid rgba(255,255,255,.3);padding:.35rem .85rem;border-radius:999px}
.hero4 .proof li::before{background:var(--sun-soft)}
.hero4 .proof strong{color:#fff}
.hero4__hint{position:absolute;left:50%;bottom:calc(var(--bar-h) + 1.1rem);translate:-50% 0;margin:0;display:flex;flex-direction:column;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:#fff;text-shadow:0 1px 10px rgba(4,58,60,.8)}
.hero4__hint span{order:2;width:1.5px;height:30px;background:currentColor;transform-origin:top;animation:hint 2s var(--ease) infinite}
@keyframes hint{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
.fx .hero4__in{opacity:calc(1 - var(--h)*1.5);transform:translateY(calc(var(--h)*-70px)) scale(calc(1 - var(--h)*.08))}
.fx .hero4__hint{opacity:calc(1 - var(--h)*6)}
.fx .hero4.is-under{pointer-events:none}

/* Les lieux : vraies photos en tirages, en profondeur */
.lieu{min-height:130vh;padding-block:22vh 26vh;color:#fff;display:grid;align-items:center}
.lieu__in{display:grid;gap:3rem;align-items:center}
.lieu .kicker{color:var(--sun-soft)}
.lieu h2{color:#fff;font-size:clamp(2.6rem,7.4vw,5.8rem);line-height:.98;text-shadow:0 3px 34px var(--deep)}
.lieu h2 span,.lieu h2 em{display:block}
.lieu h2 em{color:var(--sun-soft)}
.lieu .lead{color:#fff;font-weight:500;text-shadow:0 1px 14px rgba(4,58,60,.85)}
.print{margin:0;background:#fff;padding:9px 9px 0;border-radius:4px;box-shadow:0 34px 60px -24px rgba(2,36,38,.7),0 2px 6px rgba(2,36,38,.2)}
.print img{width:100%;height:auto;border-radius:1px}
.print figcaption{font-family:var(--font-titre);font-style:italic;font-size:.9rem;color:var(--muted);padding:.45rem .2rem .55rem;text-align:center}
.lieu__prints{position:relative;height:min(128vw,620px)}
.lieu .print{position:absolute;transform:translate3d(calc(var(--mx,0)*var(--d,0)*.3px),calc(var(--my,0)*var(--d,0)*.3px + var(--sy,0px)),0) rotate(var(--r)) perspective(900px) rotateY(calc(var(--mx,0)*-9deg)) rotateX(calc(var(--my,0)*7deg));will-change:transform}
.lieu .print--a{--r:-5deg;width:46%;left:0;top:10%}
.lieu .print--b{--r:4deg;width:54%;right:0;top:0}
.lieu .print--c{--r:-2deg;width:40%;left:30%;bottom:0}
@media (min-width:1024px){.lieu__in{grid-template-columns:1fr 1fr;gap:4rem}.lieu__prints{height:640px}}

/* Head Spa : fond = fin du film, puis boucle de pluie */
.dive .spa3{background:none;--wave:transparent}
.dive .spa3::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,47,46,0),rgba(14,47,46,.5) 18%,rgba(14,47,46,.55) 80%,var(--night) 100%),linear-gradient(90deg,rgba(14,47,46,.7),rgba(14,47,46,.15) 60%,rgba(14,47,46,.55))}
.spa3 h2 em{color:var(--sun-soft)}

/* ---------- Couleurs : parti pris, prestations, avis ---------- */
.manifeste h2 .w.k1{color:var(--leaf)}.manifeste h2 .w.k2{color:var(--coral)}.manifeste h2 .w.k3{color:var(--pink)}
.facts li:nth-child(1) strong{color:var(--coral)}.facts li:nth-child(2) strong{color:#C98A0B}.facts li:nth-child(3) strong{color:var(--leaf)}
.home3 .btn{position:relative;isolation:isolate;overflow:hidden;transform:translate(var(--bx2,0px),var(--by2,0px));transition:transform .35s var(--ease),color .3s,box-shadow .3s}
.home3 .btn::before{content:"";position:absolute;z-index:-1;left:var(--bx,50%);top:var(--by,50%);width:0;aspect-ratio:1;border-radius:50%;background:var(--fill,var(--text));transform:translate(-50%,-50%);transition:width .6s var(--ease)}
.home3 .btn:hover::before,.home3 .btn:focus-visible::before{width:260%}
.home3 .btn-primary{background:var(--ladybird);color:#fff;--fill:#1E2424;box-shadow:0 14px 34px -12px rgba(204,44,49,.75)}
.home3 .btn-secondary:hover{color:var(--bg)}
.home3 .nav__cta{--fill:#1E2424}
.btn-xl{min-height:60px;padding:1rem 2.2rem;font-size:1.06rem}
.home3 .prestations{background:radial-gradient(42% 50% at 6% 18%,rgba(242,96,79,.17),transparent 70%),radial-gradient(36% 46% at 96% 72%,rgba(246,185,59,.24),transparent 70%),radial-gradient(30% 40% at 62% 0,rgba(238,95,160,.14),transparent 70%),radial-gradient(34% 40% at 30% 100%,rgba(47,184,184,.2),transparent 70%),#FFFBF3}
.pcard{--c:var(--turq-vif)}
.pcard:nth-child(6n+2){--c:var(--coral)}.pcard:nth-child(6n+3){--c:var(--sun)}.pcard:nth-child(6n+4){--c:var(--pink)}.pcard:nth-child(6n+5){--c:var(--leaf)}.pcard:nth-child(6n){--c:var(--lilac)}
.home3 .pcard{position:relative;background:color-mix(in srgb,var(--c) 11%,#fff);border-color:color-mix(in srgb,var(--c) 40%,#fff)}
.home3 .pcard::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(280px circle at var(--px,50%) var(--py,50%),color-mix(in srgb,var(--c) 42%,transparent),transparent 70%);opacity:0;transition:opacity .35s}
.home3 .pcard:hover::after{opacity:1}
.home3 .pcard:hover,.home3 .pcard:focus-visible{border-color:var(--c);box-shadow:0 40px 60px -30px color-mix(in srgb,var(--c) 80%,transparent)}
.home3 .pcard__badge{background:var(--c);color:#1E2424}
.home3 .pcard__meta{color:var(--text)}
.home3 .pcard__arrow,.home3 .pcard:hover .pcard__arrow{background:var(--c);color:#1E2424}
.home3 .pcard__foot{border-color:color-mix(in srgb,var(--c) 40%,#fff)}
@media (hover:hover) and (min-width:1024px){
  .fx .pcard{transform:perspective(1100px) rotateY(calc(var(--cy,0deg) + var(--ry,0deg))) rotateX(var(--rx,0deg)) translateZ(var(--cz,0px)) translateY(var(--ty,0px));transition:transform .5s var(--ease),box-shadow .45s var(--ease),border-color .3s}
  .fx .pcard:hover{--ty:-8px}
  .fx .pcards.is-moving .pcard{transition:box-shadow .45s var(--ease),border-color .3s}
}
/* Défilé horizontal en perspective (grand écran) */
@media (min-width:1024px) and (min-height:700px){
  .fx .home3 .prestations{height:calc(100vh - var(--header-h) + var(--travel,0px));padding-block:0;overflow-x:clip}
  .fx .home3 .prestations > .container{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));display:flex;flex-direction:column;justify-content:center}
  .fx .home3 .prestations .sec-head{margin-bottom:1rem}
  .fx .home3 .prestations .sec-head .lead{display:none}
  .fx .home3 .pcards{display:flex;gap:1.6rem;width:max-content;padding-block:1.4rem 1.6rem;transform:translate3d(var(--tx,0px),0,0)}
  .fx .home3 .pcard{flex:0 0 320px}
  .fx .home3 .prestations__note{margin-top:.4rem}
}
.rail .review:nth-child(n){background:var(--bg-2);color:var(--text);border-color:var(--border)}
.rail .review:nth-child(n) figcaption{color:var(--muted)}
.rail .review:nth-child(3n+2){background:#C9382B;color:#fff;border-color:transparent}
.rail .review:nth-child(3n){background:var(--sun);color:#1E2424;border-color:transparent}
.rail .review:nth-child(3n+1){background:var(--accent);color:#fff;border-color:transparent}
.rail .review:nth-child(3n+2) figcaption,.rail .review:nth-child(3n+1) figcaption{color:rgba(255,255,255,.88)}
.rail .review:nth-child(3n) figcaption{color:#3A2E05}
.rail .review{transition:transform .5s var(--ease)}
@media (hover:hover){.rail .review:hover{transform:translateY(-8px) rotate(-1deg)}}
.duo__ring{color:var(--coral)}

/* ---------- Bon cadeau : carte 3D recto verso ---------- */
.gift3{background:radial-gradient(60% 90% at 78% 50%,#1C7A78,var(--night) 75%);color:#fff;overflow:hidden}
.gift3 .kicker{color:var(--sun-soft)}
.gift3 h2{color:#fff;font-size:clamp(2.4rem,6vw,4.4rem)}
.gift3 h2 em{color:var(--sun-soft)}
.gift3 .lead{color:rgba(255,255,255,.88);margin-bottom:1.6rem}
.gift3__in{display:grid;gap:2rem;align-items:center}
@media (min-width:900px){.gift3__in{grid-template-columns:1fr 1.1fr}}
.ticket-zone{position:relative;display:grid;place-items:center;min-height:clamp(300px,52vw,440px);perspective:1100px}
.ticket-zone::after{content:"";position:absolute;left:50%;bottom:4%;width:56%;height:26px;translate:-50% 0;background:radial-gradient(closest-side,rgba(0,0,0,.5),transparent);filter:blur(6px);animation:shade 6s ease-in-out infinite}
.ticket{appearance:none;background:none;border:0;padding:0;margin:0;font:inherit;color:#fff;cursor:pointer;width:min(88%,440px);display:block;text-align:left;border-radius:22px}
.ticket__float{display:block;animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(-12px) rotate(-2.5deg)}50%{transform:translateY(12px) rotate(1.5deg)}}
@keyframes shade{0%,100%{transform:scaleX(.82);opacity:.55}50%{transform:scaleX(1);opacity:.9}}
.ticket__card{display:block;position:relative;aspect-ratio:16/10;transform-style:preserve-3d;transform:rotateX(var(--rx,8deg)) rotateY(calc(var(--ry,-16deg) + var(--flip,0deg)));transition:transform .9s var(--ease)}
.ticket.is-move .ticket__card{transition-duration:.18s}
.ticket[aria-pressed="true"] .ticket__card{--flip:180deg}
.ticket__face{position:absolute;inset:0;border-radius:22px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:1.4rem 1.6rem;display:flex;flex-direction:column;box-shadow:0 50px 70px -36px rgba(0,0,0,.75),inset 0 0 0 1px rgba(255,255,255,.25)}
.ticket__face--front{background:linear-gradient(160deg,rgba(14,47,46,.05),rgba(14,47,46,.55)),url("assets/v3/marbre.webp") center/cover,var(--accent)}
.ticket__face--back{transform:rotateY(180deg);background:linear-gradient(135deg,var(--coral),var(--pink) 55%,var(--sun));justify-content:space-between;color:#1E2424}
.ticket__brand{font-family:var(--font-titre);font-size:1.05rem;text-shadow:0 1px 8px rgba(14,47,46,.5)}
.ticket__brand em{font-weight:300}
.ticket__title{margin-top:auto;font-family:var(--font-titre);font-weight:300;font-style:italic;font-size:clamp(2rem,7vw,3rem);line-height:1;text-shadow:0 2px 14px rgba(14,47,46,.55)}
.ticket__line{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-top:.5rem}
.ticket__face--front .ticket__line{text-shadow:0 1px 8px rgba(14,47,46,.6)}
.ticket__big{font-family:var(--font-titre);font-size:clamp(1.5rem,5vw,2.2rem);line-height:1.08}
.bug--ticket{position:absolute;right:1.4rem;top:1.2rem;width:32px;height:32px;transform:rotate(35deg);filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}
.ticket__holo{position:absolute;inset:0;background:linear-gradient(115deg,transparent 22%,rgba(255,226,122,.75) 38%,rgba(238,95,160,.7) 50%,rgba(126,219,213,.8) 62%,transparent 78%);background-size:260% 260%;background-position:calc(var(--hx,30)*1%) calc(var(--hy,30)*1%);mix-blend-mode:overlay;opacity:.55;transition:opacity .4s}
.ticket:hover .ticket__holo{opacity:1}
.petal{position:absolute;width:34px;height:50px;border-radius:80% 12% 80% 12%;background:var(--pc,var(--pink));transform:translate3d(calc(var(--mx,0)*var(--d,0)*.3px),calc(var(--my,0)*var(--d,0)*.3px),0) rotate(var(--rot,0deg));opacity:.95;box-shadow:inset -6px -6px 12px rgba(0,0,0,.12)}
.petal--1{left:6%;top:12%;--rot:25deg;--pc:var(--coral)}
.petal--2{right:8%;top:6%;--rot:-40deg;--pc:var(--sun);width:26px;height:38px}
.petal--3{right:4%;bottom:14%;--rot:70deg;--pc:var(--pink)}
.petal--4{left:12%;bottom:8%;--rot:-15deg;--pc:#fff;width:24px;height:36px}

/* ---------- Rendez-vous : marbre vivant sous la souris ---------- */
.final{min-height:92svh;display:grid;align-items:center;text-align:center;color:#fff;background:#12807E url("assets/v3/marbre.webp") center/cover;overflow:hidden;isolation:isolate}
.final__gl{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.final::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(70% 70% at 50% 50%,rgba(4,58,60,.5),rgba(4,58,60,.15))}
.final__in{display:grid;justify-items:center}
.final .kicker{color:var(--sun-soft)}
.final h2{color:#fff;font-size:clamp(2.6rem,8.4vw,6.6rem);line-height:.97;text-shadow:0 3px 34px var(--deep)}
.final h2 em{display:block;color:var(--sun-soft)}
.final .lead{color:#fff;font-weight:500;text-shadow:0 1px 14px rgba(4,58,60,.85)}
.final .hero__cta{justify-content:center}

/* ---------- Curseur ---------- */
.cursor{position:fixed;left:0;top:0;z-index:100;pointer-events:none;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;border:1.5px solid #fff;mix-blend-mode:difference;display:grid;place-items:center;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:transparent;opacity:0;transform:translate3d(var(--x,-100px),var(--y,-100px),0);transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),background .25s,opacity .3s,border-color .25s}
.cursor.is-on{opacity:1}
.cursor.is-link{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(255,255,255,.14)}
.cursor.is-label{mix-blend-mode:normal;width:92px;height:92px;margin:-46px 0 0 -46px;background:var(--ladybird);border-color:transparent;color:#fff}
@media (hover:none),(pointer:coarse){.cursor{display:none}}
@media (prefers-reduced-motion:reduce){.cursor{display:none}.ticket-zone::after{animation:none}}
@media (max-width:767px){
  .hero4 .lead{font-size:.98rem}
  .hero4 .proof{font-size:.82rem;gap:.35rem}
  .hero4 .proof li{padding:.28rem .7rem}
  .hero4 .hero__cta{margin:1.2rem 0 1.4rem}
  .lieu{min-height:0;padding-block:16vh 18vh}
}
@media (max-width:767px){.dive__poster{object-position:22% 50%}}

/* ---------- Correctifs du 05/10 (soir) ---------- */
.home3 .hero4 .btn-secondary:hover,.home3 .lieu .btn-secondary:hover,.home3 .spa3 .btn-secondary:hover,.home3 .gift3 .btn-secondary:hover,.home3 .final .btn-secondary:hover{color:var(--night)}
.dive__idle{opacity:0;transition:opacity .5s}
.dive.is-calm .dive__idle.is-ready{opacity:1}
.dive__tint{background:linear-gradient(180deg,rgba(3,40,42,.62),rgba(3,40,42,.3) 34%,rgba(3,40,42,.55)),radial-gradient(120% 90% at 50% 45%,transparent 45%,rgba(2,24,26,.55))}
.lieu__text{background:rgba(3,40,42,.62);border:1px solid rgba(255,255,255,.16);border-radius:26px;padding:clamp(1.4rem,3.5vw,2.6rem);box-shadow:0 40px 70px -40px rgba(2,24,26,.8)}
.lieu h2,.lieu .lead{text-shadow:none}
.lieu .lead{color:rgba(255,255,255,.94);margin-bottom:0}
/* Devanture : plein écran, format cinéma */
.facade{position:relative;margin:clamp(3.5rem,8vw,6rem) 0 0;width:100%;aspect-ratio:4/5;max-height:92svh;overflow:hidden;background:#0b1d1d}
.facade img,.facade video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:60% 50%}
.facade video{opacity:0;transition:opacity .8s}.facade video.is-ready{opacity:1}
.facade::before,.facade::after{content:"";position:absolute;left:0;right:0;z-index:1;pointer-events:none}
.facade::before{top:0;bottom:0;background:linear-gradient(180deg,rgba(2,18,18,.5),transparent 24%,transparent 58%,rgba(2,18,18,.82)),radial-gradient(120% 100% at 50% 50%,transparent 55%,rgba(2,18,18,.5))}
.facade figcaption{position:absolute;z-index:2;left:var(--gutter);right:var(--gutter);bottom:clamp(1.4rem,5vw,3.5rem);color:#fff;font-size:1rem;line-height:1.4;text-shadow:0 1px 14px rgba(2,18,18,.8)}
.facade figcaption span{display:block;font-family:var(--font-titre);font-size:clamp(2.2rem,7vw,5.2rem);line-height:1;margin-bottom:.4rem;letter-spacing:-.02em}
@media (min-width:768px){.facade{aspect-ratio:2.39/1}.facade img,.facade video{object-position:50% 50%}}
/* Carte OpenStreetMap, accordée à la palette */
.acces__map .leaflet-tile-pane{filter:grayscale(.55) sepia(.12) hue-rotate(130deg) saturate(1.15) brightness(1.03)}
/* ---------- Grille tarifaire : réserver un soin précis ---------- */
td:nth-child(4),th:nth-child(4){text-align:right;white-space:nowrap;width:1%;padding-left:.6rem}
.row-book{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:.3rem .95rem;border-radius:999px;background:var(--ladybird);color:#fff;font-weight:700;font-size:.82rem;text-decoration:none;transition:transform .2s var(--ease),background .2s,box-shadow .2s}
.row-book:hover{transform:translateY(-2px);background:#1E2424;box-shadow:0 8px 18px -8px rgba(30,36,36,.6)}
.row-book--tel{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent)}
.row-book--tel:hover{background:var(--accent);color:#fff}
tbody tr{transition:background .2s}
tbody tr:hover{background:var(--accent-dim)}
@media (max-width:560px){td:nth-child(2),th:nth-child(2){display:none}td,th{padding-inline:.3rem}.row-book{padding-inline:.7rem}}
.cat{scroll-margin-top:90px}
@media (max-width:560px){td:nth-child(4){white-space:normal}td:nth-child(4) .row-book{display:flex;white-space:nowrap}td:nth-child(4) .row-book+.row-book{margin-top:.35rem}}
@media (max-width:560px){td:nth-child(4) .row-book{padding-inline:.5rem;font-size:.76rem}td:nth-child(4){padding-left:.3rem}}
