/* ====== Reset minimal ====== */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
img{max-width:100%;display:block;height:auto}
:root{
  --bg:#0d0f12;
  --fg:#e8e8ea;
  --muted:#b1b5c0;
  --accent:#c0392b;
  --surface:#15181d;
  --card:#1a1e24;
  --ring:#2b313b;
  --title:#fff;
  --text:#e8e8ea;
  --ok:#2ecc71;
  --accent-2:#e74c3c;

  --shadow-1:0 8px 24px rgba(0,0,0,.35);
  --shadow-2:0 14px 46px rgba(0,0,0,.50);
  --ease:cubic-bezier(.22,.61,.36,1);
}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Arial,sans-serif;background:var(--bg);color:var(--fg);line-height:1.6}

/* ====== Header ====== */
.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:linear-gradient(180deg,rgba(0,0,0,.75),rgba(0,0,0,0));backdrop-filter:saturate(1.2) blur(8px)}
.brand{display:flex;align-items:center;gap:.6rem}
.logo{border-radius:.5rem}
.brand-title{font-weight:700;letter-spacing:.5px}
.nav-toggle{display:none;background:transparent;border:1px solid var(--ring);color:var(--fg);padding:.4rem .6rem;border-radius:.6rem}
.menu{display:flex;gap:1rem;list-style:none;margin:0;padding:0}
.menu a{color:var(--fg);text-decoration:none;padding:.4rem .6rem;border-radius:.5rem}
.menu a:hover{background:var(--surface)}
.menu .cta{background:var(--accent);color:#fff}
.menu .cta:hover{filter:brightness(1.1)}
.audio-toggle{margin-left:.5rem;border:1px solid var(--ring);background:var(--card);color:var(--fg);padding:.4rem .6rem;border-radius:.6rem}

/* ====== Accessibility ====== */
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;background:var(--accent);color:#fff;padding:.5rem;border-radius:.5rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ====== Hero ====== */
.hero{
  position:relative;min-height:60vh;display:grid;place-items:center;
  background:none;          /* <- on enlève le fond de base */
  overflow:hidden;          /* évite tout débordement du calque parallax */
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,0) 40%);
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(80% 55% at 50% 46%, rgba(0,0,0,.40) 0%, rgba(0,0,0,.70) 55%, rgba(0,0,0,.82) 100%);
}
.hero-inner{position:relative;text-align:center;max-width:65rem;padding:4rem 1rem}
.hero-inner::before{
  content:"";position:absolute;inset:-12% -10%;pointer-events:none;z-index:-1;border-radius:1.2rem;
  background:radial-gradient(60% 40% at 50% 35%, rgba(0,0,0,.68), rgba(0,0,0,0) 70%);
  filter:blur(8px);
}

/* === Titre hero — Bebas Neue (blanc net) === */
.hero h1{
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  text-transform:uppercase;letter-spacing:.03em;line-height:.95;text-wrap:balance;
  font-size:clamp(3.4rem,8.2vw,7rem);
  color:#fff;
  -webkit-text-stroke:.9px rgba(0,0,0,.75);
  text-shadow:0 2px 0 rgba(0,0,0,.9),0 24px 48px rgba(0,0,0,.65);
}
.hero h1 .mark{ color:inherit; }

/* Boost discret pendant les éclairs */
body.fx-flash .hero h1,.body-flash .hero h1{
  color:#fff;
  text-shadow:0 2px 0 rgba(0,0,0,.95),0 0 10px rgba(255,255,255,.35),0 0 20px rgba(255,255,255,.18);
  filter:drop-shadow(0 0 14px rgba(255,255,255,.2));
}

/* On garde un seul CTA dans le hero */
.hero p,.hero .hero-actions{display:none!important}

/* ====== Sections ====== */
.section{padding:3rem 1rem}
.features .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.card{background:var(--card);border:1px solid var(--ring);padding:1rem;border-radius:1rem}
.parallax{min-height:40vh;background:url('assets/banner_ea.jpg') center/cover fixed;display:grid;place-items:center;position:relative}
.parallax .overlay{position:relative;background:rgba(0,0,0,.45);padding:1rem 1.2rem;border-radius:1rem;border:1px solid var(--ring)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.shot{background:var(--card);border:1px solid var(--ring);border-radius:1rem;overflow:hidden}
.shot img{aspect-ratio:16/9;object-fit:cover}
.cta-wrap{text-align:center}

/* ====== Footer ====== */
.site-footer{padding:2rem 1rem;border-top:1px solid var(--ring);text-align:center;color:var(--muted)}

/* ====== CTA unique “Nous rejoindre” (hero) ====== */
.hero .hero-cta{margin-top:1rem;display:flex;justify-content:center}
.btn{display:inline-block;padding:.75rem 1rem;border-radius:.8rem;text-decoration:none;border:1px solid var(--ring);transition:transform .15s ease}
.btn:hover{transform:translateY(-1px)}

.btn-join{
  --join-accent:#c0392b;
  --join-bg1:#ff6b5f;
  --join-bg2:#c0392b;
  --join-text:#fff;
  position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  text-transform:uppercase;letter-spacing:.08em;font-weight:800;
  font-size:clamp(1rem,2.6vw,1.4rem);
  padding:clamp(.9rem,2.2vw,1.15rem) clamp(1.4rem,4vw,2rem);
  border-radius:999px;color:var(--join-text);
  background:linear-gradient(180deg,var(--join-bg1),var(--join-bg2));
  border:2px solid transparent;
  box-shadow:0 10px 28px rgba(192,57,43,.55),0 0 0 1px rgba(255,255,255,.04) inset;
  overflow:hidden;isolation:isolate;
  will-change:transform,box-shadow;
  transition:transform .16s ease,box-shadow .16s ease,color .16s ease,background .16s ease,border-color .16s ease;
  bottom: 3rem;
}
.btn-join::before{content:"";position:absolute;inset:1px;border-radius:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.25);pointer-events:none;z-index:0}
.btn-join::after{
  content:"";position:absolute;inset:-40% -15%;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 45%,rgba(255,255,255,0) 60%);
  transform:translateX(-120%) rotate(16deg);transition:transform .55s cubic-bezier(.2,.8,.2,1);mix-blend-mode:screen;pointer-events:none;z-index:1
}
.btn-join:hover,.btn-join:focus-visible{
  background:#fff;color:var(--join-accent);border-color:var(--join-accent);
  transform:translateY(-2px) scale(1.03);
  box-shadow:0 14px 34px rgba(255,255,255,.34),0 0 0 3px color-mix(in srgb, var(--join-accent) 25%, transparent);
}
.btn-join:hover::after,.btn-join:focus-visible::after{transform:translateX(220%) rotate(16deg)}
.btn-join:active{transform:translateY(0) scale(.99);box-shadow:0 8px 20px rgba(0,0,0,.35)}
body.fx-flash .btn-join,.body-flash .btn-join{box-shadow:0 0 18px rgba(255,255,255,.45),0 12px 32px rgba(192,57,43,.55)}

/* overlays ne doivent pas capter les clics; contenu au-dessus */
.hero::before,.hero::after,.hero-overlay,.fx-lightning{pointer-events:none!important}
.hero .hero-inner,.hero .hero-cta{position:relative;z-index:2}

/* ==== FX: Éclairs (flash écran) ==== */
.fx-lightning{
  position:fixed;inset:0;pointer-events:none;z-index:9;opacity:0;
  mix-blend-mode:screen;
  background:
    radial-gradient(60% 40% at 30% -10%, rgba(255,255,255,.95), rgba(255,255,255,.45) 22%, rgba(255,255,255,0) 60%),
    linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0) 40%);
  transform:translateZ(0);
}
.fx-lightning.flash{animation:lightningFlash 240ms ease-out 1}
@keyframes lightningFlash{
  0%{opacity:0;filter:blur(0) brightness(1)}
  12%{opacity:1;filter:blur(1px) brightness(1.2)}
  26%{opacity:.28;filter:blur(0) brightness(1)}
  38%{opacity:.95;filter:blur(1px) brightness(1.25)}
  70%{opacity:.18;filter:blur(0) brightness(1)}
  100%{opacity:0;filter:blur(0) brightness(1)}
}
body.fx-flash .hero{filter:brightness(1.22) contrast(1.05);transition:filter 120ms ease}

/* ====== Responsive ====== */
@media (max-width:900px){
  .features .grid,.gallery-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .menu{display:none;position:absolute;right:1rem;top:3.25rem;background:var(--card);border:1px solid var(--ring);border-radius:.8rem;padding:.4rem;flex-direction:column;min-width:12rem}
  .nav-toggle{display:inline-block}
  .features .grid,.gallery-grid{grid-template-columns:1fr}
  .hero{background-attachment:scroll} /* évite le bug iOS */
}
@media (prefers-reduced-motion:reduce){
  .btn-join{transition:none}
  .btn-join::after{display:none}
}

/* micro-réglages */
.card h3{ margin-top:.2rem; margin-bottom:.35rem; }
.features .card p{ color:var(--fg); opacity:.92; }
.section h2{ margin-bottom:1rem; }

/* ===== About v3 : texte + image ===== */
.about-v3 .about-frame{
  position:relative;
  margin-inline: clamp(1rem, 2.2vw, 2rem) auto;   /* aligné gauche */
  max-width: min(1680px, 100% - 1rem);
  background:var(--card);
  border:1px solid var(--ring);
  border-radius:1rem;
  padding:clamp(1.4rem, 2.4vw, 2rem);
  box-shadow:0 18px 52px rgba(0,0,0,.35), 0 0 0 1px var(--ring), 0 0 0 2px rgba(192,57,43,.06);
  overflow:hidden;
}
.about-v3 .about-frame::before{
  content:""; position:absolute; inset:-8% -4%;
  background:url('assets/banner_ea.jpg') center/cover no-repeat;
  filter:grayscale(100%) contrast(1.05) brightness(.7);
  opacity:.10; mix-blend-mode:multiply; pointer-events:none;
}
.about-v3 .about-frame::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(0,0,0,.22), transparent 60%),
    linear-gradient(180deg, transparent 0%, rgba(0,0,0,.28) 100%);
}

/* layout */
.about-v3 .about-wrap{
  position:relative; display:grid; gap:clamp(1.2rem, 2.6vw, 2.6rem);
  grid-template-columns: 1.30fr 1fr; align-items:center;
}
@media (min-width:1400px){
  .about-v3 .about-wrap{ grid-template-columns:1.36fr 1fr; }
}
@media (max-width:1024px){
  .about-v3 .about-wrap{ grid-template-columns:1fr; }
}

/* titre */
.about-v3 .about-title{
  margin:0 0 .4rem; color:#fff; line-height:.9;
  font-family:"Bebas Neue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size:clamp(2.6rem, 6.6vw, 4.2rem); letter-spacing:.01em;
  text-shadow:0 2px 0 rgba(0,0,0,.7);
  margin-left:.9rem; position:relative;
}
.about-v3 .about-title::before{
  content:""; position:absolute; left:-.9rem; top:.1rem; bottom:.1rem;
  width:6px; border-radius:6px;
  background: linear-gradient(180deg, #ff6b5f, #c0392b);
  box-shadow: 0 0 12px rgba(192,57,43,.35);
}
.about-v3 .about-title::after{
  content:""; display:block; height:4px; margin-top:.35rem;
  width:min(340px, 46%); border-radius:3px;
  background:linear-gradient(90deg, #ff6b5f, #c0392b);
  box-shadow:0 2px 14px rgba(192,57,43,.35);
}
.about-v3 .kicker{display:inline-block; font-size:.55em; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); margin-right:.5rem;}
.about-v3 .lead{font-weight:650; opacity:.96; margin:.4rem 0; font-size:1.12rem; line-height:1.75}
.about-v3 p{margin:.45rem 0; opacity:.92; max-width:70ch; font-size:1.03rem; line-height:1.75}

/* points */
.about-v3 .about-points{display:flex; gap:.6rem; flex-wrap:wrap; margin:1rem 0 0; padding:0; list-style:none}
.about-v3 .about-points li{
  background:rgba(255,255,255,.045); border:1px solid var(--ring); border-radius:.75rem;
  padding:.8rem 1rem; min-width:220px; transition:transform .12s ease, box-shadow .12s ease, background .12s ease;
}
.about-v3 .about-points li:hover{transform:translateY(-2px); background:rgba(255,255,255,.06); box-shadow:0 8px 20px rgba(0,0,0,.25)}
.about-v3 .about-points strong{display:block; color:#fff; margin-bottom:.1rem; font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; letter-spacing:.02em; font-size:1.6rem}
.about-v3 .about-points span{color:var(--muted); font-size:.92rem}

/* image */
.about-v3 .about-media{
  position:relative; margin:0; aspect-ratio:16/9; border-radius:1rem; overflow:hidden;
  transform: rotate(-2deg);
  background: radial-gradient(120% 100% at 50% 100%, rgba(0,0,0,.25), transparent 60%);
  box-shadow:0 10px 28px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.about-v3 .about-media::before{content:""; position:absolute; inset:0; border-radius:1rem; border:1px solid rgba(255,255,255,.07); pointer-events:none}
.about-v3 .about-media::after{
  content:""; position:absolute; top:10px; left:16px; width:72px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.15));
  opacity:.35; border-radius:3px; transform: rotate(-12deg); box-shadow:0 2px 8px rgba(0,0,0,.25); pointer-events:none;
}
.about-v3 .about-media img{width:100%; height:100%; object-fit:cover; transform:scale(1.08); filter:contrast(1.02) saturate(1.05); animation:aboutPan 38s linear infinite}
@keyframes aboutPan{
  0%{ transform: scale(1.08) translate3d(0,0,0); }
  50%{ transform: scale(1.08) translate3d(-2%, -2%, 0); }
  100%{ transform: scale(1.08) translate3d(0,0,0); }
}
@media (hover:hover){ .about-v3 .about-media:hover{ transform: rotate(-2deg) } }
@media (max-width:960px){
  .about-v3 .about-wrap{ grid-template-columns:1fr }
  .about-v3 .about-media{ order:-1; transform: rotate(2.2deg) }
}

/* ===== Décor droit : Radiation mark ===== */
#about.about-v3{ position: relative; overflow: hidden; } /* coupe tout débordement */
.about-sidefill.radmark{
  --rad-yellow:#f6c90e; --rad-black:#111;
  position:absolute; right: clamp(0rem, 2vw, 2rem); top:52%;
  transform: translateY(-50%) rotate(-8deg);
  width: clamp(300px, 28vw, 520px);
  height: min(clamp(360px, 60vh, 680px), calc(100% - clamp(24px, 3vh, 48px)));
  z-index:0; pointer-events:none; border-radius:16px;
  border:1px solid color-mix(in srgb, var(--ring) 70%, transparent);
  box-shadow:0 26px 64px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.05) inset;
  background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--accent) 30%, transparent) 0 18px, transparent 18px 36px),
             linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,0));
  opacity:.14; overflow:hidden;
}
.about-sidefill.radmark::before{
  content:""; position:absolute; height:16px; width:92px; left:10%; top:8%;
  background: linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.12));
  border-radius:3px; opacity:.35; transform: rotate(10deg); box-shadow:0 2px 8px rgba(0,0,0,.25);
}
.about-sidefill.radmark::after{
  content:""; position:absolute; inset:0; margin:auto; width:min(78%, 440px); aspect-ratio:1; border-radius:50%;
  background:
    radial-gradient(circle at center, transparent 64%, rgba(0,0,0,.65) 64% 68%, transparent 68%),
    radial-gradient(circle at center, var(--rad-black) 0 12%, transparent 12% 24%),
    conic-gradient(var(--rad-black) 20deg 80deg, transparent 80deg 140deg, var(--rad-black) 140deg 200deg, transparent 200deg 260deg, var(--rad-black) 260deg 320deg, transparent 320deg 380deg),
    radial-gradient(circle at center, var(--rad-yellow) 0 100%);
  mix-blend-mode: normal; opacity:.92;
  box-shadow: 0 10px 26px rgba(0,0,0,.35), inset 0 0 0 1.5px rgba(0,0,0,.50);
  transform-origin:50% 50%;
  animation: radSpin 48s linear infinite;
  filter: saturate(1.02);
}
@keyframes radSpin{ to{ transform: rotate(360deg) } }
body.fx-flash .about-sidefill.radmark::after{ filter: brightness(1.12) saturate(1.08) }
@media (max-width:1200px){ .about-sidefill.radmark{ display:none } }

/* ===== Parallax 2 — tagline sur image ===== */
.parallax.parallax-2{ position:relative; min-height:44vh; }
.parallax.parallax-2::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 85% at 50% 35%, rgba(0,0,0,.32) 0%, rgba(0,0,0,.68) 60%, rgba(0,0,0,.82) 100%),
    linear-gradient(180deg, rgba(0,0,0,.30), rgba(0,0,0,0) 40%, rgba(0,0,0,.38) 85%);
}
.parallax.parallax-2 .overlay{
  position:relative; z-index:1; display:grid; place-items:center;
  min-height:inherit; padding: clamp(1.5rem, 4vw, 3rem) 1rem;
  background:transparent !important; border:0 !important; box-shadow:none !important; outline:none !important; text-align:center;
}

/* Base */
.parax-tagline{
  margin:0; color:#fff; text-shadow:0 2px 14px rgba(0,0,0,.75);
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; letter-spacing:.02em; position:relative;
  display:inline-block; max-width:92vw; padding:.55rem .9rem; border-radius:.8rem;
  background:linear-gradient(180deg, rgba(22,24,28,.55), rgba(22,24,28,.28));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 10px 24px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.05) inset;
  backdrop-filter: blur(3px);
}

/* Stamp (au repos, pas d’anim) */
.parax-tagline.is-stamp{
  text-transform:uppercase; font-weight:900; font-size:clamp(1.8rem,5vw,3.6rem); letter-spacing:.04em; position:relative;
}
.parax-tagline.is-stamp::after{
  content:""; position:absolute; left:50%; transform:translateX(-50%);
  bottom:-.35em; height:3px; width:0; background: var(--accent); border-radius:999px;
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 65%, transparent);
}

/* Typewriter (au repos) */
.parax-tagline.is-type{
  font-weight:800; font-size:clamp(1.05rem, 2.4vw, 1.35rem);
  white-space:nowrap; border-right:none; width:auto;
}

/* Keyframes (unique) */
@keyframes stampIn{
  0%{ letter-spacing:.35em; opacity:0; transform: translateY(6px) scale(.96); }
  60%{ opacity:1; }
  100%{ letter-spacing:.04em; opacity:1; transform: translateY(0) scale(1); }
}
@keyframes underlineIn{ to{ width:68%; } }
@keyframes typing{ from{ width:0 } to{ width: calc(var(--chars, 26) * 1ch) } }
@keyframes caretBlink{ 50%{ border-color: transparent } }

/* Activation à l’entrée en vue */
.parallax-2.in-view .parax-tagline.is-stamp{ animation: stampIn .7s cubic-bezier(.2,.8,.2,1) both }
.parallax-2.in-view .parax-tagline.is-stamp::after{ animation: underlineIn .9s ease-out .45s forwards }
.parallax-2.in-view .parax-tagline.is-type{
  border-right:2px solid rgba(255,255,255,.8);
  width:calc(var(--chars,26)*1ch);
  animation: typing steps(var(--chars,26)) 2.6s .2s both, caretBlink 1s step-end infinite;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  .parallax-2.in-view .parax-tagline.is-stamp{ animation:none }
  .parallax-2 .parax-tagline.is-stamp::after{ width:68% !important; animation:none }
  .parallax-2.in-view .parax-tagline.is-type{ animation:none; border-right:none; width:auto }
}

