/* =========================================================
   Grand Nevers Football Club
   Direction : nuit de match sous les projecteurs.
   L’écusson est l’objet unique : posé sur le tableau tactique,
   puis porté par une lumière qui change de teinte au fil des rubriques
   (nuit marine, bleu roi, vert terrain, braise, or).
   ========================================================= */

/* Layout : plein cadre, une idée par écran ; titre à gauche, objet au centre, description à droite. */

/* Polices hébergées avec le site (licence SIL Open Font License 1.1 : assets/fonts/OFL-*.txt), caractères latins */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 500;font-display:swap;src:url("../assets/fonts/inter-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:500;font-display:swap;src:url("../assets/fonts/inter-tight-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  /* Couleurs */
  --cream:#ffedd7;      /* tout le texte, jamais de blanc pur */
  --walnut:#0a1330;     /* fond de départ : nuit marine de l’écusson */
  --walnut-up:#16285c;  /* halo de l’ouverture */
  --bark:#1d3470;       /* la seule surface pleine */
  --cork:rgb(255 237 215 / .22); /* filets pointillés, contours : crème translucide, lisible sur toutes les teintes */
  --driftwood:#a39b92;  /* séparateurs secondaires */
  --muted:#d6cdc2;      /* texte secondaire */
  --ember:#ff7426;      /* braise du phénix, crédits */
  --flare:#fff3e0;      /* cœur de l’éclair */
  --mat:#3f6f3c;        /* tableau tactique, intro seulement */
  --mat-deep:#17301d;
  --gold:#f2b705;       /* maillot domicile */
  --navy:#0a1430;
  --night:#16100c;      /* maillot extérieur */
  --braise:#c0341d;
  --bronze:#c0814f;     /* statuts partenaires */
  --silver:#cfc9c0;
  --gold-tier:#e9b949;
  --platine:#a9b6c6;
  --sun:#f4a51c;

  /* Typographie */
  --f-display:"Inter Tight","Inter","Helvetica Neue",Arial,sans-serif;
  --f-text:"Inter","Helvetica Neue",Arial,sans-serif;
  --f-legal:Arial,"Helvetica Neue",Helvetica,sans-serif;
  --t-mega:clamp(3.5rem,9vw,10rem);
  --t-display:clamp(2.5rem,5.2vw,5.75rem);
  --t-heading:clamp(2rem,3.6vw,3.75rem);
  --t-body:clamp(1.25rem,2vw,1.8125rem);
  --t-heading-sm:clamp(1.125rem,1.6vw,1.5rem);
  --t-ui:.75rem;
  --t-btn:.8125rem;
  --t-micro:.625rem;

  /* Espaces et formes */
  --gutter:max(clamp(16px,2.4vw,36px),env(safe-area-inset-left,0px));
  --gutter-r:max(clamp(16px,2.4vw,36px),env(safe-area-inset-right,0px));
  --gap:18px;
  --section-y:clamp(96px,14vh,168px);
  --r-card:12px;
  --r-ghost:22.5px;
  --r-pill:36px;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.7,0,.2,1);
  --crest-h:min(62vh,36vw);
  color-scheme:dark;
}
@media (max-width:860px){
  :root{--crest-h:min(44vh,76vw)}
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{background:var(--walnut);scrollbar-gutter:stable;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--walnut);color:var(--cream);font-family:var(--f-text);font-size:1rem;line-height:1.45;font-feature-settings:"ss01" on;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
p{margin:0}
[hidden]{display:none!important}
::selection{background:var(--ember);color:var(--cream)}
:focus-visible{outline:2px dashed var(--cream);outline-offset:4px}
[tabindex="-1"]:focus{outline:none}
.wrap{padding-left:var(--gutter);padding-right:var(--gutter-r)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.skip-link{position:fixed;left:var(--gutter);top:calc(10px + env(safe-area-inset-top,0px));z-index:3000;padding:10px 16px;border-radius:var(--r-ghost);background:var(--cream);color:var(--walnut);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;text-decoration:none;transform:translateY(-200%)}
.skip-link:focus{transform:none}
.enhanced-only{display:none}
.is-enhanced .enhanced-only{display:revert}
.is-enhanced .static-only{display:none}

/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- Typographie ---------- */
.label{font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.02em}
.heading{margin:0;font:500 var(--t-display)/.9 var(--f-display);text-transform:uppercase;text-wrap:balance}
.void .heading,.heading--md{font-size:var(--t-heading)}
.body{font:400 var(--t-body)/1.26 var(--f-text);max-width:23em;text-wrap:pretty}
.body--sm{font-size:clamp(1.0625rem,1.35vw,1.3125rem);line-height:1.42}
.note{font:500 var(--t-ui)/1.4 var(--f-text);text-transform:uppercase;letter-spacing:.02em;color:var(--muted)}
.legal{font:500 var(--t-micro)/1.35 var(--f-legal);text-transform:uppercase;color:var(--muted)}
.credit{color:var(--ember)}
.unit{text-transform:none}
.dash{width:100%;margin:0;border:0;border-top:1px dashed var(--driftwood);transform-origin:left center}

/* Mots découpés pour les révélations */
.sw{display:inline-block;overflow:hidden;vertical-align:top;padding:.14em .03em .1em;margin:-.14em -.03em -.1em}
.sw__i{display:inline-block}
.hw{transition:none}

/* ---------- Boutons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:15px 26px;border:1px solid transparent;border-radius:var(--r-pill);background:none;color:var(--cream);font:500 var(--t-btn)/1 var(--f-text);text-transform:uppercase;letter-spacing:.02em;text-decoration:none;white-space:nowrap;cursor:pointer;overflow:hidden;isolation:isolate;transition:color .45s var(--ease-out),border-color .45s}
.btn::before{content:"";position:absolute;left:var(--mx,50%);top:var(--my,50%);z-index:-1;width:260%;aspect-ratio:1;border-radius:50%;background:var(--cream);transform:translate(-50%,-50%) scale(0);transition:transform .7s var(--ease-out)}
.btn:hover,.btn:focus-visible{color:var(--walnut)}
.btn:hover::before,.btn:focus-visible::before{transform:translate(-50%,-50%) scale(1)}
.btn--fill{background:var(--gold);color:var(--walnut)}
.btn--ghost{padding:11px 20px;border-color:var(--cream);border-radius:var(--r-ghost)}
.btn__label{display:block;height:1.15em;overflow:hidden}
.btn__label>span{display:block;line-height:1.15;transition:transform .6s var(--ease-out)}
.btn__label>span::after{content:attr(data-text);display:block}
.btn:hover .btn__label>span,.btn:focus-visible .btn__label>span{transform:translateY(-50%)}

.chip{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid var(--driftwood);border-radius:var(--r-ghost);background:none;color:var(--muted);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;cursor:pointer;transition:border-color .4s,color .4s,background-color .4s}
.chip:hover{border-color:var(--cream);color:var(--cream)}
.chip.is-active{border-color:var(--cream);color:var(--cream);background:var(--bark)}
.chip--static{cursor:default}

/* ---------- Teinte de fond par rubrique (mode animé) ---------- */
.atmo{position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--page,var(--walnut));background-image:radial-gradient(60% 55% at var(--gx,70%) var(--gy,20%),var(--glow,transparent),transparent 72%),radial-gradient(90% 70% at 50% 120%,rgb(255 237 215 / .05),transparent 60%)}
.has-atmo body{background:transparent}

/* ---------- Ouverture : du FC Nevers Banlay au Grand Nevers FC ---------- */
.opening{display:none}
.opening-on .opening{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;overflow:hidden;color:var(--cream);animation:opening-failsafe .4s 3.6s forwards}
.opening-on .opening.is-running{animation:none}
@keyframes opening-failsafe{to{visibility:hidden;opacity:0}}
.opening__bg{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 46%,#16285c 0%,#0c1a40 50%,#060d24 100%)}
/* Repère commun aux deux logos : une boîte carrée, chaque logo centré en pleine hauteur.
   Le nouvel écusson reste caché tant que les pièces ne l’ont pas recomposé. */
.opening__mark{position:relative;height:min(78vw,52vh,440px);aspect-ratio:1}
.opening__logo{position:absolute;inset:0}
.opening__logo img{position:absolute;left:50%;top:50%;display:block;width:auto;height:100%;max-width:none;transform:translate(-50%,-50%);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.opening__logo--new img{height:100.5%}
.opening__logo--new{opacity:0}
/* Puzzle : pièces créées par js/main.js ; recto = logo du FC Nevers Banlay, verso = écusson du Grand Nevers FC */
.opening__puzzle{position:absolute;inset:0;perspective:1100px;pointer-events:none}
.opening__piece{position:absolute;transform-style:preserve-3d;will-change:transform}
.opening__face{position:absolute;inset:0;background-repeat:no-repeat;-webkit-backface-visibility:hidden;backface-visibility:hidden}
.opening__face--new{transform:rotateY(180deg)}
.opening__cut{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:visible;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.opening__cut path{fill:none;stroke:rgb(255 237 215 / .85);stroke-width:2.2;stroke-linejoin:round}
.opening__sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(105deg,transparent 38%,rgb(255 247 220 / .9) 50%,transparent 62%) no-repeat;background-size:250% 100%;background-position:150% 0;mix-blend-mode:soft-light;-webkit-mask:url("../assets/img/ecusson.webp") center/auto 100.5% no-repeat;mask:url("../assets/img/ecusson.webp") center/auto 100.5% no-repeat}
.opening__skip{position:absolute;right:var(--gutter-r);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:3}
/* Sans animations (rejouée à la demande) : un simple passage d’un logo à l’autre, sans mouvement */
.opening.is-light .opening__puzzle,.opening.is-light .opening__sheen{display:none}
.opening.is-light .opening__logo{transition:opacity .45s ease}
.opening.is-light .opening__logo--new{opacity:0}
.opening.is-light.is-new .opening__logo--old{opacity:0}
.opening.is-light.is-new .opening__logo--new{opacity:1}
.opening.is-light.is-out{transition:opacity .35s ease;opacity:0}

/* ---------- Couches fixes ---------- */
.cursor{display:none}
.has-cursor .cursor{display:block;position:fixed;left:0;top:0;z-index:2100;pointer-events:none}
.has-cursor,.has-cursor *{cursor:none!important}
.cursor__dot,.cursor__ring{position:absolute;left:0;top:0;border-radius:50%}
.cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--cream);transition:opacity .3s}
.cursor__ring{display:grid;place-items:center;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgb(255 237 215 / .6);transition:width .5s var(--ease-out),height .5s var(--ease-out),margin .5s var(--ease-out),background-color .35s,border-color .35s,opacity .3s}
.cursor__label{font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;color:var(--walnut);white-space:nowrap;opacity:0;transition:opacity .25s}
.cursor.is-link .cursor__ring{width:62px;height:62px;margin:-31px 0 0 -31px;border-color:var(--cream);background:rgb(255 237 215 / .06)}
.cursor.is-label .cursor__ring{width:92px;height:92px;margin:-46px 0 0 -46px;border-color:var(--cream);background:var(--cream)}
.cursor.is-label .cursor__label{opacity:1}
.cursor.is-label .cursor__dot{opacity:0}
.cursor.is-hidden .cursor__ring,.cursor.is-hidden .cursor__dot{opacity:0}

.grain{position:fixed;inset:-60%;z-index:1600;pointer-events:none;opacity:.075;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .93 0 0 0 0 .84 0 0 0 1.5 -.5'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 7s steps(9) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}15%{transform:translate(-4%,-7%)}30%{transform:translate(3%,-12%)}45%{transform:translate(9%,6%)}60%{transform:translate(-6%,9%)}75%{transform:translate(7%,3%)}90%{transform:translate(-2%,6%)}}

.embers{position:fixed;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}
.is-static .embers{display:none}

.progress{position:fixed;left:0;right:0;top:0;z-index:95;height:1px;pointer-events:none}
.progress i{display:block;height:100%;background:var(--cream);transform:scaleX(0);transform-origin:left center}
.is-static .progress{display:none}

.sidebar{position:fixed;right:max(10px,env(safe-area-inset-right,0px));top:50%;z-index:90;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);pointer-events:none;white-space:nowrap}

/* ---------- Navigation ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;gap:28px;padding:calc(14px + env(safe-area-inset-top,0px)) var(--gutter-r) 14px var(--gutter);transition:transform .7s var(--ease-out),background-color .5s}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:rgb(10 19 48 / .9);background:color-mix(in srgb,var(--bar,var(--walnut)) 88%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.25);backdrop-filter:blur(14px) saturate(1.25);box-shadow:0 1px 0 rgb(255 237 215 / .1),0 12px 32px -18px rgb(0 0 0 / .6);opacity:0;transition:opacity .5s;pointer-events:none}
.nav.is-scrolled::before{opacity:1}
.nav.is-hidden{transform:translateY(-110%)}
.nav__brand{display:flex;align-items:center;gap:10px;margin-right:auto;font:500 .875rem/1 var(--f-text);text-transform:uppercase;text-decoration:none;white-space:nowrap}
.nav__brand img{width:26px;height:auto}
.nav__links{display:flex;gap:30px}
.nav__links a{position:relative;display:inline-block;padding:6px 0;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.02em;text-decoration:none;white-space:nowrap}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px dashed var(--cream);transform:scaleX(0);transform-origin:right center;transition:transform .55s var(--ease-out)}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1);transform-origin:left center}
.nav__links a.is-active::after{border-bottom-color:var(--muted)}
.nav__cta{padding:13px 22px}
.nav__partners{gap:9px;padding:11px 18px 11px 14px}
.nav__partners.is-active{background:var(--bark)}
.nav__sun{position:relative;flex:none;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffd77a,var(--sun) 60%,#b86a00)}
.nav__sun::after{content:"";position:absolute;inset:-4px;border:1px solid var(--sun);border-radius:50%;animation:ping 2.4s var(--ease-out) infinite}
.nav__menu{display:none}
.menu-open .nav{z-index:130;transform:none}
/* Menu ouvert : la barre garde le fond du menu, dont les liens passent dessous quand il défile sur un petit écran */
.menu-open .nav::before{opacity:1;background:var(--walnut);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}

.menu{position:fixed;inset:0;z-index:120;display:grid;grid-template-rows:1fr auto;gap:24px;padding:calc(88px + env(safe-area-inset-top,0px)) var(--gutter-r) calc(28px + env(safe-area-inset-bottom,0px)) var(--gutter);background:var(--walnut);overflow-y:auto}
.menu__links{display:grid;align-content:start;gap:2px}
.menu__links a{display:block;overflow:hidden;padding-block:.06em;font:500 clamp(2.25rem,10.5vw,4rem)/.95 var(--f-display);text-transform:uppercase;text-decoration:none}
.menu__links a span{display:inline-block}
.menu__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding-top:18px;border-top:1px dashed var(--cork);font:500 var(--t-micro)/1.3 var(--f-text);text-transform:uppercase;color:var(--muted)}

