/*
 * Habillage — application de la charte Seyra v2 (12 août 2026) et de sa
 * maquette (apercu-site.html). Deux régimes de surface (charte §2) :
 * - ÉDITORIALES (accueil, pied de page) : palette des douze teintes, matières
 *   (grain data-URI, stries), dégradés admis, apparitions au défilement ;
 * - DE TRAVAIL (fiches, tableaux, formulaires) : neutres et signaux, fond
 *   constant, aucune matière, aucune animation sur un signal.
 * Jetons recopiés de la maquette — noms STABLES (charte §6). L'accent est le
 * vert #205F55 (arbitrage du 12 août) ; la teinte chaude de signature est le
 * Faded Jade, réservée au verrou de marque (sceau + qualifiant), à rien d'autre.
 * Plus Jakarta Sans en pile de repli tant que les woff2 ne sont pas déposés
 * sur le domaine — aucune ressource externe, jamais.
 */

/* ===== 1a. Jetons Seyra — identité. Constants. ===== */
:root {
  --seyra-accent:        #205F55;
  --seyra-accent-fonce:  #17493F;
  --seyra-accent-fond:   #E6F0EC;
  --seyra-chaud:         #457472;   /* Faded Jade — signature, jamais cliquable */
  --seyra-chaud-clair:   #90B7AE;   /* Summer Green — la même, sur fond sombre */
  --sceau-fond:  #111A1B;
  --sceau-filet: #457472;
  --sceau-trait: #90B7AE;
  --seyra-titrage: "Plus Jakarta Sans", "Avenir Next", Avenir, "Segoe UI Variable Display", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ===== 1b. Jetons de distribution — seul point de surcharge ===== */
:root {
  --marque-accent:        var(--seyra-accent);
  --marque-accent-fonce:  var(--seyra-accent-fonce);
  --marque-accent-fond:   var(--seyra-accent-fond);
  --marque-chaud:         var(--seyra-chaud);
  --marque-titrage:       var(--seyra-titrage);
}

/* ===== 2. Jetons d'interface — ne changent jamais ===== */
:root {
  --n0:#FFFFFF; --n50:#F7F8FA; --n100:#EEF0F4; --n200:#DDE1E8; --n300:#C2C8D2;
  --n400:#98A0AE; --n500:#666D7C; --n600:#4A515E; --n700:#2E3440; --n800:#1B2028; --n900:#0E1116;

  --sig-attention:#7A5C0E; --sig-attention-fond:#FDF8EC; --sig-attention-filet:#E3D3A4;
  --sig-escalade:#6D3B72; --sig-escalade-fond:#F6F0F7; --sig-escalade-filet:#DDCADF;
  --sig-reserve:#A3231D; --sig-reserve-fond:#FDF1F0; --sig-reserve-filet:#E9C6C3;

  --police-ui: "Plus Jakarta Sans", "Avenir Next", Avenir, "Segoe UI Variable Text", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --t-titre1:26px; --t-titre2:19px; --t-titre3:15px; --t-corps:16px;
  --t-sec:14.5px; --t-mention:12.5px; --interligne:1.55;

  --e1:4px; --e2:8px; --e3:12px; --e4:16px; --e5:24px; --e6:32px; --e7:48px; --e8:64px; --e9:104px;
  --rayon:3px; --rayon-bloc:10px; --rayon-bouton:9px; --rayon-carte:16px;
  --rayon-champ:11px; --rayon-pilule:999px;
  --filet-trait:1px solid var(--n200);
  --ombre-1:0 1px 2px rgba(17,26,27,.05), 0 1px 3px rgba(17,26,27,.07);
  --ombre-2:0 4px 14px rgba(17,26,27,.09), 0 1px 3px rgba(17,26,27,.05);
  --ombre-3:0 16px 40px rgba(17,26,27,.14), 0 3px 10px rgba(17,26,27,.06);
  --duree-court:150ms; --duree-moyen:280ms; --duree-long:600ms;
  --courbe:cubic-bezier(.22,.61,.36,1);

  /* Palette éditoriale — douze teintes, liste close (charte §13) */
  --ed-noir:#06191A; --ed-bunker:#111A1B; --ed-tepapa:#1D3D3D; --ed-msu:#154741;
  --ed-spectra:#37514E; --ed-aqua:#408174; --ed-jade:#457472; --ed-juniper:#739991;
  --ed-summer:#90B7AE; --ed-silver:#C4C7B5; --ed-grullo:#A1997F; --ed-brume:#E4E6DA;

  --verre-2:rgba(255,255,255,.13); --verre-3:rgba(255,255,255,.20);
  --verre-bord:rgba(255,255,255,.26); --verre-bord-f:rgba(255,255,255,.42);
}

/* ===== 3. Base ===== */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; font-family:var(--police-ui); font-size:var(--t-corps);
  line-height:var(--interligne); color:var(--n700); background:var(--n0);
  font-feature-settings:"tnum" 1, "lnum" 1;
}
h1, h2 { font-family:var(--marque-titrage); color:var(--n800); line-height:1.25;
  margin:0 0 var(--e2); letter-spacing:-.015em; }
