/* ============ Firmarex — polices (auto-hébergées, aucun appel externe) ============ */
@font-face{font-family:"Bodoni Moda";src:url("../fonts/bodoni-moda.woff2") format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Bodoni Moda";src:url("../fonts/bodoni-moda-italic.woff2") format("woff2");font-weight:400 900;font-style:italic;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk.woff2") format("woff2");font-weight:300 800;font-style:normal;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url("../fonts/hanken-grotesk-italic.woff2") format("woff2");font-weight:300 800;font-style:italic;font-display:swap}
@font-face{font-family:"Nothing You Could Do";src:url("../fonts/nothing-you-could-do.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* ============ Jetons ============ */
:root{
  --papier:#f3eee5;--papier-2:#ece5d8;--papier-3:#e2d9c9;--blanc:#fbf9f4;
  --encre:#1c1916;--encre-2:#47413a;--gris:#857c72;
  --trait:rgba(28,25,22,.16);--trait-2:rgba(28,25,22,.34);
  --sanguine:#b6462b;--sanguine-2:#d2643f;--sanguine-pale:rgba(182,70,43,.12);
  --bleu:#48607f;--ocre:#c39443;
  --titre:"Bodoni Moda",Didot,"Bodoni MT",Georgia,serif;
  --texte:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --main:"Nothing You Could Do","Segoe Print","Bradley Hand",cursive;
  --cadre:1240px;--marge:clamp(18px,4vw,48px);
  --sortie:cubic-bezier(.22,1,.36,1);
  --revele:0;
}
@property --revele{syntax:"<number>";inherits:true;initial-value:0}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:88px;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--papier);color:var(--encre);font-family:var(--texte);font-size:17px;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased;font-optical-sizing:auto}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.07;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
img,picture,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
b,strong{font-weight:600}
h1,h2,h3,h4{font-family:var(--titre);font-weight:500;line-height:1.08;letter-spacing:-.005em;text-wrap:balance}
em{font-style:italic}
main{position:relative;z-index:1}
.cadre{width:min(var(--cadre),100% - var(--marge)*2);margin-inline:auto}
.cadre--etroit{max-width:760px}
.picto{width:20px;height:20px;flex:none}
.visuellement-cache{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.acces{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--encre);color:var(--papier);padding:10px 14px}
.acces:focus{left:8px}
::selection{background:var(--sanguine);color:var(--papier)}

/* Apparitions (JS pose .est-visible) */
[data-apparait],[data-apparait-groupe]>*{opacity:0;transform:translateY(18px);transition:opacity .9s var(--sortie),transform .9s var(--sortie);transition-delay:var(--d,0s)}
.est-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){[data-apparait],[data-apparait-groupe]>*{opacity:1;transform:none;transition:none}}

/* ============ Boutons ============ */
.bouton{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:14px 22px;border-radius:2px;font-weight:600;font-size:15px;line-height:1;letter-spacing:.01em;white-space:nowrap;transition:background .3s,color .3s,border-color .3s,transform .3s var(--sortie);border:1px solid transparent}
.bouton .picto{width:18px;height:18px;transition:transform .3s var(--sortie)}
.bouton:hover .picto{transform:translateX(3px)}
.bouton--plein{background:var(--encre);color:var(--papier);border-color:var(--encre)}
.bouton--plein:hover{background:var(--sanguine);border-color:var(--sanguine)}
.bouton--trait{border-color:var(--trait-2);color:var(--encre)}
.bouton--trait:hover{border-color:var(--encre)}
.bouton--petit{padding:10px 16px;font-size:14px}
.bouton--large{padding:17px 28px;font-size:16px}
.bouton--bloc{width:100%}
.bouton:disabled{opacity:.6;cursor:default}

/* ============ Planche (section) ============ */
.planche{position:relative;padding:clamp(64px,8vw,112px) 0}
.planche+.planche{border-top:1px solid var(--trait)}
.planche__num{display:inline-flex;align-items:center;gap:10px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sanguine);margin-bottom:18px}
.planche__num::before{content:"";width:28px;height:1px;background:var(--sanguine)}
.planche__tete{max-width:780px;margin:0 auto clamp(36px,5vw,64px);text-align:center}
.planche__tete .planche__num{justify-content:center}
.planche__tete h2{font-size:clamp(32px,4.2vw,56px)}
.planche__tete p{margin:18px auto 0;color:var(--encre-2);font-size:clamp(17px,1.3vw,19px);max-width:62ch}
.planche__tete--gauche{text-align:left;margin-inline:0}
.planche__tete--gauche p{margin-inline:0}
.planche__tete a{color:var(--sanguine);border-bottom:1px solid currentColor}