/* ---------- Scène de l’écusson ---------- */
.stage{display:none}
.is-enhanced .stage{position:fixed;inset:0;z-index:5;display:block;pointer-events:none}
.stage__lens{position:absolute;inset:0;perspective:1500px}
.stage__glow{position:absolute;left:50%;top:50%;width:calc(var(--crest-h) * 1.6);aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgb(220 80 0 / .34),rgb(220 80 0 / .1) 55%,rgb(220 80 0 / 0) 78%);transform:translate(-38%,-62%);opacity:.25}
.crest{position:absolute;left:50%;top:50%;height:var(--crest-h);aspect-ratio:736/797;transform-style:preserve-3d}
.crest__drop,.crest__tilt,.crest__body{position:absolute;inset:0;transform-style:preserve-3d}
.crest__face,.crest__edge{position:absolute;inset:0;width:100%;height:100%;max-width:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.crest__face{transform:translateZ(1px)}
.crest__edge{filter:brightness(.34) saturate(.75)}
.crest__sheen{position:absolute;inset:0;transform:translateZ(1.6px);opacity:.6;background:linear-gradient(112deg,rgb(255 237 215 / 0) 38%,rgb(255 237 215 / .55) 48%,rgb(255 237 215 / .1) 55%,rgb(255 237 215 / 0) 64%);background-size:260% 100%;background-position:50% 0;-webkit-mask:url("../assets/img/ecusson.webp") center/100% 100% no-repeat;mask:url("../assets/img/ecusson.webp") center/100% 100% no-repeat}
.stage__ring{position:absolute;left:0;top:0;width:0;height:0;opacity:0}
.stage__ring i{position:absolute;inset:-14px;border:1px dashed rgb(255 237 215 / .5);border-radius:50%;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ---------- Intro ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden}
.board{position:absolute;inset:0;z-index:1;overflow:hidden;background:var(--mat-deep);perspective:1300px;perspective-origin:50% 100%}
.board__tilt{position:absolute;inset:0;transform-origin:50% 100%}
.board__base{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.board__layer{position:absolute;left:-5%;top:-5%;width:110%;height:110%;max-width:none}
.piece__shadow{fill:#0b0703;opacity:.5}
.board__shadow{position:absolute;left:50%;top:50%;width:var(--shadow-w,300px);height:var(--shadow-h,320px);margin:calc(var(--shadow-h,320px) / -2) 0 0 calc(var(--shadow-w,300px) / -2);border-radius:46% 46% 50% 50%;background:radial-gradient(closest-side,rgb(5 3 1 / .62),rgb(5 3 1 / .3) 62%,rgb(5 3 1 / 0));transform:translate(-5%,5%);filter:blur(12px)}
.is-static .board__shadow,.no-js .board__shadow{display:none}
.board__dim{position:absolute;inset:0;background:var(--walnut);opacity:0;pointer-events:none}
.board__shade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 80% 8%,rgb(255 237 215 / .1),rgb(255 237 215 / 0) 55%),linear-gradient(to bottom,rgb(10 19 48 / .6),rgb(10 19 48 / 0) 24%,rgb(10 19 48 / 0) 58%,rgb(10 19 48 / .78) 88%,var(--walnut))}
/* Téléphone et tablette en hauteur : le grand titre est posé sur la partie claire du terrain, parfois sur un pion ; le haut du terrain est assombri pour qu’il reste net */
@media (max-width:860px) and (orientation:portrait){
  .board__shade{background:radial-gradient(120% 90% at 80% 8%,rgb(255 237 215 / .1),rgb(255 237 215 / 0) 55%),linear-gradient(to bottom,rgb(10 19 48 / .72),rgb(10 19 48 / .46) 24%,rgb(10 19 48 / 0) 38%,rgb(10 19 48 / 0) 58%,rgb(10 19 48 / .78) 88%,var(--walnut))}
}

.hero__crest{position:absolute;left:50%;top:50%;z-index:2;width:auto;height:min(34vh,62vw);transform:translate(-50%,-50%)}
.is-enhanced .hero__crest{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0;transform:none}

.hero__brand{position:absolute;z-index:10;left:var(--gutter);top:calc(84px + env(safe-area-inset-top,0px));display:grid;gap:14px;max-width:calc(100% - var(--gutter) - var(--gutter-r))}
.hero__tagline,.hero__sub{font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.02em}
/* Posé sur le terrain vert, plus clair sur téléphone : texte clair sur un fond sombre translucide, comme la pastille du partenaire */
.hero__sub{justify-self:start;margin-left:-8px;padding:4px 8px;border-radius:6px;background:rgb(10 19 48 / .5);color:var(--cream)}
.hero__title{margin:0;font:500 var(--t-mega)/.86 var(--f-display);text-transform:uppercase}
.hero__partner{display:inline-flex;align-items:center;gap:14px;justify-self:start;margin-top:6px;padding:8px 16px 8px 14px;border:1px solid rgb(255 237 215 / .18);border-radius:var(--r-ghost);background:rgb(10 19 48 / .35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-decoration:none;transition:border-color .4s,background-color .4s}
.hero__partner span{font:500 var(--t-micro)/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.hero__partner img{width:auto;height:30px}
.hero__partner:hover{border-color:var(--cream);background:rgb(10 19 48 / .6)}
.hero__line{display:block;overflow:hidden;padding-top:.06em;margin-top:-.06em}
.hero__line>span{display:block}
.hero__line .ch{display:inline-block}

.hero__corner{position:absolute;z-index:10;bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.hero__corner--left{left:var(--gutter)}
.hero__corner--right{right:calc(var(--gutter-r) + 22px)}
.hero__corner--center{left:50%;transform:translateX(-50%)}
.hero__card{width:min(360px,calc(100vw - var(--gutter) - var(--gutter-r)));padding:20px 22px;border:1px solid rgb(255 237 215 / .14);border-radius:var(--r-card);background:rgb(10 19 48 / .5);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.hero__card .dash{margin:14px 0}
.hero__card-title{font:500 .8125rem/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.01em}
.hero__card-text{font:400 .875rem/1.45 var(--f-text);color:var(--muted)}

.hero__video{display:flex;align-items:center;gap:14px;padding:9px 20px 9px 9px;border:1px solid rgb(255 237 215 / .14);border-radius:var(--r-card);background:rgb(10 19 48 / .5);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--cream);text-align:left;cursor:pointer;transition:border-color .4s,background-color .4s}
.hero__video:hover{border-color:rgb(255 237 215 / .45);background:rgb(10 19 48 / .7)}
.hero__thumb{position:relative;display:grid;place-items:center;width:78px;height:78px;border-radius:var(--r-card);background:var(--walnut);overflow:hidden;flex:none}
.hero__thumb img{width:44px;height:auto;transition:transform .8s var(--ease-out)}
.hero__video:hover .hero__thumb img{transform:scale(1.15) rotate(-8deg)}
.hero__thumb--duo{grid-template-columns:1fr 1fr;gap:2px;padding:0 6px;background:radial-gradient(circle at 70% 40%,#1d3a82,var(--walnut))}
.hero__thumb--duo img{width:100%}
.hero__thumb--duo img:first-child{transform:translateY(-6px);opacity:.85}
.hero__video:hover .hero__thumb--duo img:first-child{transform:translate(-3px,-6px) scale(.9);opacity:.6}
.hero__video:hover .hero__thumb--duo img:last-child{transform:scale(1.2)}
.hero__play{position:absolute;right:6px;bottom:6px;width:22px;height:22px;border-radius:50%;background:var(--cream);transition:transform .5s var(--ease-out)}
.hero__play::after{content:"";position:absolute;left:8px;top:6px;border-left:8px solid var(--walnut);border-top:5px solid transparent;border-bottom:5px solid transparent}
.hero__video:hover .hero__play{transform:scale(1.2)}
.hero__meta{display:grid;gap:5px}
.hero__meta-title{font:500 .8125rem/1 var(--f-text);text-transform:uppercase}
.hero__meta-date{font:500 var(--t-micro)/1.2 var(--f-text);text-transform:uppercase;color:var(--muted)}
.hero__meta-count{font:500 var(--t-micro)/1.2 var(--f-text);text-transform:uppercase;font-variant-numeric:tabular-nums}

.hero__scroll{display:grid;justify-items:center;gap:10px;font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase}
.hero__scroll i{display:block;width:1px;height:46px;background:linear-gradient(var(--cream) 50%,transparent 50%) 0 0/1px 8px;animation:cue 1.4s linear infinite}
@keyframes cue{to{background-position:0 16px}}

/* ---------- Sections « vide » : texte / objet / texte ---------- */
.void{position:relative;z-index:10;display:grid;align-items:center;min-height:100vh;min-height:100svh}
.void__grid{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--gap);padding-block:clamp(96px,12vh,140px)}
.void__side{display:grid;gap:22px;align-content:center;justify-items:start;min-width:0}
.void__side--right{padding-left:clamp(0px,1.5vw,24px)}
.void__anchor{height:var(--crest-h);aspect-ratio:736/797;max-width:100%}
.void__anchor img{width:100%;height:100%;object-fit:contain}
.hw{color:inherit}

/* ---------- L’écusson, cinq symboles ---------- */
.symbols{position:relative;z-index:10}
.symbols__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:40px var(--gap);padding-block:var(--section-y)}
.symbols__intro{grid-column:1/-1;display:grid;gap:14px;justify-items:start}
.symbols__hint{max-width:34rem;font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.credit-nolan{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 16px;border:1px solid var(--cork);border-radius:var(--r-ghost);font:400 .875rem/1.4 var(--f-text);color:var(--muted)}
.credit-nolan strong{color:var(--cream);font-weight:500}
.credit-nolan__links{display:inline-flex;flex-wrap:wrap;gap:6px 14px}
.credit-nolan a,.footer__credit a{color:var(--gold);text-decoration:none;border-bottom:1px solid currentColor}
.credit-nolan a:hover,.footer__credit a:hover{color:var(--cream)}
.symbols__lens{position:relative;width:min(100%,460px);justify-self:center}
.symbols__static{position:relative;margin:0}
.symbols__static img{width:100%;height:auto}
.marker{position:absolute;display:grid;place-items:center;width:28px;height:28px;margin:-14px 0 0 -14px;border-radius:50%;background:var(--cream);color:var(--walnut);font:500 var(--t-ui)/1 var(--f-text)}
/* Position des cinq symboles sur l’écusson (mêmes repères que data-x / data-y de la liste) */
.marker--1{left:50%;top:44.1%}
.marker--2{left:24.6%;top:69.1%}
.marker--3{left:76.9%;top:65.2%}
.marker--4{left:18.7%;top:59.8%}
.marker--5{left:50%;top:86.7%}
.symbols__list{display:grid;gap:22px;margin:0;padding:0;list-style:none}
.symbol{display:grid;gap:8px;padding-bottom:20px;border-bottom:1px dashed var(--cork)}
.symbol__head{display:grid;gap:10px;justify-items:start}
.symbol__num{font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}
.symbol__title{margin:0;font:500 var(--t-heading)/.9 var(--f-display);text-transform:uppercase;text-wrap:balance}
.symbol__text{font:400 var(--t-heading-sm)/1.32 var(--f-text);max-width:22em}
/* Repères du parcours animé : sans animations, les cinq symboles sont déjà tous affichés, les repères n’ont pas d’objet */
.symbols__progress{display:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.symbols__progress button{position:relative;display:grid;gap:9px;padding:8px 0 0;border:0;background:none;color:var(--muted);font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;text-align:left;cursor:pointer;transition:color .4s}
.symbols__progress button::before{content:"";position:absolute;inset:-12px 0 -8px}
.symbols__progress button:hover,.symbols__progress button:focus-visible{color:var(--cream)}
.symbols__progress button:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.symbols__progress i{position:relative;display:block;height:1px;overflow:hidden;background:repeating-linear-gradient(90deg,var(--driftwood) 0 4px,transparent 4px 7px)}
.symbols__progress i::after{content:"";position:absolute;inset:0;background:var(--cream);transform:scaleX(0);transform-origin:left center;transition:transform .7s var(--ease-out)}
.symbols__progress .is-active{color:var(--cream)}
.symbols__progress .is-active i::after,.symbols__progress .is-done i::after{transform:scaleX(1)}

/* La loupe ne dépasse jamais la hauteur laissée libre par l’introduction et les repères (--lens-fit, calculée par main.js) */
.is-enhanced .symbols__grid{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:auto 1fr auto;min-height:100vh;min-height:100svh;gap:20px var(--gap);padding-block:calc(78px + env(safe-area-inset-top,0px)) calc(26px + env(safe-area-inset-bottom,0px))}
.is-enhanced .symbols__intro{grid-row:1}
.is-enhanced .symbols__lens{grid-column:2;grid-row:2;align-self:center;width:min(56vh,31vw,var(--lens-fit,100vh));aspect-ratio:1/1}
.is-enhanced .symbols__list,.is-enhanced .symbol{display:contents}
.is-enhanced .symbol__head{grid-column:1;grid-row:2;align-self:center;gap:16px}
.is-enhanced .symbol__title{font-size:clamp(2rem,4.1vw,4.75rem)}
.is-enhanced .symbol__text{grid-column:3;grid-row:2;align-self:center;padding-left:clamp(0px,1.5vw,24px);font:400 var(--t-body)/1.26 var(--f-text);max-width:16em}
.is-enhanced .symbols__progress{grid-column:1/-1;grid-row:3;display:grid}

/* ---------- Chiffres ---------- */
.figures{position:relative;z-index:10;padding-block:var(--section-y)}
.section-head{display:grid;gap:16px;justify-items:start;max-width:1100px}
.section-head--split{max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:24px 56px}
.section-head--split>div{display:grid;gap:16px;justify-items:start}
.section-head--split>:last-child{max-width:28rem;justify-self:end}
.figures__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:56px;border-top:1px dashed var(--cork)}
.figure{display:grid;gap:12px;align-content:start;min-width:0;padding:28px 24px 8px 0;border-right:1px dashed var(--cork)}
.figure+.figure{padding-left:24px}
.figure:last-child{border-right:0}
.figure__num{font:500 clamp(3.25rem,7vw,8rem)/.85 var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.figure__label{font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase}
.figure__goal{display:grid;gap:10px;margin-top:4px}
.figure__bar{position:relative;display:block;max-width:220px;height:2px;overflow:hidden;background:var(--cork)}
.figure__bar i{position:absolute;inset:0;background:var(--cream);transform:scaleX(.85);transform-origin:left center}

/* ---------- Bandeaux défilants ---------- */
.marquee{position:relative;z-index:10;overflow:hidden;padding-block:clamp(18px,3vw,34px);border-block:1px dashed var(--cork)}
.marquee__track{display:flex;align-items:center;gap:.42em;width:max-content;font:500 var(--t-display)/1 var(--f-display);text-transform:uppercase;white-space:nowrap;will-change:transform}
.marquee__track span{display:block}
.marquee__track img{width:auto;height:.76em}
.marquee--mega{padding-block:0;border:0}
.marquee--mega .marquee__track{font-size:clamp(4.5rem,15vw,15rem);line-height:.86}
.marquee__dot{display:block;flex:none;width:.16em;height:.16em;border-radius:50%;background:var(--cream)}

/* Bandeau partenaires sous l’intro */
.pstrip{position:relative;z-index:4;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:stretch;background:var(--walnut);border-block:1px dashed var(--cork)}
.pstrip__label{display:flex;align-items:center;padding:0 22px 0 var(--gutter);border-right:1px dashed var(--cork);font:500 var(--t-micro)/1.3 var(--f-text);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.marquee--partners{z-index:auto;padding-block:16px;border:0}
.marquee--partners .marquee__track{gap:.9em;font-size:clamp(1.4rem,2.4vw,2.25rem)}
.marquee--partners .marquee__dot{width:.14em;height:.14em;background:var(--driftwood)}
.marquee__track img.pstrip__logo{width:auto;height:1.3em}
.pstrip__link{position:absolute;inset:0;z-index:2;overflow:hidden;color:transparent;font-size:0}
.pstrip__link:focus-visible{outline-offset:-4px}

/* ---------- Équipes ---------- */
.teams{position:relative;z-index:10}
.teams__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:44px;padding-block:var(--section-y)}
.teams__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px 48px}
.teams__head>div{display:grid;gap:16px;justify-items:start}
.teams__head .heading{max-width:11.5em}
.teams__intro{max-width:24rem;font:400 1rem/1.5 var(--f-text);color:var(--muted)}
.teams__viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
.teams__viewport::-webkit-scrollbar{display:none}
.teams__track{display:flex;gap:var(--gap);width:max-content;margin:0;padding:4px var(--gutter-r) 4px var(--gutter);list-style:none}
.teams__track>li{scroll-snap-align:start;scroll-margin-left:var(--gutter)}
.team{position:relative;display:flex;flex-direction:column;width:clamp(260px,23vw,340px);height:clamp(400px,54vh,520px);padding:24px;overflow:hidden;isolation:isolate;border:1px solid var(--cork);border-radius:var(--r-card);transition:border-color .6s}
.team::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bark);transform:translateY(101%);transition:transform .9s var(--ease-out)}
.team:hover{border-color:var(--bark)}
.team:hover::before{transform:none}
.team__group{font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase}
.team__big{display:grid;justify-items:start;margin-top:auto;font:500 clamp(5rem,9.4vw,9.25rem)/.8 var(--f-display);text-transform:uppercase}
.team__big span{display:block;transition:transform .9s var(--ease-out)}
.team:hover .team__big span{transform:translateY(-7%)}
.team__big small{margin-bottom:12px;font:500 var(--t-ui)/1 var(--f-text)}
.team__big--word{font-size:clamp(2.75rem,4.3vw,4.25rem);line-height:.86}
.team__staff{margin-top:16px;font:400 .875rem/1.4 var(--f-text)}
.team__staff span{display:block;margin-bottom:5px;font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);transition:color .6s}
.team:hover .team__staff span{color:var(--cream)}
.team__slots{display:grid;gap:10px;margin:14px 0 0}
.team__slots div{display:grid;gap:5px}
.team__slots dt{font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);transition:color .6s}
.team:hover .team__slots dt{color:var(--cream)}
.team__slots dd{margin:0;font:400 .875rem/1.4 var(--f-text)}
.team__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-top:22px;padding-top:16px;border-top:1px dashed var(--cork)}
.team__lvl{font:400 .9375rem/1.3 var(--f-text);color:var(--muted);transition:color .6s}
.team:hover .team__lvl{color:var(--cream)}
.team__link{padding-bottom:3px;border-bottom:1px solid currentColor;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;text-decoration:none;white-space:nowrap}
.team__crest{position:absolute;right:20px;top:18px;width:36px;height:auto;opacity:0;transform:translateY(14px) rotate(-16deg) scale(.8);transition:opacity .5s,transform .9s var(--ease-out)}
.team:hover .team__crest{opacity:1;transform:none}
.team--soon{border-style:dashed}
.team--soon .team__big{color:var(--driftwood)}
.teams__foot{display:flex;align-items:center;gap:20px;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase}
.teams__count{font-variant-numeric:tabular-nums}
.teams__count b{font-weight:500}
.teams__bar{position:relative;flex:1;max-width:420px;height:1px;overflow:hidden;background:var(--cork)}
.teams__bar i{position:absolute;inset:0;background:var(--cream);transform:scaleX(0);transform-origin:left center}
.is-enhanced .teams__inner{align-content:center;min-height:100vh;min-height:100svh;gap:clamp(24px,4.5vh,48px);padding-block:calc(76px + env(safe-area-inset-top,0px)) calc(28px + env(safe-area-inset-bottom,0px))}

