/* Polices hébergées sur le site (pas d'appel à Google : plus rapide et conforme RGPD) */
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/barlow-condensed-latin-700-normal.woff2") format("woff2")}
@font-face{font-family:"Barlow Condensed";font-style:normal;font-weight:800;font-display:swap;src:url("../fonts/barlow-condensed-latin-800-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/inter-latin-400-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/inter-latin-500-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/inter-latin-600-normal.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/inter-latin-700-normal.woff2") format("woff2")}
/* Polices de secours calées sur les dimensions de Barlow Condensed et d'Inter : le temps que les polices
   du site arrivent, le texte occupe déjà la même place (pas de saut à l'affichage). Mesures : largeur d'un
   même texte à 100 px (Barlow 800 / Arial Narrow gras = 0,877 ; Inter / Arial = 1,06 ; Inter 700 / Arial gras = 1,015). */
@font-face{font-family:"Barlow Repli";font-weight:600 800;src:local("Arial Narrow Bold"),local("ArialNarrow-Bold");size-adjust:87.7%}
@font-face{font-family:"Barlow Repli 2";font-weight:600 800;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:71.9%}
@font-face{font-family:"Inter Repli";font-weight:400 500;src:local("Arial"),local("ArialMT");size-adjust:106%;ascent-override:91.4%;descent-override:22.8%;line-gap-override:0%}
@font-face{font-family:"Inter Repli";font-weight:600 700;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:101.5%;ascent-override:95.4%;descent-override:23.9%;line-gap-override:0%}

/* =========================================================
   LA PERCHE AUX ÉTOILES · Feuille de style
   Palette « Or vif ». Toutes les couleurs se règlent ici.
   ========================================================= */
:root{
  /* Couleurs de marque */
  --nuit:#0E0F13;          /* fonds sombres, texte principal */
  --nuit-2:#17181E;        /* cartes sur fond sombre */
  --or:#F2C230;            /* boutons, chiffres, détails (jamais en texte sur fond clair) */
  --or-clair:#FFE9A6;
  --or-texte:#806200;      /* or lisible sur fond clair (AA : 4,8 sur crème, 5,3 sur craie) */
  --craie:#F7F5F0;         /* fond clair principal */
  --creme:#EFEBE1;         /* fond clair alternatif */
  --blanc:#FFFFFF;
  --texte:#14151A;
  --texte-2:#5B5F68;       /* texte secondaire sur clair : petites mentions seulement (légendes, aides de formulaire) */
  --texte-courant:#1F1B16; /* texte courant sur clair (point 17, 25/10/2026) : noir légèrement chaud, un seul ton pour tous
                              les paragraphes (16 sur le crème, 17 sur le blanc) */
  --texte-inv:#F4F2EC;     /* texte sur sombre */
  --texte-inv-2:#B9BAC2;   /* texte secondaire sur sombre */
  --ligne:#E3E0D8;
  --contour-carte:#CDBF9C;   /* contour des cartes et tuiles (2 px, 31/10/2026 : elles ressortent sur le fond crème) */
  --survol-lever:-4px;       /* effet au survol des cartes, commun à tout le site (31/10/2026) : léger soulèvement… */
  --survol-ombre:0 22px 40px -26px rgba(14,15,19,.35);   /* … et ombre douce */
  --ligne-sombre:#2A2C34;
  --erreur:#B3261E;        /* messages d'erreur des formulaires */
  --erreur-fond:#FDECEA;

  /* Typographie */
  --f-titre:"Barlow Condensed","Barlow Repli","Barlow Repli 2","Arial Narrow",sans-serif;
  --f-texte:Inter,"Inter Repli",system-ui,-apple-system,"Segoe UI",sans-serif;

  --radius:14px;
  --header-h:134px;        /* en-tête en haut de page (logo 110 px) */
  --header-h-solid:92px;   /* en-tête une fois la page défilée (logo 72 px) */
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h-solid) + 16px)}   /* lien vers une section : titre jamais caché sous l'en-tête (23/10/2026) */
body{margin:0;background:var(--craie);color:var(--texte);font:17px/1.65 var(--f-texte);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--f-titre);font-weight:800;text-transform:uppercase;letter-spacing:.005em;line-height:.98;margin:0}
p{margin:0}
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:8px;background:var(--or);color:var(--nuit);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--or);outline-offset:3px}

/* ---------- Boutons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 15px/1 var(--f-texte);text-decoration:none;padding:14px 22px;border-radius:10px;border:1.5px solid transparent;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s;white-space:nowrap;cursor:pointer}
.btn:hover{transform:translateY(-2px)}
.btn-sm{padding:10px 16px;font-size:14px}
.btn-lg{padding:17px 28px;font-size:16px}
.btn-gold{background:var(--or);color:var(--nuit)}
.btn-gold:hover{background:var(--or-clair)}
.btn-ghost{background:transparent;color:var(--texte-inv);border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{border-color:var(--or);color:var(--or)}
.btn-dark{background:var(--nuit);color:var(--texte-inv)}
.btn-dark:hover{background:#2a2c34}
.btn-outline{background:transparent;color:var(--texte);border-color:var(--texte)}
.btn-outline:hover{background:var(--texte);color:var(--craie)}
.link-arrow{font-weight:700;text-decoration:none;color:var(--or);display:inline-flex;gap:8px;align-items:center}
.link-arrow::after{content:"→";transition:transform .2s var(--ease)}
.link-arrow:hover::after{transform:translateX(4px)}

/* ---------- En-tête ---------- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--header-h);transition:background .3s,box-shadow .3s,height .3s}
.site-header.is-solid{background:rgba(14,15,19,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--ligne-sombre);height:var(--header-h-solid)}
.site-header.is-solid .brand img{height:72px}
.header-inner{height:100%;display:flex;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--texte-inv);flex:none}
.brand img{height:110px;width:auto;transition:height .3s var(--ease)}
.brand-name{font:800 20px/1 var(--f-titre);text-transform:uppercase;letter-spacing:.02em}
.main-nav{display:flex;gap:4px;margin-left:auto}
.main-nav>a,.nav-groupe>a{color:var(--texte-inv);text-decoration:none;font:600 14.5px var(--f-texte);padding:8px 9px;border-radius:8px;transition:color .2s}
.main-nav>a:hover,.nav-groupe>a:hover{color:var(--or)}
/* Menu (version A, 23/10/2026) : sous chaque titre, panneau sombre assorti à l'en-tête avec les sections de la page ; au
   survol, trait jaune à gauche et texte qui glisse légèrement. Téléphone et tablette : listes dépliables (bouton +).
   Moins d'animations : ni glissement ni fondu. */
.nav-groupe{position:relative;display:flex;align-items:center}
.nav-deplier{display:none}
.nav-sous{list-style:none;margin:0;padding:0}
.nav-sous a{text-decoration:none}
@media (min-width:1304px){
  .nav-sous{position:absolute;top:calc(100% + 16px);left:-9px;min-width:236px;padding:10px 0 12px;background:rgba(14,15,19,.97);border:1px solid rgba(255,255,255,.08);border-top:2px solid var(--or);border-radius:0 0 12px 12px;box-shadow:0 26px 50px -24px rgba(0,0,0,.9);z-index:60;
    opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s var(--ease),transform .2s var(--ease),visibility 0s .2s}
  .nav-sous::before{content:"";position:absolute;left:0;right:0;top:-20px;height:20px}   /* passage de la souris du titre au panneau */
  .nav-groupe.ouvert>.nav-sous{opacity:1;visibility:visible;transform:none;transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s}   /* état géré par main.js (23/10/2026) */
  /* Bouton clavier (Entrée ou Espace) : invisible à la souris, visible au focus, sans prendre de place dans la ligne du menu */
  .nav-deplier{display:flex;position:absolute;right:-7px;top:50%;width:18px;height:18px;margin-top:-9px;padding:0;align-items:center;justify-content:center;border:0;border-radius:4px;background:var(--or);color:var(--nuit);font:700 11px/1 var(--f-texte);cursor:pointer;opacity:0;pointer-events:none}
  .nav-deplier::after{content:"▾"}
  .nav-deplier:focus-visible{opacity:1;pointer-events:auto;outline:2px solid #fff;outline-offset:1px}
  .nav-groupe.ouvert>a{color:var(--or)}
  
  .nav-sous a{position:relative;display:block;padding:8px 20px 8px 22px;color:rgba(255,255,255,.82);font:600 14.5px/1.3 var(--f-texte);white-space:nowrap;transition:color .2s,transform .2s var(--ease)}
  .nav-sous a::before{content:"";position:absolute;left:10px;top:50%;width:3px;height:0;border-radius:2px;background:var(--or);transform:translateY(-50%);transition:height .2s var(--ease)}
  .nav-sous a:hover,.nav-sous a:focus-visible{color:#fff;transform:translateX(4px)}
  .nav-sous a:hover::before,.nav-sous a:focus-visible::before{height:16px}
  .nav-sous a:focus-visible{outline:2px solid var(--or);outline-offset:-2px;border-radius:4px}
}
@media (prefers-reduced-motion:reduce){
  .nav-sous,.nav-groupe.ouvert>.nav-sous{transform:none!important;transition:none!important}
  .nav-sous a,.nav-sous a::before{transition:none!important}
  .nav-sous a:hover,.nav-sous a:focus-visible{transform:none!important}
}
.header-cta{display:flex;gap:10px}
.nav-cta-mobile{display:none}
.burger{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}
.burger span{display:block;height:2px;background:var(--texte-inv);margin:6px 0;transition:transform .3s,opacity .3s}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;background:var(--nuit);color:var(--texte-inv);overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
/* Fond : l'image fixe de la vidéo, floutée et assombrie (prolonge la vidéo autour du cadre) */
.hero-media .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:blur(26px) brightness(.42) saturate(1.15);transform:scale(1.12)}
/* Cadre de la vidéo : 16:9 entière, ancrée à droite, bords gauche et haut fondus (texte à gauche) */
.hero-frame{position:absolute;right:0;bottom:0;width:min(68vw,calc((100svh - var(--header-h)) * 16 / 9));aspect-ratio:16/9;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(180deg,transparent 0,#000 16%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 22%),linear-gradient(180deg,transparent 0,#000 16%);mask-composite:intersect}
.hero-frame video,.hero-frame img{display:block;width:100%;height:100%;object-fit:cover}
/* Photo de secours du bandeau (vidéo absente) : zoom lent */
.hero-frame{overflow:hidden}
.hero-frame .hero-anime{transform-origin:60% 45%;animation:heroZoom 18s ease-in-out infinite alternate}
@keyframes heroZoom{from{transform:scale(1)}to{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.hero-frame .hero-anime{animation:none}}
/* Voile uniquement à gauche, sous le texte (renforcé : la vidéo passe sur une bâche blanche à la chute ; titre ≥ 3,7:1 à chaque instant) */
.hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(14,15,19,.9) 0%,rgba(14,15,19,.82) 32%,rgba(14,15,19,.74) 50%,rgba(14,15,19,.6) 58%,rgba(14,15,19,.25) 66%,rgba(14,15,19,0) 74%)}
.hero-content{padding-top:calc(var(--header-h) + 24px);padding-bottom:72px}
.kicker{display:inline-flex;align-items:center;gap:10px;font:600 13px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin-bottom:14px}
.kicker .dot{width:8px;height:8px;border-radius:50%;background:var(--or);box-shadow:0 0 0 4px rgba(242,194,48,.2)}
.hero h1{font-size:clamp(40px,6vw,88px);line-height:.9;margin-bottom:16px}
.hero h1 em{font-style:normal;color:var(--or)}
/* Petite ligne du H1 (« Meeting international de saut à la perche »), au-dessus de l'accroche */
.hero h1 .hero-surtitre{display:block;font:700 13px/1.35 var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin:0 0 14px}
.hero h1 .hero-titre{display:block}
@media (max-width:600px){.hero h1 .hero-surtitre{font-size:11.5px;letter-spacing:.14em;margin-bottom:10px}}
.hero-lead{font-size:clamp(16px,1.35vw,19px);color:var(--texte-inv);opacity:.92;max-width:540px;margin-bottom:22px}
.hero-event{display:flex;flex-wrap:wrap;gap:0;margin-bottom:20px;border:1px solid rgba(255,255,255,.18);border-radius:12px;width:fit-content;background:rgba(14,15,19,.45);backdrop-filter:blur(6px)}
.ev-item{padding:12px 22px;border-right:1px solid rgba(255,255,255,.14)}
.ev-item:last-child{border-right:0}
.ev-item[hidden]{display:none}
.ev-cd .ev-value{color:var(--or)}
@media (max-width:820px){
  /* Mobile / tablette : vidéo entière sous l'en-tête, texte en dessous */
  .hero-frame{left:0;top:var(--header-h);bottom:auto;width:100%;
    -webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}
  .hero-shade{background:linear-gradient(180deg,rgba(14,15,19,0) 0%,rgba(14,15,19,.5) 45%,rgba(14,15,19,.82) 100%)}
  .hero-content{padding-top:calc(var(--header-h) + 56.25vw + 14px);padding-bottom:24px}
  .hero-event{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .ev-item:nth-child(odd){border-right:1px solid rgba(255,255,255,.14)}
  .ev-item:nth-child(even){border-right:0}
  .ev-item:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14)}
}
@media (max-width:600px){
  .kicker{font-size:11.5px;letter-spacing:.1em;gap:8px}
  .hero-lead{margin-bottom:16px}
  .hero-event{margin-bottom:16px}
}
.ev-label{display:block;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-inv-2)}
.ev-value{display:block;font:700 22px/1.1 var(--f-titre);text-transform:uppercase;letter-spacing:.02em}
.countdown{display:flex;gap:10px;margin-bottom:28px}
.countdown[hidden]{display:none}
.countdown div{min-width:72px;text-align:center;padding:10px 8px;border-radius:10px;background:rgba(242,194,48,.1);border:1px solid rgba(242,194,48,.35)}
.countdown b{display:block;font:800 32px/1 var(--f-titre);color:var(--or)}
.countdown span{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-inv-2)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
/* Phrase du bandeau : courte (une ligne) sur ordinateur et tablette, complète sur téléphone */
.hero-lead .lead-ordi{display:none}
/* Bandeau P3 (validé le 19/10/2026), ordinateur et tablette : vidéo sous le menu, jamais agrandie (1272 × 716 au plus),
   jamais recadrée ; centrée sur grand écran, décalée à droite quand la marge gauche passe sous 440 px (le texte reste sur le
   ciel) ; bords fondus dans le ciel étoilé. Texte compact en bas à gauche, voile localisé derrière lui. Premier passage sans
   texte : titre, phrase, bouton et voile apparaissent en fondu au sourire (main.js), puis restent. Athlète jamais masquée
   à la barre, à la chute ni à la joie ; contraste au pire moment ≥ 4,8:1 (titre), 3,2:1 (mot jaune), 16:1 (phrase). */
@media (min-width:821px){
  .hero{min-height:0;height:calc(var(--header-h) + min(716px, 56.25vw, 100svh - 120px - var(--header-h)))}
  .hero-media .hero-img{display:none}
  .hero-frame{--w:min(1272px, 100%, (100svh - 120px - var(--header-h)) * 16 / 9);--m:calc((100% - var(--w)) / 2);
    top:var(--header-h);bottom:auto;right:auto;left:calc(var(--m) + clamp(0px, 440px - var(--m), var(--m)));width:var(--w);
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%),linear-gradient(180deg,transparent 0,#000 28px);
    mask-image:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%),linear-gradient(180deg,transparent 0,#000 28px)}
  .hero .hero-content.container{max-width:none;margin:0;padding:0 0 34px clamp(24px,2.8vw,56px)}
  .hero h1{font-size:clamp(40px,3.6vw,56px);margin-bottom:10px}
  .hero .hero-lead{white-space:nowrap;font-size:17px;margin-bottom:16px;max-width:none}   /* accueil seulement (pas les ouvertures des pages) */
  .hero-lead .lead-ordi{display:inline}
  .hero-lead .lead-mobile{display:none}
  .hero-shade{background:radial-gradient(ellipse 700px 360px at 0% 100%,rgba(14,15,19,.94) 0%,rgba(14,15,19,.88) 55%,rgba(14,15,19,.45) 82%,rgba(14,15,19,0) 100%)}
  .hero-content,.hero-shade{transition:opacity .8s ease}
  .hero-attente .hero-content,.hero-attente .hero-shade{opacity:0}
  .hero-direct .hero-content,.hero-direct .hero-shade{transition:none}
}
/* Bandeau en mode "large" (data.js : bandeau.mode = "large", bandeau.taille ; classe .bandeau-large et --taille posées par
   main.js) : comme P3, mais la vidéo peut atteindre 1272 px × taille (1,15 à 1,5), dans la limite de la hauteur de l'écran
   (la bande d'infos reste visible en bas du premier écran). Test : _sources/tests-video-accueil/large/. */
/* Variante B (validée le 19/10/2026) : la vidéo commence juste sous les liens du menu (--sous-menu, 92 px), seul le logo
   déborde sur elle ; dégradé sombre en haut (logo et menu ≥ 4,5:1) et voile du titre renforcé. La barre ne passe jamais
   sous le logo ni le menu (dans cette vidéo, elle est tout en haut de l'image : la vidéo derrière tout le menu attendra une
   vidéo HD, voir BACKLOG). Fichier agrandi servi seulement au-delà de 1272 px affichés (main.js, même calcul). */
@media (min-width:821px){
  .bandeau-large{--sous-menu:92px}
  .bandeau-large .hero{height:calc(var(--sous-menu) + min(716px * var(--taille, 1.25), 56.25vw, 100svh - 120px - var(--sous-menu)))}
  .bandeau-large .hero-frame{--w:min(1272px * var(--taille, 1.25), 100%, (100svh - 120px - var(--sous-menu)) * 16 / 9);top:var(--sous-menu)}
  .bandeau-large .hero-media::after{content:"";position:absolute;left:0;right:0;top:0;height:150px;z-index:3;pointer-events:none;
    background:linear-gradient(180deg,rgba(14,15,19,.6) 0,rgba(14,15,19,.6) 61%,rgba(14,15,19,0) 100%)}
  .bandeau-large .hero-shade{background:radial-gradient(ellipse 780px 410px at 0% 100%,rgba(14,15,19,.96) 0%,rgba(14,15,19,.92) 56%,rgba(14,15,19,.5) 83%,rgba(14,15,19,0) 100%)}
}
/* Bandeau en mode "plein" (data.js : bandeau.mode, classe .bandeau-plein posée par main.js ; test P3-plein du 19/10/2026) :
   vidéo sur toute la largeur, sans fondu latéral ; bandeau sur toute la hauteur de l'écran moins la bande d'infos (118 px).
   La vidéo commence sous le texte du menu (92 px : la barre ne passe jamais dessous) ; rognage vertical : 4 % au plus en
   haut (au-delà, le logo touche la barre à 3,7 s), le reste en bas. --ratio : hauteur / largeur lue sur le fichier (main.js).
   Titre à la taille de P2 ; sous 1700 px, trois lignes (sinon « performance » touche le bras de l'athlète au sourire). */
@media (min-width:821px){
  .bandeau-plein .hero{height:calc(100svh - var(--infos-h, 118px));min-height:520px}
  .bandeau-plein .hero-frame{--haut:92px;top:var(--haut);left:0;width:100%;height:calc(100% - var(--haut));aspect-ratio:auto;
    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 22px);mask-image:linear-gradient(180deg,transparent 0,#000 22px);-webkit-mask-composite:source-over;mask-composite:add}
  .bandeau-plein .hero-frame video,.bandeau-plein .hero-frame img{object-fit:cover;
    object-position:50% calc(-1 * clamp(0px, 100vw * var(--ratio, .5629) - (100svh - var(--infos-h, 118px) - var(--haut)), 100vw * var(--ratio, .5629) * .04))}
  .bandeau-plein .hero h1{font-size:clamp(36px,4.2vw,64px)}
  .bandeau-plein .hero-shade{background:radial-gradient(ellipse 900px 470px at 0% 100%,rgba(14,15,19,.94) 0%,rgba(14,15,19,.9) 58%,rgba(14,15,19,.55) 84%,rgba(14,15,19,0) 100%)}
}
@media (min-width:821px) and (max-width:1700px){
  .bandeau-plein .hero h1{max-width:6em}
}
/* Bouton pause de la vidéo : invisible, il n'apparaît que lorsqu'on l'atteint au clavier (Tab). Souris : clic sur la vidéo. */
.hero-pause{position:absolute;right:20px;bottom:20px;z-index:3;padding:10px 16px;border-radius:999px;border:2px solid var(--or);
  background:var(--nuit);color:var(--texte-inv);font:600 14px/1 var(--f-texte);cursor:pointer}
.hero-pause:not(:focus-visible){width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* « Lire la vidéo » (V.1, 29/10/2026) : visible quand la vidéo ne part pas toute seule (moins d'animations demandé par
   l'appareil, économie de données, lecture automatique refusée) ; l'image fixe de la vidéo reste affichée en attendant */
.hero-lire{position:absolute;right:20px;bottom:20px;z-index:3;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 18px 8px 10px;
  border:2px solid var(--or);border-radius:999px;background:rgba(14,15,19,.82);color:var(--texte-inv);font:600 15px/1 var(--f-texte);cursor:pointer}
.hero-lire:hover,.hero-lire:focus-visible{background:var(--nuit)}
.hero-lire:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.hero-lire-ic{position:relative;width:30px;height:30px;border-radius:50%;background:var(--or)}
.hero-lire-ic::after{content:"";position:absolute;left:11px;top:8px;border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent var(--nuit)}
@media (max-width:600px){.hero-lire{right:12px;bottom:12px}}
.hero-infos{background:var(--nuit);color:var(--texte-inv);padding:22px 0 26px;border-top:1px solid var(--ligne-sombre)}
/* Sections masquées par le calendrier (sections.js) */
[data-masquable][hidden],.a-la-une[hidden]{display:none!important}
/* À la une (accueil, sous la bande d'infos) : bandeau clair et compact ; affiché seulement s'il est rempli et dans ses dates */
.a-la-une{background:var(--blanc);color:var(--texte);border-bottom:1px solid var(--ligne);padding:34px 0}
.a-la-une-inner{display:flex;align-items:center;gap:18px 40px;flex-wrap:wrap}
.une-surtitre{flex:none;margin:0;font:600 13px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte);display:inline-flex;align-items:center;gap:10px}
.une-surtitre::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--or);box-shadow:0 0 0 4px rgba(242,194,48,.25)}
.une-texte{flex:1;min-width:260px}
.une-titre{font-size:clamp(26px,2.4vw,34px);line-height:1.05;margin:0 0 6px}
.une-phrase{margin:0;color:var(--texte-2);max-width:640px}
.une-btn{flex:none}
/* Billetterie pas encore ouverte (point 8) : mention discrète, non cliquable, à la place du bouton */
.une-attente{margin:0;display:inline-block;padding:13px 22px;border:1.5px solid rgba(255,255,255,.3);border-radius:10px;color:rgba(255,255,255,.86);font:600 15px/1.3 var(--f-texte);cursor:default}
@media (max-width:820px){
  .a-la-une{padding:26px 0}
  .a-la-une-inner{flex-direction:column;align-items:flex-start;gap:12px}
  .une-btn{align-self:stretch;text-align:center}
}
/* À la une en position 3 (22/10/2026) : vraie section, fond sombre étoilé ; version claire (fond-auto, sections.js) = règles
   ci-dessus. Texte à gauche, médias à droite (mise en page selon le nombre de photos, plus bas). */
.a-la-une.section{padding:clamp(56px,7vw,88px) 0;border-bottom:0}
.a-la-une.section-dark{background:var(--nuit);color:var(--texte-inv)}
.a-la-une.section-dark .une-surtitre{color:var(--or)}
.a-la-une.section-dark .une-titre{color:#fff}
.a-la-une.section-dark .une-phrase{color:rgba(255,255,255,.78)}
.a-la-une.section-dark .une-photos figure{background:#1B1D23}
.une-liste{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px;color:var(--texte-2)}
.une-liste li{padding-left:16px;position:relative}
.une-liste li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:2px;background:var(--or)}
.une-liste b{color:var(--texte)}
.a-la-une.section-dark .une-liste{color:rgba(255,255,255,.8)}
.a-la-une.section-dark .une-liste b{color:#fff}
.access-arena{display:inline-block;margin-top:4px;font-weight:700;color:var(--nuit);text-decoration:underline;text-underline-offset:3px}
.access-arena[hidden]{display:none}
@media (max-width:820px){ .a-la-une.section{padding:44px 0} }
/* Les perchistes · « Le plateau » : liste des engagés (main.js, #plateauListe) ; fond sombre étoilé, version claire (fond-auto) */
.pl-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.pl-l{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 16px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(255,255,255,.04)}
.pl-ph{flex:none;width:44px;height:44px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#2A2C33}
.pl-ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1)}
.pl-ini{font:700 16px var(--f-titre);letter-spacing:.04em;color:var(--or)}
.pl-txt{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.pl-nom{font-weight:600;color:#fff;line-height:1.25}
.pl-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px}
.pl-l .star-pays{margin:0;color:rgba(255,255,255,.72);font-size:13px}
.pl-rec{font:700 17px var(--f-titre);color:var(--or);white-space:nowrap}
.pl-badge{flex:none;padding:3px 8px;border-radius:999px;background:var(--or);color:var(--nuit);font:700 11px var(--f-texte);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
#plateau.fond-auto .pl-l{border-color:var(--ligne);background:var(--blanc)}
#plateau.fond-auto .pl-nom{color:var(--texte)}
#plateau.fond-auto .pl-l .star-pays{color:var(--texte-2)}
#plateau.fond-auto .pl-rec{color:var(--or-texte)}
#plateau.fond-auto .pl-ph{background:var(--creme)}
#plateau.fond-auto .pl-ini{color:var(--or-texte)}
#plateau.fond-auto .eyebrow-gold{color:var(--or-texte)}
.hero-infos-inner{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.hero-infos .kicker,.hero-infos .hero-event{margin:0}
.hero-infos .kicker{max-width:250px;line-height:1.5}
.kicker .dot{flex:none}   /* sur deux lignes : la bande tient sur une rangée */
.hero-infos .btn{margin-left:auto}
@media (max-width:820px){
  .hero{min-height:0}
  .hero-infos{padding:6px 0 32px;border-top:0}
  .hero-infos-inner{flex-direction:column;align-items:stretch;gap:14px}
  .hero-infos .btn{margin-left:0}
  /* Recette du 31/10/2026 : au téléphone, « Devenir partenaire » en jaune, comme dans l'en-tête de l'ordinateur */
  .hero-infos .btn-ghost,.hero-infos .btn-ghost:hover{background:var(--or);color:var(--nuit);border-color:var(--or)}
}

/* ---------- Sections ---------- */
.section{padding:72px 0;position:relative}   /* 24/10/2026, point 47 : 110 → 72 px (sections du menu visibles d'un coup) */
.section-light{background:var(--craie)}
.section-cream{background:var(--creme)}
.section-white{background:var(--blanc)}
.section-dark{background:var(--nuit);color:var(--texte-inv);overflow:hidden}
.section-dark .lead{color:var(--texte-inv-2)}
.section-head{max-width:760px;margin-bottom:52px}
.row-head{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.eyebrow{font:700 13px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--or)}
.eyebrow-gold{color:var(--or)}
.eyebrow-light{color:#fff}
.eyebrow-light::before{background:#fff}
h2{font-size:clamp(40px,5.4vw,68px);margin-bottom:20px}
.lead{font-size:clamp(17px,1.4vw,19px);color:var(--texte-courant);max-width:680px}   /* point 17 : texte courant, un seul ton foncé */
.center{text-align:center;margin-top:40px}
.note{font-size:14px;color:var(--texte-2);margin-top:18px}

/* Piliers : cartes claires, photo révélée au survol (le texte passe alors en clair) */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pillar{position:relative;min-height:420px;border-radius:18px;overflow:hidden;background:var(--blanc);color:var(--texte);border:1px solid var(--ligne);display:flex;flex-direction:column;justify-content:space-between;padding:30px 28px;isolation:isolate;transition:color .6s,box-shadow .4s}
.pillar-bg{position:absolute;inset:0;z-index:-2;background-size:cover;background-position:var(--pos,center);opacity:0;filter:grayscale(1) contrast(1.1);transform:scale(1.08);transition:opacity .8s var(--ease),transform 1.2s var(--ease),filter .8s}
/* Survol (T.1, 29/10/2026) : la photo se voit en entier (pleine opacité, haut de carte sans voile) ; voile dense SEULEMENT
   derrière le texte (moitié basse), contraste d'au moins 4,5:1 (recette texte-photo-test.mjs). Avant : voile de 35 à 93 %
   sur toute la carte et photo à 75 % */
.pillar::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,15,19,0) 0%,rgba(14,15,19,.08) 24%,rgba(14,15,19,.62) 40%,rgba(14,15,19,.86) 54%,rgba(14,15,19,.9) 100%);opacity:0;transition:opacity .8s var(--ease)}
.pillar:hover,.pillar:focus-within{color:var(--texte-inv);box-shadow:0 26px 50px -30px rgba(14,15,19,.45)}
.pillar:hover::after,.pillar:focus-within::after{opacity:1}
.pillar:hover .pillar-bg,.pillar:focus-within .pillar-bg{opacity:1;filter:grayscale(0);transform:scale(1)}
.pillar-num{font:800 120px/.8 var(--f-titre);color:transparent;-webkit-text-stroke:1.5px var(--or-texte);letter-spacing:-.02em;transition:transform .8s var(--ease),-webkit-text-stroke-color .4s}
.pillar:hover .pillar-num{transform:translateY(-6px);-webkit-text-stroke-color:var(--or)}
.pillar-body{transform:translateY(10px);transition:transform .8s var(--ease)}
.pillar:hover .pillar-body{transform:none}
.pillar h3{font-size:32px;margin-bottom:12px;position:relative;padding-top:16px}
.pillar h3::before{content:"";position:absolute;top:0;left:0;width:36px;height:3px;background:var(--or);transition:width .6s var(--ease)}
.pillar:hover h3::before{width:72px}
.pillar p{color:var(--texte-courant);font-size:16px;transition:color .6s}
.pillar:hover p,.pillar:focus-within p{color:var(--texte-inv-2)}

/* Cartes « trois publics » : lien d'action en bas de carte */
.pillar-cta{margin-top:16px;color:var(--or-texte)}
/* Carte sans photo (Le Village) : visuel graphique — fond sombre, barre jaune et blanche, grand titre + badge */
.pillar-visuel{background:var(--nuit)!important;filter:none!important;transform:none!important;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:10px;padding:24px}
.pv-titre{font:800 clamp(40px,4.4vw,60px)/.9 var(--f-titre);text-transform:uppercase;color:#fff;display:none}
.pillar-visuel .badge-new{display:none}
.pv-barre{position:absolute;left:0;right:0;bottom:0;height:6px;background:repeating-linear-gradient(90deg,var(--or) 0 48px,#fff 48px 96px);box-shadow:0 0 18px rgba(242,194,48,.5)}
.pillar-graph:hover .pillar-visuel,.pillar-graph:focus-within .pillar-visuel{opacity:1}
.pillar-graph::after{display:none}   /* fond déjà sombre : pas de voile, la barre reste visible */
.pillar .pillar-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:700 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte);margin-bottom:10px}
.pillar:hover .pillar-kicker,.pillar:focus-within .pillar-kicker{color:var(--or)}
.badge-new{display:inline-block;font:800 11px/1 var(--f-texte);letter-spacing:.08em;padding:5px 8px;border-radius:99px;background:var(--or);color:var(--nuit)}
.pillar h3 + p{margin-top:0}
.pillar:hover .pillar-cta,.pillar:focus-within .pillar-cta{color:var(--or)}
/* Texte sur photo claire (26/10/2026, DECISIONS point 50 ; classe posée par main.js d'après data-sur-photo) : au survol, texte
   foncé sur un voile CLAIR (contraste d'au moins 4,5:1, recette outils/tests/texte-photo-test.mjs) ; photo foncée : inchangé */
.pillar.texte-fonce::after{background:linear-gradient(180deg,rgba(247,245,240,0) 0%,rgba(247,245,240,.1) 24%,rgba(247,245,240,.7) 40%,rgba(247,245,240,.9) 54%,rgba(247,245,240,.94) 100%)}
.pillar.texte-fonce:hover,.pillar.texte-fonce:focus-within{color:var(--texte)}
.pillar.texte-fonce:hover p,.pillar.texte-fonce:focus-within p{color:var(--texte-courant)}
.pillar.texte-fonce:hover .pillar-kicker,.pillar.texte-fonce:focus-within .pillar-kicker{color:var(--texte)}   /* l'or foncé plafonne à 4,4:1 sur le voile */
.pillar.texte-fonce:hover .pillar-cta,.pillar.texte-fonce:focus-within .pillar-cta{color:var(--or-texte)}
.pillar.texte-fonce:hover .pillar-num{-webkit-text-stroke-color:var(--or-texte)}

/* Plateau 2027 : bloc typographique sur fond sombre, filet lumineux (motif de la barre, sans logos) */
.plateau{padding:120px 0}
.plateau-badge{display:inline-flex;align-items:center;gap:10px;font:700 13px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or);margin:0 0 14px}
.plateau-dot{width:8px;height:8px;border-radius:50%;background:var(--or);box-shadow:0 0 0 4px rgba(242,194,48,.2);animation:livepulse 2.4s infinite}
.plateau h2{font-size:clamp(56px,9vw,132px);line-height:.88;margin:0;color:#fff}
.plateau-filet{height:6px;border-radius:3px;margin:40px 0;background:repeating-linear-gradient(90deg,var(--or) 0 64px,#fff 64px 128px);opacity:.85;box-shadow:0 0 18px rgba(242,194,48,.45),0 0 60px rgba(242,194,48,.18)}
.plateau-txt{font-size:clamp(17px,1.5vw,20px);color:var(--texte-inv-2);margin:0 0 26px;max-width:520px}
/* Titre à gauche, filet vertical (montant de sautoir), phrase + boutons à droite */
.plateau-b .plateau-inner{display:grid;grid-template-columns:1.15fr auto .85fr;gap:56px;align-items:center}
.plateau-b h2{margin-bottom:22px}
.plateau-ph{display:block;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--nuit-2);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.plateau-ph img{width:100%;height:100%;object-fit:cover}
.plateau-b .plateau-filet{width:6px;height:80%;min-height:200px;margin:0;background:repeating-linear-gradient(180deg,var(--or) 0 40px,#fff 40px 80px)}
@media (max-width:820px){
  .plateau{padding:80px 0}
  .plateau-b .plateau-inner{grid-template-columns:1fr;gap:28px}
  .plateau-ph{order:-1}   /* mobile : photo au-dessus du texte */
  .plateau-b .plateau-filet{width:100%;height:6px;min-height:0;background:repeating-linear-gradient(90deg,var(--or) 0 48px,#fff 48px 96px)}
}
@media (max-width:600px){.plateau .btn-row .btn{width:100%}.plateau-filet{margin:30px 0}}

/* Athlètes à suivre : encart en attendant le plateau */
.soon{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.soon .lead{margin-bottom:28px}
.soon-ph{display:block;border-radius:20px;overflow:hidden;aspect-ratio:3/2;background:var(--nuit-2)}
.soon-ph img{width:100%;height:100%;object-fit:cover;object-position:40% 30%}

/* Pourquoi s'associer : packs à côté du texte, logos dessous */
.packs-mini{display:grid;gap:16px}
.pack-mini{background:var(--craie);border:1px solid var(--ligne);border-top:4px solid var(--or);border-radius:18px;padding:26px 26px 22px}
.pack-mini h3{font-size:28px;margin-bottom:8px}
.pack-mini p{font-size:15.5px;color:var(--texte-courant);margin-bottom:12px}
.pack-mini ul{list-style:none;padding:0;margin:0}
.pack-mini li{position:relative;padding-left:22px;margin:6px 0;font-size:15px;line-height:1.45}
.pack-mini li::before{content:"";position:absolute;left:0;top:.68em;width:12px;height:3px;border-radius:2px;background:var(--or)}
.partners-band{overflow:hidden}   /* infobulles des logos : pas de défilement horizontal */
/* Accueil : « Pourquoi s'associer » en zigzag — photo à gauche (athlète en entier), texte + packs à droite */
.associer{display:grid;grid-template-columns:45fr 55fr;gap:56px;align-items:center}
.associer-ph{display:block;border-radius:20px;overflow:hidden;aspect-ratio:4/5;background:var(--nuit);box-shadow:0 30px 60px -36px rgba(14,15,19,.55)}
.associer-ph img{width:100%;height:100%;object-fit:cover}
/* Packs sous les deux colonnes, pleine largeur, côte à côte */
.associer>.packs-mini{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}
@media (max-width:820px){.associer{grid-template-columns:1fr;gap:36px}.associer>.packs-mini{grid-template-columns:1fr}}
/* Billetterie et accès (section jaune) */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.access h2{margin-bottom:18px}
.access-std{font-size:16.5px;max-width:520px;margin-bottom:26px}
.access-list{margin:0;display:grid;gap:0;border-top:1.5px solid rgba(14,15,19,.25)}
.access-list>div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:14px 0;border-bottom:1.5px solid rgba(14,15,19,.25)}
.access-list dt{font:700 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;padding-top:4px}
.access-list dd{margin:0;font:800 22px/1.2 var(--f-titre);text-transform:uppercase}
.access-list a{color:var(--nuit)}
.btn.is-disabled{cursor:default;transform:none}
/* Infos pratiques (accueil, section jaune, 23/10/2026) : panneau dépliable sous la billetterie ; don discret dessous */
.infos-pratiques{margin-top:36px;scroll-margin-top:calc(var(--header-h-solid) + 16px)}
.infos-details{border-top:1.5px solid rgba(14,15,19,.25);border-bottom:1.5px solid rgba(14,15,19,.25)}
.infos-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font:800 20px/1.15 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
.infos-details summary::-webkit-details-marker{display:none}
.infos-details summary::after{content:"+";flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--nuit);color:var(--or);font:800 22px/1 var(--f-texte)}
.infos-details[open] summary::after{content:"–"}
.infos-details summary:focus-visible{outline:3px solid var(--nuit);outline-offset:3px}
.infos-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:4px 0 26px}
.infos-liste{margin:0 0 18px;display:grid;gap:12px}
.infos-liste>div{display:grid;grid-template-columns:150px 1fr;gap:12px}
.infos-liste>div[hidden]{display:none}
.infos-liste dt{font:700 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;padding-top:3px;color:var(--nuit)}
.infos-liste dd{margin:0;font-size:16px;line-height:1.5;color:var(--nuit)}
.infos-liste dd span{color:inherit;font:inherit}
.infos-liste dd a{color:var(--or-texte);font-weight:600;text-decoration:underline;text-underline-offset:3px}   /* « Itinéraire » (29/10/2026) */
.hero-infos-tete{display:flex;flex-direction:column;gap:6px}
.hero-infos-tete .kicker{margin:0}
.infos-grid.sans-plan{grid-template-columns:minmax(0,760px)}
.infos-plan{margin:0}
.infos-plan[hidden]{display:none}
.infos-plan img{display:block;width:100%;height:auto;border-radius:12px;border:2px solid var(--nuit)}
.form-don{margin:18px 0 0}
.access-don{margin:22px 0 0;display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px}
.access-don-t{margin:0;font:800 clamp(24px,2.4vw,32px)/1.05 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
@media (max-width:600px){.access-don .btn{width:100%;text-align:center}}
.hero-infos-lien{color:var(--texte-inv);font-weight:700;font-size:15px;text-decoration:underline;text-decoration-color:var(--or);text-underline-offset:4px;white-space:nowrap}
.hero-infos-lien:hover{color:var(--or)}
@media (max-width:820px){
  .soon,.access-grid{grid-template-columns:1fr;gap:32px}
  .access-list>div{grid-template-columns:1fr;gap:2px}
  .infos-grid{grid-template-columns:1fr;gap:20px}
  .infos-liste>div{grid-template-columns:1fr;gap:2px}
  .infos-details summary{font-size:17px}
}

/* Chiffres (fond blanc : chiffres en noir, trait jaune en décor) */
.stats-band{padding:84px 0;border-top:1px solid var(--ligne);border-bottom:1px solid var(--ligne)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.stat{padding:8px 28px;border-left:1px solid var(--ligne)}
.stat:first-child{border-left:0;padding-left:0}
.stat::before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--or);margin-bottom:18px}
.stat-val{font:800 clamp(52px,6vw,80px)/1 var(--f-titre);color:var(--texte);letter-spacing:-.01em}
.stat-val small{font-size:.45em;margin-left:4px;color:var(--texte-2)}
.stat-lbl{color:var(--texte-2);font-size:15px;margin-top:8px;max-width:240px}

/* Athlètes */
.filters{display:flex;gap:8px}
.chip{font:600 14px var(--f-texte);padding:9px 16px;border-radius:99px;border:1.5px solid var(--ligne);background:var(--blanc);color:var(--texte);cursor:pointer;transition:all .2s}
.chip:hover{border-color:var(--nuit)}
.chip.is-on{background:var(--nuit);border-color:var(--nuit);color:var(--or)}
.flag{font:700 11px var(--f-texte);letter-spacing:.06em;padding:3px 7px;border-radius:5px;background:var(--nuit);color:#fff}
.flag .flag-img{width:18px;height:13.5px;margin:-2px 6px 0 0;box-shadow:0 0 0 1px rgba(255,255,255,.3)}   /* drapeau dessiné (31/10/2026) */
.star-pays .drapeau-pays{width:20px;height:15px;box-shadow:0 0 0 1px rgba(255,255,255,.35)}

/* Partenaires */
.partners-band{padding:120px 0}
.partners-grid{display:grid;grid-template-columns:1.25fr .9fr;gap:48px;align-items:start;position:relative}
.ticks{list-style:none;padding:0;margin:26px 0 32px}
.ticks li{position:relative;padding-left:30px;margin:10px 0;color:inherit}
.ticks li::before{content:"";position:absolute;left:0;top:.78em;width:16px;height:3px;border-radius:2px;background:var(--or)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.leaders-card{background:var(--craie);border:1px solid var(--ligne);border-radius:20px;padding:34px;position:relative;overflow:hidden}
.leaders-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--or)}
.leaders-card h3{font-size:36px;margin-bottom:14px;color:var(--texte)}
.leaders-card p{color:var(--texte-2);margin-bottom:22px}
.leaders-card .link-arrow{color:var(--or-texte)}
.logos-band{background:var(--blanc);padding:56px 0 64px;border-bottom:1px solid var(--ligne)}
.logos-band .eyebrow{justify-content:center;margin-bottom:28px}
.logos-band .eyebrow::after{content:"";width:28px;height:2px;background:var(--or)}
.logos{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.logo-cell{display:flex;align-items:center;justify-content:center;height:96px;padding:14px;border-radius:12px;background:var(--blanc);border:1px solid var(--ligne);text-decoration:none;transition:border-color .3s,transform .3s var(--ease),box-shadow .3s}
.logo-cell img{max-height:64px;width:auto;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .4s,opacity .4s}
.logo-cell:hover{border-color:var(--or);transform:translateY(-3px);box-shadow:0 12px 30px -18px rgba(14,15,19,.35)}
.logo-cell:hover img{filter:none;opacity:1}
.logo-cell b{font:700 14px/1.25 var(--f-texte);color:var(--texte);text-align:center}

/* Direction */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.member{background:var(--blanc);border:1px solid var(--ligne);border-radius:var(--radius);overflow:hidden}
.member{transition:transform .4s var(--ease),box-shadow .4s}
.member:hover{transform:translateY(-4px);box-shadow:0 22px 40px -24px rgba(14,15,19,.35)}
.member-ph{aspect-ratio:4/4.2;background:linear-gradient(160deg,#23252e,#0e0f13);position:relative;display:grid;place-items:center;overflow:hidden}
.member-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:grayscale(1) contrast(1.05);transition:filter .6s,transform 1s var(--ease)}
.member-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(14,15,19,.55));pointer-events:none}
.member:hover .member-ph img{filter:none;transform:scale(1.04)}
.member-ph .ini{font:800 72px var(--f-titre);color:rgba(242,194,48,.35)}
.member .fiche{display:inline-block;margin-top:12px;font-size:14px;font-weight:600;color:var(--or-texte);text-decoration:none}
.member .fiche:hover{text-decoration:underline}
.member-body{padding:22px 24px 26px}
/* Notre histoire · « Trois femmes, une même passion » (lot 3, 22/10/2026) : récit du Club à gauche, les trois directrices à droite */
.famille-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(32px,5vw,72px);align-items:start}
/* Lisibilité (point 17, 25/10/2026, Notre histoire d'abord) : tous les paragraphes dans le même ton foncé ; le premier
   reste un chapô (plus grand) ; quelques mots en gras ; une phrase du texte en exergue (doré lisible, --or-texte) */
.famille-texte p{font-size:17px;line-height:1.7;color:var(--texte-courant);margin:0 0 16px;max-width:64ch}
.famille-texte>p:first-child{font-size:19px;color:var(--texte-courant)}   /* chapô : le seul premier paragraphe (pas celui de la suite repliée) */
.famille-texte b{font-weight:700;color:var(--texte-courant)}
/* Exergue : filet jaune à gauche (version A, validée par Aurore le 26/10/2026). Capitale du premier mot affichée par le
   style (texte du Club intact). RÈGLE (31/10/2026) : toute phrase en doré prend la largeur de sa colonne de texte (celle des
   paragraphes), sans limite plus étroite. */
.exergue,.famille-texte .exergue{margin:4px 0 22px;padding:2px 0 2px 20px;border-left:4px solid var(--or);max-width:none;color:var(--or-texte);font:700 clamp(26px,2.4vw,34px)/1.12 var(--f-titre);letter-spacing:.005em}
.exergue::first-letter{text-transform:uppercase}
.replay-text .lead{color:var(--texte-courant)}
.famille-portraits-t{font:700 13px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte);margin:0 0 14px}
.team-famille{grid-template-columns:1fr;gap:18px}
/* Directrices agrandies (23/10/2026) ; restent visibles au défilement du texte (ordinateur) : bloc figé sous l'en-tête et
   la barre « Sur cette page », hauteur des portraits calculée pour que les trois cartes tiennent toujours dans l'écran */
.famille-portraits{position:sticky;top:calc(var(--header-h-solid) + 64px)}
.team-famille .member{display:grid;grid-template-columns:minmax(150px,46%) 1fr;align-items:stretch}
.team-famille .member-ph{aspect-ratio:auto;min-height:clamp(150px,calc((100svh - var(--header-h-solid) - 64px - 110px) / 3),280px)}
@media (max-width:900px){.famille-portraits{position:static}}
@media (min-width:901px) and (max-height:820px){   /* écran bas (1366 × 768) : cartes resserrées, les trois tiennent */
  .famille-portraits-t{font-size:22px;margin-bottom:10px}
  .team-famille{gap:12px}
  .team-famille .member{grid-template-columns:36% 1fr}
  .team-famille .member-body{padding:10px 16px}
  .team-famille .member-body h3{font-size:21px;margin-bottom:4px}
  .team-famille .member-legende{font-size:13px}
  .team-famille .member .fiche{margin-top:6px;font-size:12.5px}
}
.team-famille .member-body{padding:22px 22px;display:flex;flex-direction:column;justify-content:center}
.team-famille .member-body h3{font-size:clamp(24px,2.1vw,30px);line-height:1.02;margin:0 0 8px}
.team-famille .member-legende{font-size:15.5px}
/* Portraits en couleur (23/10/2026) ; titre « Une direction de haut vol » */
.team-famille .member-ph img{filter:none;object-position:center 20%}
.team-famille .member:hover .member-ph img{filter:none}
.famille-portraits-t{font:800 clamp(24px,2.4vw,30px)/1.05 var(--f-titre);letter-spacing:.01em;text-transform:uppercase;color:var(--texte)}
.lb-credit{margin:8px 0 0;font-size:12.5px;color:rgba(255,255,255,.6)}
.team-famille .member .role{margin-bottom:6px}
.member-legende{margin:0;font-size:14.5px;line-height:1.45;color:var(--texte-2)}
.team-famille .member .fiche{margin-top:10px;font-size:14px;align-self:flex-start}
@media (max-width:900px){.famille-grid{grid-template-columns:1fr}}
@media (max-width:900px){.team-famille .member{grid-template-columns:minmax(150px,42%) 1fr}.team-famille .member-ph{min-height:230px}}
@media (max-width:420px){.team-famille .member{grid-template-columns:44% 1fr}.team-famille .member-ph{min-height:210px}.team-famille .member-body{padding:16px 14px}.team-famille .member-body h3{font-size:22px}.team-famille .member-legende{font-size:14.5px}}
/* Chapitre « Le meeting depuis 1998 » (repère des anciennes adresses d'Éditions) */
.chapitre{display:flex;align-items:center;gap:16px;margin:0 0 clamp(28px,4vw,44px);font:800 clamp(22px,2.4vw,30px)/1 var(--f-titre);text-transform:uppercase;letter-spacing:.02em;color:var(--texte);scroll-margin-top:100px}
.chapitre::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--or),transparent)}
.chrono-sansjs{margin-top:32px}
/* Fenêtre d'une année : record établi cette année, liens (replay, photos, résultats) */
.lb-record{margin:14px 0 0;font-weight:600;color:var(--or)}
.lb-liens{display:flex;flex-wrap:wrap;gap:8px 20px;margin:12px 0 0}
.member h3{font-size:28px;margin-bottom:4px}
.member .role{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--or-texte);font-weight:700;margin-bottom:14px}
.member ul{list-style:none;padding:0;margin:0}
.member li{font-size:15px;color:var(--texte-2);padding:7px 0;border-top:1px solid var(--ligne)}

/* Histoire : rail des affiches */
.history{padding-bottom:120px}
.rail-nav{display:flex;gap:10px;align-items:center}
/* Flèches plus visibles (02/11/2026) : 52 px (au moins 44 px au doigt), trait de 2 px, glyphe plus grand et gras, centré dans
   le cercle ; survol (souris seulement : au doigt, l'état « survolé » restait affiché, noir et jaune) */
.rail-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;width:52px;height:52px;padding:0;border-radius:50%;border:2px solid rgba(14,15,19,.6);background:transparent;color:var(--nuit);font-size:24px;font-weight:700;line-height:1;cursor:pointer;transition:all .2s}
@media (hover:hover){.rail-btn:hover{border-color:var(--nuit);background:var(--nuit);color:var(--or)}}
.rail-btn:focus-visible{outline:3px solid var(--or);outline-offset:3px}
/* Fenêtre d'une édition (fond sombre) : flèches claires ; depuis le 15/10 (« site plus lumineux »), elles étaient sombres
   sur fond sombre, presque invisibles */
.lb .rail-btn{border-color:rgba(255,255,255,.7);color:#fff}
@media (hover:hover){.lb .rail-btn:hover{border-color:var(--or);background:var(--or);color:var(--nuit)}}
/* En-tête « Les éditions » : flèches au milieu de la hauteur du titre (et non calées sur son bas) */
#editions .row-head{align-items:center}
/* « Glissez pour voir les autres éditions » : tablette et téléphone seulement (27/10/2026) */
.rail-glisser{display:none}
@media (max-width:900px){
  .rail-glisser{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px auto 0;font-size:13.5px;color:var(--texte-2)}
  .rail-glisser[hidden]{display:none}
  .rail-glisser::before{content:"";width:28px;height:16px;flex:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 16'%3E%3Cpath d='M2 8h24M20 3l6 5-6 5M8 3 2 8l6 5' fill='none' stroke='%235B5F68' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
}
/* Même largeur utile que .container (1200 - 2 × 24) : la 1re affiche s'aligne sur le titre */
.rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;width:calc(100% - 48px);max-width:1152px;margin:0 auto;padding:10px 4px 30px 4px;scroll-padding-left:4px;scrollbar-width:none;position:relative;   /* 4 px à gauche : contour jaune de l'affiche en cours jamais coupé */
  --fl:0px;--fr:0px;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl),#000 calc(100% - var(--fr)),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 var(--fl),#000 calc(100% - var(--fr)),transparent 100%)}
.rail.can-left{--fl:56px}
.rail.can-right{--fr:72px}
.rail::-webkit-scrollbar{display:none}
.ep{flex:0 0 210px;scroll-snap-align:start;position:relative;display:flex;flex-direction:column;align-self:flex-start;border-radius:14px;overflow:hidden;background:var(--blanc);box-shadow:0 0 0 1px var(--ligne);transition:transform .5s var(--ease),box-shadow .5s;border:0;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
/* Cadre au format des affiches (≈ 9/20), affiche entière visible, rien par-dessus */
.ep-ph{display:block;aspect-ratio:9/20;margin:10px 10px 0;border-radius:8px;overflow:hidden;background:var(--nuit)}
.ep-ph img{display:block;width:100%;height:100%;object-fit:contain;transition:transform 1s var(--ease)}
.ep-info{padding:14px 16px 16px}
.ep-n{font:700 12px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte)}
.ep-y{font:800 40px/1 var(--f-titre);color:var(--texte);margin:2px 0 0}
.ep:hover,.ep:focus-within{transform:translateY(-8px);box-shadow:0 0 0 1px var(--ligne),0 30px 50px -28px rgba(14,15,19,.45)}
.ep:hover .ep-ph img{transform:scale(1.04)}
.ep.is-last{box-shadow:0 0 0 2px var(--or)}

/* « 2026 en images » (Notre histoire, T.4, 29/10/2026, version B) : titre à gauche, texte à droite ; 3 tuiles sombres étoilées
   (film, photos, affiche), liseré blanc fin autour des visuels ; empilées au-dessous de 900 px ; tient dans l'écran à 1440 × 900 */
.replay{padding-bottom:70px}
.i26-tete{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:48px;margin:0 0 24px}
.i26-tete .eyebrow,.i26-tete h2{grid-column:1}
.i26-tete h2{font-size:clamp(32px,3.4vw,48px);margin:0}
.i26-tete .lead{grid-column:2;grid-row:1/3;align-self:end;margin:0}
.i26-tuiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.i26-tuile{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:16px;background:var(--nuit);color:var(--texte-inv);text-decoration:none;box-shadow:0 22px 44px -28px rgba(14,15,19,.6);transition:transform .25s var(--ease)}
a.i26-tuile:hover,a.i26-tuile:focus-visible{transform:translateY(-3px)}
a.i26-tuile:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.i26-visuel{position:relative;z-index:1;display:block;aspect-ratio:3/2;margin:14px 14px 0;overflow:hidden;border-radius:10px;border:1px solid rgba(255,255,255,.85)}
.i26-visuel>img{display:block;width:100%;height:100%;object-fit:cover}
.i26-film .replay-video{position:absolute;inset:0;aspect-ratio:auto;border-radius:0}
.i26-affiche{display:flex;align-items:center;justify-content:center;border:0;border-radius:0;background:transparent}
/* Affiche centrée dans son cadre, même espace en haut et en bas (29/10/2026 ; position absolue : hauteur fiable sur iPhone) */
.i26-affiche>img{position:absolute;top:12px;bottom:12px;left:0;right:0;margin:auto;width:auto;max-width:100%;height:calc(100% - 24px);object-fit:contain;border:1px solid rgba(255,255,255,.85);border-radius:6px}
.i26-leg{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;margin:0;padding:16px 18px 20px}
.i26-leg b{font:700 21px/1.15 var(--f-titre);text-transform:uppercase;letter-spacing:.01em;color:#fff}
.i26-leg>span{font-size:14.5px;color:var(--texte-inv-2)}
.i26-leg .i26-lien{color:var(--or);font-weight:700}
.i26-alt{position:relative;z-index:1;margin:-10px 18px 16px}
.i26-alt a{color:var(--texte-inv-2)}
.i26-pied{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:24px}
.i26-pied .replay-alt{margin:0}
@media (max-width:900px){.i26-tete{display:block}.i26-tete h2{margin-bottom:12px}.i26-tuiles{grid-template-columns:1fr;gap:16px}.i26-visuel{aspect-ratio:16/10}}
@media (max-width:600px){.i26-pied .btn{width:100%}}
@media (prefers-reduced-motion:reduce){.i26-tuile{transition:none}a.i26-tuile:hover,a.i26-tuile:focus-visible{transform:none}}
.replay-video{position:relative;display:block;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:var(--nuit)}
.replay-video img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),opacity .5s;opacity:.85}
.replay-video:hover img{transform:scale(1.04);opacity:1}
.replay-play{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;display:block}
.replay-play:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
.replay-video .yt-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.replay-video .stage-thumb{opacity:.55;transform:none}
/* Fond clair : prime sur .stage-alt (prévu pour fond sombre) */
.stage-alt.replay-alt a,.replay-alt a{color:var(--texte-2)}
.stage-alt.replay-alt a:hover,.replay-alt a:hover{color:var(--texte);text-decoration-thickness:2px}
.play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:var(--or);box-shadow:0 0 0 0 rgba(242,194,48,.6);animation:pulse 2.4s infinite}
.play::after{content:"";position:absolute;left:34px;top:26px;border-left:22px solid var(--nuit);border-top:16px solid transparent;border-bottom:16px solid transparent}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(242,194,48,.55)}70%{box-shadow:0 0 0 22px rgba(242,194,48,0)}100%{box-shadow:0 0 0 0 rgba(242,194,48,0)}}
.replay-tag{position:absolute;left:16px;bottom:14px;font:600 12px var(--f-texte);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:rgba(14,15,19,.6);padding:6px 10px;border-radius:6px}
.marquee{margin-top:90px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;gap:14px;width:max-content;animation:defile 70s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track figure{margin:0;width:220px;height:300px;border-radius:14px;overflow:hidden;flex:none;background:var(--creme)}
.marquee-track img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease),filter .6s;filter:saturate(.85)}
.marquee-track figure:hover img{transform:scale(1.07);filter:none}
@keyframes defile{to{transform:translateX(-50%)}}

