/* La Barbière Rouge — feuille de styles du site
   Monde : maquette n° 3 « Vieux rose » (champ vieux rose, crème, bordeaux, filets or, arches)
   Écriture : maquette n° 4 (Bodoni Moda romain et italique, Jost en capitales espacées) */

:root{
  --rose:#8a5751; --rose-lo:#774741; --rose-deep:#6a3c37;
  --on-rose:#fdf2ed; --on-rose-2:#f5ddd6; --champagne:#ecd9af;
  --bordeaux:#3f1416; --bordeaux-2:#58201f; --on-bx:#f3dcd4; --on-bx-2:#d9b1a8;
  --cream:#fbf3ee; --bath:#f6e9e3; --poudre:#f3e1da;
  --ink:#3f1416; --ink-2:#7a4a44;
  --gold:#c9a15a; --gold-lo:#a88240;
  --line:rgba(63,20,22,.14); --line-rose:rgba(253,242,237,.32); --line-or:rgba(201,161,90,.55);
  --f-d:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
  --f-t:"Jost", "Futura", "Century Gothic", "Avenir Next", system-ui, sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --pad:clamp(20px,5vw,72px);
  --inline:max(var(--pad), calc((100% - 1320px) / 2));
  --wrap:min(1320px, 100% - 2 * var(--pad));
  --top-h:76px;
}

/* ---------- base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--top-h) + 16px);-webkit-text-size-adjust:100%;scrollbar-color:var(--rose-lo) var(--cream)}
body{margin:0;background:var(--cream);color:var(--ink);font:400 1.0625rem/1.65 var(--f-t);font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
html.menu-open body{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
button,input{font:inherit;color:inherit}
input{caret-color:var(--rose)}
::selection{background:var(--gold);color:var(--bordeaux)}
:focus-visible{outline:1.5px solid var(--bordeaux);outline-offset:4px;border-radius:3px}
.top :focus-visible,.menu :focus-visible,.hero :focus-visible,.phero :focus-visible,.sec--rose :focus-visible,.sec--bx :focus-visible,.rdv :focus-visible,.foot :focus-visible,.lost :focus-visible{outline-color:var(--on-rose)}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:16px;top:-60px;z-index:100;background:var(--cream);color:var(--bordeaux);padding:12px 18px;border-radius:999px;text-decoration:none;font:500 .74rem/1 var(--f-t);letter-spacing:.2em;text-transform:uppercase}
.skip:focus{top:12px}
.wrap{width:var(--wrap);margin-inline:auto}
em{font-style:italic}

/* ---------- titres ---------- */
.titre{font:400 clamp(2.5rem,4.8vw,4.4rem)/1.02 var(--f-d);letter-spacing:-.018em;margin:0 0 .5em;text-wrap:balance;font-optical-sizing:auto}
.titre em{color:var(--rose)}
.titre--s{font-size:clamp(2.1rem,3.6vw,3.3rem)}
.sec--rose .titre,.sec--rose .titre em{color:var(--on-rose)}
.sec--rose .titre em,.hero em,.phero em,.menu em{color:var(--champagne)}
.sec--bx .titre{color:var(--on-bx)}
.sec--bx .titre em{color:var(--gold)}

/* ---------- boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.75em;cursor:pointer;text-decoration:none;border:0;border-radius:999px;
  font:500 .74rem/1 var(--f-t);letter-spacing:.2em;text-transform:uppercase;padding:1.3em 1.9em;white-space:nowrap;
  transition:transform .35s var(--ease),background .25s,color .25s,box-shadow .3s}
.btn svg{width:15px;height:15px;flex:none}
.btn--cream{background:var(--on-rose);color:var(--bordeaux)}
.btn--cream:hover{transform:translateY(-2px);box-shadow:0 14px 26px -14px rgba(40,8,10,.65)}
.btn--ghost{background:transparent;color:var(--on-rose);box-shadow:0 0 0 1px rgba(253,242,237,.6) inset}
.btn--ghost:hover{box-shadow:0 0 0 1px var(--on-rose) inset;background:rgba(253,242,237,.08)}
.btn--bx{background:var(--bordeaux);color:var(--cream)}
.btn--bx:hover{background:var(--bordeaux-2);transform:translateY(-2px)}
.btn--line{background:transparent;color:var(--bordeaux);box-shadow:0 0 0 1px var(--bordeaux) inset}
.btn--line:hover{background:rgba(63,20,22,.06)}
.btn--gold{background:transparent;color:var(--on-bx);box-shadow:0 0 0 1px var(--gold) inset}
.btn--gold:hover{background:rgba(201,161,90,.14)}
.btn:active{transform:translateY(0) scale(.98)}

/* ---------- en-tête ---------- */
.top{position:fixed;inset:0 0 auto;z-index:50;height:var(--top-h);display:flex;align-items:center;gap:clamp(16px,2vw,30px);padding:0 var(--inline);
  background:var(--rose);color:var(--on-rose);box-shadow:0 1px 0 rgba(253,242,237,.14);transition:box-shadow .35s}
.top.is-scrolled{box-shadow:0 14px 30px -22px rgba(40,10,12,.7)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;flex:none}
.brand__seal{width:46px;height:46px;border-radius:50%;box-shadow:0 0 0 1px var(--gold),0 0 0 4px var(--rose),0 0 0 5px rgba(201,161,90,.4)}
.brand__name{font:400 1.3rem/1 var(--f-d);letter-spacing:.005em;white-space:nowrap}
.nav{display:flex;gap:clamp(14px,1.5vw,26px);margin-left:auto}
.nav a{font:500 .68rem/1 var(--f-t);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;color:var(--on-rose-2);padding:12px 0;white-space:nowrap;
  background:linear-gradient(var(--gold),var(--gold)) 0 calc(100% - 4px)/0 1px no-repeat;transition:background-size .45s var(--ease),color .3s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--on-rose);background-size:100% 1px}
.top__tel{display:flex;align-items:center;gap:9px;text-decoration:none;font:500 .8rem/1 var(--f-t);letter-spacing:.1em;color:var(--on-rose);white-space:nowrap}
.top__tel svg{width:16px;height:16px;color:var(--gold)}
.top__tel:hover span{text-decoration:underline}
.top__book{padding:1.05em 1.5em}
.menu-btn{display:none;align-items:center;gap:10px;background:none;border:0;cursor:pointer;padding:10px 2px;font:500 .72rem/1 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--on-rose)}
.menu-btn svg{width:22px;height:22px}