/* ---------- Matchday ---------- */
.matchday{position:relative;z-index:10;overflow:hidden;padding-block:var(--section-y)}

/* Programme de la semaine aux Senets */
/* Matchs et terrains des Senets : calendrier à gauche, plan à droite, une seule sélection */
.fixtures{margin-top:clamp(32px,5vw,64px)}
.fixtures__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 40px;padding-bottom:18px;border-bottom:1px dashed var(--cork)}
.fixtures__title{display:grid;gap:14px;justify-items:start}
.fixtures__tools{display:grid;gap:10px;justify-items:end}
.fixtures__filters,.fixtures__weeks{display:flex;flex-wrap:wrap;gap:8px}
.fixtures__weeks .chip[disabled]{opacity:.4;cursor:default}
.fixtures__period{margin-top:16px;font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}
.fixtures__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:28px clamp(24px,4vw,56px)}
.fixtures__plan{position:sticky;top:88px;display:grid;gap:14px;margin-top:20px;padding:18px;border:1px solid var(--cork);border-radius:var(--r-card);background:rgb(10 19 48 / .55);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.fixtures__plan:focus{outline:none}
.fixtures__days{margin:0;padding:0;list-style:none}
.day--tbc .day__name{color:var(--muted)}
.day__note{grid-column:2;font:400 .8125rem/1.4 var(--f-text);color:var(--muted)}
.fixture--home{border-left:4px solid var(--gold)}
.fixture--away{border-left:4px solid var(--driftwood)}
.fixture__venue{font-weight:600}
.fixture--home .fixture__venue{color:var(--gold)}
.fixture.is-selected{border-color:var(--gold);background:rgb(242 183 5 / .1);box-shadow:0 0 0 1px var(--gold)}
.fixture:focus{outline:none}
.fixture:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
button.fixture__field{padding:0 0 3px;border:0;border-bottom:1px solid currentColor;background:none;color:var(--cream);cursor:pointer}
button.fixture__field:hover,button.fixture__field[aria-pressed="true"]{color:var(--gold)}
.fixture__field.fixture__field--tbc{border-bottom-style:dashed;color:var(--muted)}
.fixture__field.fixture__field--away{max-width:13em;padding-bottom:0;border-bottom:0;white-space:normal;text-transform:none;font:400 .875rem/1.3 var(--f-text);color:var(--muted)}
.fixture__stadium,.fixture__address{display:block}
.fixture__stadium{font-weight:500;color:var(--cream)}
.fixture__address{margin-top:3px}
.day{display:grid;grid-template-columns:minmax(0,.32fr) minmax(0,1fr);align-items:start;gap:12px 24px;padding:20px 0;border-bottom:1px dashed var(--cork)}
.day__name{padding-top:6px;font:500 var(--t-heading-sm)/1.1 var(--f-display);text-transform:uppercase}
.day--empty .day__name{color:var(--driftwood)}
.day__none{padding-top:8px;font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.day__matches{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.fixture{display:grid;grid-template-columns:auto auto minmax(8.5em,1fr) auto;align-items:center;gap:12px 22px;padding:14px 20px;border:1px solid var(--cork);border-radius:var(--r-card);transition:border-color .4s,background-color .4s}
.fixture:hover,.fixture.is-hot{border-color:var(--driftwood);background:rgb(255 237 215 / .05)}
.fixture__time{min-width:4.6em;font:500 var(--t-heading-sm)/1 var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.fixture__cat{justify-self:start;padding:7px 12px;border-radius:var(--r-ghost);background:var(--cream);color:var(--walnut);font:500 var(--t-ui)/1 var(--f-text)}
.fixture__opp{display:grid;gap:5px;min-width:0;font:500 1rem/1.3 var(--f-text);text-transform:uppercase}
.fixture__comp{font:500 var(--t-micro)/1 var(--f-text);color:var(--muted)}
.fixture__field{padding-bottom:3px;border-bottom:1px solid currentColor;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;text-decoration:none;white-space:nowrap}
/* Les cartes de match s’adaptent à la largeur réelle de leur colonne (calendrier seul ou à côté du plan) */
.fixtures__list{container:fixlist / inline-size}
.day__matches{container:fixcards / inline-size}
@container fixlist (max-width:560px){
  .day{grid-template-columns:minmax(0,1fr)}
  .day__note{grid-column:auto}
}
@container fixcards (max-width:540px){
  .fixture{grid-template-columns:auto auto minmax(0,1fr)}
  .fixture__field{grid-column:1/-1;justify-self:start}
}
@container fixcards (max-width:360px){
  .fixture{grid-template-columns:auto minmax(0,1fr);padding:14px 16px}
  .fixture__opp{grid-column:1/-1}
  .fixture__field{white-space:normal;line-height:1.3}
}
/* Résultats et classements : un seul accès, vers la page Score’n’co du club */
.results{margin-top:clamp(40px,6vw,72px)}
.results__card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:22px clamp(24px,4vw,56px);padding:clamp(22px,3vw,36px);border:1px solid var(--cork);border-radius:var(--r-card);background:rgb(10 19 48 / .35)}
.results__text{display:grid;gap:12px;justify-items:start}
.results__body{max-width:40rem;font:400 1rem/1.55 var(--f-text);color:var(--muted)}
@keyframes ping{from{transform:scale(.4);opacity:1}to{transform:scale(1.7);opacity:0}}

/* ---------- Maillots ---------- */
.kits__switch{display:none;flex-wrap:wrap;gap:10px}
.kits__stage{position:relative;justify-self:center;width:min(calc(var(--crest-h) * 1.15),100%);max-width:100%}
.kits__spin{display:grid;grid-template-columns:1fr 1fr;gap:var(--gap)}
.kit{display:grid;justify-items:center;gap:14px;margin:0}
.kit__inner{width:100%}
.kit__svg{width:100%;height:auto;overflow:visible}
.kit figcaption{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase;text-align:center}
.kit figcaption span+span{color:var(--muted)}
.kit--home .kit__body{fill:var(--gold)}
.kit--home .kit__trim{fill:var(--navy)}
.kit--home .kit__collar{stroke:var(--navy)}
.kit--away .kit__body{fill:var(--night)}
.kit--away .kit__trim{fill:var(--braise)}
.kit--away .kit__collar{stroke:var(--braise)}
.kit__collar{fill:none;stroke-width:7;stroke-linecap:round}

/* Le choix du maillot n’existe qu’avec les animations : sinon, les deux maillots sont affichés côte à côte */
.is-enhanced .kits__switch{display:flex}
.is-enhanced .kits__stage{height:var(--crest-h);aspect-ratio:1/1;width:auto;perspective:1100px}
.is-enhanced .kits__spin{position:absolute;inset:0;display:block;transform-style:preserve-3d}
.is-enhanced .kit{position:absolute;inset:0;grid-template-rows:1fr auto;perspective:900px;cursor:pointer}
.is-enhanced .kit__inner{width:80%;align-self:center;transform-style:preserve-3d}
.is-enhanced .kit figcaption{opacity:0;transition:opacity .6s}
.is-enhanced .kit.is-front figcaption{opacity:1}

/* ---------- Actualités ---------- */
.news{position:relative;z-index:10;padding-block:var(--section-y)}
/* L’annonce principale sur toute la largeur, puis les partenariats côte à côte */
.news__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:var(--gap);margin-top:56px}
.card{display:grid;gap:18px;min-width:0;text-decoration:none}
.card--lead{grid-column:1/-1;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;column-gap:clamp(24px,4vw,56px)}
.card__media{position:relative;display:grid;place-items:center;aspect-ratio:4/3;max-width:100%;overflow:hidden;isolation:isolate;border-radius:var(--r-card);background:var(--bark)}
.card--lead .card__media{aspect-ratio:16/11;border:1px solid var(--cork);background:radial-gradient(circle at 72% 22%,rgb(220 80 0 / .24),rgb(220 80 0 / 0) 60%),var(--walnut)}
.card__media img,.card__media svg{transition:transform 1.2s var(--ease-out)}
.card__media--crest img{width:44%;height:auto}
.card__media--logo{background:var(--cream)}
.card__media--logo img{width:62%;height:auto}
.card__media--noir{background:#000}
.card__media--noir .card__tag{border-color:var(--cream);color:var(--cream)}
.card__media--logo .card__tag{border-color:var(--walnut);background:transparent;color:var(--walnut)}
.card__media--logo.card__media--noir .card__tag{border-color:var(--cream);color:var(--cream)}
.card__media--blanc{background:#fff}
.card:hover .card__media--crest img{transform:scale(1.08) rotate(-4deg)}
.card:hover .card__media--logo img{transform:scale(1.07)}
.card__tag{position:absolute;left:14px;top:14px;padding:7px 12px;border:1px solid var(--cream);border-radius:var(--r-ghost);background:rgb(10 19 48 / .35);font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;transition:background-color .45s,color .45s}
.card:hover .card__tag{background:var(--cream);color:var(--walnut)}
.card__body{display:grid;gap:10px;align-content:start;justify-items:start}
.card__title{margin:0;font:500 var(--t-heading-sm)/1.08 var(--f-display);text-transform:uppercase}
.card--lead .card__title{font-size:clamp(1.5rem,2.4vw,2.25rem);line-height:.98}
.card__title span{padding-bottom:2px;background:linear-gradient(var(--cream),var(--cream)) 0 100%/0 1px no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone;transition:background-size .8s var(--ease-out)}
.card:hover .card__title span,.card:focus-visible .card__title span{background-size:100% 1px}
.card__text{font:400 .9375rem/1.5 var(--f-text);color:var(--muted);max-width:34em}

/* ---------- Les Senets ---------- */
.senets{position:relative;z-index:10;padding-block:var(--section-y)}
.senets__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(32px,6vw,96px)}
.senets__copy{display:grid;gap:22px;justify-items:start}
.address{padding-left:14px;border-left:1px dashed var(--driftwood);font:500 var(--t-ui)/1.65 var(--f-text);font-style:normal;text-transform:uppercase}
/* Plan de la plaine de jeux */
/* Un seul repère pour tout le plan (viewBox 942 × 676, celui du plan de la Ville de Nevers) :
   rues, emprise, allées, équipements et terrains se mettent à l’échelle ensemble */
.plan{display:grid;gap:14px;margin:0}
.plan__svg{display:block;width:100%;height:auto;overflow:hidden}
.road{fill:none;stroke:rgb(255 237 215 / .15);stroke-width:24;stroke-linejoin:round}
.road--minor{stroke-width:16}
.is-enhanced .road{stroke-dasharray:1 1}
.site{fill:rgb(126 168 96 / .14);stroke:rgb(255 237 215 / .24);stroke-width:1.5;stroke-linejoin:round}
.walk{fill:none;stroke:rgb(255 237 215 / .3);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.walk--light{stroke-width:4;stroke-dasharray:3 8}
.park{fill:rgb(214 205 194 / .2);stroke:rgb(214 205 194 / .45);stroke-width:1.5}
.bldg{fill:rgb(255 237 215 / .55)}
.court{fill:rgb(64 150 128 / .45);stroke:rgb(255 237 215 / .45);stroke-width:1.2}
.sand-bed{fill:rgb(214 196 166 / .14)}
.road-label{fill:var(--muted);font:500 13px var(--f-text);text-transform:uppercase;letter-spacing:.1em}
.poi-label{fill:var(--cream);font:500 14px var(--f-text);text-transform:uppercase;letter-spacing:.08em}
.north line{stroke:var(--muted);stroke-width:2}
.north path{fill:var(--muted)}
.north text{fill:var(--muted);font:500 15px var(--f-text)}
.field{cursor:pointer;outline:none}
.field__surface{fill:rgb(63 111 60 / .55);transition:fill .4s}
.field__ring{fill:none;stroke:transparent;stroke-width:2;vector-effect:non-scaling-stroke}
.field--sand .field__surface{fill:url(#sand)}
.field use,.field__outline{fill:none;stroke:var(--cream);stroke-width:1;stroke-opacity:.5;transition:stroke-opacity .4s}
.field__outline{stroke-dasharray:4 4}
.field__pin{transform-origin:0 0;transition:transform .4s var(--ease-out)}
.field__badge circle{fill:var(--walnut);stroke:var(--cream);stroke-width:2;transform-box:fill-box;transform-origin:center;transition:fill .4s}
.field__badge text{fill:var(--cream);font:500 18px var(--f-display);text-anchor:middle;transition:fill .4s}
.plan .field .field__badge .field__count circle{fill:var(--gold);stroke:var(--walnut);stroke-width:2}
.plan .field .field__badge .field__count text{fill:var(--walnut);font:600 13px var(--f-text)}
/* Nom d’usage d’un terrain (terrain d’honneur), sous son numéro ; un liseré sombre le garde lisible sur toutes les surfaces */
.plan .field .field__badge .field__name{fill:var(--cream);font:600 12px var(--f-text);letter-spacing:.06em;text-transform:uppercase;paint-order:stroke;stroke:rgb(10 19 48 / .8);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}
.field:hover .field__surface,.field:focus-visible .field__surface,.field.is-hot .field__surface{fill:var(--bark)}
.field:hover use,.field:focus-visible use,.field.is-hot use,.field:hover .field__outline{stroke-opacity:1}
.field:focus-visible .field__badge circle{stroke-width:2}
.field.has-match .field__surface{fill:rgb(98 168 86 / .7)}
.field.has-match .field__ring{stroke:var(--gold);stroke-dasharray:4 3}
.field.has-match .field__badge circle{fill:var(--cream)}
.field.has-match .field__badge text{fill:var(--walnut)}
.field.is-selected .field__surface{fill:rgb(242 183 5 / .42)}
.field.is-selected .field__ring{stroke:var(--gold);stroke-width:3.2;stroke-dasharray:none;filter:drop-shadow(0 0 4px rgb(242 183 5 / .9))}
.field.is-selected .field__badge circle{fill:var(--gold);stroke:var(--walnut)}
.field.is-selected .field__badge text{fill:var(--walnut)}
.field:focus-visible .field__ring{stroke:var(--cream);stroke-width:2.4;stroke-dasharray:none}
.field.is-ping .field__pin>circle{animation:fieldPing .9s var(--ease-out) 3}
@keyframes fieldPing{40%{transform:scale(1.7)}}
/* Résumé du match sous le terrain : la taille du texte est calculée par le script pour rester lisible à toutes les largeurs */
.field-tags{cursor:pointer}
.field-tags rect{fill:var(--walnut);stroke:var(--gold);stroke-width:1;vector-effect:non-scaling-stroke}
.field-tags text{fill:var(--cream);font-family:var(--f-text);font-weight:500;text-anchor:middle}
.field-tags .field-tag__date{fill:var(--gold)}
.field-tags line{stroke:var(--gold);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;pointer-events:none}
.field-tags circle{fill:var(--gold);pointer-events:none}
.plan__caption{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px}
.plan__legend{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none;font:500 var(--t-micro)/1.3 var(--f-text);text-transform:uppercase;color:var(--muted)}
.plan__legend li{display:inline-flex;align-items:center;gap:8px}
.plan__marks{display:grid;gap:6px;margin:0;padding:0;list-style:none;font:400 .8125rem/1.4 var(--f-text);color:var(--muted)}
.plan__marks li{display:flex;align-items:baseline;gap:8px}
.mk{flex:none;width:14px;height:10px;border-radius:2px;transform:translateY(1px)}
.mk--walk{height:4px;border-radius:2px;background:rgb(255 237 215 / .45);transform:translateY(-3px)}
.mk--bldg{background:rgb(255 237 215 / .6)}
.mk--court{background:rgb(64 150 128 / .7);outline:1px solid rgb(255 237 215 / .5)}
.plan__marks .plan__streets{display:none}
/* Plan étroit (téléphone, colonne de tablette) : pastilles agrandies, noms de rues reportés dans la légende */
.fixtures__plan{container:plan / inline-size}
@container plan (max-width:500px){
  .map-labels .road-label,.plan .field .field__badge .field__name{display:none}
  .field__pin{transform:scale(1.45)}
  .plan__marks .plan__streets{display:block}
}
.lg{flex:none;width:20px;height:12px;border-radius:3px;background:rgb(63 111 60 / .8)}
.lg--match{background:rgb(98 168 86 / .9);outline:1.5px dashed var(--gold);outline-offset:1px}
.lg--sel{background:rgb(242 183 5 / .6);outline:2px solid var(--gold);outline-offset:1px}
.field-chips{display:flex;flex-wrap:wrap;gap:6px}
.field-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:40px;padding:0 10px;border:1px solid var(--cork);border-radius:10px;background:none;color:var(--cream);font:500 var(--t-ui)/1 var(--f-text);cursor:pointer;transition:background-color .3s,border-color .3s,color .3s}
.field-chip b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:var(--gold);color:var(--walnut);font-size:.6875rem}
.field-chip.has-match{border:1px dashed var(--gold)}
.field-chip:hover{border-color:var(--cream)}
.field-chip[aria-pressed="true"]{border:1px solid var(--gold);background:var(--gold);color:var(--walnut)}
.field-chip[aria-pressed="true"] b{background:var(--walnut);color:var(--gold)}
.field-panel{display:grid;gap:10px;padding:14px 16px;border:1px dashed var(--cork);border-radius:var(--r-card);background:rgb(255 237 215 / .05)}
.field-panel:focus{outline:none}
.field-panel__title{font:500 var(--t-heading-sm)/1 var(--f-display);text-transform:uppercase}
.field-panel__text{font:400 .9rem/1.5 var(--f-text);color:var(--muted)}
.field-panel__list{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.field-panel__list li{display:grid;gap:5px;padding:10px 12px;border-radius:10px;background:rgb(10 19 48 / .55);font:500 .9375rem/1.35 var(--f-text)}
.field-panel__list span{font:500 var(--t-micro)/1.35 var(--f-text);text-transform:uppercase;color:var(--muted)}
.field-panel__back,.field-panel__clear{justify-self:start;padding:0 0 2px;border:0;border-bottom:1px solid currentColor;background:none;color:var(--cream);font:500 var(--t-micro)/1.4 var(--f-text);text-transform:uppercase;cursor:pointer}
.field-panel__back:hover,.field-panel__clear:hover{color:var(--gold)}
.plan__where{font:400 .8125rem/1.5 var(--f-text);color:var(--muted)}
.plan__where a{color:var(--cream)}
@media (max-width:1023px){
  .fixtures__grid{grid-template-columns:minmax(0,1fr)}
  .fixtures__plan{position:static}
  .fixtures__tools{justify-items:start}
}
@media (max-width:860px){
  .day__note{grid-column:auto}
}

/* ---------- Partenaires ---------- */
.partners{position:relative;z-index:10;padding-block:var(--section-y)}
.partners__intro{display:grid;gap:22px;justify-items:start}

/* Pastilles de statut */
.tier{display:inline-flex;align-items:center;gap:10px;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em}
.tier i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--tc,var(--cream))}
.tier--bronze{--tc:radial-gradient(circle at 35% 30%,#f2c29a,var(--bronze) 55%,#6e3f1f)}
.tier--argent{--tc:radial-gradient(circle at 35% 30%,#ffffff,var(--silver) 55%,#7d776f)}
.tier--or{--tc:radial-gradient(circle at 35% 30%,#fff1b8,var(--gold-tier) 55%,#8a6100)}
.tier--platine{--tc:radial-gradient(circle at 35% 30%,#f4f7fb,var(--platine) 55%,#4f5d70)}
.tier--premium{--tc:radial-gradient(circle at 35% 30%,#ffe2a6,var(--sun) 55%,#a54b00)}

/* Partenaire Premium */
.pspot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:var(--gap);min-height:min(86vh,820px);margin-top:clamp(48px,8vw,96px);padding-block:clamp(40px,6vw,72px);border-block:1px dashed var(--cork)}
.pspot__side{display:grid;gap:20px;justify-items:start;min-width:0}
.pspot__side--right{padding-left:clamp(0px,1.5vw,24px)}
.pspot__name{margin:0;font:500 var(--t-display)/1.02 var(--f-display);text-transform:uppercase;text-wrap:balance}
.pspot__text{font:400 1.0625rem/1.55 var(--f-text);color:var(--muted);max-width:26em}
.pspot__quote{font:400 var(--t-body)/1.26 var(--f-text);max-width:15em}
.pspot__chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.pspot__chips li{padding:8px 14px;border:1px solid var(--driftwood);border-radius:var(--r-ghost);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase}
.pspot__stage{position:relative;display:grid;place-items:center;aspect-ratio:1/1;max-width:100%;perspective:1100px}
.pspot__glow{position:absolute;inset:4%;border-radius:50%;background:radial-gradient(closest-side,rgb(244 165 28 / .42),rgb(220 80 0 / .12) 55%,rgb(220 80 0 / 0) 78%);animation:breathe 4.5s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(.92);opacity:.75}50%{transform:scale(1.06);opacity:1}}
.pspot__tilt{position:relative;display:grid;place-items:center;width:100%;transform-style:preserve-3d}
.pspot__plaque{position:relative;display:grid;place-items:center;width:86%;aspect-ratio:1.6/1;max-width:100%;padding:9% 10%;overflow:hidden;border-radius:var(--r-card);background:var(--cream);text-decoration:none}
.pspot__plaque:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.pspot__plaque img{width:100%;height:auto}
.pspot__plaque--noir{padding:6% 7%;background:#000}
.pspot__sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,rgb(255 255 255 / 0) 36%,rgb(255 255 255 / .7) 48%,rgb(255 255 255 / 0) 60%);background-size:280% 100%;background-position:var(--sx,130%) 0}

/* Partenaire institutionnel, Or et Argent : logo officiel sur sa plaque, lien vers le site du partenaire */
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap)}
.pcard{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:18px;align-content:start;padding:24px;border:1px solid var(--cork);border-radius:var(--r-card);transition:border-color .5s,background-color .5s}
.pcard:hover{border-color:var(--driftwood);background:rgb(29 52 112 / .35)}
.pcard__plaque{position:relative;display:grid;place-items:center;aspect-ratio:2.4/1;max-width:100%;overflow:hidden;border-radius:var(--r-card);background:var(--cream)}
.pcard__plaque--logo{background:#fff;text-decoration:none}
.pcard__plaque--logo:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
/* Le logo entier, sans déformation ni agrandissement au-delà de sa taille réelle : il occupe la plaque au plus près de ses bords */
.pcard__plaque--logo img{position:absolute;inset:0;width:auto;height:auto;max-width:74%;max-height:58%;margin:auto;transition:transform 1.1s var(--ease-out)}
.pcard:hover .pcard__plaque--logo img{transform:scale(1.04)}
/* Ville de Nevers : logo blanc sur le bleu de la Ville ; logo plus haut que large, il prend davantage de hauteur */
.pcard__plaque--ville{background:#2300cb}
.pcard__plaque--logo.pcard__plaque--ville img{max-height:80%}
.tier--ville{--tc:radial-gradient(circle at 35% 30%,#c9c9ff,#2f2fd9 55%,#15157a)}
.pcard__sheen{position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,rgb(255 255 255 / 0) 36%,rgb(255 255 255 / .75) 48%,rgb(255 255 255 / 0) 60%);background-size:280% 100%;background-position:130% 0;transition:background-position 1.2s var(--ease-out)}
.pcard:hover .pcard__sheen{background-position:-30% 0}
.pcard__text{font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.visit-link{display:inline-flex;align-items:center;gap:8px;justify-self:start;padding:10px 0 3px;border-bottom:1px solid currentColor;color:var(--gold);font:500 var(--t-ui)/1.4 var(--f-text);text-transform:uppercase;letter-spacing:.02em;text-decoration:none;transition:color .3s}
.visit-link:hover,.visit-link:focus-visible{color:var(--cream)}

/* Les statuts partenaires */
/* Affiliations : encart distinct des partenaires commerciaux, sans logo */
.affil{display:grid;gap:14px;margin-top:var(--gap);padding:24px;border:1px dashed var(--driftwood);border-radius:var(--r-card)}
.affil__title{margin:0;font:500 var(--t-ui)/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.04em}
.affil__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,max(270px,calc(50% - 16px))),1fr));gap:4px 32px;margin:0;padding:0;list-style:none}
.affil__link{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:48px;padding:8px 0;border-bottom:1px solid var(--cork);color:var(--cream);font:500 1rem/1.35 var(--f-text);text-decoration:none;transition:color .3s,border-color .3s}
.affil__arrow{flex:none;color:var(--gold)}
.affil__link:hover,.affil__link:focus-visible{color:var(--gold);border-color:var(--gold)}
.affil__note{margin:0;font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.offer{margin-top:clamp(72px,10vw,128px)}
.offer__head{display:grid;gap:16px;justify-items:start;max-width:46rem}
.offer__intro{font:400 1rem/1.5 var(--f-text);color:var(--muted);max-width:36em}
/* Montants et modalités sur demande, auprès du contact partenariat en bas de page */
.offer__note{max-width:40rem;padding:14px 18px;border:1px solid var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .12),rgb(242 183 5 / .02) 60%);font:400 1rem/1.5 var(--f-text)}
.offer__note a{color:var(--gold)}
.offer__note a:hover,.offer__note a:focus-visible{color:var(--cream)}
.packs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap);margin:40px 0 0;padding:0;list-style:none}
.pack{position:relative;display:flex;flex-direction:column;gap:14px;padding:24px 22px;overflow:hidden;isolation:isolate;border:1px solid var(--cork);border-radius:var(--r-card);transition:border-color .6s}
.pack::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bark);transform:translateY(101%);transition:transform .9s var(--ease-out)}
.pack:hover{border-color:var(--bark)}
.pack:hover::before{transform:none}
.pack .tier i{transition:transform .6s var(--ease-out)}
.pack:hover .tier i{transform:scale(1.5)}
.pack__price{font:500 clamp(2rem,2.8vw,2.75rem)/.95 var(--f-display);font-variant-numeric:tabular-nums;white-space:nowrap}
.pack__price span{margin-left:4px;font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;color:var(--muted)}
.pack__price--sm{font-size:clamp(1.6rem,2.2vw,2.1rem)}
.pack__plus{padding-top:12px;border-top:1px dashed var(--cork);font:500 var(--t-micro)/1.3 var(--f-text);text-transform:uppercase;color:var(--muted)}
.pack__list{display:grid;gap:8px;margin:0;padding:0;list-style:none;font:400 .9375rem/1.4 var(--f-text)}
.pack__list li{position:relative;padding-left:14px}
.pack__list li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:1px;background:var(--cream)}
.pack__holders{margin-top:auto;padding-top:14px;border-top:1px dashed var(--cork);font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase}
.pack__holders::before{content:"Partenaire actuel · ";color:var(--muted)}
.pack--premium{border-color:var(--driftwood);background:linear-gradient(160deg,rgb(244 165 28 / .1),rgb(244 165 28 / 0) 55%)}

/* Ce que le soutien rend possible */
.ambitions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:28px 56px;margin-top:clamp(72px,10vw,128px)}
.ambitions__head{display:grid;gap:16px;justify-items:start}
.ambitions__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;list-style:none;border-top:1px dashed var(--cork)}
.amb{padding:18px 18px 18px 0;border-bottom:1px dashed var(--cork);font:500 var(--t-heading-sm)/1.1 var(--f-display);text-transform:uppercase;transition:transform .6s var(--ease-out)}
.amb:hover{transform:translateX(6px)}
.ambitions__tax{grid-column:1/-1;max-width:60rem}