h1 { font-size:var(--t-titre1); font-weight:700; margin-top:var(--e5); }
h2 { font-size:var(--t-titre2); font-weight:700; margin-top:var(--e6);
  padding-bottom:var(--e2); border-bottom:var(--filet-trait); }
h3 { font-size:var(--t-titre3); font-weight:600; color:var(--n800); margin:var(--e4) 0 var(--e2); }
h1 small, h2 small { font-family:var(--police-ui); font-weight:400;
  font-size:var(--t-sec); color:var(--n500); letter-spacing:0; }
p { margin:0 0 var(--e3); }
a { color:var(--marque-accent); text-decoration:underline; text-underline-offset:2px; }
a:hover { color:var(--marque-accent-fonce); }
:focus-visible { outline:2px solid var(--marque-accent); outline-offset:2px; }
::selection { background:var(--marque-accent-fond); }

a.evitement { position:absolute; left:-9999px; top:0; z-index:99;
  background:var(--n800); color:#fff; padding:var(--e2) var(--e4);
  border-radius:0 0 var(--rayon-bouton) 0; text-decoration:none; }
a.evitement:focus { left:0; }

/* ===== 4. Le verrou de marque et l'en-tête collant ===== */
header.site {
  position:sticky; top:0; z-index:60;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(10px); -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color var(--duree-moyen), box-shadow var(--duree-moyen);
}
header.site.pose { border-bottom-color:var(--n200); box-shadow:0 1px 0 rgba(17,26,27,.03); }
header.site .interieur { max-width:1080px; margin:0 auto; padding:var(--e4) var(--e5);
  display:flex; align-items:center; gap:var(--e5); flex-wrap:wrap;
  transition:padding var(--duree-moyen) var(--courbe); }
header.site.pose .interieur { padding-top:10px; padding-bottom:10px; }

a.marque { display:flex; align-items:center; gap:11px; text-decoration:none; }
.sceau { width:36px; height:36px; flex:none; border-radius:10px; overflow:hidden;
  display:block; transition:transform var(--duree-moyen) var(--courbe); }
.sceau svg { display:block; width:100%; height:100%; }
.sceau .fl { transition:transform var(--duree-moyen) var(--courbe); }
a.marque:hover .sceau { transform:rotate(-4deg) scale(1.06); }
a.marque:hover .sceau .fl-h { transform:translateX(2px); }
a.marque:hover .sceau .fl-b { transform:translateX(-2px); }
a.marque .mot { font-family:var(--seyra-titrage); font-weight:700; font-size:20px;
  color:var(--n800); letter-spacing:-.01em; }
/* L'annotation VAT : une mention minuscule en exposant — jamais un suffixe
   collé (la charte proscrit « SeyraTVA »), jamais la teinte chaude, qui
   appartient au verrou. */
sup.annotation-vat { font:600 9px/1 var(--police-ui); letter-spacing:.14em;
  color:var(--n400); margin-left:3px; vertical-align:super; text-transform:uppercase; }
