/* =====================================================================
   LeReset — feuille de style unique
   Univers « Summer mood » (par défaut) + univers « Mouvement » (néon)
   Les couleurs se changent ici, dans :root.
   ===================================================================== */

@font-face { font-family: "Lora"; src: url("/assets/fonts/lora-variable.woff") format("woff"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Lora"; src: url("/assets/fonts/lora-italic-variable.woff") format("woff"); font-weight: 400 700; font-style: italic; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-regular.woff") format("woff"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-medium.woff") format("woff"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("/assets/fonts/poppins-bold.woff") format("woff"); font-weight: 700; font-display: swap; }

:root {
  /* Summer mood — palette du cahier des charges */
  --creme: #E5DDD3;
  --creme-clair: #F6F1EA;
  --or: #D4A957;
  --or-texte: #7A5A1E;      /* or assombri, lisible sur crème */
  --sauge: #6B7F5A;
  --sauge-texte: #4E5E40;   /* sauge assombrie, lisible sur crème */
  --sauge-clair: #DDE2D2;
  --vert: #17463F;
  --vert-profond: #0F322D;
  --encre: #1E2925;
  --rose: #B8166A;          /* accent qui annonce l'univers ateliers */

  /* Univers Mouvement */
  --noir: #0D0A0C;
  --noir-2: #1A1016;
  --neon: #FF4FAE;
  --magenta: #E0288A;
  --jaune-pale: #FFF4C7;
  --rose-pale: #F9C8E6;
  --texte-sombre: #F7EEF3;

  --fond: var(--creme-clair);
  --texte: var(--encre);
  --titres: var(--vert);
  --lien: var(--vert);
  --ligne: rgba(23, 70, 63, .18);

  --serif: "Lora", Georgia, "Times New Roman", serif;
  --sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --rayon: 14px;
  --largeur: 1180px;
  --etroit: 760px;
  --gouttiere: clamp(1rem, 4vw, 2rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 6rem; }
body { margin: 0; background: var(--fond); color: var(--texte); font-family: var(--sans); font-size: 1.0625rem; line-height: 1.7; text-rendering: optimizeLegibility; }
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3 { font-family: var(--serif); color: var(--titres); font-weight: 500; line-height: 1.2; margin: 0 0 .6em; text-wrap: balance; }
h1 { font-size: clamp(2.05rem, 5.2vw, 3.5rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.3rem); }
h3 { font-size: clamp(1.2rem, 2vw, 1.4rem); }
p { margin: 0 0 1em; }
a { color: var(--lien); text-underline-offset: .2em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--or); outline-offset: 3px; border-radius: 4px; }
strong { font-weight: 500; }
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.evitement { position: absolute; left: 1rem; top: -4rem; z-index: 100; background: var(--vert); color: #fff; padding: .6rem 1rem; border-radius: 8px; }
.evitement:focus { top: 1rem; }
main:focus { outline: none; }

.conteneur { width: 100%; max-width: var(--largeur); margin: 0 auto; padding: 0 var(--gouttiere); }
.conteneur-etroit { max-width: var(--etroit); }
.conteneur.conteneur-etroit { max-width: calc(var(--etroit) + 2 * var(--gouttiere)); }
.sans-marge { padding: 0; margin-left: 0; }
.titre-centre { text-align: center; margin-left: auto; margin-right: auto; }
.section { padding: clamp(3rem, 8vw, 6rem) 0; }
.section-courte { padding-top: 1rem; }
.section-creme { background: var(--creme); }
.section-sauge { background: var(--sauge-clair); }
.section-vert { background: var(--vert); color: #F3EEE6; }
.section-vert h2, .section-vert a:not(.btn) { color: #fff; }
.surtitre { font-family: var(--sans); text-transform: uppercase; letter-spacing: .16em; font-size: .78rem; font-weight: 500; color: var(--or-texte); margin-bottom: 1rem; }
.sous-titre { font-family: var(--serif); font-style: italic; color: var(--sauge-texte); font-size: 1.15rem; margin-top: -.3rem; }
.chapo { font-size: clamp(1.1rem, 2vw, 1.25rem); }
.petit { font-size: .9rem; opacity: .9; }
.note { font-family: var(--serif); font-style: italic; color: var(--sauge-texte); margin-top: 2rem; }
.citation { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 2.2vw, 1.4rem); color: var(--vert); border-left: 3px solid var(--or); padding-left: 1.1rem; margin-top: 1.6rem; }

/* ---------- En-tête ---------- */
.entete { position: sticky; top: 0; z-index: 50; background: rgba(246, 241, 234, .94); backdrop-filter: blur(8px); border-bottom: 1px solid var(--ligne); }
.entete::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: linear-gradient(90deg, var(--vert), var(--sauge) 45%, var(--or) 80%, var(--rose)); opacity: .85; }
.entete-in { display: flex; align-items: center; gap: 1rem; min-height: 4.5rem; }
.marque { display: flex; align-items: center; gap: .75rem; text-decoration: none; margin-right: auto; }
.marque img { width: 92px; height: auto; }
.marque-signature { font-family: var(--serif); font-style: italic; font-size: 1.05rem; color: var(--vert); white-space: nowrap; }
.menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .2rem; }
.menu a { display: inline-block; padding: .5rem .7rem; text-decoration: none; color: var(--vert); font-size: .93rem; border-radius: 999px; }
.menu a:hover { background: rgba(23, 70, 63, .08); }
.menu a[aria-current="page"] { background: var(--vert); color: #fff; }
.menu { display: flex; align-items: center; gap: .6rem; }
.langue { font-weight: 500; letter-spacing: .08em; border: 1.5px solid currentColor !important; padding: .35rem .7rem !important; }
.menu-bouton { display: none; align-items: center; gap: .5rem; background: none; border: 1.5px solid var(--vert); color: var(--vert); font: 500 .9rem var(--sans); padding: .45rem .9rem; border-radius: 999px; cursor: pointer; min-height: 44px; }
.menu-barres, .menu-barres::before, .menu-barres::after { display: block; width: 18px; height: 2px; background: currentColor; position: relative; transition: transform .2s; }
.menu-barres::before, .menu-barres::after { content: ""; position: absolute; left: 0; }
.menu-barres::before { top: -6px; } .menu-barres::after { top: 6px; }
.menu-bouton[aria-expanded="true"] .menu-barres { background: transparent; }
.menu-bouton[aria-expanded="true"] .menu-barres::before { transform: translateY(6px) rotate(45deg); }
.menu-bouton[aria-expanded="true"] .menu-barres::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1060px) {
  .js .menu-bouton { display: inline-flex; }
  .js .menu { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--creme-clair); border-bottom: 1px solid var(--ligne); padding: 1rem var(--gouttiere) 1.5rem; flex-direction: column; align-items: stretch; box-shadow: 0 18px 30px -20px rgba(0,0,0,.35); }
  .js .menu.ouvert { display: flex; }
  .js .menu ul { flex-direction: column; }
  .js .menu a { padding: .75rem 1rem; font-size: 1.05rem; }
  .js .langue { align-self: flex-start; margin-top: .5rem; }
  .entete-in { position: static; }
  .menu ul { gap: 0; }
}
@media (max-width: 420px) { .marque img { width: 74px; } .marque-signature { font-size: .95rem; } }

/* ---------- Fil d'Ariane ---------- */
.ariane ol { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem; padding: 1rem 0 0; margin: 0; font-size: .85rem; }
.ariane li + li::before { content: "›"; margin-right: .35rem; opacity: .6; }
.ariane a { color: inherit; }

/* ---------- Boutons ---------- */
.boutons { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }
.boutons-centre { justify-content: center; }
.btn { display: inline-flex; align-items: center; gap: .55rem; min-height: 48px; padding: .75rem 1.4rem; border-radius: 999px; font: 500 1rem var(--sans); text-decoration: none; border: 2px solid transparent; transition: transform .15s, background .15s, box-shadow .15s; }
.btn:hover { transform: translateY(-1px); text-decoration: none; }
.btn .ic { width: 20px; height: 20px; flex: none; }
.btn-plein { background: var(--vert); color: #fff; }
.btn-plein:hover { background: var(--vert-profond); }
.btn-contour { border-color: currentColor; color: var(--vert); background: transparent; }
.btn-rose { background: var(--rose); color: #fff; }
.btn-rose:hover { background: #9A1158; }
.btn-or { background: var(--or); color: var(--vert-profond); }
.btn-or:hover { background: #E2BB6D; }
.lien-fleche { display: inline-flex; align-items: center; gap: .4rem; font-weight: 500; text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }
.lien-fleche .ic { width: 18px; transition: transform .15s; }
.lien-fleche:hover .ic { transform: translateX(3px); }
.ic { width: 22px; height: 22px; flex: none; }

/* ---------- Héro accueil ---------- */
.hero { padding: clamp(2rem, 6vw, 5rem) 0 clamp(3rem, 7vw, 5.5rem); background:
  radial-gradient(1100px 500px at 100% 0%, rgba(212,169,87,.18), transparent 60%),
  radial-gradient(800px 500px at 0% 100%, rgba(107,127,90,.16), transparent 60%); }
.hero-grille { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; grid-template-columns: 1.05fr .95fr; }
.hero-sous-titre { font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 2.4vw, 1.5rem); color: var(--sauge-texte); }
.hero-intro { max-width: 34rem; }
.arche { position: relative; border-radius: 50% 50% var(--rayon) var(--rayon) / 32% 32% var(--rayon) var(--rayon); overflow: hidden; background: var(--creme); box-shadow: 0 30px 60px -35px rgba(15, 50, 45, .55); }
.arche::after { content: ""; position: absolute; inset: 10px; border: 1px solid rgba(255,255,255,.6); border-radius: inherit; pointer-events: none; }
.arche img { width: 100%; height: 100%; object-fit: cover; }
.hero-visuel { aspect-ratio: 4 / 4.4; }
.hero-visuel img { object-position: 50% 30%; }
.arche-portrait { aspect-ratio: 4 / 5; max-width: 440px; width: 100%; justify-self: center; }

/* ---------- Deux portes ---------- */
.portes { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.porte { position: relative; border-radius: 26px; padding: clamp(1.6rem, 4vw, 2.6rem); display: flex; flex-direction: column; overflow: hidden; }
.porte h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
.porte .lien-fleche { margin-top: auto; align-self: flex-start; }
.porte-somatique { background: var(--creme-clair); border: 1px solid var(--ligne); }
.porte-somatique::before { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, rgba(212,169,87,.35), transparent 70%); }
.porte-mouvement { background: var(--noir); color: var(--texte-sombre); box-shadow: 0 0 0 1px rgba(255,79,174,.35), 0 25px 60px -30px rgba(224,40,138,.75); }
.porte-mouvement::before { content: ""; position: absolute; inset: 0; background: radial-gradient(600px 300px at 110% -10%, rgba(255,79,174,.35), transparent 60%), radial-gradient(400px 300px at -10% 110%, rgba(255,244,199,.12), transparent 60%); pointer-events: none; }
.porte-mouvement > * { position: relative; }
.porte-mouvement h3 { color: var(--jaune-pale); font-family: var(--sans); font-weight: 700; }
.porte-mouvement .surtitre { color: var(--rose-pale); }
.porte-mouvement a { color: var(--neon); }
.porte-logo { mix-blend-mode: screen; width: 150px; margin-bottom: 1rem; }

/* ---------- Listes, cartes, étapes ---------- */
.liste-feuilles { list-style: none; padding: 0; margin: 1rem 0 0; }
.liste-feuilles li { position: relative; padding-left: 2rem; margin-bottom: .9rem; }
.liste-feuilles li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 16px; border-radius: 0 50% 0 50%; background: var(--sauge); transform: rotate(-12deg); }
.liste-simple { padding-left: 1.2rem; }
.liste-simple li { margin-bottom: .6rem; }
.grille-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; margin-top: 2rem; }
.carte { background: var(--creme-clair); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem; }
.carte h3 { margin-bottom: .4rem; }
.carte p:last-child { margin-bottom: 0; }
.etapes { list-style: none; counter-reset: e; padding: 0; margin: 1.5rem 0 0; }
.etapes li { counter-increment: e; position: relative; padding: 0 0 1.5rem 4rem; }
.etapes li::before { content: counter(e); position: absolute; left: 0; top: -.2rem; width: 2.6rem; height: 2.6rem; border-radius: 50%; display: grid; place-items: center; font-family: var(--serif); font-size: 1.2rem; background: var(--or); color: var(--vert-profond); }
.etapes li:not(:last-child)::after { content: ""; position: absolute; left: 1.3rem; top: 2.6rem; bottom: .2rem; width: 1px; background: var(--ligne); }

.duo { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.duo-haut { align-items: start; grid-template-columns: 1fr 1fr; }

/* ---------- Encart complémentarité ---------- */
.encart { background: #fff; border: 1px solid var(--ligne); border-left: 4px solid var(--sauge); border-radius: var(--rayon); padding: 1.4rem 1.6rem; margin: 2rem 0 0; }
.encart-titre { font-size: 1.25rem; margin-bottom: .5rem; }
.encart p:last-child { margin-bottom: 0; }
.encart-urgence { font-size: .92rem; color: var(--sauge-texte); }
.encart-attention { border-left-color: var(--or); background: #FFFBF2; }

/* ---------- Tarifs ---------- */
.tarifs { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 1.05rem; }
.tarifs th, .tarifs td { padding: .95rem 0; border-bottom: 1px solid var(--ligne); text-align: left; font-weight: 400; }
.tarifs td { text-align: right; font-family: var(--serif); font-size: 1.35rem; color: var(--vert); white-space: nowrap; }
.duree { display: block; font-size: .88rem; color: var(--sauge-texte); }
.adresse { display: flex; gap: .7rem; align-items: flex-start; }
.adresse .ic { margin-top: .25rem; color: var(--sauge); }

/* ---------- FAQ ---------- */
.faq details { border-bottom: 1px solid var(--ligne); }
.faq summary { cursor: pointer; list-style: none; padding: 1.1rem 2.5rem 1.1rem 0; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary h3 { margin: 0; font-size: 1.15rem; }
.faq summary::after { content: "+"; position: absolute; right: .3rem; top: .8rem; font-size: 1.6rem; color: var(--or-texte); transition: transform .2s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding-bottom: 1rem; }

/* ---------- À propos ---------- */
.parcours { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.2rem; margin: 2rem 0 0; }
.parcours div { background: var(--creme-clair); border-radius: var(--rayon); padding: 1.4rem; border-top: 3px solid var(--or); }
.parcours dt { font-family: var(--serif); font-size: 1.2rem; color: var(--vert); margin-bottom: .4rem; }
.parcours dd { margin: 0; }

/* ---------- Témoignages ---------- */
.temoignage { margin: 0 0 1.5rem; }
.temoignage blockquote { margin: 0; font-family: var(--serif); font-style: italic; font-size: 1.15rem; line-height: 1.75; position: relative; padding-left: 2.4rem; }
.temoignage blockquote::before { content: "“"; position: absolute; left: 0; top: -1rem; font-size: 4rem; color: var(--or); font-style: normal; }
.temoignage figcaption { margin-top: .8rem; padding-left: 2.4rem; color: var(--sauge-texte); }

/* ---------- En-tête de page ---------- */
.entete-page { padding: clamp(2rem, 6vw, 4.5rem) 0 clamp(1.5rem, 4vw, 3rem); }
.page-simple { padding: clamp(4rem, 10vw, 8rem) 0; }
.code-erreur { font-family: var(--serif); font-size: clamp(4rem, 15vw, 8rem); color: var(--or); line-height: 1; margin: 0; }
.erreur-en { margin-top: 3rem; padding-top: 2rem; border-top: 1px solid var(--ligne); }
.texte-long h2 { margin-top: 2.2rem; font-size: clamp(1.45rem, 3vw, 1.9rem); }
.texte-long h3 { margin-top: 1.6rem; }
.bloc-texte + .bloc-texte { margin-top: 1rem; }
.articles { list-style: none; padding: 0; display: grid; gap: 1.2rem; }
.articles h2 { font-size: 1.5rem; }
.articles h2 a { text-decoration: none; }
.evenements { list-style: none; padding: 0; display: grid; gap: 1.2rem; }
.evenement { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.5rem; border-left: 4px solid var(--rose); }
.evenement h2 { font-size: 1.4rem; margin-bottom: .4rem; }
.evenement-date { font-weight: 500; color: var(--rose); margin-bottom: .3rem; }

/* ---------- Contact ---------- */
.cartes-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.2rem; margin-bottom: 2rem; }
.cartes-contact h2 { font-size: 1.35rem; }
.carte-rose { border-top: 3px solid var(--rose); }
.liste-contact { list-style: none; padding: 0; margin: 0; }
.liste-contact a { display: inline-flex; align-items: center; gap: .55rem; padding: .35rem 0; font-weight: 500; word-break: break-word; }
.formulaire { display: grid; gap: 1.1rem; margin-top: 1.5rem; }
.champ label { display: block; font-weight: 500; margin-bottom: .35rem; }
.obligatoire { font-weight: 400; font-size: .85rem; color: var(--sauge-texte); }
.champ input, .champ select, .champ textarea { width: 100%; font: inherit; color: var(--encre); background: #fff; border: 1.5px solid rgba(23,70,63,.35); border-radius: 10px; padding: .75rem .9rem; min-height: 48px; }
.champ input:focus, .champ select:focus, .champ textarea:focus { border-color: var(--vert); outline: 3px solid rgba(212,169,87,.6); outline-offset: 1px; }
.aide { font-size: .88rem; color: var(--sauge-texte); margin: .35rem 0 0; }
.piege { position: absolute; left: -9999px; }
.formulaire .btn { justify-self: start; border: 0; cursor: pointer; }

/* ---------- Pied de page ---------- */
.pied { background: var(--vert-profond); color: #E9E3D8; padding: 3.5rem 0 1.5rem; font-size: .95rem; }
.pied a { color: #fff; }
.pied-grille { display: grid; grid-template-columns: 1.3fr 1fr 1fr; gap: 2rem; }
.pied img { width: 120px; }
.pied-signature { font-family: var(--serif); font-style: italic; font-size: 1.1rem; margin: .5rem 0 .8rem; color: var(--or); }
.pied-titre { font-family: var(--sans); color: var(--or); font-size: .8rem; text-transform: uppercase; letter-spacing: .16em; font-weight: 500; }
.pied-liste { list-style: none; padding: 0; margin: 0; }
.pied-liste li { margin-bottom: .45rem; }
.pied-liste a { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; word-break: break-word; }
.pied-liste a:hover { text-decoration: underline; }
.pied-liste .ic { width: 18px; color: var(--or); }
.pied-bas { border-top: 1px solid rgba(255,255,255,.15); margin-top: 2.5rem; padding-top: 1.5rem; font-size: .85rem; opacity: .9; }
.pied-avertissement { max-width: 60rem; }

/* =====================================================================
   UNIVERS MOUVEMENT (page ateliers)
   ===================================================================== */
.univers-mouvement { --fond: var(--noir); --texte: var(--texte-sombre); --titres: var(--jaune-pale); --lien: var(--neon); --ligne: rgba(255, 79, 174, .25); background: var(--noir); }
.univers-mouvement .entete { background: rgba(13, 10, 12, .92); border-bottom-color: var(--ligne); }
.univers-mouvement .entete::after { background: linear-gradient(90deg, var(--vert), var(--or) 25%, var(--magenta) 60%, var(--neon)); }
.univers-mouvement .marque-signature, .univers-mouvement .menu a, .univers-mouvement .menu-bouton { color: var(--texte-sombre); }
.univers-mouvement .menu-bouton { border-color: var(--texte-sombre); }
.univers-mouvement .menu a:hover { background: rgba(255,255,255,.08); }
.univers-mouvement .menu a[aria-current="page"] { background: var(--neon); color: var(--noir); }
@media (max-width: 1060px) { .univers-mouvement.js .menu, .js .univers-mouvement .menu { background: var(--noir-2); } }
.univers-mouvement h1, .univers-mouvement h2, .univers-mouvement h3 { font-family: var(--sans); font-weight: 700; letter-spacing: -.01em; }
.univers-mouvement h2 { color: var(--jaune-pale); }
.univers-mouvement h3 { color: var(--rose-pale); }
.univers-mouvement :focus-visible { outline-color: var(--jaune-pale); }
.univers-mouvement .tarifs td { color: var(--jaune-pale); font-family: var(--sans); font-weight: 700; }
.univers-mouvement .adresse .ic { color: var(--neon); }
.univers-mouvement .liste-simple li::marker { color: var(--neon); }
.univers-mouvement .btn-contour { color: var(--texte-sombre); }
.univers-mouvement .pied { background: #070506; }
.univers-mouvement .pied-signature, .univers-mouvement .pied-titre, .univers-mouvement .pied-liste .ic { color: var(--rose-pale); }

.transition-neon { height: clamp(1.5rem, 4vw, 2.5rem); background: linear-gradient(180deg, rgba(212,169,87,.10), rgba(255,79,174,.10) 50%, transparent); }
.neon-hero { position: relative; padding: clamp(1.5rem, 5vw, 3.5rem) 0 clamp(3rem, 8vw, 6rem); background:
  radial-gradient(700px 420px at 15% 30%, rgba(255, 79, 174, .28), transparent 65%),
  radial-gradient(600px 400px at 90% 70%, rgba(224, 40, 138, .22), transparent 60%); }
.neon-hero-grille { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.neon-logo { mix-blend-mode: screen; width: min(460px, 100%); filter: drop-shadow(0 0 22px rgba(255, 79, 174, .55)); margin-bottom: 1.5rem; }
.titre-bulle { font-size: clamp(1.6rem, 3.4vw, 2.3rem); line-height: 1.2; background: linear-gradient(90deg, var(--jaune-pale), var(--rose-pale) 60%, #F4B6F0); -webkit-background-clip: text; background-clip: text; color: var(--jaune-pale); -webkit-text-fill-color: transparent; text-shadow: none; filter: drop-shadow(0 0 1px var(--magenta)) drop-shadow(0 0 12px rgba(224, 40, 138, .55)); }
.neon-devise { font-weight: 700; font-size: clamp(1.1rem, 2.4vw, 1.5rem); letter-spacing: .12em; text-transform: uppercase; color: var(--neon); margin-top: 1rem; }
.neon-citation { margin: 0 0 1.2rem; }
.neon-citation p { font-weight: 700; font-size: clamp(1.4rem, 3vw, 2rem); line-height: 1.3; color: var(--rose-pale); text-shadow: 0 0 18px rgba(255, 79, 174, .5); }
.neon-accroche { font-size: 1.15rem; }
.neon-signature { font-size: .95rem; color: #E8D3DE; }
.btn-neon { background: var(--neon); color: var(--noir); font-weight: 700; box-shadow: 0 0 0 0 rgba(255, 79, 174, .6), 0 10px 30px -10px rgba(255, 79, 174, .8); }
.btn-neon:hover { background: #FF77C1; }
.neon-visuel { margin: 0; border-radius: 22px; overflow: hidden; box-shadow: 0 0 0 1px rgba(255,79,174,.4), 0 30px 70px -30px rgba(224,40,138,.8); }
.neon-visuel img { width: 100%; }
.piliers { list-style: none; padding: 0; margin: 3rem 0 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.piliers li { border: 1px solid var(--ligne); border-radius: 18px; padding: 1.5rem; background: linear-gradient(160deg, rgba(255,79,174,.10), transparent 60%); }
.piliers h3 { font-size: 1.5rem; text-transform: uppercase; letter-spacing: .08em; color: var(--jaune-pale); }
.piliers p { margin: 0; }
.section-sombre { background: var(--noir-2); }
.creneaux { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; margin-top: 1.8rem; }
.creneau { border: 1px solid var(--ligne); border-radius: 18px; padding: 1.5rem; background: var(--noir); }
.creneau h3 { color: var(--jaune-pale); margin-bottom: .6rem; }
.creneau-jour { display: flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--neon); margin-bottom: .6rem; }
.creneau-soignants { border-style: dashed; }
.creneau-note { font-size: .95rem; color: #E8D3DE; }
.qr { justify-self: center; text-align: center; max-width: 240px; }
.qr img { width: 180px; border-radius: 12px; margin: 0 auto 1rem; box-shadow: 0 0 0 6px #fff, 0 0 30px rgba(255, 79, 174, .6); }
@media (hover: none) and (pointer: coarse) { .qr { display: none; } }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .hero-grille, .duo, .duo-haut, .neon-hero-grille { grid-template-columns: 1fr; }
  .hero-visuel { max-width: 460px; width: 100%; justify-self: center; order: -1; aspect-ratio: 4 / 3.6; }
  .portes, .piliers { grid-template-columns: 1fr; }
  .pied-grille { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media print {
  .entete, .pied, .boutons, .transition-neon { display: none; }
  body { background: #fff; color: #000; }
}

/* Boutons posés sur un fond vert */
.section-vert .btn-plein { background: var(--or); color: var(--vert-profond); }
.section-vert .btn-plein:hover { background: #E2BB6D; }
.section-vert .btn-contour { color: #fff; }
.code-erreur { color: var(--or-texte); }

/* Parcours sur l'accueil, visio, ateliers privés */
.parcours-titre { margin-top: clamp(2rem, 5vw, 3rem); font-size: 1.4rem; }
.parcours-titre + .parcours { margin-top: 1rem; }
.parcours-lien { margin-top: 2rem; }
.section-sauge .parcours div { background: var(--creme-clair); }
.visio-titre { margin-top: 2rem; font-size: 1.25rem; }
.piliers-prive { margin-top: 1.5rem; }
.prive-texte { margin-top: 2rem; }

/* Textes de Caroline : séances et ateliers */
.phrase-forte { font-family: var(--serif); font-style: italic; font-size: clamp(1.25rem, 2.4vw, 1.5rem); color: var(--vert); margin: 1.5rem 0; }
.liste-neon { list-style: none; padding: 0; margin: 1.5rem 0 0; }
.liste-neon li { position: relative; padding: .7rem 0 .7rem 2.2rem; border-bottom: 1px solid var(--ligne); }
.liste-neon li::before { content: "✓"; position: absolute; left: 0; top: .65rem; font-weight: 700; color: var(--neon); }
.about-titre { margin-top: 3rem; }
.univers-mouvement strong { color: var(--rose-pale); font-weight: 700; }
.grille-5 { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.btn-grand { font-size: 1.08rem; padding: .95rem 1.7rem; box-shadow: 0 12px 28px -14px rgba(15, 50, 45, .7); }
.btn-grand .ic { transition: transform .15s; }
.btn-grand:hover .ic { transform: translateX(4px); }
.hero-visuel img { object-position: 50% 22%; }
.photo-cabinet { margin: 1.5rem 0 0; }
.photo-cabinet img { width: 100%; border-radius: var(--rayon); box-shadow: 0 20px 40px -28px rgba(15, 50, 45, .6); }
.photo-cabinet figcaption { font-size: .88rem; color: var(--sauge-texte); margin-top: .5rem; font-style: italic; }
.arche-paysage { aspect-ratio: 5 / 4.2; max-width: 480px; width: 100%; justify-self: center; }
.arche-paysage img { object-position: 55% 30%; }
