@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Cormorant+SC:wght@500;600&family=Jost:wght@300;400;500&display=swap');

:root{
  --cream:#F8F4EC;
  --cream-2:#F1EBDD;
  --ink:#22301F;
  --green:#1F3A2E;
  --green-2:#3C5A46;
  --gold:#A9843F;
  --gold-2:#C9A05C;
  --terracotta:#B96B4A;
  --line:rgba(34,48,31,0.14);
  --maxw:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:'Jost',sans-serif;font-weight:300;
  font-size:17px;line-height:1.7;
}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--green);letter-spacing:.005em;}
.eyebrow{
  font-family:'Jost',sans-serif;letter-spacing:.22em;text-transform:uppercase;
  font-size:.72rem;color:var(--gold);font-weight:500;
}
.micro-icon{vertical-align:-6px;margin-right:6px;color:var(--gold-2);opacity:.85;}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}

/* Nav */
header.site{
  position:sticky;top:0;z-index:50;background:rgba(246,241,231,.92);
  backdrop-filter:blur(6px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:6px 32px;max-width:var(--maxw);margin:0 auto;min-height:130px;}
.logo{font-family:'Cormorant SC',serif;font-size:1.3rem;letter-spacing:.14em;color:var(--green);text-decoration:none;display:flex;align-items:center;gap:20px;white-space:nowrap;flex-shrink:0;margin-left:6px;}
.logo img{height:120px;display:block;}
.navlinks{display:flex;gap:22px;list-style:none;margin:0 0 0 40px;padding:0;font-size:.82rem;letter-spacing:.03em;flex-wrap:nowrap;}
.navlinks li{flex-shrink:0;}
.navlinks a{white-space:nowrap;}
.navlinks a{text-decoration:none;color:var(--ink);opacity:.8;padding:4px 0;border-bottom:1px solid transparent;transition:.2s}
.navlinks a:hover{opacity:1;border-color:var(--gold);}
.navtoggle{display:none;}
@media(max-width:860px){
  /* en-tête plus compact sur mobile */
  .nav{min-height:74px;padding:8px 18px;}
  .logo{font-size:1.02rem;gap:10px;letter-spacing:.1em;}
  .logo img{height:52px;}

  /* menu plein écran, opaque, au-dessus de tout */
  .navlinks{position:fixed;inset:0;z-index:200;background:#F8F4EC;
    flex-direction:column;justify-content:center;align-items:center;
    padding:80px 24px 40px;gap:0;font-size:1.12rem;overflow-y:auto;
    transform:translateY(-100%);transition:transform .32s ease;}
  .navlinks.open{transform:translateY(0);box-shadow:0 0 60px rgba(31,58,46,.18);}
  .navlinks li{width:100%;max-width:340px;text-align:center;}
  .navlinks a{display:block;padding:15px 0;opacity:1;color:var(--green);
    border-bottom:1px solid rgba(142,107,168,.18);}
  .navlinks li:last-child a{border-bottom:none;}

  /* le bouton reste visible et cliquable par-dessus le menu ouvert */
  .navtoggle{display:block;position:relative;z-index:210;background:none;border:none;
    font-size:1.7rem;line-height:1;color:var(--green);cursor:pointer;padding:6px 4px;}
}

/* River/wave signature */
.river{position:absolute;pointer-events:none;opacity:.55;}

/* Paper grain */
.grain{position:fixed;inset:0;pointer-events:none;opacity:.022;z-index:1;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%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");
}

.page-wrap{position:relative;}
.page-river{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none;}

/* Hero (pages intérieures) */
.hero{position:relative;overflow:hidden;padding:120px 0 100px;text-align:center;}
.hero .eyebrow{display:block;margin-bottom:18px;}
.hero h1{font-size:clamp(2.6rem,6vw,4.6rem);margin:0 0 10px;line-height:1.05;letter-spacing:.01em;}
.hero .tagline{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.15rem,2.4vw,1.5rem);color:var(--green-2);margin:0 0 20px;}
.hero .sub{font-size:.95rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);}

