/* ============================================================
   BOXING CERCLE BRUSSELS — Remaster 2026
   Direction artistique : TECHNO + BRUSH
   ============================================================ */

/* ---------- Fonts (auto-hébergées) ---------- */
@font-face{
  font-family:"Archivo";
  src:url("../fonts/archivo-var.woff2") format("woff2");
  font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Archivo";
  src:url("../fonts/archivo-var-italic.woff2") format("woff2");
  font-weight:100 900;font-stretch:62% 125%;font-style:italic;font-display:swap;
}
@font-face{
  font-family:"Space Mono";
  src:url("../fonts/space-mono-latin-400-normal.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Space Mono";
  src:url("../fonts/space-mono-latin-700-normal.woff2") format("woff2");
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:"Permanent Marker";
  src:url("../fonts/permanent-marker-latin-400-normal.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}

/* ---------- Tokens ---------- */
:root{
  --bg0:#04091F;          /* fond le plus profond (raccord bandeau) */
  --bg1:#071130;
  --panel:#0C1B42;
  --royal:#16256E;
  --ink:#0C1233;          /* texte sombre sur clair */
  --paper:#F5F6F8;
  --paper2:#E9EBEE;
  --cyan:#29ABE2;
  --cyan2:#45C8F5;
  --mag:#ED1E79;
  --mag2:#FF3D92;
  --yel:#F5D327;
  --txt:#EAEEfa;
  --mut:#9FACD6;
  --mut-ink:#4A5273;
  --line:rgba(158,178,230,.14);
  --line-ink:rgba(12,18,51,.14);

  --f-disp:"Archivo",system-ui,sans-serif;
  --f-mono:"Space Mono",ui-monospace,monospace;
  --f-marker:"Permanent Marker",cursive;

  --fs-hero:clamp(2.35rem,5.6vw + .6rem,5rem);
  --fs-h2:clamp(1.8rem,3.4vw + .5rem,3.2rem);
  --fs-h3:clamp(1.15rem,1.2vw + .8rem,1.5rem);
  --fs-body:clamp(.98rem,.25vw + .9rem,1.06rem);

  --pad-sec:clamp(4.5rem,9vw,8rem);
  --gutter:clamp(1.25rem,4vw,4rem);
  --maxw:1240px;
  --ease:cubic-bezier(.16,1,.3,1);
  --shadow-pop:8px 8px 0 rgba(41,171,226,.28),16px 16px 0 rgba(237,30,121,.16);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html:focus-within{scroll-behavior:smooth}
body{
  font-family:var(--f-disp);font-size:var(--fs-body);line-height:1.65;
  background:var(--bg0);color:var(--txt);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:clip;
}
img,svg,video{display:block;max-width:100%}
img[width]{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
::selection{background:var(--mag);color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:2px}

.skip-link{position:fixed;top:-100px;left:1rem;z-index:2000;background:var(--mag);color:#fff;
  padding:.6rem 1rem;font-family:var(--f-mono);font-size:.8rem;transition:top .2s}
.skip-link:focus{top:1rem}

.wrap{width:min(100% - 2*var(--gutter),var(--maxw));margin-inline:auto}

/* ---------- Texture papier / bruit ---------- */
.sec--light{
  background:
    radial-gradient(rgba(12,18,51,.05) 1px,transparent 1.4px) 0 0/26px 26px,
    linear-gradient(180deg,var(--paper),var(--paper2));
  color:var(--ink);position:relative;
}
.sec--light::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .05 0 0 0 0 .06 0 0 0 0 .15 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E")}
.sec--dark{background:var(--bg1);position:relative}
.sec--deep{background:var(--bg0);position:relative}

/* grille techno discrète sur sections sombres */
.sec--grid::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(rgba(126,150,220,.05) 1px,transparent 1px) 0 0/100% 120px,
    linear-gradient(90deg,rgba(126,150,220,.05) 1px,transparent 1px) 0 0/120px 100%;
  mask-image:linear-gradient(180deg,transparent,#000 12%,#000 88%,transparent);
}

/* ---------- Typo utilitaires ---------- */
.mono{font-family:var(--f-mono)}
.marker{font-family:var(--f-marker);font-weight:400}
.cond{font-stretch:72%;letter-spacing:.28em;text-transform:uppercase;font-weight:600}
.disp{font-stretch:118%;font-weight:800;line-height:1.04;letter-spacing:-.015em;text-transform:uppercase}

.kicker{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--f-mono);font-size:.72rem;
  letter-spacing:.32em;text-transform:uppercase;color:var(--cyan)}
.kicker::before{content:"";width:2.2rem;height:2px;background:linear-gradient(90deg,var(--mag),var(--cyan))}
.sec--light .kicker{color:var(--mag)}

.sec-head{position:relative;margin-bottom:clamp(2.2rem,5vw,3.8rem);max-width:60ch}
.sec-head h2{font-size:var(--fs-h2)}
.sec-head .idx{position:absolute;right:-.5rem;top:-1.2rem;z-index:0;pointer-events:none;
  font-family:var(--f-mono);font-weight:700;font-size:clamp(3.4rem,8vw,6.5rem);line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(158,178,230,.22)}
.sec--light .sec-head .idx{-webkit-text-stroke:1px rgba(12,18,51,.18)}
.sec-head .lead{margin-top:1rem;color:var(--mut);max-width:56ch}
.sec--light .sec-head .lead{color:var(--mut-ink)}
h1,h2,h3,h4{font-family:var(--f-disp);text-wrap:balance}
h2,h3{text-transform:uppercase;font-stretch:115%;font-weight:800;line-height:1.06;letter-spacing:-.01em}

/* soulignement brush */
.brush{position:relative;white-space:nowrap}
.brush::after{content:"";position:absolute;left:-.08em;right:-.12em;bottom:-.04em;height:.34em;z-index:-1;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 28' preserveAspectRatio='none'%3E%3Cpath d='M3 20 C40 12 78 9 118 11 C158 13 196 10 217 6 L218 13 C190 18 152 21 114 20 C76 19 38 22 5 27 Z' fill='%2329ABE2'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  opacity:.9}
.brush--mag::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 28' preserveAspectRatio='none'%3E%3Cpath d='M3 20 C40 12 78 9 118 11 C158 13 196 10 217 6 L218 13 C190 18 152 21 114 20 C76 19 38 22 5 27 Z' fill='%23ED1E79'/%3E%3C/svg%3E")}
.brush--yel::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 28' preserveAspectRatio='none'%3E%3Cpath d='M3 20 C40 12 78 9 118 11 C158 13 196 10 217 6 L218 13 C190 18 152 21 114 20 C76 19 38 22 5 27 Z' fill='%23F5D327'/%3E%3C/svg%3E")}

/* badge brush (étiquette peinte) */
.brush-tag{display:inline-block;padding:.4em 1em;font-family:var(--f-mono);font-weight:700;font-size:.72rem;
  letter-spacing:.22em;text-transform:uppercase;color:#fff;transform:rotate(-2.2deg);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 44' preserveAspectRatio='none'%3E%3Cpath d='M6 8 C40 2 90 4 150 3 L196 6 L193 34 C150 41 90 38 40 41 L4 37 Z' fill='%23ED1E79'/%3E%3C/svg%3E") center/100% 100% no-repeat}
.brush-tag--cyan{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 44' preserveAspectRatio='none'%3E%3Cpath d='M6 8 C40 2 90 4 150 3 L196 6 L193 34 C150 41 90 38 40 41 L4 37 Z' fill='%2329ABE2'/%3E%3C/svg%3E")}
.brush-tag--ink{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 44' preserveAspectRatio='none'%3E%3Cpath d='M6 8 C40 2 90 4 150 3 L196 6 L193 34 C150 41 90 38 40 41 L4 37 Z' fill='%230C1233'/%3E%3C/svg%3E")}

/* ---------- Cordes de ring (séparateur signature) ---------- */
.ropes{display:block;width:100%;height:74px;overflow:visible}
.ropes path{fill:none;stroke-linecap:round}
.ropes .r1{stroke:var(--royal);stroke-width:5}
.ropes .r2{stroke:#fff;stroke-width:4;opacity:.92}
.ropes .r3{stroke:var(--mag);stroke-width:4}
.ropes .r4{stroke:var(--cyan);stroke-width:4}
.sec--light .ropes .r2{stroke:var(--ink)}

/* ---------- Boutons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--f-mono);font-weight:700;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;
  padding:.95rem 1.5rem;transform:skewX(-6deg);transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s;
  will-change:transform}
.btn>*{transform:skewX(6deg)}
.btn .ar{transition:transform .25s var(--ease)}
.btn:hover .ar{transform:skewX(6deg) translateX(5px)}
.btn--fill{background:var(--mag);color:#fff;box-shadow:0 0 0 rgba(0,0,0,0)}
.btn--fill:hover{transform:skewX(-6deg) translate(-2px,-2px);box-shadow:6px 6px 0 rgba(41,171,226,.55)}
.btn--fill:active{transform:skewX(-6deg) translate(1px,1px);box-shadow:2px 2px 0 rgba(41,171,226,.55)}
.btn--ghost{border:1.5px solid var(--cyan);color:var(--cyan2)}
.btn--ghost:hover{background:rgba(41,171,226,.12);transform:skewX(-6deg) translate(-2px,-2px);box-shadow:6px 6px 0 rgba(237,30,121,.35)}
.btn--ink{border:1.5px solid var(--ink);color:var(--ink)}
.btn--ink:hover{background:var(--ink);color:var(--paper);transform:skewX(-6deg) translate(-2px,-2px);box-shadow:6px 6px 0 rgba(237,30,121,.45)}
.btn--big{font-size:.92rem;padding:1.15rem 2rem}

/* ---------- Header ---------- */
.header{position:fixed;inset:0 0 auto 0;z-index:900;transition:background .35s,box-shadow .35s,backdrop-filter .35s}
.header.is-scrolled{background:rgba(4,9,31,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--line)}
.header__in{display:flex;align-items:center;gap:1.5rem;padding:.8rem 0}
.header .wrap{width:min(100% - 2*clamp(1rem,3vw,2.5rem),1400px)}
.logo{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.logo img{width:46px;height:auto}
.logo__txt{line-height:1.05;text-transform:uppercase}
.logo__txt b{display:block;font-size:.98rem;font-weight:800;font-stretch:110%;letter-spacing:.06em}
.logo__txt span{display:block;font-family:var(--f-mono);font-size:.56rem;letter-spacing:.34em;color:var(--cyan)}
.nav{display:flex;align-items:center;gap:1.4rem;margin-left:auto}
.nav a:not(.btn){position:relative;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);padding:.4rem 0;transition:color .25s}
.nav a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 6' preserveAspectRatio='none'%3E%3Cpath d='M1 4 C20 2 45 2 79 3 L79 5 C50 4 20 5 1 6 Z' fill='%2329ABE2'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:not(.btn):hover,.nav a:not(.btn).is-active{color:#fff}
.nav a:not(.btn):hover::after,.nav a:not(.btn).is-active::after{transform:scaleX(1)}
.lang{display:flex;gap:.4rem;margin-left:.2rem}
.lang a{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.08em;padding:.3rem .4rem;color:var(--mut);
  transition:color .2s}
.lang a:hover{color:var(--cyan2)}
.lang a[aria-current]{color:#fff;box-shadow:inset 0 -2px 0 var(--mag)}
.mnav__foot .lang{margin:0}
.mnav__foot .lang a{font-size:.75rem}
.burger{display:none;position:relative;z-index:1001;width:44px;height:44px;flex-shrink:0}
.burger span{position:absolute;left:10px;right:10px;height:2px;background:#fff;transition:transform .35s var(--ease),opacity .25s;}
.burger span:nth-child(1){top:17px}
.burger span:nth-child(2){top:26px}
.burger.is-open span:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.burger.is-open span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}

/* menu mobile */
.mnav{position:fixed;inset:0;z-index:950;background:linear-gradient(160deg,var(--bg0) 55%,var(--royal));
  display:flex;flex-direction:column;justify-content:center;padding:6rem var(--gutter) 3rem;
  clip-path:circle(0 at calc(100% - 2.4rem) 2.4rem);transition:clip-path .55s var(--ease);visibility:hidden}
.mnav.is-open{clip-path:circle(150% at calc(100% - 2.4rem) 2.4rem);visibility:visible}
.mnav a{display:flex;align-items:baseline;gap:1rem;padding:.55rem 0;text-transform:uppercase;
  font-weight:800;font-stretch:112%;font-size:clamp(1.6rem,6vw,2.4rem);color:#fff}
.mnav a i{font-style:normal;font-family:var(--f-mono);font-weight:400;font-size:.75rem;color:var(--cyan);letter-spacing:.2em}
.mnav__foot{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1.2rem;font-family:var(--f-mono);font-size:.75rem;color:var(--mut)}
.mnav__foot a{font:inherit;color:var(--cyan2);padding:0}

/* ---------- Preloader ---------- */
.loader{position:fixed;inset:0;z-index:1500;background:var(--bg0);display:grid;place-items:center;
  transition:opacity .5s,visibility .5s}
.loader.is-done{opacity:0;visibility:hidden}
.loader__in{text-align:center}
.loader__in img{width:min(140px,30vw);margin-inline:auto;animation:loaderMark 1s var(--ease) both}
.loader__word{margin-top:1.1rem;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.5em;text-transform:uppercase;
  color:var(--mut);animation:loaderWord 1.1s .15s var(--ease) both}
.loader__bar{width:min(220px,50vw);height:2px;margin:1rem auto 0;background:var(--line);overflow:hidden}
.loader__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--mag));
  animation:loaderBar .9s .1s var(--ease) both}
@keyframes loaderMark{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:none}}
@keyframes loaderWord{from{opacity:0;letter-spacing:.9em}to{opacity:1;letter-spacing:.5em}}
@keyframes loaderBar{from{transform:translateX(-100%)}to{transform:none}}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
  padding:clamp(6.5rem,12vh,9rem) 0 0;overflow:clip;background:var(--bg0)}
.hero__media{position:absolute;inset:0;overflow:hidden;background:var(--bg0)}
.hero__media video{width:100%;height:100%;object-fit:cover;opacity:.72}
.hero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(4,9,31,.94) 0 26%,rgba(4,9,31,.62) 52%,rgba(4,9,31,.28) 78%,rgba(4,9,31,.5)),
  linear-gradient(180deg,rgba(4,9,31,.4),transparent 32%,transparent 55%,var(--bg0) 97%)}
.hero__ropes{position:absolute;right:-4%;top:8%;width:min(72vw,1150px);opacity:.85;pointer-events:none;
  mask-image:linear-gradient(90deg,transparent 0,#000 22%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.hero__glow{position:absolute;pointer-events:none;filter:blur(90px);opacity:.5;border-radius:50%}
.hero__glow--c{width:420px;height:420px;background:rgba(41,171,226,.2);top:-120px;left:-120px}
.hero__glow--m{width:380px;height:380px;background:rgba(237,30,121,.16);bottom:-80px;right:18%}
.hero .wrap{position:relative;z-index:2}
.hero__kicker{margin-bottom:1.4rem}
.hero h1{font-size:var(--fs-hero);text-transform:uppercase;font-stretch:116%;font-weight:850;line-height:1.02;
  letter-spacing:-.015em;max-width:11.5em}
.hero__lead{margin-top:1.5rem;max-width:52ch;color:var(--mut);font-size:clamp(1rem,.4vw + .95rem,1.15rem)}
.hero__cta{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.hero__offer{margin-top:1.9rem;display:inline-flex;flex-wrap:wrap;align-items:center;gap:.7rem;
  border:1px dashed rgba(245,211,39,.5);padding:.6rem 1rem;font-family:var(--f-mono);font-size:.74rem;letter-spacing:.06em}
.hero__offer b{color:var(--yel);letter-spacing:.14em}
.hero__badges{margin-top:2.6rem;display:flex;flex-wrap:wrap;gap:.55rem}
.hero__badges li{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut);border:1px solid var(--line);padding:.45rem .8rem;display:inline-flex;gap:.5rem;align-items:center}
.hero__badges li::before{content:"";width:6px;height:6px;background:var(--cyan);transform:rotate(45deg);flex-shrink:0}
.hero__badges li:nth-child(2n)::before{background:var(--mag)}
.hero__side{position:absolute;right:clamp(.6rem,2vw,2.2rem);bottom:9rem;z-index:2;display:flex;flex-direction:column;
  align-items:center;gap:1rem;font-family:var(--f-mono);font-size:.62rem;letter-spacing:.3em;color:var(--mut)}
.hero__side .vt{writing-mode:vertical-rl;text-orientation:mixed}
.hero__side::after{content:"";width:1px;height:70px;background:linear-gradient(180deg,var(--cyan),transparent)}
.hero__scroll{position:absolute;left:50%;bottom:5.6rem;transform:translateX(-50%);z-index:2;
  font-family:var(--f-mono);font-size:.6rem;letter-spacing:.4em;text-transform:uppercase;color:var(--mut);
  display:flex;flex-direction:column;align-items:center;gap:.5rem}
.hero__scroll i{width:1px;height:34px;background:var(--mut);overflow:hidden;position:relative}
.hero__scroll i::after{content:"";position:absolute;inset:0;background:var(--cyan2);transform:translateY(-100%);
  animation:scrollcue 1.8s ease-in-out infinite}
@keyframes scrollcue{40%{transform:translateY(0)}100%{transform:translateY(100%)}}
@media (max-height:1040px){.hero__scroll{display:none}}

/* marquee valeurs */
.marquee{position:relative;z-index:2;margin-top:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  overflow:clip;background:rgba(7,17,48,.6);backdrop-filter:blur(4px)}
.marquee__track{display:flex;width:max-content;animation:marquee 30s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__track span{display:inline-flex;align-items:center;gap:1.6rem;padding:.85rem 1.6rem
  .85rem 0;font-stretch:112%;font-weight:800;letter-spacing:.22em;font-size:.85rem;text-transform:uppercase;color:var(--txt);white-space:nowrap}
.marquee__track span::after{content:"";width:22px;height:14px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 14'%3E%3Cpath d='M2 1 L9 7 L2 13' fill='none' stroke='%23ED1E79' stroke-width='2.4'/%3E%3Cpath d='M11 1 L18 7 L11 13' fill='none' stroke='%2329ABE2' stroke-width='2.4'/%3E%3C/svg%3E") center/contain no-repeat}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Méthode ---------- */
.method__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.steps{position:relative;counter-reset:step}
.steps::before{content:"";position:absolute;left:1.05rem;top:.6rem;bottom:.6rem;width:2px;
  background:linear-gradient(180deg,var(--cyan),var(--mag));transform-origin:top;transform:scaleY(var(--line-p,0));transition:transform .1s linear}
.step{position:relative;padding:0 0 1.9rem 3.4rem}
.step:last-child{padding-bottom:0}
.step__n{position:absolute;left:0;top:0;width:2.15rem;height:2.15rem;display:grid;place-items:center;
  border:1.5px solid var(--cyan);color:var(--cyan2);font-family:var(--f-mono);font-weight:700;font-size:.8rem;
  background:var(--bg1);transform:rotate(45deg)}
.step__n i{font-style:normal;transform:rotate(-45deg)}
.step:nth-child(2n) .step__n{border-color:var(--mag);color:var(--mag2)}
.step h3{font-size:var(--fs-h3);margin-bottom:.35rem}
.step p{color:var(--mut);max-width:46ch}
.method__aside{display:flex;flex-direction:column;gap:1.4rem}
.def-card{position:relative;border:1px solid var(--line);background:linear-gradient(160deg,rgba(22,37,110,.5),rgba(12,27,66,.55));
  padding:1.6rem 1.7rem}
.def-card h3{display:flex;align-items:center;gap:.8rem;font-size:1.05rem;letter-spacing:.14em}
.def-card h3::before{content:"";width:.85em;height:.85em;background:var(--cyan);transform:rotate(45deg)}
.def-card.def-card--mag h3::before{background:var(--mag)}
.def-card p{margin-top:.6rem;color:var(--mut);font-size:.95rem}
.quote{position:relative;padding:1.7rem 1.7rem 1.6rem;border-left:3px solid var(--mag);background:rgba(4,9,31,.55)}
.quote p{font-style:italic;font-size:1.02rem;color:var(--txt)}
.quote cite{display:block;margin-top:.9rem;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.24em;
  text-transform:uppercase;color:var(--cyan);font-style:normal}
.method__band{margin-top:clamp(2.5rem,6vw,4.5rem);position:relative}
.method__band img{width:100%;height:clamp(200px,32vw,360px);object-fit:cover;object-position:center 30%;
  filter:saturate(.92);clip-path:polygon(0 6%,100% 0,100% 94%,0 100%)}
.method__band figcaption{position:absolute;right:1.2rem;bottom:1.6rem;font-family:var(--f-marker);
  color:#fff;font-size:clamp(1.1rem,2.4vw,1.7rem);text-shadow:0 2px 14px rgba(4,9,31,.8);transform:rotate(-2deg)}

/* ---------- Cours ---------- */
.courses{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(1.1rem,2.4vw,1.8rem)}
.course{grid-column:span 2;position:relative;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line-ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.course:nth-child(4),.course:nth-child(5){grid-column:span 3}
.course::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;z-index:1;
  background:linear-gradient(90deg,var(--royal) 0 25%,#fff 25% 50%,var(--mag) 50% 75%,var(--cyan) 75% 100%)}
.course:hover{transform:translateY(-7px) rotate(-.35deg);box-shadow:var(--shadow-pop)}
.course__media{position:relative;aspect-ratio:16/10.5;overflow:hidden;background:var(--paper2)}
.course__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.course:hover .course__media img{transform:scale(1.045)}
.course__media .idx{position:absolute;left:.9rem;bottom:.4rem;font-family:var(--f-mono);font-weight:700;
  font-size:2.6rem;color:transparent;-webkit-text-stroke:1.5px #fff;text-shadow:0 0 24px rgba(4,9,31,.35)}
.course__media .age{position:absolute;right:.8rem;top:.8rem}
.course__body{display:flex;flex-direction:column;gap:.55rem;padding:1.25rem 1.35rem 1.4rem;flex:1}
.course__body h3{font-size:1.3rem}
.course__sub{font-weight:600;color:var(--accent,var(--royal));font-size:.92rem}
.course__body p{color:var(--mut-ink);font-size:.92rem}
.course__slots{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}
.course__slots li{font-family:var(--f-mono);font-size:.68rem;letter-spacing:.05em;padding:.35rem .6rem;
  border:1px solid var(--line-ink);background:var(--paper);white-space:nowrap}
.course__slots li b{color:var(--accent,var(--royal))}
.course__foot{margin-top:auto;padding-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:.6rem}
.course__note{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut-ink)}
.course__link{font-family:var(--f-mono);font-weight:700;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);display:inline-flex;align-items:center;gap:.45rem;border-bottom:2px solid var(--accent,var(--royal));
  padding-bottom:.2rem;transition:gap .25s var(--ease),color .25s}
.course__link:hover{gap:.8rem;color:var(--accent,var(--royal))}
.course--cyan{--accent:#118ec4}
.course--royal{--accent:var(--royal)}
.course--mag{--accent:var(--mag)}
.course--ink{--accent:#0C1233}
.course--yel{--accent:#B98F00}
.courses__deco{position:absolute;pointer-events:none}

/* ---------- Bande stats ---------- */
.stats{padding:clamp(2.6rem,5vw,3.6rem) 0}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;text-align:left}
.stat{position:relative;padding-left:1.2rem;border-left:2px solid var(--line)}
.stat b{display:block;font-size:clamp(2.2rem,4.6vw,3.6rem);font-stretch:120%;font-weight:850;line-height:1;color:#fff}
.stat b small{font-size:.45em;vertical-align:.5em;color:var(--cyan2)}
.stat span{display:block;margin-top:.45rem;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mut)}
.stat:nth-child(1){border-color:var(--cyan)}
.stat:nth-child(2){border-color:#fff}
.stat:nth-child(3){border-color:var(--mag)}
.stat:nth-child(4){border-color:var(--yel)}

/* ---------- Horaires ---------- */
.week{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.day{background:var(--bg1);padding:1.1rem 1rem 1.3rem;position:relative;min-width:0}
.day--off{background:repeating-linear-gradient(-45deg,var(--bg1) 0 10px,rgba(158,178,230,.03) 10px 20px)}
.day__name{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:1rem}
.day__name b{font-stretch:112%;font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.95rem}
.day__name span{font-family:var(--f-mono);font-size:.6rem;color:var(--mut);letter-spacing:.2em}
.day.is-today{outline:1.5px solid var(--cyan);outline-offset:-1.5px}
.day__today{display:none;position:absolute;top:-.7rem;left:50%;transform:translateX(-50%) rotate(-2deg)}
.day.is-today .day__today{display:inline-block}
.slot{border-left:3px solid var(--slot,#fff);background:rgba(255,255,255,.035);padding:.65rem .75rem;margin-bottom:.6rem}
.slot time{display:block;font-family:var(--f-mono);font-weight:700;font-size:.78rem;color:#fff;letter-spacing:.04em}
.slot b{display:block;font-size:.86rem;font-weight:700;margin-top:.15rem}
.slot span{display:block;font-family:var(--f-mono);font-size:.62rem;color:var(--mut);letter-spacing:.08em;margin-top:.1rem}
.slot--junior{--slot:var(--cyan)}
.slot--next{--slot:#5A78F0}
.slot--ladies{--slot:var(--mag)}
.slot--adult{--slot:#fff}
.slot--family{--slot:var(--yel)}
.week-note{margin-top:1.6rem;display:flex;gap:.9rem;align-items:flex-start;color:var(--mut);font-size:.94rem;max-width:75ch}
.week-note::before{content:"→";font-family:var(--f-mono);color:var(--cyan2);flex-shrink:0}
.legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.4rem}
.legend li{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-mono);font-size:.64rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.legend li::before{content:"";width:12px;height:12px;background:var(--slot,#fff)}

/* ---------- Tarifs ---------- */
.prices{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.1rem,2.4vw,1.7rem);align-items:stretch}

/* frais annuels — bloc secondaire, plus petit */
.fees{margin-top:clamp(1.1rem,2.4vw,1.7rem);display:grid;grid-template-columns:auto 1fr auto;
  gap:clamp(1rem,2.6vw,2.2rem);align-items:center;background:rgba(255,255,255,.65);
  border:1px solid var(--line-ink);border-left:4px solid var(--royal);padding:1.1rem 1.4rem}
.fees__num{display:flex;align-items:baseline;gap:.3rem;line-height:1}
.fees__num b{font-size:clamp(1.8rem,3vw,2.4rem);font-stretch:120%;font-weight:900;color:var(--ink)}
.fees__num .eur{font-size:1rem;font-weight:800;color:var(--mag)}
.fees__num .per{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mut-ink)}
.fees h3{font-size:.98rem;letter-spacing:.02em}
.fees p{font-size:.86rem;color:var(--mut-ink);margin-top:.2rem;max-width:58ch}
.fees ul{display:flex;flex-wrap:wrap;gap:.4rem}
.fees li{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  border:1px solid var(--line-ink);padding:.4rem .6rem;color:var(--mut-ink);white-space:nowrap}

/* paiement annuel + t-shirt offert */
.annual{position:relative;margin-top:clamp(1.1rem,2.4vw,1.7rem);display:grid;
  grid-template-columns:auto 1fr auto;gap:clamp(1.2rem,3vw,2.4rem);align-items:center;
  background:linear-gradient(120deg,#fff,#EEF2F9);border:2px solid var(--ink);padding:1.6rem 1.6rem 1.5rem}
.annual__tag{position:absolute;top:-.95rem;left:1.2rem}
.annual__tee{width:clamp(62px,7vw,84px);height:auto;flex-shrink:0}
.annual h3{font-size:clamp(1.05rem,1.6vw,1.28rem)}
.annual p{font-size:.92rem;color:var(--mut-ink);margin-top:.45rem;max-width:62ch}
.annual p b{color:var(--ink)}
.annual__price{text-align:right;flex-shrink:0}
.annual__price b{display:block;font-size:clamp(1.5rem,2.6vw,2rem);font-stretch:118%;font-weight:900;color:var(--ink);line-height:1}
.annual__price span{display:block;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mut-ink);margin-top:.35rem}
.annual__price em{display:block;font-style:normal;font-family:var(--f-mono);font-size:.62rem;
  letter-spacing:.1em;color:var(--mag);margin-top:.3rem}
.price{position:relative;background:#fff;border:1px solid var(--line-ink);padding:1.9rem 1.7rem 1.7rem;
  display:flex;flex-direction:column;gap:.9rem;transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.price:hover{transform:translateY(-6px);box-shadow:var(--shadow-pop)}
.price--hero{border:2px solid var(--ink);background:linear-gradient(160deg,#fff,#F3F5F9)}
.price__tag{position:absolute;top:-1rem;left:1.2rem}
.price__aud{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--mut-ink)}
.price__num{display:flex;align-items:baseline;gap:.45rem;line-height:1}
.price__num b{font-size:clamp(3rem,5.5vw,4.3rem);font-stretch:122%;font-weight:900;letter-spacing:-.02em;color:var(--ink)}
.price__num .eur{font-size:1.5rem;font-weight:800;color:var(--mag)}
.price__num .per{font-family:var(--f-mono);font-size:.72rem;color:var(--mut-ink);letter-spacing:.14em;text-transform:uppercase}
.price h3{font-size:1.05rem;letter-spacing:.02em}
.price p{color:var(--mut-ink);font-size:.9rem}
.price__inc{margin-top:.2rem;display:grid;gap:.45rem}
.price__inc li{display:flex;gap:.6rem;align-items:flex-start;font-size:.9rem;color:var(--ink)}
.price__inc li::before{content:"";flex-shrink:0;width:15px;height:13px;margin-top:.28em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.5 8.5 C3 9.5 5 11.5 6 13 C8.5 8.5 11.5 4.5 15 1.5 C11 3.5 8 6 5.8 9.2 C4.5 8 3 7.5 1.5 8.5 Z' fill='%23ED1E79'/%3E%3C/svg%3E") center/contain no-repeat}
.price__foot{margin-top:auto;padding-top:.6rem;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--mut-ink)}
.tarif-notes{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.6rem}
.tarif-notes li{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--line-ink);padding:.5rem .8rem;color:var(--mut-ink);background:rgba(255,255,255,.55)}

/* offre de lancement */
.offer{margin-top:clamp(2.4rem,5vw,3.6rem);position:relative;background:var(--bg0);color:var(--txt);
  padding:clamp(1.8rem,4vw,2.8rem);overflow:clip}
.offer::before{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:radial-gradient(600px 300px at 85% 20%,rgba(237,30,121,.22),transparent 60%),
             radial-gradient(500px 260px at 10% 90%,rgba(41,171,226,.2),transparent 60%)}
.offer__in{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:center}
.offer h3{font-size:clamp(1.4rem,2.6vw,2rem)}
.offer p{margin-top:.7rem;color:var(--mut);max-width:52ch}
.offer p b{color:var(--yel)}
.offer__right{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem}
.count{display:flex;gap:.6rem}
.count div{min-width:64px;text-align:center;border:1px solid var(--line);padding:.55rem .5rem;background:rgba(7,17,48,.65)}
.count b{display:block;font-family:var(--f-mono);font-weight:700;font-size:1.5rem;color:#fff}
.count span{display:block;font-family:var(--f-mono);font-size:.56rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mut)}
.offer .marker-note{position:absolute;right:1.2rem;top:.55rem;color:var(--yel);font-size:1.1rem;transform:rotate(3deg);z-index:1}

/* stages callout */
.stages{margin-top:clamp(2.2rem,4vw,3rem);display:grid;grid-template-columns:auto 1fr auto;gap:clamp(1.2rem,3vw,2.4rem);
  align-items:center;background:#fff;border:1px dashed rgba(12,18,51,.35);padding:1.5rem 1.7rem}
.stages img{width:clamp(90px,10vw,130px);transform:rotate(-6deg)}
.stages h3{font-size:1.15rem}
.stages p{color:var(--mut-ink);font-size:.93rem;margin-top:.35rem;max-width:52ch}
.stages .marker{color:var(--mag);font-size:1rem;transform:rotate(-2deg);display:inline-block;margin-top:.4rem}

/* ---------- Rejoindre ---------- */
.join{counter-reset:jstep}
.join__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.2vw,1.6rem);position:relative}
.join__grid::before{content:"";position:absolute;left:2%;right:2%;top:1.35rem;height:2px;
  background:linear-gradient(90deg,var(--cyan),var(--mag));transform:scaleX(var(--line-p,0));transform-origin:left}
.jstep{position:relative;padding-top:3.4rem}
.jstep::before{counter-increment:jstep;content:"0" counter(jstep);position:absolute;top:0;left:0;
  width:2.7rem;height:2.7rem;display:grid;place-items:center;background:var(--paper);border:2px solid var(--ink);
  font-family:var(--f-mono);font-weight:700;font-size:.85rem;z-index:1}
.jstep::after{content:"";position:absolute;top:.45rem;left:.45rem;width:2.7rem;height:2.7rem;background:var(--cyan);z-index:0;
  transition:transform .3s var(--ease)}
.jstep:nth-child(2n)::after{background:var(--mag)}
.jstep:hover::after{transform:translate(3px,3px)}
.jstep h3{font-size:1.02rem;margin-bottom:.4rem}
.jstep p{color:var(--mut-ink);font-size:.9rem;max-width:30ch}
.jstep .mono-date{display:inline-block;margin-bottom:.35rem;font-family:var(--f-mono);font-size:.66rem;
  letter-spacing:.18em;color:var(--mag);text-transform:uppercase}

/* ---------- Bande préinscription ---------- */
.preband{position:relative;overflow:clip}
.preband__bg{position:absolute;inset:0;z-index:0;overflow:hidden;opacity:.45;
  background:url("../img/cover-dark.webp") 85% center/cover no-repeat;
  mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 22%,#000 78%,transparent)}
.preband__bg video{width:100%;height:100%;object-fit:cover}
.preband::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,var(--bg0) 14%,rgba(4,9,31,.6) 55%,rgba(4,9,31,.25))}
.preband .wrap{position:relative;z-index:2}
.preband__grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.preband h2{font-size:clamp(2rem,4.4vw,3.6rem)}
.preband .lead{margin-top:1rem;color:var(--mut);max-width:50ch}
.precard{position:relative;background:rgba(7,17,48,.85);backdrop-filter:blur(8px);border:1px solid var(--line);
  padding:1.9rem 1.8rem}
.precard::before,.precard::after{content:"";position:absolute;width:22px;height:22px;border:2px solid var(--cyan)}
.precard::before{top:-2px;left:-2px;border-right:0;border-bottom:0}
.precard::after{bottom:-2px;right:-2px;border-left:0;border-top:0}
.precard__price{display:flex;align-items:baseline;gap:.6rem}
.precard__price b{font-size:3.4rem;font-stretch:122%;font-weight:900;line-height:1;color:#fff}
.precard__price .eur{color:var(--mag2);font-size:1.6rem;font-weight:800}
.precard__price .ttc{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.2em;color:var(--mut)}
.precard ul{margin-top:1.1rem;display:grid;gap:.5rem}
.precard li{display:flex;gap:.6rem;font-size:.94rem;color:var(--txt)}
.precard li::before{content:"";flex-shrink:0;width:15px;height:13px;margin-top:.3em;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.5 8.5 C3 9.5 5 11.5 6 13 C8.5 8.5 11.5 4.5 15 1.5 C11 3.5 8 6 5.8 9.2 C4.5 8 3 7.5 1.5 8.5 Z' fill='%2345C8F5'/%3E%3C/svg%3E") center/contain no-repeat}
.precard .note{margin-top:1rem;font-size:.8rem;color:var(--mut)}
.precard .btn{margin-top:1.3rem}

/* ---------- Lieu ---------- */
.place__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem);align-items:stretch}
.place__info h3{font-size:1.3rem;margin-bottom:.4rem}
.place__info .addr{font-family:var(--f-mono);font-size:.85rem;line-height:1.8;color:var(--mut);letter-spacing:.03em}
.place__list{margin-top:1.6rem;display:grid;gap:.9rem}
.place__list li{display:flex;gap:.9rem;align-items:flex-start;color:var(--txt);font-size:.95rem}
.place__list li b{color:#fff}
.place__list .ic{flex-shrink:0;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid var(--line);color:var(--cyan2)}
.place__cta{margin-top:1.8rem;display:flex;flex-wrap:wrap;gap:.9rem}
.place__map--live{padding:0;display:block}
.place__map--live iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:saturate(.85) contrast(1.03)}
.place__map--live .coords,.place__map--live .hudx{pointer-events:none;z-index:1;
  background:rgba(4,9,31,.7);padding:.3rem .5rem}
.place__map{position:relative;border:1px solid var(--line);background:
  radial-gradient(circle at 30% 35%,rgba(41,171,226,.13),transparent 45%),
  radial-gradient(circle at 75% 70%,rgba(237,30,121,.12),transparent 45%),var(--panel);
  min-height:340px;display:grid;place-items:center;overflow:clip}
.place__map img.cerf{width:44%;opacity:.16;position:absolute}
.place__map__pin{position:relative;z-index:1;text-align:center;padding:1.2rem}
.place__map__pin .dot{width:14px;height:14px;margin:0 auto;background:var(--mag);border-radius:50%;
  box-shadow:0 0 0 0 rgba(237,30,121,.5);animation:pinpulse 2s infinite}
@keyframes pinpulse{70%{box-shadow:0 0 0 22px rgba(237,30,121,0)}100%{box-shadow:0 0 0 0 rgba(237,30,121,0)}}
.place__map__pin b{display:block;margin-top:.9rem;font-stretch:112%;text-transform:uppercase;letter-spacing:.1em}
.place__map__pin span{display:block;font-family:var(--f-mono);font-size:.68rem;letter-spacing:.2em;color:var(--mut);margin-top:.3rem}
.place__map .coords{position:absolute;left:1rem;bottom:.9rem;font-family:var(--f-mono);font-size:.6rem;
  letter-spacing:.26em;color:var(--mut)}
.place__map .hudx{position:absolute;right:1rem;top:.9rem;font-family:var(--f-mono);font-size:.6rem;letter-spacing:.26em;color:var(--mut)}

/* ---------- Coach ---------- */
.coach__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.coach__media{position:relative}
.coach__media img{clip-path:polygon(0 4%,96% 0,100% 96%,4% 100%);border:1px solid var(--line-ink);
  width:100%;aspect-ratio:4/4.4;object-fit:cover;object-position:center 26%}
.coach__media::after{content:"";position:absolute;inset:auto -14px -14px auto;width:60%;height:60%;z-index:-1;
  background:radial-gradient(rgba(12,18,51,.3) 1.5px,transparent 1.6px) 0 0/12px 12px}
.coach__media .brush-tag{position:absolute;left:1rem;bottom:1.1rem}
.quals{margin-top:1.4rem;display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.quals li{display:flex;gap:.6rem;align-items:flex-start;font-size:.92rem;color:var(--ink);
  border:1px solid var(--line-ink);background:#fff;padding:.75rem .9rem}
.quals li::before{content:"+";font-family:var(--f-mono);font-weight:700;color:var(--mag);flex-shrink:0}
.coach__quote{margin-top:1.5rem;font-family:var(--f-marker);font-size:clamp(1.05rem,1.6vw,1.3rem);
  color:var(--royal);transform:rotate(-.8deg)}
/* signature animée Coach Jérémy */
.coach__sign{margin-top:1.6rem;position:relative;display:flex;align-items:center;gap:1.1rem;overflow:hidden;
  background:#000;border:1px solid rgba(12,18,51,.25);padding:.9rem 1.2rem;min-height:96px;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.coach__sign:hover{transform:translateY(-3px);box-shadow:6px 6px 0 rgba(12,18,51,.14)}
.coach__sign video{width:min(46%,240px);height:auto;flex-shrink:0;mix-blend-mode:screen}
.coach__sign span{display:flex;flex-direction:column;gap:.15rem;color:#fff;font-family:var(--f-mono);
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase}
.coach__sign span b{font-family:var(--f-disp);font-stretch:110%;font-weight:700;font-size:.9rem;
  letter-spacing:.02em;text-transform:none;color:var(--cyan2)}
.coach__sign em{font-style:normal;display:inline-flex;align-items:center;gap:.4rem}
.coach__sign i{font-style:normal;color:var(--mag2)}
.assist{margin-top:1.4rem;display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;justify-content:space-between;
  background:var(--ink);color:var(--txt);padding:1.4rem 1.6rem}
.assist h3{font-size:1.05rem;letter-spacing:.04em}
.assist p{color:var(--mut);font-size:.9rem;margin-top:.25rem;max-width:52ch}

/* ---------- Partenaires ---------- */
.partners{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2.2vw,1.5rem)}
.partner{background:#fff;border:1px solid var(--line-ink);padding:1.5rem 1.5rem 1.4rem;display:flex;
  flex-direction:column;gap:.7rem;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.partner:hover{transform:translateY(-5px);box-shadow:8px 8px 0 rgba(12,18,51,.08)}
.partner img{height:64px;width:auto;align-self:flex-start;object-fit:contain}
.partner .ph{height:64px;display:grid;place-items:center;align-self:flex-start;padding:0 1rem;
  border:1px solid var(--line-ink);font-stretch:115%;font-weight:850;letter-spacing:.06em;color:var(--royal)}
.partner .ph--fed{background:var(--ink);color:#fff;border-color:var(--ink);gap:.4rem;
  display:inline-flex;align-items:center;font-size:1.02rem}
.partner .ph--fed i{font-style:normal;color:var(--mag2)}
.partner__logo--dark{height:64px;width:auto;object-fit:contain;background:#000;padding:.5rem .9rem;
  border:1px solid var(--line-ink)}
.partner h3{font-size:1rem}
.partner p{font-size:.88rem;color:var(--mut-ink)}
.partner a{margin-top:auto;font-family:var(--f-mono);font-size:.7rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink);display:inline-flex;gap:.45rem;align-items:center}
.partner a:hover{color:var(--mag)}
.feds{margin-top:2rem;border-top:1px solid var(--line-ink);padding-top:1.6rem;display:grid;
  grid-template-columns:1.2fr repeat(3,1fr);gap:1.2rem;align-items:start}
.feds p{font-size:.9rem;color:var(--mut-ink);max-width:34ch}
.fed{border-left:2px solid var(--cyan);padding-left:1rem}
.fed b{display:block;font-size:.95rem;color:var(--ink)}
.fed span{display:block;font-family:var(--f-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mut-ink);margin-top:.2rem}
.fed a{font-family:var(--f-mono);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mag);display:inline-block;margin-top:.5rem}
.sponsor{margin-top:1.6rem;border:1px dashed rgba(12,18,51,.4);padding:1.2rem 1.5rem;display:flex;
  flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;background:rgba(255,255,255,.5)}
.sponsor p{font-size:.92rem;color:var(--mut-ink)}
.sponsor p b{color:var(--ink)}

/* ---------- FAQ ---------- */
.faq{max-width:860px}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;align-items:baseline;gap:1.1rem;padding:1.25rem .2rem;cursor:pointer;list-style:none;
  transition:color .25s}
.faq summary::-webkit-details-marker{display:none}
.faq summary .qi{font-family:var(--f-mono);font-size:.72rem;color:var(--cyan);flex-shrink:0}
.faq summary h3{font-size:1.06rem;font-weight:700;text-transform:none;letter-spacing:0;font-stretch:100%;flex:1}
.faq summary .plus{flex-shrink:0;position:relative;width:16px;height:16px;align-self:center}
.faq summary .plus::before,.faq summary .plus::after{content:"";position:absolute;background:var(--mag2);
  transition:transform .35s var(--ease)}
.faq summary .plus::before{left:0;right:0;top:7px;height:2px}
.faq summary .plus::after{top:0;bottom:0;left:7px;width:2px}
.faq details[open] summary .plus::after{transform:scaleY(0)}
.faq details[open] summary h3{color:var(--cyan2)}
.faq .a{overflow:hidden}
.faq .a p{padding:0 0 1.4rem 2.6rem;color:var(--mut);max-width:65ch}
.faq__more{margin-top:1.8rem;font-size:.95rem;color:var(--mut)}
.faq__more a{color:var(--cyan2);border-bottom:1px solid currentColor}

/* ---------- Contact ---------- */
.contact__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,4rem);align-items:start}
.c-info h3{font-size:1.2rem;margin-bottom:1.2rem}
.c-list{display:grid;gap:1rem}
.c-list a.big{font-family:var(--f-mono);font-weight:700;font-size:clamp(1.1rem,2vw,1.4rem);color:#fff;
  letter-spacing:.02em;border-bottom:2px solid var(--cyan);padding-bottom:.25rem;display:inline-block;width:max-content;max-width:100%;
  transition:color .25s,border-color .25s;overflow-wrap:anywhere}
.c-list a.big:hover{color:var(--cyan2)}
.c-list .lbl{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);
  display:block;margin-bottom:.35rem}
.socials{display:flex;gap:.7rem;margin-top:1.6rem;flex-wrap:wrap}
.socials a{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);padding:.55rem .85rem;
  font-family:var(--f-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);
  transition:color .25s,border-color .25s,transform .25s}
.socials a:hover{color:#fff;border-color:var(--mag);transform:translateY(-2px)}
.c-side-note{margin-top:2rem;padding:1.1rem 1.2rem;border-left:3px solid var(--yel);background:rgba(245,211,39,.06);
  font-size:.9rem;color:var(--mut)}
.c-side-note b{color:var(--yel)}

.form-card{position:relative;background:var(--paper);color:var(--ink);padding:clamp(1.5rem,3.4vw,2.4rem)}
.form-card::before,.form-card::after{content:"";position:absolute;width:26px;height:26px;border:2.5px solid var(--mag)}
.form-card::before{top:-2.5px;left:-2.5px;border-right:0;border-bottom:0}
.form-card::after{bottom:-2.5px;right:-2.5px;border-left:0;border-top:0}
.form-card .fhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1.5rem}
.form-card .fhead b{font-family:var(--f-mono);letter-spacing:.24em;font-size:.78rem}
.form-card .fhead span{font-family:var(--f-mono);font-size:.62rem;letter-spacing:.2em;color:var(--mut-ink)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.field{display:flex;flex-direction:column;gap:.35rem}
.field--full{grid-column:1/-1}
.field label{font-family:var(--f-mono);font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mut-ink)}
.field label b{color:var(--mag)}
.field input,.field select,.field textarea{
  font:inherit;color:var(--ink);background:#fff;border:1px solid rgba(12,18,51,.25);
  padding:.8rem .9rem;border-radius:0;transition:border-color .25s,box-shadow .25s;width:100%}
.field textarea{min-height:110px;resize:vertical}
.field select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1 L6 6.5 L11 1' fill='none' stroke='%23ED1E79' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:12px;padding-right:2.4rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(41,171,226,.22)}
.checks{grid-column:1/-1;display:grid;gap:.7rem;margin-top:.3rem}
.check{display:flex;gap:.75rem;align-items:flex-start;cursor:pointer;font-size:.9rem;color:var(--ink)}
.check input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:19px;height:19px;margin-top:.12em;
  border:2px solid var(--ink);background:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s,border-color .2s}
.check input:checked{border-color:var(--mag);background:var(--mag)}
.check input:checked::after{content:"";width:12px;height:10px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 14'%3E%3Cpath d='M1.5 8.5 C3 9.5 5 11.5 6 13 C8.5 8.5 11.5 4.5 15 1.5 C11 3.5 8 6 5.8 9.2 C4.5 8 3 7.5 1.5 8.5 Z' fill='white'/%3E%3C/svg%3E") center/contain no-repeat}
.check input:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.check.check--hl{border:1px dashed rgba(237,30,121,.5);padding:.75rem .85rem;background:rgba(237,30,121,.05)}
.check small{display:block;color:var(--mut-ink);font-size:.78rem;margin-top:.15rem}
.hp{position:absolute !important;left:-9999px !important;opacity:0;pointer-events:none}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-top:.6rem}
.form-note{font-size:.78rem;color:var(--mut-ink);max-width:38ch}
.form-status{grid-column:1/-1;display:none;font-family:var(--f-mono);font-size:.8rem;padding:.9rem 1rem}
.form-status.is-err{display:block;background:rgba(237,30,121,.1);border:1px solid var(--mag);color:#8f0f49}
.form-status a{text-decoration:underline}
.form-success{display:none;text-align:center;padding:2.5rem 1rem}
.form-success img{width:110px;margin:0 auto 1.2rem}
.form-success h3{font-size:1.4rem}
.form-success p{color:var(--mut-ink);margin-top:.6rem}
.bcb-form.is-success .fgrid,.bcb-form.is-success .fhead{display:none}
.bcb-form.is-success .form-success{display:block}
.btn[disabled]{opacity:.55;pointer-events:none}

/* ---------- Footer ---------- */
.footer{background:var(--bg0);border-top:1px solid var(--line);padding:3.5rem 0 2rem;position:relative}
.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem}
.footer__brand img{width:150px}
.footer__brand p{margin-top:1.1rem;font-size:.85rem;color:var(--mut);max-width:30ch}
.footer h4{font-family:var(--f-mono);font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:1rem}
.footer ul{display:grid;gap:.5rem}
.footer ul a{font-size:.9rem;color:var(--mut);transition:color .2s}
.footer ul a:hover{color:#fff}
.footer__bar{margin-top:3rem;padding-top:1.4rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;
  gap:1rem;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:.62rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.totop{display:inline-flex;align-items:center;gap:.5rem;color:var(--mut)}
.totop:hover{color:var(--cyan2)}

/* ---------- Page préinscription ---------- */
.pre-hero{padding:clamp(7rem,14vh,9.5rem) 0 clamp(2.5rem,5vw,3.5rem);position:relative;overflow:clip}
.pre-hero .hero__ropes{top:-20%;opacity:.5}
.pre-hero h1{font-size:clamp(2rem,4.6vw,3.6rem);text-transform:uppercase;font-stretch:116%;font-weight:850;line-height:1.04}
.pre-hero .lead{margin-top:1rem;color:var(--mut);max-width:56ch}
.pre-grid{display:grid;grid-template-columns:7fr 5fr;gap:clamp(2rem,4.5vw,3.5rem);align-items:start}
.pre-aside{position:sticky;top:6.5rem;display:grid;gap:1.4rem}
.ministeps{display:grid;gap:.9rem;background:rgba(7,17,48,.7);border:1px solid var(--line);padding:1.4rem 1.5rem}
.ministeps li{display:flex;gap:.9rem;align-items:flex-start;font-size:.9rem;color:var(--mut)}
.ministeps li b{color:#fff;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.1em;flex-shrink:0;margin-top:.15em}
.back-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--f-mono);font-size:.7rem;
  letter-spacing:.2em;text-transform:uppercase;color:var(--mut)}
.back-link:hover{color:var(--cyan2)}

/* ---------- Reveals ---------- */
[data-rv]{opacity:0;transform:translateY(26px)}
[data-rv].in{opacity:1;transform:none;transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-rv][data-rv-d="1"].in{transition-delay:.08s}
[data-rv][data-rv-d="2"].in{transition-delay:.16s}
[data-rv][data-rv-d="3"].in{transition-delay:.24s}
[data-rv][data-rv-d="4"].in{transition-delay:.32s}
[data-rv][data-rv-d="5"].in{transition-delay:.4s}
html.no-js [data-rv],html.reduced [data-rv]{opacity:1;transform:none}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  .courses{grid-template-columns:repeat(2,1fr)}
  .course,.course:nth-child(4),.course:nth-child(5){grid-column:span 1}
  .week{grid-template-columns:repeat(5,minmax(180px,1fr));overflow-x:auto;scroll-snap-type:x mandatory}
  .week::-webkit-scrollbar{height:8px}
  .week::-webkit-scrollbar-thumb{background:var(--royal)}
  .day{scroll-snap-align:start}
  .partners{grid-template-columns:repeat(2,1fr)}
  .feds{grid-template-columns:1fr 1fr}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:940px){
  .nav{display:none}
  .burger{display:block;margin-left:auto}
  .method__grid,.offer__in,.preband__grid,.place__grid,.coach__grid,.contact__grid,.pre-grid{grid-template-columns:1fr}
  .pre-aside{position:static}
  .fees,.annual{grid-template-columns:1fr;gap:1rem;text-align:left}
  .annual__price{text-align:left}
  .annual__tee{display:none}
  .join__grid{grid-template-columns:1fr 1fr;gap:2rem 1.4rem}
  .join__grid::before{display:none}
  .stats__grid{grid-template-columns:repeat(2,1fr);gap:2rem 1.2rem}
  .hero__side{display:none}
  .stages{grid-template-columns:1fr;text-align:left}
  .stages img{display:none}
  .coach__grid{gap:2.2rem}
}
@media (max-width:640px){
  .courses{grid-template-columns:1fr}
  .prices{grid-template-columns:1fr}
  .fgrid{grid-template-columns:1fr}
  .quals{grid-template-columns:1fr}
  .partners{grid-template-columns:1fr}
  .feds{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
  .hero__scroll{display:none}
  .count div{min-width:56px}
  .hero h1{font-size:clamp(2.1rem,9.4vw,2.9rem)}
  .form-card .fhead b{letter-spacing:.14em;font-size:.72rem}
}

/* ---------- Motion réduit ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__media video,.preband__bg video{display:none}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;
    transition-duration:.01ms !important}
  .marquee__track{animation:none;flex-wrap:wrap}
  [data-rv]{opacity:1 !important;transform:none !important}
  .loader{display:none}
}

/* ---------- Print ---------- */
@media print{
  .header,.mnav,.loader,.hero__scroll,.marquee,.totop{display:none !important}
  body{background:#fff;color:#000}
}
