
/* ================= Pages prestations : un même modèle, des blocs propres à chaque offre ================= */
.pp main > section{padding-block:clamp(72px,9vw,128px)}

.p-sur{margin:0 0 16px}
.p-sur span{margin-right:6px;color:var(--red);letter-spacing:0}

/* ---------- En-tête : le titre, l'essentiel en trois chiffres, la photo sous une guirlande ---------- */
.p-hero{position:relative;overflow:hidden;padding:clamp(118px,15vh,158px) 0 clamp(64px,8vw,112px)}
.p-hero::before{content:"";position:absolute;right:-14%;top:-22%;width:min(1000px,120vw);aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(255,214,196,.8) 0%,rgba(255,226,212,.35) 38%,rgba(246,240,232,0) 66%)}
.p-hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(40px,6vw,100px);align-items:center}
.p-title{font:600 clamp(48px,6.4vw,104px)/.93 var(--serif);letter-spacing:-.03em}
.p-title span,.p-title em{display:block}
.p-title em{font-weight:400;color:var(--red)}
.motion .p-title span,.motion .p-title em{animation:p-rise 1.1s cubic-bezier(.2,.8,.2,1) .15s backwards}
.motion .p-title em{animation-delay:.28s}
@keyframes p-rise{from{opacity:0;transform:translateY(.28em);clip-path:inset(0 0 100% 0)}to{clip-path:inset(-20% -10% -20% -10%)}}
.p-lead{margin-top:clamp(18px,2vw,26px);max-width:31em;font-size:clamp(16.5px,1.3vw,19px);line-height:1.62;color:var(--ink-2);text-wrap:pretty}
.p-keys{list-style:none;margin:clamp(24px,2.8vw,34px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,auto));justify-content:start}
.p-keys li{display:grid;gap:7px;padding:0 clamp(16px,2vw,28px);border-left:1px solid var(--line)}
.p-keys li:first-child{padding-left:0;border-left:0}
.p-keys b{font:500 clamp(21px,2vw,29px)/1.05 var(--serif)}
.p-keys span{font:700 11px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.p-hero .cta{justify-content:flex-start;margin-top:clamp(26px,3vw,38px)}
.p-hero-ph{position:relative;margin:0;padding-top:clamp(28px,3vw,40px);justify-self:end;width:min(100%,500px,calc((100svh - 240px) / 1.25))}
.p-hero-ph .ph{aspect-ratio:4/5;border-radius:28px;background:var(--bg) var(--pos,50% 42%)/cover;border:7px solid var(--card);box-shadow:0 44px 70px -40px rgba(27,17,21,.55)}
.p-hero-ph figcaption{position:absolute;left:-26px;bottom:clamp(24px,3vw,40px);max-width:15em;transform:rotate(-3deg);padding:9px 16px 11px;border-radius:12px;background:var(--card);
  font:600 clamp(19px,1.6vw,22px)/1.15 "Caveat",cursive;color:var(--ink);box-shadow:0 18px 30px -18px rgba(27,17,21,.5)}
.motion .p-hero-ph .ph{animation:rv-photo 1.2s cubic-bezier(.2,.8,.2,1) .1s backwards}
.motion .p-hero-ph figcaption{animation:p-cap .8s cubic-bezier(.3,1.4,.5,1) 1.1s backwards}
@keyframes p-cap{from{opacity:0;transform:rotate(-9deg) translateY(12px) scale(.9)}}
/* la guirlande de fanions : tendue d'un coin à l'autre de la photo, elle se pose puis se balance */
.bunting{position:absolute;left:-7%;top:0;width:114%;height:auto;z-index:2;overflow:visible;pointer-events:none}
.bunting .fl{transform-box:fill-box;transform-origin:50% 0}
.motion .bunting .str{stroke-dasharray:1;stroke-dashoffset:1;animation:str-in .9s cubic-bezier(.6,0,.2,1) .2s forwards}
@keyframes str-in{to{stroke-dashoffset:0}}
.motion .bunting .fl{animation:fl-in .9s cubic-bezier(.3,1.45,.5,1) calc(.55s + var(--i) * .07s) backwards,fl-sway calc(3.4s + var(--i) * .27s) ease-in-out calc(1.9s + var(--i) * .13s) infinite alternate}
@keyframes fl-in{from{opacity:0;transform:translateY(-30px) rotate(-16deg)}}
@keyframes fl-sway{0%{transform:rotate(0)}50%{transform:rotate(3.5deg)}100%{transform:rotate(-3deg)}}
@media (max-width:899px){
  .p-hero-grid{grid-template-columns:1fr}
  .p-hero-ph{justify-self:center;width:min(100%,440px)}
  .p-hero-ph figcaption{left:-8px}
}
@media (max-width:560px){
  .p-keys li{padding:0 12px}
  .p-keys b{font-size:19px}
  .p-keys span{font-size:10.5px;letter-spacing:.08em;max-width:12em}
  .p-hero .cta .btn{flex:1 1 auto;justify-content:center}
}

/* ---------- Les formules : on choisit un ticket, le tableau montre ce qu'il comprend ---------- */
.fx{background:var(--paper-2)}
.fx .head{margin-bottom:clamp(28px,3vw,40px)}
.fx .head h2{font-size:clamp(38px,4.4vw,62px)}
.fx-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,3.6vw,56px);align-items:start}
.fx-tickets{display:grid;gap:14px}
.tk{position:relative;display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:8px 18px;width:100%;padding:22px 24px 20px;border-radius:18px;border:1px solid var(--line);
  background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .3s,box-shadow .35s,transform .45s cubic-bezier(.2,.8,.2,1)}
