/* La Source de la Géronstère — feuille de style principale */

@font-face{font-family:"Fraunces";src:url("../fonts/fraunces-normal.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Figtree";src:url("../fonts/figtree-normal.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}

:root{
  --creme:#F3EBDD; --creme-2:#EAE0CD; --creme-3:#DFD3BC;
  --encre:#1C1917; --encre-2:#26221F; --encre-3:#33302B;
  --sapin:#1F3A2D; --sapin-2:#172C22;
  --braise:#C2501F; --braise-2:#A8421A; --braise-clair:#E0784A; --braise-texte:#9C3D18; --braise-sapin:#F2A07A;
  --entete-h:6.25rem;
  --pierre:#A89272; --pierre-fonce:#6E5F47;
  --texte:var(--encre); --fond:var(--creme);
  --ombre:46,32,18;
  --display:"Fraunces",Georgia,"Times New Roman",serif;
  --texte-font:"Figtree","Avenir Next","Segoe UI",Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --wrap:1280px; --gout:clamp(1.25rem,4vw,3rem);
  --sec:clamp(4.5rem,10vw,9rem);
  --r:4px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--fond);color:var(--texte);font-family:var(--texte-font);font-size:1.0625rem;line-height:1.55;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,picture,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;line-height:1.02;margin:0;letter-spacing:-.012em;text-wrap:balance;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
h1{font-size:clamp(3rem,min(8.5vw,13vh),7.75rem);font-weight:750}
h2{font-size:clamp(2.1rem,4.4vw,3.9rem)}
h3{font-size:clamp(1.45rem,2.2vw,1.95rem);font-weight:650;line-height:1.12}
h4{font-size:1.2rem;font-weight:650;line-height:1.2}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
.lead{font-size:clamp(1.15rem,1.5vw,1.35rem);line-height:1.5;font-weight:400}
.kicker{display:inline-flex;align-items:center;gap:.7em;font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--braise-texte);margin:0 0 1.1rem}
.kicker::before{content:"";width:2.2em;height:1px;background:currentColor}
.on-dark .kicker,.dark .kicker{color:var(--braise-clair)}
.sapin .kicker{color:var(--braise-sapin)}
.hero .kicker,.phero .kicker{color:var(--creme)}
.sapin .muted,.menu-rando .muted{color:rgba(243,235,221,.75)}
.lead,.fiche p,.evt p,.carte-u p,.carte-img p{text-wrap:pretty}
.saut{position:absolute;left:1rem;top:-4rem;z-index:200;background:var(--encre);color:var(--creme);padding:.6rem 1rem;border-radius:999px;text-decoration:none;font-weight:600}
.saut:focus{top:1rem}
.muted{color:var(--pierre-fonce)}
.on-dark .muted,.dark .muted{color:var(--pierre)}
.num{font-variant-numeric:tabular-nums lining-nums}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
::selection{background:var(--braise);color:var(--creme)}

/* Grain */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9000;opacity:.055;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}

/* Structure */
.wrap{width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto}
.wrap--etroit{width:min(100% - 2*var(--gout),880px);margin-inline:auto}
.sec{padding-block:var(--sec)}
.sec--serre{padding-block:calc(var(--sec)*.6)}
.dark{background:var(--encre);color:var(--creme)}
.sapin{background:var(--sapin);color:var(--creme)}
.creme2{background:var(--creme-2)}
.grid{display:grid;gap:var(--gout)}
@media (min-width:900px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-5-7{grid-template-columns:5fr 7fr}.grid-7-5{grid-template-columns:7fr 5fr}}
.sec-head{max-width:46rem;margin-bottom:clamp(2rem,5vw,3.5rem)}
.sec-head.centre{margin-inline:auto;text-align:center}
.sec-head.centre .kicker{justify-content:center}
.sec-head .lead{margin-top:1.1rem}
figure{margin:0}
figcaption{font-size:.85rem;color:var(--pierre-fonce);margin-top:.6rem}
.on-dark figcaption,.dark figcaption,.sapin figcaption{color:var(--pierre)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:3.1rem;padding:.8rem 1.55rem;border-radius:999px;font-weight:600;font-size:.98rem;letter-spacing:.01em;text-decoration:none;border:1.5px solid transparent;transition:transform .5s var(--ease),background-color .35s,color .35s,border-color .35s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--braise{background:var(--braise-2);color:var(--creme)}
.btn--braise:hover{background:#8F3815}
.btn--ghost{border-color:currentColor;background:transparent}
.btn--ghost:hover{background:rgba(var(--ombre),.06)}
.dark .btn--ghost:hover,.sapin .btn--ghost:hover,.hero .btn--ghost:hover{background:rgba(243,235,221,.1)}
.btn--encre{background:var(--encre);color:var(--creme)}
.btn--encre:hover{background:var(--encre-3)}
.btn--creme{background:var(--creme);color:var(--encre)}
.btn--creme:hover{background:#fff}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btns{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:center}
.lien{display:inline-flex;align-items:center;gap:.45em;font-weight:600;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:.1em;transition:gap .4s var(--ease)}
.lien:hover{gap:.8em}
.lien::after{content:"→"}

/* En-tête */
.entete{position:fixed;inset:0 0 auto 0;z-index:100;padding:.7rem 0;color:var(--creme);transition:background-color .45s,color .45s,padding .45s,box-shadow .45s}
.entete::before{content:"";position:absolute;inset:0 0 -5rem 0;z-index:-1;background:linear-gradient(180deg,rgba(28,25,23,.62),rgba(28,25,23,0));pointer-events:none;transition:opacity .45s}
.entete.solide::before,.entete.clair::before{opacity:0}
.entete .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.entete__logo{display:block;width:clamp(112px,10vw,136px);transition:width .45s var(--ease)}
.entete.solide .entete__logo{width:112px}
.entete__logo img{width:100%}
.entete__logo .lc{display:block}.entete__logo .le{display:none}
.entete.solide{background:rgba(243,235,221,.94);color:var(--encre);padding:.5rem 0;box-shadow:0 1px 0 rgba(var(--ombre),.08);backdrop-filter:saturate(1.2) blur(10px)}
.entete.solide .entete__logo .lc{display:none}.entete.solide .entete__logo .le{display:block}
.entete.clair{color:var(--encre)}
.entete.clair .entete__logo .lc{display:none}.entete.clair .entete__logo .le{display:block}
.nav{display:none;align-items:center;gap:clamp(1rem,2.2vw,2rem);font-weight:500;font-size:.95rem}
.nav a{text-decoration:none;position:relative;padding:.3em 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.nav a:hover::after,.nav a[aria-current="page"]::after{transform:scaleX(1)}
.entete__actions{display:flex;align-items:center;gap:.75rem}
.entete__resa{position:relative}
.resa-pop{position:absolute;right:0;top:calc(100% + .6rem);min-width:15rem;background:var(--creme);color:var(--encre);border-radius:12px;box-shadow:0 20px 50px -16px rgba(var(--ombre),.45),0 0 0 1px rgba(var(--ombre),.08);padding:.5rem;display:none}
.resa-pop.ouvert{display:block}
.resa-pop a{display:flex;flex-direction:column;gap:.1rem;padding:.75rem .9rem;border-radius:8px;text-decoration:none}
.resa-pop a:hover{background:var(--creme-2)}
.resa-pop small{color:var(--pierre-fonce);font-size:.8rem}
.burger{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:2.75rem;height:2.75rem;border-radius:999px;border:1.5px solid currentColor;padding:0 .7rem}
.burger span{display:block;height:1.5px;background:currentColor;transition:transform .4s var(--ease),opacity .3s}
@media (min-width:1024px){.nav{display:flex}.burger{display:none}}
.menu-mobile{position:fixed;inset:0;z-index:99;background:var(--encre);color:var(--creme);padding:6rem var(--gout) max(2rem,env(safe-area-inset-bottom));display:none;flex-direction:column;justify-content:space-between;overflow-y:auto;gap:2rem}
.menu-mobile.ouvert{display:flex}
.menu-mobile nav{display:flex;flex-direction:column;gap:.4rem}
.menu-mobile nav a{font-family:var(--display);font-size:clamp(2rem,8vw,3rem);font-weight:650;text-decoration:none;line-height:1.15;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.menu-mobile .btns{margin-top:2rem}
.menu-mobile .coord{font-size:.95rem;color:var(--pierre)}
body.menu-ouvert{overflow:hidden}
body.menu-ouvert .entete{color:var(--creme);background:transparent;box-shadow:none;backdrop-filter:none}
body.menu-ouvert .entete .entete__logo .lc{display:block}body.menu-ouvert .entete .entete__logo .le{display:none}
body.menu-ouvert .burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
body.menu-ouvert .burger span:nth-child(2){opacity:0}
body.menu-ouvert .burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* Hero */
.hero{position:relative;min-height:100svh;display:grid;align-items:end;background:var(--encre);color:var(--creme);overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:60% 50%;transform:scale(1);animation:zoomlent 14s var(--ease) forwards}
@media (max-width:767px){.hero__media img{object-position:50% 45%}}
@keyframes zoomlent{to{transform:scale(1.07)}}
.hero__video{position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:cover;object-position:60% 50%;opacity:0;transition:opacity 1.4s var(--ease)}
@media (max-width:767px){.hero__video{object-position:50% 45%}}
.hero.video-pret .hero__video{opacity:1}
.hero.video-pret .hero__media img{animation-play-state:paused}
.choix__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s var(--ease)}
.choix__img.video-pret .choix__video{opacity:1}
@media (max-width:899px){.choix__video{display:none}}
.hero__voile{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(28,25,23,.35) 0%,rgba(28,25,23,0) 30%,rgba(28,25,23,.15) 55%,rgba(28,25,23,.88) 100%)}
.hero__braises{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none}
.hero__contenu{position:relative;z-index:1;padding-block:max(var(--entete-h),12vh) clamp(2rem,6vh,3.5rem);width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto}
.hero h1{max-width:12ch;margin:.2em 0 .35em}
.hero .lead{max-width:36rem;color:rgba(243,235,221,.9)}
.hero .btns{margin-top:1.8rem}
.hero__infos{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-top:2rem;font-size:.9rem;color:rgba(243,235,221,.72)}
@media (max-height:720px){.hero__infos{display:none}.hero h1{font-size:clamp(2.6rem,min(8.5vw,11vh),7rem)}.hero .lead{font-size:1.05rem}.hero__contenu{padding-block:var(--entete-h) 1.5rem}}
.hero .lead--court{display:none}
@media (max-width:767px){.hero h1{font-size:clamp(3.4rem,14vw,4.6rem)}.hero .lead--long,.hero__infos{display:none}.hero .lead--court{display:block}.hero .btns .btn--ghost{background:none;border:0;padding:.4rem 0;text-decoration:underline;text-underline-offset:.25em;min-height:0}}
.hero__infos span{display:inline-flex;align-items:center;gap:.5em}
.hero__infos i{width:6px;height:6px;border-radius:50%;background:var(--braise-clair);display:inline-block}
.ligne{display:block;overflow:hidden}
.ligne > span{display:block;transform:translateY(110%);opacity:0;transition:transform 1.1s var(--ease),opacity .7s}
.pret .ligne > span{transform:none;opacity:1}
.pret .ligne:nth-child(2) > span{transition-delay:.12s}
.pret .ligne:nth-child(3) > span{transition-delay:.24s}
.hero .kicker,.hero .lead,.hero .btns,.hero__infos{opacity:0;transform:translateY(14px);transition:opacity .9s,transform 1s var(--ease)}
.pret .hero .kicker{opacity:1;transform:none;transition-delay:.05s}
.pret .hero .lead{opacity:1;transform:none;transition-delay:.45s}
.pret .hero .btns{opacity:1;transform:none;transition-delay:.6s}
.pret .hero__infos{opacity:1;transform:none;transition-delay:.75s}
.hero__indice{position:absolute;right:var(--gout);bottom:2.2rem;z-index:1;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(243,235,221,.6);display:none;align-items:center;gap:.8rem}
@media (min-width:900px){.hero__indice{display:flex}}
.hero__indice i{display:block;width:1px;height:2.6rem;background:currentColor;animation:indice 2.2s var(--ease) infinite;transform-origin:top}
@keyframes indice{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* Section « le choix est vôtre » */
.choix{position:relative;height:320vh;background:var(--encre);color:var(--creme)}
.choix__colle{position:sticky;top:0;height:100svh;overflow:hidden;--p:0}
.choix__img{position:absolute;inset:0}
.choix__img img{width:100%;height:100%;object-fit:cover}
.choix__img--fete{clip-path:inset(calc((1 - var(--p))*100%) 0 0 0)}
.choix__img--fete::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--braise-clair);box-shadow:0 0 24px 4px rgba(224,120,74,.6)}
.choix__voile{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,25,23,.55),rgba(28,25,23,.1) 40%,rgba(28,25,23,.75))}
.choix__txt{position:absolute;inset:0;display:grid;align-content:end;width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto;padding-bottom:clamp(2.5rem,8vh,5rem);pointer-events:none}
.choix__txt > *{pointer-events:auto}
.choix__etat{grid-area:1/1;max-width:38rem}
.choix__etat h2{font-size:clamp(2.4rem,6.2vw,5.4rem);margin-bottom:.4em}
.choix__etat p{max-width:32rem;color:rgba(243,235,221,.88);font-size:clamp(1.05rem,1.4vw,1.25rem)}
.choix__etat .btn{margin-top:1.2rem}
.choix__etat{transition:visibility 0s .3s}
.choix__etat--calme{opacity:clamp(0,(.5 - var(--p))*5,1);transform:translateY(calc(var(--p)*-20px))}
.choix__etat--fete{opacity:clamp(0,(var(--p) - .5)*5,1);transform:translateY(calc((1 - var(--p))*20px));visibility:hidden;pointer-events:none}
.choix__colle.est-fete .choix__etat--fete{visibility:visible;pointer-events:auto}
.choix__colle.est-fete .choix__etat--calme{visibility:hidden;pointer-events:none}
.choix__kick{position:absolute;top:calc(var(--entete-h) + .5rem);left:var(--gout);display:flex;align-items:center;gap:1rem;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600}
.choix__jauge{width:9rem;height:2px;background:rgba(243,235,221,.25);position:relative;overflow:hidden}
.choix__jauge::after{content:"";position:absolute;inset:0;background:var(--braise-clair);transform:scaleX(var(--p));transform-origin:left}
.choix__labels{position:absolute;right:var(--gout);top:50%;transform:translateY(-50%);display:none;flex-direction:column;gap:.6rem;font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;writing-mode:vertical-rl;text-orientation:mixed;color:rgba(243,235,221,.55)}
@media (min-width:900px){.choix__labels{display:flex}}
.choix__labels b{font-weight:600;color:var(--creme);opacity:calc(1 - var(--p))}
.choix__labels b + b{opacity:var(--p)}
/* repli sans script ou mouvement réduit : les deux images côte à côte */
.choix.statique{height:auto;padding-block:var(--sec)}
.choix.statique .choix__colle{position:static;height:auto;display:grid;gap:var(--gout);width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto}
@media (min-width:900px){.choix.statique .choix__colle{grid-template-columns:1fr 1fr}}
.choix.statique .choix__img{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden}
.choix.statique .choix__img--fete{clip-path:none}
.choix.statique .choix__img--fete::after{display:none}
.choix.statique .choix__voile,.choix.statique .choix__jauge,.choix.statique .choix__labels{display:none}
.choix.statique .choix__txt{position:static;display:contents}
.choix.statique .choix__etat{opacity:1;transform:none;grid-area:auto;padding-top:1.5rem}
.choix.statique .choix__kick{position:static;grid-column:1/-1;margin-bottom:1rem}

/* Trois univers */
.univers{display:grid;gap:clamp(2rem,4vw,3rem)}
@media (min-width:900px){.univers{grid-template-columns:repeat(3,1fr);align-items:start}.univers > :nth-child(2){margin-top:5rem}.univers > :nth-child(3){margin-top:2.5rem}}
.carte-u{display:block;text-decoration:none;color:inherit}
.carte-u figure{position:relative}
.carte-u .cadre{aspect-ratio:4/5;overflow:hidden;border-radius:var(--r);box-shadow:0 30px 60px -30px rgba(var(--ombre),.55),0 12px 24px -18px rgba(var(--ombre),.5),inset 0 0 0 1px rgba(var(--ombre),.08)}
.carte-u img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.carte-u:hover img{transform:scale(1.04)}
.carte-u .sur{position:absolute;top:1rem;left:1rem;background:rgba(28,25,23,.72);color:var(--creme);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;padding:.45em .8em;border-radius:999px;backdrop-filter:blur(6px)}
.carte-u h3{margin:1.2rem 0 .5rem}
.carte-u p{color:var(--pierre-fonce);margin-bottom:.8rem}
.carte-u .lien{font-size:.95rem}

/* Le feu */
.feu{position:relative;overflow:hidden}
.feu__grille{display:grid;gap:var(--gout);align-items:center}
@media (min-width:900px){.feu__grille{grid-template-columns:6fr 5fr}}
.feu__media{position:relative}
.feu__media .cadre{border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;box-shadow:0 40px 80px -30px rgba(20,12,6,.75),inset 0 0 0 1px rgba(243,235,221,.08)}
@media (min-width:900px){.feu__media{margin-left:calc(-1*var(--gout) - 4vw)}}
.feu__media img{width:100%;height:100%;object-fit:cover}
.feu__etiquette{position:absolute;right:-.5rem;bottom:2rem;background:var(--creme);color:var(--encre);padding:.9rem 1.1rem;border-radius:var(--r);font-size:.85rem;line-height:1.3;max-width:15rem;box-shadow:0 20px 40px -20px rgba(20,12,6,.65)}
.feu__etiquette b{display:block;font-family:var(--display);font-size:1.6rem;font-weight:700;line-height:1;margin-bottom:.25rem;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
@media (max-width:899px){.feu__etiquette{right:.75rem;bottom:.75rem}}
.points{list-style:none;margin:1.8rem 0 0;padding:0;display:grid;gap:1.1rem}
.points li{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;padding-top:1.1rem;border-top:1px solid rgba(243,235,221,.14)}
.points b{font-family:var(--display);font-weight:650;font-size:1.15rem;line-height:1.2;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.points span{color:rgba(243,235,221,.72);font-size:.97rem}
.points i{width:.6rem;height:.6rem;border-radius:50%;background:var(--braise);margin-top:.5rem;flex:none}
.extrait{margin:2.2rem 0 0;padding:0;list-style:none;display:grid;gap:.55rem;font-size:1rem}
.extrait li{display:flex;align-items:baseline;gap:.6rem}
.extrait li::after{content:"";flex:1;order:2;border-bottom:1px dotted rgba(243,235,221,.35);transform:translateY(-.3em)}
.extrait span:first-child{order:1}
.extrait span:last-child{order:3;font-variant-numeric:tabular-nums;white-space:nowrap}
.feu .btns{margin-top:2rem}

/* Agenda */
.agenda{overflow:hidden}
.agenda__tete{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:2rem}
.agenda__nav{display:none;gap:.5rem}
@media (min-width:900px){.agenda__nav{display:flex}}
.agenda__nav button{width:2.9rem;height:2.9rem;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;transition:background .3s,color .3s}
.agenda__nav button:hover{background:var(--encre);color:var(--creme)}
.bande{display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,24rem);gap:1.25rem;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:max(var(--gout),calc((100vw - var(--wrap))/2));padding-bottom:1rem;scrollbar-width:none;padding-inline:max(var(--gout),calc((100vw - var(--wrap))/2));margin-inline:calc(-1*max(var(--gout),calc((100vw - var(--wrap))/2)))}
.bande::-webkit-scrollbar{display:none}
.bande:focus-visible{outline:2px solid var(--braise-texte);outline-offset:4px}
.evt{scroll-snap-align:start;display:flex;flex-direction:column}
.evt .cadre{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);box-shadow:0 24px 50px -28px rgba(var(--ombre),.6),inset 0 0 0 1px rgba(var(--ombre),.08);background:var(--creme-3)}
.evt img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.evt:hover img{transform:scale(1.04)}
.evt .quand{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--braise-texte);margin:1.1rem 0 .4rem}
.evt h3{font-size:1.45rem}
.evt p{color:var(--pierre-fonce);font-size:.97rem;margin-top:.5rem}