/* menu (tablette, téléphone) */
.menu{position:fixed;inset:var(--top-h) 0 0;z-index:49;background:var(--rose);color:var(--on-rose);overflow-y:auto;padding:28px var(--inline) 40px;display:flex;flex-direction:column;gap:30px;border-top:1px solid rgba(253,242,237,.14)}
.menu[hidden]{display:none}
.menu__nav{display:flex;flex-direction:column}
.menu__nav a{font:400 clamp(1.7rem,6vw,2.4rem)/1.1 var(--f-d);text-decoration:none;padding:13px 0;border-bottom:1px solid var(--line-rose)}
.menu__nav a[aria-current="page"]{padding-left:18px;background:linear-gradient(var(--gold),var(--gold)) 0 50%/8px 1px no-repeat}
.menu__acts{display:flex;flex-wrap:wrap;gap:10px}
.menu__small{margin:0;font-size:.9rem;color:var(--on-rose-2);max-width:40ch}
@media (prefers-reduced-motion:no-preference){
  .menu:not([hidden]){animation:menu-in .5s var(--ease) both}
  .menu:not([hidden]) .menu__nav a{animation:monter .6s var(--ease) both}
  .menu__nav a:nth-child(2){animation-delay:.03s}.menu__nav a:nth-child(3){animation-delay:.06s}.menu__nav a:nth-child(4){animation-delay:.09s}
  .menu__nav a:nth-child(5){animation-delay:.12s}.menu__nav a:nth-child(6){animation-delay:.15s}.menu__nav a:nth-child(7){animation-delay:.18s}
}
@keyframes menu-in{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}

/* ---------- sections ---------- */
.sec{padding:clamp(84px,10vw,144px) 0;position:relative}
.sec--rose{background:var(--rose);color:var(--on-rose)}
.sec--cream{background:var(--cream);color:var(--ink)}
.sec--blush{background:var(--poudre);color:var(--ink)}
.sec--bx{background:var(--bordeaux);color:var(--on-bx)}

/* ---------- arches ---------- */
.arch{margin:0;position:relative}
.arch__frame{height:100%;overflow:hidden;background:var(--rose-lo);border-radius:50% 50% 8px 8px / 32.6% 32.6% 8px 8px}
.arch__frame img{width:100%;height:100%;object-fit:cover}
.arch figcaption{position:absolute;left:-30px;right:-30px;top:calc(100% + 24px);text-align:center;font:500 .66rem/1.4 var(--f-t);letter-spacing:.22em;text-transform:uppercase;color:var(--on-rose-2);white-space:nowrap}

/* ---------- héros de l'accueil ---------- */
.hero{background:var(--rose);color:var(--on-rose);display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(24px,4vw,72px);
  padding:calc(var(--top-h) + 20px) var(--inline) 10px}
.hero__text{padding:48px 0 56px}
.hero__h1{margin:0;font-weight:400}
.hero__name{display:block;font:400 clamp(3.4rem,6.4vw,6rem)/.96 var(--f-d);letter-spacing:-.022em;margin-left:-.03em}
.hero__name span{display:block}
.hero__role{display:block;margin-top:.42em;font:italic 400 clamp(1.6rem,2.6vw,2.45rem)/1.12 var(--f-d);letter-spacing:-.01em;color:var(--champagne)}
.hero__pour{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin:28px 0 0;font:500 .9rem/1.2 var(--f-t);letter-spacing:.3em;text-transform:uppercase;color:var(--on-rose)}
.hero__pour svg{width:9px;height:9px;color:var(--gold);flex:none}
.hero__lede{max-width:36ch;margin:22px 0 32px;font:300 1.2rem/1.6 var(--f-t);color:var(--on-rose-2)}
.cta{display:flex;flex-wrap:wrap;gap:12px}
.hero__small{display:flex;align-items:flex-start;gap:9px;margin:20px 0 0;font:400 .84rem/1.45 var(--f-t);color:var(--on-rose-2);max-width:44ch}
.hero__small svg{width:15px;height:15px;flex:none;margin-top:1px;color:var(--gold)}
.proof{list-style:none;display:flex;flex-wrap:wrap;gap:8px 28px;margin:30px 0 0;padding:20px 0 0;border-top:1px solid var(--line-or);font-size:.94rem;color:var(--on-rose-2);max-width:36rem}
.proof li{display:flex;align-items:center;gap:9px}
.proof svg{width:17px;height:17px;flex:none;color:var(--gold)}

.hero__pics{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:clamp(14px,2.2vw,30px);padding:92px 0 78px}
.hero__pics::after{content:"";position:absolute;left:2%;right:2%;bottom:64px;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 14%,var(--gold) 86%,transparent)}
.arch--a{width:min(390px,53%);aspect-ratio:3/4.6}
.arch--a::before{content:"";position:absolute;inset:-13px -13px 0;border:1px solid rgba(201,161,90,.75);border-bottom:0;border-radius:50% 50% 0 0 / 34.5% 34.5% 0 0;pointer-events:none}
.arch--b{width:min(322px,43%);aspect-ratio:3/4}
.arch--b .arch__frame{border-radius:50% 50% 8px 8px / 37.5% 37.5% 8px 8px}
.seal{position:absolute;left:50%;top:-62px;z-index:2;width:118px;height:118px;border-radius:50%;transform:translateX(-50%);
  box-shadow:0 0 0 1px var(--gold),0 0 0 6px var(--rose),0 0 0 7px rgba(201,161,90,.45),0 22px 34px -18px rgba(40,8,10,.75)}
@media (prefers-reduced-motion:no-preference){
  .hero .arch__frame img,.phero .arch__frame img{animation:arch-in 1.6s var(--ease) both}
  .hero .arch--b .arch__frame img{animation-delay:.14s}
  .hero .arch--a::before,.phero .arch--page::before{animation:paraitre 1.4s ease .55s both}
  .seal{animation:sceau 1.1s var(--ease) 1s both}
  .phero .cameo{animation:monter 1.2s var(--ease) .7s both}
}
@keyframes arch-in{from{transform:scale(1.12);opacity:.25}to{transform:none;opacity:1}}
/* le médaillon éclot comme le logo animé : lavis, couronne qui s'ouvre en tournant, écriture ligne à ligne.
   Uniquement des propriétés animées par tous les navigateurs (opacité, transformation, clip-path) : rien ne peut rester masqué.
   Sans animation (mouvement réduit, navigateur ancien), les calques composent le médaillon complet. */