.tk:hover{transform:translateY(-2px);box-shadow:0 20px 34px -24px rgba(27,17,21,.45)}
.tk[aria-pressed="true"]{border-color:rgba(179,18,46,.65);box-shadow:inset 0 0 0 1px rgba(179,18,46,.65),0 26px 44px -28px rgba(179,18,46,.5);transform:translateX(8px)}
.tk::before{content:"";position:absolute;left:-1px;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:var(--red);transform:scaleY(0);transition:transform .35s}
.tk[aria-pressed="true"]::before{transform:none}
.tk-n{display:flex;align-items:baseline;gap:12px;min-width:0}
.tk-n b{font:italic 400 clamp(26px,2.3vw,32px)/1 var(--serif)}
.tk-d{font:800 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.tk-p{font:500 clamp(24px,2.1vw,30px)/1 var(--serif);white-space:nowrap;transition:color .3s}
.tk[aria-pressed="true"] .tk-p{color:var(--red)}
.tk-t{grid-column:1/-1;font-size:14.5px;line-height:1.5;color:var(--ink-2)}
.tk-h{grid-column:1/-1;display:flex;gap:5px;margin-top:6px}
.tk-h i{flex:1;height:4px;border-radius:3px;background:rgba(27,17,21,.08)}
.tk-h i.on{background:rgba(27,17,21,.3);transition:background .35s}
.tk[aria-pressed="true"] .tk-h i.on{background:var(--red)}
.fx-board{position:sticky;top:110px;padding:clamp(20px,2.6vw,34px);border-radius:24px;background:var(--card);box-shadow:0 40px 70px -48px rgba(27,17,21,.5)}
.fx-board::before{content:"";position:absolute;inset:10px;border:1px solid rgba(179,18,46,.16);border-radius:16px;pointer-events:none}
.fx-detail{display:none}
.acts6{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ac{position:relative;display:grid;justify-items:center;align-content:start;text-align:center;gap:6px;height:100%;padding:36px 12px 18px;border-radius:16px;border:1px solid transparent;
  transition:opacity .45s,filter .45s,background-color .45s,border-color .45s}
.ac svg{width:84px;height:52px;margin-bottom:4px}
.ac b{font:italic 400 clamp(19px,1.6vw,22px)/1.1 var(--serif)}
.ac span{font-size:13px;line-height:1.45;color:var(--mute);max-width:15em}
.ac .st{position:absolute;top:9px;right:9px;padding:5px 8px 4px;border-radius:999px;font:800 10.5px/1 var(--sans);font-style:normal;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;
  opacity:0;transform:scale(.8);transition:opacity .3s,transform .4s cubic-bezier(.3,1.5,.5,1)}
.ac[data-s="in"]{background:rgba(179,18,46,.045);border-color:rgba(179,18,46,.22)}
.ac[data-s="in"] .st{opacity:1;transform:none;background:var(--red);color:var(--card)}
.ac[data-s="choice"]{background:rgba(212,160,58,.08);border:1px dashed rgba(179,18,46,.5)}
.ac[data-s="choice"] .st{opacity:1;transform:none;border:1px solid var(--red);color:var(--red)}
.ac[data-s="alt"]{border:1px dashed rgba(27,17,21,.3);opacity:.82}
.ac[data-s="alt"] .st{opacity:1;transform:none;border:1px solid rgba(27,17,21,.4);color:var(--ink-2)}
.ac[data-s="out"]{opacity:.32;filter:grayscale(1)}
.motion .ac.pop{animation:ac-pop .65s cubic-bezier(.3,1.5,.5,1) var(--d,0ms) backwards}
@keyframes ac-pop{from{transform:scale(.88);opacity:.2}}
.fx-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 20px;margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}
.fx-foot p{font:italic 400 14px/1.45 var(--serif);color:var(--mute);max-width:24em}
@media (max-width:899px){
  .fx-grid{grid-template-columns:1fr}
  .fx-board{position:relative;top:auto}
  .fx-tickets{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .tk{grid-template-columns:1fr;justify-items:center;text-align:center;gap:8px;padding:16px 10px 14px}
  .tk[aria-pressed="true"]{transform:none}
  .tk::before{left:22px;right:22px;top:auto;bottom:-1px;width:auto;height:3px;border-radius:3px 3px 0 0;transform:scaleX(0)}
  .tk-n{flex-direction:column;align-items:center;gap:7px}
  .tk-n b{font-size:clamp(18px,4.8vw,24px)}
  .tk-p{font-size:21px}
  .tk-t{display:none}
  .tk-h{width:100%}
  .fx-detail{display:block;position:relative;margin:4px 6px 18px;font-size:14.5px;line-height:1.5;color:var(--ink-2);text-align:center;text-wrap:balance}
  .acts6{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .ac{padding:26px 8px 14px}
  .ac svg{width:64px;height:40px}
  .ac span{font-size:12px}
  .fx-foot{flex-direction:column;align-items:stretch;text-align:center}
  .fx-foot p{max-width:none}
  .fx-foot .btn{justify-content:center}
}

/* ---------- Comment ça se passe : quatre étapes sur un fil qui se trace ---------- */
.how .head{margin-bottom:clamp(36px,4.5vw,60px)}
.how-track{--g:clamp(20px,2.6vw,36px);position:relative}
.how-rail,.how-fill{position:absolute;left:28px;right:calc((100% - 3 * var(--g)) / 4 - 28px);top:27px;height:2px;pointer-events:none}
.how-rail{background:repeating-linear-gradient(90deg,rgba(179,18,46,.45) 0 7px,transparent 7px 13px)}
.how-fill{background:var(--red);transform-origin:0 50%}
@supports (animation-timeline: view()){
  html.motion .how-fill{transform:scaleX(0);animation:how-fill linear both;animation-timeline:view();animation-range:entry 70% cover 55%}
}
@keyframes how-fill{to{transform:scaleX(1)}}
.how-line{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g);counter-reset:h}
.how-line li{position:relative;counter-increment:h;display:grid;align-content:start;gap:10px;padding-top:80px}
.how-line li::before{content:counter(h);position:absolute;left:0;top:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--card);
  border:1px solid rgba(179,18,46,.35);box-shadow:0 0 0 8px var(--paper);font:italic 500 26px/1 var(--serif);color:var(--red)}
.how-line b{font:italic 400 clamp(23px,2vw,28px)/1.1 var(--serif)}
.how-line p{font-size:15.5px;line-height:1.55;color:var(--ink-2);max-width:17em}
/* Les formules : le programme du spectacle, dans le cadre de la page Tarifs. Chaque formule est un numéro (I, II, III…) :
   le nom relié au prix par des pointillés, « durée · mention » en petites capitales, la description, les options, l'action */
.prog-s .wrap{display:grid;gap:clamp(30px,4vw,48px)}
.pg.prog{width:100%;max-width:940px;margin:0 auto}
.prog .pg-h h2{font-size:clamp(36px,4.4vw,58px);line-height:1.02}
.prog .pg-h p{max-width:34em}
.prog .pg-h .label{color:var(--red)}
.prog-l{list-style:none;margin:clamp(26px,3vw,38px) 0 0;padding:0}
.num{display:grid;grid-template-columns:58px minmax(0,1fr);gap:0 16px;padding:clamp(18px,2.2vw,26px) 0;border-top:1px solid rgba(179,18,46,.22)}
.num-n{font:italic 400 clamp(28px,2.6vw,34px)/1 var(--serif);color:var(--red)}
.ol-b{margin:0 0 6px;font:800 12.5px/1.25 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.num-l{display:flex;align-items:baseline;gap:10px}
.num-l h3{margin:0;min-width:0;font:500 clamp(21px,2vw,25px)/1.2 var(--serif)}
.num-dots{flex:1 1 18px;min-width:18px;border-bottom:1.5px dotted rgba(27,17,21,.32);transform:translateY(-5px)}
.num-p{font:500 clamp(21px,2vw,25px)/1.2 var(--serif);white-space:nowrap;font-variant-numeric:lining-nums}
.num-m{margin:7px 0 8px;font:800 12px/1.35 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.ol-f{margin:0 0 4px;font:600 16px/1.55 var(--sans);color:var(--ink)}
.ol-t{margin:0 0 4px;font-size:16px;line-height:1.6;color:var(--ink-2);max-width:42em}
.num-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;margin:12px 0 0}
.num-a{display:inline-flex;align-items:center;gap:10px;font:800 12.5px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.num-a .arrow{transition:transform .3s}.num-a:hover .arrow,.num-a:focus-visible .arrow{transform:translateX(4px)}
.ol-voir{font:600 15px/1.3 var(--sans);color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.ol-voir:hover{color:var(--red)}
/* une option, rangée sous le numéro qu'elle complète */
.ol-o{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:12px 0 0;padding:10px 0 0;border-top:1px dashed rgba(27,17,21,.22)}
.ol-o::before{content:"En option";font:800 12px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.ol-o-n{font:700 16px/1.4 var(--sans)}.ol-o b{font:800 16px/1.4 var(--sans);font-variant-numeric:tabular-nums}.ol-o-d{flex-basis:100%;font-size:16px;line-height:1.55;color:var(--ink-2)}
/* l'animation à l'heure : les durées reliées à leur prix, chacune reprise dans la demande */
.num-gt{margin:14px 0 4px;font:800 12px/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.num-g{list-style:none;margin:0;padding:0;columns:2;column-gap:34px;max-width:620px}
.num-g li{break-inside:avoid}
.num-g a{display:flex;align-items:baseline;gap:8px;padding:6px 0;color:var(--ink);transition:color .25s}
.num-g a:hover,.num-g a:focus-visible{color:var(--red)}
.num-g b{font:700 16px/1.3 var(--sans);white-space:nowrap}
.num-g em{font:700 12.5px/1.3 var(--sans);font-style:normal;white-space:nowrap}
.num-g em::before{content:"✦ "}
.num-gp{font:500 19px/1.2 var(--serif);white-space:nowrap}
.num-g .top a{color:var(--red)}.num-g .top .num-dots{border-color:rgba(179,18,46,.5)}
.num-gn{margin:8px 0 0;font-size:15px;line-height:1.5;color:var(--ink-2)}
/* « autres demandes » et la note du programme */
.ol-autre{margin:0;padding:16px 0 0;border-top:1px solid rgba(179,18,46,.22);font-size:16px;line-height:1.6;color:var(--ink-2)}.ol-autre b{color:var(--ink)}.ol-autre .num-a{margin-left:8px}
.prog-note{margin:clamp(16px,2vw,22px) 0 0;padding-top:16px;border-top:1px solid rgba(179,18,46,.22);text-align:center;font:500 15.5px/1.55 var(--sans);color:var(--ink-2)}
/* le « Bon à savoir », sous le programme */
.ol-plus{width:100%;max-width:940px;margin:0 auto}
.ol-plus-t{margin:0 0 16px;font:800 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.ol-plus-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(20px,3vw,44px)}
.ol-s h3{margin:0 0 8px;font:700 17px/1.3 var(--sans)}
.ol-s p,.ol-s li{font-size:16px;line-height:1.55;color:var(--ink-2)}.ol-s p{margin:0 0 10px}
.ol-s ul{margin:0 0 10px;padding-left:18px;display:grid;gap:4px}.ol-s li::marker{color:var(--red)}
@media (max-width:600px){
  .num{grid-template-columns:34px minmax(0,1fr);gap:0 10px}
  .num-n{font-size:24px}
  .num-g{columns:1}
  .num-g a{flex-wrap:wrap}.num-g em{order:4;flex-basis:100%;margin-top:-2px}
}
/* Anniversaires : les activités de la formule, en trois listes */
.fx-acts{display:grid;gap:18px}
.fx-a[hidden]{display:none}
.fx-at{margin:0 0 8px;font:800 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.fx-at small{margin-left:6px;font:500 13px/1 var(--sans);letter-spacing:0;text-transform:none;color:var(--mute)}
.fx-a ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}
.fx-a li{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:2px 12px;padding:10px 12px;border-radius:14px;background:rgba(179,18,46,.045);border:1px solid rgba(179,18,46,.18)}
.fx-a li[hidden]{display:none}
.fx-a li svg{grid-row:span 2;width:48px;height:30px}
.fx-a li b{font:500 18px/1.15 var(--serif)}
.fx-a li span{font-size:14px;line-height:1.4;color:var(--ink-2)}
.fx-a[data-s="choice"] li{background:rgba(212,160,58,.08);border-style:dashed}
.fx-a[data-s="alt"] li{background:none;border:1px dashed rgba(27,17,21,.28)}
.motion .fx-a li.pop{animation:fx-pop .45s cubic-bezier(.3,1.4,.5,1) var(--d,0ms) backwards}
@keyframes fx-pop{from{opacity:0;transform:translateY(8px) scale(.97)}}
/* les autres prestations : une ligne de liens, avant le contact */
.pp .p-more{padding-block:clamp(28px,4vw,52px)}
.p-more-t{margin:0 0 16px;font:800 12.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.p-liens{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.p-lien{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);transition:border-color .3s,transform .3s}
.p-lien:hover,.p-lien:focus-visible{border-color:var(--red);transform:translateY(-2px)}
.p-lien svg{flex:none;width:52px;height:32px}
.p-lien span{display:grid;gap:2px;flex:1}.p-lien b{font:500 19px/1.15 var(--serif)}.p-lien small{font:700 13px/1.2 var(--sans);color:var(--red)}
.p-lien .arrow{width:18px;color:var(--red)}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);margin-top:clamp(56px,7vw,96px);align-items:start}
.gal[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr));max-width:860px;margin-inline:auto}
.gal[data-n="1"]{grid-template-columns:minmax(0,420px);justify-content:center}
.gal figure{margin:0;display:grid;gap:10px}
.gal figure:nth-child(3n+2){margin-top:clamp(24px,4vw,56px)}
.gal figure.gal-plus{display:none}
.gal.ouverte figure.gal-plus{display:grid;animation:gal-in .6s cubic-bezier(.2,.8,.2,1) backwards}
.gal.ouverte figure.gal-plus:nth-child(3n+1){animation-delay:0s}.gal.ouverte figure.gal-plus:nth-child(3n+2){animation-delay:.08s}.gal.ouverte figure.gal-plus:nth-child(3n){animation-delay:.16s}
@keyframes gal-in{from{opacity:0;transform:translateY(18px)}}
.gal-more{display:flex;justify-content:center;margin:clamp(36px,4vw,56px) 0 0}
.gal-more span{opacity:.6;letter-spacing:.08em}
.gal .ph{aspect-ratio:4/5;border-radius:22px;background:var(--bg) center/cover;border:6px solid var(--card);box-shadow:0 30px 46px -32px rgba(27,17,21,.45)}
.gal figcaption{padding-left:10px;font:600 clamp(19px,1.6vw,22px)/1.2 "Caveat",cursive;color:var(--ink-2)}
@media (max-width:760px){
  .how-line{grid-template-columns:1fr;gap:28px}
  .how-line li{padding:6px 0 0 78px;min-height:56px}
  .how-rail,.how-fill{left:27px;right:auto;top:28px;bottom:70px;width:2px;height:auto}
  .how-rail{background:repeating-linear-gradient(180deg,rgba(179,18,46,.45) 0 7px,transparent 7px 13px)}
  .how-fill{transform-origin:50% 0}
  @supports (animation-timeline: view()){html.motion .how-fill{transform:scaleY(0);animation-name:how-fill-v}}
  .gal,.gal[data-n]{grid-template-columns:none;max-width:none;justify-content:start;grid-auto-flow:column;grid-auto-columns:80%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;
    margin-inline:calc(-1 * clamp(20px,5vw,56px));padding:0 clamp(20px,5vw,56px) 12px}
  .gal::-webkit-scrollbar{display:none}
  .gal figure{scroll-snap-align:center}
  .gal figure:nth-child(3n+2){margin-top:0}
  .gal figure.gal-plus{display:grid}
  .gal-more{display:none}
  .gal[data-n="1"]{grid-auto-columns:100%;overflow:visible}
}
@keyframes how-fill-v{to{transform:scaleY(1)}}

/* ---------- Avis : sur le fond crème, comme sur l'accueil ---------- */
.p-avis{text-align:center}
.p-avis > .wrap{border-block:1px solid var(--line);padding-block:clamp(56px,7vw,96px)}
.p-avis h2{font-size:clamp(38px,5vw,72px);line-height:1;margin-top:16px}
.p-avis h2 em{color:var(--red);font-weight:400}
.p-avis .av-main{max-width:880px;margin:clamp(30px,4vw,48px) auto 0}
.p-avis .quote{margin:0;justify-items:center;min-height:clamp(170px,14vw,210px);align-content:center}
.p-avis .quote p{font-size:clamp(21px,2.3vw,30px);line-height:1.34}
.p-avis .quote.long p{font-size:clamp(17px,1.7vw,22px)}
.p-avis .quote footer{justify-content:center}
.p-avis .fan{justify-content:center;margin-top:26px}
.pq{max-width:880px;margin:clamp(30px,4vw,48px) auto 0;display:grid;gap:22px}
.pq p{font:italic 400 clamp(22px,2.5vw,33px)/1.32 var(--serif);text-wrap:pretty}
.pq footer{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 16px;font:800 12.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pq footer b{color:var(--ink)}
.pq.small{max-width:700px;margin-top:clamp(36px,4vw,52px);padding:clamp(24px,3vw,34px);border-radius:22px;background:var(--card);border:1px solid var(--line)}
.pq.small p{font-size:clamp(17px,1.6vw,21px);line-height:1.45;color:var(--ink-2)}
.p-avis .more{margin-top:clamp(30px,3.6vw,44px)}

/* ---------- Questions pratiques ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,80px);align-items:start}
.faq .head{position:sticky;top:120px;margin-bottom:0}
.faq .head h2 em{font-weight:400}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 2px;font:italic 400 clamp(20px,1.9vw,25px)/1.25 var(--serif);transition:color .25s}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:hover{color:var(--red)}
.faq-list summary::after{content:"";flex:none;width:15px;height:15px;transition:transform .45s cubic-bezier(.3,1.4,.5,1);
  background:linear-gradient(var(--red),var(--red)) 50%/100% 1.5px no-repeat,linear-gradient(var(--red),var(--red)) 50%/1.5px 100% no-repeat}
.faq-list details[open] summary::after{transform:rotate(135deg)}
.faq-list details p{padding:0 40px 24px 2px;font-size:16.5px;line-height:1.6;color:var(--ink-2);max-width:38em}
@supports (interpolate-size:allow-keywords){
  .faq-list{interpolate-size:allow-keywords}
  .motion .faq-list details::details-content{height:0;overflow:clip;transition:height .45s cubic-bezier(.2,.8,.2,1),content-visibility .45s allow-discrete}
  .motion .faq-list details[open]::details-content{height:auto}
}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}.faq .head{position:static;margin-bottom:26px}}

/* ---------- Et aussi : des cartes, comme celles du futur menu ---------- */
.pp .p-more{padding-top:clamp(24px,4vw,56px)}
.pcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.4vw,32px)}
.pcard{position:relative;display:grid;justify-items:center;align-content:start;text-align:center;gap:10px;height:100%;padding:clamp(34px,3.6vw,48px) 22px clamp(28px,3vw,40px);border-radius:18px;background:var(--card);
  box-shadow:inset 0 0 0 8px var(--card),inset 0 0 0 9px rgba(179,18,46,.3),0 24px 40px -30px rgba(27,17,21,.45);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s}
.pcard:hover,.pcard:focus-visible{transform:translateY(-8px) rotate(-1.2deg);box-shadow:inset 0 0 0 8px var(--card),inset 0 0 0 9px rgba(179,18,46,.6),0 36px 50px -30px rgba(27,17,21,.5)}
.pcards li:nth-child(2) .pcard:hover,.pcards li:nth-child(2) .pcard:focus-visible{transform:translateY(-8px) rotate(1deg)}
.pcard .su{position:absolute;font:500 19px/1 var(--serif);color:var(--ink)}
.pcard .su.r{color:var(--red)}
.pcard .su.a{left:20px;top:18px}
.pcard .su.b{right:20px;bottom:18px;transform:rotate(180deg)}
.pcard svg{width:96px;height:60px;margin-bottom:4px}
.pcard:hover svg{animation:pg-wiggle .9s ease-in-out}
.calm .pcard:hover svg{animation:none}
.pcard b{font:italic 400 clamp(26px,2.3vw,32px)/1.05 var(--serif)}
.pcard p{font-size:15px;line-height:1.5;color:var(--ink-2);max-width:18em}
.pcard small{margin-top:4px;font:800 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
@media (max-width:760px){
  .pcards{grid-template-columns:1fr;gap:14px}
  .pcard{grid-template-columns:auto 1fr;justify-items:start;text-align:left;column-gap:18px;row-gap:6px;padding:22px 24px}
  .pcard svg{grid-row:span 3;align-self:center;width:72px;height:45px;margin:0}
  .pcard .su{display:none}
}
.pp .contact .info{align-content:start}
.pp .contact h2{font-size:clamp(40px,5.2vw,78px)}


/* ---------- Les guirlandes : chaque page a la sienne au-dessus de sa photo ---------- */
.bunting text{font-family:var(--serif)}
.motion .bunting .bl{transform-box:fill-box;transform-origin:50% 100%;animation:bl-in 1s cubic-bezier(.3,1.4,.5,1) calc(.4s + var(--i) * .09s) backwards,bl-bob calc(3.2s + var(--i) * .35s) ease-in-out calc(1.6s + var(--i) * .2s) infinite alternate}
@keyframes bl-in{from{opacity:0;transform:translateY(60px) scale(.6)}}
@keyframes bl-bob{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(2deg)}100%{transform:translateY(-2px) rotate(-2deg)}}
.motion .bunting .glow{animation:glow calc(2.4s + var(--i) * .3s) ease-in-out infinite alternate}
@keyframes glow{from{opacity:.55}to{opacity:1}}

/* ---------- Les blocs propres à chaque page ---------- */
.bl{background:var(--paper-2)}
.bl .head{margin-bottom:clamp(30px,3.4vw,46px)}
.bl .head h2{font-size:clamp(38px,4.4vw,62px)}
.bl-sub{margin:clamp(36px,4vw,56px) 0 18px;font:800 12.5px/1 var(--sans);letter-spacing:.17em;text-transform:uppercase;color:var(--mute)}
.bl-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(16px,2.6vw,34px);align-items:start}
.bl-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.bl-note{margin:14px 0 0;font:italic 400 14px/1.5 var(--serif);color:var(--mute)}
@media (max-width:899px){.bl-grid,.bl-grid.two{grid-template-columns:1fr}}
.box{position:relative;padding:clamp(22px,2.6vw,32px);border-radius:20px;background:var(--card);box-shadow:0 30px 60px -46px rgba(27,17,21,.5)}
.box::before{content:"";position:absolute;inset:9px;border:1px solid rgba(179,18,46,.16);border-radius:13px;pointer-events:none}
.box h3{margin:0 0 12px;font:italic 400 clamp(22px,2vw,27px)/1.15 var(--serif)}
.box p,.box li{font-size:15px;line-height:1.55;color:var(--ink-2)}
.box ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.box li{position:relative;padding-left:22px}
.box li::before{content:"✦";position:absolute;left:0;top:2px;font-size:11px;color:var(--red)}
.box .more{margin-top:16px}
.chip{display:inline-flex;align-items:center;padding:8px 13px;border-radius:999px;background:var(--card);border:1px solid var(--line);font:600 13.5px/1 var(--sans);color:var(--ink)}
/* les tickets fixes : une formule, son prix, pour qui */
.tks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:14px}
.tk.st{cursor:default;align-content:start}
.tk.st:hover{transform:none;box-shadow:none}
.tk-f{grid-column:1/-1;margin:0;font:italic 400 14.5px/1.45 var(--serif);color:var(--mute)}
.tk-a{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:10px;margin-top:4px;font:800 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.tk.st .tk-n,.tk.st .tk-p,.tk.st .tk-t{margin:0}
.tk.st .tk-n{flex-direction:column;align-items:flex-start;gap:7px}
@media (max-width:899px){
  .tk.st{grid-template-columns:1fr auto;justify-items:stretch;text-align:left;gap:8px 16px;padding:20px 20px 18px}
  .tk.st .tk-t{display:block}
  .tk.st .tk-n b{font-size:24px}
  .tk.st .tk-p{font-size:24px;justify-self:end}
}

/* Mariages : les trois moments, comme trois actes */
.mo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 clamp(20px,2.6vw,34px);padding:0;list-style:none}
.mo-c{position:relative;display:grid;gap:10px;align-content:start;padding:26px 24px 24px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.mo-c svg{width:84px;height:52px}
.mo-c .n{position:absolute;top:16px;right:20px;font:italic 500 42px/1 var(--serif);color:rgba(179,18,46,.16)}
.mo-c b{font:italic 400 clamp(23px,2vw,28px)/1.1 var(--serif)}
.mo-c p{margin:0;font-size:15px;line-height:1.55;color:var(--ink-2)}
@media (max-width:899px){.mo{grid-template-columns:1fr}}

/* Entreprises : la grille horaire, en marches d'escalier */
.gr{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(20px,3vw,48px);align-items:end;padding:clamp(22px,3vw,38px);border-radius:24px;background:var(--card);box-shadow:0 40px 70px -48px rgba(27,17,21,.5);position:relative}
.gr::before{content:"";position:absolute;inset:10px;border:1px solid rgba(179,18,46,.16);border-radius:16px;pointer-events:none}
.gr-bars{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1vw,12px);align-items:end;height:clamp(220px,24vw,300px)}
.gr-b{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%;padding:0;border:0;background:none;color:var(--ink);font:inherit;cursor:pointer}
.gr-b i{display:block;width:100%;height:calc(var(--h) / 6 * 74%);min-height:20px;border-radius:10px 10px 4px 4px;background:linear-gradient(180deg,#EADFCF,#DCC9B0);
  transition:background .35s,transform .45s cubic-bezier(.3,1.4,.5,1),height .8s cubic-bezier(.2,.8,.2,1) calc(var(--h) * 60ms)}
.gr-b .gr-p{font:500 clamp(14px,1.35vw,19px)/1 var(--serif);white-space:nowrap;transition:color .3s}
.gr-b b{font:800 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.gr-b:hover i{transform:translateY(-4px)}
.gr-b[aria-pressed="true"] i{background:linear-gradient(180deg,#D02341,var(--red))}
.gr-b[aria-pressed="true"] .gr-p{color:var(--red)}
.gr-b.top .gr-p::before{content:"★ ";color:var(--butter)}
.motion .gr:not(.in) .gr-b i{height:14px}
.gr-read{display:grid;gap:10px;align-content:end;justify-items:start}
.gr-read p{margin:0}
.gr-top{padding:6px 11px;border-radius:999px;background:var(--butter);font:800 9.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.gr-h{font:italic 400 clamp(28px,3vw,42px)/1 var(--serif)}
.gr-pr{font:500 clamp(40px,4.6vw,66px)/1 var(--serif);color:var(--red)}
.gr-n{font-size:15px;line-height:1.5;color:var(--ink-2)}
.gr-sup{font:italic 400 14px/1.4 var(--serif);color:var(--mute)}
.gr-read .btn{margin-top:8px}
.gr-anim{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:18px;border-top:1px solid var(--line)}
.gr-anim .k{margin-right:6px;font:800 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.gr-anim .chip{background:var(--paper)}
@media (max-width:899px){.gr{grid-template-columns:1fr;align-items:stretch}.gr-bars{height:210px}.gr-b .gr-p{font-size:13px}}

/* Écoles : apprendre, s'entraîner, présenter */
.at{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none}
.at li{position:relative;display:grid;justify-items:center;align-content:start;gap:10px;padding:0 clamp(14px,2vw,30px);text-align:center}
.at li + li::before{content:"";position:absolute;left:-26px;top:36px;width:52px;height:2px;background:repeating-linear-gradient(90deg,var(--red) 0 5px,transparent 5px 10px)}
.at .num{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1px solid rgba(179,18,46,.35);box-shadow:0 0 0 8px var(--paper-2);font:italic 500 30px/1 var(--serif);color:var(--red)}
.at b{font:italic 400 clamp(22px,2vw,27px)/1.1 var(--serif)}
.at p{margin:0;max-width:18em;font-size:15px;line-height:1.55;color:var(--ink-2)}
.gains{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin:clamp(28px,3.4vw,44px) 0}
.gains .k{margin-right:6px;font:800 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
@media (max-width:760px){.at{grid-template-columns:1fr;gap:26px}.at li + li::before{left:50%;top:-22px;width:2px;height:18px;background:repeating-linear-gradient(180deg,var(--red) 0 4px,transparent 4px 8px)}}

/* Déco ballons : les formes possibles, puis des décors réels */
.dz{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 clamp(26px,3vw,42px);padding:0;list-style:none}
.dz li{display:grid;justify-items:center;gap:8px;padding:20px 10px 16px;border-radius:16px;background:var(--card);border:1px solid var(--line);text-align:center;transition:transform .4s cubic-bezier(.3,1.4,.5,1),box-shadow .35s}
.dz li:hover{transform:translateY(-5px) rotate(-1.5deg);box-shadow:0 18px 30px -22px rgba(27,17,21,.45)}
.dz li:nth-child(even):hover{transform:translateY(-5px) rotate(1.5deg)}
.dz svg{width:80px;height:50px}
.dz b{font:italic 400 19px/1.1 var(--serif)}
.mas{columns:4 200px;column-gap:14px;margin:0 0 clamp(26px,3vw,42px)}
.mas figure{break-inside:avoid;margin:0 0 14px}
.mas .ph{aspect-ratio:var(--ar,4/5);border-radius:18px;background:var(--bg) center/cover;border:5px solid var(--card);box-shadow:0 22px 36px -28px rgba(27,17,21,.5)}
@media (max-width:760px){.dz{grid-template-columns:repeat(2,minmax(0,1fr))}.mas{columns:2 140px}}

/* Jeux en bois : 24 h ou week-end, les prix changent */
.lc-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 30px;margin-bottom:20px}
.lc-jeux{display:flex;flex-wrap:wrap;gap:8px;max-width:760px}
.lc-jeux .bl-note{flex-basis:100%;margin-top:4px}
.lc-sw{position:relative;display:inline-flex;padding:4px;border-radius:999px;background:var(--card);border:1px solid var(--line)}
.lc-sw::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--red);transition:transform .5s cubic-bezier(.3,1.3,.5,1)}
.lc-sw[data-d="we"]::before{transform:translateX(100%)}
.lc-sw button{position:relative;z-index:1;flex:1;min-width:112px;padding:11px 18px;border:0;border-radius:999px;background:none;color:var(--ink-2);font:800 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:color .3s}
.lc-sw button[aria-checked="true"]{color:var(--card)}
.lc-packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 clamp(20px,2.6vw,34px);padding:0;list-style:none}
.lc-p{position:relative;display:grid;justify-items:center;align-content:start;gap:6px;padding:22px 16px 20px;border-radius:18px;background:var(--card);border:1px solid var(--line);text-align:center}
.lc-p svg{width:84px;height:52px;margin-bottom:4px}
.lc-p b{font:italic 400 clamp(21px,1.9vw,26px)/1.1 var(--serif)}
.lc-p small{font:800 11.5px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.lc-price{margin-top:8px;font:500 clamp(30px,3vw,40px)/1 var(--serif);color:var(--red);perspective:300px}
.lc-per{font:italic 400 14px/1.2 var(--serif);color:var(--mute)}
.lc-p p{margin:6px 0 0;font-size:13.5px;line-height:1.45;color:var(--ink-2)}
.motion .lc-price.flip{animation:flip .5s cubic-bezier(.3,1.3,.5,1)}
@keyframes flip{0%{transform:rotateX(0)}45%{transform:rotateX(90deg);opacity:.2}100%{transform:none}}
.lc-ph{margin:0;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--bg) center/cover;border:6px solid var(--card);box-shadow:0 30px 46px -32px rgba(27,17,21,.45)}
@media (max-width:899px){.lc-packs{grid-template-columns:repeat(2,minmax(0,1fr))}.lc-ph{aspect-ratio:4/3}}

/* Barbe à papa : avec lui, ou sans lui */
.bb{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.4vw,30px)}
.bb-c{position:relative;display:grid;gap:14px;align-content:start;padding:clamp(24px,3vw,40px);border-radius:24px;background:var(--card);box-shadow:0 40px 70px -48px rgba(27,17,21,.5)}
.bb-c::before{content:"";position:absolute;inset:10px;border:1px solid rgba(179,18,46,.16);border-radius:16px;pointer-events:none}
.bb-c.alt{background:linear-gradient(160deg,#FFEFF5 0%,var(--card) 55%)}
.bb-c .k{margin:0;font:800 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.bb-h{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0;padding-bottom:14px;border-bottom:1px solid var(--line)}
.bb-h b{font:italic 400 clamp(28px,2.8vw,38px)/1 var(--serif)}
.bb-h span{font:500 clamp(28px,2.8vw,38px)/1 var(--serif);color:var(--red);white-space:nowrap}
.bb-c ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.bb-c li{position:relative;padding-left:24px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.bb-c li::before{content:"";position:absolute;left:2px;top:6px;width:10px;height:6px;border-left:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(-45deg)}
.bb-c .btn{justify-self:start;margin-top:6px}
@media (max-width:760px){.bb{grid-template-columns:1fr}}

/* ---------- Pages Tarifs et Contact ---------- */
.pp main > .tarifs.page,.pp main > .contact:first-child{padding-top:clamp(124px,14vw,176px)}
.pg-h h1{font:500 clamp(44px,5.6vw,80px)/1 var(--serif);letter-spacing:-.01em}
.pg-h h1 em{color:var(--red);font-weight:400}
.contact h1{font:500 clamp(46px,6.6vw,100px)/.94 var(--serif);letter-spacing:-.03em;text-wrap:balance}
.contact h1 em{color:var(--red);font-weight:400}
.pp .contact h1{font-size:clamp(40px,5.2vw,78px)}
.pp .choix .deck{--cw:clamp(94px,9vw,136px);--R:clamp(460px,50vw,780px)}

/* ---------- Le modèle commun : « Au programme » ---------- */
.pr{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none}
.pr-c{position:relative;display:grid;gap:8px;align-content:start;padding:24px 22px 22px;border-radius:18px;background:var(--card);border:1px solid var(--line)}
.pr-c svg{width:80px;height:50px}
.pr-c b{font:italic 400 clamp(22px,1.9vw,27px)/1.1 var(--serif)}
.pr-c p{margin:0;font-size:15px;line-height:1.55;color:var(--ink-2)}
.pr-n{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(179,18,46,.35);font:italic 500 22px/1 var(--serif);color:var(--red)}
.pr.mini .pr-c{justify-items:center;text-align:center;padding:20px 12px 16px}
.pr.mini .pr-c b{font-size:19px}
.boxes{display:grid;gap:14px}
.tk-l{grid-column:1/-1;margin:2px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.tk-l li{display:flex;align-items:baseline;gap:8px;font-size:14px}
.tk-l li span:first-child{font:500 15px/1.3 var(--serif)}
.tk-l em{font:700 12.5px var(--sans);color:var(--red);font-style:normal}
.tk-l i{flex:1;border-bottom:1.5px dotted rgba(27,17,21,.28);transform:translateY(-4px)}
.tk-l li span:last-child{font:500 15px var(--serif);white-space:nowrap}
@media (max-width:899px){.pr{grid-template-columns:1fr}.pr.mini{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Confidentialité : un texte court, lisible, avec l'essentiel à côté ---------- */
.legal{padding-block:clamp(130px,14vw,190px) clamp(70px,8vw,120px)}
.legal-h{display:grid;gap:16px;justify-items:start;max-width:760px;margin-bottom:clamp(40px,5vw,64px)}
.legal-h h1{margin:0;font:500 clamp(52px,7.4vw,108px)/.95 var(--serif);letter-spacing:-.03em}
.legal-h p{margin:0;font-size:17.5px;color:var(--ink-2);max-width:36em}
.legal-h .legal-maj{font-size:13.5px;color:var(--mute)}
.legal-grid{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.legal-bref{position:sticky;top:110px;display:grid;gap:16px;padding:clamp(22px,2.6vw,30px);border-radius:22px;background:var(--card);border:1px solid var(--line)}
.legal-bref-t{margin:0;font:italic 600 22px/1.1 var(--serif)}
.legal-bref-t span{color:var(--red);font-style:normal;font-size:14px;vertical-align:3px}
.legal-bref ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.legal-bref li{position:relative;padding-left:18px;font-size:15px;line-height:1.5;color:var(--ink-2)}
.legal-bref li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;border-radius:50%;background:var(--red)}
.legal-bref .btn{justify-self:start}
.legal-txt{max-width:680px}
.legal-txt h2{margin:42px 0 12px;font:500 clamp(26px,2.4vw,32px)/1.15 var(--serif)}
.legal-txt h2:first-child{margin-top:0}
.legal-txt p,.legal-txt li{font-size:16.5px;line-height:1.7;color:var(--ink-2)}
.legal-txt p{margin:0 0 12px}
.legal-txt ul{margin:0 0 12px;padding-left:20px}
.legal-txt a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.todo{padding:1px 6px;border-radius:6px;background:#FCE9DC;border:1px dashed var(--red);color:var(--red-2);font-weight:600}
@media (max-width:899px){.legal-grid{grid-template-columns:1fr}.legal-bref{position:static}}

/* ---------- 404 : la page a disparu, comme une carte escamotée ---------- */
.perdu{padding-block:clamp(130px,14vw,190px) clamp(10px,2vw,30px);text-align:center}
.perdu .wrap{display:grid;justify-items:center;gap:18px}
.perdu-num{display:flex;align-items:center;margin-bottom:clamp(14px,2vw,26px);gap:clamp(10px,2vw,24px);font:500 clamp(110px,17vw,230px)/.85 var(--serif);letter-spacing:-.04em;color:var(--ink)}
.perdu-card{position:relative;width:.62em;height:.86em;perspective:900px}
.perdu-back{position:absolute;inset:0;border-radius:.07em;border:.03em solid var(--card);box-shadow:0 30px 40px -24px rgba(27,17,21,.55);
  background:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%2274 0 697 676%22 fill=%22%23FBF6EE%22%3E%3Cg class=%22m-r%22 fill-rule=%22evenodd%22%3E%3Cpath d=%22M 155.000 654.142 L 155.000 646.283 165.750 645.700 C 171.662 645.379 178.570 644.457 181.099 643.651 C 198.245 638.190 211.930 624.309 216.167 608.081 C 217.755 601.999 217.889 589.507 217.942 443.246 L 218.000 284.992 226.250 278.867 C 246.500 263.833 284.731 240.555 316.254 224.065 L 332.000 215.828 332.017 406.664 C 332.036 616.579 331.693 604.769 338.168 618.000 C 341.943 625.711 351.145 635.261 358.675 639.281 C 365.829 643.100 377.909 646.000 386.660 646.000 L 394.000 646.000 394.000 654.000 L 394.000 662.000 274.500 662.000 L 155.000 662.000 155.000 654.142 Z M 638.000 661.639 C 576.892 654.495 525.181 621.900 487.331 566.668 C 476.936 551.500 472.442 543.915 450.201 504.012 C 423.547 456.191 412.177 440.616 395.673 429.319 C 382.095 420.024 370.160 415.859 353.750 414.687 L 345.000 414.063 345.000 407.999 L 345.000 401.273 362.250 400.737 C 377.060 400.278 381.126 399.780 391.000 397.218 C 423.404 388.811 448.073 371.074 463.107 345.375 C 475.881 323.538 481.854 297.671 480.735 269.025 C 479.661 241.515 472.266 220.532 458.120 204.859 C 430.211 173.937 382.515 177.121 304.000 215.146 C 255.179 238.790 216.964 264.112 189.691 290.888 C 167.904 312.279 159.978 326.923 159.360 346.931 C 159.182 352.669 158.691 357.695 158.269 358.101 C 155.225 361.022 129.500 361.913 119.087 359.459 C 90.873 352.808 80.001 326.433 94.981 300.978 C 116.707 264.058 200.916 213.820 289.134 185.148 C 383.908 154.346 466.083 151.631 520.750 177.497 C 554.979 193.692 578.576 223.475 584.047 257.389 C 585.987 269.415 584.814 291.357 581.588 303.384 C 571.317 341.676 540.471 372.528 493.500 391.487 C 473.811 399.434 440.679 406.965 425.178 407.015 C 422.605 407.024 419.825 407.467 419.000 408.000 C 417.873 408.656 418.371 408.878 421.000 408.891 C 435.229 408.962 461.210 415.634 480.500 424.171 C 506.215 435.551 525.970 451.360 542.304 473.629 C 553.656 489.107 557.228 495.041 582.831 540.974 C 594.992 562.791 607.929 584.937 611.581 590.187 C 628.970 615.185 648.365 631.041 669.500 637.537 C 679.635 640.651 695.820 641.066 705.500 638.459 C 722.455 633.893 735.006 622.992 737.527 610.641 C 738.692 604.937 736.399 598.913 730.914 593.262 C 725.226 587.402 724.901 585.551 728.923 581.924 C 733.834 577.497 741.402 578.512 748.335 584.527 C 755.145 590.435 756.500 593.754 756.500 604.532 C 756.500 613.612 756.350 614.273 752.820 620.759 C 742.323 640.045 720.051 653.949 690.000 659.976 C 682.618 661.457 646.359 662.616 638.000 661.639 Z%22/%3E%3C/g%3E%3Cg class=%22m-hat%22%3E%3Cpath d=%22M 173.978 212.750 C 159.931 183.748 137.212 156.793 112.239 139.500 C 97.289 129.148 96.764 126.212 107.809 114.724 C 147.592 73.346 230.178 33.339 308.586 17.463 C 321.996 14.748 343.094 14.065 350.453 16.109 C 356.451 17.774 360.690 22.577 361.441 28.560 C 362.530 37.233 368.079 60.094 372.229 73.000 C 378.365 92.083 383.787 105.501 394.988 129.329 C 400.619 141.307 405.063 151.229 404.863 151.378 C 404.664 151.527 399.100 152.205 392.500 152.885 C 324.650 159.873 249.863 184.683 186.000 221.389 C 183.525 222.812 181.034 223.981 180.464 223.988 C 179.894 223.995 176.975 218.938 173.978 212.750 Z%22/%3E%3Cpath class=%22m-band%22 fill=%22%23B2122E%22 d=%22M 174.228 213.488 C 171.353 207.706 169.004 202.419 169.008 201.738 C 169.012 201.057 170.025 199.993 171.258 199.373 C 172.491 198.753 183.625 193.046 196.000 186.691 C 236.505 165.890 270.404 152.210 316.824 137.932 C 342.448 130.051 382.791 120.000 388.803 120.000 C 390.195 120.000 392.408 123.772 397.931 135.556 C 401.940 144.112 405.059 151.233 404.860 151.381 C 404.662 151.528 399.100 152.205 392.500 152.885 C 324.650 159.873 249.863 184.683 186.000 221.389 C 183.525 222.812 181.040 223.981 180.478 223.988 C 179.916 223.995 177.103 219.270 174.228 213.488 Z%22/%3E%3C/g%3E%3C/svg%3E") 50% 50%/46% auto no-repeat,repeating-linear-gradient(45deg,rgba(255,215,195,.13) 0 2px,transparent 2px 9px),repeating-linear-gradient(-45deg,rgba(255,215,195,.13) 0 2px,transparent 2px 9px),#9E1028;
  transform:rotate(-8deg)}
.motion .perdu-back{animation:perdu-flip 5.5s cubic-bezier(.5,0,.3,1) infinite}
@keyframes perdu-flip{0%,62%{transform:rotate(-8deg) rotateY(0)}74%{transform:rotate(4deg) rotateY(90deg) scale(.96);opacity:.15}86%,100%{transform:rotate(-8deg) rotateY(0);opacity:1}}
.perdu h1{margin:0;font:500 clamp(42px,6vw,84px)/1 var(--serif);letter-spacing:-.02em}
.perdu h1 em{color:var(--red);font-weight:400}
.perdu p{margin:0;max-width:34em;font-size:17.5px;color:var(--ink-2)}
.perdu-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px}

/* ---------- Les photos en vraies images (thème WordPress) : elles remplissent le cadre comme les fonds de la maquette ---------- */
.p-hero-ph .ph,.gal .ph{position:relative;overflow:hidden}
.ph > img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
