/* Sport et agenda (modules-pages/sport-agenda.mjs) : agenda thématique (fl-ag-), page Sport (fl-sp-), Mondial de l'ULM (fl-mo-).
   Couleurs de la charte seulement : Klein #001CA8, Midnight #191970, noir d'aniline #120D16, White Smoke #F5F5F5,
   Cranberry #950714, rouge #F32837, blanc. */
.fl-ag .v6-zone, .fl-sp .v6-zone, .fl-mo .v6-zone { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(1.6rem, 3vw, 2.6rem); }
.fl-ag .v6-zone > *, .fl-sp .v6-zone > *, .fl-mo .v6-zone > *, .fl-ag-bloc > * { min-width: 0; }
.fl-ag-ico { width: 1.05em; height: 1.05em; flex: none; }
.fl-ag-ico-grand { width: 2.6rem; height: 2.6rem; flex: none; color: #001CA8; }
.fl-ag-centre { text-align: center; margin: 0; }
.fl-ag-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin: .4rem 0 0; }
.fl-ag-note { margin: 0; font-size: .88rem; color: rgba(18, 13, 22, .62); max-width: 52rem; }
.fl-ag-lead { font-size: clamp(1.08rem, 1rem + .35vw, 1.25rem); line-height: 1.6; color: #120D16; margin: 0 0 1rem; }
.fl-ag-intro-texte p:last-child, .fl-mo-intro p:last-child { margin-bottom: 0; }
.fl-ag-intro-texte p, .fl-mo-intro p { line-height: 1.6; color: rgba(18, 13, 22, .8); }
.fl-ag-intro-texte a:not(.v6-bouton), .fl-mo-intro p a:not(.v6-bouton), .fl-ag-vide a:not(.v6-bouton) { color: #001CA8; text-decoration: underline; text-underline-offset: .18em; text-decoration-thickness: 1px; }

/* En-têtes de bloc */
.fl-ag-tete { display: flex; flex-wrap: wrap; gap: .8rem 2rem; align-items: flex-end; justify-content: space-between; }
.fl-ag-tete > div { max-width: 48rem; }
.fl-ag-tete .fl-instru-lib { margin: 0 0 .5rem; color: #001CA8; font-size: .74rem; }
.fl-ag-tete h2 { margin: 0; text-wrap: balance; }
.fl-ag-chapo { margin: .7rem 0 0; color: rgba(18, 13, 22, .72); line-height: 1.55; }
.fl-ag-tete-clair .fl-instru-lib, .fl-ag-tete-clair .fl-ag-chapo { color: rgba(245, 245, 245, .78); }
.fl-ag-tete-clair h2 { color: #fff; }
.fl-ag-lien-droite { white-space: nowrap; }
.fl-ag-bloc { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.3rem; }

/* Introduction et chiffres */
.fl-ag-intro { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.fl-ag-chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; margin: 0; }
.fl-ag-chiffres > div { padding: 1.05rem 1.1rem; border-radius: 1.1rem; background: #F5F5F5; display: flex; flex-direction: column-reverse; gap: .25rem; }
.fl-ag-chiffres > div:first-child { background: #001CA8; color: #fff; }
.fl-ag-chiffres dt { font: 600 .82rem/1.3 var(--police-ui); color: rgba(18, 13, 22, .66); }
.fl-ag-chiffres > div:first-child dt { color: rgba(255, 255, 255, .82); }
.fl-ag-chiffres dd { margin: 0; font: 800 clamp(1.8rem, 1.4rem + 1.2vw, 2.5rem)/1 var(--police-display); letter-spacing: -.03em; color: #001CA8; }
.fl-ag-chiffres > div:first-child dd { color: #fff; }

/* Barre de filtres (catégorie, mois, région, pour qui, recherche) — la même sur les cinq pages d'agenda */
.fl-ag-filtres { display: grid; gap: .9rem; padding: clamp(1rem, 2.4vw, 1.5rem) clamp(1rem, 2.6vw, 1.7rem); border-radius: 1.3rem; background: #fff; border: 1px solid var(--filet); box-shadow: 0 24px 50px -40px rgba(18, 13, 22, .45); }
.fl-ag-filtres-tete { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.2rem; }
.fl-ag-filtres-tete .fl-instru-lib { margin: 0; color: #001CA8; font-size: .74rem; }
.fl-ag-compte { margin: 0; font: 700 .95rem var(--police-ui); color: #120D16; }
.fl-ag-raz { all: unset; box-sizing: border-box; cursor: pointer; font: 700 .85rem var(--police-ui); color: #950714; text-decoration: underline; text-underline-offset: .2em; }
.fl-ag-raz[hidden] { display: none; }
.fl-ag-raz:hover, .fl-ag-raz:focus-visible { color: #F32837; outline: none; }
.fl-ag-cats { display: flex; flex-wrap: wrap; gap: .45rem; }
.fl-ag-cats button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: .5rem; min-height: 2.5rem; padding: .35rem 1rem; border-radius: 999px; border: 1.5px solid var(--filet-fort); background: #fff; font: 700 .86rem var(--police-ui); color: #120D16; transition: border-color .15s, background-color .15s, color .15s; }
.fl-ag-cats button i { width: .6rem; height: .6rem; border-radius: 50%; background: var(--c, #001CA8); flex: none; }
.fl-ag-cats button:hover { border-color: var(--c, #001CA8); color: var(--c, #001CA8); }
.fl-ag-cats button:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
.fl-ag-cats button[aria-pressed="true"] { background: var(--c, #191970); border-color: var(--c, #191970); color: #fff; }
.fl-ag-cats button[aria-pressed="true"] i { background: #fff; }
.fl-ag-champs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.6fr); gap: .7rem; }
.fl-ag-champ { display: grid; gap: .3rem; min-width: 0; }
.fl-ag-champ > span:first-child { font: 700 .72rem var(--police-ui); letter-spacing: .06em; text-transform: uppercase; color: rgba(18, 13, 22, .62); }
.fl-ag-champ select { width: 100%; min-height: 2.8rem; font: 600 .9rem var(--police-ui); color: #120D16; background: #F5F5F5; border: 1px solid transparent; border-radius: .8rem; padding: .5rem 2.2rem .5rem .9rem; appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23001CA8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 1rem; }
.fl-ag-champ select:hover { border-color: var(--filet-fort); }
.fl-ag-champ select:focus-visible, .fl-ag-recherche-champ:focus-within { outline: 2px solid #001CA8; outline-offset: 1px; }
.fl-ag-recherche-champ { display: flex; align-items: center; gap: .5rem; min-height: 2.8rem; padding: 0 .9rem; border-radius: .8rem; background: #F5F5F5; border: 1px solid transparent; }
.fl-ag-recherche-champ .fl-ag-ico { color: #001CA8; }
.fl-ag-filtres .fl-ag-recherche-champ input[type="search"] { flex: 1; min-width: 0; min-height: 0; height: auto; margin: 0; padding: .4rem 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font: inherit; font-size: .95rem; color: #120D16; outline: none; }
.fl-ag-recherche-champ input::-webkit-search-cancel-button { cursor: pointer; }

/* Résultats : à venir par mois, puis les événements passés repliés */
.fl-ag-resultats { display: grid; gap: 1.2rem; }
.fl-ag-resultats-titre { margin: .4rem 0 0; }
.fl-ag-groupe[hidden], .fl-ag-ligne[hidden] { display: none; }
.fl-ag-groupe + .fl-ag-groupe { margin-top: 1.2rem; }
.fl-ag-groupe-titre { display: flex; align-items: baseline; gap: .8rem; margin: 0 0 .6rem; padding-bottom: .45rem; border-bottom: 2px solid #120D16; }
.fl-ag-groupe-titre span { font: 800 clamp(1.25rem, 1.1rem + .6vw, 1.6rem)/1.1 var(--police-display); letter-spacing: -.02em; color: #120D16; }
.fl-ag-groupe-titre small { font: 600 .85rem var(--police-ui); color: rgba(18, 13, 22, .6); }
.fl-ag-lignes { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.fl-ag-ligne { display: flex; align-items: stretch; gap: .5rem; min-width: 0; }
.fl-ag-ligne > a:first-child { flex: 1; min-width: 0; display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: 1rem; align-items: center; padding: .7rem 1rem .7rem .7rem; border-radius: .9rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s, transform .2s; }
.fl-ag-ligne > a:first-child:hover, .fl-ag-ligne > a:first-child:focus-visible { border-color: #001CA8; outline: none; transform: translateX(3px); }
.fl-ag-jour { display: grid; justify-items: center; align-content: center; min-height: 3.8rem; border-radius: .7rem; background: #F5F5F5; padding: .3rem .2rem; }
.fl-ag-jour b { font: 800 1.7rem/1 var(--police-display); color: #001CA8; }
.fl-ag-jour small { font: 700 .66rem var(--police-ui); color: rgba(18, 13, 22, .62); text-transform: uppercase; letter-spacing: .04em; text-align: center; }
.fl-ag-ligne.est-avenir .fl-ag-jour { background: #001CA8; } .fl-ag-ligne.est-avenir .fl-ag-jour b, .fl-ag-ligne.est-avenir .fl-ag-jour small { color: #fff; }
.fl-ag-ligne-texte { display: grid; gap: .25rem; min-width: 0; }
.fl-ag-ligne-sur { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; }
.fl-ag-ligne-texte b { font: 700 1.05rem/1.3 var(--police-display); }
.fl-ag-ligne-texte small { font-size: .86rem; color: rgba(18, 13, 22, .66); line-height: 1.4; }
.fl-ag-badge { display: inline-block; padding: .22rem .6rem; border-radius: 999px; background: #F5F5F5; font: 700 .7rem var(--police-ui); letter-spacing: .03em; color: rgba(18, 13, 22, .72); white-space: nowrap; }
.fl-ag-badge-avenir { background: #F32837; color: #fff; }
.fl-ag-badge-statut { background: #fff; color: #950714; box-shadow: inset 0 0 0 1px #950714; }
.fl-ag-ics { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; width: 6.2rem; padding: .5rem .4rem; border-radius: .9rem; border: 1px solid var(--filet); background: #fff; font: 700 .72rem/1.2 var(--police-ui); text-align: center; color: #001CA8; text-decoration: none; transition: background-color .15s, color .15s; }
.fl-ag-ics .fl-ag-ico { width: 1.3rem; height: 1.3rem; }
.fl-ag-ics:hover, .fl-ag-ics:focus-visible { background: #001CA8; color: #fff; outline: none; }
.fl-ag-vide { display: flex; gap: 1.2rem; align-items: flex-start; padding: clamp(1.2rem, 3vw, 2rem); border-radius: 1.2rem; background: #F5F5F5; }
.fl-ag-vide[hidden] { display: none; }
.fl-ag-vide b { display: block; font: 700 1.15rem/1.35 var(--police-display); color: #120D16; }
.fl-ag-vide p { margin: .55rem 0 0; color: rgba(18, 13, 22, .74); line-height: 1.55; }
.fl-ag-aucun { margin: .5rem 0 0; padding: 1.2rem 1rem; text-align: center; border: 1px dashed var(--filet-fort); border-radius: .9rem; color: rgba(18, 13, 22, .66); }
.fl-ag-aucun[hidden] { display: none; }
.fl-ag-passes { margin-top: .6rem; border-top: 1px solid var(--filet); padding-top: 1rem; }
.fl-ag-passes > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: .7rem; padding: .7rem 1rem; border-radius: .9rem; background: #F5F5F5; font: 700 1rem var(--police-display); color: #120D16; }
.fl-ag-passes > summary::-webkit-details-marker { display: none; }
.fl-ag-passes > summary::before { content: ''; width: .55rem; height: .55rem; border-right: 2px solid #001CA8; border-bottom: 2px solid #001CA8; transform: rotate(-45deg); transition: transform .15s; margin-left: .2rem; }
.fl-ag-passes[open] > summary::before { transform: rotate(45deg); }
.fl-ag-passes > summary small { font: 700 .78rem var(--police-ui); color: #001CA8; background: #fff; border-radius: 999px; padding: .2rem .6rem; }
.fl-ag-passes > summary:hover, .fl-ag-passes > summary:focus-visible { background: rgba(0, 28, 168, .08); outline: none; }
.fl-ag-passes > div { margin-top: 1rem; }
.fl-ag-passes .fl-ag-ligne > a:first-child { background: #fff; }

/* Outils des archives de la page Sport (fl-sp-archives) */
.fl-ag-outils { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.fl-ag-types { display: flex; gap: .45rem; overflow-x: auto; scrollbar-width: thin; padding: .1rem .1rem .4rem; }
.fl-ag-types button { all: unset; box-sizing: border-box; cursor: pointer; flex: none; display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--filet); font: 600 .86rem var(--police-ui); color: #120D16; white-space: nowrap; }
.fl-ag-types button small { font: 700 .72rem var(--police-ui); color: rgba(18, 13, 22, .55); background: #F5F5F5; border-radius: 999px; padding: .08rem .45rem; }
.fl-ag-types button:hover { border-color: #001CA8; color: #001CA8; }
.fl-ag-types button[aria-pressed="true"] { background: #191970; border-color: #191970; color: #fff; }
.fl-ag-types button[aria-pressed="true"] small { background: #fff; color: #191970; }
.fl-ag-types button:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
/* Carte de situation (Mondial) */
.fl-ag-regions path { fill: #F5F5F5; stroke: #fff; stroke-width: 1.2; vector-effect: non-scaling-stroke; }

/* Le rythme de l'année fédérale */
.fl-ag-rythme { position: relative; overflow-x: auto; padding: 1rem 1.1rem; border-radius: 1.2rem; background: #fff; border: 1px solid var(--filet); }
.fl-ag-rythme-ligne { display: grid; grid-template-columns: minmax(11rem, 1.6fr) repeat(12, minmax(2.1rem, 1fr)); align-items: center; min-width: 40rem; min-height: 2.7rem; border-bottom: 1px solid var(--filet); }
.fl-ag-rythme-ligne:last-child { border-bottom: 0; }
.fl-ag-rythme-mois { min-height: 2rem; font: 700 .7rem var(--police-ui); letter-spacing: .04em; text-transform: uppercase; color: rgba(18, 13, 22, .55); }
.fl-ag-rythme-ligne > span { display: grid; place-items: center; }
.fl-ag-rythme-ligne > span:first-child { place-items: center start; font: 600 .86rem/1.3 var(--police-ui); color: #120D16; padding-right: .8rem; }
.fl-ag-rythme-ligne i { display: block; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: #001CA8; transform: scale(var(--t, 1)); }

/* Cartes d'articles */
.fl-ag-articles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: 1.2rem; }
.fl-ag-article[hidden] { display: none; }
.fl-ag-article a { display: flex; flex-direction: column; height: 100%; border-radius: 1.1rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: transform .25s cubic-bezier(.2, .7, .2, 1), box-shadow .25s, border-color .25s; }
.fl-ag-article a:hover, .fl-ag-article a:focus-visible { transform: translateY(-3px); box-shadow: 0 22px 40px -26px rgba(18, 13, 22, .45); border-color: #001CA8; outline: none; }
.fl-ag-article-visuel { display: block; aspect-ratio: 16 / 10; background: #F5F5F5; overflow: hidden; }
.fl-ag-article-visuel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.fl-ag-article a:hover .fl-ag-article-visuel img { transform: scale(1.04); }
.fl-ag-article-texte { display: grid; gap: .4rem; padding: 1rem 1.1rem 1.15rem; align-content: start; }
.fl-ag-article-texte time { font: 700 .72rem var(--police-ui); letter-spacing: .06em; text-transform: uppercase; color: #001CA8; }
.fl-ag-article-texte b { font: 700 1.04rem/1.3 var(--police-display); text-wrap: balance; }
.fl-ag-article-texte small { font-size: .88rem; line-height: 1.5; color: rgba(18, 13, 22, .7); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
[data-ag-plus] small, [data-sp-plus] small { margin-left: .5rem; font: 700 .75rem var(--police-ui); }

/* Encarts de fin */
.fl-ag-encarts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.fl-ag-encart { position: relative; display: grid; gap: .4rem; align-content: start; padding: 1.3rem 1.4rem; border-radius: 1.2rem; background: #F5F5F5; color: #120D16; text-decoration: none; border: 1px solid transparent; transition: border-color .2s, transform .2s; }
.fl-ag-encart .fl-instru-lib { margin: 0; font-size: .7rem; color: #001CA8; }
.fl-ag-encart b { display: flex; align-items: center; gap: .4rem; font: 800 1.15rem/1.25 var(--police-display); }
.fl-ag-encart span:not(.fl-instru-lib):not(.fl-ag-encart-fleche) { color: rgba(18, 13, 22, .72); font-size: .92rem; line-height: 1.5; }
.fl-ag-encart:hover, .fl-ag-encart:focus-visible { border-color: #001CA8; outline: none; transform: translateY(-2px); }
.fl-ag-encart-plein { background: #001CA8; color: #fff; }
.fl-ag-encart-plein .fl-instru-lib { color: rgba(255, 255, 255, .78); }
.fl-ag-encart-plein span:not(.fl-instru-lib):not(.fl-ag-encart-fleche) { color: rgba(255, 255, 255, .88); }
.fl-ag-encart-plein:hover, .fl-ag-encart-plein:focus-visible { background: #191970; border-color: #191970; }
.fl-ag-encart-fleche { margin-top: .4rem; }

/* ═══ Page Sport ═══ */
.fl-sp-acces { display: grid; grid-template-columns: 1.35fr repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fl-sp-acces-carte { display: grid; gap: .45rem; align-content: start; padding: 1.3rem 1.35rem; border-radius: 1.2rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s, transform .2s, box-shadow .2s; }
.fl-sp-acces-carte b { display: flex; align-items: center; gap: .45rem; font: 800 1.12rem/1.25 var(--police-display); }
.fl-sp-acces-carte > span:last-child { font-size: .9rem; line-height: 1.5; color: rgba(18, 13, 22, .7); }
.fl-sp-acces-ico { width: 2rem; height: 2rem; color: #001CA8; }
.fl-sp-acces-carte:hover, .fl-sp-acces-carte:focus-visible { border-color: #001CA8; transform: translateY(-3px); box-shadow: 0 20px 36px -24px rgba(18, 13, 22, .45); outline: none; }
.fl-sp-acces-plein { background: #191970; border-color: #191970; color: #fff; position: relative; overflow: hidden; }
.fl-sp-acces-plein .fl-instru-lib { margin: 0; color: rgba(245, 245, 245, .75); font-size: .7rem; }
.fl-sp-acces-plein b { font-size: 1.4rem; }
.fl-sp-acces-plein > span:last-child { color: rgba(255, 255, 255, .85); }
.fl-sp-acces-plein { padding-right: 4.5rem; }
.fl-sp-acces-plein::after { content: ''; position: absolute; right: -2.6rem; bottom: -3.2rem; width: 7rem; height: 7rem; border-radius: 50%; border: 12px solid #F32837; }
.fl-sp-acces-plein:hover, .fl-sp-acces-plein:focus-visible { border-color: #F32837; }
.fl-sp-chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; border-top: 2px solid #120D16; }
.fl-sp-chiffres > div { display: grid; gap: .3rem; align-content: start; padding: 1.1rem 1.2rem 0 0; }
.fl-sp-chiffres > div + div { padding-left: 1.2rem; border-left: 1px solid var(--filet); }
.fl-sp-chiffres dt { order: 2; font: 700 .9rem/1.3 var(--police-display); color: #120D16; }
.fl-sp-chiffres dd { order: 1; margin: 0; font: 800 clamp(2rem, 1.5rem + 1.6vw, 3rem)/1 var(--police-display); letter-spacing: -.035em; color: #001CA8; }
.fl-sp-chiffres small { order: 3; font-size: .82rem; line-height: 1.4; color: rgba(18, 13, 22, .6); }

.fl-sp-epreuves { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 21rem), 1fr)); gap: .8rem; }
.fl-sp-epreuve a { display: grid; grid-template-columns: 3.6rem minmax(0, 1fr) auto; gap: .9rem; align-items: center; height: 100%; padding: .8rem 1rem .8rem .8rem; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s; }
.fl-sp-epreuve a:hover, .fl-sp-epreuve a:focus-visible { border-color: #001CA8; outline: none; }
.fl-sp-epreuve-date { display: grid; justify-items: center; padding: .45rem 0; border-radius: .7rem; background: #191970; color: #fff; }
.fl-sp-epreuve.est-avenir .fl-sp-epreuve-date { background: #F32837; }
.fl-sp-epreuve-date b { font: 800 1.3rem/1 var(--police-display); }
.fl-sp-epreuve-date small { font: 700 .66rem var(--police-ui); text-transform: uppercase; letter-spacing: .05em; }
.fl-sp-epreuve-texte { display: grid; gap: .15rem; min-width: 0; }
.fl-sp-epreuve-texte b { font: 700 .98rem/1.3 var(--police-display); }
.fl-sp-epreuve-texte small { font-size: .84rem; color: rgba(18, 13, 22, .64); }
.fl-sp-epreuve-vide { padding: 1.4rem; border: 1px dashed var(--filet-fort); border-radius: 1rem; }

/* Palmarès : frise */
.fl-sp-palmares { color: #fff; }
.fl-sp-frise { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 1.2rem; }
.fl-sp-frise::before { content: ''; position: absolute; left: 2.6rem; top: .6rem; bottom: .6rem; width: 2px; background: rgba(245, 245, 245, .22); }
.fl-sp-jalon { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); gap: 1.2rem; align-items: start; position: relative; }
.fl-sp-annee { justify-self: center; position: relative; z-index: 1; padding: .4rem .7rem; border-radius: 999px; background: #F5F5F5; color: #191970; font: 800 1rem/1 var(--police-display); margin-top: 1rem; }
.fl-sp-jalon-monde .fl-sp-annee { background: #F32837; color: #fff; }
.fl-sp-jalon-carte { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); border-radius: 1.2rem; overflow: hidden; background: rgba(245, 245, 245, .06); border: 1px solid rgba(245, 245, 245, .16); }
.fl-sp-jalon-carte:not(:has(.fl-sp-jalon-visuel)) { grid-template-columns: minmax(0, 1fr); }
.fl-sp-jalon-visuel { display: block; background: #120D16; min-height: 100%; }
.fl-sp-jalon-visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fl-sp-jalon-visuel img.fl-ag-logo { padding: 1rem; }
.fl-sp-jalon-texte { display: grid; gap: .6rem; padding: 1.1rem 1.3rem 1.2rem; align-content: start; }
.fl-sp-quand { margin: 0; font: 700 .74rem var(--police-ui); letter-spacing: .07em; text-transform: uppercase; color: rgba(245, 245, 245, .7); }
.fl-sp-jalon-texte h3 { margin: 0; font: 800 clamp(1.1rem, 1rem + .4vw, 1.35rem)/1.25 var(--police-display); color: #fff; }
.fl-sp-faits { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.fl-sp-faits li { display: grid; grid-template-columns: 6.4rem minmax(0, 1fr); gap: .7rem; align-items: start; line-height: 1.45; color: rgba(255, 255, 255, .9); font-size: .95rem; }
.fl-sp-pastille { display: inline-flex; align-items: center; gap: .35rem; justify-self: start; padding: .2rem .6rem .2rem .45rem; border-radius: 999px; font: 700 .72rem var(--police-ui); letter-spacing: .04em; text-transform: uppercase; }
.fl-sp-ico { width: 1rem; height: 1rem; }
.fl-sp-m-or { background: #fff; color: #001CA8; }
.fl-sp-m-argent { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px #F5F5F5; }
.fl-sp-m-bronze { background: #950714; color: #fff; }
.fl-sp-m-record { background: #F32837; color: #fff; }
.fl-sp-m-jalon, .fl-sp-m-nations { background: #001CA8; color: #fff; }
.fl-sp-jalon-texte .v6-lien { color: #fff; justify-self: start; }

/* Disciplines */
.fl-sp-disciplines { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1rem; }
.fl-sp-disciplines a { display: flex; flex-direction: column; height: 100%; border-radius: 1.1rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: transform .25s, border-color .25s; }
.fl-sp-disciplines a:hover, .fl-sp-disciplines a:focus-visible { transform: translateY(-3px); border-color: #001CA8; outline: none; }
.fl-sp-disc-visuel { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #F5F5F5; }
.fl-sp-disc-visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fl-sp-disc-texte { display: grid; gap: .45rem; padding: 1rem 1.05rem 1.15rem; }
.fl-sp-disc-texte b { font: 800 1.05rem/1.25 var(--police-display); }
.fl-sp-disc-texte span { font-size: .88rem; line-height: 1.5; color: rgba(18, 13, 22, .72); }
.fl-sp-niveaux { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; counter-reset: niv; }
.fl-sp-niveaux li { position: relative; padding: 1.3rem 1.4rem 1.4rem; border-radius: 1.2rem; background: #F5F5F5; display: grid; gap: .4rem; align-content: start; }
.fl-sp-niveaux li:nth-child(2) { background: #001CA8; color: #fff; } .fl-sp-niveaux li:nth-child(3) { background: #191970; color: #fff; }
.fl-sp-niveau-n { font: 800 2.6rem/1 var(--police-display); color: #001CA8; }
.fl-sp-niveaux li:nth-child(n+2) .fl-sp-niveau-n { color: #fff; }
.fl-sp-niveaux b { font: 800 1.25rem var(--police-display); }
.fl-sp-niveaux p { margin: 0; line-height: 1.55; font-size: .94rem; }
.fl-sp-niveaux li:nth-child(n+2) p { color: rgba(255, 255, 255, .88); }
.fl-sp-citation { margin: 0; padding: 1.4rem 0 1.4rem 1.6rem; border-left: 4px solid #F32837; max-width: 60rem; }
.fl-sp-citation p { margin: 0; font: 600 clamp(1.1rem, 1rem + .5vw, 1.4rem)/1.5 var(--police-display); color: #191970; }
.fl-sp-citation footer { margin-top: .7rem; font-size: .88rem; }
.fl-sp-citation footer a { color: #001CA8; }

/* Championnats de France, classement, records */
.fl-sp-deux { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.fl-sp-deux > div { display: grid; gap: 1.3rem; }
.fl-sp-cdf { display: grid; gap: .7rem; }
.fl-sp-cdf-annee { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: .3rem 1rem; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); }
.fl-sp-cdf-y { grid-row: span 2; font: 800 1.6rem/1 var(--police-display); color: #001CA8; padding-top: .15rem; }
.fl-sp-cdf-annee ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.fl-sp-cdf-annee ul a { display: grid; gap: .1rem; color: #120D16; text-decoration: none; }
.fl-sp-cdf-annee ul a span { font: 700 .97rem/1.3 var(--police-display); }
.fl-sp-cdf-annee ul a small { font-size: .84rem; color: rgba(18, 13, 22, .62); }
.fl-sp-cdf-annee ul a:hover span { color: #001CA8; text-decoration: underline; }
.fl-sp-cdf-res { grid-column: 2; margin: .2rem 0 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.fl-sp-cdf-res a { padding: .25rem .65rem; border-radius: 999px; background: #F5F5F5; font: 600 .78rem var(--police-ui); color: #001CA8; text-decoration: none; }
.fl-sp-cdf-res a:hover { background: #001CA8; color: #fff; }
.fl-sp-cote { display: grid; gap: 1rem; position: sticky; top: 6rem; }
.fl-sp-classement, .fl-sp-records { padding: 1.3rem 1.4rem; border-radius: 1.2rem; background: #fff; border: 1px solid var(--filet); display: grid; gap: .7rem; }
.fl-sp-classement .fl-instru-lib, .fl-sp-records .fl-instru-lib, .fl-mo-lieu .fl-instru-lib { margin: 0; color: #001CA8; font-size: .7rem; }
.fl-sp-classement h3, .fl-sp-records h3, .fl-mo-lieu h3 { margin: 0; font: 800 1.2rem/1.25 var(--police-display); }
.fl-sp-classement ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.fl-sp-classement li { display: grid; grid-template-columns: 2rem minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .45rem .5rem; border-radius: .7rem; background: #F5F5F5; }
.fl-sp-classement li span { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: #191970; color: #fff; font: 800 .9rem var(--police-display); }
.fl-sp-classement li:first-child span { background: #F32837; }
.fl-sp-classement li b { font: 700 .95rem var(--police-display); }
.fl-sp-classement li small { font: 700 .8rem var(--police-ui); color: #001CA8; }
.fl-sp-classement-maj a { color: #001CA8; }
.fl-sp-classement-maj { margin: 0; font-size: .82rem; line-height: 1.45; color: rgba(18, 13, 22, .62); }
.fl-sp-classement .v6-bouton { justify-self: start; }
.fl-sp-records ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.fl-sp-records li { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: 0 .7rem; }
.fl-sp-records li span { grid-row: span 2; font: 800 .95rem var(--police-display); color: #F32837; }
.fl-sp-records li b { font: 700 .93rem/1.3 var(--police-display); }
.fl-sp-records li small { font-size: .84rem; line-height: 1.4; color: rgba(18, 13, 22, .66); }
.fl-sp-records p { margin: 0; font-size: .9rem; line-height: 1.5; }
.fl-sp-records p a { color: #001CA8; }
.fl-sp-records .v6-lien { justify-self: start; }
.fl-sp-archives { display: grid; gap: 1rem; }
.fl-sp-archives .fl-ag-types { flex: 1 1 30rem; min-width: 0; }
.fl-sp .v6-zone.fl-sp-connect-zone { grid-template-columns: minmax(0, 1.4fr) auto; align-items: center; color: #fff; }
.fl-sp-connect .fl-instru-lib { margin: 0 0 .5rem; color: rgba(245, 245, 245, .75); }
.fl-sp-connect h2 { margin: 0; color: #fff; max-width: 22ch; }
.fl-sp-connect p:not(.fl-instru-lib):not(.fl-ag-actions) { color: rgba(245, 245, 245, .85); line-height: 1.6; max-width: 40rem; }

/* ═══ Mondial de l'ULM ═══ */
.fl-mo-intro { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.fl-mo-objectifs { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.fl-mo-objectifs li { display: grid; gap: .3rem; padding: 1.1rem 1.3rem; border-radius: 1.1rem; background: #F5F5F5; border-left: 5px solid #001CA8; }
.fl-mo-objectifs li:nth-child(2) { border-left-color: #F32837; } .fl-mo-objectifs li:nth-child(3) { border-left-color: #191970; }
.fl-mo-objectifs b { font: 800 1.35rem/1.1 var(--police-display); letter-spacing: -.02em; }
.fl-mo-objectifs span { font-size: .92rem; line-height: 1.5; color: rgba(18, 13, 22, .74); }
.fl-mo-editions { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.fl-mo-editions > li { display: grid; gap: .6rem; align-content: start; padding: 1.3rem 1.3rem 1.4rem; border-radius: 1.2rem; background: #fff; border: 1px solid var(--filet); }
.fl-mo-edition-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: .6rem; padding-bottom: .8rem; border-bottom: 1px solid var(--filet); }
.fl-mo-edition-annee { font: 800 2.3rem/1 var(--police-display); letter-spacing: -.04em; color: #001CA8; }
.fl-mo-chiffre { display: grid; justify-items: end; text-align: right; }
.fl-mo-chiffre b { font: 800 1.2rem/1 var(--police-display); color: #F32837; }
.fl-mo-chiffre small { font-size: .74rem; color: rgba(18, 13, 22, .6); max-width: 9rem; }
.fl-mo-quand { display: flex; gap: .45rem; align-items: center; margin: 0; font: 700 .8rem var(--police-ui); color: rgba(18, 13, 22, .66); }
.fl-mo-quand .fl-ag-ico { color: #001CA8; }
.fl-mo-editions h3 { margin: 0; font: 800 1.15rem/1.25 var(--police-display); }
.fl-mo-editions .fl-puces { margin: 0; font-size: .9rem; line-height: 1.5; }
.fl-mo-liens { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin: .2rem 0 0; }
.fl-mo-histoire { list-style: none; margin: 0; padding: 0 0 0 1.2rem; border-left: 2px solid #001CA8; display: grid; gap: 1.1rem; }
.fl-mo-histoire li { position: relative; display: grid; gap: .2rem; }
.fl-mo-histoire li::before { content: ''; position: absolute; left: -1.62rem; top: .3rem; width: .8rem; height: .8rem; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 3px #001CA8; }
.fl-mo-histoire li:last-child::before { background: #F32837; box-shadow: none; }
.fl-mo-histoire b { font: 800 1.3rem/1 var(--police-display); color: #001CA8; }
.fl-mo-histoire p { margin: 0; line-height: 1.55; color: rgba(18, 13, 22, .8); }
.fl-mo-lieu { padding: 1.3rem 1.4rem; border-radius: 1.2rem; background: #F5F5F5; display: grid; gap: .6rem; position: sticky; top: 6rem; }
.fl-mo-lieu p { margin: 0; line-height: 1.5; color: rgba(18, 13, 22, .75); font-size: .92rem; }
.fl-mo-lieu > svg { max-width: 22rem; margin: .4rem auto; }
.fl-mo-lieu .fl-ag-regions path { fill: #fff; stroke: #F5F5F5; }
.fl-mo-lieu .fl-ag-regions path.fl-mo-region { fill: #191970; }
.fl-mo-pin { fill: #F32837; stroke: #fff; stroke-width: 4; }
.fl-mo-pin-halo { fill: none; stroke: #F32837; stroke-width: 3; }
.fl-mo-contact a, .fl-mo-lieu > p a { color: #001CA8; }
.fl-mo-lieu .v6-lien { justify-self: start; }
.fl-mo-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .8rem; }
.fl-mo-photos li[hidden], [data-mo-photos][hidden] { display: none; }
.fl-mo-photos a { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 1rem; overflow: hidden; background: #120D16; }
.fl-mo-photos img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.fl-mo-photos a:hover img { transform: scale(1.05); }
.fl-mo-photos span { position: absolute; left: 0; right: 0; bottom: 0; padding: 2rem .9rem .75rem; font: 600 .82rem/1.35 var(--police-ui); color: #fff; background: linear-gradient(transparent, rgba(18, 13, 22, .85)); }
.fl-mo-encarts { margin-top: .6rem; }

@media (max-width: 1100px) {
  .fl-sp-acces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-sp-disciplines { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
  .fl-sp-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-sp-chiffres > div:nth-child(3) { padding-left: 0; border-left: 0; }
  .fl-sp-chiffres > div:nth-child(n+3) { padding-top: 1.4rem; }
}
@media (max-width: 900px) {
  .fl-ag-intro, .fl-mo-intro, .fl-sp-deux, .fl-sp .v6-zone.fl-sp-connect-zone { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-cote, .fl-mo-lieu { position: static; max-height: none; }
  .fl-ag-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-ag-recherche { grid-column: 1 / -1; }
  .fl-sp-niveaux { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-jalon-carte { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-jalon-visuel { aspect-ratio: 16 / 9; min-height: 0; }
}
@media (max-width: 640px) {
  .fl-ag-chiffres dd { font-size: 1.8rem; }
  .fl-ag-ligne > a:first-child { grid-template-columns: 3.6rem minmax(0, 1fr); gap: .7rem; padding: .6rem .7rem .6rem .6rem; }
  .fl-ag-jour b { font-size: 1.45rem; }
  .fl-ag-ics { width: 4.6rem; font-size: .64rem; }
  .fl-ag-champs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .fl-ag-recherche { grid-column: 1 / -1; }
  .fl-ag-filtres-tete .fl-ag-raz { margin-left: 0; }
  .fl-sp-archives .fl-ag-outils { display: grid; grid-template-columns: minmax(0, 1fr); }
  .fl-ag-vide { flex-direction: column; }
  .fl-sp-acces { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-chiffres { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-chiffres > div, .fl-sp-chiffres > div + div { padding: 1rem 0; border-left: 0; border-bottom: 1px solid var(--filet); }
  .fl-sp-frise::before { left: 1.4rem; }
  .fl-sp-jalon { grid-template-columns: 2.8rem minmax(0, 1fr); gap: .7rem; }
  .fl-sp-annee { font-size: .78rem; padding: .35rem .4rem; }
  .fl-sp-faits li { grid-template-columns: minmax(0, 1fr); gap: .25rem; }
  .fl-sp-epreuve a { grid-template-columns: 3.4rem minmax(0, 1fr); }
  .fl-sp-epreuve a .fl-ag-badge { grid-column: 2; justify-self: start; }
  .fl-sp-cdf-annee { grid-template-columns: minmax(0, 1fr); }
  .fl-sp-cdf-y { grid-row: auto; }
  .fl-sp-cdf-res { grid-column: 1; }
  .fl-ag-tete { align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  .fl-ag-article a, .fl-ag-article-visuel img, .fl-ag-ligne a, .fl-sp-acces-carte, .fl-sp-disciplines a, .fl-mo-photos img, .fl-ag-encart { transition: none; }
}

/* Téléphone (demande d'Alexis du 11/10/2026) : les types d'événements passent à la ligne au lieu de défiler de côté. */
@media (max-width: 760px) {
  .fl-ag-types { flex-wrap: wrap; overflow: visible; gap: .5rem; }
  .fl-ag-types button { flex: 0 1 auto; min-height: 2.75rem; }
}

/* ── Deux affichages de l'agenda (12/10/2026) : vignettes par défaut (photo, date en pastille), liste en lignes ──
   Même balisage : .fl-ag-v ne sert qu'aux vignettes ; la classe est-liste sur [data-ag-resultats] passe en lignes. */
.fl-ag-vues { display: inline-flex; margin-left: auto; padding: .2rem; gap: .2rem; border-radius: 999px; background: #F5F5F5; align-self: center; }
.fl-ag-vues[hidden] { display: none; }
.fl-ag-vues button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .85rem; border-radius: 999px; font: 700 .82rem var(--police-ui); color: rgba(18, 13, 22, .72); }
.fl-ag-vues button .fl-ag-ico { width: 1rem; height: 1rem; }
.fl-ag-vues button:hover { color: #001CA8; }
.fl-ag-vues button:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
.fl-ag-vues button[aria-pressed="true"] { background: #fff; color: #001CA8; box-shadow: 0 1px 4px rgba(18, 13, 22, .14); }
.fl-ag-resultats.est-liste .fl-ag-v { display: none; }

.fl-ag-resultats:not(.est-liste) .fl-ag-lignes { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.fl-ag-resultats:not(.est-liste) .fl-ag-groupe + .fl-ag-groupe { margin-top: 2rem; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne { position: relative; flex-direction: column; gap: 0; border-radius: 1.1rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); transition: transform .25s cubic-bezier(.2, .7, .2, 1), box-shadow .25s, border-color .25s; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne[hidden] { display: none; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne:hover, .fl-ag-resultats:not(.est-liste) .fl-ag-ligne:focus-within { transform: translateY(-3px); box-shadow: 0 22px 40px -26px rgba(18, 13, 22, .45); border-color: #001CA8; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne > a:first-child { display: flex; flex-direction: column; align-items: stretch; flex: 1; gap: 0; padding: 0; border: 0; border-radius: 0; background: transparent; transform: none; }
.fl-ag-vignette-visuel { display: block; aspect-ratio: 16 / 10; background: #F5F5F5; overflow: hidden; }
.fl-ag-vignette-visuel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.fl-ag-vignette-visuel img.fl-ag-logo { object-fit: contain; padding: 1.4rem 1.4rem 1.4rem 6rem; background: #fff; }
.fl-ag-ligne:hover .fl-ag-vignette-visuel img:not(.fl-ag-logo) { transform: scale(1.04); }
.fl-ag-resultats:not(.est-liste) .fl-ag-jour { position: absolute; left: .8rem; top: .8rem; min-height: 0; min-width: 3.6rem; padding: .45rem .6rem .4rem; border-radius: .8rem; box-shadow: 0 8px 18px -10px rgba(18, 13, 22, .6); }
.fl-ag-resultats:not(.est-liste) .fl-ag-jour b { font-size: 1.5rem; white-space: nowrap; }
.fl-ag-resultats:not(.est-liste) .fl-ag-jour small { white-space: nowrap; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne-texte { padding: .95rem 1.1rem 1rem; gap: .4rem; align-content: start; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne-texte b { font-size: 1.08rem; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ics { width: auto; flex-direction: row; justify-content: flex-start; gap: .45rem; margin: 0 1.1rem; padding: .7rem 0 .85rem; border: 0; border-top: 1px solid var(--filet); border-radius: 0; background: transparent; font-size: .78rem; text-align: left; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ics .fl-ag-ico { width: 1.05rem; height: 1.05rem; }
.fl-ag-resultats:not(.est-liste) .fl-ag-ics:hover, .fl-ag-resultats:not(.est-liste) .fl-ag-ics:focus-visible { background: transparent; color: #950714; text-decoration: underline; text-underline-offset: .2em; }
.fl-ag-resultats:not(.est-liste) .fl-ag-passes .fl-ag-ligne:not(:hover) .fl-ag-vignette-visuel img { filter: grayscale(.35); }
@media (max-width: 1100px) { .fl-ag-resultats:not(.est-liste) .fl-ag-lignes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .fl-ag-resultats:not(.est-liste) .fl-ag-lignes { grid-template-columns: minmax(0, 1fr); }
  .fl-ag-vues button { padding: .4rem .7rem; }
}
@media (prefers-reduced-motion: reduce) { .fl-ag-resultats:not(.est-liste) .fl-ag-ligne, .fl-ag-vignette-visuel img { transition: none; } }
.fl-ag-resultats:not(.est-liste) .fl-ag-ligne:not(.est-avenir) .fl-ag-jour { background: #fff; }