/* Contact partenariat */
.pcontact{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:24px 40px;margin-top:clamp(56px,8vw,96px);padding:28px;border:1px solid var(--driftwood);border-radius:var(--r-card)}
.pcontact__who{display:grid;gap:8px}
.pcontact__name{font:500 var(--t-heading)/.95 var(--f-display);text-transform:uppercase}
.pcontact__role{font:400 .9375rem/1.45 var(--f-text);color:var(--muted)}
.pcontact__phone{display:grid;gap:8px;justify-items:start}

/* ---------- Organisation ---------- */
.org{position:relative;z-index:10;padding-block:var(--section-y)}
.org__head{display:grid;gap:16px;justify-items:start;margin-bottom:36px}
.genese{margin-top:clamp(56px,8vw,96px)}
.timeline{position:relative;margin-top:28px}
.timeline__line{position:absolute;left:0;right:0;top:7px;height:1px;background:repeating-linear-gradient(90deg,var(--driftwood) 0 4px,transparent 4px 8px)}
.timeline__line i{position:absolute;inset:0;background:var(--cream);transform-origin:left center;transform:scaleX(var(--p,1))}
.timeline__list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}
.tl{position:relative;display:grid;gap:10px;align-content:start;padding-top:32px}
.tl::before{content:"";position:absolute;left:0;top:2px;width:11px;height:11px;border:1px solid var(--cream);border-radius:50%;background:var(--walnut)}
.tl--next::before{background:var(--cream)}
.tl__date{font:500 var(--t-heading-sm)/1.05 var(--f-display);text-transform:uppercase}
.tl__text{font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.gov,.poles-wrap,.statuts{margin-top:clamp(72px,10vw,128px)}
.gov__top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.person{display:grid;grid-template-rows:auto 1fr;gap:10px;padding:22px;border:1px solid var(--cork);border-radius:var(--r-card)}
.person__name{align-self:end}
.person--lead{border-color:var(--bark);background:var(--bark)}
.person__role{font:500 var(--t-micro)/1.35 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.person--lead .person__role{color:var(--cream)}
.person__name{font:500 var(--t-heading-sm)/1.05 var(--f-display);text-transform:uppercase}
.gov__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 var(--gap);margin-top:var(--gap);border-top:1px dashed var(--cork)}
/* Sur une même ligne, les noms commencent à la même hauteur, que l’intitulé tienne sur une ou deux lignes */
.group{display:grid;grid-template-rows:subgrid;grid-row:span 2;align-content:start;padding:18px 0;border-bottom:1px dashed var(--cork)}
.group__role{margin-bottom:8px;font:500 var(--t-micro)/1.35 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-wrap:balance}
.group ul{display:grid;align-content:start;gap:4px;margin:0;padding:0;list-style:none;font:400 1rem/1.35 var(--f-text)}
.group__task{display:block;margin-bottom:4px;font:400 .8125rem/1.35 var(--f-text);color:var(--muted)}
.group__name{margin:0;font:400 1rem/1.35 var(--f-text)}
.group__open{font:400 .9375rem/1.4 var(--f-text);color:var(--driftwood)}
.poles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;margin:0;border-top:1px dashed var(--cork)}
.pole{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:8px 20px;padding:18px 0;border-bottom:1px dashed var(--cork)}
.pole dt{font:500 var(--t-ui)/1.35 var(--f-text);text-transform:uppercase;color:var(--muted)}
.pole dd{margin:0;font:500 1rem/1.4 var(--f-text)}
.pole dd small{margin-left:6px;padding:2px 7px;border:1px solid var(--driftwood);border-radius:var(--r-ghost);font:500 var(--t-micro)/1 var(--f-text);color:var(--muted);vertical-align:middle}
.pole dd span{display:block;margin-top:5px;font:400 .875rem/1.45 var(--f-text);color:var(--muted)}
.pole--open dd{color:var(--driftwood)}
.statuts__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:0}
.stat{display:grid;gap:10px;align-content:start;padding:22px;border:1px solid var(--cork);border-radius:var(--r-card)}
.stat dt{font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;color:var(--muted)}
.stat dd{margin:0;font:400 .9375rem/1.55 var(--f-text)}

