/* ==========================================================================
   14e Membre — V3 · système graphique dérivé de la version initiale (thème canonique 2.2)
   Référence mesurée à 1 440 px (styles calculés, wp/recette/scripts/geometrie.mjs) :
   - Typographie : Georgia 700 pour les titres, Arial pour le texte, étiquettes Arial 800 capitales.
   - Grille : conteneur 1 628 px, marges 26 px, gouttière 10 px, sections 32 px / 26 px.
   - Photographies : formats communs (panorama, bandeau, carte, tableau, portrait, carré, document).
   Écarts assumés : étiquettes bronze sur fond clair (contraste AA), texte courant ≥ 13 px,
   adaptation tablette/mobile (absente de la version initiale).
   ========================================================================== */

:root {
  /* Couleurs (thème canonique) */
  --encre: #11110f;
  --nuit: #080908;
  --nuit-2: #0c0d0c;
  --anthracite: #292925;
  --papier: #f3eadc;
  --papier-2: #efe4d2;
  --ivoire: #fbf5eb;
  --blanc: #ffffff;
  --vert: #174f3d;
  --vert-fonce: #0e392d;
  --vert-pied: #0d3b30;
  --bordeaux: #ad1f3b;
  --bordeaux-fonce: #8a1730;
  --or: #d5aa42;
  --or-clair: #e8c66c;         /* or des étiquettes sur vert moyen (contraste AA) */
  --bronze: #7a5a12;          /* or lisible sur fond clair (AA) */
  --gris: #4a443c;            /* texte secondaire sur clair : même teinte, assombrie (≥ 8:1 sur papier, lisibilité 2026-10-14) */
  --gris-clair: #d6d0c6;      /* texte secondaire sur sombre (AA) */
  --filet: #d8cdbb;
  --filet-sombre: #302a21;

  /* Typographie (polices système de la version initiale : aucun téléchargement) */
  --f-titre: Georgia, "Times New Roman", serif;
  --f-texte: Arial, Helvetica, sans-serif;
  --f-etiquette: Arial, Helvetica, sans-serif;

  /* Échelle des titres : valeurs canoniques à 1 440 px, réduites proportionnellement en dessous */
  --t-ouverture: clamp(2.5rem, 1.2rem + 3.2vw, 4.125rem);   /* 66 px */
  --t-section: clamp(1.9rem, 1.15rem + 1.75vw, 2.45rem);     /* 39 px */
  --t-une: clamp(1.6rem, 1.05rem + 1.2vw, 1.95rem);          /* 31 px */
  --t-panneau: clamp(1.5rem, 1.15rem + 0.7vw, 1.75rem);      /* 28 px (émission, résumés, boutique, actualités) */
  --t-panneau-serre: clamp(1.4rem, 1.1rem + 0.5vw, 1.6rem);  /* 26 px (bibliothèque) */
  --t-carte: 1.3125rem;                                       /* 21 px (lisibilité, 2026-10-13) */
  --t-recit: 1.1875rem;                                       /* 19 px */
  --t-texte: 1.125rem;                                        /* 18 px ordinateur, 17 px téléphone */
  --t-texte-petit: 1.0625rem;                                 /* 17 px : texte des cartes et panneaux (16 px téléphone) */
  --t-etiquette: 0.875rem;                                    /* 14 px : étiquettes en capitales */
  --t-bouton: 0.9375rem;                                      /* 15 px : boutons et liens d'action en capitales */
  --t-menu: 0.9375rem;                                        /* 15 px */
  --t-info: 0.9375rem;                                        /* 15 px : légendes, dates, informations secondaires */

  /* Grille */
  --max: 1628px;
  --marge: max(16px, env(safe-area-inset-left, 0px), min(1.8vw, 26px));
  --gouttiere: 10px;
  --rythme-haut: 32px;
  --rythme-bas: 26px;
  --entete-h: 72px;
  color-scheme: light;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--entete-h) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
