/* ==========================================================
   AHTPSC : feuille de style principale
   Palette tirée du logo : vert baobab, or soleil, terre, ciel
   ========================================================== */
:root {
  --vert-nuit: #0e3320;
  --vert-fonce: #14462a;
  --vert: #2e7d32;
  --vert-clair: #7cb342;
  --vert-pale: #e8f2e1;
  --or: #d4a017;
  --or-fonce: #a87c0b;
  --or-pale: #fbf1d3;
  --terre: #7a4a24;
  --ciel: #1e6fa8;
  --creme: #fbf8ef;
  --blanc: #ffffff;
  --encre: #1c241f;
  --gris: #5a645d;
  --ligne: #e3e0d3;
  --rouge: #b3261e;
  --rayon: 14px;
  --ombre: 0 8px 28px rgba(14, 51, 32, .09);
  --titre: 'Fraunces', Georgia, 'Times New Roman', serif;
  --texte: 'Source Sans 3', 'Segoe UI', Roboto, Arial, sans-serif;
  --largeur: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--texte); font-size: 1.0625rem; line-height: 1.65; color: var(--encre); background: var(--creme); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--vert); text-underline-offset: 3px; }
a:hover { color: var(--vert-fonce); }
h1, h2, h3, h4 { font-family: var(--titre); line-height: 1.2; color: var(--vert-nuit); margin: 0 0 .6em; font-weight: 700; }
h1 { font-size: clamp(2rem, 4.5vw, 3.3rem); letter-spacing: -.01em; }
h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
ul { padding-left: 1.2em; }
:focus-visible { outline: 3px solid var(--or); outline-offset: 2px; }

