@font-face{font-family: 'Jost';font-style: normal;font-weight: 300;font-display: swap;src: url(../fonts/jost-920dcb.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Jost';font-style: normal;font-weight: 300;font-display: swap;src: url(../fonts/jost-0428ef.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Jost';font-style: normal;font-weight: 400;font-display: swap;src: url(../fonts/jost-920dcb.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Jost';font-style: normal;font-weight: 400;font-display: swap;src: url(../fonts/jost-0428ef.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 200;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-058c9d.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 200;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-4c1772.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 300;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-058c9d.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 300;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-4c1772.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 400;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-058c9d.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 400;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-4c1772.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 600;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-058c9d.woff2) format('woff2');unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family: 'Nunito Sans';font-style: normal;font-weight: 600;font-stretch: 100%;font-display: swap;src: url(../fonts/nunito-sans-4c1772.woff2) format('woff2');unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family: 'Mrs Saint Delafield';font-style: normal;font-weight: 400;font-display: swap;src: url(../fonts/mrs-saint-delafield-f5951a.woff2) format('woff2');unicode-range: U+42,U+61,U+79}:root{--filtre-portrait: saturate(.82) sepia(.1) contrast(.94) brightness(1.04);--filtre-cabinet: sepia(.16) saturate(.8) contrast(.9) brightness(1.04);--vert: #2F3A32;--terre: #B9704E;--taupe: #5A5148;--fond: #FFFFFF;--fond-doux: #F7F3EE;--nav-fond: #3E5444;--nav-texte: #F7F3EE;--terre-texte: #A25A3A;--terre-clair: #E3A583;/* Hauteur de la barre : assez haute pour que l'oiseau passe sous les onglets */
  --branche-h: clamp(112px, 10.6vw, 200px);
  /* Marge au-dessus des onglets */
  --nav-marge: clamp(8px, 1vw, 18px);
  /* Largeur du logo de l'accueil;l'épaisseur des traits en découle */
  /* …sans dépasser ce qui laisse la place au titre en bas du premier écran */
  --logo-l: min(clamp(220px, 28vw, 440px), calc((100svh - var(--branche-h) - 15rem) * 480 / 443));
  --trait: calc(var(--logo-l) * 3 / 480);

  --police-titre: "Jost", "Futura", system-ui, sans-serif;
  --police-texte: "Nunito Sans", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: var(--branche-h); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Fond de la fenêtre en vert : pas de blanc qui apparaît en tirant la page vers le bas (ni en bas) */
html { background: var(--nav-fond); }

body {
  margin: 0;
  background: var(--nav-fond);
  color: var(--vert);
  font-family: var(--police-texte);
  font-size: 1.0625rem;
  line-height: 1.65;
}

img { max-width: 100%; height: auto; display: block; }

.lien-evitement {
  position: absolute; left: 1rem; top: -100px; z-index: 100;
  background: var(--vert); color: #fff; padding: .5rem 1rem;
}
.lien-evitement:focus { top: 1rem; }

/* ---------- Barre de navigation « branche » ---------- */

.branche {
  position: sticky;
  top: 0;
  z-index: 50;
  height: var(--branche-h);
  margin-bottom: calc(var(--branche-h) * -1);   /* l'accueil passe dessous : blanc sous la courbe */ pointer-events: none}.branche__ligne{position: absolute;inset: 0;width: 100%;height: 100%;overflow: visible;transition: filter .3s ease}.branche__fond{fill: var(--nav-fond)}.branche__ligne #branche-chemin{fill: none;stroke: var(--vert);stroke-width: var(--trait);stroke-linecap: round;vector-effect: non-scaling-stroke}/* Une fois qu'on a quitté le haut de page, une ombre légère suit la courbe */
.branche.est-defilee .branche__ligne {
  filter: drop-shadow(0 5px 6px rgba(47, 58, 50, .12));
}

/* Les 8 éléments du menu : même écart entre chacun, l'ensemble centré */ .branche__nav{position: relative;z-index: 1;padding-top: var(--nav-marge)}.branche__nav ul{list-style: none;margin: 0 auto;padding: 0;width: min(100%,90vw);height: calc(var(--branche-h) * .4);display: flex;justify-content: space-between;align-items: center}.branche__nav li{pointer-events: auto}.branche__nav a{font-family: var(--police-texte);font-size: clamp(11px,.9vw,17px);font-weight: 200;text-transform: uppercase;letter-spacing: .1em;line-height: 1;color: var(--nav-texte);text-decoration: none;white-space: nowrap;padding: .25em .1em;transition: color .3s ease}.menu-baya{display: inline-block;height: clamp(15.6px,1.5vw,28.8px);aspect-ratio: 339.4 / 144;vertical-align: -.3em;background-color: currentColor;-webkit-mask: url(../img/baya-mot.svg) no-repeat center / contain;mask: url(../img/baya-mot.svg) no-repeat center / contain}.visuellement-cache{position: absolute;width: 1px;height: 1px;overflow: hidden;clip: rect(0 0 0 0);clip-path: inset(50%);white-space: nowrap}.branche__nav a:hover,.branche__nav a[aria-current="true"]{color: var(--terre-clair)}.branche__nav .branche__rdv{display: inline-block;font-size: clamp(11px,.95vw,18px);/* garde sa taille d'avant, un peu plus grand que les onglets */
  letter-spacing: .12em;
  padding: .75em 1.5em;
  border: 1px solid var(--terre-clair);
  border-radius: 999px;
  color: var(--nav-texte);
  transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
/* Survol discret : voile terre cuite très léger, texte qui prend la couleur du contour */
.branche__nav .branche__rdv:hover,
.branche__nav .branche__rdv:focus-visible {
  background: rgba(227, 165, 131, .12);
  color: var(--terre-clair);
}
.branche__nav a:focus-visible { outline: 2px solid var(--terre-clair); outline-offset: 4px; border-radius: 2px; }

/* ---------- Mobile : « baya » à gauche, bouton menu à droite, l'oiseau entre les deux ---------- */ .branche__burger{display: none}@media (max-width: 1099.98px){:root{--logo-l: min(72vw,320px,calc((100svh - var(--branche-h) - 17rem) * 480 / 443))}.branche__nav ul{width: 100%;height: calc(var(--branche-h) * .46);padding: 0 20px;display: flex;justify-content: flex-start}.branche__nav li:not(:first-child){display: none}.menu-baya{height: clamp(20px,6vw,26px)}/* Deux brins de longueurs différentes,comme des rameaux;ils se croisent à l'ouverture */
  .branche__burger {
    display: block;
    position: absolute;
    right: 12px;
    top: calc(var(--nav-marge) + var(--branche-h) * .23);
    transform: translateY(-50%);
    z-index: 2;
    width: 48px; height: 48px;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    pointer-events: auto;
    -webkit-tap-highlight-color: transparent;
  }
  .branche__brin {
    position: absolute;
    right: 10px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--nav-texte);
    transition: transform .4s ease, width .4s ease, top .4s ease, background-color .3s ease;
  }
  .branche__brin:nth-of-type(2) { width: 28px; top: 19px; }
  .branche__brin:nth-of-type(3) { width: 18px; top: 28px; }
  .branche__burger[aria-expanded="true"] .branche__brin { width: 24px; top: 23px; background: var(--terre-clair); }
  .branche__burger[aria-expanded="true"] .branche__brin:nth-of-type(2) { transform: rotate(40deg); }
  .branche__burger[aria-expanded="true"] .branche__brin:nth-of-type(3) { transform: rotate(-40deg); }
  .branche__burger:focus-visible { outline: 2px solid var(--terre-clair); outline-offset: -4px; border-radius: 50%; }
}

/* L'oiseau : positionné et orienté en JS (variables --x,--y,--angle,--sens) */ .oiseau{position: absolute;left: 0;top: 0;width: clamp(28px,2.8vw,54px);height: auto;aspect-ratio: 34 / 28;overflow: visible;pointer-events: none;/* le point d'appui (sous le ventre) est à 44 % / 79 % de la boîte */
  transform-origin: 44% 79%;
  transform:
    translate(calc(var(--x, -100px) - 44%), calc(var(--y, 0px) - 79%))
    rotate(var(--angle, 0deg))
    scaleX(var(--sens, 1));
  opacity: 0;
  transition: opacity .4s ease, transform .25s ease;
}
.oiseau.saute { transition: opacity .4s ease; }
.oiseau.est-pret { opacity: 1; }
.oiseau__corps { transform-box: fill-box; transform-origin: 50% 100%; }
.oiseau.saute .oiseau__corps { animation: battement .32s ease-in-out infinite; }

@keyframes battement {
  0%, 100% { transform: scale(1, 1); }
  50%      { transform: scale(1.04, .94); }
}
/* Arrivée en vol (battements plus rapides), atterrissage avec rebond, tête penchée */
.oiseau { pointer-events: auto; }
.oiseau.vole .oiseau__corps { animation: battement-vol .18s ease-in-out infinite; }
.oiseau.atterrit .oiseau__corps { animation: atterrissage .5s cubic-bezier(.3, 1.6, .5, 1); }
.oiseau.curieux .oiseau__corps { animation: curieux 1.1s ease-in-out; transform-origin: 40% 90%; }
@keyframes battement-vol {
  0%, 100% { transform: scale(1, 1) translateY(0); }
  50%      { transform: scale(1.1, .82) translateY(-6%); }
}
@keyframes atterrissage {
  0%   { transform: scale(1.18, .72); }
  45%  { transform: scale(.94, 1.08); }
  100% { transform: scale(1, 1); }
}
@keyframes curieux {
  0%, 100% { transform: rotate(0); }
  20%, 45% { transform: rotate(-14deg); }
  60%, 85% { transform: rotate(7deg); }
}

/* ---------- Sections ---------- */

.section {
  min-height: 90vh;
  padding: clamp(4rem, 9vw, 8rem) 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.section { background: var(--fond); }   /* les sections gardent leurs couleurs, le fond de page est vert */
/* Alternance des fonds : blanc / beige */
#sophrologie, #seances, #contact { background: var(--fond-doux); }

/* Haut de chaque section (et du pied de page) courbé comme la branche de la barre :
   même tracé (M0 84 Q900 56 1920 90), même amplitude rapportée à la hauteur de la barre */
.section:not(.section--accueil),
.pied { position: relative; }
.section:not(.section--accueil)::before,
.pied::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  bottom: calc(100% - 1px);
  height: calc(var(--branche-h) * .3);
  background: inherit;
  pointer-events: none;
  -webkit-mask: var(--courbe) no-repeat 0 0 / 100% 100%;
          mask: var(--courbe) no-repeat 0 0 / 100% 100%;
}
:root {
  --courbe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1920 36' preserveAspectRatio='none'%3E%3Cpath d='M0 28 Q900 0 1920 34 V36 H0Z'/%3E%3C/svg%3E");
}

.section__texte { max-width: 42rem; width: 100%; }

h1, h2 {
  text-wrap: balance;   /* pas de mot seul sur la dernière ligne */
  font-family: var(--police-titre);
  font-weight: 300;
  letter-spacing: .02em;
  line-height: 1.2;
  margin: 0 0 1.25rem;
}
h1 { font-size: clamp(1.7rem, 3.4vw, 2.7rem); text-align: center; margin-bottom: .5rem; text-wrap: balance; }
.accroche {
  margin: 0 0 1.5rem;
  font-family: var(--police-titre);
  font-weight: 300;
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  color: var(--terre);
}
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h2::after {
  content: "";
  display: block;
  width: 2.5rem; height: 2px;
  margin-top: .9rem;
  background: var(--terre);
}

.liste { padding-left: 1.1rem; }
.liste li::marker { color: var(--terre); }

/* Accueil : la spirale pend de la branche, sur un fond vert très pâle aux formes courbes */
.section--accueil {
  background: #F2F5F2 url(../img/fond-accueil.svg) center top / cover no-repeat;
  min-height: 100vh;
  padding-top: calc(var(--branche-h) + clamp(2.5rem, 5vw, 4.5rem));
  padding-bottom: 0;   /* l'accueil = exactement le premier écran */ justify-content: flex-start;gap: clamp(2rem,5vw,4rem)}.section--accueil .section__texte{text-align: center}/* Occupe tout le premier écran → le texte d'accueil n'apparaît qu'en descendant */
.accueil__ecran {
  width: 100%;
  min-height: calc(100vh - var(--branche-h) - clamp(2.5rem, 5vw, 4.5rem));
  min-height: calc(100svh - var(--branche-h) - clamp(2.5rem, 5vw, 4.5rem) - env(safe-area-inset-top, 0px));
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* Le h1 se cale en bas du premier écran : visible dès l'arrivée */ .accueil__ecran h1{margin: auto 0 0;padding: 1.5rem 0 clamp(1.25rem,4vh,2.5rem);max-width: 34rem;font-size: clamp(1.05rem,1.55vw,1.4rem);font-weight: 300;line-height: 1.55;letter-spacing: .03em;color: #7A7066}.accueil__ecran h1 em{font-style: normal;color: var(--terre)}.accueil__logo{position: relative;width: var(--logo-l)}.accueil__tige{position: absolute;left: 50%;bottom: 100%;width: var(--trait);height: calc(var(--branche-h) * .403 + clamp(2.5rem,5vw,4.5rem));transform: translateX(-50%);transform-origin: top;background: var(--vert);animation: tige .7s cubic-bezier(.45,0,.55,1) both}@keyframes tige{from{transform: translateX(-50%) scaleY(0)}to{transform: translateX(-50%) scaleY(1)}}@media (prefers-reduced-motion: reduce){.accueil__tige{animation: none}}/* Spirale posée exactement sur l'image du texte (même viewBox, même taille) */
.accueil__spirale {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  overflow: visible;
}
/* Cachée tant que le script n'a pas préparé le tracé (évite un flash de la spirale entière) */ .js .accueil__spirale path{stroke-dasharray: 0 99999}/* Sous-titre posé sur le logo (même viewBox);« baya » et le sous-titre restent flous et invisibles jusqu'à la fin de la spirale */
.accueil__sous-titre {
  position: absolute; left: 0; top: 0;
  width: 100%;
}
.js .accueil__mot,
.js .accueil__sous-titre {
  opacity: 0;
  filter: blur(8px);
  transition: opacity 1.4s ease, filter 1.6s ease;
}
.js .est-dessine .accueil__mot,
.js .est-dessine .accueil__sous-titre { opacity: 1; filter: blur(0); }

.rdv__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2rem; }
.bouton {
  display: inline-block;
  padding: .8rem 1.6rem;
  border: 1px solid var(--vert);
  border-radius: 999px;
  background: var(--vert);
  color: #fff;
  text-decoration: none;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.bouton:hover { background: var(--terre); border-color: var(--terre); }
.bouton--clair { background: transparent; color: var(--vert); }
.bouton--clair:hover { color: #fff; }

/* ---------- Présentation ---------- */

/* Introduction centrée au-dessus de la photo et du texte */
.presentation__intro {
  max-width: 40rem;
  margin: 0 auto clamp(3rem, 7vw, 5.5rem);
  text-align: center;
}
.presentation__intro .accroche { font-size: clamp(1.4rem, 2.6vw, 2rem); margin-bottom: 1rem; }
.presentation__intro p:last-child { margin: 0; }

.presentation {
  width: 100%;
  max-width: 64rem;
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  align-items: center;
  gap: clamp(2.5rem, 6vw, 5.5rem);
}
/* Photo ronde, entourée d'une spirale qui s'ouvre comme celle du logo
   (tracé calculé pour une photo de 76 % : rayon 190 sur 500) */
.presentation__photo {
  position: relative;
  margin: 0;
  max-width: 28rem;
  width: 100%;
  aspect-ratio: 1;
  justify-self: center;
  display: grid;
  place-items: center;
}
.presentation__photo > img {
  width: 76%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: 50% 50%;
  border-radius: 50%;
}
.presentation__spirale {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.presentation__spirale path {
  fill: none;
  stroke: #6B8A72;   /* vert sauge, de la famille de la barre, plus lumineux */
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  /* pas de vector-effect : il fausserait la longueur du tracé animé */
  transition: stroke-dashoffset 3s cubic-bezier(.45, 0, .25, 1) .2s;   /* se dessine à l'arrivée (js/dessins.js) */}.js [data-dessin]:not(.est-pret):not(.est-dessine) .trait{opacity: 0}.surtitre{margin: 0 0 .4rem;font-size: .8rem;letter-spacing: .25em;text-transform: uppercase;color: var(--terre)}.presentation__points{list-style: none;padding: 0;margin: 1.5rem 0 0;display: grid;gap: .6rem}.presentation__points li{padding-left: 1.6rem;position: relative}.presentation__points li::before{content: "";position: absolute;left: 0;top: .8em;width: 1rem;height: .5rem;border-top: 1.5px solid var(--terre);border-radius: 50% 50% 0 0}@media (max-width: 760px){.presentation{grid-template-columns: 1fr}.presentation__photo{max-width: 20rem}}.duo{width: 100%;max-width: 64rem;display: grid;grid-template-columns: minmax(0,6fr) minmax(0,5fr);align-items: center;gap: clamp(2rem,6vw,5rem)}.section--duo-inverse .duo{grid-template-columns: minmax(0,5fr) minmax(0,6fr)}.section--duo-inverse .duo__dessin{order: -1}/* Fond rond vert pâle derrière chaque dessin,comme l'accueil */
.duo__dessin {
  margin: 0;
  position: relative;
  isolation: isolate;
}
.duo__dessin::before {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: min(88%, 23rem);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #E8EFE9;
  z-index: -1;
}
.dessin { display: block; width: 100%; max-width: 26rem; height: auto; margin: 0 auto; overflow: visible; }
.dessin .trait {
  fill: none;
  stroke: #4E6E57;       /* vert sauge plus soutenu */
  stroke-width: 2.2;
  stroke-linecap: round;
  /* pas de vector-effect ici : il fausse la longueur des tirets et coupait la fin du tracé */
  transition: stroke-dashoffset 2.6s cubic-bezier(.45, 0, .25, 1);
  transition-delay: var(--d, 0s);
}
.dessin .trait--terre { stroke: var(--terre); }
.dessin .point { fill: var(--terre); opacity: 0; r: 6; transition: opacity .5s ease 2.65s; }   /* apparaît quand la spirale touche le centre */
.dessin.est-dessine .point { opacity: 1; }
.js .dessin:not(.est-pret):not(.est-dessine) .trait { opacity: 0; }   /* rien d'affiché avant la préparation */ @media (max-width: 760px){.duo,.section--duo-inverse .duo{grid-template-columns: 1fr;gap: 1.5rem}.section--duo-inverse .duo__dessin,.duo__dessin{order: -1}.dessin{max-width: 14rem}.duo__dessin::before{width: min(70%,13rem)}}.section--sportifs{min-height: 0;background: var(--nav-fond);color: var(--nav-texte);position: relative;overflow-x: clip;padding-block: clamp(5rem,10vw,8rem)}.sportifs{position: relative;width: 100%;max-width: 62rem;text-align: center}.sportifs::after{content: "";position: absolute;right: -18%;top: 50%;width: min(30rem,70vw);aspect-ratio: 1;transform: translateY(-50%);background: rgba(247,243,238,.05);-webkit-mask: url(../img/logo-baya-icone.svg) no-repeat center / contain;mask: url(../img/logo-baya-icone.svg) no-repeat center / contain;pointer-events: none}.sportifs .surtitre{color: var(--terre-clair)}.sportifs h2{color: var(--nav-texte)}.sportifs h2::after{margin-inline: auto;background: var(--terre-clair)}.sportifs__intro{max-width: 38rem;margin: 0 auto;opacity: .9}.sportifs__mots{list-style: none;margin: 2.5rem 0 0;padding: 0;display: flex;flex-wrap: wrap;justify-content: center}.sportifs__mots li{padding: .4rem clamp(1rem,3vw,2rem);font-family: var(--police-titre);font-weight: 300;font-size: clamp(1.05rem,1.7vw,1.45rem);letter-spacing: .02em;white-space: nowrap}.sportifs__mots li + li{border-left: 1px solid rgba(227,165,131,.5)}.sportifs__action{margin: 2.75rem 0 0}.sportifs__bouton{display: inline-block;padding: .85rem 1.8rem;border: 1px solid var(--terre-clair);border-radius: 999px;font-size: .85rem;font-weight: 300;letter-spacing: .14em;text-transform: uppercase;color: var(--nav-texte);text-decoration: none;transition: background-color .3s ease,color .3s ease}.sportifs__bouton:hover,.sportifs__bouton:focus-visible{background: rgba(227,165,131,.14);color: var(--terre-clair)}.sportifs__bouton:focus-visible{outline: 2px solid var(--terre-clair);outline-offset: 4px}@media (max-width: 760px){.sportifs__mots{flex-direction: column;align-items: center;gap: .2rem}.sportifs__mots li + li{border-left: 0}.sportifs__mots li::before{content: "·";color: var(--terre-clair);margin-right: .6rem}.sportifs::after{right: -40%}}.seances,.avis{width: 100%;max-width: 64rem}.seances h2,.avis h2{text-align: center}.seances h2::after,.avis h2::after{margin-inline: auto}.seances__cartes{display: grid;grid-template-columns: repeat(auto-fit,minmax(16rem,1fr));gap: clamp(1rem,2.5vw,1.75rem);margin-top: 2.5rem}.carte{position: relative;padding: 2rem 1.75rem 1.75rem;background: var(--fond);border-radius: 18px;box-shadow: 0 10px 30px -24px rgba(47,58,50,.5)}.carte::before{content: "";position: absolute;top: 1.1rem;left: 1.75rem;width: 2rem;height: .6rem;border-top: 1.5px solid var(--terre);border-radius: 50% 50% 0 0}.carte h3{text-wrap: balance;margin: .6rem 0 .8rem;font-family: var(--police-titre);font-weight: 300;font-size: 1.35rem}.carte p{margin: 0 0 .8rem}.carte__liste{margin: 0;padding-left: 1.1rem}.carte__liste li{margin-bottom: .35rem}.carte__liste li::marker{color: var(--terre)}.carte__prix{font-family: var(--police-titre);font-weight: 300;font-size: 2.2rem;line-height: 1.1;color: var(--terre)}.carte__prix span{font-family: var(--police-texte);font-size: .95rem;color: var(--taupe)}.carte__note{font-size: .9rem;color: var(--taupe)}.bienfaits{margin-top: clamp(3rem,6vw,4.5rem);text-align: center}.bienfaits h3{margin: 0 0 1.5rem;font-family: var(--police-titre);font-weight: 300;font-size: 1.5rem}.bienfaits ul{list-style: none;margin: 0;padding: 0;display: flex;flex-wrap: wrap;justify-content: center;gap: .75rem}.bienfaits li{padding: .55rem 1.1rem;border: 1px solid rgba(107,138,114,.45);border-radius: 999px;font-size: .95rem;background: rgba(255,255,255,.6)}.seances__action{margin: clamp(2.5rem,5vw,3.5rem) 0 0;text-align: center}.avis__note{text-align: center;margin: -.25rem 0 2.5rem;color: var(--taupe)}.avis__etoiles{color: var(--terre);letter-spacing: .15em;margin-right: .4rem}.avis__liste{display: grid;grid-template-columns: repeat(2,minmax(0,1fr));gap: clamp(1rem,2.5vw,1.75rem)}.avis__tous{text-align: center;margin: 2rem 0 0}.avis__tous a{font-size: .85rem;letter-spacing: .14em;text-transform: uppercase;color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 5px}.avis__tous a:hover{color: var(--terre)}.temoignage{margin: 0;padding: 1.75rem;border: 1px solid rgba(107,138,114,.35);border-radius: 18px;display: flex;flex-direction: column}.temoignage blockquote{margin: 0 0 1.25rem;flex: 1}.temoignage blockquote p{margin: 0;font-style: italic;line-height: 1.7}.temoignage blockquote p::before{content: "« ";color: var(--terre);font-style: normal}.temoignage blockquote p::after{content: " »";color: var(--terre);font-style: normal}.temoignage figcaption{font-size: .8rem;letter-spacing: .18em;text-transform: uppercase;color: var(--taupe)}.section--faq{background: #F2F5F2}/* vert très pâle,comme l'accueil */
.faq { width: 100%; max-width: 46rem; }
.faq h2 { text-align: center; }
.faq h2::after { margin-inline: auto; }
.faq__liste { margin-top: 2rem; border-top: 1px solid rgba(107, 138, 114, .3); }
.faq__question { border-bottom: 1px solid rgba(107, 138, 114, .3); }
.faq__question summary {
  position: relative;
  list-style: none;
  cursor: pointer;
  padding: 1.25rem 2.75rem 1.25rem 0;
  font-family: var(--police-titre);
  font-weight: 300;
  font-size: clamp(1.1rem, 2vw, 1.3rem);
  line-height: 1.35;
  transition: color .3s ease;
}
.faq__question summary::-webkit-details-marker { display: none; }
/* « + » fin qui se change en « – » à l'ouverture */ .faq__question summary::before,.faq__question summary::after{content: "";position: absolute;right: .5rem;top: 50%;width: 14px;height: 1.5px;background: var(--terre);transition: transform .3s ease}.faq__question summary::after{transform: rotate(90deg)}.faq__question[open] summary::after{transform: rotate(0deg)}.faq__question summary:hover{color: var(--terre)}.faq__question summary:focus-visible{outline: 2px solid var(--terre);outline-offset: 4px;border-radius: 4px}.faq__reponse{padding: 0 2.75rem 1.4rem 0;color: #4A5249}.faq__reponse p{margin: 0}.faq__question[open] .faq__reponse{animation: faq-ouvrir .35s ease}@keyframes faq-ouvrir{from{opacity: 0;transform: translateY(-4px)}}@media (prefers-reduced-motion: reduce){.faq__question[open] .faq__reponse{animation: none}}@media (max-width: 760px){.section--faq{min-height: 0}}@media (max-width: 760px){/* Les cartes défilent à l'horizontale ; la suivante dépasse pour inviter à glisser */
  .seances__cartes,
  .avis__liste {
    display: flex;
    gap: .9rem;
    margin-inline: -1.25rem;
    padding: .5rem 1.25rem 1.25rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 1.25rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .seances__cartes::-webkit-scrollbar,
  .avis__liste::-webkit-scrollbar { display: none; }
  .carte,
  .temoignage {
    flex: 0 0 84%;
    scroll-snap-align: start;
  }
  .seances__cartes { margin-top: 1.75rem; }
  .carte { padding: 1.75rem 1.4rem 1.4rem; }
  .carte::before { left: 1.4rem; }
  .temoignage { padding: 1.5rem 1.4rem; }
  .temoignage blockquote p { font-size: .98rem; }

  /* Bienfaits : liste sobre, alignée, au lieu des pastilles de tailles inégales */
  .bienfaits { text-align: left; }
  .bienfaits h3 { text-align: center; }
  .bienfaits ul { display: grid; gap: 0; justify-content: stretch; }
  .bienfaits li {
    position: relative;
    padding: .85rem 0 .85rem 1.9rem;
    border: 0;
    border-bottom: 1px solid rgba(107, 138, 114, .25);
    border-radius: 0;
    background: none;
    font-size: 1rem;
  }
  .bienfaits li:last-child { border-bottom: 0; }
  .bienfaits li::before {
    content: "";
    position: absolute;
    left: 0; top: 1.45rem;
    width: 1.1rem; height: .5rem;
    border-top: 1.5px solid var(--terre);
    border-radius: 50% 50% 0 0;
  }

  .section--seances, .section--avis { min-height: 0; }


  /* Note : les étoiles au-dessus, le texte en dessous */
  .avis__note { display: flex; flex-direction: column; align-items: center; gap: .35rem; margin-bottom: 1.75rem; }
  .avis__etoiles { margin: 0; font-size: 1.1rem; }
  .avis__texte-note { font-size: .9rem; }
}

/* Points sous les carrousels */
.carrousel__points {
  display: none;
  justify-content: center;
  gap: .35rem;
  margin-top: .25rem;
}
.carrousel__points button {
  width: 26px; height: 26px;          /* zone d'appui confortable,point dessiné au centre */ padding: 0;border: 0;background: none;cursor: pointer;position: relative}.carrousel__points button::before{content: "";position: absolute;left: 50%;top: 50%;width: 7px;height: 7px;border-radius: 50%;transform: translate(-50%,-50%);background: rgba(107,138,114,.35);transition: background-color .3s ease,width .3s ease}.carrousel__points button[aria-current="true"]::before{width: 18px;border-radius: 4px;background: var(--terre)}.carrousel__points button:focus-visible{outline: 2px solid var(--terre);outline-offset: -2px;border-radius: 50%}@media (max-width: 760px){.carrousel__points{display: flex}}.avis__liste + .carrousel__points{display: flex}/* ---------- Citation + pied de page = 100 % de la hauteur d'écran ---------- */

.fin {
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
}
.fin .section--citation {
  flex: 1;
  min-height: 0;
  /* en haut, la barre passe par-dessus : on décale d'autant pour garder la citation centrée dans la partie visible */ padding-top: calc(var(--branche-h) * .6 + 1.5rem);padding-bottom: 2.5rem}.citation{margin: 0;max-width: 46rem;text-align: center}.citation blockquote{margin: 0}.citation blockquote p{margin: 0;font-family: var(--police-titre);font-weight: 300;font-size: clamp(1.6rem,3.4vw,2.8rem);line-height: 1.3;letter-spacing: .01em}.citation blockquote p::before{content: "« ";color: var(--terre)}.citation blockquote p::after{content: " »";color: var(--terre)}.citation figcaption{margin-top: 1.5rem;font-size: .85rem;letter-spacing: .2em;text-transform: uppercase;color: var(--taupe)}.adresse{color: var(--taupe);line-height: 1.7}.adresse a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 3px}.formulaire{margin-top: 3rem;padding: clamp(1.25rem,4vw,2.5rem);background: var(--fond);border-radius: 18px;box-shadow: 0 10px 30px -22px rgba(47,58,50,.45)}.formulaire h3{font-family: var(--police-titre);font-weight: 300;font-size: 1.6rem;margin: 0 0 1.25rem}.formulaire__ligne{display: grid;gap: 0 1rem;grid-template-columns: repeat(auto-fit,minmax(14rem,1fr))}.champ{margin: 0 0 1rem;display: flex;flex-direction: column;gap: .35rem}.champ label{font-size: .95rem}.facultatif{color: var(--taupe);font-size: .85em}.champ input,.champ select,.champ textarea{font: inherit;color: var(--vert);padding: .7rem .9rem;border: 1px solid #CFC7BC;border-radius: 10px;background: #fff}.champ textarea{resize: vertical}.champ input:focus,.champ select:focus,.champ textarea:focus{outline: 2px solid var(--terre);outline-offset: 1px;border-color: var(--terre)}.champ--case{flex-direction: row;align-items: flex-start;gap: .55rem;font-size: .78rem;line-height: 1.5;color: var(--taupe)}.champ--case input{margin-top: .2rem;accent-color: var(--nav-fond)}.champ--case label{font-size: inherit}.formulaire .bouton{font: inherit;cursor: pointer}.formulaire .bouton[disabled]{opacity: .7;cursor: wait}.formulaire__resalib{margin: 2.5rem 0 -1.75rem;font-size: .95rem;color: var(--taupe)}.formulaire__resalib a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 3px}.formulaire__resalib a:hover{color: var(--terre)}.champ__aide{font-size: .85rem;color: var(--taupe)}.champ--choix{border: 0;padding: 0;margin: 0 0 1rem;min-width: 0}.champ--choix legend{padding: 0;margin-bottom: .35rem;font-size: .95rem}.choix{display: flex;flex-wrap: wrap;gap: .5rem}.choix label{position: relative;cursor: pointer}.choix input{position: absolute;opacity: 0;inset: 0;margin: 0;cursor: pointer}.choix span{display: inline-block;padding: .5rem 1rem;border: 1px solid #CFC7BC;border-radius: 999px;font-size: .92rem;background: #fff;transition: border-color .2s ease,background-color .2s ease,color .2s ease}.choix label:hover span{border-color: var(--terre)}.choix input:checked + span{border-color: var(--vert);background: var(--vert);color: #fff}.choix input:focus-visible + span{outline: 2px solid var(--terre);outline-offset: 2px}/* Anti-spam : hors de l'écran, invisible pour les visiteurs */
.champ-piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Champ à corriger */
.champ [aria-invalid="true"] { border-color: #B5523B; background: #FFF8F5; }
.formulaire__erreur {
  margin: 0 0 1rem;
  padding: .8rem 1rem;
  border-left: 3px solid #B5523B;
  border-radius: 6px;
  background: #FBEDE8;
  color: #7A2E1D;
  font-size: .92rem;
}

/* Confirmation d'envoi */ .formulaire__merci{text-align: center;padding: 1.5rem 0 .5rem;outline: none}.formulaire__merci svg{width: 52px;height: 52px;margin: 0 auto 1rem;display: block;fill: none;stroke: #6B8A72;stroke-width: 1.4;stroke-linecap: round;stroke-linejoin: round}.formulaire__merci p{margin: 0}.formulaire__merci-titre{font-family: var(--police-titre);font-weight: 300;font-size: 1.5rem;margin-bottom: .4rem !important}.raccourcis{position: fixed;right: clamp(10px,1.5vw,24px);top: 50%;transform: translateY(-50%);z-index: 60;display: flex;flex-direction: column;align-items: center;gap: 10px}.haut-de-page{position: fixed;right: clamp(14px,1.8vw,28px);bottom: calc(72px + env(safe-area-inset-bottom));z-index: 60;display: grid;place-items: center;width: 40px;height: 40px;border: 1px solid rgba(107,138,114,.45);border-radius: 50%;background: rgba(255,255,255,.94);/* fond opaque plutôt qu'un flou : plus fluide au défilement */
  color: var(--terre);
  transition: border-color .3s ease, background-color .3s ease;
}
.haut-de-page svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform .3s ease;
}
.haut-de-page:hover { border-color: var(--terre); background: #fff; }
.haut-de-page:hover svg { transform: translateY(-2px); }
.haut-de-page:focus-visible { outline: 2px solid var(--terre); outline-offset: 3px; }
.js .haut-de-page {
  opacity: 0;
  visibility: hidden;
  transform: translateY(140%);
  transition: transform .6s cubic-bezier(.2, .8, .3, 1), opacity .5s ease, visibility 0s linear .6s;
}
.js .haut-de-page.est-visible {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition: transform .6s cubic-bezier(.2, .8, .3, 1), opacity .5s ease, visibility 0s;
}

/* Cachés sur l'accueil,ils glissent depuis la droite dès qu'on commence à lire */
.js .raccourcis {
  opacity: 0;
  visibility: hidden;
  transform: translate(140%, -50%);
  transition: transform .6s cubic-bezier(.2, .8, .3, 1), opacity .5s ease, visibility 0s linear .6s;
}
.js .raccourcis.est-visible {
  opacity: 1;
  visibility: visible;
  transform: translate(0, -50%);
  transition: transform .6s cubic-bezier(.2, .8, .3, 1), opacity .5s ease, visibility 0s;
}
@media (prefers-reduced-motion: reduce) { .js .raccourcis { transition: opacity .3s ease, visibility 0s; transform: translate(0, -50%); } }
@media (prefers-reduced-motion: reduce) and (max-width: 1099.98px) { .js .raccourcis { transform: translate(-50%, 0); } }

.raccourcis__rond {
  --taille: clamp(40px, 3.2vw, 52px);
  position: relative;
  display: grid;
  place-items: center;
  width: var(--taille);
  height: var(--taille);
  border-radius: 50%;
  background: var(--nav-fond);
  color: var(--nav-texte);
  border: 1.5px solid rgba(247, 243, 238, .7);   /* reste visible au-dessus du pied de page vert */
  box-shadow: 0 4px 14px -6px rgba(47, 58, 50, .55);
  transition: background-color .25s ease, color .25s ease, transform .25s ease;
}
.raccourcis__rond svg {
  width: 46%;
  height: 46%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.raccourcis__rond:hover,
.raccourcis__rond:focus-visible { background: var(--terre); color: #fff; transform: scale(1.06); }
.raccourcis__rond:focus-visible { outline: 2px solid var(--terre); outline-offset: 3px; }

/* L'oiseau du logo (oiseau-baya.svg),seul dans le rond */ .raccourcis__rond--logo{--taille: clamp(48px,3.9vw,62px);background: var(--fond);border: 2px solid var(--nav-fond)}.raccourcis__logo{position: absolute;inset: 0;border-radius: 50%;overflow: hidden}.raccourcis__logo{display: grid;place-items: center}.raccourcis__logo img{width: 66%;height: auto}.raccourcis__rond--logo:hover,.raccourcis__rond--logo:focus-visible{background: var(--fond);border-color: var(--terre)}.raccourcis__etiquette{position: absolute;right: calc(100% + 10px);top: 50%;transform: translate(6px,-50%);padding: .35rem .75rem;border-radius: 999px;background: var(--nav-fond);color: var(--nav-texte);font-size: .85rem;white-space: nowrap;opacity: 0;pointer-events: none;transition: opacity .2s ease,transform .2s ease}.raccourcis__etiquette .menu-baya{height: 1.25em;vertical-align: -.28em}.raccourcis__rond:hover .raccourcis__etiquette,.raccourcis__rond:focus-visible .raccourcis__etiquette{opacity: 1;transform: translate(0,-50%)}@media (hover: none){.raccourcis__etiquette{display: none}}.pied{text-align: center;padding: clamp(2.5rem,5vw,4rem) 1rem 2rem;font-size: .9rem;background: var(--nav-fond);color: var(--nav-texte)}.pied__logo{display: inline-block;margin-bottom: 1rem}.pied__logo img{width: clamp(140px,13vw,180px)}.pied p{margin: 0}.pied__reseaux{list-style: none;margin: 0 0 .5rem;padding: 0;display: flex;justify-content: center;gap: .9rem}.pied__reseaux a{display: grid;place-items: center;width: 42px;height: 42px;border: 1px solid rgba(247,243,238,.45);border-radius: 50%;color: var(--nav-texte);transition: color .3s ease,border-color .3s ease,background-color .3s ease}.pied__reseaux svg{width: 18px;height: 18px;fill: currentColor}.pied__reseaux svg.trait{fill: none;stroke: currentColor;stroke-width: 1.6}.pied__reseaux svg .plein{fill: currentColor;stroke: none}.pied__reseaux a:hover,.pied__reseaux a:focus-visible{color: var(--terre-clair);border-color: var(--terre-clair);background: rgba(227,165,131,.1)}.pied__reseaux a:focus-visible{outline: 2px solid var(--terre-clair);outline-offset: 3px}/* Crédit en bas à gauche : « by alt »,« alt » en gras,le « t » couleur de l'oiseau */
.pied__credit {
  text-align: left;
  margin-top: 1.5rem !important;
  padding-left: clamp(0rem, 2vw, 1.5rem);
}
.pied__credit a { color: var(--nav-texte); text-decoration: none; }
.pied__credit strong { font-weight: 700; }
.pied__t { color: var(--terre); }

/* Petit écran : le texte ne passe pas sous les ronds de droite */
/* ---------- Menu mobile plein écran ---------- */

.menu-mobile { display: none; }

@media (max-width: 1099.98px) {
  /* Mobile : les mêmes raccourcis, en barre flottante en bas de l'écran (à portée de pouce) */ .raccourcis{top: auto;right: auto;left: 50%;bottom: calc(14px + env(safe-area-inset-bottom));flex-direction: row;gap: 10px;padding: 7px;border-radius: 999px;background: rgba(247,243,238,.96);box-shadow: 0 10px 28px -14px rgba(47,58,50,.55);transform: translateX(-50%)}.raccourcis__rond,.raccourcis__rond--logo{--taille: 46px}.raccourcis__etiquette{display: none}.js .raccourcis{transform: translate(-50%,160%)}.js .raccourcis.est-visible{transform: translate(-50%,0)}.haut-de-page{right: 16px;bottom: calc(24px + env(safe-area-inset-bottom))}html.menu-ouvert .haut-de-page,html.menu-ouvert.js .haut-de-page.est-visible{opacity: 0;visibility: hidden}html.menu-ouvert .raccourcis,html.menu-ouvert.js .raccourcis.est-visible{opacity: 0;visibility: hidden}.pied{padding-bottom: calc(6rem + env(safe-area-inset-bottom))}.menu-mobile{display: flex;flex-direction: column;position: fixed;inset: 0;z-index: 45;/* sous la branche : elle reste visible,l'oiseau aussi */
    padding: calc(var(--branche-h) + 1.5rem) 28px calc(1.75rem + env(safe-area-inset-bottom));
    background: var(--nav-fond);
    color: var(--nav-texte);
    overflow-x: hidden;
    overflow-y: auto;
    opacity: 0;
    transition: opacity .45s ease;
  }
  .menu-mobile[hidden] { display: none; }
  .menu-mobile.est-ouvert { opacity: 1; }

  /* Le logo en filigrane, en bas à droite */
  .menu-mobile::after {
    content: "";
    position: absolute;
    right: -12%;
    bottom: 0;      /* ne déborde pas vers le bas : le menu ne défile pas pour rien */
    width: 85%;
    aspect-ratio: 1;
    background: rgba(247, 243, 238, .06);
    -webkit-mask: url(../img/logo-baya-icone.svg) no-repeat center / contain;
            mask: url(../img/logo-baya-icone.svg) no-repeat center / contain;
    pointer-events: none;
  }

  .menu-mobile__liste {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: clamp(.15rem, 1.4vh, 1rem);
  }
  .menu-mobile__liste li,
  .menu-mobile__pied {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .5s ease, transform .5s ease;
    transition-delay: calc(.08s * var(--i) + .1s);
  }
  .menu-mobile.est-ouvert .menu-mobile__liste li,
  .menu-mobile.est-ouvert .menu-mobile__pied { opacity: 1; transform: none; }

  .menu-mobile__liste a {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    padding: .35rem 0;
    font-family: var(--police-titre);
    font-weight: 300;
    font-size: clamp(1.45rem, 6.6vw, 2.1rem);
    line-height: 1.15;
    color: var(--nav-texte);
    text-decoration: none;
  }
  .menu-mobile__num {
    font-family: var(--police-texte);
    font-size: .75rem;
    letter-spacing: .15em;
    color: var(--terre-clair);
    min-width: 1.6rem;
  }
  .menu-mobile__liste a[aria-current="true"] { color: var(--terre-clair); }
  /* « baya » du logo, à la taille des autres liens ; le pied du « b » sur la ligne de base */
  .menu-mobile__liste .menu-baya {
    height: 1.2em;
    position: relative;
    top: .25em;     /* descend le jambage du « y » sous la ligne, comme une vraie lettre */
  }
  .menu-mobile__liste a:focus-visible,
  .menu-mobile__pied a:focus-visible { outline: 2px solid var(--terre-clair); outline-offset: 4px; border-radius: 4px; }

  .menu-mobile__pied {
    margin-top: auto;
    padding-top: 2.5rem;
    display: flex;
    flex-wrap: nowrap;            /* « Prendre rendez-vous » et « Appeler » sur la même ligne */
    align-items: center;
    gap: 1.1rem;
  }
  .menu-mobile__rdv {
    display: inline-block;
    padding: .6rem 1.1rem;
    border: 1px solid var(--terre-clair);
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 300;
    letter-spacing: .1em;
    white-space: nowrap;
    text-transform: uppercase;
    color: var(--nav-texte);
    text-decoration: none;
  }
  .menu-mobile__tel {
    font-size: .7rem;
    letter-spacing: .1em;
    white-space: nowrap;
    text-transform: uppercase;
    color: var(--nav-texte);
    opacity: .75;
    text-decoration: none;
  }

  /* bloque le défilement sur html seulement : sur body, la barre perdrait sa position fixe (et la croix) */
  html.menu-ouvert { overflow: hidden; }

  /* Accueil mobile : petit fil qui invite à descendre, sous le titre */
  .accueil__defiler {
    display: block;
    position: relative;
    width: 1px;
    height: 34px;
    margin: -1rem auto 1.25rem;
    background: rgba(107, 138, 114, .35);
    overflow: hidden;
  }
  .accueil__defiler::after {
    content: "";
    position: absolute;
    left: 0; top: 0;
    width: 1px; height: 40%;
    transform: translateY(-100%);
    background: #6B8A72;
    animation: defiler 2.2s ease-in-out infinite;
  }
}
.accueil__defiler { display: none; }
@media (max-width: 1099.98px) { .accueil__defiler { display: block; } }
@keyframes defiler { to { transform: translateY(250%); } }
@media (prefers-reduced-motion: reduce) { .accueil__defiler::after { animation: none; transform: translateY(75%); } }


/* ---------- Pages légales ---------- */

/* En-tête simplifié : « baya » à gauche, retour au site à droite */
.branche--simple { margin-bottom: 0; }
.branche__simple {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(var(--branche-h) * .46);
  top: var(--nav-marge);   /* décalage interne : une marge sortirait de la barre et laisserait une bande en haut */
  padding: 0 clamp(20px, 6vw, 80px);
}
.branche__simple a { pointer-events: auto; color: var(--nav-texte); text-decoration: none; }
.branche__simple-logo .menu-baya { height: clamp(20px, 1.8vw, 30px); vertical-align: middle; }
.branche__simple-retour {
  font-size: clamp(11px, .95vw, 15px);
  font-weight: 300;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: color .3s ease;
}
.branche__simple a:hover { color: var(--terre-clair); }
.branche__simple a:focus-visible { outline: 2px solid var(--terre-clair); outline-offset: 4px; border-radius: 2px; }

.page-legale { background: var(--fond); }
.legal {
  max-width: 46rem;
  margin: 0 auto;
  padding: clamp(3rem, 7vw, 5rem) 1.25rem clamp(5rem, 10vw, 8rem);
}
.legal h1 { text-align: left; font-size: clamp(2rem, 4.5vw, 3rem); margin-bottom: .4rem; }
.legal__maj { color: var(--taupe); font-size: .9rem; margin: 0 0 2.5rem; }
.legal h2 {
  font-size: clamp(1.25rem, 2.2vw, 1.6rem);
  margin: 2.5rem 0 .75rem;
}
.legal h2::after { width: 1.75rem; margin-top: .6rem; }
.legal a, .champ--case a { color: var(--vert); text-decoration-color: var(--terre); text-underline-offset: 3px; }
.legal a:hover, .champ--case a:hover { color: var(--terre); }

/* Pied de page : crédit à gauche, liens légaux à droite */
.pied__bas {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem 1.5rem;
  margin-top: 1.5rem;
  padding: 0 clamp(0rem, 2vw, 1.5rem);
}
.pied__bas .pied__credit { margin: 0 !important; padding: 0; }
.pied__legal { font-size: .8rem; letter-spacing: .04em; }
.pied__legal a { color: var(--nav-texte); opacity: .8; text-decoration: none; transition: color .3s ease, opacity .3s ease; }
.pied__legal a:hover, .pied__legal a:focus-visible { color: var(--terre-clair); opacity: 1; }

/* Mobile : liens légaux centrés, « by alt » centré en dessous */
@media (max-width: 760px) {
  .pied__bas { flex-direction: column; align-items: center; gap: .9rem; padding: 0; }
  .pied__legal { order: 1; text-align: center; }
  .pied__bas .pied__credit { order: 2; text-align: center; }
}

/* ---------- Pages de service (sophrologue, hypnothérapeute, sportifs) ---------- */

.page-service { background: #F2F5F2; }
.page-service .section { min-height: 0; }

/* En-tête : « baya » à gauche, pages voisines et « Réserver » à droite */
.branche__pages { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2.5rem); }
.branche__pages a {
  font-size: clamp(11px, .9vw, 15px);
  font-weight: 200;
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: color .3s ease;
}
.branche__pages a[aria-current="page"] { color: var(--terre-clair); }
.branche__simple .branche__simple-rdv {
  padding: .6em 1.3em;
  border: 1px solid var(--terre-clair);
  border-radius: 999px;
  font-weight: 300;
}
.branche__simple .branche__simple-rdv:hover { background: rgba(227, 165, 131, .12); }
@media (max-width: 899.98px) {
  .branche__pages a:not(.branche__simple-rdv) { display: none; }   /* mobile : « baya » + Réserver */
}

/* Haut de page : fond vert pâle et dessin, comme l'accueil */ .page-hero{background: #F2F5F2 url(../img/fond-accueil.svg) center top / cover no-repeat;padding-top: calc(var(--branche-h) + clamp(2rem,5vw,4rem));/* la branche passe par-dessus,comme sur l'accueil */
}
.page-hero h1 { text-align: left; font-size: clamp(2rem, 4.2vw, 3.1rem); margin-bottom: 1.25rem; }
.page-hero__chapeau { font-size: 1.08rem; max-width: 36rem; }
.page-hero__actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 2rem 0 0; }
.page-hero .bouton--clair { background: rgba(255, 255, 255, .6); }
.page-hero .bouton--clair:hover,
.page-hero .bouton--clair:focus-visible { background: var(--terre); border-color: var(--terre); color: #fff; }

/* Fil d'Ariane */ .fil{margin-bottom: 1.5rem;font-size: .85rem;color: var(--taupe)}.fil a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 3px}.page-texte{max-width: 46rem}.page-texte a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 3px}.page-texte a:hover{color: var(--terre)}.page-section--beige{background: var(--fond-doux)}.liste--colonnes{columns: 2 16rem;column-gap: 2.5rem}.liste--colonnes li{break-inside: avoid;margin-bottom: .45rem}.etapes{list-style: none;counter-reset: etape;margin: 0 0 1.5rem;padding: 0;display: grid;gap: 1.1rem}.etapes li{counter-increment: etape;position: relative;padding-left: 3.4rem}.etapes li::before{content: counter(etape);position: absolute;left: 0;top: -.1rem;width: 2.3rem;height: 2.3rem;display: grid;place-items: center;border: 1px solid var(--terre);border-radius: 50%;font-family: var(--police-titre);color: var(--terre)}.page-propos{background: var(--fond)}.page-propos__contenu{max-width: 56rem;display: grid;grid-template-columns: minmax(0,14rem) minmax(0,1fr);gap: clamp(1.5rem,5vw,3.5rem);align-items: center}.page-propos__contenu img{width: 100%;aspect-ratio: 1;object-fit: cover;object-position: 50% 30%;border-radius: 50%}.page-propos__avis{color: var(--taupe)}.page-propos__avis span{color: var(--terre);letter-spacing: .15em;margin-right: .3rem}.page-propos__avis a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 3px}@media (max-width: 760px){.page-propos__contenu{grid-template-columns: 1fr;text-align: center}.page-propos__contenu img{max-width: 11rem;margin: 0 auto}.page-propos h2::after{margin-inline: auto}}.page-appel .sportifs__action{display: flex;flex-wrap: wrap;justify-content: center;gap: .75rem}.page-voisines{list-style: none;margin: 2.5rem 0 0;padding: 0;display: flex;flex-wrap: wrap;justify-content: center;gap: .5rem 1.5rem;font-size: .9rem}.page-voisines a{color: var(--nav-texte);opacity: .85;text-decoration-color: var(--terre-clair);text-underline-offset: 4px}.page-voisines a:hover{color: var(--terre-clair);opacity: 1}.lien-suite{margin: 1.25rem 0 0}.lien-suite a,.sportifs__suite a{font-size: .85rem;letter-spacing: .12em;text-transform: uppercase;text-underline-offset: 5px}.lien-suite a{color: var(--vert);text-decoration-color: var(--terre)}.lien-suite a::after,.sportifs__suite a::after{content: " →";color: var(--terre)}.lien-suite a:hover{color: var(--terre)}.sportifs__suite{margin: 2rem 0 0}.sportifs__suite a{color: var(--nav-texte);text-decoration-color: var(--terre-clair)}.sportifs__suite a::after{color: var(--terre-clair)}.pied__pages{margin: 1.75rem 0 0 !important;font-size: .82rem;letter-spacing: .03em}.pied__pages a{color: var(--nav-texte);opacity: .8;text-decoration: none}.pied__pages a:hover{color: var(--terre-clair);opacity: 1}.page-service .section:not(.page-hero){padding-block: clamp(3.5rem,7vw,6rem)}.page-appel{background: var(--fond-doux);color: var(--vert)}.page-appel .surtitre{color: var(--terre)}.page-appel h2{color: var(--vert)}.page-appel h2::after{background: var(--terre)}.page-appel .sportifs::after{background: rgba(47,58,50,.05)}.page-appel .sportifs__bouton{color: var(--vert);border-color: var(--terre)}.page-appel .sportifs__bouton:first-child{background: var(--vert);border-color: var(--vert);color: #fff}.page-appel .sportifs__bouton:hover{background: rgba(185,112,78,.1);color: var(--terre)}.page-appel .sportifs__bouton:first-child:hover{background: var(--terre);border-color: var(--terre);color: #fff}.page-appel .page-voisines a{color: var(--vert);text-decoration-color: var(--terre)}.page-appel .page-voisines a:hover{color: var(--terre)}@media (max-width: 760px){/* le dessin reste,en petit au-dessus du titre,et se trace comme sur l'accueil */
  .page-hero .dessin { max-width: 10rem; }
  .page-hero .duo__dessin::before { width: min(60%, 10rem); }
  .page-hero .duo { gap: .5rem; }
  .page-propos__contenu > div > p:not(.surtitre):not(.page-propos__avis) { text-align: left; }
}


/* Section « sportifs » de l'accueil : même construction que Sophrologie / Hypnothérapie,en vert foncé */ .section--sportifs-duo .duo__texte{text-align: left}.section--sportifs-duo .surtitre{color: var(--terre-clair)}.section--sportifs-duo h2{color: var(--nav-texte)}.section--sportifs-duo h2::after{background: var(--terre-clair)}.section--sportifs-duo p{opacity: .92}.section--sportifs-duo .liste li::marker{color: var(--terre-clair)}.section--sportifs-duo .sportifs__suite{margin-top: 1.5rem}.section--sportifs-duo .sportifs__action{margin-top: 1.75rem}.section--sportifs-duo .duo__dessin::before{background: rgba(247,243,238,.07)}.section--sportifs-duo .dessin .trait{stroke: var(--nav-texte)}.section--sportifs-duo .dessin .trait--terre{stroke: var(--terre-clair)}/* le logo en filigrane de la bande n'a plus lieu d'être ici */ .section--sportifs-duo::after{display: none}.erreur{min-height: 62vh;max-width: 40rem;margin: 0 auto;padding: clamp(3rem,8vw,6rem) 1.25rem clamp(5rem,10vw,8rem);text-align: center}.erreur__oiseau{width: 64px;height: 64px;margin: 0 auto 1.5rem;display: block;animation: envol 3.2s ease-in-out infinite}@keyframes envol{0%,100%{transform: translateY(0) rotate(0)}50%{transform: translateY(-10px) rotate(-6deg)}}@media (prefers-reduced-motion: reduce){.erreur__oiseau{animation: none}}.erreur h1{font-size: clamp(2rem,5vw,3rem)}.erreur__texte{color: var(--taupe)}.erreur__liens{list-style: none;padding: 0;margin: 1.5rem 0 2.25rem;display: grid;gap: .5rem}.erreur__liens a{color: var(--vert);text-decoration-color: var(--terre);text-underline-offset: 4px}.erreur__liens a:hover{color: var(--terre)}.erreur__actions{display: flex;flex-wrap: wrap;justify-content: center;gap: .75rem;margin: 0}.cabinet{margin: 2.5rem auto 2rem;max-width: 34rem}.cabinet__photos{position: relative;display: flex;justify-content: center;align-items: flex-start;padding: 0 4% 2%}.cabinet__photos::before{content: "";position: absolute;left: 50%;top: 52%;width: 92%;aspect-ratio: 1.5;transform: translate(-50%,-50%);border: 1.5px solid rgba(107,138,114,.45);border-radius: 50%;pointer-events: none}.cabinet__photos img{position: relative;aspect-ratio: 1;object-fit: cover;border-radius: 50%;border: 6px solid var(--fond-doux);box-shadow: 0 16px 34px -24px rgba(47,58,50,.65)}.cabinet__photos img:first-child{width: 60%;object-position: 55% 62%;z-index: 1}.cabinet__photos img + img{width: 46%;margin: 24% 0 0 -9%;object-position: 40% 60%;z-index: 2}.cabinet figcaption{margin-top: 1rem;text-align: center;font-size: .85rem;color: var(--taupe)}.seances .cabinet{margin-top: clamp(2.5rem,5vw,3.5rem)}.page-service #tarifs{background: var(--fond-doux)}.presentation__photo>img,.page-propos__contenu img{filter: var(--filtre-portrait)}.cabinet__photos img{filter: var(--filtre-cabinet)}.photo-ronde{float: right;width: clamp(9rem,26vw,15rem);margin: 0 0 1.25rem 2rem;shape-outside: circle(50%)}.photo-ronde img{width: 100%;aspect-ratio: 1;object-fit: cover;border-radius: 50%;filter: var(--filtre-portrait);box-shadow: 0 0 0 6px var(--fond),0 0 0 7.5px var(--terre)}@media (max-width: 760px){.photo-ronde{float: none;margin: 0 auto 1.75rem;width: 12rem}}.presentation__photo--ovale{aspect-ratio: 500 / 610;max-width: 26rem}.presentation__photo--ovale>img{aspect-ratio: 656 / 800;border-radius: 50% 50% 50% 50% / 52% 52% 48% 48%}@media (max-width: 760px){.presentation__photo--ovale{max-width: 19rem}}.duo__dessin--souffle .est-dessine .trait--terre{transform-box: view-box;transform-origin: 200px 180px;animation: souffle-cercle 10s ease-in-out 3s infinite}.duo__dessin--souffle:has(.est-dessine)::before{animation: souffle-disque 10s ease-in-out 3s infinite}.respiration{display: grid;justify-items: center;margin-top: .5rem;font-size: .66rem;font-weight: 300;letter-spacing: .32em;text-transform: uppercase;color: var(--taupe)}.respiration span{--visible: .55}.respiration span{grid-area: 1 / 1;opacity: 0}.duo__dessin--souffle:has(.est-dessine) .respiration span:first-child{animation: souffle-inspirez 10s ease-in-out 3s infinite}.duo__dessin--souffle:has(.est-dessine) .respiration span:last-child{animation: souffle-expirez 10s ease-in-out 3s infinite}@keyframes souffle-cercle{0%,100%{transform: scale(1)}40%,46%{transform: scale(1.09)}}@keyframes souffle-disque{0%,100%{transform: translate(-50%,-50%) scale(1)}40%,46%{transform: translate(-50%,-50%) scale(1.05)}}@keyframes souffle-inspirez{0%,46%,100%{opacity: 0}8%,34%{opacity: var(--visible)}}@keyframes souffle-expirez{0%,46%,100%{opacity: 0}56%,88%{opacity: var(--visible)}}@media (prefers-reduced-motion: reduce){.duo__dessin--souffle .est-dessine .trait--terre,.duo__dessin--souffle:has(.est-dessine)::before,.respiration span{animation: none !important}.respiration{display: none}}/* ---------- Signature manuscrite (Qui suis-je ?) : s'écrit de gauche à droite ---------- */
.signature {
  font-family: 'Mrs Saint Delafield', cursive;
  font-size: clamp(2.8rem, 5vw, 3.8rem);
  line-height: 1;
  color: var(--terre);
  -webkit-text-stroke: .6px var(--fond, #fff);   /* affine le trait de la police */
  margin: 1.25rem 0 0 -.2rem;
  padding: .1em .4em .15em .1em;    /* les jambages ne sont pas coupés par le masque */
  width: fit-content;
  transform: rotate(-5deg);
  transform-origin: left center;
}
.js .signature {
  -webkit-mask-image: linear-gradient(90deg, #000 42%, transparent 58%);
          mask-image: linear-gradient(90deg, #000 42%, transparent 58%);
  -webkit-mask-size: 250% 100%;
          mask-size: 250% 100%;
  -webkit-mask-position: 100% 0;
          mask-position: 100% 0;
  transition: -webkit-mask-position 2.6s cubic-bezier(.5, 0, .3, 1) .4s, mask-position 2.6s cubic-bezier(.5, 0, .3, 1) .4s;
}
.js .signature.est-dessine { -webkit-mask-position: 0 0; mask-position: 0 0; }

/* ---------- Profondeur au défilement (js/profondeur.js fournit --p, de -1 à 1) ----------
   Propriété « translate » séparée : elle s'ajoute aux transform et animations existants */ .duo__dessin::before{translate: 0 calc(var(--p,0) * var(--relief,1) * 70px)}.duo__dessin .dessin{translate: 0 calc(var(--p,0) * var(--relief,1) * -42px)}@media (prefers-reduced-motion: reduce){.duo__dessin::before,.duo__dessin .dessin{translate: none}}/* Étoiles qui s'allument l'une après l'autre */
.avis__etoiles span { display: inline-block; }
.js .avis__note:not(.est-dessine) .avis__etoiles span { color: rgba(185, 112, 78, .18); }
.js .avis__note.est-dessine .avis__etoiles span { animation: etoile .5s cubic-bezier(.3, 1.6, .5, 1) backwards; }
.avis__note.est-dessine .avis__etoiles span:nth-child(2) { animation-delay: .5s; }
.avis__note.est-dessine .avis__etoiles span:nth-child(3) { animation-delay: .68s; }
.avis__note.est-dessine .avis__etoiles span:nth-child(4) { animation-delay: .86s; }
.avis__note.est-dessine .avis__etoiles span:nth-child(5) { animation-delay: 1.04s; }
.avis__note.est-dessine .avis__etoiles span:nth-child(1) { animation-delay: .32s; }
@keyframes etoile {
  0%   { color: rgba(185, 112, 78, .18); transform: scale(.6); }
  60%  { transform: scale(1.3); }
  100% { color: var(--terre); transform: scale(1); }
}
/* Cartes en papier, légèrement inclinées */
.temoignage {
  background: #FFFDF9;
  border-color: rgba(107, 138, 114, .2);
  rotate: -1.2deg;
  transition: rotate .4s ease, translate .4s ease;
}
.temoignage:nth-child(2n) { rotate: 1deg; }
.temoignage:nth-child(3n) { rotate: -.5deg; }
.temoignage:hover { rotate: 0deg; translate: 0 -4px; }

/* Avis : à faire glisser horizontalement (gauche ↔ droite), sur tous les écrans */
.avis__liste {
  display: flex;
  gap: clamp(1rem, 2.5vw, 1.75rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: .75rem;
  padding: .75rem .75rem 1.5rem;
  scrollbar-width: none;
  cursor: grab;
}
.avis__liste::-webkit-scrollbar { display: none; }
.avis__liste.glisse { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.avis__liste .temoignage { flex: 0 0 min(23rem, 84%); scroll-snap-align: start; }
@media (prefers-reduced-motion: reduce) {
  .js .avis__note .avis__etoiles span { color: var(--terre); animation: none; }
}
.section--avis { overflow-x: clip; }
@media (max-width: 760px) { .duo__dessin { --relief: .5; } }

/* ---------- Grain de papier très léger sur les fonds beiges ---------- */
:root {
  --grain: url("../img/grain.webp");   /* 220 px, répété (17 Ko) */
}
#sophrologie, #seances, #contact, .page-section--beige, .page-appel, .page-service #tarifs { background-image: var(--grain); }
/* Spirale de la photo : encre à épaisseur variable ; le masque (trait blanc épais) se dessine et la révèle */
.presentation__spirale .encre { fill: var(--terre); stroke: none; }   /* même orange que la signature */
.presentation__spirale mask path { stroke: #fff; stroke-width: 12; }

/* ---------- Fluidité ---------- */
/* Respiration en pause quand le dessin n'est pas à l'écran */
.duo__dessin--souffle:not(.en-vue) .trait--terre,
.duo__dessin--souffle:not(.en-vue)::before,
.duo__dessin--souffle:not(.en-vue) .respiration span { animation-play-state: paused; }
/* Profondeur : calques préparés pour le déplacement (pas de repeinte à chaque image) */
.duo__dessin::before, .duo__dessin .dessin { will-change: translate; }
@media (prefers-reduced-motion: reduce) { .duo__dessin::before, .duo__dessin .dessin { will-change: auto; } }
.carrousel__points[hidden] { display: none !important; }

/* ---------- Œuf fixe en bas à gauche : premier échange de 15 min offert (js/oeuf.js) ---------- */
.oeuf {
  position: fixed;
  left: clamp(14px, 1.8vw, 28px);                      /* en miroir de la flèche « haut de page » */
  bottom: calc(72px + env(safe-area-inset-bottom));
  z-index: 60;
  opacity: 0;
  visibility: hidden;
  translate: 0 20px;
  transition: opacity .5s ease, translate .5s ease, visibility 0s linear .5s;
}
.oeuf.est-visible { opacity: 1; visibility: visible; translate: 0 0; transition: opacity .5s ease, translate .5s ease; }
html.menu-ouvert .oeuf { opacity: 0; visibility: hidden; }
.oeuf__bouton {
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  font: inherit;
}
.oeuf__dessin { width: 40px; height: auto; overflow: visible; flex: none; }
.oeuf__bas, .oeuf__haut path { fill: #FBF7F1; stroke: var(--terre); stroke-width: 1.6; stroke-linejoin: round; }
.oeuf__felure { fill: none; stroke: var(--terre); stroke-width: 1.6; stroke-linejoin: round; stroke-dasharray: 60; stroke-dashoffset: 60; }
.oeuf__haut { transform-box: fill-box; transform-origin: 85% 100%; transition: transform .6s cubic-bezier(.3, 1.4, .5, 1); }
.oeuf__oisillon { transform-box: fill-box; transform-origin: 50% 100%; transform: translateY(21px); transition: transform .55s cubic-bezier(.3, 1.6, .5, 1) .15s; }
.oeuf__dessin { transform-origin: 50% 95%; }

/* Éclosion */
.oeuf.eclot .oeuf__dessin { animation: oeuf-balance 1.5s ease-in-out; }
.oeuf.eclot .oeuf__felure { transition: stroke-dashoffset .6s ease 1.3s; stroke-dashoffset: 0; }
.oeuf.est-eclos .oeuf__felure { display: none; }
.oeuf.est-eclos .oeuf__haut { transform: translate(-7px, -15px) rotate(-32deg); }
.oeuf.est-eclos .oeuf__oisillon { transform: translateY(0); }
@keyframes oeuf-balance {
  0%, 100% { transform: rotate(0); }
  12% { transform: rotate(-9deg); } 24% { transform: rotate(8deg); } 36% { transform: rotate(-5deg); } 46% { transform: rotate(0); }
  62% { transform: rotate(-10deg); } 74% { transform: rotate(9deg); } 86% { transform: rotate(-4deg); }
}
/* au survol, l'oisillon sautille */ @media (hover: hover){.oeuf.est-eclos .oeuf__bouton:hover .oeuf__oisillon{animation: oisillon 0.6s ease}}@keyframes oisillon{40%{transform: translateY(-4px) rotate(-6deg)}}/* Bulle « 15 min offertes » : quelques secondes après l'éclosion, puis au survol / focus */
.oeuf__bulle {
  padding: .45rem .8rem;
  border: 1px solid rgba(185, 112, 78, .45);
  border-radius: 999px;
  background: #FFFDF9;
  color: var(--terre);
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  translate: -6px 0;
  pointer-events: none;
  transition: opacity .35s ease, translate .35s ease;
}
.oeuf.montre-bulle .oeuf__bulle,
.oeuf__bouton:focus-visible .oeuf__bulle { opacity: 1; translate: 0 0; }
/* survol : seulement à la souris (sur écran tactile, le « survol » restait collé après l'appui) */ @media (hover: hover){.oeuf__bouton:hover .oeuf__bulle{opacity: 1;translate: 0 0}}.oeuf.est-ouvert .oeuf__bulle{opacity: 0}.oeuf__bouton:focus-visible{outline: 2px solid var(--terre);outline-offset: 4px;border-radius: 12px}.oeuf__carte{position: absolute;left: 0;bottom: calc(100% + 12px);width: min(19rem,calc(100vw - 28px));padding: 1.25rem 1.25rem 1.1rem;border: 1px solid rgba(185,112,78,.35);border-radius: 18px;background: #FFFDF9;box-shadow: 0 18px 40px -22px rgba(47,58,50,.5);color: var(--vert)}.oeuf__titre{margin: 0 1.5rem .4rem 0;font-family: var(--police-titre);font-weight: 400;font-size: 1.1rem}.oeuf__texte{margin: 0 0 1rem;font-size: .88rem;line-height: 1.55;color: var(--taupe)}.oeuf__actions{display: flex;gap: .6rem;margin: 0}.oeuf__action{flex: 1;padding: .6rem .8rem;border: 1px solid var(--terre);border-radius: 999px;background: var(--terre);color: #fff;text-align: center;text-decoration: none;font-size: .78rem;letter-spacing: .1em;text-transform: uppercase}.oeuf__action--clair{background: none;color: var(--terre)}.oeuf__action:hover{filter: brightness(1.06)}.oeuf__action:focus-visible,.oeuf__fermer:focus-visible{outline: 2px solid var(--terre);outline-offset: 2px}.oeuf__fermer{position: absolute;top: .5rem;right: .6rem;width: 28px;height: 28px;border: 0;background: none;cursor: pointer;font-size: 1.3rem;line-height: 1;color: var(--taupe)}@media (max-width: 1099.98px){.oeuf{left: 16px;bottom: calc(24px + env(safe-area-inset-bottom))}.oeuf__bulle{position: absolute;left: 0;bottom: calc(100% + 8px)}}@media (prefers-reduced-motion: reduce){.oeuf,.oeuf__haut,.oeuf__oisillon,.oeuf__bulle{transition: none}.oeuf.eclot .oeuf__dessin,.oeuf.est-eclos .oeuf__bouton:hover .oeuf__oisillon{animation: none}}.champ select{-webkit-appearance: none;appearance: none;padding-right: 2.6rem;background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%232F3A32' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.1rem center / 12px 8px;cursor: pointer}@media (max-width: 760px){.choix{flex-wrap: nowrap;gap: .3rem}.choix span{padding: .42rem .58rem;font-size: clamp(.66rem,3.2vw,.78rem);white-space: nowrap}}html,body{overflow-x: clip}/* ---------- iPhone : zone de l'heure et de la batterie toujours verte ----------
   viewport-fit=cover (balise viewport) : la page commence tout en haut de l'écran,sous l'heure.
   On décale tout de la hauteur de cette zone (0 sur ordinateur) et un bandeau fixe vert la recouvre.
   La barre « branche » est en SVG (sans couleur de fond) : Safari n'avait rien de vert à afficher. */ :root{--haut-ecran: env(safe-area-inset-top,0px)}body{padding-top: var(--haut-ecran)}.branche{top: var(--haut-ecran)}html{scroll-padding-top: calc(var(--branche-h) + var(--haut-ecran))}/* Bandeau fixe vert tout en haut : un vrai élément (pas un ::before),avec une couleur de fond,que Safari iOS 26 reprend pour colorer la zone de l'heure. 14 px au minimum : la barre est
   de toute façon verte à cet endroit, il ne se voit pas. */
.haut-ecran {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: max(var(--haut-ecran), 14px);
  background-color: var(--nav-fond);
  z-index: 100;
  pointer-events: none;
}
@media (max-width: 1099.98px) {
  .menu-mobile { padding-top: calc(var(--branche-h) + 1.5rem + var(--haut-ecran)); }
}

/* ---------- Contenus ajoutés (novembre 2026) ---------- */
/* Tarifs par pratique : sophrologie / hypnose */
.carte__tarifs { list-style: none; margin: .4rem 0 1rem; padding: 0; }
.carte__tarifs li {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  padding: .45rem 0;
  border-bottom: 1px solid rgba(107, 138, 114, .25);
}
.carte__tarifs li:last-child { border-bottom: 0; }
.carte__tarifs span { color: var(--taupe); }
.carte__tarifs b { font-family: var(--police-titre); font-weight: 300; font-size: 1.7rem; line-height: 1.1; color: var(--terre); }
.carte__groupe { font-size: .9rem; color: var(--taupe); padding-left: .8rem; border-left: 2px solid var(--terre-clair); }

/* Qui suis-je : phrase de conclusion */
.presentation__fin { font-family: var(--police-titre); font-weight: 300; font-size: 1.2rem; color: var(--terre); }

/* Ma vision de l'accompagnement */ .vision{max-width: 44rem;margin: clamp(3.5rem,8vw,6rem) auto 0;padding-top: clamp(2rem,4vw,2.75rem);text-align: center;position: relative}.vision::before{content: "";position: absolute;top: 0;left: 50%;width: 3rem;height: 1px;background: var(--terre);transform: translateX(-50%)}.vision blockquote{margin: 0}.vision__titre{margin: .4rem 0 1rem;font-family: var(--police-titre);font-weight: 300;font-size: clamp(1.6rem,3.6vw,2.3rem);line-height: 1.25;color: var(--vert)}.vision blockquote p:not(.vision__titre){color: var(--taupe);line-height: 1.75}.vision figcaption{margin-top: 1.1rem;font-size: .8rem;letter-spacing: .25em;text-transform: uppercase;color: var(--terre)}@media (min-width: 761px){.presentation{align-items: start}.presentation__photo{position: sticky;top: calc(var(--branche-h) + var(--haut-ecran,0px) + 2rem)}}/* ---------- Cartes « tarifs et infos » : contenus équilibrés ---------- Les cartes ne gardent que l'essentiel ; les infos secondaires passent dessous,
   dans une carte « en groupe » pleine largeur et une ligne d'infos pratiques. */ .seances__cartes .carte{display: flex;flex-direction: column}.seances__cartes .carte .carte__note:last-child{margin-top: auto;margin-bottom: 0;padding-top: .4rem}.carte--groupe{margin-top: clamp(1rem,2.5vw,1.75rem);display: flex;align-items: center;justify-content: space-between;gap: 1rem 2rem;padding-top: 1.75rem}.carte--groupe h3{margin-top: .6rem}.carte--groupe p{margin: 0;color: var(--taupe);max-width: 42rem}.lien-devis{flex: none;padding: .7rem 1.3rem;border: 1px solid var(--terre);border-radius: 999px;color: var(--terre);font-size: .78rem;letter-spacing: .12em;text-transform: uppercase;text-decoration: none;transition: background-color .3s ease,color .3s ease}.lien-devis:hover{background: var(--terre);color: #fff}.lien-devis:focus-visible{outline: 2px solid var(--terre);outline-offset: 3px}.seances__infos{list-style: none;margin: 1.25rem 0 0;padding: 0;display: flex;flex-wrap: wrap;justify-content: center;gap: .3rem 0;font-size: .88rem;color: var(--taupe);text-align: center}.seances__infos li + li::before{content: "·";margin: 0 .8rem;color: var(--terre)}@media (max-width: 760px){.carte--groupe{flex-direction: column;align-items: flex-start;margin-top: .5rem}.seances__infos{flex-direction: column;gap: .4rem}.seances__infos li + li::before{content: none}}.pied__reseau-pro{margin: 1.6rem auto 0;max-width: 40rem}.pied__reseau-titre{margin: 0 0 1rem !important;font-size: .7rem;letter-spacing: .28em;text-transform: uppercase;color: var(--terre-clair)}.pied__reseau-pro ul{list-style: none;margin: 0;padding: 0;display: flex;flex-wrap: wrap;justify-content: center;align-items: center;gap: 1rem clamp(1.5rem,4vw,2.75rem)}.pied__reseau-pro img{display: block;height: 44px;width: auto;opacity: .75;transition: opacity .3s ease}.pied__reseau-pro li:hover img{opacity: 1}@media (max-width: 760px){.pied__reseau-pro img{height: 36px}}/* Écrans peu hauts (portables 13") : citation + pied de page tiennent toujours sur un écran */
@media (min-width: 761px) and (max-height: 800px) {
  .pied { padding-top: 2rem; }
  .pied__logo img { width: 120px; }
  .pied__reseau-pro { margin-top: 1.1rem; }
  .pied__reseau-titre { margin-bottom: .6rem !important; }
  .pied__reseau-pro img { height: 34px; }
}
.pied__reseau-pro a { display: block; border-radius: 6px; }
.pied__reseau-pro a:hover img, .pied__reseau-pro a:focus-visible img { opacity: 1; }
.pied__reseau-pro a:focus-visible { outline: 2px solid var(--terre-clair); outline-offset: 6px; }
/* Carte « Sophrologie en groupe » : fond vert sauge très pâle pour la distinguer des cartes individuelles */
.carte--groupe { background: #EEF3EF; box-shadow: 0 10px 30px -26px rgba(47, 58, 50, .45), inset 0 0 0 1px rgba(107, 138, 114, .16); }
.formulaire [hidden] { display: none !important; }   /* les blocs masqués selon la demande restent masqués malgré leurs styles */

/* Numéro de téléphone dans un texte : lien discret, couleur du texte, souligné terre cuite */
.lien-tel { color: inherit; text-decoration: underline; text-decoration-color: var(--terre-clair); text-underline-offset: 3px; white-space: nowrap; }
.lien-tel:hover { color: var(--terre-clair); }
a[href^="tel:"]{-webkit-text-fill-color: currentColor}.lien-texte{color: inherit;text-decoration: underline;text-decoration-color: var(--terre);text-underline-offset: 3px}.lien-texte:hover{color: var(--terre)}.lien-texte:focus-visible{outline: 2px solid var(--terre);outline-offset: 2px;border-radius: 2px}/* Œuf : petit rappel visuel toutes les 6 s (balancement,l'oisillon sautille, halo orange discret)
   pour montrer qu'il est cliquable;s'arrête quand la carte est ouverte ou au survol */ .oeuf.est-eclos:not(.est-ouvert) .oeuf__dessin{animation: oeuf-appel 6s ease-in-out 3s infinite}.oeuf.est-eclos:not(.est-ouvert) .oeuf__oisillon{animation: oisillon-appel 6s ease-in-out 3s infinite}.oeuf.est-eclos .oeuf__bouton:hover .oeuf__dessin{animation-play-state: paused}@keyframes oeuf-appel{0%,78%,100%{transform: rotate(0);filter: drop-shadow(0 0 0 rgba(185,112,78,0))}82%{transform: rotate(-7deg);filter: drop-shadow(0 0 7px rgba(227,165,131,.75))}86%{transform: rotate(6deg)}90%{transform: rotate(-3deg);filter: drop-shadow(0 0 7px rgba(227,165,131,.6))}94%{transform: rotate(0);filter: drop-shadow(0 0 0 rgba(185,112,78,0))}}@keyframes oisillon-appel{0%,80%,100%{transform: translateY(0)}85%{transform: translateY(-4px)}89%{transform: translateY(0)}92%{transform: translateY(-2px)}}@media (prefers-reduced-motion: reduce){.oeuf.est-eclos .oeuf__dessin,.oeuf.est-eclos .oeuf__oisillon{animation: none !important}}.oeuf__bulle{color: #9A5536;border-color: rgba(154,85,54,.5)}.presentation__formation{color: var(--terre-texte);font-weight: 600}