/* ============ En-tête ============ */
.entete{position:sticky;top:0;z-index:40;background:color-mix(in oklab,var(--papier) 86%,transparent);backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);border-bottom:1px solid transparent;transition:border-color .3s}
.entete.est-defile{border-color:var(--trait)}
.entete__ligne{display:flex;align-items:center;justify-content:space-between;gap:24px;height:74px}
.signature{display:inline-flex;flex-direction:column;line-height:1;color:var(--encre);position:relative;top:1px}
.signature__mot{font-family:var(--titre);font-style:italic;font-weight:500;font-size:29px;letter-spacing:.005em}
.signature__paraphe{width:104px;height:12px;margin:-4px 0 0 1px;stroke:var(--sanguine);stroke-width:1.7;fill:none;stroke-linecap:round;overflow:visible}
.signature__paraphe path{stroke-dasharray:1;stroke-dashoffset:1;animation:tracer 1.3s .25s var(--sortie) forwards}
.signature--pied .signature__paraphe path{animation:none;stroke-dashoffset:0}
@keyframes tracer{to{stroke-dashoffset:0}}
.entete__nav{display:flex;gap:28px;font-size:15px;font-weight:500;color:var(--encre-2)}
.entete__nav a{position:relative;padding:4px 0;transition:color .2s}
.entete__nav a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--sanguine);transition:right .35s var(--sortie)}
.entete__nav a:hover{color:var(--encre)}
.entete__nav a:hover::after{right:0}
.entete__tel-mobile{display:none}
.entete__droite{display:flex;align-items:center;gap:18px}
.entete__tel{font-size:14.5px;color:var(--encre-2);font-variant-numeric:tabular-nums}
.entete__tel:hover{color:var(--sanguine)}
.entete__menu{display:none;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid var(--trait-2);border-radius:2px}
.entete__menu span{width:18px;height:1.5px;background:var(--encre);transition:transform .3s,opacity .3s}
.entete__menu[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}
.entete__menu[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}

/* ============ Ouverture (scène avant / après) ============ */
.ouverture{padding:clamp(24px,4vw,56px) 0 clamp(56px,7vw,96px);position:relative}
.ouverture__grille{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.24fr);gap:clamp(32px,4.5vw,72px);align-items:center}
.ouverture__sur{font-size:12.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sanguine);margin-bottom:22px}
.ouverture__titre{font-size:clamp(42px,5.4vw,78px);line-height:.98;font-weight:500}
.ouverture__titre em{color:var(--sanguine)}
.ouverture__lead{margin-top:26px;font-size:clamp(17px,1.35vw,19.5px);color:var(--encre-2);max-width:46ch}
.ouverture__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.ouverture__reperes{display:grid;grid-template-columns:repeat(3,auto);gap:16px 28px;margin-top:38px;padding-top:22px;border-top:1px solid var(--trait);justify-content:start}
.ouverture__reperes dt{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gris)}
.ouverture__reperes dd{font-size:15px;margin-top:4px;color:var(--encre)}

.scene{margin:0;position:relative}
.scene__cadre{position:relative;aspect-ratio:2200/1228;overflow:hidden;background:var(--papier-3);border:1px solid var(--trait);box-shadow:0 40px 70px -40px rgba(28,25,22,.45)}
.scene__cadre>img,.scene__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scene__video{opacity:0;transition:opacity 1.2s}
.scene.est-revele .scene__video{opacity:1}
.scene__avant{clip-path:inset(0 0 0 calc(var(--revele)*1%));z-index:2}
.scene.est-transition{transition:--revele 2.6s var(--sortie)}
.scene__curseur{position:absolute;top:0;bottom:0;left:calc(var(--revele)*1%);width:0;z-index:4;border-left:1px dashed rgba(255,255,255,.9);pointer-events:none;filter:drop-shadow(0 0 2px rgba(0,0,0,.4))}
.scene__etiquette{position:absolute;top:14px;font:15px/1 var(--main);color:#fff;background:rgba(28,25,22,.5);padding:5px 9px 4px;border-radius:2px;white-space:nowrap}
.scene__etiquette--avant{left:10px}
.scene__etiquette--apres{right:10px}
.scene__commandes{display:flex;align-items:center;gap:18px;margin-top:14px}
.scene__glissiere{flex:1;display:block}
.scene__glissiere input{width:100%;height:24px;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.scene__glissiere input::-webkit-slider-runnable-track{height:1px;background:var(--trait-2)}
.scene__glissiere input::-moz-range-track{height:1px;background:var(--trait-2)}
.scene__glissiere input::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;margin-top:-7.5px;border-radius:50%;background:var(--papier);border:1.5px solid var(--sanguine);box-shadow:0 0 0 4px var(--papier)}
.scene__glissiere input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--papier);border:1.5px solid var(--sanguine)}
.scene__lecture{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--encre-2);padding:6px 10px;border:1px solid var(--trait);border-radius:2px}
.scene__lecture .picto{width:14px;height:14px}
.scene__lecture[aria-pressed=false] .picto:nth-child(2){display:none}
.scene__lecture[aria-pressed=true] .picto:nth-child(1){display:none}
.scene__legende{margin-top:10px;font-size:13px;color:var(--gris)}