.seal--bloom{overflow:hidden;background:#fbf1ee}
.seal__l{position:absolute;inset:0;width:100%;height:100%}
.seal__w{position:absolute;height:auto}
.seal__w1{left:40.9%;top:25.27%;width:18.75%}
.seal__w2{left:25.14%;top:40.08%;width:48.64%}
.seal__w3{left:31.66%;top:54.76%;width:36.28%}
@media (prefers-reduced-motion:no-preference){
  .seal__lavis{animation:eclore .9s var(--ease) .95s both}
  .seal__couronne{animation:couronne 1.4s var(--ease) 1.2s both}
  .seal__w1{animation:ecrire .45s cubic-bezier(.4,0,.3,1) 2.15s both}
  .seal__w2{animation:ecrire .65s cubic-bezier(.4,0,.3,1) 2.45s both}
  .seal__w3{animation:ecrire .6s cubic-bezier(.4,0,.3,1) 2.95s both}
}
@keyframes eclore{from{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}
@keyframes couronne{from{opacity:0;clip-path:circle(18% at 50% 50%);transform:rotate(-40deg) scale(.94)}to{opacity:1;clip-path:circle(72% at 50% 50%);transform:none}}
@keyframes ecrire{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}
@keyframes paraitre{from{opacity:0}to{opacity:1}}
@keyframes sceau{from{opacity:0;transform:translate(-50%,10px) scale(.92)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes monter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- prestations : mèches ---------- */
.presta{padding-top:clamp(36px,5vw,72px)}
.presta__head{display:flex;justify-content:space-between;align-items:end;gap:20px 40px;flex-wrap:wrap;margin-bottom:36px}
.presta__head .titre{margin:0}
.presta__head p{max-width:40ch;margin:0;color:var(--on-rose-2)}
.strands{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-rose)}
.strand{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:center;gap:28px;padding:30px 6px;border-bottom:1px solid var(--line-rose);position:relative;text-decoration:none;color:inherit}
.strand::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.strand:hover::before,.strand:focus-visible::before{transform:scaleX(1)}
.strand:focus-visible{outline:1.5px solid var(--on-rose);outline-offset:-2px}
.s-name,.s-desc{transition:transform .55s var(--ease)}
.strand:hover .s-name{transform:translateX(14px)}
.strand:hover .s-desc{transform:translateX(7px)}
.s-name{font:400 clamp(1.9rem,3.3vw,3.1rem)/1.04 var(--f-d);letter-spacing:-.015em}
.s-desc{color:var(--on-rose-2);font-size:1rem;line-height:1.45}
.s-go{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;box-shadow:0 0 0 1px rgba(253,242,237,.5) inset;transition:background .3s,color .3s,transform .5s var(--ease)}
.s-go svg{width:18px;height:18px}
.strand:hover .s-go{background:var(--on-rose);color:var(--rose);transform:rotate(-45deg)}
.s-thumb{display:none}
.strands--s .strand{padding:22px 6px}
.strands--s .s-name{font-size:clamp(1.6rem,2.6vw,2.4rem)}
.reveal{position:fixed;left:0;top:0;width:250px;aspect-ratio:4/5;z-index:30;pointer-events:none;margin:0;
  clip-path:inset(50% 50% 50% 50% round 125px 125px 6px 6px);transition:clip-path .55s var(--ease);will-change:transform}
.reveal.on{clip-path:inset(0 0 0 0 round 125px 125px 6px 6px)}
.reveal img{width:100%;height:100%;object-fit:cover}

/* ---------- Mélanie ---------- */
.geste__in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,96px);align-items:center}
.big-say{font:400 clamp(1.55rem,2.4vw,2.3rem)/1.32 var(--f-d);letter-spacing:-.01em;margin:0 0 34px;color:var(--ink);text-wrap:pretty}
.big-say em{color:var(--rose)}
.geste__more{columns:2 260px;column-gap:40px;color:var(--ink-2)}
.geste__more p{margin:0 0 1em;break-inside:avoid}
.signature{margin:18px 0 0;font:italic 400 2.2rem/1 var(--f-d);color:var(--rose)}
.geste__pics{position:relative;min-height:560px}
.geste__pics figure{margin:0;position:absolute}
.geste__pics .g1{left:0;top:0;width:80%}
.geste__pics .g1 img{aspect-ratio:4/5;width:100%;object-fit:cover;border-radius:220px 220px 6px 6px}
.geste__pics .g2{right:0;bottom:0;width:40%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 8px var(--cream),0 0 0 9px var(--line-or),0 22px 34px -20px rgba(63,20,22,.6)}
.geste__pics .g2 img{aspect-ratio:1;width:100%;object-fit:cover}

/* ---------- le jour J ---------- */
.jj{background:radial-gradient(900px 640px at 85% 30%,rgba(122,42,46,.55),rgba(122,42,46,0) 70%),var(--bordeaux)}
.jj__in{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(36px,5vw,84px);align-items:center}
.jj__lede{color:var(--on-bx-2);max-width:46ch;margin:0 0 30px}
.jj__photo{margin:0}
.jj__photo img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}
.jj__photo figcaption{margin-top:12px;font:italic 400 1rem/1.4 var(--f-d);color:var(--on-bx-2)}
.offer{list-style:none;margin:0 0 26px;padding:0}
.offer li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:14px 0;border-bottom:1px solid rgba(243,220,212,.18)}
.offer li:first-child{border-top:1px solid rgba(243,220,212,.18)}
.offer span{color:var(--on-bx-2)}
.offer b{font:400 1.35rem/1.2 var(--f-d);color:var(--on-bx);white-space:nowrap}
.reviews{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 30px;color:var(--on-bx-2);font-size:.98rem}
.reviews a{color:var(--on-bx)}
.stars{display:inline-flex;gap:3px;color:var(--gold)}
.stars svg{width:15px;height:15px}

/* ---------- créations (accueil) ---------- */
.crea{padding-top:0}
.crea__band{position:relative;height:clamp(130px,15vw,210px);overflow:hidden}
.crea__band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.crea__band::after{content:"";position:absolute;inset:auto 0 0;height:65%;background:linear-gradient(transparent,var(--cream))}
.crea__band--poudre::after{background:linear-gradient(transparent,var(--poudre))}
.pieces{padding-top:0}
.pieces .wrap{position:relative;margin-top:-18px}
.crea__head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin:-24px 0 34px;position:relative}
.crea__head p{max-width:46ch;margin:0;color:var(--ink-2)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px,23vw,290px);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 2px 24px;
  scrollbar-width:thin;scrollbar-color:var(--rose) transparent;cursor:grab;overscroll-behavior-x:contain}