footer.site sup.annotation-vat { color:#8FA8A2; }
/* Le qualifiant nomme le module ; il porte la teinte chaude de SIGNATURE,
   jamais l'accent — un libellé statique ne s'empare pas de ce qui signale
   le cliquable. */
.qualifiant { align-self:center; margin-left:9px; padding:5px 0 5px 9px;
  border-left:2px solid var(--marque-chaud); font:700 13px/1 var(--police-ui);
  letter-spacing:.17em; text-transform:uppercase; color:var(--marque-chaud); }
.qualifiant.sans-marque { margin-left:0; padding-left:0; border-left:0; }

header.site nav { margin-left:auto; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
header.site nav a { position:relative; padding:8px 13px; border:1px solid var(--n200); border-radius:var(--rayon-bouton);
  background:rgba(255,255,255,.82); box-shadow:var(--ombre-1); color:var(--n700); text-decoration:none;
  font-size:var(--t-sec); font-weight:600;
  transition:color var(--duree-court), background var(--duree-court), border-color var(--duree-court),
    box-shadow var(--duree-court), transform var(--duree-court); }
header.site nav a::after { content:""; position:absolute; left:13px; right:13px; bottom:3px;
  height:2px; background:var(--marque-accent); transform:scaleX(0); transform-origin:left;
  transition:transform var(--duree-moyen) var(--courbe); }
header.site nav a:hover { color:var(--marque-accent-fonce); background:var(--marque-accent-fond);
  border-color:var(--marque-chaud); box-shadow:var(--ombre-2); transform:translateY(-1px); }
header.site nav a:hover::after { transform:scaleX(1); }

main { max-width:880px; margin:0 auto; padding:0 var(--e5) var(--e8); }
main.pleine-largeur { max-width:none; padding:0; }
.sous-titre { color:var(--n500); font-size:var(--t-sec); margin:0 0 var(--e5); }
.enveloppe { max-width:1080px; margin:0 auto; padding:0 var(--e5); }
.etroit { max-width:820px; margin:0 auto; padding:0 var(--e5); }

nav.ariane { font-size:var(--t-mention); color:var(--n500); padding:var(--e3) 0 0; }
nav.ariane a { color:var(--n600); text-decoration:none; }
nav.ariane a:hover { color:var(--marque-accent); text-decoration:underline; }
nav.ariane [aria-current] { color:var(--n800); font-weight:600; }

/* ===== 5. Apparitions au défilement — surfaces ÉDITORIALES seulement ===== */
.rev { opacity:0; transform:translateY(22px);
  transition:opacity var(--duree-long) var(--courbe), transform var(--duree-long) var(--courbe); }
.rev.vu { opacity:1; transform:none; }
.rev-d1 { transition-delay:80ms; } .rev-d2 { transition-delay:160ms; }
.rev-d3 { transition-delay:240ms; } .rev-d4 { transition-delay:320ms; }

/* ===== 6. Matières — éditoriales seulement, aucune requête réseau ===== */
.grain { position:relative; isolation:isolate; }
.grain::after { content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  opacity:.30; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.5'/></svg>"); }
.grain.doux::after { opacity:.16; }
.grain > .enveloppe, .grain > .etroit { position:relative; z-index:2; }
.brosse-sombre { background-image:repeating-linear-gradient(102deg,
  rgba(255,255,255,.055) 0 1px, rgba(255,255,255,0) 1px 5px); }

/* ===== 7. Le héros — surface éditoriale sombre, recherche centrée ===== */
.heros { position:relative; overflow:hidden; background:var(--ed-tepapa); padding:var(--e7) 0; }
.heros-fond { position:absolute; inset:-10% 0 auto 0; height:130%; width:100%; pointer-events:none; }
.heros .enveloppe { position:relative; z-index:2; }
.heros-centre { max-width:800px; margin:0 auto; text-align:center; }
.heros h1 { font-size:clamp(30px,4.6vw,46px); color:#fff; margin-top:12px; border:none; }
.heros .chapo { font-size:18px; color:var(--ed-summer); max-width:33em;
  margin:var(--e3) auto 0; }
.sur-titre { font-size:var(--t-mention); text-transform:uppercase; letter-spacing:.09em;
  font-weight:600; color:var(--ed-spectra); }
.heros .sur-titre { color:var(--ed-summer); }
.filet-marque { display:inline-flex; align-items:center; gap:5px; margin-right:11px; vertical-align:middle; }
.filet-marque i { display:block; height:4px; border-radius:2px; }
.filet-marque i:first-child { width:22px; background:var(--ed-summer); }
.filet-marque i:last-child { width:9px; background:var(--ed-juniper); }

.heros form.recherche { position:relative; margin:var(--e5) auto 0; max-width:520px; display:block; }
.heros form.recherche input[type="search"] { width:100%; font:400 18px/1.4 var(--police-ui);
  color:var(--n800); padding:18px 54px 18px 20px; border:1.5px solid var(--n300);
  border-radius:var(--rayon-champ); background:var(--n0); box-shadow:var(--ombre-2);
  transition:border-color var(--duree-moyen), box-shadow var(--duree-moyen), transform var(--duree-moyen); }
.heros form.recherche input::placeholder { color:var(--n400); }
.heros form.recherche input:focus { outline:none; border-color:var(--marque-accent);
  box-shadow:var(--ombre-3), 0 0 0 4px rgba(32,95,85,.18); transform:translateY(-2px); }
.heros .loupe { position:absolute; right:18px; top:50%; transform:translateY(-50%);
  color:var(--n400); pointer-events:none; }
.heros form.recherche button { position:absolute; left:-9999px; }
#zone-resultats { position:relative; z-index:3; max-width:520px; margin:var(--e3) auto 0; text-align:left; }
#zone-resultats:not(:empty) { background:var(--n0); border:1px solid var(--n200);
  border-radius:var(--rayon-champ); box-shadow:var(--ombre-3); padding:var(--e4) var(--e5); }
#zone-resultats ul.resultats { padding-left:var(--e4); margin:var(--e2) 0; }
.resultat-direct { font-size:var(--t-corps); margin:0; }
.resultat-direct small { color:var(--n500); display:block; margin-top:2px; }

.puces, .exemples-saisie { display:flex; flex-wrap:wrap; gap:9px; margin-top:var(--e4);
  justify-content:center; color:var(--ed-summer); font-size:var(--t-sec); align-items:center; }
button.puce { background:var(--verre-2); border:1.5px solid var(--verre-bord); color:#E3EFEB;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-radius:var(--rayon-pilule); padding:8px 16px; font:500 var(--t-sec)/1 var(--police-ui);
  cursor:pointer; transition:transform var(--duree-court), background var(--duree-court),
  border-color var(--duree-court); }
button.puce:hover { transform:translateY(-2px); background:var(--verre-3);
  border-color:var(--verre-bord-f); color:#fff; }
.reperes { list-style:none; display:flex; flex-wrap:wrap; justify-content:center;
  gap:var(--e2) var(--e5); margin:var(--e6) 0 0; padding:0; }
.reperes li { display:flex; align-items:center; gap:8px; font-size:var(--t-mention);
  letter-spacing:.05em; text-transform:uppercase; font-weight:600; color:var(--ed-summer); }
.reperes li::before { content:""; width:6px; height:6px; border-radius:50%;
  background:var(--ed-juniper); flex:none; }

/* ===== 8. Bande de chiffres — éditoriale sombre, compteurs admis ===== */
.chiffres { background:var(--ed-bunker); color:#fff; padding:var(--e7) 0;
  border-top:1px solid rgba(255,255,255,.07); border-bottom:1px solid rgba(255,255,255,.07); }
.chiffres .grille { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:var(--e5); text-align:center; }
.chiffres .val { font-family:var(--seyra-titrage); font-size:44px; font-weight:700;
  line-height:1; color:#fff; letter-spacing:-.02em; }
.chiffres .lib { font-size:var(--t-mention); text-transform:uppercase; letter-spacing:.08em;
  color:var(--ed-juniper); margin-top:var(--e2); }

/* ===== 9. Cartes ===== */
.section-ed { padding:var(--e7) 0; }
.entete-section { max-width:640px; margin-bottom:var(--e6); }
.entete-section h2 { border:none; }
.cartes { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:var(--e5); }
.carte { background:var(--n0); border:1px solid var(--n200); border-radius:var(--rayon-carte);
  padding:var(--e5); box-shadow:var(--ombre-1);
  transition:transform var(--duree-moyen) var(--courbe), box-shadow var(--duree-moyen) var(--courbe); }
.carte:hover { transform:translateY(-5px); box-shadow:var(--ombre-3); }
.carte .vignette { width:88px; height:88px; border-radius:14px; display:grid;
  place-items:center; margin-bottom:var(--e4); }
.carte h3 { margin-bottom:var(--e2); }
.carte p { font-size:var(--t-sec); color:var(--n600); margin:0; }

/* ===== 10. Le manifeste — bande de vert profond (dégradé admis, éditorial) ===== */
.manifeste { background:linear-gradient(168deg, var(--ed-msu) 0%, #0E332F 58%, var(--ed-noir) 100%);
  padding:var(--e8) 0; position:relative; overflow:hidden; color:#fff; }
.manifeste::before { content:""; position:absolute; right:-6%; top:-40%; width:520px; height:520px;
  border-radius:50%; background:var(--ed-aqua); opacity:.24; pointer-events:none; }
.manifeste .etroit { position:relative; z-index:2; }
.manifeste h2 { color:#fff; border:none; }
.manifeste p { color:var(--ed-summer); font-size:var(--t-corps); }
.manifeste a { color:#fff; }

/* ===== 11. Surfaces de travail — neutres, fond constant, rien d'autre ===== */
table.correspondances { width:100%; border-collapse:collapse; margin:var(--e3) 0 var(--e5);
  font-size:var(--t-sec); }
table.correspondances caption { text-align:left; color:var(--n500);
  font-size:var(--t-mention); padding-bottom:var(--e2); }
table.correspondances th { text-align:left; color:var(--n500); font-weight:600;
  font-size:var(--t-mention); text-transform:uppercase; letter-spacing:.04em;
  border-bottom:2px solid var(--n200); padding:var(--e2) var(--e3) var(--e2) 0; }
table.correspondances td { border-bottom:var(--filet-trait);
  padding:var(--e2) var(--e3) var(--e2) 0; vertical-align:top; color:var(--n700); }
table.correspondances tbody tr { transition:background-color var(--duree-court); }
table.correspondances tbody tr:hover { background:var(--n50); }
tr.estompee td, tr.estompee td a { color:var(--n400); }
tr.surlignee td { background:var(--marque-accent-fond); }

.bloc { border:var(--filet-trait); border-left:4px solid var(--n300);
  border-radius:var(--rayon-bloc); background:var(--n50);
  padding:var(--e3) var(--e4); margin:var(--e3) 0; font-size:var(--t-sec); }
.bloc p:first-child { margin-top:0; }
.bloc p:last-child { margin-bottom:0; }

.bloc.precision-cabinet { background:#f5f8f6; border-color:#c5d6d1;
  border-left-color:var(--marque-accent); margin:var(--e3) 0; }
.bloc.precision-cabinet strong { color:var(--marque-accent-fonce); }
.sources-precision { font-size:var(--t-mention); }
.sources-precision .lien-legifrance { margin-left:var(--e1); }
.avertissement-precision { color:var(--n500); font-size:var(--t-mention); }
.extrait-source-precision { margin:var(--e3) 0; padding:var(--e2) var(--e3);
  border-left:2px solid var(--marque-accent); color:var(--n700); background:var(--n0); }
.extrait-source-precision p { margin:var(--e1) 0; }
.etiquette-extrait { color:var(--n500); font-size:var(--t-mention); font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; }

.bloc.alerte { background:var(--sig-attention-fond); border-color:var(--sig-attention-filet);
  border-left-color:var(--sig-attention); }
.bloc.alerte strong { color:var(--sig-attention); font-size:var(--t-mention);
  text-transform:uppercase; letter-spacing:.06em; display:flex; align-items:center;
  gap:9px; margin-bottom:var(--e1); }
.bloc.alerte strong::before { content:"!"; display:grid; place-items:center;
  width:17px; height:17px; border:1.5px solid var(--sig-attention); border-radius:50%;
  font-size:11px; flex:none; }

.bloc.manque { background:var(--sig-reserve-fond); border-color:var(--sig-reserve-filet);
  border-left-color:var(--sig-reserve); }
.bloc.manque::before { content:"Texte non fourni — à rédiger par le cabinet";
  display:block; font-weight:700; font-size:var(--t-mention); letter-spacing:.06em;
  text-transform:uppercase; color:var(--sig-reserve); margin-bottom:var(--e1); }

/* ===== 12. Recherche hors héros, formulaires, boutons ===== */
form.recherche { display:flex; gap:var(--e2); margin:var(--e4) 0; flex-wrap:wrap; }
form.recherche input[type="search"] { flex:1 1 16rem; font:400 var(--t-corps)/1.4 var(--police-ui);
  padding:11px var(--e4); border:1.5px solid var(--n300); border-radius:var(--rayon-champ);
  color:var(--n800); background:var(--n0);
  transition:border-color var(--duree-moyen), box-shadow var(--duree-moyen); }
form.recherche input[type="search"]:focus { outline:none; border-color:var(--marque-accent);
  box-shadow:0 0 0 4px rgba(32,95,85,.14); }
form.recherche button, .bouton { display:inline-flex; align-items:center; justify-content:center;
  gap:9px; font:600 var(--t-sec)/1 var(--police-ui); padding:13px 22px;
  border-radius:var(--rayon-bouton); border:1.5px solid var(--marque-accent);
  background:var(--marque-accent); color:#fff; box-shadow:var(--ombre-1); cursor:pointer;
  text-decoration:none;
  transition:background var(--duree-court), box-shadow var(--duree-court), transform var(--duree-court); }
form.recherche button:hover, .bouton:hover { background:var(--marque-accent-fonce);
  box-shadow:var(--ombre-2); transform:translateY(-1px); }
form.recherche button:active, .bouton:active { transform:translateY(1px) scale(.985); }

ul.resultats { padding-left:var(--e4); }
ul.colonnes { columns:3 14rem; padding-left:var(--e4); margin:var(--e3) 0 var(--e5);
  font-size:var(--t-sec); }
ul.colonnes li { padding:1px 0; }
.filtre-conteneur label { font-size:var(--t-sec); color:var(--n600); display:block;
  margin-bottom:var(--e1); }
#filtre-annonce { margin-top:var(--e2); }
.resultats-texte h2 { font-size:var(--t-titre3); border-bottom:none; margin:var(--e3) 0 var(--e1); }
.resultats-texte ul { list-style:none; padding:0; margin:var(--e3) 0 var(--e5); }
.resultats-texte li { border-bottom:var(--filet-trait); padding:var(--e3) 0; }
.resultats-texte a { font-weight:600; }
.resultats-texte .extrait { color:var(--n600); font-size:var(--t-sec); margin:var(--e1) 0 0; }

/* ===== 13. Les rédactions des articles ===== */
section.texte-article { border:var(--filet-trait); border-radius:var(--rayon-carte);
  background:var(--n50); padding:var(--e2) var(--e5) var(--e4); margin:var(--e5) 0;
  box-shadow:var(--ombre-1); }
section.texte-article > h2 { border-bottom:none; margin-top:var(--e3); }
.corps-texte { line-height:1.65; color:var(--n700); }
.corps-texte p { margin:var(--e2) 0; }
.source-texte { color:var(--n500); font-size:var(--t-mention);
  border-top:var(--filet-trait); padding-top:var(--e2); margin-top:var(--e3); }

details.renvoi { margin:var(--e1) 0 var(--e3) var(--e5); font-size:var(--t-sec); }
details.renvoi summary { cursor:pointer; display:inline-flex; align-items:baseline; gap:8px;
  color:var(--marque-accent); font-weight:600; text-decoration:underline;
  text-underline-offset:3px; list-style:none; transition:color var(--duree-court); }
details.renvoi summary::-webkit-details-marker { display:none; }
details.renvoi summary:hover { color:var(--marque-accent-fonce); }
details.renvoi summary small { color:var(--n500); font-weight:400; text-decoration:none; }
details.renvoi.non-repris summary { color:var(--sig-attention); }
details.renvoi[open] { border:var(--filet-trait); border-left:3px solid var(--marque-accent);
  border-radius:var(--rayon-bloc); background:var(--n0);
  padding:var(--e3) var(--e4); margin-left:var(--e5); }
details.renvoi.non-repris[open] { border-left-color:var(--sig-attention); }

details.redaction-liee, details.nota { border:var(--filet-trait); border-radius:var(--rayon-bloc);
  padding:var(--e2) var(--e4); margin:var(--e2) 0; font-size:var(--t-sec); }
details.redaction-liee summary, details.nota summary { cursor:pointer; font-weight:600;
  color:var(--n800); }
details.redaction-liee[open], details.nota[open] { background:var(--n50); }

/* Le passage cité : fond accent clair, filet, et sa légende écrite */
p.alinea-vise { background:var(--marque-accent-fond); border-left:3px solid var(--marque-accent);
  padding:var(--e1) var(--e3); margin-left:calc(-1 * var(--e3));
  border-radius:0 var(--rayon-bloc) var(--rayon-bloc) 0; }
mark.legende-surlignage { background:var(--marque-accent-fond);
  border-left:3px solid var(--marque-accent); padding:1px 6px; color:var(--n700); }
.note-surlignage { color:var(--n600); font-size:var(--t-mention);
  border-left:3px solid var(--n300); padding-left:var(--e3); }

/* ===== 14. Le compte ===== */
.deux-colonnes { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:var(--e5); }
fieldset.choix-profil { border:var(--filet-trait); border-radius:var(--rayon-bloc);
  padding:var(--e3) var(--e4); margin:0 0 var(--e4); display:flex; gap:var(--e4);
  flex-wrap:wrap; }
fieldset.choix-profil legend { font-size:var(--t-mention); font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; color:var(--n600); padding:0 6px; }
fieldset.choix-profil label { display:flex; align-items:center; gap:7px;
  font-size:var(--t-sec); cursor:pointer; }
#zone-compte input:not([type="radio"]) { width:100%; max-width:22rem; }
#zone-compte input[type="email"], #zone-compte input[type="password"] {
  width:100%; max-width:22rem; font:400 15px/1.4 var(--police-ui); padding:11px 14px;
  border:1.5px solid var(--n300); border-radius:var(--rayon-champ);
  transition:border-color var(--duree-moyen), box-shadow var(--duree-moyen); }
#zone-compte input:focus { outline:none; border-color:var(--marque-accent);
  box-shadow:0 0 0 4px rgba(32,95,85,.14); }
#zone-compte button, #boutons-compte button { font:600 var(--t-sec)/1 var(--police-ui);
  padding:10px var(--e4); border-radius:var(--rayon-bouton); cursor:pointer;
  background:var(--n0); color:var(--marque-accent); border:1.5px solid var(--n300);
  margin-right:var(--e2); box-shadow:var(--ombre-1);
  transition:border-color var(--duree-court), background var(--duree-court), transform var(--duree-court); }
#zone-compte button:hover, #boutons-compte button:hover { border-color:var(--marque-accent);
  background:var(--marque-accent-fond); transform:translateY(-1px); }
#zone-compte form button[type="submit"] { background:var(--marque-accent); color:#fff;
  border-color:var(--marque-accent); }
#zone-compte form button[type="submit"]:hover { background:var(--marque-accent-fonce); }
/* Le rouge réservé : suppression du compte, et champs en erreur */
#zone-compte button.danger { color:var(--sig-reserve); border-color:var(--sig-reserve);
  background:transparent; }
#zone-compte button.danger:hover { background:var(--sig-reserve); color:#fff; }
.champ-err input { border-color:var(--sig-reserve) !important; background:#FDF9F9; }
.champ-err .msg { display:flex; align-items:center; gap:7px; margin-top:7px;
  font-size:var(--t-mention); font-weight:600; color:var(--sig-reserve); }
#boutons-compte { margin:var(--e3) 0; font-size:var(--t-sec); }
#boutons-compte-retour { color:var(--n500); font-size:var(--t-mention); }

/* ===== 15. Dialogues — invitation et consentement ===== */
dialog.invite-compte, dialog.consentement { max-width:34rem; width:calc(100% - 2rem);
  border:var(--filet-trait); border-radius:var(--rayon-carte); padding:var(--e5) var(--e6);
  color:var(--n700); font-family:var(--police-ui); font-size:var(--t-sec);
  box-shadow:var(--ombre-3); }
dialog::backdrop { background:rgba(6,25,26,.55); }
dialog h2 { border-bottom:none; margin-top:0; font-size:var(--t-titre2); }
.marque-banniere { display:flex; align-items:center; justify-content:center; gap:11px;
  padding:var(--e2) 0 var(--e4); }
.marque-banniere .logo-bloc, .logo-bloc { width:34px; height:34px; flex:none;
  border-radius:9px; background:var(--sceau-fond); position:relative; display:inline-block; }
.logo-bloc::before { content:"⇄"; position:absolute; inset:0; display:grid;
  place-items:center; color:var(--sceau-trait); font-size:17px; line-height:1; }
.logo-bloc::after { content:""; position:absolute; left:0; bottom:0; width:100%; height:5px;
  background:var(--sceau-filet); }
.marque-banniere .logo-texte, .logo-texte { font-family:var(--seyra-titrage);
  font-weight:700; font-size:20px; color:var(--n800); }
dialog.invite-compte ul { padding-left:var(--e4); font-size:var(--t-sec); color:var(--n600); }
dialog.invite-compte li { padding:2px 0; }
dialog .boutons { display:flex; gap:var(--e3); flex-wrap:wrap; align-items:center; margin-bottom:0; }
dialog.invite-compte a.principal { background:var(--marque-accent); color:#fff;
  text-decoration:none; padding:13px var(--e4); border-radius:var(--rayon-bouton);
  font:600 var(--t-sec)/1 var(--police-ui); box-shadow:var(--ombre-1); }
dialog.invite-compte a.principal:hover { background:var(--marque-accent-fonce); }
dialog.invite-compte button, dialog.consentement .boutons button {
  background:var(--n0); border:1.5px solid var(--n800); border-radius:var(--rayon-bouton);
  padding:12px var(--e4); cursor:pointer; color:var(--n800);
  font:600 var(--t-sec)/1 var(--police-ui);
  transition:background var(--duree-court); }
dialog.invite-compte button:hover, dialog.consentement .boutons button:hover { background:var(--n100); }
dialog.consentement .boutons button { flex:1 1 12rem; }
dialog.consentement .boutons button.principal { background:var(--marque-accent); color:#fff;
  border-color:var(--marque-accent); }
dialog.consentement .boutons button.principal:hover { background:var(--marque-accent-fonce); }
dialog.consentement .choix-actuel { color:var(--n600); }
dialog.consentement .en-savoir-plus { font-weight:600; }

/* ===== 16. Le pied — surface éditoriale sombre ===== */
footer.site { background:var(--ed-noir); color:#B7CFC9; padding:var(--e8) 0 var(--e5);
  margin-top:var(--e8); font-size:var(--t-sec); }
footer.site .interieur { max-width:1080px; margin:0 auto; padding:0 var(--e5); }
footer.site .grille { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--e6); }
footer.site .marque-pied { display:flex; align-items:center; gap:11px; margin-bottom:var(--e3); }
footer.site .marque-pied .mot { font-family:var(--seyra-titrage); font-weight:700;
  font-size:20px; color:#fff; }
footer.site .marque-pied .qualifiant { border-left-color:var(--seyra-chaud-clair);
  color:var(--seyra-chaud-clair); }
footer.site h3 { color:#fff; font-size:var(--t-mention); text-transform:uppercase;
  letter-spacing:.08em; margin-bottom:var(--e3); }
footer.site a { color:#B7CFC9; text-decoration:none; display:block; padding:4px 0;
  font-size:var(--t-sec); transition:color var(--duree-court), transform var(--duree-court); }
footer.site a:hover { color:#fff; transform:translateX(3px); }
footer.site .bas { border-top:1px solid rgba(255,255,255,.14); margin-top:var(--e6);
  padding-top:var(--e4); font-size:var(--t-mention); color:#8FA8A2;
  display:flex; justify-content:space-between; gap:var(--e4); flex-wrap:wrap; }
footer.site .bas strong { color:#fff; font-weight:600; }
button.lien-discret { background:none; border:none; padding:4px 0; cursor:pointer;
  color:#B7CFC9; font:inherit; font-size:var(--t-sec); text-decoration:none; display:block;
  text-align:left; transition:color var(--duree-court), transform var(--duree-court); }
button.lien-discret:hover { color:#fff; transform:translateX(3px); }

/* ===== 17. Mobile, impression, réduction des animations ===== */
@media (max-width:900px) { footer.site .grille { grid-template-columns:1fr; gap:var(--e5); } }
@media (max-width:640px) {
  :root { --t-titre1:22px; }
  main, header.site .interieur, footer.site .interieur { padding-left:var(--e4); padding-right:var(--e4); }
  table.correspondances, table.correspondances thead, table.correspondances tbody,
  table.correspondances tr, table.correspondances th, table.correspondances td { display:block; }
  table.correspondances thead { position:absolute; left:-9999px; }
  table.correspondances tr { border-bottom:var(--filet-trait); padding:var(--e2) 0; }
  table.correspondances td { border:none; padding:2px 0; }
  table.correspondances td::before { content:attr(data-entete) " : ";
    color:var(--n500); font-size:var(--t-mention); }
  td[data-entete=""]::before { content:none; }
}
@media (prefers-reduced-motion:reduce) {
  * { transition:none !important; animation:none !important; }
  html { scroll-behavior:auto; }
  .rev { opacity:1 !important; transform:none !important; }
}
@media print {
  header.site nav, #boutons-compte, dialog, .heros-fond, footer.site .grille { display:none; }
  .heros, .chiffres, .manifeste, footer.site { background:none !important; color:var(--n800); }
  .heros h1, .chiffres .val { color:var(--n900); }
}