/* Calque : annotations au crayon sanguine */
.calque{position:absolute;inset:0;z-index:3;pointer-events:none;transition:opacity 1.4s}
.calque::before{content:"";position:absolute;inset:0;background:rgba(251,249,244,.14)}
.scene.est-revele .calque{opacity:.72}
.calque__traits{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.calque__trait{fill:none;stroke:var(--sanguine);stroke-width:1.6px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1}
.calque__point{fill:none;stroke:var(--sanguine);stroke-width:1.6px;opacity:0;transform-box:fill-box;transform-origin:center}
.calque__note{--dx:-4px;position:absolute;transform:translate(var(--dx),-100%);font:clamp(13px,1.25vw,19px)/1.15 var(--main);color:var(--sanguine);background:rgba(251,249,244,.8);padding:3px 8px 2px;border-radius:2px;opacity:0;white-space:nowrap}
.calque__note--droite{--dx:calc(-100% + 4px)}
.est-annote .calque__trait{animation:tracer .9s calc(var(--i)*.42s + .1s) var(--sortie) forwards}
.est-annote .calque__note{animation:noter .5s calc(var(--i)*.42s + .55s) var(--sortie) forwards}
.est-annote .calque__point{animation:pointer .35s calc(var(--i)*.42s + .85s) var(--sortie) forwards}
.est-retour .calque__trait,.est-retour .calque__note,.est-retour .calque__point{animation:none}
@keyframes noter{from{opacity:0;transform:translate(var(--dx),-92%)}to{opacity:1;transform:translate(var(--dx),-100%)}}
@keyframes pointer{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.calque__trait{stroke-dashoffset:0}.calque__note,.calque__point{opacity:1}.est-annote .calque__trait,.est-annote .calque__note,.est-annote .calque__point{animation:none}}

/* ============ Légende (ce que nous touchons) ============ */
.legende__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);position:relative}
.legende__cols::before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:1px dashed var(--trait-2)}
.legende__col h3{font-style:italic;font-size:clamp(24px,2.4vw,32px);margin-bottom:20px}
.legende__col--non h3{color:var(--gris)}
.legende__col li{display:grid;grid-template-columns:20px 1fr;gap:14px;align-items:start;padding:13px 0;border-bottom:1px dashed var(--trait);font-size:16.5px;line-height:1.45}
.legende__col li::before{content:"";width:12px;height:12px;border-radius:50%;margin-top:7px;border:1.5px solid var(--sanguine)}
.legende__col--oui li::before{background:var(--sanguine)}
.legende__col--non li{color:var(--encre-2)}
.legende__col--non li::before{border-color:var(--gris);border-style:dashed}
.legende__note{margin:32px auto 0;font-family:var(--titre);font-style:italic;font-size:clamp(19px,1.7vw,24px);line-height:1.35;color:var(--encre-2);max-width:56ch;text-align:center}

/* ============ Lieux ============ */
.lieux__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(32px,5vw,80px);align-items:start}
.lieux__index{border-top:1px solid var(--trait-2)}
.lieux__item{border-bottom:1px solid var(--trait)}
.lieux__bouton{display:flex;justify-content:space-between;align-items:baseline;gap:16px;width:100%;padding:18px 0;text-align:left}
.lieux__nom{font-family:var(--titre);font-weight:500;font-size:clamp(23px,2.3vw,32px);line-height:1.1;transition:color .3s,transform .5s var(--sortie);display:inline-block}
.est-actif .lieux__nom{color:var(--sanguine);transform:translateX(10px)}
.lieux__note{font:15.5px var(--main);color:var(--gris);white-space:nowrap;text-align:right}
.lieux__corps{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--sortie)}
.est-actif .lieux__corps{grid-template-rows:1fr}
.lieux__pli{min-height:0;overflow:hidden}
.lieux__corps p{padding:0 0 22px;color:var(--encre-2);max-width:50ch}
.lieux__img-mobile{display:none}
.lieux__visuel{position:sticky;top:96px;margin:0}
.lieux__pile{position:relative;aspect-ratio:3/2;overflow:hidden;border:1px solid var(--trait);background:var(--papier-3)}
.lieux__pile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .8s var(--sortie),transform 1.2s var(--sortie)}
.lieux__pile img.est-actif{opacity:1;transform:none}
.lieux__visuel figcaption,.methode__scene figcaption{margin-top:10px;font-size:13px;color:var(--gris)}