.rail.is-drag{cursor:grabbing;scroll-snap-type:none}
.rail:focus-visible{outline-offset:2px}
.prod{margin:0;scroll-snap-align:start}
.prod img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;pointer-events:none;user-select:none}
.prod figcaption{padding:14px 2px 0}
.prod b{display:block;font:400 1.3rem/1.2 var(--f-d);color:var(--ink)}
.prod span{display:block;margin-top:4px;color:var(--ink-2);font-size:.98rem}
.prod span i{font-style:normal;color:var(--rose)}
.prod .credit{margin-top:8px;font-size:.62rem}
.rail-nav{display:flex;gap:8px}
.rail-nav button{all:unset;cursor:pointer;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 1px var(--ink) inset;color:var(--ink);transition:background .25s,color .25s}
.rail-nav button:hover{background:var(--ink);color:var(--cream)}
.rail-nav button:focus-visible{outline:1.5px solid var(--rose);outline-offset:3px}
.rail-nav svg{width:18px;height:18px}
.crea__foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:18px}
.crea__notes{display:flex;flex-wrap:wrap;gap:8px 28px;margin:0;color:var(--ink-2)}
.crea__notes span::before{content:"";display:inline-block;width:6px;height:6px;transform:rotate(45deg);box-shadow:0 0 0 1px var(--gold-lo) inset;margin-right:12px;vertical-align:2px}

/* ---------- réalisations ---------- */
.real{padding-top:clamp(30px,4vw,60px)}
.real .titre{margin-bottom:.8em}
.wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.wall-col{display:grid;gap:22px}
.wall-col:nth-child(2){margin-top:90px}
@supports (animation-timeline:view()){
  @media (min-width:761px) and (prefers-reduced-motion:no-preference){
    .wall-col{animation:drift linear both;animation-timeline:view()}
    .wall-col:nth-child(1){--dy:34px}.wall-col:nth-child(2){--dy:-26px}.wall-col:nth-child(3){--dy:20px}
  }
}
@keyframes drift{from{transform:translateY(var(--dy,0))}to{transform:translateY(calc(var(--dy,0) * -1))}}
.wall figure,.gal figure{margin:0}
.wall img{width:100%;object-fit:cover;border-radius:6px}
.r45{aspect-ratio:4/5}.r11{aspect-ratio:1}.r34{aspect-ratio:3/4}.r23{aspect-ratio:2/3}
/* crédit du photographe sous une légende */
.credit{display:block;margin-top:3px;font:500 .62rem/1.4 var(--f-t);font-style:normal;font-variation-settings:normal;letter-spacing:.16em;text-transform:uppercase;color:inherit}
.wall figcaption,.gal figcaption{margin-top:10px;font:italic 500 1.02rem/1.3 var(--f-d);font-variation-settings:'opsz' 8;color:var(--rose-deep)}
.insta{margin:64px 0 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:28px;border-top:1px solid var(--line)}
.insta p{margin:0;font:400 clamp(1.5rem,2.4vw,2.2rem)/1.2 var(--f-d);color:var(--ink)}
.insta em{color:var(--rose)}

