:root{
  --petrole:#14272d;
  --ivoire:#f1e8dd;
  --ivoire-doux:#c9c4b9;
  --champagne:#d2ab72;
  --encre:#1a2428;
  --encre-douce:#55605f;
  --fond:var(--petrole);
  --g:clamp(1rem,3vw,2.75rem);
  --display:'Bodoni Moda Variable','Didot','Times New Roman',serif;
  --texte:'Hanken Grotesk Variable',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--ivoire);font:400 1.0625rem/1.6 var(--texte);overflow-x:clip;transition:background-color .9s ease}
img{display:block;width:100%;height:100%;object-fit:cover}
h1,h2,h3,p,figure,ol,ul,blockquote{margin:0;padding:0}
ol,ul{list-style:none}
a{color:inherit}
:focus-visible{outline:2px solid var(--champagne);outline-offset:3px}
/* Une section atteinte depuis le menu reçoit le focus sans être un élément cliquable : pas de contour. */
[tabindex="-1"]:focus{outline:none}
h1,h2,.grand{font-family:var(--display);font-weight:400;font-optical-sizing:auto}

/* Fondu au chargement. Le menu reste stable, et aucun remplissage final pour ne rien figer une fois l'animation finie. */
main,.pied{animation:apparition .8s ease backwards}
@keyframes apparition{from{opacity:0}}

/* Navigation : transparente sur l'ouverture de page, puis une barre fine qui reste visible */
:root{--nav:4rem}
html{scroll-padding-top:var(--nav)}
.nav{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;gap:clamp(.75rem,2vw,1.75rem);height:5.25rem;padding:0 var(--g);transition:height .35s ease,background-color .35s ease}
.nav.defile{height:var(--nav);background:color-mix(in srgb,var(--fond) 90%,transparent)}
.marque{display:flex;align-items:center;gap:.4rem;margin-right:auto;text-decoration:none}
.marque img{width:2.75rem;height:2.75rem;filter:invert(1);mix-blend-mode:screen}
.nav strong{font:500 1.25rem var(--display);white-space:nowrap}
.nav ul{display:flex;gap:clamp(.85rem,2vw,1.5rem);font-size:.9375rem}
.nav li{white-space:nowrap}
.nav li a{text-decoration:none}
.nav li img,.menu-bas{display:none}
.nav li a:hover{text-decoration:underline;text-underline-offset:.3em}
.nav .nav-reserver{flex:none;padding:.55rem 1.1rem;font-size:.9375rem}
.nav-menu{display:none;padding:.4rem 0;background:none;border:0;color:inherit;font:500 .9375rem var(--texte);text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:.3em;cursor:pointer}

@media (max-width:960px){
  .nav{height:4.5rem}
  .nav-menu{display:block;position:relative;z-index:2}
  .nav-reserver,.marque{position:relative;z-index:2}
  .nav.ouvert{background:var(--petrole)}
  #menu-principal{position:fixed;inset:0;display:flex;align-items:center;padding:6rem var(--g) 3rem;background:var(--petrole);visibility:hidden;opacity:0;transition:opacity .3s ease,visibility .3s}
  .nav.ouvert #menu-principal{visibility:visible;opacity:1}
  #menu-principal{flex-direction:column;align-items:stretch;justify-content:center;gap:1.5rem;overflow-y:auto;padding-top:5.5rem;padding-bottom:2rem}
  #menu-principal ul{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;width:100%;max-width:30rem;margin:0 auto}
  #menu-principal li{white-space:normal}
  #menu-principal li a{position:relative;display:flex;align-items:flex-end;aspect-ratio:3/4;padding:.8rem;border-radius:.3rem;overflow:hidden;background:#24393f;font:400 clamp(1.35rem,5.6vw,1.9rem)/1.05 var(--display);text-decoration:none;transform:translateY(.6rem);opacity:0;transition:transform .45s ease,opacity .45s ease}
  #menu-principal li a::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,39,45,.85),rgba(20,39,45,.05) 60%)}
  #menu-principal li a span{position:relative;z-index:1}
  #menu-principal li img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
  #menu-principal li a:hover img{transform:scale(1.04)}
  #menu-principal li a[aria-current] span{text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:.2em;text-decoration-thickness:1px}
  .nav.ouvert #menu-principal li a{transform:none;opacity:1}
  .nav.ouvert #menu-principal li:nth-child(2) a{transition-delay:.05s}
  .nav.ouvert #menu-principal li:nth-child(3) a{transition-delay:.1s}
  .nav.ouvert #menu-principal li:nth-child(4) a{transition-delay:.15s}
  #menu-principal .menu-contact{display:none}
  .menu-bas{display:grid;gap:1rem;width:100%;max-width:30rem;margin:0 auto;text-align:center}
  .menu-bas .bouton{padding:1rem}
  .menu-bas p{display:flex;justify-content:center;gap:1.5rem;font-size:.9375rem;color:var(--ivoire-doux)}
  .menu-bas p a{color:inherit;text-underline-offset:.3em}
  html.menu-ouvert{overflow:hidden}
}
@media (max-width:350px){
  .nav strong{display:none}
}
@media (max-width:420px){
  .nav strong{font-size:1.0625rem}
  .marque img{width:2.25rem;height:2.25rem}
  .nav .nav-reserver{padding:.45rem .7rem;font-size:.875rem}
}