.conteneur { width: min(100% - 2.5rem, var(--largeur)); margin-inline: auto; }
.etroit { max-width: 780px; }
.petit { font-size: .9rem; color: var(--gris); }
.centre { text-align: center; }
.evitement { position: absolute; left: -999px; top: 0; background: var(--or); color: #000; padding: .6rem 1rem; z-index: 100; }
.evitement:focus { left: 1rem; }
.hp { position: absolute !important; left: -9999px; height: 0; overflow: hidden; }
.ico { width: 1.2em; height: 1.2em; flex-shrink: 0; }

/* ---------- Boutons ---------- */
.bouton { white-space: nowrap; display: inline-flex; align-items: center; gap: .5rem; padding: .72rem 1.25rem; border-radius: 999px; font-weight: 700; text-decoration: none; border: 2px solid transparent; transition: transform .15s, background .15s, color .15s; cursor: pointer; font-size: 1rem; font-family: var(--texte); line-height: 1.2; }
.bouton:hover { transform: translateY(-1px); }
.bouton-or { background: var(--or); color: var(--vert-nuit); }
.bouton-or:hover { background: #e2b12a; color: var(--vert-nuit); }
.bouton-vert { background: var(--vert-fonce); color: #fff; }
.bouton-vert:hover { background: var(--vert-nuit); color: #fff; }
.bouton-clair { background: transparent; color: #fff; border-color: rgba(255,255,255,.7); }
.bouton-clair:hover { background: #fff; color: var(--vert-nuit); }
.bouton-contour { background: transparent; color: var(--vert-fonce); border-color: var(--vert-fonce); }
.bouton-contour:hover { background: var(--vert-fonce); color: #fff; }
.bouton-aide { background: var(--vert-pale); color: var(--vert-fonce); }
.bouton-aide:hover { background: #d6e9cb; color: var(--vert-nuit); }
.lien-fleche { display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; text-decoration: none; }
.lien-fleche .ico { transition: transform .15s; }
.lien-fleche:hover .ico { transform: translateX(3px); }

/* ---------- Bandeau haut et en-tête ---------- */
.bandeau-haut { background: var(--vert-nuit); color: #dfe9e0; font-size: .88rem; }
.bandeau-haut__inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .4rem 0; }
.bandeau-haut__devise { letter-spacing: .14em; text-transform: uppercase; color: var(--or); font-weight: 700; font-size: .78rem; }
.bandeau-haut__contacts { display: flex; gap: 1.2rem; }
.bandeau-haut a { color: #dfe9e0; text-decoration: none; display: inline-flex; align-items: center; gap: .35rem; }
.bandeau-haut a:hover { color: #fff; }

.entete { background: var(--blanc); border-bottom: 1px solid var(--ligne); position: sticky; top: 0; z-index: 50; }
.entete .conteneur { width: min(100% - 2.5rem, 1320px); }
.entete__inner { display: flex; align-items: center; gap: 1.5rem; padding: .55rem 0; }
.marque { display: flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--vert-nuit); flex-shrink: 0; }
.marque img { width: 58px; height: 58px; }
.marque__texte strong { display: block; font-family: var(--titre); font-size: 1.45rem; line-height: 1; letter-spacing: .02em; }
.marque__texte small { display: block; color: var(--gris); font-size: .78rem; margin-top: .2rem; }

.navigation { display: flex; align-items: center; gap: 1.2rem; margin-left: auto; }
.navigation ul { list-style: none; display: flex; gap: .15rem; margin: 0; padding: 0; }
.navigation ul a { display: block; white-space: nowrap; padding: .5rem .55rem; border-radius: 8px; color: var(--encre); text-decoration: none; font-weight: 600; font-size: .97rem; }
.navigation ul a:hover { background: var(--vert-pale); color: var(--vert-fonce); }
.navigation ul a[aria-current="page"] { color: var(--vert-fonce); box-shadow: inset 0 -3px 0 var(--or); border-radius: 0; }
.navigation__actions { display: flex; gap: .5rem; }
.navigation__actions .bouton { padding: .55rem 1rem; font-size: .95rem; }
.menu-bouton { display: none; margin-left: auto; align-items: center; gap: .4rem; background: var(--vert-pale); border: 0; border-radius: 10px; padding: .55rem .8rem; font: 700 1rem var(--texte); color: var(--vert-fonce); cursor: pointer; }

@media (max-width: 1440px) { .marque__texte small { display: none; } }
@media (max-width: 1200px) {
  .menu-bouton { display: inline-flex; }
  .navigation { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; flex-direction: column; align-items: stretch; padding: 1rem 1.25rem 1.5rem; border-bottom: 1px solid var(--ligne); box-shadow: var(--ombre); }
  .navigation.ouvert { display: flex; }
  .navigation ul { flex-direction: column; }
  .navigation ul a { padding: .75rem .5rem; border-bottom: 1px solid var(--ligne); border-radius: 0; }
  .navigation ul a[aria-current="page"] { box-shadow: inset 4px 0 0 var(--or); padding-left: 1rem; }
  .navigation__actions { flex-direction: column; }
  .navigation__actions .bouton { justify-content: center; padding: .8rem; }
}
@media (max-width: 640px) {
  .masque-mobile { display: none !important; }
  .bandeau-haut__devise { display: none; }
  .bandeau-haut__inner { justify-content: center; }
  .bandeau-haut a { white-space: nowrap; }
  .marque img { width: 48px; height: 48px; }
  .marque__texte small { display: none; }
}

/* ---------- Héros (accueil) ---------- */
.heros { position: relative; overflow: hidden; color: #fff; background:
  radial-gradient(circle at 78% 40%, rgba(212,160,23,.38), transparent 42%),
  radial-gradient(circle at 10% 110%, rgba(124,179,66,.35), transparent 45%),
  linear-gradient(135deg, var(--vert-nuit) 0%, var(--vert-fonce) 55%, #1d5a35 100%); }
.heros::after { content: ""; position: absolute; inset: 0; background-image: repeating-radial-gradient(circle at 78% 40%, rgba(255,255,255,.05) 0 2px, transparent 2px 46px); pointer-events: none; }
.heros__inner { position: relative; z-index: 1; display: grid; grid-template-columns: 1.15fr .85fr; gap: 3rem; align-items: center; padding: clamp(3rem, 7vw, 5.5rem) 0; }
.heros h1 { color: #fff; }
.heros h1 em { font-style: normal; color: var(--or); }
.heros__surtitre { display: inline-block; text-transform: uppercase; letter-spacing: .16em; font-weight: 700; font-size: .82rem; color: var(--or); margin-bottom: 1rem; }
.heros__texte { font-size: 1.2rem; color: #e3ede4; max-width: 38em; }
.heros__boutons { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.8rem; }
.heros__visuel { display: grid; place-items: center; }
.heros__visuel img { width: min(100%, 420px); filter: drop-shadow(0 18px 40px rgba(0,0,0,.35)); }
@media (max-width: 860px) {
  .heros__inner { grid-template-columns: 1fr; text-align: center; }
  .heros__visuel { order: -1; }
  .heros__visuel img { width: 210px; }
  .heros__texte { margin-inline: auto; }
  .heros__boutons { justify-content: center; }
}

/* ---------- En-tête de page intérieure ---------- */
.entete-page { background: linear-gradient(135deg, var(--vert-nuit), var(--vert-fonce)); color: #fff; padding: clamp(2.5rem, 5vw, 4rem) 0 clamp(2rem, 4vw, 3rem); position: relative; overflow: hidden; }
.entete-page::after { content: ""; position: absolute; right: -80px; top: -80px; width: 360px; height: 360px; border-radius: 50%; background: radial-gradient(circle, rgba(212,160,23,.35), transparent 65%); }
.entete-page h1 { color: #fff; margin-bottom: .35em; position: relative; z-index: 1; }
.entete-page p { color: #d9e6db; font-size: 1.15rem; max-width: 46em; margin: 0; position: relative; z-index: 1; }
.fil { font-size: .88rem; margin-bottom: 1rem; position: relative; z-index: 1; }
.fil a { color: var(--or); text-decoration: none; }
.fil span { color: #b9cbbd; }

/* ---------- Sections ---------- */
.section { padding: clamp(3rem, 6vw, 5rem) 0; }
.section-blanche { background: var(--blanc); }
.section-verte { background: var(--vert-pale); }
.section-or { background: var(--or-pale); }
.section-sombre { background: var(--vert-nuit); color: #e3ede4; }
.section-sombre h2, .section-sombre h3 { color: #fff; }
.titre-section { max-width: 760px; margin-bottom: 2.5rem; }
.titre-section.centre { margin-inline: auto; }
.surtitre { display: inline-block; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; font-size: .8rem; color: var(--or-fonce); margin-bottom: .6rem; }
.section-sombre .surtitre { color: var(--or); }
.titre-section p { color: var(--gris); font-size: 1.12rem; }
.section-sombre .titre-section p { color: #c8d8cb; }

.grille { display: grid; gap: 1.5rem; }
.grille-2 { grid-template-columns: repeat(2, 1fr); }
.grille-3 { grid-template-columns: repeat(3, 1fr); }
.grille-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) { .grille-3, .grille-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grille-2, .grille-3, .grille-4 { grid-template-columns: 1fr; } }

/* ---------- Cartes ---------- */
.carte { background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.6rem; box-shadow: var(--ombre); display: flex; flex-direction: column; }
.carte h3 { margin-bottom: .45em; }
.carte p { color: var(--gris); }
.carte .lien-fleche { margin-top: auto; }
.carte__icone { width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center; background: var(--vert-pale); color: var(--vert-fonce); margin-bottom: 1rem; }
.carte__icone .ico { width: 28px; height: 28px; }
.carte-domaine { position: relative; border-top: 5px solid var(--vert); transition: transform .2s; }
.carte-domaine:hover { transform: translateY(-4px); }
.carte-domaine:nth-child(2) { border-top-color: var(--or); }
.carte-domaine:nth-child(3) { border-top-color: #c0392b; }
.carte-domaine:nth-child(4) { border-top-color: var(--vert-clair); }
.carte-domaine:nth-child(5) { border-top-color: var(--terre); }
.carte-domaine:nth-child(6) { border-top-color: var(--ciel); }

.domaines-grille { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.5rem; }
.domaines-grille > * { grid-column: span 2; }
.domaines-grille > :nth-child(4) { grid-column: 2 / span 2; }
@media (max-width: 960px) { .domaines-grille { grid-template-columns: repeat(2, 1fr); } .domaines-grille > *, .domaines-grille > :nth-child(4) { grid-column: auto; } }
@media (max-width: 640px) { .domaines-grille { grid-template-columns: 1fr; } }

/* ---------- Bloc mission / citation ---------- */
.mission { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; align-items: center; }
@media (max-width: 860px) { .mission { grid-template-columns: 1fr; } }
.citation { font-family: var(--titre); font-size: clamp(1.4rem, 2.6vw, 2rem); line-height: 1.35; color: var(--vert-nuit); border-left: 5px solid var(--or); padding-left: 1.4rem; margin: 0; }
.liste-coches { list-style: none; padding: 0; margin: 0; }
.liste-coches li { position: relative; padding-left: 2rem; margin-bottom: .7rem; }
.liste-coches li::before { content: ""; position: absolute; left: 0; top: .3em; width: 1.15rem; height: 1.15rem; border-radius: 50%; background: var(--vert) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center/70% no-repeat; }

/* ---------- Objectifs chiffrés ---------- */
.objectifs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
@media (max-width: 860px) { .objectifs { grid-template-columns: repeat(2, 1fr); } }
.objectif { text-align: center; padding: 1.6rem 1rem; border-radius: var(--rayon); background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); }
.objectif b { display: block; font-family: var(--titre); font-size: clamp(2.2rem, 4vw, 3rem); color: var(--or); line-height: 1; margin-bottom: .4rem; }
.objectif span { font-size: .98rem; color: #d7e4d9; }
.note-objectifs { text-align: center; margin-top: 1.4rem; font-size: .92rem; color: #a9bfae; }

/* ---------- Filières ---------- */
.filiere { background: #fff; border-radius: var(--rayon); border: 1px solid var(--ligne); box-shadow: var(--ombre); overflow: hidden; display: flex; flex-direction: column; }
.filiere__tete { padding: 1.4rem 1.6rem; background: var(--vert-fonce); color: #fff; display: flex; gap: 1rem; align-items: center; }
.filiere__tete h3 { color: #fff; margin: 0; font-size: 1.18rem; }
.filiere__tete .ico { width: 34px; height: 34px; color: var(--or); }
.filiere__corps { padding: 1.4rem 1.6rem; flex: 1; }
.pastilles { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 0 1rem; padding: 0; list-style: none; }
.pastille { background: var(--or-pale); color: var(--terre); font-weight: 700; font-size: .85rem; padding: .25rem .7rem; border-radius: 999px; }
.pastille-verte { background: var(--vert-pale); color: var(--vert-fonce); }

details.modules { border-top: 1px solid var(--ligne); padding-top: .8rem; margin-top: .8rem; }
details.modules summary { cursor: pointer; font-weight: 700; color: var(--vert-fonce); }
details.modules ol { margin: .6rem 0 0; padding-left: 1.2rem; }
details.modules li { margin-bottom: .35rem; }
details.modules li span { color: var(--gris); font-size: .95rem; }

/* ---------- ODD ---------- */
.odd-liste { list-style: none; padding: 0; margin: 1rem 0 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.odd { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border: 1px solid var(--ligne); border-left: 6px solid var(--odd); border-radius: 8px; padding: .25rem .65rem .25rem .5rem; font-size: .86rem; }
.odd b { color: var(--odd); font-family: var(--titre); font-size: 1rem; }
.odd-grand .odd-liste { justify-content: center; }
.odd-grand .odd { font-size: .95rem; padding: .5rem .85rem; }

/* ---------- Domaines détaillés (actions.php) ---------- */
.domaine { display: grid; grid-template-columns: 300px 1fr; gap: 2.5rem; padding: 3rem 0; border-bottom: 1px solid var(--ligne); scroll-margin-top: 110px; }
.domaine:last-child { border-bottom: 0; }
.domaine__cote { position: sticky; top: 120px; align-self: start; }
.domaine__num { font-family: var(--titre); font-size: 3.2rem; color: var(--or); line-height: 1; }
.domaine__cote .carte__icone { width: 64px; height: 64px; }
.domaine h2 { font-size: clamp(1.5rem, 2.4vw, 2rem); }
.commissions { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; padding: 0; margin: .5rem 0 1.4rem; }
.commissions li { background: var(--vert-pale); color: var(--vert-fonce); border-radius: 8px; padding: .3rem .7rem; font-size: .92rem; font-weight: 600; }
@media (max-width: 860px) { .domaine { grid-template-columns: 1fr; gap: 1rem; } .domaine__cote { position: static; } }

.sommaire { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; margin: 0; }
.sommaire a { display: inline-block; padding: .5rem .9rem; border-radius: 999px; background: #fff; border: 1px solid var(--ligne); text-decoration: none; font-weight: 600; color: var(--vert-fonce); font-size: .95rem; }
.sommaire a:hover { border-color: var(--vert); }

/* ---------- Gouvernance ---------- */
.organes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
@media (max-width: 960px) { .organes { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .organes { grid-template-columns: 1fr; } }
.organe { background: #fff; border-radius: var(--rayon); padding: 1.4rem; border: 1px solid var(--ligne); position: relative; }
.organe__num { position: absolute; top: 1rem; right: 1.2rem; font-family: var(--titre); font-size: 2rem; color: var(--or-pale); font-weight: 700; }
.organe h3 { font-size: 1.12rem; }
.organe p { font-size: .97rem; color: var(--gris); margin: 0; }
.equipe { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
@media (max-width: 960px) { .equipe { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .equipe { grid-template-columns: 1fr; } }
.membre { text-align: center; background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.4rem 1rem; }
.membre__initiales { width: 72px; height: 72px; border-radius: 50%; margin: 0 auto .8rem; display: grid; place-items: center; background: linear-gradient(135deg, var(--vert-fonce), var(--vert)); color: var(--or); font-family: var(--titre); font-weight: 700; font-size: 1.4rem; }
.membre strong { display: block; line-height: 1.3; }
.membre span { display: block; color: var(--gris); font-size: .92rem; margin-top: .3rem; }

.valeurs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
@media (max-width: 860px) { .valeurs { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .valeurs { grid-template-columns: 1fr; } }
.valeur { padding: 1.4rem; border-radius: var(--rayon); background: #fff; border: 1px solid var(--ligne); }
.valeur h3 { display: flex; gap: .6rem; align-items: center; font-size: 1.15rem; }
.valeur h3 .ico { color: var(--or-fonce); width: 26px; height: 26px; }
.valeur p { margin: 0; color: var(--gris); }

.tableau { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--rayon); overflow: hidden; border: 1px solid var(--ligne); }
.tableau th, .tableau td { padding: .85rem 1rem; text-align: left; border-bottom: 1px solid var(--ligne); vertical-align: top; }
.tableau th { background: var(--vert-fonce); color: #fff; font-weight: 700; }
.tableau tr:last-child td { border-bottom: 0; }
.defile { overflow-x: auto; }

/* ---------- Axes / chronologie ---------- */
.axe { background: #fff; border-radius: var(--rayon); border: 1px solid var(--ligne); padding: 2rem; box-shadow: var(--ombre); position: relative; }
.axe__annee { display: inline-block; background: var(--or); color: var(--vert-nuit); font-weight: 700; padding: .25rem .8rem; border-radius: 999px; font-size: .9rem; margin-bottom: .8rem; }

/* ---------- Événement ---------- */
.evenement-phare { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; align-items: center; background: #fff; border-radius: var(--rayon); padding: 2rem; border: 1px solid var(--ligne); box-shadow: var(--ombre); }
.evenement-phare__date { text-align: center; background: var(--vert-fonce); color: #fff; border-radius: var(--rayon); padding: 1.6rem 1rem; }
.evenement-phare__date b { display: block; font-family: var(--titre); font-size: 2.6rem; color: var(--or); line-height: 1; }
.evenement-phare__date span { display: block; margin-top: .4rem; font-size: .95rem; }
@media (max-width: 700px) { .evenement-phare { grid-template-columns: 1fr; } }

/* ---------- Formulaires ---------- */
.formulaire { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: clamp(1.4rem, 3vw, 2.2rem); box-shadow: var(--ombre); scroll-margin-top: 110px; }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.2rem; }
.champs .large { grid-column: 1 / -1; }
@media (max-width: 640px) { .champs { grid-template-columns: 1fr; } }
label { display: block; font-weight: 600; margin-bottom: .3rem; font-size: .97rem; }
label .opt { font-weight: 400; color: var(--gris); font-size: .88rem; }
input[type=text], input[type=email], input[type=tel], input[type=number], select, textarea {
  width: 100%; padding: .75rem .9rem; border: 1.5px solid #cfd5cb; border-radius: 10px; font: inherit; background: #fdfdfb; color: var(--encre); }
input:focus, select:focus, textarea:focus { border-color: var(--vert); outline: none; box-shadow: 0 0 0 3px rgba(46,125,50,.18); }
textarea { min-height: 140px; resize: vertical; }
.case { display: flex; gap: .6rem; align-items: flex-start; font-weight: 400; font-size: .95rem; }
.case input { margin-top: .3rem; width: 1.1rem; height: 1.1rem; accent-color: var(--vert); flex-shrink: 0; }
fieldset { border: 0; padding: 0; margin: 0; }
legend { font-weight: 600; margin-bottom: .4rem; }
.choix { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; }
.formulaire .bouton { margin-top: 1.2rem; }
.alerte { padding: 1rem 1.2rem; border-radius: 10px; margin-bottom: 1.2rem; font-weight: 600; }
.alerte-ok { background: var(--vert-pale); color: var(--vert-fonce); border: 1px solid #b9d9a9; }
.alerte-erreur { background: #fdecea; color: var(--rouge); border: 1px solid #f3c1bc; }

/* ---------- Encadrés ---------- */
.encadre { border-radius: var(--rayon); padding: 1.4rem 1.6rem; background: var(--or-pale); border-left: 6px solid var(--or); }
.encadre h3 { margin-bottom: .4em; }
.encadre p:last-child { margin-bottom: 0; }
.encadre-vert { background: var(--vert-pale); border-left-color: var(--vert); }
.encadre-urgence { background: #fdecea; border-left-color: var(--rouge); }
.encadre-urgence h3 { color: var(--rouge); }

/* ---------- Page d'aide ---------- */
.sortie-rapide { position: fixed; right: 1rem; bottom: 1rem; z-index: 90; background: var(--rouge); color: #fff; border: 0; border-radius: 999px; padding: .9rem 1.3rem; font: 700 1rem var(--texte); display: inline-flex; gap: .5rem; align-items: center; box-shadow: 0 8px 24px rgba(0,0,0,.25); cursor: pointer; }
.sortie-rapide:hover { background: #8f1d17; }
.etapes { counter-reset: etape; list-style: none; padding: 0; display: grid; gap: 1rem; }
.etapes li { counter-increment: etape; background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.2rem 1.2rem 1.2rem 4.2rem; position: relative; }
.etapes li::before { content: counter(etape); position: absolute; left: 1.2rem; top: 1.1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--vert-fonce); color: var(--or); display: grid; place-items: center; font-family: var(--titre); font-weight: 700; }
.etapes strong { display: block; margin-bottom: .2rem; }

/* ---------- Contact ---------- */
.coordonnees { list-style: none; padding: 0; margin: 0; display: grid; gap: 1rem; }
.coordonnees li { display: flex; gap: 1rem; align-items: flex-start; background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 1.1rem 1.2rem; }
.coordonnees .ico { width: 28px; height: 28px; color: var(--vert); margin-top: .1rem; }
.coordonnees strong { display: block; }
.carte-geo { border-radius: var(--rayon); overflow: hidden; border: 1px solid var(--ligne); min-height: 280px; background: var(--vert-pale); }
.carte-geo iframe { width: 100%; height: 100%; min-height: 280px; border: 0; display: block; }

/* ---------- Actualités ---------- */
.article-carte { background: #fff; border: 1px solid var(--ligne); border-radius: var(--rayon); overflow: hidden; display: flex; flex-direction: column; }
.article-carte__visuel { aspect-ratio: 16/9; background: linear-gradient(135deg, var(--vert-fonce), var(--vert)); display: grid; place-items: center; color: var(--or); }
.article-carte__visuel .ico { width: 56px; height: 56px; }
.article-carte__corps { padding: 1.3rem 1.4rem; }
.article-carte time { color: var(--or-fonce); font-weight: 700; font-size: .88rem; }

/* ---------- Bandeau d'appel et pied ---------- */
.appel-final { background: linear-gradient(120deg, var(--or-fonce), var(--or)); color: var(--vert-nuit); }
.appel-final__inner { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 2.6rem 0; flex-wrap: wrap; }
.appel-final h2 { margin: 0 0 .2em; color: var(--vert-nuit); }
.appel-final p { margin: 0; font-size: 1.1rem; }
.appel-final__boutons { display: flex; flex-wrap: wrap; gap: .6rem; }
.appel-final .bouton-or { background: var(--vert-nuit); color: #fff; }
.appel-final .bouton-or:hover { background: #000; color: #fff; }
.appel-final .bouton-clair { color: var(--vert-nuit); border-color: var(--vert-nuit); }
.appel-final .bouton-clair:hover { background: var(--vert-nuit); color: #fff; }

.pied { background: var(--vert-nuit); color: #c5d5c8; padding-top: 3.5rem; font-size: .97rem; }
.pied__grille { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 2.5rem; padding-bottom: 2.5rem; }
@media (max-width: 900px) { .pied__grille { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pied__grille { grid-template-columns: 1fr; } }
.pied h3 { color: #fff; font-family: var(--texte); font-size: 1rem; text-transform: uppercase; letter-spacing: .12em; }
.pied ul { list-style: none; padding: 0; margin: 0; }
.pied li { margin-bottom: .5rem; }
.pied a { color: #c5d5c8; text-decoration: none; }
.pied a:hover { color: var(--or); }
.pied__marque img { margin-bottom: 1rem; }
.pied__marque strong { color: #fff; }
.pied__devise { color: var(--or); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: .82rem; }
.pied .petit { color: #93a998; }
.pied__contacts li { display: flex; gap: .6rem; align-items: flex-start; }
.pied__contacts .ico { color: var(--or); margin-top: .2rem; }
.pied__reseaux { display: flex; gap: 1rem; margin-top: 1rem !important; }
.pied__bas { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem; border-top: 1px solid rgba(255,255,255,.1); padding: 1.2rem 0; font-size: .88rem; color: #93a998; }

/* ---------- Contenu texte (pages légales) ---------- */
.prose h2 { font-size: 1.5rem; margin-top: 2rem; }
.prose h2:first-child { margin-top: 0; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
@media print { .bandeau-haut, .entete, .appel-final, .sortie-rapide, .pied__grille { display: none; } }