/* ---------- infos ---------- */
.infos__in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(36px,5vw,90px)}
.lieux{margin:0 0 30px;display:grid;gap:14px}
.lieux dt{display:flex;align-items:center;gap:10px;font:500 .7rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase}
.lieux dt svg{width:16px;height:16px;color:var(--gold)}
.lieux dd{margin:4px 0 0 26px;color:var(--on-rose-2)}
.hours{list-style:none;margin:0;padding:0}
.hours li{display:grid;grid-template-columns:1fr auto;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line-rose);font-size:1.08rem}
.hours li:first-child{border-top:1px solid var(--line-rose)}
.hours .d{font-weight:500}
.hours .h{font-variant-numeric:tabular-nums lining-nums}
.hours li.off{color:var(--on-rose-2)}
.hours li.off .d{font-weight:400}
.hours li.today .d::after{content:"aujourd’hui";margin-left:12px;font:600 .62rem/1 var(--f-t);letter-spacing:.16em;text-transform:uppercase;padding:5px 9px;border-radius:999px;background:var(--gold);color:var(--bordeaux);vertical-align:3px}
.conds{margin:34px 0 0;display:grid;gap:18px}
.conds dt{font:500 .7rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--on-rose)}
.conds dd{margin:4px 0 0;color:var(--on-rose-2);line-height:1.55}
.conds a{color:var(--on-rose)}
.zone{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-content:start}
.zone__map{background:var(--cream);border-radius:12px;padding:14px;color:var(--ink)}
.zone__map svg{width:100%;height:auto;display:block}
.zone__map .town{font:500 13px var(--f-t);fill:#5f3531}
.zone__map .town.big{font:600 16px var(--f-t);fill:var(--ink)}
.fees{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.fees li{padding:14px 0 0;border-top:1px solid var(--on-rose)}
.fees li:nth-child(2){border-top-style:dashed}
.fees li:nth-child(3){border-top-color:var(--on-rose-2);border-top-style:dotted}
.fees b{display:block;font:400 2rem/1 var(--f-d);letter-spacing:-.01em}
.fees span{display:block;margin-top:8px;color:var(--on-rose-2);font-size:.94rem;line-height:1.4}
.finder label{display:block;font:500 .7rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;margin-bottom:8px}
.finder input{width:100%;font:400 1.08rem var(--f-t);padding:.9em 1.15em;border-radius:12px;border:0;background:rgba(63,20,22,.22);color:var(--on-rose);box-shadow:0 0 0 1px rgba(253,242,237,.45) inset;caret-color:var(--champagne)}
.finder input::placeholder{color:var(--on-rose-2);opacity:1}
.finder input:focus{outline:1.5px solid var(--on-rose);outline-offset:2px}
.finder output{display:block;margin-top:10px;min-height:3em;color:var(--on-rose-2);line-height:1.5}
.finder output b{color:var(--on-rose);font-weight:500}

/* ---------- contact ---------- */
.contact{position:relative;padding:clamp(90px,10vw,140px) var(--pad);overflow:hidden;background:var(--bath)}
.contact__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card{position:relative;max-width:780px;margin:auto;background:var(--cream);color:var(--ink);border-radius:16px;padding:clamp(28px,4.4vw,56px);box-shadow:0 40px 80px -40px rgba(63,20,22,.6)}
.card__title{margin:0;font:400 clamp(2.4rem,4.6vw,3.6rem)/1.04 var(--f-d);letter-spacing:-.015em}
.card__title em{color:var(--rose);white-space:nowrap}
.card__tel{display:inline-block;margin:.25em 0 .35em;font:400 clamp(2.2rem,5.4vw,3.9rem)/1 var(--f-d);letter-spacing:-.01em;text-decoration:none;color:var(--ink);font-variant-numeric:lining-nums}
.card__tel:hover{color:var(--rose)}
.card__ways{display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;padding:18px 0;margin:0 0 22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.card__ways p{margin:0;color:var(--ink-2);max-width:34ch}
.card__ways b,.card__intro b{color:var(--ink);font-weight:500}
.card__intro{margin:0 0 18px;color:var(--ink-2)}
.card fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}
.card legend{font:500 .7rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px;padding:0}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-block;padding:.62em 1.05em;border-radius:999px;font-size:.96rem;cursor:pointer;box-shadow:0 0 0 1px rgba(63,20,22,.25) inset;transition:background .2s,color .2s,box-shadow .2s}
.chips span:hover{box-shadow:0 0 0 1px var(--ink) inset}
.chips input:checked + span{background:var(--ink);color:var(--cream);box-shadow:none}
.chips input:focus-visible + span{outline:1.5px solid var(--rose);outline-offset:2px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}
.fields label{display:block;font:500 .7rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.fields input{width:100%;font:400 1.04rem var(--f-t);padding:.85em 1em;border-radius:12px;border:0;background:var(--bath);color:var(--ink);box-shadow:0 0 0 1px rgba(63,20,22,.18) inset}
.fields input::placeholder{color:#835650;opacity:1}
.fields input:focus{outline:1.5px solid var(--rose);outline-offset:1px}
.bubble{background:var(--bath);border-radius:18px 18px 18px 6px;padding:16px 18px;margin:0 0 16px;line-height:1.5}
.bubble small{display:block;font:500 .66rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:4px}
.acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.copied{color:var(--rose);font-weight:500;opacity:0;transition:opacity .3s}
.copied.on{opacity:1}
.alt{margin:22px 0 0;color:var(--ink-2)}
.alt a{color:var(--ink);font-weight:500}

/* ---------- héros des pages de prestation ---------- */
.phero{background:var(--rose);color:var(--on-rose);display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(28px,4vw,64px);
  padding:calc(var(--top-h) + 44px) var(--inline) 56px}
.phero__title{margin:0;font:400 clamp(3.1rem,6vw,5.6rem)/.98 var(--f-d);letter-spacing:-.022em;text-wrap:balance}
.phero__title em{display:block}
.phero__lede{max-width:40ch;margin:26px 0 34px;font:300 1.2rem/1.6 var(--f-t);color:var(--on-rose-2)}
.phero__pics{position:relative;justify-self:center;width:min(560px,100%,calc((100svh - 210px) * .86));padding:0 0 54px 11%}
.arch--page{aspect-ratio:4/5.2}
.arch--page::before{content:"";position:absolute;inset:-14px -14px 0;border:1px solid rgba(201,161,90,.8);border-bottom:0;border-radius:50% 50% 0 0 / 39.6% 39.6% 0 0;pointer-events:none}
.arch--page .arch__frame{border-radius:50% 50% 6px 6px / 38.46% 38.46% 6px 6px}
.arch--page figcaption{left:46%;right:0;top:calc(100% + 18px);text-align:right;white-space:normal;line-height:1.6}
.nw{white-space:nowrap}
.cameo{position:absolute;left:-2%;bottom:40px;width:42%;aspect-ratio:1;margin:0;z-index:2}
.cameo__frame{width:100%;height:100%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 7px var(--rose),0 0 0 8px var(--gold),0 26px 40px -20px rgba(30,6,8,.7)}
.cameo__frame img{width:100%;height:100%;object-fit:cover}

/* ---------- carte des tarifs ---------- */
.tarifs-sec .wrap{max-width:1080px}
.carte-head{display:flex;justify-content:space-between;align-items:end;gap:18px 60px;flex-wrap:wrap;margin-bottom:36px}
.carte-head .titre{margin:0}
.carte-head__p{max-width:38ch;margin:0;color:var(--ink-2)}
.lg{position:sticky;top:calc(var(--top-h) + 12px);z-index:5;display:flex;align-items:center;gap:22px;margin:0 0 46px;padding:14px 22px 14px 18px;
  background:rgba(246,233,227,.96);border-radius:16px;box-shadow:0 0 0 1px var(--line);transition:box-shadow .35s var(--ease),background .35s}
.lg.is-stuck{background:rgba(246,233,227,.985);box-shadow:0 16px 30px -22px rgba(63,20,22,.55)}
.lg-sentinel{height:1px;margin-bottom:-1px}
.lg__set{border:0;margin:0;padding:0;min-width:0;flex:1;display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap}
.lg__set legend{float:left;padding:0;font:500 .68rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}
.lg__opts{display:flex;flex-wrap:wrap;gap:6px}
.lg__opts label{position:relative}
.lg__opts input{position:absolute;opacity:0;pointer-events:none}
.lg__opts span{display:inline-block;padding:.62em 1.05em;border-radius:999px;font:400 .98rem/1 var(--f-t);cursor:pointer;color:var(--ink);box-shadow:0 0 0 1px rgba(63,20,22,.22) inset;transition:background .2s,color .2s,box-shadow .2s}
.lg__opts span:hover{box-shadow:0 0 0 1px var(--ink) inset}
.lg__opts input:checked + span{background:var(--bordeaux);color:var(--cream);box-shadow:none}
.lg__opts input:focus-visible + span{outline:1.5px solid var(--rose);outline-offset:2px}
.lg__def{margin:0;flex-basis:100%;font:italic 500 1.02rem/1.3 var(--f-d);font-variation-settings:'opsz' 8;color:var(--rose-deep);min-height:1.3em}
.lg__fig{width:54px;height:68px;flex:none;order:-1}
.lg__body{fill:none;stroke:var(--ink-2);stroke-width:2;stroke-linecap:round}
.lg__head{fill:var(--rose-deep)}
.lg__hair{fill:var(--rose)}
.lg__mark line{stroke:var(--gold-lo);stroke-width:1.2;stroke-dasharray:2 3;opacity:.55}
.lg__mark circle{fill:var(--gold-lo);opacity:0}
.lg__mark.on line{stroke:var(--bordeaux);stroke-dasharray:none;opacity:1;stroke-width:1.6}
.lg__mark.on circle{fill:var(--bordeaux);opacity:1}

.cartes{display:grid;gap:64px}
/* la carte de salon : un double filet or en tête et en pied de chaque bloc */
.carte::before,.carte::after{content:"";display:block;height:4px;border-top:1px solid var(--gold-lo);border-bottom:1px solid var(--gold-lo);opacity:.7}
.carte::before{margin-bottom:26px}
.carte::after{margin-top:22px}
.carte + .carte::before{display:none}
.carte .tarifs tbody tr:last-child{border-bottom:0}
.carte__titre{margin:0 0 16px;font:400 clamp(1.5rem,2.3vw,2rem)/1.2 var(--f-d);letter-spacing:-.01em;color:var(--ink)}
.tarifs{width:100%;border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums}
.tarifs thead th{padding:0 0 12px 12px;font:500 .66rem/1 var(--f-t);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);text-align:right;white-space:nowrap;width:6.4em;transition:color .3s}
.tarifs tbody tr{border-top:1px solid var(--line)}
.tarifs tbody tr:last-child{border-bottom:1px solid var(--line)}
.tarifs tbody th{padding:17px 28px 17px 0;text-align:left;font-weight:400;vertical-align:baseline}
.t-nom{display:block;font:400 1.08rem/1.4 var(--f-t);color:var(--ink)}
.t-desc{display:block;max-width:58ch;margin-top:5px;font:italic 500 1.06rem/1.45 var(--f-d);font-variation-settings:'opsz' 8;letter-spacing:.005em;color:var(--rose-deep)}
.tarifs td{padding:17px 0 17px 12px;text-align:right;vertical-align:baseline;white-space:nowrap;font:500 1.06rem/1.4 var(--f-t);color:var(--ink);transition:opacity .35s,color .35s}
.carte--lg .t-uni{text-align:center}
.t-uni small{display:block;margin-top:3px;font:500 .6rem/1.2 var(--f-t);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.carte:not(.carte--lg) .t-uni small{display:none}
.tarifs tr.fort .t-nom{font-weight:500}
.tarifs tr.fort td{font:400 1.5rem/1.1 var(--f-d)}
.tarifs tr.sous{border-top:0}
.tarifs tr.sous th{padding:30px 0 12px;font:500 .68rem/1 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--rose)}
.carte__note{margin:16px 0 0;text-align:right;font:italic 500 1.1rem/1.4 var(--f-d);font-variation-settings:'opsz' 10;color:var(--rose)}
.tarifs-foot{margin:30px 0 0;color:var(--ink-2);font-size:.96rem;max-width:72ch}
.tarifs-foot a,.savoir a,.real__more a{color:var(--ink)}

/* longueur choisie : la carte ne garde que la bonne colonne */
[data-lg="0"] .carte--lg :is(td,th):is(.c1,.c2,.c3),
[data-lg="1"] .carte--lg :is(td,th):is(.c0,.c2,.c3),
[data-lg="2"] .carte--lg :is(td,th):is(.c0,.c1,.c3),
[data-lg="3"] .carte--lg :is(td,th):is(.c0,.c1,.c2){opacity:.26}
[data-lg="0"] .carte--lg thead .c0,[data-lg="1"] .carte--lg thead .c1,[data-lg="2"] .carte--lg thead .c2,[data-lg="3"] .carte--lg thead .c3{color:var(--bordeaux)}
[data-lg="0"] .carte--lg td.c0,[data-lg="1"] .carte--lg td.c1,[data-lg="2"] .carte--lg td.c2,[data-lg="3"] .carte--lg td.c3{color:var(--bordeaux);font-weight:600}

/* ---------- bon à savoir, galeries ---------- */
.savoir__in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,5vw,84px);align-items:start}
.notes{margin:0;display:grid;gap:22px}
.notes div{padding-top:16px;border-top:1px solid var(--line)}
.notes dt{font:500 .68rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--rose)}
.notes dd{margin:6px 0 0;color:var(--ink-2)}
.notes--trio dt{font:italic 400 1.5rem/1.1 var(--f-d);letter-spacing:0;text-transform:none;color:var(--ink)}
.savoir__p{margin:26px 0 0;color:var(--ink-2)}
.gal{display:grid;gap:18px}
.gal--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.gal--3 figure:nth-child(3n+2){margin-top:46px}
.gal--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.gal--4 figure:nth-child(even){margin-top:46px}
.gal img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.gal--3 figure:first-child img,.gal--4 figure:first-child img{border-radius:140px 140px 6px 6px}
.real__more{margin:40px 0 0;color:var(--ink-2)}