/* Accueil : une couverture de magazine, le titre posé sur les visages */
.une{position:relative;height:max(100svh,640px);display:grid;grid-template-rows:minmax(0,1fr);grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:0 var(--g);overflow:clip}
.une figure{position:relative;overflow:hidden;animation:devoile 1.5s cubic-bezier(.2,.75,.2,1) both}
.une .p1{grid-column:5/11;grid-row:1}
.une .p1 img{position:absolute;inset:0}
.une .p2{grid-column:1/4;grid-row:1;align-self:start;justify-self:start;margin-top:13vh;height:calc(100svh - 13vh - 20vw - 15rem);aspect-ratio:3/4;animation-delay:.25s}
.une .p3{grid-column:11/13;grid-row:1;align-self:start;margin-top:12vh;aspect-ratio:2/3;animation-delay:.4s}
.une .p1::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,rgba(13,27,32,.62))}
@keyframes devoile{from{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}
.une-texte{position:absolute;z-index:3;left:var(--g);right:var(--g);bottom:clamp(1.25rem,4vh,3rem)}
.une h1{font-size:clamp(3.4rem,10.6vw,11.5rem);line-height:.94;letter-spacing:-.02em}
.une h1 span{display:block}
.une h1 span+span{padding-left:30vw;font-style:italic}
.une-reste{padding-left:30vw;margin-top:.6rem;font:400 clamp(1.6rem,3.2vw,3.25rem)/1.1 var(--display);letter-spacing:-.01em}
.une-suite{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem 2rem;margin-top:1.5rem}
.bouton{display:inline-block;padding:.9rem 1.6rem;background:var(--champagne);color:var(--encre);border:0;border-radius:.2rem;font:600 1rem var(--texte);text-decoration:none;cursor:pointer;transition:background-color .2s}
.bouton:hover{background:var(--ivoire)}

/* Texte fondateur */
.credo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end;padding:clamp(5rem,12vw,10rem) var(--g)}
.credo h2{grid-column:1/9;font-size:clamp(2.8rem,7.4vw,7.5rem);line-height:1;letter-spacing:-.015em}
.credo h2 s{text-decoration-thickness:.045em;text-decoration-color:var(--champagne)}
.credo figure{grid-column:10/13;grid-row:1/3;aspect-ratio:2/3;overflow:hidden}
.credo .prose{grid-column:1/8;margin-top:2.5rem;max-width:36rem;color:var(--ivoire-doux);font-size:1.1875rem}
.credo .prose+.prose{margin-top:1rem}
.main-tendue{grid-column:1/9;margin-top:2.5rem;font:italic 400 clamp(1.6rem,2.8vw,2.6rem)/1.2 var(--display);color:var(--champagne)}

/* Parallaxe : l'image glisse lentement dans son cadre, quelques cadres dérivent à peine. */
.parallaxe-pret [data-parallaxe],.parallaxe-pret [data-derive]{will-change:transform}

