:root {
  --marine: #12264a;
  --marine-fonce: #0b1830;
  --bleu-lien: #2456a6;
  --fond: #eef0f3;
  --papier: #ffffff;
  --texte: #1c2230;
  --texte-doux: #5a6373;
  --filet: #d5d9e0;
  --serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--fond);
  color: var(--texte);
  font: 1rem/1.6 var(--sans);
}
a { color: inherit; text-decoration: none; }
a:hover h2, a:hover h3, a:hover .titre { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 3px solid var(--bleu-lien); outline-offset: 2px; }
.conteneur { width: min(1120px, 100% - 2rem); margin-inline: auto; }

/* En-tête */
.barre-date { background: var(--marine-fonce); color: #c9d3e6; font-size: .85rem; }
.barre-date .conteneur { display: flex; justify-content: space-between; gap: 1rem; padding: .5rem 0; }
.masthead { background: var(--papier); text-align: center; padding: 1.6rem 1rem 1.2rem; border-bottom: 1px solid var(--filet); }
.logo { font: 700 clamp(2.1rem, 7vw, 3.6rem)/1.05 var(--serif); color: var(--marine); letter-spacing: -.01em; }
.slogan { margin: .4rem 0 0; color: var(--texte-doux); font-size: .95rem; }

.nav { background: var(--marine); position: sticky; top: 0; z-index: 10; }
.nav ul { list-style: none; margin: 0 auto; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; width: min(1120px, 100%); }
.nav a { display: block; padding: .85rem 1.1rem; color: #fff; font-weight: 500; font-size: .95rem; border-bottom: 3px solid transparent; }
.nav a:hover, .nav a[aria-current="page"] { border-bottom-color: #fff; background: rgba(255,255,255,.07); }

/* À la une */
main { padding: 2rem 0 3rem; }
.une { display: grid; grid-template-columns: 1fr; gap: 2rem; margin-bottom: 3rem; }
.une-article { background: var(--papier); border-top: 4px solid var(--marine); }
.media { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.ph-1 { background: linear-gradient(135deg, #1b3a6e, #4f7bb8 60%, #a9c2e3); }
.ph-2 { background: linear-gradient(135deg, #24314f, #6b7fa6); }
.ph-3 { background: linear-gradient(135deg, #2f4f6e, #86a9c4); }
.ph-4 { background: linear-gradient(135deg, #3a4763, #9aa7c2); }
.une-texte { padding: 1.4rem 1.4rem 1.8rem; }
.rubrique { display: inline-block; color: var(--bleu-lien); font-weight: 600; font-size: .9rem; margin-bottom: .4rem; }
.une h1 { font: 700 clamp(1.8rem, 5vw, 2.7rem)/1.15 var(--serif); margin: 0 0 .8rem; color: var(--marine); }
.chapeau { font: 1.15rem/1.6 var(--serif); margin: 0 0 1rem; }
.meta { color: var(--texte-doux); font-size: .85rem; margin: 0; }

.en-bref { background: var(--papier); padding: 1.3rem; align-self: start; }
.en-bref h2, .section-titre { font: 700 1.35rem/1.2 var(--serif); color: var(--marine); margin: 0; }
.en-bref h2 { padding-bottom: .7rem; border-bottom: 2px solid var(--marine); }
.en-bref ul { list-style: none; margin: 0; padding: 0; }
.en-bref li { padding: .85rem 0; border-bottom: 1px solid var(--filet); }
.en-bref li:last-child { border-bottom: 0; padding-bottom: 0; }
.en-bref .titre { font: 600 1.05rem/1.35 var(--serif); display: block; }

/* Sections et cartes */
.section { margin-bottom: 3rem; }
.section-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 2px solid var(--marine); padding-bottom: .5rem; margin-bottom: 1.4rem; }
.section-tete a { color: var(--bleu-lien); font-size: .9rem; font-weight: 500; }
.grille { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.carte { background: var(--papier); display: flex; flex-direction: column; }
.carte .media { aspect-ratio: 3 / 2; }
.carte-texte { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.carte h3 { font: 700 1.25rem/1.25 var(--serif); margin: 0 0 .5rem; color: var(--marine); }
.carte p { margin: 0 0 .8rem; color: #374052; font-size: .97rem; }
.carte .meta { margin-top: auto; }

/* Pied de page */
.pied { background: var(--marine-fonce); color: #c9d3e6; padding: 2.5rem 0 1.5rem; font-size: .93rem; }
.pied-grille { display: grid; grid-template-columns: 1fr; gap: 1.8rem; }
.pied .logo-pied { font: 700 1.6rem/1.1 var(--serif); color: #fff; }
.pied h2 { font: 600 1rem/1.3 var(--sans); color: #fff; margin: 0 0 .6rem; }
.pied ul { list-style: none; margin: 0; padding: 0; }
.pied li { margin-bottom: .4rem; }
.pied a:hover { color: #fff; text-decoration: underline; }
.pied-bas { border-top: 1px solid rgba(255,255,255,.18); margin-top: 2rem; padding-top: 1.2rem; font-size: .85rem; }

/* Tablette */
@media (min-width: 700px) {
  .grille { grid-template-columns: repeat(2, 1fr); }
  .pied-grille { grid-template-columns: 2fr 1fr 1fr; }
}
/* Ordinateur */
@media (min-width: 980px) {
  .une { grid-template-columns: 2fr 1fr; }
  .grille { grid-template-columns: repeat(3, 1fr); }
  .une-texte { padding: 1.8rem 2rem 2.2rem; }
}
/* Mobile : menu défilant horizontalement */
@media (max-width: 640px) {
  .barre-date .conteneur { justify-content: center; }
  .barre-date .lieu { display: none; }
  .nav ul { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; }
  .nav a { white-space: nowrap; padding: .8rem .9rem; }
}

/* Ajouts v2 : formulaires, membre, article, admin */
.nav a.btn-membre{background:#fff;color:var(--marine);margin:.4rem .6rem;padding:.4rem .9rem;border-radius:4px;border-bottom:0;font-weight:600}
.btn{background:var(--marine);color:#fff;border:0;padding:.7rem 1.2rem;border-radius:4px;font:600 .95rem var(--sans);cursor:pointer}
.btn:hover{background:var(--bleu-lien)}.btn.sec{background:#fff;color:var(--marine);border:1px solid var(--marine)}
.carte-form{background:var(--papier);padding:1.6rem;max-width:520px;margin:0 auto 2rem;border-top:4px solid var(--marine)}
.carte-form.larg{max-width:none;margin:1.5rem 0}.carte-form h1,.carte-form h2{font:700 1.6rem var(--serif);color:var(--marine);margin:0 0 1rem}
label{display:block;font-weight:500;font-size:.92rem;margin-bottom:1rem}
input,select,textarea{display:block;width:100%;margin-top:.3rem;padding:.65rem;border:1px solid #b8c0cc;border-radius:4px;font:1rem var(--sans);background:#fff;color:var(--texte)}
label.cb{display:flex;gap:.5rem;align-items:center}label.cb input{width:auto;margin:0}
.onglets{display:flex;gap:.3rem;margin-bottom:1.2rem;flex-wrap:wrap}.onglets button{background:none;border:0;border-bottom:3px solid transparent;padding:.6rem .9rem;font:600 .95rem var(--sans);cursor:pointer;color:var(--texte-doux)}
.onglets button.on{color:var(--marine);border-bottom-color:var(--marine)}
.msg{min-height:1.4em;color:#a12222;font-size:.92rem;margin:.8rem 0 0}.msg.ok{color:#1d6b3a}
.texte{background:var(--papier);max-width:760px;margin:0 auto;padding:2rem 1.4rem}
.texte h1{font:700 clamp(1.8rem,5vw,2.6rem)/1.15 var(--serif);color:var(--marine);margin:.3rem 0 1rem}
.texte p:not(.chapeau):not(.meta){font:1.1rem/1.75 var(--serif)}.texte .media{margin:1rem 0}
.vide{text-align:center;color:var(--texte-doux);padding:3rem 0}
.fav-liste{list-style:none;padding:0}.fav-liste li{padding:.7rem 0;border-bottom:1px solid var(--filet)}
.honey{position:absolute;left:-9999px}
.adm-tete{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 0}
.adm-tete h1{font:700 1.4rem var(--serif);color:var(--marine);margin:0}
.tableau{width:100%;border-collapse:collapse;background:#fff;font-size:.92rem}.tableau th,.tableau td{padding:.6rem;border-bottom:1px solid var(--filet);text-align:left}
.defile{overflow-x:auto}.msg-item{background:#fff;margin-bottom:.6rem;padding:.8rem 1rem;border-left:4px solid var(--filet)}
.msg-item.nouveau{border-left-color:var(--bleu-lien);font-weight:600}.msg-item p{white-space:pre-wrap;font-weight:400}
.lien{background:none;border:0;color:var(--bleu-lien);cursor:pointer;font:inherit;padding:0 .5rem 0 0}