/* ===== Galerie stylée ===== */
.gallery-grid.fancy-shots{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1rem, 2.4vw, 1.6rem);
}
.fancy-shots .shot{
  position: relative; overflow: hidden; border-radius: 1rem;
  border: 1px solid rgba(255,255,255,.06); background:#0f1216;
  box-shadow: 0 12px 28px rgba(0,0,0,.35);
  transform: translateY(10px) scale(.985); opacity: 0;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease, box-shadow .25s ease;
  will-change: transform;
}
.fancy-shots .shot::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(120% 110% at 50% 80%, rgba(0,0,0,.35), transparent 60%);
  pointer-events:none; z-index:1;
}
.fancy-shots .shot::after{
  content:""; position:absolute; inset:-40% -20%;
  background: linear-gradient(110deg, rgba(255,255,255,.12), rgba(255,255,255,0) 40%);
  transform: translateX(-120%) rotate(5deg);
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
  mix-blend-mode: screen; z-index:1; pointer-events:none;
}
.fancy-shots .shot img{
  width:100%; height:auto; display:block; aspect-ratio: 16/9; object-fit: cover;
  transform: scale(1.02); filter: contrast(1.02) saturate(1.03);
  transition: transform .5s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}
.fancy-shots .shot .shot-cap,
.fancy-shots .shot figcaption{
  position:absolute; left:.8rem; right:.8rem; bottom:.85rem;
  display:inline-flex; align-items:center; gap:.5rem;
  width:max-content; max-width:calc(100% - 1.6rem);
  padding:.45rem .7rem; border-radius:.65rem;
  background:linear-gradient(180deg, rgba(22,24,28,.55), rgba(22,24,28,.28));
  border:1px solid rgba(255,255,255,.12); backdrop-filter: blur(4px);
  color:#fff; font-weight:700; font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  letter-spacing:.02em; text-transform: uppercase;
  transform: translateY(8px); opacity:0; z-index:2;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s;
}
.fancy-shots .shot figcaption::after{ content:"↗"; opacity:.8; font-weight:900; transform:translateY(-1px); }
.fancy-shots .shot.in-view{ transform:none; opacity:1; }
@media (hover:hover){
  .fancy-shots .shot:hover{ transform: translateY(-4px); box-shadow: 0 18px 46px rgba(0,0,0,.45); }
  .fancy-shots .shot:hover img{ transform: scale(1.07) rotate(.6deg); filter: contrast(1.05) saturate(1.06); }
  .fancy-shots .shot:hover::after{ transform: translateX(120%) rotate(5deg); }
  .fancy-shots .shot:hover figcaption, .fancy-shots .shot:hover .shot-cap{ transform: translateY(0); opacity:1; }
}
@media (prefers-reduced-motion: reduce){
  .fancy-shots .shot, .fancy-shots .shot img, .fancy-shots .shot figcaption, .fancy-shots .shot .shot-cap{ transition:none }
}

/* ===== Lightbox ===== */
body.no-scroll { overflow: hidden; }
.lightbox { position: fixed; inset: 0; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.86); z-index: 9999; backdrop-filter: blur(2px); }
.lightbox.open { display: flex; }
.lightbox__stage { position: relative; max-width: 92vw; max-height: 86vh; display: grid; grid-template-rows: 1fr auto; gap: .6rem; }
.lightbox__img { max-width: 92vw; max-height: 80vh; object-fit: contain; border-radius: .8rem; box-shadow: 0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08) inset; transform: scale(.96); opacity: 0; transition: transform .25s ease, opacity .25s ease; }
.lightbox.open .lightbox__img { transform: scale(1); opacity: 1; }
.lightbox__cap { color:#fff; text-align:center; font-weight:700; letter-spacing:.02em; font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; text-transform:uppercase; background:linear-gradient(180deg, rgba(22,24,28,.55), rgba(22,24,28,.28)); border:1px solid rgba(255,255,255,.14); border-radius:.6rem; padding:.4rem .7rem; backdrop-filter: blur(4px); }
.lb-btn { position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:999px; display:grid; place-items:center; color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(6px); cursor:pointer; user-select:none; transition:background .2s ease, transform .2s ease; }
.lb-btn:hover { background: rgba(255,255,255,.18); transform: translateY(-50%) scale(1.04); }
.lb-prev { left: -56px; } .lb-next { right: -56px; } .lb-close { top: -56px; right: 0; left: auto; transform: none; }
.lb-btn svg { width:22px; height:22px; filter: drop-shadow(0 1px 4px rgba(0,0,0,.5)); }
.fancy-shots .shot img{ cursor: zoom-in; }
@media (prefers-reduced-motion: reduce){ .lightbox__img{ transition:none } .lb-btn{ transition:none } }

/* ===== REASONS (Pourquoi nous rejoindre) ===== */
#reasons .section-title,
#reasons > h2{
  position: relative; margin:0 0 1rem .9rem; padding-left:.9rem;
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size:clamp(2rem,5.8vw,3.2rem); letter-spacing:.02em; line-height:.95; color:#e9eaec;
  text-shadow:0 2px 0 rgba(0,0,0,.7);
}
#reasons > h2::before{
  content:""; position:absolute; left:-.9rem; top:.08rem; bottom:.08rem; width:6px; border-radius:6px;
  background: linear-gradient(180deg, #ff6b5f, #c0392b); box-shadow:0 0 12px rgba(192,57,43,.35);
}
#reasons > h2::after{
  content:""; display:block; height:4px; margin-top:.4rem; width:min(340px, 46%); border-radius:3px;
  background: linear-gradient(90deg, #ff6b5f, #c0392b); box-shadow: 0 2px 14px rgba(192,57,43,.35);
}

/* Grille */
#reasons .reasons-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem }
@media (max-width:1100px){ #reasons .reasons-grid{ grid-template-columns:1fr 1fr } }
@media (max-width:640px){ #reasons .reasons-grid{ grid-template-columns:1fr } }

/* Cartes */
#reasons .card{
  position:relative; background:rgba(255,255,255,.035);
  border:1px solid var(--ring); border-radius:1rem; padding:1.1rem 1.25rem 1.15rem; overflow:hidden;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
#reasons .card::before{
  content:""; position:absolute; left:-1px; top:12%; bottom:12%; width:4px; border-radius:6px;
  background: linear-gradient(180deg, #ff6b5f, #c0392b); opacity:.85; box-shadow: 0 0 10px rgba(192,57,43,.25);
}
#reasons .card::after{
  content:""; position:absolute; inset:-1px; border-radius:inherit;
  background:linear-gradient(120deg, transparent 0%, transparent 45%, rgba(255,255,255,.12) 50%, transparent 55%, transparent 100%);
  transform:translateX(-120%); transition:transform .6s cubic-bezier(.2,.8,.2,1); pointer-events:none;
}
#reasons .card:hover::after{ transform: translateX(120%) }
#reasons .card h3{
  margin:.35rem 0 .35rem; font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  letter-spacing:.02em; font-size:clamp(1.25rem,2.4vw,1.55rem); position:relative;
}
#reasons .card h3::after{
  content:""; display:block; width:52px; height:3px; margin-top:.25rem;
  background:linear-gradient(90deg, var(--accent), transparent); border-radius:999px; opacity:.85;
}
#reasons .card p{ color:var(--fg); opacity:.93; line-height:1.65 }
#reasons .card:hover{
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--accent) 34%, var(--ring));
  box-shadow: 0 16px 40px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.05) inset;
  background: rgba(11, 15, 70, 0.045);
}

/* Icône emoji fiable */
#reasons h3 .ico{
  display:inline-block; margin-right:.55rem; font-size:1.15em; line-height:1; transform: translateY(.05em);
  font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla", system-ui, sans-serif;
  filter: drop-shadow(0 6px 10px rgba(0,0,0,.35));
}
#reasons .card:hover h3 .ico{ transform: translateY(-1px) scale(1.06) rotate(-6deg) }

/* Apparition en cascade */
#reasons .card{ opacity:0; transform: translateY(14px) scale(.985); }
#reasons.in-view .card{ animation: reasonIn .55s cubic-bezier(.2,.8,.2,1) forwards; }
#reasons.in-view .card:nth-child(1){ animation-delay:.05s }
#reasons.in-view .card:nth-child(2){ animation-delay:.12s }
#reasons.in-view .card:nth-child(3){ animation-delay:.19s }
#reasons.in-view .card:nth-child(4){ animation-delay:.26s }
#reasons.in-view .card:nth-child(5){ animation-delay:.33s }
#reasons.in-view .card:nth-child(6){ animation-delay:.40s }
@keyframes reasonIn{ to{ opacity:1; transform: translateY(0) scale(1) } }
@media (prefers-reduced-motion: reduce){
  #reasons .card{ opacity:1; transform:none; animation:none!important }
  #reasons .card:hover{ transform:none }
}

/* ===== CTA final (carte + boutons génériques) ===== */
.cta-final{ position:relative; text-align:center; }
.cta-final .cta-card{
  position:relative; max-width:min(920px, 100% - 2rem); margin-inline:auto;
  padding: clamp(1.6rem, 3.4vw, 2.4rem) clamp(1.2rem, 3vw, 2rem);
  background: var(--card); border:1px solid var(--ring); border-radius: 1.2rem;
  box-shadow: 0 18px 52px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.04) inset; overflow:hidden;
}
.cta-final .cta-card::before{
  content:""; position:absolute; inset:-20% -12% auto -12%; height:60%;
  background: radial-gradient(80% 60% at 50% 0%, rgba(255,255,255,.10), transparent 70%); pointer-events:none;
}
.cta-title{
  margin:0 0 .25rem; color:#fff; text-transform:uppercase; letter-spacing:.02em;
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size: clamp(2rem, 6.2vw, 3rem); line-height:.95; position:relative;
}
.cta-title::after{
  content:""; display:block; height:4px; margin:.5rem auto 0; width:min(260px, 48%); border-radius:3px;
  background:linear-gradient(90deg,#ff6b5f,#c0392b); box-shadow:0 2px 14px rgba(192,57,43,.35);
}
.cta-sub{ margin:.25rem 0 1rem; color: var(--muted); font-size: clamp(.98rem, 2.2vw, 1.05rem) }
.cta-actions{ display:flex; justify-content:center; align-items:center; gap:.6rem; flex-wrap:wrap; margin-top:.4rem; }

/* Boutons de base (utiles si réutilisés hors #rejoindre) */
.btn-discord, .btn-support{
  --btn-radius:.9rem;
  display:inline-flex; align-items:center; gap:.55rem; padding:.8rem 1.1rem; border-radius:var(--btn-radius);
  border:1px solid rgba(255,255,255,.10); font-weight:700; letter-spacing:.02em; text-decoration:none;
  transition: transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease;
  will-change: transform, box-shadow;
}
.btn-discord{ background: linear-gradient(180deg,#5865F2,#4752C4); color:#fff; box-shadow: 0 10px 26px rgba(88,101,242,.35), 0 0 0 1px rgba(255,255,255,.04) inset; }
.btn-discord:hover{ transform: translateY(-2px) scale(1.02); box-shadow: 0 16px 36px rgba(88,101,242,.5), 0 0 0 1px rgba(255,255,255,.06) inset; }
.btn-discord:active{ transform: translateY(0) scale(.99); }
.btn-support{ background: linear-gradient(180deg,#ff6b5f,#c0392b); color:#fff; box-shadow: 0 10px 26px rgba(192,57,43,.35), 0 0 0 1px rgba(255,255,255,.04) inset; }
.btn-support:hover{ transform: translateY(-2px) scale(1.02); box-shadow: 0 16px 36px rgba(192,57,43,.5), 0 0 0 1px rgba(255,255,255,.06) inset; }
.btn-support:active{ transform: translateY(0) scale(.99); }
.btn-discord .ico, .btn-support .ico{
  display:inline-grid; place-items:center; width:1.6rem; height:1.6rem; border-radius:.5rem; background: rgba(0,0,0,.18); color:#fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}

/* Focus clavier global (fallback) */
.btn-discord:focus-visible, .btn-support:focus-visible{
  outline:none; box-shadow: 0 0 0 3px color-mix(in srgb,#ffffff 50%, transparent), 0 0 0 6px color-mix(in srgb,#5865F2 35%, transparent);
}

/* Effets d’arrivée */
.cta-final{opacity:0;transform:translateY(16px);transition:opacity .5s ease, transform .5s ease}
.cta-final.in-view{opacity:1;transform:none}
.cta-final .cta-title{position:relative}
.cta-final .cta-title::after{width:0;transition:width .7s cubic-bezier(.2,.8,.2,1) .1s}
.cta-final.in-view .cta-title::after{width:min(260px,48%)}
@keyframes rise {from{transform:translateY(10px);opacity:0} to{transform:none;opacity:1}}
@keyframes btnPop {from{transform:scale(.92);opacity:0} to{transform:scale(1);opacity:1}}
@keyframes pulseShadow {0%{box-shadow:0 10px 26px rgba(88,101,242,.35)} 50%{box-shadow:0 16px 42px rgba(88,101,242,.55)} 100%{box-shadow:0 10px 26px rgba(88,101,242,.35)}}
.cta-final .cta-sub{opacity:0;animation:rise .6s ease .12s forwards}
.cta-final .cta-actions{opacity:0;animation:rise .6s ease .2s forwards}
.cta-final.in-view .btn-discord{animation:btnPop .35s ease .28s both, pulseShadow 1.8s ease .7s 2}
.cta-final.in-view .btn-support{animation:btnPop .35s ease .38s both}
.cta-badges{margin-top:.9rem;display:flex;gap:.4rem;justify-content:center;flex-wrap:wrap;color:color-mix(in srgb, var(--muted) 90%, #fff);font-size:.92rem}
.cta-badges .badge{background: rgba(255,255,255,.04); border:1px solid var(--ring); padding:.35rem .6rem; border-radius:.6rem}
.cta-final .cta-badges .badge{opacity:0;transform:translateY(6px)}
.cta-final.in-view .cta-badges .badge{animation:rise .45s ease forwards; animation-delay: calc(.45s + var(--i, 0) * .08s)}
.cta-final .cta-badges .badge:nth-child(1){--i:0}
.cta-final .cta-badges .badge:nth-child(2){--i:1}
.cta-final .cta-badges .badge:nth-child(3){--i:2}
@media (prefers-reduced-motion:reduce){ .btn-discord, .btn-support, .cta-final{ transition:none } }

/* ===== CTA #rejoindre — SCOPÉ (n’altère rien ailleurs) ===== */
#rejoindre .cta-actions .ico{
  display:inline-grid; place-items:center; width:1.45rem; height:1.45rem; border-radius:.55rem;
  background: rgba(0,0,0,.18); color:#fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}
#rejoindre .btn-discord .ico--discord{
  background: radial-gradient(100% 100% at 30% 20%, #6c78ff 0%, #5865F2 55%, #4752C4 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.06) inset, 0 6px 16px rgba(88,101,242,.28);
}

/* socle + transitions */
#rejoindre .btn-discord, #rejoindre .btn-support{
  position:relative; overflow:hidden; transform:translateZ(0);
  z-index:0; background-size:100% 160%;
  transition: background-position .35s cubic-bezier(.2,.8,.2,1), transform .16s ease, box-shadow .16s ease, filter .16s ease, border-color .16s ease;
}

/* shine (diagonale) */
#rejoindre .btn-discord::after, #rejoindre .btn-support::after{
  content:""; position:absolute; inset:-120% -10%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 38%, rgba(255,255,255,.28) 50%, rgba(255,255,255,0) 62%);
  transform: translateX(-85%) rotate(16deg);
  transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
  mix-blend-mode:screen; pointer-events:none; opacity:0;
}

/* anneau radial subtil sous le bouton */
#rejoindre .btn-discord::before, #rejoindre .btn-support::before{
  content:""; position:absolute; inset:-2px; border-radius:inherit; pointer-events:none; opacity:0; transform:scale(.96);
  transition: transform .25s ease, opacity .25s ease; z-index:-1;
}
#rejoindre .btn-discord::before{
  background: radial-gradient(120% 180% at 50% 120%, rgba(88,101,242,0) 0 52%, rgba(88,101,242,.28) 60%, rgba(88,101,242,0) 74%);
}
#rejoindre .btn-support::before{
  background: radial-gradient(120% 180% at 50% 120%, rgba(192,57,43,0) 0 52%, rgba(192,57,43,.28) 60%, rgba(192,57,43,0) 74%);
}

/* Hover punchy (couleur + slide du gradient) */
#rejoindre .btn-discord:hover{
  transform: translateY(-2px) scale(1.02);
  background-image: linear-gradient(180deg, #7582ff, #3f49c6);
  background-position: 50% 100%;
  filter: saturate(1.18) brightness(1.05);
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 14px 26px rgba(88,101,242,.34), 0 0 0 1px rgba(255,255,255,.08) inset;
}
#rejoindre .btn-support:hover{
  transform: translateY(-2px) scale(1.02);
  background-image: linear-gradient(180deg, #ff7e73, #b73327);
  background-position: 50% 100%;
  filter: saturate(1.18) brightness(1.05);
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 14px 26px rgba(192,57,43,.34), 0 0 0 1px rgba(255,255,255,.08) inset;
}
#rejoindre .btn-discord:hover::after, #rejoindre .btn-support:hover::after{ transform: translateX(125%) rotate(16deg); opacity:.6 }
#rejoindre .btn-discord:hover::before, #rejoindre .btn-support:hover::before{ opacity:1; transform:scale(1) }

/* Active propre */
#rejoindre .btn-discord:active, #rejoindre .btn-support:active{
  transform: translateY(0) scale(.985); box-shadow: 0 8px 18px rgba(0,0,0,.26);
}

/* micro-anim icônes */
#rejoindre .btn-discord .ico--discord svg, #rejoindre .btn-support .ico{ transition: transform .18s ease, filter .18s ease; }
#rejoindre .btn-discord:hover .ico--discord svg{ transform: translateY(-.5px); filter: drop-shadow(0 0 6px rgba(255,255,255,.15)) }
@keyframes heartBeat{ 0%,100%{transform:scale(1)} 25%{transform:scale(1.12)} 45%{transform:scale(1.03)} 70%{transform:scale(1.10)} 85%{transform:scale(1.02)} }
#rejoindre .btn-support:hover .ico{ animation: heartBeat .85s ease both }

/* Focus clavier (brand) */
#rejoindre .btn-discord:focus-visible{
  outline:none; box-shadow: 0 0 0 3px color-mix(in srgb,#ffffff 60%,transparent), 0 0 0 6px color-mix(in srgb,#5865F2 30%,transparent);
}
#rejoindre .btn-support:focus-visible{
  outline:none; box-shadow: 0 0 0 3px color-mix(in srgb,#ffffff 60%,transparent), 0 0 0 6px color-mix(in srgb,#c0392b 30%,transparent);
}
@media (prefers-reduced-motion: reduce){
  #rejoindre .btn-discord, #rejoindre .btn-support{ transition:none }
  #rejoindre .btn-discord::after, #rejoindre .btn-support::after{ display:none }
}
/* === L'UNIVERS — duo d'images (restore) === */
.about-v3 .about-media.duo{
  position: relative;
  aspect-ratio: 16 / 9;
  transform: rotate(-1.2deg);          /* angle principal */
  border-radius: 1rem;
  overflow: visible;                    /* laisse dépasser la petite carte *dans* le cadre */
  filter: drop-shadow(0 10px 28px rgba(0,0,0,.45));
}

/* cartes images */
.about-v3 .about-media.duo .shot-card{
  position: absolute;
  background: #0f1216;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow:
    0 10px 28px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,255,255,.06) inset;
  isolation: isolate;
}
.about-v3 .about-media.duo .shot-card::before{
  /* vignette douce pour mieux cadrer l’œil */
  content:"";
  position:absolute; inset:0;
  pointer-events:none; z-index:2;
  background: radial-gradient(110% 110% at 50% 50%, rgba(0,0,0,0) 60%, rgba(0,0,0,.35) 100%);
}
.about-v3 .about-media.duo .shot-card img{
  width:100%; height:100%; object-fit:cover;
  transform: scale(1.06);
  filter: contrast(1.03) saturate(1.05);
  animation: aboutPan 38s linear infinite; /* réutilise ta keyframe existante */
}

/* grande image */
.about-v3 .about-media.duo .shot-card.main{
  inset: 0;                              /* occupe toute la zone */
  transform: rotate(-.8deg);
  border-radius: 1rem;
}

/* petite image par-dessus (reste *dans* la frame) */
.about-v3 .about-media.duo .shot-card.sub{
  width: 46%;
  aspect-ratio: 16 / 10;
  bottom: 2%;
  right: 1.5%;
  transform: rotate(3deg);
  border-radius: .9rem;
}

/* “tape” discret */
.about-v3 .about-media.duo .shot-card.sub::after{
  content:"";
  position:absolute; top:10px; left:18px; width:74px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,.12));
  opacity:.35; border-radius:3px; transform: rotate(-14deg);
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}