@media (max-width: 47.99rem) { :root { --t-texte: 1.0625rem; --t-texte-petit: 1rem; } }
body.v3 { margin: 0; background: var(--papier); color: var(--encre); font: 400 var(--t-texte)/1.55 var(--f-texte); overflow-x: hidden; }
html.menu-ouvert body.v3 { overflow: hidden; }
:where(.v3) img { max-width: 100%; height: auto; display: block; }
:where(.v3) :is(h1, h2, h3, h4) { margin: 0; font-family: var(--f-titre); font-weight: 700; line-height: 1.05; text-wrap: balance; }
:where(.v3) :is(p, ul, ol, dl, figure, blockquote) { margin: 0; }
.v3 sup { font-size: 0.6em; vertical-align: super; line-height: 0; }
:where(.v3) a { color: inherit; text-underline-offset: 0.2em; }
.v3 :focus-visible { outline: 3px solid var(--bordeaux); outline-offset: 3px; }
:is(.entete, .pied, .ouverture, .une, .recits, .bibliotheque, .section--vert, .activites, .resumes, .bandeau-page) :focus-visible { outline-color: var(--or); }
.actualites :focus-visible { outline-color: #fff; }
#contenu:focus { outline: none; }
.sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.evitement { position: absolute; left: 1rem; top: -5rem; z-index: 200; padding: 0.75rem 1.1rem; background: var(--or); color: var(--encre); font-weight: 700; text-decoration: none; }
.evitement:focus { top: 1rem; }
.ancre { display: block; position: relative; top: calc(-1 * var(--entete-h)); visibility: hidden; height: 0; }
.cadre { width: 100%; max-width: calc(var(--max) + 2 * var(--marge)); margin-inline: auto; padding-inline: var(--marge); }

/* ---------- Typographie : une hiérarchie unique ---------- */
.etiquette { display: block; margin: 0 0 8px; font: 800 var(--t-etiquette)/1.3 var(--f-etiquette); letter-spacing: 0.16em; text-transform: uppercase; color: var(--bronze); }
:is(.entete, .pied, .ouverture, .une, .recits, .bibliotheque, .section--vert, .activites__intro, .resumes, .bandeau-page, .question, .panneau-vert) .etiquette { color: var(--or); }
:is(.bibliotheque, .section--vert, .pied) .etiquette { color: var(--or-clair); }
.titre { font-family: var(--f-titre); font-weight: 700; line-height: 1.05; }
.titre--ouverture { font-size: var(--t-ouverture); line-height: 0.93; margin: 6px 0 18px; }
.titre--section { font-size: var(--t-section); line-height: 0.98; }
.titre--une { font-size: var(--t-une); line-height: 1; }
.titre--panneau { font-size: var(--t-panneau); line-height: 1.02; }
.titre--panneau-grand { font-size: clamp(1.6rem, 1.1rem + 1vw, 1.85rem); line-height: 1.02; }
.titre--carte { display: block; font-size: var(--t-carte); line-height: 1.05; }
.titre--recit { font-size: var(--t-recit); line-height: 1.05; }
.titre--activite { font-size: 1.75rem; line-height: 1; }
.titre--recherche { font-size: 1.35rem; line-height: 1.05; }
.titre--pied { font-size: 1.625rem; line-height: 1.1; color: #fff; }
.texte { font-size: var(--t-texte); line-height: 1.55; }
.texte--ouverture { font-size: var(--t-texte); color: #eee; max-width: 470px; }
.texte--petit { display: block; font-size: var(--t-texte-petit); line-height: 1.45; }
.texte > p + p { margin-top: 0.8em; }

/* ---------- Boutons (canonique : 11 px, graisse 800, capitales, 13 × 16 px) ---------- */
.actions { display: flex; flex-wrap: wrap; gap: 12px; }
.bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 13px 18px; border: 1px solid transparent; font: 800 var(--t-bouton)/1.2 var(--f-texte); letter-spacing: 0.04em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s; }
.bouton--fleche::after { content: "↗"; font-size: 1.1em; }
.bouton--bordeaux { background: var(--bordeaux); color: #fff; }
.bouton--bordeaux:hover { background: var(--bordeaux-fonce); }
.bouton--or { background: var(--or); color: #16130e; }
.bouton--or:hover { background: #e2bd5e; }
.bouton--encre { background: var(--encre); color: #fff; }
.bouton--encre:hover { background: var(--vert-fonce); }
.bouton--contour { background: transparent; border-color: var(--or); color: #fff; }
.bouton--contour:hover { background: var(--or); color: #16130e; }
.bouton--clair { background: #f1e7d6; color: var(--encre); }
.bouton--clair:hover { background: #fff; }
.bouton--plein { width: 100%; justify-content: flex-start; }
.lien-souligne { display: inline-block; padding: 4px 0; font: 800 var(--t-bouton)/1.3 var(--f-texte); text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; }
.lien-etendu { text-decoration: none; }
.lien-etendu::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.lien-etendu:hover { text-decoration: underline; }
.lien-fleche { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; font: 800 var(--t-bouton)/1.2 var(--f-texte); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid currentColor; align-self: flex-start; }
.lien-fleche::after { content: "→"; }
.lien-fleche--retour::after { content: none; }
.lien-fleche--retour::before { content: "←"; }

/* ---------- Photographies : règles communes de cadrage ---------- */
.photo { width: 100%; object-fit: cover; object-position: 50% 50%; background: var(--nuit); }
.photo--panorama { aspect-ratio: 2 / 1; }          /* ouverture */
.photo--bandeau { aspect-ratio: 8 / 3; }           /* SSK, bandeaux de page */
.photo--paysage { aspect-ratio: 16 / 9; }          /* vignettes vidéo */
.photo--carte { aspect-ratio: 12 / 7; }            /* rubriques (1,71) */
.photo--tableau { aspect-ratio: 11 / 8; }          /* activités (1,37) */
.photo--portrait { aspect-ratio: 4 / 5; }          /* récits, bibliothèque */
.photo--carre { aspect-ratio: 1; }                 /* résumés */
.photo--document { object-fit: contain; background: transparent; }   /* objets détourés, couvertures */
/* Photographie de cellule : remplit la hauteur décidée par la grille, sans l'imposer (taille intrinsèque neutralisée). */
.photo--cellule { contain: size; height: auto !important; align-self: stretch; aspect-ratio: auto !important; }

/* ---------- Sections ---------- */
.section { padding-block: var(--rythme-haut) var(--rythme-bas); }
.section--collee { padding-top: 0; }
.section--vert { background: var(--vert); color: #fff; }
.section--papier-2 { background: var(--papier-2); }

/* ---------- En-tête (72 px, comme l'original) ---------- */
.entete { position: sticky; top: 0; z-index: 100; background: #0c0d0c; color: #fff; border-bottom: 1px solid var(--filet-sombre); padding-top: env(safe-area-inset-top, 0px); }
.entete__barre { min-height: var(--entete-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.marque { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; flex-shrink: 0; }
.marque__logo { width: 42px; height: 42px; object-fit: contain; }
.marque__nom { display: flex; flex-direction: column; font: 800 0.9375rem/1.05 var(--f-texte); letter-spacing: 0.08em; text-transform: uppercase; }
.marque__sous { font: inherit; letter-spacing: inherit; color: #fff; }
.bascule { display: inline-flex; align-items: center; gap: 0.6rem; min-height: 44px; min-width: 44px; padding: 0 0.25rem; background: none; border: 0; color: #fff; font: 800 0.9375rem/1 var(--f-texte); letter-spacing: 0.12em; text-transform: uppercase; cursor: pointer; }
.bascule__icone, .bascule__icone::before { display: block; width: 1.5rem; height: 2px; background: currentColor; transition: transform .2s; }
.bascule__icone { position: relative; box-shadow: 0 -7px 0 currentColor; }
.bascule__icone::before { content: ""; position: absolute; top: 7px; }
.bascule[aria-expanded="true"] .bascule__icone { box-shadow: none; transform: rotate(45deg); }
.bascule[aria-expanded="true"] .bascule__icone::before { transform: rotate(-90deg); top: 0; }
.navigation { display: none; }
.navigation.est-ouvert { display: flex; flex-direction: column; gap: 1.5rem; position: fixed; inset: calc(var(--entete-h) + 1px + env(safe-area-inset-top, 0px)) 0 0 0; padding: 1rem var(--marge) calc(2rem + env(safe-area-inset-bottom, 0px)); background: #0c0d0c; overflow-y: auto; }
.navigation__liste { list-style: none; margin: 0; padding: 0; }
.navigation__liste a { display: block; padding: 0.85rem 0; border-bottom: 1px solid var(--filet-sombre); font: 700 1.5rem/1.15 var(--f-titre); text-decoration: none; }
.navigation__liste a:hover, .navigation__liste a[aria-current="page"] { color: var(--or); }
.navigation__don { align-self: flex-start; }
@media (min-width: 75rem) {
  .bascule { display: none; }
  .navigation, .navigation.est-ouvert { display: flex; flex: 1; flex-direction: row; align-items: center; justify-content: space-between; gap: 24px; position: static; padding: 0; background: none; overflow: visible; }
  .navigation__liste { display: flex; flex: 1; justify-content: center; gap: clamp(18px, 2.2vw, 34px); }
  .navigation__liste a { padding: 6px 0; border: 0; font: 800 var(--t-menu)/1 var(--f-texte); letter-spacing: 0.05em; text-transform: uppercase; white-space: nowrap; border-bottom: 1px solid transparent; }
  .navigation__liste a:hover, .navigation__liste a[aria-current="page"] { color: var(--or); border-bottom-color: var(--or); }
  .navigation__don { padding: 12px 18px; min-height: 38px; }
}

/* ---------- Accueil : ouverture (500 px ; 72 % photographie / 28 % émission) ---------- */
.ouverture { background: var(--nuit); color: #fff; }
.ouverture__grille { display: grid; }
.ouverture__principal { position: relative; display: grid; min-height: 440px; overflow: hidden; }
.ouverture__image { position: absolute; inset: 0; height: 100%; object-position: 50% 30%; }
.ouverture__principal::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.55) 55%, rgba(0,0,0,.15) 100%); }
.ouverture__texte { position: relative; z-index: 1; align-self: end; max-width: 560px; padding: 48px 0 36px; }
.ouverture__emission { display: grid; gap: 12px; align-content: center; padding: 28px 0 32px; border-top: 1px solid #28251e; }
.ouverture__emission .etiquette, .ouverture__emission .titre { margin: 0; }
.ouverture__emission .texte--petit { color: #ddd; }
.vignette { position: relative; background: #111; }
.vignette figcaption { padding: 8px 12px; font: 700 1rem/1.35 var(--f-titre); color: #fff; background: #151513; }
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .ouverture__emission { grid-template-columns: 1fr 1fr; column-gap: 28px; }
  .ouverture__emission .vignette { grid-column: 2; grid-row: 1 / span 4; }
}
@media (min-width: 64rem) {
  .ouverture__grille { grid-template-columns: minmax(0, 2.6fr) minmax(320px, 1fr); min-height: 500px; }   /* hauteur fixe, comme l'original */
  .ouverture__principal::after { background: linear-gradient(90deg, rgba(0,0,0,.9) 0%, rgba(0,0,0,.5) 45%, rgba(0,0,0,.08) 75%); }
  .ouverture__texte { align-self: center; padding: 40px 0 36px clamp(28px, 3.3vw, 48px); max-width: 590px; }
  .ouverture__emission { padding: 24px 0 16px 28px; border-top: 0; border-left: 1px solid #28251e; background: var(--nuit-2); align-content: center; }
}

/* ---------- Accueil : recherche (110 px) ---------- */
.recherche { padding-block: 14px 18px; background: var(--papier); }
.recherche__ligne { display: grid; gap: 12px; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--filet); }
.recherche__ligne .etiquette { margin-bottom: 2px; }
.recherche__formulaire { display: flex; border: 1px solid #cdbfa8; background: var(--ivoire); }
.recherche__formulaire input { flex: 1 1 auto; min-width: 0; min-height: 46px; padding: 0 16px; border: 0; background: transparent; color: var(--encre); font: 400 1.0625rem var(--f-texte); }
.recherche__formulaire input::placeholder { color: #6d655b; }
.recherche__formulaire .bouton { flex: none; }
@media (min-width: 56rem) { .recherche__ligne { grid-template-columns: 220px 1fr; gap: 24px; } }

/* ---------- Accueil : rubriques (introduction 18 % + cinq cartes) ---------- */
.rubriques__grille { display: grid; gap: var(--gouttiere); }
.rubriques__intro { display: grid; gap: 10px; align-content: start; padding: 8px 12px 18px 0; }
.rubriques__intro .etiquette, .rubriques__intro .titre { margin: 0; }
.rubriques__intro .texte { font-size: var(--t-texte-petit); color: var(--gris); }
.rubriques__intro .lien-souligne { justify-self: start; }
.carte-rubrique { position: relative; display: grid; grid-template-columns: 112px 1fr; background: var(--blanc); border: 1px solid #ddd2c1; text-decoration: none; transition: border-color .2s; }
.carte-rubrique:hover { border-color: var(--bordeaux); }
.carte-rubrique .photo--carte { height: 100%; aspect-ratio: auto; min-height: 112px; }
.carte-rubrique__corps { position: relative; display: grid; align-content: start; gap: 4px; padding: 12px 14px 30px; }
.carte-rubrique__corps .etiquette { margin: 0; }
.carte-rubrique__corps .texte--petit { color: var(--gris); }
.carte-rubrique:hover .titre--carte { color: var(--bordeaux); }
.carte-rubrique__fleche { position: absolute; right: 14px; bottom: 10px; font-size: 1.25rem; }
@media (min-width: 40rem) { .rubriques__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rubriques__intro { grid-column: 1 / -1; } }
@media (min-width: 56rem) {
  .rubriques__grille { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .carte-rubrique { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .carte-rubrique .photo--carte { aspect-ratio: 12 / 7; height: auto; min-height: 0; }
}
@media (min-width: 80rem) {
  .rubriques__grille { grid-template-columns: minmax(200px, 1.15fr) repeat(5, minmax(0, 1fr)); min-height: 320px; }
  .rubriques__intro { grid-column: auto; }
}

/* ---------- Accueil : à la une + récits + bibliothèque (une rangée de 378 px) ---------- */
.magazine__grille { display: grid; gap: var(--gouttiere); }
.une { display: grid; grid-template-columns: 1fr; background: #060606; color: #fff; }
.une__texte { display: grid; gap: 10px; align-content: center; padding: 22px 12px 22px clamp(18px, 2vw, 28px); }
.une__texte .etiquette, .une__texte .titre { margin: 0; }
.une__texte .texte--petit { color: #ddd; }
.une__texte .bouton { justify-self: start; }
.une__image { width: 100%; min-height: 260px; padding: 16px; }
.recits { display: grid; gap: var(--gouttiere); }
.recit { position: relative; display: grid; grid-template-columns: 112px 1fr; background: var(--anthracite); color: #f5f1e6; }
.recit__image { height: 100%; min-height: 120px; aspect-ratio: auto; }
.recit__texte { display: grid; align-content: center; gap: 6px; padding: 12px 14px; }
.recit__texte .etiquette { margin: 0; color: #c9a24b; }
.recit:hover .titre--recit { text-decoration: underline; }
.recit:focus-within, .activite:focus-within, .carte-rubrique:focus-within { outline: 3px solid var(--or); outline-offset: 2px; }
.bibliotheque { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 16px; padding: 14px; background: var(--vert); color: #fff; }
.bibliotheque__image { height: 100%; aspect-ratio: auto; min-height: 260px; object-position: 50% 18%; }
.bibliotheque__texte { display: grid; gap: 8px; align-content: center; }
.bibliotheque__texte .titre--panneau { font-size: var(--t-panneau-serre); }
.bibliotheque__texte .etiquette, .bibliotheque__texte .titre { margin: 0; }
.bibliotheque__texte .texte--petit { color: #ecf2ed; }
.bibliotheque__texte .bouton { justify-self: start; }
/* Lisibilité (2026-10-14) : sous 640 px, le panneau Bibliothèque s'empile (image puis texte) et la recherche
   passe le bouton sous le champ, pour que le texte agrandi ne déborde pas. */
@media (max-width: 39.99rem) {
  .bibliotheque { grid-template-columns: minmax(0, 1fr); }
  .bibliotheque__image { min-height: 0; aspect-ratio: 4 / 3; height: auto; }
  .recherche__formulaire { flex-wrap: wrap; }
  .recherche__formulaire input { flex-basis: 100%; }
  .recherche__formulaire .bouton { flex: 1 1 100%; }
}
.bouton { max-width: 100%; white-space: normal; text-align: center; }
@media (min-width: 48rem) {
  .une { grid-template-columns: 1.15fr 1fr; }
  .une__image { min-height: 0; }
  .recits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .recit { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .recit__image { min-height: 200px; }
  .bibliotheque { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1fr); }
}
@media (min-width: 80rem) {
  .magazine__grille { grid-template-columns: minmax(0, 1.74fr) minmax(0, 1fr) minmax(0, 1.3fr); min-height: 378px; }
  .recits { grid-template-columns: 1fr; grid-auto-rows: 1fr; }
  .recit { grid-template-columns: 112px 1fr; grid-template-rows: 1fr; }
  .recit__image { min-height: 0; }
  .bibliotheque { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 14px; }
}

/* ---------- Accueil : SSK (bande verte, photographie 8:3) ---------- */
.ssk { padding-block: 30px; }
.ssk__grille { display: grid; gap: 24px; align-items: center; }
.ssk__texte { display: grid; gap: 12px; }
.ssk__texte .etiquette, .ssk__texte .titre { margin: 0; }
.ssk__texte .texte { font-size: var(--t-texte-petit); color: #eff4f0; max-width: 560px; }
.ssk__texte .bouton { justify-self: start; }
@media (min-width: 64rem) { .ssk__grille { grid-template-columns: minmax(0, 1.44fr) minmax(0, 1fr); gap: 28px; } .ssk__image { aspect-ratio: auto; height: 300px; object-position: 50% 24%; } }

/* ---------- Accueil : activités (panneau 28 % + deux tableaux 1,37) ---------- */
.activites { padding-top: 40px; padding-bottom: 20px; }
.activites__grille { display: grid; gap: var(--gouttiere); }
.activites__intro { display: grid; gap: 12px; align-content: start; padding: clamp(28px, 4vw, 58px) 28px 34px; background: var(--vert-fonce); color: #fff; }
.activites__intro .etiquette, .activites__intro .titre { margin: 0; }
.activites__intro .texte--petit { color: #ddd; }
.activite { position: relative; display: grid; min-height: 300px; overflow: hidden; background: var(--nuit); color: #fff; }
.activite__image { position: absolute; inset: 0; height: 100%; aspect-ratio: auto; }
.activite__image--ikemba { object-position: 68% 52%; }
.activite__image--muntu { object-position: 50% 42%; }
.activite::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.82) 0%, rgba(0,0,0,.2) 42%, rgba(0,0,0,0) 65%); }
.activite__texte { position: relative; z-index: 1; align-self: end; display: grid; gap: 4px; padding: 18px 20px; }
.activite__texte .texte--petit { color: #eee; }
@media (min-width: 48rem) { .activites__grille { grid-template-columns: 1fr 1fr; } .activites__intro { grid-column: 1 / -1; } }
@media (min-width: 64rem) { .activites__grille { grid-template-columns: minmax(0, 0.78fr) minmax(0, 1fr) minmax(0, 1fr); } .activites__intro { grid-column: auto; } .activite { min-height: 360px; } }

/* ---------- Accueil : résumés + boutique (deux cartes de 304 px) ---------- */
.diptyque { padding-bottom: 30px; }
.diptyque__grille { display: grid; gap: 14px; }
.resumes { display: grid; background: #090909; color: #fff; }
.resumes__image { min-height: 260px; }
.resumes__texte { display: grid; gap: 8px; align-content: center; padding: 18px 22px; }
.resumes__texte .titre { margin: 0; }
.resumes__marque { display: flex; align-items: center; gap: 10px; margin: 0; }
.resumes__logo { width: 40px; height: 40px; border-radius: 50%; }
.resumes__texte .texte--petit { color: rgba(248,242,232,.85); }
.resumes__texte .bouton { justify-self: start; }
.atouts { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font: 800 var(--t-info)/1.3 var(--f-texte); color: #f1e7d6; }
.atouts li::before { content: "▪ "; color: var(--or); }
.boutique { display: grid; background: var(--ivoire); border: 1px solid #e3d6c1; }
.boutique__texte { display: grid; gap: 8px; align-content: center; padding: 18px 22px; }
.boutique__texte .etiquette, .boutique__texte .titre { margin: 0; }
.boutique__texte .texte--petit { color: #62594e; }
.boutique__collection { padding: 8px 0; border-block: 1px solid #e3d6c1; font-size: var(--t-texte-petit); }
.boutique__collection strong { display: block; font: 800 var(--t-etiquette)/1.3 var(--f-texte); letter-spacing: 0.12em; text-transform: uppercase; color: var(--bronze); }
.boutique__note { font-size: var(--t-texte-petit); font-style: italic; color: #62594e; padding-left: 10px; border-left: 2px solid var(--or); }
.boutique__texte .bouton { justify-self: start; }
.boutique__image { min-height: 240px; padding: 16px; }
@media (min-width: 40rem) {
  .resumes { grid-template-columns: minmax(0, 0.82fr) minmax(0, 1fr); }
  .boutique { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .boutique__image { min-height: 0; }
}
@media (min-width: 64rem) { .diptyque__grille { grid-template-columns: 1fr 1fr; } }

/* ---------- Accueil : à propos ---------- */
.apropos { padding-block: 30px; }
.apropos__grille { display: grid; gap: 28px; align-items: end; }
.apropos__image { width: 100%; max-width: 280px; aspect-ratio: 430 / 440; object-position: 50% 100%; justify-self: center; }
@media (min-width: 56rem) { .apropos__image { max-width: 430px; } }
.apropos__texte .titre { margin: 4px 0 14px; max-width: 820px; }
.apropos__chapeau { font: 700 1.1875rem/1.5 var(--f-texte); color: #342f29; max-width: 920px; margin-bottom: 18px; }
.apropos__colonnes { display: grid; gap: 14px 24px; max-width: 920px; }
.apropos__colonnes .texte { font-size: var(--t-texte-petit); color: #3c362f; }
.encadre { padding: 14px 18px; background: rgba(255,255,255,.45); border-left: 3px solid var(--or); font-family: var(--f-titre); font-size: 1.0625rem; line-height: 1.5; color: var(--encre); }
.apropos__conclusion { margin-top: 18px; max-width: 920px; font-weight: 700; }
@media (min-width: 56rem) { .apropos__grille { grid-template-columns: minmax(0, 430px) minmax(0, 1fr); gap: 40px; } .apropos__colonnes { grid-template-columns: 1fr 1fr; } }

/* ---------- Accueil : actualités (bande bordeaux, 152 px) ---------- */
.actualites { padding-block: 28px; background: var(--bordeaux); color: #fff; }
.actualites__ligne { display: grid; gap: 18px; align-items: center; }
.actualites .titre { margin-bottom: 8px; max-width: 760px; }
.actualites .texte { font-size: 1.0625rem; color: rgba(255,255,255,.92); max-width: 790px; }
.actualites .bouton--contour { border-color: #fff; }
@media (min-width: 64rem) { .actualites__ligne { grid-template-columns: 1fr auto; gap: 40px; } }

/* ---------- Pied de page (bande verte, 148 px) ---------- */
.pied { background: var(--vert-pied); color: #fff; padding-bottom: env(safe-area-inset-bottom, 0px); }
.pied__grille { display: grid; gap: 24px; padding-block: 26px 18px; }
.pied__marque { display: flex; align-items: center; gap: 18px; }
.pied__logo { width: 60px; height: 60px; object-fit: contain; flex: none; }
.pied__contact { font-size: 1rem; line-height: 1.6; color: rgba(255,255,255,.88); }
.pied__contact a { text-decoration: none; }
.pied__contact a:hover, .pied__liens a:hover { color: var(--or); text-decoration: underline; }
.reseaux { list-style: none; margin: 0 0 8px; padding: 0; display: flex; gap: 10px; }
.reseaux a { display: grid; place-items: center; width: 44px; height: 44px; }
.reseaux img { width: 38px; height: 38px; object-fit: cover; }
.pied__mention { font-size: var(--t-info); color: rgba(255,255,255,.8); }
.pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 24px; padding-block: 8px 12px; border-top: 1px solid rgba(255,255,255,.14); font-size: var(--t-info); color: rgba(255,255,255,.82); }
.pied__liens { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 20px; }
.pied__liens a { display: inline-block; padding: 6px 0; font-size: var(--t-menu); font-weight: 700; text-decoration: none; color: #fff; }
@media (min-width: 48rem) { .pied__grille { grid-template-columns: 1.6fr 1fr 1fr; align-items: center; } }


/* ==========================================================================
   Pages intérieures V3 (article sans page canonique, archives, rubriques, pages, 404).
   Lectures, fiches, Contact, Pierre de Rosette, Ikemba et les pages statiques canoniques
   sont servis par leurs gabarits d'origine (sans cette feuille de style).
   ========================================================================== */

/* ---------- Composants communs ---------- */
.titre--cartel { font-size: clamp(2.4rem, 1.3rem + 3.3vw, 4.125rem); line-height: 0.95; }   /* 66 px (Contact) */
.titre--bandeau { font-size: clamp(2rem, 1.3rem + 2.2vw, 3rem); line-height: 0.95; text-transform: uppercase; color: #fff; max-width: 9em; }
.titre--fiche { font-size: clamp(2.4rem, 1.6rem + 2.4vw, 3.4rem); line-height: 1; }
.titre--article { font-size: clamp(2.2rem, 1.4rem + 2.4vw, 3.25rem); line-height: 1; }
.titre--intertitre { font-size: clamp(1.6rem, 1.2rem + 1vw, 1.95rem); line-height: 1.1; }
.titre--encadre { font-size: 1.375rem; line-height: 1.15; }
.titre--selection { font-size: 1.375rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vert); }
.titre--livre { font-size: 1.5rem; line-height: 1.02; overflow-wrap: break-word; hyphens: auto; }
.chapeau { font: 400 1.1875rem/1.6 var(--f-texte); color: #4a433b; max-width: 640px; }
.chapeau--serif { font: 400 1.25rem/1.45 var(--f-titre); color: #3b3631; }

.cartel { padding-block: clamp(40px, 5vw, 76px) clamp(28px, 3vw, 46px); border-bottom: 1px solid #e2cfa5; }
.cartel .cadre { display: grid; gap: 14px; }
.cartel .etiquette { margin: 0; }
.cartel__titre { font-size: clamp(2.4rem, 1.3rem + 3.3vw, 4.125rem); line-height: 0.95; max-width: 16ch; }
.cartel__chapeau { font: 400 1.1875rem/1.6 var(--f-texte); color: #4a433b; max-width: 640px; }

.carte { background: #fffaf2; border: 1px solid #ddd3c5; padding: clamp(20px, 2.4vw, 34px); }
.panneau-vert { display: grid; gap: 12px; padding: 24px; background: var(--vert-fonce); color: #fff; border-top: 3px solid var(--or); font-size: var(--t-texte-petit); line-height: 1.55; }
.panneau-vert .etiquette, .panneau-vert .titre { margin: 0; }
.question { margin-block: 28px; padding: 22px 24px; background: #1a1916; color: #fff; border-top: 3px solid var(--or); }
.question .etiquette { margin: 0 0 10px; color: #a7a093; }
.question__texte { font: 400 1.3rem/1.35 var(--f-titre); }
.encadre-rouge { display: grid; gap: 10px; padding: 20px 22px; background: rgba(255,255,255,.35); border-left: 3px solid var(--bordeaux); font-size: var(--t-texte-petit); }
.bouton--contour-bordeaux { border-color: var(--bordeaux); color: var(--bordeaux); background: transparent; text-transform: none; letter-spacing: 0; font-size: var(--t-info); }
.bouton--contour-bordeaux:hover { background: var(--bordeaux); color: #fff; }
.fil, .fil-bande { font-size: var(--t-info); color: var(--gris); }
.fil { display: flex; flex-wrap: wrap; gap: 6px; }
.fil a { color: inherit; }
.fil-bande { padding-block: 9px; background: #1a1916; color: #e9e3d8; }
.fil-bande a { color: #e9e3d8; }
.points { list-style: none; margin: 14px 0 0; padding: 0; }
.points li { position: relative; padding: 10px 0 10px 16px; border-top: 1px solid #e3d8c7; font-size: var(--t-texte-petit); line-height: 1.5; }
.points li::before { content: ""; position: absolute; left: 0; top: 16px; width: 6px; height: 6px; border-radius: 50%; background: var(--bordeaux); }
.lien-retour { display: inline-block; margin-top: 8px; }

/* ---------- Géométrie de lecture (article, page, contact, archives) ---------- */
.cadre--lecture { max-width: calc(1180px + 2 * var(--marge)); }
.lecture { display: grid; gap: 28px; }
.lecture__principal { min-width: 0; max-width: 760px; }
.article__entete { padding-block: clamp(32px, 4vw, 56px) 26px; border-bottom: 1px solid #e2cfa5; }
.article__tete { display: grid; gap: 12px; }
.article__tete .etiquette { margin: 0; }
.article__chapeau { font: 400 1.25rem/1.45 var(--f-titre); color: #3b3631; }
.lecture__cartel { display: grid; gap: 0; align-self: end; padding: 16px 20px; background: #fffaf2; border: 1px solid #ddd3c5; border-top: 3px solid var(--or); }
.lecture__cartel > div { display: grid; grid-template-columns: 7.5rem 1fr; gap: 10px; padding-block: 8px; border-bottom: 1px solid #ece2d2; font-size: var(--t-texte-petit); }
.lecture__cartel > div:last-child { border-bottom: 0; }
.lecture__cartel dt { font: 800 var(--t-etiquette)/1.6 var(--f-texte); letter-spacing: 0.12em; text-transform: uppercase; color: var(--bronze); }
.lecture__cartel dd { margin: 0; }
.lecture__aparte { display: grid; gap: 10px; align-content: start; padding: 20px; background: #fffaf2; border: 1px solid #ddd3c5; border-top: 3px solid var(--or); }
.lecture__aparte .etiquette { margin: 0; }
.voisins { list-style: none; margin: 0; padding: 0; display: grid; }
.voisins li { display: grid; gap: 2px; padding: 10px 0; border-bottom: 1px solid #ece2d2; }
.voisins a { font: 700 1.1875rem/1.25 var(--f-titre); text-decoration: none; }
.voisins a:hover { color: var(--bordeaux); text-decoration: underline; }
.voisins span, .voisins__vide { font-size: var(--t-info); color: var(--gris); }
.article__corps, .page__corps { padding-block: 30px 34px; font-size: var(--t-texte); line-height: 1.7; color: #2f2a24; }
.article__corps > * + *, .page__corps > * + * { margin-top: 1em; }
.article__corps h2, .page__corps h2 { margin-top: 1.8em; font-size: clamp(1.5rem, 1.2rem + 0.8vw, 1.85rem); line-height: 1.12; color: var(--encre); }
.article__corps h3, .page__corps h3 { margin-top: 1.5em; font-size: 1.3rem; }
.article__corps a, .page__corps a { color: var(--bordeaux); overflow-wrap: anywhere; } /* GM03 : adresses longues (sources) sans débordement */
.article__corps blockquote { padding: 18px 22px; background: #1a1916; color: #fff; border-top: 3px solid var(--or); }
.article__corps blockquote p { font: 400 1.25rem/1.4 var(--f-titre); }
.article__corps blockquote cite { display: block; margin-top: 10px; font: normal var(--t-info)/1.5 var(--f-texte); color: #d6d0c6; }
.phrase-cle { padding: 16px 20px; background: rgba(255,255,255,.4); border-left: 3px solid var(--or); font: 700 1.2rem/1.4 var(--f-titre); color: var(--encre); }
.sources { padding-left: 1.2rem; font-size: 1rem; line-height: 1.6; color: var(--gris); }
.sources li + li { margin-top: 0.4rem; }
.article__pied { padding-bottom: 40px; }
.suite { display: grid; gap: 10px; }
.suite__lien { display: grid; gap: 4px; padding: 16px 18px; background: #fffaf2; border: 1px solid #ddd3c5; text-decoration: none; }
.suite__lien .etiquette { margin: 0; }
.suite__titre { font: 700 1.25rem/1.25 var(--f-titre); }
.suite__lien:hover { border-color: var(--bordeaux); }
.page__corps { max-width: 760px; }
@media (min-width: 48rem) { .suite { grid-template-columns: 1fr 1fr; } .suite__lien--suivant { text-align: right; } }
@media (min-width: 64rem) {
  .lecture { grid-template-columns: minmax(0, 760px) minmax(260px, 340px); column-gap: clamp(36px, 5vw, 80px); justify-content: space-between; }
  .lecture__aparte { position: sticky; top: calc(var(--entete-h) + 24px); margin-top: 30px; }
}

/* ---------- Listes d'articles, archives, pagination ---------- */
.liste, .archives { padding-block: 30px 44px; }
.fiches { display: grid; gap: 12px; }
.fiche { position: relative; display: grid; grid-template-columns: 2.5rem 1fr; gap: 12px; padding: 18px 20px; background: #fffaf2; border: 1px solid #ddd3c5; }
.fiche:hover { border-color: var(--bordeaux); }
.fiche__numero { font: 700 1.25rem/1 var(--f-titre); color: var(--bronze); }
.fiche__corps { display: grid; gap: 6px; align-content: start; }
.fiche__corps .etiquette { margin: 0; }
.fiche__titre { font-size: 1.45rem; line-height: 1.1; }
.fiche__titre a { text-decoration: none; }
.fiche__titre a:hover { color: var(--bordeaux); text-decoration: underline; }
.fiche__chapeau { font-size: var(--t-texte-petit); line-height: 1.5; color: #4a433b; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fiche__date { font-size: var(--t-info); color: var(--gris); }
@media (min-width: 64rem) { .fiches--liste { grid-template-columns: 1fr 1fr; } }
.vide { font: italic 400 1.15rem/1.5 var(--f-titre); color: var(--gris); margin-bottom: 1rem; }
.archives { display: grid; gap: 22px; }
.archives__formulaire { max-width: 900px; }
.archives__rubriques ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.archives__rubriques a { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 40px; padding: 6px 12px; background: #fffaf2; border: 1px solid #ddd3c5; text-decoration: none; font-size: 1rem; }
.archives__rubriques a:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
.compte { color: var(--gris); }
.archives__titre { font-size: 1.3rem; margin-bottom: 12px; }
@media (min-width: 64rem) {
  .archives { grid-template-columns: 260px minmax(0, 1fr); column-gap: 36px; align-items: start; }
  .archives__formulaire { grid-column: 1 / -1; }
  .archives__rubriques ul { flex-direction: column; }
  .archives__rubriques a { width: 100%; }
}
.pagination ul { list-style: none; padding: 0; margin: 20px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.pagination a, .pagination span { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 0.75rem; border: 1px solid #ddd3c5; text-decoration: none; }
.pagination .current { background: var(--encre); color: var(--papier); border-color: var(--encre); }

/* ---------- Impression ---------- */
/* ---------- GM03 : émissions administrables (accueil, page Émissions, fiche d'émission) ---------- */
.vignette figcaption { display: grid; gap: 2px; }
.vignette__infos { font: 400 var(--t-info)/1.4 var(--f-texte); color: #d8cfbf; }
.vignette__infos::first-letter { text-transform: uppercase; }
.emission__description { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
.emissions { display: grid; gap: 28px; padding-block: 30px 48px; }
.emissions__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.emission { display: grid; gap: 16px; padding: 16px; background: #fffaf2; border: 1px solid #ddd3c5; }
.emission__affiche { display: block; }
.emission__corps { display: grid; gap: 10px; align-content: start; }
.emission__corps .etiquette { margin: 0; }
.emission__titre { font-size: clamp(1.45rem, 1.2rem + 0.8vw, 1.9rem); line-height: 1.12; }
.emission__titre a { text-decoration: none; }
.emission__titre a:hover { color: var(--bordeaux); text-decoration: underline; }
.emission__invite { font: 700 var(--t-texte-petit)/1.4 var(--f-texte); color: var(--encre); }
.emission__description { font-size: var(--t-texte-petit); line-height: 1.55; color: #4a433b; -webkit-line-clamp: 4; }
.emissions .bouton--contour, .emission-fiche .bouton--contour { color: var(--encre); border-color: var(--bronze); }
.emissions .bouton--contour:hover, .emission-fiche .bouton--contour:hover { color: #16130e; }
.emissions__resumes { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.emission-fiche .actions { margin-top: 28px; }
@media (min-width: 48rem) { .emission { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 24px; padding: 20px; } }

@media print { .entete, .pied, .recherche, .actualites, .evitement, .bascule { display: none !important; } body.v3 { background: #fff; } }