/* ============ Méthode ============ */
.methode__grille{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,5vw,72px);align-items:start}
.methode__colle{position:sticky;top:96px}
.methode__scene{margin:0}
.methode__pile{position:relative;aspect-ratio:3/2;overflow:hidden;border:1px solid var(--trait);background:var(--papier-3)}
.methode__pile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s var(--sortie)}
.methode__pile img.est-actif{opacity:1}
.calque--lecture{opacity:0;transition:opacity .6s}
.methode__scene[data-temps="1"] .calque--lecture{opacity:1}
.methode__temps{display:flex;flex-direction:column}
.temps{display:grid;grid-template-columns:64px 1fr;gap:20px;padding:clamp(28px,4vw,52px) 0;border-top:1px solid var(--trait);min-height:min(38vh,400px);opacity:.42;transition:opacity .5s}
.temps:first-child{border-top:0;padding-top:0}
.temps.est-actif{opacity:1}
.temps__num{font-family:var(--titre);font-style:italic;font-weight:500;font-size:clamp(30px,3vw,46px);line-height:1;color:var(--sanguine)}
.temps h3{font-size:clamp(24px,2.4vw,32px)}
.temps h3 small{display:block;font:600 12px/1.4 var(--texte);letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-top:10px}
.temps p{margin-top:14px;color:var(--encre-2)}
.temps__img-mobile{display:none}
.methode__fin{margin-top:28px;font-family:var(--titre);font-style:italic;font-size:clamp(18px,1.6vw,23px);color:var(--encre-2);text-align:center}
.methode__fin a{color:var(--sanguine);white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.methode__fin .picto{width:18px;height:18px}

/* ============ Carte des formules ============ */
.carte__liste{border-top:1px solid var(--trait-2)}
.formule{border-bottom:1px solid var(--trait)}
.formule__ligne{display:flex;align-items:baseline;gap:18px;padding:24px 0;cursor:pointer;list-style:none}
.formule__ligne::-webkit-details-marker{display:none}
.formule__nom{display:flex;flex-direction:column;gap:5px;min-width:0}
.formule__nom b{font-family:var(--titre);font-weight:500;font-size:clamp(24px,2.7vw,38px);line-height:1.05;transition:color .3s}
.formule[open] .formule__nom b,.formule__ligne:hover .formule__nom b{color:var(--sanguine)}
.formule__nom i{font-style:normal;font-size:15px;color:var(--gris)}
.formule__points{flex:1;min-width:24px;border-bottom:1.5px dotted var(--trait-2);transform:translateY(-9px)}
.formule__prix{font-family:var(--titre);font-weight:500;font-size:clamp(24px,2.7vw,38px);line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.formule__plus{width:34px;height:34px;border:1px solid var(--trait-2);border-radius:50%;display:grid;place-items:center;align-self:center;transition:transform .45s var(--sortie),background .3s,color .3s;flex:none}
.formule__plus .picto{width:16px;height:16px}
.formule[open] .formule__plus{transform:rotate(45deg);background:var(--encre);color:var(--papier);border-color:var(--encre)}
.formule__corps{padding:2px 0 36px;display:grid;gap:26px}
.formule__pour{font-family:var(--titre);font-style:italic;font-size:clamp(19px,1.7vw,25px);line-height:1.35;max-width:60ch}
.formule__cols{display:grid;grid-template-columns:1.25fr 1fr;gap:40px}
.formule__cols h4{font-family:var(--texte);font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gris);margin-bottom:12px}
.formule__cols ul li{display:flex;gap:12px;padding:9px 0;border-bottom:1px dashed var(--trait);font-size:16px;line-height:1.45}
.formule__cols ul .picto{color:var(--sanguine);width:18px;height:18px;margin-top:3px}
.formule__cols p{color:var(--encre-2);margin-bottom:20px;font-size:16px}
.formule__pied{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.formule__tarif{color:var(--gris);font-size:15px}
.carte__note{margin:28px auto 0;font-size:15px;color:var(--gris);max-width:70ch;text-align:center}

/* ============ Parcours ============ */
.parcours__fil{display:grid;grid-template-columns:repeat(5,1fr);gap:28px;position:relative;padding-top:36px}
.parcours__fil::before{content:"";position:absolute;left:0;right:0;top:42px;border-top:1.5px dashed var(--trait-2)}
.station{position:relative;padding-top:26px}
.station__point{position:absolute;top:0;left:0;width:14px;height:14px;border-radius:50%;background:var(--papier);border:1.5px solid var(--sanguine);box-shadow:0 0 0 6px var(--papier)}
.station__num{position:absolute;top:-34px;left:0;font:17px var(--main);color:var(--sanguine)}
.station h3{font-size:clamp(20px,1.8vw,25px)}
.station p{margin-top:10px;font-size:15.5px;color:var(--encre-2)}
.parcours__pied{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:56px;padding-top:30px;border-top:1px solid var(--trait);flex-wrap:wrap}
.parcours__pied p{font-family:var(--titre);font-style:italic;font-size:clamp(18px,1.6vw,23px);color:var(--encre-2)}

/* ============ Questions ============ */
.questions__grille{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,5vw,80px);align-items:start}
.questions__liste{border-top:1px solid var(--trait-2)}
.question{border-bottom:1px solid var(--trait)}
.question summary{display:grid;grid-template-columns:40px 1fr 28px;gap:12px;align-items:baseline;padding:20px 0;cursor:pointer;list-style:none;font-family:var(--titre);font-weight:500;font-size:clamp(18px,1.6vw,23px);line-height:1.3}
.question summary::-webkit-details-marker{display:none}
.question__num{font:15px var(--main);color:var(--sanguine)}
.question__plus{width:20px;height:20px;align-self:center;transition:transform .45s var(--sortie);color:var(--gris)}
.question[open] .question__plus{transform:rotate(45deg);color:var(--sanguine)}
.question__reponse{padding:0 0 26px 52px;color:var(--encre-2);max-width:62ch}

/* ============ Demande + fiche ============ */
.demande{background:var(--papier-2)}
.demande__grille{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start}
.demande__texte h1,.demande__texte h2{font-size:clamp(34px,4.2vw,56px);line-height:1.02;margin-top:6px}
.demande__lead{margin-top:20px;font-size:18px;color:var(--encre-2);max-width:48ch}
.demande__choix{margin-top:26px;padding:18px 20px;border:1px solid var(--trait-2);background:var(--blanc);display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:baseline}
.demande__choix b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);grid-column:1/-1}
.demande__choix span{font-family:var(--titre);font-size:22px}
.demande__choix strong{font-family:var(--titre);font-weight:500;font-size:24px}
.demande__choix small{grid-column:1/-1;font-size:14px;color:var(--encre-2)}
.demande__points{margin-top:28px;display:grid;gap:12px}
.demande__points li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.demande__points .picto{color:var(--sanguine);margin-top:2px}
.demande__contact{margin-top:28px;font-size:15.5px;color:var(--encre-2)}
.demande__contact a{color:var(--encre);border-bottom:1px solid var(--trait-2)}
.fiche{position:relative;background:var(--blanc);border:1px solid var(--trait);padding:clamp(22px,3vw,40px);box-shadow:0 30px 50px -36px rgba(28,25,22,.4)}
.fiche::before{content:"";position:absolute;top:-13px;left:50%;width:118px;height:26px;transform:translateX(-50%) rotate(-2deg);background:rgba(226,215,190,.85);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.fiche__rang{display:grid;gap:18px;margin-bottom:20px}
.fiche__rang--2{grid-template-columns:1fr 1fr}
.fiche__rang--ville{grid-template-columns:1.4fr 1fr}
.champ{display:flex;flex-direction:column;gap:6px;position:relative}
.champ>span{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gris)}
.champ em{font:15px var(--main);text-transform:none;letter-spacing:0;color:var(--gris);margin-left:6px}
.champ input,.champ select,.champ textarea{width:100%;font:inherit;font-size:16px;color:var(--encre);background:transparent;border:0;border-bottom:1px solid var(--trait-2);padding:10px 0;border-radius:0;outline:none;transition:border-color .2s,box-shadow .2s}
.champ input:focus,.champ select:focus,.champ textarea:focus{border-color:var(--sanguine);box-shadow:0 1px 0 var(--sanguine)}
.champ .est-erreur{border-color:var(--sanguine);box-shadow:0 1px 0 var(--sanguine)}
.champ select{appearance:none;-webkit-appearance:none;padding-right:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2347413a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 2px center/18px;cursor:pointer}
.champ textarea{resize:vertical;min-height:84px;line-height:1.5}
.champ input::placeholder,.champ textarea::placeholder{color:#b3aa9e}
.champ__erreur{font-size:13px;color:var(--sanguine)}
.fiche__piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;opacity:0}
.accord{display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--encre-2);margin:14px 0;line-height:1.5}
.accord input{width:18px;height:18px;margin-top:3px;accent-color:var(--sanguine);flex:none}
.accord a{color:var(--encre);border-bottom:1px solid var(--trait-2)}
.fiche .bouton--bloc{margin-top:12px}
.fiche__note{margin-top:14px;font-size:13px;color:var(--gris);line-height:1.55}