/* micro-hover (desktop) */
@media (hover:hover){
  .about-v3 .about-media.duo .shot-card.main:hover{ transform: rotate(-.4deg) scale(1.01); }
  .about-v3 .about-media.duo .shot-card.sub:hover{ transform: rotate(2.5deg) translateY(-2px) scale(1.01); }
}

/* responsive : garde la compo et évite tout clipping */
@media (max-width: 1080px){
  .about-v3 .about-media.duo .shot-card.sub{ width: 54%; bottom: 2%; right: 2%; }
}
@media (max-width: 960px){
  .about-v3 .about-media.duo{ transform: rotate(2deg); }
  .about-v3 .about-media.duo .shot-card.sub{ width: 64%; bottom: 2%; right: 2%; }
}

/* accessibilité */
@media (prefers-reduced-motion: reduce){
  .about-v3 .about-media.duo .shot-card img{ animation:none }
}
/* === #rejoindre : preuve sociale (2 000+ membres) === */
#rejoindre .cta-proof{
  display:flex; align-items:center; justify-content:center;
  gap:.6rem; margin:-.2rem 0 .6rem;
}
#rejoindre .cta-proof .pill{
  display:inline-flex; align-items:center; gap:.45rem;
  padding:.35rem .6rem; border-radius:.6rem;
  font-weight:700; letter-spacing:.02em; font-size:.95rem;
  background: rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  color:#fff;
  box-shadow: 0 0 0 1px rgba(255,255,255,.04) inset;
}
#rejoindre .pill-discord{
  background: linear-gradient(180deg, rgba(88,101,242,.20), rgba(88,101,242,.08));
  border-color: rgba(88,101,242,.28);
}
#rejoindre .pill-discord .ico--discord{
  width:1.1rem; height:1.1rem; border-radius:.4rem;
  background: radial-gradient(100% 100% at 30% 20%, #6c78ff 0%, #5865F2 55%, #4752C4 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,.06) inset, 0 4px 12px rgba(88,101,242,.35);
}

/* Compteur “2 000+” */
#rejoindre .cta-proof .count{
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size: clamp(1.4rem, 3.4vw, 2rem);
  line-height:1; letter-spacing:.02em;
  background: linear-gradient(180deg,#ffffff,#dfe3ff);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow: 0 2px 10px rgba(0,0,0,.25);
}
#rejoindre .cta-proof .muted{ color: var(--muted); }

/* petite entrée en vue */
#rejoindre .cta-proof{ opacity:0; transform:translateY(8px); transition:opacity .4s ease, transform .4s ease; }
#rejoindre.in-view .cta-proof{ opacity:1; transform:none; }

/* réduit les anims si demandé */
@media (prefers-reduced-motion: reduce){
  #rejoindre .cta-proof{ opacity:1; transform:none; transition:none; }
}
.site-footer .foot-wrap{
  max-width: min(1000px, 100% - 2rem);
  margin-inline: auto;
  display: grid;
  gap: .35rem;
  justify-items: center;
}
.site-footer .copy{ color: var(--fg); opacity:.92; margin:0; }
.site-footer .legal{
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.5;
  text-align: center;
  margin: 0;
}
.nowrap{ white-space: nowrap; }


/* ===============================
   ABONNEMENTS (scopé .page-abos)
   =============================== */

.page-abos .hero-abo{
  position: relative;
  height: 360px;
  border:1px solid #222839;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 16px 60px rgba(0,0,0,.45);
  margin: 20px 0 28px;
}
.page-abos .hero-abo .hero-media{
  position:absolute; inset:-8% -2%;
  background: #0f1116 center/cover no-repeat;
  filter: contrast(1.02) saturate(1.04);
  transform: translateZ(0);
}
.page-abos .hero-abo .hero-overlay{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.28), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.24), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,0.25), rgba(0,0,0,.55) 70%);
}
.page-abos .hero-abo .hero-inner{
  position: relative; z-index: 1;
  max-width: 780px; margin: 0 auto; text-align:center;
  padding: 22px 34px; border-radius: 14px;
  background: linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.38));
  box-shadow: 0 10px 30px rgba(0,0,0,.3);
}
@media (max-width:980px){ .page-abos .hero-abo{ height: 280px } }
@media (max-width:640px){ .page-abos .hero-abo{ height: 220px } }

/* Grille des plans */
.page-abos .abos-grid{
  display:grid;
  gap:18px;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.page-abos .abo-card{
  background: radial-gradient(120% 120% at 0% 0%, #161a24 0%, #12141a 60%);
  border:1px solid #232837;
  border-radius:16px;
  box-shadow:0 6px 30px rgba(0,0,0,.35);
  padding:18px;
  display:flex; flex-direction:column;
  transition: transform .22s var(--ease), box-shadow .22s var(--ease), border-color .22s var(--ease);
}
.page-abos .abo-card:hover{
  transform: translateY(-3px);
  border-color:#2c3244;
  box-shadow:0 14px 46px rgba(0,0,0,.5);
}
.page-abos .abo-head{
  display:flex; align-items:end; justify-content:space-between; gap:10px;
  margin-bottom:6px;
}
.page-abos .abo-head h3{ margin:0; font-size:20px; color:var(--title); }
.page-abos .price{ font-size:28px; font-weight:800; color:var(--title); }
.page-abos .price small{ font-size:13px; color:var(--muted); font-weight:600; }

.page-abos .features{ margin:10px 0 12px 18px; padding:0; }
.page-abos .features li{ margin:7px 0; }
.page-abos .check::before{ content:"✔"; color:var(--ok); margin-right:8px; }

.page-abos .cta-row{ margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }

/* Comparatif */
.page-abos .abos-compare{
  margin-top:26px;
  background:#151822;
  border:1px solid #252a36;
  border-radius:16px;
  box-shadow:var(--shadow-1);
  overflow: hidden;
}
.page-abos .abos-compare .cmp-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px;
  background:#171a1f;
  border-bottom:1px solid #252a36;
}
.page-abos .abos-compare h2{ margin:0; font-size:18px; color:var(--title); }

.page-abos .abos-compare .table{ width:100%; border-collapse:collapse; font-size:14px; }
.page-abos .abos-compare .table th,
.page-abos .abos-compare .table td{ padding:12px 10px; border-top:1px solid #252a36; }
.page-abos .abos-compare .table thead th{
  background:#16181d; border-top:none; color:var(--muted); font-weight:600; text-align:left;
}
.page-abos .abos-compare .right{ text-align:center; }
.page-abos .yes{ color:var(--ok); font-weight:700; }
.page-abos .no{ color:#9aa0a6; }
.page-abos .emph{ color:var(--title); font-weight:800; }
.page-abos .hot{ color:var(--accent-2); font-weight:800; }

/* Highlight comparatif (JS ajoute .highlight) */
.page-abos .abos-compare .col{
  transition: background .25s var(--ease), box-shadow .25s var(--ease);
}
.page-abos .abos-compare .col.highlight{
  background: linear-gradient(180deg,#191d23,#14161a);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

/* Note / Legal / FAQ */
.page-abos .note{ color:var(--muted); font-size:14px; margin:12px 10px; }
.page-abos .legal{
  margin-top:26px; padding:25px;
  background:#121317; border:1px solid #252a36; border-radius:16px; color:var(--muted);
  box-shadow:var(--shadow-1);
}
.page-abos .legal h2{ margin:0 0 8px; font-size:18px; color:var(--title); }
.page-abos .faq{ margin-top:18px; }
.page-abos .faq details{
  background:#121317; border:1px solid #252a36; border-radius:12px;
  padding:12px; margin-top:12px;
  transition: border-color .16s var(--ease), background .16s var(--ease);
}
.page-abos .faq details[open]{ background:#151a24; border-color:#2a3141; }
.page-abos .faq summary{ cursor:pointer; font-weight:700; color:#ddd; outline:none; }
.page-abos .faq p{ margin:.6rem 0 0; color:#cfcfcf; }
/* ================================
   ABONNEMENTS — POLISH PACK
   (scope: .page-abos / #abo)
================================ */

/* Ancrages confort sous header sticky */
#plans, #compare { scroll-margin-top: 84px; }

/* HERO : titre + boutons plus “landing” */
.page-abos .hero{
  position: relative;
  height: min(72vh, 560px);
  border-radius: 16px;
  background-position: center 40%;
  background-size: cover;
  border: 1px solid #222839;
  box-shadow: 0 16px 60px rgba(0,0,0,.45);
  overflow: hidden;
}
.page-abos .hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.28), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.24), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%);
}
.page-abos .hero .hero-inner{
  position: absolute; inset:0; display:grid; place-content:center;
  padding: 22px; text-align:center; z-index:1;
}
.page-abos .hero .hero-inner h1{
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  text-transform:uppercase; letter-spacing:.02em; line-height:.92;
  font-size: clamp(2.4rem, 8.6vw, 5.4rem);
  color:#fff; margin:0 0 .8rem;
  -webkit-text-stroke:.7px rgba(0,0,0,.65);
  text-shadow:0 2px 0 rgba(0,0,0,.88), 0 22px 48px rgba(0,0,0,.55);
}
.page-abos .hero .actions-row .btn{
  padding:12px 16px; border-radius:12px;
}

/* Intro sous la bannière */
#abo > .lead{
  margin: 16px 0 26px;
  color:#dcd8cc; opacity:.95;
}

/* ===== Cartes plans ===== */
#abo .grid{ display:grid; gap:18px; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }

#abo .card{
  position: relative;
  background: radial-gradient(120% 120% at 0% 0%, #161a24 0%, #12141a 60%);
  border: 1px solid #232837;
  border-radius: 16px;
  padding: 18px 18px 16px 18px;
  box-shadow: 0 10px 34px rgba(0,0,0,.42);
  transition: transform .22s cubic-bezier(.2,.8,.2,1), box-shadow .22s, border-color .22s;
}
#abo .card:hover{
  transform: translateY(-4px);
  border-color:#2c3244;
  box-shadow: 0 18px 48px rgba(0,0,0,.55);
}
#abo .card h3{
  margin:0 0 6px;
  font-family:"Bebas Neue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  letter-spacing:.02em; color:#fff;
}
#abo .card .pill{ background:#1f2430; border:1px solid #2b3140; color:#cfd3da; }

/* Étiquette prix en coin (badge) */
#abo .card .price{
  position:absolute; top:14px; right:14px;
  font-size: 1.6rem; line-height:1; font-weight:900; color:#fff;
  padding:6px 10px; border-radius:10px;
  background:linear-gradient(180deg,#1f2430,#171b24);
  border:1px solid #2b3140;
  box-shadow: 0 10px 24px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.03);
}
#abo .card .price small{ display:block; font-size:.72rem; color:#a7abb2; font-weight:700 }

/* Liste + puces check vertes */
#abo .card ul{ margin:10px 0 14px 18px; }
#abo .card li{ margin:7px 0; }
#abo .card .check::before{
  content:""; display:inline-block; width:14px; height:14px; margin-right:8px;
  border-radius:4px; background: #1e2a22; border:1px solid #2d5138;
  box-shadow: inset 0 0 0 2px rgba(46,204,113,.25);
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="%23fff"><path d="M20.285 2l-11.285 11.567-5.285-5.09-3.715 3.523 9 8.999 15-15.285z"/></svg>') center/12px 12px no-repeat;
  background-image: linear-gradient(180deg, #2ecc71, #27ae60);
}

/* CTA dans la carte */
#abo .card .cta-row{ margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }
#abo .card .btn{ border-radius:12px; font-weight:800; }
#abo .card .btn.secondary{ background:#23262e; color:#e1e3e7; border:1px solid #2a2f3a; }
#abo .card .btn.secondary:hover{ background:#2a2e37; transform: translateY(-2px); }

/* Mise en avant du plan recommandé (Fédérateur) – sans changer le HTML */
#abo .card[data-plan="federateur"]{
  border-color: color-mix(in srgb, var(--accent) 40%, #2c3244);
  box-shadow: 0 20px 64px rgba(192,57,43,.28), 0 0 0 1px rgba(255,255,255,.04) inset;
}
#abo .card[data-plan="federateur"]::before{
  content:"Recommandé";
  position:absolute; top:-10px; left:16px;
  font-weight:900; letter-spacing:.02em; color:#fff;
  padding:6px 10px; border-radius:10px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  border:1px solid rgba(255,255,255,.08);
  box-shadow: 0 10px 22px rgba(192,57,43,.35);
}

/* ===== Comparatif ===== */
.compare{
  margin-top:26px; background:#12141a; border:1px solid #282d3a;
  border-radius:16px; overflow:hidden; box-shadow:0 12px 36px rgba(0,0,0,.45);
}
.compare header{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; background:#161a20; border-bottom:1px solid #282d3a;
}
.compare h2{ margin:0; color:#fff; font-size:18px; }
.compare .actions .btn{ padding:8px 10px; border-radius:10px; font-weight:800; }

.compare .table{ width:100%; border-collapse:collapse; font-size:14px; }
.compare thead th{
  position:sticky; top:0; z-index:1;
  background:#141820; color:#aeb4bd; font-weight:700; text-align:left;
  border-top:none;
}
.compare th, .compare td{ padding:12px 10px; border-top:1px solid #222735; }
.compare tbody tr:nth-child(odd){ background:#10141b; }

.compare .col{ transition: background .25s, box-shadow .25s; }
.compare .col.highlight{
  background: linear-gradient(180deg, #1a1f2b, #151a22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

.compare .right{ text-align:center; }
.compare .yes{ color:#2ecc71; font-weight:800; }
.compare .no { color:#8a90a0; }
.compare .emph{ color:#fff; font-weight:800; }
.compare .hot{ color: var(--accent-2); font-weight:900; }

.compare .note{ color:#a7abb2; font-size:13px; padding:10px 12px; }

/* ===== Mentions + FAQ ===== */
.legal{
  margin-top:26px; padding:18px; color:#cfcfcf;
  background:#11141a; border:1px solid #2b3140; border-radius:16px;
  box-shadow: 0 12px 36px rgba(0,0,0,.45);
}
.faq details{
  background:#121317; border:1px solid #2b3140; border-radius:12px;
  padding:12px; margin-top:12px;
}
.faq details[open]{ background:#151a24; border-color:#32394a; }
.faq summary{ cursor:pointer; font-weight:800; color:#e1e3e7; }

/* ===== Boutons – hover plus prononcé (slide + glow) ===== */
.btn{
  position:relative; overflow:hidden; transform: translateZ(0);
  transition: transform .16s, filter .16s, box-shadow .16s, background .16s;
}
.btn::after{
  content:""; position:absolute; inset:-140% -20%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 38%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 62%);
  transform: translateX(-85%) rotate(16deg);
  transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
  mix-blend-mode: screen; opacity:0; pointer-events:none;
}
.btn:hover{ transform: translateY(-2px); filter: saturate(1.06) brightness(1.03); }
.btn:hover::after{ transform: translateX(125%) rotate(16deg); opacity:.5; }

/* Responsive */
@media (max-width:980px){
  #abo .grid{ grid-template-columns: 1fr; }
  #abo .card .price{ font-size:1.3rem; }
}
/* variantes utilisées par le HTML des cartes/plans */
.btn--primary{
  color:#fff;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  border:1px solid rgba(255,255,255,.06);
  box-shadow:0 6px 20px rgba(192,57,43,.28);
}
.btn--soft{
  color:var(--text);
  background:#20242d;
  border:1px solid #2a2f3a;
}
.btn--outline{
  color:#e7e4db;
  background:transparent;
  border:1px solid #30364a;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
/* place ceci APRÈS tes règles .hero globales */
.page-abos .hero.hero-abo{
  position:relative;
  height:min(72vh,560px);
  border-radius:16px;
  border:1px solid #222839;
  box-shadow:0 16px 60px rgba(0,0,0,.45);
  overflow:hidden;
  background-position:center 40% !important;
  background-size:cover !important;
}
.page-abos .hero.hero-abo::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.28), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.24), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.25), rgba(0,0,0,.55) 70%);
}
.page-abos .hero.hero-abo .hero-inner{ position:absolute; inset:0; display:grid; place-content:center; text-align:center; z-index:1; }
.page-abos .hero.hero-abo::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.22), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.18), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.18), rgba(0,0,0,.38) 70%);
}
/* ========== HERO ABOS — vignette + grain ========== */

/* s'assure que les couches se superposent proprement */
.page-abos .hero-abo{ position:relative; isolation:isolate; }
.page-abos .hero-abo .hero-inner{ position:relative; z-index:4; }

/* Vignette lisible (remplace avantageusement l'overlay actuel) */
.page-abos .hero-abo .hero-overlay{
  position:absolute; inset:0; pointer-events:none; z-index:2;
  background:
    /* halo centre + bords plus sombres */
    radial-gradient(100% 80% at 50% 40%,
      rgba(0,0,0,.18) 0%,
      rgba(0,0,0,.55) 66%,
      rgba(0,0,0,.80) 100%),
    /* léger dégradé vertical */
    linear-gradient(180deg, rgba(0,0,0,.15), rgba(0,0,0,.35) 70%);
}

/* Film grain très léger (SVG embarqué, 0 image externe) */
/* Film grain léger, sans image externe */
.page-abos .hero-abo .hero-overlay::after{
  content:"";
  position:absolute; inset:0; z-index:3;
  opacity:.055;                     /* intensité du grain */
  mix-blend-mode:soft-light;        /* fusion douce */
  background-size:180px 180px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  animation: grainShift 14s steps(10) infinite;
  pointer-events:none;
}

@keyframes grainShift{
  0%   { background-position: 0 0; }
  100% { background-position: 200% 200%; }
}

/* Accessibilité : pas d'anim si réduit les mouvements */
@media (prefers-reduced-motion: reduce){
  .page-abos .hero-abo .hero-overlay::after{ animation:none }
}
/* === ABOS HERO — fix surcouches trop sombres === */

/* 1) coupe les overlays globaux hérités du .hero */
.page-abos .hero-abo::before,
.page-abos .hero-abo::after{
  content:none !important;
}

/* 2) enlève le fond sombre dans la boîte de texte */
.page-abos .hero-abo .hero-inner{
  background: transparent !important;
  box-shadow: none !important;
}

/* 3) garde UN SEUL overlay, mais plus léger */
.page-abos .hero-abo .hero-overlay{
  z-index: 2;
  background:
    radial-gradient(90% 70% at 50% 40%,
      rgba(0,0,0,.08) 0%,
      rgba(0,0,0,.38) 60%,
      rgba(0,0,0,.58) 100%),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.18) 70%);
}

