/* Encadrer, documents et vie fédérale (modules-pages/encadrer-documents.mjs, js/encadrer-documents.js).
   Couleurs de la charte seulement : Klein #001CA8, Midnight #191970, noir d'aniline #120D16, White Smoke #F5F5F5,
   Cranberry #950714, rouge #F32837, blanc — et leurs transparences. Préfixe fl-ed-. */

/* ── Éléments communs ── */
.fl-ed-pic { width: 2.6rem; height: 2.6rem; padding: .55rem; box-sizing: border-box; border-radius: .85rem; background: rgba(0, 28, 168, .08); color: #001CA8; flex: none; }
.fl-ed-pic-grand { width: 3.1rem; height: 3.1rem; }
.fl-ed-pic-petit { width: 1.7rem; height: 1.7rem; padding: .3rem; border-radius: .55rem; vertical-align: middle; margin-right: .45rem; }
.fl-ed-lien { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; }
.fl-ed-etiquette { display: inline-flex; align-items: center; gap: .4rem; margin: 0; font: 700 .7rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: #001CA8; }
.fl-ed-etiquette::before { content: ''; width: .45rem; height: .45rem; border-radius: 50%; background: currentColor; }
.fl-ed-manque { margin: 1.2rem 0 0; padding: .75rem 1rem; border-left: 3px solid rgba(0, 28, 168, .35); background: rgba(0, 28, 168, .04); border-radius: 0 .7rem .7rem 0; font-size: .88rem; line-height: 1.55; color: rgba(18, 13, 22, .72); max-width: 72ch; }
.fl-ed-note { margin: .8rem 0 0; font-size: .86rem; line-height: 1.55; color: rgba(18, 13, 22, .62); }
.fl-ed-petit { margin: 1.2rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; align-items: center; font-size: .92rem; color: rgba(18, 13, 22, .72); }
.fl-ed-plus { margin: .9rem 0 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-size: .93rem; }
.fl-ed-boutons { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; align-items: center; margin: 1.6rem 0 0; }
.fl-ed-titre-texte { margin: 2rem 0 .9rem !important; display: flex; align-items: center; gap: .7rem; }
.fl-ed-titre-texte::after { content: ''; flex: 1; height: 1px; background: var(--filet); }
.fl-ed-deux { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(1.6rem, 5vw, 4rem); align-items: start; }
.fl-ed-deux-large { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); }
.fl-ed-coches { list-style: none; margin: .7rem 0 0; padding: 0; display: grid; gap: .55rem; }
.fl-ed-coches li { display: flex; gap: .65rem; align-items: flex-start; line-height: 1.5; font-size: .95rem; color: rgba(18, 13, 22, .82); }
.fl-ed-coches svg { flex: none; margin-top: .2rem; width: 1rem; height: 1rem; padding: .18rem; box-sizing: content-box; border-radius: 50%; background: #001CA8; color: #fff; }
.fl-ed-etiquettes { list-style: none; margin: .7rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.fl-ed-etiquettes li { padding: .45rem .85rem; border-radius: 999px; background: #fff; border: 1px solid var(--filet); font: 600 .88rem/1.3 var(--police-ui); color: #120D16; }

/* L'essentiel */
.fl-ed-essentiel { margin: 0 0 1.6rem; padding: 1.2rem 1.35rem 1.3rem; border-radius: 1.2rem; background: #F5F5F5; border-left: 4px solid #001CA8; }
.fl-ed-essentiel .fl-instru-lib { margin: 0 0 .7rem; color: #001CA8; }
.fl-ed-essentiel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .65rem; }
.fl-ed-essentiel li { display: flex; gap: .7rem; align-items: flex-start; line-height: 1.55; color: #120D16; }
.fl-ed-essentiel li svg { flex: none; margin-top: .22rem; width: 1rem; height: 1rem; padding: .18rem; box-sizing: content-box; border-radius: 50%; background: #001CA8; color: #fff; }

/* Chiffres clés */
.fl-ed-chiffres { list-style: none; margin: 0 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr)); gap: .7rem; }
.fl-ed-chiffres li { display: grid; gap: .3rem; align-content: start; padding: 1rem 1.1rem; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); }
.v6-papier-2 .fl-ed-chiffres li { background: #fff; }
.fl-ed-chiffres b { font: 800 clamp(1.6rem, 2.6vw, 2.2rem)/1 var(--police-display); letter-spacing: -.035em; color: #001CA8; white-space: nowrap; }
.fl-ed-chiffres span { font-size: .86rem; line-height: 1.4; color: rgba(18, 13, 22, .72); }
.fl-ed-chiffres small { font-size: .76rem; color: rgba(18, 13, 22, .55); }
.fl-ed-chiffres-ligne { margin-top: 1.6rem; }
.fl-ed-chiffres-deux { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }

/* Encarts (pages liées) */
.fl-ed-encarts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); gap: 1rem; margin-top: 1.6rem; }
.fl-ed-encart { position: relative; display: grid; gap: .4rem; align-content: start; padding: 1.3rem 1.4rem 2.6rem; border-radius: 1.2rem; background: #F5F5F5; color: #120D16; text-decoration: none; border: 1px solid transparent; transition: border-color .2s, transform .2s, box-shadow .2s; }
.v6-papier-2 .fl-ed-encart { background: #fff; }
.fl-ed-encart .fl-instru-lib { margin: 0; color: #001CA8; }
.fl-ed-encart b { font: 800 1.1rem/1.25 var(--police-display); letter-spacing: -.01em; }
.fl-ed-encart > span:not(.fl-instru-lib) { color: rgba(18, 13, 22, .7); font-size: .92rem; line-height: 1.5; }
.fl-ed-encart-fleche { position: absolute; left: 1.4rem; bottom: 1rem; color: #001CA8; transition: transform .2s; }
.fl-ed-encart:hover, .fl-ed-encart:focus-visible { border-color: #001CA8; transform: translateY(-2px); box-shadow: 0 20px 40px -30px rgba(0, 28, 168, .6); outline: none; }
.fl-ed-encart:hover .fl-ed-encart-fleche { transform: translateX(4px); }

/* Étapes numérotées */
.fl-ed-etapes { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; gap: 0; }
.fl-ed-etapes > li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.1rem; padding: 0 0 1.8rem; }
.fl-ed-etapes > li:not(:last-child)::after { content: ''; position: absolute; left: 1.35rem; top: 2.9rem; bottom: .3rem; border-left: 2px dotted rgba(0, 28, 168, .4); }
.fl-ed-etape-num { display: grid; place-items: center; width: 2.7rem; height: 2.7rem; border-radius: 50%; background: #001CA8; color: #fff; font: 800 .9rem var(--police-display); }
.fl-ed-etapes > li > div { padding-top: .35rem; min-width: 0; }
.fl-ed-etapes b { display: block; font: 800 1.15rem/1.25 var(--police-display); letter-spacing: -.012em; color: #120D16; }
.fl-ed-etapes p { margin: .45rem 0 0; line-height: 1.6; color: rgba(18, 13, 22, .78); max-width: 68ch; }
.fl-ed-etapes .fl-ed-docs-court { margin-top: .9rem; max-width: 46rem; }
.fl-ed-deux-listes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1rem; }
.fl-ed-deux-listes > div { padding: 1rem 1.15rem 1.1rem; border-radius: 1rem; background: #F5F5F5; }
.fl-ed-deux-listes .fl-instru-lib { margin: 0; color: #191970; }

/* Encadrés latéraux */
.fl-ed-cote { display: grid; gap: 1rem; }
.fl-ed-encadre { padding: 1.1rem 1.2rem; border-radius: 1.1rem; background: #F5F5F5; display: grid; gap: .4rem; }
.v6-papier-2 .fl-ed-encadre { background: #fff; }
.fl-ed-encadre p { margin: 0; line-height: 1.5; }
.fl-ed-encadre .fl-instru-lib { color: #001CA8; }
.fl-ed-liens-pile { display: grid; gap: .45rem; }
.fl-ed-encadre-aide { grid-template-columns: auto minmax(0, 1fr); gap: 1rem; margin-top: 1.8rem; align-items: start; border-left: 4px solid #001CA8; }
.fl-ed-encadre-aide > div { display: grid; gap: .45rem; }
.fl-ed-liens-ligne { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: center; margin: .9rem 0 0; }
.fl-ed-actions-ligne { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.6rem; }

/* ── Le texte de la fédération : couleurs saisies à la main (rouge vif, bleu #27518b) ramenées à la charte ── */
.fl-ed-prose [style*="color"] { color: inherit !important; }

/* ── Le texte de la fédération : listes de liens (h6 > a) présentées en lignes ── */
.fl-ed-liens-texte h6:has(> a), .fl-ed-liens-texte h5:has(> a) { margin: 0 !important; font: 600 .97rem/1.4 var(--police-ui) !important; }
.fl-ed-liens-texte h6:has(> a) > a, .fl-ed-liens-texte h5:has(> a) > a { display: flex; align-items: center; gap: .7rem; padding: .62rem .2rem; border-bottom: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: color .15s, padding .15s; }
.fl-ed-liens-texte h6:has(> a) > a::before { content: '→'; flex: none; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: .5rem; background: rgba(0, 28, 168, .08); color: #001CA8; font: 700 .8rem var(--police-ui); }
.fl-ed-liens-texte h6:has(> a) > a[href$=".pdf"]::before, .fl-ed-liens-texte h6:has(> a) > a[href*=".pdf?"]::before { content: 'PDF'; font-size: .58rem; letter-spacing: .04em; }
.fl-ed-liens-texte h6:has(> a) > a[href$=".doc"]::before, .fl-ed-liens-texte h6:has(> a) > a[href$=".docx"]::before { content: 'DOC'; font-size: .58rem; letter-spacing: .04em; background: rgba(25, 25, 112, .1); color: #191970; }
.fl-ed-liens-texte h6:has(> a) > a:hover, .fl-ed-liens-texte h6:has(> a) > a:focus-visible { color: #001CA8; padding-left: .5rem; outline: none; }
.fl-ed-liens-texte h6:has(> a) + h6:has(> a) { margin-top: 0 !important; }

/* ── Documents ── */
.fl-ed-docs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: .6rem; }
.fl-ed-docs-court { grid-template-columns: minmax(0, 1fr); gap: .45rem; }
.fl-ed-doc[hidden] { display: none; }
.fl-ed-doc > a, .fl-ed-doc > .fl-ed-doc-sans { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; column-gap: .85rem; align-items: center; height: 100%; box-sizing: border-box; padding: .7rem .9rem; border-radius: .95rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.fl-ed-doc > .fl-ed-doc-sans { grid-template-columns: auto minmax(0, 1fr); background: transparent; border-style: dashed; }
.fl-ed-doc > a:hover, .fl-ed-doc > a:focus-visible { border-color: #001CA8; box-shadow: 0 14px 28px -20px rgba(0, 28, 168, .55); transform: translateY(-1px); outline: none; }
.fl-ed-type { display: grid; place-items: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .3rem; box-sizing: border-box; border-radius: .7rem; background: rgba(0, 28, 168, .08); color: #001CA8; font: 800 .62rem/1.1 var(--police-display); letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.fl-ed-type-doc { background: rgba(25, 25, 112, .1); color: #191970; }
.fl-ed-type-xls, .fl-ed-type-ppt, .fl-ed-type-zip { background: rgba(149, 7, 20, .08); color: #950714; }
.fl-ed-type-ligne, .fl-ed-type-site { background: #191970; color: #fff; }
.fl-ed-type-page { background: #F5F5F5; color: #120D16; border: 1px solid var(--filet); }
.fl-ed-type-avenir { background: transparent; color: rgba(18, 13, 22, .55); border: 1px dashed var(--filet-fort); }
.fl-ed-doc-texte { display: grid; gap: .15rem; min-width: 0; }
.fl-ed-doc-texte b { font: 600 .93rem/1.35 var(--police-ui); overflow-wrap: anywhere; }
.fl-ed-doc-texte small { font-size: .77rem; line-height: 1.35; color: rgba(18, 13, 22, .56); overflow-wrap: anywhere; }
.fl-ed-doc-fleche { color: #001CA8; }

/* Bibliothèque : recherche, puces, compteur */
.fl-ed-outils { display: flex; flex-wrap: wrap; gap: .8rem 1rem; align-items: center; margin: 1.6rem 0 1.4rem; }
.fl-ed-cherche { flex: 1 1 18rem; max-width: 28rem; display: flex; align-items: center; gap: .55rem; margin: 0; padding: 0 1rem; min-height: 2.9rem; border-radius: 999px; background: #fff; border: 1px solid var(--filet-fort); box-sizing: border-box; }
.fl-ed-cherche:focus-within { border-color: #001CA8; box-shadow: 0 0 0 3px rgba(0, 28, 168, .14); }
.fl-ed-cherche svg { width: 1.1rem; height: 1.1rem; color: #001CA8; flex: none; }
.fl-ed-cherche input { flex: 1; min-width: 0; border: 0; background: transparent; font: inherit; font-size: .98rem; color: #120D16; padding: .6rem 0; outline: none; box-shadow: none; appearance: none; }
.fl-ed-puces { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: .4rem; }
.fl-ed-puces button, .fl-ed-segments button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; padding: .45rem .85rem; border-radius: 999px; font: 600 .86rem var(--police-ui); color: rgba(18, 13, 22, .78); background: #fff; border: 1px solid var(--filet); transition: background .15s, color .15s, border-color .15s; }
.fl-ed-puces button small, .fl-ed-segments button small { font: 700 .7rem var(--police-ui); color: rgba(18, 13, 22, .5); }
.fl-ed-puces button:hover { border-color: #001CA8; color: #001CA8; }
.fl-ed-puces button[aria-pressed="true"], .fl-ed-segments button[aria-pressed="true"] { background: #001CA8; border-color: #001CA8; color: #fff; }
.fl-ed-puces button[aria-pressed="true"] small, .fl-ed-segments button[aria-pressed="true"] small { color: rgba(255, 255, 255, .78); }
.fl-ed-puces button:focus-visible, .fl-ed-segments button:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
.fl-ed-segments { display: inline-flex; flex-wrap: wrap; gap: .25rem; padding: .25rem; border-radius: 999px; background: #F5F5F5; border: 1px solid var(--filet); }
.fl-ed-segments button { border-color: transparent; background: transparent; }
.fl-ed-compte { margin: 0 0 0 auto; font: 600 .86rem var(--police-ui); color: rgba(18, 13, 22, .6); }
.fl-ed-vide { padding: 1.6rem; border: 1px dashed var(--filet-fort); border-radius: 1rem; text-align: center; color: rgba(18, 13, 22, .65); display: grid; gap: .8rem; justify-items: center; }
.fl-ed-vide[hidden] { display: none; }
.fl-ed-vide p { margin: 0; }
.fl-ed-groupe { margin: 0 0 2rem; scroll-margin-top: 7rem; }
.fl-ed-groupe[hidden] { display: none; }
.fl-ed-groupe-titre, .fl-prose .fl-ed-groupe-titre, .fl-prose h2.fl-ed-groupe-titre { display: flex; align-items: baseline; gap: .6rem; margin: 0 0 .9rem !important; padding: 0 !important; border: 0 !important; font: 800 1.2rem/1.25 var(--police-display) !important; letter-spacing: -.015em; color: #120D16; }
.fl-prose h2.fl-ed-groupe-titre::before { display: none; }
.fl-ed-groupe-titre small { font: 700 .74rem var(--police-ui); color: #001CA8; padding: .15rem .5rem; border-radius: 999px; background: rgba(0, 28, 168, .08); }
.fl-ed-prose-biblio > * + * { margin-top: 0; }
.fl-ed-prose-biblio ul, .fl-ed-prose-guides ul, .fl-ed-prose-faq ul.fl-ed-docs { padding-left: 0; }
.fl-ed-prose .fl-ed-docs li::before, .fl-ed-prose .fl-ed-fiches li::before, .fl-ed-prose .fl-ed-guides li::before { display: none; }
.fl-ed-prose .fl-ed-doc > a, .fl-ed-prose .fl-ed-fiche-carte > a, .fl-ed-prose .fl-ed-guide a { color: #120D16; text-decoration: none; overflow-wrap: normal; }
.fl-ed-biblio-deux { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(1.4rem, 4vw, 3rem); align-items: start; }
.fl-ed-biblio-deux .fl-ed-docs { grid-template-columns: minmax(0, 1fr); }
.fl-ed-ailleurs { padding: 1.2rem 1.25rem; border-radius: 1.3rem; background: #F5F5F5; }
.fl-ed-ailleurs .fl-ed-titre-texte { margin-top: 0 !important; }
.fl-ed-ailleurs .fl-ed-groupe-titre { font-size: 1.02rem !important; }
.fl-ed-ailleurs .fl-ed-note { margin: -.3rem 0 1.2rem; }
.fl-ed-biblio-deux > div > .fl-ed-titre-texte { margin-top: 0 !important; }
.fl-ed-docs-section .fl-ed-groupe .fl-ed-docs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }

/* ── Structures : annuaire ── */
.fl-ed-annuaire-carte { position: relative; display: grid; gap: 1rem; padding: clamp(1.3rem, 3vw, 2rem); border-radius: 1.5rem; background: #fff; border: 1px solid var(--filet); box-shadow: 0 30px 60px -44px rgba(0, 28, 168, .5); }
.fl-ed-champ { display: grid; gap: .45rem; }
.fl-ed-champ > span { font: 600 .9rem var(--police-ui); color: rgba(18, 13, 22, .78); }
.fl-ed-champ select, .fl-ed-champ input { font: 600 1rem var(--police-ui); color: #120D16; background: #F5F5F5; border: 1px solid var(--filet-fort); border-radius: .9rem; padding: .8rem 1rem; width: 100%; box-sizing: border-box; }
.fl-ed-champ select { appearance: none; padding-right: 2.4rem; 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'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right .8rem center; background-size: 1.1rem; }
.fl-ed-champ select:focus, .fl-ed-champ input:focus { outline: 2px solid #001CA8; outline-offset: 1px; }
.fl-ed-annuaire-carte .fl-ed-boutons { margin-top: .2rem; }
.fl-ed-annuaire-carte .fl-ed-petit { margin-top: 0; }

/* ── Articles liés ── */
.fl-ed-cartes { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1.1rem; }
.fl-ed-carte a { display: flex; flex-direction: column; height: 100%; border-radius: 1.15rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s, border-color .3s; }
.fl-ed-carte a:hover, .fl-ed-carte a:focus-visible { transform: translateY(-4px); box-shadow: 0 24px 44px -28px rgba(0, 28, 168, .5); border-color: rgba(0, 28, 168, .3); outline: none; }
.fl-ed-carte-visuel { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #F5F5F5; }
.fl-ed-carte-visuel img { width: 100%; height: 100%; object-fit: cover; }
.fl-ed-carte-texte { display: grid; gap: .45rem; padding: 1rem 1.1rem 1.15rem; align-content: start; flex: 1; }
.fl-ed-carte-texte b { font: 800 1.02rem/1.3 var(--police-display); letter-spacing: -.01em; text-wrap: balance; }
.fl-ed-carte-texte > span { 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; }
.fl-ed-carte-texte time { margin-top: auto; font-size: .8rem; color: rgba(18, 13, 22, .55); }

/* ── Instructeurs ── */
.fl-ed-parcours-grille { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.fl-ed-parcours-carte { position: relative; display: grid; gap: .55rem; align-content: start; height: 100%; box-sizing: border-box; padding: 1.3rem 1.35rem 2.8rem; border-radius: 1.25rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .25s, box-shadow .25s, transform .25s; }
.fl-ed-parcours-carte b { font: 800 1.15rem/1.25 var(--police-display); letter-spacing: -.012em; margin-top: .3rem; }
.fl-ed-parcours-carte > span { font-size: .93rem; line-height: 1.55; color: rgba(18, 13, 22, .74); }
.fl-ed-parcours-carte > i { position: absolute; left: 1.35rem; bottom: 1.1rem; color: #001CA8; }
.fl-ed-parcours-carte:hover, .fl-ed-parcours-carte:focus-visible { border-color: #001CA8; box-shadow: 0 22px 44px -32px rgba(0, 28, 168, .55); transform: translateY(-2px); outline: none; }
.fl-ed-parcours-bleu { background: #001CA8; border-color: #001CA8; color: #fff; }
.fl-ed-parcours-bleu > span { color: rgba(255, 255, 255, .85); }
.fl-ed-parcours-bleu .fl-ed-pic { background: rgba(255, 255, 255, .14); color: #fff; }
.fl-ed-parcours-bleu > i { color: #fff; }
.fl-ed-parcours-bleu:hover, .fl-ed-parcours-bleu:focus-visible { background: #191970; border-color: #191970; }

/* Stages à venir */
.fl-ed-stages { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: .8rem; }
.fl-ed-stage a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; height: 100%; box-sizing: border-box; padding: .85rem 1rem; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.fl-ed-stage a:hover, .fl-ed-stage a:focus-visible { border-color: #001CA8; box-shadow: 0 16px 32px -24px rgba(0, 28, 168, .55); outline: none; }
.fl-ed-stage-date { display: grid; place-items: center; align-content: center; width: 4rem; height: 4.2rem; border-radius: .9rem; background: #001CA8; color: #fff; }
.fl-ed-stage-date b { font: 800 1.55rem/1 var(--police-display); letter-spacing: -.03em; }
.fl-ed-stage-date small { font: 700 .62rem var(--police-ui); letter-spacing: .06em; margin-top: .2rem; }
.fl-ed-stage-texte { display: grid; gap: .15rem; min-width: 0; }
.fl-ed-stage-texte b { font: 800 .98rem/1.3 var(--police-display); }
.fl-ed-stage-texte span { font-size: .86rem; color: rgba(18, 13, 22, .75); }
.fl-ed-stage-texte small { font-size: .8rem; color: rgba(18, 13, 22, .56); overflow-wrap: anywhere; }
.fl-ed-stage-fleche { color: #001CA8; }

/* Aides (section de nuit) */
.fl-ed-aides-grille { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem; }
.fl-ed-aides-grille li { display: grid; gap: .55rem; align-content: start; padding: 1.3rem 1.35rem; border-radius: 1.2rem; background: rgba(245, 245, 245, .06); border: 1px solid rgba(245, 245, 245, .16); }
.fl-ed-aide-lib { font: 800 1.12rem/1.25 var(--police-display); color: #fff; }
.fl-ed-aide-texte { font-size: .93rem; line-height: 1.55; color: rgba(245, 245, 245, .86); }
.fl-ed-aides-grille a { margin-top: .2rem; color: #fff; font-weight: 700; font-size: .9rem; text-underline-offset: 3px; overflow-wrap: anywhere; }

/* ── Instructeurs par département ── */
.fl-ed-annuaire-explique { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 1.4rem 2.4rem; align-items: start; margin-top: 1.6rem; }
.fl-ed-annuaire-explique .fl-ed-manque { margin: 0; }
.fl-ed-mini-etapes { list-style: none; counter-reset: ed; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.fl-ed-mini-etapes li { counter-increment: ed; display: grid; gap: .3rem; align-content: start; padding: 1rem 1.05rem; border-radius: 1rem; background: #F5F5F5; }
.fl-ed-mini-etapes li::before { content: counter(ed); display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: #001CA8; color: #fff; font: 800 .82rem var(--police-display); margin-bottom: .2rem; }
.fl-ed-mini-etapes b { font: 800 .98rem var(--police-display); }
.fl-ed-mini-etapes span { font-size: .86rem; line-height: 1.45; color: rgba(18, 13, 22, .72); }
.fl-ed-deps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); gap: .6rem; }
.fl-ed-dep { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "code nom" "liens liens"; gap: .55rem .8rem; align-items: center; padding: .8rem .9rem; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); transition: border-color .2s; }
.fl-ed-dep[hidden] { display: none; }
.fl-ed-dep:hover { border-color: rgba(0, 28, 168, .4); }
.fl-ed-dep-code { grid-area: code; display: grid; place-items: center; min-width: 2.7rem; height: 2.7rem; padding: 0 .3rem; box-sizing: border-box; border-radius: .75rem; background: rgba(0, 28, 168, .08); color: #001CA8; font: 800 .95rem var(--police-display); }
.fl-ed-dep-nom { grid-area: nom; display: grid; min-width: 0; }
.fl-ed-dep-nom b { font: 700 .98rem/1.25 var(--police-ui); overflow-wrap: anywhere; }
.fl-ed-dep-nom small { font-size: .76rem; color: rgba(18, 13, 22, .55); }
.fl-ed-dep-liens { grid-area: liens; display: flex; flex-wrap: wrap; gap: .4rem; }
.fl-ed-dep-liens a { display: inline-flex; align-items: center; padding: .35rem .7rem; border-radius: 999px; font: 700 .8rem var(--police-ui); text-decoration: none; background: #001CA8; color: #fff; transition: background .15s; }
.fl-ed-dep-liens a + a { background: #F5F5F5; color: #120D16; border: 1px solid var(--filet); }
.fl-ed-dep-liens a:hover, .fl-ed-dep-liens a:focus-visible { background: #191970; color: #fff; outline: none; }
.fl-ed-annuaire-deps .fl-ed-puces { order: 3; }

/* ── Actualisation ── */
.fl-ed-alerte { display: flex; gap: .9rem; align-items: center; margin: 1.6rem 0 0; padding: 1rem 1.2rem; border-radius: 1.1rem; background: rgba(243, 40, 55, .07); border: 1px solid rgba(149, 7, 20, .2); color: #950714; font: 600 1rem/1.5 var(--police-ui); }
.fl-ed-alerte .fl-ed-pic { background: #950714; color: #fff; }
.fl-ed-regle-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 1.6rem; align-items: stretch; }
.fl-ed-cas { display: grid; gap: .5rem; align-content: start; padding: 1.4rem 1.4rem 1.5rem; border-radius: 1.3rem; background: #fff; border: 1px solid var(--filet); }
.fl-ed-cas h3 { margin: 0; font: 800 1.45rem/1.15 var(--police-display); letter-spacing: -.02em; color: #001CA8; }
.fl-ed-cas p { margin: 0; line-height: 1.5; color: rgba(18, 13, 22, .78); }
.fl-ed-cas-sur { font: 700 .7rem var(--police-ui) !important; letter-spacing: .1em; text-transform: uppercase; color: rgba(18, 13, 22, .55) !important; }
.fl-ed-cas-sombre { background: #191970; border-color: #191970; }
.fl-ed-cas-sombre h3 { color: #fff; }
.fl-ed-cas-sombre p, .fl-ed-cas-sombre .fl-ed-coches li { color: rgba(255, 255, 255, .86); }
.fl-ed-cas-sombre .fl-ed-cas-sur { color: rgba(255, 255, 255, .62) !important; }
.fl-ed-cas-sombre .fl-ed-coches svg { background: #fff; color: #191970; }
.fl-ed-calcul { display: grid; gap: .8rem; align-content: start; margin: 0; padding: 1.4rem; border-radius: 1.3rem; background: #F5F5F5; border: 1px dashed rgba(0, 28, 168, .35); }
.fl-ed-calcul .fl-instru-lib { margin: 0; color: #001CA8; }
.fl-ed-calcul-res { margin: 0; display: grid; gap: .5rem; }
.fl-ed-calcul-res[hidden] { display: none; }
.fl-ed-calcul-res div { padding: .65rem .8rem; border-radius: .8rem; background: #fff; }
.fl-ed-calcul-res dt { font: 700 .68rem var(--police-ui); letter-spacing: .08em; text-transform: uppercase; color: rgba(18, 13, 22, .55); }
.fl-ed-calcul-res dd { margin: .2rem 0 0; font: 800 1rem/1.3 var(--police-display); color: #120D16; }
.fl-ed-calcul .fl-ed-note { margin: 0; }
.fl-ed-trois { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fl-ed-trois > li { display: grid; gap: .5rem; align-content: start; padding: 1.35rem; border-radius: 1.25rem; background: #fff; border: 1px solid var(--filet); }
.fl-ed-trois > li > b { font: 800 1.15rem/1.25 var(--police-display); margin-top: .2rem; }
.fl-ed-trois > li > span:not(.fl-ed-etiquette) { font-size: .93rem; line-height: 1.55; color: rgba(18, 13, 22, .76); }
.fl-ed-trois-num > li { border-top: 4px solid #001CA8; }
.fl-ed-trois-num > li:nth-child(2) { border-top-color: #191970; }
.fl-ed-trois-num > li:nth-child(3) { border-top-color: #F32837; }

/* ── Programme : onglets par classe ── */
.fl-ed-onglets { margin-top: 1.8rem; border-radius: 1.5rem; background: #fff; border: 1px solid var(--filet); overflow: hidden; }
.fl-ed-onglets-liste { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid var(--filet); }
.fl-ed-onglets-liste button { all: unset; box-sizing: border-box; cursor: pointer; display: flex; gap: .6rem; align-items: center; padding: .9rem 1rem; color: rgba(18, 13, 22, .65); transition: background .2s, color .2s; border-bottom: 3px solid transparent; }
.fl-ed-onglets-liste button + button { border-left: 1px solid var(--filet); }
.fl-ed-onglets-liste img { width: 2.4rem; height: 2.4rem; object-fit: contain; flex: none; }
.fl-ed-onglet-num { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 2px solid rgba(0, 28, 168, .25); font: 800 .9rem var(--police-display); color: #001CA8; flex: none; }
.fl-ed-onglets-liste b { display: block; font: 800 .95rem/1.2 var(--police-display); color: #120D16; }
.fl-ed-onglets-liste small { display: block; font-size: .74rem; margin-top: .1rem; }
.fl-ed-onglets-liste button[aria-selected="true"] { background: rgba(0, 28, 168, .05); border-bottom-color: #001CA8; color: rgba(18, 13, 22, .8); }
.fl-ed-onglets-liste button:hover { background: rgba(0, 28, 168, .035); }
.fl-ed-onglets-liste button:focus-visible { outline: 3px solid #001CA8; outline-offset: -3px; }
.fl-ed-onglet-panneau { padding: clamp(1.2rem, 3vw, 2.2rem); }
.fl-ed-onglet-panneau[hidden] { display: none; }
.fl-ed-onglet-panneau + .fl-ed-onglet-panneau { border-top: 1px solid var(--filet); }
.fl-ed-onglets.est-actif .fl-ed-onglet-panneau + .fl-ed-onglet-panneau { border-top: 0; }
.fl-ed-classe-tete { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); gap: 1.6rem; align-items: center; }
.fl-ed-classe-tete h3 { margin: .4rem 0 .5rem; }
.fl-ed-classe-tete p { margin: 0; line-height: 1.55; color: rgba(18, 13, 22, .76); }
.fl-ed-classe-photo { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 1.1rem; overflow: hidden; background: #191970; }
.fl-ed-classe-photo img { width: 100%; height: 100%; object-fit: cover; }
.fl-ed-classe-photo i { position: absolute; left: .8rem; bottom: .3rem; font: 900 3rem/1 var(--police-display); font-style: normal; color: #fff; text-shadow: 0 6px 24px rgba(18, 13, 22, .45); }
.fl-ed-phase { margin-top: 1.8rem; }
.fl-ed-phase-titre { margin: 0 0 .9rem; padding-bottom: .5rem; border-bottom: 2px solid #001CA8; font: 800 1.1rem var(--police-display); color: #001CA8; }
.fl-ed-phase-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.2rem; }
.fl-ed-rub { display: grid; gap: .55rem; align-content: start; }
.fl-ed-rub-titre { margin: 0; display: flex; align-items: center; font: 700 .95rem var(--police-ui); color: #120D16; }
.fl-ed-rub .fl-ed-note { margin: 0; }

/* ── Fiches pédagogiques et techniques ── */
.fl-ed-fiches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); gap: .6rem; }
.fl-ed-fiche-carte[hidden] { display: none; }
.fl-ed-fiche-carte a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; align-items: center; height: 100%; box-sizing: border-box; padding: .7rem .85rem; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); color: #120D16; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.fl-ed-fiche-carte a:hover, .fl-ed-fiche-carte a:focus-visible { border-color: #001CA8; box-shadow: 0 14px 28px -20px rgba(0, 28, 168, .55); transform: translateY(-1px); outline: none; }
.fl-ed-fiche-code { display: grid; place-items: center; align-content: center; width: 3.1rem; height: 3.1rem; border-radius: .85rem; background: #001CA8; color: #fff; font: 800 1.15rem/1 var(--police-display); letter-spacing: -.02em; }
.fl-ed-fiche-code small { font: 700 .55rem var(--police-ui); letter-spacing: .1em; opacity: .8; margin-bottom: .15rem; }
.fl-ed-fiche-code.est-technique { background: #191970; }
.fl-ed-fiche-texte { display: grid; gap: .15rem; min-width: 0; }
.fl-ed-fiche-texte b { font: 600 .92rem/1.32 var(--police-ui); overflow-wrap: anywhere; }
.fl-ed-fiche-texte small { font-size: .76rem; color: rgba(18, 13, 22, .55); }
.fl-ed-prose-biblio > p, .fl-ed-prose-biblio > p + p { margin: 0 0 1.4rem; max-width: 70ch; font-size: .95rem; color: rgba(18, 13, 22, .75); }
.fl-ed-fiches-section .fl-ed-groupe-plus { margin-top: .4rem; }

/* ── Guides pratiques ── */
.fl-ed-guides { list-style: none; margin: 1.4rem 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.2rem; }
.fl-ed-guide { display: flex; flex-direction: column; margin: 0 !important; border-radius: 1.3rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); transition: box-shadow .3s, border-color .3s; }
.fl-ed-guide[hidden] { display: none; }
.fl-ed-guide:hover { box-shadow: 0 28px 52px -36px rgba(0, 28, 168, .55); border-color: rgba(0, 28, 168, .25); }
.fl-ed-guide-couv { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: linear-gradient(160deg, #001CA8, #191970); display: grid; place-items: center; }
.fl-ed-guide-couv img { position: relative; z-index: 1; max-width: 72%; max-height: 86%; width: auto; height: auto; object-fit: contain; border-radius: .35rem; box-shadow: 0 18px 36px -16px rgba(18, 13, 22, .65); background: #fff; }
.fl-ed-guide-repli { position: absolute; inset: 0; display: grid; place-items: center; align-content: center; gap: .6rem; padding: 1.4rem; text-align: center; color: #fff; }
.fl-ed-guide-repli .fl-ed-pic { background: rgba(255, 255, 255, .14); color: #fff; width: 3rem; height: 3rem; }
.fl-ed-guide-repli b { font: 800 1.2rem/1.2 var(--police-display); max-width: 14ch; }
.fl-ed-guide-texte { display: flex; flex-direction: column; gap: .55rem; padding: 1.1rem 1.25rem 1.3rem; flex: 1; }
.fl-prose .fl-ed-guide-titre, .fl-ed-guide-titre { margin: 0 !important; padding: 0 !important; border: 0 !important; font: 800 1.15rem/1.25 var(--police-display) !important; letter-spacing: -.012em; color: #120D16; }
.fl-prose h2.fl-ed-guide-titre::before { display: none; }
.fl-ed-guide-phrase { margin: 0 !important; font-size: .9rem; line-height: 1.5; color: rgba(18, 13, 22, .7); }
.fl-ed-guide-liens { margin: auto 0 0 !important; padding-top: .5rem; display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; }
.fl-ed-prose .fl-ed-guide-liens a.v6-bouton { color: #fff; }
.fl-ed-guide-autre { font: 700 .86rem var(--police-ui); color: #001CA8 !important; text-decoration: underline !important; text-underline-offset: 3px; }

/* ── Foire aux questions ── */
.fl-ed-faq { display: grid; grid-template-columns: minmax(0, 17rem) minmax(0, 1fr); gap: clamp(1.4rem, 4vw, 3.4rem); align-items: start; margin-top: 1.6rem; }
.fl-ed-faq-nav { position: sticky; top: 6rem; display: grid; gap: 1.2rem; }
.fl-ed-faq-nav .fl-ed-outils { margin: 0; display: grid; gap: .6rem; }
.fl-ed-faq-nav .fl-ed-cherche { max-width: none; }
.fl-ed-faq-nav .fl-ed-compte { margin: 0; }
.fl-ed-faq-nav nav .fl-instru-lib { margin: 0 0 .5rem; }
.fl-ed-faq-nav ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .2rem; }
.fl-ed-faq-nav ol a { display: flex; justify-content: space-between; gap: .6rem; padding: .5rem .7rem; border-radius: .7rem; font: 600 .92rem var(--police-ui); color: #120D16; text-decoration: none; transition: background .15s, color .15s; }
.fl-ed-faq-nav ol a small { font: 700 .74rem var(--police-ui); color: rgba(18, 13, 22, .5); }
.fl-ed-faq-nav ol a:hover, .fl-ed-faq-nav ol a:focus-visible, .fl-ed-faq-nav ol a[aria-current="true"] { background: rgba(0, 28, 168, .07); color: #001CA8; outline: none; }
.fl-ed-faq-actions { margin: 0; display: flex; gap: 1rem; }
.fl-ed-lien-bouton { all: unset; cursor: pointer; font: 700 .86rem var(--police-ui); color: #001CA8; text-decoration: underline; text-underline-offset: 3px; }
.fl-ed-lien-bouton:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
.fl-ed-faq-corps { min-width: 0; }
.fl-ed-prose-faq > * + * { margin-top: 0; }
.fl-ed-faq-theme { margin: 0 0 2.6rem; scroll-margin-top: 6rem; }
.fl-ed-faq-theme[hidden] { display: none; }
.fl-ed-faq-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .9rem; padding-bottom: .7rem; border-bottom: 2px solid #001CA8; }
.fl-ed-faq-tete .fl-ed-groupe-titre { margin: 0 !important; font-size: clamp(1.25rem, 2vw, 1.55rem) !important; }
.fl-ed-faq-ref { margin: 0 !important; font-size: .8rem; color: rgba(18, 13, 22, .58); }
.fl-ed-q { margin: 0 0 .55rem !important; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); scroll-margin-top: 6.5rem; transition: border-color .2s, box-shadow .2s; }
.fl-ed-q[hidden] { display: none; }
.fl-ed-q[open] { border-color: rgba(0, 28, 168, .35); box-shadow: 0 18px 36px -30px rgba(0, 28, 168, .55); }
.fl-ed-q > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .95rem 1.1rem; font: 700 1rem/1.4 var(--police-display); color: #120D16; }
.fl-ed-q > summary::-webkit-details-marker { display: none; }
.fl-ed-q > summary::after { content: '+'; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; background: #F5F5F5; color: #001CA8; font: 700 1.15rem var(--police-ui); }
.fl-ed-q[open] > summary::after { content: '–'; background: #001CA8; color: #fff; }
.fl-ed-q > summary:hover { color: #001CA8; }
.fl-ed-q > summary:focus-visible { outline: 3px solid #001CA8; outline-offset: -3px; border-radius: 1rem; }
.fl-ed-r { padding: .2rem 1.2rem 1.1rem; border-top: 1px solid var(--filet); overflow-wrap: anywhere; font-size: .97rem; }
.fl-ed-r > * + * { margin-top: .8rem; }
.fl-ed-r img, .fl-ed-r iframe { max-width: 100%; height: auto; }
.fl-ed-r .fl-media { margin: 1rem 0; }
.fl-ed-q-lien { margin: 1rem 0 0 !important; padding-top: .7rem; border-top: 1px dashed var(--filet); }
.fl-ed-q-lien button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; font: 600 .82rem var(--police-ui); color: rgba(18, 13, 22, .6); }
.fl-ed-q-lien button::before { content: '#'; display: grid; place-items: center; width: 1.3rem; height: 1.3rem; border-radius: .4rem; background: rgba(0, 28, 168, .08); color: #001CA8; font-weight: 800; }
.fl-ed-q-lien button:hover, .fl-ed-q-lien button:focus-visible { color: #001CA8; outline: none; }
.fl-ed-q-lien button.est-copie { color: #001CA8; }
.fl-ed-faq-plus { margin: .9rem 0 0 !important; }

/* ── Éthique ── */
.fl-ed-piliers-grille { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.fl-ed-piliers-grille li { display: grid; gap: .55rem; align-content: start; padding: 1.35rem; border-radius: 1.25rem; background: #fff; border: 1px solid var(--filet); }
.fl-ed-piliers-grille b { font: 800 1.12rem/1.25 var(--police-display); margin-top: .2rem; }
.fl-ed-piliers-grille span { font-size: .92rem; line-height: 1.55; color: rgba(18, 13, 22, .76); }
.fl-ed-piliers-grille a { margin-top: .3rem; font: 700 .88rem var(--police-ui); color: #001CA8; text-underline-offset: 3px; overflow-wrap: anywhere; }
.fl-ed-qr { margin: 0; display: grid; gap: .8rem; }
.fl-ed-qr div { padding: 1.1rem 1.2rem; border-radius: 1.1rem; background: #F5F5F5; border-left: 4px solid #001CA8; }
.fl-ed-qr dt { font: 800 1.02rem var(--police-display); color: #001CA8; }
.fl-ed-qr dd { margin: .35rem 0 0; line-height: 1.6; color: rgba(18, 13, 22, .8); }
.fl-ed-prev-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; margin-top: 1.8rem; }
.fl-ed-prevention .fl-instru-lib { color: rgba(245, 245, 245, .72); margin: 0; }
.fl-ed-prevention .fl-ed-etiquettes li { background: rgba(245, 245, 245, .08); border-color: rgba(245, 245, 245, .2); color: #fff; }
.fl-ed-contacts-titre { margin: 2.2rem 0 0 !important; }
.fl-ed-contacts { list-style: none; margin: .9rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .8rem; }
.fl-ed-contacts a { display: grid; gap: .4rem; align-content: start; height: 100%; box-sizing: border-box; padding: 1.2rem; border-radius: 1.1rem; background: #fff; color: #120D16; text-decoration: none; border: 1px solid transparent; transition: border-color .2s, transform .2s; }
.fl-ed-contacts a:hover, .fl-ed-contacts a:focus-visible { border-color: #F32837; transform: translateY(-2px); outline: none; }
.fl-ed-contacts .fl-ed-pic { background: rgba(243, 40, 55, .1); color: #950714; }
.fl-ed-contacts b { font: 800 1rem var(--police-display); margin-top: .2rem; }
.fl-ed-contacts span { font-size: .88rem; line-height: 1.45; color: rgba(18, 13, 22, .7); }
.fl-ed-contacts em { font: 700 .88rem var(--police-ui); font-style: normal; color: #950714; overflow-wrap: anywhere; }

/* ── Festi'ULM ── */
.fl-ed-statut { display: flex; gap: .8rem; align-items: center; margin: 1.4rem 0 0; padding: .85rem 1.1rem; border-radius: 1rem; background: #191970; color: #fff; font: 600 .97rem/1.45 var(--police-ui); }
.fl-ed-statut .fl-ed-pic { background: rgba(255, 255, 255, .14); color: #fff; }
.fl-ed-festi-affiche { margin: 0; display: grid; gap: .5rem; }
.fl-ed-festi-affiche figcaption, .fl-ed-plans figcaption { font-size: .82rem; color: rgba(18, 13, 22, .58); }
.fl-ed-zoom { all: unset; cursor: zoom-in; display: block; border-radius: 1.1rem; overflow: hidden; background: #fff; border: 1px solid var(--filet); box-shadow: 0 26px 50px -34px rgba(18, 13, 22, .55); }
.fl-ed-zoom img { display: block; width: 100%; height: auto; }
.fl-ed-zoom:focus-visible { outline: 3px solid #001CA8; outline-offset: 3px; }
.fl-ed-jours { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fl-ed-jour { display: grid; gap: .4rem; align-content: start; padding: 1.4rem; border-radius: 1.3rem; background: #fff; border-top: 5px solid #001CA8; }
.fl-ed-jour-2 { border-top-color: #F32837; }
.fl-ed-jour-3 { border-top-color: #191970; }
.fl-ed-jour-date { margin: 0; font: 700 .74rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: rgba(18, 13, 22, .58); }
.fl-ed-jour h3 { margin: 0; font: 800 1.35rem/1.15 var(--police-display); letter-spacing: -.02em; color: #120D16; }
.fl-ed-jour ul { margin: .5rem 0 0; padding-left: 1.1rem; display: grid; gap: .4rem; line-height: 1.45; color: rgba(18, 13, 22, .8); font-size: .95rem; }
.fl-ed-jour li::marker { color: #001CA8; }
.fl-ed-festi-samedi { display: flex; gap: .9rem; align-items: flex-start; margin: 1.2rem 0 0; padding: 1rem 1.2rem; border-radius: 1.1rem; background: #fff; border: 1px dashed rgba(0, 28, 168, .35); line-height: 1.55; }
.fl-ed-festi-planches { margin-top: 2rem; }
.fl-ed-festi-planches .fl-instru-lib { margin: 0 0 .8rem; }
.fl-ed-planches { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; max-width: 52rem; }
.fl-ed-planche img { aspect-ratio: 210 / 297; object-fit: cover; object-position: top; }
.fl-ed-festi-planches > p { margin: 1rem 0 0; }
.fl-ed-zones { display: grid; gap: 1.6rem; }
.fl-ed-zones .fl-instru-lib { margin: 0; display: flex; align-items: center; color: #001CA8; }
.fl-ed-plans { display: grid; gap: 1.2rem; }
.fl-ed-plans figure { margin: 0; display: grid; gap: .45rem; }
.fl-ed-table-ronde { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr)); gap: 1rem; }
.fl-ed-table-ronde li { display: grid; gap: .5rem; align-content: start; padding: 1.3rem; border-radius: 1.2rem; background: rgba(245, 245, 245, .06); border: 1px solid rgba(245, 245, 245, .16); }
.fl-ed-tr-num { display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #F32837; color: #fff; font: 800 .95rem var(--police-display); }
.fl-ed-table-ronde b { font: 800 1.1rem/1.25 var(--police-display); color: #fff; }
.fl-ed-table-ronde span:not(.fl-ed-tr-num) { font-size: .93rem; line-height: 1.55; color: rgba(245, 245, 245, .85); }
.fl-ed-inscr { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: .9rem; }
.fl-ed-inscr a { position: relative; display: grid; gap: .35rem; align-content: start; height: 100%; box-sizing: border-box; padding: 1.2rem 1.3rem 2.6rem; border-radius: 1.1rem; background: #F5F5F5; color: #120D16; text-decoration: none; border: 1px solid transparent; transition: border-color .2s; }
.fl-ed-inscr b { font: 800 1.05rem var(--police-display); }
.fl-ed-inscr span { font-size: .9rem; line-height: 1.5; color: rgba(18, 13, 22, .72); }
.fl-ed-inscr small { font-size: .78rem; color: rgba(18, 13, 22, .5); }
.fl-ed-inscr i { position: absolute; left: 1.3rem; bottom: .95rem; color: #001CA8; }
.fl-ed-inscr a:hover, .fl-ed-inscr a:focus-visible { border-color: #001CA8; outline: none; }
/* L'annonce d'origine : ses visuels (repris en grand plus haut) en vignettes, pour que le texte reste lisible d'un trait. */
.fl-ed-annonce .fl-prose img { width: auto; height: auto; max-width: min(100%, 10rem); max-height: 10rem; object-fit: contain; border-radius: .6rem; display: inline-block; margin: .3rem .4rem .3rem 0; vertical-align: top; background: #fff; border: 1px solid var(--filet); }
.fl-ed-annonce .fl-prose p:has(> img:only-child) { margin: .5rem 0; }
dialog.fl-ed-visionneuse { width: min(72rem, calc(100vw - 1.5rem)); max-height: calc(100dvh - 1.5rem); padding: 0; border: 0; border-radius: 1.2rem; background: #120D16; color: #fff; overflow: hidden; }
dialog.fl-ed-visionneuse::backdrop { background: rgba(18, 13, 22, .78); }
.fl-ed-vis-tete { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem .9rem .7rem 1.2rem; }
.fl-ed-vis-tete p { margin: 0; font: 600 .92rem var(--police-ui); color: rgba(255, 255, 255, .85); }
.fl-ed-vis-tete button { all: unset; cursor: pointer; width: 2.5rem; height: 2.5rem; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .12); color: #fff; font: 400 1.6rem/1 var(--police-ui); }
.fl-ed-vis-tete button:hover, .fl-ed-vis-tete button:focus-visible { background: #001CA8; }
dialog.fl-ed-visionneuse img { display: block; max-width: 100%; max-height: calc(100dvh - 6rem); margin: 0 auto 1rem; object-fit: contain; }

/* ── Assemblée générale ── */
.fl-ed-ag-derniere { display: grid; gap: .5rem; padding: 1.4rem; border-radius: 1.4rem; background: #001CA8; color: #fff; box-shadow: 0 30px 60px -40px rgba(0, 28, 168, .8); }
.fl-ed-ag-derniere .fl-instru-lib { margin: 0; color: rgba(255, 255, 255, .72); }
.fl-ed-ag-derniere > b { font: 800 clamp(1.4rem, 2.4vw, 1.85rem)/1.15 var(--police-display); letter-spacing: -.02em; }
.fl-ed-ag-derniere > span { font-size: .93rem; line-height: 1.5; color: rgba(255, 255, 255, .85); }
.fl-ed-ag-derniere .fl-ed-docs { margin-top: .6rem; }
.fl-ed-ag-derniere .fl-ed-doc > a { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .22); color: #fff; }
.fl-ed-ag-derniere .fl-ed-type { background: #fff; color: #001CA8; }
.fl-ed-ag-derniere .fl-ed-doc-fleche { color: #fff; }
.fl-ed-ag-derniere .fl-ed-doc > a:hover { border-color: #fff; }
.fl-ed-annees ol { list-style: none; margin: 0 0 1.4rem; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; }
.fl-ed-annees a { display: inline-block; padding: .4rem .8rem; border-radius: 999px; background: #F5F5F5; border: 1px solid var(--filet); font: 700 .88rem var(--police-display); color: #120D16; text-decoration: none; }
.fl-ed-annees a:hover, .fl-ed-annees a:focus-visible { background: #001CA8; border-color: #001CA8; color: #fff; outline: none; }
.fl-ed-prose-ag > h2 { margin-top: 2.2rem !important; }
.fl-ed-ag { margin: 0 0 .6rem !important; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); scroll-margin-top: 6.5rem; }
.fl-ed-ag[hidden] { display: none; }
.fl-ed-ag > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .9rem; align-items: center; padding: .85rem 1rem; }
.fl-ed-ag > summary::-webkit-details-marker { display: none; }
.fl-ed-ag > summary::after { content: '+'; width: 1.9rem; height: 1.9rem; border-radius: 50%; display: grid; place-items: center; background: #F5F5F5; color: #001CA8; font: 700 1.15rem var(--police-ui); grid-column: 3; grid-row: 1 / span 2; }
.fl-ed-ag[open] > summary::after { content: '–'; background: #001CA8; color: #fff; }
.fl-ed-ag > summary:focus-visible { outline: 3px solid #001CA8; outline-offset: -3px; border-radius: 1.1rem; }
.fl-ed-ag-annee { grid-row: 1 / span 2; display: grid; place-items: center; width: 3.6rem; height: 3.3rem; border-radius: .85rem; background: rgba(0, 28, 168, .08); color: #001CA8; font: 800 1.02rem var(--police-display); }
.fl-ed-ag-titre { font: 700 1rem/1.3 var(--police-display); color: #120D16; }
.fl-ed-ag > summary small { grid-column: 2; font-size: .8rem; color: rgba(18, 13, 22, .55); }
.fl-ed-ag-corps { padding: .3rem 1rem 1.1rem; border-top: 1px solid var(--filet); }
.fl-ed-ag-corps .fl-ed-note { margin: .6rem 0 .9rem; }
.fl-ed-ag-corps .fl-ed-docs { margin-top: .8rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.fl-ed-odj { list-style: none; margin: 1.8rem 0 0; padding: 0; display: grid; gap: 0; max-width: 56rem; }
.fl-ed-odj > li { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); gap: 1.2rem; padding: .95rem 0; border-bottom: 1px solid var(--filet); }
.fl-ed-odj-h { font: 800 1.05rem var(--police-display); color: #001CA8; white-space: nowrap; }
.fl-ed-odj b { font: 700 1.02rem/1.35 var(--police-display); color: #120D16; }
.fl-ed-odj ul { margin: .4rem 0 0; padding-left: 1.1rem; display: grid; gap: .25rem; font-size: .92rem; color: rgba(18, 13, 22, .72); line-height: 1.45; }

/* Titre de section posé dans une colonne */
.fl-ed-titre-col h2 { margin: .7rem 0 0; max-width: 18ch; text-wrap: balance; }
.fl-ed-chapo { margin: 1.1rem 0 0; max-width: 60ch; font-size: 1.08rem; line-height: 1.6; color: rgba(18, 13, 22, .78); }
.fl-section-nuit .fl-ed-chapo, .v6-sombre .fl-ed-chapo { color: rgba(245, 245, 245, .82); }

/* ── Tablette et téléphone ── */
@media (max-width: 1100px) {
  /* Téléphone (demande d'Alexis du 11/10/2026) : plus de barre qui défile de côté sans qu'on le sache — les choix passent à la ligne. */
  .fl-ed-onglets-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-ed-onglets-liste button { min-width: 0; padding: .75rem .8rem; border-top: 1px solid var(--filet); }
  .fl-ed-onglets-liste button:nth-child(-n+2) { border-top: 0; }
  .fl-ed-onglets-liste button + button { border-left: 0; }
  .fl-ed-onglets-liste button:nth-child(even) { border-left: 1px solid var(--filet); }
  .fl-ed-onglets-liste img { width: 2rem; height: 2rem; }
  .fl-ed-regle-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-ed-calcul { grid-column: 1 / -1; }
}
@media (max-width: 1000px) {
  .fl-ed-deux, .fl-ed-deux-large, .fl-ed-biblio-deux, .fl-ed-annuaire-explique, .fl-ed-faq { grid-template-columns: minmax(0, 1fr); }
  .fl-ed-faq-nav { position: static; }
  .fl-ed-faq-nav nav ol { display: flex; flex-wrap: wrap; gap: .35rem; }
  .fl-ed-faq-nav ol a { padding: .4rem .75rem; border: 1px solid var(--filet); border-radius: 999px; background: #fff; }
  .fl-ed-mini-etapes, .fl-ed-trois, .fl-ed-jours { grid-template-columns: minmax(0, 1fr); }
  .fl-ed-classe-tete { grid-template-columns: minmax(0, 1fr); }
  .fl-ed-classe-photo { max-width: 22rem; aspect-ratio: 16 / 9; }
}
@media (max-width: 640px) {
  .fl-ed-regle-grille, .fl-ed-deux-listes, .fl-ed-prev-grille { grid-template-columns: minmax(0, 1fr); }
  .fl-ed-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-ed-chiffres-deux { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fl-ed-chiffres li { padding: .85rem .9rem; }
  .fl-ed-chiffres b { font-size: 1.45rem; white-space: normal; }
  .fl-ed-cherche { flex-basis: 100%; max-width: none; }
  .fl-ed-compte { margin-left: 0; }
  .fl-ed-planches { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .5rem; }
  .fl-ed-odj > li { grid-template-columns: minmax(0, 1fr); gap: .3rem; }
  .fl-ed-etapes > li { gap: .8rem; }
  .fl-ed-etape-num { width: 2.3rem; height: 2.3rem; font-size: .8rem; }
  .fl-ed-etapes > li:not(:last-child)::after { left: 1.15rem; top: 2.5rem; }
  .fl-ed-stage a { grid-template-columns: auto minmax(0, 1fr); }
  .fl-ed-stage-fleche { display: none; }
  .fl-ed-ag > summary { gap: .7rem; padding: .75rem .8rem; }
  .fl-ed-ag-annee { width: 3rem; height: 3rem; font-size: .92rem; }
  .fl-ed-q > summary { padding: .85rem .9rem; font-size: .96rem; }
  .fl-ed-r { padding: .2rem .95rem 1rem; }
  .fl-ed-encadre-aide { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .fl-ed-encart, .fl-ed-carte a, .fl-ed-doc > a, .fl-ed-fiche-carte a, .fl-ed-parcours-carte { transition: none; } }
