html, body {
      margin: 0;
      padding: 0;
      font-family: Arial, Helvetica, sans-serif;
      background-color: #181f3c;
      color: #f5f5f5;
      line-height: 1.6;
    }

    .hidden {
      display: none;
    }

    a {
      color: #ffd85a;
    }

    a:focus {
      outline: 2px solid #ffd85a;
      outline-offset: 2px;
    }

    header {
      position: static;
      top: 0;
      z-index: 1000;
      background-color: #111735;
      border-bottom: 3px solid #2430a5;
    }

    .header-inner {
      max-width: 100%;
      margin: 0 auto;
      padding: 10px 16px 12px 16px;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .brand-row {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .brand-row img {
      height: 64px;
      object-fit: contain;
      background-color: #f5f5f5;
      border-radius: 8px;
    }


    nav {
      margin-top: 4px;
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .tab-button {
      flex: 1 1 120px;
      min-width: 120px;
      border: none;
      padding: 10px 12px;
      border-radius: 6px;
      background-color: #2430a5;
      color: #f5f5f5;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
    }

    .tab-button:hover {
      background-color: #3040d0;
    }

    .tab-button:focus {
      outline: 3px solid #ffd85a;
      outline-offset: 1px;
    }

    .tab-button.active {
      background-color: #ffd85a;
      color: #111735;
    }


    /* Navigation mobile : masquée sur ordinateur */
    .mobile-navigation { display: none; width: 100%; }
    .mobile-menu-toggle { width:100%; min-height:48px; border:3px solid #ffd85a; border-radius:8px; padding:10px 14px; background:#2430a5; color:#fff; font-size:18px; font-weight:700; text-align:left; cursor:pointer; }
    .mobile-menu-toggle::after { content:"▼"; float:right; margin-left:12px; }
    .mobile-menu-toggle[aria-expanded="true"]::after { content:"▲"; }
    .mobile-menu-toggle:focus, .mobile-menu-item:focus { outline:4px solid #fff; outline-offset:2px; }
    .mobile-menu-panel { margin-top:8px; padding:8px; border:3px solid #ffd85a; border-radius:8px; background:#111735; box-shadow:0 8px 20px rgba(0,0,0,.45); }
    .mobile-menu-panel[hidden] { display:none; }
    .mobile-menu-item { display:block; width:100%; min-height:48px; margin:0 0 7px; border:2px solid #7684ff; border-radius:7px; padding:11px 12px; background:#2430a5; color:#fff; font-size:18px; font-weight:700; text-align:left; cursor:pointer; }
    .mobile-menu-item:last-child { margin-bottom:0; }
    .mobile-menu-item[aria-current="page"] { border-color:#ffd85a; background:#ffd85a; color:#111735; }
    section.tab-section {
      display: none;
      margin-top: 8px;
      padding: 16px;
      border-radius: 10px;
      background-color: #181f3c;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.35);
    }

    section.tab-section.active {
      display: block;
    }

    h1 {
      font-size: 24px;
      margin-top: 0;
      margin-bottom: 12px;
    }

    h2 {
      font-size: 20px;
      margin-top: 18px;
      margin-bottom: 8px;
    }

    h3 {
      font-size: 18px;
      margin-top: 14px;
      margin-bottom: 6px;
    }

    p {
      margin: 6px 0;
      font-size: 16px;
    }

    .encart {
      border-radius: 10px;
      padding: 12px 14px;
      margin-bottom: 12px;
      background-color: #222a52;
      box-shadow: 0 0 8px rgba(0, 0, 0, 0.4);
    }

    .encart h2,
    .encart h3 {
      margin-top: 0;
    }

    .encarts-ligne {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .encarts-ligne .encart {
      flex: 1 1 260px;
      margin-bottom: 0;
    }

    .activite-bloc {
      border-left: 4px solid #ffd85a;
      padding-left: 10px;
      margin-top: 10px;
      margin-bottom: 14px;
    }

    .vignette-placeholder {
      margin-bottom: 6px;
      text-align: center;
    }

    .vignette-placeholder img {
      max-width: 260px;
      width: 100%;
      height: auto;
      border-radius: 10px;
      background-color: #181f3c;
    }

    .info-bloc {
      margin-top: 10px;
      margin-bottom: 10px;
      padding: 10px 12px;
      border-radius: 8px;
      background-color: #222a52;
    }

    .bouton-action {
      display: inline-block;
      margin: 4px 4px 4px 0;
      padding: 6px 10px;
      border-radius: 6px;
      border: none;
      background-color: #2430a5;
      color: #f5f5f5;
      font-size: 16px;
      cursor: pointer;
    }

    .bouton-action:hover {
      background-color: #3040d0;
    }

    .bouton-action:focus {
      outline: 2px solid #ffd85a;
      outline-offset: 1px;
    }

    .dossier-reunion {
      margin-top: 14px;
      padding: 12px;
      border-radius: 10px;
      background-color: #222a52;
    }

    .dossier-reunion h3 {
      margin-top: 0;
    }

    .zone-contenu {
      margin-top: 8px;
      padding: 10px;
      border-radius: 8px;
      background-color: #181f3c;
      display: none;
    }

    .zone-contenu.visible {
      display: block;
    }

    .audio-zone {
      margin-top: 8px;
      padding: 10px;
      border-radius: 8px;
      background-color: #181f3c;
      display: none;
    }

    .audio-zone.visible {
      display: block;
    }

    .evenement-bloc {
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 8px;
      background-color: #222a52;
    }

    .vignettes-medias {
      margin-top: 6px;
      padding: 8px;
      border-radius: 8px;
      background-color: #181f3c;
      font-size: 16px;
      font-style: italic;
    }

    .membre-bureau {
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 8px;
      background-color: #222a52;
    }

    form {
      margin-top: 10px;
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
    }

    label {
      font-weight: bold;
      font-size: 16px;
      display: block;
      margin-bottom: 2px;
    }

    input[type="text"],
    input[type="tel"],
    input[type="email"],
    textarea,
    select {
      width: 100%;
      padding: 8px;
      border-radius: 6px;
      border: 1px solid #555;
      background-color: #181f3c;
      color: #f5f5f5;
      font-size: 16px;
      box-sizing: border-box;
    }

    textarea {
      min-height: 120px;
      resize: vertical;
    }

    .submit-button {
      padding: 10px 14px;
      border-radius: 8px;
      border: none;
      background-color: #ffd85a;
      color: #111735;
      font-weight: bold;
      font-size: 16px;
      cursor: pointer;
      justify-self: start;
    }

    .submit-button:hover {
      background-color: #ffe68d;
    }

    .submit-button:focus {
      outline: 2px solid #ffd85a;
      outline-offset: 1px;
    }

    .bloc-partenaire {
      margin-top: 10px;
      padding: 10px 12px;
      border-radius: 8px;
      background-color: #222a52;
    }

    .bloc-partenaire p {
      margin: 2px 0;
    }

    audio {
      width: 100%;
      margin-top: 6px;
    }

    @media (max-width: 540px) {
      body {
        font-size: 17px;
      }

      .page-container {
        max-width: 100%;
        padding-left: 6px;
        padding-right: 6px;
      }

      main {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
      }

      header {
        padding-top: 4px;
        padding-bottom: 4px;
      }

      .header-inner {
        padding: 6px 8px 8px 8px;
        gap: 6px;
      }

      .brand-row img {
        height: 50px;
      }
      nav[role="tablist"] { display:none; }
      .mobile-navigation { display:block; }

      .encarts-ligne {
        flex-direction: column;
      }

      .encart {
        margin-bottom: 10px;
      }

      .activite-bloc {
        margin-top: 8px;
        margin-bottom: 10px;
      }

      .vignette-placeholder svg {
        max-width: 100%;
      }
    }

    .skip-link {
      position: absolute;
      top: -40px;
      left: 10px;
      padding: 8px 14px;
      background-color: #ffd85a;
      color: #000000;
      text-decoration: none;
      font-weight: bold;
      z-index: 1000;
    }

    .skip-link:focus {
      top: 10px;
    }

    .access-note {
      margin-top: 20px;
      padding: 10px;
      font-size: 16px;
      background-color: #0f1738;
      border-left: 4px solid #ffd85a;
    }

    .brand-name-full {
      width: 100%;
      text-align: center;
      font-size: 22px;
      font-weight: bold;
    }

    .bouton-retour-haut {
      display: inline-block;
      margin-top: 16px;
      padding: 8px 12px;
      border-radius: 8px;
      border: none;
      background-color: #2430a5;
      color: #f5f5f5;
      font-size: 16px;
      font-weight: bold;
      cursor: pointer;
    }

    .bouton-retour-haut:hover {
      background-color: #3040d0;
    }

    .bouton-retour-haut:focus {
      outline: 2px solid #ffd85a;
      outline-offset: 2px;
    }


    /* Accessibilité : permettre de tabuler sur certains titres (h2) */
    h2[tabindex="0"]:focus {
      outline: 3px solid #ffd85a;
      outline-offset: 3px;
    }


.zone-actualites, #liste-partenaires, #bureau-contenu-externe {
  font-size: 18px;
  line-height: 1.75;
}


#bureau-contenu-externe h2 {
  font-size: 20px;
  margin: 0 0 10px 0;
}
#bureau-contenu-externe p {
  margin: 10px 0;
}


/* Améliorations accessibilité et look (janv 2026) */
.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

main{
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:16px;
  box-sizing:border-box;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid #ffb703;
  outline-offset:3px;
}



/* Améliorations accessibilité et maintenance */
.audio-buttons-row{ display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }




.center-text{ text-align:center; }
.media-max-900{ width:100%; max-width:900px; }

/* Bandeau cookies (simple, accessible) */
#cookie-banner{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 9999;
  background: rgba(20,20,20,0.98);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 14px;
  padding: 14px 14px 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.35);
  max-width: 1100px;
  margin: 0 auto;
}
#cookie-banner p{ margin: 0 0 10px; }
#cookie-banner .cookie-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
#cookie-banner button{
  cursor: pointer;
}
#cookie-banner[hidden]{ display:none !important; }
details.transcription{
  margin-top: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  padding: 10px 12px;
}
details.transcription summary{
  cursor: pointer;
  font-weight: 700;
}

.info-jour-dspv .bouton-action{
  text-align:left;
}

.modal-saint{
  position:fixed;
  inset:0;
  z-index:10000;
}

#modal-saint-overlay{
  background:rgba(0,0,0,0.65);
}

#modal-saint-jour{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}

#modal-saint-jour.hidden,
#modal-saint-overlay.hidden{
  display:none;
}

.modal-saint-contenu{
  width:min(760px, 100%);
  max-height:85vh;
  overflow:auto;
  background:#111735;
  color:#f5f5f5;
  border:2px solid #ffd85a;
  border-radius:14px;
  padding:18px;
  box-shadow:0 14px 32px rgba(0,0,0,0.45);
}

.modal-saint-contenu h3{
  margin-top:0;
}

#modal-saint-texte p{
  margin:8px 0;
}

