/*
Theme Name: Vibrance Esthétique
Theme URI: https://vibranceesthetique.com
Author: Vibrance Esthétique
Description: Thème sur mesure pour Vibrance Esthétique (Véronique Piché) — approche holistique : endermologie LPG, cosmétiques LPG et boutique (WooCommerce). Héros couverture plein écran, en-tête transparent, Calendrier Calendly thématisé. Palette crème / or / anthracite.
Version: 2.20.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: vibrance-esthetique
*/

/* =========================================================================
   VIBRANCE ESTHÉTIQUE — feuille de style
   Palette : cream #F3E9DD · charcoal #2C2A28 · gold #C2A15C · rose #D598AA
   Display : Cormorant Garamond   ·   Corps : Montserrat
   ========================================================================= */

/* Le site n'a qu'un seul habillage (clair). On refuse le mode sombre imposé par
   Messenger, le webview Android/Chrome (auto-dark) ou le navigateur : la palette
   crème/anthracite/or reste identique partout. */
html{ color-scheme: only light; }

/* Accessibilité : texte réservé aux lecteurs d'écran + lien d'évitement clavier. */
.screen-reader-text{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link{ position:fixed; top:8px; left:8px; z-index:9999; background:var(--charcoal,#2C2A28);
  color:#fff; padding:.7em 1.2em; border-radius:8px; font-family:var(--font-body,sans-serif);
  font-size:.8rem; text-decoration:none; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.skip-link:focus{ clip:auto!important; width:auto; height:auto; margin:0; outline:2px solid var(--gold,#C2A15C); outline-offset:2px; }
main:focus{ outline:none; }

:root{
  color-scheme: only light;
  --cream:      #F3E9DD;   /* fond principal (= fond du logo) */
  --cream-2:    #EDE0CF;   /* panneau légèrement plus profond */
  --cream-3:    #E7D8C4;
  --charcoal:   #2C2A28;   /* texte / dark du logo */
  --ink-rgb:    44,42,40;
  --charcoal-soft:#4a4642;
  --ink-muted:  #6f6960;
  --gold:       #C2A15C;   /* accent principal (or du logo) */
  --gold-rgb:   194,161,92;
  --gold-deep:  #A07C36;
  --gold-soft:  #D8BC85;
  --gold-pale:  #E8D4A9;
  --taupe:      #BBA8A1;   /* accent chaud secondaire */
  --taupe-deep: #9C8A82;
  --blush:      #E6D3C6;   /* soupçon chaud très discret */
  --white:      #ffffff;
  --line:       rgba(var(--ink-rgb),.14);
  --line-gold:  rgba(var(--gold-rgb),.42);

  --font-display: "Cormorant Garamond", Georgia, serif;
  --font-serif:   "Cormorant Garamond", Georgia, serif;
  --font-sign:    "Parisienne", "Cormorant Garamond", cursive;
  --font-hero:    "Italiana", "Cormorant Garamond", Georgia, serif;
  --font-body:    "Montserrat", "Helvetica Neue", Arial, sans-serif;

  --wrap: 1680px;
  --gutter: clamp(20px, 5vw, 96px);
  --radius: 4px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top:clamp(84px,11vh,104px); }
@media(max-width:960px){ html{ scroll-padding-top:78px; } }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--cream);
  font-weight:300;
  line-height:1.7;
  font-size:16px;
  letter-spacing:.01em;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

/* ---------- Typographie ---------- */
h1,h2,h3,h4{
  font-family:var(--font-serif);
  font-weight:500;
  color:var(--charcoal);
  line-height:1.14;
  margin:0;
  letter-spacing:.004em;
}
.h-display{ font-family:var(--font-display); font-size:clamp(2.7rem, 6.4vw, 5.4rem); font-weight:400; }
.h-1{ font-size:clamp(2rem, 4.4vw, 3.4rem); }
.h-2{ font-size:clamp(1.7rem, 3vw, 2.4rem); }
p{ margin:0 0 1.1em; color:var(--charcoal-soft); font-weight:300; }
.lead{ font-size:clamp(1.05rem,1.6vw,1.28rem); line-height:1.75; color:var(--charcoal-soft); }

.eyebrow{
  font-family:var(--font-body);
  font-weight:500;
  font-size:.72rem;
  letter-spacing:.42em;
  text-transform:uppercase;
  color:var(--gold-deep);
  margin:0 0 1.4rem;
  display:inline-flex;
  align-items:center;
  gap:.85em;
  white-space:nowrap;
}
.eyebrow::before{
  content:"";
  width:34px; height:1px;
  background:var(--gold);
  display:inline-block;
}
.eyebrow.center{ justify-content:center; }
.eyebrow::after{
  content:""; width:34px; height:1px; background:var(--gold); display:inline-block;
}

.script-accent{ font-family:var(--font-serif); font-style:normal; color:var(--gold-deep); font-weight:500; }

/* ---------- Layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.wrap-narrow{ max-width:820px; }
/* Sur très grand écran, on remplit davantage la largeur (tout en gardant une lecture confortable) */
@media(min-width:1800px){ :root{ --wrap:min(90vw, 2100px); } }
.section{ padding-block:clamp(56px, 6.5vw, 96px); position:relative; }
.section--tight{ padding-block:clamp(44px,5vw,68px); }
.center{ text-align:center; }
.stack-sm > * + *{ margin-top:1rem; }
.divider-gold{ width:52px; height:1px; background:var(--gold); border:0; margin:1.8rem 0; }
.center .divider-gold{ margin-inline:auto; }

.bg-cream2{ background:var(--cream-2); }
.bg-charcoal{ background:var(--charcoal); color:#eee; }
.bg-charcoal h1,.bg-charcoal h2,.bg-charcoal h3{ color:#fff; }
.bg-charcoal p{ color:rgba(255,255,255,.72); }
.bg-charcoal .eyebrow{ color:var(--gold-pale); }
.bg-charcoal .eyebrow::before,.bg-charcoal .eyebrow::after{ background:var(--gold-pale); }

/* ---------- Signature : anneau lumineux ---------- */
.ring{
  position:absolute; border-radius:50%; pointer-events:none;
  border:1px solid var(--line-gold);
}
.halo{
  position:absolute; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(232,212,169,.6) 0%, rgba(216,188,133,.3) 42%, rgba(243,233,221,0) 72%);
  filter:blur(2px);
  animation:breathe 9s var(--ease) infinite;
}
@keyframes breathe{
  0%,100%{ transform:scale(1); opacity:.9; }
  50%{ transform:scale(1.06); opacity:1; }
}
.ring-anim{ animation:spin 60s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- Boutons ---------- */
.btn{
  --bg:var(--charcoal); --fg:#fff; --bd:var(--charcoal);
  display:inline-flex; align-items:center; gap:.7em;
  font-family:var(--font-body); font-weight:500; font-size:.78rem;
  letter-spacing:.2em; text-transform:uppercase;
  padding:1.05em 2.1em; border:1px solid var(--bd);
  background:var(--bg); color:var(--fg); cursor:pointer;
  border-radius:var(--radius);
  transition:transform .4s var(--ease), background .35s var(--ease), color .35s var(--ease), border-color .35s;
  position:relative; white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{ --bg:var(--gold); --bd:var(--gold); --fg:#fff; }
.btn--gold:hover{ --bg:var(--gold-deep); --bd:var(--gold-deep); }
.btn--outline{ --bg:transparent; --fg:var(--charcoal); --bd:rgba(var(--ink-rgb),.4); }
.btn--outline:hover{ --bg:var(--charcoal); --fg:#fff; --bd:var(--charcoal); }
.btn--light{ --bg:transparent; --fg:#fff; --bd:rgba(255,255,255,.55); }
.btn--light:hover{ --bg:#fff; --fg:var(--charcoal); --bd:#fff; }
.btn-row{ display:flex; flex-wrap:wrap; gap:1rem; }
.center .btn-row{ justify-content:center; }
.link-arrow{
  font-weight:500; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); display:inline-flex; align-items:center; gap:.6em;
}
.link-arrow .a{ transition:transform .35s var(--ease); }
.link-arrow:hover .a{ transform:translateX(6px); }

/* =========================================================================
   HEADER
   ========================================================================= */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:100; background:var(--cream);
  transition:background .45s var(--ease), box-shadow .45s; }
.site-header.scrolled{ background:rgba(245,236,223,.46); -webkit-backdrop-filter:blur(30px) saturate(1.15); backdrop-filter:blur(30px) saturate(1.15); box-shadow:0 14px 36px -20px rgba(0,0,0,.30); }

/* Nav escamotable façon dock (bureau), sur toutes les pages : seul le logo reste,
   les liens et le bouton Contact réapparaissent quand la souris monte en haut.
   L'aperçu à l'ouverture (classe .nav-peek posée dans header.php) montre le menu un instant. */
@media(min-width:961px){
  .site-header .nav{ display:block; max-height:0; overflow:hidden; opacity:0; pointer-events:none;
    transition:max-height .5s var(--ease), opacity .38s var(--ease); }
  .site-header.nav-peek .nav{ max-height:200px; opacity:1; pointer-events:auto; }
  /* Sur bureau, le Contact vit dans la pastille flottante (voir plus bas) : on retire celui de l'en-tête */
  .site-header .nav-cta--top{ display:none; }
  /* Fond de l'en-tête : transparent tout en haut, givré dès qu'on défile (au-dessus du contenu) ou que le menu s'ouvre */
  .site-header{ background:transparent; box-shadow:none; }
  .site-header.scrolled, .site-header.nav-peek{ background:rgba(245,236,223,.72); -webkit-backdrop-filter:blur(28px) saturate(1.15); backdrop-filter:blur(28px) saturate(1.15); box-shadow:0 16px 40px -22px rgba(0,0,0,.3); }
  .site-header.scrolled.over-dark, .site-header.nav-peek.over-dark{ background:rgba(26,22,18,.55); box-shadow:0 18px 44px -22px rgba(0,0,0,.55); }
}

/* ligne du haut : marque centrée + CTA en coin */
.header-top{ position:relative; }
.header-top__inner{ max-width:1300px; margin:0 auto; padding:12px clamp(20px,5vw,60px) 9px; display:flex; flex-direction:column; align-items:center; gap:.35rem; transition:padding .4s var(--ease); }
.site-header.scrolled .header-top__inner{ padding-top:9px; padding-bottom:5px; }
.brand{ display:flex; align-items:center; gap:.8rem; text-decoration:none; }
.brand__mark{ height:42px; width:auto; transition:height .4s var(--ease), filter .4s; }
.site-header.scrolled .brand__mark{ height:42px; }
.site-header.scrolled .brand__name{ font-size:1.62rem; }
.site-header.scrolled .brand__sub{ grid-template-rows:0fr; opacity:0; margin-top:0; }
.site-header.scrolled .nav ul.menu{ padding-top:8px; padding-bottom:8px; }
.brand__txt{ display:flex; flex-direction:column; align-items:center; line-height:1; }
.brand__name{ font-family:var(--font-display); font-weight:400; font-size:1.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--charcoal); white-space:nowrap; transition:font-size .4s var(--ease), color .38s var(--ease); }
.brand__name b{ color:inherit; font-weight:inherit; }
.brand__sub{ display:grid; grid-template-rows:1fr; margin-top:4px; font-family:var(--font-body); font-weight:500; font-size:.55rem; letter-spacing:.34em; text-transform:uppercase; color:var(--taupe-deep); white-space:nowrap; transition:grid-template-rows .42s var(--ease), opacity .34s var(--ease), margin-top .42s var(--ease); }
.brand__sub-i{ overflow:hidden; min-height:0; }

.nav-cta{ position:absolute; right:clamp(20px,5vw,60px); top:50%; transform:translateY(-50%); z-index:3;
  border:1px solid var(--gold); color:var(--gold-deep); background:transparent; border-radius:99px;
  padding:.78em 1.5em; font-size:.64rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; text-decoration:none; white-space:nowrap; transition:background .3s,color .3s,border-color .3s; }
.nav-cta:hover{ background:var(--gold); color:#fff; }
.nav-cta--drawer{ display:none; }

/* Pastille Contact flottante — CTA doré premium, stable et toujours accessible (bureau). */
@media(min-width:961px){
  .nav-cta--float{ position:fixed; top:auto; left:auto; right:clamp(24px,3vw,40px); bottom:clamp(24px,3vw,40px);
    transform:none; z-index:95; border:0;
    background:linear-gradient(135deg, #CBAB65 0%, #A9863C 100%); color:#FFF9EE;
    padding:1.08em 2.1em; font-size:.68rem; letter-spacing:.2em; font-weight:600;
    text-shadow:0 1px 6px rgba(var(--ink-rgb),.28);
    box-shadow:0 18px 42px -14px rgba(var(--ink-rgb),.5), 0 2px 5px rgba(var(--ink-rgb),.14), inset 0 1px 0 rgba(255,255,255,.3);
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), filter .3s var(--ease); }
  .nav-cta--float:hover{ transform:translateY(-3px); filter:brightness(1.05); color:#fff;
    box-shadow:0 28px 60px -14px rgba(var(--ink-rgb),.58), 0 3px 8px rgba(var(--ink-rgb),.16), inset 0 1px 0 rgba(255,255,255,.34); }
}
@media(max-width:960px){ .nav-cta--float{ display:none!important; } }

/* ligne de nav centrée, filet doré */
.nav{ }
.nav ul.menu{ list-style:none; margin:0 auto; max-width:1300px; padding:10px clamp(20px,5vw,60px); display:flex; justify-content:center; align-items:center; gap:clamp(1rem,2vw,2.1rem); flex-wrap:wrap; transition:padding .42s var(--ease); }
.nav a{ font-size:.72rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--charcoal); position:relative; padding:.3em 0; transition:color .3s var(--ease); text-decoration:none; white-space:nowrap; }
.nav a:hover, .nav a.current, .nav .current-menu-item>a, .nav .current_page_item>a{ color:var(--gold-deep); }
.nav a::after{ content:""; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:var(--gold); transition:width .34s var(--ease); }
.nav a:hover::after, .nav a.current::after, .nav .current-menu-item>a::after, .nav .current_page_item>a::after{ width:100%; }

.burger{ display:none; position:absolute; right:clamp(16px,5vw,60px); top:50%; transform:translateY(-50%);
  width:46px; height:46px; background:none; border:0; cursor:pointer; border-radius:50%; z-index:101; -webkit-tap-highlight-color:transparent; }
.burger span{ position:absolute; left:13px; right:13px; height:1.6px; background:var(--charcoal); border-radius:2px;
  transition:transform .4s var(--ease), opacity .2s var(--ease), background .3s var(--ease); }
.burger span:nth-child(1){ top:17px; } .burger span:nth-child(2){ top:22.5px; } .burger span:nth-child(3){ top:28px; }
/* croix (X) nette lorsque le menu est ouvert */
.burger.open span{ background:var(--charcoal)!important; }
.burger.open span:nth-child(1){ top:22.5px; transform:rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ top:22.5px; transform:rotate(-45deg); }

/* éléments réservés au menu mobile — masqués sur desktop */
.nav__panel{ display:contents; }
.nav__head, .nav__foot, .nav-close, .nav__watermark, .nav-backdrop, .brand--mini{ display:none; }

/* =========================================================================
   MENU MOBILE — plein écran, minimal & moderne (sans numéros)
   ========================================================================= */
@media(max-width:960px){
  .nav-cta--top{ display:none; }
  .burger{ display:block; z-index:301; }           /* au-dessus de la superposition */

  .nav-backdrop{ display:none!important; }          /* superflu en plein écran */

  /* la superposition plein écran */
  .nav{ position:fixed; inset:0; z-index:300; width:100%; height:100vh; height:100dvh;
    background:#F5EEE3; border:0; box-shadow:none;
    opacity:0; visibility:hidden; transform:scale(1.015);
    transition:opacity .45s var(--ease), transform .6s var(--ease), visibility 0s linear .45s; }
  .nav.open{ opacity:1; visibility:visible; transform:none;
    transition:opacity .4s var(--ease), transform .6s var(--ease); }

  .nav__panel{ display:flex; flex-direction:column; align-items:center; min-height:100%; position:relative;
    padding:clamp(16px,4.5vw,26px) clamp(22px,7vw,48px) clamp(22px,4vw,40px);
    padding-top:calc(clamp(16px,4.5vw,24px) + env(safe-area-inset-top));
    overflow-y:auto; overflow-x:hidden; }

  /* rangée du haut : marque à gauche ; le burger fait le X (fermeture masquée) */
  .nav__head{ display:flex; align-items:center; justify-content:center; gap:1rem;
    max-width:1080px; width:100%; margin:0 auto; padding:0; border:0; text-align:center; }
  .brand--mini{ display:flex; align-items:center; gap:.55rem; text-decoration:none; }
  .brand--mini .brand__mark{ height:30px; width:auto; }
  .brand--mini .brand__name{ font-family:var(--font-display); font-weight:400; font-size:1rem;
    letter-spacing:.16em; text-transform:uppercase; color:var(--charcoal); white-space:nowrap; }
  .brand--mini .brand__name b{ color:inherit; font-weight:inherit; }
  .nav-close{ display:none!important; }
  .nav__watermark{ display:none!important; }

  /* liste centrée, épurée, sans numéros */
  .nav ul.menu{ list-style:none; margin:auto; padding:0; max-width:none;
    display:flex; flex-direction:column; align-items:center; gap:.15rem; counter-reset:none; }
  .nav ul.menu li.menu-item{ display:block; width:100%; text-align:center; margin:0; border:0;
    counter-increment:none; opacity:1; transform:none; }
  .nav ul.menu a{ position:relative; display:inline-block; padding:.7rem .2rem;
    font-family:var(--font-body); font-weight:500; font-size:clamp(1.1rem,4.4vw,1.55rem);
    line-height:1.1; letter-spacing:.2em; text-transform:uppercase; color:var(--charcoal);
    opacity:0; transform:translateY(12px);
    transition:opacity .5s var(--ease), transform .55s var(--ease), color .3s var(--ease); }
  .nav ul.menu a::before{ content:none; }          /* supprime le numéro 01/02… */
  .nav ul.menu a::after{ content:""; position:absolute; left:50%; bottom:.35rem; width:0; height:1px;
    background:var(--gold); transform:translateX(-50%); transition:width .32s var(--ease); }
  .nav.open ul.menu a{ opacity:1; transform:none; }
  .nav.open ul.menu li:nth-child(1) a{ transition-delay:.10s; }
  .nav.open ul.menu li:nth-child(2) a{ transition-delay:.15s; }
  .nav.open ul.menu li:nth-child(3) a{ transition-delay:.20s; }
  .nav.open ul.menu li:nth-child(4) a{ transition-delay:.25s; }
  .nav.open ul.menu li:nth-child(5) a{ transition-delay:.30s; }
  .nav.open ul.menu li:nth-child(6) a{ transition-delay:.35s; }
  .nav.open ul.menu li:nth-child(7) a{ transition-delay:.40s; }
  .nav ul.menu a:hover, .nav ul.menu a:focus-visible,
  .nav ul.menu .current-menu-item>a, .nav ul.menu .current_page_item>a{ color:var(--gold-deep); }
  .nav ul.menu a:hover::after, .nav ul.menu a:focus-visible::after{ width:calc(100% - .4rem); }
  .nav ul.menu .current-menu-item>a::after, .nav ul.menu .current_page_item>a::after{ width:22px; }

  /* CTA plat, minimal */
  .nav-cta--drawer{ display:flex; align-items:center; justify-content:center; align-self:center;
    position:static; transform:translateY(10px); width:auto; margin:0 auto; padding:1.05em 2.4em;
    background:var(--charcoal); color:#F7F1E8; border:0; border-radius:2px;
    font-family:var(--font-body); font-weight:600; font-size:.64rem; letter-spacing:.24em; text-transform:uppercase;
    opacity:0; transition:opacity .5s var(--ease) .42s, transform .5s var(--ease) .42s, background .3s var(--ease), color .3s var(--ease); }
  .nav.open .nav-cta--drawer{ opacity:1; transform:none; }
  .nav-cta--drawer:hover{ background:var(--gold); border-color:var(--gold); color:#fff; }

  /* pied : contact + réseaux, sobre et centré */
  .nav__foot{ display:flex; flex-wrap:wrap; gap:.5rem 1.6rem; justify-content:center; align-items:center;
    max-width:1080px; width:100%; margin:clamp(1.4rem,4vh,2.4rem) auto 0; padding:0; border:0;
    opacity:0; transition:opacity .5s var(--ease) .52s; }
  .nav.open .nav__foot{ opacity:1; }
  .nav__contact{ font-family:var(--font-body); font-weight:500; font-size:.62rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--ink-muted); text-decoration:none; }
  .nav__contact:hover{ color:var(--gold-deep); }
  .nav__social{ display:flex; gap:1.2rem; margin-left:0; }
  .nav__social a{ font-family:var(--font-body); font-weight:500; font-size:.62rem; letter-spacing:.14em;
    text-transform:uppercase; color:var(--ink-muted); text-decoration:none; }
  .nav__social a:hover{ color:var(--gold-deep); }
}
@media(max-width:960px) and (prefers-reduced-motion:reduce){
  .nav, .nav.open{ transition:none; }
  .nav ul.menu a, .nav-cta--drawer, .nav__foot{ opacity:1!important; transform:none!important; transition:none!important; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  padding-top:120px; padding-bottom:80px; overflow:hidden;
  background:
    radial-gradient(ellipse 60% 55% at 72% 42%, rgba(232,212,169,.5), transparent 60%),
    radial-gradient(ellipse 50% 60% at 18% 82%, rgba(216,188,133,.28), transparent 62%),
    var(--cream);
}
.hero__rings{ position:absolute; right:-6%; top:50%; translate:0 -50%; width:min(58vw,720px); aspect-ratio:1; }
.hero__rings .ring{ inset:0; }
.hero__rings .ring.r2{ inset:9%; border-color:rgba(var(--gold-rgb),.3); }
.hero__rings .ring.r3{ inset:20%; border-color:rgba(160,124,54,.26); }
.hero__rings .halo{ inset:14%; }
.hero__inner{ position:relative; z-index:2; max-width:660px; }
.hero .h-display{ margin:.2em 0 .5em; }
.hero .lead{ max-width:34ch; }
.hero__meta{
  margin-top:2.6rem; display:flex; gap:1.8rem; flex-wrap:wrap;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); font-weight:500;
}
.hero__meta span{ display:inline-flex; align-items:center; gap:.6em; }
.hero__meta span::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.scroll-cue{
  position:absolute; left:50%; bottom:26px; translate:-50% 0; z-index:2;
  font-size:.62rem; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-muted);
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue .bar{ width:1px; height:38px; background:linear-gradient(var(--gold),transparent); animation:cue 2.2s var(--ease) infinite; }
@keyframes cue{ 0%{ transform:scaleY(.3); transform-origin:top; opacity:.3;} 50%{ transform:scaleY(1); opacity:1;} 100%{ transform:scaleY(.3); transform-origin:bottom; opacity:.3;} }

/* page hero (intérieures) */
.page-hero{
  position:relative; padding:clamp(124px,14vh,140px) 0 clamp(24px,3vw,40px); text-align:center; overflow:hidden;
  background:
    radial-gradient(ellipse 46% 70% at 50% 0%, rgba(232,212,169,.42), transparent 60%),
    var(--cream);
}
.page-hero .ring{ width:420px; height:420px; left:50%; top:-140px; translate:-50% 0; }
.page-hero__inner{ position:relative; z-index:2; }

/* =========================================================================
   BANDES DE CONTENU
   ========================================================================= */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.4rem,5vw,6rem); align-items:center; }
.split--reverse .split__media{ order:2; }
@media(max-width:860px){ .split{ grid-template-columns:1fr; } .split--reverse .split__media{ order:0; } }

/* cadre visuel avec anneau (placeholder photo) */
.media-frame{
  position:relative; aspect-ratio:4/5; border-radius:var(--radius); overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.6), transparent 55%),
    linear-gradient(155deg, var(--cream-3), var(--taupe) 130%);
  display:flex; align-items:center; justify-content:center;
}
.media-frame--warm{ background:linear-gradient(155deg, var(--blush), var(--taupe) 150%); }
.media-frame--charcoal{ background:linear-gradient(155deg,#3a3835,#201f1d); }
.media-frame .ring{ width:74%; height:74%; left:13%; top:13%; border-color:rgba(255,255,255,.6); }
.media-frame img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.media-note{
  position:relative; z-index:2; text-align:center; color:rgba(var(--ink-rgb),.5);
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; font-weight:500; padding:1rem;
}
.media-frame--charcoal .media-note{ color:rgba(255,255,255,.55); }
.media-frame--wide{ aspect-ratio:16/12; }

/* =========================================================================
   PRODUIT / WORDMARK LPG
   ========================================================================= */
.wordmark{ font-family:var(--font-body); line-height:1; text-transform:uppercase; }
.wordmark .patent{ display:block; font-size:.6rem; letter-spacing:.5em; font-weight:500; color:var(--gold-deep); margin-bottom:1rem; }
.wordmark .name{ font-size:clamp(1.8rem,4vw,3rem); letter-spacing:.06em; }
.wordmark .name .thin{ font-weight:300; }
.wordmark .name .bold{ font-weight:600; }
.wordmark .name sup{ font-size:.34em; top:-1.1em; }
.wordmark .augmented{ display:block; font-size:.66rem; letter-spacing:.42em; font-weight:400; color:var(--charcoal-soft); margin-top:1rem; }
.bg-charcoal .wordmark .patent{ color:var(--gold-pale); }
.bg-charcoal .wordmark .augmented{ color:rgba(255,255,255,.6); }

.lpg-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:64px; background:var(--charcoal); color:#fff;
  font-family:var(--font-body); font-weight:700; letter-spacing:.02em; font-size:1.25rem;
  border-radius:3px;
}

/* =========================================================================
   FEATURES / BÉNÉFICES
   ========================================================================= */
.grid{ display:grid; gap:clamp(1.4rem,2.4vw,2.2rem); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
@media(max-width:900px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr);} }
@media(max-width:560px){ .grid-3,.grid-4,.grid-2{ grid-template-columns:1fr;} }

.feature{
  background:var(--white); border:1px solid var(--line);
  padding:2.4rem 2rem; border-radius:var(--radius);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.feature:hover{ transform:translateY(-6px); box-shadow:0 24px 50px -30px rgba(var(--ink-rgb),.4); border-color:var(--line-gold); }
.feature__ico{
  width:46px; height:46px; border:1px solid var(--gold); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:1.4rem;
  color:var(--gold-deep);
}
.feature__ico svg{ width:22px; height:22px; }
.feature h3{ font-size:1.5rem; margin-bottom:.5rem; }
.feature p{ font-size:.92rem; margin:0; }

/* liste bénéfices (check) */
.benefits{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; }
.benefits li{ display:flex; gap:1rem; align-items:flex-start; font-size:.98rem; color:var(--charcoal-soft); }
.benefits .tick{
  flex:0 0 auto; width:26px; height:26px; border-radius:50%; background:var(--gold);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:.7rem; margin-top:2px;
}
.bg-charcoal .benefits li,.pack--featured .benefits li{ color:rgba(255,255,255,.82); }

/* trust row */
.trust{ display:flex; flex-wrap:wrap; justify-content:center; gap:clamp(1.5rem,5vw,4rem); }
.trust__item{ text-align:center; }
.trust__item .t{ font-family:var(--font-display); font-size:1.5rem; color:var(--charcoal); }
.trust__item .s{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-muted); font-weight:500; }

/* =========================================================================
   STATS / RÉSULTATS
   ========================================================================= */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-gold); border:1px solid var(--line-gold); border-radius:var(--radius); overflow:hidden; }
@media(max-width:760px){ .stats{ grid-template-columns:repeat(2,1fr);} }
.stat{ background:var(--cream); padding:2.6rem 1.4rem; text-align:center; }
.bg-charcoal .stat{ background:var(--charcoal); }
.stat .num{ font-family:var(--font-display); font-size:clamp(2.4rem,4vw,3.4rem); color:var(--gold-deep); line-height:1; font-weight:500; }
.bg-charcoal .stat .num{ color:var(--gold-pale); }
.stat .lab{ font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-muted); margin-top:.9rem; font-weight:500; }
.bg-charcoal .stat .lab{ color:rgba(255,255,255,.6); }

/* =========================================================================
   SERVICES / FORFAITS
   ========================================================================= */
.service{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  padding:2.6rem; display:flex; flex-direction:column; gap:1rem; position:relative; overflow:hidden;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.service:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -40px rgba(var(--ink-rgb),.5); }
.service__cat{ font-size:.66rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.service h3{ font-size:1.7rem; }
.service .meta{ margin-top:auto; padding-top:1.4rem; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; font-size:.8rem; letter-spacing:.06em; color:var(--ink-muted); }
.service .price{ font-family:var(--font-display); font-size:1.5rem; color:var(--charcoal); }

.pack{
  border:1px solid var(--line); border-radius:var(--radius); background:var(--white);
  padding:2.8rem 2.4rem; display:flex; flex-direction:column; gap:1.2rem; position:relative;
}
.pack--featured{ background:var(--charcoal); color:#fff; border-color:var(--charcoal); }
.pack--featured h3,.pack--featured .price{ color:#fff; }
.pack--featured p{ color:rgba(255,255,255,.72); }
.pack--featured .benefits li{ color:rgba(255,255,255,.82); }
.pack__flag{
  position:absolute; top:1.4rem; right:1.4rem; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase;
  background:var(--gold); color:#fff; padding:.4em .9em; border-radius:2px; font-weight:600;
}
.pack h3{ font-size:1.9rem; }
.pack .price{ font-family:var(--font-display); font-size:2.6rem; }
.pack .price small{ font-family:var(--font-body); font-size:.8rem; color:var(--ink-muted); letter-spacing:.1em; }
.pack--featured .price small{ color:rgba(255,255,255,.6); }

/* =========================================================================
   PRODUITS
   ========================================================================= */
.product{ text-align:center; }
.product__img{
  aspect-ratio:1; border-radius:var(--radius); margin-bottom:1.2rem; position:relative; overflow:hidden;
  background:radial-gradient(circle at 50% 40%, #fff, var(--cream-2) 70%); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.product__img .ring{ width:64%; height:64%; left:18%; top:18%; border-color:var(--line-gold); }
.product__img .note{ font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(var(--ink-rgb),.4); }
.product h3{ font-size:1.35rem; }
.product .cat{ font-size:.64rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:.5rem; }
.product p{ font-size:.86rem; }

/* =========================================================================
   PROCESS (Expérience)
   ========================================================================= */
.steps{ display:grid; gap:clamp(1.6rem,3vw,2.6rem); grid-template-columns:repeat(3,1fr); counter-reset:step; }
@media(max-width:820px){ .steps{ grid-template-columns:1fr; } }
.step{ position:relative; padding-top:2.4rem; }
.step__n{ font-family:var(--font-display); font-size:3.6rem; color:var(--gold); line-height:1; opacity:.55; }
.step h3{ font-size:1.5rem; margin:.6rem 0 .6rem; }
.step p{ font-size:.92rem; margin:0; }

/* =========================================================================
   CTA BAND
   ========================================================================= */
.cta-band{
  position:relative; overflow:hidden; text-align:center;
  background:
    radial-gradient(ellipse 50% 90% at 50% 50%, rgba(var(--gold-rgb),.22), transparent 62%),
    var(--charcoal);
  color:#fff;
}
.cta-band .ring{ width:520px; height:520px; left:50%; top:50%; translate:-50% -50%; border-color:rgba(232,212,169,.25); }
.cta-band .ring.r2{ width:360px; height:360px; border-color:rgba(232,212,169,.18); }
.cta-band__inner{ position:relative; z-index:2; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:rgba(255,255,255,.72); }

/* =========================================================================
   CALENDLY / CONTACT
   ========================================================================= */
.calendly-inline-widget{ min-width:320px; height:1000px; background:transparent; position:relative; z-index:1; }
/* Réserve la hauteur du calendrier Cal.com pour éviter que la page « pousse »
   #contact vers le bas pendant le chargement de l'iframe (l'ancre reste juste). */
.cal-clip{ min-height:680px; }
#my-cal-inline-rendez-vous{ min-height:680px; }
.calendly-wrap{ width:75vw; max-width:1700px; margin-inline:auto; }
@media(max-width:1024px){ .calendly-wrap{ width:90vw; } }

/* Cadre thématisé autour du calendrier */
.calendly-card{
  position:relative; background:var(--cream); border:1px solid var(--line-gold);
  border-radius:16px; box-shadow:0 50px 120px -60px rgba(var(--ink-rgb),.5);
  padding:8px; overflow:hidden;
}
.calendly-card::after{
  content:""; position:absolute; inset:0; border-radius:16px; pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5);
}
/* État de chargement (avant que Calendly s'affiche) */
.calendly-loading{
  position:absolute; inset:8px; z-index:3; border-radius:12px;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1.2rem;
  background:var(--cream); color:var(--ink-muted);
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; font-weight:500;
  transition:opacity .5s var(--ease); 
}
.calendly-loading.hidden{ opacity:0; pointer-events:none; }
.cal-spinner{ width:48px; height:48px; border:2px solid var(--line-gold); border-top-color:var(--gold); border-radius:50%; animation:spin 1s linear infinite; }
.embed-placeholder{
  min-height:560px; border:1px dashed var(--line-gold); border-radius:var(--radius);
  background:var(--white); display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:3rem; gap:1rem;
}
.embed-placeholder .ico{ width:60px; height:60px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-deep); }
.embed-placeholder code{ background:var(--cream-2); padding:.3em .6em; border-radius:3px; font-size:.82rem; color:var(--charcoal); }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,4vw,4rem); align-items:start; }
@media(max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-list{ list-style:none; margin:0; padding:0; display:grid; gap:1.6rem; }
.contact-list li{ display:flex; gap:1.1rem; align-items:flex-start; }
.contact-list .ico{ flex:0 0 auto; width:42px; height:42px; border:1px solid var(--gold); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold-deep); }
.contact-list li > span:last-child{ display:flex; flex-direction:column; }
.contact-list .k{ display:block; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-muted); font-weight:600; margin-bottom:.35rem; }
.contact-list .v{ display:block; font-size:1rem; color:var(--charcoal); }

.form{ display:grid; gap:1.1rem; }
.field label{ display:block; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); font-weight:600; margin-bottom:.5rem; }
.field input,.field textarea,.field select{
  width:100%; padding:.95em 1.1em; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--white); font-family:var(--font-body); font-size:.95rem; color:var(--charcoal); font-weight:300;
  transition:border-color .3s;
}
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:130px; }