/* 4) grain plus discret (facultatif) */
.page-abos .hero-abo .hero-overlay::after{ opacity:.03; }

/* 5) assure la bonne pile des calques */
.page-abos .hero-abo .hero-media{ z-index: 0; }
.page-abos .hero-abo .hero-inner{ z-index: 4; }
/* ====== Typo (display + body) ====== */
:root{
  --ff-display: "Bebas Neue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --ff-body: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

body{ font-family: var(--ff-body); font-weight: 500; }
h1,h2,h3{ font-family: var(--ff-display); letter-spacing:.02em; font-weight: 800; }

/* Hero titre plus lisible */
.page-abos .hero .hero-inner h1{
  font-family: var(--ff-display);
  letter-spacing: .015em;
  text-shadow:
    0 2px 0 rgba(0,0,0,.85),
    0 28px 60px rgba(0,0,0,.55);
}
/* ====== Pack boutons v2 — SCOPÉ à .page-abos ====== */
.page-abos .btn{
  --btn-radius: 12px;
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  gap:.5rem;
  padding: 12px 16px;
  border-radius: var(--btn-radius);
  border:1px solid rgba(255,255,255,.08);
  font-weight: 800; letter-spacing:.02em; line-height:1;
  color:#eae7de;
  background: linear-gradient(180deg, rgba(28,32,40,.55), rgba(22,24,30,.38));
  backdrop-filter: blur(3px);
  box-shadow: 0 10px 26px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.04) inset;
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  text-decoration: none;
}
.page-abos .btn::after{
  content:""; position:absolute; inset:-140% -20%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 38%, rgba(255,255,255,.22) 50%, rgba(255,255,255,0) 62%);
  transform: translateX(-85%) rotate(16deg);
  transition: transform .55s cubic-bezier(.2,.8,.2,1), opacity .25s ease;
  mix-blend-mode: screen; opacity:0; pointer-events:none;
}
.page-abos .btn:hover{
  transform: translateY(-2px);
  filter: saturate(1.05) brightness(1.02);
  box-shadow: 0 16px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.page-abos .btn:hover::after{ transform: translateX(125%) rotate(16deg); opacity:.5; }
.page-abos .btn:active{ transform: translateY(0) scale(.99); }

/* Primaire */
.page-abos .btn--primary{
  color:#fff;
  background: linear-gradient(180deg, #ff6b5f, #c0392b);
  border-color: rgba(255,255,255,.10);
  box-shadow: 0 12px 28px rgba(192,57,43,.38), 0 0 0 1px rgba(255,255,255,.05) inset;
}
.page-abos .btn--primary:hover{
  filter: saturate(1.08) brightness(1.03);
  box-shadow: 0 18px 46px rgba(192,57,43,.50), 0 0 0 1px rgba(255,255,255,.07) inset;
}

/* Secondaire (verre) */
.page-abos .btn--soft{
  color:#e1e3e7;
  background: linear-gradient(180deg, rgba(34,38,48,.65), rgba(26,30,38,.45));
  border-color:#2b3140;
}
.page-abos .btn--soft:hover{
  background: linear-gradient(180deg, rgba(38,42,54,.72), rgba(28,32,42,.52));
}

/* Outline */
.page-abos .btn--outline{
  color:#e7e4db;
  background: transparent;
  border-color:#30364a;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}
.page-abos .btn--outline:hover{
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
}

/* Variante XL pour les boutons du hero */
.page-abos .hero .actions-row .btn{
  padding:14px 18px; border-radius:14px; font-size: clamp(.95rem,1.1vw,1.05rem);
}

/* (Optionnel) glow rouge juste dans le hero */
.page-abos .hero .actions-row .btn--primary{
  box-shadow: 0 18px 46px rgba(192,57,43,.45), 0 0 0 1px rgba(255,255,255,.05) inset;
}
/* Sécurité : si un .btn se trouve dans le header, on annule nos styles scoped */
.site-header .btn{ all: unset; }
.site-header .btn{ display:inline-block; padding:.4rem .6rem; border-radius:.6rem; }
/* 1) Désactiver les overlays GLOBAUX sur la page Abonnements */
.page-abos .hero::before,
.page-abos .hero::after{
  content:none !important;
  background:none !important;
  box-shadow:none !important;
}

/* 2) Si tu as encore <div class="hero-overlay"> dans le HTML, on le neutralise */
.page-abos .hero-abo .hero-overlay{ display:none !important; }

/* 3) Un SEUL overlay géré ici (vignette + lecture du texte) */
.page-abos .hero-abo{ position:relative; overflow:hidden; }
.page-abos .hero-abo .hero-media{
  position:absolute; inset:-8% -2%; z-index:0;
  background-size:cover; background-position:center 40%;
}
.page-abos .hero-abo::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  /* vignette + dégradé lisible */
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.22), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.20), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.15), rgba(0,0,0,.45) 70%);
}

/* ====== HERO ABOS : full-bleed, vignette douce, pas de bordures ====== */
.page-abos .hero-abo{
  height:min(68vh,640px);
  margin:0 0 28px;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  position:relative;
  overflow:hidden;
}
.page-abos .hero-abo .hero-media{
  position:absolute; inset:-10% -4%;
  background-size:cover; background-position:center 40%;
  transform:translate3d(0,0,0) scale(1.08);   /* marge pour le parallax */
  will-change:transform;
}
.page-abos .hero-abo::before{
  /* vignette + lisibilité du texte (un seul overlay) */
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:
    radial-gradient(1200px 300px at 10% 10%, rgba(0,0,0,.18), transparent 60%),
    radial-gradient(900px 300px at 90% 90%, rgba(0,0,0,.18), transparent 60%),
    linear-gradient(to bottom, rgba(0,0,0,.12), rgba(0,0,0,.45) 70%);
}
.page-abos .hero-abo .hero-inner{ position:relative; z-index:2; background:transparent }

/* ====== HERO buttons — effet “ça pète” au hover ====== */
.page-abos .hero-abo .actions-row .btn{
  position:relative; overflow:hidden;
  border-radius:14px;
  transform:translateZ(0);
  transition:transform .18s cubic-bezier(.2,.8,.2,1),
             box-shadow .18s, filter .18s, background .18s;
  box-shadow:0 10px 26px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.04) inset;
}
.page-abos .hero-abo .actions-row .btn::after{
  /* “shine” diagonal */
  content:""; position:absolute; inset:-160% -20%;
  background:linear-gradient(110deg, rgba(255,255,255,0) 45%, rgba(255,255,255,.45) 50%, rgba(255,255,255,0) 55%);
  transform:translateX(-85%) rotate(16deg);
  opacity:0; mix-blend-mode:screen; pointer-events:none;
  transition:transform .65s cubic-bezier(.2,.8,.2,1), opacity .3s;
}
.page-abos .hero-abo .actions-row .btn:hover{
  transform:translateY(-3px) scale(1.02);
  filter:saturate(1.08) brightness(1.04);
  box-shadow:0 18px 46px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.page-abos .hero-abo .actions-row .btn:hover::after{
  transform:translateX(125%) rotate(16deg);
  opacity:.7;
}
.page-abos .hero-abo .actions-row .btn:active{ transform:translateY(0) scale(.99) }

/* anneau radial subtil sous le bouton (accent pour primary, gris pour soft) */
.page-abos .hero-abo .btn--primary::before,
.page-abos .hero-abo .btn--soft::before{
  content:""; position:absolute; inset:-2px; border-radius:inherit; pointer-events:none;
  opacity:0; transform:scale(.96);
  transition:opacity .25s, transform .25s;
}
.page-abos .hero-abo .btn--primary::before{
  background:radial-gradient(120% 180% at 50% 120%, rgba(192,57,43,0) 0 52%, rgba(192,57,43,.35) 60%, rgba(192,57,43,0) 74%);
}
.page-abos .hero-abo .btn--soft::before{
  background:radial-gradient(120% 180% at 50% 120%, rgba(120,130,160,0) 0 52%, rgba(120,130,160,.28) 60%, rgba(120,130,160,0) 74%);
}
.page-abos .hero-abo .actions-row .btn:hover::before{ opacity:1; transform:scale(1) }

/* un poil plus “punchy” sur les couleurs du primary en hover */
.page-abos .hero-abo .btn--primary{
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
}
.page-abos .hero-abo .btn--primary:hover{
  filter:saturate(1.15) brightness(1.06);
}

/* Accessibilité : pas d’anim si animations réduites */
@media (prefers-reduced-motion:reduce){
  .page-abos .hero-abo .actions-row .btn,
  .page-abos .hero-abo .actions-row .btn::after,
  .page-abos .hero-abo .actions-row .btn::before{ transition:none }
}
/* Hero Abos : on s’assure qu’un vieux style ne force pas transform:none */
.page-abos .hero.hero-abo .hero-media{
  transform: translate3d(0,0,0) scale(1.08);
  will-change: transform;
}
.page-abos .hero-abo .actions-row .btn:hover{
  transform: translateY(-3px) scale(1.03); /* +0.01 vs avant */
}
/* === HERO ABOS — assombrir + vignette + color grade === */
.page-abos .hero-abo{ position:relative; isolation:isolate; }
.page-abos .hero-abo .hero-inner{ position:relative; z-index:2; }

/* Calque d’effet au-dessus du background, en dessous du contenu */
.page-abos .hero-abo::after{
  content:"";
  position:absolute; inset:-6% -4%;
  z-index:1; pointer-events:none;

  /* Vignette (bords plus sombres) + voile global */
  background:
    radial-gradient(120% 80% at 50% 40%,
      rgba(0,0,0,.12) 0%,
      rgba(0,0,0,.55) 66%,
      rgba(0,0,0,.80) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.42) 78%);

  /* Le mix “colle” l’effet au visuel sans toucher le texte */
  mix-blend-mode:multiply;

  /* Léger grade : plus de contraste, un chouïa moins de saturation */
  filter: contrast(1.08) saturate(.96);
}

/* Si le navigateur supporte le backdrop-filter, on gagne un assombrissement propre */
@supports (backdrop-filter: brightness(.9)) {
  .page-abos .hero-abo::after{
    /* on garde la vignette, et on assombrit la scène */
    background:
      radial-gradient(120% 80% at 50% 40%,
        rgba(0,0,0,.10) 0%,
        rgba(0,0,0,.50) 66%,
        rgba(0,0,0,.78) 100%),
      rgba(0,0,0,.10);
    backdrop-filter: brightness(.84) contrast(1.06) saturate(.98);
  }
}
/* --- HERO ABOS : réactive l’overlay + assombrissement net --- */
.page-abos .hero-abo { position:relative; isolation:isolate; }
.page-abos .hero-abo .hero-inner { position:relative; z-index:2; }

/* 1) réactive l'overlay (priorité > règles précédentes) */
.page-abos .hero-abo .hero-overlay{
  display:block !important;
  position:absolute; inset:0; z-index:1; pointer-events:none;
  /* vignette + voile sombre */
  background:
    radial-gradient(120% 85% at 50% 40%,
      rgba(0,0,0,.10) 0%,
      rgba(0,0,0,.52) 64%,
      rgba(0,0,0,.82) 100%),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.56) 78%);
  mix-blend-mode:multiply;              /* colle l'effet au visuel */
  filter:contrast(1.06) saturate(.96);  /* petit grade */
}

/* Fallback si mix-blend-mode n'est pas supporté */
@supports not (mix-blend-mode:multiply){
  .page-abos .hero-abo .hero-overlay{
    background:
      radial-gradient(120% 85% at 50% 40%,
        rgba(0,0,0,.14) 0%, rgba(0,0,0,.58) 64%, rgba(0,0,0,.86) 100%),
      linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.62) 78%);
  }
}
/* ABOS — assombrir l'image (texte intact) */
.page-abos .hero-abo{
  /* on remplace l'image seule par : gradients + image */
  background-image:
    radial-gradient(110% 85% at 50% 40%,
      rgba(0,0,0,.10) 0%,
      rgba(0,0,0,.72) 62%,
      rgba(0,0,0,.92) 100%),
    linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.48) 75%),
    url('assets/banner_ea.jpg') !important;   /* même URL que ton inline */
  background-position: center 40% !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
}

/* on laisse l’overlay désactivé pour éviter toute surcouche sur le texte */
.page-abos .hero-abo .hero-overlay{ display:none !important; }
/* === ABOS — assombrir l'image sans toucher au texte === */

/* 0) .hero-media ne doit pas masquer le fond */
.page-abos .hero-abo .hero-media{
  background-color: transparent !important; /* vire le #0f1116 opaque */
}

/* 1) Calque d’assombrissement AU-DESSUS de l’image, SOUS le contenu */
.page-abos .hero.hero-abo::after{
  content:"" !important;                    /* reprend la main si annulé ailleurs */
  position:absolute; inset:0; z-index:1; pointer-events:none;

  /* vignette + voile sombre, fusionné à l’image seulement */
  background:
    radial-gradient(110% 85% at 50% 40%,
      rgba(0,0,0,.08) 0%,
      rgba(0,0,0,.70) 62%,
      rgba(0,0,0,.86) 100%),
    linear-gradient(180deg, rgba(0,0,0,.14), rgba(0,0,0,.46) 78%);
  mix-blend-mode: multiply;
}

/* 2) Le contenu reste tout en haut */
.page-abos .hero-abo .hero-inner{ position:relative; z-index:3; }

/* 3) (optionnel) petit coup de brightness sur l’image uniquement */
.page-abos .hero-abo .hero-media{
  filter: brightness(1) contrast(1.06) saturate(.96) !important;
}
/* === HERO ABOS — boutons lisibles & punchy === */
.page-abos .hero-abo .actions-row{
  display:flex; gap:.55rem; flex-wrap:wrap; justify-content:center;
}

.page-abos .hero-abo .actions-row .btn{
  border-radius:14px;
  padding:12px 16px;
  font-weight:900; letter-spacing:.02em;
  text-shadow:0 1px 1px rgba(0,0,0,.55);
  box-shadow:0 10px 26px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.05) inset;
}

/* Primaire (rouge) — plus net */
.page-abos .hero-abo .actions-row .btn--primary{
  color:#fff;
  background:linear-gradient(180deg,#ff6b5f,#c0392b);
  border:1px solid rgba(255,255,255,.10);
}
.page-abos .hero-abo .actions-row .btn--primary:hover{
  transform:translateY(-2px);
  filter:saturate(1.12) brightness(1.06);
  box-shadow:0 16px 40px rgba(192,57,43,.46), 0 0 0 1px rgba(255,255,255,.07) inset;
}

/* Secondaire (sombre) — contraste + effet “verre” léger */
.page-abos .hero-abo .actions-row .btn--soft{
  color:#fff; /* <- vrai blanc pour la lisibilité */
  background:linear-gradient(180deg,#27303b,#1c222b);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(2px) brightness(1.05);
}
.page-abos .hero-abo .actions-row .btn--soft:hover{
  transform:translateY(-2px);
  filter:saturate(1.06) brightness(1.04);
  box-shadow:0 16px 40px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.08) inset;
}

/* Focus clavier accessible (anneau visible) */
.page-abos .hero-abo .actions-row .btn:focus-visible{
  outline:none;
  box-shadow:
    0 0 0 3px color-mix(in srgb,#ffffff 60%, transparent),
    0 0 0 6px color-mix(in srgb,#c0392b 35%, transparent);
}

/* Empiler joliment sur mobile */
@media (max-width:480px){
  .page-abos .hero-abo .actions-row .btn{ flex:1 1 100% }
}
/* === HERO ABOS — hover qui claque === */
.page-abos .hero-abo .actions-row .btn--primary{
  /* teintes normales + teintes hover (plus vives) */
  --p1:#ff6b5f; --p2:#c0392b;
  --p1h:#ff8f82; --p2h:#ff5140;

  background-image: linear-gradient(90deg,var(--p1),var(--p2));
  background-size: 200% 100%;
  transition: background-position .35s cubic-bezier(.2,.8,.2,1),
             background-image .2s ease,
             box-shadow .2s ease, transform .18s ease, filter .18s ease;
}
.page-abos .hero-abo .actions-row .btn--primary:hover{
  background-image: linear-gradient(90deg,var(--p1h),var(--p2h));
  background-position: 100% 0;
  box-shadow:
    0 20px 60px rgba(255,81,64,.48),
    0 0 0 1px rgba(255,255,255,.08) inset;
  transform: translateY(-3px) scale(1.02);
  filter: saturate(1.15) brightness(1.05);
}
.page-abos .hero-abo .actions-row .btn--primary:active{
  transform: translateY(0) scale(.99);
  filter: brightness(.96);
}

/* bouton sombre : passe à un gris/bleu plus clair + liseré accent */
.page-abos .hero-abo .actions-row .btn--soft{
  --s1:#27303b; --s2:#1c222b;
  --s1h:#3b4a5c; --s2h:#242c38;

  color:#fff;
  background-image: linear-gradient(90deg,var(--s1),var(--s2));
  background-size: 200% 100%;
  border:1px solid rgba(255,255,255,.14);
  transition: background-position .35s cubic-bezier(.2,.8,.2,1),
             background-image .2s ease,
             border-color .2s ease,
             box-shadow .2s ease, transform .18s ease, filter .18s ease;
}
.page-abos .hero-abo .actions-row .btn--soft:hover{
  background-image: linear-gradient(90deg,var(--s1h),var(--s2h));
  background-position: 100% 0;
  border-color: color-mix(in srgb, var(--accent) 45%, rgba(255,255,255,.14));
  box-shadow:
    0 18px 48px rgba(0,0,0,.55),
    0 0 0 1px rgba(255,255,255,.10) inset,
    0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
  transform: translateY(-3px) scale(1.02);
  filter: saturate(1.08) brightness(1.04);
}
.page-abos .hero-abo .actions-row .btn--soft:active{
  transform: translateY(0) scale(.99);
}

/* booste le “shine” diagonal déjà en place */
.page-abos .hero-abo .actions-row .btn:hover::after{ opacity:.8 }

/* respect des préférences d’accessibilité */
@media (prefers-reduced-motion: reduce){
  .page-abos .hero-abo .actions-row .btn--primary,
  .page-abos .hero-abo .actions-row .btn--soft{
    transition: box-shadow .2s ease, transform .18s ease, filter .18s ease;
    background-size: 100% 100%;
  }
}
/* === ABOS — Intro courte : ruban “glass” + accent === */
.page-abos section.section > p.lead{
  position:relative;
  display:inline-block;
  max-width:min(980px,96vw);
  margin:16px auto 28px;
  padding:12px 16px 12px 28px;            /* place pour l’accent gauche */
  text-align:center;
  color:#eae7de;
  background:linear-gradient(180deg, rgba(28,32,40,.55), rgba(22,24,30,.38));
  border:1px solid #2b3140;
  border-radius:12px;
  box-shadow:0 12px 34px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.04) inset;
  backdrop-filter:blur(3px);
}

/* barre d’accent à gauche (dégradé rouge) */
.page-abos section.section > p.lead::before{
  content:"";
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  width:6px; height:60%;
  border-radius:6px;
  background:linear-gradient(180deg,#ff6b5f,#c0392b);
  box-shadow:0 0 12px rgba(192,57,43,.35);
}

/* met en valeur la partie en <strong> */
.page-abos section.section > p.lead strong{
  display:inline-block;
  font-weight:900;
  background:linear-gradient(180deg,#ffffff,#e9e4ff);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  text-shadow:0 2px 10px rgba(0,0,0,.35);
  position:relative;
}
.page-abos section.section > p.lead strong::after{
  content:"";
  position:absolute; left:.1em; right:.1em; bottom:-.18em;
  height:3px; border-radius:999px;
  background:linear-gradient(90deg,#ff6b5f,#c0392b);
  opacity:.9;
}
/* ABOS — Intro en “stamp” (mêmes effets que l’accueil) */
#abo-intro{ text-align:center; padding: 10px 1rem 24px; }

/* resserre le “pavé” pour éviter l’effet gros panneau */
#abo-intro .parax-tagline{
  display:inline-block;              /* wrap au plus proche du texte */
  font-size: clamp(2.2rem, 6.8vw, 4.8rem);
  margin: 0;
}

/* booster un peu le rendu (verre + ombre) pour fond sombre */
#abo-intro .parax-tagline{
  background: linear-gradient(180deg, rgba(22,24,28,.55), rgba(22,24,28,.30));
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 18px 52px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.04) inset;
}

/* déclencheur d’anim, identique à .parallax-2.in-view */
.stamp-intro.in-view .parax-tagline.is-stamp{
  animation: stampIn .7s cubic-bezier(.2,.8,.2,1) both;
}
.stamp-intro.in-view .parax-tagline.is-stamp::after{
  animation: underlineIn .9s ease-out .45s forwards;
}

/* note sous le titre */
#abo-intro .intro-note{
  margin:.65rem 0 0;
  color: var(--muted);
  text-align:center;
}
#abo-intro .intro-note strong{ color:#fff; }
/* ==== A) RELIEF + NETTETÉ (scope abo) ==== */
#abo-intro .parax-tagline{
  position:relative; isolation:isolate;
  letter-spacing:.03em;
  /* relief + lisibilité forte sur fond sombre */
  -webkit-text-stroke:.7px rgba(0,0,0,.55);
  text-shadow:
    0 2px 0 rgba(0,0,0,.90),
    0 14px 36px rgba(0,0,0,.55),
    0 0 18px rgba(255,255,255,.06);
  transition: transform .18s ease, text-shadow .18s ease, filter .18s ease;
}
#abo-intro .parax-tagline:hover{
  transform: translateY(-1px) scale(1.005);
  filter: brightness(1.02);
}