/* ============ Pied de page ============ */
.pied{position:relative;z-index:1;border-top:1px solid var(--trait-2);padding:clamp(48px,6vw,80px) 0 32px}
.pied__haut{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.pied__marque p{margin:18px 0;color:var(--encre-2);max-width:42ch;font-size:15.5px}
.pied address{font-style:normal;font-size:15px;line-height:1.75;color:var(--encre-2)}
.pied address a{color:var(--encre)}
.pied address a:hover{color:var(--sanguine)}
.pied__nav{display:flex;flex-direction:column;gap:10px;font-size:15px}
.pied__nav b{font-family:var(--titre);font-style:italic;font-weight:500;font-size:19px;margin-bottom:8px}
.pied__nav a{color:var(--encre-2);transition:color .2s}
.pied__nav a:hover{color:var(--sanguine)}
.pied__mention{margin-top:48px;padding-top:24px;border-top:1px dashed var(--trait);font-size:13px;line-height:1.6;color:var(--gris)}
.pied__bas{display:flex;justify-content:space-between;gap:16px;margin-top:22px;font-size:13px;color:var(--gris);flex-wrap:wrap}
.pied__bas span:last-child{font:16px var(--main);color:var(--sanguine)}

/* ============ Bandeau cookies ============ */
.bandeau{position:fixed;left:16px;right:16px;bottom:16px;z-index:60;margin:0 auto;max-width:760px;background:var(--blanc);border:1px solid var(--trait-2);padding:16px 20px;display:flex;gap:18px;align-items:center;justify-content:space-between;box-shadow:0 20px 40px -20px rgba(28,25,22,.45);font-size:14px;line-height:1.5;color:var(--encre-2)}
.bandeau[hidden]{display:none}
.bandeau a{color:var(--encre);border-bottom:1px solid var(--trait-2)}
.bandeau__actions{display:flex;gap:8px;flex:none}

/* ============ Pages intérieures ============ */
.page-tete{padding:clamp(40px,6vw,80px) 0 clamp(24px,4vw,44px)}
.page-tete h1{font-size:clamp(36px,5vw,64px);line-height:1.02}
.page-tete .lead{margin-top:18px;font-size:clamp(17px,1.3vw,19.5px);color:var(--encre-2);max-width:60ch}
.page-tete .planche__num{margin-bottom:16px}
.texte{padding-bottom:clamp(56px,8vw,96px)}
.texte h2{font-size:clamp(24px,2.4vw,32px);margin:44px 0 16px}
.texte h3{font-style:italic;font-size:clamp(20px,1.8vw,24px);margin:32px 0 12px}
.texte p{margin:0 0 18px;font-size:17.5px;line-height:1.65}
.texte ul,.texte ol{margin:0 0 18px 22px;list-style:disc}
.texte ol{list-style:decimal}
.texte li{margin-bottom:8px}
.texte a{color:var(--sanguine);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.texte table{width:100%;border-collapse:collapse;margin:20px 0 26px;font-size:15px}
.texte th,.texte td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--trait);vertical-align:top}
.texte th{font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gris)}
.texte .note{font-size:15px;color:var(--gris);border-left:2px solid var(--sanguine);padding-left:14px}
.texte .marge{font:19px/1.3 var(--main);color:var(--sanguine);margin:6px 0 24px;padding-left:16px;border-left:1px dashed var(--sanguine)}
@media (min-width:1180px){.texte .marge{float:right;clear:right;width:210px;margin:4px -250px 16px 24px;padding:0;border:0;font-size:20px}}
.texte--legal p,.texte--legal li{font-size:16px}
.texte--legal h2{font-size:clamp(21px,2vw,26px);margin-top:36px}
.texte__date{font-size:13px;color:var(--gris);letter-spacing:.06em;text-transform:uppercase;margin-bottom:28px}
.texte .encadre{border:1px solid var(--trait-2);background:var(--blanc);padding:20px 22px;margin:22px 0 28px;font-size:15.5px}
.texte .encadre p:last-child{margin-bottom:0}
.rappel{background:var(--papier-2);border-top:1px solid var(--trait)}
.rappel__in{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(40px,5vw,64px) 0}
.rappel h2{font-size:clamp(26px,3vw,40px)}
.rappel p{margin-top:8px;color:var(--encre-2)}