.hours{ display:grid; gap:.5rem; }
.hours .row{ display:flex; justify-content:space-between; padding:.5rem 0; border-bottom:1px solid var(--line); font-size:.9rem; }
.hours .row span:first-child{ color:var(--charcoal); font-weight:500; }
.hours .row span:last-child{ color:var(--ink-muted); }

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer{ background:var(--charcoal); color:rgba(255,255,255,.66); padding:clamp(56px,7vw,90px) 0 2.2rem; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.5rem; }
@media(max-width:860px){ .footer-top{ grid-template-columns:1fr 1fr; gap:2.5rem 1.5rem; } }
@media(max-width:520px){ .footer-top{ grid-template-columns:1fr; } }
.footer-brand__lockup{ display:flex; align-items:center; gap:.85rem; margin-bottom:1.3rem; }
.footer-brand__lockup img{ height:56px; width:auto; }
.footer-brand__name{ font-family:var(--font-serif); font-size:1.3rem; letter-spacing:.12em; text-transform:uppercase; color:#fff; line-height:1.1; }
.footer-brand__name b{ color:inherit; font-weight:inherit; }
.footer-brand__sub{ display:block; font-family:var(--font-body); font-size:.5rem; letter-spacing:.3em; text-transform:uppercase; color:var(--taupe); margin-top:5px; }
.footer-brand p{ color:rgba(255,255,255,.6); font-size:.88rem; max-width:30ch; }
.footer-col h4{ font-family:var(--font-body); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-pale); font-weight:600; margin-bottom:1.2rem; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:.7rem; }
.footer-col a{ font-size:.9rem; color:rgba(255,255,255,.66); transition:color .3s; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  margin-top:clamp(2.5rem,5vw,4rem); padding-top:1.8rem; border-top:1px solid rgba(255,255,255,.12);
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; align-items:center;
}
.footer-legal{ font-size:.66rem; line-height:1.7; color:rgba(255,255,255,.42); max-width:80ch; letter-spacing:.02em; }
.footer-claim{ font-family:var(--font-display); font-style:normal; color:var(--gold-pale); font-size:1rem; }
.footer-claim em{ font-style:italic; }

/* =========================================================================
   REVEAL ANIMATIONS
   ========================================================================= */
.reveal{ opacity:0; transform:translateY(42px); transition:opacity 1s var(--ease), transform 1.05s cubic-bezier(.22,1,.36,1); }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================================
   VARIÉTÉ DES APPARITIONS — plusieurs effets d'entrée (modificateurs)
   ========================================================================= */
.reveal--left{ transform:translateX(-90px); }
.reveal--right{ transform:translateX(90px); }
.reveal--scale{ transform:scale(.74); }
.reveal--down{ transform:translateY(-52px); }
.reveal--fade{ transform:none; }
.reveal--blur{ filter:blur(16px); transform:scale(1.04); transition:opacity 1s var(--ease), transform 1.1s cubic-bezier(.22,1,.36,1), filter 1.1s var(--ease); }
.reveal--blur.in{ filter:blur(0); }
.reveal--rise{ transform:translateY(90px); }
.reveal--tilt{ transform:translateY(40px) rotate(-3deg); transform-origin:left bottom; }
/* l'état .in remet tout à zéro (spécificité supérieure : gagne toujours) */
@media(prefers-reduced-motion:reduce){
  .reveal--left,.reveal--right,.reveal--scale,.reveal--down,.reveal--rise,.reveal--blur{ transform:none!important; filter:none!important; }
}

.reveal.d1{ transition-delay:.08s; } .reveal.d2{ transition-delay:.16s; } .reveal.d3{ transition-delay:.24s; } .reveal.d4{ transition-delay:.32s; }

@media(prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
  html{ scroll-behavior:auto; }
}

/* focus visibility */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--gold-deep); outline-offset:3px;
}

/* Intégration menu WordPress (wp_nav_menu) — l'en-tête empilé gère la mise en page via .nav ul.menu */
.nav ul.menu li.menu-item{ display:flex; align-items:center; margin:0; }
.nav .current-menu-item > a,
.nav .current_page_item > a{ color:var(--gold-deep); }
@media(max-width:960px){ .nav ul.menu li.menu-item{ display:block; width:100%; } }
/* bouton social pied de page */
.social-row{ display:flex; gap:.8rem; margin-top:1.4rem; }
.social-row a{ width:38px; height:38px; border:1px solid rgba(255,255,255,.25); border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.7); transition:.3s; }
.social-row a:hover{ border-color:var(--gold-pale); color:var(--gold-pale); }

/* =========================================================================
   VISUELS & EFFETS (v1.1) — images d'ambiance + animations
   ========================================================================= */

/* Grain fin sur tout le site (texture) — indépendant du chemin (SVG inline) */
body::after{
  content:""; position:fixed; inset:0; z-index:9998; pointer-events:none;
  opacity:.32; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* --- HERO : aura lumineuse en image + entrée animée --- */
.hero__aura{
  position:absolute; right:-8%; top:50%; translate:0 -50%;
  width:min(66vw,860px); height:auto; z-index:0; pointer-events:none;
  mix-blend-mode:multiply; opacity:.92;
  animation:float 12s var(--ease) infinite;
}
.hero__rings{ z-index:1; }
.hero__media{ z-index:4; }
.hero__inner{ z-index:5; }
@keyframes float{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-18px);} }

@keyframes heroUp{ from{ opacity:0; transform:translateY(26px);} to{ opacity:1; transform:none;} }
.hero__inner > *{ opacity:0; animation:heroUp 1s var(--ease) forwards; }
.hero__inner > *:nth-child(1){ animation-delay:.15s; }
.hero__inner > *:nth-child(2){ animation-delay:.30s; }
.hero__inner > *:nth-child(3){ animation-delay:.48s; }
.hero__inner > *:nth-child(4){ animation-delay:.62s; }
.hero__inner > *:nth-child(5){ animation-delay:.76s; }

/* --- CADRES VISUELS : image d'ambiance + zoom doux au survol --- */
.media-frame{ box-shadow:0 40px 80px -50px rgba(var(--ink-rgb),.55); }
.media-frame img{ transition:transform 1.4s var(--ease); }
.media-frame:hover img{ transform:scale(1.06); }
.media-frame .ring{ z-index:2; }
.media-note{ display:none; } /* les visuels d'ambiance remplacent l'ancien libellé */

/* --- PRODUITS : vignette image --- */
.product__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.product:hover .product__img img{ transform:scale(1.05); }
.product__img .ring{ z-index:2; }
.product__img .note{ display:none; }

/* --- CTA : halo image --- */
.cta-glow{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; opacity:.9; pointer-events:none; }
.cta-band__inner{ z-index:2; }
.cta-band .ring{ z-index:1; }

/* --- STATS : léger relief au survol --- */
.stat{ transition:background .4s var(--ease); }
.stat:hover{ background:var(--cream-2); }
.bg-charcoal .stat:hover{ background:#242220; }

/* --- Séparateur or animé --- */
.divider-gold{ background:linear-gradient(90deg, transparent, var(--gold) 20%, var(--gold-deep) 50%, var(--gold) 80%, transparent); background-size:200% 100%; animation:shimmer 6s linear infinite; }
@keyframes shimmer{ to{ background-position:200% 0; } }

@media(prefers-reduced-motion:reduce){
  .hero__inner > *{ opacity:1 !important; }
  .hero__aura{ animation:none !important; }
}

/* --- HERO : portrait encadré (photo réelle) sur desktop --- */
.hero__media{
  position:absolute; right:var(--gutter); top:52%; translate:0 -50%;
  width:min(36vw,440px); aspect-ratio:4/5; z-index:4;
}
.hero__media img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  border-radius:6px; box-shadow:0 60px 120px -50px rgba(var(--ink-rgb),.55); z-index:2;
}
.hero__media .ring{
  position:absolute; width:122%; height:122%; left:-11%; top:-11%;
  border-color:var(--line-gold); z-index:1;
}
@media(max-width:980px){ .hero__media{ display:none; } }
@media(min-width:981px){ .hero__aura{ opacity:.55; } } /* l'aura devient un halo derrière la photo */

/* =========================================================================
   BOUTIQUE — cartes produits + intégration WooCommerce
   ========================================================================= */