/* ---------- Rejoindre ---------- */
.join{position:relative;z-index:10;padding-block:var(--section-y)}
.join__list{margin:56px 0 0;padding:0;list-style:none;border-top:1px dashed var(--cork)}
.join__row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:center;gap:24px;padding:clamp(20px,3vw,32px) 0;overflow:hidden;isolation:isolate;border-bottom:1px dashed var(--cork);text-decoration:none}
.join__row::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bark);transform:scaleY(0);transform-origin:50% 100%;transition:transform .7s var(--ease-out)}
.join__row:hover::before,.join__row:focus-visible::before{transform:scaleY(1)}
.join__word{font:500 var(--t-display)/.9 var(--f-display);text-transform:uppercase;transition:transform .8s var(--ease-out)}
.join__row:hover .join__word,.join__row:focus-visible .join__word{transform:translateX(24px)}
.join__desc{font:400 var(--t-heading-sm)/1.3 var(--f-text);color:var(--muted);transition:color .5s}
.join__row:hover .join__desc{color:var(--cream)}
.join__arrow{display:grid;place-items:center;width:58px;height:58px;margin-right:24px;border:1px solid var(--cream);border-radius:50%;font:400 1.25rem/1 var(--f-text);transition:transform .8s var(--ease-out),background-color .45s,color .45s}
.join__row:hover .join__arrow,.join__row:focus-visible .join__arrow{transform:rotate(-45deg);background:var(--cream);color:var(--walnut)}

/* ---------- Réseaux ---------- */
.social{position:relative;z-index:10;padding-block:var(--section-y)}
.social__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin:56px 0 0;padding:0;list-style:none}
.social__grid>li{display:grid}
.tile{position:relative;display:grid;align-content:start;gap:10px;min-height:230px;padding:24px;overflow:hidden;isolation:isolate;border:1px solid var(--cork);border-radius:var(--r-card);text-decoration:none;transition:color .5s,border-color .5s}
.tile::before{content:"";position:absolute;right:-40%;bottom:-40%;z-index:-1;width:180%;aspect-ratio:1;border-radius:50%;background:var(--cream);transform:scale(0);transform-origin:100% 100%;transition:transform .9s var(--ease-out)}
a.tile:hover,a.tile:focus-visible{color:var(--walnut);border-color:var(--cream)}
a.tile:hover::before,a.tile:focus-visible::before{transform:scale(1)}
.tile__name{margin-top:auto;font:500 var(--t-heading-sm)/1.05 var(--f-display);text-transform:uppercase;overflow-wrap:anywhere}
.tile__desc{font:400 .875rem/1.45 var(--f-text);color:var(--muted);transition:color .5s}
a.tile:hover .tile__desc,a.tile:focus-visible .tile__desc{color:var(--bark)}
.tile__arrow{position:absolute;right:22px;top:20px;font:400 1.25rem/1 var(--f-text);transition:transform .7s var(--ease-out)}
a.tile:hover .tile__arrow{transform:translate(5px,-5px)}
.tile--soon{border-style:dashed;color:var(--muted)}