/* River hero (accueil) */
.river-hero{position:relative;overflow:hidden;padding:0;min-height:82vh;display:flex;align-items:center;}
.river-hero .rsvg{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.river-hero .content{position:relative;z-index:2;text-align:center;width:100%;}
.hero-logo{display:flex;justify-content:center;margin-bottom:8px;}
.hero-logo svg{width:150px;height:auto;}
.river-hero .eyebrow{display:block;margin-bottom:16px;}
.river-hero h1{font-size:clamp(2.8rem,7vw,5.2rem);margin:0 0 8px;letter-spacing:.02em;}
.river-hero .tagline{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(1.2rem,2.6vw,1.6rem);color:var(--green-2);margin:0 0 22px;}
.river-hero .sub{font-size:.92rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
@media(max-width:700px){.river-hero{min-height:70vh;}}

/* Section */
section{padding:88px 0;position:relative;}
section.alt{background:var(--cream-2);}
.section-head{max-width:640px;margin:0 auto 48px;text-align:center;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);margin:6px 0 14px;}
.section-head p{color:var(--green-2);font-size:1.05rem;}

.prose p{margin:0 0 16px;}
.prose{max-width:720px;margin:0 auto;}

/* Cards */
.grid{display:grid;gap:28px;}
.grid.cols-2{grid-template-columns:1fr 1fr;}
.grid.cols-3{grid-template-columns:repeat(3,1fr);}
.grid.cols-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:800px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr;}}
@media(min-width:801px) and (max-width:1050px){.grid.cols-4{grid-template-columns:repeat(2,1fr);}}

.step-num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:var(--gold-2);margin-bottom:6px;}

.card{
  background:#fff;border:1px solid var(--line);border-radius:2px;padding:34px 30px;
  box-shadow:0 2px 14px -8px rgba(31,58,46,.18);
  transition:transform .25s ease, box-shadow .25s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px rgba(31,58,46,.35);}
.card h3{font-size:1.5rem;margin:0 0 8px;}
.card .meta{font-size:.82rem;letter-spacing:.06em;color:var(--gold);text-transform:uppercase;margin-bottom:14px;}
.card p{margin:0 0 10px;font-size:.96rem;}
.card .price{font-family:'Cormorant Garamond',serif;font-size:1.3rem;color:var(--terracotta);margin-top:10px;}

/* Buttons */
.btn{
  display:inline-block;padding:13px 30px;border:1px solid var(--green);
  color:var(--green);text-decoration:none;font-size:.85rem;letter-spacing:.08em;
  text-transform:uppercase;transition:.2s;
}
.card .btn{margin-top:6px;}
.btn:hover{background:var(--green);color:var(--cream);}
.btn.gold{border-color:var(--gold);color:var(--gold);}
.btn.gold:hover{background:var(--gold);color:#fff;}

/* Video */
.video-frame{position:relative;padding-top:56.25%;background:#000;overflow:hidden;}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* Full-bleed video / photo */
.full-bleed{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;}
.video-frame.full-bleed{padding-top:0;height:82vh;max-height:760px;}
.photo-full{overflow:hidden;}

/* Photo affichée en entier, sans recadrage ni voile (z-index:2 = au-dessus du grain) */
.photo-entiere{display:flex;justify-content:center;padding:14px 0 34px;position:relative;z-index:2;}
/* images carrées : la largeur est plafonnée par la hauteur d'écran (80vh)
   pour qu'on voie toute la photo d'un seul coup d'oeil, sans scroller */
.photo-entiere img{display:block;width:100%;max-width:min(1040px,80vh);height:auto;border-radius:6px;}
/* variante bord à bord : la photo prend toute la largeur de l'écran */
.photo-entiere.pleine-largeur{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;padding:0 0 34px;}
.photo-entiere.pleine-largeur img{max-width:none;border-radius:0;}
@media(max-width:900px){
  .photo-entiere{padding:6px 0 22px;}
  .photo-entiere img{max-width:100%;border-radius:0;}
}
.photo-title-overlay{position:relative;}
.photo-title-overlay::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 45%, rgba(0,0,0,0) 70%);
  pointer-events:none;
}
.photo-title-overlay .overlay-text{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:0 32px 40px;max-width:var(--maxw);margin:0 auto;text-align:left;
}
@media(max-width:700px){.photo-title-overlay .overlay-text{padding:0 20px 26px;}}