.shop-grid{ align-items:stretch; }
.shop-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column;
  transition:transform .5s var(--ease), box-shadow .5s var(--ease), border-color .5s;
}
.shop-card:hover{ transform:translateY(-6px); box-shadow:0 30px 60px -40px rgba(var(--ink-rgb),.5); border-color:var(--line-gold); }
.shop-card__img{
  position:relative; aspect-ratio:1; overflow:hidden;
  background:radial-gradient(circle at 50% 40%, #fff, var(--cream-2) 70%);
  display:flex; align-items:center; justify-content:center;
}
.shop-card__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1.2s var(--ease); }
.shop-card:hover .shop-card__img img{ transform:scale(1.05); }
.shop-card__img .ring{ position:absolute; width:62%; height:62%; left:19%; top:19%; border-color:var(--line-gold); z-index:2; }
.shop-card__body{ padding:1.5rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.shop-card .cat{ font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.shop-card h3{ font-size:1.25rem; }
.shop-card p{ font-size:.85rem; margin:0; }
.shop-card__foot{ margin-top:auto; padding-top:1rem; display:flex; align-items:center; justify-content:space-between; gap:.8rem; }
.shop-card .price{ font-family:var(--font-display); font-size:1.4rem; color:var(--charcoal); }
.shop-card__foot .btn{ padding:.7em 1.2em; font-size:.68rem; }

/* --- WooCommerce : mise au diapason de la charte --- */
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{ font-size:.85rem; color:var(--ink-muted); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce div.product .product_title{ font-family:var(--font-display)!important; font-weight:500!important; color:var(--charcoal); }
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price{ color:var(--gold-deep)!important; font-family:var(--font-display); font-weight:500; }
.woocommerce span.onsale{ background:var(--gold); color:#fff; border-radius:2px; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt{
  background:var(--charcoal); color:#fff; border-radius:var(--radius);
  font-family:var(--font-body); font-weight:500; text-transform:uppercase; letter-spacing:.14em;
  font-size:.74rem; padding:.95em 1.6em; transition:background .35s var(--ease), transform .35s var(--ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce #respond input#submit:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover{
  background:var(--gold); color:#fff; transform:translateY(-2px);
}
.woocommerce .woocommerce-message, .woocommerce-info{ border-top-color:var(--gold); }
.woocommerce .woocommerce-message::before, .woocommerce-info::before{ color:var(--gold); }
.woocommerce ul.products li.product{ text-align:center; }
.woocommerce ul.products li.product a img{ border-radius:var(--radius); margin-bottom:1rem; }
.woocommerce-breadcrumb{ font-size:.75rem; letter-spacing:.06em; color:var(--ink-muted); }

/* =========================================================================
   HERO COUVERTURE (v2) — photo pleine page, voile noir 45 %, texte centré
   ========================================================================= */
.hero-couv{position:relative;height:100svh;min-height:640px;overflow:hidden}
.hero-couv__bg{position:absolute;inset:0;z-index:0}
.hero-couv__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
@keyframes hcSettle{from{transform:scale(1.015)}to{transform:scale(1)}}
.hero-couv__scrim{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 135% 115% at 50% 43%,rgba(0,0,0,.46),rgba(0,0,0,.36) 58%,rgba(0,0,0,.30) 100%)}

.hero-couv__halo{position:absolute;left:50%;top:47%;translate:-50% -50%;width:min(66vh,620px);aspect-ratio:1;z-index:2;pointer-events:none}
.hero-couv__halo .glow{position:absolute;inset:-18%;border-radius:50%;background:radial-gradient(circle,rgba(232,212,169,.4),transparent 66%);filter:blur(6px);animation:breathe 8s var(--ease) infinite}
.hero-couv__halo .r1{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(232,212,169,.5);animation:spin 70s linear infinite}
.hero-couv__halo .r1::after{content:"";position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;background:var(--gold-pale);box-shadow:0 0 12px 3px rgba(232,212,169,.8)}
.hero-couv__halo .r2{position:absolute;inset:7%;border-radius:50%;border:1px solid rgba(232,212,169,.26)}

.hero-couv__frame{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(26px,4vw,52px);padding-top:104px;padding-bottom:112px}
.hero-couv__center{margin:auto;max-width:1000px;display:flex;flex-direction:column;align-items:center}

.hero-couv__eyebrow{position:absolute;top:calc(47% - min(33vh,310px) - 2.6rem);left:0;right:0;margin-inline:auto;width:max-content;max-width:92vw;z-index:5;
  font-family:var(--font-body);font-weight:500;font-size:.64rem;letter-spacing:.56em;text-transform:uppercase;color:var(--gold-pale);white-space:nowrap;
  display:inline-flex;align-items:center;gap:1.1em;opacity:0;animation:hcUp 1s var(--ease) .4s forwards}
@media(max-width:640px){.hero-couv__eyebrow{font-size:.55rem;letter-spacing:.36em}}
.hero-couv__eyebrow::before,.hero-couv__eyebrow::after{content:"";width:44px;height:1px;display:inline-block}
.hero-couv__eyebrow::before{background:linear-gradient(90deg,transparent,var(--gold))}
.hero-couv__eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent)}

.hero-couv h1{font-family:var(--font-hero);font-weight:400;line-height:1.06;font-size:clamp(2.8rem,7.2vw,6.6rem);color:#F7F1E8;text-shadow:0 1px 10px rgba(0,0,0,.42)}
.hero-couv h1 .line{display:block;overflow:hidden}
.hero-couv h1 .line span{display:block;opacity:0;transform:translateY(105%);animation:hcRise 1.2s var(--ease) forwards}
.hero-couv h1 .line:nth-child(1) span{animation-delay:.85s}
.hero-couv h1 .line:nth-child(2) span{animation-delay:1.05s}
@keyframes hcRise{to{opacity:1;transform:none}}
.hero-couv h1 em{font-style:normal;font-weight:400;
  background:linear-gradient(100deg,#A9802F 18%,#F0D79B 50%,#A9802F 82%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:heroGlow 5s ease-in-out infinite}
@keyframes heroGlow{
  0%,100%{filter:brightness(1) saturate(1) drop-shadow(0 1px 7px rgba(0,0,0,.3))}
  50%{filter:brightness(1.42) saturate(1.12) drop-shadow(0 1px 7px rgba(0,0,0,.3))}
}
@keyframes hcShimmer{to{background-position:-220% 0}}

.hero-couv__rule{width:0;height:1px;background:var(--gold);margin:1.6rem 0;animation:hcDraw 1s var(--ease) 1.4s forwards}
@keyframes hcDraw{to{width:64px}}
.hero-couv__lead{font-size:1.05rem;line-height:1.8;color:rgba(255,255,255,.88);max-width:46ch;font-weight:300;letter-spacing:.01em;
  opacity:0;animation:hcUp 1s var(--ease) 1.6s forwards}
@keyframes hcUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

.hero-couv__cta{margin-top:1.9rem;position:relative;font-family:var(--font-body);font-weight:500;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  padding:1.2em 2.8em;background:var(--gold);color:#fff;text-decoration:none;border-radius:2px;overflow:hidden;display:inline-block;
  opacity:0;animation:hcUp 1s var(--ease) 1.85s forwards;transition:transform .4s var(--ease),box-shadow .4s var(--ease),background .35s}
.hero-couv__cta:hover{transform:translateY(-2px);box-shadow:0 18px 40px -18px rgba(0,0,0,.6);background:var(--gold-deep)}
.hero-couv__cta::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);animation:hcSheen 5s var(--ease) 3s infinite}
@keyframes hcSheen{0%{left:-80%}45%,100%{left:130%}}

.hero-couv__foot{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem 2.6rem;
  opacity:0;animation:hcUp 1s var(--ease) 2.1s forwards}
.hero-couv__foot span{display:inline-flex;align-items:center;gap:.75em;font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:#fff;font-weight:500}
.hero-couv__foot span::before{content:"\2713";width:26px;height:26px;flex:0 0 auto;border-radius:50%;border:1px solid var(--gold-pale);
  color:var(--gold-pale);display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;background:rgba(0,0,0,.22);box-shadow:0 0 14px rgba(232,212,169,.35)}

.hero-couv .scroll-cue{color:rgba(255,255,255,.7)}
.hero-couv .scroll-cue .bar{background:linear-gradient(var(--gold-pale),transparent)}

@media(max-width:640px){.hero-couv__frame{padding-top:96px}.hero-couv__halo{width:82vw}}
@media(prefers-reduced-motion:reduce){
  .hero-couv__bg img{animation:none}
  .hero-couv__eyebrow,.hero-couv__lead,.hero-couv__cta,.hero-couv__foot,.hero-couv h1 .line span{opacity:1!important;transform:none!important;animation:none!important}
  .hero-couv__rule{width:64px;animation:none}
}


/* Nom de l'esthéticienne — grand, dans le héros */
.hero-couv__name{font-family:var(--font-display);font-style:normal;font-weight:400;
  font-size:clamp(2rem,3.6vw,3.4rem);line-height:1.1;color:#F1DCA8;
  text-shadow:0 2px 20px rgba(0,0,0,.45);margin-bottom:.4rem;
  opacity:0;animation:hcUp 1s var(--ease) .5s forwards}
.hero-couv__role{font-family:var(--font-body);font-weight:500;font-size:.62rem;letter-spacing:.4em;
  text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:1.5rem;
  opacity:0;animation:hcUp 1s var(--ease) .65s forwards}

/* =========================================================================
   HERO CINÉMATIQUE (accueil) — plein écran sombre, nom en bas
   ========================================================================= */
.hero-cine{position:relative;height:100svh;min-height:620px;overflow:hidden;background:#000}
.hero-cine__bg{position:absolute;inset:0;z-index:0}
.hero-cine__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
/* vignette dramatique */
.hero-cine__scrim{position:absolute;inset:0;z-index:1;background:
  radial-gradient(ellipse 100% 88% at 50% 46%,transparent 30%,rgba(10,9,8,.5) 66%,rgba(10,9,8,.9)),
  linear-gradient(180deg,rgba(10,9,8,.55),transparent 32%,rgba(10,9,8,.86))}
/* bassin d'ombre localisé : garantit la lisibilité du texte */
.hero-cine__pool{position:absolute;inset:0;z-index:2;
  background:radial-gradient(ellipse 64% 54% at 50% 50%,rgba(6,5,4,.74),rgba(6,5,4,.34) 55%,transparent 72%)}

.hero-cine__in{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:96px 30px 150px;color:#fff}

.hero-cine__eyebrow{font-family:var(--font-body);font-weight:600;font-size:.68rem;letter-spacing:.46em;
  text-transform:uppercase;color:var(--gold-pale);display:inline-flex;align-items:center;gap:.85em;margin-bottom:1.7rem;
  opacity:0;animation:hcUp 1s var(--ease) .2s forwards}
.hero-cine__eyebrow::before,.hero-cine__eyebrow::after{content:"";width:36px;height:1px;background:var(--gold);display:inline-block}

.hero-cine h1{font-family:var(--font-hero);font-weight:400;line-height:1.12;letter-spacing:.014em;color:#fff;
  font-size:clamp(2.3rem,5vw,4.4rem);text-shadow:0 2px 34px rgba(0,0,0,.6);margin:0}
.hero-cine h1 .line{display:block;overflow:hidden}
.hero-cine h1 .line span{display:block;opacity:0;transform:translateY(105%);animation:hcRise 1.2s var(--ease) forwards}
.hero-cine h1 .line:nth-child(1) span{animation-delay:.5s}
.hero-cine h1 .line:nth-child(2) span{animation-delay:.7s}
.hero-cine h1 em{font-style:normal;color:var(--gold-pale)}

.hero-cine__cta{margin-top:2rem;display:inline-block;color:#fff;font-family:var(--font-body);font-weight:600;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;border:1px solid rgba(244,237,225,.6);
  padding:1.05em 2.3em;border-radius:3px;transition:.35s var(--ease);
  opacity:0;animation:hcUp 1s var(--ease) 1s forwards}
.hero-cine__cta:hover{background:#fff;color:var(--charcoal);border-color:#fff;transform:translateY(-2px)}

.hero-cine__sig{position:absolute;left:0;right:0;bottom:0;z-index:11;padding:22px 30px;
  background:linear-gradient(180deg,transparent,rgba(8,7,6,.9) 40%);
  display:flex;align-items:center;justify-content:center;gap:1.3rem;flex-wrap:wrap;text-align:center;
  opacity:0;animation:hcUp 1s var(--ease) 1.2s forwards}
.hero-cine__sig .nm{font-family:var(--font-serif);font-weight:500;color:#fff;font-size:1.5rem;line-height:1}
.hero-cine__sig .rl{font-family:var(--font-body);font-weight:600;font-size:.62rem;letter-spacing:.34em;
  text-transform:uppercase;color:rgba(255,255,255,.72)}
.hero-cine__sig .dot{width:4px;height:4px;border-radius:50%;background:var(--gold-pale);flex:0 0 auto}

@media(max-width:640px){
  .hero-cine__in{padding:104px 24px 132px}
  .hero-cine h1{font-size:2.2rem}
  .hero-cine__sig{gap:.5rem .9rem}
  .hero-cine__sig .nm{font-size:1.3rem}
}
@media(prefers-reduced-motion:reduce){
  .hero-cine__bg img{animation:none}
  .hero-cine__eyebrow,.hero-cine__cta,.hero-cine__sig,.hero-cine h1 .line span{opacity:1!important;transform:none!important;animation:none!important}
}

/* --- EN-TÊTE transparent clair sur le héros sombre (accueil, avant scroll) --- */
body.home .site-header:not(.scrolled){background:linear-gradient(rgba(18,14,10,.55),rgba(18,14,10,.18) 60%,transparent);box-shadow:none;backdrop-filter:none}
body.home .site-header:not(.scrolled) .brand__name{color:#F7F1E8;text-shadow:0 1px 16px rgba(0,0,0,.4)}
body.home .site-header:not(.scrolled) .brand__name b{color:inherit}
body.home .site-header:not(.scrolled) .brand__sub{color:rgba(247,241,232,.94);text-shadow:0 1px 10px rgba(0,0,0,.5)}

body.home .site-header:not(.scrolled) .nav > a,
body.home .site-header:not(.scrolled) .nav ul.menu a{color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(0,0,0,.45)}
body.home .site-header:not(.scrolled) .nav a.current,
body.home .site-header:not(.scrolled) .nav .current-menu-item > a,
body.home .site-header:not(.scrolled) .nav .current_page_item > a{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.5)}
body.home .site-header:not(.scrolled) .nav a::after{background:#F5E4BE;height:1.5px}
body.home .site-header:not(.scrolled) .nav-cta{border-color:#F0DCA8;color:#FBF4E6;background:rgba(255,255,255,.1);text-shadow:0 1px 10px rgba(0,0,0,.4)}
body.home .site-header:not(.scrolled) .nav-cta:hover{background:var(--gold-pale);color:var(--charcoal)}

body.home .site-header:not(.scrolled) .burger span{background:#F7F1E8}
@media(max-width:960px){
  /* Tiroir mobile = fond crème : liens & mot-symbole foncés, sans halo blanc */
  body.home .site-header:not(.scrolled) .nav ul.menu a{color:var(--charcoal);text-shadow:none}
  body.home .site-header:not(.scrolled) .brand--mini .brand__name{color:var(--charcoal);text-shadow:none}
}

/* Emplacement photo (placeholder) */
.photo-placeholder{
  position:relative; aspect-ratio:4/5; border-radius:6px;
  border:1px dashed var(--line-gold);
  background:radial-gradient(circle at 50% 42%, #fff, var(--cream-2) 75%);
  display:flex; align-items:center; justify-content:center; text-align:center;
  color:var(--taupe-deep); font-size:.68rem; letter-spacing:.26em; text-transform:uppercase; font-weight:500; line-height:2;
}
.photo-placeholder .ring{ position:absolute; width:72%; height:72%; left:14%; top:14%; border-color:var(--line-gold); }
.photo-placeholder img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:6px; }

/* =========================================================================
   FORMES SIGNATURE — famille d'arches / ovales / pétales (page d'accueil)
   ========================================================================= */
.shape,.shape img{ overflow:hidden; }
.shape{ position:relative; }
.shape::after{ content:""; position:absolute; inset:-11px; border:1px solid var(--line-gold); pointer-events:none; }
.shape .ring{ border-radius:50%; }

/* Arche — portrait de Véronique */
.shape--arch,.shape--arch img{ border-radius:48% 48% 12px 12px / 34% 34% 2% 2% !important; }
.shape--arch::after{ border-radius:50% 50% 18px 18px / 36% 36% 3% 3%; }
.shape--arch .ring{ width:80%;height:80%;left:10%;top:5%; }

/* Ovale — technologie */
.shape--oval,.shape--oval img{ border-radius:50% !important; }
.shape--oval::after{ border-radius:50%; }
.shape--oval .ring{ width:112%;height:112%;left:-6%;top:-6%; }

/* Capsule — pilier vertical, épuré */
.shape--capsule,.shape--capsule img{ border-radius:999px !important; }
.shape--capsule::after{ border-radius:999px; }
.shape--capsule .ring{ width:88%;height:88%;left:6%;top:6%; }

/* Véronique — photo réelle dans l'arche */
.photo-placeholder.has-photo{ border:0; background:none; }
.photo-placeholder.has-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 22%; }

/* Technologie : bénéfices intégrés dans la section sombre */
.tech-benefits{ margin-top:clamp(3rem,5vw,4.6rem); border-top:1px solid rgba(232,212,169,.2); padding-top:clamp(2.6rem,4vw,3.6rem); }
.tech-benefits .eyebrow{ color:var(--gold-pale); }
.feature--dark{ background:transparent; border:0; box-shadow:none; padding:0 .4rem; text-align:center; }
.feature--dark:hover{ transform:none; }
.feature--dark .feature__ico{ margin-inline:auto; border-color:var(--line-gold); color:var(--gold-pale); }
.feature--dark h3{ color:var(--cream); }
.feature--dark p{ color:rgba(255,255,255,.7); }

/* Photos des sections un peu plus compactes + rapprochées du texte */
@media(min-width:861px){
  .split__media > .shape,
  .split__media > .media-frame,
  .split__media > .photo-placeholder{ max-width:430px; width:100%; }
  .split:not(.split--reverse) .split__media > *{ margin-left:auto; }
  .split--reverse .split__media > *{ margin-right:auto; }
}

/* =========================================================================
   LES 3 PILIERS — épuré (colonnes, filets or, icônes)
   ========================================================================= */
.pillars-epure{ display:grid; grid-template-columns:repeat(3,1fr); }
.pil-col{ padding:.5rem 2.6rem; text-align:center; position:relative; }
.pil-col + .pil-col{ border-left:1px solid var(--line-gold); }
.pil-ico{ width:56px; height:56px; margin:0 auto 1.5rem; color:var(--gold-deep); transition:transform .5s var(--ease), color .5s; }
.pil-ico svg{ width:100%; height:100%; }
.pil-col:hover .pil-ico{ transform:translateY(-4px); color:var(--gold); }
.pil-tag{ display:block; font-size:.68rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.pil-col h3{ font-family:var(--font-serif); font-weight:500; font-size:1.6rem; margin:.55rem 0 .85rem; color:var(--charcoal); }
.pil-col p{ font-size:.96rem; line-height:1.75; color:var(--ink-muted); margin:0 0 1.3rem; }
.pil-col .link-arrow{ justify-content:center; }
@media(max-width:860px){
  .pillars-epure{ grid-template-columns:1fr; gap:2.8rem; }
  .pil-col{ padding:0 0 2.6rem; }
  .pil-col + .pil-col{ border-left:0; border-top:1px solid var(--line-gold); padding-top:2.6rem; }
}

/* =========================================================================
   ZÉRO PROMESSE — image pleine hauteur + liste éditoriale
   ========================================================================= */
.zero-nat{ position:relative; overflow:hidden; background:var(--cream); border-top:1px solid var(--line-gold); border-bottom:1px solid var(--line-gold); }
.zero-grid{ display:grid; grid-template-columns:1.02fr 1fr; align-items:stretch; min-height:min(88vh,760px); }
.zero-img{ position:relative; }
.zero-img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:56% 8%; }
.zero-img::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 55%,rgba(243,233,221,.4) 78%,var(--cream)); }
.zero-body{ display:flex; flex-direction:column; justify-content:center; padding:clamp(3.2rem,5vw,5.5rem) clamp(2rem,4.5vw,4.5rem); }
.zero-body .h-1 em{ font-style:normal; color:var(--gold-deep); font-weight:400; }
.zero-body .lead{ max-width:46ch; }
.zero-hl{ color:var(--gold-deep); font-family:var(--font-display); font-style:normal; font-weight:600; }
.zero-trust{ display:flex; margin-top:2.6rem; border-top:1px solid var(--line-gold); padding-top:2rem; }
.zero-trust .t{ flex:1; padding:0 1.8rem; text-align:left; }
.zero-trust .t+.t{ border-left:1px solid var(--line-gold); }
.zero-trust .t:first-child{ padding-left:0; }
.zero-trust .cap{ display:block; font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; margin-bottom:.5rem; }
.zero-trust h3, .zero-trust h4{ font-family:var(--font-display); font-weight:500; font-size:1.5rem; line-height:1.05; color:var(--charcoal); white-space:nowrap; }
@media(max-width:860px){
  .zero-grid{ grid-template-columns:1fr; }
  .zero-img{ height:52vh; }
  .zero-img img{ object-position:58% 6%; }
  .zero-img::after{ background:linear-gradient(0deg,var(--cream),transparent 55%); }
  .zero-trust{ flex-wrap:wrap; gap:1.4rem 0; }
  .zero-trust .t{ flex:1 1 50%; padding:0 1.2rem; }
  .zero-trust .t:nth-child(1){ padding-left:0; border-left:0; }
  .zero-trust h3, .zero-trust h4{ white-space:normal; }
}

/* =========================================================================
   EFFETS — révélation des photos au scroll + brillance des boutons
   ========================================================================= */
/* Zoom-révélation : les photos des sections se dézooment en apparaissant */
.split__media.reveal .shape img,
.split__media.reveal .photo-placeholder img{
  transform:scale(1.16);
  transition:transform 1.5s var(--ease);
  will-change:transform;
}
.split__media.reveal.in .shape img,
.split__media.reveal.in .photo-placeholder img{ transform:scale(1); }
/* Zéro promesse : entrée douce, sans zoom */
.zero-img.reveal img{ transform:none; }
.zero-nat .reveal{ transform:none; transition:opacity 1s var(--ease); }

/* liseré or de la forme : apparition douce */
.shape::after{ opacity:0; transition:opacity 1.1s var(--ease) .3s; }
.split__media.reveal.in .shape::after{ opacity:1; }

/* Brillance qui balaie les boutons au survol */
.btn{ position:relative; overflow:hidden; }
.btn > *{ position:relative; z-index:1; }
.btn::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(90deg,transparent, rgba(255,255,255,.28), transparent);
  transform:translateX(-130%) skewX(-18deg);
  transition:transform .75s var(--ease);
}
.btn:hover::before{ transform:translateX(130%) skewX(-18deg); }

/* Titres de section : le filet or se dessine en apparaissant */
.divider-gold{ transform-origin:left; }
.center .divider-gold{ transform-origin:center; }

@media(prefers-reduced-motion:reduce){
  .split__media.reveal .shape img,
  .split__media.reveal .photo-placeholder img,
  .zero-img.reveal img{ transform:none !important; }
  .shape::after{ opacity:1 !important; }
  .btn::before{ display:none; }
}

/* =========================================================================
   PAGE EXPÉRIENCE — héros compact, parcours, ambiance, FAQ
   ========================================================================= */
/* en-tête transparent aussi sur les pages à héros sombre */
body.dark-hero .site-header:not(.scrolled){background:linear-gradient(rgba(18,14,10,.55),rgba(18,14,10,.18) 60%,transparent);box-shadow:none;backdrop-filter:none}
body.dark-hero .site-header:not(.scrolled) .brand__name{color:#F7F1E8;text-shadow:0 1px 16px rgba(0,0,0,.4)}
body.dark-hero .site-header:not(.scrolled) .brand__name b{color:inherit}
body.dark-hero .site-header:not(.scrolled) .brand__sub{color:rgba(247,241,232,.94);text-shadow:0 1px 10px rgba(0,0,0,.5)}

body.dark-hero .site-header:not(.scrolled) .nav > a,
body.dark-hero .site-header:not(.scrolled) .nav ul.menu a{color:rgba(255,255,255,.92);text-shadow:0 1px 14px rgba(0,0,0,.45)}
body.dark-hero .site-header:not(.scrolled) .nav a.current,
body.dark-hero .site-header:not(.scrolled) .nav .current-menu-item > a,
body.dark-hero .site-header:not(.scrolled) .nav .current_page_item > a{color:#fff;text-shadow:0 1px 14px rgba(0,0,0,.5)}
body.dark-hero .site-header:not(.scrolled) .nav a::after{background:#F5E4BE;height:1.5px}
body.dark-hero .site-header:not(.scrolled) .nav-cta{border-color:#F0DCA8;color:#FBF4E6;background:rgba(255,255,255,.1);text-shadow:0 1px 10px rgba(0,0,0,.4)}
body.dark-hero .site-header:not(.scrolled) .nav-cta:hover{background:var(--gold-pale);color:var(--charcoal)}

body.dark-hero .site-header:not(.scrolled) .burger span{background:#F7F1E8}
@media(max-width:960px){
  body.dark-hero .site-header:not(.scrolled) .nav ul.menu a{color:var(--charcoal);text-shadow:none}
  body.dark-hero .site-header:not(.scrolled) .brand--mini .brand__name{color:var(--charcoal);text-shadow:none}
}

/* héros couverture compact (pages intérieures) */
.hero-couv--page{ height:auto; min-height:min(66vh,620px); }
.hero-couv--page .hero-couv__frame{ padding-top:130px; padding-bottom:clamp(56px,7vw,90px); }
.hero-couv--page .hero-couv__halo{ top:52%; }

/* LE PARCOURS — étapes reliées */
.parcours{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1.6rem,4vw,3.4rem); position:relative; margin-top:1rem; }
.parcours::before{ content:""; position:absolute; top:35px; left:16%; right:16%; height:1px; background:linear-gradient(90deg,transparent,var(--line-gold) 12%,var(--line-gold) 88%,transparent); }
.pc{ text-align:center; position:relative; }
.pc-node{ width:70px;height:70px;border-radius:50%;border:1px solid var(--line-gold);background:var(--cream-2);
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;position:relative;z-index:1;
  font-family:var(--font-display);font-style:normal;font-weight:500;font-size:1.8rem;
  color:transparent;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(180deg,var(--gold),var(--gold-deep));
  transition:transform .5s var(--ease),box-shadow .5s var(--ease); }
.pc:hover .pc-node{ transform:translateY(-4px); box-shadow:0 18px 40px -24px rgba(var(--gold-rgb),.7); }
.pc h3{ font-family:var(--font-serif);font-weight:500;font-size:1.55rem;margin-bottom:.7rem;color:var(--charcoal); }
.pc p{ font-size:.92rem;line-height:1.75;color:var(--ink-muted);max-width:34ch;margin:0 auto; }
@media(max-width:760px){ .parcours{ grid-template-columns:1fr;gap:2.4rem } .parcours::before{ display:none } }

/* liste à coches sur fond sombre */
.checklist{ display:flex;flex-direction:column;gap:1.15rem;margin-top:1.8rem; }
.checklist li{ list-style:none;display:flex;align-items:flex-start;gap:.9rem;color:rgba(255,255,255,.82);font-size:.96rem;line-height:1.5; }
.checklist .ck{ flex:0 0 auto;width:26px;height:26px;border-radius:50%;border:1px solid var(--gold-pale);color:var(--gold-pale);
  display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;margin-top:.1rem; }

/* FAQ accordéon */
.faq{ max-width:840px;margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line-gold); }
.faq-item:first-child{ border-top:1px solid var(--line-gold); }
.faq-item summary{ list-style:none;cursor:pointer;padding:1.5rem .2rem;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;
  font-family:var(--font-display);font-weight:500;font-size:clamp(1.2rem,2vw,1.5rem);color:var(--charcoal);transition:color .3s; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:hover{ color:var(--gold-deep); }
.faq-ico{ position:relative;width:20px;height:20px;flex:0 0 auto; }
.faq-ico::before,.faq-ico::after{ content:"";position:absolute;background:var(--gold-deep);transition:transform .35s var(--ease);top:50%;left:50%; }
.faq-ico::before{ width:16px;height:1.5px;transform:translate(-50%,-50%); }
.faq-ico::after{ width:1.5px;height:16px;transform:translate(-50%,-50%); }
.faq-item[open] .faq-ico::after{ transform:translate(-50%,-50%) scaleY(0); }
.faq-a{ padding:0 .2rem 1.6rem;color:var(--ink-muted);line-height:1.8;font-size:.98rem;max-width:70ch;
  animation:faqIn .4s var(--ease); }
@keyframes faqIn{ from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:none} }
.wrap--narrow{ max-width:960px; }

/* =========================================================================
   PAGE EXPÉRIENCE v2 — éditorial (distinct de l'accueil)
   ========================================================================= */
/* Héros typographique clair */
.exp-hero{ background:var(--cream); position:relative; overflow:hidden;
  padding:clamp(140px,17vh,210px) 0 clamp(56px,7vw,96px); }
.exp-hero__wm{ position:absolute; right:-2%; top:8%; font-family:var(--font-display); font-style:normal; font-weight:500;
  font-size:clamp(12rem,26vw,30rem); line-height:.8; color:rgba(var(--gold-rgb),.06); pointer-events:none; user-select:none; }
.exp-hero .wrap{ position:relative; z-index:1; }
.exp-hero__eyebrow{ font-family:var(--font-body); font-weight:500; font-size:.66rem; letter-spacing:.5em; text-transform:uppercase;
  color:var(--gold-deep); display:inline-flex; align-items:center; gap:1em; margin-bottom:1.6rem; }
.exp-hero__eyebrow::before{ content:""; width:46px; height:1px; background:var(--gold); }
.exp-hero__title{ font-family:var(--font-hero); font-weight:300; line-height:1.0; font-size:clamp(3rem,7vw,6rem);
  color:var(--charcoal); max-width:16ch; }
.exp-hero__title em{ font-style:normal; font-weight:400; color:var(--gold-deep); }
.exp-hero__lead{ margin-top:1.8rem; max-width:52ch; font-size:1.08rem; line-height:1.85; color:var(--ink-muted); }
.exp-hero__meta{ margin-top:2.4rem; display:flex; gap:2.4rem; flex-wrap:wrap; border-top:1px solid var(--line-gold); padding-top:1.6rem; max-width:640px; }
.exp-hero__meta div{ }
.exp-hero__meta .n{ font-family:var(--font-display); font-style:normal; font-weight:500; font-size:2rem; color:var(--gold-deep); line-height:1; }
.exp-hero__meta .t{ font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink); font-weight:500; margin-top:.4rem; }

/* Portrait éditorial à cadre décalé */
.profile{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(3rem,6vw,6rem); align-items:center; }
.profile-figure{ position:relative; max-width:440px; }
.profile-figure img{ display:block; width:100%; border-radius:3px; position:relative; z-index:1; }
.profile-figure::after{ content:""; position:absolute; z-index:0; right:-22px; bottom:-22px; width:78%; height:78%;
  border:1px solid var(--gold); pointer-events:none; }
.profile-figure .tag{ position:absolute; z-index:2; left:-1px; bottom:24px; background:var(--charcoal); color:#fff;
  font-family:var(--font-body); font-weight:500; font-size:.58rem; letter-spacing:.24em; text-transform:uppercase; padding:.8em 1.3em; }

/* Timeline verticale du parcours */
.timeline{ max-width:760px; margin:1rem auto 0; position:relative; }
.timeline::before{ content:""; position:absolute; left:34px; top:8px; bottom:8px; width:1px; background:linear-gradient(var(--line-gold),transparent); }
.tl-step{ position:relative; padding:0 0 2.6rem 6rem; }
.tl-step:last-child{ padding-bottom:0; }
.tl-node{ position:absolute; left:0; top:0; width:70px; height:70px; border-radius:50%; border:1px solid var(--line-gold);
  background:var(--cream); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-style:normal; font-weight:500; font-size:1.8rem;
  color:transparent; -webkit-background-clip:text; background-clip:text; background-image:linear-gradient(180deg,var(--gold),var(--gold-deep)); }
.tl-step h3{ font-family:var(--font-serif); font-weight:500; font-size:1.7rem; color:var(--charcoal); margin-bottom:.5rem; padding-top:.6rem; }
.tl-step p{ font-size:.98rem; line-height:1.8; color:var(--ink-muted); max-width:52ch; }
@media(max-width:600px){ .tl-step{ padding-left:5rem } .tl-node{ width:58px;height:58px;font-size:1.4rem } .timeline::before{ left:28px } }

/* Ambiance — citation éditoriale */
.ambiance{ background:var(--cream-2); text-align:center; position:relative; }
.ambiance .qmark{ font-family:var(--font-display); font-style:normal; font-size:6rem; line-height:.5; color:var(--line-gold); display:block; height:2.4rem; }
.ambiance .pull{ font-family:var(--font-display); font-weight:400; font-style:normal; font-size:clamp(1.8rem,3.6vw,2.9rem); line-height:1.25;
  color:var(--charcoal); max-width:22ch; margin:0 auto; }
.ambiance .pull b{ font-weight:500; color:var(--gold-deep); font-style:normal; }
.cocon-row{ display:flex; justify-content:center; gap:0; margin-top:3rem; border-top:1px solid var(--line-gold); border-bottom:1px solid var(--line-gold); }
.cocon-row .c{ flex:1; max-width:230px; padding:1.6rem 1.4rem; }
.cocon-row .c+.c{ border-left:1px solid var(--line-gold); }
.cocon-row .c h4{ font-family:var(--font-display); font-weight:500; font-size:1.3rem; color:var(--charcoal); }
.cocon-row .c span{ font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); font-weight:500; }
@media(max-width:600px){ .cocon-row{ flex-direction:column } .cocon-row .c{ max-width:none; border-left:0 } .cocon-row .c+.c{ border-top:1px solid var(--line-gold) } }
@media(max-width:860px){ .profile{ grid-template-columns:1fr; gap:3.5rem } .profile-figure{ margin:0 auto } }

/* =========================================================================
   PAGE EXPÉRIENCE v3 — page d'information calme (pas de héros)
   ========================================================================= */
.page-head{ background:var(--cream); padding:clamp(120px,15vh,168px) 0 clamp(30px,4vw,50px); border-bottom:1px solid var(--line-gold); }
.crumb{ font-family:var(--font-body); font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); font-weight:500; margin-bottom:1.1rem; }
.crumb a{ color:var(--ink); text-decoration:none; } .crumb a:hover{ color:var(--gold-deep); }
.crumb b{ color:var(--gold-deep); font-weight:500; }
.page-head h1{ font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem,5vw,4rem); line-height:1; color:var(--charcoal); }
.page-head__sub{ margin-top:1rem; max-width:60ch; font-size:1.06rem; line-height:1.75; color:var(--ink-muted); }

.wrap--read{ max-width:820px; }
.section--calm{ padding:clamp(46px,6vw,78px) 0; background:var(--cream); }
.block + .block{ margin-top:clamp(46px,6vw,76px); }
.block-title{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.55rem,3vw,2.05rem); color:var(--charcoal);
  margin-bottom:1.5rem; padding-bottom:.9rem; border-bottom:1px solid var(--line-gold); display:flex; align-items:center; gap:.85rem; }
.block-title::before{ content:""; width:22px; height:2px; background:var(--gold); display:inline-block; }

/* déroulé — étapes calmes */
.section--calm .steps{ display:block; }
.section--calm .step{ display:grid; grid-template-columns:auto 1fr; gap:1.7rem; padding:1.5rem 0; }
.step + .step{ border-top:1px solid var(--line-gold); }
.step-no{ font-family:var(--font-display); font-style:normal; font-weight:500; font-size:1.9rem; color:var(--gold-deep); line-height:1.1; }
.step h3{ font-family:var(--font-serif); font-weight:500; font-size:1.4rem; color:var(--charcoal); margin-bottom:.35rem; }
.step p{ font-size:.99rem; line-height:1.78; color:var(--ink-muted); margin:0; }

/* bon à savoir — grille de faits */
.facts{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line-gold); }
.fact{ padding:1.15rem .2rem; border-bottom:1px solid var(--line-gold); display:flex; flex-direction:column; gap:.3rem; margin:0; }
.fact:nth-child(odd){ padding-right:1.6rem; }
.fact:nth-child(even){ padding-left:1.6rem; border-left:1px solid var(--line-gold); }
.fact dt{ font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.fact dd{ font-family:var(--font-display); font-weight:500; font-size:1.2rem; color:var(--charcoal); margin:0; }
@media(max-width:600px){ .facts{ grid-template-columns:1fr } .fact:nth-child(even){ padding-left:.2rem; border-left:0 } .fact:nth-child(odd){ padding-right:.2rem } }

/* clôture discrète */
.calm-close{ margin-top:clamp(46px,6vw,76px); padding-top:2.2rem; border-top:1px solid var(--line-gold);
  display:flex; align-items:center; justify-content:space-between; gap:1.4rem; flex-wrap:wrap; }
.calm-close p{ font-family:var(--font-display); font-style:normal; font-size:1.45rem; color:var(--charcoal); margin:0; }

/* Expérience/À-propos — bloc Véronique + vision */
.about{ display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.6rem,5vw,5rem); align-items:center; }
.about-figure{ position:relative; max-width:420px; }
.about-figure img{ display:block; width:100%; border-radius:3px; position:relative; z-index:1; }
.about-figure::after{ content:""; position:absolute; z-index:0; right:-20px; bottom:-20px; width:80%; height:80%; border:1px solid var(--gold); }
.about-figure .tag{ position:absolute; z-index:2; left:-1px; bottom:26px; background:var(--charcoal); color:#fff;
  font-family:var(--font-body); font-weight:500; font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; padding:.8em 1.3em; }
.about .eyebrow{ margin-bottom:1rem; }
.about h2{ font-family:var(--font-serif); font-weight:400; font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.05; color:var(--charcoal); }
.about .bio{ margin-top:1.4rem; font-size:1.02rem; line-height:1.85; color:var(--ink-muted); }
.about .sig{ margin-top:1.2rem; font-family:var(--font-display); font-style:normal; font-size:1.35rem; color:var(--gold-deep); line-height:1.35; }
@media(max-width:860px){ .about{ grid-template-columns:1fr; gap:3rem } .about-figure{ margin:0 auto } }

/* Ma vision — bande claire */
.vision{ background:var(--cream-2); }
.vision .lead{ font-size:1.1rem; line-height:1.9; color:var(--ink); }
.vision .lead b{ color:var(--gold-deep); font-weight:500; }
.todo-note{ margin-top:1.4rem; font-size:.82rem; color:var(--ink); border:1px dashed var(--line-gold); border-radius:6px; padding:.9rem 1.1rem; background:rgba(255,255,255,.4); }
.todo-note b{ color:var(--gold-deep); letter-spacing:.04em; }

/* =========================================================================
   RENCONTRE — page Véronique premium (cinématique, comme l'accueil)
   ========================================================================= */
.rh{ background:var(--charcoal); color:#fff; position:relative; overflow:hidden;
  padding:clamp(150px,18vh,210px) 0 clamp(72px,9vw,120px); }
.rh__grain{ position:absolute; inset:0; z-index:1; opacity:.28; mix-blend-mode:soft-light; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.rh .wrap{ position:relative; z-index:2; }
.rh-grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(3rem,6vw,6rem); align-items:center; }
.rh-figure{ position:relative; max-width:380px; justify-self:center; }
.rh-figure__ph{ position:relative; aspect-ratio:4/5; border-radius:48% 48% 12px 12px / 34% 34% 2% 2%; overflow:hidden; z-index:2;
  box-shadow:0 50px 90px -50px rgba(0,0,0,.8); }
.rh-figure__ph img{ width:100%; height:100%; object-fit:cover; object-position:50% 20%;
  transform:scale(1.16); transition:transform 1.6s var(--ease); }
.rh-figure.in .rh-figure__ph img{ transform:scale(1); }
.rh-figure__ph::after{ content:""; position:absolute; inset:0; border-radius:inherit; border:1px solid rgba(232,212,169,.5); }
.rh-figure__halo{ position:absolute; inset:-16% -16% -10% -16%; border-radius:50%; border:1px solid rgba(232,212,169,.4);
  z-index:1; animation:spin 80s linear infinite; }
.rh-figure__halo::after{ content:""; position:absolute; top:-3px; left:50%; width:6px; height:6px; border-radius:50%;
  background:var(--gold-pale); box-shadow:0 0 14px 3px rgba(232,212,169,.8); }
.rh-figure__glow{ position:absolute; inset:-30%; border-radius:50%; z-index:0;
  background:radial-gradient(circle,rgba(232,212,169,.16),transparent 62%); filter:blur(8px); animation:breathe 8s var(--ease) infinite; }

.rh-eyebrow{ font-family:var(--font-body); font-weight:500; font-size:.64rem; letter-spacing:.42em; text-transform:uppercase;
  color:var(--gold-pale); display:inline-flex; align-items:center; gap:.9em; margin-bottom:1.5rem;
  opacity:0; animation:hcUp 1s var(--ease) .3s forwards; }
.rh-eyebrow::before{ content:""; width:44px; height:1px; background:var(--gold); }
.rh-name{ font-family:var(--font-hero); font-weight:400; line-height:1.06; font-size:clamp(3.2rem,6.5vw,5.6rem); color:#F7F1E8;
  text-shadow:0 2px 30px rgba(0,0,0,.4); }
.rh-name .line{ display:block; overflow:hidden; }
.rh-name .line span{ display:block; opacity:0; transform:translateY(105%); animation:hcRise 1.1s var(--ease) forwards; }
.rh-name .line:nth-child(1) span{ animation-delay:.5s; }
.rh-name .line:nth-child(2) span{ animation-delay:.68s; }
.rh-name em{ font-style:normal; font-weight:400;
  background:linear-gradient(100deg,#D8BC85 20%,#F1DCA8 42%,#D8BC85 60%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 7s linear 2s infinite; }
.rh-role{ font-family:var(--font-body); font-weight:500; font-size:.66rem; letter-spacing:.28em; text-transform:uppercase;
  color:rgba(255,255,255,.66); margin-top:1.2rem; opacity:0; animation:hcUp 1s var(--ease) .9s forwards; }
.rh-rule{ width:0; height:1px; background:var(--gold); margin:1.8rem 0; animation:hcDraw 1s var(--ease) 1.1s forwards; }
.rh-quote{ font-family:var(--font-display); font-style:normal; font-weight:400; font-size:clamp(1.4rem,2.4vw,1.9rem);
  line-height:1.4; color:var(--gold-pale); max-width:30ch; opacity:0; animation:hcUp 1s var(--ease) 1.3s forwards; }
@media(max-width:820px){ .rh-grid{ grid-template-columns:1fr; gap:3.5rem; text-align:center } .rh-eyebrow,.rh-quote{ justify-content:center; margin-inline:auto } .rh-figure{ order:-1 } }

/* bande vision (claire) */
.rv{ background:var(--cream); position:relative; overflow:hidden; }
.rv .wrap--read .eyebrow{ margin-bottom:1rem; }
.rv h2{ font-family:var(--font-serif); font-weight:400; font-size:clamp(2rem,3.6vw,2.9rem); line-height:1.05; color:var(--charcoal); }
.rv .bio{ margin-top:1.4rem; font-size:1.12rem; line-height:1.95; color:var(--ink); max-width:60ch; }
.rv .bio b{ color:var(--gold-deep); font-weight:500; }
.rv__ring{ position:absolute; right:-120px; top:50%; translate:0 -50%; width:360px; height:360px; border-radius:50%;
  border:1px solid var(--line-gold); opacity:.6; pointer-events:none; }
.rv__ring::after{ content:""; position:absolute; inset:34px; border-radius:50%; border:1px solid rgba(var(--gold-rgb),.2); }

/* philosophie + note (cream-2) */
.rphi{ background:var(--cream-2); }
.rphi .lead{ font-size:1.15rem; line-height:1.95; color:var(--ink); max-width:60ch; }
.rphi .lead b{ color:var(--gold-deep); font-weight:500; }
.rphi .note{ margin-top:2rem; max-width:62ch; position:relative; background:#fff; border:1px solid var(--line-gold);
  border-radius:12px; padding:1.6rem 1.7rem 1.6rem 3.6rem; font-size:.98rem; line-height:1.75; color:var(--charcoal);
  box-shadow:0 30px 60px -46px rgba(var(--ink-rgb),.5); }
.rphi .note::before{ content:"✎"; position:absolute; left:1.4rem; top:1.5rem; color:var(--gold-deep); font-size:1.3rem; }

/* Rendez-vous — réassurance + carte formulaire */
.rv-reassure{ display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-top:clamp(2.4rem,4vw,3.4rem);
  border-top:1px solid var(--line-gold); padding-top:2.2rem; }
.rv-reassure .ra{ display:flex; gap:1rem; align-items:flex-start; }
.rv-reassure .ra-ico{ flex:0 0 auto; width:38px; height:38px; border-radius:50%; border:1px solid var(--line-gold);
  display:inline-flex; align-items:center; justify-content:center; color:var(--gold-deep); }
.rv-reassure .ra-ico svg{ width:18px; height:18px; }
.rv-reassure h3, .rv-reassure h4{ font-family:var(--font-display); font-weight:500; font-size:1.15rem; color:var(--charcoal); margin-bottom:.2rem; }
.rv-reassure p{ font-size:.88rem; line-height:1.6; color:var(--ink-muted); }
@media(max-width:820px){ .rv-reassure{ grid-template-columns:1fr; gap:1.6rem } }
.contact-form-card{ background:#fff; border:1px solid var(--line-gold); border-radius:12px; padding:clamp(1.6rem,3vw,2.4rem);
  box-shadow:0 30px 60px -50px rgba(var(--ink-rgb),.4); }
.contact-form-card .block-title{ margin-bottom:1.4rem; }

/* =========================================================================
   RENDEZ-VOUS — premium
   ========================================================================= */
.rvh{ background:var(--cream); position:relative; overflow:hidden; text-align:center;
  padding:clamp(112px,12vh,140px) 0 clamp(40px,5vw,64px); }
.rvh__ring{ position:absolute; left:50%; top:44%; translate:-50% -50%; width:min(60vw,560px); aspect-ratio:1; z-index:0; pointer-events:none; }
.rvh__ring .r1{ position:absolute; inset:0; border-radius:50%; border:1px solid var(--line-gold); animation:spin 80s linear infinite; }
.rvh__ring .r1::after{ content:""; position:absolute; top:-3px; left:50%; width:6px; height:6px; border-radius:50%; background:var(--gold); box-shadow:0 0 12px 3px rgba(var(--gold-rgb),.6); }
.rvh__ring .r2{ position:absolute; inset:8%; border-radius:50%; border:1px solid rgba(var(--gold-rgb),.22); }
.rvh .wrap{ position:relative; z-index:1; }
.rvh .eyebrow{ justify-content:center; display:inline-flex; margin-bottom:1.4rem; }
.rvh .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.rvh h1{ font-family:var(--font-display); font-weight:300; font-size:clamp(2.8rem,6vw,5rem); line-height:1; color:var(--charcoal); }
.rvh h1 em{ font-style:normal; font-weight:400;
  background:linear-gradient(100deg,var(--gold-deep) 20%,#E3C883 44%,var(--gold-deep) 62%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 7s linear 2s infinite; }
.rvh .lead{ max-width:52ch; margin:1.4rem auto 0; font-size:1.06rem; line-height:1.75; color:var(--ink-muted); }

.rv-cal-sec{ background:var(--cream); padding:0 0 clamp(56px,7vw,90px); }
.rv-cal-frame{ max-width:1040px; margin:0 auto; background:#fff; border:1px solid var(--line-gold); border-radius:16px;
  padding:clamp(.8rem,1.6vw,1.4rem); box-shadow:0 50px 100px -60px rgba(var(--ink-rgb),.55); position:relative; }

.rv-cal-frame .calendly-card{ box-shadow:none; border:0; background:transparent; }

/* contact — bande sombre premium */
/* ── Calendrier « jours d'ouverture » (lecture seule, remplace la réservation en ligne) ── */
.avail-cal{ max-width:460px; margin:0 auto; padding:clamp(.5rem,2vw,1.25rem) 0; }
.avail-cal__head{ display:flex; align-items:center; justify-content:center; gap:1.3rem; margin-bottom:1.1rem; }
.avail-cal__title{ font-family:var(--font-display); font-weight:500; font-size:1.4rem; letter-spacing:.03em; color:var(--charcoal); text-transform:capitalize; min-width:9.5ch; text-align:center; margin:0; }
.avail-cal__nav{ width:34px; height:34px; flex:0 0 34px; border-radius:50%; border:1px solid var(--line-gold); background:transparent; color:var(--gold-deep); font-size:1.15rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease); }
.avail-cal__nav:hover{ background:var(--gold); color:#fff; border-color:var(--gold); }
.avail-cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:.35rem; }
.ac-dow{ text-align:center; font-family:var(--font-body); font-weight:600; font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; color:var(--taupe-deep); padding-bottom:.5rem; }
.ac-day{ position:relative; min-height:clamp(38px,8vw,50px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border-radius:8px; font-family:var(--font-body); font-size:.9rem; }
.ac-day--pad{ visibility:hidden; }
.ac-day--open{ background:rgba(var(--gold-rgb),.10); color:var(--charcoal); }
.ac-day--closed{ color:var(--taupe-deep); opacity:.45; }
.ac-day--past{ opacity:.3; }
.ac-day--today{ box-shadow:inset 0 0 0 1.5px var(--gold); }
.ac-dot{ width:5px; height:5px; border-radius:50%; background:var(--gold-deep); }
.avail-cal__legend{ display:flex; justify-content:center; gap:1.6rem; margin-top:1.2rem; font-family:var(--font-body); font-size:.68rem; letter-spacing:.05em; color:var(--taupe-deep); }
.lg{ display:inline-flex; align-items:center; gap:.45rem; }
.lg--open::before,.lg--closed::before{ content:""; width:8px; height:8px; border-radius:50%; }
.lg--open::before{ background:var(--gold-deep); }
.lg--closed::before{ background:rgba(156,138,130,.4); }

/* ── Contact : coordonnées | horaires côte à côte + carte satellite dessous ── */
.rv-contact .reveal--down{ display:flex; flex-direction:column; }
.rv-contact .rv-info{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.2rem,3vw,2.2rem); align-items:start; }
.rv-contact .rv-info .hours{ border-left:1px solid var(--line-gold); padding-left:clamp(1.1rem,2.5vw,1.9rem); margin-top:0; }
.rv-contact .rv-info .hours .eyebrow{ display:flex; justify-content:center; }
.rv-map{ flex:1 1 auto; margin-top:clamp(1.6rem,3vw,2.4rem); border:1px solid var(--line-gold); border-radius:8px; overflow:hidden; box-shadow:0 14px 44px rgba(0,0,0,.34); min-height:240px; }
.rv-map iframe{ display:block; width:100%; height:100%; min-height:240px; border:0; }
@media(max-width:820px){ .rv-contact .reveal--down{ display:block; } .rv-map{ min-height:280px; } .rv-map iframe{ height:280px; } }
@media(max-width:720px){
  .rv-contact .rv-info{ grid-template-columns:1fr; }
  .rv-contact .rv-info .hours{ border-left:0; padding-left:0; border-top:1px solid var(--line-gold); padding-top:1.2rem; margin-top:.4rem; }
}

.rv-contact{ background:var(--charcoal); color:#fff; position:relative; overflow:hidden; scroll-margin-top:-75px; }
.ve-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.form-note{ font-family:var(--font-body); font-size:.86rem; line-height:1.5; border-radius:4px; padding:.85em 1.1em; margin:0 0 1.1rem; border:1px solid transparent; }
.form-note--ok{ background:rgba(var(--gold-rgb),.14); border-color:rgba(var(--gold-rgb),.55); color:#F3E4C4; }
.form-note--err{ background:rgba(196,86,72,.14); border-color:rgba(196,86,72,.55); color:#F1C9C2; }
.rv-contact__grain{ position:absolute; inset:0; opacity:.26; mix-blend-mode:soft-light; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.rv-contact .wrap{ position:relative; z-index:2; }
.rv-contact .cg{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.6rem,5vw,5rem); align-items:stretch; }
.rv-contact .eyebrow{ color:var(--gold-pale); }
.rv-contact h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.9rem,3.4vw,2.7rem); color:#F7F1E8; margin:.4rem 0 1.8rem; }
.rv-contact .clist{ list-style:none; display:flex; flex-direction:column; gap:1.4rem; }
.rv-contact .clist li{ display:flex; gap:1rem; align-items:flex-start; }
.rv-contact .clist .ico{ flex:0 0 auto; width:40px; height:40px; border-radius:50%; border:1px solid rgba(232,212,169,.45); color:var(--gold-pale); display:inline-flex; align-items:center; justify-content:center; }
.rv-contact .clist .k{ display:block; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-pale); font-weight:600; margin-bottom:.2rem; }
.rv-contact .clist .v{ color:rgba(255,255,255,.88); font-size:1.02rem; line-height:1.5; }
.rv-contact .clist .v a{ color:rgba(255,255,255,.88); text-decoration:none; }
.rv-contact .clist .v a:hover{ color:var(--gold-pale); }
.rv-contact .hours{ margin-top:1.8rem; }
.rv-contact .hours .row{ display:flex; justify-content:space-between; padding:.7rem 0; border-top:1px solid rgba(232,212,169,.18); font-size:.92rem; color:rgba(255,255,255,.78); }
.rv-contact .note{ margin-top:1.6rem; background:rgba(255,255,255,.05); border:1px dashed rgba(232,212,169,.4); border-radius:10px; padding:1rem 1.2rem; font-size:.86rem; line-height:1.6; color:rgba(255,255,255,.7); }
.rv-contact .form-card{ background:var(--cream); border-radius:14px; padding:clamp(1.6rem,3vw,2.4rem); box-shadow:0 40px 80px -50px rgba(0,0,0,.6); }
.rv-contact .form-card .block-title{ color:var(--charcoal); margin-bottom:1.4rem; }
@media(max-width:820px){ .rv-contact .cg{ grid-template-columns:1fr } }

/* Rendez-vous — polish premium (glow, cadres, bannière photo) */
.rvh__ring .glow{ position:absolute; inset:6%; border-radius:50%;
  background:radial-gradient(circle,rgba(232,212,169,.22),transparent 66%); filter:blur(8px); animation:breathe 8s var(--ease) infinite; }
/* coins dorés animés autour du calendrier */
.rv-cal-frame .corner{ position:absolute; width:24px; height:24px; z-index:3; opacity:0; animation:cornerIn .8s var(--ease) forwards; }
.rv-cal-frame .corner::before,.rv-cal-frame .corner::after{ content:""; position:absolute; background:var(--gold); }
.rv-cal-frame .corner::before{ width:100%; height:1px; } .rv-cal-frame .corner::after{ width:1px; height:100%; }
.rv-cal-frame .corner.tl{ top:12px; left:12px; animation-delay:.2s } .rv-cal-frame .corner.tl::before{top:0;left:0}.rv-cal-frame .corner.tl::after{top:0;left:0}
.rv-cal-frame .corner.tr{ top:12px; right:12px; animation-delay:.3s } .rv-cal-frame .corner.tr::before{top:0;right:0}.rv-cal-frame .corner.tr::after{top:0;right:0}
.rv-cal-frame .corner.bl{ bottom:12px; left:12px; animation-delay:.4s } .rv-cal-frame .corner.bl::before{bottom:0;left:0}.rv-cal-frame .corner.bl::after{bottom:0;left:0}
.rv-cal-frame .corner.br{ bottom:12px; right:12px; animation-delay:.5s } .rv-cal-frame .corner.br::before{bottom:0;right:0}.rv-cal-frame .corner.br::after{bottom:0;right:0}
@keyframes cornerIn{ from{opacity:0;transform:scale(.6)} to{opacity:1;transform:scale(1)} }

/* bannière photo en tête du contact */
.rv-contact__banner{ position:relative; height:clamp(240px,34vh,380px); overflow:hidden; }
.rv-contact__banner img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 26%;
  animation:hcSettle 16s var(--ease) both; }
.rv-contact__banner .veil{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(var(--ink-rgb),.45),rgba(var(--ink-rgb),.7) 60%,var(--charcoal)); }
.rv-contact__banner-in{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.rv-contact__banner-in .eyebrow{ color:var(--gold-pale); justify-content:center; }
.rv-contact__banner-in .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.rv-contact__banner-in h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4vw,3.2rem); color:#F7F1E8; margin-top:.6rem; text-shadow:0 2px 24px rgba(0,0,0,.5); }
.rv-contact__body{ padding:0 0 clamp(56px,7vw,90px); }

/* cal.com : masquer le loader une fois prêt */
.calendly-card.cal-ready .calendly-loading{ display:none; }
#my-cal-inline-rendez-vous{ border-radius:10px; overflow:hidden; }

/* Rendez-vous : lisibilité des horaires sur fond sombre */
.rv-contact .hours .row{ border-top:1px solid rgba(232,212,169,.28); }
.rv-contact .hours .row span:first-child{ color:#F7F1E8; font-weight:500; }
.rv-contact .hours .row span:last-child{ color:var(--gold-pale); }

/* cal.com : ajustement d'affichage (remplir le cadre, retirer le vide) */
.rv-cal-frame{ padding:clamp(1.4rem,2.4vw,2.2rem); }

#my-cal-inline-rendez-vous iframe{ width:100% !important; }
/* la carte interne cal.com est centrée et n'a plus le fond blanc plein écran */
.calendly-card{ background:transparent; }

/* cal.com : hauteur réservée seulement pendant le chargement, sinon auto */
.calendly-card{ position:relative; }
.calendly-card:not(.cal-ready){ min-height:600px; }
.calendly-card.cal-ready{ min-height:0; }
#my-cal-inline-rendez-vous{ width:100%; }
#my-cal-inline-rendez-vous iframe{ width:100% !important; display:block; }
.rv-cal-frame{ padding:clamp(1rem,2vw,1.6rem); }

/* cal.com : masquer la marque + rendu premium */
/* frame width: assez large pour afficher les créneaux à droite */
.rv-cal-frame{ max-width:1000px; }                 /* colle au calendrier, moins de vide latéral */
.cal-clip{ overflow:hidden; border-radius:12px; }
.cal-clip #my-cal-inline-rendez-vous{ margin-bottom:-52px; }   /* rogne le bandeau « Cal.com » */
.rv-cal-foot{ display:flex; align-items:center; justify-content:center; gap:.7rem; margin-top:.4rem;
  padding-top:1.1rem; border-top:1px solid var(--line-gold);
  font-family:var(--font-body); font-weight:500; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); }
.rv-cal-foot .lock{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border-radius:50%; border:1px solid var(--line-gold); color:var(--gold-deep); }

/* =========================================================================
   RENDEZ-VOUS — animations & micro-interactions premium
   ========================================================================= */
/* entrée du héros */
.rvh .eyebrow{ opacity:0; animation:hcUp 1s var(--ease) .2s forwards; }
.rvh h1{ opacity:0; animation:hcUp 1.1s var(--ease) .35s forwards; }
.rvh .lead{ opacity:0; animation:hcUp 1s var(--ease) .6s forwards; }

/* réassurance : survol (icône se remplit, la carte se soulève) */
.rv-reassure .ra{ transition:transform .45s var(--ease); }
.rv-reassure .ra:hover{ transform:translateY(-5px); }
.rv-reassure .ra-ico{ transition:background .4s var(--ease), color .4s, border-color .4s, transform .4s; }
.rv-reassure .ra:hover .ra-ico{ background:var(--gold); color:#fff; border-color:var(--gold); transform:rotate(-6deg) scale(1.06); }

/* coordonnées : survol (icône dorée, léger décalage) */
.rv-contact .clist li{ transition:transform .4s var(--ease); }
.rv-contact .clist li:hover{ transform:translateX(5px); }
.rv-contact .clist .ico{ transition:background .4s var(--ease), color .4s, border-color .4s; }
.rv-contact .clist li:hover .ico{ background:var(--gold-pale); color:var(--charcoal); border-color:var(--gold-pale); }

/* champs du formulaire : focus doré */
.form .field input:focus, .form .field textarea:focus, .form .field select:focus{
  border-color:var(--gold); box-shadow:0 0 0 3px rgba(var(--gold-rgb),.16); outline:none;
}
.form .field input, .form .field textarea, .form .field select{ transition:border-color .3s, box-shadow .3s; }

/* horaires : la ligne s'éclaire au survol */
.rv-contact .hours .row{ transition:padding-left .35s var(--ease); }
.rv-contact .hours .row:hover{ padding-left:.5rem; }
.rv-contact .hours .row:hover span:last-child{ color:#fff; }

/* petite lueur dorée qui pulse sur le cadenas du calendrier */
.rv-cal-foot .lock{ animation:breathe 6s var(--ease) infinite; }

@media(prefers-reduced-motion:reduce){
  .rvh .eyebrow,.rvh h1,.rvh .lead{ opacity:1 !important; animation:none !important; }
  .rv-cal-foot .lock{ animation:none; }
}

/* Contact — en-tête ornement (remplace la bannière photo) */
.rv-contact__ornhead{ position:relative; z-index:2; text-align:center;
  padding:72px clamp(28px,5vw,80px) clamp(40px,5vw,60px); }
.rv-contact__ornhead .eyebrow{ color:var(--gold-pale); justify-content:center; display:inline-flex; margin-bottom:.7rem;
  opacity:0; animation:hcUp 1s var(--ease) .15s forwards; }
.rv-contact__ornhead .eyebrow::before,.rv-contact__ornhead .eyebrow::after{ content:""; width:34px; height:1px; background:var(--gold); }
.rv-contact__ornhead h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4vw,3.2rem);
  color:#F7F1E8; text-shadow:0 2px 24px rgba(0,0,0,.4); margin:0; opacity:0; animation:hcUp 1s var(--ease) .3s forwards; }
.rv-contact__ornhead .orn{ display:flex; align-items:center; justify-content:center; gap:.9rem;
  width:min(760px,90vw); margin-inline:auto; color:var(--gold-pale); opacity:0; animation:hcUp 1s var(--ease) forwards; }
.rv-contact__ornhead .orn.top{ margin-bottom:1.1rem; animation-delay:.05s; }
.rv-contact__ornhead .orn.bot{ margin-top:1.1rem; animation-delay:.45s; }
.rv-contact__ornhead .orn .ln{ flex:1; height:1px; }
.rv-contact__ornhead .orn .ln.l{ background:linear-gradient(90deg,transparent,var(--gold-pale)); }
.rv-contact__ornhead .orn .ln.r{ background:linear-gradient(90deg,var(--gold-pale),transparent); }
.rv-contact__ornhead .orn .knot{ flex:0 0 auto; width:40px; height:16px; }

/* Rendez-vous : héros sans anneau — simple lueur dorée */
.rvh__aura{ position:absolute; left:50%; top:44%; translate:-50% -50%; width:min(70vw,720px); height:min(46vw,440px);
  border-radius:50%; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse, rgba(var(--gold-rgb),.14), transparent 66%); filter:blur(6px); }

/* =========================================================================
   PAGE SERVICES & FORFAITS — menu premium + marquage « provisoire »
   ========================================================================= */
.svc-head{ background:var(--cream); text-align:center; padding:clamp(124px,14vh,140px) 0 clamp(24px,3vw,40px); position:relative; overflow:hidden; }
.svc-head .eyebrow{ justify-content:center; display:inline-flex; margin-bottom:1.2rem; }
.svc-head .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.svc-head h1{ font-family:var(--font-display); font-weight:300; font-size:clamp(2.7rem,5.2vw,4.4rem); line-height:1; color:var(--charcoal); }
.svc-head h1 em{ font-style:normal; font-weight:400;
  background:linear-gradient(100deg,var(--gold-deep) 20%,#E3C883 44%,var(--gold-deep) 62%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 7s linear 2s infinite; }
.svc-head .lead{ max-width:56ch; margin:1.4rem auto 0; font-size:1.05rem; line-height:1.75; color:var(--ink-muted); }

/* bannière provisoire */
.ph-banner{ max-width:900px; margin:0 auto; background:rgba(var(--gold-rgb),.08); border:1px dashed var(--gold);
  border-radius:12px; padding:1.1rem 1.4rem 1.1rem 3.4rem; position:relative; font-size:.92rem; line-height:1.6; color:var(--charcoal); }
.ph-banner::before{ content:"✎"; position:absolute; left:1.3rem; top:1.05rem; color:var(--gold-deep); font-size:1.3rem; }
.ph-banner b{ color:var(--gold-deep); }

/* valeurs marquées comme provisoires (prix, durées) */
.ph{ position:relative; color:var(--gold-deep); border-bottom:1px dashed rgba(var(--gold-rgb),.7); padding-bottom:1px; }

/* menu de soins */
.menu-sec{ padding:clamp(48px,6vw,80px) 0; }
.menu-sec:nth-of-type(even){ background:var(--cream-2); }
.menu-sec__head{ text-align:center; margin-bottom:2.8rem; }
.menu-sec__head .eyebrow{ justify-content:center; display:inline-flex; }
.menu-sec__head .eyebrow::after{ content:""; width:34px; height:1px; background:var(--gold); }
.menu-sec__head h2{ font-family:var(--font-serif); font-weight:400; font-size:clamp(1.9rem,3.6vw,2.8rem); color:var(--charcoal); margin-top:.5rem; }
.menu-list{ max-width:860px; margin:0 auto; }
.menu-list .menu-item{ display:grid; grid-template-columns:1fr auto; gap:.4rem 2rem; align-items:baseline;
  padding:1.5rem 0; border-top:1px solid var(--line-gold); }
.menu-list .menu-item:last-child{ border-bottom:1px solid var(--line-gold); }
.menu-item__tag{ grid-column:1/2; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.menu-item__name{ grid-column:1/2; font-family:var(--font-display); font-weight:500; font-size:1.5rem; color:var(--charcoal); line-height:1.2; }
.menu-item__desc{ grid-column:1/2; font-size:.94rem; line-height:1.65; color:var(--ink-muted); max-width:52ch; margin-top:.35rem; }
.menu-item__meta{ grid-column:2/3; grid-row:1/4; text-align:right; white-space:nowrap; align-self:center; }
.menu-item__price{ font-family:var(--font-display); font-weight:500; font-size:1.7rem; line-height:1; }
.menu-item__dur{ display:block; font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-top:.4rem; }
@media(max-width:560px){ .menu-item__meta{ text-align:left; grid-column:1/2; grid-row:auto; margin-top:.6rem } }

/* forfaits */
.forfaits-sec{ padding:clamp(48px,6vw,80px) 0; }
.forfaits{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; max-width:1080px; margin:2.4rem auto 0; }
.forfait{ background:#fff; border:1px solid var(--line-gold); border-radius:14px; padding:2rem 1.8rem; display:flex; flex-direction:column; position:relative; }
.forfait--feature{ background:var(--charcoal); color:#fff; border-color:transparent; box-shadow:0 40px 80px -50px rgba(var(--ink-rgb),.6); }
.forfait--feature .forfait__name,.forfait--feature .forfait__price{ color:#F7F1E8; }
.forfait--feature .forfait__desc,.forfait--feature .forfait__li{ color:rgba(255,255,255,.8); }
.forfait__badge{ position:absolute; top:1rem; right:1rem; background:var(--gold); color:#fff; font-size:.54rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600; padding:.5em 1em; border-radius:99px; }
.forfait__name{ font-family:var(--font-display); font-weight:500; font-size:1.5rem; color:var(--charcoal); }
.forfait__price{ font-family:var(--font-display); font-weight:500; font-size:1.3rem; color:var(--gold-deep); margin:.3rem 0 1rem; }
.forfait__desc{ font-size:.92rem; line-height:1.7; color:var(--ink-muted); }
.forfait__list{ list-style:none; margin:1.2rem 0 1.6rem; display:flex; flex-direction:column; gap:.7rem; }
.forfait__li{ display:flex; align-items:flex-start; gap:.6rem; font-size:.9rem; color:var(--ink); }
.forfait__li .ck{ flex:0 0 auto; width:20px; height:20px; border-radius:50%; border:1px solid var(--gold); color:var(--gold-deep); display:inline-flex; align-items:center; justify-content:center; font-size:.6rem; }
.forfait--feature .forfait__li .ck{ border-color:var(--gold-pale); color:var(--gold-pale); }
.forfait .btn{ margin-top:auto; }
@media(max-width:820px){ .forfaits{ grid-template-columns:1fr; max-width:440px } }

/* vidéo dans le cadre technologie (même rendu que les photos de forme) */
.media-frame .tech-video{ width:100%; height:100%; object-fit:cover; object-position:50% 45%; display:block; }
.shape .tech-video{ position:absolute; inset:0; }

/* =========================================================================
   RÉSULTATS — onglet Avant / Après (résultats officiels LPG)
   ========================================================================= */
.results-ba{ background:var(--cream-2); }
.results-ba .center{ margin-bottom:1rem; }
.ba-tabs{ display:flex; justify-content:center; gap:.6rem; margin:2rem 0 2.6rem; }
.ba-tab{ font-family:var(--font-body); font-weight:500; font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--ink); background:none; border:1px solid var(--line-gold); border-radius:99px; padding:.75em 2em; cursor:pointer;
  transition:background .3s var(--ease), color .3s, border-color .3s; }
.ba-tab.is-active{ background:var(--charcoal); color:#fff; border-color:var(--charcoal); }
.ba-tab:hover:not(.is-active){ border-color:var(--gold); color:var(--gold-deep); }
.ba-panel{ display:none; }
.ba-panel.is-active{ display:block; animation:faqIn .45s var(--ease); }
.ba-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; max-width:940px; margin:0 auto; }
.ba-grid figure{ margin:0; border:1px solid var(--line-gold); border-radius:12px; overflow:hidden; background:#fff;
  box-shadow:0 30px 60px -52px rgba(var(--ink-rgb),.45); transition:transform .5s var(--ease); }
.ba-grid figure:hover{ transform:translateY(-4px); }
.ba-grid img{ width:100%; display:block; }
.ba-note{ text-align:center; font-size:.72rem; line-height:1.6; color:var(--ink); margin-top:2.2rem; max-width:64ch; margin-inline:auto; }
@media(max-width:640px){ .ba-grid{ grid-template-columns:1fr } }

/* photo de soin en tête de section services */
.svc-photo{ max-width:860px; margin:0 auto 2.6rem; border-radius:14px; overflow:hidden;
  border:1px solid var(--line-gold); box-shadow:0 40px 80px -55px rgba(var(--ink-rgb),.45); }
.svc-photo img{ width:100%; display:block; aspect-ratio:16/7; object-fit:cover; object-position:50% 40%; }

/* =========================================================================
   PAGE AVANT / APRÈS — premium (héros lueur + galerie sombre)
   ========================================================================= */
.ba-hero{ background:var(--cream); text-align:center; position:relative; overflow:hidden;
  padding:clamp(124px,14vh,140px) 0 clamp(12px,1.8vw,18px); }
.ba-hero__glow{ position:absolute; left:50%; top:46%; translate:-50% -50%; width:min(70vw,720px); height:min(42vw,420px);
  border-radius:50%; background:radial-gradient(ellipse,rgba(var(--gold-rgb),.16),transparent 66%); filter:blur(8px); }
.ba-hero .crumb{ position:relative; z-index:1; font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink); font-weight:500; margin-bottom:1.1rem; }
.ba-hero .crumb b{ color:var(--gold-deep); }
.ba-hero .eyebrow{ position:relative; z-index:1; justify-content:center; display:inline-flex; margin-bottom:.8rem; font-size:.72rem; letter-spacing:.34em; }
.ba-hero .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.ba-hero h1{ position:relative; z-index:1; font-family:var(--font-display); font-weight:300; font-size:clamp(2.7rem,5.2vw,4.4rem); line-height:1; color:var(--charcoal); }
.ba-hero h1 em{ font-style:normal; font-weight:400;
  background:linear-gradient(100deg,var(--gold-deep) 20%,#E3C883 44%,var(--gold-deep) 62%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 7s linear 2s infinite; }
.ba-hero .lead{ position:relative; z-index:1; max-width:52ch; margin:.7rem auto 0; font-size:.86rem; line-height:1.55; color:var(--ink-muted); }

.ba-gallery{ background:var(--charcoal); color:#fff; position:relative; overflow:hidden; padding:clamp(20px,3vw,34px) 0 clamp(48px,6vw,80px); }
.ba-gallery__grain{ position:absolute; inset:0; opacity:.22; mix-blend-mode:soft-light; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ba-gallery__ring{ position:absolute; right:-160px; top:-120px; width:460px; height:460px; border-radius:50%; border:1px solid rgba(232,212,169,.14); pointer-events:none; }
.ba-gallery__ring::after{ content:""; position:absolute; inset:40px; border-radius:50%; border:1px solid rgba(232,212,169,.08); }
.ba-gallery .wrap{ position:relative; z-index:2; }
/* onglets premium sur fond sombre */
.ba-gallery .ba-tabs{ margin:0 0 2.8rem; }
.ba-gallery .ba-tab{ color:rgba(255,255,255,.7); border-color:rgba(232,212,169,.4); background:transparent; }
.ba-gallery .ba-tab.is-active{ background:linear-gradient(180deg,#E7CE93,#C2A15C); color:var(--charcoal); border-color:transparent; box-shadow:0 12px 30px -14px rgba(var(--gold-rgb),.7); }
.ba-gallery .ba-tab:hover:not(.is-active){ color:var(--gold-pale); border-color:var(--gold-pale); }
/* cartes qui flottent sur le sombre */
.ba-gallery .ba-grid{ grid-template-columns:1fr; gap:2rem; max-width:900px; }
.ba-gallery .ba-grid figure{ background:#fff; border:1px solid rgba(232,212,169,.28); border-radius:14px;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.8), 0 0 0 1px rgba(0,0,0,.2);
  opacity:0; transform:translateY(24px); transition:transform .7s var(--ease), box-shadow .5s var(--ease), opacity .7s var(--ease); }
.ba-panel.is-active .ba-grid figure{ opacity:1; transform:none; }
.ba-panel.is-active .ba-grid figure:nth-child(2){ transition-delay:.06s } 
.ba-panel.is-active .ba-grid figure:nth-child(3){ transition-delay:.12s }
.ba-panel.is-active .ba-grid figure:nth-child(4){ transition-delay:.18s }
.ba-panel.is-active .ba-grid figure:nth-child(5){ transition-delay:.24s }
.ba-panel.is-active .ba-grid figure:nth-child(6){ transition-delay:.3s }
.ba-gallery .ba-grid figure:hover{ transform:translateY(-6px); box-shadow:0 50px 90px -35px rgba(0,0,0,.9), 0 0 26px -2px rgba(var(--gold-rgb),.45); }
.ba-gallery .ba-note{ color:rgba(255,255,255,.5); margin-top:clamp(1.6rem,3vw,2.2rem); margin-bottom:0; }



/* Avant/Après — clic pour agrandir (lightbox) */
.ba-grid figure{ cursor:zoom-in; }
.ba-lightbox{ position:fixed; inset:0; z-index:9999; background:rgba(20,19,18,.94); display:none; align-items:center; justify-content:center; padding:4vw; cursor:zoom-out; }
.ba-lightbox.open{ display:flex; animation:faqIn .3s var(--ease); }
.ba-lightbox img{ max-width:96vw; max-height:92vh; border-radius:12px; box-shadow:0 40px 100px -30px rgba(0,0,0,.85); }
.ba-lightbox__close{ position:absolute; top:18px; right:26px; color:#fff; font-size:2.2rem; line-height:1; background:none; border:0; cursor:pointer; opacity:.75; transition:opacity .3s; }
.ba-lightbox__close:hover{ opacity:1; }
.ba-lightbox__hint{ position:absolute; bottom:22px; left:0; right:0; text-align:center; color:rgba(255,255,255,.5); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; }

/* =========================================================================
   AVANT / APRÈS — curseur interactif (glisser pour révéler)
   ========================================================================= */
.cmp-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:2rem; max-width:1000px; margin:0 auto; align-items:center; }
@media(max-width:760px){ .cmp-row{ grid-template-columns:1fr; max-width:460px } }
.cmp{ margin:0; }
.cmp-frame{ position:relative; overflow:hidden; border-radius:14px; touch-action:none; user-select:none; cursor:ew-resize;
  border:1px solid rgba(232,212,169,.3); box-shadow:0 40px 80px -44px rgba(0,0,0,.8); background:#e9e2d8; }
.cmp-frame img{ display:block; width:100%; pointer-events:none; -webkit-user-drag:none; }
.cmp-before{ position:absolute; top:0; left:0; height:100%; width:var(--pos,50%); overflow:hidden; }
.cmp-before img{ position:absolute; top:0; left:0; height:100%; width:auto; max-width:none; }
.cmp-handle{ position:absolute; top:0; bottom:0; left:var(--pos,50%); width:2px; background:var(--gold-pale);
  transform:translateX(-1px); pointer-events:none; box-shadow:0 0 14px rgba(232,212,169,.7); }
.cmp-knob{ position:absolute; top:50%; left:50%; translate:-50% -50%; width:40px; height:40px; border-radius:50%;
  background:rgba(20,19,18,.55); border:1px solid var(--gold-pale); display:flex; align-items:center; justify-content:center;
  color:var(--gold-pale); font-size:.85rem; box-shadow:0 6px 20px rgba(0,0,0,.4); }
.cmp-tag{ position:absolute; top:12px; font-size:.54rem; letter-spacing:.2em; text-transform:uppercase; color:#fff;
  background:rgba(20,19,18,.5); padding:.45em .9em; border-radius:99px; pointer-events:none; backdrop-filter:blur(2px); }
.cmp-tag--l{ left:12px } .cmp-tag--r{ right:12px }
.cmp figcaption{ margin-top:1rem; text-align:center; color:rgba(255,255,255,.82); font-size:.92rem; }
.cmp figcaption b{ color:var(--gold-pale); font-family:var(--font-display); font-style:normal; font-size:1.15rem; }
.cmp figcaption .t{ display:block; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:.3rem; }
.ba-drag-hint{ text-align:center; color:var(--gold-pale); font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; margin:0 0 1.2rem; opacity:.9; }

/* =========================================================================
   AVANT / APRÈS — pzazz (peek auto, knob pulsé, révélations)
   ========================================================================= */
@property --pos{ syntax:'<percentage>'; inherits:true; initial-value:50%; }
@keyframes cmpPeek{ 0%{--pos:50%} 20%{--pos:72%} 52%{--pos:28%} 100%{--pos:50%} }
.cmp-frame.peek{ animation:cmpPeek 2.6s var(--ease); }
/* révélation des cartes */
.cmp{ opacity:0; transform:translateY(26px) scale(.985); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.cmp.in{ opacity:1; transform:none; }
/* bouton pulsé + brillance */
.cmp-knob{ animation:knobPulse 2.8s var(--ease) infinite; }
@keyframes knobPulse{
  0%,100%{ box-shadow:0 6px 20px rgba(0,0,0,.4), 0 0 0 0 rgba(232,212,169,.55); }
  50%{ box-shadow:0 6px 20px rgba(0,0,0,.4), 0 0 0 10px rgba(232,212,169,0); } }
.cmp-frame:hover{ box-shadow:0 50px 90px -40px rgba(0,0,0,.85), 0 0 30px -4px rgba(var(--gold-rgb),.45); }
.cmp-frame{ transition:box-shadow .5s var(--ease); }
/* indice glisser animé */
.ba-drag-hint .ar{ display:inline-block; color:var(--gold-pale); }
.ba-drag-hint .ar.l{ animation:hintL 1.7s var(--ease) infinite; }
.ba-drag-hint .ar.r{ animation:hintR 1.7s var(--ease) infinite; }
@keyframes hintL{ 0%,100%{ transform:translateX(0); opacity:.6 } 50%{ transform:translateX(-5px); opacity:1 } }
@keyframes hintR{ 0%,100%{ transform:translateX(0); opacity:.6 } 50%{ transform:translateX(5px); opacity:1 } }
/* chiffres résultat qui scintillent */
.cmp figcaption b{ background:linear-gradient(100deg,#D8BC85 20%,#F6E4B8 45%,#D8BC85 65%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 6s linear infinite; }
/* lueur du héros qui respire */
.ba-hero__glow{ animation:breathe 8s var(--ease) infinite; }
@media(prefers-reduced-motion:reduce){
  .cmp-frame.peek{ animation:none } .cmp-knob{ animation:none } .ba-drag-hint .ar{ animation:none }
  .cmp{ opacity:1; transform:none } .cmp figcaption b{ animation:none; color:var(--gold-pale) }
}

/* Avant/Après — groupes (sans switcher) */
.ba-group{ margin-bottom:clamp(3rem,5vw,4.6rem); }
.ba-group:last-of-type{ margin-bottom:0; }
.ba-group__label{ text-align:center; font-family:var(--font-body); font-weight:500; font-size:.66rem; letter-spacing:.4em;
  text-transform:uppercase; color:var(--gold-pale); margin:0 0 2.2rem; display:flex; align-items:center; justify-content:center; gap:1em; }
.ba-group__label::before,.ba-group__label::after{ content:""; width:46px; height:1px; background:var(--gold); opacity:.55; }

/* Avant/Après — CTA style « Le salon » (ornement doré sur charbon) */
.ba-cta{ background:var(--charcoal); color:#fff; text-align:center; position:relative; overflow:hidden;
  padding:clamp(72px,10vw,130px) 0; }
.ba-cta__grain{ position:absolute; inset:0; opacity:.24; mix-blend-mode:soft-light; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ba-cta .wrap{ position:relative; z-index:2; }
.ba-cta .orn{ display:flex; align-items:center; justify-content:center; gap:.9rem; width:min(760px,90vw); margin:0 auto; color:var(--gold-pale); }
.ba-cta .orn.top{ margin-bottom:1.8rem; } .ba-cta .orn.bot{ margin-top:2rem; }
.ba-cta .orn .ln{ flex:1; height:1px; }
.ba-cta .orn .ln.l{ background:linear-gradient(90deg,transparent,var(--gold-pale)); }
.ba-cta .orn .ln.r{ background:linear-gradient(90deg,var(--gold-pale),transparent); }
.ba-cta .orn .knot{ flex:0 0 auto; width:40px; height:16px; }
.ba-cta .eyebrow{ color:var(--gold-pale); justify-content:center; display:inline-flex; margin-bottom:.7rem; }
.ba-cta .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.ba-cta h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,4vw,3.2rem); color:#F7F1E8; margin:0; text-shadow:0 2px 24px rgba(0,0,0,.5); }
.ba-cta__lead{ max-width:52ch; margin:1.2rem auto 2.2rem; font-size:1.02rem; line-height:1.7; color:rgba(255,255,255,.75); }
.ba-cta .btn-row{ justify-content:center; }

/* =========================================================================
   AVANT / APRÈS — présentation côte à côte (sans curseur)
   ========================================================================= */
.cmp2{ margin:0 auto clamp(2.4rem,4vw,3.4rem); max-width:860px; opacity:0; transform:translateY(24px);
  transition:opacity .7s var(--ease), transform .7s var(--ease); }
.cmp2.in{ opacity:1; transform:none; }
.cmp2-pair{ display:grid; grid-template-columns:1fr 1fr; border-radius:14px; overflow:hidden; position:relative;
  border:1px solid rgba(232,212,169,.3); box-shadow:0 44px 84px -42px rgba(0,0,0,.82); background:#e9e2d8; }
.cmp2-side{ position:relative; }
.cmp2-side img{ width:100%; height:100%; object-fit:cover; display:block; }
.cmp2-side:first-child::after{ content:""; position:absolute; top:0; bottom:0; right:0; width:1px; background:var(--gold-pale); box-shadow:0 0 14px rgba(232,212,169,.6); }
.cmp2-tag{ position:absolute; top:12px; font-size:.56rem; letter-spacing:.2em; text-transform:uppercase; color:#fff;
  background:rgba(20,19,18,.55); padding:.45em .95em; border-radius:99px; backdrop-filter:blur(2px); }
.cmp2-tag--l{ left:12px } .cmp2-tag--r{ right:12px }
.cmp2 figcaption{ margin-top:1rem; text-align:center; color:rgba(255,255,255,.82); font-size:.95rem; }
.cmp2 figcaption b{ color:var(--gold-pale); font-family:var(--font-display); font-style:normal; font-size:1.2rem;
  background:linear-gradient(100deg,#D8BC85 20%,#F6E4B8 45%,#D8BC85 65%); background-size:220% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent; animation:hcShimmer 6s linear infinite; }
.cmp2 figcaption .t{ display:block; font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); margin-top:.3rem; }
@media(prefers-reduced-motion:reduce){ .cmp2{ opacity:1; transform:none } .cmp2 figcaption b{ animation:none; color:var(--gold-pale) } }

/* =========================================================================
   RENCONTRE — « Ma vision » (piliers de l'approche)
   ========================================================================= */
.vision{ background:var(--cream-2); position:relative; overflow:hidden; }
.vision__ring{ position:absolute; left:-160px; top:50%; translate:0 -50%; width:520px; height:520px; border-radius:50%;
  border:1px solid var(--line-gold); opacity:.5; pointer-events:none; }
.vision__ring::after{ content:""; position:absolute; inset:56px; border-radius:50%; border:1px solid var(--line-gold); opacity:.6; }
.vision .wrap{ position:relative; z-index:1; }
.vision__head{ text-align:center; max-width:60ch; margin:0 auto; }
.vision__head h2{ font-family:var(--font-display); font-weight:300; font-size:clamp(2.1rem,4vw,3.2rem); line-height:1.05; color:var(--charcoal); margin-top:.4rem; }
.vision__lead{ margin:1.4rem auto 0; font-size:1.06rem; line-height:1.8; color:var(--ink-muted); }
.vision__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(1.4rem,2.6vw,2.4rem);
  max-width:1080px; margin:clamp(2.8rem,5vw,4.2rem) auto 0; }
.vp{ text-align:center; }
.vp__ic{ display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%;
  border:1px solid var(--line-gold); color:var(--gold-deep); background:rgba(255,255,255,.5); margin-bottom:1.1rem;
  transition:background .4s var(--ease), color .4s, transform .4s; }
.vp__ic svg{ width:26px; height:26px; }
.vp:hover .vp__ic{ background:var(--gold); color:#fff; border-color:var(--gold); transform:translateY(-4px); }
.vp h3, .vp h4{ font-family:var(--font-display); font-weight:500; font-size:1.35rem; color:var(--charcoal); margin-bottom:.5rem; }
.vp p{ font-size:.92rem; line-height:1.6; color:var(--ink-muted); max-width:24ch; margin:0 auto; }
@media(max-width:780px){ .vision__grid{ grid-template-columns:repeat(2,1fr); gap:2.4rem 1.4rem } }
@media(max-width:420px){ .vision__grid{ grid-template-columns:1fr } }


/* =========================================================================
   AVANT / APRÈS — calage des paires (2.0.2)
   Les deux photos d'une paire ne cadrent pas toujours le sujet au même
   endroit ; ces décalages les superposent. Valeurs relevées à l'outil
   d'alignement, converties du cadre carré vers le ratio natif du cadre.
   --fit agrandit LES DEUX couches pour couvrir le vide laissé par le
   décalage (aucune bande crème visible) ; appliqué avant translate(),
   il ne modifie pas l'alignement. Il inclut 0,25 % de marge pour éviter
   le liseré d'un pixel au sous-pixel près selon la largeur d'écran.
   ========================================================================= */
.cmp-frame{ --av-x:0%; --av-y:0%; --ap-x:0%; --ap-y:0%; --fit:1; }
.cmp-frame .cmp-after{ transform:scale(var(--fit)) translate(var(--ap-x),var(--ap-y)); }
.cmp-frame .cmp-before img{ transform:scale(var(--fit)) translate(var(--av-x),var(--av-y)); }

.cmp-frame[data-cmp="corps-1"]{ --ap-x:2.93%; --ap-y:-1%; --fit:1.07; }
.cmp-frame[data-cmp="corps-2"]{ --ap-x:2.11%; --fit:1.05; }
.cmp-frame[data-cmp="corps-3"]{ --ap-x:5.7%; --fit:1.12; }
.cmp-frame[data-cmp="corps-4"]{ --ap-x:3.67%; --fit:1.08; }
.cmp-frame[data-cmp="corps-5"]{ --av-y:-1%; --ap-y:1%; --fit:1.03; }
.cmp-frame[data-cmp="corps-6"]{ --av-x:-2.7%; --av-y:-2.5%; --ap-x:2.16%; --ap-y:4%; --fit:1.09; }
.cmp-frame[data-cmp="corps-7"]{ --ap-y:-0.5%; --fit:1.02; }
.cmp-frame[data-cmp="corps-11"]{ --av-x:3.91%; --av-y:6%; --ap-x:-4.76%; --fit:1.13; }
.cmp-frame[data-cmp="corps-14"]{ --av-x:4%; --av-y:-4%; --ap-x:-2%; --ap-y:2.5%; --fit:1.09; }
.cmp-frame[data-cmp="visage-3"]{ --av-y:2%; --ap-y:-2.5%; --fit:1.06; }
.cmp-frame[data-cmp="visage-4"]{ --ap-x:1.22%; --fit:1.03; }
.cmp-frame[data-cmp="visage-6"]{ --av-x:-1.84%; --ap-x:1.84%; --fit:1.05; }
.cmp-frame[data-cmp="visage-7"]{ --av-x:2.44%; --av-y:4%; --ap-x:-1.22%; --ap-y:1%; --fit:1.09; }
.cmp-frame[data-cmp="visage-8"]{ --av-x:1.63%; --ap-x:-1.63%; --fit:1.04; }
.cmp-frame[data-cmp="visage-10"]{ --av-x:1.63%; --ap-x:-0.81%; --fit:1.04; }


/* =========================================================================
   AVANT / APRÈS — showcase centré (slider central + vignettes 1 ligne)
   ========================================================================= */
.ba-gallery .wrap{ max-width:1320px; }
.ba-stage{ display:grid; grid-template-columns:clamp(180px,16vw,250px) auto clamp(180px,16vw,250px); justify-content:center; gap:clamp(1.4rem,2.5vw,2.8rem); align-items:center; max-width:1320px; margin:0 auto; }
.ba-stage .cmp{ margin:0 auto; width:100%; max-width:720px;
  transition:opacity .28s var(--ease), transform .28s var(--ease); }
.ba-stage.is-swapping .cmp{ opacity:0; transform:scale(.965); }
.ba-stage__info{ text-align:left; transition:opacity .28s var(--ease), transform .28s var(--ease); }
.ba-stage.is-swapping .ba-stage__info{ opacity:0; transform:translateY(10px); }
.ba-stage__info .eyebrow{ color:var(--gold-pale); justify-content:flex-start; display:flex; width:max-content; max-width:100%; margin-bottom:.6rem; }
.ba-stage__info .eyebrow::before,.ba-stage__info .eyebrow::after{ content:""; width:38px; height:1px; background:var(--gold); }
.ba-stage__num{ display:inline-block; font-family:var(--font-body); font-weight:500; font-size:clamp(2.8rem,5vw,4.4rem); line-height:1; letter-spacing:-.01em;
  background:linear-gradient(100deg,#A9802F 18%,#F0D79B 50%,#A9802F 82%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ba-stage__lbl{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.4rem,2.4vw,1.9rem); color:#F7F1E8; margin-left:.5rem; }
.ba-stage__sub{ display:block; font-size:1rem; letter-spacing:.04em; color:rgba(255,255,255,.55); margin-top:.7rem; }

.ba-thumbs{ display:flex; gap:12px; overflow-x:auto; padding:6px 4px 12px; margin:clamp(1.8rem,3vw,2.6rem) auto 0; max-width:100%;
  scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:thin; scrollbar-color:rgba(232,212,169,.4) transparent; justify-content:flex-start; }
.ba-thumbs::-webkit-scrollbar{ height:6px; }
.ba-thumbs::-webkit-scrollbar-thumb{ background:rgba(232,212,169,.35); border-radius:99px; }
.ba-thumbs.center{ justify-content:center; }
.ba-thumb{ position:relative; flex:0 0 auto; width:110px; height:110px; border-radius:11px; overflow:hidden; scroll-snap-align:center;
  border:1px solid rgba(232,212,169,.2); cursor:pointer; padding:0; background:#111; transition:border-color .3s var(--ease), transform .3s var(--ease); }
.ba-thumb img{ width:100%; height:100%; object-fit:cover; opacity:.5; transition:opacity .3s var(--ease); }
.ba-thumb .tnum{ position:absolute; left:0; right:0; bottom:0; padding:13px 5px 5px; font-size:.66rem; font-weight:600; color:#fff; text-align:center;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.72)); }
.ba-thumb:hover{ transform:translateY(-2px); } .ba-thumb:hover img{ opacity:.85; }
.ba-thumb.is-on{ border-color:var(--gold-pale); box-shadow:0 0 0 1px var(--gold-pale); }
.ba-thumb.is-on img{ opacity:1; }


/* Switcher Corps/Visage — contrôle segmenté (indicateur glissant) */
.ba-gallery .ba-tabs{ display:flex; width:max-content; max-width:100%; position:relative; background:rgba(0,0,0,.28); border:1px solid rgba(232,212,169,.3);
  border-radius:99px; padding:6px; gap:0; margin-left:auto; margin-right:auto; margin-bottom:clamp(1.6rem,3vw,2.4rem); }
.ba-gallery .ba-tabs__ind{ position:absolute; top:6px; bottom:6px; left:6px; width:calc(50% - 6px); border-radius:99px;
  background:linear-gradient(180deg,#E7CE93,#C2A15C); box-shadow:0 10px 22px -10px rgba(var(--gold-rgb),.75); transition:transform .42s var(--ease); z-index:0; }
.ba-gallery .ba-tabs[data-active="corps"] .ba-tabs__ind{ transform:translateX(100%); }
.ba-gallery .ba-tab{ position:relative; z-index:1; flex:1 0 auto; min-width:166px; padding:1em 0; border:0; background:none; cursor:pointer;
  font-family:var(--font-body); font-size:.74rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.62);
  transition:color .32s var(--ease); }
.ba-gallery .ba-tab.is-active{ color:var(--charcoal); background:none; box-shadow:none; border:0; }
.ba-gallery .ba-tab:hover:not(.is-active){ color:var(--gold-pale); }

/* Avant/Après — resserrer l'espace galerie → CTA */
.ba-gallery + .ba-cta{ padding-top:clamp(34px,5vw,58px); }


/* Cap the stage slider to the viewport height so it fits without scrolling */
.ba-stage .cmp{ text-align:center; }
.ba-stage .cmp-frame{ display:inline-block; max-width:100%; max-height:66vh; vertical-align:top; }
.ba-stage .cmp-frame .cmp-after{ width:auto; height:auto; max-width:100%; max-height:66vh; aspect-ratio:auto; }


/* Texte d'intro à gauche du slider, chiffre à droite (remplit les côtés) */
.ba-stage__lead{ text-align:right; align-self:center; }
.ba-stage__lead p{ font-size:.92rem; line-height:1.75; color:rgba(255,255,255,.6); max-width:30ch; margin-left:auto; }
.ba-stage__lead p::after{ content:""; display:block; width:44px; height:1px; background:var(--gold); opacity:.6; margin:1.2rem 0 0 auto; }
.ba-stage__lbl{ display:block; margin-left:0; }
@media(max-width:900px){
  .ba-stage{ grid-template-columns:1fr; text-align:center; gap:1.4rem; }
  .ba-stage__lead{ text-align:center; order:3; } .ba-stage__lead p{ margin:0 auto; max-width:46ch; }
  .ba-stage__lead p::after{ margin:1rem auto 0; }
  .ba-stage__info{ text-align:center; order:2; } .ba-stage__info .eyebrow{ justify-content:center; }
  .ba-stage .cmp{ order:1; }
}

/* =========================================================================
   AVANT / APRÈS — « spice » : touches vivantes et subtiles
   ========================================================================= */
/* le grand chiffre respire (comme le héros) */
.ba-stage__num{ animation:numBreath 5s ease-in-out infinite; }
@keyframes numBreath{
  0%,100%{ filter:brightness(1) saturate(1); }
  50%{ filter:brightness(1.28) saturate(1.1); }
}
/* le bouton du curseur pulse doucement (invite à glisser) */
.ba-stage .cmp-knob{ animation:knobPulse 2.9s ease-in-out infinite; }
@keyframes knobPulse{
  0%,100%{ box-shadow:0 6px 20px rgba(0,0,0,.4), 0 0 0 0 rgba(232,212,169,.55); }
  50%{ box-shadow:0 6px 20px rgba(0,0,0,.4), 0 0 0 10px rgba(232,212,169,0); }
}
/* la vignette active a une lueur qui respire */
.ba-thumb.is-on{ animation:thumbGlow 2.8s ease-in-out infinite; }
@keyframes thumbGlow{
  0%,100%{ box-shadow:0 0 0 1px var(--gold-pale), 0 0 10px -2px rgba(232,212,169,.35); }
  50%{ box-shadow:0 0 0 1px var(--gold-pale), 0 0 22px 0 rgba(232,212,169,.8); }
}
/* lueur dorée au survol du grand curseur */
.ba-stage .cmp-frame{ transition:box-shadow .5s var(--ease); }
.ba-stage .cmp-frame:hover{ box-shadow:0 44px 84px -42px rgba(0,0,0,.82), 0 0 34px -6px rgba(var(--gold-rgb),.5); }
/* le filet doré sous l'intro se trace à l'entrée */
.ba-stage__lead p::after{ transform:scaleX(0); transform-origin:right; animation:leadRule 1s var(--ease) .3s forwards; }
@keyframes leadRule{ to{ transform:scaleX(1); } }
/* petit éclat qui traverse le chiffre à chaque changement */
.ba-stage.is-swapping .ba-stage__num{ opacity:0; transform:translateY(10px) scale(.96); }
.ba-stage__num{ transition:opacity .28s var(--ease), transform .28s var(--ease); }
@media(prefers-reduced-motion:reduce){
  .ba-stage__num,.ba-stage .cmp-knob,.ba-thumb.is-on,.ba-stage__lead p::after{ animation:none; transform:none; }
}

/* =========================================================================
   PRODUITS NATURELS — intro éditoriale (image + texte)
   ========================================================================= */
.prod-intro{ padding:clamp(2.8rem,5vw,4.8rem) 0; background:var(--cream-2); border-top:1px solid var(--line-gold); border-bottom:1px solid var(--line-gold); }
.prod-intro .wrap{ margin-inline:auto; }
.prod-intro__grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2rem,5vw,5rem); align-items:center; max-width:1160px; }
.prod-intro__media{ position:relative; margin:0; }
.prod-intro__media img{ position:relative; z-index:1; width:100%; aspect-ratio:4/5; object-fit:cover;
  border-radius:260px 260px 18px 18px; box-shadow:0 50px 90px -50px rgba(var(--ink-rgb),.55); }
.prod-intro__ring{ position:absolute; z-index:0; inset:-22px -22px auto -22px; height:calc(100% + 44px);
  border:1px solid var(--line-gold); border-radius:280px 280px 26px 26px; }
.prod-intro__tag{ position:absolute; z-index:2; left:-14px; bottom:26px; background:var(--charcoal); color:#F7F1E8;
  font-family:var(--font-display); font-size:1rem; line-height:1.2; padding:.9em 1.3em; border-radius:12px;
  box-shadow:0 20px 40px -20px rgba(0,0,0,.5); }
.prod-intro__body .eyebrow{ display:inline-flex; margin-bottom:.7rem; }
.prod-intro__body h2{ font-family:var(--font-display); font-weight:300; font-size:clamp(1.9rem,3.4vw,2.7rem); line-height:1.08; color:var(--charcoal); margin-bottom:1.2rem; }
.prod-intro__body p{ font-size:1rem; line-height:1.8; color:var(--ink-muted); margin-bottom:1rem; }
.prod-intro__body p strong{ color:var(--gold-deep); font-weight:600; }
@media(max-width:820px){ .prod-intro__grid{ grid-template-columns:1fr; gap:2.2rem } .prod-intro__media{ max-width:400px; margin:0 auto } }

/* =========================================================================
   BOUTIQUE — cartes, popup produit, panier, caisse
   ========================================================================= */
.btn--sm{ padding:.6em 1.1em; font-size:.62rem; }
.ph-dot{ display:inline-block; width:7px; height:7px; border-radius:50%; border:1px dashed var(--gold-deep); vertical-align:middle; }
.shop-card{ background:#fff; border:1px solid var(--line-gold); border-radius:16px; overflow:hidden; display:flex; flex-direction:column;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease); }
.shop-card:hover{ transform:translateY(-4px); box-shadow:0 40px 70px -44px rgba(var(--ink-rgb),.4); }
.shop-card__img{ position:relative; display:block; width:100%; border:0; padding:0; background:linear-gradient(160deg,#F3E9DD,#EADbc6); cursor:pointer; aspect-ratio:1/1; overflow:hidden; }
.shop-card__img img{ width:100%; height:100%; object-fit:cover; }
.shop-card__img .ring{ position:absolute; inset:0; margin:auto; width:56%; aspect-ratio:1; border-radius:50%; border:1px solid var(--gold-pale); box-shadow:0 0 46px 8px rgba(255,247,224,.75), inset 0 0 30px rgba(255,247,224,.7); background:radial-gradient(circle,#fff 55%,transparent 72%); }
.shop-card__body{ padding:1.2rem 1.3rem 1.4rem; display:flex; flex-direction:column; flex:1; }
.shop-card__body .cat{ font-size:.56rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.shop-card__body h3{ font-family:var(--font-display); font-weight:500; font-size:1.28rem; color:var(--charcoal); margin:.35rem 0 .4rem; cursor:pointer; }
.shop-card__body h3:hover{ color:var(--gold-deep); }
.shop-card__body > p{ font-size:.9rem; line-height:1.55; color:var(--ink-muted); flex:1; }
.shop-card__foot{ display:flex; align-items:center; justify-content:space-between; margin-top:1.1rem; gap:.6rem; }
.shop-card__foot .price{ font-family:var(--font-display); font-size:1.25rem; color:var(--charcoal); }

/* popup produit */
.shop-modal{ position:fixed; inset:0; z-index:1000; display:flex; align-items:center; justify-content:center; padding:20px; }
.shop-modal[hidden]{ display:none; }
.shop-modal__overlay{ position:absolute; inset:0; background:rgba(28,27,25,.6); backdrop-filter:blur(3px); animation:fadeIn .3s var(--ease); }
.shop-modal__card{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; max-width:820px; width:100%; background:var(--cream); border-radius:18px; overflow:hidden; box-shadow:0 60px 120px -50px rgba(0,0,0,.6); animation:popIn .35s var(--ease); }
@keyframes fadeIn{ from{opacity:0} } @keyframes popIn{ from{opacity:0; transform:translateY(14px) scale(.98)} }
.shop-modal__close{ position:absolute; top:12px; right:14px; z-index:2; width:34px; height:34px; border-radius:50%; border:0; background:rgba(255,255,255,.8); color:var(--charcoal); font-size:1.3rem; cursor:pointer; }
.shop-modal__img{ position:relative; background:linear-gradient(160deg,#F3E9DD,#EADbc6); min-height:280px; }
.shop-modal__img img{ width:100%; height:100%; object-fit:cover; }
.shop-modal__img .ring{ position:absolute; inset:0; margin:auto; width:52%; aspect-ratio:1; border-radius:50%; border:1px solid var(--gold-pale); box-shadow:0 0 50px 10px rgba(255,247,224,.75), inset 0 0 34px rgba(255,247,224,.7); background:radial-gradient(circle,#fff 55%,transparent 72%); }
.shop-modal__info{ padding:clamp(1.6rem,3vw,2.4rem); display:flex; flex-direction:column; }
.shop-modal__info .cat{ font-size:.6rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.shop-modal__info h3{ font-family:var(--font-display); font-weight:400; font-size:2rem; color:var(--charcoal); margin:.3rem 0 .5rem; }
.shop-modal__price{ font-family:var(--font-display); font-size:1.6rem; color:var(--gold-deep); margin-bottom:1rem; }
.shop-modal__desc{ font-size:.94rem; line-height:1.7; color:var(--ink-muted); flex:1; }
.qty{ display:inline-flex; align-items:center; gap:0; border:1px solid var(--line-gold); border-radius:99px; margin:1.2rem 0; width:fit-content; }
.qty button{ width:38px; height:38px; border:0; background:none; font-size:1.1rem; color:var(--charcoal); cursor:pointer; }
.qty span{ min-width:34px; text-align:center; font-weight:600; }
.ph-note{ font-size:.72rem; color:var(--gold-deep); margin-top:.9rem; font-style:italic; }

/* FAB panier */
.cart-fab{ position:fixed; right:22px; bottom:22px; z-index:900; width:60px; height:60px; border-radius:50%; border:0; cursor:pointer;
  background:linear-gradient(180deg,#E7CE93,#C2A15C); color:var(--charcoal); box-shadow:0 20px 40px -16px rgba(var(--gold-rgb),.8); display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease); }
.cart-fab:hover{ transform:scale(1.06); }
.cart-fab svg{ width:26px; height:26px; }
.cart-fab__count{ position:absolute; top:-4px; right:-4px; min-width:22px; height:22px; padding:0 5px; border-radius:99px; background:var(--charcoal); color:#F7F1E8; font-size:.68rem; font-weight:600; display:flex; align-items:center; justify-content:center; }
.cart-fab__count:empty,.cart-fab__count[data-empty]{ display:none; }

/* drawer panier / caisse */
.cart-drawer{ position:fixed; inset:0; z-index:1001; }
.cart-drawer[hidden]{ display:none; }
.cart-drawer__overlay{ position:absolute; inset:0; background:rgba(28,27,25,.55); backdrop-filter:blur(3px); animation:fadeIn .3s var(--ease); }
.cart-drawer__panel{ position:absolute; top:0; right:0; height:100%; width:min(430px,100%); background:var(--cream); box-shadow:-30px 0 80px -40px rgba(0,0,0,.5); display:flex; flex-direction:column; animation:slideIn .38s var(--ease); }
@keyframes slideIn{ from{ transform:translateX(100%) } }
.cart-drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:1.4rem 1.6rem; border-bottom:1px solid var(--line-gold); }
.cart-drawer__head h3{ font-family:var(--font-display); font-weight:500; font-size:1.5rem; color:var(--charcoal); }
.cart-drawer__head button{ width:34px; height:34px; border:0; background:none; font-size:1.5rem; color:var(--charcoal); cursor:pointer; }
.cart-view,.checkout-view,.confirm-view{ display:flex; flex-direction:column; flex:1; overflow-y:auto; padding:1.4rem 1.6rem; }
.cart-view[hidden],.checkout-view[hidden],.confirm-view[hidden]{ display:none; }
.cart-items{ display:flex; flex-direction:column; gap:1rem; flex:1; }
.cart-item{ display:grid; grid-template-columns:60px 1fr auto; gap:.9rem; align-items:center; }
.cart-item__img{ width:60px; height:60px; border-radius:10px; background:linear-gradient(160deg,#F3E9DD,#EADbc6); position:relative; overflow:hidden; }
.cart-item__img .ring{ position:absolute; inset:0; margin:auto; width:60%; aspect-ratio:1; border-radius:50%; box-shadow:0 0 20px 4px rgba(255,247,224,.8); background:radial-gradient(circle,#fff 55%,transparent 72%); }
.cart-item__name{ font-family:var(--font-display); font-size:1.05rem; color:var(--charcoal); }
.cart-item__price{ font-size:.8rem; color:var(--ink-muted); }
.cart-item__qty{ display:inline-flex; align-items:center; border:1px solid var(--line-gold); border-radius:99px; margin-top:.3rem; }
.cart-item__qty button{ width:26px; height:26px; border:0; background:none; cursor:pointer; color:var(--charcoal); }
.cart-item__qty span{ min-width:24px; text-align:center; font-size:.82rem; }
.cart-item__rm{ background:none; border:0; color:var(--ink-muted); font-size:.7rem; cursor:pointer; text-decoration:underline; }
.cart-empty{ margin:auto; color:var(--ink-muted); font-style:italic; }
.cart-foot{ border-top:1px solid var(--line-gold); padding-top:1.2rem; margin-top:1rem; }
.cart-total{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:1rem; }
.cart-total b{ font-family:var(--font-display); font-size:1.5rem; color:var(--charcoal); }
.cart-foot .btn,.checkout-view .btn,.confirm-view .btn{ width:100%; }
.link-back{ background:none; border:0; color:var(--gold-deep); font-size:.8rem; cursor:pointer; text-align:left; margin-bottom:1rem; }
.checkout-view h4,.confirm-view h4{ font-family:var(--font-display); font-weight:500; font-size:1.3rem; color:var(--charcoal); margin-bottom:1rem; }
.co-form{ display:flex; flex-direction:column; gap:.7rem; }
.co-form input,.co-form textarea{ width:100%; padding:.85em 1em; border:1px solid var(--line-gold); border-radius:10px; background:#fff; font-family:inherit; font-size:.9rem; color:var(--charcoal); }
.co-form input:focus,.co-form textarea:focus{ outline:none; border-color:var(--gold); }
.co-summary{ border-top:1px solid var(--line-gold); margin-top:1.2rem; padding-top:1rem; display:flex; flex-direction:column; gap:.5rem; font-size:.86rem; color:var(--ink-muted); }
.co-summary .row{ display:flex; justify-content:space-between; }
.co-summary .row.total{ color:var(--charcoal); font-weight:600; border-top:1px solid var(--line-gold); padding-top:.6rem; margin-top:.3rem; }
.confirm-view{ text-align:center; align-items:center; justify-content:center; gap:.4rem; }
.confirm-check{ width:64px; height:64px; border-radius:50%; background:linear-gradient(180deg,#E7CE93,#C2A15C); color:#fff; display:flex; align-items:center; justify-content:center; font-size:2rem; margin-bottom:1rem; }
@media(max-width:640px){ .shop-modal__card{ grid-template-columns:1fr; max-width:420px } .shop-modal__img{ min-height:220px } }

/* Checkout — champs de carte (démo type boutique) */
.co-block{ margin-bottom:1.4rem; }
.co-block h4{ display:flex; align-items:center; justify-content:space-between; }
.co-block h4 .secure{ font-size:.62rem; letter-spacing:.06em; color:var(--gold-deep); font-weight:600; font-family:var(--font-body); }
.pay-demo{ background:rgba(var(--gold-rgb),.12); border:1px dashed var(--gold-deep); border-radius:10px; padding:.7em .9em; font-size:.74rem; line-height:1.5; color:var(--charcoal); margin-bottom:.9rem; }
.card-field{ position:relative; }
.card-field #cardNum{ padding-right:56px; letter-spacing:.06em; }
.card-brand{ position:absolute; right:12px; top:50%; transform:translateY(-50%); font-size:.6rem; font-weight:700; letter-spacing:.08em; color:var(--gold-deep); text-transform:uppercase; }
.card-row{ display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
.checkout-view .btn .lock{ font-size:.9em; }
.pay-trust{ text-align:center; font-size:.7rem; color:var(--ink-muted); margin-top:.7rem; }

/* =========================================================================
   CAISSE — modale plein écran (deux colonnes)
   ========================================================================= */
.co-modal{ position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,32px); }
.co-modal[hidden]{ display:none; }
.co-modal__overlay{ position:absolute; inset:0; background:rgba(28,27,25,.62); backdrop-filter:blur(4px); animation:fadeIn .3s var(--ease); }
.co-modal__panel{ position:relative; z-index:1; width:min(1000px,100%); max-height:92vh; overflow-y:auto; background:var(--cream);
  border-radius:20px; box-shadow:0 70px 130px -50px rgba(0,0,0,.6); animation:popIn .4s var(--ease); }
.co-modal__close{ position:absolute; top:16px; right:18px; z-index:5; width:38px; height:38px; border-radius:50%; border:0; background:rgba(255,255,255,.85); color:var(--charcoal); font-size:1.4rem; cursor:pointer; }
.co-grid{ display:grid; grid-template-columns:1.5fr 1fr; }
.co-main{ padding:clamp(1.8rem,4vw,3rem); }
.co-main .eyebrow{ color:var(--gold-deep); }
.co-title{ font-family:var(--font-display); font-weight:300; font-size:clamp(1.9rem,3.4vw,2.7rem); color:var(--charcoal); margin:.3rem 0 1.8rem; }
.co-block{ margin-bottom:1.8rem; }
.co-block h4{ display:flex; align-items:center; gap:.6rem; font-family:var(--font-display); font-weight:500; font-size:1.2rem; color:var(--charcoal); margin-bottom:.9rem; }
.co-step{ display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; background:var(--gold); color:#fff; font-family:var(--font-body); font-size:.72rem; font-weight:600; }
.co-block h4 .secure{ margin-left:auto; font-size:.6rem; letter-spacing:.06em; color:var(--gold-deep); font-weight:600; font-family:var(--font-body); }
.co-side{ background:var(--cream-2); padding:clamp(1.8rem,4vw,2.6rem); border-left:1px solid var(--line-gold); }
.co-side h4{ font-family:var(--font-display); font-weight:500; font-size:1.3rem; color:var(--charcoal); margin-bottom:1.2rem; }
.co-side__items{ display:flex; flex-direction:column; gap:1rem; margin-bottom:1.4rem; }
.co-side__item{ display:grid; grid-template-columns:48px 1fr auto; gap:.8rem; align-items:center; }
.co-side__thumb{ width:48px; height:48px; border-radius:8px; background:linear-gradient(160deg,#F3E9DD,#EADbc6); position:relative; overflow:hidden; }
.co-side__thumb .ring{ position:absolute; inset:0; margin:auto; width:62%; aspect-ratio:1; border-radius:50%; box-shadow:0 0 16px 4px rgba(255,247,224,.8); background:radial-gradient(circle,#fff 55%,transparent 72%); }
.co-side__nm{ font-size:.9rem; color:var(--charcoal); } .co-side__nm small{ display:block; color:var(--ink-muted); font-size:.76rem; }
.co-side__pr{ font-size:.9rem; color:var(--charcoal); white-space:nowrap; }
.co-side__totals{ border-top:1px solid var(--line-gold); padding-top:1.2rem; display:flex; flex-direction:column; gap:.6rem; }
.co-side__totals .row{ display:flex; justify-content:space-between; font-size:.9rem; color:var(--ink-muted); }
.co-side__totals .row .muted{ font-size:.8rem; }
.co-side__totals .row.total{ color:var(--charcoal); font-family:var(--font-display); font-size:1.4rem; border-top:1px solid var(--line-gold); padding-top:.7rem; margin-top:.3rem; }
.co-pay{ width:100%; margin-top:1.4rem; } .co-pay .lock{ font-size:.9em; }
.co-confirm{ text-align:center; padding:clamp(3rem,7vw,5rem) 2rem; display:flex; flex-direction:column; align-items:center; }
.co-confirm p{ max-width:44ch; color:var(--ink-muted); line-height:1.7; margin-bottom:1.8rem; }
.co-confirm .btn{ min-width:240px; }
@media(max-width:760px){ .co-grid{ grid-template-columns:1fr } .co-side{ border-left:0; border-top:1px solid var(--line-gold) } }

/* =========================================================================
   WOOCOMMERCE — habillage marque du panier & de la caisse
   ========================================================================= */
.woocommerce-cart .wrap, .woocommerce-checkout .wrap, .woocommerce-account .wrap{ max-width:1120px; margin-inline:auto; }
.woocommerce table.shop_table{ border:1px solid var(--line-gold); border-radius:14px; overflow:hidden; }
.woocommerce table.shop_table th{ font-family:var(--font-body); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-muted); }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce form .form-row label{ font-family:var(--font-display); color:var(--charcoal); }
.woocommerce-checkout #payment{ background:var(--cream-2); border:1px solid var(--line-gold); border-radius:14px; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--line-gold); }
.woocommerce .quantity input.qty{ border:1px solid var(--line-gold); border-radius:99px; padding:.4em; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select,
.woocommerce-checkout input[type="text"], .woocommerce-checkout input[type="email"], .woocommerce-checkout input[type="tel"]{
  border:1px solid var(--line-gold)!important; border-radius:10px!important; padding:.85em 1em!important; background:#fff!important; font-family:var(--font-body)!important; color:var(--charcoal)!important; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus{ outline:none; border-color:var(--gold)!important; }
.woocommerce #order_review, .woocommerce .cart-collaterals .cart_totals{ background:var(--cream-2); border:1px solid var(--line-gold); border-radius:16px; padding:1.6rem; }
.woocommerce-order-received .woocommerce-order, .woocommerce .woocommerce-order-details{ }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #place_order,
.woocommerce-cart a.checkout-button{ background:linear-gradient(180deg,#E7CE93,#C2A15C)!important; color:var(--charcoal)!important;
  border:0!important; border-radius:99px!important; padding:1em 2em!important; font-size:.72rem!important; letter-spacing:.16em!important; text-transform:uppercase!important; font-weight:600!important; }
.woocommerce a.button.alt:hover, .woocommerce #place_order:hover{ filter:brightness(1.05); }
.woocommerce ul.products li.product a img{ box-shadow:0 30px 60px -40px rgba(var(--ink-rgb),.4); }
.woocommerce div.product form.cart .button{ vertical-align:middle; }


/* En-têtes de page uniformes (même hauteur/taille que Résultats) */
.page-hero h1{ font-size:clamp(2.7rem,5.2vw,4.4rem)!important; line-height:1; }
.svc-head .eyebrow, .page-hero .eyebrow{ margin-bottom:.8rem; font-size:.72rem; letter-spacing:.34em; }
.ba-hero .eyebrow{ font-size:.72rem; letter-spacing:.34em; }

/* ancre Contact — décalage sous l'en-tête fixe (voir .rv-contact, ligne ~1218) */
html{ scroll-behavior:smooth; }

/* =========================================================================
   PAGE LÉGALE — Politique de confidentialité (Loi 25)
   ========================================================================= */
.legal-body{ background:var(--cream); }
.wrap--read{ max-width:760px; margin-inline:auto; }
.legal-note{ background:rgba(var(--gold-rgb),.12); border:1px dashed var(--gold-deep); border-radius:12px; padding:1em 1.2em; font-size:.86rem; line-height:1.6; color:var(--charcoal); margin-bottom:2.4rem; }
.legal-sec{ margin-bottom:2.2rem; }
.legal-sec h2{ font-family:var(--font-display); font-weight:400; font-size:clamp(1.3rem,2.4vw,1.7rem); color:var(--charcoal); margin-bottom:.7rem; padding-bottom:.5rem; border-bottom:1px solid var(--line-gold); }
.legal-sec p{ font-size:.96rem; line-height:1.8; color:var(--ink-muted); margin-bottom:.8rem; }
.legal-sec ul{ margin:.4rem 0 .8rem 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.legal-sec li{ font-size:.96rem; line-height:1.7; color:var(--ink-muted); }
.legal-sec b{ color:var(--charcoal); }
.legal-sec a{ color:var(--gold-deep); text-decoration:underline; }
.legal-ph{ display:inline-block; background:rgba(var(--gold-rgb),.16); border-radius:4px; padding:0 .4em; color:var(--gold-deep); font-style:italic; font-size:.9em; }
.legal-date{ margin-top:1.2rem; font-size:.85rem; color:var(--gold-deep); }

/* Bandeau de consentement (témoins / Loi 25) */
.cookie-banner{ position:fixed; left:0; right:0; bottom:0; z-index:1200; background:var(--charcoal); color:#F7F1E8;
  padding:clamp(1rem,2.5vw,1.4rem) clamp(1.2rem,4vw,2.4rem); box-shadow:0 -20px 50px -30px rgba(0,0,0,.6);
  display:flex; align-items:center; gap:clamp(1rem,3vw,2rem); flex-wrap:wrap; transform:translateY(0); transition:transform .5s var(--ease); }
.cookie-banner[hidden]{ display:none; }
.cookie-banner.is-hiding{ transform:translateY(110%); }
.cookie-banner__txt{ flex:1 1 340px; font-size:.84rem; line-height:1.6; color:rgba(247,241,232,.85); }
.cookie-banner__txt a{ color:var(--gold-pale); text-decoration:underline; }
.cookie-banner__actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.cookie-banner .btn{ padding:.7em 1.4em; font-size:.66rem; }
.cookie-banner .btn--ghost{ background:transparent; border:1px solid rgba(232,212,169,.5); color:#F7F1E8; }

/* Popup politique de confidentialité */
.footer-links{ font-size:.72rem; letter-spacing:.04em; margin-bottom:.6rem; }
.footer-links a{ color:var(--gold-pale); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .3s var(--ease); }
.footer-links a:hover{ border-color:var(--gold-pale); }
.legal-modal{ position:fixed; inset:0; z-index:1200; display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,32px); }
.legal-modal[hidden]{ display:none; }
.legal-modal__overlay{ position:absolute; inset:0; background:rgba(28,27,25,.64); backdrop-filter:blur(4px); animation:fadeIn .3s var(--ease); }
.legal-modal__panel{ position:relative; z-index:1; width:min(760px,100%); max-height:90vh; background:var(--cream); border-radius:18px;
  box-shadow:0 70px 130px -50px rgba(0,0,0,.6); animation:popIn .4s var(--ease); overflow:hidden; display:flex; flex-direction:column; }
.legal-modal__close{ position:absolute; top:14px; right:16px; z-index:5; width:38px; height:38px; border-radius:50%; border:0; background:rgba(255,255,255,.85); color:var(--charcoal); font-size:1.4rem; cursor:pointer; }
.legal-modal__scroll{ overflow-y:auto; padding:clamp(1.8rem,4vw,3rem); }
.legal-modal__scroll .eyebrow{ display:inline-flex; color:var(--gold-deep); margin-bottom:.5rem; }
.legal-modal__title{ font-family:var(--font-display); font-weight:300; font-size:clamp(1.8rem,3.4vw,2.6rem); color:var(--charcoal); margin-bottom:1.6rem; }

/* Ligne confidentialité sous le formulaire de contact */
.form-privacy{ font-size:.78rem; line-height:1.5; color:var(--ink-muted); text-align:center; margin-top:1.2rem; }
.form-privacy a{ color:var(--gold-deep); text-decoration:underline; font-weight:500; }

/* =========================================================================
   SPICE — portrait en arche (halo doré, profondeur, cadre affiné)
   ========================================================================= */
.split__media{ position:relative; }
.split__media .shape--arch{
  box-shadow:0 0 0 6px rgba(247,241,232,.9), 0 0 0 7px var(--gold-pale), 0 46px 70px -34px rgba(var(--ink-rgb),.5);
}
/* halo doré qui respire, derrière le portrait */
.split__media .shape--arch::before{
  content:""; position:absolute; z-index:-1; inset:-52px -40px -16px;
  background:radial-gradient(ellipse 72% 60% at 50% 40%, rgba(232,212,169,.65), rgba(232,212,169,0) 70%);
  animation:archHalo 7s ease-in-out infinite;
}
@keyframes archHalo{ 0%,100%{ opacity:.5; transform:scale(1); } 50%{ opacity:.95; transform:scale(1.035); } }
/* cadre doré affiné (filet un peu plus présent) */
.split__media .shape--arch::after{ inset:-16px; border:1px solid var(--gold); box-shadow:0 0 24px -6px rgba(var(--gold-rgb),.4); }
/* petit repère doré à l'apex de l'arche */
.split__media{ }
.split__media .shape--arch .ring{ box-shadow:0 0 40px rgba(232,212,169,.35) inset; }

/* =========================================================================
   SPICE — fond de section subtil (lueur dorée douce + grain fin)
   ========================================================================= */
.section--glow{ position:relative; overflow:hidden; }
.section--glow > .wrap{ position:relative; z-index:2; }
.section--glow::before{
  content:""; position:absolute; z-index:0; inset:0; pointer-events:none;
  background:
    radial-gradient(ellipse 42% 52% at 86% 22%, rgba(232,212,169,.22), transparent 60%),
    radial-gradient(ellipse 40% 46% at 10% 88%, rgba(232,212,169,.14), transparent 62%);
}
.section--glow::after{
  content:""; position:absolute; z-index:1; inset:0; pointer-events:none; opacity:.04; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:160px;
}
@media(prefers-reduced-motion:reduce){ .split__media .shape--arch::before{ animation:none; } }


/* =========================================================================
   FOND CLAIR — grain fin subtil sur tout le site (zones non foncées)
   ========================================================================= */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='0.5'/%3E%3C/svg%3E");
  background-size:200px; opacity:.06; mix-blend-mode:multiply;
}
/* le contenu passe au-dessus du grain */
main, .site-footer{ position:relative; z-index:1; }
/* les sections foncées masquent le grain (fond opaque déjà en place) */


/* Cascade visible des cartes en grille */
.pillars-epure .pil-col.reveal{ transition-delay:0s; }
.pillars-epure .pil-col.reveal.d1{ transition-delay:.16s; }
.pillars-epure .pil-col.reveal.d2{ transition-delay:.32s; }

/* Eyebrow avec .center : centrage fiable */
.eyebrow.center{ display:flex; width:fit-content; margin-inline:auto; justify-content:center; }

/* =========================================================================
   BOUTIQUE INTRO — mise en page plus vivante (lead, citation, points, cadeau)
   ========================================================================= */
.prod-intro__lead{ font-size:clamp(1.1rem,1.5vw,1.32rem); line-height:1.65; color:var(--charcoal); margin-bottom:1.4rem; }
.prod-intro__quote{
  position:relative; margin:0 0 1.4rem; padding:.2rem 0 .2rem 1.4rem;
  border-left:2px solid var(--gold); font-family:var(--font-serif);
  font-size:clamp(1.25rem,1.9vw,1.6rem); line-height:1.4; color:var(--gold-deep); font-weight:500;
}
.prod-intro__quote::before{ content:"\201C"; position:absolute; left:.5rem; top:-.6rem; font-family:var(--font-display); font-size:2.4rem; color:var(--gold-pale); }
.prod-intro__points{ list-style:none; margin:1.3rem 0; padding:0; display:flex; flex-wrap:wrap; gap:.6rem .5rem; }
.prod-intro__points li{ display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--line-gold);
  border-radius:99px; padding:.5em 1em; font-size:.82rem; letter-spacing:.02em; color:var(--charcoal); font-weight:500; }
.prod-intro__points .pt-ic{ color:var(--gold-deep); font-size:.7rem; }
.prod-intro__gift{ display:flex; gap:1rem; align-items:flex-start; background:linear-gradient(180deg, rgba(232,212,169,.22), rgba(232,212,169,.1));
  border:1px solid var(--line-gold); border-radius:16px; padding:1.1rem 1.3rem; margin-top:1.4rem; }
.prod-intro__gift .gift-ic{ font-size:1.5rem; line-height:1; flex:0 0 auto; margin-top:.1rem; }
.prod-intro__gift p{ margin:0; font-size:.92rem; line-height:1.6; color:var(--charcoal); }
.prod-intro__gift b{ color:var(--gold-deep); }


/* =========================================================================
   BOUTIQUE — un mot de Véronique (chaleureux + premium)
   ========================================================================= */
.bn{ position:relative; overflow:hidden; padding:clamp(70px,9vw,120px) 0;
  background:radial-gradient(150% 120% at 85% -10%, rgba(232,212,169,.22), transparent 70%), var(--cream); }
.bn__wrap{ max-width:1160px; margin:0 auto; padding:0 clamp(22px,5vw,64px); }
.bn__grid{ display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(2.2rem,4.5vw,4.4rem); align-items:start; }
.bn__left{ display:flex; flex-direction:column; align-items:center; }
.bn__portrait{ position:relative; margin:0 0 1.8rem; width:100%; display:flex; justify-content:center; }
.bn__halo{ position:absolute; inset:-6% -6% -2%; z-index:0; border-radius:50% 50% 42% 42%; background:radial-gradient(circle at 50% 42%, rgba(255,247,224,.9), rgba(232,212,169,.5) 42%, transparent 68%); animation:halo 7s ease-in-out infinite; }
@keyframes halo{ 0%,100%{opacity:.75;transform:scale(1)} 50%{opacity:1;transform:scale(1.04)} }
.bn__ring{ position:absolute; inset:2% 6% 5%; z-index:1; border-radius:48% 48% 12px 12px / 34% 34% 3% 3%; border:1px solid var(--gold-pale); box-shadow:0 0 60px rgba(232,212,169,.6); pointer-events:none; }
.bn__frame{ position:relative; z-index:2; width:min(94%,430px); aspect-ratio:4/5; border-radius:48% 48% 16px 16px / 34% 34% 3% 3%; overflow:hidden; box-shadow:0 0 0 6px rgba(247,241,232,.85), 0 0 0 7px var(--gold-pale), 0 46px 74px -34px rgba(var(--ink-rgb),.5); }
.bn__frame img{ width:100%; height:100%; object-fit:cover; object-position:50% 18%; }
.bn__tag{ position:absolute; z-index:3; bottom:6px; left:50%; transform:translateX(-50%); white-space:nowrap; background:var(--charcoal); color:#F7F1E8; font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; padding:.6em 1.2em; border-radius:99px; }
.bn__sign{ text-align:center; margin-bottom:1.4rem; }
.bn__sign .nm{ display:block; font-family:var(--font-sign); font-size:clamp(2.4rem,4vw,3.2rem); color:var(--gold-deep); line-height:.9; }
.bn__sign .rl{ display:block; margin-top:.4rem; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-muted); }
.bn__btn{ display:inline-block; background:linear-gradient(180deg,#E7CE93,#C2A15C); color:#2C2A28; text-decoration:none; border-radius:99px; padding:1em 2.2em; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; box-shadow:0 20px 40px -20px rgba(var(--gold-rgb),.7); }
.bn__eyebrow{ display:flex; align-items:center; gap:.7rem; margin-bottom:1.1rem; }
.bn__eyebrow::before{ content:""; width:34px; height:1px; background:var(--gold); }
.bn__lead{ font-family:var(--font-serif); font-weight:500; font-size:clamp(1.4rem,2.1vw,1.85rem); line-height:1.32; color:var(--charcoal); margin:0 0 1.1rem; }
.bn__lead em{ font-style:normal; color:var(--gold-deep); }
.bn__body{ font-size:.96rem; line-height:1.72; color:var(--ink-muted); margin:0 0 1rem; }
.bn__quote{ font-family:var(--font-serif); font-weight:500; font-size:clamp(1.2rem,1.7vw,1.5rem); line-height:1.35; color:var(--gold-deep); margin:1.2rem 0; padding-left:1.1rem; border-left:2px solid var(--gold); }
.bn__gift{ font-size:.96rem; line-height:1.72; color:var(--charcoal); margin:1rem 0 0; padding-left:1.1rem; border-left:2px solid var(--gold-pale); }
.bn__gift .u{ color:var(--gold-deep); font-weight:600; }
@media(max-width:860px){ .bn__grid{grid-template-columns:1fr;gap:2.4rem} .bn__left{position:static} }

/* ════════════════════════════════════════════════════════════════════
 * INTRO D'OUVERTURE — page d'accueil uniquement
 * (Le sous-ensemble critique est dupliqué en inline dans functions.php
 *  pour un premier rendu instantané ; ce bloc complet peut le surcharger
 *  sans effet indésirable.)
 * ════════════════════════════════════════════════════════════════════ */
body.ve-lock{overflow:hidden}

#ve-intro{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:1.7rem;pointer-events:none}
#ve-intro.ve-gone{display:none}
.ve-intro__bg{position:absolute;inset:0;z-index:0;
  background:radial-gradient(120% 95% at 50% 45%,#F1E7D6 0%,#E8D9C4 52%,#DBCAB2 100%);
  transition:opacity 1.65s ease}
.ve-intro__bg.ve-fade{opacity:0}
.ve-intro__glow{position:absolute;left:50%;top:44%;width:54vh;height:54vh;z-index:1;
  transform:translate(-50%,-50%) scale(.7);border-radius:50%;opacity:0;filter:blur(10px);
  background:radial-gradient(circle,rgba(var(--gold-rgb),.19) 0%,rgba(var(--gold-rgb),.07) 44%,transparent 72%)}
/* vignette : les coins s'assombrissent pendant le fondu de sortie */
.ve-intro__vig{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;
  background:radial-gradient(120% 120% at 50% 45%,rgba(20,14,9,0) 46%,rgba(20,14,9,.14) 70%,rgba(18,12,8,.6) 100%);
  transition:opacity 1s ease}
.ve-intro__vig.ve-on{opacity:1}
.ve-intro__glow.ve-on{animation:ve-bloom 2.6s var(--ease) forwards}
@keyframes ve-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}
  40%{opacity:1}100%{opacity:.5;transform:translate(-50%,-50%) scale(1.05)}}
.ve-intro__mark{position:relative;z-index:2;width:min(38vh,300px);height:auto;display:block;
  opacity:0;transform:translateY(10px) scale(1.05);filter:blur(10px);
  transition:opacity 1.15s ease,transform 1.5s var(--ease),filter 1.2s ease}
.ve-intro__mark.ve-on{opacity:1;transform:none;filter:blur(0)}
.ve-intro__word{position:relative;z-index:2;text-align:center}
/* Le libellé de marque de l'intro est un <p> (et non un <h1>) : la page d'accueil
   ne doit porter qu'un seul <h1>, celui du héros. Purement décoratif. */
.ve-intro__word .ve-intro__brand{margin:0;font-family:var(--font-display);font-weight:400;
  font-size:clamp(1.6rem,4.4vw,2.9rem);color:var(--gold-deep);
  text-transform:uppercase;letter-spacing:.58em;text-indent:.58em;white-space:nowrap}
.ve-intro__word p:not(.ve-intro__brand){margin-top:1rem;font-family:var(--font-body);font-weight:500;
  font-size:clamp(.55rem,1.3vw,.72rem);text-transform:uppercase;
  letter-spacing:.34em;text-indent:.34em;color:var(--taupe-deep);white-space:nowrap}
.ve-intro__word .ve-intro__brand,.ve-intro__word p{opacity:0;transform:translateY(12px);
  transition:opacity .9s ease,transform 1s var(--ease),letter-spacing 1.5s var(--ease)}
.ve-intro__word.ve-on .ve-intro__brand{opacity:1;transform:none;letter-spacing:.24em;text-indent:.24em}
.ve-intro__word.ve-on p{opacity:1;transform:none;transition-delay:.28s}
.ve-intro__word.ve-out .ve-intro__brand,.ve-intro__word.ve-out p{opacity:0;transform:translateY(-8px);
  transition:opacity .5s ease,transform .6s ease}
.ve-intro__rule{position:relative;z-index:2;width:0;height:1px;background:var(--gold);opacity:.55;
  transition:width 1.1s var(--ease) .4s,opacity .5s ease}
.ve-intro__rule.ve-on{width:min(40vw,360px)}
.ve-intro__rule.ve-out{opacity:0}
/* le monogramme volant qui porte le logo jusque dans l'en-tête */
#ve-flyer{position:fixed;z-index:10000;pointer-events:none;display:none;top:0;left:0;
  transform-origin:top left}
@media(prefers-reduced-motion:reduce){
  #ve-intro *{transition-duration:.01ms!important;animation-duration:.01ms!important}}
/* ═══════════════════ FIN INTRO CSS ═══════════════════ */

/* ═══════════════════ MONOGRAMME DU HÉROS (crest) ═══════════════════
   Le monogramme flotte au-dessus de l'eyebrow, ancré à la section .hero-cine
   (frère de .hero-cine__in) : le bloc de texte reste identique à l'origine. */
.hero-crest__mark{position:absolute;left:0;right:0;margin:0 auto;
  top:clamp(90px,16.5%,178px);width:120px;height:auto;z-index:5;
  filter:drop-shadow(0 3px 14px rgba(0,0,0,.55));
  opacity:0;visibility:hidden}
/* révélé uniquement quand l'intro le dépose (ou immédiatement si l'intro est zappée) */
.hero-crest__mark.is-in{opacity:1;visibility:visible}
@media(max-width:640px){.hero-crest__mark{width:92px;top:clamp(72px,12.5%,124px)}}
/* En-tête : mot-symbole seul, pas d'icône monogramme */
.site-header .brand__mark{display:none}
/* ═══════════════════ FIN MONOGRAMME DU HÉROS ═══════════════════ */

/* ════════════════════════════════════════════════════════════════════
 * EN-TÊTE VERRE GIVRÉ — barre translucide au défilement
 * Une fois défilé (.scrolled), l'en-tête est un verre givré clair (fond
 * défini sur .site-header.scrolled, plus haut). Quand une section foncée
 * passe dessous (classe .over-dark ajoutée par main.js), seul le TEXTE
 * bascule en clair + accents or — le fond reste le même verre.
 * Le héros (en haut, :not(.scrolled)) garde son traitement d'origine.
 * ════════════════════════════════════════════════════════════════════ */
.site-header .brand__name,.site-header .brand__sub,
.site-header .nav a,.site-header .nav-cta{
  transition:color .35s var(--ease),text-shadow .35s var(--ease),
             border-color .35s var(--ease),background .35s var(--ease);
}
.site-header.scrolled.over-dark .brand__name{color:#F7F1E8;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.site-header.scrolled.over-dark .brand__name b{color:inherit}
.site-header.scrolled.over-dark .brand__sub{color:rgba(255,255,255,.72);text-shadow:0 1px 8px rgba(0,0,0,.45)}
.site-header.scrolled.over-dark .nav > a,
.site-header.scrolled.over-dark .nav ul.menu a{color:rgba(255,255,255,.95);text-shadow:0 1px 12px rgba(0,0,0,.55)}
.site-header.scrolled.over-dark .nav a.current,
.site-header.scrolled.over-dark .nav .current-menu-item > a,
.site-header.scrolled.over-dark .nav .current_page_item > a{color:#fff}
.site-header.scrolled.over-dark .nav a::after{background:#F0DCA8;height:1.5px}
.site-header.over-dark .nav-cta{border-color:#F0DCA8;color:#FBF1DC;
  background:rgba(255,255,255,.08);text-shadow:0 1px 8px rgba(0,0,0,.45)}
.site-header.over-dark .nav-cta:hover{background:var(--gold-pale);color:var(--charcoal)}
.site-header.scrolled.over-dark .burger span{background:#F7F1E8}
@media(max-width:960px){
  /* ── Tiroir mobile : palette FIXE sur fond crème, quel que soit l'état de l'en-tête
     (héros clair, section sombre, défilé…). Corrige liens lavés, item actif doré,
     mot-symbole foncé et bouton « Prendre rendez-vous » plein. ── */
  .nav ul.menu a{ color:var(--charcoal)!important; text-shadow:none!important; }
  .nav ul.menu a:hover,
  .nav ul.menu a:focus-visible,
  .nav ul.menu a.current,
  .nav ul.menu .current-menu-item > a,
  .nav ul.menu .current_page_item > a{ color:var(--gold-deep)!important; }
  .nav ul.menu a.current::after,
  .nav ul.menu .current-menu-item > a::after,
  .nav ul.menu .current_page_item > a::after{ width:calc(100% - .4rem); }
  .brand--mini .brand__name{ color:var(--charcoal)!important; -webkit-text-fill-color:var(--charcoal)!important; background:none!important; text-shadow:none!important; }
  .nav-cta--drawer{ background:var(--charcoal)!important; color:#F7F1E8!important; border-color:var(--charcoal)!important; text-shadow:none!important; padding:1.15em 3.1em!important; border-radius:2px!important; align-self:center!important; width:auto!important; margin-left:0!important; margin-right:0!important; position:static!important; right:auto!important; left:auto!important; }
  .nav-cta--drawer:hover{ background:var(--gold)!important; border-color:var(--gold)!important; color:#fff!important; }
}
@media(max-width:960px){
  /* ── Tiroir ouvert (classe .nav-open gérée en JS, maintenue pendant la fermeture) :
     on garde le VRAI logo d'en-tête à sa place exacte au-dessus de la superposition,
     et on masque le logo doublon du tiroir. Aucun saut à l'ouverture ni à la fermeture. ── */
  .nav-open .site-header .header-top{ z-index:301; }
  .nav-open .site-header .nav__head{ display:none!important; }
  /* Sous-titre quasi-blanc : invisible sur le crème du tiroir. On retire son ombre
     pendant que le tiroir est ouvert (sinon une ombre grise « fantôme » sous le logo),
     pour qu'il soit VRAIMENT invisible puis réapparaisse en fondu quand le crème s'efface. */
  .nav-open .site-header .brand__sub{ text-shadow:none!important; }
  /* Couleur du logo gérée à part (.nav-dark) : dès la fermeture elle repasse au clair,
     en fondu synchronisé avec la disparition du tiroir crème. Le sous-titre, lui, est
     déjà quasi-blanc : invisible sur le crème du tiroir, il réapparaît de lui-même en
     fondu quand le crème s'efface (pas de « snap », aucune gestion d'opacité). */
  .nav-dark .site-header .brand__name{ color:var(--charcoal)!important; text-shadow:none!important; }
  .nav-dark .site-header .brand__name b{ color:inherit!important; }
}
/* ═══════════════════ FIN EN-TÊTE VERRE GIVRÉ ═══════════════════ */

/* ════════════════════════════════════════════════════════════════════
 * FINITIONS RESPONSIVES — sécurité débordement, zones tactiles,
 * encoches (safe-area), petits écrans. (N'altère pas la grille existante.)
 * ════════════════════════════════════════════════════════════════════ */
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{ overflow-x:clip; }
img{ max-width:100%; }
.entry-content img, .wp-block-image img{ height:auto; }

/* zones tactiles confortables */
a, button{ -webkit-tap-highlight-color:rgba(var(--gold-rgb),.15); }

/* encoches / barres système (iPhone, etc.) */
@supports(padding:max(0px)){
  .header-top__inner{
    padding-left:max(clamp(20px,5vw,60px), env(safe-area-inset-left));
    padding-right:max(clamp(20px,5vw,60px), env(safe-area-inset-right));
  }
  .burger{ right:max(clamp(16px,5vw,60px), env(safe-area-inset-right)); }
  .nav-cta--top{ right:max(clamp(20px,5vw,60px), env(safe-area-inset-right)); }
}

/* petits téléphones : la marque reste lisible sans déborder */
@media(max-width:960px){
  /* Sur mobile le flou d'arrière-plan est souvent désactivé (mode économie d'énergie),
     ce qui rend l'en-tête translucide « transparent ». On le rend quasi opaque. */
  .site-header.scrolled{ background:rgba(245,236,223,.94); }
}
@media(max-width:400px){
  .brand__name{ font-size:1.3rem; letter-spacing:.1em; }
  .site-header.scrolled .brand__name{ font-size:1.16rem; }
  .brand__mark{ height:38px; }
  .site-header.scrolled .brand__mark{ height:32px; }
  .nav ul.menu a{ font-size:1.5rem; }
}

/* tiroir mobile : sur écrans courts (paysage), garder le CTA/pied visibles */
@media(max-width:960px) and (max-height:560px){
  .nav ul.menu a{ padding:.7rem .2rem; font-size:1.35rem; }
  .nav__head{ padding-bottom:.9rem; margin-bottom:.2rem; }
}
/* ═══════════════════ FIN FINITIONS RESPONSIVES ═══════════════════ */

/* ── Boutique en mode vitrine (pas de vente en ligne pour l'instant) : on masque le
   panier/caisse de démonstration pour éviter toute confusion. Les fiches produits
   restent consultables (fenêtre « Voir ») avec, au besoin, un lien « Acheter » externe. ── */
.cart-fab, .cart-drawer{ display:none !important; }
.shop-modal .qty, #pmAdd, .shop-modal .ph-note, .shop-card .ph-dot, .shop-modal .ph-dot{ display:none !important; }

/* ── Boutique : produits (naturels / beauté) — vitrine élégante vers Isagenix ── */
.shop-intro{ max-width:66ch; margin:0 auto clamp(2.4rem,4vw,3.6rem); }
.shop-intro .lead strong{ color:var(--gold-deep); font-weight:600; }
.prod-sec__head{ display:flex; align-items:center; gap:1.2rem; margin:0 0 1.8rem; }
.prod-sec__eyebrow{ font-family:var(--font-body); font-weight:600; font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); white-space:nowrap; }
.prod-sec__line{ flex:1; height:1px; background:var(--line-gold); }
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,34px); }
.shop-intro__note{ font-family:var(--font-body); font-size:.95rem; line-height:1.65; color:var(--text, #4b443e); max-width:620px; margin:1rem auto 0; }
.prod-card{ display:flex; flex-direction:column; background:#FAF3E8; border:1px solid var(--gold-pale); border-radius:16px; padding:clamp(12px,1.4vw,16px); box-shadow:0 20px 46px -32px rgba(var(--ink-rgb),.38); transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.prod-card:hover{ transform:translateY(-6px); box-shadow:0 34px 64px -30px rgba(var(--ink-rgb),.46); }
.prod-card__img{ aspect-ratio:1/1; overflow:hidden; background:var(--cream-3); }
.prod-card__img img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.prod-card:hover .prod-card__img img{ transform:scale(1.05); }
.prod-card__body{ display:flex; flex-direction:column; gap:.45rem; padding:0; flex:1; }
.prod-card__tag{ align-self:flex-start; font-family:var(--font-body); font-weight:600; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); background:rgba(var(--gold-rgb),.12); border:1px solid var(--line-gold); border-radius:99px; padding:.4em .9em; margin-bottom:.15rem; }
.prod-card__name{ font-family:var(--font-display); font-weight:500; font-size:1.42rem; line-height:1.15; margin:.1rem 0; color:var(--charcoal); }
.prod-card__desc{ font-family:var(--font-body); font-size:.82rem; line-height:1.55; color:var(--taupe-deep); margin:0 0 .5rem; flex:1; }
.prod-card__btn{ align-self:flex-start; font-family:var(--font-body); font-weight:600; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); text-decoration:none; border-bottom:1px solid var(--line-gold); padding-bottom:3px; transition:color .3s, border-color .3s; }
.prod-card__btn:hover{ color:var(--charcoal); border-color:var(--charcoal); }
.prod-soon{ padding:clamp(2rem,4vw,3rem); border:1px dashed var(--line-gold); border-radius:12px; background:rgba(var(--gold-rgb),.04); }
.prod-soon__note{ font-family:var(--font-display); font-size:1.15rem; color:var(--taupe-deep); max-width:52ch; margin:0 auto 1.4rem; }
/* Section produits sur fond sombre */
#boutique{ background:#211E1B; background-image:radial-gradient(100% 70% at 50% -6%, #2c2723 0%, #1d1a17 62%); }
#boutique .wrap{ max-width:1560px; }
#boutique .eyebrow{ color:var(--gold-pale); }
#boutique .h-2{ color:#F5ECDD; }
#boutique .shop-intro__note{ color:#C6B9A9; }
#boutique .prod-sec__eyebrow{ color:var(--gold-pale); }
#boutique .prod-sec__line{ background:linear-gradient(90deg, rgba(var(--gold-rgb),.5), rgba(var(--gold-rgb),0)); }
#boutique .prod-soon{ border-color:rgba(var(--gold-rgb),.28); background:rgba(var(--gold-rgb),.05); }
#boutique .prod-soon__note{ color:#C6B9A9; }
#boutique .btn--outline{ --fg:var(--gold-pale); --bd:rgba(var(--gold-rgb),.5); }
#boutique .btn--outline:hover{ --bg:var(--gold); --fg:#211E1B; --bd:var(--gold); }
@media(max-width:820px){ .prod-grid{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .prod-grid{ grid-template-columns:1fr; } }

/* ── Carte produit cliquable + fenêtre galerie ────────────────────────── */
.prod-card__img{ position:relative; display:flex; align-items:center; justify-content:center; width:100%; border:0; margin:0 0 1rem; padding:0; cursor:pointer; aspect-ratio:4/5; overflow:hidden; border-radius:12px;
  background:radial-gradient(125% 125% at 50% 28%, #FFFDF9 0%, var(--cream-2) 70%, var(--cream-3) 100%);
  box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.22), inset 0 0 40px rgba(var(--ink-rgb),.05); }
.prod-card__img img{ object-fit:contain; padding:12%; box-sizing:border-box; }
.prod-card__zoom{ position:absolute; left:50%; bottom:10px; transform:translateX(-50%) translateY(6px); background:rgba(var(--ink-rgb),.82); color:var(--cream); font-family:var(--font-body); font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; padding:.5em 1.1em; border-radius:99px; opacity:0; transition:opacity .3s, transform .3s; pointer-events:none; }
.prod-card:hover .prod-card__zoom{ opacity:1; transform:translateX(-50%) translateY(0); }
.prod-card__name{ cursor:pointer; transition:color .3s; }
.prod-card__name:hover{ color:var(--gold-deep); }

/* ---- Fenêtre produit (aperçu boutique) ---- */
.vpm{ position:fixed; inset:0; z-index:10001; display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,40px); }
.vpm[hidden]{ display:none; }
.vpm__backdrop{ position:absolute; inset:0; background:rgba(var(--ink-rgb),.5); -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
.vpm__dialog{ position:relative; z-index:1; background:var(--cream); border:1px solid var(--gold-pale); border-radius:18px; max-width:1060px; width:100%; max-height:94vh; overflow:auto; box-shadow:0 44px 120px -34px rgba(var(--ink-rgb),.6); animation:vpmRise .45s var(--ease) both; }
@keyframes vpmRise{ from{ opacity:0; transform:translateY(18px) scale(.985); } to{ opacity:1; transform:none; } }
.vpm__close{ position:absolute; top:14px; right:14px; z-index:3; width:38px; height:38px; display:flex; align-items:center; justify-content:center; background:rgba(var(--gold-rgb),.08); border:1px solid var(--line-gold); border-radius:50%; font-size:1.4rem; line-height:1; color:var(--charcoal); cursor:pointer; transition:background .25s var(--ease), transform .25s var(--ease); }
.vpm__close:hover{ background:rgba(var(--gold-rgb),.2); transform:rotate(90deg); }
.vpm__grid{ display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(1.3rem,2.3vw,2rem); padding:clamp(1.2rem,2.2vw,1.85rem); }

/* Colonne image (reste visible au défilement) */
.vpm__media{ display:flex; flex-direction:column; align-self:stretch; }
.vpm__main{ position:relative; flex:1 1 0; min-height:150px; border-radius:14px; overflow:hidden;
  background:radial-gradient(125% 125% at 50% 30%, #FBF7F0 0%, var(--cream-2) 68%, var(--cream-3) 100%);
  box-shadow:inset 0 0 0 1px rgba(var(--gold-rgb),.22), inset 0 0 44px rgba(var(--ink-rgb),.05); }
.vpm__main img{ position:absolute; inset:0; width:100%; height:100%; object-fit:contain; padding:3%; box-sizing:border-box; transition:opacity .3s var(--ease); }
.vpm__thumbs{ display:flex; gap:.5rem; margin-top:.75rem; flex-wrap:wrap; justify-content:center; }
.vpm__thumb{ width:64px; height:64px; border:1px solid var(--line-gold); border-radius:9px; overflow:hidden; background:#fff; cursor:pointer; padding:5px; opacity:.6; transition:opacity .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease); }
.vpm__thumb:hover{ opacity:.9; }
.vpm__thumb.is-on{ opacity:1; border-color:var(--gold); box-shadow:0 0 0 1px var(--gold); }
.vpm__thumb img{ width:100%; height:100%; object-fit:contain; }
.vpm__video{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:2; background:#000; }
.vpm__thumb--video{ position:relative; }
.vpm__thumb--video .vpm__play{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(var(--ink-rgb),.32); }
.vpm__thumb--video .vpm__play::before{ content:""; width:0; height:0; margin-left:2px; border-style:solid; border-width:7px 0 7px 12px; border-color:transparent transparent transparent #fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.vpm__thumb--video:hover .vpm__play{ background:rgba(var(--gold-rgb),.42); }

/* Colonne info */
.vpm__info{ display:flex; flex-direction:column; justify-content:center; min-width:0; }
.vpm__tag{ font-family:var(--font-body); font-weight:600; font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-deep); }
.vpm__name{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.65rem,2.7vw,2.25rem); margin:.35rem 0 0; color:var(--charcoal); line-height:1.08; }
.vpm__name::after{ content:""; display:block; width:46px; height:2px; margin:.65rem 0 0; background:linear-gradient(90deg,var(--gold),rgba(var(--gold-rgb),0)); }
.vpm__desc{ font-family:var(--font-body); font-size:.85rem; line-height:1.5; color:#4b443e; margin:.7rem 0 .75rem; }
.vpm__bullets{ list-style:none; margin:0 0 .8rem; padding:0; }
.vpm__bullets li{ position:relative; padding:0 0 .34rem 1.3rem; font-family:var(--font-body); font-size:.82rem; line-height:1.42; color:#4b443e; }
.vpm__bullets li::before{ content:""; position:absolute; left:0; top:.5em; width:6px; height:6px; border-radius:50%; background:var(--gold); }

/* Variantes */
.vpm__opts{ margin:0 0 .85rem; display:flex; flex-direction:column; gap:.55rem; padding-top:.8rem; border-top:1px solid var(--line-gold); }
.vpm__opt{ display:flex; flex-wrap:wrap; align-items:center; gap:.45rem; }
.vpm__opt-label{ width:100%; font-family:var(--font-body); font-weight:600; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 .1rem; }
.vpm__pill{ font-family:var(--font-body); font-size:.78rem; color:var(--charcoal); background:var(--cream-3); border:1px solid var(--line-gold); border-radius:99px; padding:.42em 1.05em; }
button.vpm__pill{ line-height:1.2; -webkit-appearance:none; appearance:none; }
.vpm__pill--btn{ cursor:pointer; transition:border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease); }
.vpm__pill--btn:hover{ border-color:var(--gold); background:#fff; }
.vpm__pill.is-sel{ background:var(--gold); border-color:var(--gold); color:#fff; box-shadow:0 4px 14px -6px rgba(var(--gold-rgb),.85); }

/* CTA + note */
.vpm__info .btn{ align-self:stretch; justify-content:center; text-align:center; margin-top:.2rem; }
.vpm__note{ font-size:.66rem; color:var(--taupe-deep); opacity:.85; margin:.9rem 0 0; text-align:center; }

@media(max-width:680px){
  .vpm__grid{ grid-template-columns:1fr; gap:1.4rem; padding:1.5rem clamp(1.1rem,4vw,1.6rem) 1.8rem; }
  .vpm__media{ align-self:auto; }
  .vpm__main{ aspect-ratio:4/3; flex:none; min-height:0; }
}
@media(prefers-reduced-motion:reduce){ .vpm__dialog{ animation:none; } .vpm__close:hover{ transform:none; } }

/* Certifications alimentaires (icônes) */
.vpm__badges{ display:flex; flex-wrap:wrap; justify-content:center; gap:.85rem 1.1rem; margin-top:.85rem; padding-top:.95rem; border-top:1px solid var(--line-gold); }
.ve-badge{ display:flex; flex-direction:column; align-items:center; gap:.4rem; width:70px; text-align:center; color:var(--gold-deep); }
.ve-badge svg{ width:40px; height:40px; }
.ve-badge span{ font-family:var(--font-body); font-weight:500; font-size:.6rem; letter-spacing:.05em; line-height:1.25; text-transform:uppercase; color:var(--taupe-deep); }