/* ---------- Contact ---------- */
.footer{position:relative;z-index:10;padding-block:var(--section-y) calc(28px + env(safe-area-inset-bottom,0px));border-top:1px dashed var(--cork)}
.footer__big{margin:22px 0 clamp(48px,8vw,96px);font:500 clamp(3rem,13vw,14rem)/.84 var(--f-display);text-transform:uppercase}
.footer__big>span{display:block}
.fw{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:top;padding-top:.06em;margin-top:-.06em}
.fc{display:inline-block;transition:transform .6s var(--ease-out)}
.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:32px var(--gap);padding-top:28px;border-top:1px dashed var(--cork)}
.footer__col{display:grid;gap:12px;align-content:start;justify-items:start;min-width:0;font:400 .9375rem/1.55 var(--f-text)}
.footer__col address{font-style:normal}
.footer__tel{padding-block:4px;color:var(--cream);font:500 1rem/1.3 var(--f-text);text-decoration:none;border-bottom:1px solid var(--driftwood);transition:border-color .3s}
.footer__tel:hover,.footer__tel:focus-visible{border-color:var(--cream)}
.footer__links{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.footer__links a{background:linear-gradient(var(--cream),var(--cream)) 0 100%/0 1px no-repeat;text-decoration:none;transition:background-size .6s var(--ease-out)}
.footer__links a:hover,.footer__links a:focus-visible{background-size:100% 1px}
/* Adresse e-mail en clair (lien vers la messagerie du visiteur), suivie d’un bouton « Copier l’adresse e-mail » et de sa confirmation */
.mail{display:inline-block;max-width:100%;padding:4px 0 7px;border-bottom:1px solid var(--cream);color:var(--cream);font:500 clamp(1rem,1.4vw,1.25rem)/1.3 var(--f-text);text-decoration:none;overflow-wrap:anywhere;transition:color .3s,border-color .3s}
.mail:hover,.mail:focus-visible{color:var(--gold);border-color:var(--gold)}
.copy-note{min-height:1.4em;color:var(--gold)}
.footer__replay{padding:0 0 3px;border:0;border-bottom:1px solid currentColor;background:none;color:var(--cream);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;cursor:pointer}
.footer__legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;margin-top:clamp(48px,7vw,88px);font:500 var(--t-micro)/1.4 var(--f-legal);text-transform:uppercase;color:var(--muted)}
.footer__law{display:flex;flex-wrap:wrap;gap:4px 22px;font-size:var(--t-ui)}
.footer__law a{display:inline-block;padding-block:7px;color:var(--cream);text-decoration:none;border-bottom:1px solid var(--driftwood);transition:border-color .3s,color .3s}
.footer__law a:hover,.footer__law a:focus-visible{border-color:var(--cream)}
.footer__law a[aria-current="page"]{color:var(--gold);border-color:var(--gold)}

/* ---------- Écrans moyens ---------- */
@media (max-width:1180px){
  .nav__links{display:none}
  .nav__menu{display:inline-flex}
}
@media (max-width:1100px){
  .figures__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .figure:nth-child(2){border-right:0}
  .figure:nth-child(-n+2){padding-bottom:28px;border-bottom:1px dashed var(--cork)}
  .figure:nth-child(3){padding-left:0}
  .social__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer__grid{grid-template-columns:1fr 1fr}
  .packs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ambitions{grid-template-columns:minmax(0,1fr)}
  .statuts__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .timeline__line{left:5px;right:auto;top:0;bottom:0;width:1px;height:auto;background:repeating-linear-gradient(180deg,var(--driftwood) 0 4px,transparent 4px 8px)}
  .timeline__line i{transform-origin:center top;transform:scaleY(var(--p,1))}
  .timeline__list{grid-template-columns:minmax(0,1fr);gap:26px}
  .tl{padding:0 0 0 32px}
  .tl::before{top:3px}
}

/* ---------- Téléphones et tablettes portrait ---------- */
@media (max-width:860px){
  .nav__links,.nav__cta,.nav__partners,.hero__partner{display:none}
  .nav__menu{display:inline-flex}
  .sidebar{display:none}
  .pstrip__label{padding:0 14px 0 var(--gutter)}
  .pspot{grid-template-columns:minmax(0,1fr);min-height:0;gap:28px}
  .pspot__stage{width:min(100%,440px);justify-self:center}
  .pspot__side--right{padding-left:0}
  .pcards,.pcontact,.poles,.pole,.statuts__list{grid-template-columns:minmax(0,1fr)}
  .packs,.ambitions__list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .poles{gap:0}
  .hero__corner--center{display:none}
  .hero__corner--left{right:var(--gutter-r);bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  .hero__card{width:auto;padding:14px 16px}
  .hero__card .dash,.hero__card-text{display:none}
  .hero__corner--right{right:var(--gutter-r);bottom:calc(92px + env(safe-area-inset-bottom,0px))}
  .hero__video{padding:7px 16px 7px 7px}
  .hero__thumb{width:58px;height:58px}
  .hero__thumb img{width:34px}

  .void__grid{grid-template-columns:minmax(0,1fr);justify-items:stretch;row-gap:28px}
  .void__anchor{justify-self:center}
  .void__side--right{padding-left:0}
  .kits__stage{justify-self:center}
  .is-enhanced .kits__stage{width:min(100%,var(--crest-h));height:auto}

  .symbols__grid{grid-template-columns:minmax(0,1fr)}
  .symbols__progress span{display:none}
  /* Écran épinglé sur téléphone : tout tient dans la hauteur, repères compris */
  .is-enhanced .symbols__hint{display:none}
  .is-enhanced .symbols__intro{gap:10px}
  .is-enhanced .credit-nolan{padding:0;border:0;font-size:.8125rem;gap:4px 12px}

  .section-head--split{grid-template-columns:minmax(0,1fr)}
  .section-head--split>:last-child{justify-self:start}
  .senets__grid{grid-template-columns:minmax(0,1fr)}
  .matchday__grid{grid-template-columns:minmax(0,1fr)}
  .join__row{grid-template-columns:minmax(0,1fr) auto;row-gap:10px}
  .join__desc{grid-column:1;grid-row:2}
  .join__arrow{grid-column:2;grid-row:1/3;width:48px;height:48px;margin-right:12px}
  .is-enhanced .teams__inner{min-height:0;padding-block:var(--section-y)}
}
/* Téléphone ou tablette en portrait : l’écusson, puis le titre et le texte du symbole, les uns sous les autres.
   À l’horizontale, la rubrique garde la disposition en trois colonnes, qui tient dans un écran bas. */
@media (max-width:860px) and (orientation:portrait){
  .is-enhanced .symbols__grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto;row-gap:22px}
  .is-enhanced .symbols__lens{grid-column:1;grid-row:2;justify-self:center;width:min(30vh,64vw,var(--lens-fit,100vh))}
  .is-enhanced .symbol__head{grid-column:1;grid-row:3;gap:10px}
  .is-enhanced .symbol__title{font-size:clamp(1.75rem,8vw,2.5rem)}
  .is-enhanced .symbol__text{grid-column:1;grid-row:4;align-self:start;padding-left:0;font-size:1.0625rem;line-height:1.4;max-width:30em}
  .is-enhanced .symbols__progress{grid-row:5;gap:8px}
}
@media (max-width:860px) and (orientation:portrait) and (max-height:720px){
  .is-enhanced .symbols__grid{row-gap:14px}
  .is-enhanced .symbol__text{font-size:1rem;line-height:1.35}
}
/* Écran peu haut (portable, tablette ou téléphone à l’horizontale) : l’introduction de l’écusson passe sur deux colonnes */
@media (min-width:861px) and (max-height:700px),(orientation:landscape) and (max-height:700px){
  .is-enhanced .symbols__intro{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;column-gap:var(--gap)}
  .is-enhanced .symbols__intro .label{grid-column:1;grid-row:1}
  .is-enhanced .symbols__intro .heading{grid-column:1;grid-row:2}
  .is-enhanced .symbols__hint{grid-column:2;grid-row:1}
  .is-enhanced .credit-nolan{grid-column:2;grid-row:2}
}

@media (max-width:560px){
  .figures__grid{grid-template-columns:minmax(0,1fr)}
  .figure,.figure+.figure{padding:24px 0;border-right:0;border-bottom:1px dashed var(--cork)}
  .figure:nth-child(3){padding-left:0}
  .social__grid,.footer__grid{grid-template-columns:minmax(0,1fr)}
  .tile{min-height:180px}
  .footer__legal{flex-direction:column;align-items:flex-start}
  .packs,.ambitions__list,.gov__top{grid-template-columns:minmax(0,1fr)}
  .pcontact{padding:22px}
}

/* ---------- Animations réduites ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .grain{animation:none}
}

/* Bandeau des partenaires : chaque logo sur sa plaque (blanche, ou bleue pour la Ville de Nevers) */
.pstrip__plate{display:inline-grid;place-items:center;height:1.5em;padding:.2em .45em;border-radius:8px;background:#fff;vertical-align:middle}
.pstrip__plate img{height:100%;width:auto}
.pstrip__plate--ville{padding:.1em .4em;background:#2300cb}
@media (max-width:1100px){.pcards{grid-template-columns:repeat(2,minmax(0,1fr))}.pcard--ville{grid-column:1/-1}}
/* Tablette à l’horizontale : la carte de la Ville, en pleine largeur, place sa plaque à côté du texte (même taille que les autres) */
@media (min-width:861px) and (max-width:1100px){
  .pcard--ville{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;grid-template-areas:"plaque ." "plaque tier" "plaque text" "plaque visit" "plaque .";gap:0 28px}
  .pcard--ville .pcard__plaque{grid-area:plaque}
  .pcard--ville .tier{grid-area:tier;margin-bottom:14px}
  .pcard--ville .pcard__text{grid-area:text}
  .pcard--ville .visit-link{grid-area:visit;margin-top:8px}
}
@media (max-width:860px){.gov__top{grid-template-columns:minmax(0,1fr)}.pcards{grid-template-columns:minmax(0,1fr)}}

/* =========================================================
   Pages séparées : onglets, accès directs, en-têtes de page
   ========================================================= */
/* Liens vers une partie de page : le bloc visé s’arrête sous la barre de navigation, avec ou sans animations */
main [id]:not(section){scroll-margin-top:82px}
main .reach{scroll-margin-top:64px}

/* Onglet de la page en cours */
.nav__links a[aria-current="page"]{color:var(--gold)}
.nav__links a[aria-current="page"]::after{transform:scaleX(1);border-bottom:1px solid var(--gold)}
.nav__cta{padding-inline:22px}

/* Menu : chaque rubrique avec une ligne d’explication */
.menu__links{gap:6px}
.menu__links a{padding-block:.12em .18em;border-bottom:1px dashed var(--cork)}
.menu__links a small{display:block;margin-top:6px;font:400 .875rem/1.3 var(--f-text);text-transform:none;letter-spacing:0;color:var(--muted)}
.menu__links a[aria-current="page"] span{color:var(--gold)}
.menu__links a:hover span,.menu__links a:focus-visible span{color:var(--gold)}
.menu__foot{align-items:center}

/* Accueil : accès directs dans le premier écran */
.hero__actions{display:flex;flex-wrap:wrap;gap:10px}
.hero__actions .btn--ghost{background:rgb(10 19 48 / .5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}

/* Accueil : les cinq rubriques */
.paths{position:relative;z-index:10;padding-block:clamp(56px,9vh,104px) clamp(24px,4vh,48px)}
.paths__head{display:grid;gap:14px;justify-items:start;margin-bottom:32px}
/* Six rubriques : deux rangées de trois (deux colonnes sur tablette en portrait, une sur téléphone) */
.paths__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}
.paths__grid>li{display:flex}
.path{position:relative;display:grid;align-content:start;gap:10px;width:100%;min-height:230px;padding:22px 22px 76px;border:1px solid var(--cork);border-radius:var(--r-card);color:var(--cream);text-decoration:none;overflow:hidden;isolation:isolate;transition:border-color .5s}
.path::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--bark);transform:translateY(101%);transition:transform .8s var(--ease-out)}
.path:hover::before,.path:focus-visible::before{transform:none}
.path:hover,.path:focus-visible{border-color:var(--gold)}
.path--hot{border-color:var(--gold)}
.path__kicker{font:500 var(--t-micro)/1.2 var(--f-text);text-transform:uppercase;letter-spacing:.08em;color:var(--gold)}
.path__title{font:500 var(--t-heading-sm)/1.05 var(--f-display);text-transform:uppercase}
.path__desc{font:400 .9375rem/1.45 var(--f-text);color:var(--muted);transition:color .4s}
.path:hover .path__desc,.path:focus-visible .path__desc{color:var(--cream)}
.path__arrow{position:absolute;left:22px;bottom:22px;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--cream);border-radius:50%;transition:transform .6s var(--ease-out),background-color .4s,color .4s}
.path:hover .path__arrow,.path:focus-visible .path__arrow{transform:rotate(-45deg);background:var(--cream);color:var(--walnut)}

/* Accueil : « Prochainement sur le site », nouveautés annoncées mais pas encore disponibles.
   Bordures en pointillés et pastilles « À venir », comme « En préparation » pour les tenues ; rien n’y est cliquable. */