/* Carnet */
.carnet__liste{border-top:1px solid var(--trait-2)}
.entree{display:grid;grid-template-columns:64px minmax(0,1fr) 300px;gap:32px;padding:30px 0;border-bottom:1px solid var(--trait);align-items:center}
.entree--une{grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);padding:40px 0}
.entree__num{font-family:var(--titre);font-style:italic;font-weight:500;font-size:30px;color:var(--sanguine);line-height:1}
.entree h2{font-size:clamp(22px,2.4vw,32px);transition:color .3s}
.entree--une h2{font-size:clamp(28px,3.4vw,46px)}
.entree:hover h2{color:var(--sanguine)}
.entree p{margin-top:12px;color:var(--encre-2);max-width:60ch}
.entree__meta{margin-top:14px;font-size:12.5px;color:var(--gris);letter-spacing:.08em;text-transform:uppercase}
.entree__img{aspect-ratio:3/2;overflow:hidden;border:1px solid var(--trait);background:var(--papier-3)}
.entree__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--sortie)}
.entree:hover .entree__img img{transform:scale(1.04)}

/* Billet */
.billet__tete{padding:clamp(40px,6vw,72px) 0 24px}
.billet__retour{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--gris);margin-bottom:26px}
.billet__retour .picto{width:16px;height:16px;transform:rotate(180deg)}
.billet__retour:hover{color:var(--sanguine)}
.billet__tete h1{font-size:clamp(34px,4.6vw,60px);line-height:1.04}
.billet__tete .lead{margin-top:20px;font-size:clamp(17px,1.3vw,20px);color:var(--encre-2)}
.billet__meta{font-size:12.5px;color:var(--gris);text-transform:uppercase;letter-spacing:.08em;margin-top:22px}
.billet__couv{margin:36px auto 44px;aspect-ratio:2/1;overflow:hidden;border:1px solid var(--trait);background:var(--papier-3)}
.billet__couv img{width:100%;height:100%;object-fit:cover}
.billet__couv figcaption{font-size:13px;color:var(--gris);margin-top:8px}
.texte--billet>p:first-of-type::first-letter{font-family:var(--titre);font-weight:500;font-size:3.4em;line-height:.8;float:left;margin:9px 10px 0 0;color:var(--sanguine)}
.billet__cta{margin:0 auto clamp(48px,6vw,72px);padding:28px 30px;border:1px solid var(--trait-2);background:var(--blanc);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.billet__cta h3{font-size:clamp(22px,2vw,28px)}
.billet__cta p{margin-top:8px;color:var(--encre-2);font-size:15.5px}
.suite{padding:0 0 clamp(56px,8vw,96px)}
.suite h2{font-style:italic;font-size:clamp(22px,2.2vw,30px);margin-bottom:24px;padding-top:32px;border-top:1px solid var(--trait-2)}
.suite__grille{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.suite__grille a h3{font-size:20px;line-height:1.2;margin-top:14px;transition:color .3s}
.suite__grille a:hover h3{color:var(--sanguine)}
.suite__grille .entree__meta{margin-top:8px}

/* Atelier */
.histoire{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center;padding:clamp(24px,4vw,48px) 0 clamp(56px,7vw,96px)}
.histoire__texte h2{font-size:clamp(26px,3vw,40px);margin-bottom:20px}
.histoire__texte p{margin-bottom:16px;color:var(--encre-2);font-size:17px}
.histoire__img{border:1px solid var(--trait);overflow:hidden;background:var(--papier-3)}
.histoire__img img{width:100%;height:auto}
.histoire__img figcaption{font-size:13px;color:var(--gris);margin-top:8px}
.principes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.principe{padding:24px 0 0;border-top:1px solid var(--trait-2)}
.principe span{font:18px var(--main);color:var(--sanguine)}
.principe h3{font-size:clamp(20px,1.8vw,25px);margin:10px 0 12px}
.principe p{color:var(--encre-2);font-size:15.5px}
.coordonnees{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px)}
.coordonnees__liste li{display:grid;grid-template-columns:24px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--trait)}
.coordonnees__liste .picto{color:var(--sanguine);margin-top:3px}
.coordonnees__liste b{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin-bottom:4px}
.coordonnees__liste a{color:var(--encre);border-bottom:1px solid var(--trait-2)}
.coordonnees__liste span{color:var(--encre-2);font-size:15.5px}