/* petit “ring” intérieur du pill pour un rendu plus premium */
#abo-intro .parax-tagline::before{
  content:""; position:absolute; inset:2px; border-radius:.8rem; pointer-events:none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.16), inset 0 0 0 1px rgba(255,255,255,.05);
}

/* ==== B) SOULIGNEMENT qui “respire” après le draw ==== */
/* (réutilise déjà ton underlineIn ; on ajoute un glow bref) */
@keyframes underlineGlow{ 
  0%{ box-shadow:0 0 0 rgba(192,57,43,0) }
  40%{ box-shadow:0 0 18px rgba(192,57,43,.45) }
  100%{ box-shadow:0 0 0 rgba(192,57,43,0) }
}
.stamp-intro.in-view .parax-tagline.is-stamp::after{
  /* ta largeur animée vient d’underlineIn ; on chaîne un glow */
  animation: underlineIn .9s ease-out .45s forwards, underlineGlow .9s ease .95s 1;
  background: linear-gradient(90deg,#ff6b5f,#c0392b);
  height:4px; border-radius:999px;
}

/* ==== C) SHINE sur la police (optionnel) ==== */
/* Nécessite data-text sur le H2 (voir HTML ci-dessous) */
#abo-intro .parax-tagline[data-text]::after{
  content: attr(data-text);
  position:absolute; inset:0; z-index:2; pointer-events:none;
  background: linear-gradient(110deg, transparent 42%, rgba(255,255,255,.75) 50%, transparent 58%);
  background-size: 220% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  mix-blend-mode: screen;
  animation: stampShine 1.2s .65s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes stampShine{
  from{ background-position: -120% 0 }
  to  { background-position: 120% 0 }
}
/* === PLANS : stop au stretch + grille centrée (page-abos) === */
.page-abos #abo .grid{
  grid-template-columns: repeat(auto-fit, minmax(320px, 380px)); /* cap max ~380px */
  justify-content: center;    /* centre la grille si de l’espace autour */
  align-items: stretch;
  gap: 18px;
  max-width: 1240px;          /* largeur totale confortable pour 3 cartes */
  margin-inline: auto;
}

/* Chaque carte garde la même hauteur visuelle, sans s’étaler */
.page-abos #abo .card{
  width: 100%;
  max-width: 420px;           /* sécurité si la carte sort de la grille */
  height: 100%;
  padding: 18px 18px 16px;
}

/* Titre + prix resserrés, stop “grands blancs” */
.page-abos .abo-head{
  align-items: baseline;
  gap: 10px;
  margin-bottom: 6px;
}
.page-abos .price{ font-size: 26px; }          /* -2px vs avant */
.page-abos .features{ margin: 8px 0 12px 18px; }
.page-abos .features li{ margin: 6px 0; }
.page-abos #abo .card ul{ max-width: 58ch; }   /* largeur de ligne lisible */

/* Boutons : légère mise en avant quand beaucoup d’espace */
.page-abos #abo .card .cta-row .btn{ min-width: 150px; }

/* XXL : si l’écran est très large, autorise 400px par colonne */
@media (min-width: 1500px){
  .page-abos #abo .grid{
    grid-template-columns: repeat(auto-fit, minmax(340px, 400px));
  }
}

/* XS : quand on repasse en 1 colonne, on garde une carte compacte */
@media (max-width: 420px){
  .page-abos #abo .grid{ grid-template-columns: 1fr; }
  .page-abos #abo .card{ max-width: 100%; }
}
.page-abos #abo .card:hover{
  box-shadow: 0 18px 46px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05) inset;
  border-color:#2c3244;
  transform: translateY(-3px);
}
/* === ABOS — vignette plan dans l’en-tête ========================= */
.page-abos .abo-head{
  display:flex; align-items:center; gap:12px; /* laisse de la place à la vignette */
}

/* La vignette (petit visuel carré arrondi) */
.page-abos .plan-thumb{
  flex:0 0 auto;
  width:46px; height:46px; border-radius:10px;
  background: #111 center/cover no-repeat;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:
    0 8px 22px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.20);
  position:relative; isolation:isolate; transform: translateZ(0);
}

/* Petit reflet et vignette douce pour donner du relief */
.page-abos .plan-thumb::before{
  content:""; position:absolute; inset:0; border-radius:inherit;
  background:
    radial-gradient(120% 120% at 50% 100%, rgba(0,0,0,.25), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,0) 38%);
  mix-blend-mode: soft-light; opacity:.55; pointer-events:none;
}

/* Anneau discret (accent) visible au hover de la carte */
.page-abos #abo .card:hover .plan-thumb{
  transform: translateY(-2px) scale(1.02);
  box-shadow:
    0 12px 28px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,255,255,.06) inset;
}
.page-abos #abo .card:hover .plan-thumb::after{
  content:""; position:absolute; inset:-2px; border-radius:inherit;
  background: radial-gradient(130% 180% at 50% 120%,
    rgba(255,255,255,.14) 0 30%, rgba(255,255,255,0) 60%);
  opacity:.35; pointer-events:none;
}

/* Mapping des images par type de plan (tu peux changer les URLs) */
.page-abos #abo .card[data-plan="nomade"] .plan-thumb{
  background-image:url('assets/abos/nomade.jpg');
}
.page-abos #abo .card[data-plan="visionnaire"] .plan-thumb{
  background-image:url('assets/abos/visionnaire.jpg');
}
.page-abos #abo .card[data-plan="federateur"] .plan-thumb{
  background-image:url('assets/abos/federateur.jpg');
}

/* Option : “plan recommandé” (fédérateur) — léger glow constant */
.page-abos #abo .card[data-plan="federateur"] .plan-thumb{
  box-shadow:
    0 10px 26px rgba(192,57,43,.25),
    0 0 0 1px rgba(255,255,255,.07) inset;
}
/* === Art décoratif à droite des cartes (page-abos) === */
.page-abos .abo-card{ position:relative; }

/* Laisse de la place au visuel à droite (desktop) */
@media (min-width:980px){
  .page-abos .abo-card{
    padding-right: clamp(180px, 32%, 320px);
  }
}

/* Bloc décoratif à droite */
.page-abos .abo-card .plan-art{
  position:absolute; z-index:0; pointer-events:none;
  right: clamp(12px, 2vw, 20px);
  top: clamp(52px, 6vw, 70px);          /* sous le prix */
  bottom: clamp(60px, 8vw, 90px);       /* au-dessus des CTA */
  width: min(36%, 340px);

  background: var(--plan-art) center/contain no-repeat;
  opacity:.22;
  filter: drop-shadow(0 18px 40px rgba(0,0,0,.42));
  transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .35s ease;
}
.page-abos .abo-card:hover .plan-art{
  transform: translateY(-2px) scale(1.02);
  opacity:.28;
}

/* Mobile : pas de visuel pour éviter la compression */
@media (max-width:980px){
  .page-abos .abo-card .plan-art{ display:none }
}

/* Mappage des illustrations par plan */
.abo-card[data-plan="nomade"]      { --plan-art: url('abo_nomade.svg'); }
.abo-card[data-plan="visionnaire"] { --plan-art: url('abo_visionnaire.svg'); }
.abo-card[data-plan="federateur"]  { --plan-art: url('abo_federateur.svg'); }

/* Vignettes carrées en haut à gauche */
.page-abos .plan-thumb{
  width:36px; height:36px; border-radius:8px;
  background:center/cover no-repeat;
  box-shadow: 0 6px 18px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.06);
}
.abo-card[data-plan="nomade"]      .plan-thumb{ background-image:url('abo_thumb_nomade.svg'); }
.abo-card[data-plan="visionnaire"] .plan-thumb{ background-image:url('abo_thumb_visionnaire.svg'); }
.abo-card[data-plan="federateur"]  .plan-thumb{ background-image:url('abo_thumb_federateur.svg'); }
/* Entête des cartes = grille : [vignette][titre][prix] */
.page-abos .abo-head{
  display: grid;
  grid-template-columns: 44px 1fr auto; /* 36px de thumb + 8px de marge */
  align-items: center;
  column-gap: .8rem;
  padding: 6px 8px 2px;   /* petit breathing */
}

/* Vignette calée à gauche de l’entête */
.page-abos .abo-head .plan-thumb{
  width:36px; height:36px; border-radius:8px;
  grid-column: 1;
  justify-self: start;
}

/* Titre et prix décalés à droite de la vignette */
.page-abos .abo-head h3{
  grid-column: 2;
  margin: 0;
  transform: translateY(1px); /* micro-align baseline, optionnel */
}
.page-abos .abo-head .price{
  grid-column: 3;
  margin: 0;
  padding-left: .8rem; /* un peu d’air avant le bord droit */
}

/* Mobile : réduis un peu l’empreinte de la vignette */
@media (max-width:640px){
  .page-abos .abo-head{
    grid-template-columns: 38px 1fr auto;
    column-gap: .6rem;
  }
  .page-abos .abo-head .plan-thumb{ width:32px; height:32px; }
}
/* header = grille vignette / titre / prix */
.page-abos .abo-head{
  display:grid;
  grid-template-columns: 48px 1fr auto;
  align-items:center;
  column-gap:.9rem;
  padding:10px 14px 6px;
}

/* prix : plus gros + bien calé à droite */
.page-abos .abo-card > .abo-head .price{
  position:static !important;     /* au cas où un vieux absolute traîne */
  justify-self:end;               /* colle à droite */
  align-self:start;               /* léger effet “coin haut droit” */
  display:flex; align-items:baseline; gap:.35rem;

  font-weight:900;
  font-size: clamp(1.2rem, 2.1vw, 1.7rem); /* un peu plus grand */
  letter-spacing:.01em; line-height:1;

  padding:.35rem .6rem;
  border-radius:.7rem;
  color:#fff;

  background:linear-gradient(180deg,#1f2430,#171b24);
  border:1px solid #2b3140;
  box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.03);
}

/* détail “/ mois” plus discret, bien aligné */
.page-abos .abo-card > .abo-head .price small{
  font-size:.72rem;
  font-weight:700;
  color:#a7abb2;
  transform: translateY(2px);
}

/* si tu veux un décalage encore plus marqué, élargis la 1re colonne */
@media (min-width:900px){
  .page-abos .abo-head{ grid-template-columns: 52px 1fr auto; }
}

/* mobile : un peu moins imposant */
@media (max-width:640px){
  .page-abos .abo-head{ grid-template-columns: 40px 1fr auto; column-gap:.6rem; }
  .page-abos .abo-card > .abo-head .price{
    font-size: clamp(1.1rem, 4vw, 1.45rem);
    padding:.28rem .5rem;
  }
}
/* le card devient le référentiel */
.page-abos .abo-card{
  position: relative;
}

/* header: 2 colonnes (vignette + titre) — on libère la place du prix */
.page-abos .abo-head{
  display: grid;
  grid-template-columns: 52px 1fr;
  align-items: center;
  column-gap: .9rem;
  padding: 10px 14px 6px;
  /* on réserve un peu de place à droite pour éviter que le titre passe sous le prix */
  padding-right: 96px;
}