/* ---------- étapes (mariée) ---------- */
.etapes{background:radial-gradient(900px 640px at 15% 20%,rgba(122,42,46,.5),rgba(122,42,46,0) 70%),var(--bordeaux)}
.etapes__in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(36px,5vw,84px);align-items:center}
.steps{list-style:none;margin:0 0 30px;padding:0}
.steps li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:16px;padding:22px 0;border-top:1px solid rgba(243,220,212,.18)}
.steps li:last-child{border-bottom:1px solid rgba(243,220,212,.18)}
.steps .n{font:italic 400 2.4rem/1 var(--f-d);color:var(--gold)}
.steps h3{margin:0 0 4px;font:400 1.35rem/1.2 var(--f-d);color:var(--on-bx)}
.steps p{margin:0;color:var(--on-bx-2);line-height:1.55}
.etapes__photo{margin:0}
.etapes__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 50%;border-radius:200px 200px 6px 6px}
.etapes__photo figcaption{margin-top:12px;font:italic 400 1rem/1.4 var(--f-d);color:var(--on-bx-2);text-align:center}

/* ---------- reportage photo (mariée) ---------- */
.reportage{padding-bottom:clamp(20px,3vw,40px)}
.reportage__head{margin-bottom:clamp(28px,3.4vw,44px)}
.reportage__head .titre{margin-bottom:.35em}
.reportage__head p{margin:0;max-width:52ch;color:var(--ink-2)}
.reportage__head .reportage__credit{margin-top:12px;font:500 .7rem/1.4 var(--f-t);letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep)}
.reportage__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px;counter-reset:etape}
.reportage__list li{counter-increment:etape}
.reportage__list li:nth-child(3n+2){margin-top:46px}
.reportage__list figure{margin:0}
.reportage__list img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:6px}
.reportage__list figcaption{margin-top:10px;display:flex;align-items:baseline;gap:12px;font:italic 500 1.02rem/1.3 var(--f-d);font-variation-settings:'opsz' 8;color:var(--rose-deep)}
.reportage__list figcaption::before{content:counter(etape,decimal-leading-zero);flex:none;font:500 .7rem/1 var(--f-t);font-style:normal;letter-spacing:.14em;color:var(--rose)}
.reportage__list:focus-visible{outline-offset:6px}

/* ---------- créations (page) ---------- */
.crea-carte{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(36px,5vw,84px);align-items:start}
.crea-carte__text p{color:var(--ink-2);max-width:42ch;margin:0 0 28px}
.pieces__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.pieces__grid figure{margin:0;display:flex;flex-direction:column}
.pieces__grid img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px}
.pieces__grid figcaption,.pieces__wide figcaption{margin-top:10px;color:var(--ink-2);font-size:.95rem}
.pieces__grid figcaption b,.pieces__wide figcaption b{font:italic 400 1.1rem/1.2 var(--f-d);color:var(--ink);margin-right:4px}
/* une photo d'ensemble en pleine largeur sous la mosaïque, à son format */
.pieces__wide{margin:clamp(30px,4vw,48px) 0 0}
.pieces__wide img{width:100%;border-radius:6px}