.soon{position:relative;z-index:10;padding-block:clamp(40px,7vh,88px) clamp(24px,4vh,48px)}
.soon__head{display:grid;gap:14px;justify-items:start;margin-bottom:32px}
.soon__intro{max-width:38rem;font:400 clamp(1.0625rem,1.35vw,1.3125rem)/1.45 var(--f-text);color:var(--cream);text-wrap:pretty}
/* Quatre annonces : une rangée de quatre, deux rangées de deux sur tablette, une colonne sur téléphone */
.soon__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin:0;padding:0;list-style:none}
.soon__card{display:grid;align-content:start;gap:14px;min-width:0;padding:22px;border:1px dashed var(--cork);border-radius:var(--r-card);background:linear-gradient(160deg,rgb(29 52 112 / .55),rgb(29 52 112 / .12) 70%)}
.soon__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.soon__icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border:1px solid var(--cork);border-radius:50%;color:var(--gold)}
.soon__icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.soon__badge{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px dashed var(--gold);border-radius:var(--r-ghost);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.06em;color:var(--gold);white-space:nowrap}
.soon__dot{position:relative;flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.soon__dot::after{content:"";position:absolute;inset:-4px;border:1px solid var(--gold);border-radius:50%;animation:ping 2.8s var(--ease-out) infinite}
/* Les quatre pastilles s’allument l’une après l’autre, en vague discrète (figées avec « réduire les animations ») */
.soon__card:nth-child(2) .soon__dot::after{animation-delay:.7s}
.soon__card:nth-child(3) .soon__dot::after{animation-delay:1.4s}
.soon__card:nth-child(4) .soon__dot::after{animation-delay:2.1s}
.soon__title{margin:0;font:500 var(--t-heading-sm)/1.1 var(--f-display);text-transform:uppercase;text-wrap:balance}
.soon__desc{font:400 .9375rem/1.5 var(--f-text);color:var(--muted);text-wrap:pretty}
.soon__outro{max-width:44rem;margin-top:clamp(24px,3vw,36px);font:400 clamp(1.0625rem,1.35vw,1.3125rem)/1.45 var(--f-text);color:var(--muted);text-wrap:pretty}
.soon__stay{color:var(--gold);font-weight:500}
@media (max-width:1100px){
  .soon__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:540px){
  .soon__grid{grid-template-columns:minmax(0,1fr)}
  .soon__card{padding:20px}
}

/* En-tête de page (Le club) */
.pagehead{position:relative;z-index:10;padding-block:calc(124px + env(safe-area-inset-top,0px)) clamp(16px,3vw,32px)}
.pagehead__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:28px var(--gap)}
.pagehead__title{display:grid;gap:14px;justify-items:start}
.pagehead__side{display:grid;gap:18px}
.pagehead__intro{max-width:34rem;font:400 1.0625rem/1.5 var(--f-text);color:var(--muted)}
.pagehead__tabs{display:flex;flex-wrap:wrap;gap:8px}
.pagehead + .org,.pagehead + .join{padding-top:clamp(24px,4vw,48px)}

/* Rejoindre / Contact : invitation à écrire au club */
.invite{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:28px var(--gap);margin-bottom:var(--gap);padding:clamp(24px,3.4vw,44px);border:1px solid var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .12),rgb(242 183 5 / .02) 60%)}
.invite__text{display:grid;gap:14px;justify-items:start}
.invite__text .heading{text-wrap:balance}
.invite__body{max-width:32rem;font:400 var(--t-heading-sm)/1.4 var(--f-text);color:var(--cream)}
.invite__actions{display:grid;gap:12px;justify-items:start}
.invite__cta{padding-inline:30px}
.invite__hint{max-width:30rem;font:400 .875rem/1.5 var(--f-text);color:var(--muted)}
.invite__phone{font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.invite__phone a{color:var(--cream);font-weight:500;text-decoration:none;border-bottom:1px solid var(--driftwood)}
.invite__phone a:hover,.invite__phone a:focus-visible{border-color:var(--cream)}
.nav__cta[aria-current="page"]{box-shadow:0 0 0 2px var(--walnut),0 0 0 3px var(--gold)}

/* Matchs : la page s’ouvre directement sur le calendrier */
.matchday>.fixtures:first-child{margin-top:0}

/* Équipes : toutes les catégories visibles d’un coup d’œil */
.teams--grid .teams__viewport{overflow:visible}
.teams--grid .teams__track{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));width:auto;padding:4px var(--gutter-r) 4px var(--gutter)}
.teams--grid .team{width:auto;height:auto;min-height:340px}

/* Contact : écrire au club */
.reach{position:relative;z-index:10;padding-block:clamp(24px,4vw,56px)}
.reach__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.reach__card{display:grid;align-content:start;gap:12px;padding:22px;border:1px solid var(--cork);border-radius:var(--r-card)}
.reach__text{font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
/* Coordonnées cliquables (appel, e-mail) : type au-dessus, valeur en clair */
.contact-lines{display:grid;gap:10px;margin:0;padding:0;list-style:none;min-width:0}
.contact-line{display:grid;gap:3px;padding:2px 0 7px;color:var(--cream);text-decoration:none;border-bottom:1px solid var(--driftwood);transition:border-color .3s}
.contact-line:hover,.contact-line:focus-visible{border-color:var(--cream)}
.contact-line__type{font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.contact-line__value{font:500 clamp(1rem,1.3vw,1.125rem)/1.3 var(--f-text);overflow-wrap:anywhere}
.reach__link{justify-self:start;padding-bottom:2px;border-bottom:1px solid currentColor;color:var(--gold);font:500 var(--t-ui)/1.4 var(--f-text);text-transform:uppercase;text-decoration:none}

/* Équipes : appel à s’inscrire */
.ctaband{position:relative;z-index:10;padding-block:clamp(8px,2vw,24px) var(--section-y)}
.ctaband__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding:28px;border:1px solid var(--gold);border-radius:var(--r-card)}
.ctaband__text{max-width:36rem;font:400 var(--t-heading-sm)/1.35 var(--f-text)}

/* Accueil : les futures tenues, en préparation */
.kits__status{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border:1px dashed var(--gold);border-radius:var(--r-ghost);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}
.kits__dot{position:relative;flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold)}
.kits__dot::after{content:"";position:absolute;inset:-5px;border:1px solid var(--gold);border-radius:50%;animation:ping 2.2s var(--ease-out) infinite}

/* Réseaux sociaux : boutons avec icône et nom du réseau (accueil, pied de page) */
.social-links{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.social-link{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:10px 22px 10px 16px;border:1px solid var(--cream);border-radius:var(--r-pill);color:var(--cream);text-decoration:none;transition:background-color .35s,color .35s,border-color .35s}
.social-link:hover,.social-link:focus-visible{background:var(--cream);color:var(--walnut)}
.social-link__id{font:500 .875rem/1.25 var(--f-text)}
/* Pied de page : le logo seul, dans un bouton rond ; le nom du réseau reste lu par les lecteurs d’écran.
   Meta demande de ne pas écrire « Facebook » à côté de son logo : ne pas le rétablir */
.social-links--compact .social-link{justify-content:center;min-width:44px;min-height:44px;padding:7px}
.follow{position:relative;z-index:10;padding-block:clamp(16px,3vw,40px) clamp(56px,8vw,104px)}
.follow__card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px var(--gap);padding:clamp(24px,3.4vw,44px);border:1px solid var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .12),rgb(242 183 5 / .02) 60%)}
.follow__text{display:grid;gap:14px;justify-items:start}
.follow__body{max-width:32rem;font:400 var(--t-heading-sm)/1.4 var(--f-text);color:var(--cream)}
.follow__actions{display:grid;gap:12px;justify-items:start}
.follow__soon{font:400 .875rem/1.45 var(--f-text);color:var(--muted)}
.footer__social{display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px;margin-top:clamp(28px,4vw,44px);padding-top:clamp(20px,3vw,28px);border-top:1px dashed var(--cork)}
.tile__net{display:inline-flex;align-items:center;gap:8px}
/* Logos officiels Instagram et Facebook (fichiers de Meta, non modifiés), posés sur une pastille blanche :
   le fond blanc est l’usage principal prévu par Meta, et la pastille garantit l’espace libre autour du logo */