/* Titre plan — plus grand et plus “display” */
.page-abos .abo-head h3{
  font-family: var(--ff-display, "Bebas Neue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  font-size: clamp(1.6rem, 2.6vw, 2.2rem);
  letter-spacing: .02em;
  color: #fff;
  margin: 0;
  text-shadow: 0 2px 0 rgba(0,0,0,.70);
}

/* Prix : badge fixé dans l’angle haut droit du bloc */
.page-abos .abo-card > .abo-head .price{
  position: absolute !important;
  top: 14px;
  right: clamp(14px, 1.6vw, 22px);
  z-index: 3;

  display: inline-flex;
  align-items: baseline;
  gap: .35rem;

  font-weight: 900;
  font-size: clamp(1.3rem, 2.1vw, 1.9rem);
  line-height: 1;
  color: #fff;

  padding: .35rem .6rem;
  border-radius: .7rem;
  background: linear-gradient(180deg,#1f2430,#171b24);
  border: 1px solid #2b3140;
  box-shadow: 0 10px 24px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.03);
}

/* “/ mois” discret et bien aligné */
.page-abos .abo-card > .abo-head .price small{
  font-size: .72rem;
  font-weight: 700;
  color: #a7abb2;
  transform: translateY(2px);
}

/* Mobile : léger ajustement */
@media (max-width: 640px){
  .page-abos .abo-head{
    grid-template-columns: 44px 1fr;
    padding-right: 84px;
  }
  .page-abos .abo-card > .abo-head .price{
    top: 12px;
    right: 12px;
    font-size: clamp(1.2rem, 4vw, 1.6rem);
    padding: .3rem .5rem;
  }
}
/* ============ COMPARATIF — polish compact ============ */
.section.abos-compare{
  /* on le traite comme une carte centrée */
  max-width: min(1180px, 100% - 2rem);
  margin-inline: auto;
  padding: 0;
  background:#13161d;
  border:1px solid #252a36;
  border-radius:16px;
  box-shadow: 0 12px 36px rgba(0,0,0,.45);
  overflow:hidden;
}

/* header sobre + bouton à droite */
.abos-compare .cmp-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem; padding:12px 14px;
  background:linear-gradient(180deg,#171a20,#14171c);
  border-bottom:1px solid #252a36;
}
.abos-compare .cmp-head h2{
  margin:0; font-size:18px; color:#fff; letter-spacing:.02em;
  text-transform:uppercase; text-shadow:0 2px 0 rgba(0,0,0,.6);
}

/* tableau compact et stable */
.abos-compare .table-wrap{ overflow-x:auto; }
.abos-compare .table{
  width:100%;
  table-layout:fixed;
  border-collapse:separate; border-spacing:0;
  font-size:14px;
}

/* colonnes : 1ère plus large, les 3 autres égales */
.abos-compare thead th:first-child,
.abos-compare tbody td:first-child{
  width:38%;
  text-align:left;
  padding-left:16px;
}
.abos-compare thead th:not(:first-child),
.abos-compare tbody td:not(:first-child){
  width:calc((100% - 38%) / 3);
  text-align:center;
}

/* sticky header + sticky première colonne (utile si ça scrolle en petit écran) */
.abos-compare thead th{
  position:sticky; top:0; z-index:2;
  background:#161a20; color:#aeb4bd; font-weight:700;
}
.abos-compare th, .abos-compare td{
  padding:12px 10px;
  border-top:1px solid #222735;
}
.abos-compare tbody tr:nth-child(odd){ background:#10141b; }
.abos-compare tbody tr:hover{
  background:linear-gradient(90deg,#141a22,#141a22) !important;
}

/* “pills” lisibles pour les valeurs */
.abos-compare .yes,
.abos-compare .no,
.abos-compare .emph,
.abos-compare .hot{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:52px;
  padding:.22rem .5rem; border-radius:.55rem;
  font-weight:800; letter-spacing:.01em;
}

/* Oui / Non / Prix / Bonus */
.abos-compare .yes{
  color:#2ecc71;
  background:rgba(46,204,113,.10);
  border:1px solid rgba(46,204,113,.25);
}
.abos-compare .no{
  color:#9aa0a6; background:rgba(154,160,166,.08);
  border:1px solid rgba(154,160,166,.18);
}
.abos-compare .emph{
  color:#fff; background:linear-gradient(180deg,#1f2430,#171b24);
  border:1px solid #2b3140; box-shadow:0 6px 12px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.03);
}
.abos-compare .hot{
  color:#fff; background:linear-gradient(180deg,#ff6b5f,#c0392b);
  border:1px solid rgba(255,255,255,.08); box-shadow:0 6px 14px rgba(192,57,43,.35);
}

/* colonne mise en avant (via classe .highlight) */
.abos-compare .col.highlight{
  background: linear-gradient(180deg,#1a1f2b,#151a22);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
}

/* première colonne sticky a besoin d’un fond solide */
.abos-compare tbody td:first-child{
  position:sticky; left:0; z-index:1;
  background:inherit;
}

/* note finale */
.abos-compare .note{
  margin:10px 12px 14px;
  color:#a7abb2; font-size:13px;
}

/* responsive : un peu plus d’air et tailles adaptées */
@media (max-width: 900px){
  .abos-compare thead th:first-child,
  .abos-compare tbody td:first-child{ width:44%; }
}
@media (max-width: 640px){
  .abos-compare .cmp-head{ padding:10px 12px; }
  .abos-compare th, .abos-compare td{ padding:10px 8px; }
}
/* ===== CENTRAGE + TYPO + TAILLES (Comparatif) ===== */
.section.abos-compare .table { font-size:15px; }
.section.abos-compare th, 
.section.abos-compare td {
  vertical-align: middle;
}

/* 1) colonnes : 1ère à gauche, le reste CENTRÉ strict */
.section.abos-compare thead th:first-child,
.section.abos-compare tbody td:first-child{
  width:42%;
  text-align:left;
  padding-left:16px;
}
.section.abos-compare thead th.col,
.section.abos-compare tbody td.col{
  width:calc((100% - 42%) / 3);
  text-align:center;
}

/* 2) centrage “géométrique” du contenu d’en-tête (ignore padding) */
.section.abos-compare thead th.col{
  display:flex; align-items:center; justify-content:center; gap:.45rem;
  white-space:nowrap;
}

/* 3) style des intitulés d’abos (header) */
.section.abos-compare thead th.col{
  font-family: var(--ff-display, "Bebas Neue", system-ui, sans-serif);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: clamp(15px, 1.5vw, 20px);
  color:#e9eaec;
}

/* 4) pills : taille/rythme homogènes */
.section.abos-compare .yes,
.section.abos-compare .no,
.section.abos-compare .emph,
.section.abos-compare .hot{
  min-width: 58px;
  padding: .28rem .6rem;
  border-radius: .6rem;
  font-weight: 800;
  letter-spacing: .01em;
  font-size: .98rem;
}

/* ligne Prix plus lisible */
.section.abos-compare tbody tr:first-child .emph{
  min-width: 64px;
  font-size: 1.05rem;
  padding: .32rem .68rem;
}

/* les tirets un peu plus présents mais discrets */
.section.abos-compare .no{ opacity:.9 }

/* 5) resserrer légèrement la hauteur de ligne pour éviter l’effet “étiré” */
.section.abos-compare th, 
.section.abos-compare td{
  padding: 11px 10px;   /* avant: 12px */
}

/* 6) responsive : quand l’écran est étroit on donne plus de place à la 1ère col */
@media (max-width: 900px){
  .section.abos-compare thead th:first-child,
  .section.abos-compare tbody td:first-child{ width:48%; }
  .section.abos-compare thead th.col,
  .section.abos-compare tbody td.col{ width:calc((100% - 48%) / 3); }
}
@media (max-width: 640px){
  .section.abos-compare .table{ font-size:14px; }
  .section.abos-compare .yes,
  .section.abos-compare .no,
  .section.abos-compare .emph{ font-size:.95rem; }
}
/* === HOTFIX noms d'abonnements (header) === */
.section.abos-compare thead th.col{
  /* on redevient une vraie cellule de tableau */
  display: table-cell !important;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  padding: 14px 10px; /* hauteur propre, pas étirée */
  /* neutralise l'ancien gap de la version flex */
  gap: 0;
}

/* typo header (on garde Bebas) */
.section.abos-compare thead th.col{
  font-family: var(--ff-display, "Bebas Neue", system-ui, sans-serif);
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .03em;
  font-size: clamp(15px, 1.5vw, 20px);
  color:#e9eaec;
}

/* rythme global de la table un poil resserré */
.section.abos-compare th,
.section.abos-compare td{
  line-height: 1.25;
  padding-top: 11px;
  padding-bottom: 11px;
}

/* première colonne (libellés) reste alignée à gauche */
.section.abos-compare thead th:first-child,
.section.abos-compare tbody td:first-child{
  text-align: left;
  padding-left: 16px;
}
/* BASE — mettez cette règle à la place de votre .hot actuelle */
.section.abos-compare :where(.hot){
  --bg1:#ff6b5f; --bg2:#c0392b;        /* valeurs par défaut (rouge) */
  --txt:#fff; --ring:rgba(255,255,255,.10);
  --glow:rgba(192,57,43,.40);
  display:inline-block; padding:8px 14px; border-radius:12px;
  color:var(--txt); font-weight:900; letter-spacing:.02em; line-height:1;
  background:linear-gradient(180deg,var(--bg1),var(--bg2));
  border:1px solid var(--ring);
  box-shadow:0 12px 26px var(--glow), 0 0 0 1px rgba(255,255,255,.04) inset;
  transition:transform .16s ease, filter .16s ease, box-shadow .16s ease;
}
.section.abos-compare .hot:hover{
  transform:translateY(-1px);
  filter:saturate(1.08) brightness(1.04);
  box-shadow:0 16px 36px var(--glow), 0 0 0 1px rgba(255,255,255,.06) inset;
}
.section.abos-compare .hot:active{ transform:translateY(0) scale(.99); }

/* VARIANTES — hot hot--green / hot--amber / hot--red */
.section.abos-compare .hot--green{
  --bg1:#33dc7f; --bg2:#1fa260; --txt:#fff; --ring:rgba(255,255,255,.10);
  --glow:rgba(46,204,113,.40);
}
.section.abos-compare .hot--amber{
  --bg1:#ffe063; --bg2:#e7bd1b; --txt:#111; --ring:rgba(255,255,255,.14);
  --glow:rgba(246,201,14,.45);
  text-shadow:0 1px 0 rgba(255,255,255,.25);
}
.section.abos-compare .hot--red{
  --bg1:#ff6b5f; --bg2:#c0392b; --txt:#fff; --ring:rgba(255,255,255,.10);
  --glow:rgba(192,57,43,.45);
}
/* --- Compare : polaroids collés aux bords du tableau --- */
.compare-band{
  position: relative;
  overflow: visible;

  /* largeur max “visuelle” du contenu de .section (à adapter si besoin) */
  --content-max: min(1180px, 100% - 64px);

  /* écart entre le polaroid et le bloc (diminue pour rapprocher) */
  --polaroid-gap: 200px;
}

.compare-band .abos-compare{ position: relative; z-index: 5; }

.compare-band .cmp-polaroid{
  position:absolute; top:50%; z-index:1; pointer-events:none;
  width: clamp(220px, 22vw, 440px);
  aspect-ratio: 16/10;
  border-radius:14px;
  background:#0f1216;
  box-shadow: 0 24px 60px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06) inset;
  overflow:hidden; isolation:isolate;
}

.compare-band .cmp-polaroid::before{
  content:""; position:absolute; inset:0;
  background: var(--photo) center/cover no-repeat;
  transform:scale(1.06);
  opacity:.95; box-shadow: inset 0 0 0 100vmax rgba(0,0,0,.14);
}
.compare-band .cmp-polaroid::after{
  content:""; position:absolute; left:50%; top:12px;
  width:100px; height:22px; transform:translateX(-50%) rotate(-10deg);
  border-radius:4px;
  background: linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.25));
  mix-blend-mode:screen; opacity:.55; box-shadow:0 8px 18px rgba(0,0,0,.45);
}

/* Positionnement par rapport aux BORDS du contenu */
.compare-band .cmp-polaroid.left{
  left:  calc(55% - var(--content-max)/2 - var(--polaroid-gap));
  transform: translate(-100%, -50%) rotate(-20deg);
}
.compare-band .cmp-polaroid.right{
  right: calc(52% - var(--content-max)/2 - var(--polaroid-gap));
  transform: translate(100%, -50%) rotate(7deg);
}

@media (max-width:1100px){
  .compare-band .cmp-polaroid{ display:none; }
}
/* coupe le débordement horizontal sans casser le scroll vertical */
html, body{
  width: 100%;
  overflow-x: clip;               /* moderne */
}

@supports not (overflow-x: clip){
  html, body{ overflow-x: hidden; }   /* fallback Safari/anciens Firefox */
}

/* évite le "pan" horizontal sur mobile (rebond latéral) */
body{ overscroll-behavior-x: none; touch-action: pan-y; }
/* ===== Infos importantes (scopé) ===== */
.legal-info{
  position:relative;
  margin-top:26px;
  padding: clamp(16px, 2vw, 22px);
  border:1px solid #2b3140;
  border-radius:16px;
  background: radial-gradient(120% 140% at 0% 0%, #161a22 0%, #11141a 60%);
  box-shadow: 0 14px 46px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.03);
  color:#cfd3da;
  overflow:hidden;

  /* apparition au viewport */
  opacity:0; transform: translateY(12px) scale(.985);
  transition: opacity .55s ease, transform .55s cubic-bezier(.2,.8,.2,1);
}
.legal-info.in-view{ opacity:1; transform:none; }

.legal-title{
  margin:0 0 .6rem; color:#fff;
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size: clamp(1.4rem, 3.2vw, 1.9rem);
  letter-spacing:.02em; display:inline-block; position:relative; padding-left:.2rem;
  text-shadow:0 2px 0 rgba(0,0,0,.7);
}
.legal-title::after{
  content:""; display:block; height:4px; width:0; margin-top:.35rem;
  background:linear-gradient(90deg,#ff6b5f,#c0392b);
  border-radius:3px; box-shadow:0 2px 14px rgba(192,57,43,.35);
  transition: width .7s cubic-bezier(.2,.8,.2,1) .12s;
}
.legal-info.in-view .legal-title::after{ width:min(300px, 42%); }

.legal-list{
  list-style:none; margin:0; padding:0;
  display:grid; gap:.6rem;
}
.legal-item{
  position:relative;
  padding: .75rem .9rem .75rem 2.6rem;
  border:1px solid rgba(255,255,255,.06);
  border-radius:.8rem;
  background: linear-gradient(180deg, rgba(28,32,40,.55), rgba(22,24,30,.38));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.02);
  color:#d6d9df;
}
.legal-item strong{ color:#fff; font-weight:800; }
.legal-item a{ color:#c6d3ff; text-decoration:underline; }
.legal-item::before{
  content:""; position:absolute; left:.9rem; top:50%; transform:translateY(-50%);
  width:10px; height:10px; border-radius:50%;
  background: radial-gradient(circle at 30% 30%, #ff766b, #c0392b);
  box-shadow:0 0 0 3px rgba(192,57,43,.18);
}
.legal-item::after{
  /* mini “surlignage” vertical */
  content:""; position:absolute; left:.55rem; top:.6rem; bottom:.6rem; width:3px; border-radius:3px;
  background:linear-gradient(180deg,#ff6b5f,#c0392b);
  opacity:.55;
}

/* Stagger reveal */
.legal-info .legal-item{ opacity:0; transform:translateY(8px); }
.legal-info.in-view .legal-item{
  animation: legalRise .45s cubic-bezier(.2,.8,.2,1) forwards;
}
.legal-info.in-view .legal-item:nth-child(1){ animation-delay:.05s }
.legal-info.in-view .legal-item:nth-child(2){ animation-delay:.12s }
.legal-info.in-view .legal-item:nth-child(3){ animation-delay:.19s }
.legal-info.in-view .legal-item:nth-child(4){ animation-delay:.26s }

@keyframes legalRise{ to{ opacity:1; transform:none } }

@media (prefers-reduced-motion: reduce){
  .legal-info,.legal-info .legal-item{ transition:none; animation:none; opacity:1; transform:none; }
}
/* Plus d'espace sous le comparatif + bloc centré, pas pleine largeur */
.abos-compare + .legal-card,
.compare-band + .legal-card{
  margin-top: clamp(28px, 5vw, 60px);
}

.legal-card{
  /* largeur contenue sous le comparatif */
  max-width: min(1000px, 100% - 2rem);
  margin-inline: auto;

  /* carte compacte */
  padding: clamp(14px, 2.4vw, 20px) clamp(16px, 3vw, 24px);
  background: var(--card);
  border: 1px solid var(--ring);
  border-radius: 14px;
  box-shadow: 0 12px 36px rgba(0,0,0,.40), inset 0 0 0 1px rgba(255,255,255,.02);

  /* apparition douce */
  opacity: 0; transform: translateY(10px);
  transition: opacity .45s ease, transform .45s ease;
}
.legal-card.in-view{ opacity:1; transform:none; }

/* Titre harmonisé */
.legal-title{
  margin: 0 0 .6rem;
  color:#fff;
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-size: clamp(1.4rem, 4.2vw, 2rem);
  letter-spacing:.02em; line-height:.95;
  text-shadow:0 2px 0 rgba(0,0,0,.7);
  position:relative;
}
.legal-title::after{
  content:""; display:block; height:3px; margin-top:.35rem;
  width:min(260px, 40%); border-radius:3px;
  background:linear-gradient(90deg,#ff6b5f,#c0392b);
  box-shadow:0 2px 10px rgba(192,57,43,.35);
}

/* Rangées : 1 colonne mobile, 2 colonnes sur desktop (hauteur réduite) */
.legal-rows{
  display:grid; gap:.6rem;
}
@media (min-width: 920px){
  .legal-rows{ grid-template-columns: 1fr 1fr; }
}

/* Chaque point = petite pill lisible */
.legal-rows p{
  margin:0;
  padding:.65rem .8rem .65rem .9rem;
  border-radius:.7rem;
  background:linear-gradient(180deg, rgba(28,32,40,.55), rgba(22,24,30,.38));
  border:1px solid rgba(255,255,255,.06);
  color: var(--fg);
  line-height:1.62;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.015);
}
.legal-rows p strong{ color:#fff; font-weight:800 }
.legal-rows a{ color:#dfe3ff; text-decoration:underline dotted; }

/* petite bordure d’accent à gauche */
.legal-rows p{
  position:relative;
}
.legal-rows p::before{
  content:""; position:absolute; left:-1px; top:10px; bottom:10px; width:4px;
  border-radius:6px;
  background:linear-gradient(180deg,#ff6b5f,#c0392b);
  opacity:.8;
}

/* réduit encore un peu si demandé par l’utilisateur */
@media (max-width: 520px){
  .legal-card{ padding: 12px 14px; }
}
/* ===== Animations dans le bloc légal ===== */

/* 1) Soulignement du titre qui se déroule */
.legal-card .legal-title::after{
  width: 0;                                /* fermé au repos */
  transition: width .7s cubic-bezier(.2,.8,.2,1);
}
.legal-card.in-view .legal-title::after{
  width: min(260px, 40%);                  /* se déroule à l'entrée */
}

/* 2) Apparition en cascade des points (fade + rise) */
@keyframes rowIn{
  from{ opacity:0; transform: translateY(8px); }
  to  { opacity:1; transform: none; }
}

.legal-card.in-view .legal-rows p{
  animation: rowIn .45s var(--ease) both;
}

/* décalage progressif */
.legal-card.in-view .legal-rows p:nth-child(1){ animation-delay:.05s }
.legal-card.in-view .legal-rows p:nth-child(2){ animation-delay:.12s }
.legal-card.in-view .legal-rows p:nth-child(3){ animation-delay:.19s }
.legal-card.in-view .legal-rows p:nth-child(4){ animation-delay:.26s }

/* 3) Barre d’accent qui “pousse” (du haut vers le bas) */
.legal-rows p::before{
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .55s var(--ease) .02s;
}
.legal-card.in-view .legal-rows p::before{
  transform: scaleY(1);
}
/* on synchronise le délai avec la cascade */
.legal-card.in-view .legal-rows p:nth-child(1)::before{ transition-delay:.05s }
.legal-card.in-view .legal-rows p:nth-child(2)::before{ transition-delay:.12s }
.legal-card.in-view .legal-rows p:nth-child(3)::before{ transition-delay:.19s }
.legal-card.in-view .legal-rows p:nth-child(4)::before{ transition-delay:.26s }

/* 4) “Shine” très léger au survol d’une ligne (verre) */
.legal-rows p::after{
  content:"";
  position:absolute; inset:-140% -20%;
  background: linear-gradient(100deg, rgba(255,255,255,0) 38%, rgba(255,255,255,.18) 50%, rgba(255,255,255,0) 62%);
  transform: translateX(-85%) rotate(12deg);
  opacity:0; mix-blend-mode:screen; pointer-events:none;
  transition: transform .65s cubic-bezier(.2,.8,.2,1), opacity .3s;
  border-radius: inherit;
}
@media (hover:hover){
  .legal-rows p:hover::after{
    transform: translateX(125%) rotate(12deg);
    opacity:.55;
  }
}

/* Accessibilité : coupe les anims si l'utilisateur réduit le mouvement */
@media (prefers-reduced-motion: reduce){
  .legal-card,
  .legal-title::after,
  .legal-rows p,
  .legal-rows p::before,
  .legal-rows p::after{
    transition: none !important;
    animation: none !important;
  }
}
/* Clip le shine dans chaque ligne + sécurise le contexte */
.legal-rows p{
  position: relative;         /* au cas où */
  overflow: hidden;           /* coupe l'overlay au bord de la ligne */
}

/* Shine plus petit (ne déborde plus) */
.legal-rows p::after{
  inset: -20% -10%;           /* AVANT: -140% -20% -> beaucoup trop grand */
  transform: translateX(-115%) rotate(12deg);
}

@media (hover:hover){
  .legal-rows p:hover::after{
    transform: translateX(115%) rotate(12deg); /* traverse proprement la ligne */
  }
}
/* ===== FAQ rich ===== */
.faq-rich{ 
  max-width: min(1100px, 100% - 2rem);
  margin-inline:auto;
  scroll-margin-top: 84px;
}
.faq-head{
  display:flex; align-items:center; justify-content:space-between; gap:.6rem;
  margin-bottom:.6rem;
}
.faq-head h2{
  margin:0; color:#e9eaec; text-transform:uppercase; letter-spacing:.02em;
  font-family:"Bebas Neue",var(--ff-display, system-ui); font-size:clamp(1.6rem,4.8vw,2rem);
}
.faq-actions{ display:flex; gap:.4rem; flex-wrap:wrap; }

/* Liste */
.faq-list details{
  position:relative;
  margin:.55rem 0;
  border:1px solid var(--ring);
  background: radial-gradient(120% 140% at 0% 0%, #171b22 0%, #12161b 60%);
  border-radius:12px;
  box-shadow: var(--shadow-1);
  overflow:hidden;
  transition:border-color .2s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  opacity:0; transform: translateY(10px);
}
.faq-rich.in-view .faq-list details{ animation: faqIn .45s var(--ease) forwards; }
.faq-rich.in-view .faq-list details:nth-child(2){ animation-delay:.04s }
.faq-rich.in-view .faq-list details:nth-child(3){ animation-delay:.08s }
.faq-rich.in-view .faq-list details:nth-child(4){ animation-delay:.12s }
@keyframes faqIn{ to{ opacity:1; transform:none } }

.faq-list details::before{
  content:""; position:absolute; left:-1px; top:0; bottom:0; width:4px;
  background: linear-gradient(180deg, var(--accent), var(--accent-2));
  opacity:.85;
}

/* Summary */
.faq-list summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:.6rem;
  padding: .9rem 1rem;
  font-weight:800; letter-spacing:.02em; color:#e9eaec;
}
.faq-list summary::-webkit-details-marker{ display:none }
.faq-list summary .ico{ filter: drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
.faq-list summary::after{
  content:"▸"; margin-left:auto; opacity:.9; transform:translateY(.04em);
  transition: transform .25s var(--ease), opacity .25s var(--ease);
}
.faq-list details[open] summary::after{ transform: rotate(90deg); opacity:1; }

/* Mentions légales (résumé) */
.legal-notes{
  margin-top:1rem;
  border:1px solid var(--ring); border-radius:12px;
  background: radial-gradient(120% 140% at 0% 0%, #171b22 0%, #12161b 60%);
  box-shadow: var(--shadow-1);
  padding: .9rem 1rem;
}
.legal-notes h3{
  margin:0 0 .3rem; color:#fff; font-family:"Bebas Neue",var(--ff-display, system-ui);
  letter-spacing:.02em; font-size:clamp(1.2rem,3.5vw,1.35rem);
}
.legal-notes .note{ color:var(--muted); font-size:.95rem; margin:.35rem 0 0; }

/* Hover/focus states */
.faq-list details:hover{ border-color: color-mix(in srgb, var(--accent) 30%, var(--ring)); box-shadow: var(--shadow-2); }
.faq-list summary:focus-visible{ outline:none; box-shadow: 0 0 0 3px color-mix(in srgb, #fff 60%, transparent); }

/* Respect préférences */
@media (prefers-reduced-motion:reduce){
  .faq-list details{ transition:none; animation:none; opacity:1; transform:none }
  .faq-pane{ transition:none; max-height:none; opacity:1 }
}
/* ===== FAQ : grille 2 colonnes sur desktop ===== */
.faq-rich .faq-list{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;                  /* espace horizontal/vertical entre cartes */
}
.faq-rich .faq-list details{
  margin: 0;                   /* on laisse le gap gérer l'espacement */
}

/* (optionnel) un item qui doit prendre toute la largeur */
.faq-rich .faq-list details.span-2{
  grid-column: 1 / -1;
}

/* Responsive : 1 colonne sous 900px ~ */
@media (max-width: 900px){
  .faq-rich .faq-list{
    grid-template-columns: 1fr;
  }
}
.faq-list details{ transition: border-color .18s ease, background .18s ease; }
.faq-list summary{ display:flex; align-items:center; justify-content:space-between; gap:.8rem; }
.faq-list summary .chev{ transition: transform .25s ease; }
.faq-list details[open] summary .chev{ transform: rotate(90deg); }

/* FAQ — version unique rejouable */
.faq-pane{
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows .28s var(--ease);
  will-change:grid-template-rows;
}
.faq-pane > *{ overflow:hidden; padding:10px 14px 14px; }
.faq-list details[open] .faq-pane{ grid-template-rows:1fr; }
.faq-list summary{ user-select:none; }
/* assets/site.css */
.audio-toggle{
  background: none;
  border: 0;
  font-size: 1.15rem;
  cursor: pointer;
}
body.is-muted .audio-toggle{ opacity: .7 }
/* bouton + icône + texte */
.audio-toggle{ display:inline-flex; align-items:center; gap:.45rem; }
.audio-toggle .label{ font-weight:700 }

/* icône via CSS mask (2 états) */
.audio-toggle{ --ico:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M14 3.23v17.54c0 .47-.5.75-.9.5L8 18H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h3l5.1-3.27c.4-.25.9.03.9.5Z"/></svg>'); }
.audio-toggle .ico{
  width:18px;height:18px;background:currentColor;
  -webkit-mask: var(--ico) center/contain no-repeat;
  mask: var(--ico) center/contain no-repeat;
}
.audio-toggle.is-muted{ --ico:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="%23fff" d="M12.1 3.73 8 7H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h3l4.1 3.27c.4.25.9-.03.9-.5V4.23c0-.47-.5-.75-.9-.5ZM17.59 12l2.7-2.7a1 1 0 1 0-1.42-1.42L16.17 10.6l-2.7-2.7a1 1 0 0 0-1.42 1.42l2.7 2.7-2.7 2.7a1 1 0 1 0 1.42 1.42l2.7-2.7 2.7 2.7a1 1 0 0 0 1.42-1.42L17.6 12Z"/></svg>'); }

/* ===== Header pro + boutons animés ===== */
:root{
  --bg:#0b0c0f; --panel:#12141a; --line:#252a36;
  --title:#efe9db; --text:#dcd8cc; --muted:#a7abb2;
  --accent:#c0392b; --accent-2:#e74c3c;
}

.site-header{
  position:sticky; top:0; z-index:1000;
  display:flex; align-items:center; gap:16px;
  padding:10px 16px;
  background:color-mix(in srgb, var(--bg) 85%, transparent);
  backdrop-filter: blur(8px);
  border-bottom:1px solid var(--line);
  transition: box-shadow .25s ease;
}
.site-header.scrolled{ box-shadow:0 8px 24px rgba(0,0,0,.35); }

.brand{ display:flex; align-items:center; gap:10px; }
.brand-title{ color:var(--title); font-weight:800; letter-spacing:.3px; }

.nav{ margin-left:auto; position:relative; display:flex; align-items:center; gap:10px; }
.menu{
  list-style:none; margin:0; padding:6px 6px 14px; /* place pour l'underline */
  display:flex; align-items:center; gap:6px; position:relative;
  border:1px solid color-mix(in srgb, var(--line) 90%, transparent);
  border-radius:14px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12));
}
.menu li{ position:relative; }
.menu .nav-link{
  display:block; padding:10px 14px; border-radius:12px;
  color:var(--text); text-decoration:none; font-weight:600; letter-spacing:.2px;
  transition: color .2s ease, transform .2s ease;
  outline: none;
}
.menu .nav-link::before{
  content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
  background:
    radial-gradient(120% 120% at 50% -20%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(0,0,0,.15));
  opacity:0; transform:scale(.96);
  transition: opacity .25s ease, transform .25s ease, box-shadow .25s ease;
}
.menu .nav-link:hover,
.menu .nav-link:focus-visible{ color:var(--title); transform:translateY(-1px); }
.menu .nav-link:hover::before,
.menu .nav-link:focus-visible::before{ opacity:1; transform:scale(1); box-shadow:0 6px 18px rgba(0,0,0,.25) inset; }
.menu .nav-link.is-active{ color:var(--title); }
.menu .nav-link.is-active::before{ opacity:1; transform:scale(1); }

/* underline “ink” glissant (créé en JS) */
.menu .ink{
  position:absolute; left:0; bottom:6px; height:2px; width:0; opacity:0;
  background:linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius:2px; box-shadow:0 0 12px color-mix(in srgb, var(--accent) 60%, transparent);
  transition: transform .25s ease, width .25s ease, opacity .2s;
}

/* CTA Discord */
.menu .cta{
  display:inline-block; padding:10px 14px; border-radius:12px;
  text-decoration:none; font-weight:700; letter-spacing:.2px;
  color:var(--title);
  background: linear-gradient(180deg, #2d2d2d, #171717);
  border:1px solid color-mix(in srgb, var(--line) 80%, transparent);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.menu .cta:hover{ transform:translateY(-1px); box-shadow: 0 8px 18px rgba(0,0,0,.25); }

/* Bouton burger */
.nav-toggle{
  display:none; width:42px; height:38px; border-radius:12px; margin-right:6px;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.15));
  color:var(--title); cursor:pointer;
}

/* Audio toggle — style (pas de logique JS modifiée) */
.audio-toggle{
  margin-left:8px; padding:8px 12px; border-radius:12px;
  border:1px solid var(--line); background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.15));
  color:var(--text); display:flex; align-items:center; gap:8px;
}
.audio-toggle .ico{ width:12px; height:12px; border-radius:50%;
  box-shadow:0 0 0 2px rgba(0,0,0,.3) inset;
  background: radial-gradient(circle at 50% 40%, var(--accent-2), var(--accent));
  opacity:.7;
}
.audio-toggle.is-muted .ico{ background: radial-gradient(circle at 50% 40%, #666, #333); opacity:.6; }

/* Responsive */
@media (max-width: 900px){
  .nav-toggle{ display:block; }
  .menu{
    position:absolute; right:0; top:calc(100% + 8px);
    display:grid; gap:4px; padding:10px; width:min(92vw, 320px);
    transform-origin: top right; transform: scaleY(0);
    opacity:0; pointer-events:none;
  }
  .nav[aria-expanded="true"] .menu{
    transform: scaleY(1); opacity:1; pointer-events:auto;
  }
  .menu .ink{ display:none; }
}
/* === CENTRER LE MENU ENTRE LE LOGO ET LE BOUTON AUDIO === */
.site-header{
  display:flex; align-items:center; gap:16px;
}
.brand{ flex:0 0 auto; }
.nav{
  flex:1 1 auto;                        /* prend l’espace central */
  display:flex; justify-content:center; /* centre la pastille */
  align-items:center; gap:10px;
  position:relative;
  margin:0;                              /* annule un éventuel margin-left:auto */
}
.audio-toggle{ flex:0 0 auto; margin-left:8px; }

/* === VARIANTE NÉON ROUGE (couleurs et glow) === */
:root{
  --accent:#ff3b30;          /* rouge néon */
  --accent-2:#ff6b57;        /* rouge orangé */
}

/* pastille du menu (verre + liseré rouge très léger) */
.menu{
  list-style:none; margin:0; padding:6px 6px 16px;
  display:flex; align-items:center; gap:6px; position:relative;
  border-radius:14px;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(0,0,0,.12));
  box-shadow:
    inset 0 0 0 1px rgba(255,90,90,.08),
    0 8px 30px rgba(255,60,60,.06);
}

/* liens + halo néon */
.menu .nav-link{
  position:relative; display:block; padding:10px 14px; border-radius:12px;
  color:var(--text); text-decoration:none; font-weight:700; letter-spacing:.2px;
  transition: color .2s ease, transform .2s ease;
}
.menu .nav-link::before{
  content:""; position:absolute; inset:0; border-radius:12px; pointer-events:none;
  background:
    radial-gradient(120% 120% at 50% -20%, color-mix(in srgb, var(--accent) 35%, transparent), transparent 65%),
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(0,0,0,.22));
  opacity:0; transform:scale(.96);
  transition: opacity .25s ease, transform .25s ease, box-shadow .25s ease;
}
.menu .nav-link:hover,
.menu .nav-link:focus-visible{ color:var(--title); transform:translateY(-1px); }
.menu .nav-link:hover::before,
.menu .nav-link:focus-visible::before{
  opacity:1; transform:scale(1);
  box-shadow: 0 6px 18px rgba(255,80,80,.25) inset;
}
.menu .nav-link.is-active{
  color:var(--title);
  text-shadow: 0 0 8px rgba(255,80,80,.6), 0 0 18px rgba(255,80,80,.25);
}
.menu .nav-link.is-active::before{ opacity:1; transform:scale(1); }

/* soulignement “ink” façon néon */
.menu .ink{
  position:absolute; left:0; bottom:6px; height:3px; width:0; opacity:0;
  background:linear-gradient(90deg, #ff3b30, #ff6b57);
  border-radius:3px;
  filter: drop-shadow(0 0 10px rgba(255,58,46,.65)) drop-shadow(0 0 20px rgba(255,58,46,.35));
  transition: transform .25s ease, width .25s ease, opacity .2s;
}

/* bouton Rejoindre en néon rouge */
.menu .cta{
  display:inline-block; padding:10px 14px; border-radius:12px; font-weight:800;
  text-decoration:none; color:var(--title);
  background: linear-gradient(180deg, #ff6b57, #d6312a);
  box-shadow:
    0 8px 26px rgba(255,60,60,.25),
    0 0 0 1px rgba(255,60,60,.15) inset;
  transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.menu .cta:hover{
  transform:translateY(-1px);
  box-shadow:
    0 12px 34px rgba(255,60,60,.35),
    0 0 0 1px rgba(255,60,60,.25) inset;
  filter: drop-shadow(0 0 8px rgba(255,60,60,.5));
}

/* responsive (inchangé) */
@media (max-width: 900px){
  .menu{
    position:absolute; right:0; top:calc(100% + 8px);
    display:grid; gap:4px; padding:10px; width:min(92vw,320px);
    transform-origin: top right; transform:scaleY(0);
    opacity:0; pointer-events:none;
  }
  .nav[aria-expanded="true"] .menu{
    transform:scaleY(1); opacity:1; pointer-events:auto;
  }
  .menu .ink{ display:none; }
}
/* Bouton Discord : long, blurple + super effet */
.menu .discord-btn{
  --blurple-1:#6A75FF;   /* dégradé haut */
  --blurple-2:#5865F2;   /* Discord officiel */
  --blurple-3:#4450D8;   /* ombre */
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:12px 22px;
  min-width:180px;                 /* >> plus long */
  border-radius:14px;
  text-transform:uppercase; letter-spacing:.6px; font-weight:800;
  color:#fff; text-decoration:none;
  background:linear-gradient(180deg, var(--blurple-1), var(--blurple-2));
  border:1px solid rgba(88,101,242,.55);
  box-shadow:
    0 10px 28px rgba(88,101,242,.32),
    inset 0 1px 0 rgba(255,255,255,.12);
  position:relative; overflow:hidden;
  transition: transform .2s ease, box-shadow .25s ease, filter .25s ease;
}
.menu .discord-btn .icon{ line-height:0; }
.menu .discord-btn svg{ display:block; color:#fff; }

/* halo externe + liseré animé */
.menu .discord-btn::before{
  content:""; position:absolute; inset:-2px; border-radius:inherit; pointer-events:none;
  box-shadow: 0 0 0 3px rgba(88,101,242,.25), 0 0 30px rgba(88,101,242,.35);
  opacity:.0; transition: opacity .25s ease;
}

/* rayon “shimmer” qui traverse le bouton au hover */
.menu .discord-btn::after{
  content:""; position:absolute; left:-35%; top:-120%;
  width:30%; height:300%; transform:rotate(20deg);
  background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,.55) 45%, rgba(255,255,255,0) 100%);
  filter:blur(2px); opacity:0;
  transition: opacity .2s ease, transform .55s ease;
}

.menu .discord-btn:hover{
  transform:translateY(-1px);
  box-shadow:
    0 14px 40px rgba(88,101,242,.45),
    inset 0 1px 0 rgba(255,255,255,.18);
  filter: drop-shadow(0 0 10px rgba(88,101,242,.45));
}
.menu .discord-btn:hover::before{ opacity:1; }
.menu .discord-btn:hover::after{ opacity:1; transform:translateX(270%) rotate(20deg); }
.menu .discord-btn:active{ transform:translateY(0); }

/* (Optionnel) petite pulsation automatique : ajoute .is-pulsing à l'ancre si tu veux */
@keyframes glowpulse{
  0%,100%{ box-shadow:0 10px 28px rgba(88,101,242,.28) }
  50%{    box-shadow:0 14px 44px rgba(88,101,242,.45) }
}
.menu .discord-btn.is-pulsing{ animation: glowpulse 2.6s ease-in-out infinite; }
/* ==== RÈGLEMENT — HERO PARALLAXE (scopé, n'impacte rien d'autre) ==== */
.reg-hero{
  position:relative; isolation:isolate;
  min-height:clamp(42vh,56vh,68vh);
  display:grid; place-items:center;
  margin: 12px 16px 24px;        /* un peu d'air autour du hero */
  overflow:hidden; border-radius:14px;
  background:#0b0c0f;
}
.reg-hero__media{ position:absolute; inset:0; overflow:hidden; }
.reg-hero__media img{
  width:100%; height:100%; object-fit:cover;
  transform: translate3d(0,var(--regY,0px),0) scale(1.12);
  filter: brightness(.66) contrast(1.05) saturate(1.05);
  will-change: transform;
}
.reg-hero::after{ /* dégradé sombre pour lisibilité du titre */
  content:""; position:absolute; inset:0; z-index:1;
  background:
    radial-gradient(110% 70% at 50% 10%, rgba(0,0,0,.2), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.3), rgba(0,0,0,.65) 65%, rgba(0,0,0,.82));
}
.reg-hero__inner{ position:relative; z-index:2; text-align:center; padding: 10vh 3vw; }
.reg-hero__title{
  margin:0 0 .6rem; line-height:.95;
  font-family: var(--font-hero, "Bebas Neue","Anton",system-ui,sans-serif);
  font-size: clamp(40px, 7.5vw, 90px);
  font-weight:900; letter-spacing:.06em; text-transform:uppercase;
  color:#efe9db;
  text-shadow: 0 8px 28px rgba(0,0,0,.55);
}
.reg-hero__sub{
  margin:0; color:#dcd8cc; opacity:.9; font-weight:600;
  letter-spacing:.02em; font-size: clamp(14px, 1.6vw, 14px);
}
/* Force la même display que l'accueil */
.reg-hero__title{
  font-family: 'Bebas Neue', system-ui, sans-serif !important;
  font-weight: 400;              /* Bebas Neue n’a qu’un poids, évite le fallback */
  letter-spacing: .06em;
  text-transform: uppercase;
  font-synthesis-weight: none;   /* pas de faux bold */
}
/* === Règlement — Titre: look identique Accueil/Abonnements === */
.reg-hero__title{
  /* même fonte et rythme */
  font-family:'Bebas Neue', system-ui, sans-serif !important;
  font-weight:400;                 /* Bebas n’a pas de bold → pas de faux gras */
  font-synthesis-weight:none;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:.92;

  /* relief + léger dégradé de matière (comme la home) */
  color:transparent;
  background:linear-gradient(180deg, #ffffff, #efe9db 55%, #d8d2c7 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;

  /* outline & ombres (lisibilité sur image sombre) */
  -webkit-text-stroke:1px rgba(0,0,0,.35);
  text-shadow:
    0 1px 0 rgba(255,255,255,.06),
    0 2px 0 rgba(0,0,0,.25),
    0 10px 30px rgba(0,0,0,.60);
}

/* Fallback si le clip-text n’est pas dispo (vieux navigateurs) */
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .reg-hero__title{
    color:#efe9db;
    -webkit-text-stroke:0;
    text-shadow:0 10px 30px rgba(0,0,0,.6);
  }
}

/* Sous-titre aligné au style des autres pages */
.reg-hero__sub{
  font-weight:700;
  letter-spacing:.02em;
  opacity:.95;
}
/* --- REGLEMENT — Hero full-bleed sans bordure ni rayons --- */
.reg-hero{
  margin: 0 !important;              /* plus de marge autour */
  border-radius: 0 !important;       /* coins carrés */
  box-shadow: none !important;
  /* au cas où un parent a des paddings : force le full-bleed */
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* enlève le calque assombrissant au-dessus de l'image */
.reg-hero::after{
  background: none !important;       /* plus d’assombrissement */
}

/* sous-titre plus lisible aussi */
.reg-hero__sub{
  color: #efe9db !important;
  opacity: 1 !important;
}

/* garde un léger zoom pour la parallaxe sans bord visible */
.reg-hero__media img{
  transform: translate3d(0,var(--regY,0px),0) scale(1.12);
}
/* --- Règlement : assombrir l'image du hero seulement --- */

/* le media reste derrière le texte */
.reg-hero__media{ position:absolute; inset:0; z-index:0; }
.reg-hero__inner{ position:relative; z-index:2; }

/* 1) assombrissement “physique” de l’image */
.reg-hero__media img{
  filter: brightness(.80) contrast(1.08) saturate(1.05);
  /* ajuste si besoin : brightness(.50 → .70) */
}

/* 2) voile doux appliqué AU MEDIA (et pas à tout le hero) */
.reg-hero__media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 80% at 50% 10%, rgba(0,0,0,.15), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.22), rgba(0,0,0,.38) 60%, rgba(0,0,0,.46));
}
/* Règlement — bordure + relief identiques */
.reg-hero__title{
  font-family:'Bebas Neue', system-ui, sans-serif !important;
  font-weight:400;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:.92;
  color:#fff;

  /* épaisseur de bordure responsive (comme home/abo) */
  --stroke: clamp(1px, .18vw, 2.2px);

  /* outline net + léger relief */
  -webkit-text-stroke: var(--stroke) rgba(0,0,0,.65);
  text-shadow:
    0 1px 0 rgba(255,255,255,.12), /* petit liseré clair interne */
    0 2px 0 rgba(0,0,0,.35),       /* léger relief */
    0 12px 36px rgba(0,0,0,.60);   /* ombre portée pour la lisibilité */
}

/* Fallback Firefox/anciens navigateurs sans -webkit-text-stroke */
@supports not (-webkit-text-stroke: 1px black){
  .reg-hero__title{
    text-shadow:
      /* pseudo-outline (8 directions) */
      0 1px 0 #000, 0 -1px 0 #000, 1px 0 0 #000, -1px 0 0 #000,
      1px 1px 0 #000, -1px 1px 0 #000, 1px -1px 0 #000, -1px -1px 0 #000,
      /* relief + lisibilité */
      0 12px 36px rgba(0,0,0,.60);
  }
}
/* RÈGLEMENT — hard override : même rendu que Accueil/Abos */
.reg-hero .reg-hero__title{
  font-family:'Bebas Neue',system-ui,sans-serif !important;
  font-weight:400; letter-spacing:0.00em; line-height:.92; text-transform:uppercase;

  /* texte blanc + outline */
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  background:none !important;
  -webkit-background-clip:initial !important;
  -webkit-text-stroke: var(--stroke) rgba(0,0,0,.65) !important;
  text-shadow:
    0 1px 0 rgba(255,255,255,.12),
    0 2px 0 rgba(0,0,0,.35),
    0 12px 36px rgba(0,0,0,.60) !important;
}
/* RÈGLEMENT — contour plus marqué sur le titre */
.reg-hero .reg-hero__title{
  /* réglages faciles à tweaker */
  --stroke-w: clamp(2px, .35vw, 4px);        /* épaisseur du trait */
  text-shadow:
    /* petit liseré clair interne (relief) */
    0 1px 0 rgba(255,255,255,.18),
    /* fallback “faux contour” pour navigateurs sans text-stroke */
    0 1px 0 #000, 0 -1px 0 #000, 1px 0 0 #000, -1px 0 0 #000,
    1px 1px 0 #000, -1px 1px 0 #000, 1px -1px 0 #000, -1px -1px 0 #000,
    2px 0 0 #000, -2px 0 0 #000, 0 2px 0 #000, 0 -2px 0 #000,
    2px 1px 0 #000, -2px 1px 0 #000, 2px -1px 0 #000, -2px -1px 0 #000,
    /* ombre douce pour la profondeur */
    0 14px 36px rgba(0,0,0,.65) !important;
}
/* RÈGLEMENT — titre plus gras + contour plus marqué */
.reg-hero__title{
  letter-spacing: .03em;                   /* un peu moins d’air = plus massif */
  color:#fff;
  /* contour très présent (responsive) */
  --stroke: clamp(2px, .36vw, 4px);
  -webkit-text-stroke: var(--stroke) rgba(0,0,0,.90);
  text-shadow:
    0 1px 0 rgba(255,255,255,.20),         /* petit liseré clair interne */
    0 2px 0 rgba(0,0,0,.55),               /* relief */
    0 16px 42px rgba(0,0,0,.65);           /* ombre portée longue */
}

/* Fallback sans -webkit-text-stroke : faux “bold” par 8 directions */
@supports not (-webkit-text-stroke: 1px black){
  .reg-hero__title{
    text-shadow:
      0 1px 0 #000, 0 -1px 0 #000, 1px 0 0 #000, -1px 0 0 #000,
      1.5px 1.5px 0 #000, -1.5px 1.5px 0 #000, 1.5px -1.5px 0 #000, -1.5px -1.5px 0 #000,
      0 16px 42px rgba(0,0,0,.65);
  }
}
/* ===== RÈGLEMENT — accordéon (match ton HTML) ===== */
#rules.accordion{
  max-width:min(1200px,100% - 2rem);
  margin:10px auto 40px;
  display:grid;
  gap:8px;
}
#rules .accordion-item{
  background:linear-gradient(180deg,#171b22,#12161b);
  border:1px solid #252a36;
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}
#rules .accordion-header{
  width:100%;
  display:flex; align-items:center; justify-content:space-between;
  gap:.8rem;
  padding:16px 18px;
  background:transparent;
  color:#e9eaec;
  border:0; cursor:pointer;
  text-align:left;
}
#rules .accordion-header .title{
  font-family:"Bebas Neue",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-weight:400;                   /* Bebas n’a pas de vrai gras */
  letter-spacing:.02em; line-height:.95;
  font-size: clamp(18px, 2.6vw, 22px);
  text-transform:uppercase;
  text-shadow:0 1px 0 rgba(0,0,0,.6);
}
#rules .accordion-header .caret{
  flex:0 0 auto;
  font-weight:900; opacity:.85;
  transition: transform .25s ease;
}
#rules .accordion-header.active .caret{ transform:rotate(90deg); }

/* corps fermé par défaut (anim hauteur) */
#rules .accordion-body{
  overflow:hidden;
  max-height:0;
  padding:0 18px; /* base padding (LR) pour éviter le “saut” */
  background:#13161e;
  color:#cfcfcf;
  line-height:1.65;
  transition:
    max-height .28s cubic-bezier(.2,.8,.2,1),
    padding    .28s cubic-bezier(.2,.8,.2,1);
  will-change: max-height, padding;
}
/* on anime SEULEMENT la hauteur sur le conteneur */
#rules .accordion-body{
  overflow:hidden;
  max-height:0;
  background:#13161e;
  color:#cfcfcf;
  line-height:1.65;
  transition:max-height .28s cubic-bezier(.2,.8,.2,1);
  will-change:max-height;
  padding:0;                  /* important: pas de padding ici */
}

/* le padding vit dans un wrapper interne, toujours présent */
#rules .accordion-inner{
  padding:16px 18px;
}

/* évite le coup de fouet des marges qui “collapsent” */
#rules .accordion-inner > :first-child{ margin-top:0; }
#rules .accordion-inner > :last-child{  margin-bottom:0; }

#rules .accordion-item{ contain: layout paint; }
#rules .accordion-body h4{ margin:10px 0 6px; color:#efe9db }
#rules .accordion-body ul{ margin:8px 0 12px 18px }

/* barrette d’actions */
.accordion-tools{ 
  max-width:min(1200px,100% - 2rem);
  margin: 8px auto 10px;
  display:flex; gap:8px; flex-wrap:wrap;
}
.accordion-tools .btn{
  padding:8px 12px; border-radius:10px; font-weight:800;
  color:#eae7de; border:1px solid #2b3140;
  background:linear-gradient(180deg,rgba(28,32,40,.55),rgba(22,24,30,.38));
  box-shadow:0 8px 22px rgba(0,0,0,.3),0 0 0 1px rgba(255,255,255,.04) inset;
}
.accordion-tools .btn:hover{ transform:translateY(-1px) }
/* ====== Règlement — toolbar bien placée ====== */

/* le bloc de règles a une largeur fixe centrée */
#rules.accordion{
  width: min(1200px, 100% - 2rem);   /* même largeur partout */
  margin: 10px auto 40px;            /* centré */
}

/* la barre de boutons prend la même largeur et s’aligne à droite */
.accordion-tools{
  width: min(1200px, 100% - 2rem);   /* colle visuellement au bloc */
  margin: 8px auto 10px;             /* centrée comme #rules */
  display: flex;
  justify-content: flex-end;         /* boutons à droite */
  gap: 8px;
}

/* style light des boutons (garde tes .btn existants) */
.accordion-tools .btn{
  padding: 8px 12px;
  border-radius: 10px;
  font-weight: 800;
}

/* mobile : boutons sur toute la largeur et centrés */
@media (max-width: 560px){
  .accordion-tools{
    justify-content: center;
  }
  .accordion-tools .btn{
    flex: 1 1 auto;
    text-align: center;
  }
}
/* Règlement – patch clic & caret */
#rules .accordion-header { position: relative; }
#rules .accordion-header .caret { pointer-events: none; }  /* pour que tout le header soit cliquable */

/* rotation de la flèche quand c’est ouvert (peu importe la classe .active) */
#rules .accordion-header[aria-expanded="true"] .caret,
#rules .accordion-header.active .caret { transform: rotate(90deg); }

/* === HERO RÈGLEMENT (parallax) === */
.reg-hero{
  position: relative;
  min-height: clamp(500px, 62vh, 740px);
  border-radius: 16px;
  overflow: hidden;
  display: grid;
  place-items: center;
  isolation: isolate;
  box-shadow: 0 16px 60px rgba(0,0,0,.45);
}

/* calque image piloté en JS */
.reg-hero__media{
  position: absolute;
  inset: -8% -4%;                /* marge pour bouger sans montrer les bords */
  transform: translate3d(0,0,0) scale(1.08);
  will-change: transform;
  z-index: 0;
}
.reg-hero__media img{
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}

/* lisibilité du texte par-dessus */
.reg-hero::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  background:
    radial-gradient(110% 80% at 50% 40%,
      rgba(0,0,0,.10) 0%,
      rgba(0,0,0,.55) 66%,
      rgba(0,0,0,.80) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.42) 78%);
  mix-blend-mode: multiply;
}
.reg-hero__inner{ position: relative; z-index: 2; text-align: center; padding: clamp(24px,5vw,48px) 16px; }
.reg-hero__title{
  font-family:"Bebas Neue", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  text-transform: uppercase; letter-spacing:.02em; line-height:.92;
  font-size: clamp(2.8rem, 8.2vw, 5.6rem);
  color:#fff; margin:0;
  -webkit-text-stroke:.7px rgba(0,0,0,.65);
  text-shadow:0 2px 0 rgba(0,0,0,.9), 0 22px 48px rgba(0,0,0,.55);
}
.reg-hero__sub{ margin:.35rem 0 0; color:#d8d6d0; opacity:.95; }
/* Règlement : overlay + clair */
.reg-hero::before{
  opacity:.20;            /* 0.55–0.75 */
}
/* ===== Trailer Hero (Video Background) ===== */
.hero-trailer{
  position:relative;
  min-height:68vh;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#0b0c0f;
  border-bottom:1px solid var(--ring);
}
.hero-trailer .hero-trailer-media{ position:absolute; inset:0; }
.hero-trailer .trailer-video{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover; object-position:center;
  filter:contrast(1.05) brightness(0.8) saturate(1.1);
  transform:translateZ(0);
}
.hero-trailer .hero-trailer-overlay{
  position:relative;
  z-index:2;
  text-align:center;
  padding:8rem 1rem 6rem;
  width:min(1100px, 92vw);
}
.hero-trailer::after{
  content:"";
  position:absolute; inset:0;
  background:
    radial-gradient(60% 60% at 50% 40%, rgba(0,0,0,0) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.55) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.2) 0%, rgba(0,0,0,.65) 100%);
  z-index:1;
}
.hero-title{
  font-family:'Bebas Neue', system-ui, sans-serif;
  letter-spacing:.5px;
  margin:0 0 .25rem 0;
  font-size:clamp(44px, 7vw, 86px);
  color:var(--title);
  text-shadow:0 6px 24px rgba(0,0,0,.6);
}
.hero-subtitle{
  margin:0 0 1.75rem 0;
  font-size:clamp(16px, 2.2vw, 22px);
  color:var(--muted);
}
.hero-ctas{ display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:.85rem 1.2rem; border-radius:12px; text-decoration:none;
  border:1px solid var(--ring);
  transition:transform .16s ease, background-color .2s ease, border-color .2s ease;
  font-weight:600;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--accent); color:#fff; border-color:transparent; }