/* Séances : la page prend la couleur de la photo choisie */
.seances{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);padding:0 var(--g) clamp(5rem,10vw,8rem)}
.seances-liste{grid-column:1/7}
.seances-liste>h2{font:500 1rem var(--texte);color:var(--ivoire-doux);margin-bottom:1.5rem}
.seance-btn{display:block;width:100%;padding:.25rem 0;background:none;border:0;color:inherit;text-align:left;cursor:pointer;font:400 clamp(2.6rem,5.6vw,5.6rem)/1.12 var(--display);letter-spacing:-.01em;opacity:.42;transition:opacity .35s}
.seance-btn:hover,.seance-btn[aria-pressed=true]{opacity:1}
.seance-btn[aria-pressed=true]{font-style:italic}
.seance-info{min-height:27rem;margin-top:1.75rem;max-width:34rem;transition:opacity .45s ease}
.seance-info.efface{opacity:0;transition-duration:.18s}
.seance-desc{font-size:1.1875rem}
.formules{margin-top:1.25rem;border-top:1px solid rgba(241,232,221,.28)}
.formules li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.1rem 1.5rem;align-items:baseline;padding:.8rem 0;border-bottom:1px solid rgba(241,232,221,.28)}
.formules b{font:400 1.5rem/1.2 var(--display)}
.formules .prix{color:var(--champagne);font-weight:500;font-size:1.0625rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.formules small{grid-column:1/-1;font-size:.9375rem;color:var(--ivoire-doux)}
.seance-notes{margin-top:1rem;font-size:.9375rem;color:var(--ivoire-doux)}
.seances-photos{grid-column:7/13;position:relative;aspect-ratio:4/5;overflow:hidden;align-self:start;margin-top:3rem}
.cadre{position:absolute;inset:0}
.seances-photos img{position:absolute;inset:0;opacity:0;transform:scale(1.04);transition:opacity .8s ease,transform 1.6s cubic-bezier(.2,.75,.2,1)}
.seances-photos img.active{opacity:1;transform:none}
.une figure,.credo figure,.planche figure,.contact figure{isolation:isolate}

/* Planche de photos, composée comme une double page */
.planche{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--g);padding:0 var(--g) clamp(5rem,10vw,8rem)}
.planche figure{overflow:hidden}
.planche .a{grid-column:1/8;aspect-ratio:7/8}
.planche .b{grid-column:9/13;aspect-ratio:2/3;align-self:end}
.planche .c{grid-column:2/5;aspect-ratio:2/3}
.planche .d{grid-column:5/10;aspect-ratio:4/5;margin-top:-14%}
.planche .e{grid-column:10/13;aspect-ratio:2/3;align-self:end}

.regard{padding:0 var(--g) clamp(5rem,10vw,8rem);max-width:18ch;font:italic 400 clamp(2.8rem,7.4vw,7.5rem)/1.02 var(--display);letter-spacing:-.015em;box-sizing:content-box}