/* Histoire */
.histoire__grille{display:grid;gap:var(--gout)}
@media (min-width:900px){.histoire__grille{grid-template-columns:5fr 6fr}}
.histoire__media{position:relative}
@media (min-width:900px){.histoire__media{position:sticky;top:6rem;margin-left:calc(-1*max(var(--gout),calc((100vw - var(--wrap))/2)))}.histoire__media .cadre{border-radius:0 var(--r) var(--r) 0}}
.histoire__media .cadre{border-radius:var(--r);overflow:hidden;aspect-ratio:3/4;box-shadow:0 40px 80px -30px rgba(20,12,6,.65),inset 0 0 0 1px rgba(243,235,221,.1)}
.histoire__media img{width:100%;height:100%;object-fit:cover}
.frise{list-style:none;margin:0;padding:0}
.frise li{display:grid;grid-template-columns:minmax(7rem,max-content) 1fr;gap:1.5rem;padding:1.4rem 0;border-top:1px solid rgba(243,235,221,.16)}
.frise li:last-child{border-bottom:1px solid rgba(243,235,221,.16)}
.frise b{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.4vw,2.1rem);white-space:nowrap;line-height:1;color:var(--braise-clair);font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.frise span{color:rgba(243,235,221,.85);align-self:center}
@media (max-width:600px){.frise li{grid-template-columns:1fr;gap:.4rem}}