.btn-primary:hover{ filter:brightness(1.05); }
.btn-ghost{ background:transparent; color:var(--fg); }

.trailer-sound{
  position:absolute; z-index:3; right:1rem; bottom:3rem;
  background:rgba(0,0,0,.55);
  color:#fff; border:1px solid rgba(255,255,255,.2);
  padding:.6rem .8rem; border-radius:10px; cursor:pointer;
  font-weight:600;
  backdrop-filter:blur(6px);
}
.trailer-sound[aria-pressed="true"]{
  background:rgba(192,57,43,.85); border-color:transparent;
}

/* Mobile */
@media (max-width:720px){
  .hero-trailer{ min-height:56vh; }
  .trailer-sound{ bottom:.75rem; right:.75rem; }
}

/* Fallback si data/motion réduits */
@media (prefers-reduced-data:reduce){
  .hero-trailer .trailer-video{ display:none; }
  .hero-trailer{ background:url('assets/banner_ea.jpg') center/cover no-repeat; }
}
@media (prefers-reduced-motion:reduce){
  .hero-trailer .trailer-video{ animation:none !important; }
}
.trailer-sound[aria-pressed="true"]{
  background:rgba(192,57,43,.85);
  border-color:transparent;
}
/* --- Fix clic overlay & ordre des calques --- */
.hero-trailer-overlay{ pointer-events:none; }
.hero-trailer-overlay .btn{ pointer-events:auto; }
.trailer-sound{
  position:absolute; right:1rem; bottom:3rem;
  z-index:999;
  pointer-events:auto;
}
.trailer-sound[aria-pressed="true"]{
  background:rgba(192,57,43,.85);
  border-color:transparent;
}
/* === Trailer : supprimer les surcouches sombres globales === */
.hero.hero-trailer::before,
.hero.hero-trailer::after {
  content: none !important;
  background: none !important;
}