/* ---------- prendre rendez-vous ---------- */
.rdv{background:radial-gradient(900px 600px at 80% 0%,rgba(122,42,46,.55),rgba(122,42,46,0) 70%),var(--bordeaux);color:var(--on-bx);padding:clamp(84px,10vw,140px) 0}
.rdv__in{width:var(--wrap);margin:auto;max-width:1080px}
.rdv__head{display:flex;justify-content:space-between;align-items:end;gap:10px 40px;flex-wrap:wrap;padding-bottom:30px;border-bottom:1px solid var(--line-or)}
.rdv .titre{margin:0;color:var(--on-bx)}
.rdv .titre em{color:var(--gold)}
.rdv__tel{font:400 clamp(2rem,4.4vw,3.4rem)/1 var(--f-d);text-decoration:none;color:var(--on-bx);font-variant-numeric:lining-nums}
.rdv__tel:hover{color:var(--gold)}
.rdv__ways{display:grid;grid-template-columns:1fr 1fr}
.rdv__way{padding:34px 40px 34px 0}
.rdv__way + .rdv__way{padding:34px 0 34px 40px;border-left:1px solid var(--line-or)}
.rdv__way h3{margin:0 0 8px;font:italic 400 1.6rem/1.2 var(--f-d);color:var(--on-bx)}
.rdv__way p{margin:0 0 22px;color:var(--on-bx-2);max-width:38ch}
.rdv__way .btn + .btn{margin-left:8px}
.rdv .btn--ghost{color:var(--on-bx);box-shadow:0 0 0 1px rgba(243,220,212,.5) inset}
.rdv__small{margin:0;padding-top:24px;border-top:1px solid var(--line-or);font-size:.88rem;line-height:1.55;color:var(--on-bx-2)}
.rdv__small a{color:var(--on-bx)}
.autres{padding:clamp(70px,8vw,110px) 0}

/* ---------- pied de page ---------- */
.foot{background:var(--bordeaux);color:var(--on-bx-2);padding:clamp(64px,8vw,96px) var(--pad) 28px;font-size:.96rem;border-top:1px solid rgba(201,161,90,.3)}
.foot__in{width:var(--wrap);margin:auto;display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:40px}
.foot__seal{width:150px;height:150px;border-radius:50%;box-shadow:0 0 0 1px var(--gold),0 0 0 6px var(--bordeaux),0 0 0 7px rgba(201,161,90,.4)}
.foot__say{margin:26px 0 0;font:400 1.35rem/1.35 var(--f-d);color:var(--on-bx);max-width:20ch}
.foot__say em{color:var(--gold)}
.foot__h{margin:0 0 16px;font:500 .68rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.foot__col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.foot a{color:var(--on-bx);text-decoration:none}
.foot a:hover{text-decoration:underline}
.foot__social{display:flex;gap:18px;flex-wrap:wrap}
.foot__social a{display:inline-flex;align-items:center;gap:8px}
.foot__social svg{width:17px;height:17px}
.foot__hours li{display:flex;justify-content:space-between;gap:12px;max-width:17rem}
.foot__hours span:last-child{font-variant-numeric:tabular-nums lining-nums;color:var(--on-bx)}
.foot__legal{width:var(--wrap);margin:56px auto 0;padding-top:22px;border-top:1px solid rgba(243,220,212,.14);display:flex;justify-content:space-between;gap:8px 30px;flex-wrap:wrap;font-size:.84rem}
.foot__legal p{margin:0}

/* ---------- mentions légales, 404 ---------- */
.legal{background:var(--cream);padding:calc(var(--top-h) + clamp(60px,8vw,110px)) var(--pad) clamp(80px,10vw,130px)}
.legal__in{max-width:68ch;margin:auto}
.legal h2{margin:2.2em 0 .6em;font:500 .72rem/1.4 var(--f-t);letter-spacing:.2em;text-transform:uppercase;color:var(--rose)}
.legal p{color:var(--ink-2);margin:0 0 1em}
.legal a:not(.btn){color:var(--ink)}
.legal__back{margin-top:3em!important}
.lost{background:var(--rose);color:var(--on-rose);min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(var(--top-h) + 40px) var(--pad) 60px}
.lost__seal{width:160px;height:160px;border-radius:50%;margin-bottom:34px;box-shadow:0 0 0 1px var(--gold),0 0 0 6px var(--rose),0 0 0 7px rgba(201,161,90,.45)}
.lost .titre{color:var(--on-rose)}
.lost .titre em{color:var(--champagne)}
.lost p{color:var(--on-rose-2);max-width:44ch}
.lost__links{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 22px;padding:0;margin:4px 0 34px}
.lost__links a{color:var(--on-rose)}

/* ---------- transitions entre les pages ----------
   l'en-tête ne bouge pas ; le nom d'une prestation glisse de la liste au titre de sa page (et retour) */
@view-transition{navigation:auto}
.top{view-transition-name:top}
::view-transition-group(*){animation-duration:.55s;animation-timing-function:cubic-bezier(.16,1,.3,1)}
::view-transition-group(top){animation:none}
::view-transition-old(root){animation:.28s ease both vt-out}
::view-transition-new(root){animation:.42s var(--ease) both vt-in}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0;transform:translateY(8px)}}