/* Équipe & labels */
.equipe__grille{display:grid;gap:var(--gout);align-items:center}
@media (min-width:900px){.equipe__grille{grid-template-columns:5fr 6fr}.equipe__media{margin-left:calc(-1*var(--gout) - 3vw)}}
.equipe__media .cadre{border-radius:var(--r);overflow:hidden;aspect-ratio:1;box-shadow:0 30px 60px -30px rgba(var(--ombre),.55),inset 0 0 0 1px rgba(var(--ombre),.08)}
.equipe__media img{width:100%;height:100%;object-fit:cover}
.membres{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;gap:1.2rem}
.membres li{padding-top:1.2rem;border-top:1px solid rgba(var(--ombre),.14)}
.membres b{font-family:var(--display);font-size:1.5rem;font-weight:650;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.membres small{display:block;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--braise-texte);font-weight:600;margin:.2rem 0 .5rem}
.membres p{color:var(--pierre-fonce)}
.labels{display:flex;flex-wrap:wrap;gap:1rem 2.5rem;margin-top:2.2rem;padding-top:1.5rem;border-top:1px solid rgba(var(--ombre),.14)}
.labels div{display:flex;flex-direction:column}
.labels b{font-weight:600}
.labels small{color:var(--pierre-fonce)}

/* Avis */
.avis{display:grid;gap:var(--gout)}
@media (min-width:900px){.avis{grid-template-columns:repeat(3,1fr)}}
.avis blockquote{margin:0;padding:1.8rem 0 0;border-top:1px solid rgba(var(--ombre),.16)}
.dark .avis blockquote,.sapin .avis blockquote{border-top-color:rgba(243,235,221,.16)}
.avis p{font-family:var(--display);font-weight:500;font-size:clamp(1.25rem,1.7vw,1.55rem);line-height:1.3;font-variation-settings:"opsz" 60,"SOFT" 60,"WONK" 1;text-wrap:pretty}
.avis cite{display:block;font-style:normal;margin-top:1rem;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--pierre-fonce)}
.dark .avis cite,.sapin .avis cite{color:var(--pierre)}
.avis .etoiles{color:var(--braise);letter-spacing:.1em;font-size:.9rem;margin-bottom:.8rem}