.hero.hero-trailer .hero-inner::before {
  content: none !important;
}

/* Optionnel : si tu veux un léger voile juste sous le titre (pas sur toute la vidéo) */
.hero.hero-trailer .hero-trailer-overlay {
  background: none; /* ou: background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,0)); */
}
/* ===== Hero trailer : titre très haut, CTA très bas, centrés ===== */
.hero.hero-trailer .hero-trailer-overlay{
  position: absolute;
  inset: 0;
  pointer-events: none; /* clics passent vers la vidéo */
}

.hero.hero-trailer .hero-inner{
  position: absolute;      /* occupe tout le cadre vidéo */
  inset: 0;
  margin: 0;
  width: 100%;
  max-width: none !important;     /* annule un éventuel max-width global */
  padding: calc(var(--header-h, 72px) + 8px) 2vw 24px; /* espace sous le header + bas */
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* haut / bas */
  align-items: center;            /* centré horizontalement */
  gap: 0;
}

.hero.hero-trailer h1{
  margin: 0;
  text-align: center;
}

.hero.hero-trailer .hero-cta{
  margin: 0;
  align-self: center;
  pointer-events: auto; /* réactive le clic sur le bouton */
  padding-bottom: max(env(safe-area-inset-bottom), 12px);
}

/* Si tu veux que le bouton touche encore plus le bas, baisse ce padding-bottom à 0 */
/* ===== Hero trailer : centrage horizontal forcé ===== */
.hero.hero-trailer .hero-inner{
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;                 /* centre les enfants */
  width: 100vw;                        /* pleine largeur */
  max-width: none !important;
  left: 50%; transform: translateX(-50%); /* neutralise tout container à gauche */
  padding: calc(var(--header-h, 72px) + 8px) 2vw 16px;
}

/* Supprime tout offset/marge gauche héritée */
.hero.hero-trailer h1,
.hero.hero-trailer .hero-cta{
  margin-left: 0 !important;
  margin-right: 0 !important;
  align-self: center !important;       /* certains styles globaux mettent flex-start */
  text-align: center;
}

/* Optionnel : le bouton plus collé au bas */
.hero.hero-trailer .hero-cta{ padding-bottom: max(env(safe-area-inset-bottom), 8px); }
.hero.hero-trailer .hero-trailer-overlay{ padding: 0 !important; }
/* ===== Hero trailer — centrage strict ===== */
.hero.hero-trailer .hero-trailer-overlay{
  /* centre le conteneur overlay */
  margin-inline: auto !important;
  width: 100% !important;
  max-width: none !important;

  /* on garde la mise en page top/bottom */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;        /* <- centre horizontalement */
  padding: calc(var(--header-h, 72px) + 8px) 2vw 16px;
}

.hero.hero-trailer .hero-inner{
  /* centre la boîte de contenu */
  margin-inline: auto !important;
  width: min(1100px, 92vw) !important;   /* même largeur que l’overlay prévue */
  max-width: none !important;

  /* s’assure du centrage des enfants */
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  height: 100%;
}

.hero.hero-trailer h1,
.hero.hero-trailer .hero-cta{
  align-self: center !important;
  text-align: center;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* ===== Décalage léger à gauche du titre + CTA ===== */
.hero.hero-trailer {
  --hero-shift: -2vw;            /* ajuste: -2vw à -8vw selon ton goût */
}

.hero.hero-trailer h1,
.hero.hero-trailer .hero-cta{
  transform: translateX(var(--hero-shift));
}

/* Sur mobile, recentre pour éviter de sortir de l’écran */
@media (max-width: 768px){
  .hero.hero-trailer { --hero-shift: -2vw; }
}
@media (max-width: 480px){
  .hero.hero-trailer { --hero-shift: 0; }
}
/* ===== Trailer: contrôles d'ajustement ===== */
.hero-trailer{
  --fit: cover;        /* mode par défaut */
  --pos-x: 50%;        /* centre horizontal par défaut */
  --pos-y: 90%;        /* ancre vers le bas pour voir la date */
}

/* applique les variables */
.hero-trailer .trailer-video{
  object-fit: var(--fit) !important;
  object-position: var(--pos-x) var(--pos-y) !important;
  background:#000; /* si on passe en contain, bandes propres */
}



/* Si tu préfères encore pousser la vidéo un peu à gauche */
@media (min-width: 1024px){
  .hero-trailer{ --pos-x: 46%; } /* 46–48% agréable, ajuste à ta guise */
}
.hero-trailer{ --fit: cover; --pos-x: 46%; --pos-y: 100%; } /* bas visible en priorité */
/* ===== HERO TRAILER — plein écran, bas prioritaire ===== */
.hero.hero-trailer{
  /* occupe tout le viewport moins le header */
  --header-h: 72px;
  min-height: calc(100dvh - var(--header-h));
  position: relative;
  overflow: hidden; /* pas de bandes parasites */
}

/* Le media remplit TOUT, indépendamment de l’overlay */
.hero.hero-trailer .hero-trailer-media{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* La vidéo couvre et s’ancre en BAS-CENTRE (montre la date) */
.hero.hero-trailer .trailer-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover !important;
  object-position: 50% 100% !important; /* 96–100% selon tes plans */
  background: #000; /* sécurité */
}

/* L’overlay ne doit PAS contraindre la vidéo */
.hero.hero-trailer .hero-trailer-overlay{
  position: relative;      /* au-dessus de la vidéo */
  z-index: 2;
  pointer-events: none;    /* clics passent, sauf CTA */
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* titre tout en haut / CTA tout en bas */
  align-items: center;
  padding: calc(var(--header-h) + 8px) 2vw 20px;
  margin: 0;               /* pas de centrage "narrow" ici */
  max-width: none;
}

/* Le contenu reste centrée, clics actifs sur CTA */
.hero.hero-trailer .hero-inner{
  width: 100%;
  max-width: none !important;
  display: flex; flex-direction: column; align-items: center;
  gap: 0; height: 100%;
}
.hero.hero-trailer h1{ margin: 0; text-align: center; }
.hero.hero-trailer .hero-cta{
  pointer-events: auto;
  margin: 0;
  padding-bottom: max(env(safe-area-inset-bottom), 8px);
}

/* Micro-ajustement du cadrage horizontal sur grands écrans (facultatif) */
@media (min-width: 1200px){
  .hero.hero-trailer .trailer-video{ object-position: 46% 100%; }
}

.hero.hero-trailer .trailer-video{ object-position: 50% 98%; } /* 95–100% */
/* ===== HERO TRAILER — supprimer la bande noire du bas ===== */
.hero.hero-trailer{
  --header-h: 72px;
  min-height: calc(100dvh - var(--header-h));
  position: relative;
  overflow: hidden;
}

.hero.hero-trailer .hero-trailer-media{
  position: absolute;
  inset: 0;
}

.hero.hero-trailer .trailer-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;           /* plein écran */
  object-position: 50% 98%;    /* bas prioritaire (ajuste 95–100%) */
  background:#000;
}

/* ⬇️ L’OVERLAY ne doit plus impacter la hauteur */
.hero.hero-trailer .hero-trailer-overlay{
  position: absolute;          /* <- était relative */
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: space-between; /* titre en haut / CTA en bas */
  align-items: center;
  pointer-events: none;        /* laisse passer les clics */
  padding: calc(var(--header-h) + 8px) 2vw 8px; /* padding bas minimal */
  margin: 0;
  max-width: none;
}

/* contenu centré + clics réactivés uniquement sur le CTA */
.hero.hero-trailer .hero-inner{
  height: 100%;
  width: 100%;
  max-width: none !important;
  display: flex; flex-direction: column; align-items: center;
}
.hero.hero-trailer h1{ margin: 0; text-align: center; }
.hero.hero-trailer .hero-cta{
  margin: 0;
  pointer-events: auto;        /* le bouton reste cliquable */
  padding-bottom: 0;           /* pas d’espace qui recrée une bande */
}


