/* signature-v3.css — copie de signature.css, recalée sur la charte FFPLUM 2025
   (ambre/doré remplacés par le rouge #F32837 et les bleus de la charte) */
/* ════════════════════════════════════════════════════════════════════════
   FFPLUM — signature « le vol ». Chargée après base.css.
   Horizon artificiel qui se stabilise à l'entrée, nuées qu'on traverse,
   altimètre de page, panneau de cadrans, hangar des six classes, carte des
   terrains, trajectoire de montée, carte d'embarquement, carte de licencié.
   ════════════════════════════════════════════════════════════════════════ */

[hidden] { display: none !important; }
.v6 { font-size: 1.0625rem; line-height: 1.64; }
.v6-display { font-optical-sizing: auto; }
.v6-titre-xxl { letter-spacing: -.045em; }
.v6-titre-xl { letter-spacing: -.04em; }
.v6-lapsus { font-feature-settings: "liga", "dlig"; }
.v6-sombre, .fl-section-nuit {
  background-color: #191970;
  background-image:
    radial-gradient(60% 55% at 88% 0%, rgba(0, 28, 168, .5), transparent 62%),
    radial-gradient(50% 60% at 0% 100%, rgba(18, 13, 22, .9), transparent 70%),
    repeating-linear-gradient(90deg, rgba(245, 245, 245, .045) 0 1px, transparent 1px 120px);
}
.v6-sombre .v6-chapo, .v6-sombre .v6-corps { color: rgba(245, 245, 245, .70); }
.v6-sombre .v6-lapsus { color: var(--clair); }
.v6-surtitre, .fl-surtitre {
  font-family: var(--police-instru); font-size: .72rem; font-weight: 400; letter-spacing: .14em; text-transform: uppercase;
}
.v6-surtitre::before {
  width: 1.7rem; height: .55rem; border-radius: 0;
  background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat, radial-gradient(circle, currentColor 2.4px, transparent 2.9px) center / .55rem .55rem no-repeat;
}
.fl-instru-lib {
  display: flex; align-items: center; gap: .55rem; margin: 0;
  font-family: var(--police-instru); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3);
}
.fl-instru-lib .fl-icone { width: 1.1rem; height: 1.1rem; }
.v6-sombre .fl-instru-lib, .fl-quiz .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-etiquette-instru {
  display: inline-block; padding: .28rem .6rem; border-radius: 999px; white-space: nowrap;
  font-family: var(--police-instru); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase;
  color: var(--encre-2); box-shadow: inset 0 0 0 1px var(--filet-fort);
}
.v6-sombre .fl-etiquette-instru { color: rgba(245, 245, 245, .88); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28); }
.fl-icone { width: 1.5rem; height: 1.5rem; flex: none; }
.fl-icone-grand { width: 2.8rem; height: 2.8rem; color: var(--clair); }
.fl-evitement { position: absolute; left: 1rem; top: .6rem; z-index: 90; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; padding: 0; border-radius: 999px; background: #191970; color: #fff; }
.fl-evitement:focus { width: auto; height: auto; clip-path: none; padding: .6rem 1rem; }
.fl-centre { text-align: center; margin: 3rem 0 0; }
.fl-lien-bouton { border: 0; background: none; padding: .4rem 0; cursor: pointer; font: 600 .95rem var(--police-ui); color: var(--accent-vif); text-decoration: underline; text-underline-offset: 4px; }
.fl-note-demo { margin: 0; font-size: .95rem; font-weight: 600; color: var(--accent-vif); }
.fl-demo { display: flex; align-items: center; gap: .7rem; margin: 1.4rem 0 0; font-size: .86rem; color: var(--encre-3); }
.fl-maquette { width: 2rem; height: .8rem; flex: none; color: var(--accent-vif); }
.v6-sombre .fl-demo { color: rgba(245, 245, 245, .58); }
.v6-sombre .fl-maquette { color: var(--clair); }
.fl-puces { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .45rem; }
.fl-puces li { position: relative; padding-left: 1.4rem; line-height: 1.5; }
.fl-puces li::before { content: ""; position: absolute; left: 0; top: .72em; width: .8rem; height: 2px; background: var(--accent-vif); }
.v6-sombre .fl-puces li::before { background: var(--clair); }
.v6-sombre .fl-puces li { color: rgba(245, 245, 245, .70); }
.fl-puces-serrees li { font-size: .92rem; }
.fl-case { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; line-height: 1.5; }
.v6 .fl-case input { flex: none; width: 1.15rem; height: 1.15rem; min-height: 0; margin: .2rem 0 0; padding: 0; box-shadow: none; accent-color: var(--accent-vif); }
.fl-deux { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 560px) { .fl-deux { grid-template-columns: 1fr 1fr; } }

/* Entêtes de sections */
.fl-entete { display: grid; grid-template-columns: 1fr; gap: 1.4rem 4rem; align-items: end; margin-bottom: clamp(2.4rem, 4vw, 3.6rem); }
.fl-entete .fl-titre-section { margin-top: 1.1rem; }
.fl-entete-chapo { margin: 0; max-width: 36rem; }
@media (min-width: 980px) { .fl-entete { grid-template-columns: 1.15fr .85fr; } }

/* Pastilles (radios et cases cachées) */
.fl-pastilles { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; min-width: 0; }
.fl-pastilles legend { width: 100%; margin-bottom: .6rem; padding: 0; font-family: var(--police-instru); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.fl-pastilles label, .fl-quiz-choix label { position: relative; cursor: pointer; }
.v6 .fl-pastilles input, .v6 .fl-quiz-choix input { position: absolute; opacity: 0; width: 1px; height: 1px; min-height: 0; padding: 0; margin: 0; }
.fl-pastilles span { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem 1.05rem; border-radius: 999px; font: 600 .93rem var(--police-ui); color: var(--encre); background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet-fort); transition: background-color .35s var(--ease), color .35s; }
.fl-pastilles span b { font-family: var(--police-instru); font-weight: 700; color: var(--accent-vif); }
.fl-pastilles input:checked + span { background: #191970; color: #fff; box-shadow: none; }
.fl-pastilles input:checked + span b { color: var(--clair); }
.fl-pastilles input:focus-visible + span, .fl-quiz-choix input:focus-visible + span { outline: 2px solid var(--accent-vif); outline-offset: 3px; }
.fl-pastilles-grandes span { padding: .85rem 1.3rem; font-size: 1rem; }

/* ─── En-tête ─── */
.fl-tete .v6-zone { gap: 1.1rem; }
/* En-tête : le logotype officiel de la fédération (cocarde + « Fédération Française d'ULM »), tel qu'il est sur ffplum.fr
   (remarque n° 3 de Souleymane Camara, 05/10/2026). Sur petit écran, la cocarde seule. */
.fl-logotype { display: block; height: 3.4rem; width: auto; flex: none; }
.fl-tete .fl-logo { display: none; }
@media (max-width: 700px) { .fl-logotype { display: none; } .fl-tete .fl-logo { display: block; } }
.fl-logo { width: 2.9rem; height: 2.9rem; flex: none; border-radius: 50%; box-shadow: 0 6px 16px -8px rgba(18, 13, 22, .5); transition: transform .8s var(--ease); }
.v6-marque:hover .fl-logo { transform: rotate(-12deg); }
.fl-tete .v6-marque b { font-weight: 700; letter-spacing: -.01em; }
.fl-tete .v6-nav { gap: 1.35rem; }
.fl-tete .v6-nav a:not(.v6-bouton) { font-size: .94rem; }
.fl-espace { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem .45rem .55rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-espace .fl-icone { width: 1.2rem; height: 1.2rem; color: var(--accent-vif); }
.fl-espace span { font-size: .88rem; }
@media (min-width: 1060px) and (max-width: 1379px) {
  .fl-tete .v6-nav { gap: .95rem; }
  .fl-tete .v6-nav a:not(.v6-bouton) { font-size: .88rem; }
  .fl-tete .v6-marque > span > span { display: none; }
  .fl-espace { padding: .5rem; }
  .fl-espace span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .fl-tete .v6-bouton { padding: .75rem 1.1rem; }
}
.v6-menu a[aria-current="page"] { color: var(--accent-vif); }

/* ─── Altimètre de la page ─── */
.fl-altimetre {
  position: fixed; z-index: 55; left: .75rem; bottom: .75rem; display: flex; align-items: center; gap: .7rem;
  padding: .45rem .85rem; border-radius: 999px; background: rgba(18, 13, 22, .94); color: rgba(245, 245, 245, .88);
  font-family: var(--police-instru); box-shadow: 0 16px 34px -18px rgba(0, 0, 0, .7);
  transition: opacity .5s var(--ease);
}
.fl-altimetre.est-au-sol { visibility: hidden; opacity: 0; }
.fl-alt-lecture { display: flex; align-items: baseline; gap: .35rem; }
.fl-alt-lecture span, .fl-alt-lecture small, .fl-alt-vario small { font-size: .62rem; letter-spacing: .1em; color: rgba(245, 245, 245, .58); }
.fl-alt-lecture b { font-size: .95rem; color: #fff; font-variant-numeric: tabular-nums; min-width: 3.4em; text-align: right; }
.fl-alt-vario { display: flex; align-items: center; gap: .3rem; }
.fl-alt-vario b { font-size: .78rem; color: var(--clair); font-variant-numeric: tabular-nums; min-width: 2.6em; text-align: right; }
.fl-alt-vario i { width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 6px solid var(--clair); transition: transform .3s; }
.fl-alt-vario i.est-descente { transform: rotate(180deg); }
.fl-alt-ruban, .fl-alt-couche, .fl-alt-niveaux { display: none; }
@media (max-width: 520px) { .fl-alt-vario small { display: none; } }
@media (min-width: 1380px) {
  .fl-altimetre { left: auto; right: .5rem; bottom: auto; top: 50%; transform: translateY(-50%); flex-direction: column; gap: .5rem; width: 2.9rem; padding: .7rem 0; }
  .fl-alt-lecture { flex-direction: column; align-items: center; gap: .1rem; }
  .fl-alt-lecture b { min-width: 0; font-size: .7rem; text-align: center; }
  .fl-alt-vario { flex-direction: column; gap: .15rem; }
  .fl-alt-vario b { min-width: 0; font-size: .62rem; text-align: center; }
  .fl-alt-vario small { display: none; }
  .fl-alt-ruban { display: block; position: relative; width: .7rem; height: 11rem; border-radius: 999px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18); }
  .fl-alt-bande {
    position: absolute; left: 0; right: 0; bottom: 0; height: 500%; will-change: transform;
    background: linear-gradient(0deg, #120D16 0%, #191970 9%, rgba(0, 28, 168, .35) 18%, rgba(0, 28, 168, .14) 36%, #ffffff 44%, #F5F5F5 50%, #ffffff 56%, rgba(0, 28, 168, .45) 64%, #001CA8 80%, #191970 100%);
  }
  .fl-alt-repere { position: absolute; left: -2px; right: -2px; top: 50%; height: 2px; margin-top: -1px; background: var(--clair); box-shadow: 0 0 6px var(--clair); }
  .fl-alt-couche { display: block; margin: 0; writing-mode: vertical-rl; transform: rotate(180deg); font-size: .58rem; letter-spacing: .16em; text-transform: uppercase; color: rgba(245, 245, 245, .58); white-space: nowrap; }
  .fl-alt-niveaux {
    display: grid; position: absolute; right: calc(100% + .6rem); top: 50%; transform: translateY(-50%); gap: .15rem; padding: .6rem; min-width: 12rem;
    border-radius: 1rem; background: rgba(18, 13, 22, .96); visibility: hidden; opacity: 0; transition: opacity .35s var(--ease), visibility 0s .35s;
  }
  .fl-altimetre:hover .fl-alt-niveaux, .fl-altimetre:focus-within .fl-alt-niveaux { visibility: visible; opacity: 1; transition: opacity .35s var(--ease); }
  .fl-alt-niveaux button { display: flex; justify-content: space-between; gap: 1rem; border: 0; border-radius: .5rem; background: none; padding: .35rem .5rem; cursor: pointer; font: .7rem var(--police-instru); color: rgba(245, 245, 245, .88); text-align: left; }
  .fl-alt-niveaux button b { font-weight: 400; color: rgba(245, 245, 245, .58); }
  .fl-alt-niveaux button:hover, .fl-alt-niveaux button[aria-current="true"] { background: rgba(0, 28, 168, .16); color: #fff; }
}

/* ─── Scène plein cadre ─── */
.fl-scene { position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: flex-end; min-height: clamp(40rem, calc(100svh - 5.1rem), 58rem); background: #120D16; color: #fff; }
.fl-scene-courte { min-height: clamp(31rem, 68svh, 40rem); }
.fl-plans { position: absolute; inset: 0; z-index: -1; }
.fl-plan { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s var(--ease-doux); }
.fl-plan.est-active { opacity: 1; }
.fl-plan img, .fl-plan video { width: 100%; height: 100%; object-fit: cover; transform: scale(1.1); transition: transform 9s cubic-bezier(.2, .6, .35, 1); }
.fl-plan.est-active img, .fl-plan.est-active video { transform: scale(1.01); }
.fl-voile {
  position: absolute; inset: 0;
  background:
    linear-gradient(90deg, rgba(18, 13, 22, .92) 0%, rgba(18, 13, 22, .84) 38%, rgba(18, 13, 22, .7) 54%, rgba(18, 13, 22, .32) 78%, rgba(18, 13, 22, .15) 100%),
    linear-gradient(0deg, rgba(18, 13, 22, .9) 0%, rgba(18, 13, 22, .25) 42%, transparent 62%),
    linear-gradient(180deg, rgba(18, 13, 22, .5) 0%, transparent 20%);
}
.fl-scene::after, .fl-finale::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: .16; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}
/* L'horizon artificiel */
.fl-horizon { position: absolute; top: 0; bottom: 0; left: 26%; width: 104%; height: 100%; z-index: 0; pointer-events: none; overflow: visible; }
@media (max-width: 900px) { .fl-horizon { left: 0; width: 100%; opacity: .3 !important; } }
.fl-horizon line, .fl-horizon path { stroke: rgba(255, 255, 255, .5); stroke-width: 1.4; fill: none; vector-effect: non-scaling-stroke; }
.fl-horizon text { fill: rgba(255, 255, 255, .55); font: 11px var(--police-instru); }
.fl-horizon-ligne { stroke: rgba(0, 28, 168, .75) !important; stroke-width: 1.6 !important; }
.fl-horizon-assiette, .fl-horizon-roulis { transform-box: view-box; transform-origin: 50% 50%; rotate: var(--roulis, 0deg); translate: 0 var(--tangage, 0px); transition: rotate .9s var(--ease), translate .9s var(--ease); }
.fl-horizon-roulis { translate: none; }
.fl-horizon-avion path { stroke: var(--clair); stroke-width: 2.4; }
.fl-horizon-avion circle { fill: var(--clair); }
.fl-horizon-roulis path { fill: var(--clair); stroke: none; }
.fl-horizon { opacity: .55; transition: opacity 1.4s var(--ease); }
.js .fl-entree .fl-horizon-assiette { animation: fl-stabilise 1.25s cubic-bezier(.25, .9, .35, 1) both; }
.js .fl-entree .fl-horizon-roulis { animation: fl-roulis 1.25s cubic-bezier(.25, .9, .35, 1) both; }
@keyframes fl-stabilise {
  0% { transform: rotate(-16deg) translateY(90px); }
  34% { transform: rotate(8deg) translateY(-26px); }
  58% { transform: rotate(-3.5deg) translateY(9px); }
  80% { transform: rotate(1.2deg) translateY(-3px); }
  100% { transform: none; }
}
@keyframes fl-roulis { 0% { transform: rotate(-16deg); } 34% { transform: rotate(8deg); } 58% { transform: rotate(-3.5deg); } 80% { transform: rotate(1.2deg); } 100% { transform: none; } }
/* Les nuées qu'on traverse */
.fl-nuees { position: absolute; inset: -10%; pointer-events: none; display: none; }
.js .fl-entree .fl-nuees { display: block; }
.fl-nuees i { position: absolute; width: 75%; height: 80%; border-radius: 50%; opacity: 0; background: radial-gradient(closest-side, rgba(240, 246, 252, .98), rgba(226, 236, 248, .9) 45%, rgba(226, 236, 248, 0)); filter: blur(18px); animation: fl-nuee .95s cubic-bezier(.55, 0, .3, 1) both; }
.fl-nuees i:nth-child(1) { left: -12%; top: -8%; --dx: -70%; --dy: -20%; }
.fl-nuees i:nth-child(2) { right: -14%; top: 4%; --dx: 72%; --dy: -10%; animation-delay: .05s; }
.fl-nuees i:nth-child(3) { left: 4%; bottom: -12%; --dx: -50%; --dy: 40%; animation-delay: .1s; }
.fl-nuees i:nth-child(4) { right: 0; bottom: -6%; --dx: 60%; --dy: 35%; animation-delay: .02s; }
@keyframes fl-nuee { 0% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)) scale(1.5); } }
/* Les textes */
.fl-scene-zone { position: relative; z-index: 2; padding-top: 7.5rem; padding-bottom: clamp(1.6rem, 3vw, 2.4rem); }
.fl-textes { display: grid; }
.fl-texte { grid-area: 1 / 1; align-self: end; max-width: 62rem; opacity: 0; visibility: hidden; transition: opacity .5s var(--ease-doux), visibility 0s .5s; }
.fl-texte.est-active { opacity: 1; visibility: visible; transition: opacity .5s var(--ease-doux) .05s; }
.fl-sur { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .9rem; font: .72rem var(--police-instru); letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 245, 245, .88); }
.fl-sur .fl-sur-classe { padding: .32rem .7rem; border-radius: 999px; color: var(--clair); background: rgba(18, 13, 22, .7); box-shadow: inset 0 0 0 1px rgba(0, 28, 168, .55); }
.v6 .fl-titre { margin: 1.2rem 0 0; max-width: 13.5ch; font-size: clamp(2.8rem, .7rem + 5.8vw, 7.1rem); font-weight: 620; line-height: .92; letter-spacing: -.045em; color: #fff; }
.fl-scene-courte .fl-titre { max-width: 15ch; font-size: clamp(2.5rem, .8rem + 4.4vw, 5.6rem); }
.fl-titre .v6-lapsus { color: var(--clair); font-size: 1.02em; letter-spacing: -.02em; }
.js .fl-texte.est-active .fl-titre { animation: fl-leve .78s var(--ease) .08s both; }
@keyframes fl-leve {
  from { clip-path: inset(0 0 100% 0); transform: translate3d(0, .4em, 0); font-variation-settings: "slnt" -12; }
  to { clip-path: inset(-.25em -.3em -.35em -.3em); transform: none; font-variation-settings: "slnt" 0; }
}
.fl-chapo { margin: 1.4rem 0 0; max-width: 37rem; font-size: clamp(1.06rem, 1rem + .35vw, 1.28rem); line-height: 1.55; color: rgba(245, 245, 245, .88); }
.fl-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.1rem; }
.fl-bouton-aube { background: var(--clair); color: #120D16; --survol: #ffffff; }
.fl-bouton-aube:hover, .fl-bouton-aube:focus-visible { color: #120D16; }
.fl-commande { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem 1rem; margin-top: clamp(2rem, 4.5vw, 3.2rem); padding-top: 1.1rem; border-top: 1px solid rgba(255, 255, 255, .2); padding-right: 22rem; }
.fl-compteur { font-family: var(--police-instru); font-size: .85rem; color: rgba(245, 245, 245, .58); margin-right: .4rem; }
.fl-compteur b { color: #fff; font-size: 1.1rem; font-weight: 400; }
.fl-scene .v6-index > span { background: rgba(255, 255, 255, .3); }
.fl-scene .v6-index > span > span { background: var(--clair); }
.fl-scene .v6-pause { margin-left: .3rem; color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .38); }
.fl-legende { font-size: .84rem; color: rgba(245, 245, 245, .58); margin-left: .4rem; }
/* Instruments en bas à droite */
.fl-instru { position: absolute; z-index: 2; right: clamp(1.25rem, 4vw, 3.5rem); bottom: clamp(1.6rem, 3vw, 2.4rem); display: flex; gap: .5rem; }
.fl-instru span { display: flex; align-items: baseline; gap: .3rem; padding: .5rem .75rem; border-radius: .7rem; background: rgba(18, 13, 22, .78); box-shadow: inset 0 0 0 1px rgba(245, 245, 245, .28); font-family: var(--police-instru); }
.fl-instru small { font-size: .6rem; letter-spacing: .1em; color: rgba(245, 245, 245, .58); }
.fl-instru b { font-size: 1rem; font-weight: 400; color: #fff; font-variant-numeric: tabular-nums; min-width: 2.4em; text-align: right; }
@media (max-width: 1100px) { .fl-commande { padding-right: 0; } .fl-instru { display: none; } }
@media (max-width: 760px) {
  .fl-legende { display: none; }
  .fl-scene { min-height: 43rem; }
  .fl-scene-courte { min-height: 34rem; }
  .fl-scene .v6-index { width: 2rem; }
  .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .95) 0%, rgba(18, 13, 22, .78) 55%, rgba(18, 13, 22, .45) 100%); }
}

/* ─── Panneau de cadrans ─── */
.fl-panneau { background: #120D16; color: #fff; border-top: 1px solid rgba(245, 245, 245, .12); }
.fl-panneau .v6-zone { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; }
@media (min-width: 760px) { .fl-panneau .v6-zone { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1180px) { .fl-panneau .v6-zone { grid-template-columns: repeat(5, 1fr); } }
.fl-cadran { display: flex; align-items: center; gap: 1rem; padding: clamp(1.6rem, 3vw, 2.6rem) .8rem; border-right: 1px solid rgba(255, 255, 255, .07); }
.fl-cadran svg { flex: none; width: clamp(4.6rem, 7vw, 6.2rem); height: auto; overflow: visible; }
.fl-cadran-fond { fill: #191970; stroke: rgba(245, 245, 245, .25); stroke-width: 1.5; }
.fl-cadran line { stroke: rgba(220, 230, 242, .5); stroke-width: 1.2; }
.fl-cadran-arc { fill: none; stroke: rgba(0, 28, 168, .45); stroke-width: 2.5; stroke-linecap: round; }
.fl-cadran-aiguille { rotate: -120deg; transition: rotate 1.9s cubic-bezier(.3, 1.45, .45, 1) .2s; }
.fl-cadran-aiguille path { fill: var(--clair); }
.fl-cadran-aiguille circle { fill: rgba(245, 245, 245, .88); }
.fl-cadran.v6-visible .fl-cadran-aiguille, html:not(.js) .fl-cadran-aiguille { rotate: var(--aiguille); }
.fl-cadran p { margin: 0; display: grid; gap: .25rem; }
.fl-cadran b { font: 400 clamp(1.4rem, 1rem + 1.2vw, 2rem) var(--police-instru); color: #fff; letter-spacing: -.02em; line-height: 1; }
.fl-cadran span { font-size: .88rem; color: rgba(245, 245, 245, .58); line-height: 1.3; }
@media (max-width: 759px) { .fl-cadran:last-child { grid-column: 1 / -1; } }

/* ─── Manifeste et traînée ─── */
.fl-manifeste-titre { max-width: 21ch; }
.fl-manifeste-titre .v6-lapsus { display: block; margin-top: .1em; }
.fl-trainee { display: block; width: 100%; height: clamp(4rem, 9vw, 9rem); margin-top: 1rem; overflow: visible; }
.fl-trainee path { fill: none; stroke: var(--accent-vif); stroke-width: 2; stroke-dasharray: 2 9; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.fl-manifeste-bas { display: grid; grid-template-columns: 1fr; gap: 1.4rem 4rem; align-items: end; margin-top: 1.4rem; }
.fl-manifeste-bas p { margin: 0; max-width: 42rem; }
@media (min-width: 900px) { .fl-manifeste-bas { grid-template-columns: 1fr auto; } .fl-manifeste-bas > .v6-lien:only-child { grid-column: 2; } }

/* ─── Le hangar des six classes ─── */
.fl-hangar { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); gap: .8rem; padding-bottom: 1.6rem; }
@media (min-width: 700px) { .fl-hangar { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1180px) { .fl-hangar { grid-template-columns: repeat(6, 1fr); } }
.fl-hangar::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: repeating-linear-gradient(90deg, var(--accent-vif) 0 38px, transparent 38px 64px); opacity: .5; }
.fl-hangar-case { position: relative; display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem 1.1rem 1.3rem; border-radius: 1.2rem; background: var(--voile); color: var(--encre); text-decoration: none; box-shadow: inset 0 0 0 1px var(--filet); transition: transform .6s var(--ease), box-shadow .6s var(--ease); }
.fl-hangar-case:hover, .fl-hangar-case:focus-visible { transform: translateY(-6px); box-shadow: inset 0 0 0 1.5px var(--accent-vif), 0 40px 60px -46px rgba(18, 13, 22, .6); }
.fl-hangar-num { font: .7rem var(--police-instru); letter-spacing: .12em; color: var(--accent-vif); }
.fl-hangar-visuel { display: grid; place-items: center; height: 7.5rem; }
.fl-hangar-visuel img, .fl-hangar-visuel svg { max-height: 6.8rem; max-width: 90%; width: auto; height: auto; transition: transform .9s var(--ease); }
.fl-hangar-visuel svg { width: 6.2rem; }
.fl-hangar-case:hover .fl-hangar-visuel img, .fl-hangar-case:hover .fl-hangar-visuel svg { transform: translate(6px, -12px) rotate(-5deg); }
.fl-hangar-case b { font-family: var(--police-display); font-weight: 620; font-size: 1.22rem; letter-spacing: -.02em; line-height: 1.1; }
.fl-hangar-case small { font-size: .84rem; line-height: 1.4; color: var(--encre-3); }

/* ─── Questionnaire ─── */
.fl-quiz { display: grid; grid-template-columns: 1fr; gap: 2rem 3.5rem; margin-top: clamp(2.6rem, 5vw, 4rem); padding: clamp(1.6rem, 3.4vw, 3rem); border-radius: 1.8rem; background: #191970; color: rgba(245, 245, 245, .88); background-image: radial-gradient(60% 80% at 100% 0%, rgba(0, 28, 168, .45), transparent 65%); }
@media (min-width: 980px) { .fl-quiz { grid-template-columns: .8fr 1.2fr; } }
.fl-quiz h3 { margin-top: .9rem; color: #fff; }
.fl-quiz h3 .v6-lapsus { color: var(--clair); }
.fl-quiz-progres { margin-top: 1.6rem; height: 4px; border-radius: 4px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.fl-quiz-progres i { display: block; height: 100%; width: 0; background: var(--clair); transition: width .6s var(--ease); }
.fl-quiz-corps { display: grid; }
.fl-quiz-question { border: 0; margin: 0; padding: 0; min-width: 0; }
.fl-quiz-question legend { display: flex; gap: .9rem; align-items: baseline; padding: 0; margin-bottom: 1.1rem; font: 600 clamp(1.2rem, 1rem + .6vw, 1.55rem) / 1.25 var(--police-display); letter-spacing: -.02em; color: #fff; }
.fl-quiz-question legend span { font: .8rem var(--police-instru); color: var(--clair); }
.fl-quiz-choix { display: grid; grid-template-columns: 1fr; gap: .6rem; }
@media (min-width: 560px) { .fl-quiz-choix { grid-template-columns: 1fr 1fr; } }
.fl-quiz-choix span { display: block; height: 100%; padding: 1rem 1.2rem; border-radius: 1rem; font: 600 1rem var(--police-ui); color: #F5F5F5; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22); transition: background-color .35s var(--ease), color .35s, box-shadow .35s; }
.fl-quiz-choix label:hover span { box-shadow: inset 0 0 0 1px var(--clair); }
.fl-quiz-choix input:checked + span { background: var(--clair); color: #120D16; box-shadow: none; }
.fl-quiz-resultat { display: grid; gap: 1rem; }
.fl-quiz-classe { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; align-items: center; }
.fl-quiz-classe > span { display: grid; place-items: center; width: 7rem; height: 7rem; border-radius: 1.2rem; background: #F5F5F5; }
.fl-quiz-classe > span img, .fl-quiz-classe > span svg { max-width: 5.6rem; max-height: 5.6rem; width: auto; height: auto; }
.fl-quiz-classe > span svg { width: 5rem; }
.fl-quiz-classe b { display: block; font: 620 clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem) / 1 var(--police-display); letter-spacing: -.03em; color: #fff; }
.fl-quiz-classe p { margin: .5rem 0 0; color: rgba(245, 245, 245, .70); }
.v6 .fl-quiz-second { font-size: .92rem; color: rgba(245, 245, 245, .58); }
.fl-quiz-note { margin: 0; font-size: .95rem; color: rgba(245, 245, 245, .70); }
.fl-quiz-actions { display: flex; flex-wrap: wrap; gap: 1rem 1.4rem; align-items: center; margin: .4rem 0 0; }
.fl-quiz .v6-bouton-plein { background: var(--clair); color: #120D16; --survol: #fff; }
.fl-quiz .v6-bouton-plein:hover { color: #120D16; }
.fl-quiz .fl-lien-bouton { color: var(--clair); }
.fl-quiz-seul .fl-quiz { margin-top: 0; }

/* ─── La couche nuageuse ─── */
.fl-couche { position: relative; display: grid; place-items: center; height: clamp(24rem, 62vh, 36rem); overflow: hidden; isolation: isolate; background: linear-gradient(180deg, var(--papier) 0%, rgba(0, 28, 168, .07) 50%, var(--papier) 100%); }
.fl-couche-ciel { position: absolute; inset: -12% 0; z-index: -2; -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 16%, #000 84%, transparent 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 16%, #000 84%, transparent 100%); }
.fl-couche-ciel img { width: 100%; height: 100%; object-fit: cover; translate: 0 var(--couche-y, 0px); scale: 1.08; }
.fl-couche-brume { position: absolute; z-index: -1; width: 70%; height: 70%; border-radius: 50%; background: radial-gradient(closest-side, rgba(255, 255, 255, .7), rgba(255, 255, 255, 0)); filter: blur(10px); pointer-events: none; }
.fl-couche-brume-1 { left: -10%; top: 10%; translate: calc(var(--couche-p, 0) * 30%) 0; }
.fl-couche-brume-2 { right: -12%; bottom: 0; translate: calc(var(--couche-p, 0) * -34%) 0; }
.fl-couche-texte { margin: 0 1.25rem; padding: .9rem 1.6rem; border-radius: 999px; background: rgba(18, 13, 22, .86); color: #fff; text-align: center; font: 600 clamp(1.15rem, .9rem + 1vw, 1.8rem) / 1.25 var(--police-display); letter-spacing: -.025em; box-shadow: 0 30px 60px -30px rgba(18, 13, 22, .6); }
.fl-couche-texte .v6-lapsus { color: var(--clair); }

/* ─── La carte des terrains ─── */
.fl-carte-outils { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.2rem; margin-bottom: 1.2rem; }
.fl-champ-instru { display: grid; gap: .45rem; flex: 1 1 14rem; max-width: 22rem; }
.fl-champ-instru > span { font: .7rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.fl-rayon { grid-template-columns: 1fr auto; align-items: center; flex: 1 1 13rem; }
.fl-rayon output { font: 700 .95rem var(--police-instru); color: var(--accent-vif); }
.fl-rayon input { grid-column: 1 / -1; }
.v6 input[type="range"] { appearance: none; -webkit-appearance: none; height: 4px; min-height: 0; padding: 0; border-radius: 4px; background: var(--filet-fort); box-shadow: none; margin: .9rem 0; }
.v6 input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 1.4rem; height: 1.4rem; border-radius: 50%; background: var(--accent-vif); box-shadow: 0 0 0 5px rgba(0, 28, 168, .18); cursor: grab; }
.v6 input[type="range"]::-moz-range-thumb { width: 1.3rem; height: 1.3rem; border: 0; border-radius: 50%; background: var(--accent-vif); }
.fl-bouton-instru { display: inline-flex; align-items: center; gap: .55rem; min-height: 3.25rem; padding: .6rem 1.2rem; border: 0; border-radius: 999px; cursor: pointer; background: var(--voile); color: var(--encre); font: 600 .95rem var(--police-ui); box-shadow: inset 0 0 0 1px var(--filet-fort); transition: box-shadow .3s; }
.fl-bouton-instru:hover { box-shadow: inset 0 0 0 1.5px var(--accent-vif); }
.fl-bouton-instru .fl-icone { width: 1.2rem; height: 1.2rem; color: var(--accent-vif); }
.fl-filtres { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .6rem; width: 100%; }
.fl-filtre { display: inline-flex; align-items: center; gap: .5rem; padding: .5rem .9rem; border: 0; border-radius: 999px; cursor: pointer; background: var(--voile); color: var(--encre); font: 600 .88rem var(--police-ui); box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-filtre small { font: .72rem var(--police-instru); color: var(--encre-3); }
.fl-filtre i { width: .7rem; height: .7rem; border-radius: 50%; background: var(--c); box-shadow: 0 0 0 2px var(--voile), 0 0 0 3px var(--c); }
.fl-filtre[aria-pressed="false"] { background: transparent; color: var(--encre-3); text-decoration: line-through; text-decoration-thickness: 1px; }
.fl-filtre[aria-pressed="false"] i { background: transparent; }
.fl-filtres .fl-case { margin-left: .6rem; font-size: .9rem; }
.fl-filtre-ulm, .fl-leg-ulm { --c: #001CA8; }
.fl-filtre-aerodrome, .fl-leg-aerodrome { --c: #191970; }
.fl-filtre-montagne, .fl-leg-montagne { --c: #001CA8; }
.fl-filtre-hydro, .fl-leg-hydro { --c: #F32837; }
.fl-filtre-aeroport, .fl-leg-aeroport { --c: rgba(18, 13, 22, .45); }
.fl-carte-corps { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 1080px) { .fl-carte-complet .fl-carte-corps { grid-template-columns: 1.3fr .7fr; } }
/* Fond clair (remarque n° 48 : « l’arrière est très sombre ») : White Smoke, départements blancs, points aux couleurs de la légende. */
.fl-carte-vue { position: relative; padding: clamp(.6rem, 2vw, 1.4rem); border-radius: 1.6rem; background: #F5F5F5; background-image: radial-gradient(70% 60% at 30% 20%, rgba(0, 28, 168, .07), transparent 70%); box-shadow: inset 0 0 0 1px rgba(25, 25, 112, .1); }
.fl-carte-vue svg { display: block; width: 100%; height: auto; max-height: 46rem; margin: 0 auto; }
.fl-carte-compact .fl-carte-vue svg { max-height: 38rem; }
.fl-deps path { fill: #fff; stroke: rgba(25, 25, 112, .2); stroke-width: 1; }
.fl-pt { fill: #191970; opacity: .85; transition: opacity .4s, r .4s; }
.fl-pt-ulm { fill: #001CA8; }
.fl-pt-montagne { fill: #001CA8; stroke: #fff; stroke-width: 1.4; }
.fl-pt-hydro { fill: #F32837; }
.fl-pt-aeroport { fill: rgba(18, 13, 22, .45); }
.fl-pt.est-cache { display: none; }
.fl-carte.a-cible .fl-pt { opacity: .2; }
.fl-carte.a-cible .fl-pt.est-proche { opacity: 1; r: 6; stroke: #fff; stroke-width: 1.4; }
.fl-cercle { fill: rgba(0, 28, 168, .08); stroke: #001CA8; stroke-width: 1.5; stroke-dasharray: 6 6; vector-effect: non-scaling-stroke; }
.fl-cible circle { fill: none; stroke: #950714; stroke-width: 2.2; }
.fl-cible path { stroke: #950714; stroke-width: 2.2; }
.fl-recit-pt { cursor: pointer; }
.fl-recit-pt circle { fill: #F32837; stroke: #fff; stroke-width: 2.5; transition: r .3s; }
.fl-recit-pt path { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }
.fl-recit-pt:hover circle, .fl-recit-pt.est-active circle { r: 19; }
.fl-carte.sans-recits .fl-recits-points { display: none; }
.fl-carte-resume { position: absolute; left: clamp(1rem, 2.4vw, 2rem); top: clamp(1rem, 2.4vw, 2rem); margin: 0; max-width: calc(100% - 2rem); padding: .5rem .9rem; border-radius: 999px; background: rgba(18, 13, 22, .88); color: rgba(245, 245, 245, .88); font: .78rem var(--police-instru); letter-spacing: .04em; }
.fl-carte-resume b { color: var(--clair); font-weight: 700; }
.fl-carte-liste { display: flex; flex-direction: column; gap: .8rem; padding: 1.3rem; border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); max-height: 48rem; overflow: auto; }
.fl-carte-liste ol { list-style: none; margin: 0; padding: 0; display: grid; }
.fl-carte-liste li { display: grid; grid-template-columns: auto 1fr auto; gap: .2rem .8rem; align-items: center; padding: .75rem 0; border-top: 1px solid var(--filet); }
.fl-carte-liste li i { width: .7rem; height: .7rem; border-radius: 50%; background: var(--c); grid-row: span 2; }
.fl-carte-liste li b { font-size: .95rem; line-height: 1.3; }
.fl-carte-liste li small { grid-column: 2; font: .72rem var(--police-instru); color: var(--encre-3); letter-spacing: .03em; }
.fl-carte-liste li em { grid-row: 1 / span 2; grid-column: 3; font: normal 700 .85rem var(--police-instru); color: var(--accent-vif); text-align: right; }
.fl-recit-fiche { display: grid; gap: .6rem; padding: 1rem; border-radius: 1rem; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-recit-fiche img { border-radius: .7rem; aspect-ratio: 16 / 9; object-fit: cover; }
.fl-recit-fiche b { font: 620 1.3rem var(--police-display); color: #fff; }
.fl-recit-fiche p { margin: 0; font-size: .92rem; }
.fl-legende-carte { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; margin-top: 1rem; font-size: .84rem; color: var(--encre-2); }
.fl-legende-carte span { display: inline-flex; align-items: center; gap: .45rem; }
.fl-legende-carte i { width: .65rem; height: .65rem; border-radius: 50%; background: var(--c); }
.fl-sous-carte { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.6rem; margin: 1.8rem 0 0; }
.fl-sous-carte .v6-legende { color: var(--encre-3); max-width: 40rem; }
.fl-source-carte { margin: 1.2rem 0 0; color: var(--encre-3); }

/* ─── Montée en trois étapes ─── */
.fl-montee { position: relative; display: grid; grid-template-columns: 1fr; gap: 2.4rem; }
.fl-montee-trace { display: none; }
@media (min-width: 960px) {
  .fl-montee { grid-template-columns: repeat(3, 1fr); gap: 3rem; min-height: 32rem; align-items: start; }
  .fl-montee-trace { display: block; position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 100%; z-index: -1; overflow: visible; }
  .fl-montee-trace path { fill: none; stroke: var(--accent-vif); stroke-width: 2; stroke-dasharray: 3 10; stroke-linecap: round; vector-effect: non-scaling-stroke; }
  .fl-montee-etape:nth-of-type(1) { margin-top: 15rem; }
  .fl-montee-etape:nth-of-type(2) { margin-top: 7.5rem; }
}
.fl-montee-etape { position: relative; padding: 1.6rem; border-radius: 1.4rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet), 0 40px 60px -52px rgba(18, 13, 22, .5); }
.fl-montee-etape h3 { margin: .7rem 0 .5rem; }
.fl-montee-etape p:last-child { margin: 0; color: var(--encre-2); }
.fl-montee-point { position: absolute; top: -.6rem; left: 1.6rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--papier); box-shadow: inset 0 0 0 3px var(--accent-vif); }

/* ─── Sécurité (accueil) ─── */
.fl-secu-grille { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 980px) { .fl-secu-grille { grid-template-columns: 1.25fr .75fr; } }
.fl-radar { display: grid; gap: 1rem; align-content: start; }
.fl-bulletins { list-style: none; margin: 0; padding: 0; }
.fl-bulletin { display: grid; grid-template-columns: 9.5rem 1fr auto; gap: .3rem 1.2rem; align-items: center; padding: .95rem 0; border-top: 1px solid var(--filet); }
.fl-bulletin:last-child { border-bottom: 1px solid var(--filet); }
.v6-sombre .fl-bulletin { border-color: rgba(255, 255, 255, .13); }
.fl-bulletin-date { font: .76rem var(--police-instru); color: var(--encre-3); }
.v6-sombre .fl-bulletin-date { color: rgba(245, 245, 245, .58); }
.fl-bulletin b { font-weight: 600; line-height: 1.35; }
.v6-sombre .fl-bulletin b { color: #fff; }
@media (max-width: 640px) { .fl-bulletin { grid-template-columns: 1fr auto; } .fl-bulletin-date { grid-column: 1 / -1; } }
.fl-rex-appel { display: grid; gap: 1rem; align-content: start; justify-items: start; padding: clamp(1.6rem, 3vw, 2.4rem); border-radius: 1.6rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.fl-rex-appel h3 { color: #fff; }
.fl-rex-appel p { margin: 0; color: rgba(245, 245, 245, .70); }

/* ─── Actualités ─── */
.fl-actus-accueil { display: grid; grid-template-columns: 1fr; gap: 2.4rem; }
@media (min-width: 1080px) { .fl-actus-accueil { grid-template-columns: 1.6fr 1fr; } }
.fl-actus-grille { display: grid; grid-template-columns: 1fr; gap: 2rem 1.5rem; }
@media (min-width: 640px) { .fl-actus-grille { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1080px) { .fl-actus-toutes { grid-template-columns: repeat(3, 1fr); } }
/* Accueil, section Actualités (« À la une de l'accueil », 12/10/2026) : étiquette de la une ; état propre quand rien de récent n'est à montrer. */
.fl-actu-une-etiquette { color: #950714; }
.fl-actus-grille-vide { grid-template-columns: 1fr; }
.fl-actus-vide { display: grid; gap: .55rem; align-content: start; padding: clamp(1.4rem, 2.6vw, 2rem); border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-actus-vide-titre { font: 620 1.35rem / 1.2 var(--police-display); letter-spacing: -.02em; margin: 0; }
.fl-actus-vide p { margin: 0; color: var(--encre-2); }
.fl-actus-vide .v6-lien { margin-top: .5rem; justify-self: start; }
.fl-agenda-vide { margin: 0; color: var(--encre-2); font-size: .95rem; }
.fl-actu { display: flex; flex-direction: column; gap: .6rem; }
.fl-actu-visuel { position: relative; aspect-ratio: 16 / 10; border-radius: 1.1rem; overflow: hidden; background: var(--papier-2); margin-bottom: .4rem; }
.fl-actu-visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--ease); }
.fl-actu:hover .fl-actu-visuel img { transform: scale(1.04); }
.fl-actu-logo { display: grid; place-items: center; background: #120D16; background-image: radial-gradient(60% 70% at 50% 40%, rgba(0, 28, 168, .6), transparent 70%); }
.fl-actu-logo img { width: 34%; height: auto; object-fit: contain; }
.fl-actu .fl-etiquette-instru { align-self: flex-start; }
.fl-actu h3 { font: 620 1.2rem / 1.2 var(--police-display); letter-spacing: -.02em; }
.fl-actu p:last-child { margin: 0; font-size: .95rem; color: var(--encre-2); line-height: 1.55; }
.fl-actus-outils { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.6rem; margin-bottom: 2.2rem; }
.fl-recherche { max-width: 20rem; }
.fl-agenda-mini { display: grid; gap: 1rem; align-content: start; padding: clamp(1.4rem, 2.6vw, 2rem); border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-agenda-liste { list-style: none; margin: 0; padding: 0; }
.fl-agenda-ligne { display: grid; grid-template-columns: auto 1fr auto; gap: .3rem 1rem; align-items: center; padding: .9rem 0; border-top: 1px solid var(--filet); }
.fl-agenda-jour { display: grid; place-items: center; width: 3.6rem; padding: .45rem 0; border-radius: .8rem; background: #191970; color: #fff; font-family: var(--police-instru); line-height: 1.05; }
.fl-agenda-jour b { font-size: 1.3rem; font-weight: 400; }
.fl-agenda-jour small { font-size: .62rem; letter-spacing: .12em; color: var(--clair); }
.fl-agenda-info { display: grid; gap: .15rem; min-width: 0; }
.fl-agenda-info b { font-weight: 600; line-height: 1.3; }
.fl-agenda-info small { font-size: .85rem; color: var(--encre-3); }
.fl-agenda-ligne .fl-etiquette-instru { display: none; }
.fl-agenda-garder { grid-column: 3; border: 0; border-radius: 999px; padding: .45rem .8rem; cursor: pointer; background: transparent; color: var(--accent-vif); font: 600 .82rem var(--police-ui); box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-agenda-garder[aria-pressed="true"] { background: var(--accent-vif); color: #fff; box-shadow: none; }
.fl-agenda-ligne.est-passe .fl-agenda-jour { background: #120D16; }
.fl-agenda-ligne.est-surligne { background: linear-gradient(90deg, rgba(0, 28, 168, .1), transparent); }
@media (min-width: 760px) { .fl-agenda-grande .fl-agenda-ligne { grid-template-columns: auto 1fr auto auto; } .fl-agenda-grande .fl-etiquette-instru { display: inline-block; } .fl-agenda-grande .fl-agenda-garder { grid-column: 4; } }

/* ─── Carte de licence ─── */
.fl-licence-scene { display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem) 0; }
.fl-licence-carte { width: 100%; max-width: 30rem; perspective: 1400px; }
.fl-licence-recto {
  position: relative; display: grid; grid-template-rows: auto 1fr auto auto; gap: .6rem; aspect-ratio: 1.586; padding: clamp(1rem, 3vw, 1.5rem) clamp(1.1rem, 3vw, 1.7rem);
  border-radius: 1.3rem; overflow: hidden; color: #fff; isolation: isolate;
  background: linear-gradient(140deg, #001CA8 0%, #191970 42%, #191970 100%);
  box-shadow: 0 50px 80px -40px rgba(18, 13, 22, .75), inset 0 0 0 1px rgba(255, 255, 255, .14);
  transform: rotateX(var(--rx, 6deg)) rotateY(var(--ry, -12deg)); transition: transform .8s var(--ease);
}
.fl-licence-recto::before { content: ""; position: absolute; z-index: -1; right: -18%; top: -40%; width: 70%; aspect-ratio: 1; border-radius: 50%; border: 1px solid rgba(245, 245, 245, .22); box-shadow: 0 0 0 26px rgba(245, 245, 245, .05), 0 0 0 60px rgba(245, 245, 245, .04); }
.fl-licence-recto::after { content: ""; position: absolute; z-index: -1; left: 0; bottom: 0; width: 42%; height: 5px; background: linear-gradient(90deg, #001CA8 0 33%, #fff 33% 66%, #F32837 66%); }
.fl-licence-haut { display: flex; align-items: center; gap: .7rem; }
.fl-licence-haut img { width: 2.4rem; height: 2.4rem; border-radius: 50%; }
.fl-licence-haut p { margin: 0; display: grid; line-height: 1.2; }
.fl-licence-haut b { font: 700 .74rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; }
.fl-licence-haut p span { font: .7rem var(--police-instru); color: rgba(245, 245, 245, .88); }
.fl-licence-puce { margin-left: auto; width: 2.5rem; height: 1.9rem; border-radius: .35rem; background: linear-gradient(135deg, #E8E8EE, #A9A9B4 60%, #DCDCE4); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .15); }
.fl-licence-nom { align-self: end; margin: 0; font: 600 clamp(1.15rem, .9rem + 1vw, 1.55rem) / 1.1 var(--police-display); letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fl-licence-champs { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem 1rem; margin: 0; }
.fl-licence-champs dt { font: .56rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: rgba(245, 245, 245, .58); }
.fl-licence-champs dd { margin: 0; font: .78rem var(--police-instru); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.fl-licence-bas { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; font: .7rem var(--police-instru); color: rgba(245, 245, 245, .88); }
.fl-licence-code { width: 2.6rem; height: 2.6rem; flex: none; }
.fl-licence-code rect { fill: #fff; }
.fl-licence-demo { position: absolute; top: .9rem; right: 4.2rem; padding: .2rem .5rem; border-radius: 999px; background: #191970; color: var(--clair); font: .56rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; }
.fl-tarifs { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; max-width: 30rem; }
.fl-tarifs li { display: grid; gap: .1rem; padding: .9rem 1rem; border-radius: 1rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-tarifs span { font-size: .86rem; color: var(--encre-3); }
.fl-tarifs b { font: 400 1.5rem var(--police-instru); color: var(--accent-vif); }

/* ─── Finale ─── */
.fl-finale { position: relative; isolation: isolate; overflow: hidden; background: #120D16; color: #fff; }
.fl-finale-ciel { position: absolute; inset: 0; z-index: -2; }
.fl-finale-ciel img { width: 100%; height: 100%; object-fit: cover; }
.fl-finale-voile { position: absolute; inset: 0; z-index: -1; background: radial-gradient(75% 85% at 50% 55%, rgba(18, 13, 22, .7), rgba(18, 13, 22, .93)); }
.fl-finale-zone { position: relative; z-index: 1; text-align: center; padding-top: clamp(6rem, 12vw, 11rem); padding-bottom: clamp(6rem, 12vw, 11rem); }
.fl-finale .fl-sur { justify-content: center; }
.v6 .fl-finale-titre { margin: 1.3rem auto 0; max-width: 14ch; font-size: clamp(2.6rem, .8rem + 5vw, 6rem); font-weight: 620; line-height: .95; letter-spacing: -.045em; color: #fff; }
.fl-finale-titre .v6-lapsus { color: var(--clair); }
.fl-finale .fl-chapo { margin: 1.5rem auto 0; max-width: 40rem; }
.fl-finale-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; margin: 2.2rem 0 0; }

/* ─── Pied de page ─── */
.fl-pied { position: relative; background: #120D16; }
.fl-pied-horizon { position: absolute; left: 0; top: 0; width: 100%; height: 5rem; }
.v6-pied .fl-pied-marque { display: flex; align-items: center; gap: .9rem; margin: 0 0 1.2rem; color: rgba(245, 245, 245, .88); }
.fl-pied-marque img { width: 3.2rem; height: 3.2rem; border-radius: 50%; }
.fl-pied-marque b { display: block; font: 700 1.3rem var(--police-display); color: #fff; }

/* ═══ PRATIQUER ═══ */
.fl-comparateur { display: grid; grid-template-columns: 1fr; gap: 1.6rem; }
@media (min-width: 1080px) { .fl-comparateur { grid-template-columns: .85fr 1.15fr; align-items: start; } }
.fl-comp-choix { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
@media (min-width: 640px) and (max-width: 1079px) { .fl-comp-choix { grid-template-columns: repeat(3, 1fr); } }
.fl-comp-bouton { position: relative; display: grid; justify-items: start; gap: .15rem; padding: .9rem 1rem 1rem; border: 0; border-radius: 1.1rem; cursor: pointer; text-align: left; background: var(--voile); color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet); transition: box-shadow .4s var(--ease), transform .4s var(--ease); }
.fl-comp-bouton:hover { transform: translateY(-3px); }
.fl-comp-bouton[aria-pressed="true"] { box-shadow: inset 0 0 0 2px var(--accent-vif); }
.fl-comp-bouton[data-rang="B"] { box-shadow: inset 0 0 0 2px var(--rouge); }
.fl-comp-rang { position: absolute; top: .7rem; right: .8rem; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; font: 700 .78rem var(--police-instru); color: #fff; background: var(--accent-vif); }
.fl-comp-rang:empty { display: none; }
.fl-comp-bouton[data-rang="B"] .fl-comp-rang { background: var(--rouge); }
.fl-comp-visuel { display: grid; place-items: center; width: 100%; height: 4.6rem; }
.fl-comp-visuel img, .fl-comp-visuel svg { max-height: 4.2rem; max-width: 70%; width: auto; height: auto; }
.fl-comp-visuel svg { width: 4rem; }
.fl-comp-bouton b { font: 620 1.02rem / 1.2 var(--police-display); letter-spacing: -.015em; }
.fl-comp-bouton small { font: .68rem var(--police-instru); color: var(--encre-3); letter-spacing: .06em; }
.fl-comp-panneau { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 620px) { .fl-comp-panneau { grid-template-columns: 1fr 1fr; } }
.fl-comp-colonne { display: grid; gap: .9rem; align-content: start; padding: clamp(1.3rem, 2.4vw, 2rem); border-radius: 1.4rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-comp-colonne h3 { min-height: 1.1em; }
.fl-comp-voilure { margin: -.4rem 0 0; color: var(--encre-2); font-size: .95rem; }
.fl-jauge { display: grid; grid-template-columns: 1fr auto; gap: .35rem 1rem; align-items: baseline; }
.fl-jauge span { font-size: .84rem; color: var(--encre-3); }
.fl-jauge b { font: 700 .92rem var(--police-instru); color: var(--accent-vif); }
.fl-jauge i { grid-column: 1 / -1; height: .5rem; border-radius: 999px; background: var(--papier-2); overflow: hidden; }
.fl-jauge em { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--accent-vif); transition: width 1s var(--ease); }
[data-colonne="b"] .fl-jauge b { color: var(--rouge); }
[data-colonne="b"] .fl-jauge em { background: var(--rouge); }
.fl-comp-note { margin: 0; padding-top: .7rem; border-top: 1px solid var(--filet); font-size: .9rem; color: var(--encre-2); }
.fl-comp-note:empty { display: none; }
.fl-fiches { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 720px) { .fl-fiches { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1120px) { .fl-fiches { grid-template-columns: repeat(3, 1fr); } }
.fl-fiche { display: flex; flex-direction: column; gap: .7rem; padding: clamp(1.4rem, 2.4vw, 2rem); border-radius: 1.4rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); scroll-margin-top: 7rem; }
.fl-fiche:target { box-shadow: inset 0 0 0 2px var(--accent-vif); }
.fl-fiche-tete { display: flex; align-items: center; justify-content: space-between; }
.fl-fiche-num { font: 400 2.4rem var(--police-instru); color: var(--accent-vif); line-height: 1; }
.fl-fiche-visuel { display: grid; place-items: center; width: 6rem; height: 4.4rem; }
.fl-fiche-visuel img, .fl-fiche-visuel svg { max-height: 4.2rem; max-width: 100%; width: auto; height: auto; }
.fl-fiche-visuel svg { width: 4rem; }
.fl-fiche > p { margin: 0; color: var(--encre-2); font-size: .98rem; }
.fl-fiche dl { margin: auto 0 0; display: grid; }
.fl-fiche dl div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .8rem; padding: .55rem 0; border-top: 1px solid var(--filet); }
.fl-fiche dt { font: .66rem var(--police-instru); letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); padding-top: .2rem; }
.fl-fiche dd { margin: 0; font-size: .92rem; line-height: 1.45; }
.fl-commun { margin-top: 2.6rem; padding: clamp(1.4rem, 3vw, 2.2rem); border-radius: 1.4rem; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-commun .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-commun ul { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .7rem 2rem; }
@media (min-width: 760px) { .fl-commun ul { grid-template-columns: 1fr 1fr; } }
.fl-commun li { display: flex; gap: .7rem; align-items: flex-start; }
.fl-commun li svg { flex: none; margin-top: .3rem; color: var(--clair); }
.fl-histoire { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 900px) { .fl-histoire { grid-template-columns: repeat(4, 1fr); } }
.fl-histoire li { padding-top: 1.4rem; border-top: 1px solid rgba(255, 255, 255, .2); position: relative; }
.fl-histoire li::before { content: ""; position: absolute; top: -5px; left: 0; width: 9px; height: 9px; border-radius: 50%; background: var(--clair); }
.fl-histoire-date { display: block; font: 620 1.5rem var(--police-display); color: var(--clair); letter-spacing: -.02em; }
.fl-histoire p { margin: .6rem 0 0; color: rgba(245, 245, 245, .70); }
.fl-pratiques { display: grid; grid-template-columns: 1fr; gap: 2rem 1.6rem; }
@media (min-width: 960px) { .fl-pratiques { grid-template-columns: repeat(3, 1fr); } }
.fl-pratique { display: flex; flex-direction: column; gap: .7rem; }
.fl-pratique .v6-photo { aspect-ratio: 4 / 3; border-radius: 1.2rem; margin-bottom: .5rem; }
.fl-pratique h3 { margin-top: .2rem; }
.fl-pratique > p:not(.fl-instru-lib) { margin: 0; color: var(--encre-2); }

/* ═══ DEVENIR PILOTE ═══ */
.fl-parcours { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
@media (min-width: 1000px) { .fl-parcours { grid-template-columns: .75fr 1.25fr; align-items: start; } }
.fl-parcours-etapes { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.fl-parcours-etapes button { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; width: 100%; padding: .85rem 1rem; border: 0; border-radius: 1rem; cursor: pointer; text-align: left; background: var(--voile); color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet); transition: background-color .4s var(--ease), color .4s; }
.fl-parcours-etapes button[aria-selected="true"] { background: #191970; color: #fff; box-shadow: none; }
.fl-parcours-num { font: .82rem var(--police-instru); color: var(--accent-vif); }
.fl-parcours-etapes button[aria-selected="true"] .fl-parcours-num { color: var(--clair); }
.fl-parcours-etapes b { display: block; font: 620 1.05rem / 1.2 var(--police-display); letter-spacing: -.015em; }
.fl-parcours-etapes small { font-size: .82rem; color: var(--encre-3); }
.fl-parcours-etapes button[aria-selected="true"] small { color: rgba(245, 245, 245, .58); }
.fl-parcours-etat { width: 1.2rem; height: 1.2rem; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--filet-fort); }
.fl-parcours-etapes button[aria-selected="true"] .fl-parcours-etat { box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .4); }
.fl-parcours-etapes button.est-fait .fl-parcours-etat { background: var(--clair); box-shadow: none; }
.fl-parcours-vue { padding: clamp(1.4rem, 3vw, 2.4rem); border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-parcours-instru { position: relative; height: 7.5rem; margin-bottom: 1.4rem; border-radius: 1rem; overflow: hidden; background: linear-gradient(180deg, rgba(0, 28, 168, .08), #F5F5F5); }
.fl-parcours-instru svg { position: absolute; inset: .6rem 0 0; width: 100%; height: calc(100% - .6rem); }
.fl-parcours-sol { stroke: var(--filet-fort); stroke-width: 2; vector-effect: non-scaling-stroke; }
.fl-parcours-trace { fill: none; stroke: var(--accent-vif); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 100; stroke-dashoffset: calc(100 - var(--pct, 0)); transition: stroke-dashoffset 1s var(--ease); }
.fl-parcours-pourcent { position: absolute; left: 1rem; top: .7rem; font: .8rem var(--police-instru); color: var(--encre-2); }
.fl-parcours-pourcent b { font-size: 1.6rem; font-weight: 400; color: var(--accent-vif); }
.fl-parcours-panneau h3 { margin-bottom: .6rem; }
.fl-parcours-cases { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; }
.fl-parcours-cases li { padding: .8rem 0; border-top: 1px solid var(--filet); }
.fl-equivalence { margin: 2rem 0 0; max-width: 60rem; font-size: .95rem; color: var(--encre-2); }
.fl-aides { display: grid; gap: .2rem; padding: clamp(1.4rem, 3vw, 2.2rem); border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-aides .fl-instru-lib { margin-bottom: .8rem; }
.fl-aides .fl-case { align-items: center; padding: .8rem 0; border-top: 1px solid var(--filet); }
.v6 .fl-aides .fl-case input { margin-top: 0; }
.fl-aides .fl-case b { margin-left: auto; font: 700 .95rem var(--police-instru); color: var(--accent-vif); white-space: nowrap; }
.fl-case-retrait { padding-left: 1.6rem !important; }
.fl-aides-total { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 2px solid var(--encre); margin-top: .4rem; }
.fl-aides-total span { font-weight: 600; }
.fl-aides-total output { font: 400 2.4rem var(--police-instru); color: var(--accent-vif); }
.fl-aides-note { margin: .4rem 0 0; font-size: .88rem; color: var(--encre-3); }
.fl-decouverte { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: start; }
@media (min-width: 1000px) { .fl-decouverte { grid-template-columns: 1fr 1fr; } }
.fl-decouverte-form { display: grid; gap: 1.3rem; }
.fl-embarquement { position: relative; display: grid; gap: 1.1rem; padding: 0 0 1.6rem; border-radius: 1.4rem; overflow: hidden; background: var(--voile); box-shadow: 0 50px 90px -60px rgba(18, 13, 22, .7), inset 0 0 0 1px var(--filet); }
@media (min-width: 1000px) { .fl-embarquement { position: sticky; top: 6.5rem; } }
.fl-emb-haut { display: flex; align-items: center; gap: .8rem; padding: 1.1rem 1.4rem; background: #191970; color: #fff; }
.fl-emb-haut img { width: 2.3rem; height: 2.3rem; border-radius: 50%; }
.fl-emb-haut p { margin: 0; display: grid; line-height: 1.2; }
.fl-emb-haut b { font: 700 .8rem var(--police-ui); letter-spacing: .12em; text-transform: uppercase; }
.fl-emb-haut p span { font: .72rem var(--police-instru); color: rgba(245, 245, 245, .58); }
.fl-emb-statut { margin-left: auto; padding: .3rem .7rem; border-radius: 999px; font: .66rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: rgba(245, 245, 245, .88); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.fl-emb-statut.est-emise { background: var(--clair); color: #120D16; box-shadow: none; }
.fl-emb-passager { margin: 0; padding: 0 1.4rem; display: grid; }
.fl-emb-passager small, .fl-emb-trajet small { font: .64rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.fl-emb-passager b { font: 600 1.5rem var(--police-display); letter-spacing: -.02em; }
.fl-emb-trajet { display: grid; grid-template-columns: 1fr 5rem 1fr; gap: .8rem; align-items: center; padding: 0 1.4rem; }
.fl-emb-trajet p { margin: 0; display: grid; min-width: 0; }
.fl-emb-trajet p:last-child { text-align: right; }
.fl-emb-trajet b { font: 400 clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem) / 1.05 var(--police-instru); color: var(--accent-vif); }
.fl-emb-trajet span { font-size: .82rem; color: var(--encre-2); line-height: 1.3; overflow-wrap: anywhere; }
.fl-emb-trajet svg { width: 100%; height: auto; overflow: visible; }
.fl-emb-trajet svg path { fill: none; stroke: var(--accent-vif); stroke-width: 1.6; stroke-dasharray: 3 5; }
.fl-emb-trajet svg .fl-emb-avion { fill: var(--accent-vif); stroke: none; }
.fl-emb-champs { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: 0; padding: 1rem 1.4rem; border-block: 1px dashed var(--filet-fort); }
.fl-emb-champs dt { font: .6rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.fl-emb-champs dd { margin: 0; font: .92rem var(--police-instru); }
@media (max-width: 480px) { .fl-emb-champs { grid-template-columns: 1fr 1fr; } }
.fl-emb-points { list-style: none; margin: 0; padding: 0 1.4rem; display: grid; gap: .45rem; }
.fl-emb-points li { display: flex; gap: .6rem; font-size: .9rem; color: var(--encre-2); }
.fl-emb-points svg { flex: none; margin-top: .25rem; color: var(--accent-vif); }
.fl-emb-talon { position: absolute; left: 0; right: 0; top: 4.6rem; height: 0; }
.fl-embarquement::before, .fl-embarquement::after { content: ""; position: absolute; top: calc(100% - 4.4rem); width: 1.6rem; height: 1.6rem; border-radius: 50%; background: var(--papier); }
.fl-embarquement::before { left: -.8rem; }
.fl-embarquement::after { right: -.8rem; }
.fl-encadrement { display: grid; grid-template-columns: 1fr; gap: 2.4rem; }
@media (min-width: 1000px) { .fl-encadrement { grid-template-columns: 1.1fr .9fr; } .fl-bia { grid-column: 1 / -1; } }
.fl-label { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; align-content: end; }
.fl-label li { display: flex; gap: 1rem; padding: 1rem 0; border-top: 1px solid rgba(255, 255, 255, .15); color: rgba(245, 245, 245, .88); }
.fl-label span { font: .8rem var(--police-instru); color: var(--clair); padding-top: .2rem; }
.fl-bia { padding: 1.6rem; border-radius: 1.4rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
.fl-bia p:last-child { margin: .6rem 0 0; color: rgba(245, 245, 245, .70); max-width: 60rem; }

/* ═══ SÉCURITÉ ═══ */
.fl-alertes-filtres { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1.6rem; }
.fl-alertes-filtres button { border: 0; border-radius: 999px; padding: .55rem 1rem; cursor: pointer; background: transparent; color: #F5F5F5; font: 600 .88rem var(--police-ui); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .32); }
.fl-alertes-filtres button[aria-pressed="true"] { background: var(--clair); color: #120D16; box-shadow: none; }
.fl-filtres-clairs button { color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-filtres-clairs button[aria-pressed="true"] { background: #191970; color: #fff; }
.fl-actus-outils .fl-alertes-filtres { margin-bottom: 0; }
.fl-alertes-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.fl-alerte { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; padding: 1.4rem 1.5rem; border-radius: 1.2rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.fl-alerte-voyant { margin-top: .35rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--clair); box-shadow: 0 0 0 4px rgba(0, 28, 168, .18); }
.fl-alerte.est-encours .fl-alerte-voyant { animation: fl-voyant 1.4s ease-in-out infinite; background: #F32837; box-shadow: 0 0 0 4px rgba(243, 40, 55, .2); }
.fl-alerte.est-avenir .fl-alerte-voyant { background: #F5F5F5; box-shadow: 0 0 0 4px rgba(245, 245, 245, .2); }
.fl-alerte.est-terminee .fl-alerte-voyant { background: #6b7a90; box-shadow: none; }
@keyframes fl-voyant { 50% { opacity: .35; } }
.fl-alerte-meta { margin: 0; font: .72rem var(--police-instru); letter-spacing: .06em; color: rgba(245, 245, 245, .58); }
.fl-alerte-meta span { color: var(--clair); text-transform: uppercase; }
.fl-alerte h3 { margin: .35rem 0 .3rem; font: 620 1.35rem var(--police-display); letter-spacing: -.02em; color: #fff; }
.fl-alerte p:last-child { margin: 0; color: rgba(245, 245, 245, .70); }
.fl-rex { display: grid; gap: 1.6rem; padding: clamp(1.4rem, 3.4vw, 2.8rem); border-radius: 1.8rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet), 0 50px 90px -70px rgba(18, 13, 22, .6); }
.fl-rex-pistes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.4rem; font: .72rem var(--police-instru); letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); }
.fl-rex-pistes li { display: flex; align-items: center; gap: .5rem; }
.fl-rex-pistes span { display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-rex-pistes li.est-active { color: var(--encre); }
.fl-rex-pistes li.est-active span, .fl-rex-pistes li.est-faite span { background: var(--accent-vif); color: #fff; box-shadow: none; }
.fl-rex-etape { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 1rem; }
.fl-rex-etape legend { padding: 0; margin-bottom: 1rem; font: 620 clamp(1.3rem, 1rem + 1vw, 1.8rem) / 1.2 var(--police-display); letter-spacing: -.025em; }
.fl-rex-commandes { display: flex; flex-wrap: wrap; gap: .8rem; }
.fl-rex-commandes button[disabled] { cursor: default; }
.fl-rex-fiche { margin-top: .8rem; padding: 1.4rem; border-radius: 1.2rem; background: #191970; color: rgba(245, 245, 245, .88); font-family: var(--police-instru); font-size: .88rem; }
.fl-rex-fiche dl { margin: 0; display: grid; gap: .6rem; }
.fl-rex-fiche dt { font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--clair); }
.fl-rex-fiche dd { margin: 0; color: #fff; white-space: pre-wrap; font-family: var(--police-texte); font-size: .98rem; }
.fl-checklist { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 960px) { .fl-checklist { grid-template-columns: repeat(3, 1fr); } }
.fl-checklist-col { padding: 1.5rem; border-radius: 1.4rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-checklist-col ul { list-style: none; margin: 1rem 0 0; padding: 0; }
.fl-checklist-col li { padding: .7rem 0; border-top: 1px solid var(--filet); }
.fl-checklist-col .fl-case input:checked + span { text-decoration: line-through; text-decoration-color: var(--accent-vif); color: var(--encre-3); }
.fl-checklist-jauge { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; padding: 1rem 1.4rem; border-radius: 999px; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-checklist-jauge span { font: .72rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: rgba(245, 245, 245, .58); }
.fl-checklist-jauge i { flex: 1 1 10rem; height: .5rem; border-radius: 999px; background: rgba(255, 255, 255, .14); overflow: hidden; }
.fl-checklist-jauge em { display: block; height: 100%; width: 0; background: var(--clair); transition: width .6s var(--ease); }
.fl-checklist-jauge b { font: 400 1rem var(--police-instru); color: #fff; }
.fl-checklist-jauge .fl-lien-bouton { color: var(--clair); }
.fl-bulletins-grands .fl-bulletin b { font-size: 1.05rem; }
.fl-articles-secu { display: grid; grid-template-columns: 1fr; gap: 1.6rem; margin-top: 3rem; }
@media (min-width: 900px) { .fl-articles-secu { grid-template-columns: repeat(4, 1fr); } }
.fl-articles-secu article { padding-top: 1.2rem; border-top: 2px solid var(--accent-vif); }
.fl-articles-secu p { margin: .6rem 0 0; font-size: .95rem; color: var(--encre-2); }
.fl-dispositifs { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
@media (min-width: 1000px) { .fl-dispositifs { grid-template-columns: repeat(3, 1fr); } }
.fl-dispositifs article { display: flex; flex-direction: column; gap: .8rem; padding: clamp(1.4rem, 2.6vw, 2rem); border-radius: 1.4rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .13); }
.fl-dispositifs article > p:not(.fl-instru-lib) { margin: 0; color: rgba(245, 245, 245, .70); }
.v6-sombre .fl-gros-chiffre { display: flex; align-items: baseline; gap: .8rem; margin: 0; }
.fl-gros-chiffre b { font: 400 3.2rem var(--police-instru); color: var(--clair); line-height: 1; }
.v6-sombre .fl-gros-chiffre span { color: rgba(245, 245, 245, .70); }
.fl-montants { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.fl-montants li { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: .7rem 0; border-top: 1px solid rgba(255, 255, 255, .13); }
.fl-montants b { font: 400 1.3rem var(--police-instru); color: var(--clair); white-space: nowrap; }
.fl-montants span { color: #fff; font-weight: 600; font-size: .95rem; }
.fl-montants small { display: block; font-weight: 400; color: rgba(245, 245, 245, .58); font-size: .84rem; }
.fl-trois { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 900px) { .fl-trois { grid-template-columns: repeat(3, 1fr); } }
.fl-trois article { padding-top: 1.4rem; border-top: 1px solid var(--filet-fort); }
.fl-trois-num { font: .8rem var(--police-instru); color: var(--accent-vif); }
.fl-trois h3 { margin: .6rem 0; }
.fl-trois p { margin: 0; color: var(--encre-2); }

/* ═══ ACTUALITÉS ═══ */
.fl-agenda { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: start; }
@media (min-width: 1000px) { .fl-agenda { grid-template-columns: .8fr 1.2fr; } }
.fl-calendrier { padding: 1.4rem; border-radius: 1.6rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-calendrier-tete { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.fl-calendrier-tete p { margin: 0; font: 620 1.3rem var(--police-display); letter-spacing: -.02em; text-transform: capitalize; }
.fl-calendrier-tete button { width: 2.6rem; height: 2.6rem; border: 0; border-radius: 50%; cursor: pointer; background: transparent; color: var(--encre); font-size: 1.3rem; box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-calendrier-jours, .fl-calendrier-grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: .3rem; }
.fl-calendrier-jours span { text-align: center; font: .68rem var(--police-instru); color: var(--encre-3); padding-bottom: .3rem; }
.fl-jour { position: relative; display: grid; place-items: center; aspect-ratio: 1; border: 0; border-radius: .7rem; background: transparent; font: .9rem var(--police-instru); color: var(--encre-2); }
.fl-jour-vide { visibility: hidden; }
button.fl-jour { cursor: pointer; background: #191970; color: #fff; }
button.fl-jour::after { content: ""; position: absolute; bottom: .35rem; width: .3rem; height: .3rem; border-radius: 50%; background: var(--clair); }
button.fl-jour.est-passe { background: #120D16; }
.fl-jour.est-aujourdhui { box-shadow: inset 0 0 0 2px var(--accent-vif); color: var(--encre); }
.fl-evenements { display: grid; grid-template-columns: 1fr; gap: 2rem 1.6rem; }
@media (min-width: 960px) { .fl-evenements { grid-template-columns: repeat(3, 1fr); } }
.fl-evenement .v6-photo { aspect-ratio: 4 / 3; border-radius: 1.2rem; margin-bottom: 1.1rem; }
.fl-evenement p { margin: .6rem 0 0; color: var(--encre-2); }
.fl-festi { margin-top: 3rem; padding: clamp(1.4rem, 3vw, 2.2rem); border-radius: 1.4rem; background: var(--papier-2); }
.fl-festi ol { margin: 1rem 0 0; padding: 0; list-style: none; counter-reset: t; display: grid; grid-template-columns: 1fr; gap: .6rem 2rem; }
@media (min-width: 760px) { .fl-festi ol { grid-template-columns: 1fr 1fr; } }
.fl-festi li { counter-increment: t; display: flex; gap: .8rem; font-weight: 600; }
.fl-festi li::before { content: counter(t, decimal-leading-zero); font: 400 .85rem var(--police-instru); color: var(--accent-vif); padding-top: .15rem; }
.fl-medias { display: grid; grid-template-columns: 1fr; gap: 2.4rem 4rem; align-items: center; }
@media (min-width: 1000px) { .fl-medias { grid-template-columns: 1.1fr .9fr; } }
.fl-medias-video { position: relative; aspect-ratio: 16 / 9; border-radius: 1.4rem; overflow: hidden; background: #120D16 url('../video/ciel-poster.jpg') center / cover; }
.fl-medias-video video { width: 100%; height: 100%; object-fit: cover; }
.fl-lecture { position: absolute; left: 1.2rem; bottom: 1.2rem; border: 0; border-radius: 999px; padding: .7rem 1.2rem; cursor: pointer; background: rgba(18, 13, 22, .88); color: #fff; font: 600 .92rem var(--police-ui); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.fl-lecture[aria-pressed="true"] { background: var(--clair); color: #120D16; }
.fl-manuel { display: flex; gap: 1.2rem; align-items: center; margin-top: 2rem; padding: 1rem; border-radius: 1.2rem; background: rgba(255, 255, 255, .06); }
.fl-manuel img { width: 5.5rem; height: 5.5rem; border-radius: .6rem; object-fit: cover; background: #fff; }
.fl-manuel p { margin: 0; color: rgba(245, 245, 245, .70); font-size: .95rem; }
.fl-manuel b { display: block; color: #fff; margin-bottom: .2rem; }

/* ═══ FÉDÉRATION ═══ */
.fl-missions { display: grid; grid-template-columns: 1fr; gap: 2rem 4rem; }
@media (min-width: 1000px) { .fl-missions { grid-template-columns: 1.1fr .9fr; } }
.fl-missions ol { list-style: none; margin: 0; padding: 0; }
.fl-missions li { display: flex; gap: 1.2rem; padding: 1.15rem 0; border-top: 1px solid var(--filet); font: 600 clamp(1.05rem, .95rem + .4vw, 1.3rem) / 1.35 var(--police-display); letter-spacing: -.015em; }
.fl-missions li span { font: 400 .8rem var(--police-instru); color: var(--accent-vif); padding-top: .3rem; }
.fl-compteur-membres { position: relative; overflow: hidden; display: grid; gap: 1.2rem; padding: clamp(1.6rem, 3vw, 2.4rem); border-radius: 1.8rem; background: #191970; color: rgba(245, 245, 245, .88); isolation: isolate; }
.fl-compteur-membres .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-compteur-grand { margin: 0; display: grid; }
.fl-compteur-grand b { font: 400 clamp(3rem, 2rem + 3.5vw, 5rem) / 1 var(--police-instru); color: var(--clair); letter-spacing: -.03em; }
.fl-compteur-membres p span { color: rgba(245, 245, 245, .70); }
.fl-compteur-lignes { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.fl-compteur-lignes p { margin: 0; display: grid; padding-top: .8rem; border-top: 1px solid rgba(255, 255, 255, .14); }
.fl-compteur-lignes b { font: 400 1.5rem var(--police-instru); color: #fff; }
.fl-compteur-lignes span { font-size: .88rem; }
.fl-constellation { position: absolute; inset: 0; z-index: -1; }
.fl-constellation i { position: absolute; width: 3px; height: 3px; border-radius: 50%; background: #F5F5F5; opacity: .35; animation: fl-scintille var(--d, 4s) ease-in-out infinite; animation-delay: var(--r, 0s); }
@keyframes fl-scintille { 50% { opacity: .9; } }
.fl-elus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.6rem 1.2rem; }
@media (min-width: 700px) { .fl-elus { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .fl-elus { grid-template-columns: repeat(5, 1fr); } }
.fl-elu { display: grid; gap: .2rem; }
.fl-elu-photo { display: block; aspect-ratio: 4 / 5; border-radius: 1.1rem; overflow: hidden; margin-bottom: .6rem; background: #191970; }
.fl-elu-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.55) contrast(1.02); transition: filter .8s var(--ease), transform 1.2s var(--ease); }
.fl-elu:hover .fl-elu-photo img { filter: none; transform: scale(1.03); }
.fl-elu-initiales { display: grid; place-items: center; width: 100%; height: 100%; font: 620 2.4rem var(--police-display); color: var(--clair); background: radial-gradient(70% 70% at 50% 30%, #001CA8, #191970); }
.fl-elu b { font: 620 1.05rem / 1.2 var(--police-display); letter-spacing: -.015em; }
.fl-elu small { font-size: .85rem; color: var(--encre-3); }
.fl-elu-bureau small { color: var(--accent-vif); font-weight: 600; }
.fl-comites { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
@media (min-width: 1000px) { .fl-comites { grid-template-columns: 1.15fr .85fr; } }
.fl-comites-carte svg { display: block; width: 100%; height: auto; max-height: 40rem; }
.fl-region { cursor: pointer; outline: none; }
.fl-region path { fill: rgba(245, 245, 245, .80); stroke: var(--papier); stroke-width: 1; transition: fill .35s var(--ease); }
.fl-region:hover path, .fl-region:focus-visible path { fill: #F5F5F5; }
.fl-region.est-active path { fill: #001CA8; }
.fl-comite-fiche { display: grid; gap: 1.2rem; }
.fl-comite { display: grid; gap: 1rem; padding: clamp(1.4rem, 3vw, 2.2rem); border-radius: 1.6rem; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-comite .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-comite h3 { color: #fff; }
.fl-comite-president { display: flex; align-items: center; gap: 1rem; }
/* Avant le choix d'une région (remarques n° 75 et 76) : une invitation à la place de la fiche. */
.fl-comite-invite { margin: 0; padding: 1.5rem 1.6rem; border: 1px dashed rgba(0, 28, 168, .35); border-radius: 1.6rem; background: rgba(0, 28, 168, .04); color: #191970; font-size: 1.05rem; line-height: 1.55; }
.fl-comite-president img, .fl-comite-president .fl-elu-initiales { width: 4.6rem; height: 5.6rem; border-radius: .9rem; object-fit: cover; font-size: 1.6rem; }
.fl-comite-president p { margin: 0; display: grid; }
.fl-comite-president small { font: .66rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: rgba(245, 245, 245, .58); }
.fl-comite-president b { font: 620 1.3rem var(--police-display); color: #fff; }
.fl-comite-site { margin: 0; font: .85rem var(--police-instru); color: var(--clair); overflow-wrap: anywhere; }
.fl-comite-deps { margin: 0; font-size: .85rem; color: rgba(245, 245, 245, .58); }
.fl-outremer { list-style: none; margin: 2.4rem 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .1rem 2rem; }
@media (min-width: 800px) { .fl-outremer { grid-template-columns: 1fr 1fr; } }
.fl-outremer li { display: grid; gap: .1rem; padding: .8rem 0; border-top: 1px solid var(--filet); }
.fl-outremer span { font-size: .88rem; color: var(--encre-3); }
/* ── Comités régionaux : carte des régions (chaque région mène à la page de son comité) et une fiche par comité
   (construire.mjs, comitesSection ; survol croisé dans js/signature.js). Quatre tons de Klein : deux voisines diffèrent. ── */
.fl-cr { display: grid; grid-template-columns: 1fr; gap: 1.6rem 3rem; align-items: center; }
@media (min-width: 1000px) { .fl-cr { grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr); } }
.fl-cr-carte { background: #fff; border-radius: 1.6rem; padding: clamp(.5rem, 2vw, 1.6rem); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-cr-svg { display: block; width: 100%; height: auto; max-height: 44rem; }
.fl-cr-region { cursor: pointer; outline: none; }
.fl-cr-region path { stroke-width: 1.4; stroke-linejoin: round; transition: fill .25s var(--ease), stroke .25s var(--ease); }
.fl-cr-t1 path { fill: #E6E8F6; stroke: #E6E8F6; }
.fl-cr-t2 path { fill: #D1D5EE; stroke: #D1D5EE; }
.fl-cr-t3 path { fill: #BDC2E7; stroke: #BDC2E7; }
.fl-cr-t4 path { fill: #A8AFDF; stroke: #A8AFDF; }
.fl-cr-region:hover path, .fl-cr-region.est-survol path { fill: #001CA8; stroke: #001CA8; }
.fl-cr-region:focus-visible path { fill: #191970; stroke: #F32837; stroke-width: 3; }
.fl-cr-etiquette { font: 700 22px var(--police-display); letter-spacing: -.01em; fill: #191970; paint-order: stroke; stroke: rgba(255, 255, 255, .92); stroke-width: 5px; stroke-linejoin: round; pointer-events: none; transition: fill .25s var(--ease); }
.fl-cr-etiquette-petite { font-size: 18px; }
.fl-cr-etiquette.est-survol { fill: #fff; stroke: #001CA8; }
.fl-cr-cote { display: grid; gap: 1rem; align-content: center; justify-items: start; }
.fl-cr-aide { margin: 0; font: 600 clamp(1.1rem, 1.6vw, 1.35rem) / 1.45 var(--police-display); color: #191970; }
.fl-cr-cote .fl-instru-lib { margin: .6rem 0 0; }
.fl-cr-om { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .6rem; }
.fl-cr-om a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 1.1rem; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1.5px rgba(0, 28, 168, .35); color: #001CA8; font: 700 .95rem var(--police-display); text-decoration: none; transition: background .2s, color .2s; }
.fl-cr-om a:hover, .fl-cr-om a.est-survol, .fl-cr-om a:focus-visible { background: #001CA8; color: #fff; }
.fl-cr-nb { margin: .6rem 0 0; color: var(--encre-2); line-height: 1.5; }
.fl-cr-nb b { font: 700 1.7rem var(--police-display); color: #001CA8; margin-right: .15rem; }
.fl-cr-titre { margin: clamp(2.6rem, 5vw, 4rem) 0 1.2rem; font: 700 clamp(1.4rem, 2.4vw, 1.9rem) / 1.15 var(--police-display); color: var(--encre); scroll-margin-top: 7rem; }
.fl-cr-fiches { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.v6-section.fl-cr-page { padding-top: clamp(1.4rem, 3vw, 2.6rem); }
.fl-cr-fiche { display: flex; flex-direction: column; gap: .55rem; padding: 1.25rem 1.4rem 1.15rem; border-radius: 1.3rem; background: #fff; box-shadow: inset 0 0 0 1px var(--filet); transition: box-shadow .25s var(--ease), transform .25s var(--ease); }
.fl-cr-fiche::before { content: ""; width: 2.6rem; height: 4px; border-radius: 2px; background: #001CA8; }
.fl-cr-fiche:hover, .fl-cr-fiche.est-survol { box-shadow: inset 0 0 0 1.5px #001CA8, 0 14px 30px rgba(25, 25, 112, .10); transform: translateY(-2px); }
.fl-cr-fiche .fl-instru-lib { margin: 0; }
.fl-cr-fiche h4 { margin: 0; font: 700 1.3rem / 1.2 var(--police-display); letter-spacing: -.015em; color: var(--encre); }
.fl-cr-fiche dl { margin: .2rem 0 .3rem; display: grid; gap: .4rem; }
.fl-cr-fiche dl div { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); gap: .5rem; align-items: baseline; }
.fl-cr-fiche dt { font: 700 .68rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: #001CA8; }
.fl-cr-fiche dd { margin: 0; overflow-wrap: anywhere; color: var(--encre); }
.fl-cr-fiche dd a { color: var(--encre); text-underline-offset: 3px; text-decoration-color: rgba(0, 28, 168, .35); }
.fl-cr-fiche dd a:hover { color: #001CA8; }
.fl-cr-lien { margin-top: auto; display: flex; align-items: center; gap: .45rem; padding-top: .7rem; border-top: 1px solid var(--filet); font: 700 .95rem var(--police-display); color: #001CA8 !important; text-decoration: none; }
.fl-cr-lien span { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: rgba(0, 28, 168, .3); }
.fl-cr-lien:hover span { text-decoration-color: currentColor; }
@media (max-width: 600px) {
  .fl-cr-etiquette { font-size: 30px; stroke-width: 6px; }
  .fl-cr-etiquette-petite { font-size: 24px; }
}
.fl-poles { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 700px) { .fl-poles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1180px) { .fl-poles { grid-template-columns: repeat(5, 1fr); } }
.fl-pole { padding: 1.4rem; border-radius: 1.3rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .13); }
.fl-pole-num { font: .8rem var(--police-instru); color: var(--clair); }
.fl-pole h3 { margin: .5rem 0 .8rem; font: 620 1.15rem / 1.2 var(--police-display); color: #fff; }
.fl-pole ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.fl-pole li { font-size: .92rem; color: rgba(245, 245, 245, .70); }
.fl-partenaires { margin-top: 2rem; }
.fl-partenaires ul { list-style: none; margin: 1rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.fl-partenaires li { display: grid; place-items: center; width: 9.5rem; height: 6rem; padding: .9rem; border-radius: 1rem; background: #fff; box-shadow: inset 0 0 0 1px var(--filet); }
.fl-partenaires img { max-width: 7.6rem; max-height: 4.2rem; width: auto; height: auto; object-fit: contain; }
.fl-contact { display: grid; grid-template-columns: 1fr; gap: 2rem 4rem; align-items: end; }
@media (min-width: 960px) { .fl-contact { grid-template-columns: 1fr 1fr; } }
.fl-contact-fiche { margin: 0; display: grid; }
.fl-contact-fiche div { display: grid; grid-template-columns: 8rem 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid var(--filet); }
.fl-contact-fiche dt { font: .7rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); padding-top: .25rem; }
.fl-contact-fiche dd { margin: 0; font-weight: 600; }
.fl-contact-fiche a { color: var(--accent-vif); }
@media (max-width: 480px) { .fl-contact-fiche div { grid-template-columns: 1fr; gap: .2rem; } }

/* ═══ LICENCE ═══ */
.fl-assistant { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: start; }
@media (min-width: 1060px) { .fl-assistant { grid-template-columns: 1.1fr .9fr; } }
.fl-assistant-form { display: grid; gap: 1rem; }
.fl-assistant-bloc { display: grid; gap: 1rem; margin: 0; padding: clamp(1.3rem, 2.6vw, 2rem); border: 0; border-radius: 1.5rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); min-width: 0; }
.fl-assistant-bloc legend { float: left; width: 100%; display: flex; align-items: baseline; gap: .8rem; padding: 0; margin-bottom: .2rem; font: 620 1.3rem var(--police-display); letter-spacing: -.02em; }
.fl-assistant-bloc legend + * { clear: both; }
.fl-assistant-bloc legend span { font: .8rem var(--police-instru); color: var(--accent-vif); }
.fl-assistant-medical { margin: 0; padding: .8rem 1rem; border-radius: .9rem; background: var(--papier-2); font-size: .92rem; color: var(--encre-2); }
.fl-assistant-inclus { margin: 0; font-size: .95rem; color: var(--encre-2); }
.fl-garantie { display: grid; grid-template-columns: auto 1fr; gap: .9rem; padding: .9rem 0; border-top: 1px solid var(--filet); cursor: pointer; }
.v6 .fl-garantie input { width: 1.2rem; height: 1.2rem; min-height: 0; margin: .25rem 0 0; padding: 0; box-shadow: none; accent-color: var(--accent-vif); }
.fl-garantie b { display: block; font-weight: 600; }
.fl-garantie small { display: block; margin-top: .2rem; font-size: .88rem; line-height: 1.5; color: var(--encre-2); }
.fl-assistant-note { color: var(--encre-3); margin: 0; }
.fl-assistant-collant { display: grid; gap: 1.6rem; padding: clamp(1rem, 3vw, 2rem) 0; }
@media (min-width: 1060px) { .fl-assistant-collant { position: sticky; top: 6.5rem; } }
.fl-recap { padding: 1.3rem 1.5rem; border-radius: 1.3rem; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-recap p { margin: 0; display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; }
.fl-recap p + p { border-top: 1px solid rgba(255, 255, 255, .12); }
.fl-recap b { font: 400 1.05rem var(--police-instru); color: var(--clair); text-align: right; }
.fl-recap .fl-recap-note { display: block; font-size: .85rem; color: rgba(245, 245, 245, .58); }
.fl-garanties { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 960px) { .fl-garanties { grid-template-columns: repeat(3, 1fr); } }
.fl-garanties article { display: flex; flex-direction: column; gap: .7rem; align-items: flex-start; padding: clamp(1.4rem, 2.6vw, 2rem); border-radius: 1.4rem; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .13); }
.fl-garanties article > p { margin: 0; color: rgba(245, 245, 245, .70); }
.fl-garanties .fl-puces { margin: 0; }
.fl-avantages { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-top: 3rem; }
@media (min-width: 900px) { .fl-avantages { grid-template-columns: 1fr 1fr; } }

/* ═══ ESPACE LICENCIÉ ═══ */
.fl-espace-page { padding-top: clamp(3rem, 6vw, 5rem); }
.fl-espace-bandeau { display: flex; align-items: center; gap: 1rem; margin-bottom: 2.4rem; padding: .9rem 1.3rem; border-radius: 1rem; background: rgba(0, 28, 168, .08); color: #120D16; }
.fl-espace-bandeau .fl-maquette { color: #120D16; }
.fl-espace-bandeau p { margin: 0; font-size: .95rem; }
.fl-espace-tete { display: flex; align-items: center; gap: 1.4rem; margin-bottom: 2.2rem; }
.fl-avatar { display: grid; place-items: center; flex: none; width: 5rem; height: 5rem; border-radius: 50%; background: #001CA8; color: #fff; font: 620 1.7rem var(--police-display); box-shadow: 0 0 0 6px rgba(0, 28, 168, .15); }
.fl-espace-tete h2 { margin: .3rem 0 .2rem; }
.fl-espace-tete .v6-corps { margin: 0; }
.fl-espace-grille { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 1000px) {
  .fl-espace-grille { grid-template-columns: repeat(12, 1fr); }
  .fl-bloc-carte { grid-column: span 5; }
  .fl-bloc-stats { grid-column: span 7; }
  .fl-bloc-afaire, .fl-bloc-aeronefs, .fl-bloc-documents { grid-column: span 4; }
  .fl-bloc-carnet { grid-column: span 8; }
  .fl-bloc-agenda { grid-column: span 4; }
}
.fl-bloc { display: flex; flex-direction: column; gap: 1rem; min-width: 0; padding: clamp(1.2rem, 2.4vw, 1.8rem); border-radius: 1.5rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-bloc-carte { justify-content: center; background: linear-gradient(160deg, rgba(0, 28, 168, .07), #F5F5F5); }
.fl-bloc-carte .fl-licence-recto { --rx: 0deg; --ry: 0deg; }
.fl-bloc-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem; }
.fl-bloc-note { margin: auto 0 0; font-size: .85rem; color: var(--encre-3); }
.fl-bloc-note a { color: var(--accent-vif); }
.fl-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; height: 100%; align-content: center; }
.fl-stats p { margin: 0; display: grid; gap: .3rem; padding: 1rem; border-radius: 1rem; background: var(--papier); }
.fl-stats b { font: 400 clamp(1.8rem, 1.2rem + 1.8vw, 3rem) / 1 var(--police-instru); color: var(--accent-vif); }
.fl-stats span { font-size: .88rem; color: var(--encre-2); line-height: 1.35; }
@media (max-width: 560px) { .fl-stats { grid-template-columns: 1fr; } }
.fl-afaire, .fl-aeronefs, .fl-documents { list-style: none; margin: 0; padding: 0; display: grid; }
.fl-afaire li, .fl-aeronefs li, .fl-documents li { display: grid; gap: .1rem; padding: .8rem 0 .8rem 1rem; border-top: 1px solid var(--filet); position: relative; }
.fl-afaire li::before, .fl-aeronefs li::before { content: ""; position: absolute; left: 0; top: 1.15rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--accent-vif); }
.fl-afaire-alerte::before, .fl-aeronefs .est-alerte::before { background: var(--rouge) !important; }
.fl-afaire-ok::before, .fl-aeronefs .est-ok::before { background: #001CA8 !important; }
.fl-afaire span, .fl-aeronefs span { font-size: .9rem; color: var(--encre-2); }
.fl-aeronefs b { font-family: var(--police-instru); font-weight: 700; }
.fl-aeronefs small { font: .7rem var(--police-instru); letter-spacing: .06em; text-transform: uppercase; color: var(--encre-3); }
.fl-documents li { grid-template-columns: auto 1fr; padding-left: 0; column-gap: .8rem; }
.fl-documents li .fl-icone { grid-row: span 2; color: var(--accent-vif); }
.fl-documents small { font-size: .82rem; color: var(--encre-3); }
.fl-table-defile { overflow-x: auto; }
.fl-carnet { width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 38rem; }
.fl-carnet th { text-align: left; padding: .5rem .6rem .5rem 0; font: .64rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); font-weight: 400; }
.fl-carnet td { padding: .7rem .6rem .7rem 0; border-top: 1px solid var(--filet); vertical-align: top; }
.fl-carnet td:nth-child(1), .fl-carnet td:nth-child(2), .fl-carnet td:nth-child(5) { font-family: var(--police-instru); white-space: nowrap; }
.fl-carnet tr.est-nouveau td { background: rgba(0, 28, 168, .18); }
.fl-carnet-ajout { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; align-items: end; padding-top: 1rem; border-top: 1px dashed var(--filet-fort); }
@media (min-width: 1200px) { .fl-carnet-ajout { grid-template-columns: 1fr .8fr 1.2fr 1.2fr .7fr auto; } }
.fl-carnet-ajout .v6-champ > span { font-size: .66rem; }
.fl-carnet-ajout input, .fl-carnet-ajout select { min-height: 2.8rem; padding: .6rem .7rem; font-size: .92rem; }
.fl-carnet-ajout .v6-bouton { min-height: 2.8rem; }
.fl-bloc-agenda .fl-agenda-garder { display: none; }
.fl-bloc-agenda .fl-agenda-ligne { grid-template-columns: auto 1fr; }

@media (prefers-reduced-motion: reduce) {
  .js .fl-entree .fl-horizon-assiette, .js .fl-entree .fl-horizon-roulis { animation: none; }
  .js .fl-entree .fl-nuees { display: none; }
  .js .fl-texte.est-active .fl-titre { animation: none; }
  .fl-cadran-aiguille { rotate: var(--aiguille); transition: none; }
  .fl-alerte.est-encours .fl-alerte-voyant, .fl-constellation i { animation: none; }
  .fl-couche-ciel img, .fl-couche-brume { translate: none; }
}

/* Retouches après revue des captures */
.fl-tete .v6-marque > span, .fl-tete .v6-marque b { font-style: normal; }
.fl-tete .v6-marque > span > span { font-style: italic; }
.fl-trainee { height: clamp(3rem, 6vw, 5.5rem); }
.fl-manifeste-bas { margin-top: .6rem; }
@media (max-width: 760px) { .fl-sur-texte { display: none; } .fl-finale .fl-sur-texte { display: inline; } }
.fl-pied .v6-pied-grille { position: relative; }
.v6-nav .v6-bouton-plein[aria-current="page"] { color: #fff; }
.fl-partenaires li { overflow: hidden; }
.fl-panneau .v6-zone { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 760px) { .fl-panneau .v6-zone { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .fl-panneau .v6-zone { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.fl-cadran { min-width: 0; }
@media (max-width: 520px) { .fl-cadran { gap: .6rem; padding-inline: .3rem; } .fl-cadran svg { width: 3.6rem; } .fl-cadran b { font-size: 1.25rem; } .fl-cadran span { font-size: .8rem; } }

/* Récits de destinations */
.fl-recits { display: grid; grid-template-columns: 1fr; gap: 2rem 1.4rem; }
@media (min-width: 640px) { .fl-recits { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .fl-recits { grid-template-columns: repeat(4, 1fr); } }
.fl-recit { display: flex; flex-direction: column; gap: .5rem; align-items: flex-start; }
.fl-recit .v6-photo { width: 100%; aspect-ratio: 4 / 5; border-radius: 1.2rem; margin-bottom: .5rem; }
.fl-recit h3 { margin-top: .2rem; }
.fl-recit p:last-child { margin: 0; color: var(--encre-3); }
/* Réglementation des terrains */
.fl-regles { display: grid; grid-template-columns: 1fr; gap: 2rem 3.5rem; align-items: start; }
@media (min-width: 1000px) { .fl-regles { grid-template-columns: .9fr 1.1fr; } .fl-hydro { grid-column: 1 / -1; } }
.fl-regles-texte { display: grid; gap: 1rem; }
.fl-regles-texte p { margin: 0; }
.fl-regles-texte b { color: var(--encre); font-weight: 600; }
.fl-hydro { display: grid; grid-template-columns: 1fr; gap: 1rem 2rem; align-items: center; padding: clamp(1.2rem, 2.6vw, 2rem); border-radius: 1.6rem; background: #191970; color: rgba(245, 245, 245, .88); }
@media (min-width: 760px) { .fl-hydro { grid-template-columns: 22rem 1fr; } .fl-hydro .v6-photo { grid-row: span 2; } }
.fl-hydro .v6-photo { aspect-ratio: 16 / 10; border-radius: 1rem; }
.fl-hydro .fl-instru-lib { color: rgba(245, 245, 245, .58); align-self: end; }
.fl-hydro p:last-child { margin: 0; align-self: start; }
/* Tableau de bord : pas de trou */
.fl-espace-grille { grid-auto-flow: row dense; }
/* La couche, plus présente */
.fl-couche { height: clamp(22rem, 54vh, 32rem); background: linear-gradient(180deg, var(--papier) 0%, rgba(0, 28, 168, .18) 50%, var(--papier) 100%); }
.fl-couche-brume { opacity: .6; }
/* Carte de licence : lisible en petit format */
.fl-gros-chiffre b { white-space: nowrap; }
.fl-licence-haut p { min-width: 0; padding-right: 5.2rem; }
@media (max-width: 560px) {
  .fl-licence-recto { aspect-ratio: auto; min-height: 13.5rem; gap: .5rem; }
  .fl-licence-puce { display: none; }
  .fl-licence-demo { right: .9rem; top: .9rem; }
  .fl-licence-haut p { padding-right: 6.4rem; }
  .fl-licence-nom { margin-top: .6rem; }
}
/* Commande 2 : manifestes ramenés à une taille de manifeste (≈ 3 lignes à 1440 px, 4 rem au plus) */
.v6 .fl-manifeste-titre { max-width: 17em; font-size: clamp(1.7rem, 1rem + 2.9vw, 3.6rem); line-height: 1.04; letter-spacing: -.035em; }
.fl-manifeste-titre .v6-lapsus { display: inline; margin-top: 0; font-size: 1em; }
.v6-titre-xl { font-size: clamp(2.2rem, 1.1rem + 3.2vw, 4.4rem); }
.v6 .fl-finale-titre { font-size: clamp(2.4rem, .9rem + 4vw, 5rem); }

/* ═══════════════ SITE COMPLET ═══════════════ */
.v6-cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* ─── Méga-menu ─── */
.fl-nav { gap: 1.1rem; }
.fl-mega-bouton { display: inline-flex; align-items: center; gap: .25rem; border: 0; background: none; padding: .5rem 0; cursor: pointer; font: 600 .94rem var(--police-ui); color: var(--encre-2); transition: color .3s; }
.fl-mega-bouton:hover, .fl-mega-bouton[aria-expanded="true"], .fl-mega-bouton[data-actif] { color: var(--encre); }
.fl-nav-direct { text-decoration: none; color: inherit; padding-right: 1.15rem; }   /* rubrique sans sous-menu (Sport) : même apparence que les autres */
.fl-mega-bouton[data-actif] .v6-souligne-survol { background-size: 100% 1px; }
.fl-mega-bouton[aria-expanded="true"] .v6-souligne-survol { background-size: 100% 2px; }
.fl-chevron { width: 1rem; height: 1rem; transition: transform .35s var(--ease); }
.fl-mega-bouton[aria-expanded="true"] .fl-chevron { transform: rotate(180deg); }
/* « Je signale » (remarques n° 154, 156, 157 et retour de Souleymane Camara du 12/10/2026) : une entrée du menu comme les autres
   (même police, même taille, même soulignement au survol), simplement écrite en rouge. */
.v6-nav a.fl-signale:not(.v6-bouton), .fl-signale, .fl-signale[data-actif] { color: #F32837; }   /* plus précis que « .v6-nav a:not(.v6-bouton) » de base.css */
.v6-nav a.fl-signale:not(.v6-bouton):hover, .v6-nav a.fl-signale:not(.v6-bouton):focus-visible { color: #950714; }
.fl-menu-mobile .fl-signale-mobile { color: #F32837; font-weight: 700; }
.fl-loupe { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-loupe .fl-icone { width: 1.2rem; height: 1.2rem; }
.fl-loupe:hover { box-shadow: inset 0 0 0 1.5px var(--accent-vif); color: var(--accent-vif); }
.fl-loupe-mobile { margin-left: auto; }
.fl-loupe-mobile + .v6-burger { margin-left: .6rem; }
@media (min-width: 1060px) { .fl-loupe-mobile { display: none; } }
@media (min-width: 1060px) and (max-width: 1379px) { .fl-nav { gap: .75rem; } .fl-mega-bouton { font-size: .88rem; } .fl-chevron { width: .85rem; } .fl-loupe { width: 2.3rem; height: 2.3rem; } }
.fl-mega { position: absolute; left: 0; right: 0; top: 100%; z-index: 70; background: var(--papier); border-bottom: 1px solid var(--filet); box-shadow: 0 40px 70px -40px rgba(18, 13, 22, .55); max-height: calc(100vh - 5.5rem); overflow: auto; }
.fl-mega-grille { display: grid; grid-template-columns: 18rem minmax(0,1fr); gap: 4.5rem; padding-top: 2rem; padding-bottom: 2.4rem; }
.fl-mega-entree { display: grid; gap: .45rem; align-content: start; padding: 1rem; border-radius: 1.2rem; background: #191970; color: rgba(245, 245, 245, .88); text-decoration: none; }
.fl-mega-visuel { display: block; aspect-ratio: 16 / 9; border-radius: .8rem; overflow: hidden; margin-bottom: .4rem; }
.fl-mega-visuel img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.fl-mega-entree:hover img { transform: scale(1.05); }
.fl-mega-entree .fl-instru-lib { color: var(--clair); }
.fl-mega-entree b { font: 620 1.5rem var(--police-display); color: #fff; letter-spacing: -.02em; }
.fl-mega-entree small { font-size: .9rem; line-height: 1.45; color: rgba(245, 245, 245, .70); }
.fl-mega-groupes { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 15rem)); gap: 1.6rem 2.8rem; align-content: start; justify-content: start; padding-left: .5rem; }
.fl-mega-groupe .fl-instru-lib { padding-bottom: .6rem; margin-bottom: .5rem; border-bottom: 1px solid var(--filet); }
.fl-mega-groupe ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .1rem; }
.fl-mega-groupe a { display: block; padding: .35rem 0; font-size: .96rem; font-weight: 500; color: var(--encre); text-decoration: none; }
.fl-mega-groupe a:hover { color: var(--accent-vif); }

/* ─── Menu mobile complet ─── */
.fl-menu-mobile.ouvert { max-height: calc(100vh - 5rem); max-height: calc(100dvh - 5rem); overflow: auto; }   /* dvh : hauteur visible, barre du navigateur comprise (11/10/2026) */
.fl-menu-recherche { display: flex; gap: .5rem; margin-bottom: .6rem; }
.v6 .fl-menu-recherche input { min-height: 2.9rem; }
.fl-menu-recherche button { flex: none; display: grid; place-items: center; width: 2.9rem; border: 0; border-radius: .9rem; background: #191970; color: #fff; cursor: pointer; }
.fl-menu-recherche .fl-icone { width: 1.2rem; height: 1.2rem; }
.fl-menu-rub { border-top: 1px solid var(--filet); }
.fl-menu-rub summary { list-style: none; display: flex; align-items: center; justify-content: space-between; padding: .8rem 0; cursor: pointer; font: 620 1.1rem var(--police-display); }
.fl-menu-rub summary::-webkit-details-marker { display: none; }
.fl-menu-rub .v6-signe { position: relative; width: 2rem; height: 2rem; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-menu-rub .v6-signe::before, .fl-menu-rub .v6-signe::after { content: ""; position: absolute; left: 50%; top: 50%; width: .7rem; height: 1.5px; margin: -.75px 0 0 -.35rem; background: currentColor; }
.fl-menu-rub .v6-signe::after { transform: rotate(90deg); transition: transform .3s; }
.fl-menu-rub[open] .v6-signe::after { transform: none; }
.fl-menu-rub a { display: block; padding: .5rem 0 .5rem .9rem; font-family: var(--police-ui) !important; font-weight: 500 !important; font-size: .98rem; }
.fl-menu-rub .fl-menu-entree { font-weight: 700 !important; color: var(--accent-vif); padding-left: 0; }
.fl-menu-rub .fl-instru-lib { margin: .6rem 0 .1rem .9rem; }

/* ─── Fil d'Ariane ─── */
/* Pastille pleine, lisible sur n'importe quelle photo (remarque du 08/10/2026 : « on ne lit pas Accueil › Pratiquer ») :
   noir de la charte et texte blanc avec le voile sombre ; blanc et texte noir, liens Klein, avec le voile clair
   (variables --fil-* posées plus bas, html[data-bandeau="clair"]). Contraste mesuré : plus de 7:1 dans les deux cas. */
.fl-fil ol { list-style: none; margin: 0 0 1.4rem; display: flex; flex-wrap: wrap; align-items: center; gap: .2rem .5rem; font: 500 .76rem/1.35 var(--police-instru); letter-spacing: .05em;
  color: var(--fil-texte, #F5F5F5); background: var(--fil-fond, rgba(18, 13, 22, .9)); box-shadow: var(--fil-ombre, 0 1px 3px rgba(18, 13, 22, .25));
  border-radius: 999px; padding: .45rem .95rem; width: fit-content; max-width: 100%; }
.fl-fil li { display: inline-flex; align-items: center; gap: .5rem; min-width: 0; }
.fl-fil li + li::before { content: "›"; color: var(--fil-sep, #F5F5F5); font-weight: 700; }
.fl-fil a { color: var(--fil-lien, #fff); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; text-decoration-color: var(--fil-souligne, rgba(255, 255, 255, .55)); }
.fl-fil a:hover, .fl-fil a:focus-visible { text-decoration-color: currentColor; text-decoration-thickness: 2px; }
.fl-fil [aria-current] { color: var(--fil-courant, #fff); font-weight: 700; max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ─── Héros des pages de contenu ─── */
.fl-scene-page { min-height: clamp(27rem, 58svh, 36rem); }
.v6 .fl-scene-page .fl-titre { max-width: 22ch; font-size: clamp(2.2rem, 1rem + 3.4vw, 4.6rem); line-height: .98; }
@media (max-width: 760px) { .fl-scene-page { min-height: 30rem; } }

/* ─── Rubriques : une déclinaison par univers ─── */
.fl-rub-pratiquer { --rub: #001CA8; --rub-clair: #F5F5F5; }
.fl-rub-encadrer { --rub: #191970; --rub-clair: #F5F5F5; }
.fl-rub-sport { --rub: #F32837; --rub-clair: var(--clair); }
.fl-rub-securite { --rub: #191970; --rub-clair: var(--clair); }
.fl-rub-actualites { --rub: #001CA8; --rub-clair: #F5F5F5; }
.fl-rub-federation { --rub: #F32837; --rub-clair: var(--clair); }

/* ─── Page de contenu : sommaire + article ─── */
.fl-page { padding-top: clamp(3rem, 6vw, 5.5rem); }
.fl-page-grille { display: grid; grid-template-columns: 1fr; gap: 2.4rem 4rem; align-items: start; }
@media (min-width: 1000px) { .fl-page-grille { grid-template-columns: 18rem minmax(0, 1fr); } }
.fl-sommaire { display: grid; gap: 1.2rem; font-size: .93rem; }
@media (min-width: 1000px) { .fl-sommaire { position: sticky; top: 6.2rem; max-height: calc(100vh - 7rem); overflow: auto; padding-right: .4rem; } }
.fl-sommaire-entree { display: grid; gap: .2rem; padding: 1rem 1.1rem; border-radius: 1rem; background: var(--rub, #001CA8); color: #fff; text-decoration: none; }
.fl-sommaire-entree .fl-instru-lib { color: rgba(255, 255, 255, .86); }
.fl-rub-securite .fl-sommaire-entree .fl-instru-lib, .fl-rub-encadrer .fl-sommaire-entree .fl-instru-lib { color: var(--clair); }
.fl-sommaire-entree b { font: 620 1.25rem var(--police-display); letter-spacing: -.02em; }
.fl-sommaire-bloc .fl-instru-lib { margin-bottom: .45rem; }
.fl-sommaire-bloc ul, .fl-sommaire-bloc ol { list-style: none; margin: 0; padding: 0; border-left: 1px solid var(--filet-fort); }
.fl-sommaire-bloc a { display: block; padding: .32rem 0 .32rem .9rem; margin-left: -1px; color: var(--encre-2); text-decoration: none; line-height: 1.35; border-left: 2px solid transparent; }
.fl-sommaire-bloc a:hover { color: var(--encre); border-left-color: var(--filet-fort); }
.fl-sommaire-bloc a[aria-current="page"] { color: var(--encre); font-weight: 700; border-left-color: var(--rub, #001CA8); }
.fl-rub-sport .fl-sommaire-bloc a[aria-current="page"], .fl-rub-federation .fl-sommaire-bloc a[aria-current="page"] { border-left-color: var(--rouge); }
.fl-article { min-width: 0; max-width: 50rem; }
.fl-lead { margin: 0 0 1.8rem; font-size: clamp(1.18rem, 1.05rem + .45vw, 1.42rem); line-height: 1.55; color: var(--encre); font-weight: 500; }
.fl-rub-actualites .fl-lead::first-letter { font-family: var(--police-lapsus); font-style: italic; font-size: 1.35em; color: var(--accent-vif); }
.fl-prose { color: var(--encre-2); line-height: 1.72; }
.fl-prose p { overflow-wrap: anywhere; }
.fl-prose > * { margin-bottom: 0; }
.fl-prose > * + * { margin-top: 1rem; }
.fl-prose > p:first-child { margin-top: 0; }
.fl-prose h2 { margin-top: 2.6rem !important; padding-top: 1.1rem; border-top: 1px solid var(--filet); font: 620 clamp(1.45rem, 1.15rem + .9vw, 2rem) / 1.12 var(--police-display); letter-spacing: -.025em; color: var(--encre); position: relative; scroll-margin-top: 6.5rem; }
.fl-prose h2::before { content: ""; position: absolute; left: 0; top: -1px; width: 3rem; height: 3px; background: var(--rub, #001CA8); }
.fl-rub-securite .fl-prose h2::before { background: var(--clair); }
.fl-rub-federation .fl-prose h2::before { width: 4.5rem; background: linear-gradient(90deg, #001CA8 0 33%, rgba(245, 245, 245, .88) 33% 66%, #F32837 66%); }
.fl-prose h3 { margin-top: 1.8rem !important; font: 620 1.2rem / 1.25 var(--police-display); color: var(--encre); scroll-margin-top: 6.5rem; }
.fl-prose a { color: var(--accent-vif); text-underline-offset: .18em; overflow-wrap: anywhere; }
.fl-prose .fl-puces { margin-top: 1rem; }
.fl-prose .fl-puces li { color: var(--encre-2); }
.fl-prose .fl-puces li::before { background: var(--rub, #001CA8); }
.fl-rub-securite .fl-prose .fl-puces li::before { background: #F32837; }
.fl-tableau { width: 100%; border-collapse: collapse; font-size: .92rem; min-width: 32rem; }
.fl-tableau th { text-align: left; padding: .6rem .7rem; font: .66rem var(--police-instru); letter-spacing: .08em; text-transform: uppercase; color: #fff; background: #191970; }
.fl-tableau td { padding: .6rem .7rem; border-bottom: 1px solid var(--filet); vertical-align: top; }
.fl-tableau tr:nth-child(even) td { background: rgba(0, 28, 168, .04); }
.fl-galerie { display: grid; gap: .8rem; margin: 2rem 0 !important; }
.fl-galerie-2 { grid-template-columns: 1fr 1fr; }
.fl-galerie-3 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 760px) { .fl-galerie-3 { grid-template-columns: repeat(3, 1fr); } }
.fl-galerie figure { margin: 0; border-radius: 1rem; aspect-ratio: 4 / 3; background: var(--papier-2); }
.fl-galerie img { object-fit: contain; background: #fff; }
.fl-une { margin: 0 0 1.8rem; border-radius: 1.2rem; aspect-ratio: 16 / 9; }
.fl-une img { width: 100%; height: 100%; object-fit: cover; }
.fl-une-affiche { aspect-ratio: auto; background: none; }
.fl-une-affiche img { width: auto; max-width: 100%; max-height: 32rem; border-radius: 1rem; object-fit: contain; }
.fl-meta-article { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.2rem; margin: 0 0 1.2rem; font: .74rem var(--police-instru); color: var(--encre-3); }
.fl-documents-page { margin-top: 2.4rem; padding: 1.4rem 1.5rem; border-radius: 1.2rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-documents-page .fl-instru-lib { margin-bottom: .6rem; }
.fl-documents-page ul { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; }
.fl-documents-page li { display: flex; gap: .8rem; padding: .7rem 0; border-top: 1px solid var(--filet); }
.fl-documents-page li .fl-icone { width: 1.3rem; height: 1.3rem; color: var(--accent-vif); margin-top: .1rem; }
.fl-documents-page li span { display: grid; gap: .1rem; }
.fl-documents-page li b { font-weight: 600; color: var(--encre); }
.fl-documents-page li a { font-size: .88rem; color: var(--accent-vif); }
.fl-origine { margin: 1.6rem 0 0; font-size: .86rem; color: var(--encre-3); overflow-wrap: anywhere; }
.fl-origine a { color: var(--accent-vif); }

/* ─── À lire aussi, question ─── */
.fl-lire-aussi .fl-titre-section { margin: 1rem 0 2rem; }
.fl-lire-grille { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 700px) { .fl-lire-grille { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .fl-lire-grille { grid-template-columns: repeat(4, 1fr); } }
.fl-lire { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.3rem 1.3rem 4.4rem; border-radius: 1.3rem; background: var(--voile); color: var(--encre); text-decoration: none; box-shadow: inset 0 0 0 1px var(--filet); transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.fl-lire:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px var(--rub, #001CA8), 0 40px 60px -48px rgba(18, 13, 22, .5); }
.fl-lire b { font: 620 1.12rem / 1.25 var(--police-display); letter-spacing: -.015em; }
.fl-lire small { font-size: .9rem; color: var(--encre-2); line-height: 1.45; }
.fl-lire .v6-rond { position: absolute; left: 1.3rem; bottom: 1.1rem; }
.fl-question { background: #191970; color: rgba(245, 245, 245, .88); }
.fl-question .v6-zone { display: grid; grid-template-columns: 1fr; gap: 1.4rem 3rem; align-items: center; padding-top: clamp(2.6rem, 5vw, 4rem); padding-bottom: clamp(2.6rem, 5vw, 4rem); }
@media (min-width: 900px) { .fl-question .v6-zone { grid-template-columns: 1fr auto; } }
.fl-question .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-question h2 { margin: .5rem 0 .4rem; color: #fff; }
.fl-question h2 .v6-lapsus { color: var(--clair); }
.fl-question p { margin: 0; }
.fl-question-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.fl-question .v6-bouton-ligne { color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .42); --survol: #fff; }
.fl-question .v6-bouton-ligne:hover { color: #191970; }

/* ─── Événement de l'agenda ─── */
.fl-evenement-grille { display: grid; grid-template-columns: 1fr; gap: 2rem 3.5rem; align-items: start; }
@media (min-width: 1000px) { .fl-evenement-grille { grid-template-columns: 22rem minmax(0, 1fr); } }
.fl-billet { position: relative; padding: 1.4rem; border-radius: 1.3rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet), 0 40px 70px -56px rgba(18, 13, 22, .6); }
@media (min-width: 1000px) { .fl-billet { position: sticky; top: 6.2rem; } }
.fl-billet-haut { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-bottom: 1rem; border-bottom: 1px dashed var(--filet-fort); }
.fl-billet-jour { display: grid; place-items: center; min-width: 4.8rem; padding: .5rem; border-radius: .9rem; background: #191970; color: #fff; font-family: var(--police-instru); }
.fl-billet-jour b { font-size: 2rem; font-weight: 400; line-height: 1; }
.fl-billet-jour small { font-size: .62rem; letter-spacing: .1em; color: var(--clair); }
.fl-billet dl { margin: 1rem 0 0; display: grid; gap: .8rem; }
.fl-billet dt { font: .62rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.fl-billet dd { margin: .1rem 0 0; font-weight: 600; color: var(--encre); }
.fl-agenda-liens a { color: var(--encre); text-decoration: none; }
.fl-agenda-liens a:hover { color: var(--accent-vif); text-decoration: underline; }

/* ─── Comités ─── */
.fl-comite-page { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: start; }
@media (min-width: 1000px) { .fl-comite-page { grid-template-columns: 24rem 1fr; } }
.fl-comite-grand .fl-comite-president img, .fl-comite-grand .fl-comite-president .fl-elu-initiales { width: 6.4rem; height: 8rem; }
.fl-comite-carte svg { display: block; width: 100%; max-height: 30rem; height: auto; }
.fl-comite-carte .fl-regions path { fill: rgba(245, 245, 245, .80); stroke: var(--papier); stroke-width: 1; }
.fl-comite-carte .fl-regions path.est-active { fill: #001CA8; }
.fl-deps-liste { list-style: none; margin: 1.4rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .3rem 1.4rem; }
.fl-deps-liste li { display: flex; gap: .7rem; padding: .4rem 0; border-top: 1px solid var(--filet); font-size: .95rem; }
.fl-deps-liste span { font: .8rem var(--police-instru); color: var(--accent-vif); min-width: 1.8rem; padding-top: .1rem; }
.fl-comite-lien { color: var(--clair) !important; }
.fl-comites-liens { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .7rem; }
.fl-comites-liens a { display: grid; gap: .1rem; padding: .9rem 1.1rem; border-radius: 1rem; background: var(--voile); text-decoration: none; color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-comites-liens a:hover { box-shadow: inset 0 0 0 1.5px var(--accent-vif); }
.fl-comites-liens small { color: var(--encre-3); }

/* ─── Villes ─── */
.fl-ville-grille { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: start; }
@media (min-width: 1100px) { .fl-ville-grille { grid-template-columns: .9fr 1.1fr; } }
.fl-ville-grille .fl-titre-section { margin: 1rem 0 1.6rem; }
.fl-ville-terrains { list-style: none; margin: 0; padding: 0; }
.fl-ville-terrains li { display: grid; grid-template-columns: auto 1fr auto; gap: .15rem .8rem; align-items: center; padding: .7rem 0; border-top: 1px solid var(--filet); }
.fl-ville-terrains i { width: .7rem; height: .7rem; border-radius: 50%; background: var(--c); grid-row: span 2; }
.fl-ville-terrains b { font-size: .98rem; line-height: 1.3; }
.fl-ville-terrains small { grid-column: 2; font: .72rem var(--police-instru); color: var(--encre-3); }
.fl-ville-terrains em { grid-row: 1 / span 2; grid-column: 3; font: normal 700 .85rem var(--police-instru); color: var(--accent-vif); text-align: right; }
.fl-ville-carte .fl-carte-outils { display: none; }
.fl-ville-trois { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
@media (min-width: 1000px) { .fl-ville-trois { grid-template-columns: repeat(3, 1fr); } }
.fl-ville-trois article { display: flex; flex-direction: column; gap: .8rem; padding: clamp(1.3rem, 2.4vw, 2rem); border-radius: 1.4rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-ville-trois article > p:last-child { margin: auto 0 0; }
.fl-ville-etapes { margin: 0; padding: 0; list-style: none; counter-reset: e; display: grid; gap: .7rem; }
.fl-ville-etapes li { counter-increment: e; display: grid; gap: .1rem; padding-left: 2rem; position: relative; }
.fl-ville-etapes li::before { content: counter(e, decimal-leading-zero); position: absolute; left: 0; top: .1rem; font: .8rem var(--police-instru); color: var(--accent-vif); }
.fl-ville-etapes span { font-size: .92rem; color: var(--encre-2); }
.fl-tarifs-serres { margin-top: 0; }
.fl-ville-comite { position: relative; display: grid; gap: .15rem; margin-top: 1.4rem; padding: 1.3rem 5rem 1.3rem 1.5rem; border-radius: 1.3rem; background: #191970; color: rgba(245, 245, 245, .88); text-decoration: none; }
.fl-ville-comite .fl-instru-lib { color: var(--clair); }
.fl-ville-comite b { font: 620 1.4rem var(--police-display); color: #fff; }
.fl-ville-comite .v6-rond { position: absolute; right: 1.4rem; top: 50%; margin-top: -1.5rem; color: var(--clair); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.fl-villes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .8rem; }
.fl-villes a { position: relative; display: grid; gap: .2rem; padding: 1.1rem 4rem 1.1rem 1.2rem; border-radius: 1.1rem; background: var(--voile); text-decoration: none; color: var(--encre); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-villes a:hover { box-shadow: inset 0 0 0 1.5px var(--accent-vif); }
.fl-villes b { font: 620 1.15rem var(--police-display); }
.fl-villes small { color: var(--encre-3); }
.fl-villes .v6-rond { position: absolute; right: 1rem; top: 50%; margin-top: -1.5rem; }

/* ─── Toute la rubrique, bandes de détail, accueil ─── */
.fl-rubrique-plan { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.6rem 2rem; }
.fl-rubrique-plan .fl-instru-lib { padding-bottom: .5rem; margin-bottom: .4rem; border-bottom: 1px solid var(--filet-fort); }
.fl-rubrique-plan ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .15rem; }
.fl-rubrique-plan a { display: block; padding: .3rem 0; color: var(--encre); text-decoration: none; font-weight: 500; }
.fl-archives { margin-top: 2.4rem; border-top: 1px solid var(--filet-fort); }
.fl-archives summary { list-style: none; display: flex; align-items: center; gap: 1rem; padding: 1.2rem 0; cursor: pointer; font: 620 1.15rem var(--police-display); }
.fl-archives summary::-webkit-details-marker { display: none; }
.fl-archives summary b { font: 400 .9rem var(--police-instru); color: var(--accent-vif); }
.fl-archives .v6-signe { position: relative; margin-left: auto; width: 2.4rem; height: 2.4rem; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--filet-fort); }
.fl-archives .v6-signe::before, .fl-archives .v6-signe::after { content: ""; position: absolute; left: 50%; top: 50%; width: .8rem; height: 1.5px; margin: -.75px 0 0 -.4rem; background: currentColor; }
.fl-archives .v6-signe::after { transform: rotate(90deg); }
.fl-archives[open] .v6-signe::after { transform: none; }
.fl-archives ul { list-style: none; margin: 0; padding: 0 0 1rem; columns: 1; column-gap: 2.4rem; }
@media (min-width: 800px) { .fl-archives ul { columns: 2; } }
@media (min-width: 1200px) { .fl-archives ul { columns: 3; } }
.fl-archives li { break-inside: avoid; padding: .3rem 0; font-size: .93rem; }
.fl-archives a { color: var(--encre-2); }
.fl-bande-detail { background: #191970; color: rgba(245, 245, 245, .88); }
.fl-bande-detail .v6-zone { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 2rem; padding-top: 1.6rem; padding-bottom: 1.6rem; }
.fl-bande-detail .fl-instru-lib { color: rgba(245, 245, 245, .58); }
.fl-bande-liens { display: flex; flex-wrap: wrap; gap: .8rem 1.8rem; margin: 0; }
.fl-bande-detail .v6-lien { color: var(--clair); }
.fl-rubriques { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px) { .fl-rubriques { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .fl-rubriques { grid-template-columns: repeat(3, 1fr); } }
.fl-rubrique { display: grid; gap: .4rem; align-content: start; padding: .9rem .9rem 1.3rem; border-radius: 1.3rem; background: var(--voile); color: var(--encre); text-decoration: none; box-shadow: inset 0 0 0 1px var(--filet); transition: transform .5s var(--ease), box-shadow .5s; }
.fl-rubrique:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px var(--rub, #001CA8); }
.fl-rubrique-visuel { aspect-ratio: 16 / 8; border-radius: .9rem; margin-bottom: .5rem; }
.fl-rubrique-visuel img { width: 100%; height: 100%; object-fit: cover; }
.fl-rubrique .fl-instru-lib, .fl-rubrique b, .fl-rubrique small { padding: 0 .4rem; }
.fl-rubrique b { font: 620 1.4rem var(--police-display); letter-spacing: -.02em; }
.fl-rubrique small { font-size: .92rem; color: var(--encre-2); line-height: 1.45; }
.fl-actu-lien { color: inherit; text-decoration: none; }
.fl-actu-lien::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.fl-actu { position: relative; }
.fl-actu:hover h3 { color: var(--accent-vif); }
.fl-actu-lien:focus-visible { outline: none; }
.fl-actu:has(.fl-actu-lien:focus-visible) { outline: 2px solid var(--accent-vif); outline-offset: 6px; border-radius: 1rem; }

/* ─── Recherche, plan du site ─── */
.fl-recherche-page { max-width: 62rem; }
.fl-recherche-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem; margin-bottom: 1.2rem; }
.fl-recherche-form .fl-champ-instru { flex: 1 1 20rem; max-width: none; }
.fl-recherche-page .fl-alertes-filtres { margin-bottom: 1rem; }
.fl-resultats { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; }
.fl-resultats a { display: grid; gap: .2rem; padding: 1rem 0; border-top: 1px solid var(--filet); color: var(--encre); text-decoration: none; }
.fl-resultats a:hover b { color: var(--accent-vif); }
.fl-resultats b { font: 620 1.2rem / 1.25 var(--police-display); }
.fl-resultats small { font-size: .93rem; color: var(--encre-2); }
.fl-plan-site { display: grid; grid-template-columns: 1fr; gap: 2.4rem 2.8rem; }
@media (min-width: 800px) { .fl-plan-site { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .fl-plan-site { grid-template-columns: repeat(3, 1fr); } }
.fl-plan-rub h3 { margin: .3rem 0 .6rem; font: 620 1.5rem var(--police-display); }
.fl-plan-rub h3 a { color: var(--encre); text-decoration: none; }
.fl-plan-rub ul { list-style: none; margin: 0 0 .8rem; padding: 0; }
.fl-plan-rub li { padding: .18rem 0; font-size: .9rem; line-height: 1.35; }
.fl-plan-rub li a { color: var(--encre-2); }
.fl-plan-groupe { margin: 1rem 0 .3rem; font: .68rem var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-vif); }

/* Pied à quatre colonnes */
@media (min-width: 860px) { .fl-pied .fl-pied-quatre { grid-template-columns: 1.3fr 1fr 1fr 1fr; } }

/* Retouches après revue : panneau du méga-menu hors des règles de l'en-tête, sommaire mobile */
.v6-tete .fl-mega .fl-mega-grille, .v6-tete.reduite .fl-mega .fl-mega-grille { display: grid; height: auto; align-items: start; grid-template-columns: 18rem minmax(0,1fr); gap: 4.5rem; }
@media (max-width: 1199px) { .v6-tete .fl-mega .fl-mega-grille { grid-template-columns: 16rem minmax(0,1fr); gap: 5rem; } }
@media (max-width: 999px) { .fl-sommaire .fl-sommaire-groupe { display: none; } }
/* Sommaire latéral : il suit le texte au lieu de défiler dans une boîte (rien n'y est rogné) */
@media (min-width: 1000px) { .fl-sommaire { position: static; max-height: none; overflow: visible; padding-right: 0; } }

/* Import ffplum.fr : liste de rubriques en pastilles (28/09/2026) */
.fl-puces-liens { list-style: none; margin: .6rem 0 1.8rem; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem .9rem; }
.fl-puces-liens small { color: var(--encre-3); font-variant-numeric: tabular-nums; }
/* Menu du site fédéral : arbre des entrées (28/09/2026) */
.fl-menu-fed { margin: 0 0 2.4rem; }
.fl-menu-fed h2 { margin: 0 0 .8rem; }
.fl-menu-fed-arbre, .fl-menu-fed-arbre ul { list-style: none; margin: 0; padding: 0; }
.fl-menu-fed-arbre > li { padding: .55rem 0; border-bottom: 1px solid var(--filet); }
.fl-menu-fed-arbre ul { margin: .45rem 0 .1rem 1.2rem; display: grid; gap: .35rem; font-size: .95rem; }
.fl-menu-fed-titre { font-weight: 600; color: var(--encre-2); }
/* Accueil : édito à gauche, comme sur ffplum.fr (28/09/2026) */
.fl-actus-avec-edito { display: grid; gap: clamp(1.2rem, 3vw, 2rem); grid-template-columns: minmax(0, 15.5rem) minmax(0, 1fr) minmax(0, 22rem); align-items: start; }
@media (max-width: 1100px) { .fl-actus-avec-edito { grid-template-columns: 1fr; } }
.fl-edito { background: var(--voile); border: 1px solid var(--filet); border-radius: 1.1rem; padding: 1.1rem 1.1rem 1.3rem; }
.fl-edito .fl-instru-lib { margin: 0 0 .7rem; }
.fl-edito-corps img { width: 100%; height: auto; border-radius: .7rem; margin-bottom: .7rem; }
.fl-edito-corps { font-size: .92rem; line-height: 1.55; max-height: 34rem; overflow: auto; }
.fl-actus-toutes-lien { margin: 1.6rem 0 0; }
.fl-actus-toutes-lien { margin: 1.6rem 0 0; }
/* Formulaires (29/09/2026) */
.fl-form-grille { display: grid; gap: clamp(1.2rem, 3vw, 2.2rem); grid-template-columns: minmax(0, 18rem) minmax(0, 1fr); align-items: start; }
.fl-form-grille > .fl-form:only-child { grid-column: 1 / -1; max-width: 46rem; }
@media (max-width: 900px) { .fl-form-grille { grid-template-columns: 1fr; } }
.fl-form { display: grid; gap: 1rem; background: var(--voile); border: 1px solid var(--filet); border-radius: 1.2rem; padding: clamp(1rem, 3vw, 1.8rem); }
.fl-form-champ { display: grid; gap: .35rem; font-weight: 600; font-size: .95rem; }
.fl-form-champ small { font-weight: 400; color: var(--encre-3); font-size: .82rem; }
.fl-form input:not([type=checkbox]):not([type=radio]), .fl-form select, .fl-form textarea { font: inherit; font-weight: 400; border: 1px solid var(--filet-fort); border-radius: .7rem; padding: .7rem .8rem; background: var(--papier); color: var(--encre); width: 100%; }
.fl-form input:focus, .fl-form select:focus, .fl-form textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.fl-form-etape { border: 0; border-top: 1px solid var(--filet); padding: 1rem 0 0; margin: 0; display: grid; gap: .9rem; }
.fl-form-etape > legend { padding: 0 0 .4rem; }
.fl-form-choix { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .45rem .9rem; }
.fl-form-choix legend { font-weight: 600; width: 100%; margin-bottom: .35rem; }
.fl-form-choix label, .fl-form-accord { display: inline-flex; gap: .45rem; align-items: baseline; font-size: .93rem; }
.fl-form-rgpd { margin: 0; font-size: .82rem; color: var(--encre-3); }
.fl-form-veille { margin: 0; padding: .75rem .9rem; border-radius: .8rem; background: color-mix(in srgb, var(--accent) 10%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent); font-size: .9rem; }
.fl-form-message { margin: 0; min-height: 1.2em; font-weight: 600; }
.fl-form-message.est-ok { color: #001CA8; } .fl-form-message.est-erreur { color: #F32837; }
.fl-form button[disabled] { cursor: not-allowed; }
.fl-form input[type=radio], .fl-form input[type=checkbox] { appearance: auto; width: 1.05rem; height: 1.05rem; min-width: 0; min-height: 0; padding: 0; margin: 0; border: 0; flex: none; accent-color: var(--accent); transform: translateY(.12rem); }
.fl-form-choix label, .fl-form-accord { flex: none; }
.fl-form textarea { min-height: 0; }
/* Contenus intégrés chargés au clic (29/09/2026) */
.fl-integration { position: relative; display: grid; place-items: center; align-content: center; gap: .8rem; aspect-ratio: 16 / 9; width: 100%; max-width: 100%; box-sizing: border-box; padding: 1rem; text-align: center; border-radius: 1rem; background: color-mix(in srgb, var(--encre) 8%, var(--papier)); border: 1px solid var(--filet); }
.fl-integration p { margin: 0; font-size: .82rem; color: var(--encre-2); max-width: 34rem; }
.fl-integration-lire { font: inherit; font-weight: 700; cursor: pointer; border: 0; border-radius: 99px; padding: .8rem 1.3rem; background: var(--accent); color: #fff; }
.fl-integration-lire:focus-visible { outline: 3px solid var(--encre); outline-offset: 3px; }
/* Remarque du 10/10/2026 (« quand on lance la vidéo elle est toute petite ») : le cadre a le format de la vidéo (16:9, ou celui
   de l'iframe d'origine : style aspect-ratio posé à la construction ; Shorts : data-format="vertical"), sur toute la largeur
   de la colonne ; une fois lancée, l'iframe le remplit entièrement (position absolue : la hauteur 100 % d'un enfant de grille
   au format fixé n'était pas résolue, l'iframe restait à 150 px de haut au milieu du cadre). Classe « est-lancee » (et non plus
   « est-affiche », déjà prise par les affiches des cartes d'articles, qui posait un fond Midnight forcé derrière la vidéo). */
.fl-integration[data-format="vertical"] { aspect-ratio: 9 / 16; width: min(100%, 22rem); margin-left: auto; margin-right: auto; }
.fl-integration.est-lancee { padding: 0; border: 0; background: #120D16; overflow: hidden; }
.fl-integration iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; border-radius: inherit; }
/* Observatoire de la sécurité des vols (29/09/2026) */
.fl-obs { display: grid; gap: 1.4rem; }
.fl-obs-filtres { display: flex; flex-wrap: wrap; gap: .45rem; }
.fl-obs-filtres button { font: inherit; font-size: .9rem; font-weight: 600; cursor: pointer; border: 1px solid var(--filet-fort); background: var(--papier); color: var(--encre); border-radius: 99px; padding: .45rem .9rem; }
.fl-obs-filtres button small { color: var(--encre-3); font-weight: 500; margin-left: .2rem; }
.fl-obs-filtres button[aria-pressed="true"] { background: var(--encre); color: var(--papier); border-color: var(--encre); }
.fl-obs-filtres button[aria-pressed="true"] small { color: inherit; opacity: .75; }
.fl-obs-filtres button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.fl-obs-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .8rem; margin: 0; }
.fl-obs-chiffres div { background: var(--voile); border: 1px solid var(--filet); border-radius: 1rem; padding: .9rem 1rem; display: flex; flex-direction: column-reverse; gap: .15rem; }
.fl-obs-chiffres dt { font-size: .85rem; color: var(--encre-3); }
.fl-obs-chiffres dd { margin: 0; font: 700 1.9rem/1 var(--police-display); font-variant-numeric: tabular-nums; }
.fl-obs-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); gap: 1.2rem; }
.fl-obs-bloc { margin: 0; background: var(--voile); border: 1px solid var(--filet); border-radius: 1.1rem; padding: 1rem 1.1rem; display: grid; gap: .8rem; align-content: start; }
.fl-obs-bloc figcaption { display: grid; gap: .1rem; } .fl-obs-bloc figcaption small { color: var(--encre-3); font-size: .82rem; }
.fl-obs-barres { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.fl-obs-barres li { display: grid; grid-template-columns: minmax(0, 11rem) 1fr 2.6rem; gap: .6rem; align-items: center; font-size: .88rem; }
.fl-obs-lib { line-height: 1.25; }
.fl-obs-barre { height: .7rem; background: color-mix(in srgb, var(--encre) 8%, transparent); border-radius: 99px; overflow: hidden; }
.fl-obs-barre i { display: block; height: 100%; background: var(--accent); border-radius: 99px; transition: width .35s var(--ease, ease); }
.fl-obs-barres b { text-align: right; font-variant-numeric: tabular-nums; }
.fl-obs-vide { color: var(--encre-3); grid-template-columns: 1fr !important; }
.fl-obs-annees { list-style: none; margin: 0; padding: 1.4rem 0 0; display: flex; align-items: flex-end; gap: .3rem; height: 11rem; overflow-x: auto; }
.fl-obs-annees li { flex: 1 0 1.6rem; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: .3rem; }
.fl-obs-col { width: 100%; max-width: 2.4rem; min-height: 2px; background: var(--accent); border-radius: .35rem .35rem 0 0; position: relative; transition: height .35s var(--ease, ease); }
.fl-obs-col b { position: absolute; top: -1.2rem; left: 50%; transform: translateX(-50%); font-size: .72rem; font-variant-numeric: tabular-nums; }
.fl-obs-annees small { font-size: .7rem; color: var(--encre-3); font-variant-numeric: tabular-nums; }
.fl-obs-note { margin: 0; font-size: .85rem; color: var(--encre-3); max-width: 65ch; }
@media (max-width: 520px) { .fl-obs-barres li { grid-template-columns: minmax(0, 8rem) 1fr 2.2rem; } }
@media (prefers-reduced-motion: reduce) { .fl-obs-barre i, .fl-obs-col { transition: none; } }
/* Assistant du site (29/09/2026) */
.fl-as-reponse:empty { display: none; }
.fl-as-reponse { display: grid; gap: .7rem; padding-top: .4rem; border-top: 1px solid var(--filet); }
.fl-as-reponse p { margin: 0; }
.fl-as-texte { white-space: pre-line; line-height: 1.6; }
.fl-as-texte sup { font-size: .7em; color: var(--accent); font-weight: 700; }
.fl-as-sources { margin: 0; padding-left: 1.3rem; display: grid; gap: .3rem; font-size: .92rem; }
.fl-as-suite { font-size: .88rem; color: var(--encre-3); }
.fl-as-suite button { font: inherit; font-weight: 600; color: var(--accent); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; }
.fl-as-attente { color: var(--encre-3); }
.fl-as-reponse .est-ok { color: #001CA8; font-weight: 600; } .fl-as-reponse .est-erreur { color: #F32837; font-weight: 600; }
/* Événements et inscriptions (29/09/2026) */
.fl-form-deux { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); gap: .9rem; }
.fl-inscription { margin-top: 2rem; }
.fl-inscription-places { margin: 0; font-weight: 700; color: var(--accent); }
.fl-orga { display: grid; gap: 1.2rem; }
.fl-orga-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0; }
.fl-orga .fl-tableau input[type=checkbox] { width: 1.2rem; height: 1.2rem; accent-color: var(--accent); }
.fl-orga .est-erreur { color: #F32837; font-weight: 600; }
/* Salle de réunion (29/09/2026) */
.fl-salle-odj { margin: 0; padding-left: 1.3rem; display: grid; gap: 1rem; }
.fl-salle-odj li p { margin: .3rem 0; color: var(--encre-2); }
.fl-salle-vote { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 .2rem; }
.fl-salle-res { font-weight: 700; color: var(--accent); }
/* Organigramme (29/09/2026) */
.fl-equipe-page { display: grid; gap: 2.4rem; }
.fl-equipe-groupe > h2 small { font: 600 .9rem var(--police-instru); color: var(--encre-3); margin-left: .3rem; }
.fl-equipe-groupe > p { margin: .2rem 0 1rem; color: var(--encre-2); max-width: 65ch; }
.fl-equipe { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: .9rem; }
.fl-equipe-fiche { display: grid; grid-template-columns: 3.4rem 1fr; gap: .8rem; align-items: start; background: var(--voile); border: 1px solid var(--filet); border-radius: 1rem; padding: .9rem; }
.fl-equipe-fiche img, .fl-equipe-initiales { width: 3.4rem; height: 3.4rem; border-radius: 50%; object-fit: cover; }
.fl-equipe-initiales { display: grid; place-items: center; background: color-mix(in srgb, var(--accent) 14%, var(--papier)); color: var(--accent); font: 700 1rem var(--police-display); }
.fl-equipe-fiche div { display: grid; gap: .15rem; min-width: 0; }
.fl-equipe-fiche span { font-size: .9rem; color: var(--encre-2); }
.fl-equipe-fiche small { font-size: .82rem; color: var(--encre-3); }
.fl-equipe-mail { font-size: .82rem; overflow-wrap: anywhere; }
/* Challenge France 1 (29/09/2026) */
.fl-ch-carte { height: clamp(18rem, 45vw, 28rem); border-radius: 1rem; border: 1px solid var(--filet); background: var(--voile); }
.fl-ch-note { display: grid; gap: .3rem; padding: 1rem 1.2rem; border-radius: 1rem; background: color-mix(in srgb, #001CA8 10%, var(--papier)); border: 1px solid color-mix(in srgb, #001CA8 30%, transparent); }
.fl-ch-note b { font: 700 2.4rem/1 var(--police-display); font-variant-numeric: tabular-nums; } .fl-ch-note b small { font-size: 1rem; color: var(--encre-3); }
.fl-ch-note.est-dq { background: color-mix(in srgb, #F32837 10%, var(--papier)); border-color: color-mix(in srgb, #F32837 30%, transparent); } .fl-ch-note.est-dq b { color: #F32837; }
.fl-ch-note small { color: var(--encre-3); }
.fl-ch-classement { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.fl-ch-classement li { display: grid; grid-template-columns: 2rem 1fr auto; grid-template-rows: auto auto; column-gap: .6rem; align-items: baseline; padding: .35rem 0; border-bottom: 1px solid var(--filet); }
.fl-ch-classement span { grid-row: span 2; font: 700 .9rem var(--police-instru); color: var(--encre-3); }
.fl-ch-classement strong { grid-row: span 2; font-variant-numeric: tabular-nums; font-size: 1.1rem; }
.fl-ch-classement small { color: var(--encre-3); font-size: .8rem; }
.fl-ch-bareme summary { cursor: pointer; font-weight: 700; }
/* Petites annonces (29/09/2026) */
.fl-annonces { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); gap: .9rem; }
.fl-annonce button { all: unset; box-sizing: border-box; cursor: pointer; display: grid; gap: .3rem; width: 100%; height: 100%; padding: 1rem; border-radius: 1rem; background: var(--voile); border: 1px solid var(--filet); }
.fl-annonce button:hover, .fl-annonce button:focus-visible { border-color: var(--accent); outline: none; }
.fl-annonce b { font-size: 1.02rem; line-height: 1.3; } .fl-annonce span:not(.fl-instru-lib) { font-weight: 700; color: var(--accent); } .fl-annonce small { color: var(--encre-3); }
.fl-annonce-detail { display: grid; gap: .8rem; padding: 1.2rem; border-radius: 1.1rem; background: var(--voile); border: 1px solid var(--filet); }
.fl-annonce-prix { font: 700 1.5rem var(--police-display); color: var(--accent); margin: 0; }
/* Téléphone : les longues réponses passent à la ligne, les longues adresses se coupent (29/09/2026) */
.fl-form-choix label, .fl-form-accord { flex: 0 1 auto; min-width: 0; max-width: 100%; }
.fl-billet dd, .fl-form-champ small, .fl-prose a { overflow-wrap: anywhere; }
.fl-jauge b { color: var(--accent); }
/* Contraste : chiffres de la seconde colonne du comparateur (rouge foncé, 5:1 sur blanc) */
[data-colonne="b"] .fl-jauge b { color: #F32837; }
/* Contenus Widgetkit du site actuel : accordéons et fiches (29/09/2026) */
.fl-accordeon { display: grid; gap: .5rem; margin: 1rem 0 1.4rem; }
.fl-accordeon details { border: 1px solid var(--filet); border-radius: .9rem; background: var(--voile); }
.fl-accordeon summary { cursor: pointer; padding: .8rem 1rem; font-weight: 700; list-style-position: inside; }
.fl-accordeon summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: .9rem; }
.fl-accordeon details[open] summary { border-bottom: 1px solid var(--filet); }
.fl-accordeon details > div { padding: .6rem 1rem 1rem; }
.fl-wk-fiches { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 1rem; margin: 1rem 0 1.4rem; }
.fl-wk-fiche { display: grid; gap: .4rem; align-content: start; padding: .9rem; border-radius: 1rem; background: var(--voile); border: 1px solid var(--filet); }
.fl-wk-fiche img { width: 100%; height: auto; border-radius: .6rem; }
.fl-wk-fiche h3 { margin: 0; font-size: 1.02rem; }
.fl-galerie-joomla { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 12rem), 1fr)); gap: .6rem; margin: 1rem 0 1.4rem; }
.fl-galerie-joomla img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: .6rem; }
.fl-image-article { margin: 0 0 1.2rem; } .fl-image-article img { width: 100%; height: auto; border-radius: 1rem; }

/* Rubriques : vignette de l'article à droite de chaque ligne */
.fl-cat-ligne { display: grid; grid-template-columns: auto 1fr auto; gap: .3rem 1rem; align-items: center; }
.fl-cat-vignette { width: 104px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
@media (max-width: 480px) { .fl-cat-vignette { width: 64px; } }
.fl-insecable { white-space: nowrap; }
.fl-rex-appel { display: grid; gap: 1rem; max-width: 44rem; } .fl-rex-boutons { display: flex; flex-wrap: wrap; gap: .8rem; margin: 0; }
.fl-obs-facteurs .fl-tableau td, .fl-obs-facteurs .fl-tableau th { padding: .45rem .7rem; vertical-align: middle; }
.fl-obs-facteurs .fl-obs-groupe th, .fl-obs-facteurs .fl-obs-groupe td { border-top: 2px solid var(--filet, rgba(18, 13, 22, .12)); }
.fl-obs-taux { display: inline-block; min-width: 9rem; padding: .1rem .4rem; font-variant-numeric: tabular-nums; background: linear-gradient(90deg, rgba(0, 28, 168, .22) var(--t), transparent var(--t)); border-radius: 3px; }
.fl-ulminfo-grille { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(46%, 10rem), 1fr)); gap: 1.2rem; }
.fl-ulminfo-grille a { display: grid; gap: .3rem; color: inherit; text-decoration: none; }
.fl-ulminfo-grille img, .fl-ulminfo-couv img { width: 100%; height: auto; border-radius: 4px; box-shadow: 0 6px 18px rgba(18, 13, 22, .18); }
.fl-ulminfo-grille a:hover b, .fl-ulminfo-grille a:focus-visible b { text-decoration: underline; }
.fl-ulminfo-couv { margin: 0 0 1rem; max-width: 14rem; }

/* Silhouettes des classes : dimensions déclarées dans la page, proportions gardées partout */
.fl-silhouette { height: auto; }

/* Fiches des terrains BASULM et index par département */
.fl-terrain-faits { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 0 1.6rem; margin: .4rem 0 1.4rem; }
.fl-terrain-faits div { padding: .7rem 0; border-top: 1px solid var(--filet); }
.fl-terrain-faits dt { font: .72rem var(--police-instru); letter-spacing: .06em; text-transform: uppercase; color: var(--encre-3); }
.fl-terrain-faits dd { margin: .2rem 0 0; font-size: 1rem; line-height: 1.4; color: var(--encre); }
.fl-terrain-avant { padding: .9rem 1.1rem; border-left: 3px solid var(--accent-vif); background: var(--papier-2); line-height: 1.5; }
.fl-ville-liens { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; align-items: center; margin-top: 1.2rem; }
/* Fiche d'un terrain : bloc « Contact et fiche BASULM » (site-complet.mjs, préfixe fl-tc-) */
.fl-tc { margin: .4rem 0 0; padding: clamp(1.1rem, 2.4vw, 1.5rem); border-radius: 1.1rem; background: var(--papier); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-tc-titre { margin: 0 0 .7rem; font: 700 clamp(1.15rem, 1.05rem + .4vw, 1.35rem)/1.25 var(--police-display); color: var(--fonce-2); }
.fl-tc-lignes { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: 0 1.6rem; margin: 0; }
.fl-tc-lignes div { min-width: 0; padding: .65rem 0; border-top: 1px solid var(--filet); }
.fl-tc-lignes dt { font: .72rem var(--police-instru); letter-spacing: .06em; text-transform: uppercase; color: var(--encre-3); }
.fl-tc-lignes dd { display: grid; gap: .1rem; margin: .2rem 0 0; font-size: 1rem; line-height: 1.4; color: var(--encre); overflow-wrap: anywhere; }
.fl-tc-lignes dd a { color: var(--accent-vif); font-weight: 600; text-decoration: underline; text-underline-offset: .16em; text-decoration-thickness: 1px; }
.fl-tc-lignes dd a:hover { color: var(--fonce-2); }
.fl-tc-lignes dd small { font-size: .84rem; color: var(--encre-3); }
.fl-tc-gps { font-variant-numeric: tabular-nums; }
.fl-tc-boutons { display: flex; flex-wrap: wrap; gap: .8rem 1.4rem; align-items: center; margin: 1rem 0 1rem; }
.fl-tc .fl-terrain-avant { margin: 0; background: #fff; }
.fl-ville-terrains b a { color: inherit; }
.fl-terrains-deps { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0 2rem; }
.fl-terrains-deps a { font: .78rem var(--police-instru); padding: .3rem .55rem; border: 1px solid var(--filet-fort); border-radius: .4rem; color: var(--encre-2); text-decoration: none; }
.fl-terrains-deps a:hover, .fl-terrains-deps a:focus-visible { border-color: var(--accent-vif); color: var(--accent-vif); }
.fl-terrains-liste { list-style: none; margin: .6rem 0 2.2rem; padding: 0; columns: 18rem; column-gap: 2rem; }
.fl-terrains-liste li { break-inside: avoid; padding: .3rem 0; line-height: 1.35; }
.fl-terrains-liste small { display: block; font: .7rem var(--police-instru); color: var(--encre-3); }
/* Fiche terrain : pas d’instruments décoratifs (une altitude affichée au hasard tromperait le lecteur) */
.fl-scene[data-niveau="Terrain"] .fl-instru { display: none; }
/* REX : intertitres de niveau 2 (ordre des titres), à la taille des anciens h3 */
.fl-rex-intertitre, .fl-prose h2.fl-rex-intertitre { font-size: 1.15rem; line-height: 1.3; margin: 1.6rem 0 .5rem; }

/* Carte des terrains : terrain cliqué */
.fl-pt { cursor: pointer; }
.fl-pt.est-choisi { stroke: #950714; stroke-width: 2.4; r: 7; }
.fl-terrain-carte { position: relative; display: grid; gap: .35rem; margin: 0 0 1rem; padding: 1rem 2.6rem 1rem 1.1rem; border-radius: 1rem; background: #191970; color: rgba(245, 245, 245, .88); }
.fl-terrain-carte .fl-instru-lib { color: rgba(245, 245, 245, .7); margin: 0; }
.fl-terrain-carte b { font: 620 1.25rem var(--police-display); color: #fff; }
.fl-terrain-carte p { margin: 0; font-size: .92rem; }
.fl-terrain-carte-liens { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .3rem !important; }
.fl-terrain-carte-liens .v6-lien, .fl-terrain-carte-liens button { color: #fff; background: none; border: 0; padding: 0; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fl-terrain-carte-fermer { position: absolute; top: .5rem; right: .6rem; width: 2rem; height: 2rem; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .12); color: #fff; font-size: 1.2rem; line-height: 1; cursor: pointer; }
.fl-carte-compact .fl-terrain-carte, .fl-carte:not(.fl-carte-complet) > .fl-terrain-carte { margin-top: 1rem; }

/* Images d'origine d'une page refaite (illustration, bannière), avec leur lien */
.fl-images-origine { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.6rem 0; }
.fl-images-origine figure { margin: 0; flex: 1 1 14rem; max-width: 36rem; }
.fl-images-origine img { width: 100%; height: auto; border-radius: .8rem; background: #fff; }

/* Carte zoomable « Où voler » (Leaflet) : remplace la carte dessinée une fois chargée */
.fl-carte.a-zoom .fl-carte-vue { padding: 0; overflow: hidden; background: transparent; }
.fl-carte-zoom svg { width: auto; height: auto; max-height: none; display: inline; margin: 0; }
.fl-carte.a-zoom .fl-carte-vue > svg { display: none; }
.fl-carte-zoom { height: min(72vh, 44rem); min-height: 26rem; border-radius: 1.6rem; background: rgba(0, 28, 168, .06); }
.fl-carte.a-zoom .fl-carte-resume { z-index: 500; top: 1rem; left: 3.6rem; }
.fl-carte-zoom .leaflet-control-zoom a { width: 2.2rem; height: 2.2rem; line-height: 2.2rem; font-size: 1.2rem; }
.leaflet-marker-icon.fl-repere { border-radius: 50%; background: var(--c, #001CA8); border: 2.5px solid #fff; box-shadow: 0 1px 5px rgba(18, 13, 22, .45); transition: transform .15s; }
.fl-repere:hover, .fl-repere:focus-visible { transform: scale(1.35); }
.leaflet-marker-icon.fl-grappe { display: grid; place-items: center; border-radius: 50%; background: rgba(0, 28, 168, .88); border: 3px solid rgba(255, 255, 255, .9); box-shadow: 0 2px 8px rgba(18, 13, 22, .35); color: #fff; font: 700 .8rem var(--police-ui, sans-serif); }
.leaflet-marker-icon.fl-grappe.est-moyenne { background: rgba(0, 20, 120, .92); }
.leaflet-marker-icon.fl-grappe.est-grande { background: rgba(18, 13, 22, .92); }
.fl-bulle-cadre .leaflet-popup-content-wrapper { border-radius: 1rem; padding: 0; box-shadow: 0 10px 30px rgba(18, 13, 22, .3); }
.fl-bulle-cadre .leaflet-popup-content { margin: 0; width: 17rem !important; }
.fl-bulle { display: grid; gap: .45rem; padding: 1rem 1.1rem 1.05rem; font-family: var(--police-ui, sans-serif); color: #120D16; }
.fl-bulle-type { display: flex; align-items: center; gap: .45rem; margin: 0 !important; font: .7rem var(--police-instru); letter-spacing: .08em; text-transform: uppercase; color: #4A5568; }
.fl-bulle-type i { width: .65rem; height: .65rem; border-radius: 50%; background: var(--c); }
.fl-bulle b { font: 650 1.15rem/1.25 var(--police-display); }
.fl-bulle-acces { justify-self: start; margin: 0 !important; padding: .2rem .6rem; border-radius: 999px; font-size: .78rem; font-weight: 600; background: #EEF1F6; color: #33415C; }
.fl-bulle-acces.est-libre { background: rgba(0, 28, 168, .08); color: #001CA8; }
.fl-bulle-acces.est-autorisation { background: rgba(149, 7, 20, .08); color: #950714; }
.fl-bulle-acces.est-prive { background: #F4E4E4; color: #8C2B2B; }
.fl-bulle dl { display: grid; grid-template-columns: repeat(2, 1fr); gap: .35rem .8rem; margin: .2rem 0 0; }
.fl-bulle dt { font: .66rem var(--police-instru); letter-spacing: .06em; text-transform: uppercase; color: #6B7280; }
.fl-bulle dd { margin: 0; font-size: .86rem; }
.fl-bulle-liens { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 0 !important; }
.fl-bulle-liens a, .fl-bulle-liens button { padding: .38rem .7rem; border-radius: 999px; border: 1px solid #CBD3E1; background: #fff; color: #120D16 !important; font: 600 .78rem var(--police-ui, sans-serif); text-decoration: none; cursor: pointer; }
.fl-bulle-liens .fl-bulle-principal { background: #001CA8; border-color: #001CA8; color: #fff !important; }
.fl-bulle-liens a:hover, .fl-bulle-liens button:hover { border-color: #001CA8; }
.fl-carte-liste li.est-cliquable { cursor: pointer; }
.fl-carte-liste li.est-cliquable:hover b { text-decoration: underline; }
/* Cartes dessinées (accueil, villes) : points plus faciles à toucher */
.fl-pt { stroke: rgba(0, 0, 0, 0); stroke-width: 9; paint-order: stroke; }

/* Illustration d'un long texte (photo de la fédération, décorative) */
.fl-prose .fl-illustration { margin: 2rem 0; border-radius: 1rem; overflow: hidden; aspect-ratio: 16 / 9; }
.fl-prose .fl-illustration img { width: 100%; height: 100%; object-fit: cover; }
.fl-prose h3 { margin-top: 1.8rem; }
/* Intertitres des textes repris de Joomla (h3, h4) : visibles comme tels, pour aérer les longs textes */
.fl-prose h3, .fl-prose h4 { font-family: var(--police-display); font-weight: 650; color: var(--encre); line-height: 1.25; text-wrap: balance; }
.fl-prose h3 { font-size: clamp(1.15rem, 1.6vw, 1.35rem); margin: 2rem 0 .6rem; }
.fl-prose h4 { font-size: 1.08rem; margin: 1.7rem 0 .5rem; padding-left: .75rem; border-left: 3px solid var(--accent-vif); }

/* Vidéo YouTube avant lecture : image de la vidéo et bouton lecture, comme un lecteur */
.fl-integration.fl-integration-video { position: relative; padding: 0; overflow: hidden; background: #0A0F18; border: 0; }
.fl-integration-video .fl-integration-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fl-integration-video .fl-integration-play { position: relative; z-index: 1; width: 4.6rem; height: 3.3rem; padding: 0; border-radius: 0; background: none; transition: transform .15s; }
.fl-integration-video .fl-integration-play svg { width: 100%; height: 100%; filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .45)); }
.fl-integration-video:hover .fl-integration-play, .fl-integration-play:focus-visible { transform: scale(1.08); }
.fl-integration-video p { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; max-width: none; padding: .6rem .9rem; background: linear-gradient(transparent, rgba(0, 0, 0, .72)); color: rgba(255, 255, 255, .9); font-size: .74rem; text-align: left; }
/* Mention cookies discrète (remarque du 10/10/2026 : sur mobile elle couvrait la moitié de l'image et le bouton de lecture) :
   une seule ligne courte en bas, sur un dégradé noir ; le lien « Gérer mes cookies » reste toujours entier, la phrase complète
   est lue par les lecteurs d'écran (.fl-integration-detail) et s'affiche au survol (title). */
.fl-integration-video p.fl-integration-info { display: flex; align-items: baseline; gap: .35rem; padding: 1.6rem .85rem .5rem; background: linear-gradient(transparent, rgba(0, 0, 0, .78)); font-size: .72rem; line-height: 1.3; white-space: nowrap; }
.fl-integration-info .fl-integration-court { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.fl-integration-info .fl-integration-court::after { content: " ·"; }
.fl-integration-info a { flex: none; }
.fl-integration-detail { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.fl-integration-video p a { color: #fff; }
.fl-integration-video.est-lancee { background: #120D16; }
/* Recherche tolérante (js/mots-proches.js) : le mot corrigé, en tête du compte des résultats */
.fl-liste-correction b { color: var(--accent); font-weight: 700; }

/* Pictogramme PDF (remplace les anciennes icônes des textes repris) */
.fl-pictogramme-pdf { display: inline-flex; align-items: center; gap: .2rem; margin-right: .45rem; padding: .12rem .45rem .12rem .3rem; border-radius: .4rem; background: #FCE8EA; color: #B3122B; vertical-align: middle; line-height: 1; }
.fl-pictogramme-pdf svg { width: 1.05rem; height: 1.05rem; }
.fl-pictogramme-pdf b { font: 700 .66rem var(--police-ui, sans-serif); letter-spacing: .04em; }
a:hover .fl-pictogramme-pdf { background: #B3122B; color: #fff; }
.fl-carte-compact .fl-carte-zoom, .fl-carte:not(.fl-carte-complet) .fl-carte-zoom { height: min(64vh, 34rem); }

/* Structures affiliées (fiches terrains, pages par ville, annuaire) */
.fl-structures { list-style: none; margin: .4rem 0 1.4rem; padding: 0; }
.fl-structure { display: grid; gap: .15rem; padding: .7rem 0; border-top: 1px solid var(--filet); }
.fl-structure small { font: .74rem var(--police-instru); color: var(--encre-3); }
.fl-structure span { font-size: .9rem; }

/* Combien coûte l'ULM ? / Offrir un vol */
.fl-cout { display: grid; grid-template-columns: minmax(0, 24rem) minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
@media (max-width: 860px) { .fl-cout { grid-template-columns: 1fr; } }
.fl-cout-simulateur { display: grid; gap: .9rem; padding: 1.4rem; border-radius: 1.2rem; background: var(--papier-2); border: 1px solid var(--filet); position: sticky; top: 6rem; }
.fl-cout-simulateur label { display: grid; gap: .35rem; font-weight: 600; font-size: .92rem; }
.fl-cout-simulateur input, .fl-cout-simulateur select, .fl-cout-simulateur textarea { font: inherit; font-weight: 400; padding: .6rem .75rem; border: 1px solid var(--filet-fort); border-radius: .6rem; background: #fff; color: var(--encre); }
.fl-cout-simulateur output { font-weight: 700; color: var(--accent-vif); }
.fl-cout-resultat dl { display: grid; gap: .3rem; margin: .4rem 0; }
.fl-cout-resultat dl div { display: flex; justify-content: space-between; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid var(--filet); }
.fl-cout-resultat dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.fl-cout-total { font-size: 1.15rem; border-bottom: 0 !important; }
.fl-cout-total dd { color: var(--accent-vif); }
.fl-bon { position: relative; display: grid; gap: .4rem; padding: 2rem 2rem 1.6rem; margin-bottom: 2rem; border-radius: 1.2rem; background: linear-gradient(135deg, #191970, #001CA8); color: #fff; box-shadow: 0 18px 40px rgba(18, 13, 22, .25); }
.fl-bon img { position: absolute; top: 1.3rem; right: 1.3rem; border-radius: 50%; background: #fff; }
.fl-bon-sur { margin: 0; font: 700 .78rem var(--police-instru); letter-spacing: .14em; text-transform: uppercase; color: #FFD3D7; }
.fl-bon-titre { margin: 0; font: 700 clamp(1.5rem, 3vw, 2.1rem) / 1.1 var(--police-display); }
.fl-bon-pour { margin: .8rem 0 0; font-size: 1.3rem; font-weight: 600; }
.fl-bon-msg { margin: 0; font-style: italic; min-height: 1.2em; }
.fl-bon-de { margin: 0; }
.fl-bon-pied { margin: .8rem 0 0; font-size: .8rem; color: rgba(255, 255, 255, .78); }
@media print { body.fl-impression-bon * { visibility: hidden !important; } body.fl-impression-bon .fl-bon, body.fl-impression-bon .fl-bon * { visibility: visible !important; } body.fl-impression-bon .fl-bon { position: fixed; top: 2cm; left: 1.5cm; right: 1.5cm; -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
/* Théorique : quiz par thème */
.fl-theo-themes { gap: .5rem; }
.fl-theo-theme { all: unset; box-sizing: border-box; display: flex; justify-content: space-between; align-items: baseline; gap: .8rem; padding: .7rem .9rem; border-radius: .7rem; border: 1px solid var(--filet); background: var(--papier); cursor: pointer; font-weight: 600; transition: border-color .15s var(--ease); }
.fl-theo-theme small { color: var(--encre-3); font-weight: 400; font-size: .82rem; white-space: nowrap; }
.fl-theo-theme:hover, .fl-theo-theme:focus-visible, .fl-theo-theme[aria-current] { border-color: var(--accent-vif); outline: none; }
.fl-theo-theme[aria-current] { box-shadow: inset 3px 0 0 var(--accent-vif); }
.fl-theo-note { margin: .4rem 0 0; font-size: .8rem; color: var(--encre-3); }
.fl-theo { display: grid; gap: 1rem; align-content: start; min-height: 22rem; }
.fl-theo:focus { outline: none; }
.fl-theo-barre { height: .35rem; border-radius: 99px; background: var(--filet); overflow: hidden; }
.fl-theo-barre i { display: block; height: 100%; background: var(--accent-vif); transition: width .3s var(--ease); }
.fl-theo-q { margin: .2rem 0 0; font: 700 clamp(1.25rem, 2.4vw, 1.6rem) / 1.25 var(--police-display); text-wrap: balance; }
.fl-theo-reps { display: grid; gap: .55rem; }
.fl-theo-rep { all: unset; box-sizing: border-box; padding: .85rem 1rem; border-radius: .8rem; border: 1.5px solid var(--filet-fort); cursor: pointer; font-weight: 500; line-height: 1.35; }
.fl-theo-rep:hover:not(:disabled), .fl-theo-rep:focus-visible { border-color: var(--accent-vif); outline: none; }
.fl-theo-rep:disabled { cursor: default; }
.fl-theo-rep.est-bonne { border-color: #001CA8; background: color-mix(in srgb, #001CA8 12%, transparent); font-weight: 700; }
.fl-theo-rep.est-fausse { border-color: var(--rouge); background: color-mix(in srgb, var(--rouge) 10%, transparent); }
.fl-theo-expl { margin: 0; padding: .9rem 1rem; border-radius: .8rem; background: var(--papier-2); line-height: 1.5; }
.fl-theo-fin { display: grid; gap: .6rem; justify-items: start; }
.fl-theo-score { margin: 0; font: 800 clamp(2.6rem, 6vw, 3.6rem) / 1 var(--police-display); color: var(--accent-vif); font-variant-numeric: tabular-nums; }
/* Boutique fédérale : catalogue synchronisé depuis Shopify */
.fl-btq-filtres { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 1.4rem; }
.fl-btq-filtre { all: unset; cursor: pointer; padding: .4rem .8rem; border-radius: 999px; border: 1px solid var(--filet-fort); font-size: .86rem; font-weight: 600; }
.fl-btq-filtre[aria-pressed="true"] { background: var(--accent-vif); border-color: var(--accent-vif); color: #fff; }
.fl-btq-filtre:focus-visible { outline: 2px solid var(--accent-vif); outline-offset: 2px; }
.fl-btq-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 1fr)); }
.fl-btq-carte a { display: grid; gap: .45rem; text-decoration: none; color: inherit; height: 100%; padding: .6rem; border-radius: 1rem; border: 1px solid var(--filet); background: var(--papier); transition: border-color .15s var(--ease); }
.fl-btq-carte a:hover, .fl-btq-carte a:focus-visible { border-color: var(--accent-vif); outline: none; }
.fl-btq-photo { display: block; aspect-ratio: 1; border-radius: .7rem; overflow: hidden; background: #fff; }
.fl-btq-photo img { width: 100%; height: 100%; object-fit: contain; display: block; }
.fl-btq-nom { font-weight: 600; line-height: 1.3; }
.fl-btq-prix { margin-top: auto; font-weight: 700; color: var(--accent-vif); font-variant-numeric: tabular-nums; }
/* Contenus repris de l'ancien site : intertitres h5 et h6 (souvent utilisés comme titres ou comme liens), tableaux de
   données et colonnes de mise en page (voir contenu-build.mjs). */
.fl-prose h5 { font: 650 1.05rem/1.3 var(--police-display); color: var(--encre); margin: 1.6rem 0 .45rem; letter-spacing: 0; text-transform: none; }
.fl-prose h6 { font: 650 1rem/1.35 var(--police-display); color: var(--encre); margin: 1.4rem 0 .4rem; letter-spacing: 0; text-transform: none; }
.fl-prose h6:has(> a[href]:only-child), .fl-prose h5:has(> a[href]:only-child) { font: 500 1.02rem/1.5 var(--police-texte); margin: .35rem 0; }   /* a[href] : une ancre nue (« <a id=Assurance> ») reste un intertitre */
.fl-prose h6:has(> a[href]:only-child) + h6:has(> a[href]:only-child) { margin-top: .15rem; }
.fl-prose .fl-tableau-defile { overflow-x: auto; margin: 1.6rem 0; border: 1px solid var(--filet); border-radius: .9rem; background: var(--papier); }
.fl-prose table.fl-tableau { width: 100%; border-collapse: collapse; font-size: .97rem; line-height: 1.5; margin: 0; }
.fl-prose table.fl-tableau th, .fl-prose table.fl-tableau td { padding: .75rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--filet); }
.fl-prose table.fl-tableau td + td, .fl-prose table.fl-tableau th + th, .fl-prose table.fl-tableau td + th, .fl-prose table.fl-tableau th + td { border-left: 1px solid var(--filet); }
.fl-prose table.fl-tableau tr:last-child > td { border-bottom: 0; }
.fl-prose table.fl-tableau th { font: 700 .74rem/1.35 var(--police-instru); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); background: var(--papier-2); white-space: nowrap; }
.fl-prose table.fl-tableau th strong, .fl-prose table.fl-tableau th b { font-weight: inherit; }
.fl-prose table.fl-tableau td p, .fl-prose table.fl-tableau th p { margin: 0; }
.fl-prose table.fl-tableau td p + p { margin-top: .4rem; }
.fl-prose table.fl-tableau td strong { font-weight: 650; color: var(--encre); }
.fl-prose .fl-colonnes { display: grid; gap: .1rem 2.4rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15.5rem), 1fr)); margin: 1.6rem 0; }
.fl-prose .fl-colonnes > div { min-width: 0; }
.fl-prose .fl-colonnes p { margin: .45rem 0; overflow-wrap: break-word; }
/* Annuaire des clubs et instructeurs servi dans le gabarit du site (api/annuaire.js) */
.fl-annuaire { padding-block: clamp(2rem, 5vw, 3.5rem); display: grid; gap: 1.1rem; max-width: 50rem; }
.fl-annuaire h1 { margin: 0; }
.fl-annuaire h2 { margin-top: 1.4rem; }
.fl-annuaire p { margin: 0; }
.fl-prose table.fl-tableau td { background: transparent; }
.fl-prose table.fl-tableau tbody tr:nth-child(n) > td { background: transparent; }
.fl-prose table.fl-tableau .fl-court { white-space: nowrap; }
/* Listes mal imbriquées de l'ancien site (<ul><ul>, sans élément de liste entre les deux) : pas de double retrait. */
.fl-prose ul > ul, .fl-prose ol > ol { padding-left: 0; margin: 0; }
.fl-prose ul > ul > li { list-style-type: disc; }

/* Agenda : bouton « Ajouter à mon agenda » (fichier .ics) ; sur téléphone, « Ajouter » seul */
.fl-agenda-garder.est-ajoute { background: var(--accent-vif); color: #fff; box-shadow: none; }
@media (max-width: 559px) { .fl-agenda-suite { display: none; } }
.fl-agenda-ligne.est-passe { opacity: .55; }

/* Image d'en-tête qui n'est pas une photo (logo, pictogramme, couverture de document, petite image) : à sa taille, sans recadrage */
.fl-une.fl-une-logo { aspect-ratio: auto; background: none; border-radius: 0; display: flex; justify-content: flex-start; }
.fl-une.fl-une-logo::after { display: none; }
.fl-une.fl-une-logo img { width: auto; height: auto; max-width: min(100%, 16rem); max-height: 11rem; object-fit: contain; border-radius: .5rem; transform: none; }

/* ── Quiz ULM (rubrique Sécurité) : js/quiz.js ── */
.fl-qcm { margin: 1.4rem 0 1rem; scroll-margin-top: 6rem; }
.fl-qcm-carte { display: grid; gap: 1.1rem; padding: clamp(1.2rem, 3vw, 2rem); border-radius: 1.4rem; background: #fff; border: 1px solid var(--filet); box-shadow: 0 18px 40px -28px rgba(18, 13, 22, .35); }
.fl-qcm-sur { margin: 0; font: 600 .74rem/1.3 var(--police-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--accent-vif); }
.fl-qcm-sur b { font-size: 1rem; letter-spacing: 0; }
.fl-qcm-titre { margin: 0; font: 800 clamp(1.5rem, 3vw, 2.1rem)/1.15 var(--police-display); text-wrap: balance; color: var(--encre); }
.fl-qcm-titre:focus, .fl-qcm-q:focus { outline: none; }
.fl-qcm-faits { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: .6rem; }
.fl-qcm-faits li { padding: .75rem .9rem; border-radius: .9rem; background: var(--papier); color: var(--encre-2); font-size: .9rem; }
.fl-qcm-faits b { display: block; font: 800 1.5rem/1.1 var(--police-display); color: var(--encre); font-variant-numeric: tabular-nums; }
.fl-qcm-themes { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; }
.fl-qcm-themes span { padding: .3rem .7rem; border-radius: 99px; border: 1px solid var(--filet-fort); font-size: .82rem; color: var(--encre-2); }
.fl-qcm-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.fl-qcm-note, .fl-qcm-clavier { margin: 0; font-size: .85rem; color: var(--encre-3); }
.fl-qcm-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.fl-qcm-compte { margin: 0; font-size: .85rem; color: var(--encre-3); font-variant-numeric: tabular-nums; }
.fl-qcm-piste { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 3px; }
.fl-qcm-piste li { height: .4rem; border-radius: 99px; background: var(--filet); transition: background .25s; }
.fl-qcm-piste li.est-bonne { background: #001CA8; }
.fl-qcm-piste li.est-fausse { background: var(--rouge); }
.fl-qcm-piste li.est-ici { box-shadow: 0 0 0 2px var(--accent-vif); }
.fl-qcm-q { margin: .2rem 0 0; font: 700 clamp(1.2rem, 2.3vw, 1.55rem)/1.3 var(--police-display); text-wrap: pretty; color: var(--encre); }
.fl-qcm-items { margin: 0; padding: 0; list-style: none; counter-reset: it; display: grid; gap: .35rem; }
.fl-qcm-items li { counter-increment: it; display: grid; grid-template-columns: 1.7rem 1fr; gap: .6rem; align-items: baseline; padding: .5rem .7rem; border-radius: .7rem; background: var(--papier); line-height: 1.4; }
.fl-qcm-items li::before { content: counter(it); font: 800 .95rem var(--police-display); color: var(--accent-vif); text-align: center; }
.fl-qcm-suite { margin: 0; font-weight: 600; }
.fl-qcm-reps { display: grid; gap: .55rem; }
.fl-qcm-rep { all: unset; box-sizing: border-box; display: grid; grid-template-columns: 2.1rem 1fr; gap: .8rem; align-items: center; padding: .75rem .95rem; border-radius: .9rem; border: 1.5px solid var(--filet-fort); background: #fff; cursor: pointer; line-height: 1.4; color: var(--encre); transition: border-color .2s, background .2s, transform .15s; }
.fl-qcm-rep:hover:not(:disabled) { border-color: var(--accent-vif); background: color-mix(in srgb, var(--accent-vif) 5%, #fff); }
.fl-qcm-rep:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent-vif) 45%, transparent); outline-offset: 2px; }
.fl-qcm-rep:active:not(:disabled) { transform: scale(.99); }
.fl-qcm-rep:disabled { cursor: default; }
.fl-qcm-lettre { display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%; background: var(--papier-2); font: 800 .95rem var(--police-display); text-transform: uppercase; color: var(--accent-vif); }
.fl-qcm-rep.est-bonne { border-color: #001CA8; background: color-mix(in srgb, #001CA8 10%, #fff); font-weight: 600; }
.fl-qcm-rep.est-bonne .fl-qcm-lettre { background: #001CA8; color: #fff; }
.fl-qcm-rep.est-fausse { border-color: var(--rouge); background: color-mix(in srgb, var(--rouge) 8%, #fff); }
.fl-qcm-rep.est-fausse .fl-qcm-lettre { background: var(--rouge); color: #fff; }
.fl-qcm-rep.est-eteinte { opacity: .55; }
.fl-qcm-retour:empty { display: none; }
.fl-qcm-retour p { margin: 0; padding: .8rem 1rem; border-radius: .8rem; line-height: 1.45; }
.fl-qcm-retour .est-bonne { background: color-mix(in srgb, #001CA8 12%, #fff); color: #191970; }
.fl-qcm-retour .est-fausse { background: color-mix(in srgb, var(--rouge) 9%, #fff); color: #8E1F29; }
.fl-qcm-nav { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.fl-qcm-lien { all: unset; cursor: pointer; color: var(--accent-vif); font-weight: 600; font-size: .9rem; }
.fl-qcm-lien:hover, .fl-qcm-lien:focus-visible { text-decoration: underline; }
.fl-qcm-resultat { display: grid; grid-template-columns: auto 1fr; gap: 1.4rem; align-items: center; }
.fl-qcm-resultat p { margin: .4rem 0 0; color: var(--encre-2); line-height: 1.5; }
.fl-qcm-score { position: relative; width: 8.5rem; aspect-ratio: 1; }
.fl-qcm-score p { position: absolute; inset: 0; margin: 0; display: grid; place-content: center; text-align: center; color: var(--encre); }
.fl-qcm-score b { font: 800 2.6rem/1 var(--police-display); font-variant-numeric: tabular-nums; }
.fl-qcm-score small { font-size: .9rem; color: var(--encre-3); }
.fl-qcm-jauge { width: 100%; height: 100%; }
.fl-qcm-jauge circle { fill: none; stroke-width: 10; }
.fl-qcm-jauge .fond { stroke: var(--filet); }
.fl-qcm-jauge .valeur { stroke: var(--accent-vif); stroke-linecap: round; transition: stroke-dasharray .8s var(--ease); }
.fl-qcm-par-theme { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.fl-qcm-par-theme li { display: grid; grid-template-columns: minmax(8rem, 12rem) 1fr auto; gap: .8rem; align-items: center; font-size: .92rem; }
.fl-qcm-par-theme b { font-variant-numeric: tabular-nums; }
.fl-qcm-barre { height: .5rem; border-radius: 99px; background: var(--filet); overflow: hidden; }
.fl-qcm-barre i { display: block; height: 100%; background: var(--accent-vif); border-radius: inherit; }
.fl-qcm-courriel { display: grid; gap: .6rem; padding: 1.1rem; border-radius: 1rem; background: var(--papier); }
.fl-qcm-courriel label { display: grid; gap: .2rem; }
.fl-qcm-courriel small { color: var(--encre-3); font-size: .85rem; }
.fl-qcm-courriel-ligne { display: flex; gap: .5rem; flex-wrap: wrap; }
.fl-qcm-courriel input[type="email"] { flex: 1 1 14rem; min-width: 0; padding: .75rem .95rem; border-radius: 99px; border: 1.5px solid var(--filet-fort); background: #fff; font: inherit; color: var(--encre); }
.fl-qcm-courriel input[type="email"]:focus { outline: none; border-color: var(--accent-vif); }
.fl-qcm-etat { margin: 0; font-size: .9rem; }
.fl-qcm-etat:empty { display: none; }
.fl-qcm-etat.est-ok { color: #191970; font-weight: 600; }
.fl-qcm-etat.est-erreur { color: #8E1F29; }
.fl-qcm-sous { margin: .6rem 0 0; font: 700 1.2rem var(--police-display); }
.fl-qcm-revue { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.fl-qcm-revue > li { border-radius: .8rem; border: 1px solid var(--filet); }
.fl-qcm-revue details { padding: .2rem .9rem; }
.fl-qcm-revue details[open] { padding-bottom: .8rem; }
.fl-qcm-revue summary { display: grid; grid-template-columns: 1.6rem 1fr; gap: .6rem; padding: .6rem 0; cursor: pointer; list-style: none; line-height: 1.4; font-weight: 600; }
.fl-qcm-revue summary::-webkit-details-marker { display: none; }
.fl-qcm-marque { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; font-size: .85rem; color: #fff; background: #001CA8; }
.fl-qcm-revue .est-fausse .fl-qcm-marque { background: var(--rouge); }
.fl-qcm-revue details > :not(summary) { margin: .35rem 0 0 2.2rem; }
.fl-qcm-donnee { color: #8E1F29; }
.fl-qcm-juste { color: #191970; }
.fl-qcm-source { margin: .4rem 0 0; font-size: .85rem; color: var(--encre-3); }
.fl-qcm-ferme { display: grid; gap: .8rem; padding: 1.4rem; border-radius: 1.2rem; background: var(--papier); border: 1px solid var(--filet); }
.fl-qcm-ferme p { margin: 0; line-height: 1.55; }
@media (max-width: 559px) {
  .fl-qcm-resultat { grid-template-columns: 1fr; justify-items: start; }
  .fl-qcm-par-theme li { grid-template-columns: 1fr auto; }
  .fl-qcm-par-theme .fl-qcm-barre { grid-column: 1 / -1; grid-row: 2; }
  .fl-qcm-clavier { display: none; }
}

/* Actualité ancienne : bandeau discret au-dessus du texte */
.fl-archive { margin: 0 0 1.4rem; padding: .85rem 1.1rem; border-radius: .9rem; border-left: 4px solid var(--accent-vif); background: var(--papier-2); color: var(--encre-2); font-size: .95rem; line-height: 1.5; }
.fl-archive b { color: var(--encre); }
.fl-archive .v6-lien { color: var(--accent-vif); font-weight: 600; }

/* ── Listes longues (REX, agenda complet, archives) : recherche, filtres, compteur ── */
.fl-liste-filtres { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: .7rem .8rem; align-items: end; margin: 1.4rem 0 1rem; padding: 1rem 1.1rem; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); }
.fl-liste-texte { grid-column: 1 / -1; }
.fl-liste-champ { display: grid; gap: .25rem; min-width: 0; }
.fl-liste-champ > span { font: 600 .72rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--encre-3); }
.fl-liste-champ input, .fl-liste-champ select { box-sizing: border-box; width: 100%; min-width: 0; padding: .65rem .85rem; border-radius: .7rem; border: 1.5px solid var(--filet-fort); background: #fff; font: inherit; color: var(--encre); }
.fl-liste-champ input:focus, .fl-liste-champ select:focus { outline: none; border-color: var(--accent-vif); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-vif) 18%, transparent); }
.fl-liste-coche { display: flex; align-items: center; gap: .55rem; padding: .65rem 0; font-weight: 600; cursor: pointer; }
.v6 .fl-liste-coche input, .fl-liste-coche input { flex: none; width: 1.15rem; height: 1.15rem; min-height: 0; margin: 0; padding: 0; border: 0; appearance: auto; -webkit-appearance: checkbox; accent-color: var(--accent-vif); }
.fl-liste-compte { margin: 0 0 .5rem; font-size: .9rem; color: var(--encre-3); font-variant-numeric: tabular-nums; }
.fl-liste-vide { margin: 0; padding: 1.2rem; border-radius: 1rem; background: #fff; border: 1px dashed var(--filet-fort); }
.fl-liste-raz { all: unset; cursor: pointer; color: var(--accent-vif); font-weight: 600; text-decoration: underline; }

/* ── Liste des REX ── */
.fl-rexl-tete { display: grid; gap: 1rem; }
.fl-rexl-chiffres { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.fl-rexl-chiffres li { padding: .55rem .9rem; border-radius: .9rem; background: #fff; border: 1px solid var(--filet); font-size: .9rem; color: var(--encre-2); }
.fl-rexl-chiffres b { margin-right: .3rem; font: 800 1.2rem var(--police-display); color: var(--encre); font-variant-numeric: tabular-nums; }
.fl-rexl { list-style: none; margin: 0 0 1.4rem; padding: 0; display: grid; gap: .5rem; }
.fl-rexl > li > a { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: start; padding: 1rem 1.1rem; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); color: var(--encre); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.fl-rexl > li > a:hover, .fl-rexl > li > a:focus-visible { border-color: var(--accent-vif); box-shadow: 0 10px 24px -18px rgba(18, 13, 22, .5); outline: none; }
.fl-rexl .fl-agenda-jour { min-width: 4.3rem; white-space: nowrap; }
.fl-rexl-corps { display: grid; gap: .4rem; min-width: 0; }
.fl-rexl-corps > b { font: 700 1.08rem/1.3 var(--police-display); text-wrap: balance; }
.fl-rexl > li > a:hover .fl-rexl-corps > b { color: var(--accent-vif); }
.fl-rexl-resume { color: var(--encre-2); line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.fl-rexl-tags { display: flex; flex-wrap: wrap; gap: .35rem; }
.fl-rexl-tags i { font-style: normal; font-size: .78rem; padding: .18rem .6rem; border-radius: 99px; background: var(--papier-2); color: var(--encre-2); }
.fl-rexl-tags .est-analyse { background: var(--accent-vif); color: #fff; font-weight: 600; }
@media (max-width: 559px) { .fl-rexl > li > a { grid-template-columns: 1fr; gap: .6rem; } .fl-rexl .fl-agenda-jour { justify-self: start; } }

/* ── Rubrique Sécurité : les derniers REX ── */
.fl-rex-derniers { list-style: none; margin: 1.4rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: .8rem; }
.fl-rex-derniers a { display: grid; gap: .45rem; height: 100%; box-sizing: border-box; padding: 1.1rem 1.2rem; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); color: var(--encre); text-decoration: none; transition: border-color .2s; }
.fl-rex-derniers a:hover, .fl-rex-derniers a:focus-visible { border-color: var(--accent-vif); outline: none; }
.fl-rex-derniers small { font: 600 .72rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--accent-vif); }
.fl-rex-derniers b { font: 700 1.05rem/1.3 var(--police-display); }
.fl-rex-derniers span { color: var(--encre-2); font-size: .93rem; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fl-agenda-liens .fl-agenda-jour { min-width: 4.3rem; white-space: nowrap; }
.fl-rex-derniers a { align-content: start; }
.fl-rex-derniers span { align-self: start; }
/* Encart « Déclarer un REX » sur fond clair : texte lisible (il était prévu pour un fond sombre) */
.fl-section-rex .fl-rex-appel { background: #fff; border: 1px solid var(--filet); box-shadow: none; }
.fl-section-rex .fl-rex-appel p { color: var(--encre-2); }
/* Boutons posés dans un texte (page REX) : les couleurs des liens du texte ne s'y appliquent pas */
.fl-prose a.v6-bouton { text-decoration: none; overflow-wrap: normal; }
.fl-prose a.v6-bouton-plein { color: var(--voile); }
.fl-prose a.v6-bouton-ligne { color: var(--encre); }
.fl-prose a.v6-bouton-ligne:hover, .fl-prose a.v6-bouton-ligne:focus-visible { color: var(--voile); }
.fl-prose .fl-rex-boutons { margin-top: 1.4rem; }
.fl-section-rex .fl-rex-appel + .fl-instru-lib { margin-top: 2rem; }

/* ── Logos des partenaires dans un texte (page REV) ── */
.fl-prose .fl-partenaires { list-style: none; margin: 1rem 0 2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .8rem; }
.fl-prose .fl-partenaires li { display: grid; place-items: center; flex: 1 1 8.5rem; max-width: 11.5rem; height: 5.5rem; padding: .9rem 1.2rem; box-sizing: border-box; border-radius: 1rem; background: #fff; border: 1px solid var(--filet); }
.fl-prose .fl-partenaires img { max-width: 100%; max-height: 3.7rem; width: auto; height: auto; object-fit: contain; border-radius: 0; }
.fl-logo-texte { height: 3.2rem; width: auto; vertical-align: middle; }

/* ── Programmes REV : une carte par classe ── */
.fl-prose .fl-rev-classes { list-style: none; margin: 1.1rem 0 1.6rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 8.6rem), 1fr)); gap: .7rem; }
.fl-prose .fl-rev-classes a { display: grid; gap: .25rem; align-content: start; height: 100%; box-sizing: border-box; padding: .85rem .85rem .9rem; border-radius: 1.1rem; background: #fff; border: 1px solid var(--filet); color: var(--encre); text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.fl-prose .fl-rev-classes a:hover, .fl-prose .fl-rev-classes a:focus-visible { border-color: var(--accent-vif); box-shadow: 0 14px 28px -20px rgba(18, 13, 22, .55); transform: translateY(-2px); outline: none; }
.fl-rev-visuel { display: grid; place-items: center; height: 5.2rem; margin-bottom: .5rem; border-radius: .8rem; background: var(--papier); }
.fl-rev-visuel img { max-width: 78%; max-height: 4rem; width: auto; height: auto; object-fit: contain; }
.fl-rev-classes small { font: 600 .72rem var(--police-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--accent-vif); }
.fl-rev-classes b { font: 700 1.05rem/1.2 var(--police-display); }
.fl-rev-suite { margin-top: .35rem; font-size: .86rem; font-weight: 600; color: var(--accent-vif); white-space: nowrap; }
.fl-rev-suite::after { content: " →"; }
@media (prefers-reduced-motion: reduce) { .fl-prose .fl-rev-classes a:hover { transform: none; } }

/* ── Contenus repris : encadrés de l'ancien site (uk-alert), boutons en texte, filet ── */
.fl-prose p.uk-alert-warning, .fl-prose div.uk-alert-warning, .fl-prose p.uk-alert-success, .fl-prose p.uk-alert-danger { margin: .5rem 0; padding: .75rem 1rem; border-radius: .8rem; border-left: 4px solid var(--accent-vif); background: color-mix(in srgb, var(--accent-vif) 7%, #fff); }

.fl-prose p.uk-alert-danger { border-left-color: var(--rouge); background: color-mix(in srgb, var(--rouge) 7%, #fff); }
.fl-prose p.uk-alert-warning > a:only-child, .fl-prose p.uk-alert-success > a:only-child { font-weight: 600; text-decoration: none; }
.fl-prose p.uk-alert-warning > a:only-child:hover, .fl-prose p.uk-alert-success > a:only-child:hover { text-decoration: underline; }
.fl-bouton-texte { display: inline-flex; align-items: center; gap: .55rem; min-height: 2.5rem; box-sizing: border-box; padding: .45rem 1.15rem; border-radius: 999px; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet-fort); color: var(--encre); font: 600 .92rem var(--police-ui); letter-spacing: .004em; transition: background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease); }
.fl-bouton-texte::after { content: "→"; transition: transform .3s var(--ease); }
.fl-prose a:has(> .fl-bouton-texte) { text-decoration: none; }
.fl-prose a:hover > .fl-bouton-texte, .fl-prose a:focus-visible > .fl-bouton-texte { background: var(--fonce); color: var(--voile); box-shadow: none; }
.fl-prose a:hover > .fl-bouton-texte::after { transform: translateX(3px); }
.fl-prose hr.fl-filet { margin: 1.6rem 0; border: 0; border-top: 1px solid var(--filet-fort); }
/* Une fiche seule dans sa grille : toute la largeur */
.fl-wk-fiches > .fl-wk-fiche:only-child { grid-column: 1 / -1; }


/* ══ Pages de contenu : deux présentations du même texte ══
   - créative (par défaut) : celle de l'accueil. Ouverture sous le bandeau (grande phrase, chute en italique bleu, traînée
     pointillée), chapitres en grand titre avec leur repère d'instrument, texte aéré.
   - classique (html[data-style="classique"], bouton « Version classique » pendant la recette) : le texte sur une feuille
     blanche, chapitres numérotés plus discrets, accroche dans le bandeau.
   Couleurs de la charte seulement. */

/* ── Commun aux deux ── */
.fl-article > .fl-prose > p:first-child:not([class]), .fl-article > .fl-prose > hr:first-child + p:not([class]) { font-size: clamp(1.1rem, 1rem + .4vw, 1.28rem); line-height: 1.6; color: var(--encre); }
.fl-article > .fl-prose { counter-reset: chapitre; }
.fl-article > .fl-prose > h2 { counter-increment: chapitre; }
.fl-article > .fl-prose > hr:first-child, .fl-article > .fl-prose > hr:last-child { display: none; }
.fl-article > .fl-prose > hr:first-child + * { margin-top: 0; }
/* Listes : tiret de la couleur de la rubrique, numéros en gras */
.fl-prose ul:not([class]) { list-style: none; padding-left: 0; }
.fl-prose ul:not([class]) > li { position: relative; padding-left: 1.5rem; }
.fl-prose ul:not([class]) > li + li, .fl-prose ol:not([class]) > li + li { margin-top: .4rem; }
.fl-prose ul:not([class]) > li::before { content: ""; position: absolute; left: 0; top: .82em; width: .8rem; height: 2px; border-radius: 2px; background: var(--rub, #001CA8); }
.fl-prose ul:not([class]) ul:not([class]) { margin-top: .4rem; }
.fl-prose ul:not([class]) ul:not([class]) > li::before { width: .4rem; height: .4rem; top: .68em; border-radius: 50%; background: none; box-shadow: inset 0 0 0 1.5px var(--rub, #001CA8); }
.fl-prose ul > ul > li { list-style: none; }
.fl-prose ol:not([class]) { padding-left: 1.6rem; }
.fl-prose ol:not([class]) > li::marker { font: 700 .95em var(--police-display); color: var(--rub, #001CA8); }
/* Citations, images, filets */
.fl-prose blockquote { margin: 2rem 0; padding: .3rem 0 .3rem 1.4rem; border-left: 3px solid var(--rouge); font: 500 clamp(1.12rem, 1rem + .5vw, 1.4rem) / 1.5 var(--police-display); letter-spacing: -.012em; color: var(--encre); }
.fl-prose blockquote p { margin: 0; } .fl-prose blockquote p + p { margin-top: .7rem; }
.fl-prose img:not([class]) { border-radius: .9rem; }
.fl-prose hr { margin: 2rem 0; border: 0; border-top: 1px solid var(--filet); }
/* Ligne-lien : un paragraphe fait d'un seul lien (contenu-build.mjs, lignesLiens) */
.fl-prose p.fl-ligne-lien { margin: .5rem 0 0; padding: 0; border: 0; border-radius: 0; background: none; }
.fl-prose p.fl-ligne-lien + p:not(.fl-ligne-lien), .fl-prose p.fl-ligne-lien + :not(p) { margin-top: 1.4rem; }
.fl-prose p.fl-ligne-lien > a { display: flex; align-items: center; gap: .85rem; padding: .85rem 1.1rem; border-radius: 1rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); color: var(--encre); font-weight: 600; line-height: 1.35; text-decoration: none; overflow-wrap: anywhere; transition: box-shadow .25s var(--ease), color .25s var(--ease), background .25s var(--ease); }
.fl-prose p.fl-ligne-lien > a::after { content: "→"; flex: none; margin-left: auto; color: var(--accent-vif); transition: transform .3s var(--ease); }
.fl-prose p.fl-ligne-lien > a[href^="http"]::after { content: "↗"; }
.fl-prose p.fl-ligne-lien > a:hover, .fl-prose p.fl-ligne-lien > a:focus-visible { box-shadow: inset 0 0 0 1.5px var(--accent-vif); color: var(--accent-vif); outline: none; }
.fl-prose p.fl-ligne-lien > a:hover::after { transform: translateX(4px); }
.fl-prose p.fl-ligne-lien > a[href^="http"]:hover::after { transform: translate(2px, -2px); }
.fl-prose p.fl-ligne-doc > a::before { content: attr(data-type); flex: none; display: grid; place-items: center; min-width: 2.6rem; height: 1.7rem; padding: 0 .35rem; border-radius: .4rem; background: var(--accent-vif); color: #fff; font: 700 .68rem var(--police-instru); letter-spacing: .08em; }
.fl-prose p.fl-ligne-doc > a::after { content: "↓"; }
.fl-prose p.fl-ligne-doc > a:hover::after { transform: translateY(3px); }

/* ── Version créative (par défaut) ── */
.fl-ouverture { padding-block: clamp(3rem, 6.5vw, 6rem) clamp(1.5rem, 3vw, 2.5rem); }
.fl-ouverture + .fl-page { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.v6 .fl-ouverture-titre { margin: 1.1rem 0 0; max-width: 20em; font-size: clamp(1.7rem, 1rem + 2.9vw, 3.6rem); line-height: 1.04; letter-spacing: -.035em; text-wrap: balance; color: var(--encre); }
.v6 .fl-ouverture-moyenne .fl-ouverture-titre { max-width: 24em; font-size: clamp(1.5rem, 1rem + 2.1vw, 2.9rem); line-height: 1.08; }
.v6 .fl-ouverture-longue .fl-ouverture-titre { max-width: 28em; font-size: clamp(1.35rem, 1rem + 1.5vw, 2.35rem); line-height: 1.14; letter-spacing: -.028em; }
.fl-ouverture-titre .v6-lapsus { font-size: 1em; }
.fl-ouverture .fl-trainee { height: clamp(2.6rem, 5vw, 4.6rem); }
.fl-ouverture .fl-trainee path { stroke: var(--rub, var(--accent-vif)); }
html[data-accroche="non"] .fl-ouverture { display: none; }

/* ═══ Rythme vertical — demande du 10/10/2026 : « trop serré à certains endroits, trop d'espace à d'autres » ═══
   Règles générales (aucune police, taille ni couleur changée) ; la marge des sections est réglée dans base.css. */

/* Ouverture (accroche, traînée pointillée, « Toute la rubrique … ») : moins de vide avant le contenu de la page. Sur
   écran large, le lien remonte sous la fin haute de la traînée (son coin droit est vide) au lieu d'ajouter une ligne. */
.fl-ouverture { padding-bottom: clamp(1rem, 2vw, 1.75rem); }
.fl-ouverture + .v6-section, .fl-ouverture + .fl-page, .fl-ouverture + :where(link, style, script) + .v6-section { padding-top: clamp(1.4rem, 2.6vw, 2.25rem); }
@media (min-width: 1100px) { .fl-ouverture .fl-manifeste-bas:has(> .v6-lien:only-child) { margin-top: calc(-1 * clamp(1rem, 2.4vw, 2.4rem)); } }

/* Titre de section posé juste au-dessus d'une liste de cartes (« À venir » de l'agenda) : plus collé aux cartes. */
.fl-evt-avenir > h2 { margin-bottom: clamp(1.1rem, 2vw, 1.6rem); }

/* Arrivée par une ancre (#t-alertes…) : le titre et son surtitre restent sous l'en-tête collant, jamais derrière.
   La marge couvre l'en-tête déployé (5,1rem) ET le tassement de la page pendant le défilement (l'en-tête se réduit). */
:where(.v6) :where(h2, h3):where([id]) { scroll-margin-top: 8rem; }   /* sans poids : une règle d'ancre déjà posée garde la main */
:where(.v6) :where(.v6-surtitre, .fl-surtitre) + :where(h2, h3):where([id]) { scroll-margin-top: 10.5rem; }

/* Agenda en colonne étroite (accueil, « Prochaines dates ») : le bouton « Ajouter à mon agenda » passait sur le titre
   de l'événement. Quand la liste est étroite, il descend sous le titre et le lieu ; un mot long se coupe au lieu de
   déborder. La liste se mesure elle-même (requête de conteneur) : aucun chevauchement de 320 à 1920 px. */
.fl-agenda-liste { container-type: inline-size; }
.fl-agenda-info b, .fl-agenda-info a { overflow-wrap: break-word; }
@container (max-width: 18rem) {
  .fl-agenda-ligne { grid-template-columns: auto minmax(0, 1fr); }
  .fl-agenda-ligne .fl-agenda-garder { grid-column: 2; justify-self: start; margin-top: .15rem; }
}
@media (min-width: 560px) {   /* libellé complet « Ajouter à mon agenda » (au-dessous de 560 px, « Ajouter » tient à côté) */
  @container (max-width: 32rem) {
    .fl-agenda-ligne { grid-template-columns: auto minmax(0, 1fr); }
    .fl-agenda-ligne .fl-agenda-garder { grid-column: 2; justify-self: start; margin-top: .15rem; }
  }
}

/* Prose importée (articles Joomla dans .fl-prose) :
   - une image ou un bouton-image qui suit un lien ou du texte dans le même bloc n'y est plus collé ;
   - un titre-lien (h5/h6 fait d'un seul lien, « Modèle de CMNCI au format pdf ») garde de l'air avant son image,
     et le titre-lien ou paragraphe suivant (« QS-Sport au format pdf ») ne se colle pas sous elle ;
   - les paragraphes courts consécutifs (tarifs, listes écrites en paragraphes, classe fl-p-court posée à la
     construction) se resserrent comme les lignes d'une liste, sans toucher aux vrais paragraphes. */
.fl-prose :is(a, br, strong, b, span, em) + a > img:not([class]),
.fl-prose :is(a, strong, b, span, em) + img:not([class]),
.fl-prose br + img:not([class]) { margin-top: 1.1rem; }
.fl-prose :is(h5, h6):has(> a[href]:only-child) + p:has(> a:only-child > img:only-child) { margin-top: 1.1rem; }
.fl-prose :is(p, h5, h6):has(img) + :is(p, h5:has(> a[href]:only-child), h6:has(> a[href]:only-child)) { margin-top: 1.1rem; }   /* et le lien suivant ne colle pas sous l'image */
.fl-prose p.fl-p-court + p.fl-p-court { margin-top: .3rem; }
html:not([data-accroche="non"]) .fl-avec-ouverture .fl-chapo { display: none; }
/* Chapitres : repère d'instrument, puis le titre en grand, sa fin en italique bleu */
html:not([data-style="classique"]) .fl-page-grille > .fl-article { max-width: 52rem; }
html:not([data-style="classique"]) .fl-article > .fl-prose { font-size: 1.06rem; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h2 { margin-top: clamp(3.2rem, 6vw, 5rem) !important; padding-top: 0; border-top: 0; font: 700 clamp(1.8rem, 1.2rem + 2.1vw, 3.1rem) / 1.02 var(--police-display); letter-spacing: -.04em; text-wrap: balance; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h2::before { content: counter(chapitre, decimal-leading-zero); display: block; position: static; width: auto; height: auto; margin-bottom: 1.1rem; padding-left: 2.5rem; font: 400 .72rem var(--police-instru); letter-spacing: .16em; color: var(--rub, #001CA8);
  background: linear-gradient(currentColor, currentColor) left center / 1.7rem 2px no-repeat, radial-gradient(circle, currentColor 2.4px, transparent 2.9px) .575rem center / .55rem .55rem no-repeat; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h2:first-child { margin-top: 0 !important; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h2 + * { margin-top: 1.5rem; }
html:not([data-style="classique"]) .fl-prose h2 .v6-lapsus { font-size: .92em; color: var(--rub, var(--accent-vif)); }
html:not([data-style="classique"]) .fl-prose h3 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); letter-spacing: -.02em; margin-top: 2.4rem !important; }
/* Sur une page sans h2, les h3 sont les chapitres (h3[data-chapitre], posé à la construction) : même dessin, un cran en dessous. */
.fl-article > .fl-prose > h3[data-chapitre] { counter-increment: chapitre; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h3[data-chapitre] { margin-top: clamp(2.8rem, 5vw, 4.2rem) !important; font: 700 clamp(1.55rem, 1.15rem + 1.5vw, 2.4rem) / 1.06 var(--police-display); letter-spacing: -.035em; text-wrap: balance; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h3[data-chapitre]::before { content: counter(chapitre, decimal-leading-zero); display: block; margin-bottom: .9rem; padding-left: 2.5rem; font: 400 .72rem var(--police-instru); letter-spacing: .16em; color: var(--rub, #001CA8);
  background: linear-gradient(currentColor, currentColor) left center / 1.7rem 2px no-repeat, radial-gradient(circle, currentColor 2.4px, transparent 2.9px) .575rem center / .55rem .55rem no-repeat; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h3[data-chapitre]:first-child { margin-top: 0 !important; }
html:not([data-style="classique"]) .fl-article > .fl-prose > h3[data-chapitre] + * { margin-top: 1.3rem; }
html:not([data-style="classique"]) .fl-prose h3[data-chapitre] .v6-lapsus { font-size: .92em; color: var(--rub, var(--accent-vif)); }
html[data-style="classique"] .fl-prose h3 .v6-lapsus { font: inherit; font-style: normal; color: inherit; letter-spacing: inherit; padding: 0; }
html:not([data-style="classique"]) .fl-prose img:not([class]) { border-radius: 1.2rem; }

/* ── Version classique : la feuille blanche ── */
html[data-style="classique"] .fl-page-grille > .fl-article, html[data-style="classique"] .fl-evenement-grille > .fl-article { background: var(--voile); border: 1px solid var(--filet); border-radius: 1.5rem; padding: clamp(1.25rem, 3.4vw, 3rem); box-shadow: 0 30px 60px -48px rgba(18, 13, 22, .45); }
@media (min-width: 1000px) { html[data-style="classique"] .fl-page-grille > .fl-article { max-width: 54rem; } }
html[data-style="classique"] .fl-article > .fl-prose > h2 { border-top-color: var(--filet); background: linear-gradient(var(--rub, #001CA8), var(--rub, #001CA8)) left top / 3rem 3px no-repeat; }
html[data-style="classique"] .fl-article > .fl-prose > h2::before { display: none; }
html[data-style="classique"] .fl-article > .fl-prose:has(> h2 ~ h2) > h2::before { content: counter(chapitre, decimal-leading-zero); display: block; position: static; width: auto; height: auto; margin-bottom: .5rem; background: none; font: 600 .74rem var(--police-instru); letter-spacing: .16em; color: var(--rub, #001CA8); }
html[data-style="classique"] .fl-article > .fl-prose > h2:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; background: none; }
html[data-style="classique"] .fl-prose h2 .v6-lapsus { font: inherit; font-style: normal; color: inherit; letter-spacing: inherit; padding: 0; }
html[data-style="classique"] .fl-prose p.fl-ligne-lien > a { background: var(--papier); }
html[data-style="classique"] .fl-article .fl-wk-fiche, html[data-style="classique"] .fl-article .fl-rev-classes a { background: var(--papier); }
html[data-style="classique"] .fl-article .fl-rev-visuel { background: var(--voile); }
html[data-style="classique"] .fl-article .fl-qcm-carte { box-shadow: none; background: var(--papier); }
html[data-style="classique"] .fl-article .fl-qcm-rep, html[data-style="classique"] .fl-article .fl-qcm-faits li, html[data-style="classique"] .fl-article .fl-qcm-items li, html[data-style="classique"] .fl-article .fl-qcm-courriel { background: var(--voile); }
html[data-style="classique"] .fl-article .fl-qcm-courriel { box-shadow: inset 0 0 0 1px var(--filet); }
@media (max-width: 559px) { html[data-style="classique"] .fl-page-grille > .fl-article, html[data-style="classique"] .fl-evenement-grille > .fl-article { border-radius: 1.1rem; } }

/* ── Bouton de bascule entre les deux versions (recette) ── */


/* ══ Le journal de la fédération (page Actualités) : filets noirs, titres serrés, dates en rouge. Couleurs de la charte. ══ */
.fl-journal { background: var(--voile); }
.fl-j-tete { display: grid; gap: .9rem; padding-bottom: 1.1rem; margin-bottom: clamp(1.4rem, 3vw, 2.2rem); border-bottom: 4px solid var(--encre); }
.fl-j-edition { margin: 0; font: 400 .72rem var(--police-instru); letter-spacing: .14em; text-transform: uppercase; color: var(--encre-3); }
.fl-j-edition span { margin-right: .6rem; font-weight: 700; color: var(--rouge); }
.v6 .fl-j-titre { margin: 0; font-size: clamp(2.4rem, 1.1rem + 5.2vw, 5.8rem); line-height: .92; letter-spacing: -.045em; }
.fl-j-rubriques { display: flex; flex-wrap: wrap; gap: .2rem 1.5rem; padding-top: .8rem; border-top: 1px solid var(--filet); }
.fl-j-rubriques a { padding: .3rem 0; border-bottom: 2px solid transparent; font: 700 .8rem var(--police-ui); letter-spacing: .07em; text-transform: uppercase; color: var(--encre); text-decoration: none; transition: color .2s, border-color .2s; }
.fl-j-rubriques a:hover, .fl-j-rubriques a:focus-visible { color: var(--accent-vif); border-bottom-color: var(--accent-vif); outline: none; }
.fl-j-une { display: grid; gap: 2rem 2.8rem; }
@media (min-width: 980px) { .fl-j-une { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); } }
.fl-j-grand a, .fl-j-moyen a { display: block; color: var(--encre); text-decoration: none; }
.fl-j-photo { display: block; overflow: hidden; margin-bottom: 1rem; border-radius: .5rem; background: var(--papier); aspect-ratio: 16 / 9; }
.fl-j-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.fl-journal a:hover .fl-j-photo img { transform: scale(1.035); }
.fl-j-tag { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; margin: 0 0 .65rem; font: 700 .72rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; }
.fl-j-tag b { padding: .24rem .55rem; border-radius: .2rem; background: var(--rouge); color: #fff; }
.fl-j-tag span { color: var(--accent-vif); }
.fl-j-tag time { font-weight: 500; letter-spacing: .06em; color: var(--encre-3); }
.fl-j-grand h3 { margin: 0; font: 800 clamp(1.9rem, 1.1rem + 2.9vw, 3.6rem) / .98 var(--police-display); letter-spacing: -.045em; text-wrap: balance; transition: color .2s; }
.fl-j-grand a:hover h3, .fl-j-moyen a:hover h3, .fl-j-fil li a:hover b, .fl-j-lus li a:hover b, .fl-j-bande li a:hover b { color: var(--accent-vif); }
.fl-j-chapo { margin: .85rem 0 0; max-width: 44rem; font-size: 1.08rem; line-height: 1.5; color: var(--encre-2); }
.fl-j-fil { padding-top: .9rem; border-top: 4px solid var(--encre); }
.fl-j-fil h3 { display: flex; align-items: center; gap: .65rem; margin: 0 0 .3rem; font: 800 1.3rem var(--police-display); letter-spacing: -.01em; text-transform: uppercase; }
.fl-j-fil h3 i { width: .6rem; height: .6rem; border-radius: 50%; background: var(--rouge); box-shadow: 0 0 0 4px color-mix(in srgb, var(--rouge) 22%, transparent); animation: fl-voyant 1.6s ease-in-out infinite; }
.fl-j-fil ol { list-style: none; margin: 0; padding: 0; }
.fl-j-fil li a { display: grid; grid-template-columns: 4.3rem minmax(0, 1fr); gap: .8rem; padding: .78rem 0; border-bottom: 1px solid var(--filet); color: var(--encre); text-decoration: none; }
.fl-j-fil time { padding-top: .12rem; font: 700 .86rem var(--police-instru); font-variant-numeric: tabular-nums; color: var(--rouge); }
.fl-j-fil time small { font-size: .8em; font-weight: 400; opacity: .75; }
.fl-j-fil b { display: block; font: 700 .98rem / 1.25 var(--police-display); letter-spacing: -.01em; transition: color .2s; }
.fl-j-fil span > small { display: block; margin-top: .22rem; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--encre-3); }
.fl-j-tout { display: inline-flex; margin-top: 1.1rem; }
.fl-j-suite { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 2rem; margin-top: clamp(2rem, 4vw, 3rem); padding-top: clamp(1.6rem, 3vw, 2.2rem); border-top: 1px solid var(--filet-fort); }
.fl-j-moyen .fl-j-photo { aspect-ratio: 3 / 2; }
.fl-j-moyen h3 { margin: 0; font: 800 clamp(1.25rem, 1.05rem + .7vw, 1.6rem) / 1.08 var(--police-display); letter-spacing: -.03em; text-wrap: balance; transition: color .2s; }
.fl-j-moyen .fl-j-chapo { font-size: .98rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fl-j-bas { display: grid; gap: 2.4rem 2.8rem; margin-top: clamp(2.4rem, 5vw, 3.8rem); }
@media (min-width: 980px) { .fl-j-bas { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
.fl-j-barre { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin: 0 0 .3rem; padding: .6rem .9rem; background: var(--encre); color: #fff; font: 800 1rem var(--police-display); letter-spacing: .04em; text-transform: uppercase; }
.fl-j-barre a { display: inline-flex; align-items: center; gap: .4rem; color: #fff; font: 600 .78rem var(--police-ui); letter-spacing: .02em; text-transform: none; text-decoration: none; }
.fl-j-barre a:hover { text-decoration: underline; }
.fl-j-lus ol { list-style: none; margin: 0; padding: 0; counter-reset: lu; }
.fl-j-lus li { counter-increment: lu; }
.fl-j-lus li a { display: grid; grid-template-columns: 2.8rem minmax(0, 1fr); gap: .25rem .8rem; padding: .85rem 0; border-bottom: 1px solid var(--filet); color: var(--encre); text-decoration: none; }
.fl-j-lus li a::before { content: counter(lu); grid-row: 1 / span 2; font: 800 2.5rem / .85 var(--police-display); letter-spacing: -.05em; color: var(--accent-vif); }
.fl-j-lus li:first-child a::before { color: var(--rouge); }
.fl-j-lus b { font: 700 1rem / 1.25 var(--police-display); letter-spacing: -.01em; transition: color .2s; }
.fl-j-lus small { grid-column: 2; font-size: .8rem; color: var(--encre-3); }
.fl-j-bandes { display: grid; gap: 2.2rem 2rem; align-content: start; }
@media (min-width: 700px) { .fl-j-bandes { grid-template-columns: 1fr 1fr; } }
.fl-j-bande ul { list-style: none; margin: 0; padding: 0; }
.fl-j-bande li a { display: grid; gap: .5rem; padding: .85rem 0; border-bottom: 1px solid var(--filet); color: var(--encre); text-decoration: none; }
.fl-j-bande b { display: block; font: 700 1rem / 1.25 var(--police-display); letter-spacing: -.01em; transition: color .2s; }
.fl-j-bande li:first-child b { font-size: 1.22rem; font-weight: 800; letter-spacing: -.025em; }
.fl-j-bande small { font-size: .8rem; color: var(--encre-3); }
.fl-j-photo-petite { margin-bottom: .3rem; }
.fl-j-annees { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin: clamp(2rem, 4vw, 3rem) 0 0; padding-top: 1.1rem; border-top: 4px solid var(--encre); }
.fl-j-annees span { margin-right: .7rem; font: 700 .78rem var(--police-ui); letter-spacing: .08em; text-transform: uppercase; }
.fl-j-annees a { padding: .36rem .85rem; border-radius: 99px; box-shadow: inset 0 0 0 1px var(--filet-fort); color: var(--encre); font: 600 .86rem var(--police-ui); font-variant-numeric: tabular-nums; text-decoration: none; transition: background .2s, color .2s; }
.fl-j-annees a:hover, .fl-j-annees a:focus-visible { background: var(--encre); color: #fff; box-shadow: none; outline: none; }
@media (prefers-reduced-motion: reduce) { .fl-j-fil h3 i { animation: none; } }

/* ══ Bandeau photo réduit (réglage « Bandeau photo : Réduit ») : la photo reste, en bande basse. Avant les règles de
   l'en-tête sur blanc, qui l'emportent pour les articles en style créatif. ══ */
html[data-heros="reduit"] .fl-scene-courte { min-height: 0; }
html[data-heros="reduit"] .fl-scene-courte .fl-scene-zone { width: 100%; padding-top: clamp(1.8rem, 3.4vw, 2.8rem); padding-bottom: clamp(1.5rem, 2.8vw, 2.2rem); }
html[data-heros="reduit"] .v6 .fl-scene-courte .fl-titre { max-width: 26ch; font-size: clamp(1.9rem, 1rem + 2.7vw, 3.3rem); }
html[data-heros="reduit"] .fl-scene-courte .fl-horizon { display: none; }
html[data-heros="reduit"] .fl-scene-courte .fl-chapo { max-width: 44rem; margin-top: .9rem; font-size: 1.02rem; }
html[data-heros="reduit"] .fl-scene-courte .fl-fil ol { margin-bottom: 1rem; }

/* ══ En-tête sur blanc (titre noir, filet épais, chapô en gras) : la une des articles d'actualité en style créatif, et
   toutes les pages quand le bandeau photo est retiré (réglage « Bandeau photo : Sans ») ══ */
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) { min-height: 0; background: var(--voile); color: var(--encre); overflow: visible; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-plans, :is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-horizon, :is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-instru { display: none; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-scene-zone { width: 100%; padding-top: clamp(1.6rem, 4vw, 3rem); padding-bottom: 0; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-scene-zone::after { content: ""; display: block; margin-top: clamp(1.5rem, 3vw, 2.4rem); border-bottom: 4px solid var(--encre); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-fil ol { padding: 0; background: none; box-shadow: none; color: var(--encre-2); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-fil a { color: #001CA8; text-decoration-color: rgba(0, 28, 168, .45); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-fil [aria-current] { color: var(--encre); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-fil li + li::before { color: var(--accent-vif); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-texte { max-width: none; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-sur { font-weight: 700; color: var(--accent-vif); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-sur .fl-sur-classe { padding: .26rem .6rem; border-radius: .2rem; background: var(--rouge); color: #fff; box-shadow: none; }
.v6 :is(:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte), html[data-heros="sans"] .fl-scene-courte) .fl-titre { max-width: 21ch; margin-top: 1rem; font-size: clamp(2.1rem, 1rem + 4.4vw, 5.2rem); line-height: .96; letter-spacing: -.045em; color: var(--encre); text-wrap: balance; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-titre .v6-lapsus { color: var(--accent-vif); background: none; text-decoration: none; box-shadow: none; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-chapo { max-width: 50rem; margin-top: 1.4rem; font-size: clamp(1.12rem, 1rem + .6vw, 1.45rem); font-weight: 600; line-height: 1.45; color: var(--encre); }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) + .fl-page { padding-top: clamp(1.8rem, 4vw, 3rem); background: var(--voile); }
/* Dans l'article : lettrine, photo de une, colonne « à la une » numérotée */
html:not([data-style="classique"]) .fl-type-article .fl-article > .fl-prose > p:first-child:not([class])::first-letter { float: left; margin: .06em .12em 0 0; font: 800 3.7em / .82 var(--police-display); color: var(--accent-vif); }
html:not([data-style="classique"]) .fl-type-article .fl-une { border-radius: .5rem; }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc ul { counter-reset: une; margin: 0; padding: 0; border: 0; list-style: none; }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc li { counter-increment: une; margin: 0; padding: 0; border: 0; }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc li a { display: grid; grid-template-columns: 2.1rem minmax(0, 1fr); gap: .7rem; align-items: start; padding: .75rem 0; border: 0; border-bottom: 1px solid var(--filet); font: 700 .96rem / 1.25 var(--police-display); letter-spacing: -.01em; color: var(--encre); text-decoration: none; }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc li a::before { content: counter(une); font: 800 1.8rem / .9 var(--police-display); letter-spacing: -.05em; color: var(--accent-vif); }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc li:first-child a::before { color: var(--rouge); }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc li a:hover { color: var(--accent-vif); }
html:not([data-style="classique"]) .fl-sommaire-article .fl-sommaire-bloc > .fl-instru-lib { margin: 0; padding: .55rem .8rem; background: var(--encre); color: #fff; font: 800 .9rem var(--police-display); letter-spacing: .05em; text-transform: uppercase; }
/* Listes d'articles (toutes les actualités, rubriques) : titres de journal */
html:not([data-style="classique"]) .fl-agenda-liens .fl-cat-ligne > span > b, html:not([data-style="classique"]) .fl-agenda-liens .fl-agenda-ligne a > span > b { font: 700 1.08rem / 1.22 var(--police-display); letter-spacing: -.015em; }
html:not([data-style="classique"]) .fl-agenda-liens .fl-agenda-ligne { border-top-color: var(--filet-fort); }
html:not([data-style="classique"]) .fl-scene-journal.fl-chapo-repete .fl-chapo { display: none; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-titre .v6-lapsus { font-style: italic; }
/* Sur téléphone : l'article d'abord, la colonne « À la une » ensuite ; bouton de bascule réduit */
@media (max-width: 999px) { .fl-type-article .fl-page-grille > .fl-sommaire-article { order: 2; } }

/* Sans bandeau photo, hors une de journal : le fond de la page et la couleur de la rubrique */
html[data-heros="sans"] .fl-scene-courte:not(.fl-scene-journal), html[data-heros="sans"][data-style="classique"] .fl-scene-courte { background: var(--papier); }
html[data-heros="sans"] .fl-scene-courte:not(.fl-scene-journal) + .fl-page, html[data-heros="sans"][data-style="classique"] .fl-scene-journal + .fl-page { background: transparent; }
html[data-heros="sans"] .fl-scene-courte:not(.fl-scene-journal) .fl-sur { color: var(--rub, var(--accent-vif)); }
html[data-heros="sans"] .fl-scene-courte:not(.fl-scene-journal) .fl-sur .fl-sur-classe { background: var(--rub, var(--accent-vif)); }
html[data-heros="sans"] .fl-scene-courte .fl-voile, html[data-heros="sans"] .fl-scene-courte .fl-nuees, html[data-heros="sans"] .fl-scene-courte .v6-index, html[data-heros="sans"] .fl-scene-courte .v6-pause { display: none; }

/* ══ Autres réglages du panneau « Affichage » ══ */
html[data-instruments="non"] .fl-altimetre, html[data-instruments="non"] .fl-horizon, html[data-instruments="non"] .fl-instru { display: none !important; }
html[data-couleurs="bleu"] [class*="fl-rub-"] { --rub: #001CA8; --rub-clair: #F5F5F5; }
html[data-colonne="non"] .fl-page-grille { grid-template-columns: minmax(0, 1fr); }
html[data-colonne="non"] .fl-page-grille > .fl-sommaire { display: none; }
html[data-colonne="non"] .fl-page-grille > .fl-article { width: 100%; max-width: 52rem; margin-inline: auto; }
html[data-anim="non"] *, html[data-anim="non"] *::before, html[data-anim="non"] *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
html[data-anim="non"] [data-v6-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
html[data-anim="non"] [data-v6-reveal="image"] img { transform: none !important; }
html[data-anim="non"] .fl-nuees { display: none !important; }

/* ══ Barre « Affichage » (recette) : un bouton en bas à gauche ouvre une barre de réglages en bas de l'écran, pour que la
   page reste visible pendant qu'on compare. Couleurs de la charte. ══ */
.fl-aff-bouton { position: fixed; left: 1.1rem; bottom: 1.1rem; z-index: 71; display: inline-flex; align-items: center; gap: .5rem; padding: .62rem 1rem .62rem .85rem; border: 0; border-radius: 999px; background: var(--encre, #120D16); color: #fff; font: 600 .86rem var(--police-ui, system-ui); cursor: pointer; box-shadow: 0 10px 24px -12px rgba(18, 13, 22, .6); }
.fl-aff-bouton:hover, .fl-aff-bouton:focus-visible { background: var(--accent-vif, #001CA8); outline: none; }
.fl-aff-bouton:focus-visible { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--accent-vif, #001CA8); }
.fl-aff-bouton svg { width: 1.1rem; height: 1.1rem; }
.fl-aff-bouton b { display: grid; place-items: center; min-width: 1.3rem; height: 1.3rem; padding: 0 .3rem; box-sizing: border-box; border-radius: 99px; background: var(--rouge, #F32837); font-size: .72rem; font-variant-numeric: tabular-nums; }
.fl-aff { position: fixed; left: 0; right: 0; bottom: 0; z-index: 72; box-sizing: border-box; padding: .7rem clamp(.8rem, 2vw, 1.6rem) .55rem; background: #fff; color: var(--encre, #120D16); border-top: 3px solid var(--encre, #120D16); box-shadow: 0 -22px 50px -28px rgba(18, 13, 22, .55); font: 400 .88rem/1.4 var(--police-texte, system-ui); }
.fl-aff p { margin: 0; }
.fl-aff-haut { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; }
.fl-aff-titre { font: 800 1.02rem var(--police-display, system-ui); letter-spacing: -.02em; white-space: nowrap; }
.fl-aff-espace { flex: 1 1 0; }
.fl-aff-seg { display: flex; gap: .2rem; padding: .2rem; border-radius: 999px; background: var(--papier, #F5F5F5); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-aff-seg button { all: unset; flex: 1 1 0; box-sizing: border-box; min-width: 0; padding: .4rem .65rem; border-radius: 999px; text-align: center; font: 600 .8rem var(--police-ui, system-ui); color: var(--encre-2, #3a3640); cursor: pointer; white-space: nowrap; }
.fl-aff-seg button:hover { color: var(--accent-vif, #001CA8); }
.fl-aff-seg button:focus-visible { box-shadow: 0 0 0 2px var(--accent-vif, #001CA8); }
.fl-aff-seg button[aria-pressed="true"] { background: var(--accent-vif, #001CA8); color: #fff; }
.fl-aff-ambiances { flex: 0 1 19rem; }
.fl-aff-ambiances button[aria-pressed="true"] { background: var(--encre, #120D16); }
.v6 .fl-aff-haut input, .fl-aff-haut input { box-sizing: border-box; flex: 0 1 12rem; min-width: 8rem; min-height: 0; height: 2.2rem; margin: 0; padding: 0 .8rem; border-radius: 999px; border: 1.5px solid var(--filet-fort); background: #fff; font: inherit; font-size: .84rem; color: inherit; }
.fl-aff-haut input:focus { outline: none; border-color: var(--accent-vif, #001CA8); }
.fl-aff-envoyer { all: unset; box-sizing: border-box; padding: .52rem 1.05rem; border-radius: 999px; background: var(--accent-vif, #001CA8); color: #fff; font: 700 .84rem var(--police-ui, system-ui); white-space: nowrap; cursor: pointer; }
.fl-aff-envoyer:hover, .fl-aff-envoyer:focus-visible { background: var(--encre, #120D16); }
.fl-aff-envoyer:disabled { cursor: default; }
.fl-aff-lien { all: unset; cursor: pointer; font: 600 .8rem var(--police-ui, system-ui); color: var(--accent-vif, #001CA8); text-decoration: underline; text-underline-offset: .18em; white-space: nowrap; }
.fl-aff-lien:focus-visible { outline: 2px solid var(--accent-vif, #001CA8); outline-offset: 2px; }
.fl-aff-fermer { all: unset; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--papier, #F5F5F5); font-size: 1.3rem; line-height: 1; cursor: pointer; }
.fl-aff-fermer:hover, .fl-aff-fermer:focus-visible { background: var(--encre, #120D16); color: #fff; }
.fl-aff-options { display: flex; flex-wrap: wrap; gap: .55rem .9rem; margin-top: .65rem; padding: .6rem 0 .45rem; border-top: 1px solid var(--filet); }
.fl-aff-rang { flex: 1 1 auto; }
.fl-aff-rang > p { margin-bottom: .3rem; font: 700 .76rem var(--police-ui, system-ui); white-space: nowrap; }
.fl-aff-bas { display: flex; justify-content: space-between; align-items: baseline; gap: .2rem 1.2rem; flex-wrap: wrap; min-height: 1.3em; font-size: .78rem; color: var(--encre-3, #6b6770); }
.fl-aff-etat { font-weight: 700; color: var(--accent-vif, #001CA8); overflow-wrap: anywhere; }
.fl-aff-etat.est-erreur { color: var(--rouge, #F32837); }
@media (max-width: 899px) {
  .fl-aff-bouton { left: .75rem; padding: .5rem .85rem .5rem .7rem; font-size: .8rem; }
  .fl-aff { padding: .6rem .8rem .5rem; }
  .fl-aff-titre { flex: 1 1 auto; order: -2; } .fl-aff-fermer { order: -1; } .fl-aff-ambiances { flex: 1 1 100%; } .fl-aff-espace { display: none; }
  .fl-aff-haut input { flex: 1 1 9rem; } .fl-aff-aide { display: none; }
  .fl-aff-options { flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; } .fl-aff-rang { flex: 0 0 auto; }
}
/* Sous 1380 px, l'altimètre est en bas à gauche : le bouton se place au-dessus, et l'altimètre au-dessus de la barre ouverte */
@media (max-width: 1379px) { .fl-aff-bouton { bottom: 4.4rem; } html[data-instruments="non"] .fl-aff-bouton { bottom: 1.1rem; } html.fl-aff-ouvert .fl-altimetre { bottom: calc(var(--fl-aff-h, 12rem) + .6rem); } }
/* Barre ouverte : le bouton « Remarque » remonte au-dessus d'elle */
html.fl-aff-ouvert .rq-dock { bottom: calc(var(--fl-aff-h, 9rem) + 12px) !important; }   /* sa position est posée en ligne par js/remarques.js */
@media print { .fl-aff-bouton, .fl-aff { display: none !important; } }

:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-sur .fl-sur-texte { color: inherit; }

/* Texte posé directement dans un bloc (collages de messagerie) : une longue adresse ne fait pas déborder la page sur téléphone */
.fl-prose div:not([class]), .fl-prose li, .fl-prose td { overflow-wrap: anywhere; min-width: 0; }

.fl-elu-mail { font-size: .84rem; color: var(--accent-vif); text-decoration: none; overflow-wrap: anywhere; }
.fl-elu-mail:hover, .fl-elu-mail:focus-visible { text-decoration: underline; }

/* ══ Espace régional d'un comité (/regions/<comité>) : navigation de l'espace, chiffres, actualités, carte, comité ══ */
.fl-reg-nav { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: 1.2rem; }
.fl-reg-nav a { display: inline-flex; align-items: center; gap: .45rem; padding: .55rem 1.05rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--filet-fort); color: var(--encre); font: 600 .92rem var(--police-ui); text-decoration: none; transition: background .3s var(--ease), color .3s var(--ease), box-shadow .3s var(--ease); }
.fl-reg-nav a:hover, .fl-reg-nav a:focus-visible { background: var(--fonce); color: var(--voile); box-shadow: none; outline: none; }
.fl-reg-nav .fl-reg-nav-fede { margin-left: auto; box-shadow: none; color: var(--accent-vif); padding-inline: .2rem; }
.fl-reg-nav .fl-reg-nav-fede:hover, .fl-reg-nav .fl-reg-nav-fede:focus-visible { background: none; color: var(--accent-vif); text-decoration: underline; }
.fl-reg-espace [id^="t-reg-"] { scroll-margin-top: 7rem; }
.fl-reg-bande { padding-block: 0 clamp(1.5rem, 3vw, 2.5rem); }
.fl-reg-chiffres { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: .8rem; }
.fl-reg-chiffres li { display: grid; gap: .15rem; padding: 1.1rem 1.2rem; border-radius: 1.1rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-reg-chiffres b { font: 800 clamp(1.9rem, 1.3rem + 1.6vw, 2.8rem) / 1 var(--police-display); letter-spacing: -.04em; color: var(--rub, var(--accent-vif)); font-variant-numeric: tabular-nums; }
.fl-reg-chiffres span { font-size: .9rem; color: var(--encre-2); }
.fl-reg-chiffres .fl-reg-president b { font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); line-height: 1.15; letter-spacing: -.02em; color: var(--encre); align-self: end; }
.fl-reg-section { padding-block: clamp(3rem, 6vw, 5.5rem); }
.fl-reg-actus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1.4rem; }
.fl-reg-actus a { display: grid; gap: .45rem; align-content: start; height: 100%; color: var(--encre); text-decoration: none; }
.fl-reg-photo { display: block; overflow: hidden; margin-bottom: .4rem; border-radius: .8rem; aspect-ratio: 3 / 2; background: var(--papier-2); }
.fl-reg-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.fl-reg-actus a:hover .fl-reg-photo img { transform: scale(1.035); }
.fl-reg-actus small { font: 700 .72rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: var(--rub, var(--accent-vif)); }
.fl-reg-actus b { font: 800 clamp(1.2rem, 1.05rem + .6vw, 1.5rem) / 1.1 var(--police-display); letter-spacing: -.03em; text-wrap: balance; transition: color .2s; }
.fl-reg-actus a:hover b { color: var(--accent-vif); }
.fl-reg-actus a > span:last-child { color: var(--encre-2); line-height: 1.5; }
.fl-reg-vide { display: grid; gap: .8rem; max-width: 52rem; padding: 1.3rem 1.4rem; border-radius: 1.1rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-reg-vide p { margin: 0; line-height: 1.55; color: var(--encre-2); } .fl-reg-vide p b { color: var(--encre); }
.fl-reg-vide ul { margin: 0; padding: 0; list-style: none; display: grid; gap: .4rem; }
.fl-reg-voler { display: grid; gap: 1.6rem 2.4rem; align-items: start; margin-bottom: 1.6rem; }
@media (min-width: 900px) { .fl-reg-voler { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); } }
.fl-reg-carte { display: block; width: 100%; height: auto; max-height: 30rem; }
.fl-reg-deps-forme path { fill: color-mix(in srgb, var(--rub, #001CA8) 9%, var(--voile)); stroke: var(--rub, #001CA8); stroke-width: 1.2; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.fl-reg-points circle { r: 2.6px; stroke: var(--voile); stroke-width: 1; vector-effect: non-scaling-stroke; }
.fl-reg-pt-ulm { fill: var(--rouge); } .fl-reg-pt-autre { fill: var(--encre); }
.fl-reg-deps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 9.6rem), 1fr)); gap: .6rem; }
.fl-reg-legende { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; margin: .6rem 0 0; font-size: .82rem; color: var(--encre-3); }
.fl-reg-legende i { display: inline-block; width: .6rem; height: .6rem; margin-right: .4rem; border-radius: 50%; background: var(--encre); } .fl-reg-legende i.ulm { background: var(--rouge); }
.fl-reg-deps li { display: grid; gap: .1rem; padding: .8rem .95rem; border-radius: .9rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-reg-deps b { font: 700 1rem / 1.2 var(--police-display); letter-spacing: -.01em; }
.fl-reg-deps small { font-size: .8rem; color: var(--encre-3); font-variant-numeric: tabular-nums; }
.fl-reg-deps span { display: flex; flex-wrap: wrap; gap: .1rem .9rem; margin-top: .35rem; }
.fl-reg-deps a { font-size: .86rem; font-weight: 600; color: var(--accent-vif); text-decoration: none; }
.fl-reg-deps a:hover, .fl-reg-deps a:focus-visible { text-decoration: underline; }
.fl-reg-terrains { list-style: none; margin: 0 0 1.2rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: .5rem; }
.fl-reg-terrains li > a, .fl-reg-terrains li > span { display: grid; gap: .15rem; height: 100%; box-sizing: border-box; padding: .75rem .95rem; border-radius: .9rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); color: var(--encre); text-decoration: none; transition: box-shadow .2s; }
.fl-reg-terrains li > a:hover, .fl-reg-terrains li > a:focus-visible { box-shadow: inset 0 0 0 1.5px var(--accent-vif); outline: none; }
.fl-reg-terrains b { font: 700 .98rem / 1.25 var(--police-display); letter-spacing: -.01em; }
.fl-reg-terrains li > a:hover b { color: var(--accent-vif); }
.fl-reg-terrains small { font-size: .8rem; line-height: 1.4; color: var(--encre-3); }
.fl-reg-comite { display: grid; gap: 1.8rem 3rem; align-items: start; }
@media (min-width: 900px) { .fl-reg-comite { grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); } }
.fl-reg-fiche { padding: 1.3rem 1.4rem; border-radius: 1.2rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet), 0 40px 70px -56px rgba(18, 13, 22, .5); }
.fl-reg-fiche dl { margin: 0; display: grid; gap: .9rem; }
.fl-reg-fiche dt { font: 400 .68rem var(--police-instru); letter-spacing: .14em; text-transform: uppercase; color: var(--encre-3); }
.fl-reg-fiche dd { margin: .15rem 0 0; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.fl-reg-fiche a { color: var(--accent-vif); }
.fl-reg-reseaux { display: flex; flex-wrap: wrap; gap: .2rem .9rem; }
.fl-reg-texte { display: grid; gap: 1rem; min-width: 0; max-width: 46rem; }
.fl-reg-texte .fl-prose p:first-child { font-size: clamp(1.08rem, 1rem + .35vw, 1.22rem); line-height: 1.6; color: var(--encre); }
.fl-reg-sous { margin: .8rem 0 0; font: 700 1.2rem var(--police-display); letter-spacing: -.015em; }
.fl-reg-bureau { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 13.5rem), 1fr)); gap: .6rem; }
.fl-reg-bureau li { display: grid; gap: .1rem; padding: .8rem .95rem; border-radius: .9rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-reg-bureau b { font: 700 1rem / 1.2 var(--police-display); }
.fl-reg-bureau small { font-size: .84rem; color: var(--rub, var(--accent-vif)); font-weight: 600; }
.fl-reg-bureau a { font-size: .84rem; color: var(--accent-vif); overflow-wrap: anywhere; }
.fl-reg-membres { margin: .6rem 0 0; padding-top: 1rem; border-top: 1px solid var(--filet); font-size: .92rem; color: var(--encre-2); }
.v6-papier-2 .fl-reg-vide, .v6-papier-2 .fl-reg-fiche, .v6-papier-2 .fl-reg-bureau li { background: var(--voile); }
@media (max-width: 559px) { .fl-reg-nav .fl-reg-nav-fede { margin-left: 0; } .fl-reg-nav a { padding: .5rem .85rem; font-size: .86rem; } }

.fl-comite-espace { margin: .4rem 0 .8rem; }
.fl-j-regions { margin-top: clamp(2rem, 4vw, 3rem); }
.fl-j-regions ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0 2rem; }
.fl-j-regions li a { display: grid; gap: .3rem; padding: .9rem 0; border-bottom: 1px solid var(--filet); color: var(--encre); text-decoration: none; }
.fl-j-regions small { font: 700 .72rem var(--police-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--accent-vif); }
.fl-j-regions b { font: 700 1.02rem / 1.25 var(--police-display); letter-spacing: -.01em; transition: color .2s; }
.fl-j-regions li a:hover b { color: var(--accent-vif); }

/* Carte d'un espace régional : points et départements cliquables */
.fl-reg-deps-forme path { cursor: pointer; transition: fill .2s; outline: none; }
.fl-reg-deps-forme path:hover, .fl-reg-deps-forme path:focus-visible { fill: color-mix(in srgb, var(--rub, #001CA8) 20%, var(--voile)); }
.fl-reg-deps-forme path:focus-visible { stroke-width: 2.6; }
.fl-reg-deps-forme path.est-choisi { fill: color-mix(in srgb, var(--rub, #001CA8) 30%, var(--voile)); }
.fl-reg-points a { cursor: pointer; outline: none; }
.fl-reg-points .fl-reg-zone { r: 6px; fill: transparent; stroke: none; }
.fl-reg-points a circle:not(.fl-reg-zone) { transition: r .15s; }
.fl-reg-points a:hover circle:not(.fl-reg-zone), .fl-reg-points a:focus-visible circle:not(.fl-reg-zone) { r: 4.6px; stroke: var(--encre); stroke-width: 1.5; }
.fl-reg-carte-nom { margin: .5rem 0 0; min-height: 1.5em; font-size: .88rem; color: var(--encre-3); }
.fl-reg-carte-nom.est-nomme { color: var(--encre); font-weight: 700; }

/* Exemples de publications d'un comité (site d'essai) */
.fl-reg-ex-note { max-width: 52rem; margin: 0 0 1.6rem; padding: .85rem 1.1rem; border-radius: .9rem; border-left: 4px solid var(--accent-vif); background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); font-size: .95rem; line-height: 1.5; color: var(--encre-2); }
.fl-reg-ex-note b { color: var(--encre); }

/* ═══════════ Mini-site régional (proposition) ═══════════
   Un espace régional traité comme un petit site : héros avec la silhouette de la région en écran de navigation,
   barre de rubriques collante, tableau de bord, survol par paysages, film, parcours « débuter », questions. */
.fl-mini [id^="t-mini-"], .fl-mini [id^="t-reg-"], .fl-mini .fl-reg-voler { scroll-margin-top: var(--mini-decalage, 9.5rem); }
/* Héros */
.fl-mini-ecran { position: absolute; z-index: 1; right: -14%; top: 5.5rem; width: 86vw; opacity: .5; pointer-events: none; }
.fl-mini-silhouette { display: block; width: 100%; height: auto; max-height: min(62svh, 33rem); overflow: visible; }
.fl-mini-grille line { stroke: rgba(245, 245, 245, .16); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-dasharray: 2 6; }
.fl-mini-grille text { font: 500 calc(var(--u) * 2.3) var(--police-instru); fill: rgba(245, 245, 245, .5); letter-spacing: .08em; }
.fl-mini-contours path { fill: rgba(0, 28, 168, .34); stroke: rgba(245, 245, 245, .92); stroke-width: calc(var(--u) * .34); stroke-linejoin: round; stroke-dasharray: 1; animation: fl-mini-trace 2.4s var(--ease) both; }
.fl-mini-balises circle { transform-box: fill-box; transform-origin: center; }
.fl-mini-balises .ulm { fill: #F32837; }
.fl-mini-balises .autre { fill: #F5F5F5; }
.fl-mini-silhouette .fl-mini-balises circle { animation: fl-mini-point .6s var(--ease) both; animation-delay: 1.5s; }
.fl-mini-silhouette .fl-mini-balises circle:nth-child(4n+1) { animation-delay: 1.75s; }
.fl-mini-silhouette .fl-mini-balises circle:nth-child(4n+2) { animation-delay: 2s; }
.fl-mini-silhouette .fl-mini-balises circle:nth-child(4n+3) { animation-delay: 2.25s; }
@keyframes fl-mini-trace { from { stroke-dashoffset: 1; fill-opacity: 0; } 55% { fill-opacity: 0; } to { stroke-dashoffset: 0; fill-opacity: 1; } }
@keyframes fl-mini-point { from { opacity: 0; scale: 0; } to { opacity: 1; scale: 1; } }
@media (prefers-reduced-motion: reduce) { .fl-mini-contours path, .fl-mini-silhouette .fl-mini-balises circle { animation: none; } }
.fl-mini-position { display: none; margin: .9rem 0 0; font: 500 .74rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: rgba(245, 245, 245, .62); }
.fl-mini-position b { margin-right: .9rem; padding: .28rem .6rem; border-radius: 999px; background: rgba(0, 28, 168, .7); color: #fff; font-weight: 600; }
@media (min-width: 960px) {
  .fl-mini-ecran { right: clamp(1.25rem, 5vw, 5.5rem); top: 50%; translate: 0 -54%; width: min(42vw, 37rem); opacity: 1; }
  .fl-mini-position { display: flex; align-items: center; justify-content: flex-end; }
  .fl-mini-heros .fl-texte { max-width: min(100%, 39rem); }
  .fl-mini-heros .fl-titre { max-width: 11ch; }
  .fl-mini-heros-long .fl-titre { max-width: 15ch; font-size: clamp(2.8rem, 1.2rem + 3.9vw, 4.7rem); }
}
/* Barre de rubriques */
.fl-mini-barre { position: sticky; top: var(--mini-haut, 5.1rem); z-index: 40; background: #120D16; color: #fff; border-top: 1px solid rgba(245, 245, 245, .16); border-bottom: 1px solid rgba(245, 245, 245, .16); }
.fl-mini-barre.est-collee { box-shadow: 0 16px 30px -20px rgba(18, 13, 22, .85); }
.fl-mini-barre .v6-zone { display: flex; align-items: center; gap: .6rem 1.2rem; min-height: 3.5rem; }
.fl-mini-marque { flex: none; display: grid; gap: .12rem; line-height: 1.05; color: #fff; text-decoration: none; }
.fl-mini-marque b { font: 800 1.02rem var(--police-display); letter-spacing: -.02em; }
.fl-mini-marque small { display: none; font: 600 .6rem var(--police-ui); letter-spacing: .14em; text-transform: uppercase; color: rgba(245, 245, 245, .56); }
.fl-mini-barre ul { display: flex; gap: .15rem; min-width: 0; margin: 0 0 0 auto; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.fl-mini-barre ul::-webkit-scrollbar { display: none; }
.fl-mini-barre ul a { display: block; padding: .48rem .8rem; border-radius: 999px; color: rgba(245, 245, 245, .78); font: 600 .9rem var(--police-ui); text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; }
.fl-mini-barre ul a:hover, .fl-mini-barre ul a:focus-visible { background: rgba(245, 245, 245, .12); color: #fff; outline: none; }
.fl-mini-barre ul a[aria-current] { background: #F5F5F5; color: #120D16; }
.fl-mini-federal { display: none; flex: none; align-items: center; gap: .35rem; padding-left: 1rem; border-left: 1px solid rgba(245, 245, 245, .18); color: rgba(245, 245, 245, .72); font: 600 .84rem var(--police-ui); text-decoration: none; }
.fl-mini-federal:hover, .fl-mini-federal:focus-visible { color: #fff; }
@media (min-width: 1100px) { .fl-mini-marque small { display: block; } .fl-mini-federal { display: inline-flex; } }
.fl-mini-panneau { border-top: 0; }
/* Survol : une étape par paysage, avec sa carte */
.fl-mini-etapes { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(2.6rem, 6vw, 5.5rem); }
.fl-mini-etape { display: grid; gap: 1.5rem clamp(2rem, 5vw, 4.5rem); align-items: center; }
@media (min-width: 900px) { .fl-mini-etape { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); } .fl-mini-etape:nth-child(even) .fl-mini-etape-carte { order: 2; } }
.fl-mini-etape-carte { padding: clamp(1.1rem, 2.6vw, 2.2rem); border-radius: 1.6rem; background: #120D16; box-shadow: 0 40px 60px -46px rgba(18, 13, 22, .7); }
.fl-mini-carte { display: block; width: 100%; height: auto; max-height: 23rem; }
.fl-mini-fond path { fill: rgba(245, 245, 245, .05); stroke: rgba(245, 245, 245, .3); stroke-width: 1; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.fl-mini-plein path { fill: #001CA8; stroke: #F5F5F5; stroke-width: 1.5; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.fl-mini-balise { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; margin: 0 0 .9rem; font: 600 .74rem var(--police-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--encre-3); }
.fl-mini-balise b { color: var(--accent-vif); }
.fl-mini-balise i { flex: 0 0 2.4rem; height: 1px; background: currentColor; }
.fl-mini-etape h3 { margin: 0; font-size: clamp(1.9rem, 1.3rem + 2.3vw, 3.3rem); line-height: 1; letter-spacing: -.04em; text-wrap: balance; }
.fl-mini-recit { margin: 1rem 0 0; max-width: 34rem; font-size: 1.08rem; line-height: 1.6; color: var(--encre-2); }
.fl-mini-faits { display: flex; flex-wrap: wrap; gap: .7rem 2.4rem; margin: 1.5rem 0 0; }
.fl-mini-faits div { display: grid; gap: .15rem; }
.fl-mini-faits dt { font: 600 .7rem var(--police-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--encre-3); }
.fl-mini-faits dd { margin: 0; font: 800 clamp(1.7rem, 1.2rem + 1.3vw, 2.4rem) / 1 var(--police-display); letter-spacing: -.04em; color: var(--accent-vif); font-variant-numeric: tabular-nums; }
.fl-mini-repere { margin: 1.1rem 0 0; font-size: .95rem; color: var(--encre-2); }
.fl-mini-repere a { color: var(--accent-vif); font-weight: 600; }
.fl-mini-choix-deps { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.3rem 0 0; }
.fl-mini-choix-deps button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: baseline; gap: .5rem; padding: .5rem .95rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--filet-fort); font: 600 .9rem var(--police-ui); color: var(--encre); transition: background .2s, color .2s; }
.fl-mini-choix-deps button small { font-weight: 500; color: var(--encre-3); transition: color .2s; }
.fl-mini-choix-deps button:hover, .fl-mini-choix-deps button:focus-visible { background: var(--fonce); color: var(--voile); box-shadow: none; }
.fl-mini-choix-deps button:hover small, .fl-mini-choix-deps button:focus-visible small { color: rgba(245, 245, 245, .7); }
.fl-mini-choix-deps button:focus-visible { outline: 2px solid var(--accent-vif); outline-offset: 2px; }
/* Débuter */
.fl-mini-plan { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 860px) { .fl-mini-plan { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fl-mini-plan li { display: grid; gap: .6rem; align-content: start; padding: 1.5rem 1.5rem 1.6rem; border-radius: 1.3rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-mini-plan .fl-instru-lib { color: var(--accent-vif); }
.fl-mini-plan b { font: 800 1.35rem / 1.12 var(--police-display); letter-spacing: -.03em; text-wrap: balance; }
.fl-mini-plan p { margin: 0; line-height: 1.55; color: var(--encre-2); }
.fl-mini-plan .v6-lien { justify-self: start; margin-top: .2rem; }
.fl-mini-choix { display: flex; flex-wrap: wrap; align-items: end; gap: .9rem 1rem; margin-top: 1.4rem; padding: 1.4rem 1.5rem; border-radius: 1.3rem; background: #120D16; color: #fff; }
.fl-mini-choix label { flex: 1 1 15rem; display: grid; gap: .45rem; }
.fl-mini-choix .fl-instru-lib { color: rgba(245, 245, 245, .62); }
.fl-mini-choix select { width: 100%; padding: .85rem 1rem; border: 0; border-radius: .8rem; background: #F5F5F5; color: #120D16; font: 600 1rem var(--police-ui); }
.fl-mini-choix select:focus-visible { outline: 2px solid var(--clair); outline-offset: 2px; }
/* Questions */
.fl-mini-accordeon { max-width: 54rem; }
.fl-mini-accordeon summary { padding: 1rem 1.2rem; font-size: 1.05rem; }
.fl-mini-accordeon .fl-prose { padding: 0 1.2rem 1rem; }

/* Mini-site : mot du président, vidéo du comité, galerie */
.fl-mini-mot figure { max-width: 56rem; margin: 0; }
.fl-mini-mot blockquote { margin: 1.1rem 0 0; padding: 0; border: 0; }
.fl-mini-mot blockquote p { margin: 0; font: 600 clamp(1.35rem, 1.05rem + 1.3vw, 2.15rem) / 1.32 var(--police-display); letter-spacing: -.02em; color: var(--encre); text-wrap: pretty; }
.fl-mini-mot blockquote p::before { content: '« '; color: var(--accent-vif); }
.fl-mini-mot blockquote p::after { content: ' »'; color: var(--accent-vif); }
.fl-mini-mot figcaption { display: grid; gap: .12rem; margin-top: 1.4rem; padding-left: 1rem; border-left: 3px solid var(--accent-vif); }
.fl-mini-mot figcaption b { font: 700 1rem var(--police-display); color: var(--encre); }
.fl-mini-mot figcaption span { font-size: .88rem; color: var(--encre-3); }
.fl-mini-video { min-width: 0; border-radius: 1.4rem; overflow: hidden; }
.fl-mini-video .fl-media { margin: 0; }
.fl-mini-photos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.fl-mini-photos figure { position: relative; height: 100%; margin: 0; overflow: hidden; border-radius: 1.1rem; aspect-ratio: 4 / 3; background: var(--papier-2); }
.fl-mini-photos img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s var(--ease); }
.fl-mini-photos li:hover img { transform: scale(1.04); }
.fl-mini-photos figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.8rem .95rem .75rem; background: linear-gradient(transparent, rgba(18, 13, 22, .8)); color: #fff; font: 600 .86rem var(--police-ui); }
.fl-mini-photos li:first-child { grid-column: span 2; }
.fl-mini-photos li:first-child figure { aspect-ratio: 16 / 9; }
@media (min-width: 800px) {
  .fl-mini-photos { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
  .fl-mini-photos li:first-child { grid-row: span 2; }
  .fl-mini-photos li:first-child figure { aspect-ratio: auto; }
}

/* Repère d'une ancre de page reprise de Joomla (cible d'un sommaire) : dégagé de l'en-tête collant */
.fl-ancre { display: block; height: 0; scroll-margin-top: 7rem; }

/* Bande photo (remplace l'ancienne « couche nuageuse ») */
.fl-bande-photo { position: relative; display: grid; align-items: end; height: clamp(20rem, 52vh, 31rem); overflow: hidden; isolation: isolate; background: #120D16; }
.fl-bande-photo img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
/* Bandes déroulées au défilement : la vidéo recouvre la photo dès qu'une image est prête ; avant, la photo seule */
.fl-bande-photo video[data-defile], .fl-finale-ciel video[data-defile] { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .6s; }
.fl-bande-photo video.est-prete, .fl-finale-ciel video.est-prete { opacity: 1; }
.fl-finale-ciel { z-index: -2; } .fl-finale-ciel video[data-defile] { z-index: 0; }
.fl-bande-photo::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(18, 13, 22, 0) 35%, rgba(18, 13, 22, .72) 100%); }
.fl-bande-photo-texte { margin: 0; padding: clamp(1.4rem, 4vw, 3rem) clamp(1.25rem, 4vw, 3.5rem); color: #fff; font: 800 clamp(1.7rem, 1.1rem + 2.6vw, 3.4rem) / 1.05 var(--police-display); letter-spacing: -.04em; text-wrap: balance; }
.fl-bande-photo-texte .v6-lapsus { color: var(--clair); }
/* Vol découverte : le dispositif, en quatre points */
.fl-decouverte-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
.fl-decouverte-points li { display: grid; gap: .5rem; align-content: start; padding: 1.4rem 1.4rem 1.5rem; border-radius: 1.3rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); }
.fl-decouverte-points b { font: 800 1.2rem / 1.15 var(--police-display); letter-spacing: -.02em; text-wrap: balance; }
.fl-decouverte-points span { color: var(--encre-2); line-height: 1.55; }
/* Vidéo des six classes */
.fl-video-classes { max-width: 60rem; }
.fl-video-classes .fl-media { margin: 0; }
/* Accueil : photos qui tournent, voile plus dense à gauche (sous le texte) et transparent à droite (l'appareil) */
.fl-commande-photos { margin-top: clamp(1.4rem, 3vw, 2.2rem); }
.fl-scene-accueil .fl-plan { transition-duration: 2.2s; }   /* fondu lent entre les photos, le texte ne bouge pas */
@media (prefers-reduced-motion: reduce) { .fl-plan img, .fl-plan video { transition: none; transform: none; } }
.fl-scene-accueil .fl-voile { background:
  linear-gradient(90deg, rgba(18, 13, 22, .76) 0%, rgba(18, 13, 22, .58) 34%, rgba(18, 13, 22, .22) 58%, rgba(18, 13, 22, 0) 80%),
  linear-gradient(0deg, rgba(18, 13, 22, .62) 0%, rgba(18, 13, 22, .12) 40%, transparent 60%); }
.fl-scene-accueil.a-video .fl-voile { background:
  linear-gradient(90deg, rgba(18, 13, 22, .9) 0%, rgba(18, 13, 22, .74) 36%, rgba(18, 13, 22, .3) 62%, rgba(18, 13, 22, 0) 84%),
  linear-gradient(0deg, rgba(18, 13, 22, .66) 0%, rgba(18, 13, 22, .14) 40%, transparent 60%); }
@media (max-width: 700px) { .fl-scene-accueil .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .88) 0%, rgba(18, 13, 22, .58) 55%, rgba(18, 13, 22, .2) 100%); } }
/* Héros réglé dans le back-office (écran « Héros de l'accueil ») : fondu rapide ou sans fondu, crédit Pexels / Unsplash */
.fl-scene-accueil[data-fondu="800"] .fl-plan { transition-duration: .8s; }
.fl-scene-accueil[data-fondu="0"] .fl-plan { transition-duration: 0s; }
.fl-plan-credit { position: absolute; right: clamp(.8rem, 2vw, 1.4rem); bottom: .55rem; z-index: 1; margin: 0; font: 500 .68rem / 1.2 var(--police-instru, system-ui); letter-spacing: .02em; color: rgba(255, 255, 255, .78); text-shadow: 0 1px 6px rgba(18, 13, 22, .7); pointer-events: none; }
html[data-bandeau="clair"] .fl-plan-credit { color: rgba(18, 13, 22, .7); text-shadow: 0 1px 6px rgba(255, 255, 255, .8); }
/* Héros réglé dans le back-office, éditeur en direct du bandeau (11/10/2026, admin/modules/heros-rendu.js) : position du bloc de
   texte (.fl-bloc-texte : textes + boutons). data-texte="<gauche|centre|droite>-<haut|milieu|bas>" vaut pour l'ordinateur et la
   tablette, data-texte-tel pour les écrans de 700 px et moins ; data-texte-align(-tel) : alignement du texte ; data-texte-l(-tel)
   et --texte-l(-tel) : largeur du bloc. Sans ces attributs (en bas à gauche, réglage par défaut), rien ne change. Le voile suit le
   texte : retourné quand le texte est à droite (ou en haut sur téléphone), plus uniforme quand il est au centre. */
.fl-scene-accueil[data-texte] { align-items: stretch; }
.fl-scene-accueil[data-texte] .fl-scene-zone { display: flex; flex-direction: column; }
.fl-scene-accueil[data-texte] .fl-bloc-texte { max-width: 100%; margin-top: auto; }
@media (min-width: 701px) {
  .fl-scene-accueil[data-texte$="-milieu"] .fl-bloc-texte { margin-block: auto; }
  .fl-scene-accueil[data-texte$="-haut"] .fl-bloc-texte { margin-top: 0; margin-bottom: auto; }
  .fl-scene-accueil[data-texte^="centre-"] .fl-bloc-texte { align-self: center; }
  .fl-scene-accueil[data-texte^="droite-"] .fl-bloc-texte { align-self: flex-end; }
  .fl-scene-accueil[data-texte-l] .fl-bloc-texte { width: var(--texte-l); }
  .fl-scene-accueil[data-texte-l] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { max-width: none; }
  .fl-scene-accueil[data-texte-align="centre"] .fl-bloc-texte { text-align: center; }
  .fl-scene-accueil[data-texte-align="centre"] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { margin-inline: auto; }
  .fl-scene-accueil[data-texte-align="centre"] .fl-bloc-texte :is(.fl-sur, .fl-actions) { justify-content: center; }
  .fl-scene-accueil[data-texte-align="droite"] .fl-bloc-texte { text-align: right; }
  .fl-scene-accueil[data-texte-align="droite"] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { margin-left: auto; margin-right: 0; }
  .fl-scene-accueil[data-texte-align="droite"] .fl-bloc-texte :is(.fl-sur, .fl-actions) { justify-content: flex-end; }
  .fl-scene-accueil[data-texte^="droite-"] .fl-voile { transform: scaleX(-1); }
  .fl-scene-accueil[data-texte^="centre-"] .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .72) 0%, rgba(18, 13, 22, .42) 45%, rgba(18, 13, 22, .5) 100%); }
  .fl-scene-accueil.a-video[data-texte^="centre-"] .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .8) 0%, rgba(18, 13, 22, .55) 45%, rgba(18, 13, 22, .6) 100%); }
}
@media (max-width: 700px) {
  .fl-scene-accueil[data-texte-tel$="-milieu"] .fl-bloc-texte { margin-block: auto; }
  .fl-scene-accueil[data-texte-tel$="-haut"] .fl-bloc-texte { margin-top: 0; margin-bottom: auto; }
  .fl-scene-accueil[data-texte-tel^="centre-"] .fl-bloc-texte { align-self: center; }
  .fl-scene-accueil[data-texte-tel^="droite-"] .fl-bloc-texte { align-self: flex-end; }
  .fl-scene-accueil[data-texte-l-tel] .fl-bloc-texte { width: var(--texte-l-tel); }
  .fl-scene-accueil[data-texte-l-tel] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { max-width: none; }
  .fl-scene-accueil[data-texte-align-tel="centre"] .fl-bloc-texte { text-align: center; }
  .fl-scene-accueil[data-texte-align-tel="centre"] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { margin-inline: auto; }
  .fl-scene-accueil[data-texte-align-tel="centre"] .fl-bloc-texte :is(.fl-sur, .fl-actions) { justify-content: center; }
  .fl-scene-accueil[data-texte-align-tel="droite"] .fl-bloc-texte { text-align: right; }
  .fl-scene-accueil[data-texte-align-tel="droite"] .fl-bloc-texte :is(.fl-texte, .fl-titre, .fl-chapo) { margin-left: auto; margin-right: 0; }
  .fl-scene-accueil[data-texte-align-tel="droite"] .fl-bloc-texte :is(.fl-sur, .fl-actions) { justify-content: flex-end; }
  .fl-scene-accueil[data-texte-tel$="-haut"] .fl-voile { transform: scaleY(-1); }
  .fl-scene-accueil[data-texte-tel$="-milieu"] .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .78) 0%, rgba(18, 13, 22, .55) 50%, rgba(18, 13, 22, .62) 100%); }
}

/* Liste des instructeurs par département : une grille de départements (au lieu du tableau de Joomla) */
.fl-prose ul.fl-deps-instructeurs { list-style: none; margin: 1.2rem 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(11.5rem, 1fr)); gap: .45rem; }
.fl-prose ul.fl-deps-instructeurs li { margin: 0; padding: 0; }
.fl-prose ul.fl-deps-instructeurs li::before { content: none; }
.fl-deps-instructeurs a { display: flex; align-items: baseline; gap: .6rem; padding: .55rem .8rem; border-radius: .7rem; background: var(--voile); box-shadow: inset 0 0 0 1px var(--filet); color: var(--encre); text-decoration: none; font-size: .95rem; line-height: 1.25; transition: box-shadow .2s, color .2s; }
.fl-deps-instructeurs a b { flex: none; min-width: 1.9rem; font: 700 .86rem var(--police-instru); color: var(--accent-vif); }
.fl-deps-instructeurs a:hover, .fl-deps-instructeurs a:focus-visible { box-shadow: inset 0 0 0 1.5px var(--accent-vif); color: var(--accent-vif); outline: none; }

/* Bandeaux photo plus clairs sur toutes les pages (demande de la fédération du 05/10/2026 : « images de fond plus claires ») :
   le voile ne reste dense que derrière le texte, à gauche et en bas. */
.fl-scene-courte .fl-voile, .fl-mini-heros .fl-voile { background:
  linear-gradient(90deg, rgba(18, 13, 22, .8) 0%, rgba(18, 13, 22, .64) 34%, rgba(18, 13, 22, .3) 58%, rgba(18, 13, 22, .06) 82%, rgba(18, 13, 22, 0) 100%),
  linear-gradient(0deg, rgba(18, 13, 22, .7) 0%, rgba(18, 13, 22, .16) 42%, transparent 62%); }
.fl-mini-heros .fl-mini-contours path { fill: rgba(0, 28, 168, .62); }
@media (max-width: 760px) { .fl-scene-courte .fl-voile, .fl-mini-heros .fl-voile { background: linear-gradient(0deg, rgba(18, 13, 22, .9) 0%, rgba(18, 13, 22, .62) 55%, rgba(18, 13, 22, .26) 100%); } }
/* Tableau « sujet, en bref, documents » (page Terrains) */
.fl-prose table.fl-sujets th[scope="row"] { width: 11rem; font: 700 1rem / 1.3 var(--police-display); letter-spacing: -.01em; text-transform: none; color: var(--encre); background: none; white-space: normal; }
.fl-prose table.fl-sujets td:last-child { width: 15rem; }
.fl-prose table.fl-sujets td a { font-weight: 600; }
@media (max-width: 760px) {
  .fl-prose table.fl-sujets, .fl-prose table.fl-sujets tbody, .fl-prose table.fl-sujets tr, .fl-prose table.fl-sujets th, .fl-prose table.fl-sujets td { display: block; width: auto; min-width: 0; white-space: normal; }
  .fl-prose table.fl-sujets thead { display: none; }
  .fl-prose table.fl-sujets tr { padding: .9rem 1rem; border-bottom: 1px solid var(--filet); }
  .fl-prose table.fl-sujets th[scope="row"], .fl-prose table.fl-sujets td { padding: .2rem 0; border: 0 !important; }
  .fl-prose table.fl-sujets td:last-child { width: auto; }
}

/* Élément pointé par une remarque (lien « Voir l'endroit pointé » du back-office) */
.fl-montre { outline: 4px solid #F32837 !important; outline-offset: 5px; border-radius: 6px; opacity: 1 !important; transform: none !important; clip-path: none !important; scroll-margin: 9rem; }
.fl-montre-note { position: fixed; z-index: 90; left: 50%; top: 5.6rem; translate: -50% 0; margin: 0; max-width: min(92vw, 34rem); padding: .6rem 1rem; border-radius: 999px; background: #120D16; color: #fff; font: 600 .86rem var(--police-ui); text-align: center; box-shadow: 0 12px 30px -12px rgba(18, 13, 22, .6); }

/* Boutons désactivés (formulaire en veille, étape non ouverte) : le même bleu Klein que les autres boutons, sans effet au survol
   (le survol passait au noir, texte illisible) et sans transparence (qui donnait un mauve hors charte). Remarques d'Alexis du 06/10/2026. */
.v6-bouton[disabled], .v6-bouton:disabled, .fl-form button[disabled], .fl-rex-commandes button[disabled], .fl-aff-envoyer:disabled,
.v6-bouton[disabled]:hover, .v6-bouton:disabled:hover, .fl-form button[disabled]:hover, .fl-rex-commandes button[disabled]:hover, .fl-aff-envoyer:disabled:hover {
  background: #001CA8; color: #fff; --survol: #001CA8; box-shadow: none; opacity: 1; cursor: not-allowed; transform: none;
}
.v6-bouton[disabled]::before, .v6-bouton:disabled::before { display: none; }

/* Section masquée depuis le Studio : absente pour les visiteurs ; dans le Studio, visible en grisé pour pouvoir la réafficher. */
html:not(.fe-studio) [data-masquee] { display: none !important; }
html.fe-studio [data-masquee] { opacity: .35; outline: 2px dashed rgba(18, 13, 22, .4); outline-offset: -2px; }

/* ── Agenda : événements (catégorie, partage, s'y rendre, cartes à venir) ── */
.fl-evt-cat { display: inline-flex; align-items: center; gap: .4rem; font: 700 .7rem/1 var(--police-display); letter-spacing: .08em; text-transform: uppercase; color: var(--c, #001CA8); }
.fl-evt-cat::before { content: ''; width: .55rem; height: .55rem; border-radius: 50%; background: var(--c, #001CA8); }
.fl-evt-passe { margin: .6rem 0 0; padding: .45rem .7rem; border-radius: .6rem; background: rgba(18, 13, 22, .06); font-size: .88rem; }
.fl-evt-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.fl-evt-lieu, .fl-evt-partage { display: grid; gap: .35rem; margin-top: 1.1rem; padding-top: 1rem; border-top: 1px solid var(--filet); }
.fl-evt-lieu .v6-lien { font-size: .95rem; }
.fl-evt-reseaux { display: flex; flex-wrap: wrap; gap: .35rem; }
.fl-evt-reseaux a, .fl-evt-reseaux button { display: inline-flex; align-items: center; padding: .4rem .75rem; border: 1px solid var(--filet-fort); border-radius: 999px; background: none; color: var(--encre); font: 600 .82rem var(--police-ui); text-decoration: none; cursor: pointer; }
.fl-evt-reseaux a:hover, .fl-evt-reseaux button:hover { border-color: #001CA8; color: #001CA8; }
.fl-evt-avenir { margin-bottom: 2.4rem; }
.fl-evt-filtres { display: flex; flex-wrap: wrap; gap: .4rem; margin: 1rem 0 1.2rem; }
.fl-evt-filtres button { padding: .4rem .85rem; border: 1px solid var(--filet-fort); border-radius: 999px; background: none; font: 600 .85rem var(--police-ui); color: var(--encre); cursor: pointer; }
.fl-evt-filtres button[aria-pressed="true"] { background: var(--c, #001CA8); border-color: var(--c, #001CA8); color: #fff; }
.fl-evt-cartes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1.1rem; }
.fl-evt-cartes li[hidden] { display: none; }
.fl-evt-cartes a { display: grid; height: 100%; border: 1px solid var(--filet); border-radius: 1.1rem; overflow: hidden; background: #fff; color: var(--encre); text-decoration: none; transition: transform .25s, box-shadow .25s; }
.fl-evt-cartes a:hover { transform: translateY(-3px); box-shadow: 0 16px 32px -20px rgba(18, 13, 22, .45); }
.fl-evt-cartes li.est-une a { border-color: #001CA8; box-shadow: 0 0 0 1px #001CA8; }
.fl-evt-visuel { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--c, #001CA8); background-image: linear-gradient(135deg, var(--c, #001CA8), #120D16); }
.fl-evt-visuel img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fl-evt-date { position: absolute; left: .8rem; top: .8rem; display: grid; place-items: center; min-width: 3.2rem; padding: .35rem .4rem; border-radius: .7rem; background: #fff; color: #120D16; line-height: 1; box-shadow: 0 6px 16px -8px rgba(18, 13, 22, .5); }
.fl-evt-date b { font: 800 1.35rem var(--police-display); }
.fl-evt-date small { font: 700 .66rem var(--police-display); letter-spacing: .08em; }
.fl-evt-texte { display: grid; gap: .35rem; padding: 1rem 1.1rem 1.15rem; align-content: start; }
.fl-evt-texte b { font: 700 1.05rem/1.25 var(--police-display); }
.fl-evt-texte small { color: var(--encre-3); font-size: .86rem; }

/* Accueil · « À découvrir » : les grandes rubriques de la refonte (charte : Klein, noir d'aniline, blanc) */
.fl-ex-grille { list-style: none; margin: 1.6rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 1rem; }
.fl-ex-carte { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 1.1rem; overflow: hidden; color: #fff; text-decoration: none; background: #120D16; }
.fl-ex-carte img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2, .7, .2, 1); }
.fl-ex-carte::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18, 13, 22, 0) 35%, rgba(18, 13, 22, .78) 100%); }
.fl-ex-texte { position: absolute; left: 1.1rem; right: 3rem; bottom: 1rem; z-index: 1; display: grid; gap: .2rem; }
.fl-ex-texte b { font: 800 1.25rem/1.15 var(--police-display); letter-spacing: -.01em; }
.fl-ex-texte span { font-size: .9rem; opacity: .9; }
.fl-ex-carte .v6-fleche { position: absolute; right: 1.1rem; bottom: 1.25rem; z-index: 1; color: #fff; }
.fl-ex-carte:hover img, .fl-ex-carte:focus-visible img { transform: scale(1.05); }
.fl-ex-carte:focus-visible { outline: 3px solid #001CA8; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .fl-ex-carte img { transition: none; } }

/* En-tête (remarques n° 45 à 47) : « Accueil » en première entrée du menu, « Boutique » écrit en toutes lettres, libellés
   sur une ligne. Le logo garde ses proportions et ne se laisse jamais écraser : quand la place manque, le menu se resserre,
   Espace licencié passe en icône (sous 1440 px ; libellé lu par les lecteurs d'écran), puis le logo réduit d'un bloc ; de
   1060 à 1179 px seulement, « Accueil » quitte le menu (le logo ramène à l'accueil). */
.fl-tete .v6-marque { flex: none; }
.fl-tete .fl-logotype { width: auto; max-width: none; }
.fl-tete .fl-nav-direct { padding-right: .5rem; }   /* Accueil et Sport : un même petit retrait à droite, à la place du chevron */
.fl-tete .v6-nav a, .fl-tete .v6-nav .v6-bouton span { white-space: nowrap; }
@media (min-width: 1380px) {
  .fl-tete .v6-nav { gap: .55rem; }
  .fl-tete .v6-nav a:not(.v6-bouton), .fl-tete .fl-mega-bouton { font-size: .9rem; }
  .fl-tete .fl-espace { padding: .42rem .7rem .42rem .5rem; }
  .fl-tete .v6-bouton { padding: .75rem 1.05rem; }
}
@media (min-width: 1060px) and (max-width: 1379px) {
  .fl-tete .v6-zone { gap: .8rem; }
  .fl-tete .v6-nav { gap: .55rem; }
  .fl-tete .v6-nav a:not(.v6-bouton), .fl-tete .fl-mega-bouton { font-size: .85rem; }
  .fl-tete .fl-logotype { height: 2.9rem; }
  .fl-tete .fl-boutique { padding: .42rem .7rem .42rem .5rem; }
  .fl-tete .fl-boutique span { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .fl-tete .v6-bouton { padding: .7rem .95rem; }
}
@media (min-width: 1060px) and (max-width: 1239px) {
  .fl-tete .fl-logotype { height: 2.4rem; }
  .fl-tete .v6-nav { gap: .45rem; }
  .fl-tete .v6-nav a:not(.v6-bouton), .fl-tete .fl-mega-bouton { font-size: .82rem; }
}
@media (min-width: 1380px) {   /* Espace licencié en icône à toutes les largeurs (place pour le choix de la langue) */
  .fl-tete .fl-espace:not(.fl-boutique) { padding: .5rem; }
  .fl-tete .fl-espace:not(.fl-boutique) span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (min-width: 1060px) and (max-width: 1179px) {
  .fl-tete .fl-nav-accueil { display: none; }
  .fl-tete .fl-logotype { height: 2.1rem; }
  .fl-tete .v6-nav { gap: .32rem; }
}

/* Fil des actualités sous les chiffres de l'accueil (remarque n° 50). */
.fl-fil-actus { background: #191970; color: #F5F5F5; }
.fl-fil-zone { display: flex; align-items: center; gap: 1rem; min-height: 3.4rem; padding-block: .45rem; }
.fl-fil-titre { flex: none; padding: .38rem .85rem; border-radius: 999px; background: #F32837; color: #fff; font: 700 .72rem/1 var(--police-ui); letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.fl-fil-titre:hover, .fl-fil-titre:focus-visible { background: #950714; }
.fl-fil-fenetre { flex: 1; min-width: 0; display: flex; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent); mask-image: linear-gradient(90deg, transparent, #000 1.5rem, #000 calc(100% - 1.5rem), transparent); }
.fl-fil-liste { display: flex; flex: none; gap: 2.6rem; margin: 0; padding: 0 2.6rem 0 0; list-style: none; animation: fl-fil var(--duree, 80s) linear infinite; }
.fl-fil-liste li { flex: none; }
.fl-fil-liste a { display: inline-flex; align-items: baseline; gap: .6rem; color: #F5F5F5; text-decoration: none; font-size: .95rem; white-space: nowrap; }
.fl-fil-liste a:hover span, .fl-fil-liste a:focus-visible span { text-decoration: underline; text-underline-offset: 3px; }
.fl-fil-liste a:focus-visible { outline: 2px solid #F5F5F5; outline-offset: 3px; border-radius: 3px; }
.fl-fil-liste time { font: 700 .74rem var(--police-instru); letter-spacing: .06em; color: rgba(245, 245, 245, .62); }
.fl-fil-venir { align-self: center; padding: .14rem .5rem; border: 1px solid rgba(245, 245, 245, .45); border-radius: 999px; font: 700 .64rem/1.2 var(--police-ui); letter-spacing: .08em; text-transform: uppercase; color: #F5F5F5; }
/* Message libre réglé dans « À la une de l'accueil » (12/10/2026) : en tête du fil, étiquette « Information » (Klein) ou « Alerte » (rouge de la charte). */
.fl-fil-msg a, .fl-fil-msg .fl-fil-msg-texte { display: inline-flex; align-items: baseline; gap: .6rem; color: #F5F5F5; text-decoration: none; font-size: .95rem; white-space: nowrap; }
.fl-fil-msg .fl-fil-msg-texte span, .fl-fil-msg a span { font-weight: 600; }
.fl-fil-etiquette { align-self: center; padding: .16rem .55rem; border-radius: 999px; background: #001CA8; color: #fff; font: 700 .64rem/1.2 var(--police-ui); letter-spacing: .08em; text-transform: uppercase; }
.fl-fil-msg-alerte .fl-fil-etiquette { background: #F32837; }
.fl-fil-avec-alerte .fl-fil-titre { background: #950714; }
.fl-fil-actus:hover .fl-fil-liste, .fl-fil-actus:focus-within .fl-fil-liste, .fl-fil-actus.est-en-pause .fl-fil-liste { animation-play-state: paused; }
@keyframes fl-fil { to { transform: translateX(-100%); } }
.fl-fil-pause { flex: none; display: grid; place-items: center; width: 2.2rem; height: 2.2rem; padding: 0; border: 1px solid rgba(245, 245, 245, .35); border-radius: 50%; background: transparent; color: #F5F5F5; cursor: pointer; }
.fl-fil-pause:hover, .fl-fil-pause:focus-visible { border-color: #F5F5F5; }
.fl-fil-pause svg { fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.fl-fil-pause .fl-fil-l { display: none; fill: currentColor; stroke: none; }
.fl-fil-actus.est-en-pause .fl-fil-p { display: none; }
.fl-fil-actus.est-en-pause .fl-fil-l { display: inline; }
@media (max-width: 700px) { .fl-fil-zone { gap: .7rem; } .fl-fil-liste a { font-size: .9rem; } }
@media (prefers-reduced-motion: reduce) {
  .fl-fil-liste { animation: none; }
  .fl-fil-fenetre { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
  .fl-fil-liste[aria-hidden], .fl-fil-pause { display: none; }
}
html[data-anim="non"] .fl-fil-liste { animation: none !important; }
html[data-anim="non"] .fl-fil-fenetre { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
html[data-anim="non"] .fl-fil-liste[aria-hidden], html[data-anim="non"] .fl-fil-pause { display: none; }

/* Bandeau des partenaires en fin d'accueil (remarque n° 56). */
.fl-section-bandeau-partenaires { padding-block: clamp(2.6rem, 5vw, 4rem); background: #F5F5F5; border-top: 1px solid var(--filet); }
.fl-bp-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .6rem 1.4rem; margin-bottom: 1.4rem; }
.fl-bp-tete .fl-surtitre { margin: 0; }
.fl-bp-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }   /* 20 logos : 4 lignes pleines */
@media (min-width: 1200px) { .fl-bp-logos { grid-template-columns: repeat(10, minmax(0, 1fr)); } }   /* 2 lignes de 10 */
.fl-bp-logos li { display: grid; place-items: center; height: 5.2rem; padding: .7rem; border-radius: .9rem; background: #fff; box-shadow: inset 0 0 0 1px var(--filet); }
.fl-bp-logos img { max-width: 100%; max-height: 3.6rem; width: auto; height: auto; object-fit: contain; }
@media (max-width: 600px) { .fl-bp-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; } .fl-bp-logos li { height: 3.8rem; padding: .4rem; border-radius: .6rem; } .fl-bp-logos img { max-height: 2.6rem; } }

/* Bandeaux photo (demande de la fédération du 7 octobre : « un peu foncé ») : le voile est 20 % plus léger par défaut, et son
   intensité se règle au curseur dans la barre « Affichage » du site d'essai (--voile-force). Version claire : voile blanc et
   texte foncé (html[data-bandeau="clair"]). */
.fl-voile { opacity: var(--voile-force, .8); }
html[data-bandeau="clair"] .fl-scene { background: #F5F5F5; color: #120D16; }
html[data-bandeau="clair"] .fl-voile, html[data-bandeau="clair"] .fl-scene-accueil .fl-voile, html[data-bandeau="clair"] .fl-scene-accueil.a-video .fl-voile,
html[data-bandeau="clair"] .fl-scene-courte .fl-voile, html[data-bandeau="clair"] .fl-mini-heros .fl-voile { background:
  linear-gradient(90deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .84) 34%, rgba(255, 255, 255, .45) 60%, rgba(255, 255, 255, .08) 84%, rgba(255, 255, 255, 0) 100%),
  linear-gradient(0deg, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, .14) 42%, transparent 62%); }
@media (max-width: 760px) { html[data-bandeau="clair"] .fl-voile, html[data-bandeau="clair"] .fl-scene-accueil .fl-voile, html[data-bandeau="clair"] .fl-scene-courte .fl-voile, html[data-bandeau="clair"] .fl-mini-heros .fl-voile { background: linear-gradient(0deg, rgba(255, 255, 255, .95) 0%, rgba(255, 255, 255, .8) 55%, rgba(255, 255, 255, .4) 100%); } }
html[data-bandeau="clair"] .fl-scene::after { opacity: .06; }
html[data-bandeau="clair"] .v6 .fl-titre, html[data-bandeau="clair"] .fl-scene .fl-titre { color: #120D16; text-shadow: none; }
html[data-bandeau="clair"] .fl-scene .fl-titre .v6-lapsus { color: #001CA8; }
html[data-bandeau="clair"] .fl-scene .fl-chapo, html[data-bandeau="clair"] .fl-scene .fl-sur { color: rgba(18, 13, 22, .82); }
html[data-bandeau="clair"] .fl-scene .v6-pause { color: #120D16; }
html[data-bandeau="clair"] .fl-scene .v6-pause { box-shadow: inset 0 0 0 1px rgba(18, 13, 22, .35); }
html[data-bandeau="clair"] .fl-scene .fl-bouton-aube { background: #001CA8; color: #fff; --survol: #191970; }
html[data-bandeau="clair"] .fl-scene .fl-bouton-aube:hover, html[data-bandeau="clair"] .fl-scene .fl-bouton-aube:focus-visible { color: #fff; }
html[data-bandeau="clair"] .fl-scene .v6-bouton-ligne-clair { color: #120D16; box-shadow: inset 0 0 0 1px rgba(18, 13, 22, .4); --survol: #120D16; }
html[data-bandeau="clair"] .fl-scene .v6-bouton-ligne-clair:hover, html[data-bandeau="clair"] .fl-scene .v6-bouton-ligne-clair:focus-visible { color: #fff; }
html[data-bandeau="clair"] .fl-scene .v6-index > span { background: rgba(18, 13, 22, .25); }
.fl-aff-curseur .fl-aff-seg { display: flex; align-items: center; gap: .6rem; }
.fl-aff-curseur input[type="range"] { width: 9rem; accent-color: #001CA8; }
.fl-aff-curseur output { min-width: 3.2rem; font: 700 .8rem var(--police-ui, system-ui); font-variant-numeric: tabular-nums; }

/* Page « La fédération en chiffres » : les cadrans de l'ancien accueil, puis quatre chiffres reliés à leur page. */
.fl-chiffres-plus { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.fl-chiffres-plus li { display: grid; gap: .5rem; align-content: start; padding: 1.4rem; border-radius: 1.2rem; background: #fff; box-shadow: inset 0 0 0 1px var(--filet); }
.fl-chiffres-plus b { font: 700 clamp(2.2rem, 1.6rem + 2vw, 3.2rem)/1 var(--police-display); color: #001CA8; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.fl-chiffres-plus span { color: var(--encre-2); }
/* Bandeau des partenaires institutionnels : 10 logos, une ligne sur grand écran, deux lignes de 5 ailleurs. */
@media (max-width: 600px) { .fl-bp-logos { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; } .fl-bp-logos li { height: 3.4rem; padding: .3rem; } .fl-bp-logos img { max-height: 2.4rem; } }
html[data-bandeau="clair"] .fl-scene .fl-legende { color: rgba(18, 13, 22, .72); }
html[data-bandeau="clair"] .fl-scene .v6-index > span > span { background: #001CA8; }
.fl-aff-curseur { flex: 0 0 auto; }

/* Réseaux sociaux de la fédération dans le pied de page (remarque n° 59). */
.fl-pied-reseaux { display: flex; flex-wrap: wrap; gap: .55rem; margin: 1rem 0 0; }
.fl-pied-reseaux a { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: rgba(245, 245, 245, .08); box-shadow: inset 0 0 0 1px rgba(245, 245, 245, .22); color: #F5F5F5; transition: background .2s, color .2s; }
.fl-pied-reseaux a:hover, .fl-pied-reseaux a:focus-visible { background: #F5F5F5; color: #001CA8; }
.fl-pied-reseaux svg { width: 1.2rem; height: 1.2rem; fill: currentColor; }

/* Page « La fédération en chiffres » : les chiffres clés en grille (remarques n° 62 et 63). */
.fl-cc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15.5rem), 1fr)); gap: 1rem; }
.fl-cc-carte { position: relative; display: grid; gap: .45rem; align-content: start; padding: 1.5rem 1.4rem 1.3rem; border-radius: 1.2rem; background: #fff; box-shadow: inset 0 0 0 1px var(--filet); overflow: hidden; }
.fl-cc-carte::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #001CA8; }
.fl-cc-n { font: 700 clamp(2.4rem, 1.6rem + 2.4vw, 3.6rem)/1 var(--police-display); color: #001CA8; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.fl-cc-lib { font: 700 .78rem var(--police-ui); letter-spacing: .1em; text-transform: uppercase; color: #120D16; }
.fl-cc-carte p { margin: .2rem 0 .4rem; color: var(--encre-2); }
.fl-cc-vedette { background: linear-gradient(135deg, #191970, #001CA8); box-shadow: none; }
.fl-cc-vedette::before { background: #F32837; }
.fl-cc-vedette .fl-cc-n, .fl-cc-vedette .fl-cc-lib, .fl-cc-vedette p, .fl-cc-vedette .v6-lien { color: #fff; }
@media (min-width: 900px) { .fl-cc { grid-template-columns: repeat(4, minmax(0, 1fr)); } .fl-cc-vedette { grid-column: span 2; grid-row: span 2; align-content: end; } .fl-cc-vedette .fl-cc-n { font-size: clamp(3.6rem, 2rem + 4vw, 6rem); } }
@media (min-width: 900px) { .fl-cc-carte:not(.fl-cc-vedette):nth-last-child(-n+2):nth-child(n+6) { grid-column: span 2; } }   /* 7 chiffres : la dernière ligne pleine */

/* Carte des comités régionaux sur fond clair (remarque n° 67) : chaque région se voit et se repère au survol. */
.fl-comites-carte .fl-region path { fill: rgba(0, 28, 168, .14); stroke: #fff; stroke-width: 1.2; }
.fl-comites-carte .fl-region:hover path, .fl-comites-carte .fl-region:focus-visible path { fill: rgba(0, 28, 168, .4); }
.fl-comites-carte .fl-region.est-active path { fill: #001CA8; }

/* Actualités sécurité : les alertes regroupées en tête de page (remarque n° 68). */
.fl-msa-alertes { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem .7rem; margin: 0 0 1.6rem; padding: .8rem 1rem; border-radius: 1rem; background: rgba(243, 40, 55, .07); box-shadow: inset 0 0 0 1px rgba(149, 7, 20, .18); }
.fl-msa-alertes .fl-ms-surtitre { margin-right: .4rem; color: #950714; }
.fl-msa-alertes a { padding: .4rem .85rem; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px rgba(149, 7, 20, .3); color: #950714; font-weight: 600; text-decoration: none; }
.fl-msa-alertes a:hover, .fl-msa-alertes a:focus-visible { background: #950714; color: #fff; }

/* Coin inférieur gauche du site d'essai : le bouton Affichage, la bascule rapide du bandeau, puis la bulle « Votre avis »
   au-dessus (elle cachait le bouton Affichage, 07/10). */
.fl-aff-rapide { position: fixed; left: calc(1.1rem + 9.4rem); bottom: 1.1rem; z-index: 71; display: inline-flex; align-items: center; gap: .2rem; padding: .25rem .3rem .25rem .8rem; border-radius: 999px; background: #fff; box-shadow: 0 8px 22px -12px rgba(18, 13, 22, .45), inset 0 0 0 1px rgba(18, 13, 22, .14); font: 600 .8rem var(--police-ui, system-ui); color: #120D16; }
.fl-aff-rapide > span { margin-right: .3rem; color: rgba(18, 13, 22, .65); }
.fl-aff-rapide button { border: 0; border-radius: 999px; padding: .42rem .8rem; background: transparent; color: #120D16; font: inherit; cursor: pointer; }
.fl-aff-rapide button[aria-pressed="true"] { background: #001CA8; color: #fff; }
.fl-aff-rapide button:focus-visible { outline: 2px solid #001CA8; outline-offset: 2px; }
html.fl-aff-ouvert .fl-aff-rapide { display: none; }
body:has(.fl-aff-bouton) .el-avis-dock { bottom: 4.6rem !important; }
html.fl-aff-ouvert body .el-avis-dock { bottom: calc(var(--fl-aff-h, 12rem) + 1rem) !important; }
body:has(.mp-poignee.mp-on) .fl-aff-bouton { left: calc(1.1rem + 8rem); }   /* « Le dossier » à gauche, puis Affichage */
body:has(.mp-poignee.mp-on) .fl-aff-rapide { left: calc(1.1rem + 8rem + 9.4rem); }
@media (max-width: 700px) { .fl-aff-rapide { display: none; } body:has(.mp-poignee.mp-on) .fl-aff-bouton { left: .75rem; bottom: 3.9rem; } body:has(.fl-aff-bouton) .el-avis-dock { display: none !important; } }   /* téléphone, site d'essai : pas de chevauchement */

/* Encarts de la boutique dans la colonne de droite des pages de contenu (construire.mjs, avecBoutique ; remarques n° 91 à 93,
   101 et 107 : cartes petites, dans la colonne de droite dès 1100 px) */
.fl-boutique-rail { display: grid; gap: .7rem; align-content: start; min-width: 0; }
.fl-boutique-rail > .fl-instru-lib { margin: 0; color: #001CA8; font-size: .66rem; }
.fl-boutique-carte { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: .15rem .7rem; align-items: center; padding: .55rem .6rem; border-radius: .9rem; background: #fff; color: #120D16; text-decoration: none; box-shadow: inset 0 0 0 1px var(--filet); transition: box-shadow .2s ease; }
.fl-boutique-carte:hover, .fl-boutique-carte:focus-visible { box-shadow: inset 0 0 0 2px #001CA8; }
.fl-boutique-photo { grid-row: span 3; display: block; width: 4.2rem; aspect-ratio: 1; border-radius: .6rem; overflow: hidden; background: #F5F5F5; }
.fl-boutique-photo img { width: 100%; height: 100%; object-fit: contain; }
.fl-boutique-carte b { font: 600 .82rem/1.25 var(--police-display); }
.fl-boutique-prix { font-weight: 700; font-size: .85rem; color: #950714; }
.fl-boutique-voir { display: inline-flex; align-items: center; gap: .3rem; color: #001CA8; font-weight: 600; font-size: .78rem; }
.fl-boutique-tout { font-size: .85rem; }
.fl-page-grille.fl-avec-boutique > .fl-boutique-rail { order: 3; }
@media (min-width: 560px) and (max-width: 1099px) { .fl-page-grille.fl-avec-boutique > .fl-boutique-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fl-boutique-rail > .fl-instru-lib, .fl-boutique-tout { grid-column: 1 / -1; } }
@media (min-width: 1000px) and (max-width: 1099px) { .fl-page-grille.fl-avec-boutique > .fl-boutique-rail { grid-column: 2; } }
@media (min-width: 1100px) {
  .fl-page-grille.fl-avec-boutique { grid-template-columns: 14rem minmax(0, 1fr) 12.5rem; gap: 2.4rem 2.2rem; }
  .fl-page-grille.fl-avec-boutique > .fl-boutique-rail { grid-column: 3; grid-row: 1; order: 0; position: sticky; top: 6.5rem; }
}
@media (min-width: 1280px) { .fl-page-grille.fl-avec-boutique { grid-template-columns: 16rem minmax(0, 1fr) 13.5rem; gap: 2.4rem 2.6rem; } }
html[data-colonne="non"] .fl-page-grille.fl-avec-boutique > .fl-boutique-rail { grid-column: auto; grid-row: auto; position: static; }

/* Accueil, bande « Voler à vue » : six courtes vidéos, une par classe, en fondu (construire.mjs, bandeVideos) */
.fl-bande-videos .fl-bv-plan { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.1s ease; }
.fl-bande-videos .fl-bv-plan.est-visible { opacity: 1; }

/* Où voler : légende du plan affiché (club, école, terrain ; remarque n° 100) */
.fl-ov-legende { position: absolute; right: clamp(1rem, 4vw, 3.5rem); top: 1.2rem; z-index: 2; margin: 0; padding: .3rem .8rem; border-radius: 999px; background: rgba(18, 13, 22, .45); color: #fff; font: .66rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; }

/* Pied de page : inscription à la lettre d'information (remarque n° 108) */
.fl-pied-lettre { display: grid; gap: .6rem; max-width: 24rem; margin-top: 1.6rem; }
.fl-pied-lettre-titre { margin: 0; color: rgba(245, 245, 245, .78); font-size: .9rem; line-height: 1.45; }
.fl-pied-lettre-titre b { display: block; margin-bottom: .2rem; font: 700 .76rem var(--police-instru); letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.fl-pied-lettre-champ { display: flex; gap: .4rem; margin: 0; }
.fl-pied .fl-pied-lettre-champ input { flex: 1; min-height: 0; box-shadow: none; min-width: 0; height: 2.6rem; padding: 0 .95rem; border: 1px solid rgba(245, 245, 245, .32); border-radius: 999px; background: rgba(245, 245, 245, .08); color: #fff; font: inherit; font-size: .9rem; }
.fl-pied-lettre-champ input::placeholder { color: rgba(245, 245, 245, .55); }
.fl-pied-lettre-champ input:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.fl-pied-lettre-champ button { flex: none; height: 2.6rem; padding: 0 1.15rem; border: 0; border-radius: 999px; background: #fff; color: #001CA8; font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; }
.fl-pied-lettre-champ button:hover, .fl-pied-lettre-champ button:focus-visible { background: #F32837; color: #fff; }
.fl-pied-lettre-champ button:disabled { opacity: .6; cursor: wait; }
.fl-pied-lettre-accord { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .55rem; align-items: start; font-size: .78rem; line-height: 1.4; color: rgba(245, 245, 245, .72); cursor: pointer; }
.fl-pied .fl-pied-lettre-accord input[type=checkbox] { appearance: auto; width: 1.05rem; height: 1.05rem; min-width: 0; min-height: 0; padding: 0; margin: .1rem 0 0; border: 0; border-radius: 0; box-shadow: none; background: none; accent-color: #F32837; }
.fl-pied-lettre-msg { margin: 0; min-height: 1em; font-size: .82rem; color: rgba(245, 245, 245, .85); }
.fl-pied-lettre-msg.est-ok { color: #fff; font-weight: 600; }
.fl-pied-lettre-msg.est-erreur { color: #F32837; font-weight: 600; }

/* Choix de la langue, en haut à droite (FR / EN), compact : il ne doit jamais pousser l'en-tête hors de l'écran */
.fl-langues { display: inline-flex; flex: none; align-items: center; gap: .05rem; padding: .15rem; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--filet-fort, rgba(18, 13, 22, .2)); }
.fl-langues a { display: inline-flex; align-items: center; justify-content: center; min-width: 1.75rem; height: 1.75rem; padding: 0 .4rem; border-radius: 999px; font: 600 .7rem var(--police-instru); letter-spacing: .06em; color: #191970; text-decoration: none; }
.fl-langues a[aria-current="true"] { background: #001CA8; color: #fff; }
.fl-langues a:not([aria-current="true"]):hover, .fl-langues a:not([aria-current="true"]):focus-visible { background: rgba(0, 28, 168, .08); }
@media (max-width: 999px) { .fl-langues { margin-left: auto; margin-right: .4rem; } }
/* En dessous de 1 380 px : seulement l'autre langue (un bouton « EN » ou « FR »), et des espaces plus serrés */
@media (min-width: 1000px) and (max-width: 1379px) {
  .fl-langues { box-shadow: none; padding: 0; }
  .fl-langues a[aria-current="true"] { display: none; }
  .fl-langues a { box-shadow: inset 0 0 0 1px var(--filet-fort, rgba(18, 13, 22, .2)); }
}
@media (min-width: 1380px) { .fl-tete .v6-zone { gap: .8rem; } .fl-tete .v6-nav { gap: .4rem; } }
@media (min-width: 1180px) and (max-width: 1379px) { .fl-tete .v6-zone { gap: .55rem; } .fl-tete .v6-nav { gap: .34rem; } }
@media (min-width: 1060px) and (max-width: 1179px) { .fl-tete .v6-zone { gap: .45rem; } .fl-tete .v6-nav { gap: .22rem; } }
/* Menus proposés (site d'essai) et menu retenu par la fédération (Apparence du site) : plus d'entrées dans la barre, espaces plus
   serrés. Pas pour l’ancien menu, comparé sur le site d’essai (data-menu="ancien", js/menus-variantes.js) ; :where() garde la
   priorité d’origine de ces règles. */
@media (min-width: 1060px) { html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .v6-nav { gap: .2rem; } html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-mega-bouton { padding-left: .35rem; padding-right: .35rem; } }
@media (min-width: 1060px) {
  html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .mv-club { padding: .5rem; }
  html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .mv-club span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media (min-width: 1060px) and (max-width: 1439px) { html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-mega-bouton { font-size: .8rem; } }
@media (min-width: 1060px) and (max-width: 1179px) { html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-logotype { height: 1.8rem; } html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .v6-bouton { padding: .62rem .8rem; } html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-mega-bouton { font-size: .74rem; padding-left: .2rem; padding-right: .2rem; } html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .v6-nav { gap: .1rem; } }
@media (min-width: 1060px) and (max-width: 1239px) { html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-logotype { display: none; } html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .fl-logo { display: block; width: 2.6rem; height: 2.6rem; } }
@media (min-width: 1180px) and (max-width: 1379px) { html[data-menu]:not(:where([data-menu="ancien"])) .fl-tete .v6-nav { gap: .12rem; } }

/* ── Lisibilité du haut des bandeaux photo (remarque du 08/10/2026) : fil d'Ariane et étiquettes en pastilles pleines,
   dans les deux voiles. Voile sombre : noir #120D16 et texte blanc ; voile clair : blanc et texte noir, liens Klein.
   Pastille de rubrique : aplat Klein et texte blanc partout (plus de liseré). Les en-têtes sur blanc (une des articles,
   « Bandeau photo : Sans ») gardent leur présentation sans pastille. ── */
html[data-bandeau="clair"] .fl-scene { --fil-fond: rgba(255, 255, 255, .96); --fil-texte: #120D16; --fil-lien: #001CA8; --fil-souligne: rgba(0, 28, 168, .45); --fil-courant: #120D16; --fil-sep: #001CA8;
  --fil-ombre: 0 1px 3px rgba(18, 13, 22, .16), inset 0 0 0 1px rgba(18, 13, 22, .08); }
.fl-scene .fl-sur .fl-sur-classe { color: #fff; background: #001CA8; box-shadow: 0 1px 3px rgba(18, 13, 22, .25); font-weight: 700; }
.fl-scene .fl-sur .fl-sur-texte { padding: .32rem .75rem; border-radius: 999px; color: var(--fil-texte, #F5F5F5); background: var(--fil-fond, rgba(18, 13, 22, .9)); box-shadow: var(--fil-ombre, 0 1px 3px rgba(18, 13, 22, .25)); font-weight: 600; }
:is(html:not([data-style="classique"]) .fl-scene-journal, html[data-heros="sans"] .fl-scene-courte) .fl-sur .fl-sur-texte { padding: 0; background: none; box-shadow: none; color: inherit; }

/* ── Affiches et images en hauteur dans les cartes d'articles (js/site.js pose .est-affiche et --affiche) : l'image entière,
   centrée sur un fond flou d'elle-même, assombri au Midnight de la charte ; plus de grand cadre blanc. ── */
.est-affiche { position: relative; isolation: isolate; background: #191970 !important; }
.est-affiche::before { content: ""; position: absolute; inset: -2rem; z-index: -1; background: var(--affiche) center / cover no-repeat; filter: blur(22px) saturate(1.15); opacity: .55; }
.est-affiche img { object-fit: contain !important; padding: clamp(.5rem, 1.6vw, 1rem); box-sizing: border-box; filter: drop-shadow(0 10px 24px rgba(18, 13, 22, .35)); }
/* Remarque n° 61 (09/10/2026) : la vraie carte de licence 2026 à la place du dessin, sur l'accueil. */
.fl-licence-photo{display:flex;align-items:center;justify-content:center}
.fl-licence-photo{background:none!important;box-shadow:none!important;padding:0}
.fl-licence-photo img{width:100%;max-width:620px;height:auto;display:block;background:none}

/* Pratiquer : les blocs « Pôle Handivol », « Sport et compétition » et « Médical » mènent à leur page (remarques n° 144 à 146) ; toute la carte est cliquable */
.fl-pratique-lien { position: relative; }
.fl-pratique-lien h3 a { color: inherit; text-decoration: none; }
.fl-pratique-lien h3 a::after { content: ''; position: absolute; inset: 0; border-radius: inherit; }
.fl-pratique-lien h3 a:focus-visible { outline: none; }
.fl-pratique-lien:has(a:focus-visible) { outline: 2px solid #001CA8; outline-offset: 4px; }
.fl-pratique-suite { display: inline-flex; align-items: center; gap: .4rem; margin: 0; color: #001CA8; font-weight: 600; }
.fl-pratique-suite svg { width: 1rem; height: 1rem; transition: transform .2s ease; }
.fl-pratique-lien:hover .fl-pratique-suite svg { transform: translateX(3px); }
.v6-sombre .fl-pratique-suite { color: #F5F5F5; }

/* Organigramme sur la page des élus (09/10/2026) : titres de groupe en h3 sous l'en-tête de section */
.fl-equipe-groupe > h3 small { font: 600 .9rem var(--police-instru); color: var(--encre-3); margin-left: .3rem; }
.fl-elus-organigramme { margin-top: 2rem; }
.fl-assistant-naissance { display: block; margin-top: 1.2rem; max-width: 20rem; }   /* licence : la date de naissance choisit le tarif */

/* Accueil, « Six façons de voler » : une photo par classe en tête de carte (remarque n° 150) */
.fl-hangar-photo { display: block; margin: -1.1rem -1.1rem .5rem; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 1.2rem 1.2rem 0 0; background: #F5F5F5; }
.fl-hangar-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .9s ease; }
.fl-hangar-case:hover .fl-hangar-photo img, .fl-hangar-case:focus-visible .fl-hangar-photo img { transform: scale(1.06); }
@media (prefers-reduced-motion: reduce) { .fl-hangar-photo img { transition: none; } }
.fl-fd-choix-lien { text-decoration: none; color: inherit; }

/* Audit d'affichage (11/10/2026) : dans un tableau qui défile, « overflow-wrap: anywhere » (cellules de .fl-prose) laissait les
   colonnes se réduire à une lettre (« 4 temp / s » sur téléphone, page Mécanique). break-word coupe seulement les mots trop
   longs pour la ligne : les colonnes gardent la largeur de leur plus long mot, le cadre défile s'il le faut. */
.fl-prose .fl-tableau-defile :is(td, th), .fl-prose .fl-tableau-defile :is(td, th) * { overflow-wrap: break-word; }
/* Journal de l'actualité : « Tout voir » restait sur deux lignes à côté d'un titre long (« Sport et rassemblements », téléphone). */
.fl-j-barre a { flex: none; white-space: nowrap; }
/* Listes « agenda » des rubriques (l-agenda, 72-agenda…, tour en 390 px du 11/10/2026) : le lien qui porte la date, le texte et
   la vignette occupait une seule colonne étroite de la ligne (titre sur cinq lignes, vignette écrasée). Il prend toute la
   ligne ; sur téléphone, la vignette passe sous le texte. */
.fl-agenda-liens .fl-agenda-ligne > a.fl-cat-ligne { grid-column: 1 / -1; min-width: 0; color: inherit; text-decoration: none; }
.fl-agenda-liens .fl-cat-ligne > span:not(.fl-agenda-jour) { min-width: 0; }
@media (max-width: 559px) {
  .fl-agenda-liens .fl-cat-ligne { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .fl-agenda-liens .fl-cat-vignette { grid-column: 2; width: min(100%, 12rem); }
}
/* Boutique fédérale sur téléphone (tour en 390 px du 11/10/2026) : un article par ligne faisait une page de 32 000 px ;
   deux articles par ligne, nom un peu plus petit. */
@media (max-width: 559px) {
  .fl-btq-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .fl-btq-carte a { padding: .5rem; gap: .35rem; }
  .fl-btq-nom { font-size: .9rem; overflow-wrap: anywhere; }
}