/* Édition en cours */
/* Aplat jaune (une seule section jaune par page) : texte --nuit, boutons noirs */
.section-or{background:var(--or);color:var(--nuit)}
.eyebrow-nuit{color:var(--nuit)}
.eyebrow-nuit::before{background:var(--nuit)}
.edition-band{padding:70px 0;position:relative;overflow:hidden}
.edition-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap;position:relative;z-index:1}
.edition-band h2{margin:0;font-size:clamp(38px,4.6vw,58px)}
.edition-links{display:flex;gap:14px;flex-wrap:wrap}
.ed-link{display:flex;flex-direction:column;text-decoration:none;padding:18px 22px;min-width:200px;border-radius:14px;color:var(--nuit);background:rgba(255,255,255,.35);border:1.5px solid rgba(14,15,19,.3);transition:background .2s,transform .2s var(--ease),border-color .2s}
.ed-link:hover{background:rgba(255,255,255,.6);border-color:var(--nuit);transform:translateY(-3px)}
.ed-link b{font:800 24px var(--f-titre);text-transform:uppercase}
.ed-link span{font-size:14.5px}
.ed-link span::after{content:" →"}

/* Pied de page */
.site-footer{background:var(--nuit);color:var(--texte-inv-2);padding:80px 0 0;font-size:15px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:56px}
.footer-brand img{width:110px;height:auto;margin-bottom:18px}
.footer-brand p{max-width:300px}
.site-footer h4{font-size:20px;color:#fff;margin-bottom:16px}
.site-footer a{display:block;text-decoration:none;padding:4px 0;transition:color .2s}
.site-footer a:hover{color:var(--or)}
.socials{display:flex;gap:10px;margin-top:14px}
.socials a{width:40px;height:40px;border-radius:10px;border:1px solid var(--ligne-sombre);display:grid;place-items:center;padding:0}
.socials svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.socials .fill{fill:currentColor;stroke:none}
/* Bas du pied de page : centré, deux lignes (copyright + liens, puis signature) */
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 20px;padding:22px 24px 10px;border-top:1px solid var(--ligne-sombre);font-size:13.5px;text-align:center}
.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 20px}
.footer-links a{display:inline}
/* « Ne pas compter mes visites » : bouton présenté comme les liens du bas de page (caché sans JavaScript) */
.footer-refus{background:none;border:0;padding:4px 0;margin:0;font:inherit;color:inherit;cursor:pointer;text-decoration:none;transition:color .2s}
.footer-refus:hover,.footer-refus:focus-visible{color:var(--or)}
.footer-refus[aria-pressed="true"]{color:var(--or)}
.footer-refus:disabled{cursor:default;color:inherit;opacity:.85}
/* Signature du site : très discrète */
.footer-credit{display:flex;justify-content:center;padding:4px 24px 24px}
.site-footer .footer-credit a{display:inline-flex;align-items:center;gap:8px;padding:0;font:400 11.5px var(--f-texte);color:var(--texte-inv-2);text-decoration:none;opacity:.8;transition:opacity .2s}   /* .8 : contraste AA (4,5:1) */
.site-footer .footer-credit a:hover,.site-footer .footer-credit a:focus-visible{opacity:1;color:var(--texte-inv-2)}
.footer-credit img{height:14px;width:auto;display:block}
@media (max-width:600px){
  .footer-bottom{padding:20px 16px 8px}
  .footer-credit{padding:4px 16px 24px}
  .footer-credit img{height:12px}
}

/* Apparition au défilement */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.is-in{opacity:1;transform:none}

/* ---------- Responsive ---------- */
/* En-tête : menu compact (bouton Menu) jusqu'à 1303 px (29/10/2026, point M, réglage A : le menu aéré demande 1304 px ;
   seuil commun : ici, « Ordinateur : en-tête… » plus bas, sous-menus .nav-niv2 et bureau() de main.js) */