.brand-badge{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:#fff}
.brand-badge img{display:block;width:20px;height:20px}
.brand-badge img[src*="instagram"]{width:17px;height:17px}
.brand-badge--lg{width:36px;height:36px}
.brand-badge--lg img{width:22px;height:22px}
.brand-badge--lg img[src*="instagram"]{width:19px;height:19px}
.social-links--compact .brand-badge{width:28px;height:28px}
.social-links--compact .brand-badge img{width:18px;height:18px}
.social-links--compact .brand-badge img[src*="instagram"]{width:16px;height:16px}
.brand-badge--sm{width:26px;height:26px}
.brand-badge--sm img{width:16px;height:16px}
.brand-badge--sm img[src*="instagram"]{width:16px;height:16px}
.social-link:hover .brand-badge,.social-link:focus-visible .brand-badge{box-shadow:0 0 0 1px var(--walnut)}

/* Pôles : catégories nommées sur leur propre ligne (arbitrage, gardiens) */
.pole__list{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.pole__list li{display:grid;gap:3px;font:500 1rem/1.4 var(--f-text)}
.pole__list b{font:500 var(--t-micro)/1.35 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap}

@media (max-width:1100px){
  .paths__grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){
  /* « Rejouer l’animation » reste accessible sur téléphone : pastille compacte en haut à droite du premier écran */
  .hero__corner--right{top:calc(84px + env(safe-area-inset-top,0px));right:var(--gutter-r);bottom:auto}
  .hero__video{padding:5px;gap:0}
  .hero__video .hero__meta{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hero__thumb{width:52px;height:52px}
  .hero__thumb--duo img{width:100%}
  .hero__play{right:3px;bottom:3px;width:18px;height:18px}
  .hero__play::after{left:6.5px;top:4.5px;border-left-width:7px;border-top-width:4.5px;border-bottom-width:4.5px}
  .hero__actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hero__actions .btn:first-child{grid-column:1/-1}
  .hero__actions .btn{padding-inline:14px}
  .paths__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .path{min-height:200px}
  .pagehead__grid,.reach__grid,.invite,.follow__card,.results__card{grid-template-columns:minmax(0,1fr)}
  /* Actualités : une carte par ligne, image à gauche du texte pour les partenariats */
  .news__grid,.card--lead{grid-template-columns:minmax(0,1fr)}
  .news__grid>.card:not(.card--lead){grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:center;column-gap:20px}
  .invite,.follow__card,.results__card{align-items:start}
  .results__cta{justify-self:start}
  .pagehead{padding-top:calc(96px + env(safe-area-inset-top,0px))}
  /* Le texte du club reste lisible quand l’écusson passe derrière lui pour rejoindre la loupe */
  .is-enhanced .club .void__side--right{padding:20px;border-radius:var(--r-card);background:rgb(12 26 64 / .55);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
}
@media (max-width:540px){
  .board__dim-note{display:none}
  .news__grid>.card:not(.card--lead){grid-template-columns:minmax(0,1fr)}
  .news__grid .card__media{aspect-ratio:16/10}
  .paths__grid{grid-template-columns:minmax(0,1fr)}
  .path{min-height:0;padding:20px 76px 20px 20px}
  .path__arrow{left:auto;right:18px;top:50%;bottom:auto;margin-top:-20px}
}
/* Accueil : le titre ne passe plus sous l’écusson */
.hero__title{font-size:clamp(3.25rem,7.2vw,8.25rem)}
/* Tablette à l’horizontale, petit portable : les trois accès directs occupent le bas de l’écran,
   l’indication « Défiler » s’efface et la carte « Rejouer l’animation » se fait plus compacte */
@media (min-width:861px) and (max-width:1100px){
  .hero__corner--center{display:none}
  .hero__corner--right{right:var(--gutter-r)}
  .hero__thumb{width:58px;height:58px}
  .hero__meta-date{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
/* Écran bas à l’horizontale (téléphone, petite fenêtre) : le premier écran tient dans la hauteur, accès directs compris */
@media (orientation:landscape) and (max-height:600px){
  .hero{min-height:0}
}
@media (max-width:860px) and (orientation:landscape){
  .hero__actions{display:flex}
}
/* Sans JavaScript, le bouton du menu ne peut rien ouvrir : il s’efface (toutes les rubriques restent dans le pied de page) */
.no-js .nav__menu,.no-js [data-play-intro],.no-js [data-copy],.no-js .copy-note{display:none}
/* Téléphones étroits (320 à 374 px) : le mot le plus long, les boutons et les liens des réseaux tiennent dans l’écran */
.social-links>li{min-width:0;max-width:100%}
.social-link{max-width:100%}
@media (max-width:400px){
  .heading{font-size:min(var(--t-display),10.4vw)}
}
@media (max-width:374px){
  .hero__actions .btn{padding-inline:8px}
  .follow__actions{grid-template-columns:minmax(0,1fr)}
  .social-link{gap:10px;padding-inline:12px 14px}
  .social-links--compact .social-link{padding:7px}
}
@media (max-width:340px){
  .hero__actions .btn{font-size:.75rem;letter-spacing:0}
}

/* =========================================================
   Actualités : « À la une » (accueil), page Actualités et archives, page d’un article.
   Tout le contenu vient de js/actus.js ; les cartes reprennent celles de la page Le club.
   ========================================================= */
/* Marge basse : l’écusson remonte avec la rubrique Le club sans toucher les dernières cartes */
.une{position:relative;z-index:10;padding-block:clamp(56px,9vh,104px) clamp(72px,11vh,128px)}
.une__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;margin-bottom:clamp(24px,3.4vw,40px)}
.une__title{display:grid;gap:14px;justify-items:start}
.une .news__grid,.news--more .news__grid{margin-top:var(--gap)}
.news__side{display:grid;gap:18px;justify-items:start;max-width:28rem}
.news__empty{padding:20px 0;font:400 1rem/1.5 var(--f-text);color:var(--muted)}
.news__empty a{color:var(--gold)}
.figures__source{margin-top:20px;font:400 .8125rem/1.4 var(--f-text);color:var(--muted)}

/* Une, deux ou trois cartes par rangée selon leur nombre : jamais de carte vide */
@media (min-width:861px){
  .news__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .news__grid--1>.card:not(.card--lead){grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;column-gap:clamp(24px,4vw,56px)}
}
/* Les logos gardent leur fond (blanc, noir) même dans une grande carte */
.card__media.card__media--logo{background:var(--cream)}
.card__media.card__media--blanc{background:#fff}
.card__media.card__media--noir{background:#000}
.card__media--photo img{width:100%;height:100%;object-fit:cover}
.card__event{font:500 var(--t-ui)/1.4 var(--f-text);text-transform:uppercase;letter-spacing:.03em;color:var(--gold)}

/* Mention « Inscriptions ouvertes » : dans le titre et sur les cartes ; elle disparaît quand les inscriptions ferment */
.title-flag{display:flex;align-items:center;gap:10px;margin-top:.5em;font:500 max(.8125rem,.34em)/1.2 var(--f-text);letter-spacing:.06em;color:var(--gold)}
.flag{display:inline-flex;align-items:center;gap:9px;padding:7px 12px;border:1px dashed var(--gold);border-radius:var(--r-ghost);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}
.title-flag::before,.flag::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--gold);animation:flag-ping 2.2s var(--ease-out) infinite}
@keyframes flag-ping{0%{box-shadow:0 0 0 0 rgb(242 183 5 / .55)}80%,100%{box-shadow:0 0 0 9px rgb(242 183 5 / 0)}}
.status-note{display:inline-flex;padding:7px 12px;border:1px solid var(--cork);border-radius:var(--r-ghost);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}

/* Actualité principale de l’accueil */
.feature{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);overflow:hidden;border:1px solid var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .12),rgb(242 183 5 / .02) 60%)}
.feature__media{display:grid;min-width:0;text-decoration:none}
.feature__media .card__media{height:100%;min-height:clamp(300px,32vw,480px);aspect-ratio:auto;border-radius:0}
.feature__body{display:grid;align-content:center;justify-items:start;gap:16px;min-width:0;padding:clamp(24px,3.4vw,48px)}
.feature__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.feature__meta .note{color:inherit}
.cat{display:inline-flex;align-items:center;padding:6px 11px;border:1px solid var(--cream);border-radius:var(--r-ghost);font:500 var(--t-micro)/1 var(--f-text);letter-spacing:.06em;color:var(--cream)}
.feature__title{margin:0;font:500 clamp(1.75rem,3vw,3.25rem)/.95 var(--f-display);text-transform:uppercase;text-wrap:balance}
.feature__title a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .8s var(--ease-out)}
.feature__title a:hover,.feature__title a:focus-visible{background-size:100% 1px}
.feature__summary{max-width:34rem;font:400 var(--t-heading-sm)/1.45 var(--f-text)}
.feature__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.feature__contact{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:2px}
.feature__contact .mail{font-size:.9375rem}
.feature__contact .copy-note{flex-basis:100%}

/* Dates et catégories de chaque journée, lieu */
.facts{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.fact{display:flex;align-items:center;gap:14px;padding:12px 14px 12px 16px;border:1px solid var(--cork);border-radius:var(--r-card);background:rgb(10 19 48 / .5)}
.fact__date{display:grid;gap:6px;font:500 1.0625rem/1 var(--f-display);text-transform:uppercase;white-space:nowrap}
.fact__date small{font:500 var(--t-micro)/1 var(--f-text);letter-spacing:.08em;color:var(--gold)}
.fact__label{padding:7px 11px;border-radius:var(--r-ghost);background:var(--cream);color:var(--walnut);font:500 var(--t-ui)/1 var(--f-text)}
.facts__when{font:500 1.0625rem/1.3 var(--f-display);text-transform:uppercase}
.place{display:flex;align-items:center;gap:8px;font:500 .9375rem/1.4 var(--f-text)}
.place svg{flex:none;width:18px;height:18px;color:var(--gold)}

/* Affiche composée quand l’actualité n’a pas d’image : terrain de foot en salle, titre, dates, lieu */
.card__media--affiche{background:var(--walnut)}
.affiche{position:absolute;inset:0;display:block;container-type:size;overflow:hidden;color:var(--cream);background:radial-gradient(80% 70% at 84% 12%,rgb(242 183 5 / .3),rgb(242 183 5 / 0) 62%),radial-gradient(70% 60% at 8% 100%,rgb(255 116 38 / .18),rgb(255 116 38 / 0) 60%),linear-gradient(160deg,#16285c,#0a1330 72%)}
.affiche__court{position:absolute;right:-14%;top:10%;width:96%;height:auto;max-width:none;color:rgb(255 237 215 / .28);transform:perspective(700px) rotateX(52deg) rotateZ(-10deg);transform-origin:50% 0}
.affiche__crest{position:absolute;right:6%;top:7%;width:min(13cqw,19cqh);height:auto;transition:transform 1.2s var(--ease-out)}
.card:hover .affiche__crest{transform:rotate(-8deg) scale(1.08)}
.affiche__text{position:absolute;left:7%;right:7%;bottom:8%;display:grid;gap:1.8cqh;justify-items:start}
.affiche__kicker{font:500 clamp(10px,min(3.4cqw,6cqh),17px)/1.2 var(--f-text);letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.affiche__title{font:500 min(17cqw,30cqh)/.86 var(--f-display);text-transform:uppercase}
.affiche__title--long{display:-webkit-box;overflow:hidden;font-size:min(8cqw,13cqh);line-height:.95;-webkit-line-clamp:3;-webkit-box-orient:vertical}
.affiche__dates{font:500 min(5cqw,8cqh)/1.1 var(--f-display);text-transform:uppercase}
.affiche__place{font:400 clamp(10px,min(3.4cqw,5.6cqh),16px)/1.3 var(--f-text);color:var(--muted)}

/* Page Actualités */
.news--page{padding-block:clamp(16px,3vw,32px) clamp(40px,6vw,72px)}
.news--page .news__grid{margin-top:0}
.newsfilters{display:flex;flex-wrap:wrap;gap:8px}
.newsfilters[hidden]{display:none}
.archives{position:relative;z-index:10;padding-block:clamp(40px,6vw,80px) var(--section-y)}
.archives__body{margin-top:clamp(24px,3vw,40px)}
.archives__list{display:grid;margin:0;padding:0;list-style:none;border-top:1px dashed var(--cork)}
.archive{display:grid;grid-template-columns:minmax(10em,auto) minmax(0,1fr) auto;align-items:center;gap:6px 24px;padding:18px 0;border-bottom:1px dashed var(--cork);color:var(--cream);text-decoration:none;transition:color .3s}
.archive:hover,.archive:focus-visible{color:var(--gold)}
.archive__date{font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase;color:var(--muted)}
.archive__title{font:500 var(--t-heading-sm)/1.15 var(--f-display);text-transform:uppercase}
.archive__cat{font:500 var(--t-micro)/1 var(--f-text);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}

/* Page d’un article */
.article{position:relative;z-index:10;padding-block:calc(124px + env(safe-area-inset-top,0px)) clamp(40px,6vw,80px)}
.article__head{display:grid;gap:16px;justify-items:start;max-width:64rem;margin-bottom:clamp(28px,4vw,48px)}
.article__back{display:inline-flex;align-items:center;padding:10px 0;color:var(--muted);font:500 var(--t-ui)/1 var(--f-text);text-transform:uppercase;letter-spacing:.04em;text-decoration:none;transition:color .3s}
.article__back:hover,.article__back:focus-visible{color:var(--gold)}
.article__title{margin:0;font:500 var(--t-display)/.92 var(--f-display);text-transform:uppercase;text-wrap:balance}
.article__title:focus{outline:none}
.article__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(24px,4vw,64px)}
.article__media{position:sticky;top:96px;min-width:0}
.article__media .card__media{aspect-ratio:4/3;border:1px solid var(--cork)}
.article__body{display:grid;gap:22px;justify-items:start;min-width:0}
.article__lead{max-width:38rem;font:400 var(--t-heading-sm)/1.45 var(--f-text)}
.article__text{display:grid;gap:14px;max-width:38rem;font:400 1.0625rem/1.65 var(--f-text);color:var(--muted)}
.archived-note{padding:12px 16px;border:1px dashed var(--driftwood);border-radius:var(--r-card);font:400 .9375rem/1.5 var(--f-text);color:var(--muted)}
.archived-note a{color:var(--gold)}
.signup{display:grid;gap:12px;justify-items:start;width:100%;max-width:38rem;padding:clamp(20px,3vw,32px);border:1px solid var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .12),rgb(242 183 5 / .02) 60%)}
.signup__text{font:400 1.0625rem/1.55 var(--f-text)}
.signup__hint{font:400 .875rem/1.5 var(--f-text);color:var(--muted)}

/* Note de confidentialité près des boutons qui ouvrent la messagerie */
.privacy-hint{max-width:34rem;font:400 .8125rem/1.5 var(--f-text);color:var(--muted)}
.privacy-hint a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.privacy-hint a:hover{color:var(--cream)}

/* ---------- Informations légales (mentions légales, confidentialité) ---------- */
.legal-page{position:relative;z-index:10;padding-block:clamp(24px,4vw,48px) var(--section-y)}
.legal__wrap{display:grid;gap:clamp(40px,5vw,64px)}
.legal__wrap>*{max-width:52rem}
.legal__draft{display:grid;gap:10px;padding:clamp(18px,2.6vw,26px);border:1px dashed var(--gold);border-radius:var(--r-card);background:linear-gradient(135deg,rgb(242 183 5 / .1),rgb(242 183 5 / .02) 60%);font:400 1rem/1.55 var(--f-text)}
.legal__draft .label{color:var(--gold)}
.legal__block{display:grid;gap:16px;align-content:start}
.legal__title{margin:0;font:500 var(--t-heading-sm)/1.1 var(--f-display);text-transform:uppercase}
.legal__subtitle{margin:12px 0 0;font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}
.legal__text{max-width:44rem;font:400 1.0625rem/1.65 var(--f-text);color:var(--muted)}
.legal__note{max-width:44rem;font:400 .9375rem/1.55 var(--f-text);color:var(--muted)}
.legal__items{display:grid;gap:12px;max-width:44rem;margin:0;padding-left:1.15em;font:400 1.0625rem/1.6 var(--f-text);color:var(--muted)}
.legal__items strong{font-weight:500;color:var(--cream)}
.legal__list{display:grid;margin:0;border-top:1px dashed var(--cork)}
.legal__list>div{display:grid;grid-template-columns:minmax(8rem,13rem) minmax(0,1fr);gap:6px 24px;padding:14px 0;border-bottom:1px dashed var(--cork)}
.legal__list dt{padding-top:4px;font:500 var(--t-ui)/1.3 var(--f-text);text-transform:uppercase;letter-spacing:.02em;color:var(--muted)}
.legal__list dd{margin:0;min-width:0;font:400 1.0625rem/1.6 var(--f-text);color:var(--cream);overflow-wrap:anywhere}
.legal-page a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.legal-page a:hover{color:var(--cream)}
.legal-page code{font:500 .9375em/1 ui-monospace,Consolas,monospace;color:var(--cream)}
/* Information à fournir ou à confirmer : visible dans la version de travail, à retirer une fois complétée */
mark.todo{display:inline;padding:1px 8px;border:1px dashed var(--gold);border-radius:6px;background:rgb(242 183 5 / .14);color:var(--gold);font:500 .8125rem/1.7 var(--f-text);-webkit-box-decoration-break:clone;box-decoration-break:clone}
mark.todo[data-bloquant]{border-color:var(--ember);background:rgb(255 116 38 / .14);color:#ffb38a}
@media (max-width:640px){
  .legal__list>div{grid-template-columns:minmax(0,1fr)}
  .legal__list dt{padding-top:0}
}

/* Page introuvable */
.lost__actions{display:flex;flex-wrap:wrap;gap:12px}

@media (max-width:1100px){
  .feature{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
}
/* Petit téléphone : les boutons d’action prennent toute la largeur et leur texte peut passer à la ligne */
@media (max-width:480px){
  .feature__actions,.feature__actions .btn,.signup .btn,.article__more .btn{width:100%}
  .feature__actions .btn,.signup .btn,.article__more .btn{padding-inline:18px;white-space:normal;text-align:center}
  .feature__actions .btn__label,.signup .btn__label,.article__more .btn__label{height:auto}
  .feature__actions .btn__label>span::after,.signup .btn__label>span::after,.article__more .btn__label>span::after{display:none}
  .feature__actions .btn:hover .btn__label>span,.signup .btn:hover .btn__label>span,.article__more .btn:hover .btn__label>span,
  .feature__actions .btn:focus-visible .btn__label>span,.signup .btn:focus-visible .btn__label>span,.article__more .btn:focus-visible .btn__label>span{transform:none}
}
@media (max-width:860px){
  .feature{grid-template-columns:minmax(0,1fr)}
  .feature__media .card__media{height:auto;min-height:0;aspect-ratio:16/10}
  .article{padding-top:calc(96px + env(safe-area-inset-top,0px))}
  .article__grid{grid-template-columns:minmax(0,1fr)}
  .article__media{position:static}
  .archive{grid-template-columns:minmax(0,1fr) auto}
  .archive__date{grid-column:1/-1}
}