/* Cartes génériques (Spa, services) */
.cartes{display:grid;gap:clamp(1.25rem,2.5vw,2rem)}
@media (min-width:700px){.cartes{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.cartes--3{grid-template-columns:repeat(3,1fr)}.cartes--4{grid-template-columns:repeat(4,1fr)}.cartes--5{grid-template-columns:repeat(6,1fr)}.cartes--5 > :nth-child(-n+2){grid-column:span 3}.cartes--5 > :nth-child(n+3){grid-column:span 2}}
.carte-img{display:block;text-decoration:none;color:inherit}
.carte-img .cadre{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);box-shadow:0 24px 50px -28px rgba(var(--ombre),.55),inset 0 0 0 1px rgba(var(--ombre),.08)}
.carte-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.carte-img:hover img{transform:scale(1.04)}
.carte-img h3{font-size:1.35rem;margin:1rem 0 .4rem}
.carte-img p{color:var(--pierre-fonce);font-size:.97rem}
.fiches{display:grid;gap:1.5rem 2.5rem}
@media (min-width:700px){.fiches{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.fiches--3{grid-template-columns:repeat(3,1fr)}}
.fiche{padding-top:1.2rem;border-top:1px solid rgba(var(--ombre),.16)}
.dark .fiche,.sapin .fiche{border-top-color:rgba(243,235,221,.16)}
.fiche b{display:block;font-family:var(--display);font-weight:650;font-size:1.25rem;line-height:1.2;margin-bottom:.4rem;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.fiche p{color:var(--pierre-fonce);font-size:.97rem}
.dark .fiche p,.sapin .fiche p{color:rgba(243,235,221,.75)}
.fiche .n{font-family:var(--display);color:var(--braise);font-size:2rem;font-weight:700;line-height:1;margin-bottom:.6rem;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}

/* Bande d'appel */
.appel{position:relative;overflow:hidden}
.appel .wrap{display:grid;gap:2rem;align-items:center}
@media (min-width:900px){.appel .wrap{grid-template-columns:1.2fr 1fr}}
.appel h2{font-size:clamp(2.2rem,5vw,4.5rem)}
.appel__coord{display:grid;gap:1rem;font-size:1.05rem}
.appel__coord a{text-decoration:none}
.appel__coord b{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pierre);font-weight:600;margin-bottom:.2rem}
.appel__coord .tel{font-family:var(--display);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:650;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}

/* Pied de page */
.pied{background:var(--creme-2);padding:4rem 0 2rem;font-size:.95rem}
.pied__grille{display:grid;gap:2.5rem}
@media (min-width:900px){.pied__grille{grid-template-columns:2fr 1fr 1fr 1.2fr}}
.pied__logo{width:220px}
.pied h2{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-family:var(--texte-font);font-weight:600;color:var(--pierre-fonce);margin-bottom:1rem;font-variation-settings:normal}
.pied ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.pied a{text-decoration:none}
.pied h2{letter-spacing:.14em;text-transform:uppercase;font-family:var(--texte-font);font-weight:600;color:var(--pierre-fonce);margin-bottom:1rem;font-variation-settings:normal}
.pied a:hover{text-decoration:underline}
.pied__bas{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(var(--ombre),.14);font-size:.85rem;color:var(--pierre-fonce)}
.pied__bas ul{display:flex;flex-wrap:wrap;gap:1.2rem}
.social{display:flex;gap:.6rem}
.social a{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;border:1.5px solid currentColor;transition:background .3s,color .3s}
.social a:hover{background:var(--encre);color:var(--creme)}
.social svg{width:1.05rem;height:1.05rem}

/* En-tête de page intérieure */
.phero{position:relative;min-height:min(72svh,760px);display:grid;align-items:end;background:var(--encre);color:var(--creme);overflow:hidden;isolation:isolate}
.phero__media{position:absolute;inset:0;z-index:-2}
.phero__media img{width:100%;height:100%;object-fit:cover}
.phero__voile{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(28,25,23,.5),rgba(28,25,23,.08) 40%,rgba(28,25,23,.9) 100%)}
.phero__contenu{position:relative;z-index:1;padding:8rem 0 clamp(2rem,6vh,3.5rem);width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto}
.phero h1{font-size:clamp(2.6rem,6.5vw,5.6rem);max-width:14ch}
.phero .lead{max-width:38rem;margin-top:1rem;color:rgba(243,235,221,.9)}
.phero .btns{margin-top:1.6rem}
.phero--clair{background:var(--creme);color:var(--encre);min-height:0}
.phero--clair .phero__contenu{padding-top:9rem}

