/* Correctifs apportés à la maquette, chargés après ses styles. Le script de construction ne touche pas ce fichier. */

/* Hero de l'accueil, ordinateur : libellés des boutons sur une seule ligne, texte centré dans le cadre. */
@media (min-width:1024px){
  .hero-suite .btns .btn{white-space:nowrap;align-items:center;line-height:1.2}
}

/* Agenda : boutons Liste / Mois à 44 px au moins (42 px dans la maquette), contrôle de la note d'intégration. */
.vues button{min-height:44px}

/* Agenda : flèches Mois précédent / suivant à 44 px (36 px dans la maquette). */
button[aria-label="Mois précédent"],button[aria-label="Mois suivant"]{min-width:44px;min-height:44px}

/* Formulaires branchés (étape 6) : erreurs, message de résultat, fichier choisi. Absents de la maquette. */
.champ-erreur input,.champ-erreur select,.champ-erreur textarea{border-color:var(--rouge)!important;box-shadow:inset 0 0 0 1px var(--rouge)}
li.champ-erreur .dp-btn,.engage.champ-erreur{outline:2px solid var(--rouge);outline-offset:2px}
.form-msg{margin:16px 0 0;padding:12px 14px;border-left:4px solid var(--rouge);background:#fbeeee;color:#5c1220;font-size:.9375rem}
.form-ok{padding:28px 30px;border:1px solid var(--filet);border-top:4px solid var(--vert-f);background:#fff}
.form-ok p:last-child{margin:6px 0 0;font-size:1.0625rem;line-height:1.6}
.dp-btn.dp-choisi{border-color:var(--vert-f);color:var(--vert-f)}
.form-ok:focus{outline:none}

/* Espace amicales (étape 6b) : décision du président de la fédération, renvoi avec message. Absents de la maquette. */
.a-valider form.act{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px}
.a-valider .renvoi{flex:1 1 100%}
.a-valider .renvoi summary{list-style:none;cursor:pointer;display:inline-flex}
.a-valider .renvoi summary::-webkit-details-marker{display:none}
.a-valider .renvoi textarea{display:block;width:100%;margin:10px 0;padding:10px;border:1px solid var(--champ);font:inherit}
.bloc-ea .form-msg,.bloc-ea .confirme{margin:0 0 16px}
.a-valider .lire{margin-top:8px;font-size:.9375rem}
.a-valider .lire summary{cursor:pointer;color:var(--marine);text-decoration:underline;font-weight:600}
.a-valider .lire dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:12px 0 0}
.a-valider .lire dt{font-weight:700;color:var(--vert-f)}
.a-valider .lire dd{margin:0}
.a-valider .lire dd p{margin:0 0 8px}
.a-valider .lire img{width:90px;height:90px;object-fit:cover;border:1px solid var(--filet)}

/* Accueil, carnet de deuil : fond clair à la place du noir, jugé trop lourd (18/10/2026). */
.ac-deuil{background:var(--papier);color:var(--texte);border-left:1px solid var(--ligne)}
.ac-deuil .sur{color:var(--or-t)}
main .v2 .ac-deuil h2.t2{color:var(--vert-f)}
.ac-deuil .dl-intro{color:var(--sec)}
.ac-deuil .dl-liste,.ac-deuil .dl-liste a{border-color:var(--ligne)}
.ac-deuil .dl-liste a{color:var(--texte)}
.ac-deuil .dl-d{color:var(--or-t)}
.ac-deuil .dl-g{color:var(--sec)}
.ac-deuil .dl-n{color:var(--vert-f)}
.ac-deuil .dl-u{color:var(--sec)}
.ac-deuil .dl-liste a:hover .dl-n{text-decoration-color:var(--or)}
.ac-deuil .dl-btn{background:var(--vert-f);color:var(--ivoire)}
.ac-deuil .dl-btn:hover{background:var(--vert-t)}
.ac-deuil .dl-espace{border-color:var(--ligne);color:var(--texte)}
.ac-deuil .dl-espace svg.i{color:var(--or-t)}
.ac-deuil .dl-espace b{color:var(--vert-f)}
.ac-deuil .dl-espace:hover{border-color:var(--or)}
@media (max-width:1023px){.ac-deuil{border-left:0;border-top:1px solid var(--ligne)}}

/* Méga-menus dans un vert plus clair que l'en-tête, pour les distinguer (18/10/2026). */
.mega{background:#4b5e3b}

/* En-tête collant (18/10/2026) : la partie logo et menu se replie en descendant (js/entete.js), le bandeau Infos reste en haut. */
header.site{position:sticky;top:var(--wp-admin--admin-bar--height,0px);z-index:15;transition:transform .25s ease}
body.mega-ouvert header.site{position:sticky;z-index:31}
header.site.replie{transform:translateY(calc(-1 * var(--marque,0px)))}
@media (prefers-reduced-motion:reduce){header.site{transition:none}}
html{scroll-padding-top:calc(var(--entete-visible,0px) + 12px)}
.filtres{top:var(--entete-visible,0px);transition:top .25s ease}
.flux-side{top:calc(var(--entete-visible,0px) + 86px)}
.am-filtres,.art-grille .flux-side{top:calc(var(--entete-visible,0px) + 20px)}

/* Méga-menus en colonnes de liens sans photo (maquette C retenue le 18/10/2026), markup de fnapara_megas(). */
.mega-c{display:grid;grid-template-columns:330px minmax(0,1fr);padding:0 32px 0 0}
.sm-intro{display:flex;flex-direction:column;gap:12px;padding:34px 28px 26px 32px;background:linear-gradient(180deg,rgba(20,26,14,.5),rgba(20,26,14,.82)),var(--photo,none) center/cover no-repeat}
.sm-intro .mega-titre{text-shadow:0 1px 12px rgba(0,0,0,.35)}
.sm-intro .mega-titre{font-size:1.75rem;line-height:1.05}
.sm-liste{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));list-style:none;margin:0 0 0 32px;padding:34px 0 0;align-content:start}
.sm-liste li{display:flex;border-left:1px solid rgba(208,184,126,.35)}
.sm-liste li.suite{border-top:1px solid rgba(208,184,126,.35)}
.sm-item{display:flex;flex-direction:column;gap:8px;width:100%;padding:0 26px 26px;color:var(--ivoire);text-decoration:none}
.sm-liste li.suite .sm-item{padding-top:22px}
.sm-nom{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:var(--tech);font-weight:700;font-size:1.375rem;line-height:1.15}
.sm-nom svg.i{width:18px;height:18px;flex:0 0 18px;color:var(--or-c);stroke-width:2;transition:transform .2s}
.sm-desc{font-size:.9375rem;line-height:1.45;color:rgba(247,243,232,.85)}
.sm-item:hover .sm-nom,.sm-item:focus-visible .sm-nom{text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--or-c)}
.sm-item:hover .sm-nom svg.i{transform:translateX(3px)}
.sm-barre{display:flex;flex-wrap:wrap;gap:12px 32px;padding:14px 32px;background:rgba(39,48,29,.45);border-top:1px solid rgba(208,184,126,.35);font-weight:600;font-size:.9375rem}
.sm-barre a{display:inline-flex;align-items:center;gap:10px;min-height:24px;color:var(--ivoire);text-decoration:none}
.sm-barre a:first-child{color:#e2cf9c}
.sm-barre a:hover{text-decoration:underline;text-underline-offset:4px}
.sm-barre svg.i{width:16px;height:16px;flex:0 0 16px;stroke-width:2}
@media (prefers-reduced-motion:reduce){.sm-nom svg.i{transition:none}}
@media (min-width:1024px) and (max-width:1279px){.mega-c{grid-template-columns:240px minmax(0,1fr);padding:0 24px 0 0}.sm-intro{padding:28px 20px 22px 24px}.sm-liste{margin-left:22px;padding-top:28px}.sm-intro .mega-titre{font-size:1.375rem}.sm-item{padding:0 18px 22px}.sm-nom{font-size:1.125rem}.sm-desc{font-size:.875rem}.sm-barre{padding:12px 24px}}

/* Prochains rendez-vous : au survol, seul le titre change de couleur ; « .ev-liste a:hover b » prenait aussi le jour (18/10/2026). */
.ev-liste a:hover .ev-date b{color:inherit}

/* Nous trouver, maquette B retenue le 18/10/2026 (template-parts/accueil-trouver.php) : plan OpenStreetMap en bandeau,
   adresses posées dessus, puis carrousel des boutiques (assets/js/boutiques.js). Remplace carte + bibliothèque. */
.trouver-b{background:var(--fond)}
.tb-plan{position:relative;height:520px;overflow:hidden;background:#f3efe4;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.tb-plan>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 50%}
.tb-plan .wrap{position:relative;height:100%;display:flex;align-items:center}
.tb-bloc{width:380px;background:var(--vert-f);color:var(--ivoire);padding:32px 30px 30px;box-shadow:0 18px 40px rgba(20,26,14,.25)}
main .v2 .tb-bloc h2.t2{color:var(--ivoire);font-size:2.75rem;margin:0 0 14px}
.tb-bloc .tr-liste{margin:0 0 22px}
.tb-actions{display:flex;flex-wrap:wrap;gap:10px}
.tb-itineraire{gap:8px;border:1px solid var(--or-c);color:var(--ivoire)}
.tb-itineraire:hover{background:rgba(208,184,126,.18)}
.tb-itineraire svg.i{width:16px;height:16px;flex:0 0 16px;stroke-width:2}
.tb-boutiques{padding:56px 0 64px}
.tb-fleches{display:flex;gap:8px}
.tb-fleches[hidden],.tb-points[hidden],.tb-pause[hidden]{display:none}
.tb-fleches button{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--ligne);background:#fff;color:var(--vert-f);border-radius:2px;cursor:pointer}
.tb-fleches button:hover{border-color:var(--vert-f)}
.tb-fleches svg.i{width:18px;height:18px;flex:0 0 18px;stroke-width:2}
.tb-prec svg.i{transform:rotate(180deg)}
.tb-piste{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px) / 3);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.tb-piste::-webkit-scrollbar{display:none}
/* position:relative : le texte .sr (absolu) reste dans la carte, sinon il échappe au défilement et élargit la page. */
.tb-carte{position:relative;scroll-snap-align:start;display:flex;min-height:190px;background:#fff;border:1px solid var(--filet);border-radius:2px;overflow:hidden}
.tb-visuel{flex:0 0 150px;display:grid;place-items:center;background:var(--ivoire);border-right:1px solid var(--filet)}
.tb-visuel img{width:118px;height:118px;object-fit:contain;mix-blend-mode:multiply}
.tb-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;padding:18px 20px}
.tb-type{font-family:var(--tech);font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--or-t)}
.tb-nom{font-family:var(--tech);font-weight:700;font-size:1.1875rem;line-height:1.15;color:var(--vert-f)}
.tb-desc{font-size:.875rem;line-height:1.45;color:var(--sec);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}
.tb-lien{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:6px 0;font-family:var(--tech);font-weight:700;font-size:.875rem;color:var(--vert-f);text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--or)}
.tb-lien:hover{color:var(--rouge)}
.tb-lien svg.i{width:14px;height:14px;flex:0 0 14px;stroke-width:2}
.tb-points{display:flex;justify-content:center;gap:8px;margin-top:22px}
.tb-points span{width:6px;height:6px;border-radius:3px;background:var(--ligne);transition:width .2s}
.tb-points span.actif{width:22px;background:var(--vert-f)}
@media (prefers-reduced-motion:reduce){.tb-points span{transition:none}}
@media (max-width:1023px){.tb-piste{grid-auto-columns:calc((100% - 20px) / 2)}}
@media (max-width:640px){
  .tb-plan{height:auto;overflow:visible;border-bottom:0}
  .tb-plan>img{position:relative;height:280px}
  .tb-plan .wrap{width:100%;display:block}
  .tb-bloc{width:auto;padding:26px 20px 28px;box-shadow:none}
  main .v2 .tb-bloc h2.t2{font-size:2.25rem}
  .tb-boutiques{padding:40px 0 44px}
  .tb-boutiques .tete{flex-wrap:wrap}
  .tb-piste{grid-auto-columns:86%;gap:14px}
  .tb-visuel{flex-basis:104px}.tb-visuel img{width:80px;height:80px}
  .tb-txt{padding:16px}
}

