/* ==========================================================
   Boxe Libre Académie : thème WordPress
   Charte : noir #050505 · or #F5B942 · or chaud #F3B459
   Contrastes vérifiés : or/noir 11,6:1 · gris/noir 7:1 · or foncé/noir 6,3:1
   ========================================================== */

@font-face{font-family:"Cinzel";font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cinzel-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Cinzel";font-style:normal;font-weight:700 900;font-display:swap;src:url(../fonts/cinzel-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Red Hat Display";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/red-hat-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Red Hat Display";font-style:normal;font-weight:500 600;font-display:swap;src:url(../fonts/red-hat-display-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Red Hat Display";font-style:normal;font-weight:700 900;font-display:swap;src:url(../fonts/red-hat-display-latin-700-normal.woff2) format("woff2")}

:root{
  --black:#050505;
  --ink:#0b0a08;
  --ink-2:#12100c;
  --line:rgba(245,185,66,.22);
  --gold:#F5B942;
  --gold-2:#F3B459;
  --gold-deep:#b9862a;
  --gold-pale:#ffe2a3;
  --text:#f2f2f2;
  --muted:#a9a397;
  --soft:#c9c2b4;
  --danger:#ff8a7a;
  --ok:#9be28f;
  --grad:linear-gradient(100deg,#b9862a 0%,#F5B942 30%,#ffe2a3 50%,#F3B459 70%,#b9862a 100%);
  --serif:"Cinzel",Georgia,serif;
  --sans:"Red Hat Display",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.7,0,.2,1);
  --gutter:clamp(16px,4vw,56px);
  --radius:22px;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:90px;overflow-x:clip}