/* Hero encadré (pages sans photo panoramique haute résolution) */
.phero--cadre{background:var(--encre);color:var(--creme);min-height:0}
.phero--cadre .phero__contenu{padding:7.5rem 0 clamp(2.5rem,6vh,4rem)}
.phero__grille{display:grid;gap:clamp(2rem,4vw,3.5rem);align-items:end}
@media (min-width:900px){.phero__grille{grid-template-columns:5fr 7fr}}
.phero--cadre h1{font-size:clamp(2.6rem,5.6vw,4.8rem)}
.phero--cadre .lead{color:rgba(243,235,221,.85)}
.phero--cadre figcaption{color:var(--pierre)}
.phero__tirage .cadre{aspect-ratio:3/2;overflow:hidden;border-radius:var(--r);box-shadow:0 40px 80px -30px rgba(20,12,6,.75),inset 0 0 0 1px rgba(243,235,221,.1)}
.phero__tirage img{width:100%;height:100%;object-fit:cover}
@media (min-width:900px){.phero__tirage{margin-right:calc(-1*var(--gout) - 3vw)}}

/* Alternance image / texte */
.alt{display:grid;gap:var(--gout);align-items:center}
@media (min-width:900px){.alt{grid-template-columns:1fr 1fr}.alt--inv > :first-child{order:2}}
.alt .cadre{aspect-ratio:4/3;overflow:hidden;border-radius:var(--r);box-shadow:0 30px 60px -30px rgba(var(--ombre),.55),inset 0 0 0 1px rgba(var(--ombre),.08)}
.dark .alt .cadre,.sapin .alt .cadre{box-shadow:0 40px 80px -30px rgba(20,12,6,.65),inset 0 0 0 1px rgba(243,235,221,.1)}
.alt img{width:100%;height:100%;object-fit:cover}
.alt .meta{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--braise-texte);font-weight:600;margin-bottom:.8rem}
.alt + .alt{margin-top:clamp(3rem,7vw,5.5rem)}
.alt .texte{max-width:34rem}
@media (min-width:900px){.alt .texte{padding-inline:1rem}}