@media (max-width:1303px){
  :root{--header-h:100px;--header-h-solid:100px}   /* tablette : logo 80 px, fixe */
  .brand img,.site-header.is-solid .brand img{height:80px}
  .header-cta{display:none}
  .burger{display:block}
  .main-nav{position:fixed;inset:var(--header-h-solid) 0 auto 0;flex-direction:column;gap:0;background:var(--nuit);padding:12px 24px 28px;border-top:1px solid var(--ligne-sombre);transform:translateY(-120%);visibility:hidden;transition:transform .35s var(--ease),visibility 0s .35s;max-height:calc(100svh - var(--header-h));overflow:auto}
  .main-nav.is-open{transform:none;visibility:visible;transition:transform .35s var(--ease),visibility 0s}
  .main-nav>a{font-size:18px;padding:14px 0;border-bottom:1px solid var(--ligne-sombre);border-radius:0}
  /* Listes dépliables : le titre mène à la page, le bouton + déplie ses sections */
  .nav-groupe{display:grid;grid-template-columns:1fr 48px;align-items:center;border-bottom:1px solid var(--ligne-sombre)}
  .nav-groupe>a{font-size:18px;padding:14px 0;border-radius:0}
  .nav-deplier{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:none;border:0;color:var(--or);cursor:pointer;font:400 26px/1 var(--f-texte)}
  .nav-deplier::after{content:"+"}
  .nav-deplier[aria-expanded="true"]::after{content:"–"}
  .nav-sous{grid-column:1/-1;display:none;margin:-4px 0 12px}
  .nav-groupe.deplie>.nav-sous{display:block}
  .nav-sous a{display:block;padding:9px 0 9px 14px;border-left:2px solid rgba(255,255,255,.14);color:rgba(255,255,255,.86);font:600 15.5px var(--f-texte)}
  .nav-sous a:hover,.nav-sous a:focus-visible{color:var(--or);border-left-color:var(--or)}
  .nav-cta-mobile{display:flex;flex-direction:column;gap:10px;margin-top:20px}
  .site-header.menu-open{background:var(--nuit);height:var(--header-h-solid)}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
}
@media (max-width:1080px){
  .stats{grid-template-columns:repeat(2,1fr);row-gap:40px}
  .stat:nth-child(3){border-left:0;padding-left:0}
  .partners-grid{grid-template-columns:1fr}
  .logos{grid-template-columns:repeat(3,1fr)}
  .replay-grid{grid-template-columns:1fr;gap:36px}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  .pillars,.team{grid-template-columns:1fr}
  .pillar{min-height:340px}
  /* Mobile : photo visible en permanence en haut de carte, texte dessous */
  .pillar{padding:0 0 26px;justify-content:flex-start}
  .pillar .pillar-bg{position:relative;inset:auto;z-index:0;height:210px;opacity:1;filter:none;transform:none;background-position:var(--pos,center)}
  .pillar::after{display:none}
  .pillar-num{position:absolute;top:16px;left:20px;z-index:1;font-size:64px;-webkit-text-stroke-color:#fff}
  .pillar.texte-fonce .pillar-num{-webkit-text-stroke-color:var(--nuit)}   /* numéro sur photo claire (point 50) */
  .pillar-body{padding:22px 24px 0;transform:none}
  .pillar:hover,.pillar:focus-within{color:var(--texte)}
  .pillar:hover p,.pillar:focus-within p{color:var(--texte-courant)}
  .pillar:hover .pillar-bg,.pillar:focus-within .pillar-bg{opacity:1;filter:none;transform:none}
  /* Visuel du Village : grand titre + badge sous la barre, numéro au-dessus */
  .pillar-visuel{display:flex}
  .pv-titre,.pillar-visuel .badge-new{display:inline-block}
  .pv-barre{top:96px;bottom:auto}
  /* Flèches des affiches aussi sur tablette et téléphone (27/10/2026, validé par Aurore), 48 px pour le doigt */
  .rail-btn{display:inline-flex;align-items:center;justify-content:center;flex:none}
  .rail-nav{flex-wrap:nowrap}
  .section{padding:64px 0}
}
@media (max-width:600px){
  body{font-size:16px}
  .container{padding:0 16px}
  .hero-content{padding-top:calc(var(--header-h) + 56.25vw + 14px);padding-bottom:20px}
  .brand-name{font-size:16px}
  :root{--header-h:84px;--header-h-solid:84px}     /* mobile : logo 64 px, fixe */
  .brand img,.site-header.is-solid .brand img{height:64px}
  .hero-event{width:100%}
  .ev-item{flex:1;padding:10px 12px}
  .ev-value{font-size:18px}
  .logos{grid-template-columns:repeat(2,1fr)}
  .rail{width:calc(100% - 32px)}
  .ep{flex-basis:170px}
  .ep-ph{margin:8px 8px 0}
  .ep-info{padding:12px 12px 14px}
  .ep-n{font-size:11px;letter-spacing:.1em}
  .ep-y{font-size:34px}
  .marquee-track figure{width:170px;height:230px}
  .stats{grid-template-columns:1fr}
  .stat{border-left:0;padding-left:0}
  .footer-grid{grid-template-columns:1fr}
  .hero-actions .btn{flex:1}
  .countdown div{min-width:0;flex:1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .marquee-track{animation:none}
  .reveal{opacity:1;transform:none}
}

/* ---------- Lien « Direct » du menu ---------- */
.nav-live{display:inline-flex!important;align-items:center;gap:8px}
.live-dot{width:8px;height:8px;border-radius:50%;background:#FF3B3B;box-shadow:0 0 0 0 rgba(255,59,59,.6);animation:livepulse 1.8s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(255,59,59,.55)}70%{box-shadow:0 0 0 8px rgba(255,59,59,0)}100%{box-shadow:0 0 0 0 rgba(255,59,59,0)}}

/* ---------- Accueil : annonce du salon du direct ---------- */
/* Fond : photo du meeting assombrie (voile plus dense côté texte) */
/* Accueil : annonce du direct sur fond clair, photo dans un cadre à côté du texte */
.live-band{background:var(--craie);color:var(--texte);padding:100px 0;position:relative}
.live-band-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:center}
.live-badge{display:inline-flex;align-items:center;gap:10px;font:700 13px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:#fff;padding:9px 14px;border-radius:99px;background:var(--nuit);margin-bottom:20px}
.live-band h2{font-size:clamp(32px,3.6vw,52px);margin:0 0 14px}
.live-band-lead{color:var(--texte-courant);font-size:clamp(16px,1.3vw,18px);margin:0 0 28px;max-width:520px}
.live-band-ph{display:block;border-radius:20px;overflow:hidden;aspect-ratio:3/2;background:var(--nuit);box-shadow:0 30px 60px -36px rgba(14,15,19,.55)}
.live-band-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 35%}
.live-band-sponsor{display:flex;align-items:center;flex-wrap:wrap;gap:14px 18px;margin-top:30px;padding-top:24px;border-top:1px solid var(--ligne)}
.live-band-sponsor[hidden]{display:none}
.live-band-sponsor>p{font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-2);margin:0}
.live-plate{display:flex;align-items:center;justify-content:center;min-width:200px;height:72px;padding:10px 22px;border-radius:12px;background:#fff;border:1px solid var(--ligne);color:var(--nuit);font:700 15px var(--f-texte);text-decoration:none;transition:transform .2s var(--ease)}
a.live-plate:hover{transform:translateY(-2px)}
.live-plate img{max-height:52px;width:auto}
.main-nav>a,.nav-groupe>a{white-space:nowrap}
/* Bouton de langue FR / EN (25/10/2026, point 11, modèle A « la pilule coulissante », forme revue le même jour) : même
   arrondi que les boutons de l'en-tête (10 px ; pastille 8 px), compact, un peu moins haut que « Billetterie », fond
   légèrement transparent et fin contour clair ; pastille jaune qui glisse sous la langue active avec un léger rebond (sans mouvement
   si moins d'animations) ; FR et EN dans la police des titres, texte noir sur la pastille, gris pour l'autre langue ; sans
   drapeau. Ordinateur : juste avant « Billetterie » ; téléphone : haut du menu et pied de page. */
.langue{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:center;padding:2px;border:1px solid rgba(255,255,255,.19);border-radius:10px;background:rgba(255,255,255,.07);flex:none}
.langue button{position:relative;z-index:1;min-height:26px;padding:3px 8px;background:none;border:0;border-radius:8px;color:rgba(255,255,255,.58);font:800 15px/1 var(--f-titre);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:color .25s}
.langue button[aria-pressed="true"]{color:var(--nuit)}
.langue button[aria-pressed="false"]:hover{color:#fff}
.langue button:focus-visible{outline:2px solid var(--or);outline-offset:2px}
.langue-pastille{position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 2px);border-radius:8px;background:var(--or);pointer-events:none;transition:transform .3s cubic-bezier(.3,1.3,.5,1)}
.langue[data-lang="en"] .langue-pastille{transform:translateX(100%)}
.langue-bulle{position:absolute;top:calc(100% + 10px);right:-10px;z-index:70;width:max-content;max-width:min(270px,calc(100vw - 32px));padding:9px 13px;border-radius:10px;background:#fff;color:var(--nuit);font:600 13px/1.4 var(--f-texte);text-align:left;box-shadow:0 14px 32px -12px rgba(0,0,0,.65)}
.langue-bulle::before{content:"";position:absolute;right:22px;top:-6px;width:12px;height:12px;background:#fff;transform:rotate(45deg)}
.langue-bulle span{position:relative;display:block}
.langue-bulle span+span{color:var(--texte-2);font-weight:500}
.header-cta .langue{margin-right:0;align-self:center}
.header-cta .langue button{min-height:24px}
.langue-menu,.footer-langue{display:none}
@media (prefers-reduced-motion:reduce){.langue-pastille{transition:none}}
/* Ordinateur : en-tête sur une ligne avec FR / EN, menu aéré (29/10/2026, point M, réglage A choisi par Aurore) : environ
   20 px entre deux liens, 33 px entre « Direct » et FR / EN ; en-tête élargi (contenu jusqu'à 1344 px, plus large que le
   conteneur des sections), menu compact au-dessous de 1304 px. Mesures : _sources/verif-menu/menu-captures.mjs */
@media (min-width:1304px){
  .site-header .header-inner{max-width:1392px}
  .header-inner{gap:12px}
  .brand{gap:10px}
  .main-nav{gap:6px}
  .main-nav>a,.nav-groupe>a{padding:8px 7px}
  .header-cta{gap:8px;margin-left:14px}
  .header-cta .btn-sm{padding:10px 12px}
}
/* FR / EN dans l'en-tête sous 1304 px (recette du 31/10/2026, version A choisie par Aurore) : la pilule de l'ordinateur en plus
   petit, juste avant le bouton du menu ; seule elle reste des boutons de .header-cta. Dans la barre de l'en-tête (hauteur
   inchangée), jamais par-dessus la page ; langue active sous la pastille jaune. Contrôle : _sources/verif-z/langue-a.mjs */
@media (max-width:1303px){
  .header-cta{display:flex;align-items:center;flex:none;margin-left:auto;margin-right:6px}
  .header-cta>.btn{display:none}
  .burger{margin-left:0;flex:none}
  .header-cta .langue button{min-height:32px;padding:2px 8px;font-size:14px}
}
@media (max-width:1303px){
  .langue-menu{display:flex;justify-content:flex-end;padding:4px 0 10px}
  .footer-langue{display:inline-flex}
  .langue button{min-height:44px}
  .footer-langue .langue-bulle{top:auto;bottom:calc(100% + 10px);right:auto;left:-10px}
  .footer-langue .langue-bulle::before{top:auto;bottom:-6px;right:auto;left:22px}
}
/* Page 404 */
.page-404{min-height:min(72svh,640px);display:flex;align-items:center;padding-top:calc(var(--header-h) + 40px)}
.page-404 h1{font-size:clamp(46px,6.4vw,92px);line-height:.9;margin-bottom:24px}
.page-404 h1 em{font-style:normal;color:var(--or-texte)}   /* fond clair : doré foncé, jamais le jaune vif */
.page-404 .lead{margin-bottom:28px}
/* En-tête à fond plein (pages sans ouverture sombre, ex. 404) */
.entete-plein .site-header{background:rgba(14,15,19,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--ligne-sombre)}
/* Pas encore de partenaire principal : appel cliquable (accueil et salon du direct) */
.live-plate-appel{height:auto;min-height:72px;border:1.5px dashed var(--or-texte);color:var(--or-texte);text-align:center;line-height:1.35}
.sponsor-appel{color:var(--or-texte);text-decoration:none;text-align:center;line-height:1.1}
.sponsor-appel:hover,.live-plate-appel:hover{text-decoration:underline;text-underline-offset:4px}
@media (max-width:820px){.live-band-grid{grid-template-columns:1fr;gap:36px}.live-band-ph{order:-1}}
@media (max-width:600px){.live-band{padding:64px 0}.live-band .btn{width:100%}.live-plate{min-width:0;width:100%}.live-band-ph{aspect-ratio:4/5}}

/* =========================================================
   SALON DU DIRECT (direct.html)
   ========================================================= */
.salon{background:var(--nuit);color:var(--texte-inv);padding:calc(var(--header-h) + 36px) 0 90px;position:relative;overflow:hidden;min-height:100svh}
.salon-top{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px;position:relative}
.salon-top h1{font-size:clamp(40px,6vw,76px)}
.status-pill{display:inline-flex;align-items:center;gap:10px;font:700 13px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;padding:9px 14px;border-radius:99px;border:1px solid var(--ligne-sombre);background:var(--nuit-2)}
.status-pill.is-live{border-color:rgba(255,59,59,.5);color:#fff}
.status-pill.is-live .live-dot{display:inline-block}
.status-pill .live-dot{display:none}
.presented{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--texte-inv-2)}
.presented a,.presented span.ps{display:flex;align-items:center;justify-content:center;min-width:150px;height:52px;padding:8px 16px;border-radius:10px;background:#fff;color:var(--nuit);font:700 14px var(--f-texte);letter-spacing:0;text-transform:none;text-decoration:none}
.presented img{max-height:36px;width:auto}
.stage-wrap{display:grid;grid-template-columns:1fr;gap:18px;position:relative}
.stage-wrap.with-chat{grid-template-columns:1fr 360px}
.stage{position:relative;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#000;box-shadow:0 40px 80px -40px rgba(0,0,0,.9),0 0 0 1px var(--ligne-sombre)}
.stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* Lecteur YouTube (lecteur-youtube.js) : façade sans connexion à YouTube, lecteur après le clic */
.yt-frame{position:absolute;inset:0;width:100%;height:100%;border:0}
.yt-facade .stage-thumb{opacity:.32}
.yt-facade-corps{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:14px;max-width:520px}
.yt-lancer{gap:12px;box-shadow:0 0 0 0 rgba(242,194,48,.6);animation:pulse 2.4s infinite}
.yt-triangle{width:0;height:0;border-left:14px solid var(--nuit);border-top:9px solid transparent;border-bottom:9px solid transparent}
.yt-info{margin:0;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.88)}
.yt-ext{font-size:13px;color:rgba(255,255,255,.75);text-decoration:underline;text-underline-offset:3px}
.yt-ext:hover{color:#fff}
@media (max-width:600px){
  .yt-facade{padding:12px}
  .yt-facade-corps{gap:8px}
  .yt-lancer{padding:12px 20px;font-size:15px}
  .yt-info{font-size:11.5px;line-height:1.35}
  .yt-ext{font-size:12px}
}
@media (prefers-reduced-motion:reduce){.yt-lancer{animation:none}}
.stage-fallback .stage-thumb{opacity:.35;filter:grayscale(.3)}
.fallback-box{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px}
.fallback-box p{font:700 clamp(18px,2vw,24px)/1.3 var(--f-texte);color:#fff;margin:0}
.stage-alt{margin:12px 0 0;font-size:13.5px;text-align:right}
.stage-alt[hidden]{display:none}
.stage-alt a{color:var(--texte-inv-2);text-decoration:underline;text-underline-offset:3px}
.stage-alt a:hover{color:#fff}
.stage-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:radial-gradient(800px 400px at 50% 30%,rgba(242,194,48,.14),transparent 60%),linear-gradient(160deg,#1a1b22,#0b0c10)}
.stage-cover .sponsor-big{display:flex;align-items:center;justify-content:center;min-width:240px;min-height:90px;padding:16px 28px;border-radius:14px;background:#fff;color:var(--nuit);font:800 22px var(--f-titre);text-transform:uppercase;margin:10px 0 26px}
.stage-cover .sponsor-big img{max-height:70px;width:auto}
.stage-cover small{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-inv-2)}
.stage-cover h2{font-size:clamp(28px,3.6vw,46px);margin:0 0 10px}
.stage-cover .countdown{justify-content:center;margin:6px 0 0}
.stage-thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}
.stage-play{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:16px;background:none;border:0;color:#fff;cursor:pointer;font:700 15px var(--f-texte)}
.stage-play .play{position:relative;left:auto;top:auto;margin:0}
.chat{border-radius:20px;overflow:hidden;background:var(--nuit-2);border:1px solid var(--ligne-sombre);min-height:300px}
.chat iframe{width:100%;height:100%;min-height:480px;border:0}
.salon-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;align-items:center}
.salon-note{font-size:13px;color:var(--texte-inv-2);margin-top:12px}
/* ---------- Salon du direct en un seul bloc (maquette validée le 23/10/2026, direct.js) ----------
   Le bloc tient dans l'écran : largeur du lecteur calculée sur la hauteur disponible (écran − en-tête − haut − bande). */
.salon{padding:calc(var(--header-h) + 6px) 0 18px;min-height:0;display:flex;flex-direction:column;align-items:center}
.salon-bloc{--h-haut:52px;--h-bande:64px;width:100%;padding:0 24px;box-sizing:border-box;display:flex;justify-content:center}
.sl-cadre{position:relative;display:flex;flex-direction:column;width:min(100%,1180px,calc((100svh - var(--header-h) - 40px - var(--h-haut) - var(--h-bande)) * 16 / 9))}
.sl-etat{white-space:nowrap;font-size:11.5px;letter-spacing:.1em;padding:7px 12px}
.sl-presente .sponsor-appel{white-space:nowrap}
.sl-haut{height:var(--h-haut);display:flex;align-items:flex-end;justify-content:space-between;gap:12px}
.presented.sl-presente{gap:12px;padding:8px 12px 8px 14px;border-radius:12px 12px 0 0;background:#fff;color:var(--texte-2);font-size:11px}
.sl-presente a,.sl-presente span.ps{min-width:0;height:auto;padding:4px 10px;border-radius:6px;font-size:13px;box-shadow:0 0 0 1px var(--ligne)}
.sl-presente img{max-height:30px}
.sl-presente .sponsor-appel{background:var(--creme);color:var(--nuit);text-transform:none;letter-spacing:0}
.sl-etat{margin:0 0 8px}
.sl-lecteur.stage-wrap{position:relative;gap:0}
.sl-lecteur .stage{border-radius:0 14px 14px 14px}
.sl-pe{position:absolute;right:12px;bottom:12px;z-index:5;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:0;border-radius:10px;background:rgba(14,15,19,.78);color:#fff;font:700 13px var(--f-texte);cursor:pointer}
.sl-pe svg{width:16px;height:16px}
.sl-pe:hover{background:var(--or);color:var(--nuit)}
.sl-pe:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.sl-bande{height:var(--h-bande);display:flex;align-items:center;gap:18px;padding:0 4px;overflow:hidden}
.sl-bande[hidden]{display:none}
.sl-bande p{flex:none;margin:0;font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or)}
.sl-logos{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.sl-piste{display:flex;gap:40px;width:max-content;align-items:center;animation:mur-glisse var(--duree,50s) linear infinite;will-change:transform}
.sl-logos:hover .sl-piste,.sl-logos:focus-within .sl-piste{animation-play-state:paused}
.sl-piste a{display:flex;align-items:center;opacity:.85;transition:opacity .2s}   /* logos blancs discrets (exception du Direct, DECISIONS point 26) */
.sl-piste img{display:block;object-fit:contain}   /* taille calculée par PAETailleLogo (main.js), proportions gardées */
.sl-piste a:hover,.sl-piste a:focus-visible{opacity:1}
@media (prefers-reduced-motion:reduce){.sl-piste{animation:none}}
.salon .stage-alt{width:min(100%,1180px);padding:0 24px;box-sizing:border-box}
/* Plein écran (API du navigateur), « grand écran » (iPhone) et téléphone en paysage (23/10/2026, remplace l'effacement
   des commandes après 3 s) : les commandes restent visibles en permanence, discrètes, et ne recouvrent jamais la vidéo.
   Disposition « écran » (.ecran, direct.js) : bande fine en haut (« Présenté par », état, bouton « Quitter » de 44 px au
   moins), vidéo entière au centre (16:9, marges noires), bande des partenaires en bas. Marges noires assez larges de chaque
   côté d'une vidéo pleine hauteur (.cotes, --marge calculée par direct.js) : commandes à gauche et à droite de la vidéo.
   En-tête du site masqué sur la page Direct en paysage. */
.salon-bloc.plein{position:fixed;inset:0;z-index:300;padding:0;background:#000}
.salon-bloc.plein .sl-cadre{width:100%;height:100%}
@media (max-height:500px) and (orientation:landscape){
  .page-direct .site-header{display:none}
  .salon{padding:0}
  .salon-bloc{padding:0;height:100svh;background:#000}
  .sl-cadre{width:100%;height:100svh}
  .salon .stage-alt{display:none}
}
.salon-bloc.ecran{--h-barre:56px;--h-pied:46px}
.salon-bloc.ecran .sl-cadre{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--h-barre) minmax(0,1fr) var(--h-pied);width:100%;height:100%;background:#000}
.salon-bloc.ecran .sl-haut{grid-row:1;grid-column:1;height:auto;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;padding:0 140px 0 16px;min-width:0}
.salon-bloc.ecran .presented.sl-presente{border-radius:10px;background:rgba(255,255,255,.92);padding:5px 10px}
.salon-bloc.ecran .sl-etat{margin:0;background:rgba(255,255,255,.08)}
.salon-bloc.ecran .sl-lecteur.stage-wrap{grid-row:2;grid-column:1;position:static;display:flex;align-items:center;justify-content:center;min-height:0;height:100%;container-type:size}
.salon-bloc.ecran .stage{width:min(100cqw,100cqh * 16 / 9);height:auto;aspect-ratio:16/9;border-radius:0}
.salon-bloc.ecran .chat{display:none}
.salon-bloc.ecran .sl-bande{grid-row:3;grid-column:1;position:static;height:auto;margin:0;padding:0 16px;background:none;opacity:.85;flex-direction:row;align-items:center}
/* Bouton « Quitter » / « Plein écran » : dans la bande du haut, à droite ; 44 px au moins (doigt) */
.salon-bloc.ecran .sl-pe{position:absolute;top:calc((var(--h-barre) - 44px) / 2);right:12px;bottom:auto;min-height:44px;min-width:44px;padding:0 14px;justify-content:center;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);font-size:13.5px}
.salon-bloc.ecran .sl-pe:hover{background:var(--or);color:var(--nuit);border-color:var(--or)}
.salon-bloc.plein .sl-pe svg{display:none}
.salon-bloc.plein .sl-pe::before{content:"✕";font-size:15px;line-height:1}
/* Téléphone en paysage : bandes plus fines */
@media (max-height:500px) and (orientation:landscape){
  .salon-bloc.ecran{--h-barre:48px;--h-pied:26px}
  .salon-bloc.ecran .sl-haut{padding:0 120px 0 8px;gap:8px}
  .salon-bloc.ecran .presented.sl-presente{padding:3px 7px;gap:0}
  .salon-bloc.ecran .presented.sl-presente>span:first-child{display:none}
  .salon-bloc.ecran .sl-presente a,.salon-bloc.ecran .sl-presente span.ps{font-size:10.5px;padding:2px 6px;box-shadow:none}
  .salon-bloc.ecran .sl-presente img{max-height:20px}
  .salon-bloc.ecran .sl-etat{font-size:9.5px;padding:4px 8px}
  .salon-bloc.ecran .sl-bande{gap:10px;padding:0 10px}
  .salon-bloc.ecran .sl-bande p{font-size:8.5px}
  .salon-bloc.ecran .sl-logos,.salon-bloc.ecran .sl-piste{height:26px}
  .salon-bloc.ecran .sl-piste{gap:22px}
  .salon-bloc.ecran .sl-piste img{height:12px!important;width:auto!important}
  .salon-bloc.ecran .sl-pe{right:8px;padding:0 12px;font-size:12px}
}
/* Commandes dans les marges noires (.cotes) : à gauche « Présenté par » et l'état, à droite « Quitter » puis la bande des
   partenaires, qui défile de haut en bas ; la vidéo garde toute la hauteur */
.salon-bloc.ecran.cotes .sl-cadre{grid-template-columns:var(--marge) minmax(0,1fr) var(--marge);grid-template-rows:minmax(0,1fr)}
.salon-bloc.ecran.cotes .sl-lecteur.stage-wrap{grid-row:1;grid-column:2}
.salon-bloc.ecran.cotes .sl-haut{grid-row:1;grid-column:1;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:10px 6px}
.salon-bloc.ecran.cotes .presented.sl-presente{flex-direction:column;max-width:100%;text-align:center}
.salon-bloc.ecran.cotes .sl-presente .sponsor-appel{white-space:normal}
.salon-bloc.ecran.cotes .sl-presente img{max-width:100%}
.salon-bloc.ecran.cotes .sl-etat{max-width:100%;white-space:normal;text-align:center;line-height:1.3;text-transform:none;letter-spacing:0;font-size:9.5px;padding:5px 6px;border-radius:10px;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}
.salon-bloc.ecran.cotes .sl-etat .live-dot{display:none}
.salon-bloc.ecran.cotes .sl-pe{top:10px;right:calc((var(--marge) - min(var(--marge) - 12px, 120px)) / 2);width:min(calc(var(--marge) - 12px),120px);padding:0 6px}
.salon-bloc.ecran.cotes .sl-bande{grid-row:1;grid-column:3;flex-direction:column;align-items:center;gap:8px;padding:66px 6px 10px;min-height:0;height:100%}
.salon-bloc.ecran.cotes .sl-bande p{text-align:center;line-height:1.3;letter-spacing:.08em}
.salon-bloc.ecran.cotes .sl-logos{flex:1;width:100%;height:auto;min-height:0;-webkit-mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(180deg,transparent,#000 8%,#000 92%,transparent)}
.salon-bloc.ecran.cotes .sl-piste{flex-direction:column;width:100%;height:max-content;gap:22px;animation-name:sl-glisse-v}
.salon-bloc.ecran.cotes .sl-piste a{justify-content:center}
.salon-bloc.ecran.cotes .sl-piste img{max-width:calc(var(--marge) - 20px)!important;height:auto!important;max-height:24px;width:auto!important}
@keyframes sl-glisse-v{to{transform:translateY(-50%)}}
.salon-bloc.ecran.cotes .sl-logos:hover .sl-piste,.salon-bloc.ecran.cotes .sl-logos:focus-within .sl-piste{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.salon-bloc.ecran.cotes .sl-piste{animation:none}}
/* Boucle continue de la bande (24/10/2026) : l'écart est porté par chaque logo (marge après lui, écart final compris), jamais
   par « gap » : la piste (liste doublée) recule EXACTEMENT d'une liste (-50 %), sans saut au moment de la boucle */
.sl-piste,.salon-bloc.ecran .sl-piste,.salon-bloc.ecran.cotes .sl-piste{gap:0}
.sl-piste a{flex:none;margin-right:40px}
.salon-bloc.ecran .sl-piste a{margin-right:22px}
.salon-bloc.ecran.cotes .sl-piste a{margin-right:0;margin-bottom:22px}
html.salon-plein{overflow:hidden}
html.salon-plein .salon{z-index:400;overflow:visible}   /* la section du salon passe devant les sections suivantes */
@media (max-width:600px){
  .salon-bloc{--h-haut:44px;padding:0 12px}
  .sl-cadre{width:100%}
  .presented.sl-presente{font-size:9.5px;gap:8px;padding:6px 10px}
  .sl-presente a,.sl-presente span.ps{font-size:11.5px;padding:3px 8px}
  .sl-haut{height:auto;flex-direction:column-reverse;align-items:flex-start;gap:8px}
  .sl-etat{font-size:10px;letter-spacing:.06em;padding:6px 10px;white-space:normal}
  .sl-bande{flex-direction:column;align-items:stretch;gap:8px;height:auto;margin-top:12px}
  .sl-logos{flex:none;height:40px}
  .sl-piste{height:40px}
  .sl-bande p{font-size:10.5px}
  .sl-pe{padding:7px 10px;font-size:12px;right:8px;bottom:8px}
}
.ribbon{margin-top:46px;border-top:1px solid var(--ligne-sombre);padding-top:26px}
.ribbon p{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--texte-inv-2);margin-bottom:16px}
.ribbon-logos{display:flex;flex-wrap:wrap;gap:12px}
/* Plaques toutes identiques ; logos dimensionnés par poids visuel (direct.js) */
.ribbon-logos a{width:156px;height:62px;padding:10px 16px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;transition:transform .3s var(--ease)}
.ribbon-logos a:hover{transform:translateY(-3px)}
.ribbon-logos img{max-width:100%;max-height:42px;object-fit:contain}
/* Direct : partenaires sur fond clair, entre le salon et le pied de page (ambiance B, jamais deux sombres d'affilée) */
.soutien{padding:56px 0 64px}
.soutien .ribbon{margin-top:0;border-top:0;padding-top:0}
.soutien .ribbon p{color:var(--texte-2)}
.soutien .ribbon-logos a{border:1px solid var(--ligne)}
@media (max-width:600px){.ribbon-logos{gap:10px}.ribbon-logos a{width:calc(50% - 5px);height:56px}}
@media (max-width:1080px){.stage-wrap.with-chat{grid-template-columns:1fr}.chat iframe{min-height:420px}}
@media (max-width:600px){.salon{padding-top:calc(var(--header-h) + 24px)}.stage{border-radius:14px}.stage-cover .sponsor-big{min-width:180px;min-height:64px;margin:6px 0 14px}.stage-cover .countdown div{padding:8px 4px}.stage-cover .countdown b{font-size:24px}}

/* ---------- « Ils ont marqué le meeting » (page Éditions) : une carte à la fois (validé le 22/10/2026, option 1) ----------
   Section crème ; comparateur en carte blanche (dessin + comparaisons) ; carte de l'athlète gris graphite : photo noir et
   blanc à gauche, éclaircie, qui se fond progressivement vers la droite dans le gris (téléphone : vers le bas) ; identité et
   histoire en clair sur le gris ; grandes vignettes (prénom, nom, hauteur) dessous (téléphone : au-dessus). Une seule grille :
   les mêmes éléments sont placés autrement (aucun contenu en double). Cadrage de la photo : main.js (visage entier, repère
   « visage » de chaque athlète dans data.js). */
.mq{--carte:#2B2D33;--carte-rgb:43,45,51;   /* gris foncé (23/10/2026) : la photo se fond sans limite visible */
padding:clamp(28px,4.5svh,56px) 0 clamp(22px,3.5svh,44px)}
.mq .section-head{margin-bottom:clamp(14px,2.4svh,26px)}
.mq .section-head h2{margin:0;font-size:clamp(36px,4.6vw,60px)}
.mq .section-head .eyebrow{margin-bottom:8px}
.mq .note{margin:clamp(10px,1.8svh,18px) 0 0;font-size:13.5px;color:var(--texte-2)}
.mq button:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.mq-zone{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);column-gap:20px;
  grid-template-areas:"dessin portrait" "comp portrait" "vig vig";grid-template-rows:auto auto auto}
.mq-bloc{background:var(--blanc);color:var(--texte);position:relative}
.mq-vignettes{grid-area:vig}.mq-dessin{grid-area:dessin}.mq-comp{grid-area:comp}.mq-portrait{grid-area:portrait}
.mq-ident{grid-area:1/2/2/3}.mq-texte{grid-area:2/2/3/3}   /* posées sur la carte graphite, à droite de la photo */

/* Comparateur : carte blanche (dessin puis comparaisons), ombre marquée pour se détacher du crème */
.mq-dessin,.mq-comp{box-shadow:0 18px 36px -16px rgba(14,15,19,.36),0 0 0 1px var(--ligne)}
.mq-dessin{border-radius:22px 22px 0 0;padding:clamp(12px,2svh,22px) clamp(16px,1.8vw,26px) 4px;display:flex;flex-direction:column;overflow:hidden}
.mq-dessin::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 20% 0%,rgba(242,194,48,.14),transparent 60%);pointer-events:none}
.mq-dessin .eyebrow{margin-bottom:4px}
.mq-comp{border-radius:0 0 22px 22px;padding:0 clamp(16px,1.8vw,26px) clamp(12px,2svh,20px);z-index:1}
.mq-svg{flex:1;min-height:0;display:flex;align-items:center}
.mq-svg svg{width:100%;height:100%;max-height:calc(100svh - var(--header-h-solid) - 640px);min-height:150px;display:block}
.mq-svg .cmp-bar{transition:transform .6s var(--ease)}
.cmp-list{list-style:none;padding:0;margin:0}
.cmp-list li{display:flex;gap:12px;align-items:baseline;padding:clamp(4px,.8svh,7px) 0;border-top:1px solid var(--ligne);font-size:15px;color:var(--texte)}
.cmp-list b{font:800 22px/1 var(--f-titre);color:var(--or-texte);min-width:58px}

/* Carte de l'athlète : gris graphite, photo éclaircie qui se fond dans le gris */
.mq-portrait{background:var(--carte);border-radius:22px;overflow:hidden;min-height:clamp(240px,30svh,330px);box-shadow:0 14px 34px -18px rgba(14,15,19,.45)}
.mq-photo{position:absolute;left:0;top:0;bottom:0;width:55%;overflow:hidden}
.mq-photo img{position:absolute;max-width:none;display:block;filter:grayscale(1) brightness(1.08) contrast(1.04)}
.mq-photo .mq-init{position:absolute;inset:0;display:grid;place-items:center;font:800 clamp(90px,16svh,150px)/1 var(--f-titre);color:rgba(255,255,255,.08)}
/* Fondu progressif vers la droite (à partir de --f0, posé par main.js après le visage), jusqu'au gris : aucune coupure */
.mq-photo::after{content:"";position:absolute;inset:0;pointer-events:none;--f0:46%;
  background:linear-gradient(90deg,rgba(var(--carte-rgb),0) var(--f0),rgba(var(--carte-rgb),.22) calc(var(--f0) + (100% - var(--f0)) * .18),rgba(var(--carte-rgb),.55) calc(var(--f0) + (100% - var(--f0)) * .4),rgba(var(--carte-rgb),.84) calc(var(--f0) + (100% - var(--f0)) * .62),rgba(var(--carte-rgb),.97) calc(var(--f0) + (100% - var(--f0)) * .82),var(--carte) 100%)}
/* Photo plus étroite que sa case (visage entier conservé) : côtés fondus dans le gris */
.mq-photo.etroite::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,var(--carte) var(--a,0px),rgba(var(--carte-rgb),.55) var(--a2,0px),rgba(var(--carte-rgb),0) var(--b,40px),rgba(var(--carte-rgb),0) var(--c,90%),rgba(var(--carte-rgb),.55) var(--d2,95%),var(--carte) var(--d,100%))}
/* Marge gauche du texte (28/10/2026, point H) : par défaut, juste après la photo (55 % de la carte × 0,97, comme main.js) ;
   main.js l'ajuste quand la photo est chargée. Avant, seul le script la posait : sans photo (initiales, photo de démonstration
   retirée du site construit) ou photo pas encore chargée, le texte se collait au bord gauche de la carte */
.mq-ident,.mq-texte{background:transparent;color:#fff;z-index:3;padding-left:53.35%;padding-right:clamp(18px,2vw,30px)}
.mq-ident{align-self:end;padding-top:clamp(16px,2.6svh,28px);padding-bottom:6px}
.mq-texte{padding-top:6px;padding-bottom:clamp(16px,2.6svh,28px)}
.mq-nom{font:800 clamp(28px,4svh,38px)/1 var(--f-titre);text-transform:uppercase;margin:0;color:#fff}
.mq-nom span{display:block;font-size:.62em;letter-spacing:.02em;color:#fff}
.mq-ligne{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.mq-perf{font:800 clamp(38px,6svh,52px)/1 var(--f-titre);color:#fff}
.mq-perf small{font-size:.42em;margin-left:4px;color:#fff}
.mq-ident .flag{background:#fff;color:var(--nuit)}
.mq-record{padding:4px 9px;border:0;border-radius:6px;background:var(--or);font:800 11px/1.2 var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--nuit)}   /* badge jaune plein (23/10/2026) */
.mq-meta{margin-top:6px;font-size:13px;color:#E6E7EB}
.mq-histoire{margin:0;font-size:clamp(14px,1.9svh,15.5px);line-height:1.55;color:#E6E7EB}
.mq-anim{animation:mqIn .28s var(--ease)}
@keyframes mqIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* Grandes vignettes : prénom et nom sur deux lignes, puis la hauteur ; 7 sur une ligne (ordinateur) */
.mq-vignettes{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(8px,1.2vw,18px);margin-top:clamp(12px,2svh,22px)}
.mq-vig{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 2px 0;border:0;background:none;color:var(--texte);font:inherit;cursor:pointer;width:clamp(104px,9.2vw,138px)}
.mq-vig[hidden]{display:none}
.mq-rond{width:clamp(78px,10.5svh,100px);height:clamp(78px,10.5svh,100px);border-radius:50%;overflow:hidden;background:var(--nuit-2);border:3px solid var(--ligne);display:grid;place-items:center;font:800 32px var(--f-titre);color:var(--or);transition:border-color .25s,transform .25s var(--ease),box-shadow .25s}
.mq-rond img{width:100%;height:100%;object-fit:cover}
/* Vignette cadrée sur le repère du visage : main.js (cadrerVignette) pose la position, les bords fondus et la couleur du fond */
.mq-rond.mq-cadre,.tb-med.mq-cadre{position:relative}
.mq-n{text-align:center;font:600 12.5px/1.15 var(--f-texte);color:var(--texte-2)}
.mq-n b{display:block;font:800 15px/1.05 var(--f-titre);text-transform:uppercase;letter-spacing:.02em;color:var(--texte)}
.mq-n em{display:block;margin-top:3px;font:800 15px/1 var(--f-titre);font-style:normal;color:var(--or-texte)}
.mq-vig:hover .mq-rond{border-color:var(--nuit);transform:translateY(-2px)}
.mq-vig:focus-visible{outline:none}
.mq-vig:focus-visible .mq-rond{box-shadow:0 0 0 3px var(--or)}
.mq-vig[aria-pressed="true"] .mq-rond{border-color:var(--or);box-shadow:0 0 0 4px rgba(242,194,48,.45)}
.mq-vig[aria-pressed="true"] .mq-n b{color:var(--or-texte)}

/* Sans JavaScript : toutes les histoires, en liste (le script la masque et montre la carte) */
.mq-histoires{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.mq-histoires li{background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;padding:14px 16px;font-size:15px}
.mq-histoires b{font:800 20px/1.1 var(--f-titre);text-transform:uppercase}

/* Ordinateur bas (1366 × 768) : textes et vignettes resserrés pour tenir à l'écran */
@media (min-width:901px) and (max-height:800px){
  .cmp-list li{font-size:14px;padding:3px 0}
  .cmp-list b{font-size:19px;min-width:52px}
  .mq-histoire{font-size:14px;line-height:1.5}
  .mq-perf{font-size:40px}
  .mq-ident{padding-top:12px}
  .mq-texte{padding-bottom:12px}
  .mq-vignettes{margin-top:10px}
  .mq-vig{gap:4px}
  .mq-rond{width:72px;height:72px}
}
/* Tablette et téléphone : vignettes ; carte graphite (photo pleine largeur fondue vers le bas, identité sur le bas du dégradé) ;
   puis le comparateur blanc (dessin réduit, comparaisons) et l'histoire sur fond blanc */
@media (max-width:900px){
  /* 27/10/2026 (validé par Aurore) : la carte de la légende choisie montre ses infos juste sous la photo, sur le même fond
     sombre (« au meeting, en … », histoire) ; puis le dessin de l'immeuble, agrandi, et les comparaisons sur une ligne */
  .mq-zone{grid-template-columns:minmax(0,1fr);grid-template-areas:"vig" "portrait" "texte" "dessin" "comp";grid-template-rows:auto}
  .mq-ident{grid-area:portrait}.mq-texte{grid-area:texte}
  .mq-vignettes{margin:0 0 14px;gap:10px 6px}
  .mq-vig{width:calc((100% - 18px) / 4);padding-top:2px;gap:4px}
  .mq-rond{width:54px;height:54px;font-size:20px;border-width:2px}
  .mq-n{font-size:11px;line-height:1.1}
  .mq-n b{font-size:12.5px;line-height:1.05}
  .mq-n em{font-size:13px;margin-top:2px}
  /* 320 px (27/10/2026) : le nom et la performance (≈ 115 px) reposent entièrement sur la partie sombre du fondu (contraste
     4,5:1 au moins, recette etoiles-test) ; visage entier dans la moitié haute, même en gros plan (main.js, zone nette du
     téléphone : 53 % ; la taille du visage dépend de la largeur de l'écran, pas de cette hauteur) */
  .mq-portrait{border-radius:18px 18px 0 0;min-height:0;height:320px;margin-bottom:0;box-shadow:none}
  .mq-photo{width:auto;right:0}
  .mq-photo::after{background:linear-gradient(180deg,rgba(var(--carte-rgb),0) 53%,rgba(var(--carte-rgb),.6) 57%,rgba(var(--carte-rgb),.9) 62%,rgba(var(--carte-rgb),.97) 69%,var(--carte) 100%)}
  .mq-ident{align-self:end;margin-bottom:0;padding:0 16px 6px}
  .mq-nom{font-size:28px}
  .mq-nom span{font-size:.58em}
  .mq-meta{display:block;margin-top:4px}
  .mq-ligne{margin-top:10px;gap:8px}   /* 10 px (29/10/2026, B14) : le nom et le chiffre ne se touchent plus */
  .mq-perf{font-size:34px}
  .mq-record{font-size:10px;padding:2px 6px}
  .mq-dessin{border-radius:18px 18px 0 0;padding:10px 12px 0}
  .mq-dessin .eyebrow{display:none}
  .mq-svg svg{max-height:210px;min-height:0;height:auto}
  /* repères du dessin lisibles au téléphone (« Immeuble · 2 étages », hauteurs, nom de l'athlète) */
  .mq-svg text[font-size="11.5"]{font-size:16px}.mq-svg text[font-size="11"]{font-size:15px}.mq-svg .cmp-bar-txt{font-size:14px}
  .mq-comp{border-radius:0 0 18px 18px;padding:4px 12px 12px}
  .cmp-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .cmp-list li{flex-direction:column;align-items:flex-start;gap:3px;padding:8px 0 0;font-size:12.5px;line-height:1.3}
  .cmp-list b{min-width:0;font-size:20px}
  .mq-texte{background:var(--carte);color:#fff;border-radius:0 0 18px 18px;padding:2px 16px 16px;margin-bottom:14px;box-shadow:0 14px 34px -18px rgba(14,15,19,.45);z-index:1}
  .mq-histoire{color:#E6E7EB;font-size:14.5px}
}
@media (max-width:370px){
  .mq-rond{width:48px;height:48px}
  .mq-portrait{height:300px}
  .mq-svg svg{max-height:190px}
}
/* Téléphone étroit (360 px) : titre de la section sur une ligne */
@media (max-width:420px){.mq .section-head h2{font-size:clamp(30px,9.2vw,38px)}}
@media (prefers-reduced-motion:reduce){.mq-anim{animation:none}.mq *{transition:none!important}}

/* Galerie 2026 sur fond sombre étoilé (photos sur fond sombre) ; version claire automatique (sections.js, fond-auto) */
#galerie.section-dark .eyebrow{color:var(--or)}
#galerie.section-dark h2{color:#fff}
#galerie.section-dark .btn-outline{color:var(--texte-inv);border-color:rgba(255,255,255,.5)}
#galerie.section-dark .btn-outline:hover,#galerie.section-dark .btn-outline:focus-visible{background:#fff;color:var(--nuit);border-color:#fff}

.ep-more{display:inline-block;margin-top:8px;font-size:13px;font-weight:700;color:var(--or-texte)}
/* Fenêtre de lecture des épisodes */
.lb{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px}
.lb[hidden]{display:none}
.lb-backdrop{position:absolute;inset:0;background:rgba(8,8,11,.86);backdrop-filter:blur(6px)}
.lb-box{position:relative;display:grid;grid-template-columns:minmax(0,.9fr) 1fr;gap:34px;align-items:center;width:min(1040px,100%);max-height:calc(100svh - 40px);overflow:auto;background:var(--nuit);color:var(--texte-inv);border:1px solid var(--ligne-sombre);border-radius:20px;padding:30px;animation:lbIn .4s var(--ease)}
@keyframes lbIn{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.lb-img{background:#1a1b22;border-radius:14px;display:grid;place-items:center;padding:12px;min-height:320px}
.lb-img img{max-height:70svh;width:auto;max-width:100%;object-fit:contain;border-radius:6px}
.lb-text h3{font-size:64px;margin:6px 0 16px}
.lb-text p#lbRecit{color:var(--texte-inv);font-size:16.5px;line-height:1.7}
.lb-photo{margin:18px 0 0;max-width:260px}
.lb-photo[hidden]{display:none}
.lb-photo img{display:block;width:100%;height:auto;border-radius:10px}
.lb-nav{display:flex;gap:10px;align-items:center;margin-top:24px}
.lb-nav[hidden]{display:none}
.lb-close{position:absolute;top:12px;right:14px;width:42px;height:42px;border-radius:50%;border:1px solid var(--ligne-sombre);background:var(--nuit-2);color:#fff;font-size:24px;line-height:1;cursor:pointer;z-index:1}
.lb-close:hover{border-color:var(--or);color:var(--or)}
@media (max-width:760px){.lb-box{grid-template-columns:1fr;padding:22px;gap:18px}.lb-img img{max-height:44svh}.lb-text h3{font-size:44px}.lb-nav{justify-content:center}}

/* ---------- Mur des partenaires (tous à égalité, par catégorie) ----------
   Affichage « barre » par défaut, « panneau » en réserve (partenariat.affichage dans data.js). */
.mur-band{position:relative;background:var(--nuit);color:var(--texte-inv);padding:100px 0 90px;overflow:hidden;isolation:isolate}
.mur-band::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(420px 360px at 22% -40px,rgba(255,250,230,.12),transparent 70%),radial-gradient(420px 360px at 78% -40px,rgba(255,250,230,.12),transparent 70%),radial-gradient(900px 260px at 50% 70%,rgba(242,194,48,.09),transparent 70%)}
.mur-head{text-align:center;max-width:760px;margin:0 auto 26px}
/* ---------- Fenêtres par-dessus la page (main.js, data-fenetre ; 23/10/2026) : fond assombri, boîte blanche, croix ;
   téléphone : la fenêtre monte du bas. La page ne défile pas derrière (html.fen-active). ---------- */
html.fen-active{overflow:hidden}
.fen{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px}
.fen[hidden]{display:none}
.fen-fond{position:absolute;inset:0;background:rgba(14,15,19,.72);backdrop-filter:blur(3px)}
.fen-boite{position:relative;width:min(860px,100%);max-height:calc(100svh - 48px);overflow:auto;overscroll-behavior:contain;background:var(--blanc);border-radius:22px;box-shadow:0 40px 80px -30px rgba(0,0,0,.7)}
.fen-large .fen-boite{width:min(1180px,100%)}
.fen-tete{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 22px;background:var(--blanc);border-bottom:1px solid var(--ligne)}
.fen-tete h2{font:800 clamp(24px,2.4vw,32px)/1 var(--f-titre);text-transform:uppercase;margin:0;color:var(--nuit)}
.fen-x{flex:none;width:44px;height:44px;border-radius:50%;border:0;background:var(--nuit);color:#fff;font:400 26px/1 var(--f-texte);cursor:pointer}
.fen-x:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.fen-corps{padding:22px}
.fen-aide{margin:0 0 14px;font-size:13px;color:var(--texte-2)}
.fen-podium{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.fen-podium li{display:flex;align-items:center;gap:14px;padding:12px 16px;border-radius:12px;background:var(--creme)}
.fen-podium b{font:800 30px/1 var(--f-titre);color:var(--or-texte);min-width:92px}
.fen-podium span{font-size:15.5px;color:var(--nuit)}
.fen-podium em{display:block;font-style:normal;font-size:13px;color:var(--texte-2)}
.fen-recs{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fen-rec{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:center;padding:14px;border-radius:16px;background:var(--creme)}
.fen-rec p{margin:0}
.fen-med{width:110px;height:110px;border-radius:50%;overflow:hidden;background:#000;display:grid;place-items:center;box-shadow:0 0 0 3px var(--or)}
.fen-med img{width:100%;height:100%;object-fit:cover}
.fen-med b{font:800 40px/1 var(--f-titre);color:var(--or)}
.fen-cat{font:700 12px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte)}
.fen-perf{font:800 54px/.9 var(--f-titre);color:var(--nuit);margin-top:4px!important}
.fen-nom{font:800 20px/1.05 var(--f-titre);text-transform:uppercase;margin-top:4px!important;color:var(--nuit)}
.fen-quand{font-size:13.5px;color:var(--texte-2)}
.fen-video{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--nuit)}
.fen-video video{width:100%;height:100%;display:block;background:#000}
@media (max-width:760px){.fen{padding:0;place-items:end stretch}.fen-boite{border-radius:22px 22px 0 0;max-height:92svh}.fen-recs{grid-template-columns:1fr}.fen-corps{padding:16px}}
/* Perchistes · « À consulter » : deux encarts bien visibles sous la demande d'inscription */
.enc-grille{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:10px}
.enc-carte{position:relative;display:grid;grid-template-columns:120px 1fr;align-items:center;gap:20px;padding:20px 22px;border-radius:20px;text-decoration:none;color:var(--nuit);
  background:var(--blanc);box-shadow:0 0 0 1px var(--ligne),0 22px 40px -30px rgba(14,15,19,.5);transition:transform .3s var(--ease),box-shadow .3s}
.enc-carte:hover{transform:translateY(-4px);box-shadow:0 0 0 2px var(--or),0 26px 44px -28px rgba(14,15,19,.55)}
.enc-carte:focus-visible{outline:3px solid var(--or-texte);outline-offset:3px}
.enc-visu{height:120px;border-radius:14px;overflow:hidden;background:var(--nuit);display:grid;place-items:center}
.enc-visu img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.enc-ini{font:800 46px/1 var(--f-titre);color:var(--or)}
.enc-txt{display:flex;flex-direction:column;gap:6px}
.enc-t{font:800 clamp(26px,2.4vw,34px)/1 var(--f-titre);text-transform:uppercase}
.enc-p{color:var(--texte-2);font-size:15px;line-height:1.45}
.enc-ouvrir{align-self:flex-start;margin-top:6px;font:700 14.5px var(--f-texte);border-bottom:2px solid var(--or);padding-bottom:2px}
@media (max-width:760px){.enc-grille{grid-template-columns:1fr}.enc-carte{grid-template-columns:92px 1fr;gap:14px;padding:14px 16px}.enc-visu{height:92px}}
/* Dans la colonne de la demande d'inscription (23/10/2026) : l'un sous l'autre, plus compacts */
.consulter{margin-top:28px}
.consulter .eyebrow{margin-bottom:10px}
.consulter .enc-grille{grid-template-columns:1fr;gap:12px;margin-top:0}
.consulter .enc-carte{grid-template-columns:84px 1fr;gap:16px;padding:14px 16px}
.consulter .enc-visu{height:84px}
.consulter .enc-ini{font-size:34px}
.consulter .enc-t{font-size:clamp(22px,2vw,26px)}
.consulter .enc-p{font-size:14px}
/* Page Partenaires · « Nos partenaires 2027 » (23/10/2026) : cartes blanches toutes identiques sur le fond étoilé */
.np-tete{max-width:760px;margin:0 0 30px}
.np-tete h2{color:#fff;margin:6px 0 10px}
.np-intro{margin:0;color:var(--texte-inv-2);font-size:17px}
.np-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.np-carte{display:flex;flex-direction:column;gap:8px;background:#fff;color:var(--nuit);border-radius:16px;padding:16px 16px 14px;box-shadow:0 18px 40px -26px rgba(0,0,0,.8);text-decoration:none;transition:transform .3s var(--ease),box-shadow .3s}
a.np-carte:hover{transform:translateY(-4px);box-shadow:0 0 0 2px var(--or),0 22px 44px -26px rgba(0,0,0,.8)}
a.np-carte:focus-visible{outline:3px solid var(--or);outline-offset:3px}
.np-logo{height:78px;display:grid;place-items:center;border-bottom:1px solid var(--ligne);padding-bottom:12px}
.np-logo img{max-height:58px;max-width:82%;width:auto;height:auto;object-fit:contain}
.np-logo b{font:800 18px var(--f-titre);text-transform:uppercase}
.np-nom{font:800 17px/1.1 var(--f-titre);text-transform:uppercase;margin-top:4px}
.np-phrase{font-size:14px;line-height:1.45;color:var(--texte-2);flex:1}
.np-site{font:700 13px var(--f-texte);color:var(--or-texte)}
.np .mur-collab{margin-top:34px}
.mur-band.np.fond-auto .np-tete h2{color:var(--nuit)}
.mur-band.np.fond-auto .np-intro{color:var(--texte-courant)}
.mur-band.np.fond-auto .np-carte{box-shadow:0 0 0 1px var(--ligne),0 18px 40px -30px rgba(14,15,19,.4)}
@media (max-width:1000px){.np-grille{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.np-grille{grid-template-columns:1fr 1fr;gap:10px}.np-carte{padding:12px}.np-logo{height:58px}.np-logo img{max-height:42px}.np-nom{font-size:15px}.np-phrase{font-size:13px}}
/* Accueil : bande compacte (23/10/2026) : moins haute, une ligne de logos, lien vers la page Partenaires */
.mur-band.mur-compact{padding:64px 0 56px}
.mur-compact .mur-head{margin-bottom:6px}
.mur-compact .mur-chips{display:none}
.mur-compact .mur-runway{padding-top:40px}
/* Bouton au-dessus de la barre lumineuse (.mur-crossbar), qui le recouvrait en partie (clic sans effet, 25/10/2026) */
/* Bouton principal jaune (point 14, 25/10/2026), centré, avec de l'air autour */
.mur-lien{position:relative;z-index:2;text-align:center;margin:44px 0 8px;padding:0 16px}
.mur-band.fond-auto .mur-lien .btn-ghost{color:var(--nuit);border-color:rgba(14,15,19,.35)}
.mur-head .eyebrow{justify-content:center}
.mur-head h2{color:#fff;margin-bottom:12px}
.mur-sub{color:var(--texte-inv-2);margin:0}
.mur-pp{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin:0 auto 34px;padding:20px 26px;max-width:640px;border:1px solid rgba(242,194,48,.45);border-radius:16px;background:rgba(242,194,48,.06)}
.mur-pp[hidden]{display:none}
.mur-pp p{margin:0;font:700 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or)}
.mur-pp-plate{display:flex;align-items:center;justify-content:center;min-width:200px;height:80px;padding:12px 24px;border-radius:12px;background:#fff}
.mur-pp-plate img{max-height:56px;width:auto}
.logo-duo{position:relative;display:block;width:100%;height:100%}
.logo-duo img{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100%;object-fit:contain;transition:opacity .35s}
.logo-duo .c{opacity:0}
/* Barre */
.mur-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:30px}
.mur-chips button{font:600 13.5px var(--f-texte);padding:8px 14px;border-radius:99px;border:1px solid rgba(255,255,255,.22);background:transparent;color:var(--texte-inv-2);cursor:pointer;transition:all .2s}
.mur-chips button:hover{color:#fff;border-color:rgba(255,255,255,.5)}
.mur-chips button[aria-pressed="true"]{background:var(--or);border-color:var(--or);color:var(--nuit)}
.mur-runway{position:relative;overflow:hidden;padding-top:86px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.mur-track{display:flex;gap:28px;width:max-content;padding:0 14px;animation:mur-glisse var(--duree,60s) linear infinite;will-change:transform}   /* couche à part : défilement fluide au téléphone (02/11/2026) */
.mur-runway:hover .mur-track,.mur-runway:focus-within .mur-track{animation-play-state:paused}
@keyframes mur-glisse{to{transform:translateX(-50%)}}
.mur-logo{position:relative;flex:none;width:304px;height:154px;display:block;text-decoration:none;color:inherit;outline:0}
.mur-logo .logo-duo{border-radius:12px;transition:background .35s,box-shadow .35s,transform .35s var(--ease)}
.mur-logo .logo-duo img{padding:0}   /* taille fixée par logo en JS (poids visuel) */
.mur-logo .m{opacity:.75}
/* Repos : noir et blanc du MÊME fichier que la couleur (25/10/2026, choix d'Aurore). Niveaux de gris inversés et contraste
   renforcé (au lieu d'une silhouette blanche) : les textes écrits dans un logo restent lisibles (« La Maison Bleue » sur la clé) */
.logo-duo .m.filtre{filter:grayscale(1) invert(1) brightness(1.5) contrast(1.15)}
.mur-logo:hover .logo-duo,.mur-logo:focus-visible .logo-duo{background:#fff;transform:translateY(-6px);box-shadow:0 0 0 2px var(--or),0 0 40px rgba(242,194,48,.55)}
.mur-logo:hover .m,.mur-logo:focus-visible .m{opacity:0}
.mur-logo:hover .c,.mur-logo:focus-visible .c{opacity:1}
.mur-tip{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translate(-50%,6px);white-space:nowrap;background:var(--or);color:var(--nuit);border-radius:8px;padding:8px 12px;font:700 13px/1.25 var(--f-texte);text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.mur-tip em{display:block;font-style:normal;font-weight:500;font-size:12px}
.mur-logo:hover .mur-tip,.mur-logo:focus-visible .mur-tip{opacity:1;transform:translate(-50%,0)}
/* Partenaire sans logo, ou fichier introuvable : son nom à la place (03/11/2026) */
.logo-nom{display:flex;align-items:center;justify-content:center;padding:8px 12px;text-align:center;color:#fff;overflow:hidden;overflow-wrap:anywhere;font:700 clamp(15px,1.7vw,24px)/1.15 var(--f-titre)}
.logo-nom b{font-weight:inherit}
.mur-logo:hover .logo-nom,.mur-logo:focus-visible .logo-nom,.mur-logo.montre .logo-nom,.mur-band.fond-auto .logo-nom{color:var(--nuit)}
.mur-crossbar{position:relative;height:8px;margin-top:10px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--or) 0 64px,#fff 64px 128px);box-shadow:0 0 22px rgba(242,194,48,.55),0 0 70px rgba(242,194,48,.25)}
.mur-crossbar::after{content:"";position:absolute;left:0;right:0;top:100%;height:60px;background:radial-gradient(60% 100% at 50% 0,rgba(242,194,48,.18),transparent 70%)}
/* Collaboration (hors du mur) */
.mur-collab{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 14px;margin:56px auto 0;padding:0 16px;text-align:center;font-size:14.5px;color:var(--texte-inv-2)}
.mur-collab[hidden]{display:none}
.mur-collab a{display:inline-flex;opacity:.85;transition:opacity .2s}
.mur-collab a:hover{opacity:1}
.mur-collab img{height:40px;width:auto;box-sizing:content-box;padding:6px 12px;background:#fff;border-radius:8px}   /* logo d'origine, jamais recoloré (point 75, 24/10/2026) : pastille blanche pour rester lisible sur fond sombre */
/* Panneau (en réserve) */
.mur-panel{max-width:1100px;margin:0 auto;border-radius:22px;padding:14px;background:linear-gradient(180deg,#2a2c34,#16171c);box-shadow:0 40px 80px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.08)}
.mur-screen{position:relative;border-radius:12px;background:#050506;overflow:hidden;padding:22px 26px 30px;isolation:isolate}
.mur-screen::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background-image:radial-gradient(circle at 1px 1px,rgba(255,255,255,.06) .8px,transparent 1.2px);background-size:4px 4px;mix-blend-mode:screen}
.mur-screen-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid rgba(242,194,48,.25);padding-bottom:14px;margin-bottom:22px}
.mur-screen-title{font:800 22px/1 var(--f-titre);letter-spacing:.12em;text-transform:uppercase;color:var(--or);text-shadow:0 0 12px rgba(242,194,48,.55)}
.mur-tabs{display:flex;gap:6px;flex-wrap:wrap}
.mur-tabs button{font:700 12.5px var(--f-texte);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:6px;border:1px solid rgba(242,194,48,.3);background:transparent;color:rgba(242,194,48,.75);cursor:pointer}
.mur-tabs button[aria-selected="true"]{background:var(--or);color:#050506;border-color:var(--or);box-shadow:0 0 14px rgba(242,194,48,.5)}
.mur-board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;min-height:260px}
.mur-cell{position:relative;display:flex;align-items:center;justify-content:center;height:128px;padding:14px 14px 26px;border-radius:10px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);text-decoration:none;color:inherit;transition:border-color .3s,background .3s}
.mur-cell .logo-duo{height:64px}
.mur-cell .m{opacity:.8}
.mur-cap{position:absolute;bottom:8px;left:8px;right:8px;font:600 12px var(--f-texte);letter-spacing:.06em;text-align:center;opacity:0;transition:opacity .25s}
.mur-cell:hover,.mur-cell:focus-visible{border-color:var(--or);background:#fff;outline:0}
.mur-cell:hover .m,.mur-cell:focus-visible .m{opacity:0}
.mur-cell:hover .c,.mur-cell:focus-visible .c{opacity:1}
.mur-cell:hover .mur-cap,.mur-cell:focus-visible .mur-cap{opacity:1;color:var(--nuit)}
.mur-cell.allume{animation:mur-fondu .42s ease-out both;animation-delay:calc(var(--r) * 70ms)}
@keyframes mur-fondu{from{opacity:0;filter:brightness(2.2)}to{opacity:1;filter:none}}
@media (max-width:820px){.mur-board{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){
  .mur-band{padding:72px 0 64px}
  .mur-logo{width:224px;height:122px}.mur-track{gap:18px;padding:0 9px}   /* marges = moitié de l'écart : boucle sans saut */
  .mur-screen{padding:16px 14px 20px}.mur-cell{height:104px}.mur-cell .logo-duo{height:52px}
  .mur-collab img{height:34px}
}
@media (prefers-reduced-motion:reduce){
  .mur-track{animation:none!important}
  .mur-runway{overflow-x:auto;-webkit-mask-image:none;mask-image:none}
  .mur-track .dup{display:none}
  .mur-cell.allume{animation:none!important}
}
/* ---------- Histoire : mur des 16 affiches ---------- */
.rail.is-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;overflow:visible;width:auto;max-width:1200px;margin:0 auto;padding:10px 24px 30px;-webkit-mask-image:none;mask-image:none}
.rail.is-grid .ep{flex:none;align-self:stretch}
.rail.is-grid .ep-ph{margin:8px 8px 0}
.rail.is-grid .ep-info{padding:10px 12px 12px}
.rail.is-grid .ep-y{font-size:28px}
@media (max-width:600px){.rail.is-grid{grid-template-columns:repeat(2,1fr);padding:10px 16px 30px}}

/* ---------- Image indisponible ---------- */
.img-missing{background:radial-gradient(400px 260px at 50% 20%,rgba(242,194,48,.12),transparent 60%),linear-gradient(160deg,#23252e,#0e0f13)!important}
.rail.is-grid .ep-d{display:none}
.rail.is-grid .ep-more{display:none}
.rail-progress{display:flex;align-items:center;gap:14px;margin-top:6px;font:700 13px var(--f-texte);letter-spacing:.1em;color:var(--texte-2)}
.rail-progress[hidden]{display:none}
.rail-progress i{flex:1;height:2px;background:var(--ligne);border-radius:2px;position:relative;overflow:hidden}
.rail-progress b{position:absolute;left:0;top:0;bottom:0;width:8%;background:var(--or);transition:width .2s}
.rail{scroll-padding-inline:4px 0}
.member-ph{aspect-ratio:1/1}
.member-ph img{object-position:center 30%}

/* Menu : page en cours */
.main-nav>a[aria-current="page"],.nav-groupe>a[aria-current="page"]{color:var(--or)}

/* =========================================================
   PAGES INTÉRIEURES · Ouverture
   ========================================================= */
.page-hero{position:relative;background:var(--nuit);color:var(--texte-inv);padding:calc(var(--header-h) + 84px) 0 96px;overflow:hidden;isolation:isolate}
.page-hero h1{font-size:clamp(46px,6.4vw,92px);line-height:.9;max-width:980px;margin-bottom:24px}
.page-hero h1 em{font-style:normal;color:var(--or)}
.page-hero .btn-row{margin-top:4px}
.btn[hidden]{display:none}
/* Ouverture en photo pleine largeur : texte en bas, voile pour la lisibilité (haut : menu ; bas : titre) */
.page-hero-photo{min-height:min(88svh,820px);display:flex;align-items:flex-end;padding-bottom:72px}
.page-hero-ph,.page-hero-ph img{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.page-hero-ph img{object-fit:cover;object-position:var(--pos,center)}
.page-hero-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(14,15,19,.88) 0%,rgba(14,15,19,.62) 13%,rgba(14,15,19,0) 28%,rgba(14,15,19,0) 38%,rgba(14,15,19,.78) 68%,rgba(14,15,19,.94) 100%)}   /* haut renforcé : menu de l'en-tête lisible sur la photo (lien en jaune ≥ 4,5:1) */
/* Variante : sujet à gauche de l'image, texte dans la moitié droite, voile côté droit */
.page-hero-droite{align-items:center;padding-top:calc(var(--header-h) + 40px)}
/* Colonne de texte = moitié droite du cadre du site (23/10/2026 : le décalage était calculé sur toute la largeur de l'écran, d'où une colonne de 192 px à 1920 px) */
.page-hero-droite .page-hero-inner>*{margin-left:calc(50% + 24px)}
.page-hero-droite .page-hero-inner h1{font-size:clamp(44px,4.4vw,64px);text-wrap:balance}   /* lignes équilibrées : jamais un mot seul */
.page-hero-droite .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.55) 0%,rgba(14,15,19,0) 22%),linear-gradient(90deg,rgba(14,15,19,0) 30%,rgba(14,15,19,.72) 55%,rgba(14,15,19,.9) 100%)}
@media (max-width:820px){
  .page-hero-droite{align-items:flex-end;padding-top:0}
  .page-hero-droite .page-hero-inner>*{margin-left:0}
  .page-hero-droite .page-hero-inner h1{font-size:clamp(34px,9.6vw,44px)}
  /* Téléphone, ouvertures sur photo (Éditions) : voile franc dès le surtitre (posé sur le public) ; texte AA */
  .page-hero-photo:not(.page-hero-droite) .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.6) 0%,rgba(14,15,19,0) 18%,rgba(14,15,19,0) 30%,rgba(14,15,19,.84) 50%,rgba(14,15,19,.95) 100%)}
  /* Téléphone : voile franc dès le haut du texte (posé sur la foule de la photo) ; texte AA */
  .page-hero-droite .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.5) 0%,rgba(14,15,19,0) 18%,rgba(14,15,19,0) 28%,rgba(14,15,19,.9) 40%,rgba(14,15,19,.95) 100%)}
}

/* Bande photo pleine largeur entre deux sections */
.photo-band{position:relative;margin:0;height:clamp(340px,42vw,620px);overflow:hidden;background:var(--nuit)}
.photo-band img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--pos,center)}
.photo-band figcaption{position:absolute;left:0;right:0;bottom:0;padding:48px 0 18px;background:linear-gradient(180deg,transparent,rgba(14,15,19,.6));color:#fff;font:600 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase}
@media (max-width:600px){
  .photo-band{height:auto;aspect-ratio:4/5}
  .photo-band img{object-position:center}
  .page-hero-photo{min-height:88svh;padding-bottom:48px}
  .page-hero-ph img{object-position:center}
}
/* Presse & médias (23/10/2026) : photo fixe, cadrée sur le caméraman (à droite du texte) ; voile sombre côté texte et en
   haut (menu), plus léger sur le caméraman. Téléphone : recadrage dédié, caméraman dans le haut, voile sous lui. */
.page-hero-presse .page-hero-ph img{object-position:85% 40%}   /* 25/10/2026 (point 10) : image composée, sujet à droite */
.page-hero-presse .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.85) 0%,rgba(14,15,19,.45) 13%,rgba(14,15,19,0) 26%,rgba(14,15,19,0) 72%,rgba(14,15,19,.55) 100%),linear-gradient(90deg,rgba(14,15,19,.9) 0%,rgba(14,15,19,.72) 38%,rgba(14,15,19,.15) 58%,rgba(14,15,19,0) 70%)}

@media (max-width:820px){
  .page-hero-presse .page-hero-ph img{object-position:85% 40%}
  .page-hero-presse .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.6) 0%,rgba(14,15,19,0) 15%,rgba(14,15,19,0) 46%,rgba(14,15,19,.86) 60%,rgba(14,15,19,.95) 100%)}
}
@media (max-width:600px){.page-hero-presse .page-hero-ph img{object-position:50% 50%}}

/* =========================================================
   PARTENAIRES (partenaires.html)
   ========================================================= */
/* Pourquoi s'associer */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.why{background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;padding:30px 28px 32px;transition:transform .4s var(--ease),box-shadow .4s,border-color .4s}
.why:hover{transform:translateY(-4px);border-color:var(--or);box-shadow:0 22px 40px -26px rgba(14,15,19,.35)}
.why-num{display:block;font:800 52px/.9 var(--f-titre);color:transparent;-webkit-text-stroke:1.3px var(--or-texte);margin-bottom:18px}
.why h3{font-size:28px;margin-bottom:10px}
.why p{font-size:16px;color:var(--texte-2)}

/* Un projet qui a du sens + don */
.sens{display:grid;grid-template-columns:1.55fr 1fr;gap:40px;align-items:start;margin-top:72px}
.sens-title{font-size:clamp(30px,3vw,40px);margin-bottom:24px}
.sens-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:22px 28px;counter-reset:sens}
.sens-list li{counter-increment:sens;position:relative;padding:16px 0 0 44px;border-top:1px solid var(--ligne)}
.sens-list li::before{content:counter(sens,decimal-leading-zero);position:absolute;left:0;top:14px;font:800 26px/1 var(--f-titre);color:var(--or-texte)}
.sens-list b{display:block;font:800 22px/1.05 var(--f-titre);text-transform:uppercase;margin-bottom:6px}
.sens-list span{display:block;font-size:15.5px;line-height:1.55;color:var(--texte-2)}
.don-box{position:relative;overflow:hidden;background:var(--blanc);color:var(--texte);border:1px solid var(--ligne);border-radius:18px;padding:32px 30px 30px;box-shadow:0 22px 40px -30px rgba(14,15,19,.35)}
.don-box[hidden]{display:none}
.don-box::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--or)}
.don-box p{font-size:16px;line-height:1.6;color:var(--texte);margin-bottom:24px}

/* Formats */
.formats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.format{display:flex;flex-direction:column;background:var(--blanc);border-radius:18px;padding:30px 26px 30px;border:1px solid var(--ligne);border-top:4px solid var(--or);box-shadow:0 18px 40px -30px rgba(14,15,19,.35)}
.format-n{font:700 12.5px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte);margin-bottom:10px}
.format h3{font-size:30px;margin-bottom:12px}
.format-txt{font-size:15.5px;color:var(--texte-courant);margin-bottom:18px}
.format-list{list-style:none;padding:16px 0 0;margin:auto 0 0;border-top:1px solid var(--ligne)}
.format-list li{position:relative;padding-left:24px;margin:8px 0;font-size:15px;line-height:1.5}
.format-list li::before{content:"";position:absolute;left:0;top:.68em;width:12px;height:3px;border-radius:2px;background:var(--or)}
.format-prix{margin-top:18px;padding-top:14px;border-top:1px solid var(--ligne);font:700 13px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--or-texte)}
.format-prix.prix{font:800 var(--t-carte)/1 var(--f-titre);letter-spacing:.01em;color:var(--nuit)}   /* prix d'un pack (29/10/2026 ; W, version A : taille du titre) */
.format-prix .prix-mention{margin-left:3px;font:600 13px/1 var(--f-texte);letter-spacing:.02em;text-transform:none;color:var(--texte-2)}
.formats-note{text-align:center;margin-top:28px;font-size:15px;line-height:1.8;color:var(--texte-2)}
.formats-note a{color:var(--or-texte);font-weight:700}

/* Conférence Viser plus haut */
/* Conférence : section jaune de la page Partenaires (classe .section-or) */
.leaders .lead{color:var(--nuit)}
.leaders-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start;position:relative}
.leaders-text h2{margin-bottom:14px}
.leaders-sub{font:700 clamp(19px,1.7vw,23px)/1.35 var(--f-texte);color:var(--nuit);margin-bottom:18px;max-width:560px}
.leaders-text .lead{margin-bottom:30px}
.mini-title{font-size:26px;color:var(--nuit);margin-bottom:18px}
.timeline-box .mini-title{color:#fff}
.section-or .timeline-box::before{display:none}   /* filet jaune inutile sur fond jaune */
/* Programme : carte noire sur fond jaune */
.timeline-box{background:var(--nuit);color:var(--texte-inv);border:0;box-shadow:0 30px 60px -35px rgba(14,15,19,.6);border-radius:20px;padding:30px 30px 24px;position:relative;overflow:hidden}
.timeline-box::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--or)}
.timeline{list-style:none;padding:0;margin:0;position:relative}
.timeline::before{content:"";position:absolute;left:6px;top:10px;bottom:10px;width:2px;background:linear-gradient(180deg,var(--or),rgba(242,194,48,.25))}
.timeline li{position:relative;padding:0 0 18px 30px}
.timeline li:last-child{padding-bottom:4px}
.timeline li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:14px;border-radius:50%;background:var(--nuit);border:2px solid var(--or)}
/* Heures (24/10/2026, point 63) : « 18 h 30 » en minuscules, sans espacement de lettres, chiffres de même largeur, alignées en
   colonne à gauche du libellé */
.timeline li{display:grid;grid-template-columns:8.4em minmax(0,1fr);column-gap:14px;align-items:baseline}
.timeline time{display:block;font:700 14.5px var(--f-texte);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--or)}
.timeline span{display:block;color:#fff;font-size:16.5px;line-height:1.4}
.speakers-wrap{position:relative;margin-top:64px}
.speakers-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.next-badge{font:700 12.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--nuit);border:1.5px solid var(--nuit);border-radius:99px;padding:7px 14px}
.next-badge[hidden],.speakers-mod[hidden]{display:none}
.speakers{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.speaker{display:flex;flex-direction:column;gap:6px}   /* encart : style commun « .encart » plus bas (point 49) */
/* Ronds des intervenants : même taille que les vignettes de « Ils ont marqué le meeting » (.mq-rond) */
.speaker-ini{display:grid;place-items:center;width:clamp(78px,10.5svh,100px);height:clamp(78px,10.5svh,100px);border-radius:50%;margin-bottom:10px;background:var(--nuit);border:3px solid var(--ligne);font:800 32px var(--f-titre);color:var(--or)}
@media (min-width:901px) and (max-height:800px){.speaker-ini{width:72px;height:72px}}
.speaker-ph{overflow:hidden;padding:0}
.speaker-ph img{width:100%;height:100%;object-fit:cover}
.speaker b{font:800 24px/1.05 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
.speaker span:last-child{font-size:14.5px;line-height:1.45;color:var(--nuit)}
.speakers-mod{margin-top:20px;font-size:15px;color:var(--nuit)}

/* Formulaire */
.form-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.form-intro{position:sticky;top:110px}
.form-card{background:var(--blanc);border:1px solid var(--ligne);border-radius:20px;padding:36px;box-shadow:0 30px 60px -40px rgba(14,15,19,.35)}
.field{margin:0 0 18px;min-width:0}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
/* Point 13 (25/10/2026) : deux champs côte à côte gardent leurs cases de saisie alignées même si un libellé passe sur deux
   lignes (même règle que le point 84 de l'admin) : chaque champ partage les lignes de la rangée (libellé, case, aide,
   erreur) ; le libellé le plus haut fixe la hauteur de la 1re ligne, et les libellés sont alignés en bas */
@supports (grid-template-rows:subgrid){
  .field-row{grid-auto-rows:auto}
  .field-row>.field{display:grid;grid-row:span 5;grid-template-rows:subgrid;align-content:start}
  .field-row>.field>label:first-child,.field-row>.field>.legende-champ{align-self:end}
}
.form label:not(.check),.form legend{display:block;font:600 14.5px var(--f-texte);margin-bottom:7px;color:var(--texte)}
.req{color:var(--erreur)}
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=date],.form textarea{width:100%;font:16px/1.4 var(--f-texte);color:var(--texte);background:var(--blanc);border:1.5px solid #D6D2C8;border-radius:10px;padding:13px 14px;transition:border-color .2s,box-shadow .2s}
.form textarea{resize:vertical;min-height:130px}
/* Point 13 c : « Message » des 4 formulaires : environ 3 lignes au départ, s'agrandit avec le texte (formulaires.js), jusqu'à
   320 px, puis défilement */
.form textarea[name="message"]{min-height:0;height:auto;max-height:320px;overflow-y:auto}
.form select{width:100%;font:16px/1.4 var(--f-texte);color:var(--texte);background:var(--blanc);border:1.5px solid #D6D2C8;border-radius:10px;padding:13px 40px 13px 14px;appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--texte) 50%),linear-gradient(135deg,var(--texte) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.form select:focus{outline:0;border-color:var(--nuit);box-shadow:0 0 0 3px rgba(242,194,48,.45)}
.field.is-error select{border-color:var(--erreur)}
.form fieldset{border:0;padding:0;margin:0 0 18px;min-width:0}
.field-row-3{grid-template-columns:1.1fr 1fr 1.3fr}
.fieldset-legal,.bloc-cond{background:#FBF7EA;border:1.5px solid var(--or)!important;border-radius:14px;padding:18px 18px 4px!important}
.fieldset-legal[hidden],.bloc-cond[hidden],.field[hidden]{display:none}
.form-hint{font-size:14px;color:var(--texte-2);margin:0 0 12px}
.field-aide{font-size:13px;color:var(--texte-2);margin:6px 0 0}
/* Concours élites : champs alignés en haut (titres d'une ligne), l'aide de gauche ne décale pas le champ de droite */
.fieldset-elite .field-row{align-items:start}
/* Formulaire Perchistes « deux entrées » (partie 2 validée par le Club le 25/10/2026) : question de départ en deux choix,
   parties encadrées, catégorie calculée, aide « ? », blocs « athlète » repliables (ligne de résumé), ajout d'un athlète,
   compteur et brouillon. Couleurs du formulaire (pas de vert : la coche de résumé est en --or-texte). */
.form-legende{font-size:13.5px;color:var(--texte-2);margin:0 0 10px}
.parcours[hidden]{display:none}
.choix-ligne{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.form label.choix{display:flex;align-items:center;gap:10px;margin:0;padding:13px 14px;border:1.5px solid #D6D2C8;border-radius:10px;background:var(--blanc);font:600 15px var(--f-texte);cursor:pointer;transition:border-color .2s,background .2s}
.form label.choix:has(input:checked){border-color:var(--nuit);background:#FBF7EA}
.choix input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--nuit)}
.field.is-error .choix{border-color:var(--erreur)}
.form fieldset.choix-depart{margin-bottom:22px}
/* Point 13 b : blocs nettement séparés (contour 2 px, titre en étiquette, plus d'espace entre deux blocs) ; même traitement
   pour « Votre entraîneur » et « Représentant légal » du parcours Athlète (le représentant garde son fond jaune pâle) */
.form fieldset.bloc-form{border:2px solid #C9C3B5;border-radius:14px;padding:18px 18px 2px;margin:0 0 28px}
.form fieldset.bloc-form.fieldset-legal{border:2px solid var(--or)!important;padding:18px 18px 2px!important}
.form .bloc-form>legend{font:800 20px var(--f-titre);text-transform:uppercase;letter-spacing:.02em;color:var(--nuit);background:#FBF1C9;border-radius:8px;padding:5px 12px;margin:0 0 8px -4px}
.form .bloc-form .bloc-cond{margin-bottom:18px}
.legende-note{font:600 13px var(--f-texte);text-transform:none;letter-spacing:0;color:var(--texte-2);margin-left:6px}
.form legend.legende-q{font:600 14.5px var(--f-texte);text-transform:none}
.champ-calcule{background:#FBF7EA;border-radius:10px;padding:10px 14px;font-size:14.5px;margin:-4px 0 18px}
.champ-calcule[hidden],.field-aide[hidden]{display:none}
.aide-q{display:inline-grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:var(--nuit);color:var(--blanc);font:700 12px var(--f-texte);cursor:pointer;margin-left:4px;vertical-align:1px}
.aide-q:focus-visible{outline:2px solid var(--or);outline-offset:2px}
.form fieldset.bloc-athlete.est-plie,.form fieldset[data-repliable].est-plie{padding:10px 16px}
/* Q.1 (29/10/2026) : « Replier ▴ / Modifier ▾ » en haut à droite de chaque bloc repliable, cible de 44 px ; replié, le résumé
   laisse la place au bouton */
.form fieldset[data-repliable]{position:relative}
.form .bloc-bascule{position:absolute;top:8px;right:16px;min-height:44px;padding:0 4px}
.form fieldset[data-repliable] .athlete-plie{padding-right:110px}
.athlete-plie .a-completer{color:var(--texte-2);font-weight:600}
.athlete-plie{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;padding-bottom:6px}
.athlete-plie[hidden],.athlete-champs[hidden]{display:none}
.athlete-plie .ok{color:var(--or-texte);font-weight:800}
.lien-bouton{background:none;border:0;padding:4px 0;font:700 14px var(--f-texte);color:var(--or-texte);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.lien-bouton[hidden]{display:none}
.btn-ajout{display:block;width:100%;padding:13px;margin:0 0 8px;border:1.5px dashed var(--or-texte);border-radius:12px;background:none;color:var(--or-texte);font:700 15px var(--f-texte);cursor:pointer}
.btn-ajout:disabled{opacity:.6;cursor:default}
.btn-ajout:focus-visible{outline:2px solid var(--nuit);outline-offset:2px}
.form-compteur,.form-brouillon{font-size:13.5px;color:var(--texte-2);text-align:center;margin:0 0 18px}
.form-brouillon[hidden]{display:none}
.bloc-sous-titre{font-weight:700;margin:0 0 10px}
.bloc-actions{margin:0 0 14px;text-align:right}
.bloc-athlete .fieldset-legal{margin-bottom:18px}
@media (max-width:600px){.choix-ligne{grid-template-columns:1fr}}
/* Titres : long sur téléphone (une colonne), court « Aux concours élites ? » sur ordinateur (deux colonnes) ;
   le titre long reste lu par les lecteurs d'écran (le court leur est masqué) */
.lib-court{display:none}
@media (min-width:601px){
  .lib-court{display:inline}
  .lib-long{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
}
/* Rappel de l'événement au-dessus du formulaire d'accréditation */
.presse-evenement{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0 0 22px;padding:16px 18px;border-radius:12px;background:var(--craie);border:1px solid var(--ligne)}
.presse-evenement dt{font:700 11.5px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--texte-2)}
.presse-evenement dd{margin:2px 0 0;font-weight:600;font-size:15px}
.presse-evenement .insecable{white-space:nowrap}   /* « Tremblay-en-France » jamais coupé */
@media (max-width:600px){.presse-evenement{grid-template-columns:1fr}}
.opt{font-weight:400;color:var(--texte-2)}

/* Page Athlètes : encarts « Ils font la perche aujourd'hui » */
.stars{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.star{background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.star-ph{aspect-ratio:4/5;background:var(--nuit);display:grid;place-items:center;overflow:hidden}
.star-ph picture,.star-ph img{display:block;width:100%;height:100%}
.star-ph img{object-fit:cover;object-position:50% 20%}
.star-ph.is-empty{background:radial-gradient(400px 260px at 50% 20%,rgba(242,194,48,.18),transparent 60%),var(--nuit)}
.star-ini{font:800 88px/1 var(--f-titre);color:rgba(242,194,48,.55)}
.star-body{padding:20px 22px 24px}
.star h3{font-size:28px;margin-bottom:6px}
.star-titre{font:700 13px/1.4 var(--f-texte);letter-spacing:.08em;text-transform:uppercase;color:var(--or-texte);margin-bottom:8px}
.star-body p:not(.star-titre):not(.star-edition){font-size:15px;color:var(--texte-2)}
.star-body .star-titre:last-child{color:var(--or-texte)}
.star-body{display:flex;flex-direction:column;flex:1}
.star-body p.star-edition{margin-top:auto;padding-top:12px;font:600 12.5px var(--f-texte);color:var(--texte-2)}
.star-edition::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--or);margin-right:8px;vertical-align:1px}
/* Cartes retournables : les deux faces dans la même cellule (hauteur = face la plus longue) */
.star.star-flip{background:none;border:0;overflow:visible;perspective:1400px;cursor:pointer}
.star-inner{display:grid;height:100%;transition:transform .7s var(--ease);transform-style:preserve-3d}
.star-flip.is-flipped .star-inner{transform:rotateY(180deg)}
.star-face{grid-area:1/1;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid var(--ligne)}
.star-front{background:var(--blanc)}
.star-front .star-ph{flex:1 0 auto}
.star-back{transform:rotateY(180deg);background:var(--nuit);color:var(--texte-inv);border-color:var(--nuit);padding:22px 20px 18px;gap:10px}
.star-angle{font:700 11.5px var(--f-texte)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--texte-2)!important;margin-bottom:6px}
.star-flip .star-body p.star-edition{margin-top:10px;padding-top:0}
.star-flip .star-body p.star-meeting{margin:8px 0 0;font:700 13px var(--f-texte);color:var(--texte)}
.star-flip .star-body p.star-meeting + .star-edition{margin-top:6px}
.star-tourner{margin-top:auto;padding:12px 0 0;align-self:flex-start;background:none;border:0;font:700 14px var(--f-texte);color:var(--or-texte);cursor:pointer}
.star-front .star-tourner{margin-top:auto}
.star-flip .star-body .star-edition + .star-tourner,.star-flip .star-body .star-titre + .star-tourner{margin-top:auto}
.star-back .star-tourner{color:var(--or)}
.star-tourner:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:4px}
.star-back-head h3{font-size:26px;color:#fff;margin:0}
.star-club{font:600 12.5px var(--f-texte);letter-spacing:.06em;color:var(--or);margin-top:4px}
.star-back p{font-size:13.5px;line-height:1.5;color:var(--texte-inv-2)}
.star-back .star-record{color:var(--texte-inv)}
.star-record b{display:block;font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or);margin-bottom:2px}
.star-sous{font:700 11.5px var(--f-texte)!important;letter-spacing:.14em;text-transform:uppercase;color:var(--or)!important;margin-top:2px}
.star-parcours{list-style:none;margin:-4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.4;color:var(--texte-inv-2)}
.star-parcours li{padding-left:14px;position:relative}
.star-parcours li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:2px;background:var(--or)}
.star-palmares{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:2px}
.star-palmares caption{text-align:left;font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or);padding-bottom:6px}
.star-palmares th,.star-palmares td{padding:6px 4px;border-top:1px solid var(--ligne-sombre);text-align:left;vertical-align:top}
.star-palmares th{font-weight:600;color:#fff}
.star-palmares td:last-child{text-align:right;white-space:nowrap;color:#fff;font-weight:700}
.med{display:inline-block;padding:1px 7px;border-radius:99px;font-size:11px;font-weight:700;color:var(--nuit)}
.med-or{background:var(--or)}.med-argent{background:#cfd2d8}.med-bronze{background:#d39a6a}
@media (prefers-reduced-motion:reduce){.star-inner{transition:none}}
/* Cartes larges : 2 par rangée ; recto = photo pleine carte (pas d'espace vide), texte en bas sur dégradé ;
   verso en 2 colonnes. La hauteur commune vient du verso (les 2 faces partagent la même cellule). */
.stars.stars-flip{grid-template-columns:repeat(2,1fr);gap:20px}
.star-flip .star-front{position:relative;background:var(--nuit);border-color:var(--nuit);min-height:420px}
.star-flip .star-front .star-ph{position:absolute;inset:0;aspect-ratio:auto}
.star-flip .star-front .star-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.star-flip .star-front .star-body{position:relative;margin-top:auto;padding:90px 26px 22px;background:linear-gradient(180deg,transparent 0,rgba(14,15,19,.82) 38%,rgba(14,15,19,.96) 100%);color:#fff;flex:none}
.star-flip .star-front h3{color:#fff;font-size:32px}
/* Nationalité (drapeau CSS + code CIO) et réseaux sociaux */
.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}
.star-pays{display:inline-flex;align-items:center;gap:6px;margin-right:10px;color:#fff}
.drapeau{display:inline-block;width:20px;height:14px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.35)}
/* Drapeaux dessinés de tous les pays (pays.js, PAE_PAYS.drapeau ; 31/10/2026) ; sans drapeau : le code, même encombrement */
.drapeau-pays{display:inline-block;width:24px;height:18px;object-fit:cover;vertical-align:middle;border-radius:2px;box-shadow:0 0 0 1px rgba(14,15,19,.18)}
.drapeau-code{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:24px;padding:0 4px;box-sizing:border-box;font:800 11px/1 var(--f-texte);letter-spacing:.04em;background:rgba(255,255,255,.12);color:inherit}
.tb-drapeau .drapeau-code{height:24px;color:#FFC93C;background:rgba(255,201,60,.12);box-shadow:inset 0 0 0 1px rgba(255,201,60,.4)}
.drapeau-fra{background:linear-gradient(90deg,#0055a4 0 33.3%,#fff 33.3% 66.6%,#ef4135 66.6%)}
.drapeau-ned{background:linear-gradient(180deg,#ae1c28 0 33.3%,#fff 33.3% 66.6%,#21468b 66.6%)}
.star-reseaux{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 0}
.star-reseaux a{font:700 12.5px var(--f-texte);color:var(--or)}
.star-flip .star-front .star-angle{color:rgba(255,255,255,.72)!important}
.star-flip .star-front .star-titre{color:var(--or)}
.star-flip .star-body p.star-meeting{color:#fff}
.star-flip .star-body p.star-edition{color:rgba(255,255,255,.75)}
.star-flip .star-front .star-tourner{color:var(--or);margin-top:14px}
.star-back{padding:24px 26px 18px}
.star-back-cols{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;align-items:start}
.star-back-g,.star-back-d{display:flex;flex-direction:column;gap:10px;min-width:0}
.star-back-d .star-palmares{margin-top:0}
.star-back .star-tourner{margin-top:14px}
@media (min-width:821px){
  /* Cadre réduit (data : cadre "reduit") : photo entière, calée en haut, au-dessus du texte */
  .star-flip .star-front .star-ph-reduit img{height:72%;object-fit:contain;object-position:50% 0%!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 18%,#000 30%,#000 70%,transparent 82%),linear-gradient(180deg,#000 80%,transparent);-webkit-mask-composite:source-in;
    mask-image:linear-gradient(90deg,transparent 18%,#000 30%,#000 70%,transparent 82%),linear-gradient(180deg,#000 80%,transparent);mask-composite:intersect}
}
@media (max-width:820px){
  .stars.stars-flip{grid-template-columns:1fr}
}
/* Tête d'affiche annoncée (champ « annonce », 31/10/2026) : recto photo, nationalité, performance au meeting ; verso = texte
   d'annonce et date. Une seule carte : centrée (jamais une demi-rangée vide à droite) */
.stars.stars-flip>.star:only-child{grid-column:1/-1;justify-self:center;width:min(100%,560px)}
.star-flip .star-front .star-body p.star-rp{margin:2px 0 0;font-size:15px;color:rgba(255,255,255,.82)}
.star-flip .star-front .star-rp b{font:800 26px/1 var(--f-titre);color:var(--or);margin-right:4px}
.star-annonce-corps{display:flex;flex-direction:column;gap:14px;margin:auto 0}
.star-annonce-corps h3{font-size:28px;color:#fff;margin:0}
.star-back p.star-annonce-txt{font-size:17px;line-height:1.55;color:var(--texte-inv)}
.star-back p.star-annonce-le{font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or)}
@media (max-width:600px){
  /* Mobile : une carte par rangée ; carte limitée à la hauteur de l'écran, défilement interne discret au verso */
  .star-flip .star-face{height:min(620px,calc(100svh - var(--header-h) - 40px))}
  .star-back{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(242,194,48,.5) transparent}
  .star-back-cols{grid-template-columns:1fr;gap:12px}
  .star-flip .star-front .star-body{padding:70px 20px 18px}
}

/* Page Athlètes : infos pratiques */
.infos-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.infos-grid li{background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;padding:20px 22px;display:flex;flex-direction:column;gap:6px}
.infos-grid b{font:800 22px/1.1 var(--f-titre);text-transform:uppercase}
.infos-grid span{font-size:14px;color:var(--texte-2)}
/* Accordéon (accordeon.js) */
.accordeon{border-top:1px solid var(--ligne);max-width:980px}
.acc-item{border-bottom:1px solid var(--ligne)}
.acc-titre{margin:0;font-size:inherit}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;background:none;border:0;cursor:pointer;text-align:left;font:800 clamp(20px,2vw,24px)/1.15 var(--f-titre);text-transform:uppercase;color:var(--texte)}
.acc-btn::after{content:"";flex:none;width:12px;height:12px;border-right:2.5px solid var(--or-texte);border-bottom:2.5px solid var(--or-texte);transform:rotate(45deg) translateY(-3px);transition:transform .3s var(--ease)}
.acc-item.is-open .acc-btn::after{transform:rotate(225deg) translateY(-3px)}
.acc-btn:hover{color:var(--or-texte)}
.acc-btn:focus-visible{outline:3px solid var(--or-texte);outline-offset:2px;border-radius:6px}
.acc-panel{padding:0 4px 24px}
.acc-panel[hidden]{display:none}
.acc-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15.5px;color:var(--texte-2)}
.acc-liste b{display:block;font:700 12px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--texte);margin-bottom:2px}
.acc-vide{font-size:15.5px;color:var(--texte-2);margin:0}
.acc-acces{display:grid;grid-template-columns:1fr 1.1fr;gap:28px;align-items:start}
.plan-vignette{margin:0}
.plan-vignette a{position:relative;display:block;border-radius:14px;overflow:hidden;border:1px solid var(--ligne);cursor:zoom-in}
.plan-vignette img{display:block;width:100%;height:auto}
.plan-zoom{position:absolute;right:10px;bottom:10px;padding:5px 10px;border-radius:99px;background:var(--nuit);color:#fff;font:600 12.5px var(--f-texte)}
.plan-vignette figcaption{font-size:13px;color:var(--texte-2);margin-top:8px}
.glb.glb-seule .glb-prev,.glb.glb-seule .glb-next,.glb.glb-seule figcaption{display:none}
@media (max-width:820px){.acc-acces{grid-template-columns:1fr}}
/* Plan d'accès (page Athlètes) */
.plan-acces{margin:28px 0 0}
.plan-acces img{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--ligne);background:var(--blanc)}
.plan-acces figcaption{font-size:13.5px;color:var(--texte-2);margin-top:10px}
@media (max-width:1080px){.stars{grid-template-columns:1fr 1fr}.infos-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.stars,.infos-grid,.field-row-3{grid-template-columns:1fr}}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--nuit);box-shadow:0 0 0 3px rgba(242,194,48,.45)}
.field.is-error input,.field.is-error textarea{border-color:var(--erreur)}
.field-error{color:var(--erreur);font:600 13.5px/1.4 var(--f-texte);margin-top:7px}
.field-error:empty{display:none}
.checks{border:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.checks legend{padding:0;grid-column:1/-1}
.check{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1.5px solid var(--ligne);border-radius:10px;background:var(--blanc);font-size:15px;line-height:1.35;cursor:pointer;transition:border-color .2s,background .2s}
.check:hover{border-color:#BDB8AC}
.check:has(input:checked){border-color:var(--nuit);background:#FBF7EA}
.check input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--nuit)}
.check-consent{align-items:flex-start;border:0;padding:4px 0;background:none!important;font-size:14.5px}
.check-consent input{margin-top:2px}
/* Page Bénévoles (23/10/2026) : disponibilités en cases ; erreur du groupe. Postes (24/10/2026, point 46) : une carte par
   famille (icône jaune au trait fin, titre, phrase, puis les postes séparés d'un fin trait), 4 côte à côte sur ordinateur,
   2 × 2 sur tablette, empilées au téléphone ; cartes de même hauteur, liseré des cartes des intervenants 2026 */
.postes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}   /* deux familles (25/10/2026) */
.poste-famille{display:flex;flex-direction:column;padding:22px 20px 14px;border:1.5px solid rgba(14,15,19,.18);border-radius:16px;background:var(--blanc)}
.poste-icone{display:block;width:34px;height:34px;margin-bottom:12px;fill:none;stroke:var(--or);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.poste-famille-tete h3{margin:0 0 6px;font:800 26px/1 var(--f-titre);text-transform:uppercase;letter-spacing:.01em}
.poste-famille-phrase{margin:0 0 14px;font-size:14.5px;line-height:1.45;color:var(--texte-courant)}
.postes-cartes{margin:0;padding:0;list-style:none}
.poste{padding:11px 0 10px;border-top:1px solid var(--ligne)}
.poste-nom{margin:0 0 3px;font:700 15px/1.3 var(--f-texte);color:var(--texte)}
.poste p{margin:0;font-size:13.5px;line-height:1.45;color:var(--texte-courant)}
/* Tenir à peu près dans un écran à 1440 px : icône à côté du titre, marges de la section resserrées */
.poste-famille-tete{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}
.poste-famille-tete .poste-icone{margin:0;width:30px;height:30px}
.poste-famille-tete .poste-famille-phrase{grid-column:1/-1;margin-top:8px}
.poste-famille-tete h3{margin:0}
#postes{padding:80px 0 72px}
#postes .section-head{margin-bottom:32px}
@media (max-width:700px){#postes{padding:64px 0 56px}}
.fieldset-postes,.fieldset-dispo{border:0;padding:0;margin:0 0 6px}
.fieldset-postes legend,.fieldset-dispo legend{padding:0;margin:0 0 4px;font-weight:700}
.lien-postes{color:var(--or-texte);font-weight:600}
.fieldset-dispo.is-error .check{border-color:var(--erreur)}
@media (max-width:1199px){.postes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.postes{grid-template-columns:1fr}.fieldset-dispo .checks{grid-template-columns:1fr}}
.field.is-error .check-consent{color:var(--erreur)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-alert{background:var(--erreur-fond);border:1px solid #F3C1BD;color:#6E1A15;border-radius:10px;padding:14px 16px;margin:0 0 18px;font-size:15px}
.form-alert a{color:inherit;font-weight:700}
.form-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px}
.form-foot .btn[disabled]{opacity:.6;cursor:wait;transform:none}
.form-legal{font-size:13.5px;color:var(--texte-2);flex:1;min-width:220px}
.form-legal a{color:var(--or-texte);font-weight:600}
.form-done{text-align:center;padding:36px 8px;outline:0}
.form-done-ic{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:var(--or)}
.form-done-ic::after{content:"";width:22px;height:12px;border-left:3px solid var(--nuit);border-bottom:3px solid var(--nuit);transform:translateY(-3px) rotate(-45deg)}
.form-done h3{font-size:34px;margin-bottom:10px}
.form-done p{color:var(--texte-2)}
/* « Voir mes réponses » (28/10/2026, option 2) : réponses relues après l'envoi, alignées à gauche */
.form-reponses{max-width:560px;margin:22px auto 0;text-align:left;border:1px solid var(--ligne);border-radius:12px;background:var(--blanc)}
.form-reponses summary{min-height:44px;display:flex;align-items:center;padding:0 16px;font-weight:700;cursor:pointer;color:var(--texte);list-style:none}
.form-reponses summary::-webkit-details-marker{display:none}
/* « Voir mes réponses ▾ » fermé, « Masquer mes réponses ▴ » ouvert (28/10/2026) */
.form-reponses .fr-masquer,.form-reponses[open] .fr-voir{display:none}
.form-reponses[open] .fr-masquer{display:inline}
.form-reponses dl{margin:0;padding:4px 16px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:2px}
.form-reponses dt{margin-top:10px;font-size:15px;line-height:1.35;font-weight:700;color:var(--texte)}   /* intitulés en gras, comme l'e-mail (29/10/2026) ; taille proche des réponses (recette du 31/10/2026 : 13 px, trop petits) */
/* Envoi d'un entraîneur (29/10/2026, point I) : un bloc par groupe, titre visible, séparation nette */
.form-reponses .fr-groupe{border-top:2px solid var(--ligne);padding-top:4px}
.form-reponses .fr-groupe:first-of-type{border-top:0}
.form-reponses .fr-groupe h4{margin:12px 16px 0;font:800 18px/1.15 var(--f-titre);text-transform:uppercase;letter-spacing:.02em;color:var(--nuit)}
.form-reponses dd{margin:0;font-size:16px;line-height:1.45;color:var(--texte);overflow-wrap:anywhere}
.form-reponses .fr-bas{margin:0;padding:6px 16px 14px;border-top:1px solid var(--ligne)}   /* Q.2 : « Masquer » aussi en bas */
.form-reponses .fr-bas .lien-bouton{min-height:44px;font-weight:700}
.form-reponses .fr-coches{margin:2px 0 0;padding:0;list-style:none}
.form-reponses .fr-coches li{margin:0 0 4px}
.form-apercu.form-essai{background:#FDECEA;border-color:#C0392B;color:#7A1A10}
/* Formulaire fermé : encart « Ouverture prochaine » (le formulaire reste masqué, envoi impossible) */
.form[hidden],.form-bientot[hidden]{display:none}
.form-bientot{text-align:center;padding:30px 8px}
.form-bientot-t{display:inline-flex;align-items:center;gap:10px;font:800 30px/1 var(--f-titre);text-transform:uppercase;margin:0 0 14px}
.form-bientot-t::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--or);box-shadow:0 0 0 5px rgba(242,194,48,.25)}
.form-bientot p{color:var(--texte-2);margin:0 auto 8px;max-width:420px}
.form-bientot a{color:var(--or-texte);font-weight:600}
.form-bientot .form-bientot-t{color:var(--texte);max-width:none}
/* Bénévoles (recette du 31/10/2026) : âge minimum, sous l'introduction des missions et dans l'encart d'attente */
.benevoles-age{max-width:640px;margin:14px 0 0;padding:10px 14px;border-left:4px solid var(--or);border-radius:6px;background:var(--creme);font-size:15px;line-height:1.45;color:var(--texte)}
.benevoles-age b{font-weight:700}
.form-bientot p.benevoles-age{margin:18px auto 0;text-align:left;color:var(--texte)}
/* Formulaire en aperçu (état "apercu" ou lien ?apercu) : bandeau en haut, bouton d'envoi désactivé, aucun envoi */
.form-apercu{display:flex;align-items:center;gap:10px;margin:0 0 22px;padding:12px 16px;border-radius:10px;background:rgba(242,194,48,.14);border:1px solid rgba(242,194,48,.6);color:var(--texte);font-weight:600;font-size:15px;line-height:1.4}
.form-apercu::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--or-texte)}
.form.is-apercu .form-foot .btn[disabled]{cursor:not-allowed}

@media (max-width:1080px){
  .why-grid{grid-template-columns:1fr 1fr}
  .speakers{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:820px){
  .leaders-grid,.form-layout,.sens{grid-template-columns:1fr;gap:36px}
  .form-intro{position:static}
}
@media (max-width:600px){
  .page-hero{padding:calc(var(--header-h) + 56px) 0 72px}
  .page-hero .btn{width:100%}
  .why-grid,.field-row,.checks,.speakers,.sens-list{grid-template-columns:1fr}
  .sens{margin-top:56px}
  .don-box{padding:26px 22px 24px}
  .don-box .btn{width:100%}
  .speaker{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px}
  .speaker-ini{margin:0;width:54px;height:54px;font-size:20px;border-width:2px}
  .speaker b{flex:1;font-size:22px}
  .speaker span:last-child{flex-basis:100%}
  .timeline-box{padding:24px 20px 18px}
  .speakers-wrap{margin-top:44px}
  .why{padding:24px 22px 26px}
  .form-card{padding:24px 18px;border-radius:16px}
  .form-foot .btn{width:100%}
}

/* =========================================================
   PAGE ÉDITIONS
   ========================================================= */
/* Lien masqué : la flèche (::after) ne doit pas rester seule (fenêtre du récit, #lbExtra) */
.link-arrow[hidden]{display:none}
.link-arrow-texte{color:var(--or-texte)}
/* Partenaires, conférence : encart photo de la table ronde (source 1280 px) */
.conf-photo{margin:32px 0 0;max-width:560px}
.conf-photo img{display:block;width:100%;height:auto;border-radius:16px;box-shadow:0 24px 50px -30px rgba(14,15,19,.55)}
.conf-photo figcaption{font-size:13px;color:var(--nuit);opacity:.75;margin-top:10px}
/* Conférence 2026 : vignette de la co-modératrice (source 304 px : 150 px au plus) */
.mod-bloc{display:flex;align-items:center;gap:20px;margin-top:26px}
.mod-bloc .speakers-mod{margin-top:0}
.mod-ph{margin:0;flex:none;width:150px}
.mod-ph img{display:block;width:150px;height:200px;object-fit:cover;border-radius:14px}
.mod-ph figcaption{font-size:12.5px;line-height:1.35;color:var(--texte-2);margin-top:8px}
/* Ancres de l'ouverture */
.page-anchors{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:8px}
.page-anchors a{color:var(--texte-inv);text-decoration:none;font-weight:600;font-size:15px;border-bottom:1.5px solid rgba(242,194,48,.55);padding-bottom:2px}
.page-anchors a:hover{color:var(--or);border-color:var(--or)}
/* Galerie : rangées justifiées, l'ordre de lecture est conservé (--r = largeur / hauteur) */
.galerie{display:flex;flex-wrap:wrap;gap:10px}
.replay-video .replay-film{position:absolute;inset:0;width:100%;height:100%;background:var(--nuit);border:0}
/* Vignettes vidéo photo (Éditions, Presse) : voile léger, titre et durée en bas à gauche, lecture en bas à droite */
.vignette-video{position:relative;display:block;overflow:hidden;background:var(--nuit);padding:0!important}
.vignette-video picture,.vignette-video img{position:absolute;inset:0;width:100%;height:100%}
.vignette-video img{object-fit:cover;opacity:1!important;transition:transform 1s var(--ease)}
.vignette-video:hover img,.video-card:hover .vignette-video img{transform:scale(1.04)}
.vignette-video::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,15,19,.1) 0%,rgba(14,15,19,.2) 45%,rgba(14,15,19,.82) 100%)}
.vignette-txt{position:absolute;left:20px;right:96px;bottom:18px;z-index:2;color:#fff;text-align:left;font-size:14px;line-height:1.2;text-transform:none}
.vignette-txt b{display:block;font:800 clamp(20px,2.2vw,30px)/1 var(--f-titre);text-transform:uppercase}
.vignette-txt span{display:inline-block;margin-top:6px;font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or)}
.vignette-play{position:absolute;right:18px;bottom:18px;z-index:2;width:60px;height:60px;border-radius:50%;background:var(--or)}
.vignette-play::after{content:"";position:absolute;left:24px;top:19px;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent var(--nuit)}
@media (max-width:600px){.vignette-play{width:48px;height:48px;right:12px;bottom:12px}.vignette-play::after{left:19px;top:14px;border-width:10px 0 10px 15px}.vignette-txt{left:14px;bottom:12px;right:70px}}
/* Replay : affiche graphique (pas de miniature YouTube) */
.replay-affiche{background:radial-gradient(700px 360px at 80% 0%,rgba(242,194,48,.28),transparent 60%),linear-gradient(160deg,var(--nuit-2),var(--nuit) 70%)}
.replay-affiche-txt{position:absolute;left:28px;top:24px;font:800 clamp(40px,5vw,64px)/.95 var(--f-titre);text-transform:uppercase;color:var(--texte-inv);text-align:left}
.replay-affiche-txt small{display:block;font:700 12px var(--f-texte);letter-spacing:.16em;color:var(--or);margin-bottom:10px}
.replay-affiche-txt sup{font-size:.45em;vertical-align:top;margin-left:2px}
.gal-item{flex:var(--r) 1 calc(var(--r) * 240px);aspect-ratio:var(--r);padding:0;border:0;border-radius:12px;overflow:hidden;background:var(--nuit);cursor:zoom-in}
/* Galerie dépliable (galerie.js) : rangées alignées, chaque photo ENTIÈRE dans ses proportions (23/10/2026 : plus de grille
   4:3 qui coupait les photos larges) ; environ 4 photos par rangée (2 sur mobile), 8 visibles repliée (4 sur mobile).
   La dernière rangée n'est pas étirée (élément de remplissage). */
.galerie.galerie-rangees .gal-item{flex:var(--r) 1 calc(var(--r) * 140px);box-sizing:content-box}
.galerie.galerie-rangees::after{content:"";flex:999 1 0}
.galerie-rangees.is-repliee .gal-item.gal-cache{display:none}   /* galerie.js : au-delà des 2 premières rangées complètes */
.galerie-rangees.is-repliee::after{display:none}                 /* repliée : les 2 rangées gardées sont pleines */
/* Carrousel (galerie.js, data-carrousel ; revu le 23/10/2026) : photo centrale mise en avant, voisines plus petites et en
   retrait de chaque côté (position, taille et transparence calculées par galerie.js), défilement photo par photo, transition
   fluide (aucune si « moins d'animations ») ; même hauteur d'encart qu'avant. « Découvrir toutes les photos » : le mur. */
.carrousel{position:relative}
/* isolation : l'ordre des photos (z-index posé par galerie.js) reste à l'intérieur du carrousel ; les flèches passent
   toujours au-dessus (23/10/2026) */
.galerie.galerie-rangees.en-carrousel{display:block;position:relative;height:clamp(268px,30vw,418px);overflow:hidden;padding:0;isolation:isolate}
.galerie-rangees.en-carrousel::after{display:none}
.galerie.galerie-rangees.en-carrousel .gal-item{position:absolute;left:50%;top:50%;height:calc(100% - 20px);flex:none;aspect-ratio:auto;transform-origin:center;
  transition:transform .55s var(--ease),opacity .55s var(--ease)}
.galerie.galerie-rangees.en-carrousel .gal-item:not(.car-centre){cursor:pointer}
.galerie.galerie-rangees.en-carrousel .gal-item.car-centre{box-shadow:0 26px 50px -22px rgba(0,0,0,.85)}
#galerie .galerie-rangees.en-carrousel .gal-item:hover{transform:none}
.galerie-rangees.en-carrousel.sans-anim .gal-item{transition:none}
.galerie-rangees.en-carrousel:focus-visible{outline:3px solid var(--or);outline-offset:4px}
.car-compte{margin:8px 0 0;text-align:center;font:700 13px var(--f-texte);letter-spacing:.12em;color:var(--texte-inv-2)}
.carrousel-mur .car-compte{display:none}
#galerie.fond-auto .car-compte{color:var(--texte-2)}
.car-btn{position:absolute;top:calc(50% - 30px);z-index:30;width:52px;height:52px;border-radius:50%;border:0;background:var(--or);color:var(--nuit);font:800 22px/1 var(--f-texte);cursor:pointer;box-shadow:0 10px 24px -10px rgba(0,0,0,.7);transition:opacity .2s,transform .2s}
.car-btn:hover{transform:scale(1.06)}
.car-btn:disabled{opacity:0;pointer-events:none}
.car-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.car-prec{left:-20px}.car-suiv{right:-20px}
.carrousel-mur .car-btn{display:none}
@media (max-width:600px){.galerie.galerie-rangees.en-carrousel{height:250px}.car-btn{width:42px;height:42px;font-size:18px}.car-prec{left:-6px}.car-suiv{right:-6px}}
.galerie-pied{display:flex;justify-content:center;margin-top:28px}
@media (max-width:600px){
  .galerie.galerie-rangees .gal-item{flex-basis:calc(var(--r) * 78px)}
  .galerie-pied .btn{width:100%}
}
.gal-item picture,.gal-item img{display:block;width:100%;height:100%}
.gal-item img{object-fit:cover;transition:transform .8s var(--ease)}
.galerie-rangees .gal-item img{object-fit:contain}
.gal-item:hover img,.gal-item:focus-visible img{transform:scale(1.035)}
/* Galerie édition 2026 (Notre histoire) : passe-partout blanc autour de chaque photo (23/10/2026) ; au survol, la photo se
   soulève (jamais d'agrandissement sur le passe-partout) */
#galerie .gal-item{background:#fff;padding:4px;border-radius:14px;   /* passe-partout affiné ; coins arrondis (23/10/2026) */
box-shadow:0 10px 24px -14px rgba(0,0,0,.7);transition:transform .4s var(--ease),box-shadow .4s}
#galerie .gal-item img{border-radius:10px}
#galerie .gal-item:hover img,#galerie .gal-item:focus-visible img{transform:none}
#galerie .gal-item:hover,#galerie .gal-item:focus-visible{transform:translateY(-3px);box-shadow:0 18px 30px -16px rgba(0,0,0,.75)}
#galerie.fond-auto .gal-item{border:1px solid var(--ligne);box-shadow:0 10px 24px -18px rgba(14,15,19,.35)}
@media (max-width:600px){#galerie .gal-item{padding:3px}}
.gal-item:focus-visible{outline:3px solid var(--or-texte);outline-offset:3px}
/* Agrandissement */
.glb{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:56px 72px}
.glb[hidden]{display:none}
.glb-backdrop{position:absolute;inset:0;background:rgba(8,8,11,.94)}
.glb-fig{position:relative;margin:0;max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:12px}
.glb-fig img{display:block;max-width:100%;max-height:calc(100svh - 140px);width:auto;height:auto;border-radius:8px}
.glb-fig figcaption{color:var(--texte-inv-2);font:600 13px var(--f-texte);letter-spacing:.12em}
.glb-btn{position:absolute;width:48px;height:48px;border-radius:50%;border:1px solid var(--ligne-sombre);background:var(--nuit-2);color:#fff;font-size:20px;line-height:1;cursor:pointer;z-index:1}
.glb-btn:hover{border-color:var(--or);color:var(--or)}
.glb-prev{left:14px;top:50%;transform:translateY(-50%)}
.glb-next{right:14px;top:50%;transform:translateY(-50%)}
.glb-close{top:12px;right:14px;font-size:26px}
/* P.5 (29/10/2026) : ciel étoilé du site derrière les photos (fond nuit + étoiles de main.js), liseré blanc très fin autour de
   chaque photo, bouton « Tout afficher (N) » en haut au centre, mur de toutes les photos (rangées alignées, défilement) */
.glb,.glb.ciel{position:fixed;background:var(--nuit)}   /* .ciel (plus bas) ne doit pas la remettre en position relative */
.glb-backdrop{background:transparent}
.glb .ciel-svg{z-index:0}
.glb-fig,.glb-mur{position:relative;z-index:1}
.glb-fig img,.glb-mur .gal-item img,.ciel .galerie .gal-item img{border:1px solid rgba(255,255,255,.85);box-sizing:border-box}
.glb-tout{position:absolute;top:12px;left:50%;transform:translateX(-50%);z-index:2;min-height:44px;color:#fff;border-color:rgba(255,255,255,.55);background:rgba(14,15,19,.55)}
.glb-tout:hover,.glb-tout:focus-visible{color:var(--or);border-color:var(--or)}
.glb.glb-seule .glb-tout{display:none}
.glb-mur{position:absolute;inset:68px 24px 20px;overflow:auto;align-content:flex-start}
.glb-mur[hidden]{display:none}
/* P.6 (29/10/2026) : fenêtre « Logos » de Presse & médias : une carte par version (aperçu sur damier clair, puis les
   téléchargements) ; 2 colonnes, 1 au téléphone */
.logos-grille{list-style:none;margin:16px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.logo-carte{border:1px solid var(--ligne);border-radius:14px;padding:14px;background:var(--blanc)}
.logo-carte h3{margin:10px 0 6px;font-size:var(--t-carte,20px)}
.logo-apercu{display:grid;place-items:center;aspect-ratio:1/1;max-height:220px;margin:0 auto;border-radius:10px;
  background:#f4f2ec repeating-conic-gradient(#e7e3d8 0 25%,#f4f2ec 0 50%) 0 0/20px 20px}
.logo-apercu img{width:auto;height:100%;max-height:200px;object-fit:contain}
.logo-carte .venue-doc{margin:6px 0 0}
.logos-tout{margin:4px 0 0}
@media (max-width:600px){.logos-grille{grid-template-columns:1fr}}
.glb.glb-en-mur .glb-fig,.glb.glb-en-mur .glb-prev,.glb.glb-en-mur .glb-next{display:none}
/* Records */
/* Un bloc par catégorie : visuel (photo, ou affiche de l'édition en attendant) + grand chiffre (plus grand élément de la section) */
.records{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.record{position:relative;display:flex;gap:26px;align-items:flex-start;background:var(--craie);border:1px solid var(--ligne);border-radius:20px;padding:28px 28px 34px;overflow:hidden}
.record::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:repeating-linear-gradient(90deg,var(--or) 0 48px,var(--texte) 48px 96px)}
.record-visuel{flex:none;width:168px;aspect-ratio:4/5;margin:0;border-radius:14px;overflow:hidden;background:var(--nuit)}
.record-visuel img{display:block;width:100%;height:100%;object-fit:cover}
.record-affiche img{object-fit:contain}
/* Sans photo (en attendant une photo du Club) : initiales dorées sur nuit */
.record-initiales{display:grid;place-items:center}
.record-initiales span{font:800 clamp(48px,5vw,72px)/1 var(--f-titre);color:var(--or);letter-spacing:.02em}
.record-txt{min-width:0}
.record-txt p{margin:0}
.record-badge{display:inline-block;font:800 12px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;background:var(--or);color:var(--nuit);border-radius:99px;padding:5px 11px;margin-bottom:12px!important}
.record-cat{font:700 13px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte);margin-bottom:4px!important}
.record-chiffre{font:800 clamp(48px,6.5vw,95px)/.85 var(--f-titre);letter-spacing:-.01em;color:var(--texte)}
.record-chiffre small{font-size:.34em;margin-left:5px;letter-spacing:0}
.record-nom{font:800 clamp(22px,2vw,28px)/1.05 var(--f-titre);text-transform:uppercase;margin:12px 0 4px!important}
.record-quand{color:var(--texte-2);font-size:15px}
.record-ancien{margin-top:14px!important;font-size:14.5px;color:var(--texte-2)}
.record-ancien s{color:var(--texte);font-weight:700;text-decoration-thickness:2px;text-decoration-color:var(--or-texte)}
.record-egal{margin-top:6px!important;font-size:13.5px;color:var(--texte-2)}
.record-vide{color:var(--texte-2);font-style:italic}
.record .nobr{white-space:nowrap}   /* dates, lieux et hauteurs jamais coupés */
/* ---------- Records en « tableau d'affichage » (option C validée le 23/10/2026, editions.js) ----------
   Titre lisible au-dessus du panneau avec le médaillon (photo ou initiales) ; panneau lumineux de stade : chiffre en cases
   ambrées (trame LED sur les chiffres seulement), nom, date et lieu ; chiffres qui défilent à l'arrivée à l'écran. */
.record.record-tb{display:block;background:none;border:0;padding:0;overflow:visible;border-radius:0}
/* Deux panneaux de même taille (23/10/2026) : titre, panneau et notes alignés d'une colonne à l'autre (sous-grille) */
.records:has(.record-tb){grid-template-rows:auto 1fr auto;row-gap:0}
.record.record-tb{display:grid;grid-row:span 3;grid-template-rows:subgrid}
.record-tb .tb{display:flex;flex-direction:column}
.record-tb .tb-ecran{flex:1;display:flex;flex-direction:column;justify-content:center}
@media (max-width:1080px){.records:has(.record-tb){grid-template-rows:none;row-gap:34px}.record.record-tb{grid-row:auto;grid-template-rows:none}}
.record.record-tb::after{display:none}
.tb-tete{display:flex;align-items:center;gap:14px;margin:0 0 14px}
.tb-med{flex:none;width:140px;height:140px;border-radius:50%;overflow:hidden;background:var(--nuit);display:grid;place-items:center;box-shadow:0 0 0 3px var(--or),0 10px 24px -12px rgba(14,15,19,.6)}
.tb-med img{width:100%;height:100%;object-fit:cover;object-position:50% 25%;background:#000}
.tb-med-ini span{font:800 46px/1 var(--f-titre);color:var(--or);letter-spacing:.01em}
.tb-titre{margin:0;font:800 clamp(22px,2vw,28px)/1.05 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
.tb{position:relative;border-radius:18px;padding:14px;background:linear-gradient(180deg,#2A2C33,#16171C);box-shadow:0 30px 60px -30px rgba(14,15,19,.6),inset 0 1px 0 rgba(255,255,255,.08)}
.tb-ecran{position:relative;border-radius:10px;padding:20px 22px 18px;background:#050608;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06),inset 0 0 40px rgba(0,0,0,.9)}
.tb-ecran p{margin:0}
.tb-chiffres{display:flex;align-items:flex-end;gap:6px;margin:0 0 12px!important}
/* Drapeau du pays (31/10/2026) : en haut à droite du panneau, aligné sur le haut, même marge que le texte (padding de .tb-ecran) */
.tb-drapeau{position:absolute;top:20px;right:22px;z-index:1;line-height:0}
.tb-drapeau .drapeau-pays{width:32px;height:24px;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
@media (max-width:600px){.tb-drapeau{top:16px;right:14px}.tb-drapeau .drapeau-pays{width:28px;height:21px}}
.tb-c{position:relative;display:grid;place-items:center;width:clamp(56px,6vw,90px);height:clamp(84px,9vw,134px);border-radius:6px;background:linear-gradient(180deg,#121317 50%,#0B0C0F 50%);
  font:800 clamp(68px,7.4vw,114px)/1 var(--f-titre);color:#FFC93C;text-shadow:0 0 14px rgba(255,201,60,.85),0 0 34px rgba(255,176,32,.45);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)}
.tb-c::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,rgba(0,0,0,0) 55%,rgba(0,0,0,.5) 56%) 0 0/4px 4px}
.tb-c.tb-roule{color:#C98F1C}
.tb-v{font:800 clamp(60px,6.6vw,100px)/1 var(--f-titre);font-style:normal;color:#FFC93C;text-shadow:0 0 14px rgba(255,201,60,.85);margin:0 -2px 4px}
.tb-chiffres small{font:800 30px var(--f-titre);color:#FFC93C;margin:0 0 12px 6px;text-shadow:0 0 10px rgba(255,201,60,.8);text-transform:uppercase}
.tb-nom{font:800 clamp(24px,2.3vw,32px)/1.05 var(--f-titre);letter-spacing:.04em;text-transform:uppercase;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.45)}
.tb-bas{display:flex;flex-direction:column;gap:4px;margin-top:10px!important;font:700 13px var(--f-texte);letter-spacing:.1em;text-transform:uppercase;color:#7CFFB2;text-shadow:0 0 8px rgba(124,255,178,.5)}
.tb-pied{display:flex;justify-content:space-between;padding:10px 6px 0}
.tb-pied b{width:60px;height:8px;border-radius:4px;background:#0B0C0F}
.record-tb .record-ancien,.record-tb .record-egal{margin-left:4px!important}
@media (max-width:600px){
  .tb{padding:10px}.tb-ecran{padding:16px 14px 14px}
  .tb-c{width:58px;height:86px;font-size:70px}.tb-v{font-size:62px}.tb-chiffres small{font-size:24px}
  .tb-nom{font-size:24px}.tb-bas{font-size:12px;flex-direction:column}
  .tb-med{width:96px;height:96px}.tb-med-ini span{font-size:36px}
}
@media (max-width:1080px){.records{grid-template-columns:1fr}}
@media (max-width:600px){.record{flex-direction:column;gap:16px;padding:22px 20px 30px}.record-visuel{width:132px}}
/* Bandeau Notre histoire (section jaune) */
.histoire-band-inner{display:flex;justify-content:space-between;align-items:center;gap:32px 56px;flex-wrap:wrap}
.histoire-band-inner>div{max-width:680px}
.histoire-band .lead{color:var(--nuit)}
@media (max-width:820px){.records{grid-template-columns:1fr}}

/* =========================================================
   PAGE PARTENAIRES (refonte : piliers, RSE, offres partenariales, conférence 2027)
   Puces : trait jaune (--or), jamais de texte jaune sur fond clair.
   ========================================================= */
.piliers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.pilier{background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;padding:28px 26px 26px;display:flex;flex-direction:column;gap:12px}
.pilier-n{font:700 12px var(--f-texte);letter-spacing:.16em;text-transform:uppercase;color:var(--or-texte);margin:0}
.pilier h3{font-size:clamp(26px,2.4vw,32px);line-height:1}
.pilier>p:not(.pilier-n){font-size:16px;color:var(--texte-courant);margin:0}
.pilier-preuves,.niv-cles,.niv-tous,.naming-cles,.format-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.pilier-preuves{margin-top:4px;padding-top:14px;border-top:1px solid var(--ligne)}
.pilier-preuves li,.niv-cles li,.niv-tous li,.naming-cles li,.format-list li{position:relative;padding-left:18px;font-size:14.5px;line-height:1.45}
.pilier-preuves li::before,.niv-cles li::before,.niv-tous li::before,.naming-cles li::before,.format-list li::before{content:"";position:absolute;left:0;top:.66em;width:10px;height:2.5px;border-radius:2px;background:var(--or)}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
/* Chiffres de l'encart Visibilité en jaune (23/10/2026) : tuiles nuit, chiffre --or (contraste ≈ 10:1), libellé clair */
.mini-stats div{background:var(--nuit);border-radius:12px;padding:13px 12px 12px}
.mini-stats b{display:block;font:800 clamp(26px,2.3vw,32px)/1 var(--f-titre);white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--or)}
/* Compteurs animés : largeur figée (posée par main.js), chiffres à chasse fixe */
[data-count]{font-variant-numeric:tabular-nums}
.compteur{display:inline-block;text-align:right;white-space:nowrap}
.mini-stats small{font-size:.5em;margin-right:3px;color:#fff}
.mini-stats>div>span{display:block;font-size:12.5px;line-height:1.3;color:rgba(255,255,255,.82);margin-top:6px}
/* Engagement RSE : 4 engagements côte à côte (2 × 2 sur mobile), section compacte */
#rse.section{padding:52px 0}
.rse-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 40px;margin-bottom:24px}
.rse-tete .eyebrow{margin-bottom:8px}
.rse h2{font-size:clamp(28px,3vw,42px);line-height:.95;margin:0}
.rse-droite{flex:none;max-width:380px}
.rse .lead{color:var(--nuit);font-size:16px;line-height:1.45;margin:0}
.rse-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:2px solid var(--nuit)}
.rse-liste li{padding:16px 20px 4px 0;font-size:14.5px;line-height:1.45;color:var(--nuit)}
.rse-liste li + li{padding-left:20px;border-left:1px solid rgba(14,15,19,.25)}
.rse-liste b{display:block;font:800 19px/1.1 var(--f-titre);text-transform:uppercase;margin-bottom:6px}
/* Encarts « Faire un don » (Partenaires, 23/10/2026) : deux encarts identiques, carte jaune pâle bordée d'or, bouton noir */
/* Encart « Faire un don » (seul sur la page Partenaires, à côté du formulaire) : compact, plus large que haut */
.don-encart{max-width:560px;margin:26px 0 0;padding:16px 22px 18px;border-radius:16px;background:#FFF8DD;border:2px solid var(--or);box-shadow:0 18px 36px -28px rgba(14,15,19,.45)}
.don-titre{margin:0 0 6px;font:800 22px/1 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
.don-texte{margin:0 0 6px;font-size:14.5px;line-height:1.45;color:var(--nuit)}
.don-phrase{margin:0 0 12px;font-size:13.5px;line-height:1.45;color:var(--texte-2)}
.don-encart .btn{padding:9px 18px;font-size:14px}
@media (max-width:820px){
  #rse.section{padding:44px 0}
  .rse-tete{flex-direction:column;align-items:flex-start;margin-bottom:18px}
  .rse-droite{max-width:none}
  .rse .lead{font-size:15.5px}
  .rse-liste{grid-template-columns:1fr 1fr}
  .rse-liste li{padding:14px 12px 10px 0;font-size:13.5px}
  .rse-liste li + li{padding-left:0;border-left:0}
  .rse-liste li:nth-child(even){padding-left:12px;border-left:1px solid rgba(14,15,19,.25)}
  .rse-liste li:nth-child(n+3){border-top:1px solid rgba(14,15,19,.25)}
  .rse-liste b{font-size:16.5px}
}/* Encadré « cœur de projet » (avant les offres) : bandeau sobre, filet jaune */
.coeur-projet{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 24px;margin:0 0 56px;padding:20px 24px;border-left:4px solid var(--or);background:var(--craie);border-radius:0 14px 14px 0}
.coeur-projet p{margin:0;font-size:16px;color:var(--texte-courant);flex:1 1 420px}
.coeur-projet .coeur-titre{flex:0 1 auto;font:800 clamp(20px,2vw,26px)/1.1 var(--f-titre);text-transform:uppercase;color:var(--texte)}
/* Offres partenariales : 4 cartes alignées + bandeau Premium Naming */
.niveaux{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:stretch}
.niv{position:relative;background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;padding:26px 22px 22px;display:flex;flex-direction:column}
.niv-n{font:700 12px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--texte-2);margin:0}
.niv h3{font-size:27px;line-height:1.05;margin:6px 0 14px}
.niv-detail{margin-top:14px;padding-top:14px;border-top:1px solid var(--ligne)}
.niv-detail[hidden]{display:none}
.niv-detail-t{font:700 11.5px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--texte-2);margin:0 0 10px}
.niv-tous li{font-size:13.5px}
.niv-plus{margin:auto 0 0;padding-top:18px}
.niv-plus button{background:none;border:0;padding:0;font:700 14px var(--f-texte);color:var(--or-texte);cursor:pointer}
.niv-plus button:focus-visible{outline:2px solid var(--or-texte);outline-offset:3px;border-radius:4px}
.niv-reco{border:2px solid var(--nuit);box-shadow:0 26px 50px -32px rgba(14,15,19,.55)}
.niv-badge{position:absolute;top:-12px;left:22px;background:var(--nuit);color:var(--or);font:700 11.5px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:99px}
.naming{margin-top:16px;background:var(--nuit);color:var(--texte-inv);border-radius:18px;padding:28px 30px;display:grid;grid-template-columns:1fr 1.6fr;gap:24px 36px;align-items:center}
.naming[hidden]{display:none}
.naming .niv-n{color:var(--or)}
.naming h3{font-size:30px;color:#fff;margin:4px 0 0}
.naming-note{font-size:13px;color:var(--texte-inv-2);margin:8px 0 0}
.naming-cles li{color:var(--texte-inv-2)}
.niv-pied{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;margin-top:26px;padding-top:20px;border-top:1px solid var(--ligne)}
.niv-pied p{margin:0;max-width:520px}
.tarifs{font:700 15px var(--f-texte)}
/* Avantages fiscaux (29/10/2026) : bouton à côté de « Demande de rendez-vous », bloc qui se déplie dessous (texte du Club) */
.niv-boutons{display:flex;flex-wrap:wrap;gap:12px}
/* Bouton « Avantages fiscaux » (T.3, version B choisie le 29/10/2026) : secondaire mais bien visible ; fond crème, liseré doré,
   flèche dans un rond jaune qui se retourne à l'ouverture ; ouvert : fond blanc */
#fiscalBtn{gap:12px;padding:10px 12px 10px 20px;border:1.5px solid var(--or-texte);background:var(--creme);color:var(--nuit)}
#fiscalBtn::after{content:"▾";display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--or);color:var(--nuit);font-size:16px;line-height:1;transition:transform .25s var(--ease)}
#fiscalBtn[aria-expanded="true"]{background:var(--blanc)}
#fiscalBtn[aria-expanded="true"]::after{transform:rotate(180deg)}
#fiscalBtn:hover,#fiscalBtn:focus-visible{background:var(--blanc);color:var(--nuit);border-color:var(--nuit)}
@media (prefers-reduced-motion:reduce){#fiscalBtn::after{transition:none}}
/* Avantages fiscaux (L2, 29/10/2026) : pleine largeur du contenu ; titre, puis les trois dispositifs en trois colonnes
   (empilées au-dessous de 900 px), phrase en gras et lien en bas */
.fiscal-bloc{margin-top:18px;padding:26px 28px;background:var(--creme);border:1px solid var(--ligne);border-radius:16px}
.fiscal-bloc[hidden]{display:none}
.fiscal-bloc h3{margin:0 0 18px;font-size:var(--t-carte,24px)}
.fiscal-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}
.fiscal-col{background:var(--blanc);border:1px solid var(--ligne);border-top:3px solid var(--or);border-radius:12px;padding:18px 20px}
.fiscal-bloc .fiscal-col h4{margin:0 0 8px;font:700 19px/1.2 var(--f-titre);color:var(--nuit)}
.fiscal-bloc p{margin:0 0 10px;color:var(--texte);line-height:1.6}
.fiscal-bloc .fiscal-col p{margin:0;font-size:15px}
.fiscal-bloc .fiscal-fin{font-weight:700}
.fiscal-bloc .fiscal-lien{margin:0;font-size:15px}
.fiscal-lien a{color:var(--or-texte);font-weight:600;text-underline-offset:3px}
@media (max-width:900px){.fiscal-cols{grid-template-columns:1fr;gap:12px}}
@media (max-width:600px){.niv-boutons{width:100%}.niv-boutons .btn{width:100%}.fiscal-bloc{padding:18px 16px}.fiscal-col{padding:16px}}
/* Hospitalité */
.hospi-grid{grid-template-columns:1fr 1fr}
.format .link-arrow{margin-top:14px}
/* Prix et lien poussés en bas de chaque carte : alignés d'une carte à l'autre, quel que soit le nombre de lignes au-dessus (L1, 29/10/2026) */
.hospi-grid .format-list{margin-bottom:18px}
.hospi-grid .format-prix{margin-top:auto}
.hospi-grid .format .link-arrow{align-self:flex-start}
.form-interlocuteurs{margin-top:16px;padding-left:12px;border-left:3px solid var(--or);font-size:15px;font-weight:600;color:var(--texte)}
/* Collectivités, institutions, fondations (23/10/2026) : phrase sous les interlocuteurs */
.form-institutions{margin:14px 0 0;font-size:15px;line-height:1.55;color:var(--texte-courant)}
@media (max-width:1080px){.piliers{grid-template-columns:1fr}.niveaux{grid-template-columns:1fr 1fr}.naming{grid-template-columns:1fr}}
@media (max-width:820px){.hospi-grid{grid-template-columns:1fr;gap:28px}}
/* Sections évolutives par blocs (point 23, maquettes validées le 26/10/2026 ; blocs.js) : deux colonnes, blocs larges sur
   toute la largeur ; affiche placée en premier : à gauche, le texte et les intervenants « à côté » à droite ; photos aux coins
   arrondis, liseré discret (un bord clair de photo ne se confond pas avec le fond) ; téléphone : une colonne, heure du
   programme au-dessus de son intitulé */
.blocs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 44px;align-items:start;margin-top:26px}
.bl{margin:0;min-width:0}.bl-large{grid-column:1/-1}
.bl-texte .bl-t{font:800 var(--t-sous)/1.05 var(--f-titre);text-transform:uppercase;margin:0 0 12px;color:var(--nuit)}
.bl-texte p{margin:0;font-size:17px;line-height:1.7;color:var(--texte-courant)}
.bl-photo img,.bl-gal img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;outline:1px solid rgba(14,15,19,.1);outline-offset:-1px}
.bl-affiche img{display:block;width:100%;height:auto;max-width:340px;border-radius:14px;box-shadow:0 18px 40px -22px rgba(0,0,0,.6)}
.bl-gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.bl-intervenants{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.bl-intervenants .speaker small{display:block;margin-top:6px;font-size:13.5px;line-height:1.45;color:var(--texte-2)}
.blocs .timeline span small{display:block;font-size:13px;opacity:.75}
.bl-bouton{margin:0}
.bl-elements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.bl-el{background:var(--blanc);border:1.5px solid rgba(14,15,19,.18);border-radius:16px;overflow:hidden}
.bl-el-ph{position:relative;aspect-ratio:3/2;background:var(--creme)}
.bl-el-ph img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.bl-el-txt{padding:16px 18px 18px}
.bl-el h4{margin:0 0 6px;font:800 var(--t-carte)/1.05 var(--f-titre);text-transform:uppercase;color:var(--nuit)}
.bl-el p{margin:0 0 6px;color:var(--texte-courant);font-size:15.5px;line-height:1.55}
.bl-el .bl-h{margin:8px 0 0;color:var(--or-texte);font-weight:700}
.avec-affiche{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.avec-affiche .bl-affiche{grid-row:span 2}
.avec-affiche .bl-cote{grid-column:2}
.bl-cote .speakers{grid-template-columns:1fr;gap:12px}
/* Aperçu de l'admin seulement : bloc d'exemple (jamais affiché sur le site) */
.bl-exemple-zone{min-width:0;outline:2px dashed var(--or-texte);outline-offset:6px;border-radius:8px}
.bl-exemple{display:inline-block;margin:0 0 10px;padding:3px 9px;border-radius:6px;background:var(--nuit);color:#fff;font:700 11px var(--f-texte);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:900px){
  .blocs,.avec-affiche{grid-template-columns:1fr;gap:26px}
  .avec-affiche .bl-affiche{grid-row:auto}.avec-affiche .bl-cote{grid-column:auto}
  .bl-elements{grid-template-columns:1fr}.bl-gal{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){.blocs .timeline li{grid-template-columns:1fr;row-gap:2px}.blocs .timeline span{font-size:16px}}
@media (max-width:600px){.niveaux{grid-template-columns:1fr}.mini-stats{grid-template-columns:1fr}.niv-pied .btn,.naming .btn{width:100%}}

/* =========================================================
   PAGE PRESSE & MÉDIAS
   ========================================================= */
/* Contenus vides : rien n'est affiché (presse.js retire hidden quand data.js est renseigné) */
section[hidden],.presse-card[hidden],.presse-card .btn[hidden],.video-card[hidden],.page-anchors a[hidden]{display:none}
.form-photo{display:block;margin-top:28px;border-radius:18px;overflow:hidden;background:var(--nuit);aspect-ratio:7/4}
.form-photo img{display:block;width:100%;height:100%;object-fit:cover}
.presse-limite{display:inline-block;margin-top:6px;padding:10px 16px;border-radius:12px;background:var(--craie);border:1px solid var(--ligne);font-size:15px}
.presse-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
/* Kit presse (U, 29/10/2026) : « Le kit complet » à gauche (liseré jaune, liste à points, bouton jaune), cartes Dossier de
   presse, Logos et Contact à droite ; une colonne au-dessous de 900 px */
/* Les deux colonnes alignées en haut ET en bas (31/10/2026) : la carte « Le kit complet » prend la hauteur de la rangée ;
   à droite, les cartes se partagent la hauteur restante (le bas de la dernière tombe au même niveau que la carte de gauche) */
.kitp{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;align-items:stretch}
.kitp-cote{display:flex;flex-direction:column;gap:14px}
.kitp-cote>*{flex:1 1 auto}
.kitp-kit{display:flex;flex-direction:column}
.kitp-cote .presse-card{margin:0}
.kitp-kit{background:var(--blanc);border:1px solid var(--ligne);border-top:3px solid var(--or);border-radius:16px;padding:26px 28px}
.kitp-kit h3{margin:0 0 6px}
.kitp-intro{margin:0 0 14px;color:var(--texte-2)}
.kitp-liste{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.kitp-liste li{position:relative;padding-left:18px;line-height:1.5}
.kitp-liste li[hidden],.kitp-cote .btn-row[hidden],.kitp-cote p[hidden]{display:none}
.kitp-liste li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--or)}
.kitp-kit .btn-row{margin:0}
.kitp-meta{margin:10px 0 0;font-size:13.5px;color:var(--texte-2)}
.kitp-meta + .kitp-meta{margin-top:4px}
@media (max-width:900px){.kitp{grid-template-columns:1fr}}
@media (max-width:600px){.kitp-kit{padding:20px 18px}.kitp-kit .btn{width:100%}}
.presse-card{background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;padding:28px 26px 26px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.presse-card h3{font-size:28px;margin-bottom:2px}
.presse-card p{font-size:15.5px;color:var(--texte-courant);margin:0}   /* point 17 : texte courant foncé ; mentions à part (13,5 px) */
.presse-card .btn{margin-top:4px}
.presse-mail{font-weight:700;color:var(--texte);text-decoration:none;border-bottom:1.5px solid var(--or);word-break:break-word}
.presse-mail:hover{color:var(--or-texte)}
.presse-card .presse-note{font-size:13.5px;margin-top:auto;padding-top:6px}
#carteDossier .btn{margin-top:auto;align-self:flex-start}
.presse-liste{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;width:100%}
.presse-liste li{display:flex;flex-direction:column;gap:2px}
.presse-liste a{font-weight:600;color:var(--texte)}
.presse-liste span{font-size:13.5px;color:var(--texte-2)}
.presse-revue li{background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;padding:16px 20px}
/* Cartes vidéo (affiche graphique, comme le replay de la page Éditions) */
.video-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.video-card{display:flex;flex-direction:column;text-decoration:none;color:var(--texte);border-radius:18px;overflow:hidden;background:var(--blanc);border:1px solid var(--ligne);transition:transform .4s var(--ease),box-shadow .4s}
.video-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(14,15,19,.35)}
.video-affiche{position:relative;display:block;aspect-ratio:16/9;padding:22px 24px;background:radial-gradient(600px 300px at 80% 0%,rgba(242,194,48,.28),transparent 60%),linear-gradient(160deg,var(--nuit-2),var(--nuit) 70%);color:var(--texte-inv);font:800 clamp(30px,3.4vw,46px)/.95 var(--f-titre);text-transform:uppercase}
.video-affiche small{display:block;font:700 12px var(--f-texte);letter-spacing:.16em;color:var(--or);margin-bottom:10px}
.video-affiche .play{position:absolute;left:auto;top:auto;right:22px;bottom:20px;margin:0;width:70px;height:70px;border-radius:50%;background:var(--or)}
.video-affiche .play::after{content:"";position:absolute;left:28px;top:22px;border-style:solid;border-width:13px 0 13px 21px;border-color:transparent transparent transparent var(--nuit)}
.video-txt{display:flex;flex-direction:column;gap:4px;padding:18px 22px 20px}
.video-txt b{font:800 24px/1.05 var(--f-titre);text-transform:uppercase}
.video-txt span{font-size:14.5px;color:var(--texte-2)}
@media (max-width:1080px){.presse-cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){
  .presse-cards,.video-cards{grid-template-columns:1fr}
  .presse-card{padding:22px 20px}
  .video-affiche{font-size:28px;padding:16px 18px}
  .video-affiche .play{width:56px;height:56px}
  .video-affiche .play::after{left:22px;top:17px;border-width:11px 0 11px 17px}
}
@media (max-width:600px){
  .gal-item{flex-basis:calc(var(--r) * 150px)}
  .galerie{gap:8px}
  .glb{padding:56px 8px 72px}
  .glb-prev,.glb-next{top:auto;bottom:14px;transform:none}
  .glb-prev{left:calc(50% - 60px)}
  .glb-next{right:calc(50% - 60px)}
  .replay-affiche-txt{left:16px;top:14px;font-size:26px}
  .replay-affiche-txt small{font-size:10.5px;margin-bottom:6px}
  .histoire-band .btn{width:100%}
}
/* Bande de vignettes de la conférence 2026 (Éditions) */
.mod-bloc{flex-wrap:wrap}
@media (max-width:600px){.mod-bloc{gap:12px}.mod-ph{width:calc(33.3% - 8px)}.mod-ph img{width:100%;height:auto;aspect-ratio:3/4}.mod-bloc .speakers-mod{flex-basis:100%}}
/* =========================================================
   CIEL ÉTOILÉ : un seul mécanisme (main.js « Ciel étoilé ») pour toutes les sections sombres ; intensité : data.js ciel.intensite.
   Étoiles dans un <svg> par section ; deux groupes varient très lentement (18 s et 23 s). Voile champagne (ambiance B) sur
   les sections pleines. Ni étoile filante, ni effet de profondeur, ni clignotement ; rien ne bouge avec « réduire les animations ».
   ========================================================= */
.ciel{position:relative;isolation:isolate}
.ciel>.ciel-voile{position:absolute;inset:0;pointer-events:none;z-index:-3;
  background:radial-gradient(1100px 520px at 78% 0%,rgba(236,226,206,.11),transparent 65%),radial-gradient(900px 500px at 5% 100%,rgba(200,200,204,.07),transparent 60%),linear-gradient(180deg,rgba(70,66,60,.22),rgba(14,15,19,0))}
.ciel-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-2;overflow:hidden}
.ciel-svg .ca{animation:ciel-lent 18s ease-in-out infinite alternate}
.ciel-svg .cb{animation:ciel-lent 23s ease-in-out -9s infinite alternate}
@keyframes ciel-lent{from{opacity:1}to{opacity:var(--bas)}}
@media (prefers-reduced-motion:reduce){.ciel-svg .ca,.ciel-svg .cb{animation:none}}
/* Bandeau de l'accueil : étoiles au-dessus de l'image floutée, sous le cadre de la vidéo (jamais sur la vidéo) */
.hero .hero-media.ciel{position:absolute}
.hero .hero-media .ciel-svg{z-index:1}
.hero .hero-media .hero-frame{z-index:2}
.form-recap{scroll-margin-top:calc(var(--header-h-solid) + 16px);margin:0 0 20px;padding:12px 16px;border-radius:10px;background:var(--erreur-fond);color:var(--erreur);font-size:14.5px;font-weight:600}
.form-recap[hidden]{display:none}
.check-consent a{color:var(--or-texte);font-weight:600}
/* Ouverture Partenaires (photo) : étoiles côté texte seulement (droite ; en bas sur téléphone), jamais sur l'athlète */
.page-hero-droite>.ciel-svg{z-index:0;-webkit-mask-image:linear-gradient(90deg,transparent 40%,#000 62%);mask-image:linear-gradient(90deg,transparent 40%,#000 62%)}
.page-hero-droite .page-hero-inner{position:relative;z-index:1}
@media (max-width:820px){.page-hero-droite>.ciel-svg{-webkit-mask-image:linear-gradient(180deg,transparent 35%,#000 55%);mask-image:linear-gradient(180deg,transparent 35%,#000 55%)}}
/* Ouverture en deux parties (Athlètes) : texte sur ciel étoilé à gauche, photo à droite, fondu entre les deux */
.hero-split{padding:calc(var(--header-h) + 64px) 0 72px;display:flex;align-items:center;min-height:min(78svh,720px)}
.hero-split-grid{position:relative;z-index:1;width:100%}
.hero-split-texte{max-width:50%;padding-right:32px}
.hero-split-texte h1{font-size:clamp(46px,5.6vw,88px)}
.hero-split-ph{position:absolute;top:var(--header-h);right:0;bottom:0;width:52%;z-index:0}
.hero-split-ph img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%;filter:brightness(.92);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 30%),linear-gradient(180deg,transparent 0,#000 18%,#000 82%,transparent);mask-composite:intersect}
@media (max-width:820px){
  .hero-split{display:block;min-height:0;padding:0 0 56px}
  .hero-split-ph{position:relative;top:auto;width:100%;margin-top:var(--header-h);aspect-ratio:830/490;display:block}
  .hero-split-ph img{-webkit-mask-image:linear-gradient(180deg,#000 75%,transparent);mask-image:linear-gradient(180deg,#000 75%,transparent)}
  .hero-split-grid{margin-top:8px}
  .hero-split-texte{max-width:none;padding:0}
  .hero-split{display:flex;flex-direction:column}
  .hero-split-ph{order:-1}
}
/* Bouton de retournement : cadre de focus seulement au clavier, sans toucher le texte voisin */
.star-tourner{padding:4px 8px;margin-left:-8px;border-radius:6px;line-height:1.3}
.star-tourner:focus{outline:none}
.star-tourner:focus-visible{outline:2px solid currentColor;outline-offset:1px}
.star-back .star-tourner{margin-top:auto;flex:none}
.star-back{gap:10px}
.star-back-cols{margin-bottom:20px}   /* espace minimal fixe au-dessus de « Revenir » */
/* Accueil, Plateau 2027 : photo fondue dans le ciel étoilé (pas de cadre, masque dégradé, voile champagne) */
.plateau .plateau-ph{position:relative;border-radius:0;box-shadow:none;background:transparent;
  -webkit-mask-image:radial-gradient(ellipse 58% 56% at 56% 47%,#000 40%,transparent 100%),linear-gradient(90deg,transparent 0,#000 30%);-webkit-mask-composite:source-in;
  mask-image:radial-gradient(ellipse 58% 56% at 56% 47%,#000 40%,transparent 100%),linear-gradient(90deg,transparent 0,#000 30%);mask-composite:intersect}
.plateau .plateau-ph img{filter:brightness(1.04) contrast(1.02)}
.plateau .plateau-ph::after{content:"";position:absolute;inset:0;background:rgba(236,226,206,.10);mix-blend-mode:screen;pointer-events:none}
@media (max-width:820px){
  .plateau .plateau-ph{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 62%,transparent 100%),linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent);
    mask-image:linear-gradient(180deg,transparent 0,#000 12%,#000 62%,transparent 100%),linear-gradient(90deg,transparent 0,#000 14%,#000 86%,transparent)}
}
/* Ouverture Athlètes : photo jamais agrandie (830 × 490 px), centrée verticalement à droite */
.hero-split-ph{top:calc(var(--header-h) + 20px);bottom:auto;width:min(52%,830px);aspect-ratio:830/490;top:50%;transform:translateY(-38%)}
@media (max-width:820px){.hero-split-ph{transform:none;width:100%;max-width:830px;top:auto}}
/* Plateau 2027 : fondu sur les QUATRE côtés (aucun contour), noirs relevés vers le ton du ciel */
.plateau .plateau-ph{
  -webkit-mask-image:radial-gradient(closest-side ellipse at 52% 48%,#000 52%,rgba(0,0,0,.6) 74%,transparent 100%);-webkit-mask-composite:source-over;
  mask-image:radial-gradient(closest-side ellipse at 52% 48%,#000 52%,rgba(0,0,0,.6) 74%,transparent 100%);mask-composite:add}
.plateau .plateau-ph img{filter:contrast(.9) brightness(1.1) saturate(1.02)}
.plateau .plateau-ph::after{background:rgba(236,226,206,.12)}
@media (max-width:820px){
  .plateau .plateau-ph{-webkit-mask-image:radial-gradient(closest-side ellipse at 50% 46%,#000 50%,rgba(0,0,0,.6) 74%,transparent 100%);
    mask-image:radial-gradient(closest-side ellipse at 50% 46%,#000 50%,rgba(0,0,0,.6) 74%,transparent 100%)}
}
.plateau .plateau-ph img{filter:contrast(.97) brightness(1.03)}
.plateau .plateau-ph::after{background:rgba(236,226,206,.05)}

/* ---------- Page Notre histoire : chronologie des éditions et records, en texte (histoire.js) ---------- */
.chrono{list-style:none;margin:0;padding:0;max-width:980px}
.chrono-item{display:grid;grid-template-columns:150px 1fr;gap:28px;padding:30px 0;border-top:1px solid var(--ligne)}
.chrono-item:first-child{border-top:0;padding-top:6px}
.chrono-annee{font:800 clamp(44px,4.4vw,60px)/.9 var(--f-titre);color:var(--texte);margin:0}
.chrono-txt h3{font:700 15px/1.3 var(--f-texte);letter-spacing:.04em;text-transform:uppercase;color:var(--or-texte);margin:4px 0 10px}
.chrono-resume{font:700 clamp(19px,1.6vw,22px)/1.35 var(--f-texte);color:var(--texte);margin:0 0 10px}
.chrono-txt p:last-child{color:var(--texte-2);margin-bottom:0;max-width:720px}
.records-texte{margin:0;padding-left:1.2em;max-width:860px;font-size:clamp(17px,1.4vw,19px)}
.records-texte li{margin-bottom:12px}
@media (max-width:820px){
  .chrono-item{grid-template-columns:1fr;gap:4px;padding:24px 0}
}
.chrono-txt h3 sup{text-transform:none}

/* À la une avec photos (sections.js) : texte à gauche, photos à droite ; téléphone : photos sous le surtitre */
.a-la-une.une-1 .a-la-une-inner,.a-la-une.une-2 .a-la-une-inner,.a-la-une.une-3 .a-la-une-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:". photos" "sur photos" "texte photos" "btn photos" ". photos";grid-template-rows:1fr auto auto auto 1fr;align-items:start;gap:12px 48px}
.a-la-une[class*="une-"] .une-surtitre{grid-area:sur}
.a-la-une[class*="une-"] .une-texte{grid-area:texte;min-width:0}
.a-la-une[class*="une-"] .une-btn{grid-area:btn;justify-self:start;align-self:start}
.une-photos{grid-area:photos;display:grid;gap:10px}
.une-photos figure{margin:0;border-radius:12px;overflow:hidden;aspect-ratio:3/2;background:var(--creme)}
.une-photos img{display:block;width:100%;height:100%;object-fit:cover}
.une-2 .une-photos{grid-template-columns:1fr 1fr}
.une-3 .une-photos{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.une-3 .une-photos figure:first-child{grid-row:1 / 3;aspect-ratio:auto}
@media (max-width:820px){
  .a-la-une.une-1 .a-la-une-inner,.a-la-une.une-2 .a-la-une-inner,.a-la-une.une-3 .a-la-une-inner{grid-template-columns:minmax(0,1fr);grid-template-areas:"sur" "photos" "texte" "btn";grid-template-rows:none;gap:14px}
  .a-la-une[class*="une-"] .une-btn{justify-self:stretch;text-align:center}
  .une-3 .une-photos{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .une-3 .une-photos figure:first-child{grid-row:auto;grid-column:1 / 3;aspect-ratio:3/2}
}
/* « À la une » sur fond étoilé (maquette validée le 23/10/2026) : titre et lignes agrandis ; photos sans cadre ni coins
   arrondis, bords fondus dans le ciel. Une seule photo : ENTIÈRE (jamais recadrée sur ordinateur), le noir de la photo
   laisse voir le ciel (fusion « lighten », pensée pour une photo sur fond noir). Téléphone : cadre carré qui ne retire que
   le bas de la photo (cadrage « pos » de data.js / de l'admin), pour éviter un grand vide sous l'athlète. */
.a-la-une.section-dark .une-titre{font-size:clamp(34px,3.6vw,52px);line-height:1.02;margin:0 0 14px}
.a-la-une.section-dark .une-surtitre{font-size:14px}
.a-la-une.section-dark .une-liste{font-size:clamp(17px,1.35vw,20px);gap:10px;margin-top:14px}
.a-la-une.section-dark .une-liste li{padding-left:22px}
.a-la-une.section-dark .une-liste li::before{width:10px;height:3px}
.a-la-une.section-dark .une-photos figure{background:transparent;border-radius:0;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 90%,transparent 100%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 90%,transparent 100%);mask-composite:intersect}
/* Une photo : masque sur l'image (un masque sur le cadre l'isolerait du ciel et empêcherait la fusion) */
.a-la-une.section-dark.une-1 .une-photos figure{aspect-ratio:auto;overflow:visible;display:flex;justify-content:center;-webkit-mask-image:none;mask-image:none}
.a-la-une.section-dark.une-1 .une-photos img{width:auto;max-width:100%;height:auto;max-height:min(620px,78vh);object-fit:contain;mix-blend-mode:lighten;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 90%,transparent 100%);
  -webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%),linear-gradient(to bottom,transparent 0,#000 8%,#000 90%,transparent 100%);mask-composite:intersect}
@media (max-width:820px){
  .a-la-une.section-dark.une-1 .une-photos figure{aspect-ratio:1/1;overflow:hidden;display:block}
  .a-la-une.section-dark.une-1 .une-photos img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:50% 0}
}
/* « À la une » avec vidéo (31/10/2026, annonce de Baptiste Thiery) : vidéo verticale ENTIÈRE dans ses proportions (ni
   étirée ni coupée), à côté du texte ; aperçu = affiche tirée de la vidéo, gros bouton de lecture au centre ; commandes du
   navigateur après le premier clic */
.a-la-une.une-avec-video .une-photos{justify-items:center}
.a-la-une.section-dark.une-avec-video .une-photos figure.une-video{position:relative;display:block;width:auto;height:min(640px,78vh);max-width:100%;overflow:hidden;border-radius:14px;background:#000;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 30px 60px -30px rgba(0,0,0,.9);-webkit-mask-image:none;mask-image:none}
.une-video video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.une-lire{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;width:100%;padding:0 0 13%;border:0;   /* sous la date de l'affiche : le logo reste visible */background:linear-gradient(180deg,rgba(14,15,19,0) 50%,rgba(14,15,19,.35));cursor:pointer}
.une-lire span{position:relative;width:84px;height:84px;border-radius:50%;background:var(--or);box-shadow:0 10px 30px -8px rgba(0,0,0,.7);transition:transform .2s}
.une-lire span::after{content:"";position:absolute;left:33px;top:25px;border-style:solid;border-width:17px 0 17px 26px;border-color:transparent transparent transparent var(--nuit)}
.une-lire:hover span,.une-lire:focus-visible span{transform:scale(1.07)}
.une-lire:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
.une-lire[hidden]{display:none}
@media (max-width:820px){
  .a-la-une.section-dark.une-avec-video .une-photos figure.une-video{height:min(560px,68vh)}
}
@media (prefers-reduced-motion:reduce){.une-lire span{transition:none}}

/* « Préparer votre venue » : photos (0 à 2) et document à télécharger dans chaque rubrique */
.venue-medias{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin-top:16px;max-width:720px}
.venue-medias.venue-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.venue-ph{margin:0}
.venue-ph img{display:block;width:100%;height:auto;border-radius:10px}
.venue-doc{margin:14px 0 0}
.venue-doc-lien{display:inline-flex;align-items:center;gap:12px;padding:10px 16px 10px 10px;border:1px solid var(--ligne);border-radius:12px;background:var(--blanc);color:var(--texte);text-decoration:none}
.venue-doc-lien:hover,.venue-doc-lien:focus-visible{border-color:var(--nuit)}
.venue-doc-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:8px;background:var(--nuit);color:var(--or);font:700 12px var(--f-texte);letter-spacing:.04em}
.venue-doc-lien b{display:block;font-size:15px}
.venue-doc-lien small{display:block;font-size:12.5px;color:#5B5F68}
@media (max-width:600px){.venue-medias.venue-2{grid-template-columns:minmax(0,1fr)}}


/* ---------- Alternance automatique des fonds (sections.js) ----------
   Une section masquée dans l'admin peut mettre deux sections sombres côte à côte : l'une passe alors en clair
   (classe fond-auto, sans ciel étoilé). Deux sections claires de même teinte : la seconde change de teinte. */
.fond-blanc{background:var(--blanc)}
.fond-creme{background:var(--creme)}
.fond-craie{background:var(--craie)}
.fond-auto{background:var(--craie);color:var(--texte)}
.fond-auto.fond-blanc{background:var(--blanc)}
.fond-auto.fond-creme{background:var(--creme)}
.fond-auto .lead{color:var(--texte-courant)}
.fond-auto .eyebrow,.fond-auto .eyebrow-gold{color:var(--or-texte)}
/* Plateau 2027 en clair */
.plateau.fond-auto h2{color:var(--nuit)}
.plateau.fond-auto .plateau-txt{color:var(--texte-2)}
.plateau.fond-auto .plateau-badge{color:var(--or-texte)}
.plateau.fond-auto .plateau-filet{background:repeating-linear-gradient(90deg,var(--or) 0 64px,var(--nuit) 64px 128px);box-shadow:none}
.plateau-b.fond-auto .plateau-filet{background:repeating-linear-gradient(180deg,var(--or) 0 40px,var(--nuit) 40px 80px)}
@media (max-width:820px){.plateau-b.fond-auto .plateau-filet{background:repeating-linear-gradient(90deg,var(--or) 0 48px,var(--nuit) 48px 96px)}}
.plateau.fond-auto .plateau-ph{background:transparent}
.fond-auto .btn-ghost{color:var(--nuit);border-color:rgba(14,15,19,.35)}
.fond-auto .btn-ghost:hover{border-color:var(--nuit);background:rgba(14,15,19,.06)}
/* Mur des partenaires en clair : logos en couleur, barre or et noir */
.mur-band.fond-auto::before{display:none}
.mur-band.fond-auto .mur-head h2{color:var(--nuit)}
.mur-band.fond-auto .mur-sub,.mur-band.fond-auto .mur-collab{color:var(--texte-2)}
.mur-band.fond-auto .mur-pp p{color:var(--or-texte)}
.mur-band.fond-auto .mur-chips button{border-color:rgba(14,15,19,.25);color:var(--texte-2)}
.mur-band.fond-auto .mur-chips button:hover{color:var(--nuit);border-color:var(--nuit)}
.mur-band.fond-auto .mur-chips button[aria-pressed="true"]{background:var(--nuit);border-color:var(--nuit);color:#fff}
.mur-band.fond-auto .logo-duo .m{opacity:0}
.mur-band.fond-auto .logo-duo .c{opacity:1}
.mur-band.fond-auto .mur-crossbar{background:repeating-linear-gradient(90deg,var(--or) 0 64px,var(--nuit) 64px 128px);box-shadow:none}
.mur-band.fond-auto .mur-crossbar::after{display:none}
.mur-band.fond-auto .mur-panel{background:#fff;box-shadow:0 20px 50px -30px rgba(0,0,0,.35)}


/* « À la une » dans l'aperçu de l'admin, masqué ou hors de ses dates : étiquette (jamais sur le site public) */
.une-etiquette{display:inline-block;margin:0 0 12px;padding:4px 10px;border-radius:6px;background:var(--nuit);color:#fff;font:700 12px var(--f-texte);letter-spacing:.06em;text-transform:uppercase}
.une-apercu{outline:2px dashed var(--or-texte);outline-offset:-2px}


/* ---------- Documents publics (écran « Documents » de l'admin) : liens PDF aux emplacements choisis ---------- */
.docs-liens{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 22px}
.docs-liens[hidden],.footer-docs[hidden]{display:none}
.docs-t{width:100%;margin:0;font:700 12.5px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--or-texte)}
.doc-lien{display:inline-flex;align-items:center;gap:10px;padding:9px 14px;border:1px solid rgba(14,15,19,.15);border-radius:12px;background:#fff;color:var(--texte);text-decoration:none}
.doc-lien:hover{border-color:var(--nuit)}
.doc-lien-ic{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;background:var(--nuit);color:var(--or);font:800 12px var(--f-texte)}
.doc-lien b{display:block;font-size:14.5px}
.doc-lien small{display:block;font-size:12.5px;color:var(--texte-2)}
.doc-lien-en{font-size:13px;color:var(--or-texte)}
.footer-docs{display:inline-flex;flex-wrap:wrap;gap:6px 14px;margin-right:14px}
.footer-docs a{color:inherit}
.conf-contact-t{margin:34px 0 8px;font-size:clamp(24px,3vw,32px)}
.conf-contact{margin:0;font-size:16px;line-height:1.6}
/* Confidentialité : mesure de fréquentation (une ligne par point) et bouton de refus */
.conf-liste{margin:0;padding-left:20px;font-size:16px;line-height:1.6;max-width:820px}
.conf-liste li{margin:0 0 6px}
.conf-refus{margin:16px 0 0}
.conf-refus .btn[aria-pressed="true"]{background:var(--or);color:var(--nuit)}
.conf-refus .btn:disabled{opacity:.8;cursor:default}
/* Pages légales (Mentions légales, Confidentialité) : colonne de lecture, titres séparés d'un filet */
.legal-texte{max-width:860px}
.legal-texte>.conf-contact-t:first-child{margin-top:0}
.legal-texte .conf-contact-t{padding-top:24px;border-top:1px solid var(--ligne)}
.legal-texte>.conf-contact-t:first-child{padding-top:0;border-top:0}
.legal-texte .conf-liste a,.legal-texte .conf-contact a{color:var(--or-texte);text-underline-offset:3px}
.legal-maj{margin:36px 0 0;font-size:14px;color:var(--texte-2)}
.legal-maj a{color:var(--or-texte);font-weight:600;text-underline-offset:3px}   /* lien dans la mention : style de lien du site (26/10/2026) */
/* Avis « la version française prévaut » (02/11/2026) : en-tête des pages légales, affiché seulement quand la page est en anglais */
.legal-avis-en{display:none;margin:14px 0 0;font-size:15px;font-style:italic;color:rgba(255,255,255,.82)}
html[lang="en"] .legal-avis-en{display:block}
@media (max-width:600px){.conf-liste{padding-left:18px;font-size:15.5px}.legal-texte .conf-contact-t{padding-top:18px}}

/* ---------- Page « Votre convention d'accréditation » (lien personnel presse ; convention.html, convention.js) ---------- */
.conv{padding-top:calc(var(--header-h) + 34px)}
.conv-c{max-width:880px}
.conv-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.conv-tete .eyebrow{margin:0}
.conv-langue{display:inline-flex;border:1.5px solid var(--ligne);border-radius:999px;overflow:hidden;background:var(--blanc)}
.conv-langue button{font:600 13.5px var(--f-texte);padding:7px 14px;border:0;background:none;color:var(--texte-2);cursor:pointer}
.conv-langue button[aria-pressed="true"]{background:var(--nuit);color:var(--blanc)}
.conv h1{font-size:clamp(38px,5vw,64px);margin:14px 0 14px}
.conv .lead{margin-bottom:26px}
.conv-etat:focus{outline:0}
.conv-msg{background:var(--blanc);border:1px solid var(--ligne);border-left:4px solid var(--or);border-radius:16px;padding:26px 26px 22px}
.conv-msg h2{font-size:clamp(26px,3vw,34px);margin-bottom:10px}
.conv-msg p{color:var(--texte-2);margin:0 0 10px}
.conv-msg a{color:var(--or-texte);font-weight:600}
.conv-form{display:block}
.conv-bloc{background:var(--blanc);border:1px solid var(--ligne)!important;border-radius:18px;padding:24px 26px 8px!important;margin:0 0 18px!important}
.conv-bloc>legend,.conv-legende{display:flex!important;align-items:center;gap:12px;float:left;width:100%;font:800 24px/1.1 var(--f-titre)!important;text-transform:uppercase;margin:0 0 14px!important;color:var(--texte)}
.conv-bloc>legend+*{clear:both}
.conv-n{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--or);color:var(--nuit);font:800 17px var(--f-titre)}
.conv-champs{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.conv-champs .field:last-child{grid-column:1/-1}
.conv-depot{display:flex!important;align-items:center;gap:14px;flex-wrap:wrap;padding:14px;border:1.5px dashed #BDB8AC;border-radius:12px;cursor:pointer;margin:0!important;font-weight:400!important}
.conv-depot:hover{border-color:var(--nuit)}
.conv-depot input{position:absolute;width:1px;height:1px;opacity:0}
.conv-depot:focus-within{outline:2px solid var(--or);outline-offset:3px}
.conv-depot-b{display:inline-flex;padding:10px 16px;border-radius:999px;background:var(--nuit);color:var(--blanc);font:600 14.5px var(--f-texte)}
.conv-depot-n{font-size:14.5px;color:var(--texte-2);overflow-wrap:anywhere}
.conv-apercu-carte{margin-top:12px}
.conv-apercu-carte img{max-width:260px;max-height:170px;border-radius:10px;border:1px solid var(--ligne)}
.conv-pdf{display:inline-grid;place-items:center;width:58px;height:72px;border-radius:8px;background:var(--nuit);color:var(--or);font:800 14px var(--f-texte)}
.conv-trad{background:var(--creme);border-radius:10px;padding:10px 14px;font-size:14px;color:var(--texte);margin:0 0 14px}
.conv-doc{border:1px solid var(--ligne);border-radius:12px;padding:24px clamp(16px,3vw,32px);margin:0 0 18px;background:var(--craie);font-size:15.5px;line-height:1.6}
.conv-doc p{margin:0 0 12px}
.conv-doc h3{font:800 20px/1.2 var(--f-titre);margin:22px 0 8px}
.conv-doc ul{margin:0 0 12px;padding-left:22px}
.conv-doc li{margin:0 0 4px}
.conv-doc .conv-titre{text-align:center;font-weight:700;margin:0 0 4px}
.conv-doc .conv-titre+p:not(.conv-titre){margin-top:16px}
.conv-doc .field{margin:0 0 10px}
.conv-v{background:var(--or-clair);color:var(--texte);border-radius:4px;padding:0 3px}
.conv-v.manque{background:var(--erreur-fond);color:var(--erreur)}
.conv-partie{border-top:1px solid var(--ligne);padding-top:12px;margin-top:16px}
.conv-attente{font-size:14px;color:var(--texte-2);font-style:italic}
.conv-mode{display:inline-flex;gap:6px;margin:4px 0 12px;flex-wrap:wrap}
.conv-mode button{font:600 14px var(--f-texte);padding:8px 14px;border-radius:999px;border:1.5px solid var(--ligne);background:var(--blanc);color:var(--texte);cursor:pointer}
.conv-mode button[aria-selected="true"]{border-color:var(--nuit);background:var(--nuit);color:var(--blanc)}
.conv-pad{position:relative;border:1.5px solid #D6D2C8;border-radius:12px;background:var(--blanc);height:190px}
.conv-pad canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair;border-radius:12px}
.conv-pad-l{position:absolute;left:16px;bottom:14px;font-size:13.5px;color:var(--texte-2);pointer-events:none}
.conv-pad.signe .conv-pad-l{display:none}
.field.is-error .conv-pad{border-color:var(--erreur)}
.conv-effacer{margin-top:8px;font:600 14px var(--f-texte);background:none;border:0;padding:4px 0;color:var(--or-texte);text-decoration:underline;cursor:pointer}
.conv-saisie-ap{font:italic 500 30px/1.2 var(--f-texte);color:var(--nuit);min-height:46px;margin:12px 0 0;padding:6px 4px;border-bottom:1.5px solid #D6D2C8;overflow-wrap:anywhere}
.conv-fait{background:var(--blanc);border:1px solid var(--ligne);border-radius:18px}
.conv-dl{margin:18px 0 10px!important}
.conv-apres{font-size:15px;max-width:560px;margin:0 auto}
@media (max-width:640px){
  .conv{padding-top:calc(var(--header-h-solid) + 24px)}
  .conv-champs{grid-template-columns:1fr}
  .conv-bloc{padding:20px 16px 6px!important}
  .conv-bloc>legend,.conv-legende{font-size:21px!important}
  .conv-pad{height:160px}
  .conv-doc{padding:18px 14px}
}

/* =========================================================
   EN-TÊTES : MODÈLE UNIQUE (23/10/2026, points 28, 29, 31, 33)
   Photo immersive ; petites étoiles sur les zones sombres (haut de la photo ; côté texte) ; voile sombre seulement derrière
   le texte ; ombre douce sur les textes (lisibles même sur un t-shirt blanc) ; personnes jamais sous le texte.
   ========================================================= */
.page-hero-photo>.ciel-svg{z-index:0;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 20%,transparent 40%);mask-image:linear-gradient(180deg,#000 0,#000 20%,transparent 40%)}
.page-hero-photo .page-hero-inner{position:relative;z-index:1}
.page-hero-photo .page-hero-inner .eyebrow,.page-hero-photo .page-hero-inner h1,.page-hero-photo .page-hero-inner .hero-lead{text-shadow:0 2px 18px rgba(14,15,19,.8),0 0 3px rgba(14,15,19,.55)}
.page-hero-photo:not(.page-hero-droite) .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.62) 0%,rgba(14,15,19,0) 18%),radial-gradient(ellipse 60% 60% at 16% 84%,rgba(14,15,19,.86) 0%,rgba(14,15,19,.5) 48%,rgba(14,15,19,0) 80%)}
@media (max-width:820px){
  .page-hero-photo:not(.page-hero-droite) .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.55) 0%,rgba(14,15,19,0) 16%,rgba(14,15,19,0) 44%,rgba(14,15,19,.78) 64%,rgba(14,15,19,.92) 100%)}
}
/* Partenaires (point 29) : photo décalée à gauche, bord droit fondu dans le ciel ; texte à droite, jamais sur la perchiste
   ni sur sa perche ; étoiles en haut (au-dessus du public) et côté texte */
@media (min-width:821px){
  .page-hero-droite .page-hero-ph img{transform:translateX(-15%);-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent 98%);mask-image:linear-gradient(90deg,#000 80%,transparent 98%)}
  .page-hero-droite .page-hero-inner>*{margin-left:calc(56% + 24px)}
  .page-hero-droite .page-hero-inner h1{font-size:clamp(40px,4vw,58px);max-width:9.4em}   /* 4 lignes à toutes les largeurs */
  .page-hero-droite .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.55) 0%,rgba(14,15,19,0) 18%),radial-gradient(ellipse 46% 62% at 80% 56%,rgba(14,15,19,.82) 0%,rgba(14,15,19,.5) 50%,rgba(14,15,19,0) 82%)}
  .page-hero-droite>.ciel-svg{-webkit-mask-image:linear-gradient(90deg,transparent 54%,#000 66%),linear-gradient(180deg,#000 0,#000 16%,transparent 30%);-webkit-mask-composite:source-over;
    mask-image:linear-gradient(90deg,transparent 54%,#000 66%),linear-gradient(180deg,#000 0,#000 16%,transparent 30%);mask-composite:add}
}/* Perchistes (point 33) : photo plus claire, fondu à gauche réduit (public visible), étoiles et texte lisible gardés */
.hero-split-ph img{filter:brightness(1.3) contrast(1.06) saturate(1.06);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12%),linear-gradient(180deg,transparent 0,#000 6%,#000 94%,transparent);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 12%),linear-gradient(180deg,transparent 0,#000 6%,#000 94%,transparent);mask-composite:intersect}
@media (max-width:820px){.hero-split-ph img{-webkit-mask-image:linear-gradient(180deg,#000 82%,transparent);mask-image:linear-gradient(180deg,#000 82%,transparent)}}/* Partenaires, « Nos partenaires 2027 » (présentation B, 23/10/2026) : fond clair ; principaux fixes, soutiens en bandeau
   qui défile ; encarts blancs de même taille, logo centré ; pause au survol, au focus, par le bouton ; moins d'animations :
   grille fixe */
.np-clair .np-tete h2{color:var(--texte)}
.np-clair .np-intro{color:var(--texte-courant)}
.np-clair .mur-collab{color:var(--texte-2)}
.np-leg{margin:0 0 14px;text-align:center;font:700 12px var(--f-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--or-texte)}
.np-princ{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:0 0 34px}
.np-tuile{flex:none;display:flex;align-items:center;justify-content:center;width:220px;height:120px;padding:12px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--ligne),0 14px 30px -24px rgba(14,15,19,.45);transition:transform .25s var(--ease),box-shadow .25s}
.np-tuile img{display:block;object-fit:contain;max-width:100%;max-height:100%}
.np-tuile.np-ample{padding:4px}   /* logo agrandi (partenaires[].echelle > 1 de data.js, 03/11/2026) : marge intérieure réduite */
.np-tuile b{font:800 17px var(--f-titre);text-transform:uppercase;color:var(--nuit);text-align:center}
a.np-tuile:hover{transform:translateY(-3px);box-shadow:0 0 0 2px var(--or),0 18px 34px -24px rgba(14,15,19,.5)}
a.np-tuile:focus-visible{outline:3px solid var(--or-texte);outline-offset:3px}
.np-bande{position:relative;padding-bottom:52px}
.np-fenetre{overflow:hidden;padding:6px 0 10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.np-piste{display:flex;gap:16px;width:max-content;animation:np-glisse var(--duree,60s) linear infinite}
@keyframes np-glisse{to{transform:translateX(calc(-50% - 8px))}}
.np-fenetre:hover .np-piste,.np-fenetre:focus-within .np-piste,.np-bande.en-pause .np-piste{animation-play-state:paused}
.np-pause{position:absolute;right:0;bottom:0;min-height:40px;padding:0 16px;border:1.5px solid var(--ligne);border-radius:999px;background:var(--blanc);color:var(--texte);font:600 13.5px var(--f-texte);cursor:pointer}
.np-pause:hover,.np-pause:focus-visible{border-color:var(--texte)}
@media (prefers-reduced-motion:reduce){
  .np-fenetre{-webkit-mask-image:none;mask-image:none}
  .np-piste{animation:none;width:auto;flex-wrap:wrap;justify-content:center}
  .np-piste .dup,.np-pause{display:none}
  .np-bande{padding-bottom:0}
}
@media (max-width:600px){
  .np-tuile{width:150px;height:84px;padding:8px;border-radius:12px}
  .np-tuile.np-ample{padding:3px}
  .np-princ{gap:10px}
  .np-piste{gap:10px}
  @keyframes np-glisse{to{transform:translateX(calc(-50% - 5px))}}
  .np-pause{right:50%;transform:translateX(50%)}
}
.np-clair .np-grille{display:block}
.np-bande,.np-fenetre{min-width:0;max-width:100%}

/* =========================================================
   FONDU DES EN-TÊTES : RÈGLE COMMUNE (23/10/2026, point 35 ; référence : Partenaires)
   Photo sur toute la largeur ; fondu sombre depuis le côté du texte : dense sur --fondu-dense (environ le premier tiers),
   puis il s'éclaircit et disparaît à --fondu-fin (vers le milieu) ; étoiles sur la partie sombre (et en haut).
   Réglable par page : --fondu-force (0 à 1), --fondu-dense, --fondu-fin, --fondu-sens (90deg : texte à gauche ;
   270deg : texte à droite), cadrage de la photo (object-position). Téléphone : même fondu, depuis le bas (texte en bas).
   ========================================================= */
.page-hero-photo{--fondu-force:.9;--fondu-dense:30%;--fondu-fin:56%;--fondu-sens:90deg}
.page-hero-photo .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.55) 0%,rgba(14,15,19,0) 16%),
  linear-gradient(var(--fondu-sens),rgba(14,15,19,var(--fondu-force)) 0%,rgba(14,15,19,var(--fondu-force)) var(--fondu-dense),rgba(14,15,19,calc(var(--fondu-force) * .45)) calc((var(--fondu-dense) + var(--fondu-fin)) / 2),rgba(14,15,19,0) var(--fondu-fin))!important}
.page-hero-photo>.ciel-svg{z-index:0;
  -webkit-mask-image:linear-gradient(var(--fondu-sens),#000 0%,#000 var(--fondu-dense),transparent var(--fondu-fin)),linear-gradient(180deg,#000 0,#000 12%,transparent 26%)!important;-webkit-mask-composite:source-over!important;
  mask-image:linear-gradient(var(--fondu-sens),#000 0%,#000 var(--fondu-dense),transparent var(--fondu-fin)),linear-gradient(180deg,#000 0,#000 12%,transparent 26%)!important;mask-composite:add!important}
@media (max-width:820px){.page-hero-photo{--fondu-sens:0deg;--fondu-dense:34%;--fondu-fin:62%}}
/* Réglages par page */
.page-hero-droite{--fondu-sens:270deg}                                              /* Partenaires : texte à droite */
.page-hero-perchistes{--fondu-dense:22%;--fondu-fin:50%}                            /* Perchistes : plus de photo visible */
.voile-leger{--fondu-force:.68;--fondu-dense:14%;--fondu-fin:40%}                   /* Bénévoles : photo lumineuse, fondu léger */
.page-hero-perchistes .page-hero-ph img{object-position:50% 40%}
@media (max-width:820px){.page-hero-droite{--fondu-sens:0deg}}
/* Perchistes, téléphone : photo entière en bandeau sous l'en-tête, texte dessous */
@media (max-width:820px){
  .page-hero-perchistes .page-hero-ph{inset:var(--header-h) 0 auto 0;height:auto}
  .page-hero-perchistes .page-hero-ph img{position:static;height:auto;-webkit-mask-image:linear-gradient(180deg,#000 76%,transparent);mask-image:linear-gradient(180deg,#000 76%,transparent)}
  .page-hero-perchistes.page-hero-photo{min-height:0;padding-top:calc(var(--header-h) + 52vw)}
}/* Perchistes : titre sur deux lignes à gauche, photo légèrement décalée à droite : les trois perchistes jamais sous le texte */
@media (min-width:821px){
  .page-hero-perchistes .page-hero-ph img{transform:translateX(9%)}
  .page-hero-perchistes .page-hero-inner h1{font-size:clamp(46px,4.6vw,72px);max-width:6.6em}
  .page-hero-perchistes .page-hero-inner .hero-lead{max-width:430px}
}@media (min-width:821px){
  .page-hero-perchistes .page-hero-ph img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%);mask-image:linear-gradient(90deg,transparent 0,#000 14%)}
}
@media (min-width:1600px){.page-hero-perchistes .page-hero-ph img{transform:translateX(15%)}}@media (min-width:821px) and (max-width:1300px){.page-hero-perchistes .page-hero-ph img{transform:translateX(14%)}}
/* Records : seule la ligne « record égalé » reste, discrète et centrée sous le panneau (23/10/2026) */
.record-tb .tb-notes{text-align:center}
.record-tb .record-egal{margin:10px 0 0!important;font-size:13px;color:var(--texte-2)}
/* Page Direct : « Vivez la soirée aussi sur nos réseaux » (23/10/2026 ; sur cette page seulement) */
.reseaux-direct{margin:30px auto 0;max-width:640px;text-align:center}
.reseaux-t{margin:0 0 14px;font:800 22px/1.1 var(--f-titre);text-transform:uppercase;color:var(--texte)}
.reseaux-liens{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.reseaux-liens a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border:1.5px solid var(--ligne);border-radius:999px;background:var(--blanc);color:var(--texte);font:600 14.5px var(--f-texte);text-decoration:none;transition:border-color .2s}
.reseaux-liens a:hover,.reseaux-liens a:focus-visible{border-color:var(--texte)}
.reseaux-liens svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.reseaux-liens svg .fill{fill:currentColor;stroke:none}/* Direct : message dans le cadre du lecteur (vidéo pas encore prête, lecture refusée) ; bouton Athlé TV (23/10/2026) */
.stage-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}
.stage-message h2{margin:0;font-size:clamp(22px,2.6vw,34px);color:#fff}
.stage-message p{margin:0;max-width:520px;color:var(--texte-inv-2)}
.sl-athletv{display:flex;justify-content:center;margin:14px 0 0}
.sl-athletv[hidden]{display:none}/* Direct, téléphone (23/10/2026) : le contenu d'attente (partenaire, édition, compte à rebours) tient dans le cadre 16:9 */
@media (max-width:600px){
  .stage-cover{padding:10px 12px;gap:0}
  .stage-cover small{font-size:10px}
  .stage-cover .sponsor-big{min-width:0;min-height:0;padding:6px 14px;margin:4px 0 8px;font-size:15px;border-radius:10px}
  .stage-cover .sponsor-big img{max-height:34px}
  .stage-cover h2{font-size:19px;margin:0 0 6px}
  .stage-cover .countdown{gap:6px;margin:0}
  .stage-cover .countdown div{min-width:44px;padding:4px 4px;border-radius:8px;flex:none}
  .stage-cover .countdown b{font-size:18px}
  .stage-cover .countdown span{font-size:8.5px;letter-spacing:.06em}
  .stage-message h2{font-size:18px}
  .stage-message p{font-size:13px}
}/* Fondus réglés le 23/10/2026 (point 37) : Bénévoles et Presse plus marqués ; Notre histoire plus court ; Perchistes un peu
   plus de noir à gauche. Réglage fin : curseurs du sélecteur local (poste seulement), valeurs à reporter ici. */
.voile-leger{--fondu-force:.82;--fondu-dense:20%;--fondu-fin:48%}
.page-hero-presse{--fondu-force:.95;--fondu-dense:36%;--fondu-fin:62%}
.page-hero-perchistes{--fondu-force:.93;--fondu-dense:28%;--fondu-fin:52%}
@media (max-width:820px){.voile-leger,.page-hero-presse,.page-hero-histoire,.page-hero-perchistes{--fondu-dense:34%;--fondu-fin:62%}}/* =========================================================
   RÉGLAGES DES FONDUS PAR PAGE (24/10/2026, points 42 et 43 ; valeurs choisies par Aurore à 1440 px)
   Largeur = --fondu-fin ; zone dense = 60 % de la largeur (--fondu-dense) ; intensité = --fondu-force.
   Valeurs DÉFINITIVES (24/10/2026) ; panneau de réglage retiré ; modifiables ici seulement.
   Téléphone : même intensité, fondu depuis le bas (voir « Fondu des en-têtes »).
   ========================================================= */
.page-hero-droite{--fondu-fin:56%;--fondu-dense:34%;--fondu-force:.9}             /* Partenaires : 56 %, 90 % */
.voile-leger{--fondu-fin:56%;--fondu-dense:34%;--fondu-force:.98}                 /* Bénévoles : 56 %, 98 % */
.page-hero-presse{--fondu-fin:56%;--fondu-dense:34%;--fondu-force:.98}            /* Presse & médias : 56 %, 98 % */
.page-hero-perchistes{--fondu-fin:60%;--fondu-dense:36%;--fondu-force:.9}         /* Perchistes : 60 %, 90 % */
.page-hero-histoire{--fondu-fin:52%;--fondu-dense:31%;--fondu-force:.97}          /* Notre histoire : 52 %, 97 % (24/10/2026) */
@media (max-width:820px){.page-hero-droite,.voile-leger,.page-hero-presse,.page-hero-perchistes,.page-hero-histoire{--fondu-dense:34%;--fondu-fin:62%}}
/* =========================================================
   EN-TÊTES, 24/10/2026
   - Presse & médias (proposition C) et Bénévoles (photo A) : photo sur ordinateur et tablette ; téléphone (600 px et
     moins) : bandeau recadré depuis les originaux en pleine résolution (point 71 f).
   - Presse & médias : intensité du fondu 98 % (point 42 bis), largeur 56 %.
   - Notre histoire : reconstruit comme Partenaires (point 54, plus bas).
   ========================================================= */
.page-hero-presse{--fondu-force:.98}
@media (max-width:600px){   /* 24/10/2026, point 71 f : bandeau photo (originaux recadrés), texte dessous */
  .hero-bandeau-tel .page-hero-ph{inset:var(--header-h) 0 auto 0;height:auto}
  .hero-bandeau-tel .page-hero-ph img{position:static;width:100%;height:auto;-webkit-mask-image:linear-gradient(180deg,#000 74%,transparent);mask-image:linear-gradient(180deg,#000 74%,transparent)}
  .hero-bandeau-tel .page-hero-shade{background:linear-gradient(180deg,rgba(14,15,19,.55) 0%,rgba(14,15,19,0) 14%)!important}
  .page-hero-presse.hero-bandeau-tel.page-hero-photo{min-height:0;display:block;padding:calc(var(--header-h) + 98vw) 0 64px}
  .voile-leger.hero-bandeau-tel.page-hero-photo{min-height:0;display:block;padding:calc(var(--header-h) + 70vw) 0 64px}
  .hero-bandeau-tel.page-hero-photo>.ciel-svg{-webkit-mask-image:linear-gradient(180deg,transparent 0,transparent 55%,#000 72%)!important;mask-image:linear-gradient(180deg,transparent 0,transparent 55%,#000 72%)!important}
}}
/* Notre histoire (24/10/2026, point 54) : reconstruit comme Partenaires : photo pleine largeur en arrière-plan, fondu et
   étoiles du style partagé, aucun réglage propre à l'image ; cadrage par --pos (histoire.html), texte du titre resserré */
.page-hero-histoire .hero-lead{max-width:430px}
/* Bénévoles (24/10/2026, point 34) : photo du formulaire en portrait, cadrée sur le juge ; plus basse au téléphone */
.form-photo-portrait{aspect-ratio:4/5}
.form-photo-portrait img{object-position:50% 30%}
@media (max-width:900px){.form-photo-portrait{aspect-ratio:4/3}.form-photo-portrait img{object-position:50% 42%}}   /* bâche recadrée (71 g) : le nom du meeting au centre */
/* =========================================================
   ENCART COMMUN (24/10/2026, point 49) : cartes « Ils sont intervenus en 2026 » et blocs des directrices (« Une direction
   de haut vol ») : même liseré fin, mêmes coins, même fond, mêmes marges intérieures, déclarés UNE SEULE FOIS ici.
   Directrices : la photo est à l'intérieur de l'encart (coins arrondis), le texte à côté.
   ========================================================= */
.speaker,.team-famille .member{background:var(--blanc);border:1.5px solid rgba(14,15,19,.18);border-radius:16px;padding:22px 20px 24px}
@media (max-width:600px){.speaker,.team-famille .member{padding:16px}}
.team-famille .member{column-gap:18px;overflow:visible}
.team-famille .member-ph{border-radius:10px}
.team-famille .member .member-body{padding:0}
@media (max-width:600px){.team-famille .member{column-gap:14px}}
/* Postes dépliables (24/10/2026, point 50) : nom + flèche ; description ouverte en douceur (hauteur 0 → auto par la grille) ;
   cartes alignées en haut, de hauteur voisine quand tout est replié ; aucun mouvement si « moins d'animations » ;
   modification sur la page (admin) : tout reste ouvert */
.postes{align-items:start}
.postes-cartes{min-height:calc(4 * 47px)}
.poste{padding:0;border-top:1px solid var(--ligne)}
.poste-nom{margin:0}
.poste-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;padding:10px 0;border:0;background:none;color:var(--texte);font:700 15px/1.3 var(--f-texte);text-align:left;cursor:pointer}
.poste-btn::after{content:"";flex:none;width:8px;height:8px;margin-right:4px;border-right:2px solid var(--or-texte);border-bottom:2px solid var(--or-texte);transform:translateY(-2px) rotate(45deg);transition:transform .3s var(--ease)}
.poste:not(.ferme) .poste-btn::after{transform:translateY(2px) rotate(-135deg)}
.poste-btn:hover{color:var(--or-texte)}
.poste-btn:focus-visible{outline:3px solid var(--or);outline-offset:2px;border-radius:6px}
.poste-desc{display:grid;grid-template-rows:1fr;transition:grid-template-rows .32s var(--ease),visibility .32s}
.poste-desc>div{overflow:hidden;min-height:0}
.poste-desc p{padding:0 0 12px}
.poste.ferme .poste-desc{grid-template-rows:0fr;visibility:hidden}
.pae-edition .poste.ferme .poste-desc{grid-template-rows:1fr;visibility:visible}
@media (prefers-reduced-motion:reduce){.poste-desc,.poste-btn::after{transition:none}}
/* Menu, second niveau (24/10/2026, point 52) : sous « Édition 2026 » de Notre histoire, entrées décalées et plus petites ;
   même comportement que les autres (main.js) ; jamais de troisième niveau */
@media (min-width:1304px){.nav-sous .nav-niv2 a{padding:5px 20px 5px 38px;font-size:13px;color:rgba(255,255,255,.7)}.nav-sous .nav-niv2 a::before{left:26px}}
@media (max-width:1303px){.nav-sous .nav-niv2 a{margin-left:16px;padding:7px 0 7px 14px;font-size:14px;color:rgba(255,255,255,.74)}}

/* Date de naissance en trois champs (24/10/2026, point 57) : Jour · Mois · Année côte à côte, aussi au téléphone */
.date-trois{display:grid;grid-template-columns:4.1em minmax(0,1fr) 5.1em;gap:6px}
.form .date-trois select{padding:13px 24px 13px 10px;background-position:calc(100% - 15px) 50%,calc(100% - 9px) 50%}
.form .date-trois input{min-width:0;padding:13px 8px;text-align:center}
/* Page Direct, bas de page (24/10/2026, point 58) : phrase sur le lecteur YouTube juste sous la vidéo, discrète ; réseaux en
   quatre grandes tuiles blanches (icône jaune, nom, compte), soulèvement et liseré jaune au survol et au focus ; 2 × 2 au téléphone */
.sl-note{max-width:820px;margin:10px auto 0;padding:0 16px;text-align:center;font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.5)}
.reseaux-direct{max-width:980px;margin:0 auto}
.reseaux-t{font-size:clamp(26px,2.6vw,34px);margin-bottom:8px}
.reseaux-accroche{margin:0 0 24px;color:var(--texte-courant);font-size:16px}
.reseaux-tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.reseau-tuile{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 14px 22px;border:1.5px solid rgba(14,15,19,.18);border-radius:16px;background:var(--blanc);color:var(--texte);text-decoration:none;transition:transform .25s var(--ease),box-shadow .25s,border-color .25s}
.reseau-tuile svg{width:44px;height:44px;margin-bottom:8px;fill:none;stroke:var(--or);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.reseau-tuile svg .fill{fill:var(--or);stroke:none}
.reseau-tuile b{font:800 22px/1.1 var(--f-titre);text-transform:uppercase;letter-spacing:.01em}
.reseau-compte{font-size:14px;color:var(--texte-2);word-break:break-all;text-align:center}
.reseau-tuile:hover,.reseau-tuile:focus-visible{transform:translateY(-4px);border-color:var(--or);box-shadow:0 0 0 1px var(--or),0 22px 40px -26px rgba(14,15,19,.45);outline:0}
@media (prefers-reduced-motion:reduce){.reseau-tuile{transition:none}.reseau-tuile:hover,.reseau-tuile:focus-visible{transform:none}}
@media (max-width:700px){.reseaux-tuiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reseau-tuile{padding:20px 6px 18px}.reseau-tuile svg{width:38px;height:38px}.reseau-compte{font-size:12px;word-break:normal;overflow-wrap:anywhere}}
/* Perchistes (24/10/2026, point 60 a) : aucun logo de partenaire lisible en grand : cadrage plus haut et zoom de 15 % (maximum
   demandé) ; le tapis bleu « DIMA » sort du cadre, les trois athlètes et leurs têtes restent entiers. La banderole rouge reste
   en partie visible (voir DECISIONS, point 17). Téléphone : bas de la photo recadré. */
@media (min-width:821px){.page-hero-perchistes .page-hero-ph img{object-position:50% 0%;transform-origin:60% 0%;transform:translateX(9%) scale(1.15)}}
@media (min-width:1600px){.page-hero-perchistes .page-hero-ph img{transform:translateX(15%)}}   /* grand écran : cadrage par le haut suffit, sans zoom */
@media (min-width:821px) and (max-width:1300px){.page-hero-perchistes .page-hero-ph img{transform:translateX(14%) scale(1.15)}}
@media (max-width:820px){
  .page-hero-perchistes .page-hero-ph img{height:46vw;object-fit:cover;object-position:50% 8%}
  .page-hero-perchistes.page-hero-photo{padding-top:calc(var(--header-h) + 44vw)}
}
/* Petits titres (24/10/2026, point 69 a) : plus de trait décoratif devant (ni après) ; version B retenue par Aurore (24/10/2026) :
   petit point jaune rond devant le petit titre, majuscules espacées, en ocre. */
.eyebrow::before,.logos-band .eyebrow::after{content:none}
.eyebrow{gap:9px}
.eyebrow::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--or)}   /* version B choisie le 24/10/2026 */
.eyebrow-light::before{background:var(--or)}
/* Partenaires, « Nos partenaires 2027 » (24/10/2026, points 68 et 69 c) : titres de catégories plus grands, centrés, en ocre,
   sans trait ni ornement ; les deux catégories séparées par une fine ligne horizontale et plus d'espace */
.np-leg{margin:0 0 22px;font:700 15px/1.25 var(--f-texte);letter-spacing:.16em}
.np-princ{margin-bottom:0}
.np-princ+.np-leg{margin-top:44px;padding-top:0;border-top:0}
/* Séparation des deux catégories (24/10/2026, point 74) : trait court en ocre, épais au centre, qui s'affine vers les bouts */
.np-princ+.np-leg::before{content:"";display:block;width:55%;height:5px;margin:0 auto 38px;border-radius:50%;background:linear-gradient(90deg,transparent 0%,var(--or-texte) 22%,var(--or) 50%,var(--or-texte) 78%,transparent 100%)}   /* environ la moitié du contenu, affiné jusqu'aux extrémités (point 74 revu) */
@media (max-width:600px){.np-princ+.np-leg::before{width:60%;height:4px}}
@media (max-width:600px){.np-leg{font-size:13.5px;margin-bottom:16px}.np-princ+.np-leg{margin-top:32px;padding-top:28px}}
/* Partenaires, offres « Faites le grand saut » (24/10/2026, point 59) : au survol et au focus clavier (focus-within), léger
   soulèvement, liseré jaune, ombre douce ; lien « Voir tous les avantages » souligné (ocre lisible sur fond blanc : le jaune vif
   n'est jamais utilisé pour un texte sur fond clair). « Recommandé » garde sa bordure noire, le liseré jaune s'ajoute autour.
   Aucun mouvement si « moins d'animations ». */
.niveaux .niv,.naming{transition:transform .25s var(--ease),box-shadow .25s,border-color .25s,opacity .8s var(--ease)}
.niveaux .niv:hover,.niveaux .niv:focus-within{transform:translateY(-4px);border-color:var(--or);box-shadow:0 0 0 1px var(--or),0 22px 40px -26px rgba(14,15,19,.4)}
.niveaux .niv-reco:hover,.niveaux .niv-reco:focus-within{border-color:var(--nuit);box-shadow:0 0 0 3px var(--or),0 26px 50px -30px rgba(14,15,19,.55)}
.niveaux .niv:hover .niv-plus button,.niveaux .niv:focus-within .niv-plus button{text-decoration:underline;text-underline-offset:3px}
.naming:hover,.naming:focus-within{transform:translateY(-4px);box-shadow:0 0 0 2px var(--or),0 22px 44px -26px rgba(14,15,19,.6)}
@media (prefers-reduced-motion:reduce){.niveaux .niv:hover,.niveaux .niv:focus-within,.naming:hover,.naming:focus-within{transform:none}}
/* Bande des partenaires (24/10/2026, point 62) : l'étiquette jaune (nom, catégorie, « Visiter le site ») s'affiche SOUS la carte,
   dans une place réservée, à la largeur de la carte (retour à la ligne si besoin) : jamais coupée par le bord de la bande ;
   au téléphone, premier toucher (classe montre) */
/* Point 76 (24/10/2026) : logos ramenés près de la barre du bas, étiquette AU-DESSUS de la carte, dans l'espace sous le titre
   (place réservée : jamais coupée) */
.mur-runway,.mur-compact .mur-runway{padding-top:84px;padding-bottom:14px}
.mur-tip{top:auto;bottom:calc(100% + 12px);left:50%;right:auto;width:max-content;max-width:min(300px,86vw);transform:translate(-50%,6px);white-space:normal}
.mur-logo:hover .mur-tip,.mur-logo:focus-visible .mur-tip,.mur-logo.montre .mur-tip{opacity:1;transform:translate(-50%,0)}
.mur-logo.montre .logo-duo{background:#fff;transform:translateY(-6px);box-shadow:0 0 0 2px var(--or),0 0 40px rgba(242,194,48,.55)}
.mur-logo.montre .m{opacity:0}.mur-logo.montre .c{opacity:1}
.mur-track:has(.montre){animation-play-state:paused}
/* Accueil, bande compacte (24/10/2026) : écart entre les logos proportionnel à l'écran ; ordinateur inchangé (carte 304 px,
   écart visible environ 160 px) ; tablette : environ la moitié ; téléphone : 2 à 3 logos visibles à la fois */
/* 25/10/2026 (retour du Club) : logos nettement plus grands ; écart visible recalculé (environ 110 px ordinateur, 55 px tablette,
   15 px téléphone) ; marges de la piste = moitié de l'écart : boucle sans saut */
.mur-compact .mur-logo{width:330px;height:172px}
@media (max-width:1100px){.mur-compact .mur-logo{width:250px;height:150px}.mur-compact .mur-track{gap:12px;padding:0 6px}}
@media (max-width:600px){.mur-compact .mur-logo{width:152px;height:104px}.mur-compact .mur-track{gap:6px;padding:0 3px}}
@media (max-width:600px){.mur-runway,.mur-compact .mur-runway{padding-top:78px;padding-bottom:12px}.mur-tip{font-size:12.5px;padding:7px 10px}.mur-tip em{font-size:11.5px}}
/* Lien « ← Retour » (24/10/2026, point 61) : discret, en haut de la section d'arrivée ; affiché seulement en venant d'une autre
   page du site par un lien du contenu (main.js) */
.lien-retour{margin:0 0 14px;font:600 14px/1.3 var(--f-texte)}
.lien-retour a{color:var(--texte-2);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.lien-retour a:hover,.lien-retour a:focus-visible{color:var(--texte);border-bottom-color:currentColor}
.lien-retour-clair a{color:var(--texte-inv-2)}
.lien-retour-clair a:hover,.lien-retour-clair a:focus-visible{color:#fff}
/* Mot clé des titres de section (24/10/2026, point 67, essai sur 3 titres) : un seul mot ou groupe par titre (<em> du texte
   modifiable) ; fond clair : le mot reste noir, fin contour jaune autour des lettres (grands titres en gras seulement) ;
   fond sombre : le mot en jaune */
h2 em{font-style:normal}
.section h2 em{font-style:normal;color:inherit;-webkit-text-stroke:3px var(--or);paint-order:stroke fill}
.section-dark h2 em,.fond-sombre h2 em,.mur-band h2 em{color:var(--or);-webkit-text-stroke:0}
.section-dark.fond-auto h2 em,.mur-band.fond-auto h2 em{color:inherit;-webkit-text-stroke:3px var(--or)}   /* sombre repassée en clair */
.section-or h2 em{color:inherit;-webkit-text-stroke:0}   /* section jaune : contour jaune invisible, mot laissé tel quel */
@media (max-width:600px){.section h2 em{-webkit-text-stroke-width:2.4px}}
.section-head .lead+.lead{margin-top:10px}   /* deux phrases d'introduction (Bénévoles, galerie de l'équipe, 24/10/2026) */
/* Titres des 4 formulaires (24/10/2026, version B choisie par Aurore) : mot clé en jaune pur, sans contour ; reste du titre en
   noir. Choix assumé malgré un contraste inférieur aux recommandations d'accessibilité (DECISIONS.md) : seule exception à
   la règle « --or jamais pour du texte sur fond clair » */
h2[data-texte="athletes.inscription.titre"] em,h2[data-texte="partenaires.formulaire.titre"] em,
h2[data-texte="presse.accreditation.titre"] em,h2[data-texte="benevoles.inscription.titre"] em{color:var(--or);-webkit-text-stroke:0}
/* Point 47, étape 2 (24/10/2026) : sections du menu resserrées (propositions validées par Aurore) */
@media (min-width:901px){
  /* Les éditions : affiches un peu plus petites (rail) ; titres de section plus proches du contenu */
  #editions .ep{flex-basis:180px}
  #editions .section-head,#records .section-head,#hospitalite .section-head{margin-bottom:28px}
  /* Records : panneaux un peu moins hauts */
  #records .tb-ecran{padding:14px 20px 12px}
  #records .tb-drapeau{top:14px;right:20px}   /* drapeau : même marge que le texte du panneau resserré */
}
/* =========================================================
   POINT 18 (25/10/2026) · HIÉRARCHIE DES TITRES, échelle commune à tout le site
   1. titre de section (h2) : inchangé, clamp(40px, 5.4vw, 68px) ;
   2. sous-titre de section (ex. « Une direction de haut vol », « Ils sont intervenus en 2026 ») : --t-sous, environ 1,5 fois
      le titre de carte ;
   3. titre de carte (directrices, intervenants, piliers, offres, packs, espace presse, familles de bénévoles, panneaux des
      records) : --t-carte, un peu plus petit qu'avant ;
   4. texte courant. Les éléments d'une carte (postes des familles de bénévoles) restent en dessous du titre de carte.
   Liste des endroits : DECISIONS.md, point 40. Inventaire : _sources/verif-titres/inventaire.mjs.
   ========================================================= */
:root{--t-sous:clamp(28px,2.4vw,34px);--t-carte:clamp(19px,1.6vw,23px)}
.famille-portraits-t,main .mini-title{font-size:var(--t-sous)}
main .timeline-box .mini-title{font-size:var(--t-carte)}
main .pillar h3,main .pack-mini h3,main .pilier h3,main .niv h3,main .naming h3,main .format h3,main .presse-card h3,
main .poste-famille h3,main .tb-titre,main .speaker b,main .team-famille .member-body h3{font-size:var(--t-carte)}
/* POINT 24 (26/10/2026) · champs de hauteur (perche) : « m » à droite du champ, écrit dans la page (perchistes.html) */
.champ-unite{position:relative;display:block}
.form .champ-unite input{padding-right:42px}
.champ-unite .unite{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--texte-2);font:600 16px var(--f-texte);pointer-events:none}
/* POINT 12 b (26/10/2026) · blocs des formulaires nettement séparés (« Vous, l'entraîneur », « Athlète 1, 2… », « Votre
   entraîneur », « Représentant légal », bloc photographe / vidéaste) : contour de 2 px plus foncé, titre plus grand, plus
   d'espace dedans et entre les blocs */
.form fieldset.bloc-form{border:2px solid #A79F90;padding:24px 22px 8px;margin:0 0 36px}
.form .bloc-form>legend{font-size:23px;padding:6px 14px;margin:0 0 12px -6px}
.form fieldset.bloc-form.est-plie{padding:12px 18px}
.fieldset-legal,.bloc-cond{border-width:2px!important;padding:22px 20px 6px!important}
@media (max-width:600px){
  .form fieldset.bloc-form{padding:20px 14px 6px;margin-bottom:30px}
  .form .bloc-form>legend{font-size:21px}
  .fieldset-legal,.bloc-cond{padding:18px 14px 4px!important}
}
/* ---------- Cibles tactiles (27/10/2026, recette outils/tests/cibles-test.mjs) ----------
   Chaque lien ou bouton isolé mesure au moins 24 × 24 px ; au téléphone, boutons principaux de 44 px au moins.
   Zone agrandie par la marge intérieure, sans changer la place du texte (marge extérieure négative quand il le faut). */
.site-footer .footer-credit a{min-height:24px;padding:5px 0}
.lien-postes,.yt-ext,.sl-presente .sponsor-appel,.stage-alt a,.presse-mail,a[href^="mailto:"]{display:inline-flex;align-items:center;min-height:24px}
.sl-piste a{min-height:24px}
.hero-pause{min-height:44px}
@media (max-width:600px){
  .btn,.don-encart .btn{min-height:44px}
  .sl-pe{min-height:44px;min-width:44px;padding:0 12px;justify-content:center}
}

/* =========================================================
   NOTRE HISTOIRE, STRUCTURE DU CLUB (planche Y5 validée le 31/10/2026, DECISIONS point 75 ; notre-histoire.js)
   1 Une histoire de famille (jeu des 7 familles) · 2 Création et évolution du meeting, Nos valeurs · 3 Les éditions ·
   4 Légendes et records · 5 Galeries photos. Texte du Club : paragraphes courts, gras, une phrase en doré au plus par partie.
   ========================================================= */
.h-texte p{margin:0 0 12px;font-size:17px;line-height:1.65;max-width:62ch}
.h-texte b{font-weight:700;color:var(--texte)}
.h-texte p.exergue{margin:6px 0 18px;max-width:none;font:700 clamp(24px,2.3vw,32px)/1.14 var(--f-titre)}
.h-sous-titre{margin:clamp(40px,5vw,60px) 0 20px;font:800 clamp(24px,2.4vw,30px)/1.05 var(--f-titre);text-transform:uppercase;letter-spacing:.01em}

/* ---------- 1 · Jeu des 7 familles : Homo / Vigneron = carte blanche, encarts jaunes ; Ribeiro = carte jaune clair (n° 1,
   choix du 31/10/2026), encarts blancs ---------- */
.fam-cartes{--fc:#F2C230;--fc-txt:#0E0F13;--fc-bord:#C99A12;--fc-fond:var(--blanc);--fc-cadre:var(--blanc)}
.fam-cartes[data-famille="rb"]{--fc:#FFFFFF;--fc-fond:#FBEFC7;--fc-cadre:#FBEFC7;--fc-bord:#D9B54A}
.fam-tete{max-width:760px;margin:0 0 8px}
.fam-tete .lead{margin-top:14px}
.fam-tete b{font-weight:700;color:var(--texte)}
.fam-t{display:flex;align-items:center;gap:14px;margin:20px 0 10px;font:800 clamp(22px,2vw,26px)/1.05 var(--f-titre);letter-spacing:.01em;text-transform:uppercase;color:var(--texte)}
.fam-t::after{content:"";flex:1;height:1.5px;background:rgba(14,15,19,.14)}
/* Air entre chaque titre et ses cartes, et entre les deux familles (31/10/2026, demande d'Aurore) : même ajout dans les trois
   intervalles, seulement s'il reste de la place pour voir les deux familles en entier sans défiler : 40 px à 900 px de haut
   (1440 × 900 : section visible en entier), 0 sous 780 px (1366 × 768 : espacement inchangé) */
@media (min-width:701px){
  .fam-t{--fam-air:clamp(0px, calc((100vh - 780px) / 3), 40px);margin-bottom:calc(10px + var(--fam-air))}
  .fam-t ~ .fam-t{margin-top:calc(20px + var(--fam-air))}
}
/* Cartes réduites (retour du Club du 31/10/2026, ordre de grandeur de la 1re version compacte, Y4) : 180 × 252 px, centrées ;
   à 1440 px : 6 cartes sur une ligne ; de 701 à 1279 px : 4 par ligne. Le verso se lit dans la carte agrandie (.fam-loupe, plus bas) */
.fam-cartes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.fam-cartes>li{position:relative;width:180px}
@media (min-width:701px) and (max-width:1279px){.fam-cartes:not(.fam-loupe){max-width:762px;margin-left:auto;margin-right:auto}}   /* 4 par ligne (jamais 5 + 1) */
.fam-cartes.en-donne{pointer-events:none}
.fam-carte{display:block;width:100%;height:100%;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:center;cursor:pointer;perspective:1400px}
.fam-carte:focus-visible{outline:3px solid var(--or-texte);outline-offset:4px;border-radius:13px}
/* Sans JavaScript : recto puis verso, l'un sous l'autre ; avec : les deux faces dans la même cellule, retournée au clic */
.fam-inner{display:grid;gap:8px;height:100%}
.fam-js .fam-inner{gap:0;transition:transform .6s var(--ease);transform-style:preserve-3d}
.fam-js .fam-carte[aria-pressed="true"] .fam-inner{transform:rotateY(180deg)}
.fam-face{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;aspect-ratio:5/7;overflow:hidden;padding:9px 10px 10px;border-radius:13px;background:var(--fc-fond);border:2.5px solid var(--fc-bord);box-shadow:inset 0 0 0 4px var(--fc-cadre),inset 0 0 0 5.5px var(--fc-bord),0 10px 24px -14px rgba(14,15,19,.45)}
.fam-js .fam-face{grid-area:1/1;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.fam-js .fam-verso{transform:rotateY(180deg)}
.fam-carte:hover .fam-recto{box-shadow:inset 0 0 0 4px var(--fc-cadre),inset 0 0 0 5.5px var(--fc-bord),0 16px 30px -14px rgba(14,15,19,.55)}
.fam-famille{width:100%;padding:5px 4px 6px;border-radius:9px 9px 4px 4px;background:var(--fc);color:var(--fc-txt);font:800 11px/1.1 var(--f-titre);letter-spacing:.05em;text-transform:uppercase;text-align:center}
.fam-cartes[data-famille="rb"] .fam-recto .fam-famille{box-shadow:0 0 0 1.5px rgba(14,15,19,.12)}
/* Recto : bandeau en haut, « Retourner » en bas ; rôle, portrait, prénom et surnom répartis entre les deux, écarts égaux ;
   mêmes positions d'une carte à l'autre (place du rôle gardée quand il est vide, surnom sur 2 lignes réservées) */
.fam-role{display:block;min-height:1.05em;margin-top:auto;font:800 16px/1.05 var(--f-titre);letter-spacing:.01em;text-transform:uppercase;color:var(--or-texte)}
.fam-cartes[data-famille="rb"] .fam-role{color:var(--nuit)}
.fam-ph{position:relative;flex:none;display:block;width:min(100px,56%);aspect-ratio:1;margin-top:auto;border-radius:50%;overflow:hidden;background:var(--creme);box-shadow:0 0 0 3px var(--blanc),0 0 0 5px var(--fc-bord)}
.fam-cartes[data-famille="rb"] .fam-ph{box-shadow:0 0 0 3px var(--fc-cadre),0 0 0 6px #fff}
.fam-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.fam-ini{display:grid;place-items:center;background:var(--nuit);color:var(--or);font:800 28px/1 var(--f-titre)}
.fam-recto .fam-prenom{margin-top:auto;font:800 21px/1 var(--f-titre);letter-spacing:.01em;text-transform:uppercase;color:var(--texte)}
/* Surnom (choix A du 31/10/2026) : un peu plus grand, en italique, entre guillemets ; le prénom reste le plus visible */
.fam-surnom{display:block;min-height:2.5em;margin-top:5px;font-size:13px;font-style:italic;font-weight:500;line-height:1.25;color:var(--texte)}
.fam-surnom::before{content:"«\00a0"}
.fam-surnom::after{content:"\00a0»"}
.fam-tourner{margin-top:auto;font:700 10px/1 var(--f-texte);letter-spacing:.06em;text-transform:uppercase;color:var(--or-texte)}
.fam-cartes[data-famille="rb"] .fam-recto .fam-tourner{color:var(--nuit)}
.fam-recto .fam-tourner{margin-bottom:6px}
/* Verso (les deux familles) : fond noir étoilé (étoiles discrètes posées par notre-histoire.js, jamais derrière un texte) ;
   prénom en haut, texte centré verticalement dans l'espace restant, mots importants en gras jaune */
.fam-verso{isolation:isolate;justify-content:flex-start;text-align:left;background:var(--nuit);border-color:var(--nuit);box-shadow:inset 0 0 0 4px var(--nuit),inset 0 0 0 5.5px rgba(242,194,48,.6),0 10px 24px -14px rgba(14,15,19,.45)}
.fam-verso .fam-famille{padding:4px 4px 5px;font-size:10px;background:var(--or);color:var(--nuit)}
.fam-cartes[data-famille="rb"] .fam-verso .fam-famille{background:#fff}
.fam-verso .fam-prenom{margin-top:6px;font:800 17px/1 var(--f-titre);letter-spacing:.01em;text-transform:uppercase;color:#fff;text-align:center}
.fam-txt{display:block;width:100%;margin:auto 0;font-size:13px;line-height:1.3;color:rgba(255,255,255,.88)}
.fam-js .fam-txt{padding:0 6px;text-wrap:pretty}   /* recette du 31/10/2026 : même marge à gauche et à droite du filet doré */
.fam-txt b{font-weight:700;color:var(--or)}
.fam-verso .fam-tourner{align-self:center;margin-top:0;color:var(--or)}
.fam-ciel{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;overflow:hidden}
@media (prefers-reduced-motion:reduce){.fam-js .fam-inner{transition:none}}
/* Sans JavaScript et modification sur la page (admin) : verso à la hauteur de son texte (carte réduite) */
.fam-cartes:not(.fam-js) .fam-verso,.pae-edition .fam-verso{aspect-ratio:auto;min-height:252px}
/* Carte agrandie (au-dessus de 700 px) : retournée, elle vient au centre de l'écran, comme une carte prise en main
   (notre-histoire.js) ; le fond sombre ferme au clic ; texte du verso de 16 px. « Moins d'animations » : affichage direct */
.fam-cartes.fam-loupe{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;margin:0;padding:16px;gap:0;background:rgba(14,15,19,.74);animation:fam-voile .3s ease both}
.fam-loupe.ferme{animation:fam-voile .3s ease reverse both}
@keyframes fam-voile{from{background:rgba(14,15,19,0)}}
.fam-loupe .fam-carte{--gw:min(360px,88vw,calc((100vh - 96px) / 1.4));width:var(--gw);height:calc(var(--gw) * 1.4);cursor:zoom-out}
.fam-loupe .fam-face{padding:14px 18px 16px;border-radius:18px}
.fam-loupe .fam-famille{padding:7px 6px 8px;font-size:14px}
.fam-loupe .fam-role{font-size:24px}
.fam-loupe .fam-ph{width:56%}
.fam-loupe .fam-recto .fam-prenom{font-size:34px}
.fam-loupe .fam-surnom{font-size:18px}
.fam-loupe .fam-verso .fam-prenom{margin-top:10px;font-size:26px}
.fam-loupe .fam-txt{padding:0 10px;font-size:16px;line-height:1.5}
.fam-loupe .fam-tourner{font-size:13px}
@media (prefers-reduced-motion:reduce){.fam-cartes.fam-loupe,.fam-loupe.ferme{animation:none}}
/* Téléphone : un carrousel par famille (jamais de cartes empilées), flèches et compteur dessous */
.fc-nav{display:none}
@media (max-width:700px){
  .fam-js.fam-cartes{flex-wrap:nowrap;justify-content:flex-start;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 9% 14px;margin:0 -16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .fam-js.fam-cartes::-webkit-scrollbar{display:none}
  .fam-js.fam-cartes>li{flex:0 0 82%;width:auto;scroll-snap-align:center}
  .fam-cartes:not(.fam-js)>li{width:100%;max-width:340px}
  .fc-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:4px}
  .fc-nav .car-btn{position:static;transform:none;width:44px;height:44px}
  .fc-nav .car-btn:disabled{opacity:.35}
  .fc-compte{margin:0;min-width:56px;text-align:center;font:700 14px var(--f-texte)}
  .fam-surnom{font-size:16px}
  .fam-role{font-size:18px}
  .fam-recto .fam-prenom{font-size:24px}
}
/* Une famille bien au-delà des liens du sang */
.fam-sang{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(20px,4vw,56px);margin-top:clamp(40px,5vw,64px);padding-top:clamp(28px,4vw,40px);border-top:1.5px solid rgba(14,15,19,.14)}
.fam-sang h3{margin:0;font:800 clamp(28px,3vw,40px)/1.02 var(--f-titre);text-transform:uppercase;letter-spacing:.005em}
@media (max-width:800px){.fam-sang{grid-template-columns:1fr}}
/* Modification sur la page (admin) : recto et verso côte à côte dans la carte, tout est cliquable */
.pae-edition .fam-inner{transform:none!important;gap:8px}
.pae-edition .fam-face{grid-area:auto;transform:none;backface-visibility:visible;-webkit-backface-visibility:visible}

/* ---------- 2 · Création et évolution : une colonne de lecture (environ 90 caractères), frise des lieux en 3 colonnes,
   conclusion en doré, photo 2024 entière en couverture de la vidéo BFM ---------- */
/* « De la passion au partage » : une seule colonne plus large (environ 90 caractères), centrée sur la frise (version B,
   choisie le 31/10/2026) ; la phrase en doré et les paragraphes prennent toute sa largeur */
.h-col{max-width:840px;margin:0 auto}
.h-col .section-head{max-width:none}
.h-col .h-texte p{max-width:none}
.ev-trois{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px);align-items:start}
.ev-trois>li{padding-top:14px;border-top:2px solid var(--or)}
.ev-trois.h-texte p{margin:0;font-size:16px;line-height:1.6}
.ev-trois.h-texte p.ev-annee{font:800 clamp(40px,3.6vw,52px)/1 var(--f-titre);color:var(--or-texte)}
.ev-trois.h-texte p.ev-lieu{margin:6px 0 12px;font:800 20px/1.1 var(--f-titre);text-transform:uppercase;letter-spacing:.01em;color:var(--texte)}
@media (max-width:760px){.ev-trois{grid-template-columns:1fr;gap:22px}}
.exergue.ev-conclusion{max-width:none;margin:clamp(30px,4vw,44px) auto 0;padding:0;border-left:0;text-align:center;font-size:clamp(24px,2.3vw,32px);line-height:1.14}
.ev-couv{display:flex;flex-direction:column;align-items:center;width:fit-content;max-width:100%;margin:clamp(30px,4vw,44px) auto 0;color:var(--texte);text-decoration:none}
.ev-couv-img{position:relative;display:block;width:min(400px,100%);border-radius:14px;overflow:hidden;box-shadow:0 14px 34px -18px rgba(0,0,0,.45)}
.ev-couv-img img{display:block;width:100%;height:auto}
.ev-play{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:var(--or);transition:transform .2s}
.ev-play::after{content:"";position:absolute;left:28px;top:22px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--nuit)}
.ev-couv:hover .ev-play,.ev-couv:focus-visible .ev-play{transform:scale(1.08)}
.ev-couv:focus-visible{outline:3px solid var(--or-texte);outline-offset:4px;border-radius:14px}
.ev-couv-titre{display:block;margin-top:12px;font-weight:700;font-size:15px;line-height:1.4;text-align:center;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--or)}
@media (prefers-reduced-motion:reduce){.ev-play{transition:none}}

/* ---------- 2 bis · Nos valeurs : 5 tuiles de même taille, un panneau ouvert à la fois (pleine largeur sous les tuiles) ;
   téléphone : accordéon ; sans JavaScript : tous les panneaux ouverts ---------- */
.val{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-top:clamp(20px,3vw,32px)}
.val-tuile{order:var(--o);display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:100%;padding:18px 16px 14px;border-radius:14px;border:1.5px solid rgba(14,15,19,.16);background:var(--blanc);font:inherit;color:var(--texte);text-align:left;cursor:pointer;transition:border-color .2s}
.val-tuile:hover,.val-tuile:focus-visible{border-color:var(--or-texte)}
.val-tuile[aria-expanded="true"]{border-color:var(--or-texte);box-shadow:inset 0 -4px 0 var(--or)}
.val-n{font:800 20px/1 var(--f-titre);color:var(--or-texte)}
.val-t{font:800 19px/1.08 var(--f-titre);text-transform:uppercase;letter-spacing:.01em}
.val-cle{font-size:14px;line-height:1.45;color:var(--texte-courant)}
.val-plus{margin-top:auto;padding-top:6px;font:700 12px var(--f-texte);letter-spacing:.06em;text-transform:uppercase;color:var(--or-texte)}
.val-plus::after{content:" ▾"}
.val-tuile[aria-expanded="true"] .val-plus::after{content:" ▴"}
.val-panneau{grid-column:1/-1;order:var(--o);padding:24px clamp(18px,3vw,32px);border-radius:16px;background:var(--blanc);border:1.5px solid rgba(14,15,19,.12)}
.val-js .val-panneau{order:20;display:none}
.val-js .val-panneau.ouvert{display:block}
.pae-edition .val-js .val-panneau{display:block}
.val-titre{margin:0 0 12px;font:800 clamp(22px,2.2vw,28px)/1.08 var(--f-titre);text-transform:uppercase}
.val-texte p{max-width:78ch}
.val-pied{margin:16px 0 0;text-align:right}
.val:not(.val-js) .val-pied{display:none}
.val-fermer{min-height:40px;padding:6px 16px;border:1.5px solid var(--texte);border-radius:10px;background:var(--blanc);font:700 14px var(--f-texte);color:var(--texte);cursor:pointer}
.val-fermer:hover,.val-fermer:focus-visible{background:var(--texte);color:var(--blanc)}
.val-panneau .medias{max-width:640px;margin-top:14px;padding:10px 14px;border-radius:12px;border:1.5px solid rgba(14,15,19,.14);background:var(--blanc)}
.medias h4{margin:0 0 10px;font:700 12.5px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--or-texte)}
.medias ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.medias li{font-size:13.5px;line-height:1.45}
.medias a{color:var(--texte);font-weight:700;text-underline-offset:3px}
.medias small{display:block;color:var(--texte-2);font-size:13px}
@media (max-width:900px){.val{grid-template-columns:1fr 1fr}.val-js .val-panneau{order:var(--o)}}
/* Téléphone (recette du 31/10/2026) : tuile = numéro et titre seuls ; ouverte, le texte complet dessous, sans la phrase clé ni
   le titre répétés (tous deux déjà dans la tuile ou dans le texte) */
@media (max-width:600px){.val{grid-template-columns:1fr;gap:10px}.val-tuile{min-height:0}.val-js .val-cle,.val-js .val-titre{display:none}}
.val-fin{margin:clamp(44px,6vw,72px) auto 0;max-width:820px;text-align:center}
.val-fin p{margin:0;font:800 clamp(26px,2.8vw,38px)/1.12 var(--f-titre);color:var(--texte)}
.val-fin p+p{margin-top:12px}
/* La place des femmes : les 3 directrices sous le texte, en ligne, sur fond crème (cartes « personne » : style commun plus bas) */
.val-directrices{margin-top:18px;padding:16px;border-radius:16px;background:var(--creme)}
.val-directrices .team-famille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0}
.val-directrices .team-famille .member{display:grid;grid-template-columns:88px 1fr;column-gap:14px;align-items:center;padding:12px;border-radius:14px}
.val-directrices .team-famille .member-ph{min-height:0;aspect-ratio:1;border-radius:50%;overflow:hidden}
.val-directrices .team-famille .member-ph::after{display:none}
.val-directrices .team-famille .member-ph img{width:100%;height:100%;object-fit:cover}
.val-directrices .team-famille .member-body h3{font-size:19px;margin:0 0 3px}
.val-directrices .team-famille .member-legende{font-size:13px;line-height:1.35}
.val-directrices .team-famille .member .fiche{margin-top:5px;font-size:12.5px}
@media (max-width:900px){.val-directrices .team-famille{grid-template-columns:1fr}}

/* ---------- 5 · Galeries photos : section sombre étoilée, 2 tuiles (film, photos 2026) ---------- */
#galeries h2{color:#fff}
#galeries .i26-tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}
#galeries .container{position:relative;z-index:1}
#galeries .i26-pied[hidden]{display:none}
#galeries.fond-auto h2{color:var(--texte)}   /* repassée en clair (sections.js) : teinte donnée par .fond-auto */
#galeries.fond-auto .eyebrow-gold{color:var(--or-texte)}
@media (max-width:700px){#galeries .i26-tuiles{grid-template-columns:1fr}}
/* Recette du 31/10/2026 : au téléphone, bouton de lecture au centre de l'écran et boutons de la frise centrés */
@media (max-width:700px){
  #galeries .vignette-play{right:auto;bottom:auto;left:50%;top:50%;transform:translate(-50%,-50%)}
  #editions .rail-nav{width:100%;justify-content:center}
}

/* ---------- « Écran plat » (31/10/2026, version B choisie par Aurore) : contour fin d'un téléviseur moderne, SANS pied, autour
   de la vidéo : bord sombre arrondi, reflet discret sur l'arête, bas un peu plus épais avec un petit témoin lumineux doré.
   Notre histoire › Galeries photos (les deux tuiles, crème, identiques), page Direct (lecteur ; retiré en plein écran),
   accueil (photo de l'annonce du direct). Dessiné en CSS, aucune image. ---------- */
.tv{position:relative;padding:8px 8px 16px;border-radius:16px;background:linear-gradient(160deg,#2A2C33 0%,#121317 38%,#0B0C0F 100%);
  box-shadow:0 0 0 1px rgba(255,255,255,.06) inset,0 0 0 1px #050608,0 24px 50px -26px rgba(14,15,19,.6)}
.tv::after{content:"";position:absolute;left:50%;bottom:6px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--or);box-shadow:0 0 6px rgba(242,194,48,.8);pointer-events:none}
.salon .tv{box-shadow:0 0 0 1px rgba(255,255,255,.16),0 0 0 1px rgba(255,255,255,.06) inset,0 30px 60px -30px rgba(0,0,0,.9)}   /* sur fond sombre : arête claire discrète */
@media (max-width:600px){.tv{padding:5px 5px 11px;border-radius:12px}.tv::after{bottom:4px;width:3px;height:3px}}
/* Galeries photos : deux tuiles crème identiques (même taille, même hauteur), marge crème fine, écran presque toute la tuile */
#galeries .i26-tuile{background:var(--creme);color:var(--texte);border:1px solid rgba(255,255,255,.14)}
#galeries .i26-visuel.tv{margin:12px 12px 0;border:0;overflow:visible;aspect-ratio:auto}
#galeries .i26-visuel.tv>img,#galeries .i26-visuel.tv .replay-video{position:relative;inset:auto;display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:6px;overflow:hidden}
#galeries .i26-leg{padding:12px 16px 16px}
#galeries .i26-leg b{color:var(--texte)}
#galeries .i26-leg>span{color:var(--texte-2)}
#galeries .i26-leg .i26-lien{color:var(--or-texte)}
#galeries .i26-alt a{color:var(--texte-2)}
@media (max-width:600px){#galeries .i26-visuel.tv{margin:8px 8px 0}#galeries .i26-leg{padding:10px 12px 14px}}
/* Direct : le lecteur dans l'écran (l'onglet « Présenté par » reste accroché en haut à gauche) ; plein écran et « grand écran » : sans cadre */
.sl-lecteur.tv{border-top-left-radius:0}
.sl-lecteur.tv .stage{border-radius:6px}
.salon-bloc.plein .sl-lecteur.tv,.salon-bloc.ecran .sl-lecteur.tv{padding:0;background:none;box-shadow:none;border-radius:0}
.salon-bloc.plein .sl-lecteur.tv::after,.salon-bloc.ecran .sl-lecteur.tv::after{display:none}
.salon-bloc.plein .sl-lecteur.tv .stage{border-radius:0}
/* Accueil : la photo de l'annonce du direct devient l'écran ; téléphone : paysage (16:10) cadré sur les tribunes */
.live-band-ph.tv{overflow:visible}
.live-band-ph.tv img{border-radius:8px}
@media (max-width:600px){.live-band-ph.tv{aspect-ratio:16/10}.live-band-ph.tv img{border-radius:6px;object-position:50% 72%}}

/* ---------- Rendez-vous 2027 : organisateurs, logos discrets (64 px) et lien texte explicite ---------- */
.orga{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 30px;margin-top:22px}
.orga-t{width:100%;margin:0;font:700 12.5px var(--f-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--nuit)}
.orga-l{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.orga-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 3px 10px -6px rgba(0,0,0,.4);transition:transform .2s}
.orga-logo:hover{transform:translateY(-2px)}
.orga-logo img{max-width:84%;max-height:84%;width:auto;height:auto;object-fit:contain}
.orga-lien{font:700 14px var(--f-texte);color:var(--nuit);text-decoration:underline;text-underline-offset:3px}
.orga-lien:hover{text-decoration-thickness:2px}
@media (prefers-reduced-motion:reduce){.orga-logo{transition:none}}

/* ---------- Partenaires, « La conférence » (Y5) : texte du Club, valeurs en étiquettes, « Retour sur 2026 » sur fond crème ---------- */
.confy{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,5vw,64px);align-items:start}
.confy-photo{margin:0;position:sticky;top:calc(var(--header-h-solid) + 20px)}
.confy-photo img{display:block;width:100%;height:auto;border-radius:14px}
@media (max-width:900px){.confy{grid-template-columns:1fr}.confy-photo{position:static}}
.confy-etiquettes{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0}
.confy-etiquettes li{padding:6px 12px;border-radius:999px;background:var(--creme);border:1.5px solid rgba(128,98,0,.35);font:600 14px/1.2 var(--f-texte);color:var(--texte)}
.confy-prochaine{display:inline-flex;align-items:center;gap:8px;margin:6px 0 0;font:700 14.5px var(--f-texte);color:var(--or-texte)}
.confy-prochaine::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--or)}
.confy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:22px}
.confy-2026{margin-top:clamp(36px,5vw,56px);padding:clamp(20px,3vw,32px);border-radius:18px;background:var(--creme)}
.confy-2026 h3{margin:0 0 6px;font:800 clamp(24px,2.4vw,30px)/1.05 var(--f-titre);text-transform:uppercase}
.confy-2026 .confy-sous{margin:0 0 18px;color:var(--texte-2);font-size:15px}
/* Phrase en doré qui CONTINUE le paragraphe au-dessus (texte du Club, sans répétition) : pas de majuscule ajoutée, lien serré */
.h-texte p.confy-p1{margin-bottom:6px}
.exergue.exergue-suite::first-letter{text-transform:none}
.confy-video{margin:18px 0 0}
.confy-video[hidden]{display:none}

/* ---------- Cartes « personne » (directrices, intervenants de la conférence, intervenants des blocs) : un seul style sur tout
   le site : carte blanche sur fond crème, contour de 2 px plus soutenu (Y5, 31/10/2026) ---------- */
.speaker,.team-famille .member{background:var(--blanc);border:2px solid var(--contour-carte)}

/* ---------- Contour des cartes et tuiles, harmonisé sur tout le site (31/10/2026, demande d'Aurore) : 2 px, couleur
   --contour-carte (celle des cartes « personnes »), pour qu'elles ressortent sur le fond crème. Filets jaunes d'accent
   (haut des packs, des offres, du kit presse ; bord gauche des messages) et contour doré de la dernière affiche gardés.
   Champs de formulaire, puces de filtre et boutons : inchangés. ---------- */
.pillar,.leaders-card,.logo-cell,.member,.live-plate,.mq-histoires li,.why,.don-box,.form-card,.presse-evenement,.star,.star-face,
.infos-grid li,.plan-vignette a,.poste-famille,.logo-carte,.record,.pilier,.niv,.fiscal-bloc,.bl-el,.presse-limite,.presse-card,
.presse-revue li,.video-card,.conv-bloc,.conv-fait,.reseau-tuile,.val-tuile,.val-panneau,.val-panneau .medias,.venue-doc-lien,.doc-lien{border:2px solid var(--contour-carte)}
.conv-bloc{border:2px solid var(--contour-carte)!important}
/* avec un filet jaune en haut (ou à gauche) : les trois autres côtés */
.pack-mini,.format,.fiscal-col,.kitp-kit{border-left:2px solid var(--contour-carte);border-right:2px solid var(--contour-carte);border-bottom:2px solid var(--contour-carte)}
.conv-msg{border-top:2px solid var(--contour-carte);border-right:2px solid var(--contour-carte);border-bottom:2px solid var(--contour-carte)}
/* Les éditions (frise) : vignettes d'affiches, contour par l'ombre (le bouton n'a pas de bordure) ; dernière affiche : doré */
.ep{box-shadow:0 0 0 2px var(--contour-carte)}
.ep:hover,.ep:focus-within{box-shadow:0 0 0 2px var(--contour-carte),0 30px 50px -28px rgba(14,15,19,.45)}
.ep.is-last,.ep.is-last:hover{box-shadow:0 0 0 2px var(--or),0 30px 50px -28px rgba(14,15,19,.25)}
/* Contour par l'ombre (encarts de Perchistes, tuiles des logos partenaires, mur des partenaires repassé en clair) */
.enc-carte{box-shadow:0 0 0 2px var(--contour-carte),0 22px 40px -30px rgba(14,15,19,.5)}
.np-tuile{box-shadow:0 0 0 2px var(--contour-carte),0 14px 30px -24px rgba(14,15,19,.45)}
.mur-band.np.fond-auto .np-carte{box-shadow:0 0 0 2px var(--contour-carte),0 18px 40px -30px rgba(14,15,19,.4)}
/* Tuile des valeurs ouverte ou survolée : contour doré gardé */
.val-tuile:hover,.val-tuile:focus-visible,.val-tuile[aria-expanded="true"]{border-color:var(--or-texte)}

/* ---------- Effet au survol des cartes, UN SEUL réglage pour tout le site (31/10/2026, demande d'Aurore) : léger soulèvement
   (--survol-lever) et ombre douce (--survol-ombre), comme les grandes cartes ; souris seulement (hover:hover) ; rien si
   « moins d'animations ». Cartes déjà dotées de leur propre effet (affiches de la frise, logos du mur, encarts de Perchistes,
   offres partenariales, réseaux, logos partenaires) : inchangées. ---------- */
.why,.video-card,.member,.speaker,.val-tuile,.pilier,.pack-mini,.format,.fiscal-col,.poste-famille,.infos-grid li,.presse-card,
.presse-revue li,.logo-carte,.bl-el,.doc-lien,.venue-doc-lien,.kitp-kit,.record{transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
@media (hover:hover){
  .why:hover,.video-card:hover,.member:hover,.speaker:hover,.val-tuile:hover,.pilier:hover,.pack-mini:hover,.format:hover,.fiscal-col:hover,
  .poste-famille:hover,.infos-grid li:hover,.presse-card:hover,.presse-revue li:hover,.logo-carte:hover,.bl-el:hover,.doc-lien:hover,
  .venue-doc-lien:hover,.kitp-kit:hover,.record:hover{transform:translateY(var(--survol-lever));box-shadow:var(--survol-ombre)}
  .val-tuile[aria-expanded="true"]:hover{box-shadow:inset 0 -4px 0 var(--or),var(--survol-ombre)}
}
@media (prefers-reduced-motion:reduce){
  .why,.video-card,.member,.speaker,.val-tuile,.pilier,.pack-mini,.format,.fiscal-col,.poste-famille,.infos-grid li,.presse-card,
  .presse-revue li,.logo-carte,.bl-el,.doc-lien,.venue-doc-lien,.kitp-kit,.record{transition:none}
  .why:hover,.video-card:hover,.member:hover,.speaker:hover,.val-tuile:hover,.pilier:hover,.pack-mini:hover,.format:hover,.fiscal-col:hover,
  .poste-famille:hover,.infos-grid li:hover,.presse-card:hover,.presse-revue li:hover,.logo-carte:hover,.bl-el:hover,.doc-lien:hover,
  .venue-doc-lien:hover,.kitp-kit:hover,.record:hover{transform:none}
}

/* =========================================================
   V.2 (29/10/2026, constaté chez Patrice) · NAVIGATEURS SANS UNITÉS svh (Chromium avant 108, Safari avant 15.4, Firefox avant
   101) : une règle qui contient « svh » y est ignorée en entier ; sans repli, le bandeau de l'accueil perdait sa hauteur et le
   titre passait sous l'en-tête. Mêmes règles qu'au-dessus, en vh, lues SEULEMENT par ces navigateurs, dans le même ordre et
   les mêmes conditions d'écran. Toute nouvelle règle en svh ou dvh qui donne une taille de mise en page : son repli ici.
   Recette : outils/tests/navigateurs-test.mjs (Chromium 100 et Chrome 118).
   ========================================================= */
@supports not (height:1svh){
  .hero{min-height:100vh}
  .hero-frame{width:min(68vw,calc((100vh - var(--header-h)) * 16 / 9))}
  @media (min-width:821px){
    .hero{min-height:0;height:calc(var(--header-h) + min(716px, 56.25vw, 100vh - 120px - var(--header-h)))}
    .hero-frame{--w:min(1272px, 100%, (100vh - 120px - var(--header-h)) * 16 / 9)}
    .bandeau-large .hero{height:calc(var(--sous-menu) + min(716px * var(--taille, 1.25), 56.25vw, 100vh - 120px - var(--sous-menu)))}
    .bandeau-large .hero-frame{--w:min(1272px * var(--taille, 1.25), 100%, (100vh - 120px - var(--sous-menu)) * 16 / 9)}
    .bandeau-plein .hero{height:calc(100vh - var(--infos-h, 118px))}
    .bandeau-plein .hero-frame video,.bandeau-plein .hero-frame img{object-position:50% calc(-1 * clamp(0px, 100vw * var(--ratio, .5629) - (100vh - var(--infos-h, 118px) - var(--haut)), 100vw * var(--ratio, .5629) * .04))}
  }
  .team-famille .member-ph{min-height:clamp(150px,calc((100vh - var(--header-h-solid) - 64px - 110px) / 3),280px)}
  @media (max-width:1303px){.main-nav{max-height:calc(100vh - var(--header-h))}}
  .page-404{min-height:min(72vh,640px)}
  .salon{min-height:100vh}
  .sl-cadre{width:min(100%,1180px,calc((100vh - var(--header-h) - 40px - var(--h-haut) - var(--h-bande)) * 16 / 9))}
  @media (max-height:500px) and (orientation:landscape){.salon-bloc{height:100vh}.sl-cadre{width:100%;height:100vh}}
  .lb-box{max-height:calc(100vh - 40px)}
  .lb-img img{max-height:70vh}
  .fen-boite{max-height:calc(100vh - 48px)}
  @media (max-width:760px){.lb-img img{max-height:44vh}.fen-boite{max-height:92vh}}
  .page-hero-photo{min-height:min(88vh,820px)}
  .glb-fig img{max-height:calc(100vh - 140px)}
  .hero-split{min-height:min(78vh,720px)}
  @media (max-width:600px){.page-hero-photo{min-height:88vh}.star-flip .star-face{height:min(620px,calc(100vh - var(--header-h) - 40px))}}
}