:root{
  --encre:#1a2350; --indigo:#1e2a78; --accent:#f7711c; --fond:#ffffff;
  --fond-doux:#f6f7fb; --ligne:#e4e8f2; --attenue:#5b6577; --rayon:14px;
  --ok:#15803d; --danger:#be123c;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:"Segoe UI",system-ui,sans-serif;color:var(--encre);
  background:var(--fond);line-height:1.6;font-size:15px;
  display:flex;flex-direction:column;min-height:100vh}
main{flex:1}
.conteneur{width:min(1120px,92%);margin:0 auto}
a{color:inherit}

/* En-têtes */
.site-entete{background:#fff;border-bottom:1px solid var(--ligne);position:sticky;top:0;z-index:20}
.adm-entete{background:var(--indigo)}
.adm-entete .logo,.adm-entete .site-nav a{color:#fff}
.entete-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:20px;flex-wrap:wrap}
.logo{font-size:20px;text-decoration:none;color:var(--indigo)}
.logo b{color:var(--accent)}
.logo span{font-weight:600}
.site-nav{display:flex;gap:18px;flex-wrap:wrap}
.site-nav a{text-decoration:none;font-size:14px;font-weight:600;color:var(--attenue)}
.site-nav a:hover{color:var(--accent)}
.adm-entete .site-nav a{color:rgba(255,255,255,.9);font-weight:500}

/* Héros */
.hero{background:linear-gradient(120deg,#1e2a78,#2c3aa0);color:#fff;padding:64px 0}
.hero-sur{text-transform:uppercase;letter-spacing:1.4px;font-size:12px;font-weight:700;color:#ffb27d}
.hero h1{font-size:34px;line-height:1.15;margin:14px 0 16px;max-width:20ch}
.hero p{max-width:60ch;color:#dbe1f7;font-size:16px}
.hero-actions{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}

/* Sections */
.section{padding:48px 0}
.section-douce{background:var(--fond-doux)}
.section-tete{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:20px;gap:14px;flex-wrap:wrap}
.section-tete h2,.section h2{font-size:22px;color:var(--indigo)}
.titre-page{font-size:28px;color:var(--indigo);margin-bottom:14px}
.chapo{font-size:18px;color:var(--attenue);margin:14px 0}
.contenu-riche{margin-top:16px;font-size:15.5px;line-height:1.7}
.contenu-riche h2{font-size:20px;color:var(--indigo);margin:18px 0 8px}
.contenu-riche h3{font-size:17px;color:var(--indigo);margin:14px 0 6px}
.contenu-riche ul,.contenu-riche ol{margin:8px 0 8px 22px}
.contenu-riche li{margin:3px 0}
.contenu-riche a{color:var(--indigo);font-weight:600}
.img-contenu{max-width:100%;height:auto;border-radius:10px;margin:10px 0;display:block}
.article-une{width:100%;max-height:380px;object-fit:cover;border-radius:12px;margin:16px 0}
.carte-actu-img{width:100%;height:170px;object-fit:cover;border-radius:10px;margin-bottom:10px}
/* Médiathèque */
.grille-medias{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}
.media-vignette{background:#fff;border:1px solid var(--ligne);border-radius:12px;overflow:hidden;margin:0}
.media-vignette img{width:100%;height:150px;object-fit:cover;display:block;background:var(--fond-doux)}
.media-vignette figcaption{padding:10px 12px;font-size:13px}
.media-vignette figcaption b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.media-actions form{display:inline}
/* Recherche & rubriques */
.recherche-mini input{border:1px solid var(--ligne);border-radius:999px;padding:6px 14px;
  font-size:13px;background:#fff;width:150px}
.recherche-page{display:flex;gap:10px;margin-top:8px;max-width:520px}
.recherche-page input{flex:1;border:1px solid var(--ligne);border-radius:10px;padding:10px 14px;font-size:15px}
.rubriques-filtre{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 20px}
.puce{display:inline-block;text-decoration:none;font-size:13px;font-weight:600;color:var(--attenue);
  background:var(--fond-doux);border:1px solid var(--ligne);border-radius:999px;padding:5px 14px}
.puce:hover{color:var(--indigo)}
.puce-active{background:var(--indigo);color:#fff;border-color:var(--indigo)}
/* Publications */
.liste-docs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.doc{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--ligne);
  border-radius:12px;padding:14px 18px}
.doc-ext{flex:0 0 auto;width:52px;height:52px;border-radius:10px;background:var(--fond-doux);
  color:var(--indigo);font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center}
.doc-info{flex:1;min-width:0}
.doc-titre{font-weight:700;color:var(--indigo);text-decoration:none;font-size:16px}
.doc-titre:hover{text-decoration:underline}
.doc-info p{margin:2px 0}
.doc-meta{font-size:12px}
@media(max-width:560px){.doc{flex-wrap:wrap}.doc .bouton{width:100%;text-align:center}}
/* Éditeur Markdown (back-office) */
.editeur-barre{display:flex;gap:6px;margin-bottom:6px;flex-wrap:wrap}
.editeur-bouton{background:var(--fond-doux);border:1px solid var(--ligne);border-radius:8px;
  padding:5px 12px;font-size:13px;font-weight:600;color:var(--attenue);cursor:pointer}
.editeur-bouton:hover{background:#eef1fb;color:var(--indigo)}
.editeur-apercu{margin-top:10px;padding:14px 16px;border:1px dashed var(--ligne);
  border-radius:10px;background:#fbfcff;min-height:40px}
.editeur-apercu::before{content:"Aperçu";display:block;font-size:11px;font-weight:700;
  text-transform:uppercase;letter-spacing:.5px;color:var(--attenue);margin-bottom:6px}
.lien{color:var(--indigo);font-weight:700;text-decoration:none;font-size:14px}
.lien:hover{color:var(--accent)}
.lien-danger{color:var(--danger)}
.attenue{color:var(--attenue);font-size:13px}

/* Cartes & grilles */
.grille-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grille-kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px}
@media(max-width:760px){.grille-2{grid-template-columns:1fr}}
.carte{background:#fff;border:1px solid var(--ligne);border-radius:var(--rayon);padding:22px}
.kpi{display:flex;flex-direction:column;gap:4px}
.kpi b{font-size:28px;color:var(--indigo)}
.carte-actu{display:block;background:#fff;border:1px solid var(--ligne);border-radius:var(--rayon);
  padding:20px;text-decoration:none;transition:box-shadow .15s,transform .15s}
.carte-actu:hover{box-shadow:0 8px 24px rgba(30,42,120,.10);transform:translateY(-2px)}
.carte-actu h3{font-size:18px;color:var(--indigo);margin:6px 0 8px}
.carte-actu p{color:var(--attenue);font-size:14px;margin-bottom:10px}
.date,.date-badge{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px}
.date-badge{display:inline-block;background:#fdf3e0;padding:4px 10px;border-radius:8px}

/* Boutons & formulaires */
.bouton{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:10px;
  padding:11px 20px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none}
.bouton:hover{filter:brightness(1.05)}
.bouton-clair{background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.4)}
.formulaire{display:flex;flex-direction:column;gap:13px}
.formulaire label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--attenue)}
.formulaire input,.formulaire select,.formulaire textarea{border:1px solid var(--ligne);
  border-radius:10px;padding:11px 13px;font:inherit;color:var(--encre)}
.formulaire input:focus,.formulaire textarea:focus{outline:2px solid var(--indigo);border-color:transparent}

/* Tableaux */
.tableau{width:100%;border-collapse:collapse;font-size:14px}
.tableau th{text-align:left;color:var(--attenue);font-size:12px;text-transform:uppercase;
  letter-spacing:.4px;padding:9px 10px;border-bottom:2px solid var(--ligne)}
.tableau td{padding:11px 10px;border-bottom:1px solid var(--ligne);vertical-align:top}
.actions{display:flex;gap:12px;align-items:center}
.actions form{display:inline}
.badge{display:inline-block;border-radius:999px;padding:3px 11px;font-size:11px;font-weight:700;
  background:var(--fond-doux);color:var(--attenue)}
.badge-ok{background:#e8f7ee;color:#15803d}
.badge-brouillon{background:#eef1f6;color:#5b6577}
.badge-programmee{background:#fdf3e0;color:#b45309}
code{background:var(--fond-doux);border-radius:5px;padding:1px 5px;font-size:12.5px}
.lien{background:none;border:0;padding:0;font:inherit;cursor:pointer}

/* Contact & divers */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.coordonnees{list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:14px}
.coordonnees b{color:var(--indigo)}
.liste-passes{list-style:none;display:flex;flex-direction:column;gap:8px}
.liste-passes li{padding:10px 0;border-bottom:1px solid var(--ligne)}

/* Messages */
.message{border-radius:10px;padding:12px 16px;margin:16px 0;font-size:14px}
.message-succes{background:#e8f7ee;color:var(--ok)}
.message-erreur{background:#fde8ed;color:var(--danger)}

/* Pied */
.site-pied{background:var(--indigo);color:#fff;margin-top:40px;padding:40px 0 20px}
.pied-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.pied-grid b{color:#fff;display:block;margin-bottom:8px}
.pied-grid p{color:#c3cbf0;font-size:14px}
.pied-bas{border-top:1px solid rgba(255,255,255,.15);margin-top:26px;padding-top:16px;
  font-size:13px;color:#aab4e6}
.pied-bas a{color:#ffb27d}
