/* FFBraille : en-tête et pied de page communs aux pages annexes.
   build.mjs remplace <!--SITE-HEADER--> et <!--SITE-FOOTER--> par le menu et le pied de page générés.
   Mêmes dimensions et couleurs que l'en-tête de la page d'accueil (app.html). */
.site-band { background: #FFFFFF; color: #14213D; border-bottom: 1px solid #DFE4EE; position: relative; z-index: 2; }
.site-wrap { box-sizing: border-box; max-width: 1280px; margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.site-band .site-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; padding-block: 12px; }
.site-logo { display: flex; align-items: center; gap: 12px; color: #14213D; text-decoration: none; }
.site-logo-cells { display: flex; gap: 6px; }
.site-logo-cell { display: grid; grid-template-columns: repeat(2, 8px); grid-template-rows: repeat(3, 8px); gap: 3px; }
.site-logo-cell i { width: 8px; height: 8px; border-radius: 50%; background: #DFE4EE; }
.site-logo-cell i.on { background: #E63946; }
.site-logo-word { font-size: 1.5rem; font-weight: 800; letter-spacing: -0.025em; line-height: 1.2; }
.site-logo-word span { color: #E63946; }
.site-nav { display: flex; margin-left: auto; }
.site-nav-links { display: flex; flex-wrap: wrap; gap: 2px 4px; }
.site-nav-links a { color: #14213D; text-decoration: none; font-weight: 600; font-size: .92rem; line-height: 1.4; padding: 8px 12px; border-radius: 8px; }
.site-nav-links a:hover { background: #EEF2F8; }
.site-nav-links a[aria-current="page"] { background: #E9EFFC; color: #244AA8; }
.site-nav-toggle { display: none; align-items: center; gap: 8px; font: inherit; font-weight: 700; font-size: .9rem; line-height: 1.4; cursor: pointer; color: #FFFFFF; background: #14213D; border: 1.5px solid #14213D; border-radius: 999px; padding: 6px 14px 6px 12px; }
.site-nav-toggle svg { width: 18px; height: 18px; }
.site-nav-toggle .i-close, .site-nav.open .site-nav-toggle .i-open { display: none; }
.site-nav.open .site-nav-toggle .i-close { display: block; }
.site-logo:focus-visible, .site-nav a:focus-visible, .site-nav-toggle:focus-visible, .site-foot a:focus-visible { outline: 3px solid #2F5BC8; outline-offset: 2px; }
/* En dessous de 1040 px : bouton « Menu » et panneau déroulant (sans JavaScript, les liens restent affichés sous le logo) */
@media (max-width: 1040px) {
  .site-nav { order: 3; width: calc(100% + 10px); margin-left: -10px; }
  .site-nav-links a { white-space: nowrap; padding: 6px 10px; font-size: .88rem; }
  .nav-js .site-nav { width: auto; margin-left: auto; }
  .nav-js .site-nav-toggle { display: inline-flex; }
  .nav-js .site-nav-links { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; gap: 0; background: #FFFFFF; border-bottom: 1px solid #DFE4EE; box-shadow: 0 2px 4px rgba(20, 27, 45, .05), 0 16px 40px rgba(20, 27, 45, .10); padding: 4px max(16px, env(safe-area-inset-left, 0px)) 10px; }
  .nav-js .site-nav.open .site-nav-links { display: flex; }
  .nav-js .site-nav-links a { display: flex; justify-content: space-between; align-items: center; padding: 15px 2px; font-size: 1.02rem; border-radius: 0; border-top: 1px solid #DFE4EE; }
  .nav-js .site-nav-links a:first-child { border-top: 0; }
  .nav-js .site-nav-links a::after { content: "›"; font-size: 1.35rem; line-height: 1; color: #5A6478; }
  .nav-js .site-nav-links a:hover { background: transparent; color: #244AA8; }
  .nav-js .site-nav-links a[aria-current="page"] { background: transparent; box-shadow: inset 3px 0 0 #2F5BC8; padding-left: 12px; }
}
@media (max-width: 480px) { .site-logo-word { font-size: 1.3rem; } }
.site-foot { background: #14213D; color: #AEB9D3; margin-top: 32px; }
.site-foot .site-wrap { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: space-between; padding-block: 22px 28px; font-size: .88rem; line-height: 1.6; }
.site-foot a { color: #FFFFFF; }
.site-foot b { color: #E6EBF5; }