body{margin:0;background:var(--black);color:var(--text);font-family:var(--sans);font-size:17px;line-height:1.65;overflow-x:clip;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
::selection{background:var(--gold);color:#000}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}
main:focus{outline:none}
.container{width:100%;max-width:1320px;margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(80px,12vw,180px) 0;position:relative}
/* Accueil : espaces entre les grands blocs réduits à la demande du client (divisés par deux une seconde fois) */
.home .section{padding-top:clamp(28px,3.25vw,50px);padding-bottom:clamp(28px,3.25vw,50px)}
.home .pillars{padding:clamp(28px,3.25vw,50px) 0}
.section--tight{padding:clamp(60px,8vw,110px) 0}
/* Accueil : moins d'espace entre la bande jaune et la section L'Académie (demande du client). */
.marquee+.manifesto.section{padding-top:clamp(40px,6vw,90px)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-100px;z-index:1000;padding:12px 18px;background:var(--gold);color:#000;font-weight:700;border-radius:8px}
.skip-link:focus{top:12px}
.small{font-size:14px;color:var(--muted)}
.small a{color:var(--soft);text-decoration:underline;text-underline-offset:3px}

/* ---------- Type ---------- */
.eyebrow{display:flex;align-items:center;gap:14px;font:600 12px/1.3 var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin:0 0 28px}
.eyebrow.center{justify-content:center}
.eyebrow .line{width:42px;height:1px;background:var(--gold);opacity:.6;flex:none}
.h2{font:600 calc(clamp(38px,6vw,88px) * var(--fs-h2,1))/1.04 var(--serif);letter-spacing:-.01em;margin:0 0 32px;text-transform:uppercase}
.h3{font:600 clamp(26px,3vw,40px)/1.15 var(--serif);text-transform:uppercase;margin:0 0 24px}
.h4{font:600 15px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:32px 0 12px}
.gold-italic{font-family:var(--serif);font-style:normal;font-weight:700;background:var(--grad);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:goldflow 6s linear infinite}
@keyframes goldflow{to{background-position:-200% 0}}
.lead{font-size:calc(clamp(17px,1.4vw,20px) * var(--fs-text,1));color:var(--soft);max-width:620px;margin:0 0 24px}
.lead.center{margin:0 auto;text-align:center}
.link-arrow{color:var(--gold);font-weight:600;border-bottom:1px solid var(--line);padding-bottom:2px}
.link-arrow::after{content:" →"}
.link-arrow:hover{border-color:var(--gold)}

/* ---------- Buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;border-radius:100px;font:700 13px/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;overflow:hidden;isolation:isolate;transition:color .4s var(--ease);text-align:center;margin:4px 6px 4px 0}
.btn span{position:relative;z-index:2;pointer-events:none}
.btn--sm{min-height:44px;padding:0 20px;font-size:11px}
.btn--gold{background:var(--grad);background-size:200% 100%;color:#000;box-shadow:0 10px 40px -10px rgba(245,185,66,.55)}
.btn--gold::before{content:"";position:absolute;inset:0;background:#fff;transform:translateY(101%);transition:transform .45s var(--ease);z-index:1;border-radius:inherit}
.btn--gold:hover::before,.btn--gold:focus-visible::before{transform:none}
.btn--ghost{border:1px solid rgba(245,185,66,.6);color:var(--gold)}
.btn--ghost::before{content:"";position:absolute;inset:0;background:var(--gold);transform:scale(0);border-radius:inherit;transition:transform .45s var(--ease);z-index:1}
.btn--ghost:hover,.btn--ghost:focus-visible{color:#000}
.btn--ghost:hover::before,.btn--ghost:focus-visible::before{transform:scale(1.02)}

/* ---------- Nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:24px;padding:14px var(--gutter);transition:transform .5s var(--ease)}
/* Le flou est porté par un pseudo-élément : un backdrop-filter sur .nav piégerait le menu mobile en position fixe. */
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(5,5,5,.55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .3s}
.nav.is-scrolled::before{background:rgba(5,5,5,.9);border-bottom:1px solid var(--line)}
.nav.is-hidden{transform:translateY(-110%)}
.nav__brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-height:44px;flex-shrink:0;white-space:nowrap} /* nowrap : « Boxe Libre » restait sur deux lignes dans Opera */
.nav__brand img{width:46px}
.nav__brand span{font:600 15px/1 var(--serif);letter-spacing:.06em;color:var(--gold);text-transform:uppercase;display:flex;flex-direction:column;gap:4px}
.nav__brand small{font:500 9px/1 var(--sans);letter-spacing:.42em;color:var(--gold-pale)}
.nav__menu{display:flex;align-items:center;gap:20px}
.nav__links{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav__links>li{position:relative;display:flex;align-items:center}
.nav__links a{display:block;padding:12px 8px;font:500 14px/1.2 var(--sans);white-space:nowrap;letter-spacing:.04em;color:#e0dbd0;transition:color .3s}
.nav__links a:hover,.nav__links a[aria-current],.nav__links .is-current>a{color:var(--gold)}
.sub-toggle{width:24px;height:44px;margin-left:-6px;display:grid;place-items:center;color:var(--gold)}
.sub-toggle svg{width:11px;transition:transform .3s}
.sub-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.sub-menu{list-style:none;margin:0;padding:10px;position:absolute;top:100%;left:0;min-width:270px;background:var(--ink-2);border:1px solid var(--line);border-radius:16px;box-shadow:0 30px 60px -20px rgba(0,0,0,.8);display:none}
.sub-menu a{padding:10px 12px;border-radius:10px}
.sub-menu a:hover{background:rgba(245,185,66,.08)}
.has-sub.is-open>.sub-menu{display:block}
@media (hover:hover) and (min-width:1241px){.has-sub:hover>.sub-menu{display:block}}
.nav__actions{display:flex;align-items:center;gap:12px}
/* Sélecteur de langue : cibles de 44 px, focus visible hérité de :focus-visible */
/* Sélecteur de langue : bouton compact et liste déroulante, pour 2 langues comme pour 10 */
.lang{position:relative}
.lang__toggle{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:100px;background:transparent;color:var(--text);font:600 12px/1 var(--sans);letter-spacing:.14em;cursor:pointer;transition:border-color .2s,color .2s}
.lang__toggle:hover,.lang__toggle[aria-expanded="true"]{border-color:var(--gold);color:var(--gold)}
.lang__globe{width:16px;height:16px}
.lang__chev{width:10px;height:8px;transition:transform .2s}
.lang__toggle[aria-expanded="true"] .lang__chev{transform:rotate(180deg)}
.lang__list{position:absolute;right:0;top:calc(100% + 8px);z-index:60;min-width:190px;margin:0;padding:6px;list-style:none;background:var(--ink-2);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px rgba(0,0,0,.55)}
.lang__list[hidden]{display:none}
.lang__list a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;padding:0 12px;border-radius:9px;color:var(--soft);font-size:15px;letter-spacing:0}
.lang__list a:hover,.lang__list a:focus-visible{background:rgba(245,185,66,.1);color:var(--text)}
.lang__list a[aria-current]{color:var(--gold)}
.lang__list small{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--muted)}
.lang__list a[aria-current] small{color:var(--gold)}
@media (max-width:1240px){.lang__list{position:static;margin-top:8px;box-shadow:none}}
.nav__foot{display:none}
.burger{display:none;width:48px;height:48px;position:relative;z-index:101}
.burger i{position:absolute;left:12px;right:12px;height:1.5px;background:var(--gold);transition:transform .4s var(--ease)}
.burger i:nth-of-type(1){top:19px}.burger i:nth-of-type(2){top:28px}
.burger[aria-expanded="true"] i:nth-of-type(1){transform:translateY(4.5px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-of-type(2){transform:translateY(-4.5px) rotate(-45deg)}
@media (max-width:1240px){
  .burger{display:block}
  .nav__menu{position:fixed;inset:0;z-index:100;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:24px;padding:96px var(--gutter) 32px;background:var(--ink);overflow-y:auto;visibility:hidden;opacity:0;transition:opacity .3s,visibility .3s}
  .nav__menu.is-open{visibility:visible;opacity:1}
  .nav__links{flex-direction:column;gap:0}
  .nav__links>li{flex-wrap:wrap;border-bottom:1px solid var(--line)}
  .nav__links>li>a{flex:1 1 0;min-width:0;font:600 clamp(18px,5.2vw,32px)/1.2 var(--serif);text-transform:uppercase;padding:14px 0;white-space:normal;overflow-wrap:break-word} /* flex-basis 0 + min-width 0 : la flèche du sous-menu reste sur la même ligne que le libellé */
  .sub-toggle{width:48px;height:48px}
  .sub-menu{position:static;display:none;width:100%;background:none;border:0;box-shadow:none;padding:0 0 12px 12px;min-width:0}
  .sub-menu a{font-size:17px;padding:10px 0;white-space:normal;overflow-wrap:break-word} /* les libellés longs (allemand…) passent à la ligne au lieu de déborder */
  .nav__actions{flex-direction:column;align-items:flex-start}
  .nav__foot{display:flex;flex-direction:column;gap:6px;margin-top:auto;color:var(--gold)}
  .nav__foot a{padding:8px 0}
}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;padding:120px var(--gutter) 140px;background:radial-gradient(ellipse 80% 60% at 50% 38%,#1c150a 0%,#0a0806 55%,#050505 100%)}
.hero__embers{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.hero__glow{position:absolute;width:70vmax;height:70vmax;left:50%;top:40vh;pointer-events:none;translate:-50% -50%;background:radial-gradient(circle,rgba(245,185,66,.2),transparent 60%);z-index:0;animation:breathe 7s ease-in-out infinite}
@keyframes breathe{50%{opacity:.55;scale:1.08}}
.hero__rings{position:absolute;left:50%;top:40vh;translate:-50% -50%;z-index:0}
.hero__rings span{position:absolute;left:50%;top:50%;border:1px solid rgba(245,185,66,.1);border-radius:50%;translate:-50% -50%;animation:spin 60s linear infinite}
.hero__rings span:nth-child(1){width:52vmin;height:52vmin;border-style:dashed}
.hero__rings span:nth-child(2){width:84vmin;height:84vmin;animation-direction:reverse;animation-duration:90s}
.hero__rings span:nth-child(3){width:124vmin;height:124vmin}
.hero__rings span:nth-child(2)::before{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 20px 4px rgba(245,185,66,.6)}
@keyframes spin{to{rotate:360deg}}
.hero__content{position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center}
.hero__emblem{width:clamp(140px,17vw,240px);margin-bottom:14px;filter:drop-shadow(0 20px 60px rgba(245,185,66,.25))}
.hero__eyebrow{justify-content:center;margin-bottom:26px;font-size:11px}
.hero__title{margin:0;font:700 calc(clamp(36px,6.4vw,104px) * var(--fs-hero,1))/1 var(--serif);text-transform:uppercase;letter-spacing:-.015em}
.hero__title .split{display:block}
.hero__title .gold-italic{font-size:1.08em;line-height:1.08;padding-bottom:.06em}
.hero__lead{max-width:560px;margin:26px auto 0;color:var(--soft);font-size:clamp(16px,1.3vw,19px)}
.hero__cta{display:flex;gap:10px;margin-top:34px;flex-wrap:wrap;justify-content:center}
.hero__meta{position:absolute;bottom:30px;z-index:3;margin:0;font:500 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.hero__meta--l{left:var(--gutter)}.hero__meta--r{right:var(--gutter)}
@media (max-width:640px){.hero__meta{display:none}.hero__cta{width:100%;max-width:360px}.hero__cta .btn{width:100%}.hero__eyebrow .line{display:none}.hero__eyebrow{letter-spacing:.2em}}

/* ---------- Marquee ---------- */
.marquee{position:relative;z-index:5;background:var(--grad);background-size:200% 100%;color:#000;overflow:hidden;padding:18px 0;transform:rotate(-1.5deg) scale(1.04);margin:40px 0 20px;box-shadow:0 20px 60px -20px rgba(245,185,66,.4)}
.marquee__track{display:flex;width:max-content;align-items:center;gap:40px;animation:marquee 28s linear infinite}
.marquee span{font:700 calc(clamp(22px,3vw,40px) * var(--fs-marquee,1))/1 var(--serif);text-transform:uppercase;white-space:nowrap}
.marquee b{font-size:22px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Manifesto ---------- */
.manifesto__text{font:500 calc(clamp(26px,4vw,58px) * var(--fs-manifesto,1))/1.22 var(--sans);letter-spacing:-.02em;margin:0;max-width:1180px;color:var(--muted)}
.manifesto__text .w{transition:color .3s}
.manifesto__text .w.on{color:var(--text)}
.manifesto__text .w.on.hl{color:var(--gold)}
.manifesto__note{margin:48px 0 0;max-width:640px;color:var(--soft);font-size:18px;border-left:2px solid var(--gold);padding-left:20px}

/* ---------- Axes (ex-piliers) ---------- */
.pillars{position:relative;padding:clamp(80px,10vw,130px) 0;background:linear-gradient(180deg,var(--black),var(--ink) 20%,var(--ink) 80%,var(--black))}
.pillars__head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:clamp(30px,4vw,50px)}
.pillars__end{font:700 clamp(20px,2vw,28px)/1.2 var(--serif);margin:0}
@media (min-width:641px){.pillars__end{white-space:nowrap}}
.pcard__tags{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.pcard__tags li{font:500 11px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:9px 13px;border:1px solid var(--line);border-radius:100px;color:var(--gold-pale)}
/* Barre d'onglets : numéro, titre et jauge de progression */
.pillars__bar{display:flex;align-items:stretch;gap:12px;margin-bottom:18px}
.pillars__tabs{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(6px,1vw,14px)}
.ptab{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:44px;padding:14px 4px 16px;text-align:left;color:var(--soft);cursor:pointer;transition:color .3s}
.ptab__num{font:600 12px/1 var(--sans);letter-spacing:.2em;color:var(--gold);opacity:.6}
.ptab__title{font:700 clamp(14px,1.6vw,22px)/1.1 var(--serif);text-transform:uppercase;letter-spacing:.03em}
.ptab__line{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--line);overflow:hidden;border-radius:2px}
.ptab__line i{display:block;height:100%;width:100%;background:var(--grad);transform-origin:left;transform:scaleX(0)}
.ptab.is-done .ptab__line i{transform:scaleX(1)}
.ptab:hover,.ptab[aria-selected="true"]{color:var(--white,#fff)}
.ptab[aria-selected="true"] .ptab__num{opacity:1}
.ptab:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.pillars__play{flex:none;align-self:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--gold);transition:border-color .3s,background .3s}
.pillars__play:hover{border-color:var(--gold);background:rgba(245,185,66,.08)}
.pillars__play svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.pillars__play .i-play{fill:currentColor;stroke-width:1.5}
.pillars__play .i-play,.pillars__play[aria-pressed="true"] .i-pause{display:none}
.pillars__play[aria-pressed="true"] .i-play{display:block}
html:not(.js) .pillars__bar{display:none}
/* Scène : les panneaux se superposent, la hauteur ne saute jamais */
.pillars__stage{--mx:50%;--my:50%}
.pillars__panels{display:grid}
.ppanel{display:grid;grid-template-columns:1.05fr 1fr;border:1px solid var(--line);border-radius:28px;overflow:hidden;background:radial-gradient(600px circle at var(--mx) var(--my),rgba(245,185,66,.10),transparent 60%),linear-gradient(160deg,rgba(245,185,66,.07),rgba(255,255,255,.01) 40%,rgba(0,0,0,.2))}
.ppanel--noimg{grid-template-columns:1fr}
html:not(.js) .ppanel+.ppanel{margin-top:20px}
.js .ppanel{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .6s var(--ease),visibility 0s .6s}
.js .ppanel.is-active{visibility:visible;opacity:1;transition:opacity .6s var(--ease),visibility 0s}
.ppanel__media{position:relative;overflow:hidden;min-height:320px}
.ppanel__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.25) contrast(1.05)}
.ppanel__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(10,9,8,.85)),linear-gradient(0deg,rgba(10,9,8,.5),transparent 40%)}
.js .ppanel__media{clip-path:inset(0 100% 0 0)}
.js .ppanel.is-active .ppanel__media{clip-path:inset(0 0 0 0);transition:clip-path 1s var(--ease)}
.js .ppanel.is-active .ppanel__media img{animation:pzoom 9s linear both}
html.is-paused .ppanel__media img,.is-held .ppanel__media img{animation-play-state:paused!important}
@keyframes pzoom{from{transform:scale(1.14)}to{transform:scale(1)}}
.ppanel__body{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:clamp(30px,4vw,56px)}
.ppanel__num{position:absolute;right:clamp(16px,2vw,30px);top:0;font:700 clamp(110px,13vw,200px)/1 var(--serif);color:transparent;-webkit-text-stroke:1px rgba(245,185,66,.22);pointer-events:none}
.ppanel__icon{width:56px;height:56px;color:var(--gold)}
.ppanel h3{font:700 calc(clamp(32px,3.6vw,54px) * var(--fs-cards,1))/1 var(--serif);text-transform:uppercase;letter-spacing:.02em;color:var(--gold);margin:12px 0 0}
.ppanel p{color:var(--soft);margin:0;font-size:17px;max-width:46ch}
.ppanel .ppanel__cta{margin-top:auto;padding-top:10px}
.js .ppanel__body>*{opacity:0;transform:translateY(22px)}
.js .ppanel.is-active .ppanel__body>*{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .ppanel.is-active .ppanel__body>:nth-child(2){transition-delay:.08s}
.js .ppanel.is-active .ppanel__body>:nth-child(3){transition-delay:.16s}
.js .ppanel.is-active .ppanel__body>:nth-child(4){transition-delay:.24s}
.js .ppanel.is-active .ppanel__body>:nth-child(5){transition-delay:.32s}
.js .ppanel.is-active .ppanel__body>:nth-child(6){transition-delay:.4s}
.js .ppanel.is-active .ppanel__num{opacity:1;transform:none;transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
@media (max-width:900px){
  .ppanel{grid-template-columns:1fr}
  .ppanel__media{min-height:0;aspect-ratio:16/10}
  .ppanel__media::after{background:linear-gradient(0deg,rgba(10,9,8,.9),transparent 50%)}
  .js .ppanel__media{clip-path:inset(0 0 100% 0)}
  .ptab{padding:10px 0 14px;align-items:center}
  .ptab__num{font-size:14px}
}
@media (max-width:600px){.ptab__title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}
@media (prefers-reduced-motion:reduce){
  .js .ppanel,.js .ppanel__media,.js .ppanel__body>*{transition:none!important;animation:none!important}
  .js .ppanel.is-active .ppanel__media img{animation:none}
}

/* ---------- Discipline ---------- */
.discipline__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,8vw,140px);align-items:start}
.discipline__intro{position:sticky;top:130px}
/* Animation désactivée (réglage par défaut, case « Animation au défilement » dans l'admin) : titre non fixe, points allumés */
.discipline--static .discipline__intro{position:static}
.discipline--static .step__dot{background:var(--gold);box-shadow:0 0 0 6px rgba(245,185,66,.15),0 0 24px rgba(245,185,66,.7);transition:none}
.steps{list-style:none;margin:0;padding:0 0 0 46px;position:relative}
.steps__line{position:absolute;left:8px;top:10px;bottom:10px;width:1px;background:var(--line)}
.step{position:relative;display:grid;grid-template-columns:74px 1fr;gap:10px;padding:32px 0;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:0}
.step__dot{position:absolute;left:-44px;top:44px;width:13px;height:13px;border-radius:50%;background:var(--black);border:1px solid var(--gold);transition:background .4s,box-shadow .4s}
.step.is-on .step__dot{background:var(--gold);box-shadow:0 0 0 6px rgba(245,185,66,.15),0 0 24px rgba(245,185,66,.7)}
.step__k{font:600 30px/1.2 var(--serif);color:var(--gold)}
.step h3{font:600 calc(clamp(21px,2.1vw,28px) * var(--fs-cards,1))/1.2 var(--serif);text-transform:uppercase;margin:0 0 8px}
.step p{margin:0;color:var(--soft)}
@media (max-width:900px){.discipline__grid{grid-template-columns:1fr}.discipline__intro{position:static}.step{grid-template-columns:48px 1fr}}

/* ---------- Statement ---------- */
.statement{padding:24px 0 36px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ink)}
.statement__row{display:flex;gap:.5em;white-space:nowrap;font:700 calc(clamp(34px,6.5vw,110px) * var(--fs-statement,1))/1.1 var(--serif);text-transform:uppercase;margin:0}
.statement__row .o{color:transparent;-webkit-text-stroke:1.5px var(--gold)}
.statement__row:nth-child(2){margin-left:-18vw}

/* ---------- Audience tabs ---------- */
.tabs{position:relative;display:flex;gap:6px;flex-wrap:wrap;margin:44px 0 36px;padding:6px;border:1px solid var(--line);border-radius:100px;width:fit-content;max-width:100%}
.tab{position:relative;z-index:2;min-height:44px;padding:12px 24px;border-radius:100px;font:600 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--soft);transition:color .3s}
.tab.is-active{color:#000}
.tabs__ink{position:absolute;z-index:1;top:6px;height:calc(100% - 12px);border-radius:100px;background:var(--grad);transition:left .5s var(--ease),width .5s var(--ease),top .5s var(--ease)}
@media (max-width:640px){.tabs{border-radius:24px;display:grid;grid-template-columns:1fr 1fr;width:100%}.tab{padding:12px 8px;font-size:11px}.tabs__ink{border-radius:18px}}
.panel{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,80px);align-items:center;padding:clamp(26px,5vw,60px);border:1px solid var(--line);border-radius:28px;background:linear-gradient(135deg,rgba(245,185,66,.08),transparent 60%)}
.panel[hidden]{display:none}
.panel__big{font:700 clamp(80px,14vw,200px)/.8 var(--serif);background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.panel h3{font:600 calc(clamp(26px,3vw,42px) * var(--fs-cards,1))/1.1 var(--serif);text-transform:uppercase;margin:0 0 14px}
.panel p{color:var(--soft);margin:0 0 22px;max-width:560px}
.checks{list-style:none;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;gap:10px 26px}
.checks--col{flex-direction:column;gap:10px}
.checks li{display:flex;align-items:flex-start;gap:10px;font-weight:500}
.checks li::before{content:"";flex:none;margin-top:4px;width:18px;height:18px;border-radius:50%;background:var(--gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/11px no-repeat}
@media (max-width:640px){.panel{grid-template-columns:1fr}}

/* ---------- Instructeur ---------- */
.instructor__grid{display:grid;grid-template-columns:.8fr 1fr;gap:clamp(30px,6vw,100px);align-items:center}
.instructor__photo{margin:0;border-radius:28px;overflow:hidden;border:1px solid var(--line);aspect-ratio:2/3;max-height:80vh}
.instructor__photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:820px){.instructor__grid{grid-template-columns:1fr}.instructor__photo{max-height:none}}

/* ---------- Equipment list ---------- */
.equip__head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;margin-bottom:50px}
.equip__head .h2{margin-bottom:0}
.equip__list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.equip__list li{border-bottom:1px solid var(--line)}
.equip__list a{position:relative;display:grid;grid-template-columns:70px 1fr auto 50px;align-items:center;gap:20px;padding:24px 0;overflow:hidden}
.equip__list a::before{content:"";position:absolute;inset:0;background:var(--grad);transform:scaleY(0);transform-origin:bottom;transition:transform .5s var(--ease);z-index:0}
.equip__list a>*{position:relative;z-index:1;transition:color .3s,transform .5s var(--ease)}
.equip__list .n{font:500 13px var(--sans);color:var(--gold);letter-spacing:.2em;padding-left:14px}
.equip__list .t{font:600 calc(clamp(24px,3.8vw,56px) * var(--fs-products,1))/1.05 var(--serif);text-transform:uppercase}
.equip__list .c{font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.equip__list .arrow{font-style:normal;font-size:28px;color:var(--gold)}
.equip__list a:hover::before,.equip__list a:focus-visible::before{transform:scaleY(1);transform-origin:top}
.equip__list a:hover>*,.equip__list a:focus-visible>*{color:#000}
.equip__list a:hover .t{transform:translateX(20px)}
.equip__more{margin-top:40px}
@media (max-width:640px){.equip__list a{grid-template-columns:40px 1fr;padding:18px 0}.equip__list .c,.equip__list .arrow{display:none}.equip__list .n{padding-left:0}}

/* ---------- CTA ---------- */
.cta{overflow:hidden;text-align:center;background:radial-gradient(ellipse 70% 60% at 50% 50%,#1d160a,var(--black) 70%)}
.cta__bg{position:absolute;left:50%;top:50%;width:min(900px,120vw);translate:-50% -50%;opacity:.05;pointer-events:none}
.cta__inner{position:relative}
.cta__title{font:700 calc(clamp(44px,8.5vw,140px) * var(--fs-h2,1))/.98 var(--serif);text-transform:uppercase;margin:0 0 28px;letter-spacing:-.02em}
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:60px auto 0;max-width:1240px}
.contact--stack{grid-template-columns:1fr;margin:0}
.contact__card{position:relative;text-align:left;padding:26px 28px 30px;border:1px solid var(--line);border-radius:var(--radius);background:rgba(255,255,255,.02);display:flex;flex-direction:column;gap:8px;transition:border-color .3s,background .3s}
.contact__card small{font:600 11px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.contact__card strong{font:600 clamp(17px,1.6vw,22px)/1.3 var(--sans);word-break:break-word}
.contact__card i{position:absolute;right:22px;top:20px;font-style:normal;color:var(--gold);font-size:22px}
a.contact__card:hover,a.contact__card:focus-visible{border-color:var(--gold);background:rgba(245,185,66,.08)}
@media (max-width:820px){.contact{grid-template-columns:1fr}}

/* ---------- Pages intérieures ---------- */
.page-hero{padding:140px 0 50px;background:radial-gradient(ellipse 70% 100% at 20% 0%,#1a1409 0%,var(--black) 70%)}
/* Trait sous l'en-tête : seulement si la case « Afficher un trait sous l'en-tête » est cochée */
.has-hero-line .page-hero{border-bottom:1px solid var(--line)}
.page-hero--product{padding-bottom:10px;border-bottom:0}
.page-hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,400px);gap:clamp(30px,5vw,70px);align-items:end}
.page-hero__media{margin:0;border-radius:28px;overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line);background:#111}
.page-hero__media img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 30%}
@media (max-width:900px){.page-hero__grid{grid-template-columns:1fr;align-items:start}.page-hero__media{aspect-ratio:16/10;max-width:640px}}
/* Photo d'en-tête : format, taille et bandeau choisis dans l'encadré « Mise en page » de l'éditeur */
@media (min-width:901px){
  .page-hero__grid--large{grid-template-columns:minmax(0,1fr) minmax(280px,560px)}
  /* Paysage : la photo prend la moitié de la largeur (taille normale) ou un peu plus (grande) */
  .page-hero__grid--paysage{grid-template-columns:minmax(0,1fr) minmax(320px,1fr);align-items:center}
  .page-hero__grid--paysage.page-hero__grid--large{grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr)}
}
.page-hero__media.page-hero__media--carre{aspect-ratio:1/1}
.page-hero__media.page-hero__media--paysage{aspect-ratio:3/2}
.page-hero__media.page-hero__media--origine{aspect-ratio:auto}
.page-hero__media--origine img{height:auto}
@media (max-width:900px){.page-hero__media.page-hero__media--carre{max-width:440px}}
.page-hero--banner{position:relative;padding:0;min-height:clamp(440px,64vh,720px);display:flex;align-items:flex-end;overflow:hidden;background:#000}
.page-hero__banner{position:absolute;inset:0;margin:0}
.page-hero__banner img{display:block;width:100%;height:100%;object-fit:cover}
.page-hero__banner::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,.7) 0%,rgba(5,5,5,.25) 30%,rgba(5,5,5,.55) 60%,rgba(5,5,5,.94) 100%)}
.page-hero--banner .container{position:relative;z-index:1;width:100%;padding-top:150px;padding-bottom:50px}
.page-hero--banner .lead{color:#e8e4dc}
.page-hero--banner .crumbs a,.page-hero--banner .crumbs ol{color:#e8e4dc}
.page-hero__title{font:700 calc(clamp(34px,5.4vw,76px) * var(--fs-page,1) * var(--fs-title,1))/1.06 var(--serif);text-transform:uppercase;margin:0 0 20px;max-width:1240px;letter-spacing:-.01em}
.product .page-hero__title{font-size:calc(clamp(30px,3.6vw,52px) * var(--fs-page,1))}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 28px;padding:0;font-size:14px;color:var(--muted)}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--gold-deep)}
.crumbs a{color:var(--soft);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.crumbs a:hover{color:var(--gold)}
.page-body{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(70px,10vw,140px)}
.split-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(30px,6vw,90px);align-items:start}
.split-layout>*,.product>*,.discipline__grid>*,.instructor__grid>*{min-width:0}
.side-photo{margin:0;border-radius:24px;overflow:hidden;border:1px solid var(--line);position:sticky;top:110px}
@media (max-width:900px){.split-layout{grid-template-columns:1fr}.side-photo{position:static}}

.prose{max-width:none;font-size:calc(18px * var(--fs-text,1))}
/* Pages internes : toute la largeur par défaut, largeur de lecture si la case « Limiter la largeur du texte » est cochée */
.is-reading-width .prose{max-width:760px}
/* Texte justifié par défaut, sans coupure de mots. Un alignement choisi dans l'éditeur (bloc Paragraphe) reste prioritaire. */
.prose p:not([class*="has-text-align-"]),.prose li{text-align:justify;-webkit-hyphens:manual;hyphens:manual}
.prose h2{font:600 calc(clamp(24px,2.6vw,34px) * var(--fs-prose-h,1))/1.2 var(--serif);text-transform:uppercase;margin:52px 0 16px;color:var(--gold-pale)}
.prose h3{font:600 calc(20px * var(--fs-prose-h,1))/1.3 var(--sans);margin:36px 0 10px}
.prose p,.prose ul,.prose ol{margin:0 0 20px}
.prose ul,.prose ol{padding-left:22px}
/* Bloc « Colonnes » de l'éditeur : côte à côte sur grand écran, les unes sous les autres sur mobile */
.prose .wp-block-columns{display:flex;gap:28px;margin:0 0 24px;align-items:flex-start}
.prose .wp-block-columns.are-vertically-aligned-center{align-items:center}
.prose .wp-block-column{flex:1 1 0;min-width:0}
.prose .wp-block-column>:last-child{margin-bottom:0}
@media (max-width:781px){.prose .wp-block-columns:not(.is-not-stacked-on-mobile){flex-direction:column;gap:18px}.prose .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important;width:100%}}
.prose li{margin-bottom:8px}
.prose li::marker{color:var(--gold)}
.prose a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.prose a.btn{text-decoration:none}
.prose a.btn--gold{color:#000}
.prose a.btn--ghost{color:var(--gold)}
.prose a.btn--ghost:hover,.prose a.btn--ghost:focus-visible{color:#000}
.prose strong{color:#fff}
.prose blockquote{margin:30px 0;padding:6px 0 6px 22px;border-left:2px solid var(--gold);font-size:20px;color:var(--soft)}
.prose img{border-radius:16px}
/* Vidéos YouTube (bloc Embed) : la vignette cliquable occupe le cadre 16:9 de WordPress au lieu de s'empiler dessous (sinon grand vide au-dessus de chaque vidéo) */
.prose .wp-block-embed{margin:0 0 24px}
.prose .wp-block-embed-youtube{max-width:860px}
.wp-has-aspect-ratio .wp-block-embed__wrapper>.yt{position:absolute;inset:0;max-width:none;margin:0}
.prose details{border:1px solid var(--line);border-radius:16px;padding:0 20px;margin:0 0 12px;background:rgba(255,255,255,.02)}
.prose summary{cursor:pointer;padding:18px 0;font-weight:700;list-style-position:outside}
.prose summary::marker{color:var(--gold)}
.prose details[open]{padding-bottom:4px}
.prose--legal{font-size:16px}
.prose--legal h2{font-size:22px}

/* ---------- Cartes ---------- */
.cards{display:grid;gap:22px;margin:40px 0}
.cards--3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.cards--4{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
.card{position:relative;display:flex;flex-direction:column;gap:6px;padding:26px 26px 60px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(160deg,rgba(245,185,66,.06),rgba(255,255,255,.01) 50%);transition:border-color .3s,transform .3s var(--ease)}
.card:hover,.card:focus-within{border-color:var(--gold);transform:translateY(-3px)}
.card p{margin:0;color:var(--soft);font-size:16px}
.card__title{font:600 20px/1.3 var(--sans);margin:4px 0 6px}
.card__title a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card__kicker{font:600 11px/1.3 var(--sans)!important;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)!important}
.card__meta{font-size:15px!important}
.card__arrow{position:absolute;right:24px;bottom:20px;color:var(--gold);font-size:22px}
.card__media{margin:-26px -26px 16px;border-radius:var(--radius) var(--radius) 0 0;overflow:hidden;aspect-ratio:1;background:#eae6dd}
.card__media img{width:100%;height:100%;object-fit:cover}
.card__media--product img{object-fit:cover;padding:0} /* photo bord à bord, comme les miniatures (demande du client) */
.card__facts{margin:10px 0 0;font-size:14px}
.card__facts div{display:flex;gap:8px}
.card__facts dt{color:var(--gold)}
.card__facts dd{margin:0;color:var(--soft)}
.is-past .card{opacity:.75}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filters a{min-height:44px;display:inline-flex;align-items:center;padding:0 20px;border:1px solid var(--line);border-radius:100px;font-weight:600}
.filters a[aria-current]{background:var(--gold);color:#000;border-color:var(--gold)}
.filters--disc{margin-top:12px;align-items:center}
.filters__label{font:600 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.discipline-intro{max-width:760px;margin:32px 0 48px}
.discipline-intro~section{margin-top:56px}
.facts dd a{color:var(--gold-pale);text-decoration:underline;text-underline-offset:3px}
.real-card figcaption a,.gallery figcaption>a{display:inline-block;min-height:24px;padding:3px 0;color:var(--text);font-weight:600}
.real-card figcaption small,.gallery__city{display:block;color:var(--muted);font-size:14px}
.gallery figcaption small a{display:inline-block;min-height:24px;padding:3px 0}
.band{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;margin-top:60px;padding:36px;border:1px solid var(--line);border-radius:28px;background:linear-gradient(120deg,rgba(245,185,66,.1),transparent 60%)}
.band p{margin:0;color:var(--soft)}

/* ---------- Fiche produit ---------- */
.product{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);align-items:start;padding-bottom:40px}
.product__media{margin:0;border-radius:28px;overflow:hidden;background:#111;border:1px solid var(--line);aspect-ratio:1;position:sticky;top:100px}
.product__media img{width:100%;height:100%;object-fit:cover;padding:0} /* photo bord à bord, comme les miniatures (demande du client) */
.product__gallery{position:sticky;top:100px}
.product__gallery .product__media{position:static}
.thumbs{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 0;padding:0;list-style:none}
.thumbs button{display:block;width:72px;height:72px;padding:0;border:2px solid transparent;border-radius:12px;overflow:hidden;background:#eae6dd;cursor:pointer}
.thumbs button[aria-pressed=true]{border-color:var(--gold)}
.thumbs button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.thumbs img{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){.product{grid-template-columns:1fr}.product__media,.product__gallery{position:static}}
.table-wrap{overflow-x:auto;margin:0 0 24px}
.table{width:100%;border-collapse:collapse;font-size:16px}
.table th,.table td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.table thead th{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.table tbody th{font-weight:600}
.table--compact{max-width:520px;margin-bottom:10px}
.facts{display:grid;gap:12px;margin:28px 0}
.facts div{display:grid;grid-template-columns:120px 1fr;gap:12px}
.facts dt{color:var(--gold);font-weight:600}
.facts dd{margin:0;color:var(--soft)}
.facts--boxed{padding:24px;border:1px solid var(--line);border-radius:var(--radius);max-width:760px}
.poster{margin:0 0 30px;max-width:600px;border-radius:16px;overflow:hidden}
.steps-inline ol{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;list-style:none;counter-reset:s;padding:0;margin:0 0 50px}
.steps-inline li{counter-increment:s;padding:24px;border:1px solid var(--line);border-radius:var(--radius);color:var(--soft)}
.steps-inline li::before{content:counter(s,decimal-leading-zero);display:block;font:700 34px/1 var(--serif);color:var(--gold);margin-bottom:10px}
.steps-inline strong{color:#fff}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.gallery figure{margin:0}
.gallery img{border-radius:16px;aspect-ratio:1;object-fit:cover;width:100%}
.gallery figcaption{font-size:14px;color:var(--muted);margin-top:6px}
.gallery figcaption a{color:var(--soft);text-decoration:underline;text-underline-offset:3px}
.gallery figcaption a:hover{color:var(--gold)}
.gallery figcaption small{display:block;color:var(--muted)}
.gallery--full{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;margin-top:40px}
@media (max-width:560px){.gallery,.gallery--full{grid-template-columns:1fr 1fr;gap:12px}}
@media (max-width:360px){.gallery,.gallery--full{grid-template-columns:1fr}}
.gallery-more{margin-top:24px}
.gallery__more{display:flex;gap:6px;margin-top:8px}
.gallery__more a{display:block;width:56px;height:56px;border-radius:10px;overflow:hidden}
.gallery__more img{width:100%;height:100%;object-fit:cover;border-radius:0;aspect-ratio:auto}
.gallery__more a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ---------- Formulaires ---------- */
.bla-form{max-width:900px}
.bla-form fieldset{min-width:0;border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin:0 0 24px}
.bla-form fieldset.field{border:0;padding:0;margin:0 0 18px;border-radius:0}
.bla-form fieldset.field>legend{padding:0;margin-bottom:8px;font:600 16px/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--text)}
@media (max-width:640px){.bla-form fieldset:not(.field){padding:18px 14px}.devis-item__body{padding:6px 12px 16px}}
.bla-form legend{padding:0 8px;font:600 14px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.field{display:flex;flex-direction:column;gap:6px;margin:0 0 18px}
.field label,.field .label{font-weight:600}
.field .hint{font-size:14px;color:var(--muted);margin:0}
.field .hint--below{margin-top:6px}
.req{color:var(--gold)}
.bla-form input[type=text],.bla-form input[type=email],.bla-form input[type=tel],.bla-form input[type=number],.bla-form select,.bla-form textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:12px;border:1px solid #6f6758;background:#0f0d0a;color:var(--text);font:inherit}
.bla-form textarea{min-height:130px}
.bla-form input:focus-visible,.bla-form select:focus-visible,.bla-form textarea:focus-visible{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.bla-form input[aria-invalid=true],.bla-form select[aria-invalid=true]{border-color:var(--danger)}
.field-error{color:var(--danger);font-size:14px;font-weight:600;margin:0}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
@media (max-width:640px){.grid-2{grid-template-columns:1fr}}
.choice{display:flex;align-items:center;gap:10px;min-height:44px}
.choice input{width:22px;height:22px;accent-color:var(--gold)}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.notice{padding:18px 22px;border-radius:14px;margin:0 0 24px;font-weight:600}
.notice--ok{background:rgba(155,226,143,.12);border:1px solid var(--ok);color:#d7f5d2}
.notice--error{background:rgba(255,138,122,.1);border:1px solid var(--danger);color:#ffd9d3}
.notice ul{margin:8px 0 0;padding-left:20px;font-weight:500}
.notice a{text-decoration:underline}

/* Devis */
.devis-products{display:grid;gap:14px}
.devis-item{border:1px solid var(--line);border-radius:18px;padding:0;background:rgba(255,255,255,.02)}
.devis-item>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 18px;min-height:56px}
.devis-item>summary::-webkit-details-marker{display:none}
.devis-item>summary img{width:52px;height:52px;border-radius:10px;background:#eae6dd;object-fit:contain;padding:4px;flex:none}
.devis-item>summary .name{font-weight:700;flex:1}
.devis-item>summary .price{color:var(--gold);font-size:14px}
@media (max-width:640px){.devis-item>summary .price{order:3;flex-basis:100%;padding-left:66px}}
.devis-item>summary::after{content:"+";font-size:24px;color:var(--gold);width:24px;text-align:center}
.devis-item[open]>summary::after{content:"−"}
.devis-item.is-selected{border-color:var(--gold);background:rgba(245,185,66,.06)}
.devis-item__body{padding:6px 18px 20px}
.sizes{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}
.sizes label{display:flex;flex-direction:column;gap:4px;font-size:14px}
.sizes input{text-align:center}
.item-total{font-weight:700;margin:10px 0 0}
.item-total.is-short{color:var(--danger)}
.estimate{position:sticky;bottom:12px;z-index:5;margin:24px 0;padding:20px 24px;border-radius:20px;background:#15120c;border:1px solid var(--gold);box-shadow:0 20px 50px -20px rgba(0,0,0,.9)}
.estimate__total{font:700 clamp(24px,3vw,34px)/1.2 var(--serif);color:var(--gold);margin:4px 0}
.estimate__lines{margin:8px 0 0;padding:0;list-style:none;font-size:14px;color:var(--soft)}
.estimate p{margin:0}

/* ---------- Footer ---------- */
.footer{position:relative;overflow:hidden;border-top:1px solid var(--line);padding:0 0 30px;background:var(--black)}
.footer__giant{font:700 calc(clamp(56px,15vw,290px) * var(--fs-footer,1))/.8 var(--serif);text-transform:uppercase;text-align:center;white-space:nowrap;background:linear-gradient(180deg,rgba(245,185,66,.35),rgba(245,185,66,0) 85%);-webkit-background-clip:text;background-clip:text;color:transparent;margin:40px 0 20px;letter-spacing:-.02em}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.footer__logo{width:200px;margin-bottom:16px}
.footer__about p,.footer__about address{color:var(--soft);font-style:normal;font-size:15px;margin:0 0 12px}
.footer__title{font:600 12px/1.3 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.footer__nav ul{list-style:none;margin:0;padding:0}
.footer__nav a{display:inline-block;padding:6px 0;color:var(--soft);font-size:15px}
.footer__nav a:hover{color:var(--gold)}
.footer__row{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;color:var(--muted);padding-top:24px}
.footer__row p{margin:0}
.motion-toggle{min-height:44px;padding:0 16px;border:1px solid var(--line);border-radius:100px;color:var(--soft);font-size:13px}
.motion-toggle[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.footer__top{min-height:44px;display:inline-flex;align-items:center}
@media (max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer__grid{grid-template-columns:1fr}}

/* ---------- Apparition ---------- */
.js .reveal{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}

/* Tailles des textes : chaque calc(… * var(--fs-…,1)) suit le pourcentage choisi dans Académie > Réglages > Tailles des textes (1 = taille d'origine). */
/* ---------- Mouvement réduit ou mis en pause ---------- */
.is-paused *,.is-paused *::before,.is-paused *::after{animation-play-state:paused!important}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none}
  .manifesto__text .w{color:var(--text)}
  .motion-toggle{display:none}
}
@media print{.nav,.footer,.marquee,.hero__embers{display:none}body{background:#fff;color:#000}}

/* Devis sur mobile : estimation compacte, et jamais par-dessus le champ actif (WCAG 2.4.11) */
html:has(.estimate){scroll-padding-bottom:150px}
@media (max-width:640px){
  .estimate{padding:12px 16px}
  .estimate__lines{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
}
.manifesto__text .hl{color:var(--gold);font-weight:inherit}
/* Effet de fondu désactivé dans l'admin (Textes de l'accueil > l'Académie) : le texte est blanc d'emblée */
.manifesto__text--plain,.manifesto__text--plain .w{color:var(--text);transition:none}
.manifesto__text--plain .w.hl,.manifesto__text--plain .hl{color:var(--gold)}
/* Accueil : alignement des paragraphes choisi dans l'admin (justifié par défaut, sans coupure de mots) */
.home p.al-justify{text-align:justify;-webkit-hyphens:manual;hyphens:manual}
.home p.al-left{text-align:left}
.home p.al-center{text-align:center}
.home p.al-right{text-align:right}
/* Cours collectifs : phrase et bouton d'inscription vers le site du club, centrés */
.club-signup{margin:10px 0 36px}
.prose .club-signup p,.club-signup p{text-align:center}
.club-signup .btn{margin:4px 0}
/* YouTube : icône du menu (désactivable dans Textes de l'accueil > YouTube) */
.nav__yt{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;border:1px solid var(--line);border-radius:100px;color:var(--text);transition:border-color .2s,color .2s}
.nav__yt:hover,.nav__yt:focus-visible{border-color:var(--gold);color:var(--gold)}
.nav__yt-label{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media (max-width:1240px){.nav__yt{padding:0 16px;gap:10px}.nav__yt-label{position:static!important;width:auto;height:auto;overflow:visible;clip:auto;font:600 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase}}
/* YouTube : 4e carte de la section Contact */
.contact.contact--4{grid-template-columns:repeat(2,1fr);max-width:960px}
@media (max-width:640px){.contact.contact--4{grid-template-columns:1fr}}
/* Accueil : section Vidéos */
.videos__head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(28px,4vw,50px)}
.videos__head .h2{margin-bottom:0}
.videos__intro .lead{max-width:none}
.videos__grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;align-items:start}
.videos__grid--single{grid-template-columns:minmax(0,1fr)}
.videos__side{display:grid;gap:18px}
.videos .yt{max-width:none;margin:0}
.videos__side .yt__note{display:none}
.videos__side .yt__icon{width:52px;height:52px;font-size:19px}
@media (min-width:901px){.videos__grid{align-items:stretch}.videos__main{display:flex}.videos__main .yt{flex:1;width:100%;height:auto;aspect-ratio:auto}}
.yt-link img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px}
@media (max-width:900px){.videos__head,.videos__grid{grid-template-columns:1fr}.videos__side{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}

.nav__actions .btn--sm{white-space:nowrap}
/* Mise en page « Article » : photo en haut à droite de l'en-tête ; fil d'Ariane, titre, chapô puis texte de la page l'entourent
   (la photo déborde de l'en-tête, le texte de la page continue autour, et la fin du contenu passe dessous). */
.prose::after{content:"";display:table;clear:both}
.page-hero--article{padding-bottom:0}
.page-hero--article .lead{margin-bottom:8px}
.page-hero--article+.page-body{padding-top:clamp(16px,2vw,28px)}
.page-hero--article .page-hero__title{max-width:none}
.hero-float{float:right;position:relative;z-index:1;width:min(40%,480px);margin:0 0 24px clamp(24px,3vw,48px);border-radius:28px;overflow:hidden;border:1px solid var(--line);background:#111;aspect-ratio:4/5}
.hero-float--large{width:min(50%,640px)}
.hero-float--carre{aspect-ratio:1/1}
.hero-float--paysage{aspect-ratio:3/2;width:min(50%,620px)}
.hero-float--paysage.hero-float--large{width:min(60%,760px)}
.hero-float--origine{aspect-ratio:auto}
.hero-float img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0}
.hero-float--origine img{height:auto}
@media (max-width:700px){
  .page-hero--article .container{display:flex;flex-direction:column}
  .page-hero--article .hero-float{order:2;float:none;width:100%;margin:8px 0 0}
  .page-hero--article .hero-float--portrait{aspect-ratio:4/3}
}
/* Catalogue : espace entre l'en-tête et les filtres divisé par deux. */
.post-type-archive-bla_produit .page-body,.tax-bla_categorie .page-body{padding-top:0}
/* Pages sans photo d'en-tête : espace avant le texte divisé par deux, chapô sur toute la largeur. */
.page-hero:not(.page-hero--media):not(.page-hero--article):not(.page-hero--banner)+.page-body{padding-top:0}
.page-hero:not(.page-hero--media):not(.page-hero--article):not(.page-hero--banner) .lead{max-width:none}
/* Réalisations sur téléphone : une réalisation par ligne, miniatures qui passent à la ligne (elles élargissaient la grille). */
.gallery>figure{min-width:0}
.gallery__more{flex-wrap:wrap}
@media (max-width:560px){.gallery--full{grid-template-columns:1fr;gap:32px}}
/* Fiches produit : réalisations en petites vignettes sous les photos. */
.product__real{margin-top:22px}
.product__real-title{margin:0;font:600 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.thumbs--real{margin-top:8px}
.thumbs--real a{display:block;width:72px;height:72px;border:2px solid transparent;border-radius:12px;overflow:hidden;background:#eae6dd}
.thumbs--real a:hover{border-color:var(--gold)}
.thumbs--real a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.product__real-link{margin:10px 0 0;font-size:15px}
/* Image d'illustration du catalogue : colonne plus large, centrée en hauteur avec le titre. */
@media (min-width:901px){.page-hero__grid--illu{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center}}
@media (min-width:901px){.page-hero__grid--v-start,.page-hero__grid--v-title{align-items:start}.page-hero__grid--v-title .page-hero__media{margin-top:var(--title-top,0)}.page-hero__grid--v-end{align-items:end}}
/* Largeur de la photo d'en-tête choisie dans l'encadré Mise en page (ordinateur et tablette). */
@media (min-width:901px){.page-hero__grid[style*="--photo-w"]{grid-template-columns:minmax(0,1fr) var(--photo-w)}}
@media (min-width:701px){.hero-float[style*="--photo-w"]{width:var(--photo-w)}}