/* ---------- responsive ---------- */
@media (max-width:1240px){
  .nav,.top__tel{display:none}
  .top__book{margin-left:auto}
  .menu-btn{display:inline-flex}
}
@media (max-width:1100px){
  .geste__in,.jj__in,.infos__in,.savoir__in,.etapes__in,.crea-carte{grid-template-columns:minmax(0,1fr)}
  .geste__pics{min-height:0;aspect-ratio:1/1;max-width:560px;width:100%}
  .etapes__photo{max-width:480px}
  .foot__in{grid-template-columns:repeat(3,minmax(0,1fr))}
  .foot__brand{grid-column:1/-1;display:flex;align-items:center;gap:30px}
  .foot__say{margin:0}
}
@media (max-width:900px){
  .hero,.phero{grid-template-columns:minmax(0,1fr);gap:0}
  .hero{padding-top:var(--top-h)}
  .hero__text{padding:40px 0 0}
  .hero__pics{padding:80px 0 74px}
  .phero{padding:calc(var(--top-h) + 34px) var(--pad) 36px}
  .phero__pics{margin-top:34px;justify-self:center;width:min(520px,100%)}
  .strand{grid-template-columns:minmax(0,1fr) auto;gap:6px 22px}
  .s-desc{grid-column:1;grid-row:2}
  .s-go{grid-row:1/span 2;grid-column:2}
  .rdv__ways{grid-template-columns:minmax(0,1fr)}
  .rdv__way,.rdv__way + .rdv__way{padding:30px 0}
  .rdv__way + .rdv__way{border-left:0;border-top:1px solid var(--line-or)}
  .gal--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal--4 figure:nth-child(even){margin-top:46px}
  .pieces__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  :root{--top-h:64px}
  body{font-size:1.02rem}
  .brand__seal{width:40px;height:40px}
  .brand__name{font-size:1.14rem}
  .hero__name{font-size:clamp(3rem,14.5vw,4.4rem)}
  .hero__role{font-size:1.65rem}
  .hero__pour{font-size:.8rem;letter-spacing:.24em;gap:10px 12px}
  .hero__lede{font-size:1.1rem}
  .hero__pics{padding:80px 0 60px;gap:12px}
  .hero__pics::after{bottom:46px}
  .seal{width:112px;height:112px;top:-60px}
  .arch--a::before{inset:-9px -9px 0}
  .arch figcaption{left:0;right:0;top:calc(100% + 20px);font-size:.6rem;letter-spacing:.18em}
  .arch--page figcaption{left:46%;right:0;text-align:right;white-space:normal}
  .strand{grid-template-columns:58px minmax(0,1fr);gap:4px 14px;padding:18px 0}
  .s-thumb{display:block;grid-row:1/span 2;grid-column:1;width:58px;height:72px;object-fit:cover;border-radius:29px 29px 4px 4px}
  .s-name{grid-column:2;font-size:1.6rem}
  .strands--s .s-name{font-size:1.45rem}
  .s-desc{grid-column:2;grid-row:2;font-size:.9rem}
  .s-go{display:none}
  .strand:hover .s-name,.strand:hover .s-desc{transform:none}
  .geste__more{columns:1}
  .offer li{flex-direction:column;gap:2px}
  .wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .wall-col{gap:12px}
  .wall-col:nth-child(2){margin-top:40px}
  .wall-col:nth-child(3){display:contents}
  .wall-wide{grid-column:1/-1}
  .wall-wide img{aspect-ratio:3/2}
  /* reportage : défilement horizontal, une photo et le début de la suivante */
  .reportage__list{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;
    margin-inline:calc(var(--pad) * -1);padding:0 var(--pad) 16px;scroll-padding-inline:var(--pad);scrollbar-width:thin;scrollbar-color:var(--rose) transparent}
  .reportage__list li{scroll-snap-align:start}
  .reportage__list li:nth-child(3n+2){margin-top:0}
  .wall figcaption,.gal figcaption{font-size:.92rem}
  .fees{grid-template-columns:minmax(0,1fr)}
  .fields{grid-template-columns:minmax(0,1fr)}
  .card__ways .btn{width:100%}
  .phero__title{font-size:clamp(2.8rem,12.5vw,4rem)}
  .phero__pics{padding-left:12%;margin-top:28px;width:calc(100% - 14px)}
  .cameo{width:44%}
  .gal--3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
  .gal--3 figure:nth-child(3n+2){margin-top:28px}
  /* tarifs : une ligne de prix sous chaque prestation */
  .lg{gap:12px;padding:12px 14px;margin-bottom:34px;border-radius:14px}
  .lg__fig{width:38px;height:48px}
  .lg__set legend{display:none}
  .lg__opts span{padding:.6em .82em;font-size:.92rem}
  .lg__def{font-size:.92rem}
  .tarifs thead{display:none}
  .tarifs,.tarifs tbody{display:block}
  .tarifs tbody tr{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));column-gap:8px;padding:14px 0}
  .tarifs tbody th{grid-column:1/-1;padding:0 0 8px}
  .tarifs td{padding:0;text-align:left;font-size:1rem}
  .carte--lg td::before,.carte--cols td::before{content:attr(data-l);display:block;margin-bottom:3px;font:500 .58rem/1.2 var(--f-t);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}
  .tarifs td.t-uni{grid-column:1/-1;text-align:left}
  .carte:not(.carte--lg):not(.carte--cols) .tarifs tbody tr{grid-template-columns:minmax(0,1fr) auto;column-gap:18px}
  .carte:not(.carte--lg):not(.carte--cols) .tarifs tbody th{grid-column:1;padding:0}
  .carte:not(.carte--lg):not(.carte--cols) .tarifs td.t-uni{grid-column:2;text-align:right}
  .tarifs tr.sous{display:block;padding:24px 0 6px}
  .tarifs tr.sous th{padding:0}
  .tarifs tr.fort td{font-size:1.35rem}
  .carte__note{text-align:left}
  /* une longueur choisie : le prix passe à droite du nom */
  [data-lg]:not([data-lg="all"]) .carte--lg tbody tr:not(.sous){grid-template-columns:minmax(0,1fr) auto;column-gap:18px}
  [data-lg]:not([data-lg="all"]) .carte--lg tbody th{grid-column:1;padding:0}
  [data-lg]:not([data-lg="all"]) .carte--lg td.t-uni{grid-column:2;text-align:right}
  [data-lg="0"] .carte--lg td:is(.c1,.c2,.c3),[data-lg="1"] .carte--lg td:is(.c0,.c2,.c3),
  [data-lg="2"] .carte--lg td:is(.c0,.c1,.c3),[data-lg="3"] .carte--lg td:is(.c0,.c1,.c2){display:none}
  [data-lg]:not([data-lg="all"]) .carte--lg td[class^="c"]{text-align:right}
  [data-lg]:not([data-lg="all"]) .carte--lg td::before{display:none}
  .cap-x{display:none}
  .card__title{font-size:2.3rem}
  .pieces__grid{gap:12px}
  .foot__in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px 24px}
  .foot__brand{flex-direction:column;align-items:flex-start;gap:20px}
  .foot__seal{width:120px;height:120px}
}
@media (max-width:480px){
  .lg__fig{display:none}
  .lg__opts{gap:5px}
  .lg__opts span{padding:.6em .74em;font-size:.9rem}
  .top__book{display:none}
  .menu-btn{margin-left:auto}
  .hero__pour{letter-spacing:.2em}
  .cta .btn{flex:1 1 100%}
  .gal--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal--3 figure:nth-child(n){margin-top:0}
  .gal--3 figure:nth-child(even){margin-top:28px}
  .gal--3 figure:nth-child(3):last-child{display:none}
  .foot__in{grid-template-columns:minmax(0,1fr)}
}
@media (hover:none){
  .reveal{display:none}
}
@media (hover:none) and (min-width:761px){
  .strand{grid-template-columns:64px minmax(0,1fr) auto;gap:6px 22px}
  .s-thumb{display:block;grid-row:1/span 2;grid-column:1;width:64px;height:80px;object-fit:cover;border-radius:32px 32px 4px 4px}
  .s-name{grid-column:2}.s-desc{grid-column:2;grid-row:2}
  .s-go{grid-column:3;grid-row:1/span 2}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  @view-transition{navigation:none}
}
@media print{
  .top,.menu,.reveal,.rdv,.autres,.contact,.lg{display:none!important}
  .hero,.phero,.sec--rose,.sec--bx,.foot{background:#fff!important;color:#000!important}
}