/* Section atteinte par une ancre : elle reçoit le focus (entete.js) sans afficher de contour. */
section[tabindex="-1"]:focus{outline:none}

/* La fédération, Mission (maquette 1-B retenue le 18/10/2026, template-parts/federation-mission.php) : citation en haut
   à côté de la photo, les 3 buts en liste dessous ; la frise des statuts suit. */
.mi-duo{align-items:start;gap:56px}
.mi-cote .cite2{margin:0 0 30px}
.mi-cote>.sur{margin:0 0 4px}
.mi-buts{list-style:none;margin:0;padding:0;border-top:2px solid var(--texte)}
.mi-buts li{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--filet)}
.mi-buts .pr-n{flex:0 0 46px;font-size:2.25rem}
.mi-buts p{margin:0;font-size:.9375rem;line-height:1.5;color:#2f332b}
.mi-info{margin-top:34px}
@media (max-width:1023px){.mi-duo{gap:26px}.mi-buts .pr-n{flex-basis:40px;font-size:2rem}}

/* La fédération, « Le conseil sur le terrain » : bouton court sur une ligne (maquette 2-B, 18/10/2026). */
.fd-reportage{white-space:nowrap;width:auto}

/* La fédération, présidents d'honneur en « ligne d'honneur » (maquette 3-D retenue le 18/10/2026) : bandeau vert foncé,
   insigne du brevet, noms à la suite séparés par des points dorés. CSS seul : le balisage de la maquette ne change pas. */
.bloc-suite:has(>.honneur){margin-top:48px;padding:40px 32px 46px;border-top:0;background:var(--vert-f);text-align:center}
.bloc-suite:has(>.honneur)::before{content:"";display:block;width:92px;height:55px;margin:0 auto 16px;background:url("../img/insigne-brevet.png") center/contain no-repeat}
.bloc-suite:has(>.honneur)>.sur{margin:0 0 14px;color:#e2cf9c}
.honneur{display:flex;flex-wrap:wrap;justify-content:center;margin:0 auto}
/* Deux lignes fixes, 4 puis 3 noms : aucun point en début de ligne. */
.honneur::after{content:"";flex-basis:100%;order:1}
.honneur li:nth-child(n+5){order:2}
.honneur li:nth-child(5)::before{content:none}
.honneur li{display:inline-block;min-height:0;padding:0;background:none;border:0;border-radius:0;font-family:var(--cond);font-weight:400;font-size:1.625rem;line-height:1.5;color:var(--ivoire);white-space:nowrap}
.honneur li+li::before{content:"·";display:inline-block;width:1.5em;text-align:center;color:var(--or-c)}
@media (min-width:1024px) and (max-width:1279px){.honneur li{font-size:1.375rem}}
@media (max-width:1023px){.honneur{flex-direction:column;align-items:center}.honneur::after{display:none}.honneur li+li::before{content:none}.honneur li{white-space:normal}}
@media (max-width:640px){.bloc-suite:has(>.honneur){padding:32px 20px 36px}.honneur li{font-size:1.25rem}}

/* La fédération, frise des statuts (maquette 4-B, 18/10/2026) : versions anciennes en retrait, 2024 en avant avec son PDF. */
.frise-v li:not(.en-vigueur) b{color:#8a9083}
.frise-v li:not(.en-vigueur) span{color:#666b61}
.frise-v .en-vigueur{background:var(--bande);padding-bottom:12px}
.frise-v .en-vigueur b{color:var(--rouge)}
.frise-v .en-vigueur span{color:var(--texte)}
.frise-v .en-vigueur a{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:6px;padding-bottom:1px;border-bottom:1px solid var(--or);font-weight:600;font-size:.8125rem;color:var(--vert-f);text-decoration:none}
.frise-v .en-vigueur a:hover{color:var(--rouge)}
.frise-v .en-vigueur svg.i{width:14px;height:14px;flex:0 0 14px;stroke-width:2}

/* Visionneuse plein écran des récits en photos (assets/js/visionneuse.js, 18/10/2026). */
.passes .vis-ouvrir{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}
.passes .vis-ouvrir:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.passes .vis-ouvrir img{transition:opacity .2s}
.passes .vis-ouvrir:hover img{opacity:.88}
html.vis-ouverte{overflow:hidden}
.visionneuse{width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(15,19,12,.96);color:var(--ivoire)}
.visionneuse::backdrop{background:rgba(15,19,12,.96)}
.visionneuse figure{height:100%;margin:0;box-sizing:border-box;padding:64px 88px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.visionneuse img{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;display:block}
.visionneuse figcaption{display:flex;gap:14px;align-items:baseline;font-size:1rem;line-height:1.4;text-align:center}
.visionneuse figcaption b{font-family:var(--tech);font-weight:700;font-size:.875rem;letter-spacing:.08em;color:var(--or-c);white-space:nowrap}
.visionneuse button{position:absolute;width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid rgba(247,243,232,.35);border-radius:2px;background:rgba(15,19,12,.6);color:var(--ivoire);cursor:pointer}
.visionneuse button:hover,.visionneuse button:focus-visible{border-color:var(--or-c);background:rgba(208,184,126,.18)}
.visionneuse button svg.i{width:22px;height:22px;flex:0 0 22px;stroke-width:2}
.vis-fermer{top:16px;right:16px}
.vis-prec,.vis-suiv{top:50%;margin-top:-24px}
.vis-prec{left:20px}.vis-suiv{right:20px}
.vis-prec svg.i{transform:rotate(180deg)}
.visionneuse.seule .vis-prec,.visionneuse.seule .vis-suiv{display:none}
@media (max-width:640px){.visionneuse figure{padding:64px 12px 20px}.vis-prec,.vis-suiv{top:auto;bottom:16px;margin-top:0}.visionneuse figure{padding-bottom:84px}.visionneuse img{max-height:calc(100vh - 210px)}}

/* Bandeau « Rejoindre la fédération » (maquette 5-B, template-parts/rejoindre.php) : La fédération, Mémoire, articles. */
.rejoindre{padding:56px 0 64px;background:var(--bande);border-top:1px solid var(--filet)}
.rejoindre .t2{margin:0 0 24px}
.rj-portes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.rj-porte{display:flex;flex-direction:column;gap:12px;padding:28px 28px 30px;background:#fff;border:1px solid var(--filet);border-top:3px solid var(--or)}
.rj-porte.fort{background:var(--vert-f);border-color:var(--vert-f);border-top-color:var(--or)}
.rj-sur{margin:0;font-family:var(--tech);font-weight:700;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rouge)}
.rj-titre{margin:0;font-family:var(--tech);font-weight:700;font-size:1.5rem;line-height:1.15;color:var(--vert-f)}
.rj-texte{margin:0;font-size:1rem;line-height:1.55;color:var(--sec)}
.rj-btn{align-self:flex-start;margin-top:auto;gap:10px;border:1px solid var(--vert-f);color:var(--vert-f);background:#fff}
.rj-btn:hover{background:var(--vert-f);color:#fff}
.rj-btn svg.i{width:16px;height:16px;flex:0 0 16px;stroke-width:2}
.rj-porte.fort .rj-sur{color:#e2cf9c}
.rj-porte.fort .rj-titre{color:var(--ivoire)}
.rj-porte.fort .rj-texte{color:rgba(247,243,232,.85)}
.rj-porte.fort .rj-btn{background:var(--ivoire);border-color:var(--ivoire);color:var(--vert-f)}
.rj-porte.fort .rj-btn:hover{background:var(--or-c);border-color:var(--or-c)}
@media (max-width:1023px){.rj-portes{grid-template-columns:1fr}.rj-porte{padding:22px 20px 24px}}
@media (max-width:640px){.rejoindre{padding:40px 0 44px}}

/* La fédération, charte en fenêtre de lecture (maquette E, template-parts/federation-charte.php, assets/js/charte.js). */
.ch-ouvrir-l{margin:8px 0 0}
.ch-ouvrir{gap:12px;min-height:50px}
.ch-ouvrir svg.i{width:20px;height:20px;flex:0 0 20px}
html.ch-ouverte{overflow:hidden}
.ch-dlg{width:min(860px,calc(100vw - 40px));height:calc(100vh - 80px);max-width:none;max-height:none;margin:auto;padding:0;border:0;border-top:4px solid var(--or);background:#fff;color:var(--texte);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.ch-dlg[open]{display:flex;flex-direction:column}
.ch-dlg::backdrop{background:rgba(15,19,12,.72)}
.ch-tete{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px 16px 56px;border-bottom:1px solid var(--filet)}
.ch-tete .sur{margin:0 0 4px;font-size:.75rem}
.ch-titre{margin:0;font-family:var(--cond);font-size:2rem;line-height:1;text-transform:uppercase;color:var(--vert-f)}
.ch-actions{display:flex;gap:10px}
.ch-actions button,.ch-actions a{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--ligne);border-radius:2px;background:#fff;color:var(--vert-f);font-family:var(--tech);font-weight:700;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.ch-actions .ch-telecharger{border-color:var(--vert-f);text-decoration:none}
.ch-actions button:hover,.ch-actions a:hover{background:var(--vert-f);border-color:var(--vert-f);color:#fff}
.ch-actions svg.i{width:18px;height:18px;flex:0 0 18px;stroke-width:2}
.ch-fermer{padding:0!important}
.ch-court{display:none}
.ch-corps{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:28px 56px 40px}
.ch-corps ul{padding-left:58px}
@media (max-width:640px){
  .ch-dlg{width:100vw;height:100vh;height:100dvh;border-top-width:3px}
  .ch-tete{gap:10px;padding:12px 12px 12px 20px}.ch-titre{font-size:1.375rem;white-space:nowrap}
  .ch-actions{gap:8px}.ch-actions .ch-telecharger{padding:0 10px}
  .ch-long,.ch-tete .sur{display:none}
  .ch-court{display:inline}
  .ch-corps{padding:20px 20px 32px}.ch-corps ul{padding-left:20px}
}
.ch-corps:focus{outline:none}

/* Pied de page en pleine largeur (demande du 18/10/2026) : contenu aligné sur l'en-tête, 32 px de chaque côté,
   au lieu de la colonne centrée de 1 232 px. Sous 1024 px, les 20 px d'origine. */
@media (min-width:1024px){.pied2 .wrap{width:auto;margin:0 32px}}

/* Actualités, filtres sur une ligne (maquette 1-B, 18/10/2026) : recherche plus courte ; rubriques vides masquées
   (fnapara_rubriques_non_vides). Sous 1024 px, la mise en page d'origine (recherche au-dessus, rubriques à glisser). */
@media (min-width:1024px){.filtres .f-rech{flex-basis:260px}}
@media (min-width:1024px) and (max-width:1279px){.filtres .f-rech{flex-basis:220px}.filtres .chip{padding:0 11px}}

/* Actualités, vignette pour tous (maquette 3-B, 18/10/2026) : sans photo, l'insigne sur fond crème chaud dans un cadre
   doré à double filet, au lieu de la couleur de la rubrique, jugée « trop » (demande du 18/10/2026). */
.l-vis.l-vide{display:grid;place-items:center;background:#f7f1e3;border:1px solid var(--or);box-shadow:inset 0 0 0 4px #f7f1e3,inset 0 0 0 5px rgba(168,138,74,.55)}
.l-vis.l-vide img{width:40%;height:auto;object-fit:contain;filter:brightness(.8) contrast(1.15)}

/* Actualités, colonne : « Une nouvelle à partager ? » à la place de « Les rubriques » (maquette 4-C, 18/10/2026). */
.side-partage{background:var(--bande);border-top-color:var(--or)}
.side-partage .sur{margin:0 0 6px}
.side-partage .side-p{margin:0 0 16px}
.side-partage .btn-v2{gap:10px}
.side-partage .btn-v2 svg.i{width:18px;height:18px;flex:0 0 18px}

/* Carnet de deuil de la colonne (actualités, articles) en clair comme sur l'accueil, au lieu du noir (maquette 5-B,
   18/10/2026 ; le vert foncé 5-C a été essayé puis écarté). */
.side-deuil{background:#fff;color:var(--texte);border-color:var(--filet);border-top-color:var(--or)}
.side-deuil .sur{color:var(--or-t)}
.side-deuil .side-t{color:var(--vert-f)}
.side-deuil ol,.side-deuil li a{border-color:var(--ligne)}
.side-deuil li a{color:var(--vert-f)}
.side-deuil .dl-d{color:var(--or-t)}
.side-deuil li a:hover .dl-n{text-decoration:underline;text-decoration-color:var(--or);text-underline-offset:3px}
.side-deuil .dl-btn{background:var(--vert-f);color:var(--ivoire)}
.side-deuil .dl-btn:hover{background:var(--vert-t);color:var(--ivoire)}

/* Téléphone, haut de page de toutes les pages (maquette 6-B des Actualités, étendue au site le 18/10/2026) :
   le titre d'abord, puis la photo, ramenée à 190 px de haut (elle passait avant le titre, en 3/2). */
@media (max-width:640px){
  .pg-top-photo{order:0;margin:0 -20px}
  .pg-top-photo img{aspect-ratio:auto;height:190px}
}
/* Colonne des actualités empilée sous la liste (tablette et téléphone, maquette 6-B) : « nouvelle à partager » en une
   ligne, carnet de deuil réduit aux 2 derniers avis, archives sur une ligne. */
@media (max-width:1023px){
  .side-partage{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px}
  .side-partage .sur,.side-partage .side-p{display:none}
  .side-partage .side-t{margin:0;font-size:1.25rem}
  .side-partage .btn-v2{flex:0 0 auto;min-height:44px;padding:0 14px;font-size:.8125rem}
  .side-deuil li:nth-child(n+3){display:none}
  .side-bloc:has(.annees){display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:14px 16px}
  .side-bloc:has(.annees) .side-t{margin:0;font-size:1.125rem}
  .side-bloc .annees{gap:4px}.side-bloc .annees a{min-width:0;padding:0 8px}
}

/* Récit en photos (choix D du 24/10/2026, remplace la grille adaptable du 18/10) : toujours 4 cases par rangée, en
   hauteur 4:5, alignées à gauche ; image marquée « document » entière sur fond crème ; pas de numéros dans les
   légendes. Tablette : 2 par rangée, téléphone : 1, en 3:2. */
.passes.recit{grid-template-columns:repeat(4,minmax(0,1fr))}
.passes.recit img{aspect-ratio:4/5}
.passes.recit li.doc img{object-fit:contain;background:#f7f1e3}
.passes.recit figcaption{display:block;padding:12px 16px 14px}
.passes.recit figcaption span{font-family:var(--tech);font-weight:600;font-size:.9688rem;line-height:1.4;color:var(--vert-f)}
@media (max-width:1023px){.passes.recit{grid-template-columns:repeat(2,minmax(0,1fr))}.passes.recit img{aspect-ratio:3/2}}
@media (max-width:640px){.passes.recit{grid-template-columns:1fr}}

/* Espace amicales, « Proposer une actualité » au modèle (plugin fnapara-redaction : gabarits/espace-actu.php, js/envoi-actu.js). */
.ea-actu .ea-etape{margin:0;padding:24px 0;border:0;border-top:1px solid var(--filet)}
.ea-actu .ea-etape legend{display:flex;align-items:center;gap:12px;padding:0;margin:0 0 14px;font-family:var(--tech);font-weight:700;font-size:1.1875rem;color:var(--vert-f)}
.ea-n{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--vert-f);color:var(--ivoire);font-size:.9375rem}
.ea-actu .ea-etape legend em{font-style:normal;font-weight:400;color:var(--sec)}
.ea-note{margin:12px 0 0;font-size:.875rem;color:var(--sec)}
.ea-compte{align-self:flex-end;font-size:.75rem;color:var(--sec)}
.ea-compte.plein{color:var(--rouge);font-weight:700}
.ea-redac{display:flex;flex-direction:column;gap:6px}
.ea-outils{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border:1px solid var(--champ);border-bottom:0;background:var(--bande)}
.ea-outils button{min-height:36px;padding:0 12px;border:1px solid var(--champ);border-radius:2px;background:#fff;color:var(--vert-f);font-family:var(--tech);font-weight:700;font-size:.8125rem;cursor:pointer}
.ea-outils button:hover{border-color:var(--vert-f)}
.ea-texte{min-height:220px;max-height:560px;overflow-y:auto;padding:14px 16px;border:1px solid var(--champ);background:#fff;font-size:1rem;line-height:1.6;color:var(--texte)}
.ea-texte:focus{outline:2px solid var(--or);outline-offset:1px}
.ea-texte.trop{border-color:var(--rouge)}
.ea-texte p{margin:0 0 10px}.ea-texte h2{margin:14px 0 8px;font-family:var(--cond);font-size:1.5rem;text-transform:uppercase;color:var(--vert-f)}
.ea-texte h3{margin:12px 0 6px;font-family:var(--tech);font-size:1.1875rem;color:var(--vert-f)}
.ea-texte blockquote{margin:10px 0;padding-left:14px;border-left:3px solid var(--or);font-family:var(--tech);font-size:1.125rem;color:var(--vert-f)}
.ea-para{margin:0;font-size:.875rem;color:var(--rouge)}
.ea-choisir{display:flex;align-items:center;justify-content:center;min-height:90px;padding:16px;border:2px dashed var(--champ);border-radius:2px;background:#fff;text-align:center;cursor:pointer}
.ea-choisir:hover,.ea-choisir:focus-within{border-color:var(--vert-f)}
.ea-choisir input{position:absolute;width:1px;height:1px;opacity:0}
.ea-choisir span{font-size:.875rem;color:var(--sec)}.ea-choisir b{display:block;font-family:var(--tech);font-size:1rem;color:var(--vert-f)}
.ea-fichiers{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.ea-fichiers.ea-grille{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.ea-fichier{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--filet);background:#fff;font-size:.8125rem}
.ea-fichier img{width:100%;height:120px;object-fit:cover}
.ea-doc{display:grid;place-items:center;height:48px;background:var(--bande);font-family:var(--tech);font-weight:700;color:var(--vert-f)}
.ea-nom{font-weight:600;word-break:break-all;color:var(--texte)}
.ea-ok{color:#2f6b2f}
.ea-fichier input[type=text]{min-height:38px;padding:6px 8px;border:1px solid var(--champ);font:inherit;font-size:.875rem}
.ea-retirer{align-self:flex-start;padding:4px 0;border:0;background:none;color:var(--rouge);font-weight:600;cursor:pointer;text-decoration:underline}
.ea-attente{color:var(--sec)}.ea-refus{color:var(--rouge);border-color:var(--rouge)}
@media (max-width:1023px){.ea-fichiers.ea-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Document joint dans un article (bloc Fichier rendu comme les documents officiels). */
.art-docs{margin:22px 0;max-width:720px}
.ea-depot[data-unique] .ea-fichier{max-width:360px}.ea-depot[data-unique] .ea-fichier img{height:200px}

/* Carnet de deuil : texte de l'avis repris de l'ancien site, dépliable dans la fiche (18/10/2026). */
.avis-texte{margin:12px 0 0;border-top:1px solid var(--filet)}
.avis-texte summary{cursor:pointer;padding:10px 0;font-family:var(--tech);font-weight:700;font-size:.9375rem;color:var(--vert-f)}
.avis-texte div{max-height:420px;overflow-y:auto;font-size:.9375rem;line-height:1.55;color:var(--texte)}
.avis-texte p{margin:0 0 10px}
/* Plus de 4 rubriques remplies (« Toutes » + 5 pastilles ou plus) : recherche au-dessus, rubriques sur une ligne dessous
   (maquette 1-C, prévue comme relais de la 1-B, 18/10/2026). */
@media (min-width:1024px){
  .filtres-in:has(.chips .chip:nth-child(6)){flex-direction:column;align-items:flex-start;gap:12px}
  .filtres-in:has(.chips .chip:nth-child(6)) .f-rech{flex:0 0 auto;width:min(560px,100%)}
}
/* Contenus repris de l'ancien site : un mot très long (adresse web, nom de fichier) passe à la ligne au lieu
   d'élargir la page ; les colonnes peuvent rétrécir (18/10/2026). */
main,footer.pied2{overflow-wrap:break-word}
.flux-main,.flux-side,.l-txt,.pd-grille>*,.pd-plan>*{min-width:0}
.l-txt,.l-t,.l-c,.pd-contact a{overflow-wrap:anywhere}
.art-grille>*,.art-corps,.prose{min-width:0}
main p a,main li a{overflow-wrap:anywhere}

/* Agenda, « La FNAPara sur le terrain » alimenté par les articles (template-parts/agenda-terrain.php) : cartes cliquables. */
.passes.terrain a{display:block;height:100%;color:inherit;text-decoration:none}
.passes.terrain a:hover span,.passes.terrain a:focus-visible span{text-decoration:underline;text-decoration-color:var(--or);text-underline-offset:3px}
.passes.terrain a:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.passes.terrain figcaption small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.passes.terrain figcaption span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden}

/* Agenda : type « Amicales » (événements proposés par les amicales, 18/10/2026), gris comme « Nouvelles des amicales ». */
.ev-tag.k-am{background:#4a4f57}
/* Espace amicales : 5 raccourcis sur une rangée quand le 5e (« Proposer un événement ») est là. */
@media (min-width:1024px){.cartes4:has(>li:nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}}

/* Agenda, vue Mois (template-parts/agenda-mois.php, maquette C retenue le 18/10/2026 : grille compacte, détail dessous). */
.vues a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;background:#fff;color:var(--texte);font-family:var(--tech);font-weight:700;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.vues a+a{border-left:1px solid var(--champ)}
.vues a.actif{background:var(--vert-f);color:#fff}
.vues a:not(.actif):hover{background:var(--bande)}
.vues a:focus-visible{outline:3px solid var(--or);outline-offset:-3px}
@media (max-width:640px){.vues a{flex:1 1 0;justify-content:center}}
.agenda-mois .flux-main>.tete,.agenda-mois .flux-side .side-bloc:has(.cal){display:none}
.mv-tete{display:flex;align-items:center;gap:14px;margin:0 0 14px}
.mv-tete .t2{margin:0;min-width:0}
.mv-tete .t2:focus{outline:none}
.mv-fl{flex:0 0 44px;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--champ);border-radius:2px;background:#fff;color:var(--vert-f)}
.mv-fl:hover{background:var(--bande)}.mv-fl .i{width:18px;height:18px}.mv-fl .i.g{transform:rotate(180deg)}
.mv-auj{margin-left:auto;white-space:nowrap;font-family:var(--tech);font-weight:700;font-size:.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--vert-f);text-underline-offset:4px}
.mv-annees{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 22px;font-family:var(--tech);font-weight:600;font-size:.9375rem}
.mv-annees span{font-weight:700;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sec);margin-right:4px}
.mv-annees a{color:var(--sec);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.mv-annees a:hover{color:var(--vert-f)}
.mv-annees a[aria-current]{color:var(--vert-f);font-weight:700;border-bottom-color:var(--or)}
.mv-grille{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff;border:1px solid var(--filet)}
.mv-grille th{padding:10px 8px;font-family:var(--tech);font-weight:700;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sec);text-align:left;border-bottom:2px solid var(--vert-f)}
.mv-grille abbr{text-decoration:none}
.mv-grille td{padding:6px;vertical-align:top;border:1px solid var(--filet)}
.mv-grille td.hors{background:var(--bande)}
.mv-grille td.passe .mv-j{color:#9a9c92}
.mv-j{display:inline-grid;place-items:center;min-width:28px;height:28px;font-family:var(--tech);font-weight:700;font-size:.9375rem;color:var(--texte)}
.mv-grille td.auj .mv-j{background:var(--or);color:#fff;border-radius:2px}
.mv-ev{display:block;margin:4px 0 0;padding:5px 7px 6px;border-left:4px solid var(--marine);background:#eef1f6;color:var(--texte);text-decoration:none;border-radius:0 2px 2px 0}
.mv-ev b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;font-family:var(--tech);font-weight:700;font-size:.8125rem;line-height:1.25}
.mv-ev small{display:block;margin-top:2px;font-size:.75rem;line-height:1.3;color:var(--sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.mv-ev:hover b,a.mv-ev:focus-visible b{text-decoration:underline;text-decoration-color:var(--or);text-underline-offset:2px}
a.mv-ev:focus-visible{outline:3px solid var(--or);outline-offset:1px}
.mv-ev.k-fed{border-left-color:var(--rouge);background:#fbecec}
.mv-ev.k-para{border-left-color:var(--vert);background:#eef0ea}
.mv-ev.k-am{border-left-color:#4a4f57;background:#eeeff1}
td.passe .mv-ev{opacity:.82}
.mv-detail .mois{margin-top:34px}
.ev-passe .ev-date{background:#7b7f74}
/* Grille compacte : titres sur une ligne, le lieu dans le détail. */
.mv-grille td{height:84px}
.mois-vue .mv-ev{padding:3px 6px}
.mois-vue .mv-ev b{-webkit-line-clamp:1;line-clamp:1;font-size:.75rem}
.mois-vue .mv-ev small{display:none}
/* Téléphone : le détail du mois seul. */
@media (max-width:639px){
  .mv-grille{display:none}
  .mv-tete{gap:10px}.mv-tete .t2{font-size:1.75rem}
  .mv-detail .mois{margin-top:8px}
}

/* Calendrier de la colonne : mois en cours de chargement (assets/js/calendrier.js). */
.cal[aria-busy="true"] table,.mois-vue[aria-busy="true"] .mv-grille,.mois-vue[aria-busy="true"] .mv-detail{opacity:.45;transition:opacity .15s}

/* Carnet de deuil (18/10/2026) : message du président sur le vert foncé des présidents d'honneur (le noir était trop dur) ;
   encadré « Annoncer un décès » qui suit le défilement ; sur téléphone, un bouton flottant le remplace en cours de page. */
.bande-cit.noir{background:var(--vert-f)}
.pg-sec:has(#liste) .flux-side{align-self:start}
.deuil-flottant{display:none}
@media (max-width:1023px){
  .deuil-flottant{position:fixed;right:16px;bottom:16px;z-index:20;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;background:var(--marine);color:#fff;border-radius:24px;box-shadow:0 6px 18px rgba(0,0,0,.28);font-family:var(--tech);font-weight:700;font-size:.875rem;letter-spacing:.06em;text-decoration:none}
  .deuil-flottant .i{width:16px;height:16px}
  .deuil-flottant:focus-visible{outline:3px solid var(--or);outline-offset:2px}
  body:has(.flux-side .side-fonce.vu) .deuil-flottant{display:none}
}
/* Pagination des avis (assets/js/carnet.js). */
.pages-avis{display:flex;flex-wrap:wrap;gap:6px;margin:28px 0 0}
.pages-avis[hidden]{display:none}
.pages-avis button{min-width:44px;height:44px;padding:0 12px;border:1px solid var(--champ);border-radius:2px;background:#fff;color:var(--vert-f);font-family:var(--tech);font-weight:700;font-size:.9375rem;cursor:pointer}
.pages-avis button:hover{background:var(--bande)}
.pages-avis button[aria-current]{background:var(--vert-f);border-color:var(--vert-f);color:#fff}
.pages-avis button:disabled{opacity:.4;cursor:default}
.pages-avis button:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.pages-avis span{display:grid;place-items:center;min-width:24px;height:44px;color:var(--sec)}
.deuil-flottant,.side-fonce .lien-clair{white-space:nowrap}

/* Carnet de deuil, ligne d'un avis (maquette 2-C retenue le 18/10/2026) : pavé clair à filet doré, croix au-dessus du jour. */
.avis-l summary{gap:22px;padding:16px 0;min-height:0}
.avis-l summary>svg.i{display:none}
.pave-deces{flex:0 0 78px;padding:10px 0 9px;text-align:center;border:1px solid var(--or-c);border-top:3px solid var(--or);background:#fbf8f0;color:var(--vert-f)}
.pave-deces .croix{display:block;width:10px;height:14px;margin:0 auto 4px;color:var(--or)}
.pave-deces b{display:block;font:600 1.875rem/1 var(--cond)}
.pave-deces b sup{font-size:.5em;vertical-align:super;line-height:0}
.pave-deces small{display:block;margin-top:3px;font:700 .625rem var(--tech);letter-spacing:.1em;text-transform:uppercase;color:var(--sec)}
.avis-qui{min-width:0}
.avis-grade{display:block;margin-bottom:3px;font:700 .75rem var(--tech);letter-spacing:.12em;text-transform:uppercase;color:var(--sec)}
.avis-qui b{display:block;font:600 1.1875rem/1.25 var(--cond);color:var(--vert-f)}
.avis-qui small{display:block;margin-top:4px;font-size:.9375rem;color:var(--sec)}
.avis-lire{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;font:700 .75rem var(--tech);letter-spacing:.12em;text-transform:uppercase;color:var(--vert-f)}
.avis-lire i{position:relative;width:30px;height:30px;border:1px solid var(--champ);border-radius:50%;transition:transform .2s}
.avis-lire i::before,.avis-lire i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;margin:-1px 0 0 -5px;background:var(--rouge)}
.avis-lire i::after{transform:rotate(90deg)}
.avis-l details[open]>summary .avis-lire i{transform:rotate(45deg)}
.avis-l summary:hover .avis-qui b{color:var(--rouge)}
.avis-l summary:focus-visible{outline:3px solid var(--or);outline-offset:2px}
@media (max-width:639px){
  .avis-l summary{gap:14px;padding:14px 0}
  .pave-deces{flex-basis:62px;padding:8px 0 7px}.pave-deces b{font-size:1.5rem}
  .avis-lire{font-size:0;gap:0}
  .avis-qui b{font-size:1.0625rem}
}

/* Carnet de deuil, fiche ouverte : le texte de l'avis sans le message du président, dans un volet « Hommage » fermé
   au départ (18/10/2026). */
.avis-hommage{margin:18px 0 0;border-top:1px solid var(--filet)}
.avis-l .c>.avis-hommage:first-child{margin-top:0;border-top:0}
.avis-hommage>summary{display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;list-style:none;font:700 .8125rem var(--tech);letter-spacing:.14em;text-transform:uppercase;color:var(--vert-f)}
.avis-hommage>summary::-webkit-details-marker{display:none}
.avis-hommage>summary::after{content:"Son parcours, les obsèques";font:400 .875rem var(--sans);letter-spacing:0;text-transform:none;color:var(--sec)}
.avis-hommage>summary i{order:-1;position:relative;flex:0 0 26px;height:26px;border:1px solid var(--or-c);border-radius:50%;background:#fff;transition:transform .2s}
.avis-hommage>summary i::before,.avis-hommage>summary i::after{content:"";position:absolute;left:50%;top:50%;width:10px;height:2px;margin:-1px 0 0 -5px;background:var(--or-t)}
.avis-hommage>summary i::after{transform:rotate(90deg)}
.avis-hommage[open]>summary i{transform:rotate(45deg)}
.avis-hommage>summary:hover{color:var(--rouge)}
.avis-hommage>summary:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.avis-hommage>div{padding:0 0 6px 38px}
.avis-hommage p{margin:0 0 10px;font-size:.9375rem;line-height:1.6;color:var(--texte);max-width:68ch}
.avis-hommage p:last-child{margin-bottom:0}
.avis-hommage a{color:var(--vert-f);overflow-wrap:anywhere}
@media (max-width:639px){.avis-hommage>div{padding-left:0}.avis-hommage>summary::after{display:none}}
/* Survol d'un avis : seul le nom change de couleur, la date reste verte (la maquette passait tout <b> en rouge). */
.avis-l summary:hover .pave-deces b{color:var(--vert-f)}
.filtres .compte{white-space:nowrap}
/* Amicales, encadré « sans amicale ? » : bouton sur une ligne (18/10/2026). */
section:has(#t-or) .btn-v2{white-space:nowrap}
/* Vidéos YouTube des articles (inc/actualites.php) : format 16/9 sur toute la largeur du texte. */
.video-yt{margin:28px 0}
.video-yt iframe{display:block;width:100%;aspect-ratio:16/9;height:auto;border:0;background:#000}
/* Pages légales : ce que la fédération doit encore fournir (lot-legal/pages.php), à retirer en complétant la page. */
mark.a-completer{background:#fff3c4;color:#6b4e00;padding:1px 6px;border:1px dashed #c9a227;border-radius:2px;font-weight:600}
/* Amicales : filtre actif rappelé au-dessus de la liste (assets/js/annuaire.js). */
.am-actif{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 14px;padding:10px 14px;background:#fbf8f0;border:1px solid var(--or-c);border-left:3px solid var(--or);font-size:.9375rem;color:var(--sec)}
.am-actif[hidden]{display:none}
.am-actif b{color:var(--vert-f);font-family:var(--tech);font-weight:700}
.am-actif button{margin-left:auto;min-height:36px;padding:0 14px;border:1px solid var(--champ);border-radius:2px;background:#fff;color:var(--vert-f);font:700 .75rem var(--tech);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.am-actif button:hover{background:var(--bande)}
.am-actif button:focus-visible{outline:3px solid var(--or);outline-offset:2px}
/* Cibles d'ancre (sections, repères .ancre, formulaire #rechercher) : entete.js leur donne le focus (tabindex="-1") pour
   le clavier et les lecteurs d'écran ; pas de contour rouge sur ces zones, qui ne sont ni liens ni champs (18/10/2026). */
[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none}

/* Adhésion (18/10/2026) : bouton du haut sur une ligne ; étapes du formulaire à 34 px sur téléphone (elles se
   chevauchaient) ; orientation des anciens parachutistes (assets/js/adhesion.js). */
.pg-top .btn-v2{white-space:nowrap}
@media (max-width:639px){.stp-etapes li:not(.actif){flex:0 0 34px}}
.et-orient{margin:18px 0 0;padding:18px 20px;background:#fbf8f0;border:1px solid var(--or-c);border-left:3px solid var(--or)}
.et-orient[hidden]{display:none}
.et-orient .sur{margin:0 0 6px}
.et-orient h4{margin:0 0 8px;font:600 1.25rem/1.2 var(--cond);text-transform:uppercase;color:var(--vert-f)}
.et-orient p{margin:0 0 14px;font-size:.9375rem;line-height:1.55;color:var(--texte)}
.et-orient-b{display:flex;flex-wrap:wrap;gap:10px}
.et-orient-b .btn-v2{white-space:nowrap}
/* Adhésion, « Demande d'adhésion » : colonne de droite fixe, alignée en bas du formulaire (même hauteur ; elle
   coulissait au défilement), demande du 18/10/2026. */
@media (min-width:1024px){
  .form-grille:has(#f-adh){align-items:stretch}
  .form-grille:has(#f-adh)>.flux-side{position:static;justify-content:flex-end}
  .form-grille:has(#f-adh)>.form-main{display:flex;flex-direction:column}
  #f-adh{flex:1 1 auto;display:flex;flex-direction:column}
  #f-adh>.stp-nav{margin-top:auto}
}
/* La fédération, « Statuts et documents » : comme l'adhésion, colonne fixe alignée en bas de la liste (18/10/2026). */
@media (min-width:1024px){#statuts .flux-side{position:static;align-self:end}}
/* Album complet hors du site (19/10/2026) : bouton sous le récit en photos */
.album-tout{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:28px 0 0}
.album-tout .btn-v2{gap:10px;white-space:nowrap}.album-tout .btn-v2 svg.i{width:18px;height:18px;flex-basis:18px}
.album-tout small{font-size:.875rem;color:var(--sec)}
/* Mémoire, « Albums et vidéos » : grille de cartes (maquette 2-B, 19/10/2026), template-parts/memoire-albums.php */
.alb-grille{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.alb-carte{display:flex;flex-direction:column;height:100%;text-decoration:none;background:var(--carte);border:1px solid var(--filet)}
.alb-vis{display:block;height:150px;background:var(--bande);overflow:hidden}
.alb-vis img{display:block;width:100%;height:100%;object-fit:cover}
.alb-txt{display:flex;flex-direction:column;flex:1;padding:12px 16px 14px}
.alb-de{font-family:var(--tech);font-weight:700;font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--sec)}
.alb-t{margin:6px 0 8px;font-family:var(--tech);font-weight:700;font-size:1.125rem;line-height:1.3;color:var(--vert-f)}
.alb-lien{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font-size:.875rem;color:var(--sec)}
.alb-ext .alb-lien{color:var(--marine)}.alb-lien svg.i{width:14px;height:14px;flex:0 0 14px}
.alb-carte:hover .alb-t{color:var(--rouge)}
@media (max-width:1023px){.alb-grille{grid-template-columns:repeat(2,1fr)}}
@media (max-width:639px){.alb-grille{grid-template-columns:1fr;gap:14px}}
/* Mémoire (19/10/2026) : « Lire l'appel à souscription » et « Site du musée » sur une ligne, icône collée au texte */
#souscription .pg-btns .btn-v2,#musee .btn-v2{gap:10px;white-space:nowrap}
/* Photos dont l'autorisation reste à demander (24/10/2026, assets/js/autorisations.js, hors production) */
.pastille-droits{position:absolute;top:10px;left:10px;z-index:3;max-width:calc(100% - 20px);display:flex;flex-direction:column;gap:1px;padding:5px 9px 6px;background:var(--rouge);color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.35);font:500 .75rem/1.25 var(--sans,inherit);text-transform:none;letter-spacing:0;pointer-events:auto;cursor:help}
.pastille-droits b{font:600 .6875rem/1.2 var(--cond,inherit);letter-spacing:.08em;text-transform:uppercase}
.pastille-droits span{opacity:.92}
.pastille-compacte{top:6px;left:6px;max-width:calc(100% - 12px);padding:4px 6px}
.pastille-compacte span{display:none}
/* Espace amicales (24/10/2026) : « n en attente » lisible (la couleur des span de .cartes4 écrasait le blanc), conseil sur
   3 cartes, « Se connecter » sur une ligne */
.cartes4 .rtag{color:#fff}
@media (min-width:1024px){.cartes4:has(>li:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}}
.cx-carte .btn-v2{white-space:nowrap}
/* Espace amicales (24/10/2026) : correction d'un envoi renvoyé */
.ea-reprise{margin:0 0 20px;padding:14px 18px;background:#fbf8f0;border:1px solid var(--or-c);border-left:3px solid var(--or)}
.ea-reprise p{margin:0 0 6px;font-size:.9375rem;line-height:1.5}
.ea-reprise p:last-child{margin:0}
.ea-reprise a{color:var(--vert-f);font-weight:600}
.ea-reprendre{display:inline-block;margin-top:6px;font-weight:600;color:var(--vert-f);text-decoration:underline;text-decoration-color:var(--or);text-underline-offset:3px}
/* Questionnaire du webmaster (24/10/2026, page-questionnaire.php) */
.qz>*{max-width:820px}
.qz-ferme{font-size:1.0625rem}
.qz-intro{display:grid;gap:12px;margin-bottom:24px}
.qz-intro p{margin:0;font-size:1.0625rem;line-height:1.6;color:var(--texte)}
.qz-note{padding:12px 16px;background:#fbf8f0;border:1px solid var(--or-c);border-left:3px solid var(--or)}
.qz-etat{position:sticky;top:calc(var(--entete-visible,0px) + 8px);z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 0;margin-bottom:20px;background:var(--fond,#fff);border-bottom:1px solid var(--filet)}
.qz-etat b{font-variant-numeric:tabular-nums;color:var(--vert-f)}
.qz-barre{flex:0 1 240px;height:6px;background:var(--filet);border-radius:3px;overflow:hidden}
.qz-barre span{display:block;height:100%;background:var(--vert);transition:width .3s}
.qz-groupe{border:0;margin:0 0 32px;padding:0;display:grid;gap:14px;min-width:0}
.qz-groupe legend{padding:0 0 6px;margin-bottom:6px;width:100%;border-bottom:2px solid var(--vert-f);font:600 1.5rem/1.1 var(--cond);text-transform:uppercase;color:var(--vert-f)}
.qz-q{display:grid;gap:10px;padding:18px 20px;background:#fff;border:1px solid var(--filet);min-width:0}
.qz-q.repondue{border-color:var(--vert)}
.qz-tete{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.qz-tete h2{margin:0;font:700 1.0625rem/1.4 var(--tech,inherit);color:var(--texte);min-width:0}
.qz-puce{flex:0 0 auto;padding:4px 8px;border:1px solid var(--filet);border-radius:2px;font:700 .6875rem/1 var(--tech,inherit);letter-spacing:.08em;text-transform:uppercase;color:var(--sec)}
.qz-q.repondue .qz-puce{background:#e6efe0;border-color:transparent;color:var(--vert-f)}
.qz-pourquoi{margin:0;font-size:.9375rem;line-height:1.5;color:var(--sec)}
.qz-choix{display:flex;flex-wrap:wrap;gap:8px}
.qz-choix label{position:relative;cursor:pointer}
.qz-choix input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.qz-choix span{display:inline-block;padding:9px 14px;border:1px solid var(--vert);border-radius:2px;font:600 .9375rem/1.2 var(--tech,inherit);color:var(--vert-f);background:#fff}
.qz-choix input:checked+span{background:var(--vert-f);border-color:var(--vert-f);color:#fff}
.qz-choix input:focus-visible+span{outline:2px solid var(--or);outline-offset:2px}
.qz-lib{font-size:.875rem;font-weight:600;color:var(--sec)}
.qz-q textarea{width:100%;box-sizing:border-box;min-height:84px;padding:10px 12px;border:1px solid var(--filet);border-radius:2px;font:inherit;font-size:1rem;resize:vertical}
.qz-sauve{min-height:1.2em;font-size:.8125rem;color:var(--sec)}
.qz-sauve.err{color:var(--rouge)}
.qz-fin{display:grid;gap:12px;justify-items:start;padding-top:8px}
.qz-fin p{margin:0;color:var(--sec)}
/* Article sans image principale (choix 1-B, 24/10/2026, single.php) : fil d'Ariane au-dessus de la grille, cadre à
   l'insigne du brevet de 400 px au plus, son haut aligné sur le surtitre */
.sans-image .pg-top-ariane{padding-top:34px}
.sans-image .pg-top-grille{padding-top:0;align-items:start}
.pg-top-vide{justify-self:end;width:min(100%,400px);display:grid;place-items:center;aspect-ratio:3/2;background:#f7f1e3;border:1px solid var(--or);box-shadow:inset 0 0 0 6px #f7f1e3,inset 0 0 0 7px rgba(168,138,74,.55)}
.pg-top-vide img{width:34%!important;height:auto!important;aspect-ratio:auto!important;object-fit:contain;filter:brightness(.8) contrast(1.15)}
@media (max-width:1023px){.pg-top-vide{display:none}.sans-image .pg-top-ariane{padding-top:20px}}
/* Page /maquettes/ : versions côte à côte (24/10/2026, page-maquettes.php) */
.mq .pg-h1{margin:6px 0 10px}
.mq-question{max-width:760px;margin:0 0 18px;font-size:1.0625rem;color:var(--texte)}
.mq-pages{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.mq-pages a{padding:8px 14px;border:1px solid var(--vert);color:var(--vert-f);font:600 .875rem/1.2 var(--tech,inherit);text-decoration:none}
.mq-pages a[aria-current]{background:var(--vert-f);color:#fff;border-color:var(--vert-f)}
.mq-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:20px;padding:0 max(20px,env(safe-area-inset-left,0px)) 40px}
.mq-version{margin:0;display:grid;grid-template-rows:subgrid;grid-row:span 2;gap:10px;min-width:0}
.mq-version figcaption{align-self:end}
.mq-version figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.mq-version figcaption b{font:600 1.75rem/1 var(--cond);color:var(--vert-f)}
.mq-version figcaption span{flex:1 1 200px;font-size:.9375rem;color:var(--sec)}
.mq-version figcaption a{font-weight:600;font-size:.875rem;color:var(--vert-f)}
.mq-actuel figcaption b{color:var(--sec)}
.mq-ecran{--k:.3;position:relative;aspect-ratio:1440/1000;overflow:hidden;border:1px solid var(--filet);background:#fff}
.mq-ecran iframe{position:absolute;top:0;left:0;width:1440px;height:1000px;border:0;transform:scale(var(--k));transform-origin:0 0;pointer-events:none}
/* Formulaire des présidents : case « Document : ne pas recadrer » sous chaque photo du reportage (24/10/2026) */
.ea-docu{display:flex;align-items:flex-start;gap:8px;font-size:.8125rem;line-height:1.35;color:var(--sec);cursor:pointer}
.ea-docu input{margin-top:2px;flex:0 0 auto}
/* Petites images jamais agrandies (choix 3-B, 24/10/2026, fnapara_recit() et single.php) : récit tout en vignettes =
   mosaïque de 150 px ; petite image dans un récit mêlé = taille réelle dans sa case ; image principale de moins de
   600 px = seule, à sa taille, centrée dans sa colonne, sans cadre ni fond (demande du 24/10 : le cadre doré est réservé
   aux articles sans image) ; sur téléphone, alignée à gauche, sans la marge négative des photos pleine largeur. */
.passes.recit li.petite img{object-fit:scale-down;background:#f7f1e3}
.passes.recit.vignettes{grid-template-columns:repeat(auto-fill,150px);gap:14px}
.passes.recit.vignettes img{width:150px;height:150px;aspect-ratio:1/1}
.passes.recit.vignettes figcaption{padding:6px 2px 0}
.passes.recit.vignettes figcaption span{font-size:.8125rem}
.pg-top-photo.une-petite{justify-self:center}
.pg-top-photo.une-petite img{width:auto!important;max-width:100%;height:auto!important;aspect-ratio:auto!important;object-fit:contain}
@media (max-width:1023px){.pg-top-photo.une-petite{margin:0;justify-self:start}}
/* Relecture des chapôs (24/10/2026, inc/chapos.php, /maquettes/?sujet=chapos) */
.ch-etat{margin:0 0 16px;color:var(--sec)}
.ch-etat b{color:var(--vert-f);font-variant-numeric:tabular-nums}
.ch-table{width:100%;border-collapse:collapse;font-size:.9375rem}
.ch-table th{text-align:left;padding:10px 12px;border-bottom:2px solid var(--vert-f);font:600 .75rem/1.2 var(--tech,inherit);letter-spacing:.08em;text-transform:uppercase;color:var(--sec)}
.ch-table td{padding:14px 12px;border-bottom:1px solid var(--filet);vertical-align:top}
.ch-table td:first-child{width:24%}
.ch-table td:first-child a{font-weight:600;color:var(--vert-f)}
.ch-table td:nth-child(2){width:28%;color:var(--sec)}
.ch-table td:nth-child(3){width:42%}
.ch-lot{display:block;margin-top:6px;font-size:.75rem;color:var(--sec)}
.ch-table textarea{width:100%;box-sizing:border-box;min-height:84px;padding:8px 10px;border:1px solid var(--filet);font:inherit;font-size:.9375rem;line-height:1.45;resize:vertical}
.ch-info{display:flex;justify-content:space-between;gap:8px;margin-top:4px;font-size:.75rem;color:var(--sec)}
.ch-n.trop,.ch-sauve.err{color:var(--rouge);font-weight:600}
.ch-ok{text-align:center}
.ch-ok input{width:22px;height:22px;accent-color:var(--vert-f)}
.ch-table tr.applique td{background:#f3f7ef}
@media (max-width:900px){.ch-table thead{display:none}.ch-table tr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;padding:14px 0;border-bottom:1px solid var(--filet)}.ch-table td{padding:0;border:0;width:auto!important}.ch-table td:nth-child(2),.ch-table td:nth-child(3){grid-column:1/-1}.ch-table td:nth-child(4){grid-column:2;grid-row:1}}

/* Maquette des modèles types d'article (/maquettes/?sujet=modeles, inc/maquette-modeles.php), 24/10/2026 : à retirer avec la page. */
.mod-bloc{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:32px;align-items:start;padding:40px max(20px,env(safe-area-inset-left,0px));border-top:1px solid var(--filet);scroll-margin-top:calc(var(--entete-visible,0px) + 16px)}
.mod-texte{position:sticky;top:calc(var(--entete-visible,0px) + 16px)}
.mod-texte .t2{margin:4px 0 12px}
.mod-quand{font-size:1.0625rem;margin:0 0 12px}
.mod-image,.mod-controle,.mod-source{font-size:.9375rem;color:var(--sec);margin:0 0 12px}
.mod-image b,.mod-controle b{color:var(--texte)}
.mod-elements{list-style:none;counter-reset:el;margin:0 0 16px;padding:0;border-top:1px solid var(--filet)}
.mod-elements li{counter-increment:el;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 0 10px 32px;border-bottom:1px solid var(--filet);position:relative}
.mod-elements li::before{content:counter(el);position:absolute;left:0;top:10px;font:600 1rem/1.4 var(--cond);color:var(--vert-f)}
.mod-elements b{font-weight:700}
.mod-statut{font:600 .6875rem/1.6 var(--tech,inherit);letter-spacing:.06em;text-transform:uppercase;color:var(--sec)}
.mod-statut.oblig{color:var(--rouge,#a3201c)}
.mod-consigne{flex-basis:100%;font-size:.9375rem;color:var(--sec)}
.mod-source a{color:var(--vert-f)}
.mod-ecran{aspect-ratio:1440/1700}
.mod-ecran iframe{height:1700px}
@media (max-width:1023px){.mod-bloc{grid-template-columns:1fr}.mod-texte{position:static}}

/* Tiroir du bouton « Menu » (template-parts/tiroir.php), version « B clair » retenue le 24/10/2026 : fond papier, bandeau
   vert foncé avec la marque, accents or foncé. Sur ordinateur, les rubriques (déjà dans la barre) sont masquées. */
.tv nav{background:var(--papier);color:var(--texte);border-left:3px solid var(--vert-f);padding:0 24px 32px;width:88%;max-width:380px;display:flex;flex-direction:column}
.tv .tv-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:76px;margin:0 -24px 8px;padding:0 12px 0 24px;background:var(--vert-f)}
.tv .tv-marque{display:flex;align-items:center;gap:10px;color:var(--ivoire);text-decoration:none;min-width:0}
.tv .tv-marque img{width:44px;height:auto;flex:0 0 44px}
.tv .tv-marque b{display:block;font:700 1.25rem/1.1 var(--tech)}
.tv .tv-marque small{display:block;font-size:.6875rem;line-height:1.3;color:rgba(247,243,232,.8)}
.tv .tv-tete button{background:none;border:0;min-width:48px;min-height:48px;color:var(--or-c);cursor:pointer}
.tv .tv-tete button svg.i{width:24px;height:24px}
.tv .acc{border-top:0;margin:0}
.tv .acc>li{border-bottom-color:var(--filet)}
.tv .acc summary,.tv .acc .acc-l{color:var(--vert-t);font-size:1.0625rem}
.tv .acc summary svg.i{color:var(--or-t)}
.tv .acc details li a{color:var(--texte)}
.tv .acc details li:first-child a{color:var(--vert-f)}
.tv nav a:hover{color:var(--or-t)}
.tv-t{font:600 .75rem/1.4 var(--tech);letter-spacing:.18em;text-transform:uppercase;color:var(--or-t);margin:24px 0 8px}
.tv-cherche{margin:16px 0 8px}
.tv-cherche label{display:block;font:600 .75rem/1.4 var(--tech);letter-spacing:.18em;text-transform:uppercase;color:var(--or-t);margin-bottom:8px}
.tv-cherche div{display:flex;border:1px solid var(--or);border-radius:2px;background:#fff}
.tv-cherche div:focus-within{border-color:var(--vert-f);outline:2px solid var(--vert-f);outline-offset:1px}
.tv-cherche input{flex:1;min-width:0;height:48px;padding:0 14px;border:0;background:none;color:var(--texte);font:inherit;font-size:1rem;outline:0}
.tv-cherche input::placeholder{color:var(--sec)}
.tv-cherche button{width:48px;border:0;background:none;color:var(--vert-f);cursor:pointer}
.tv-cherche button svg.i{width:20px;height:20px}
.tv .tv-rapides{list-style:none;margin:0;padding:0}
.tv .tv-rapides a{display:flex;align-items:center;gap:12px;min-height:46px;padding:0;color:var(--vert-t);text-decoration:none;font:600 1rem/1.2 var(--tech);border-bottom:1px solid var(--filet)}
.tv .tv-rapides svg.i{width:18px;height:18px;color:var(--or-t);flex:0 0 18px}
.tv-actions{display:flex;flex-direction:column;gap:6px;margin:20px 0 4px}
.tv-adh{display:flex;align-items:center;justify-content:center;height:50px;background:var(--rouge);color:#fff!important;border-radius:2px;text-decoration:none;font:700 .9375rem/1 var(--tech);letter-spacing:.12em;text-transform:uppercase}
.tv-adh:hover{background:#a51015}
.tv .tv-espace{display:flex;align-items:center;gap:10px;min-height:48px;white-space:nowrap;color:var(--vert-t);text-decoration:none;font:600 1rem/1.2 var(--tech)}
.tv .tv-espace svg.i{width:18px;height:18px;color:var(--or-t)}
.tv-contact{margin-top:auto;padding-top:20px;font-size:.875rem;line-height:1.5;color:var(--sec)}
.tv-contact p{margin:0 0 6px}
.tv-contact .tv-t{margin-top:0}
.tv-contact a{color:var(--vert-f)}
.tv .tv-lien{display:inline-flex;align-items:center;gap:8px;font-weight:600;text-decoration:none;white-space:nowrap}
.tv .tv-lien svg.i{width:14px;height:14px;color:var(--or-t)}
@media (min-width:1024px){
  .tv nav{max-width:420px}
  .tv .tv-tel{display:none}
  .tv .tv-cherche{margin-top:24px}
}

/* /maquettes/ : version téléphone sous la version ordinateur (entrée « tel » de FNAPARA_MAQUETTES), 24/10/2026. */
.mq-ecran.mq-tel{aspect-ratio:390/844;width:min(100%,240px);justify-self:center}
.mq-ecran.mq-tel iframe{width:390px;height:844px}
.mq-version:has(.mq-tel){grid-row:span 3}

/* Espace amicales, barre du compte : « Mon compte » à côté de « Se déconnecter » (plugin fnapara-espace, 24/10/2026). */
.connecte-liens{display:flex;flex-wrap:wrap;gap:8px}
.biblio-docs{margin-top:8px}

/* Méga-menus : sous-élément de classe « accent » (Amicales, « Sans amicale ? », 24/10/2026) : case en beige (ivoire du
   site), titre vert foncé, flèche or ; version A choisie (le rouge vif essayé avant était « trop »). */
.sm-liste li.accent{background:var(--ivoire);border-left-color:var(--ivoire)}
.sm-liste li.accent .sm-nom{color:var(--vert-f)}.sm-liste li.accent .sm-nom svg.i{color:var(--or-t)}.sm-liste li.accent .sm-desc{color:var(--sec)}
.sm-liste li.accent .sm-item:hover .sm-nom,.sm-liste li.accent .sm-item:focus-visible .sm-nom{text-decoration-color:var(--or-t)}
.sm-liste li.accent:hover{background:#efe8d6}
/* Méga-menus, dernière rangée incomplète : cases vides (li.vide) tracées par fnapara_megas(), comme les autres cases. */

/* Tiroir du bouton « Menu », ouverture (24/10/2026, assets/js/tiroir.js) : voile en fondu, panneau qui glisse de la droite,
   croix « Fermer » posée sur le bouton « Menu » (--fx, --fy, --fw, --fh mesurés à l'ouverture) et qui pivote en
   apparaissant, contenu en cascade. Bandeau du tiroir à la hauteur de la barre (--tete). */
.tiroir.tv{display:block;visibility:hidden;opacity:0;background:rgba(24,30,18,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:opacity .3s ease,visibility 0s linear .45s}
.tiroir.tv.ouvert{visibility:visible;opacity:1;transition:opacity .3s ease}
.tv nav{transform:translateX(102%);transition:transform .45s cubic-bezier(.22,.9,.25,1);box-shadow:-18px 0 40px rgba(0,0,0,.18)}
.tiroir.ouvert nav{transform:none}
.tv .tv-tete{position:sticky;top:0;z-index:2;min-height:var(--tete,76px);padding-right:calc(var(--fx,12px) + var(--fw,48px) + 12px)}
.tv .tv-tete .tv-fermer{position:absolute;top:var(--fy,14px);right:var(--fx,12px);width:var(--fw,64px);min-width:0;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:0;background:none;border:0;color:var(--ivoire);font:700 .6875rem/1 var(--tech);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.tv .tv-tete .tv-fermer svg.i{width:28px;height:28px;color:var(--or-c);transform:rotate(-90deg) scale(.5);opacity:0;transition:transform .4s cubic-bezier(.22,.9,.25,1) .15s,opacity .25s ease .15s}
.tiroir.ouvert .tv-tete .tv-fermer svg.i{transform:none;opacity:1}
.tv .tv-tete .tv-fermer:hover svg.i{transform:rotate(90deg)}
.tv .tv-tete .tv-fermer:focus-visible{outline:2px solid var(--or-c);outline-offset:2px}
.tv .tv-tete .tv-fermer.sans-contour:focus-visible{outline:0}
.tv nav>*:not(.tv-tete){opacity:0;transform:translateY(12px);transition:opacity .35s ease,transform .45s cubic-bezier(.22,.9,.25,1)}
.tiroir.ouvert nav>*:not(.tv-tete){opacity:1;transform:none}
.tiroir.ouvert nav>:nth-child(2){transition-delay:.12s}
.tiroir.ouvert nav>:nth-child(3){transition-delay:.17s}
.tiroir.ouvert nav>:nth-child(4){transition-delay:.22s}
.tiroir.ouvert nav>:nth-child(5){transition-delay:.27s}
.tiroir.ouvert nav>:nth-child(6){transition-delay:.32s}
.tiroir.ouvert nav>:nth-child(n+7){transition-delay:.37s}
/* Le hamburger s'efface sous la croix pendant l'ouverture. */
header .menu svg.i{transition:transform .35s ease,opacity .25s ease}
body:has(.tiroir.ouvert) header .menu svg.i{transform:rotate(90deg) scale(.6);opacity:0}
@media (prefers-reduced-motion:reduce){
  .tiroir.tv,.tv nav,.tv nav>*,.tv .tv-tete .tv-fermer svg.i,header .menu svg.i{transition:none!important}
  .tv nav>*:not(.tv-tete){transform:none}
}

/* Accueil, Actualités, « Autres rubriques » : nouvelles des amicales en rangée de 3 cartes (version A du 24/10/2026,
   template-parts/accueil-autres.php). */
.ac-autres{margin-top:28px;padding-top:22px;border-top:1px solid var(--filet)}
.ac-autres .autres{border-top:0;margin-top:14px;padding-top:0}
.aa-cartes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px;align-items:stretch}
/* Cartes de même hauteur : titre coupé à 3 lignes (« … »), place des 3 lignes toujours réservée. */
.aa-cartes li{display:flex}.aa-cartes li>a{flex:1}
.aa-cartes .a-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3;overflow:hidden;min-height:calc(3em * 1.28)}
.aa-vide{display:grid!important;place-items:center;background:#f7f1e3}
.aa-vide img{width:34%!important;height:auto!important;object-fit:contain!important;filter:brightness(.85)}
@media (max-width:1023px){.aa-cartes{grid-template-columns:1fr}}
/* Téléphone : photo sur la première carte seulement, les deux suivantes en titres (colonne moins longue). */
@media (max-width:640px){.aa-cartes li:nth-child(n+2) .a-vis{display:none!important}}

/* Accueil, colonne « Carnet de deuil » : sur ordinateur, son contenu coulisse (collant) le long de la section
   Actualités, plus haute, au lieu de laisser un grand vide dessous (demande du 24/10/2026). */
/* Accrochée par son titre sous l'en-tête ; si elle est plus haute que l'écran, la suite se découvre quand la section
   Actualités se termine (choix de l'utilisateur, plutôt qu'un calage en bas de l'écran). */
@media (min-width:1024px){.ac-deuil-in{position:sticky;top:calc(var(--entete-visible,0px) + 24px);transition:top .25s ease}}

/* Accueil, section Saint-Michel : saint Michel de Guido Reni en médaillon rond, filet or, à la place du logo
   (version B du 24/10/2026, RETOUCHES du script). */
.dv-logo.dv-stm{width:120px;height:120px;padding:0;border-radius:50%;object-fit:cover;border:3px solid var(--or-c);box-shadow:0 0 0 4px rgba(208,184,126,.25);background:#fff}
@media (max-width:640px){.dv-logo.dv-stm{width:96px;height:96px}}
/* Tiroir : « Accueil » des accès rapides réservé à l’ordinateur (sur téléphone il ouvre la liste des rubriques). */
@media (max-width:1023px){.tv .tv-rapides li.tv-ordi{display:none}}
/* Bandeau d'insignes piloté par assets/js/insignes.js (24/10/2026) : plus d'animation CSS ni de pause au survol CSS
   (le script s'en charge) ; en « réduire les animations », mêmes copies et même cadre que sinon (le script défile). */
.ins-js .ins-piste{animation:none!important;will-change:transform}
.ins-js .ins-vue{overflow:hidden!important}
.ins-js .ins-groupe[aria-hidden="true"]{display:flex!important}
@media (prefers-reduced-motion:reduce){.ins-js .ins-vue::before,.ins-js .ins-vue::after{display:block}}
/* Menu (tiroir) ouvert : la page derrière ne défile plus (tiroir.js bloque molette et doigt hors de la liste) ; en bout
   de liste, ni report sur la page ni effet élastique (« none », pas « contain » qui garde le rebond, 24/10/2026). */
.tv,.tv nav{overscroll-behavior:none}

/* Bouton à filet (.btn.ligne, « Contacter la fédération » de l'accueil, 24/10/2026) : la classe .ligne sert aussi aux
   lignes de liste de la maquette (padding 18px 0, filet du bas, alignement en haut), qui le rendaient plus haut que son
   voisin sur téléphone (61 px contre 54). Il reprend la forme de .btn ; sur ordinateur, .hero-suite .btn garde ses 28 px. */
.btn.ligne{padding-top:0;padding-bottom:0;gap:10px;align-items:center}
@media (max-width:1023.98px){.btn.ligne{padding-left:18px;padding-right:18px}}

/* Filtres des Actualités et du Carnet de deuil sur tablette et téléphone (demandes du 24/10/2026 : collants comme sur
   ordinateur, « réduis-la une fois collée », la recherche doit revenir en remontant). La maquette les remettait en
   position normale sous 1024 px. Toute la barre est collante ; quand l'en-tête se replie (on descend), elle remonte de
   la hauteur de la recherche, qui glisse derrière l'en-tête : seule la rangée des rubriques ou des années reste
   visible. On remonte : l'en-tête se redéplie et la recherche revient avec lui. Rien ne change de hauteur, la liste ne
   saute pas. --rech-cache = marge du haut (14) + recherche (46) + 4 : la rangée garde 14 px d'air sous l'en-tête,
   comme en dessous (« trop collé au header »). Rangée sur une ligne qu'on fait glisser. */
@media (max-width:1023px){
  .filtres{position:sticky;--rech-cache:64px}
  html:has(header.site.replie) .filtres{top:calc(var(--entete-visible,0px) - var(--rech-cache))}
  .filtres .chips,.filtres .f-annees{flex-wrap:nowrap;overflow-x:auto;margin:0 -20px;padding:0 20px 4px;scrollbar-width:none}
  .filtres .chips::-webkit-scrollbar,.filtres .f-annees::-webkit-scrollbar{display:none}
  .filtres .chip,.filtres .f-annees button{flex:0 0 auto}
}

/* Liste des actualités sur téléphone (≤ 640 px, 24/10/2026 : « il n'y a pas les photos, juste les images ivoire ») : la
   maquette y masque les vignettes, mais la vignette ivoire des articles sans photo (.l-vide, maquette 3-B) restait
   affichée à 168 px. Toutes les lignes gardent leur vignette, photo ou ivoire, réduite à 96 px pour laisser le titre respirer. */
@media (max-width:640px){
  .l-vis{display:block;flex:0 0 96px}
  .l-vis.l-vide{display:grid}
}

/* Boutons du haut de l'accueil, survol sur ordinateur (demande du 24/10/2026 ; la maquette n'en prévoyait pas ;
   doré et remplissage ivoire refusés) : « Trouver une amicale » passe à un ivoire un peu plus foncé (filet doré
   gardé) ; « Contacter la fédération » prend un voile ivoire léger et flouté, façon verre trempé. Même effet au
   clavier (focus-visible), avec un contour doré. */
@media (min-width:1024px){
  .hero-suite .btn{transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,backdrop-filter .2s}
  .hero-suite .btn.plein:hover,.hero-suite .btn.plein:focus-visible{background:#e9e1cc;box-shadow:inset 0 0 0 3px #e9e1cc,inset 0 0 0 4px var(--or)}
  .hero-suite .btn.ligne:hover,.hero-suite .btn.ligne:focus-visible{background:rgba(247,243,232,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
  .hero-suite .btn.plein:focus-visible,.hero-suite .btn.ligne:focus-visible{outline:2px solid var(--or-c);outline-offset:3px}
}

/* La fédération, encadré des voix : colonne des cotisations facultative (Documents officiels > Voix à l'AG). */
.voix th{padding:0 0 6px;vertical-align:bottom;border-bottom:1px solid var(--filet);font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--sec);text-align:right}
.voix th:first-child{text-align:left}
.voix.avec-tarifs td+td{padding-left:12px;white-space:nowrap}
.voix-note{margin:0 0 12px;font-size:.8125rem;color:var(--sec)}

/* Article épinglé en tête de sa rubrique (25/10/2026) : mention « Épinglé » sur la carte de l'accueil et la ligne de la rubrique. */
.epingle{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:1px 7px 1px 5px;border-radius:2px;background:var(--rouge);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.6;vertical-align:1px;white-space:nowrap}
.epingle .i{width:11px;height:11px;flex:0 0 11px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linejoin:round}
.l-txt>.epingle{align-self:flex-start;margin:0}
.a-cit .epingle{margin-left:8px}

/* Année sous le jour et le mois des pavés de date des événements (25/10/2026). */
.ev-date small.ev-an{margin-top:1px;font-weight:400;letter-spacing:.1em;opacity:.85}

/* Mémoire, trois bustes d'André Zirnheld (26/10/2026) : état de chaque lieu sous sa description. */
.lieux p.lieu-etat{margin-top:4px;font-weight:600;color:var(--vert-f)}
/* Contact ouvert par « Sans amicale ? » (#orientation, assets/js/contact.js, 26/10/2026). */
.ct-orient-note{margin:0 0 18px;padding:12px 14px;border-left:4px solid var(--or);background:var(--ivoire);color:var(--texte);font-size:1rem}
.ct-orient-note b{color:var(--vert-f)}
/* Étape 2 du formulaire Contact selon le motif (assets/js/contact.js, 26/10/2026) : champ et ligne du récapitulatif cachés. */
.form .champ[hidden],.stp .champ[hidden],.recap dl>div[hidden]{display:none}