/* Espace clair : la galerie de sélection */
.clair{background:var(--ivoire);color:var(--encre);padding:clamp(4.5rem,9vw,8rem) var(--g)}
.clair h2{font-size:clamp(2.6rem,6vw,6rem);line-height:1.02;letter-spacing:-.015em;max-width:15ch}
.clair .intro{max-width:34rem;margin-top:1.5rem;color:var(--encre-douce);font-size:1.1875rem}
.demo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:1.5rem;align-items:start;margin-top:clamp(4rem,8vw,7rem)}
.demo-texte{grid-column:1/7}
.demo-texte h3{font:400 clamp(2.2rem,4.4vw,4.25rem)/1.05 var(--display);letter-spacing:-.01em;margin-bottom:1rem}
.demo-texte p{color:var(--encre-douce);font-size:1.1875rem;max-width:32rem}
.demo-note{grid-column:8/13;align-self:end;padding:1.25rem 1.5rem;background:#e4d9ca;border-radius:.3rem;font-size:1rem}
.demo-note strong{display:block;margin-bottom:.25rem;font-weight:600}
.demo-note p+p{margin-top:.75rem}
.galerie{margin-top:clamp(2rem,4vw,3rem);background:#fff;border-radius:.4rem;box-shadow:0 30px 70px -40px rgba(20,39,45,.55);overflow:hidden}
.galerie-tete{position:sticky;top:0;z-index:2;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:1rem clamp(1rem,2vw,1.5rem);background:#fff;border-bottom:1px solid #e6e0d6}
.galerie-tete strong{font:500 1.375rem var(--display)}
.compteur{font-weight:500}
.jauge{width:min(100%,12rem);height:3px;background:#e6e0d6;margin-top:.35rem}
.jauge i{display:block;height:100%;width:0;background:#a97f43;transition:width .3s}
.valider{background:var(--petrole);color:var(--ivoire)}
.valider:hover{background:#a97f43;color:#fff}
.valider:disabled{background:#e6e0d6;color:var(--encre-douce);cursor:default}
.vignettes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;padding:.5rem}
.vignette{position:relative;aspect-ratio:2/3;padding:0;border:0;background:none;cursor:pointer;overflow:hidden}
.vignette img{transition:transform .5s,filter .3s}
.vignette:hover img{transform:scale(1.03)}
.vignette span{position:absolute;right:.5rem;top:.5rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:rgba(20,39,45,.55);color:#fff}
.vignette svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.8}
.vignette[aria-pressed=true] span{background:var(--champagne);color:var(--encre)}
.vignette[aria-pressed=true] svg{fill:currentColor}
.vignette[aria-pressed=true]{box-shadow:inset 0 0 0 3px var(--champagne)}
.galerie-pied{padding:.75rem clamp(1rem,2vw,1.5rem) 1.25rem;color:var(--encre-douce);font-size:.9375rem;min-height:3rem}
.clair{overflow-x:clip}
.deroule h2{max-width:none}
.deroule{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}
.deroule-texte{grid-column:1/9;grid-row:1;align-self:end;padding-bottom:clamp(2rem,4vw,3.5rem)}
.deroule-portrait{position:relative;z-index:2;grid-column:9/13;grid-row:1;align-self:end;margin-right:calc(var(--g)*-1);margin-top:calc(-1*clamp(4.5rem,9vw,8rem) - 16vw);margin-bottom:1px;clip-path:inset(-40% -10% 0 -40%)}
.deroule-portrait img{display:block;height:auto}
.etapes{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:var(--g);counter-reset:e}
.etapes li{counter-increment:e;border-top:1px solid rgba(26,36,40,.3);padding-top:1.25rem}
.picto{display:block;width:clamp(3rem,3.8vw,3.75rem);height:clamp(3rem,3.8vw,3.75rem);margin-bottom:1rem;fill:none;stroke:var(--encre);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.picto .accent{stroke:#a97f43;stroke-width:1.4}
.etapes h3{font:600 1.0625rem/1.3 var(--texte);margin-bottom:.35rem}
.etapes h3::before{content:counter(e) ". "}
.etapes p{color:var(--encre-douce);font-size:1rem}
.etapes h3{font:600 1.0625rem var(--texte);margin-bottom:.35rem}
.etapes p{color:var(--encre-douce);font-size:1rem}

/* Témoignages : un avis à la fois, centré, entre deux flèches */
.paroles{padding:clamp(5rem,11vw,9rem) var(--g);text-align:center}
.avis-tete{margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.paroles h2{font-size:clamp(2.6rem,6vw,6rem);line-height:1.02;letter-spacing:-.015em}
.avis-scene{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"prec piste suiv" ". position .";align-items:center;gap:1.5rem clamp(1rem,4vw,4rem);max-width:80rem;margin-inline:auto}
.slider-prec{grid-area:prec}
.slider-suiv{grid-area:suiv}
.avis-piste{grid-area:piste;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.avis-piste::-webkit-scrollbar{display:none}
.avis-slide{flex:0 0 100%;scroll-snap-align:start;opacity:.2;transition:opacity .6s ease}
.avis-slide.visible{opacity:1}
.avis-slide p{max-width:52rem;margin-inline:auto;font:italic 400 clamp(1.5rem,2.9vw,2.9rem)/1.2 var(--display);letter-spacing:-.005em;text-wrap:balance}
.auteur{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:clamp(1.25rem,2.5vw,2rem)}
.auteur img{flex:none;width:clamp(4.5rem,6vw,6rem);height:clamp(4.5rem,6vw,6rem);border-radius:50%;object-fit:cover}
.auteur span{display:grid;line-height:1.3}
.auteur strong{font-weight:600;font-size:1.125rem}
.auteur small{font-size:.9375rem;color:var(--champagne)}
.slider-position{grid-area:position;font-size:.9375rem;opacity:.75}
.slider-fleche{display:grid;place-items:center;width:clamp(3rem,4.5vw,4rem);height:clamp(3rem,4.5vw,4rem);padding:0;background:none;border:1px solid currentColor;border-radius:50%;color:inherit;cursor:pointer;transition:background-color .25s,color .25s,opacity .25s}
.slider-fleche svg{width:45%;height:45%;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.slider-fleche:hover:not(:disabled){background:var(--ivoire);color:var(--encre)}
.slider-fleche:disabled{opacity:.25;cursor:default}
.avis .slider-fleche:hover:not(:disabled){background:var(--encre);color:var(--ivoire)}

/* Instagram : une piste qui défile au doigt, avec des boutons sur ordinateur */
.insta{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:end;padding:0 0 clamp(5rem,10vw,8rem) var(--g)}
.insta-intro{grid-column:1/5;padding-bottom:4.5rem}
.insta h2{font-size:clamp(2.6rem,5vw,5rem);line-height:1.02;letter-spacing:-.015em}
.insta-intro p{margin-top:1.25rem;color:var(--ivoire-doux);max-width:24rem}
.insta-compte{display:inline-block;margin-top:1rem;color:var(--champagne);font-weight:500;text-underline-offset:.3em;overflow-wrap:anywhere}
.insta-controles .slider-position{min-width:3.5rem;text-align:center}
.insta-controles{display:flex;align-items:center;gap:1rem;margin-top:2rem;flex-wrap:wrap}
.insta-btn{padding:.6rem 1rem;background:none;border:1px solid rgba(241,232,221,.45);border-radius:.2rem;color:inherit;font:500 .9375rem var(--texte);cursor:pointer;transition:background-color .2s,color .2s}
.insta-btn:hover:not(:disabled){background:var(--ivoire);color:var(--encre)}
.insta-btn:disabled{opacity:.35;cursor:default}
.insta-piste{grid-column:5/13;display:flex;gap:var(--g);overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:0;padding-right:var(--g);scrollbar-width:none}
.insta-piste::-webkit-scrollbar{display:none}
.post{flex:0 0 clamp(15rem,22vw,20rem);scroll-snap-align:start}
.post a{display:block;text-decoration:none}
.post-image{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#20343a}
.post-image img{transition:transform 1.2s cubic-bezier(.2,.75,.2,1)}
.post a:hover img{transform:scale(1.03)}
.post-type{position:absolute;left:.75rem;top:.75rem;padding:.15rem .55rem;background:rgba(20,39,45,.72);color:var(--ivoire);font-size:.8125rem;border-radius:.2rem}
.post-texte{display:block;margin-top:.9rem;font:400 1.25rem/1.25 var(--display)}

/* Glisser à la souris */
[data-piste]{cursor:grab}
[data-piste].saisie{cursor:grabbing;user-select:none;-webkit-user-select:none}
[data-piste].saisie a{cursor:grabbing;pointer-events:none}
[data-piste] a{cursor:pointer;-webkit-user-drag:none}
[data-piste] img{-webkit-user-drag:none}

/* Contact */
.contact{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);min-height:88svh;padding:0 var(--g) var(--g);position:relative}
.contact figure{grid-column:8/13;grid-row:1;overflow:hidden}
.contact-texte{grid-column:1/8;grid-row:1;align-self:end;position:relative;z-index:2}
.contact h2{font-size:clamp(3.2rem,8vw,9rem);line-height:.98;letter-spacing:-.02em}
.contact h2 span{display:block}
.contact h2 span+span{font-style:italic;padding-left:6vw}
.contact-suite{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:2rem}
.contact-suite a:not(.bouton){text-underline-offset:.3em}
.pied{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 2rem;padding:1.25rem var(--g);color:var(--ivoire-doux);font-size:.875rem}

/* Pages intérieures */
.nav a[aria-current=page]{text-decoration:underline;text-underline-offset:.3em;text-decoration-color:var(--champagne)}
.page-tete{padding:clamp(7.5rem,14vw,11rem) var(--g) clamp(2rem,4vw,3rem)}
.page-tete h1{font-size:clamp(3.4rem,10.6vw,11.5rem);line-height:.94;letter-spacing:-.02em}
.page-tete p{margin-top:1.5rem;max-width:36rem;font-size:1.1875rem;color:var(--ivoire-doux)}

/* À propos */
.apropos-une{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);min-height:max(100svh,640px);padding:0 var(--g)}
.apropos-une figure{grid-column:7/13;grid-row:1;overflow:hidden;position:relative}
.apropos-une figure img{position:absolute;inset:0;object-position:center 25%}
.apropos-texte{grid-column:1/8;grid-row:1;align-self:end;position:relative;z-index:2;padding-bottom:clamp(2rem,6vh,4rem)}
.apropos-texte h1{font-size:clamp(3.2rem,8vw,9rem);line-height:.98;letter-spacing:-.02em}
.apropos-texte h1 span{display:block}
.apropos-texte h1 span+span{font-style:italic;padding-left:6vw}
.apropos-texte p{margin-top:1.75rem;max-width:30rem;font-size:1.1875rem;color:var(--ivoire-doux)}
.citation{padding:clamp(5rem,11vw,9rem) var(--g);max-width:24ch;box-sizing:content-box;font:italic 400 clamp(2.4rem,5.4vw,5.5rem)/1.08 var(--display);letter-spacing:-.01em}
.citation footer{margin-top:1.25rem;font:500 1rem var(--texte);color:var(--champagne);letter-spacing:0}
.chapitre{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);align-items:center;padding:0 var(--g) clamp(5rem,10vw,8rem)}
.chapitre figure{grid-column:1/6;aspect-ratio:4/5;overflow:hidden}
.chapitre>div{grid-column:7/12}
.chapitre.inverse figure{grid-column:8/13;grid-row:1}
.chapitre.inverse>div{grid-column:2/7;grid-row:1}
.chapitre h2{font-size:clamp(2.4rem,4.6vw,4.5rem);line-height:1.05;letter-spacing:-.01em;margin-bottom:1.25rem}
.chapitre p{font-size:1.1875rem;max-width:32rem;color:var(--ivoire-doux)}
.chapitre p+p{margin-top:1rem}
.avis{background:var(--ivoire);color:var(--encre)}
.avis .auteur small{color:#7a5a2a}
.suite{padding:clamp(5rem,11vw,9rem) var(--g)}
.suite h2{font-size:clamp(3.2rem,8vw,9rem);line-height:.98;letter-spacing:-.02em;margin-bottom:2rem}
.suite h2 span{display:block}
.suite h2 span+span{font-style:italic;padding-left:6vw}
.suite-liens{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem}
.suite-liens a:not(.bouton){text-underline-offset:.3em}

/* Portfolio */
.filtres{position:sticky;top:var(--nav);z-index:4;display:flex;gap:.25rem 1.5rem;overflow-x:auto;padding:.9rem var(--g);background:var(--petrole);scrollbar-width:none}
.filtres::-webkit-scrollbar{display:none}
.filtre{flex:none;padding:.25rem 0;background:none;border:0;border-bottom:1px solid transparent;text-decoration:none;color:var(--ivoire);font:400 1.5rem var(--display);opacity:.55;cursor:pointer;transition:opacity .25s}
.filtre:hover,.filtre[aria-current=page]{opacity:1}
.filtre[aria-current=page]{font-style:italic;border-bottom-color:var(--champagne)}
.categorie{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g);row-gap:.5rem;align-items:baseline;padding:clamp(1.5rem,3vw,2.5rem) var(--g);min-height:7rem;transition:opacity .3s}
.categorie p{grid-column:1/8;font-size:1.1875rem}
.categorie a{grid-column:8/13;justify-self:end;color:var(--champagne);font-weight:500;text-underline-offset:.3em;text-align:right}
.mur{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--g);align-items:start;padding:0 var(--g) clamp(5rem,10vw,8rem);transition:opacity .3s}
.mur.efface,.categorie.efface{opacity:0}
.colonne{display:grid;gap:var(--g)}
.colonne:nth-child(2){margin-top:clamp(2rem,7vw,7rem)}
.tuile{display:block;width:100%;padding:0;border:0;background:#20343a;cursor:zoom-in;overflow:hidden}
.tuile img{height:auto;transition:transform 1.2s cubic-bezier(.2,.75,.2,1)}
.tuile:hover img{transform:scale(1.025)}
.visionneuse{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(10,20,24,.97);color:var(--ivoire)}
.visionneuse::backdrop{background:rgba(10,20,24,.97)}
.visionneuse[open]{display:grid;grid-template-rows:minmax(0,1fr) auto}
.visionneuse figure{display:flex;align-items:center;justify-content:center;height:100%;min-height:0;padding:1rem;overflow:hidden}
.visionneuse img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.visionneuse-barre{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;padding:.75rem var(--g)}
.visionneuse-barre div{display:flex;gap:.5rem}

@media (max-width:800px){
  .une .p1{grid-column:1/-1;margin-inline:calc(var(--g)*-1)}
  .une .p2,.une .p3{display:none}
  .une h1 span+span{padding-left:0}
  .une-reste{padding-left:0}
  .credo h2,.credo .prose,.main-tendue{grid-column:1/-1}
  .credo figure{grid-column:5/13;grid-row:auto;margin-top:2.5rem}
  .seances-liste,.seances-photos{grid-column:1/-1}
  .seances-photos{grid-row:2;margin-top:1.5rem}
  .planche .a{grid-column:1/-1}
  .planche .b{grid-column:1/7}
  .planche .c{grid-column:7/-1}
  .planche .d{grid-column:1/-1;margin-top:0}
  .planche .e{display:none}
  .deroule{display:flex;flex-direction:column;align-items:stretch}
  .deroule-texte{display:contents}
  .deroule h2,.deroule .intro{order:1}
  .deroule-portrait{order:2;align-self:flex-end;width:68%;margin:3.5rem calc(var(--g)*-1) 1px 0}
  .etapes{order:3;grid-template-columns:minmax(0,1fr)}
  .etapes li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:1.25rem;align-items:center;border-top:1px solid rgba(26,36,40,.2);padding:1rem 0}
  .picto{grid-row:1/3;margin-bottom:0}
  .etapes h3{align-self:end;margin-bottom:.15rem}
  .etapes p{align-self:start}
  .avis-scene{grid-template-areas:"piste piste piste" "prec position suiv"}
  .vignette span{right:.3rem;top:.3rem;width:1.9rem;height:1.9rem}
  .vignette svg{width:.95rem;height:.95rem}
  .demo-texte,.demo-note{grid-column:1/-1}
  .insta{display:block;padding-left:0}
  .insta-intro{padding:0 var(--g) 2rem}
  .insta-piste{padding-inline:var(--g);scroll-padding-left:var(--g)}
  .post{flex-basis:72%}
  .apropos-une{display:block;min-height:0;padding:0}
  .apropos-une figure{aspect-ratio:4/5}
  .apropos-texte{padding:2rem var(--g) 0}
  .chapitre figure,.chapitre>div,.chapitre.inverse figure,.chapitre.inverse>div{grid-column:1/-1;grid-row:auto}
  .chapitre>div{margin-top:1.75rem}
    .categorie p,.categorie a{grid-column:1/-1;justify-self:start;text-align:left}
  .mur{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contact{display:block;min-height:0}
  .contact figure{aspect-ratio:4/5;margin-inline:calc(var(--g)*-1)}
  .contact-texte{margin-top:2rem}
  .contact h2 span+span{padding-left:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* Pages légales */
.legal{max-width:46rem;margin:0 auto;padding:clamp(8rem,14vw,11rem) 1.5rem 6rem}
.legal h1{font-size:clamp(2.4rem,6vw,4rem);line-height:1.05;margin:0 0 2.5rem}
.legal h2{font-size:clamp(1.4rem,3vw,1.9rem);margin:2.75rem 0 .75rem}
.legal p,.legal li{color:inherit;opacity:.88}
.legal a{color:inherit}
.legal ul{padding-left:1.2rem}
.pied nav{display:flex;gap:1.25rem;flex-wrap:wrap}

/* Réservation : sur ordinateur, tout tient dans l'écran, la photo centrée dans l'espace de droite */
.reservation-page{display:grid;grid-template-columns:minmax(0,44rem) minmax(0,1fr);gap:clamp(2rem,4vw,4rem);align-items:center;min-height:100svh;padding:calc(var(--nav) + 1.5rem) var(--g) 2.5rem}
.reservation-tete h1{font-size:clamp(3rem,5.6vw,5.25rem);line-height:.95;letter-spacing:-.02em}
.reservation-tete p{margin-top:1rem;max-width:36rem;font-size:1.0625rem;color:var(--ivoire-doux)}
.reservation{display:grid;gap:.9rem;margin-top:1.75rem}
.reservation-ligne{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1.25rem}
.reservation label{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .5rem;font-weight:500;font-size:.9375rem}
.reservation label input,.reservation label select,.reservation label textarea{flex-basis:100%}
.reservation small{font-weight:400;font-size:.8125rem;color:var(--ivoire-doux)}
.reservation input,.reservation select,.reservation textarea{width:100%;padding:.7rem .9rem;border:1px solid rgba(241,232,221,.28);border-radius:.25rem;background:rgba(241,232,221,.06);color:var(--ivoire);font:400 1rem var(--texte)}
.reservation input::placeholder{color:rgba(241,232,221,.42)}
.reservation select option,.reservation select optgroup{color:var(--encre);background:#fff}
.reservation textarea{resize:vertical;min-height:5.5rem}
.reservation input:focus,.reservation select:focus,.reservation textarea:focus{outline:2px solid var(--champagne);outline-offset:1px;border-color:transparent}
.reservation-suite{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:.35rem}
.reservation-suite p{font-size:.875rem;color:var(--ivoire-doux)}
.reservation-suite a,.reservation-erreur a{color:inherit}
.reservation-erreur{padding:.8rem 1rem;border-radius:.25rem;background:rgba(210,171,114,.16);border:1px solid var(--champagne)}
.reservation-retour{margin-top:2rem}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.reservation-photo{justify-self:center;margin:0;display:flex;flex-direction:column;align-items:center}
.reservation-photo img{display:block;width:auto;max-width:100%;height:min(calc(100svh - var(--nav) - 9rem),46rem);aspect-ratio:2/3;object-fit:cover;object-position:50% 20%;border-radius:.3rem}
.reservation-photo figcaption{margin-top:1rem;max-width:24rem;text-align:center;font:italic 400 1.0625rem/1.45 var(--display);color:var(--ivoire-doux)}
.reservation-photo figcaption span{display:block;margin-top:.3rem;font-style:normal;color:var(--champagne)}
@media (max-width:960px){
  .reservation-page{grid-template-columns:1fr;min-height:0;padding:clamp(6.5rem,14vw,9rem) var(--g) 5rem}
  .reservation-tete h1{font-size:clamp(3.4rem,13vw,6rem)}
  .reservation-photo{display:none}
}
@media (max-width:640px){.reservation-ligne{grid-template-columns:1fr}}
.seance-reserver{display:inline-block;margin-top:1.5rem;color:inherit;font-weight:600;text-decoration:underline;text-decoration-color:var(--champagne);text-underline-offset:.35em}
.reseaux{display:inline-flex;align-items:center;gap:.9rem}
.reseaux a{display:inline-flex;color:inherit;opacity:.85;transition:opacity .2s,color .2s}
.reseaux a:hover{opacity:1;color:var(--champagne)}
.reseaux-grand svg{width:26px;height:26px}