/* Fondu couleur ciel autour de la photo, pour une transition continue */
.sky-bleed-before{height:70px;background:linear-gradient(to bottom, var(--cream) 0%, #CFD4DE 100%);}
.sky-bleed-after{height:70px;background:linear-gradient(to top, var(--cream) 0%, #CFD4DE 100%);}
@media(max-width:700px){.sky-bleed-before, .sky-bleed-after{height:40px;}}

/* Photo entière (non recadrée), simple et centrée */
.photo-contain-wrap{background:#CFD4DE;display:flex;justify-content:center;align-items:center;}
.photo-contain-wrap img{width:100%;height:auto;display:block;}

/* Photo hero avec légende posée dans le ciel (comme visuel de référence) */

/* Hero Voie du Tambour — vignette circulaire + texte */
.tambour-hero{position:relative;height:88vh;max-height:820px;overflow:hidden;background:#0E1A2E;}
.tambour-hero img{width:100%;height:100%;object-fit:cover;display:block;}
.tambour-vignette{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg, rgba(14,26,46,.85) 0%, rgba(14,26,46,.55) 22%, rgba(14,26,46,.15) 42%, rgba(14,26,46,0) 58%);
}
.tambour-caption{
  position:absolute;top:12%;left:0;z-index:2;max-width:560px;
  padding:0 8% 0 6%;color:#F3E2B8;
}
.tambour-caption h1{
  font-size:clamp(1.8rem,4vw,2.8rem);color:#F3E2B8;letter-spacing:.1em;
  line-height:1.25;margin:0 0 18px;font-weight:600;
}
.tambour-caption .caption-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;color:#E9DFC4;
  font-size:clamp(1rem,1.8vw,1.25rem);margin:0 0 24px;
}
.tambour-caption .caption-tag{
  font-size:.85rem;letter-spacing:.06em;color:#D9B36C;line-height:1.9;
}
.tambour-caption .caption-tag span{color:#E9DFC4;letter-spacing:.02em;}
@media(max-width:700px){
  .tambour-hero{height:66vh;}
  .tambour-caption{top:8%;padding:0 24px;max-width:none;}
}
.photo-hero-caption{position:relative;background:#CFD4DE;overflow:hidden;}
.photo-hero-caption img{width:100%;height:auto;display:block;}
.caption-sky{
  position:absolute;top:6%;left:0;right:0;z-index:2;text-align:center;
  padding:0 24px;
}
.caption-sky h1{
  font-size:clamp(2rem,5.5vw,3.6rem);color:#1F2A44;letter-spacing:.12em;
  margin:0 0 18px;line-height:1.15;font-weight:600;
}
.caption-sub{
  font-family:'Cormorant Garamond',serif;font-style:italic;color:#1F2A44;
  font-size:clamp(1rem,2vw,1.3rem);line-height:1.5;margin:0 0 20px;
}
.caption-tag{font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0;}
.caption-tag span{color:#1F2A44;letter-spacing:.1em;}
.caption-bottom{
  position:absolute;bottom:6%;left:0;right:0;z-index:2;text-align:center;
  color:#fff;padding:0 24px;
}
.caption-bottom p{margin:0 0 8px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;}
.caption-bottom .caption-italic{font-family:'Cormorant Garamond',serif;font-style:italic;text-transform:none;font-size:1.05rem;letter-spacing:0;}
@media(max-width:700px){
  .caption-sky h1{font-size:2rem;}
  .caption-sky{top:4%;}
  .caption-bottom{bottom:4%;}
}
.photo-full img{width:100%;height:64vh;max-height:620px;object-fit:cover;object-position:center 8%;display:block;}
.photo-portrait-wrap{display:flex;justify-content:center;background:var(--cream-2);padding:40px 20px;}
.photo-portrait-wrap img{width:auto;max-width:100%;height:80vh;max-height:840px;object-fit:cover;display:block;}
@media(max-width:700px){.photo-portrait-wrap img{height:60vh;}}

/* Split hero (photo left, text right) */
.split-hero{display:grid;grid-template-columns:1.1fr 1fr;height:88vh;max-height:900px;overflow:hidden;}
.split-photo{height:100%;overflow:hidden;}
.split-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.split-text{height:100%;overflow-y:auto;display:flex;flex-direction:column;justify-content:center;padding:60px 56px;}
.split-text h1{font-size:clamp(2rem,3.6vw,3rem);margin:8px 0 24px;line-height:1.1;}
.split-text p{margin:0 0 16px;font-size:1rem;}
@media(max-width:900px){
  .split-hero{grid-template-columns:1fr;height:auto;max-height:none;}
  .split-photo{height:60vh;}
  .split-text{height:auto;padding:44px 28px;}
}
@media(max-width:700px){
  .video-frame.full-bleed{height:46vh;}
}

/* Card photo header */
.card{overflow:hidden;}
.card .card-photo{margin:-34px -30px 20px;width:calc(100% + 60px);height:230px;overflow:hidden;}
.card .card-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease;}
.card:hover .card-photo img{transform:scale(1.045);}

/* Table */
table.tarifs{width:100%;border-collapse:collapse;font-size:.94rem;}
table.tarifs th,table.tarifs td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;}
table.tarifs th{font-family:'Jost';letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;color:var(--gold);}
table.tarifs td.num{color:var(--terracotta);font-family:'Cormorant Garamond',serif;font-size:1.1rem;}

/* Timeline */
.steps{list-style:none;margin:0;padding:0;counter-reset:step;display:grid;gap:22px;}
.steps li{display:flex;gap:20px;align-items:flex-start;}
.steps li::before{
  counter-increment:step;content:counter(step,decimal-leading-zero);
  font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:var(--gold-2);flex-shrink:0;width:44px;
}

/* Footer */
footer{background:var(--green);color:var(--cream);padding:56px 0 34px;}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;}
footer a{color:var(--cream);text-decoration:none;opacity:.85;}
footer a:hover{opacity:1;}
footer .col h4{font-family:'Cormorant SC';letter-spacing:.12em;font-size:1rem;color:var(--gold-2);margin:0 0 14px;}
footer .col p, footer .col a{display:block;font-size:.92rem;margin-bottom:8px;}
.copyright{text-align:center;font-size:.78rem;opacity:.55;margin-top:40px;}

/* Ecosystem diagram interactivity */
.eco-node{cursor:pointer;text-decoration:none;}
.eco-node circle.core{transition:transform .35s ease, filter .35s ease, fill .35s ease;transform-box:fill-box;transform-origin:center;}
.eco-node text{transition:fill .3s ease;}
.eco-node:hover circle.core{filter:drop-shadow(0 0 6px rgba(201,160,92,.55));transform:scale(1.025);}
.eco-node:hover text{fill:var(--terracotta);}
@keyframes ecoPulse{
  0%,100%{filter:drop-shadow(0 0 0 rgba(201,160,92,0));}
  50%{filter:drop-shadow(0 0 8px rgba(201,160,92,.45));}
}
.eco-node circle.core{animation:ecoPulse 4.5s ease-in-out infinite;}
.eco-node:nth-of-type(2) circle.core{animation-delay:.4s;}
.eco-node:nth-of-type(3) circle.core{animation-delay:.8s;}
.eco-node:nth-of-type(4) circle.core{animation-delay:1.2s;}
.eco-node:nth-of-type(5) circle.core{animation-delay:1.6s;}
.eco-node:nth-of-type(6) circle.core{animation-delay:2s;}
.eco-node:nth-of-type(7) circle.core{animation-delay:2.4s;}
.eco-node:nth-of-type(8) circle.core{animation-delay:2.8s;}
.eco-branch{transition:stroke-opacity .3s ease, stroke-width .3s ease;}
.eco-node:hover ~ .eco-branch{stroke-opacity:1;}
@keyframes ecoFlow{ to{ stroke-dashoffset:-200; } }
.eco-flow{stroke-dasharray:2 7;animation:ecoFlow 9s linear infinite;stroke-opacity:0.75 !important;}
.note{font-size:.86rem;color:var(--green-2);font-style:italic;margin-top:18px;}

/* photo strip */
.photo-band{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:340px;gap:4px;overflow:hidden;}
.photo-band img{height:100%;width:100%;object-fit:cover;transition:transform .5s ease;filter:saturate(1.02);}
.photo-band img:hover{transform:scale(1.03);}
@media(max-width:700px){.photo-band{grid-template-columns:1fr;grid-auto-rows:220px;}}

/* ===== Thème "crépuscule" : chaud, nettement moins sombre que le nuit ===== */
body.theme-crepuscule{
  --cream:#4B4238;
  --cream-2:#584E42;
  --ink:#F2E9D8;
  --green:#F0DBAE;
  --green-2:#CDC0A8;
  --gold:#E0BA76;
  --gold-2:#EFD29B;
  --terracotta:#E5A278;
  --line:rgba(242,233,216,0.18);
  background:var(--cream);
  color:var(--ink);
}
body.theme-crepuscule header.site{background:rgba(75,66,56,.94);border-bottom-color:var(--line);}
body.theme-crepuscule .navlinks a{color:var(--ink);}
body.theme-crepuscule .navtoggle{color:var(--gold-2);}
body.theme-crepuscule .card{background:#584E42;border-color:var(--line);}
body.theme-crepuscule .card p{color:var(--ink);opacity:.9;}
body.theme-crepuscule table.tarifs td, body.theme-crepuscule table.tarifs th{border-bottom-color:var(--line);}
body.theme-crepuscule .grain{mix-blend-mode:overlay;opacity:.07;}
body.theme-crepuscule .btn{border-color:var(--gold-2);color:var(--gold-2);}
body.theme-crepuscule .btn:hover{background:var(--gold-2);color:#4B4238;}
body.theme-crepuscule footer{background:#3E362E;}

/* ===== Thème sombre "nuit" (Danse Médecine / La Voie du Tambour) ===== */
body.theme-nuit{
  --cream:#0E1A2E;
  --cream-2:#15243D;
  --ink:#E9E2D1;
  --green:#E3C787;
  --green-2:#B9AE93;
  --gold:#D9B36C;
  --gold-2:#E8C98A;
  --terracotta:#D99A6C;
  --line:rgba(233,226,209,0.14);
  background:var(--cream);
  color:var(--ink);
}
body.theme-nuit header.site{background:rgba(14,26,46,.92);border-bottom-color:var(--line);}
body.theme-nuit .navlinks a{color:var(--ink);}
body.theme-nuit .navtoggle{color:var(--gold-2);}
body.theme-nuit .card{background:#16253F;border-color:var(--line);}
body.theme-nuit .card p{color:var(--ink);opacity:.85;}
body.theme-nuit table.tarifs td, body.theme-nuit table.tarifs th{border-bottom-color:var(--line);}
body.theme-nuit .video-frame{background:#000;}
body.theme-nuit .grain{mix-blend-mode:overlay;opacity:.10;}
body.theme-nuit .btn{border-color:var(--gold-2);color:var(--gold-2);}
body.theme-nuit .btn:hover{background:var(--gold-2);color:#0E1A2E;}
body.theme-nuit footer{background:#0A1424;}

/* ===== Thème clair "ciel" (Danse État Sauvage) ===== */
body.theme-ciel{
  --cream:#E7F1F6;
  --cream-2:#D9EAF1;
  --ink:#1F3A2E;
  --green:#1F3A2E;
  --green-2:#3C5A46;
  --gold:#A9843F;
  --gold-2:#C9A05C;
  --terracotta:#B96B4A;
  --line:rgba(31,58,46,0.12);
  background:var(--cream);
  color:var(--ink);
}
body.theme-ciel header.site{background:rgba(231,241,246,.92);}
body.theme-ciel .card{background:#FBFEFF;}
body.theme-ciel footer{background:var(--green);}

/* Titre lu par les moteurs de recherche et les lecteurs d'écran, invisible à l'écran */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Sections resserrées + listes compactes (page Soins) */
section.compact{padding:52px 0;}
.steps-serres{gap:14px;}
.steps-serres li{font-size:.95rem;}
.apres{margin-top:22px;text-align:center;font-size:.92rem;color:var(--green-2);}
.apres span{display:inline-block;padding:4px 14px;margin:4px 3px;border:1px solid var(--line);border-radius:20px;}
@media(max-width:820px){
  section.compact{padding:38px 0;}
  .grid.cols-4{grid-template-columns:1fr 1fr;}
}
.temoignage p{font-style:italic;color:var(--ink);}
.temoignage .signature{font-style:normal;font-family:'Jost';font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-top:14px;}

/* ===== Page Soins : accents braise + flux d'énergie ===== */
body.page-soins{--braise:#C0503C;--corail:#E4886C;}
body.page-soins .eyebrow{color:var(--braise);}
body.page-soins .steps li::before{color:var(--braise);}
body.page-soins .card .meta{color:var(--braise);}
body.page-soins .card:hover{box-shadow:0 18px 44px -26px rgba(192,80,60,.55);}
body.page-soins .apres span{border-color:rgba(192,80,60,.3);color:var(--braise);background:rgba(228,136,108,.06);}
body.page-soins .temoignage .signature{color:var(--braise);}
body.page-soins .btn.gold{border-color:var(--braise);color:var(--braise);}
body.page-soins .btn.gold:hover{background:var(--braise);color:#fff;}
body.page-soins table.tarifs td.num{color:var(--braise);}

/* la carte-témoignage mise en avant : filet braise sur la gauche */
.temoignage-fort{border-left:3px solid var(--braise);}
.temoignage-fort p:first-child{font-size:1.06rem;line-height:1.75;}

/* titres de section soulignés d'un trait qui s'estompe */
body.page-soins .section-head h2::after{
  content:"";display:block;width:120px;height:1px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--braise),var(--gold),transparent);
}

/* Flux d'énergie : trait ondulant entre deux sections */
.flux{width:100%;line-height:0;opacity:.75;margin:-10px 0;}
.flux svg{width:100%;height:54px;display:block;}
@media(max-width:700px){.flux svg{height:34px;}}

/* halo chaud derrière une section */
.halo{position:relative;overflow:hidden;}
.halo::before{
  content:"";position:absolute;top:-40%;right:-15%;width:60%;height:180%;
  background:radial-gradient(closest-side,rgba(228,136,108,.16),transparent 70%);
  pointer-events:none;z-index:0;
}
.halo > *{position:relative;z-index:1;}

/* Portrait de la page Francesca */
.portrait img{width:100%;max-width:420px;height:auto;border-radius:3px;display:block;margin:0 auto;
  box-shadow:0 20px 46px -28px rgba(31,58,46,.5);}
@media(max-width:820px){.portrait img{max-width:320px;}}

/* Bande animale floutée (page Le projet) */
.bande-animale{
  position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;
  height:340px;overflow:hidden;
}
.bande-animale img{
  width:100%;height:100%;object-fit:cover;object-position:center 42%;
  opacity:.9;
}
.bande-animale::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,var(--cream) 0%,transparent 22%,transparent 78%,var(--cream) 100%),
             linear-gradient(180deg,var(--cream) 0%,transparent 24%,transparent 74%,var(--cream) 100%);
}
@media(max-width:820px){.bande-animale{height:220px;}}

/* Silhouette animale en fond du hero d'accueil */
.river-hero .animal-fond{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden;}
.river-hero .animal-fond img{height:122%;width:auto;max-width:none;opacity:1;transform:translateY(2%);}

/* voile très doux sous les mots, pour tenir le blanc sans assombrir l'image */
.river-hero .content::before{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(880px,86vw);height:74%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(48,34,58,.34),rgba(48,34,58,.16) 58%,transparent 78%);
}
.river-hero .content h1{color:#FFFFFF;text-shadow:0 1px 2px rgba(40,28,48,.55), 0 3px 22px rgba(40,28,48,.5);}
.river-hero .content .tagline{color:#FFFFFF;text-shadow:0 1px 2px rgba(40,28,48,.5), 0 2px 16px rgba(40,28,48,.45);}
.river-hero .content .eyebrow,
.river-hero .content .sub{color:#F5E6C4;text-shadow:0 1px 2px rgba(40,28,48,.55), 0 2px 14px rgba(40,28,48,.45);}
@media(max-width:700px){.river-hero .animal-fond img{height:100%;}}

/* ===== Accueil : la palette de la silhouette (violet, prune, bleu nuit) ===== */
body.page-accueil{
  --violet:#8E6BA8;      /* violet moyen de la silhouette */
  --prune:#6E4B78;       /* prune profond */
  --mauve:#C39BC6;       /* rose-mauve clair */
  --nuit-bleue:#3C4763;  /* bleu du papillon, en bas de l'image */
}
/* surtitres en prune plutôt qu'en doré */
body.page-accueil .eyebrow{color:var(--prune);}
body.page-accueil .card .meta{color:var(--prune);}
/* trait dégradé sous les titres de section */
body.page-accueil .section-head h2::after{
  content:"";display:block;width:130px;height:1px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--violet),var(--mauve),var(--gold),transparent);
}
/* cartes : liseré violet en haut, ombre violette au survol */
body.page-accueil .card{border-top:2px solid transparent;transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
body.page-accueil .card:hover{border-top-color:var(--violet);box-shadow:0 20px 46px -26px rgba(110,75,120,.6);}
body.page-accueil .card h3{color:var(--prune);}
/* boutons */
body.page-accueil .btn{border-color:var(--violet);color:var(--prune);}
body.page-accueil .btn:hover{background:var(--prune);color:#fff;}
body.page-accueil .btn.gold{border-color:var(--gold);color:var(--gold);}
body.page-accueil .btn.gold:hover{background:var(--gold);color:#fff;}
/* fond des sections alternées : un souffle mauve au lieu du crème plat */
body.page-accueil section.alt{
  background:linear-gradient(180deg,rgba(195,155,198,.16),rgba(142,107,168,.09) 55%,rgba(60,71,99,.07));
}
/* halo mauve diffus derrière la section Soins / Francesca */
body.page-accueil section:not(.alt):not(.river-hero){position:relative;overflow:hidden;}
body.page-accueil section:not(.alt):not(.river-hero)::before{
  content:"";position:absolute;top:-30%;left:-10%;width:52%;height:160%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(142,107,168,.14),transparent 72%);
}
body.page-accueil section:not(.alt):not(.river-hero) > *{position:relative;}

/* la rivière descend jusqu'en bas, en s'effaçant juste avant le pied de page */
body.page-accueil .page-river{
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 90%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 90%,transparent 100%);
}

/* ===== Souffle mauve sur tout le site ===== */
/* les sections alternées ne sont plus d'un crème plat : un dégradé issu de la silhouette */
section.alt{
  background:linear-gradient(180deg,rgba(195,155,198,.17),rgba(142,107,168,.10) 55%,rgba(60,71,99,.07));
}
/* la page Soins garde sa braise : le mauve y est tiré vers le rose chaud */
body.page-soins section.alt{
  background:linear-gradient(180deg,rgba(198,155,175,.17),rgba(160,105,120,.10) 55%,rgba(90,70,95,.07));
}

/* ===== Agenda : légende filtrable + grille des mois ===== */
.legende{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.filtre{
  font-family:'Jost',sans-serif;font-size:.78rem;letter-spacing:.06em;
  background:transparent;border:1px solid var(--line);border-radius:22px;
  padding:7px 15px;cursor:pointer;color:var(--green-2);opacity:.45;
  display:inline-flex;align-items:center;gap:8px;transition:opacity .2s ease, border-color .2s ease;
}
.filtre.actif{opacity:1;border-color:rgba(34,48,31,.28);color:var(--ink);}
.filtre:hover{opacity:1;}
.pastille{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block;}
.pastille.corps{background:#3E6E9E;}
.pastille.sentier{background:#6E8C5A;}
.pastille.labo{background:#3E4A44;}
.pastille.immersion{background:#8FB4C4;}
.pastille.medecine{background:#C08A2E;}
.pastille.tambour{background:#8E6BA8;}
.pastille.retraite{background:#6E4B78;}

.grille-mois{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.mois{background:rgba(255,255,255,.62);border:1px solid var(--line);border-radius:3px;padding:22px 22px 18px;}
.mois h3{font-size:1.35rem;margin:0 0 14px;padding-bottom:10px;border-bottom:1px solid var(--line);}
.mois ul{list-style:none;margin:0;padding:0;}
.mois .evt{display:flex;align-items:flex-start;gap:11px;padding:9px 0;border-bottom:1px dashed rgba(34,48,31,.10);}
.mois .evt:last-child{border-bottom:0;}
.mois .evt .pastille{margin-top:7px;}
.mois .evt a{display:flex;flex-direction:column;gap:1px;text-decoration:none;}
.mois .evt strong{font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-weight:600;color:var(--green);}
.mois .evt span:not(.pastille){font-size:.86rem;color:var(--green-2);line-height:1.45;}
.mois .evt a:hover strong{color:var(--terracotta);}
@media(max-width:980px){.grille-mois{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){.grille-mois{grid-template-columns:1fr;gap:18px;}}

/* Silhouette décorative derrière la grille de l'agenda */
.deco-elephant{position:relative;overflow:hidden;}
.deco-elephant::before{
  content:"";position:absolute;right:-6%;top:8%;width:min(520px,38vw);height:76%;
  background:url("images/animal-elephant.png") no-repeat center/contain;
  opacity:.14;pointer-events:none;z-index:0;
}
.deco-elephant > *{position:relative;z-index:1;}
@media(max-width:900px){.deco-elephant::before{width:70vw;right:-18%;opacity:.09;}}

/* Hero avec silhouette nette derrière le titre (Agenda) */
.hero-anime{position:relative;overflow:hidden;padding:0;min-height:56vh;display:flex;align-items:center;}
.hero-anime .animal-fond{position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.hero-anime .animal-fond img{height:112%;width:auto;max-width:none;opacity:1;}
.hero-anime .content{position:relative;z-index:2;text-align:center;width:100%;}
.hero-anime .content{transform:translateY(9%);}
.hero-anime h1{font-size:clamp(2.8rem,7vw,5rem);margin:0;color:#FFFFFF;
  text-shadow:0 1px 3px rgba(52,34,60,.85), 0 2px 10px rgba(52,34,60,.7), 0 4px 30px rgba(52,34,60,.55);}
.hero-anime .tagline{font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(1.1rem,2.4vw,1.5rem);color:#FFFFFF;margin:10px 0 0;
  text-shadow:0 1px 3px rgba(52,34,60,.8), 0 2px 12px rgba(52,34,60,.6);}
@media(max-width:700px){.hero-anime{min-height:44vh;}.hero-anime .animal-fond img{height:92%;}}

/* la liane de l'agenda s'efface avant le pied de page */
.page-agenda .page-river{
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 88%,transparent 100%);
  mask-image:linear-gradient(180deg,#000 0%,#000 88%,transparent 100%);
}

/* ===== Bloc manifeste : la phrase forte de la page Soins ===== */
.manifeste{
  position:relative;overflow:hidden;padding:96px 0 84px;text-align:center;
  background:linear-gradient(160deg,rgba(192,80,60,.10),rgba(228,136,108,.06) 45%,rgba(198,155,175,.10));
}
.manifeste::before,.manifeste::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  width:min(420px,60vw);height:1px;
  background:linear-gradient(90deg,transparent,var(--braise),var(--gold),transparent);
}
.manifeste::before{top:38px;}
.manifeste::after{bottom:38px;}
.manifeste .chiffre{
  position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  font-family:'Cormorant Garamond',serif;font-size:clamp(18rem,34vw,26rem);
  line-height:1;color:var(--braise);opacity:.055;pointer-events:none;user-select:none;
}
.manifeste .wrap{position:relative;z-index:1;max-width:760px;}
.manifeste .grande{
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(1.5rem,3.4vw,2.2rem);line-height:1.45;color:var(--green);
  margin:0 0 14px;
}
.manifeste .grande.accent{color:var(--braise);font-weight:600;margin-top:26px;}
.manifeste .apres-manifeste{
  max-width:560px;margin:34px auto 0;color:var(--green-2);font-size:1.02rem;
}
.manifeste .source{
  margin-top:30px;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--green-2);opacity:.75;
}
@media(max-width:700px){.manifeste{padding:64px 0 56px;}}

/* Bandeau d'ouverture pleine largeur (page Soins) */
.pleine-image{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;line-height:0;padding:0;}
.pleine-image img{display:block;width:100%;height:auto;}

/* Section "Si quelque chose vous retient" — les cartes répondent aux craintes */
.rassurer .card h3{font-size:1.08rem;font-style:italic;color:var(--green-2);font-family:'Cormorant Garamond',serif;font-weight:500;}
.rassurer .card{border-left:2px solid var(--gold-2);}

/* Calendriers resserrés en colonnes */
.compact-table{width:100%;font-size:.86rem;margin-top:10px;}
.compact-table td{padding:6px 4px;border-bottom:1px dashed rgba(34,48,31,.10);vertical-align:top;}
.compact-table td:first-child{color:var(--green-2);white-space:nowrap;}
.compact-table td:nth-child(2){font-weight:500;white-space:nowrap;}
.compact-table td.theme{color:var(--green-2);font-style:italic;font-size:.82rem;}
@media(max-width:900px){.compact-table td.theme{display:none;}}

/* Bandeau de menu : un souffle mauve, dans la palette du site */
header.site{
  background:linear-gradient(180deg,rgba(213,182,216,.30),rgba(195,155,198,.20) 60%,rgba(246,241,231,.92));
}