#modal-saint-texte a{
  color:#ffd85a;
}


/* Nouvelle présentation DSPV 2026 */
.hero-dspv{
  padding:22px;
  margin-bottom:18px;
  border:2px solid #ffd85a;
  border-radius:14px;
  background:#111735;
  text-align:center;
}
.hero-dspv h2{font-size:28px;margin:0 0 8px;}
.hero-slogan{font-size:20px;font-weight:bold;color:#ffd85a;margin:5px 0;}
.actions-principales{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;}
.actions-principales .bouton-action{padding:11px 15px;font-size:16px;text-decoration:none;}
.liste-simple{margin:8px 0 8px 24px;}
.liste-simple li{margin:6px 0;}
.deux-colonnes{display:flex;flex-wrap:wrap;gap:14px;}
.deux-colonnes > .encart{flex:1 1 300px;}


/* Socle commun des fenêtres modales accessibles */
.modal-actualite,
.modal-video-reunion,
.modal-lecteur-media{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.modal-actualite[hidden],
.modal-video-reunion[hidden],
.modal-lecteur-media[hidden]{
  display:none !important;
}
.modal-actualite-contenu,
.modal-video-reunion-contenu,
.modal-lecteur-media-contenu{
  width:min(980px, 100%);
  overflow:auto;
  box-sizing:border-box;
  border:3px solid #ffd85a;
  border-radius:16px;
  background:#0b1028;
  color:#ffffff;
}
.modal-actualite-actions,
.modal-video-reunion-actions,
.modal-lecteur-media-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

/* Fenêtre accessible des actualités DSPV et YouTube */
.actualites-raccourcis{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
}
.actualites-raccourcis .encart{
  flex:1 1 320px;
  margin-bottom:0;
}
.actualites-raccourcis .bouton-action{
  padding:12px 16px;
  font-size:17px;
  font-weight:700;
  text-decoration:none;
}
.modal-actualite{
  z-index:12000;
  background:rgba(0,0,0,0.78);
}
.modal-actualite-contenu{
  max-height:92vh;
  padding:22px;
  box-shadow:0 18px 50px rgba(0,0,0,0.65);
}
.modal-actualite-entete{
  position:sticky;
  top:-22px;
  z-index:1;
  margin:-22px -22px 18px;
  padding:18px 22px 14px;
  background:#0b1028;
  border-bottom:2px solid #ffd85a;
}
.modal-actualite-entete h2{
  margin:0 0 12px;
  color:#ffd85a;
  font-size:28px;
  line-height:1.25;
}
.modal-actualite-texte h3{
  margin:26px 0 10px;
  padding-bottom:5px;
  border-bottom:2px solid #ffd85a;
  color:#ffd85a;
  font-size:24px;
  font-weight:800;
}
.modal-actualite-texte h4{
  margin:22px 0 8px;
  color:#ffffff;
  font-size:21px;
  font-weight:800;
}
.modal-actualite-texte a{
  font-weight:700;
}
.modal-actualite-actions{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,0.25);
}
.modal-actualite-fermer{
  min-height:48px;
  padding:11px 18px;
  border:3px solid #ffd85a;
  border-radius:9px;
  background:#2430a5;
  color:#ffffff;
  font-size:17px;
  font-weight:800;
  cursor:pointer;
}
.modal-actualite-fermer:hover{
  background:#3040d0;
}
.modal-actualite-fermer:focus-visible{
  outline:4px solid #ffffff;
  outline-offset:3px;
}
.actualite-date-maj{
  margin:8px 0 0;
  font-size:16px;
  font-weight:700;
  color:#ffffff;
}
.actualite-media{
  margin:22px 0;
  padding:16px;
  border:2px solid #ffd85a;
  border-radius:12px;
  background:#181f3c;
}
.actualite-media img,
.actualite-media video{
  display:block;
  width:100%;
  max-width:850px;
  height:auto;
  margin:0 auto 12px;
  border-radius:8px;
}
.actualite-media audio{
  display:block;
  width:100%;
  margin:12px 0;
}
.actualite-media figcaption,
.actualite-media-description{
  margin:8px 0 0;
  font-size:18px;
  font-weight:700;
}
.actualite-media-erreur{
  margin:16px 0;
  padding:12px;
  border-left:5px solid #ffd85a;
  background:#311515;
  font-weight:700;
}
.actualite-chargement,
.actualite-erreur{
  padding:14px;
  border-left:5px solid #ffd85a;
  background:#181f3c;
  font-weight:700;
}
body.modal-ouverte{
  overflow:hidden;
}
@media (max-width:700px){
  .modal-actualite{ padding:8px; }
  .modal-actualite-contenu{ padding:16px; max-height:96vh; }
  .modal-actualite-entete{ top:-16px; margin:-16px -16px 14px; padding:14px 16px 12px; }
  .modal-actualite-entete h2{ font-size:24px; }
  .modal-actualite-texte,
  .modal-actualite-texte p{ font-size:18px; }
  .modal-actualite-texte h3{ font-size:22px; }
  .modal-actualite-texte h4{ font-size:20px; }
  .modal-actualite-fermer{ width:100%; }
}


/* Présentation harmonisée des contenus provenant des fichiers TXT externes */
:root{
  --dspv-fond:#0B1F3A;
  --dspv-jaune:#FFEB3B;
  --dspv-jaune-dore:#FFD54F;
  --dspv-texte:#F7F5ED;
  --dspv-encadre:#142D4F;
}

.youtube-activite-raccourci{
  max-width:950px;
  margin:24px auto;
  padding:24px;
  background:var(--dspv-fond);
  box-sizing:border-box;
}
.youtube-activite-raccourci h2{
  margin:0 0 18px;
  color:var(--dspv-jaune);
  font-size:36px;
  line-height:1.25;
  font-weight:800;
  text-align:center;
}
.youtube-activite-raccourci p{
  color:var(--dspv-texte);
  font-size:20px;
  line-height:1.7;
  text-align:left;
}

.contenu-txt-externe,
.modal-actualite-texte{
  max-width:950px;
  margin-left:auto;
  margin-right:auto;
  color:var(--dspv-texte);
  font-size:20px;
  line-height:1.7;
  text-align:left;
}
.contenu-txt-externe h1,
.modal-actualite-texte h1{
  margin:12px 0 24px;
  color:var(--dspv-jaune);
  font-size:36px;
  line-height:1.25;
  font-weight:800;
  text-align:center;
}
.contenu-txt-externe h2,
.modal-actualite-texte h2{
  margin:28px 0 12px;
  color:var(--dspv-jaune-dore);
  font-size:28px;
  line-height:1.3;
  font-weight:800;
  text-align:left;
}
.contenu-txt-externe p,
.modal-actualite-texte p{
  margin:14px 0;
  color:var(--dspv-texte);
  font-size:20px;
  line-height:1.7;
}
.contenu-txt-externe ul,
.contenu-txt-externe ol,
.modal-actualite-texte ul,
.modal-actualite-texte ol{
  margin:14px 0 20px 34px;
  padding:0;
}
.contenu-txt-externe li,
.modal-actualite-texte li{
  margin:9px 0;
  color:var(--dspv-texte);
  font-size:20px;
  line-height:1.7;
}
.contenu-txt-externe a,
.modal-actualite-texte a{
  color:var(--dspv-jaune-dore);
  text-decoration:underline;
  text-decoration-thickness:2px;
  text-underline-offset:3px;
}
.contenu-txt-externe a:hover,
.modal-actualite-texte a:hover{
  color:#FFFFFF;
}
.contenu-txt-externe a:focus-visible,
.modal-actualite-texte a:focus-visible{
  outline:4px solid #FFFFFF;
  outline-offset:4px;
}

.contenu-txt-externe strong,
.modal-actualite-texte strong{
  font-weight:800;
}
.contenu-txt-externe em,
.modal-actualite-texte em{
  font-style:italic;
}
.txt-citation{
  margin:22px 0;
  padding:12px 18px;
  border-left:5px solid var(--dspv-jaune-dore);
  background:rgba(255,255,255,.08);
}
.txt-citation p{
  margin:0;
}

.txt-information-importante{
  width:100%;
  box-sizing:border-box;
  margin:22px 0;
  padding:16px 18px;
  color:#FFFFFF;
  background:var(--dspv-encadre);
  border:3px solid var(--dspv-jaune);
  border-radius:10px;
}
.txt-information-importante p{ margin:0; color:#FFFFFF; }
.txt-separateur{
  height:0;
  margin:30px 0;
  border:0;
  border-top:2px solid var(--dspv-jaune-dore);
}
.txt-media{
  width:100%;
  box-sizing:border-box;
  margin:24px 0;
  padding:16px;
  text-align:center;
  background:#102947;
  border-radius:10px;
}
.txt-media img,
.txt-media video{
  display:block;
  max-width:100%;
  width:auto;
  height:auto;
  margin:0 auto;
  border-radius:9px;
}
.txt-media video{ width:100%; }
.txt-media audio{
  display:block;
  width:100%;
  max-width:100%;
  margin:0 auto;
}
.txt-media figcaption,
.txt-media .txt-media-legende{
  margin:12px 0 0;
  color:var(--dspv-texte);
  font-size:18px;
  line-height:1.5;
  font-weight:700;
  text-align:center;
}
.txt-erreur{
  margin:18px 0;
  padding:14px;
  border-left:5px solid var(--dspv-jaune);
  background:#3A1717;
  color:#FFFFFF;
  font-weight:700;
}
.ouvrir-contenu-externe,
.ouvrir-actualite{
  min-height:48px;
  padding:11px 17px;
  font-size:17px;
  font-weight:800;
}
.ouvrir-contenu-externe:focus-visible,
.ouvrir-actualite:focus-visible{
  outline:4px solid #FFFFFF;
  outline-offset:4px;
}
@media (max-width:700px){
  .youtube-activite-raccourci{ padding:18px 14px; }
  .youtube-activite-raccourci h2,
  .contenu-txt-externe h1,
  .modal-actualite-texte h1{ font-size:30px; }
  .contenu-txt-externe h2,
  .modal-actualite-texte h2{ font-size:25px; }
  .youtube-activite-raccourci p,
  .contenu-txt-externe,
  .contenu-txt-externe p,
  .contenu-txt-externe li,
  .modal-actualite-texte,
  .modal-actualite-texte p,
  .modal-actualite-texte li{ font-size:18px; }
}


.txt-media-menu-titre{margin:16px 0 8px;color:#ffd85a;font-size:20px;text-align:center;}
.txt-media-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  margin-top:14px;
}
.txt-media-actions .bouton-action{
  min-height:46px;
  padding:10px 15px;
  font-size:16px;
  font-weight:800;
  text-decoration:none;
  box-sizing:border-box;
}
.txt-media audio,
.txt-media video{
  position:relative;
  z-index:1;
}

.lecture-sequentielle:focus-visible{outline:3px solid #FFEB3B;outline-offset:4px;border-radius:4px;}


/* Lecteur vidéo accessible des rencontres et réunions */
.modal-video-reunion{z-index:13000;background:rgba(0,0,0,.82);}
.modal-video-reunion-contenu{max-height:94vh;padding:20px;}
.modal-video-reunion h2{margin:0 0 14px;color:#ffd85a;}
.modal-video-reunion video{display:block;width:100%;max-height:70vh;background:#000;}
.modal-video-reunion-actions{margin-top:14px;}
.modal-video-reunion-fermer{min-height:48px;padding:11px 18px;border:3px solid #ffd85a;border-radius:9px;background:#2430a5;color:#fff;font-size:17px;font-weight:800;cursor:pointer;}
.modal-video-reunion-fermer:focus-visible{outline:4px solid #fff;outline-offset:3px;}


/* Lecteur accessible commun pour les médias des fichiers externes */
.modal-lecteur-media{z-index:14000;background:rgba(0,0,0,.86)}
.modal-lecteur-media-contenu{max-height:94vh;padding:20px}
.modal-lecteur-media h2{margin:0 0 10px;color:#ffd85a}
.modal-lecteur-media p{font-size:18px}
.modal-lecteur-media audio,.modal-lecteur-media video{display:block;width:100%;margin:14px 0;background:#000}
.modal-lecteur-media video{max-height:68vh}
.modal-lecteur-media-actions{margin-top:14px}
.modal-lecteur-media-actions .bouton-action{min-height:48px;padding:11px 18px;font-size:17px;font-weight:800}
.modal-lecteur-media-etat{min-height:1.6em;margin:10px 0;font-weight:700}
@media(max-width:700px){.modal-lecteur-media{padding:8px}.modal-lecteur-media-contenu{padding:16px}.modal-lecteur-media-actions .bouton-action{width:100%}}


/* Label officiel : membre de la Fédération des Aveugles de France
   Le visuel reste volontairement secondaire par rapport au logo DSPV. */
.logo-federation-wrapper{
  display:flex;
  justify-content:center;
  align-items:center;
  margin:12px 0 10px;
}
.logo-federation-membre{
  display:block;
  width:100%;
  max-width:110px;
  height:auto;
  border-radius:8px;
  background:#ffffff;
  box-shadow:0 3px 10px rgba(0,0,0,.28);
}
.mention-federation-liste{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}
.mention-federation-liste .logo-federation-membre{
  flex:0 0 auto;
  max-width:80px;
}
.mention-federation-liste span{
  flex:1 1 260px;
}
@media (max-width:600px){
  .logo-federation-membre{
    max-width:90px;
  }
  .mention-federation-liste{
    align-items:flex-start;
  }
  .mention-federation-liste .logo-federation-membre{
    max-width:70px;
  }
}


/* Règles consolidées : missions et taille minimale des commandes */
.hero-missions{
  display:inline-block;
  margin:4px auto 12px;
  padding-left:1.4em;
  color:#ffd85a;
  font-size:20px;
  font-weight:700;
  line-height:1.55;
  text-align:left;
}
.hero-missions li{ margin:4px 0; }
button{ font-size:16px; }

/* Respecte réellement l’attribut hidden des deux lecteurs. */
.modal-lecteur-media audio[hidden],
.modal-lecteur-media video[hidden]{display:none !important;}

/* Sommaire d’accès rapide de la rubrique Activités */
.activites-sommaire {
  margin: 1.25rem 0 2rem;
  padding: 1rem 1.25rem;
  border: 2px solid currentColor;
  border-radius: 0.75rem;
}
.activites-sommaire p {
  margin-top: 0;
}
.activites-sommaire ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem 1rem;
  margin: 0;
  padding-left: 1.25rem;
}
.activites-sommaire a {
  font-weight: 700;
}
.activites-sommaire a:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 3px;
}