/* Merci / 404 */
.merci{padding:clamp(56px,8vw,112px) 0}
.merci__grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center}
.merci h1{font-size:clamp(36px,5vw,64px);line-height:1.02}
.merci .lead{margin-top:20px;font-size:18px;color:var(--encre-2)}
.merci__liste{margin-top:26px;display:grid;gap:10px}
.merci__liste li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
.merci__liste .picto{color:var(--sanguine);margin-top:2px}
.merci__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.merci__img{border:1px solid var(--trait);overflow:hidden}
.merci__img img{width:100%;height:auto}
.merci__note{font:18px var(--main);color:var(--sanguine);margin-top:22px}

/* ============ Réactif ============ */
@media (max-width:1100px){
  .pied__haut{grid-template-columns:1fr 1fr}
  .pied__marque{grid-column:1/-1}
  .entree{grid-template-columns:48px minmax(0,1fr) 220px}
  .entree--une{grid-template-columns:48px minmax(0,1fr) minmax(0,1fr)}
}
@media (max-width:900px){
  html{scroll-padding-top:76px}
  .entete__ligne{height:66px}
  .entete__nav{position:fixed;left:0;right:0;top:66px;z-index:39;display:flex;flex-direction:column;gap:6px;padding:14px var(--marge) 22px;background:var(--papier);border-bottom:1px solid var(--trait);box-shadow:0 30px 40px -30px rgba(28,25,22,.35);opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .3s,transform .4s var(--sortie);font-size:19px}
  .entete__nav a{padding:10px 0;border-bottom:1px dashed var(--trait)}
  .entete__nav a::after{display:none}
  .entete__nav.est-ouvert{opacity:1;transform:none;pointer-events:auto}
  .entete__tel-mobile{display:block;font:16px var(--texte);color:var(--sanguine)}
  .entete__tel{display:none}
  .entete__menu{display:flex}
  .entete__droite{gap:10px}
  .entete__droite .bouton{padding:10px 12px;font-size:13px}
  .ouverture__grille,.lieux__grille,.methode__grille,.questions__grille,.demande__grille,.histoire,.coordonnees,.merci__grille{grid-template-columns:1fr}
  .ouverture{padding-top:12px}
  .ouverture__reperes{grid-template-columns:repeat(2,auto)}
  .planche__tete{text-align:left;margin-inline:0}
  .planche__tete .planche__num{justify-content:flex-start}
  .planche__tete p{margin-inline:0}
  .legende__note,.carte__note,.methode__fin{text-align:left}
  .lieux__visuel{display:none}
  .lieux__img-mobile{display:block;width:100%;height:auto;margin-bottom:22px;border:1px solid var(--trait)}
  .lieux__note{display:none}
  .methode__colle{display:none}
  .temps{min-height:0;opacity:1;grid-template-columns:48px 1fr}
  .temps__img-mobile{display:block;width:100%;height:auto;margin-top:18px;border:1px solid var(--trait)}
  .parcours__fil{grid-template-columns:1fr;gap:26px;padding:0 0 0 30px}
  .parcours__fil::before{left:6px;right:auto;top:6px;bottom:6px;border-top:0;border-left:1.5px dashed var(--trait-2)}
  .station{padding-top:0}
  .station__point{left:-30px;top:6px}
  .station__num{left:-30px;top:-24px;display:none}
  .formule__cols{grid-template-columns:1fr}
  .question summary{grid-template-columns:32px 1fr 24px}
  .question__reponse{padding-left:44px}
  .suite__grille,.principes{grid-template-columns:1fr}
  .billet__cta{grid-template-columns:1fr}
  .entree{grid-template-columns:40px minmax(0,1fr);gap:16px 20px}
  .entree__img{grid-column:2;order:-1;max-width:100%}
  .entree--une{padding:30px 0}
}
@media (max-width:600px){
  body{font-size:16px}
  .cadre{width:min(var(--cadre),100% - 32px)}
  .ouverture__titre{font-size:clamp(38px,11vw,48px)}
  .ouverture__actions .bouton{width:100%}
  .entete__droite .bouton{display:none}
  .signature__mot{font-size:26px}
  .signature__paraphe{width:92px}
  .fiche__rang--2,.fiche__rang--ville{grid-template-columns:1fr}
  .legende__cols{grid-template-columns:1fr;gap:36px}
  .legende__cols::before{display:none}
  .scene__etiquette{font-size:13px}
  .calque__note{display:none;font-size:12px}
  .calque__note:nth-of-type(1),.calque__note:nth-of-type(3),.calque__note:nth-of-type(7){display:block}
  .calque__traits path:not(:nth-of-type(1)):not(:nth-of-type(3)):not(:nth-of-type(7)),.calque__traits circle:not(:nth-of-type(1)):not(:nth-of-type(3)):not(:nth-of-type(7)){display:none}
  .formule__ligne{flex-wrap:wrap;gap:8px 12px}
  .formule__points{display:none}
  .formule__prix{font-size:22px;margin-left:auto}
  .pied__haut{grid-template-columns:1fr}
  .bandeau{flex-direction:column;align-items:stretch;left:12px;right:12px;bottom:12px}
  .bandeau__actions .bouton{flex:1}
  .parcours__pied .bouton{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .signature__paraphe path{stroke-dashoffset:0}
}