/* Carte du restaurant */
.carte-nav{position:sticky;top:var(--entete-h);z-index:20;background:rgba(243,235,221,.94);backdrop-filter:blur(8px);border-block:1px solid rgba(var(--ombre),.12);margin-bottom:2rem}
.carte-nav ul{list-style:none;margin:0;padding:.6rem 0;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none}
.carte-nav ul::-webkit-scrollbar{display:none}
.carte-nav a{display:block;white-space:nowrap;padding:.5rem .9rem;border-radius:999px;font-size:.9rem;font-weight:500;text-decoration:none}
.carte-nav a:hover,.carte-nav a.actif{background:var(--encre);color:var(--creme)}
.carte-cat{padding:2.4rem 0;border-top:1px solid rgba(var(--ombre),.14);scroll-margin-top:calc(var(--entete-h) + 3rem)}
[id]{scroll-margin-top:calc(var(--entete-h) + 1rem)}
.carte-cat__tete{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}
.carte-cat__tete small{color:var(--pierre-fonce)}
.plats{list-style:none;margin:0;padding:0;display:grid;gap:.9rem 3rem}
@media (min-width:900px){.plats{grid-template-columns:1fr 1fr}}
.plat{display:grid;grid-template-columns:1fr auto;gap:.2rem .8rem;align-items:baseline}
.plat .nom{position:relative}
.plat .nom::after{content:"";position:absolute;left:calc(100% + .5rem);right:-.8rem;bottom:.35em;border-bottom:1px dotted rgba(var(--ombre),.4)}
.plat .prix{position:relative;background:var(--creme-2);padding-left:.5rem}
.plat .nom{font-weight:600}
.plat .prix{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:500}
.plat .prix small{font-size:.8em;font-weight:400;color:var(--pierre-fonce)}
.plat small{grid-column:1/-1;color:var(--pierre-fonce);font-size:.9rem}
.carte-note{margin-top:1.4rem;padding:1rem 1.2rem;background:var(--creme-2);border-radius:var(--r);font-size:.93rem;color:var(--pierre-fonce)}
.menu-rando{background:var(--sapin);color:var(--creme);border-radius:var(--r);padding:clamp(1.5rem,4vw,3rem);display:grid;gap:1.5rem}
@media (min-width:900px){.menu-rando{grid-template-columns:1fr 2fr}}
.menu-rando .prix{font-family:var(--display);font-size:clamp(3rem,6vw,5rem);font-weight:750;line-height:1;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.menu-rando dl{margin:0;display:grid;gap:1rem}
.menu-rando dt{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--braise-sapin);font-weight:600}
.menu-rando dd{margin:.2rem 0 0}
.boissons{display:grid;gap:1.5rem 2.5rem}
@media (min-width:700px){.boissons{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.boissons{grid-template-columns:repeat(4,1fr)}}
.boissons ul{list-style:none;padding:0;margin:.6rem 0 0;display:grid;gap:.3rem;color:var(--pierre-fonce);font-size:.95rem}

/* Formules */
.formules{display:grid;gap:2rem 3rem}
@media (min-width:900px){.formules{grid-template-columns:1fr 1fr}}
.formule{padding:1.4rem 0 0;border-top:1px solid rgba(var(--ombre),.25)}
.formule b{font-family:var(--display);font-size:1.6rem;font-weight:650;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.formule .prix{font-family:var(--display);font-size:2.4rem;font-weight:750;color:var(--braise-texte);line-height:1;margin:.5rem 0 1rem;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.formule p{color:var(--pierre-fonce);font-size:.97rem}
.menus-bbq{display:grid;gap:2rem 3rem;margin-top:2.5rem;padding:clamp(1.5rem,4vw,3rem);border-radius:var(--r);background:var(--sapin);color:var(--creme)}
@media (min-width:900px){.menus-bbq{grid-template-columns:repeat(3,1fr)}}
.menu-bbq{padding:0}
.menu-bbq + .menu-bbq{border-top:1px solid rgba(243,235,221,.18);padding-top:1.5rem}
@media (min-width:900px){.menu-bbq + .menu-bbq{border-top:0;padding-top:0;border-left:1px solid rgba(243,235,221,.18);padding-left:2rem}}
.menu-bbq b{font-family:var(--display);font-size:1.5rem;font-weight:650;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.menu-bbq .prix{font-family:var(--display);font-size:2.2rem;font-weight:750;color:var(--braise-sapin);margin:.4rem 0 1rem;line-height:1;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.menu-bbq .prix small{font-family:var(--texte-font);font-size:.85rem;color:var(--pierre);font-weight:500}
.menu-bbq ul{list-style:none;padding:0;margin:0;display:grid;gap:.4rem;color:rgba(243,235,221,.85);font-size:.95rem}
.menu-bbq li{display:flex;gap:.6rem;align-items:baseline}
.menu-bbq li::before{content:"";width:1.2rem;border-top:1px solid rgba(243,235,221,.35);flex:none;transform:translateY(-.3em)}
.notes{margin-top:1.5rem;color:var(--pierre-fonce);font-size:.93rem;display:grid;gap:.3rem}

/* Galerie */
.galerie{display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}
@media (min-width:800px){.galerie{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(200px,auto)}}
.galerie figure{border-radius:var(--r);overflow:hidden;background:var(--creme-3)}
.galerie img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.galerie figure:hover img{transform:scale(1.04)}
@media (min-width:800px){.galerie .g-tall{grid-row:span 2}.galerie .g-wide{grid-column:span 2}}

/* Formulaires */
.form{display:grid;gap:1.1rem}
@media (min-width:700px){.form{grid-template-columns:1fr 1fr}.form .pleine{grid-column:1/-1}}
.form label{display:grid;gap:.4rem;font-size:.9rem;font-weight:500}
.form input,.form select,.form textarea{width:100%;font:inherit;padding:.8rem .95rem;border-radius:var(--r);border:1px solid rgba(var(--ombre),.3);background:var(--creme);color:var(--encre)}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--braise);outline-offset:1px;border-color:transparent}
.form textarea{min-height:8rem;resize:vertical}
.form fieldset{border:0;padding:0;margin:0;grid-column:1/-1;display:grid;gap:.6rem}
.form legend{font-size:.9rem;font-weight:500;margin-bottom:.4rem}
.form .cases{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem}
.form .cases label{display:inline-flex;align-items:center;gap:.5rem;font-weight:400}
.form .cases input{width:auto}
.form .env{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.form .env small{color:var(--pierre-fonce)}
.form__ok{display:none;grid-column:1/-1;padding:1.2rem 1.4rem;border-radius:var(--r);background:var(--sapin);color:var(--creme)}
.form.envoye .form__ok{display:block}
.form.envoye > :not(.form__ok){display:none}

/* Contact */
.contact__grille{display:grid;gap:var(--gout)}
@media (min-width:900px){.contact__grille{grid-template-columns:5fr 7fr}}
.coord-liste{display:grid;gap:1.4rem}
.coord-liste b{display:block;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pierre-fonce);font-weight:600;margin-bottom:.25rem}
.coord-liste a{text-decoration:none}
.coord-liste .grand{font-family:var(--display);font-size:1.6rem;font-weight:650;font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1}
.carte-map{border-radius:var(--r);overflow:hidden;aspect-ratio:16/10;background:var(--creme-3);box-shadow:inset 0 0 0 1px rgba(var(--ombre),.1)}
.carte-map iframe{width:100%;height:100%;border:0;display:block}
.carte-map__facade{height:100%;display:grid;align-content:center;justify-items:start;gap:1rem;padding:clamp(1.5rem,4vw,3rem);background:var(--creme-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23DFD3BC' stroke-width='1'/%3E%3C/svg%3E")}
.carte-map__facade small{font-size:.8rem}

/* Prose (pages légales) */
.prose{max-width:46rem}
.prose h2{font-size:1.8rem;margin:2.5rem 0 .8rem}
.prose h3{font-size:1.25rem;margin:1.8rem 0 .5rem}
.prose p,.prose li{color:var(--encre)}
.prose .a-completer{background:#FBF0D6;padding:.05em .3em;border-radius:3px}

/* Révélations au défilement : le masque est sur l'ENFANT, jamais sur l'élément observé */
.rev > *{opacity:0;transform:translateY(26px);transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.rev[data-vu="oui"] > *{opacity:1;transform:none}
.rev--img > *{clip-path:inset(0 0 100% 0);transform:none;transition:clip-path 1.3s var(--ease),opacity .8s}
.rev--img[data-vu="oui"] > *{clip-path:inset(-20% -12% -40% -12%)}
.rev--d1 > *{transition-delay:.1s}.rev--d2 > *{transition-delay:.2s}.rev--d3 > *{transition-delay:.3s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .rev > *{opacity:1;transform:none;clip-path:none}
  .hero__media img{animation:none}
  .hero__video,.choix__video{display:none}
  .ligne > span,.hero .kicker,.hero .lead,.hero .btns,.hero__infos{opacity:1;transform:none}
}
html.sans-js .rev > *{opacity:1;transform:none;clip-path:none}
html.sans-js .choix{height:auto;padding-block:var(--sec)}
html.sans-js .choix__colle{position:static;height:auto;display:grid;gap:var(--gout);width:min(100% - 2*var(--gout),var(--wrap));margin-inline:auto}
@media (min-width:900px){html.sans-js .choix__colle{grid-template-columns:1fr 1fr}}
html.sans-js .choix__img{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden}
html.sans-js .choix__img--fete{clip-path:none}
html.sans-js .choix__img--fete::after,html.sans-js .choix__voile,html.sans-js .choix__jauge,html.sans-js .choix__labels,html.sans-js .choix__video{display:none}
html.sans-js .choix__txt{position:static;display:contents}
html.sans-js .choix__etat{opacity:1;transform:none;grid-area:auto;padding-top:1.5rem;visibility:visible;pointer-events:auto}
html.sans-js .choix__kick{position:static;grid-column:1/-1;margin-bottom:1rem}
html.sans-js .entete{background:rgba(243,235,221,.94);color:var(--encre);position:static}
html.sans-js .entete .lc{display:none}html.sans-js .entete .le{display:block}
html.sans-js .nav{display:flex;flex-wrap:wrap}
html.sans-js .burger{display:none}
html.sans-js .hero__video{display:none}
html.sans-js .ligne > span,html.sans-js .hero .kicker,html.sans-js .hero .lead,html.sans-js .hero .btns,html.sans-js .hero__infos{opacity:1;transform:none}
@media print{.entete,.menu-mobile,.hero__braises,body::after{display:none}}
