@charset "utf-8";
:root {
  color-scheme: light;
  --f-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua",
             "URW Palladio L", P052, Georgia, Cambria, "Times New Roman",
             Times, serif;
  --f-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI Variable",
            "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Cantarell,
            Arial, sans-serif;
  --f-mono: ui-monospace, SFMono-Regular, "SF Mono", "Cascadia Mono",
            "Segoe UI Mono", Consolas, "Liberation Mono", Menlo,
            "DejaVu Sans Mono", monospace;
  --t-xs:   0.75rem;                                      
  --t-sm:   0.8125rem;                                    
  --t-md:   0.9375rem;                                    
  
  --t-champ: 1rem;                                        
  --t-base: clamp(1.0625rem, 1.0rem + 0.28vw, 1.1875rem); 
  
  --t-lg:   clamp(1.1875rem, 1.05rem + 0.60vw, 1.4375rem);
  --t-xl:   clamp(1.4375rem, 1.20rem + 1.00vw, 1.875rem);
  --t-2xl:  clamp(1.75rem, 1.35rem + 1.80vw, 2.75rem);
  --t-3xl:  clamp(2.125rem, 1.55rem + 2.40vw, 3.25rem);
  --t-4xl:  clamp(2.5rem, 1.60rem + 3.80vw, 4.75rem);

  --i-serre: 1.25;   
  --i-normal: 1.5;   
  --i-lecture: 1.65; 
  --mesure: 34em;
  --mesure-marge: 16rem;   
  
  --panneau-l: clamp(20rem, 32vw, 30rem);
  --e-1: 0.25rem;  --e-2: 0.5rem;   --e-3: 0.75rem;  --e-4: 1rem;
  --e-5: 1.5rem;   --e-6: 2rem;     --e-7: 2.5rem;   --e-8: 3rem;
  --e-9: 4rem;     --e-10: 5rem;    --e-11: 6rem;    --e-12: 8rem;
  --r-1: 2px; --r-2: 4px; --r-3: 8px; --r-plein: 999px;
  --o-1: 0 1px 2px rgb(19 36 60 / 0.10), 0 1px 3px rgb(19 36 60 / 0.08);
  --o-2: 0 2px 4px rgb(19 36 60 / 0.13), 0 6px 16px rgb(19 36 60 / 0.10);
  --o-3: 0 4px 8px rgb(19 36 60 / 0.15), 0 16px 40px rgb(19 36 60 / 0.16);
  --d-court: 120ms;
  --d-moyen: 220ms;
  --courbe: cubic-bezier(0.2, 0, 0.2, 1);

  --z-fond: 0;
  --z-canevas: 10;
  --z-panneau: 20;
  --z-entete: 30;
  --z-evitement: 100;
  --c-parchemin:       #F4EBD7;
  --c-parchemin-ombre: #EADDBF;
  --c-navy:            #13243C;
  --c-navy-profond:    #0B1726;
  --c-navy-clair:      #22405F;
  --c-or:              #B08A33;
  --c-or-fonce:        #8A6A1E;
  --surface-creuse:        #D9C079;
  --c-pierre:          #CDBE9B;
  --c-pierre-ombre:    #B6A57E;
  --c-pierre-clair:    #E4D8BB;
  --c-encre:           #1B2B40;
  --c-blanc-casse:     #FBF6EA;
  --c-huib:  var(--c-navy-clair);
                        --c-gira:  #6E5A1C;   --c-gfea:  #8A6A1E;
  --c-bfm:   #1E5E59;   --c-gsf:   #2C6E45;   --c-court: #5A2E7A;
  --c-ipda:  #2C3E54;
  --fam-externalites:  #EE4A2B;  
  --fam-architecture:  #9153BE;  
  --fam-transmission:  #086B63;  
  --fam-apports:       #6B4A00;  
  --fam-qualification: #4F3C00;  
  --fam-argument:      #13243C;  
  --r-institution: #178BCD;  
  --r-article:     #0C6CA1;  
  --r-juridique:   #4646AB;  
  --r-donnees:     #00464E;  
  --n-objet:       var(--fam-argument);
  --n-section:     var(--fam-argument);
  --n-externalite: var(--fam-externalites);
  --n-secteur:     var(--fam-externalites);
  --n-fonction:    var(--fam-architecture);
  --n-institution: var(--fam-architecture);
  --n-classe:      var(--fam-qualification);
  --n-regle-arret: var(--fam-qualification);
  --n-innovation:  var(--fam-apports);
  --n-famille:     var(--fam-apports);
  --n-mecanisme:   var(--fam-transmission);
  --n-reference:   var(--r-article);
  --h-vigueur:  #097A34;  
  --h-conteste: #B2800D;  
  --h-abroge:   #A20D0D;  
  --fond:           #F7F4ED;                   
  --surface:        #FFFDF8;                   
  --surface-creuse: var(--c-parchemin-ombre);  
  --canevas:        var(--c-blanc-casse);      
  --canevas-grille: var(--c-pierre-clair);     

  --texte:         #13243C;  
  --texte-doux:    #50596B;  
  --texte-inverse: var(--c-blanc-casse);  

  --lien:        #16456F;  
  --lien-visite: #6B2E6E;  
  --or-texte:      #7A5A18;  
  --accent-mouvement: #6B2E4F;  

  --bordure:       #DCCFB2;  
  --bordure-forte: var(--c-or-fonce);  

  --arete:       #6E6449;  
  --arete-forte: #2C3E54;  
  --n-contour: var(--canevas);
  --lisere-ref: var(--c-or-fonce);  
  --focus:       #13243C;  
  --focus-doubl: var(--c-blanc-casse);
  --focus-e: 3px;          

  --selection-fond: #DCC9A0;  
  --nuit-fond:           #0B1726;
  --nuit-surface:        #13243C;
  --nuit-surface-creuse: #1C3352;
  --nuit-canevas:        #13243C;
  --nuit-canevas-grille: #1C3352;

  --nuit-texte:         #EFE6D2;  
  --nuit-texte-doux:    #A3B0C2;  
  --nuit-texte-inverse: #0B1726;  
  --nuit-lien:          #8CBEEC;  
  --nuit-lien-visite:   #CBA8DA;  
  --nuit-bordure:       #4A6A96;  
  --nuit-bordure-forte: #7C8A9C;  
  --nuit-arete:         #7C8698;  
  --nuit-arete-forte:   #C3CDDA;  
  --nuit-lisere-ref:    #D9C079;  
  --nuit-focus:         #F4EBD7;  
  --nuit-focus-doubl:   #0B1726;
  --nuit-selection:     #2E4A6E;  
  --nuit-fam-externalites:  #E15D45;  
  --nuit-fam-architecture:  #BB89DF;  
  --nuit-fam-transmission:  #71C0B9;  
  --nuit-fam-apports:       #DEC488;  
  --nuit-fam-qualification: #E9DAAA;  
  --nuit-fam-argument:      #F4EBD7;  
  --nuit-r-juridique:   #8181D2;  
  --nuit-r-article:     #5EABD5;  
  --nuit-r-institution: #6CC3F4;  
  --nuit-r-donnees:     #A3DAE1;  

  --nuit-h-vigueur:  #5CB67E;  
  --nuit-h-conteste: #DCB458;  
  --nuit-h-abroge:   #E26B6B;  
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;

    --fam-externalites:  var(--nuit-fam-externalites);
    --fam-architecture:  var(--nuit-fam-architecture);
    --fam-transmission:  var(--nuit-fam-transmission);
    --fam-apports:       var(--nuit-fam-apports);
    --fam-qualification: var(--nuit-fam-qualification);
    --fam-argument:      var(--nuit-fam-argument);

    --r-institution: var(--nuit-r-institution);
    --r-article:     var(--nuit-r-article);
    --r-juridique:   var(--nuit-r-juridique);
    --r-donnees:     var(--nuit-r-donnees);

    --h-vigueur:  var(--nuit-h-vigueur);
    --h-conteste: var(--nuit-h-conteste);
    --h-abroge:   var(--nuit-h-abroge);

    --fond:           var(--nuit-fond);
    --surface:        var(--nuit-surface);
    --surface-creuse: var(--nuit-surface-creuse);
    --canevas:        var(--nuit-canevas);
    --canevas-grille: var(--nuit-canevas-grille);

    --texte:         var(--nuit-texte);
    --texte-doux:    var(--nuit-texte-doux);
    --texte-inverse: var(--nuit-texte-inverse);

    --lien:        var(--nuit-lien);
    --lien-visite: var(--nuit-lien-visite);

    --bordure:       var(--nuit-bordure);
    --bordure-forte: var(--nuit-bordure-forte);
    
    --or-texte:      #D9C079;   
    --accent-mouvement: #D293B0;

    --arete:       var(--nuit-arete);
    --arete-forte: var(--nuit-arete-forte);

    --lisere-ref:  var(--nuit-lisere-ref);

    --focus:       var(--nuit-focus);
    --focus-doubl: var(--nuit-focus-doubl);

    --selection-fond: var(--nuit-selection);
    --o-1: 0 1px 2px rgb(0 0 0 / 0.40);
    --o-2: 0 2px 6px rgb(0 0 0 / 0.45);
    --o-3: 0 6px 24px rgb(0 0 0 / 0.55);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;

  --fam-externalites:  var(--nuit-fam-externalites);
  --fam-architecture:  var(--nuit-fam-architecture);
  --fam-transmission:  var(--nuit-fam-transmission);
  --fam-apports:       var(--nuit-fam-apports);
  --fam-qualification: var(--nuit-fam-qualification);
  --fam-argument:      var(--nuit-fam-argument);

  --r-institution: var(--nuit-r-institution);
  --r-article:     var(--nuit-r-article);
  --r-juridique:   var(--nuit-r-juridique);
  --r-donnees:     var(--nuit-r-donnees);

  --h-vigueur:  var(--nuit-h-vigueur);
  --h-conteste: var(--nuit-h-conteste);
  --h-abroge:   var(--nuit-h-abroge);

  --fond:           var(--nuit-fond);
  --surface:        var(--nuit-surface);
  --surface-creuse: var(--nuit-surface-creuse);
  --canevas:        var(--nuit-canevas);
  --canevas-grille: var(--nuit-canevas-grille);

  --texte:         var(--nuit-texte);
  --texte-doux:    var(--nuit-texte-doux);
  --texte-inverse: var(--nuit-texte-inverse);

  --lien:        var(--nuit-lien);
  --lien-visite: var(--nuit-lien-visite);

  --bordure:       var(--nuit-bordure);
  --bordure-forte: var(--nuit-bordure-forte);
  --or-texte:      #D9C079;   
  --accent-mouvement: #D293B0;

  --arete:       var(--nuit-arete);
  --arete-forte: var(--nuit-arete-forte);

  --lisere-ref:  var(--nuit-lisere-ref);

  --focus:       var(--nuit-focus);
  --focus-doubl: var(--nuit-focus-doubl);

  --selection-fond: var(--nuit-selection);

  --o-1: 0 1px 2px rgb(0 0 0 / 0.40);
  --o-2: 0 2px 6px rgb(0 0 0 / 0.45);
  --o-3: 0 6px 24px rgb(0 0 0 / 0.55);
}
:root[data-theme="light"] {
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-block-start: var(--e-9);
  hanging-punctuation: first last;
}
* {
  scrollbar-width: thin;
  scrollbar-color: var(--c-pierre-ombre) transparent;
}

body {
  margin: 0;
  background: var(--fond);
  color: var(--texte);
  font-family: var(--f-sans);
  font-size: var(--t-md);
  line-height: var(--i-normal);
  font-synthesis-weight: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  min-block-size: 100svb;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--f-serif);
  font-weight: 600;
  line-height: var(--i-serre);
  text-wrap: balance;
  margin: 0 0 var(--e-3);
  
  letter-spacing: var(--ls-titre);
}

h1 { font-size: var(--t-3xl); font-weight: 700; margin-block-end: var(--e-4); }
h2 { font-size: var(--t-2xl); margin-block-start: var(--e-8); }
h3 { font-size: var(--t-xl);  margin-block-start: var(--e-6); }
h4 { font-size: var(--t-lg);  margin-block-start: var(--e-5); }
h5, h6 {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  font-weight: 700;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--texte-doux);
  margin-block-start: var(--e-5);
}

p, ul, ol, dl, blockquote, figure, table, pre { margin: 0 0 var(--e-4); }
p, li, dd, dt, figcaption, blockquote, .texte, .contenu { overflow-wrap: anywhere; }
details:not([open]) > *:not(summary) { display: none; }

a {
  color: var(--lien);
  text-decoration-line: underline;
  text-decoration-thickness: 0.06em;
  text-underline-offset: 0.16em;
  text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
  transition: text-decoration-color var(--d-court) var(--courbe),
              color var(--d-court) var(--courbe);
}
a:hover { text-decoration-color: currentColor; }
a:visited { color: var(--lien-visite); }

strong, b { font-weight: 600; }
em, i, cite { font-style: italic; }
small { font-size: var(--t-sm); }
abbr[title] { text-decoration: underline dotted; cursor: help; }

code, kbd, samp, pre, .math, var {
  font-family: var(--f-mono);
  font-size: 0.92em;
  font-variant-ligatures: none;
}
var { font-style: italic; }
pre {
  overflow-x: auto;
  padding: var(--e-4);
  background: var(--surface-creuse);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2);
  line-height: 1.5;
}

blockquote {
  padding-inline-start: var(--e-4);
  border-inline-start: 2px solid var(--bordure-forte);
  color: var(--texte-doux);
  font-family: var(--f-serif);
}

hr {
  border: 0;
  border-block-start: 1px solid var(--bordure);
  margin-block: var(--e-7);
}

img, svg, video { max-inline-size: 100%; height: auto; }

::selection { background: var(--selection-fond); color: var(--texte); }
:focus-visible {
  outline: var(--focus-e) solid var(--focus);
  outline-offset: 2px;
  border-radius: var(--r-1);
}
:focus:not(:focus-visible) { outline: none; }
.evitement {
  position: absolute;
  inset-block-start: var(--e-2);
  inset-inline-start: var(--e-2);
  z-index: var(--z-evitement);
  padding: var(--e-2) var(--e-4);
  background: var(--surface);
  color: var(--texte);
  border: 2px solid var(--focus);
  border-radius: var(--r-2);
  transform: translateY(-200%);
  transition: transform var(--d-court) var(--courbe);
}
.evitement:focus { transform: translateY(0); }

.bandeau,
body > header {
  position: sticky;
  inset-block-start: 0;
  z-index: var(--z-entete);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-3) var(--e-5);
  padding: var(--e-3) var(--e-4);
  background: color-mix(in srgb, var(--fond) 92%, transparent);
  backdrop-filter: blur(8px);
  border-block-end: 1px solid var(--bordure);
}

.bandeau__titre {
  font-family: var(--f-serif);
  font-size: var(--t-md);
  font-weight: 600;
  letter-spacing: var(--ls-ui);
  margin: 0;
}
.bandeau__titre a { color: inherit; text-decoration: none; }

.bandeau nav ul,
body > header nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-1) var(--e-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.bandeau nav a,
body > header nav a {
  display: inline-block;
  padding-block: 0.5rem;
  text-decoration-thickness: 0.05em;
}

.bandeau nav a[aria-current],
body > header nav a[aria-current] {
  color: var(--texte);
  text-decoration: none;
  font-weight: 700;
  box-shadow: inset 0 -3px 0 var(--bordure-forte);
}
.bandeau__langue-item { margin-inline-start: auto; }

.bandeau__langue {
  text-transform: uppercase;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-caps);
}
@media (max-width: 43.75rem) {
  .bandeau__langue-item { margin-inline-start: 0; }
}

main { display: block; }

.contenu {
  inline-size: min(100% - 2 * var(--e-4), var(--page, 72rem));
  margin-inline: auto;
  padding-block: var(--e-7);
}
.contenu p, .contenu li, .contenu dd, .contenu blockquote { max-inline-size: var(--mesure); }
.liste-index {
  columns: 22rem auto;
  column-gap: var(--e-7);
  max-inline-size: none;
  list-style: none;
  margin: var(--e-5) 0 0;
  padding: 0;
}
.liste-index > li {
  break-inside: avoid;
  max-inline-size: none;
  margin-block-end: var(--e-3);
  padding-block-end: var(--e-3);
  border-block-end: 1px solid var(--bordure);
}
.liste-index > li:last-child { border-block-end: 0; }
.liste-index a { text-decoration-thickness: 0.05em; }

.liste-index__meta {
  display: block;
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  margin-block-start: 0.2em;
}
.contenu .pleine-largeur,
.contenu .chiffres li, .contenu .grille-liens li,
.contenu table p, .contenu table li,
.contenu .porte p { max-inline-size: none; }
.contenu > section { margin-block-start: var(--e-11); }
.contenu > section:first-child { margin-block-start: 0; }
.contenu > section > h2 { margin-block-start: 0; }

body > footer,
.pied {
  margin-block-start: var(--e-10);
  padding: var(--e-7) var(--e-4);
  border-block-start: 1px solid var(--bordure);
  color: var(--texte-doux);
  font-size: var(--t-sm);
}
.pied__grille {
  inline-size: min(100% - 2 * var(--e-4), var(--page, 72rem));
  margin-inline: auto;
  display: grid;
  gap: var(--e-5);
}
@media (min-width: 48rem) {
  
  .pied__grille { grid-template-columns: 1.4fr 1fr 1fr; gap: var(--e-6); }
}
.pied__titre {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--texte-doux);
  margin: 0 0 var(--e-2);
}
.pied__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-2); }
.pied__liste a { color: inherit; }
.pied__mention { margin-block-end: 0; }
.accueil__intro {
  inline-size: min(100% - 2 * var(--e-4), var(--page, 72rem));
  margin-inline: auto;
  padding-block: var(--e-9) var(--e-7);
  text-align: start;
}
.accueil__intro > * { max-inline-size: 48rem; }

.accueil__intro h1 {
  font-size: var(--t-4xl);
  letter-spacing: var(--ls-titre);
  max-inline-size: 17ch;
}

.surtitre {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: var(--ls-caps-large);
  text-transform: uppercase;
  color: var(--texte-doux);
  margin: 0 0 var(--e-3);
}
.accueil__intro .chapeau {
  font-family: var(--f-serif);
  font-size: var(--t-lg);
  line-height: var(--i-lecture);
  color: var(--texte-doux);
  max-inline-size: var(--mesure);
}

.portes {
  inline-size: min(100% - 2 * var(--e-4), var(--page, 72rem));
  margin-inline: auto;
  display: grid;
  gap: var(--e-4);
  padding-block-end: var(--e-9);
}
@media (min-width: 56rem) {
  .portes { grid-template-columns: repeat(3, 1fr); gap: var(--e-5); }
}

.porte {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--e-3);
  padding: var(--e-5);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-block-start: 3px solid var(--porte-teinte, var(--bordure-forte));
  border-radius: var(--r-3);
  box-shadow: var(--o-1);
  transition: box-shadow var(--d-moyen) var(--courbe),
              transform var(--d-moyen) var(--courbe),
              border-color var(--d-moyen) var(--courbe);
}
.porte h2 {
  margin: 0;
  font-size: var(--t-xl);
}

.porte h2 a { color: inherit; text-decoration: none; }
.porte h2 a::after { content: ""; position: absolute; inset: 0; }
.porte p { margin: 0; color: var(--texte-doux); }
.porte__meta {
  margin-block-start: auto;
  padding-block-start: var(--e-3);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  font-variant-numeric: tabular-nums;
  border-block-start: 1px solid var(--bordure);
}
.porte:hover { box-shadow: var(--o-2); transform: translateY(-2px); }
.porte:focus-within {
  outline: var(--focus-e) solid var(--focus);
  outline-offset: 2px;
}
.porte:focus-within h2 a:focus-visible { outline: none; }
.porte--lire     { --porte-teinte: var(--fam-argument); }
.porte--explorer { --porte-teinte: var(--fam-transmission); }
.porte--verifier { --porte-teinte: var(--r-article); }
.texte {
  inline-size: min(100% - 2 * var(--e-4), var(--page-large, 78rem));
  margin-inline: auto;
  padding-block: var(--e-8);
  font-family: var(--f-serif);
  font-size: var(--t-base);
  line-height: var(--i-lecture);
}
.texte > * { max-inline-size: var(--mesure); }
.texte__reperes {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  line-height: var(--i-normal);
  color: var(--texte-doux);
  padding-block-end: var(--e-3);
  border-block-end: 1px solid var(--bordure);
  margin-block-end: var(--e-6);
}
.texte__reperes a { color: inherit; }
.texte h1, .texte h2, .texte h3 { max-inline-size: 30em; }
.texte p { margin-block: 0 var(--e-4); text-align: start; }
.texte p + p { text-indent: 0; }

.texte ul, .texte ol { padding-inline-start: var(--e-5); }
.texte li + li { margin-block-start: var(--e-2); }

.texte figure { max-inline-size: none; margin-block: var(--e-6); }
.texte figcaption {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  max-inline-size: var(--mesure);
  margin-block-start: var(--e-2);
}
.texte .numero {
  font-family: var(--f-mono);
  font-size: 0.8em;
  font-variant-numeric: tabular-nums;
  color: var(--texte-doux);
  margin-inline-end: 0.6em;
}
.note-appel {
  position: relative;
  display: inline-block;
  font-family: var(--f-sans);
  font-size: 0.72em;
  font-feature-settings: "sups" 1;
  vertical-align: super;
  line-height: 0;
  color: var(--lien);
  cursor: pointer;
  text-decoration: none;
}
.note-appel::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  inline-size: 24px;
  block-size: 24px;
  transform: translate(-50%, -50%);
}
.note-bascule {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  clip-path: inset(50%);
  white-space: nowrap;
  overflow: hidden;
}

.note-marge,
.texte aside.note {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  line-height: var(--i-normal);
  color: var(--texte-doux);
}
@media (max-width: 67.999rem) {
  .note-marge,
  .texte aside.note {
    display: block;
    max-inline-size: var(--mesure);
    margin-block: var(--e-3);
    padding-inline-start: var(--e-3);
    border-inline-start: 2px solid var(--bordure-forte);
  }
  
  .note-bascule:not(:checked) + .note-marge { display: none; }
}
@media (min-width: 68rem) {
  .texte {
    display: grid;
    grid-template-columns:
      minmax(0, var(--mesure))
      var(--e-6)
      minmax(0, var(--mesure-marge));
    justify-content: center;
  }
  
  .texte:not(:has(> .sommaire)):not(:has(.note-marge)):not(:has(aside.note)) {
    grid-template-columns: minmax(0, var(--mesure));
  }
  .texte > * { grid-column: 1; }
  .texte > figure.pleine-largeur,
  .texte > .pleine-largeur { grid-column: 1 / -1; max-inline-size: none; }
  
  .texte:has(> .sommaire) > figure.pleine-largeur,
  .texte:has(> .sommaire) > .pleine-largeur:not(.sommaire) { grid-column: 1 / 3; }
  .texte > .sommaire {
    grid-column: 3;
    grid-row: 1 / span 500;
    align-self: start;
    position: sticky;
    
    inset-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-4));
    max-block-size: calc(100svb - var(--decalage-sommaire, 0px) - var(--e-8));
    overflow-y: auto;
    max-inline-size: var(--mesure-marge);
    margin-block: 0;
    padding: var(--e-4);
    background: var(--fond);
    border: 0;
    border-inline-start: 2px solid var(--bordure);
  }

  .note-marge,
  .texte aside.note {
    grid-column: 3;
    max-inline-size: var(--mesure-marge);
    margin-block: 0 var(--e-4);
    
    align-self: start;
    border-inline-start: 0;
    padding-inline-start: 0;
  }
  .note-bascule { display: none; }
  .note-appel { cursor: default; color: var(--texte-doux); }
}
.sommaire {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
}
.sommaire ol { list-style: none; margin: 0; padding: 0; }
.sommaire li { margin-block: var(--e-1); }
.sommaire a[aria-current="true"] { font-weight: 600; color: var(--texte); }
.page-diagramme {
  display: grid;
  grid-template-rows: auto auto 1fr;
  gap: var(--e-3);
  padding: var(--e-3) var(--e-4) var(--e-6);
  min-block-size: calc(100svb - 4rem);
}

.page-diagramme > * { min-inline-size: 0; }

.diagramme__scene {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--e-4);
  align-items: start;
  min-inline-size: 0;
}

@media (min-width: 62rem) {
  
  .diagramme__scene {
    grid-template-columns: minmax(0, 1fr) 0;
    transition: grid-template-columns var(--d-moyen) var(--courbe);
  }
  .diagramme__scene:has(#panneau:not([hidden])) {
    grid-template-columns: minmax(0, 1fr) var(--panneau-l);
  }
}

#diagramme, #diagramme-circuit {
  margin: 0;
  min-inline-size: 0;
  display: flex;
  flex-direction: column;
  gap: var(--e-2);
}

#canevas {
  inline-size: 100%;
  block-size: clamp(20rem, 62svb, 46rem);
  display: block;
  background: var(--canevas);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
  
  touch-action: pan-y;
  overflow: hidden;
}

#canevas:focus-visible { outline-offset: -1px; }

.canevas__grille line,
.canevas__grille path { stroke: var(--canevas-grille); stroke-width: 1; }
.diagramme__outils {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-2);
}
#noeuds, #aretes { pointer-events: auto; }

.n {
  --c: var(--fam-argument);   
  cursor: pointer;
  transition: opacity var(--d-court) var(--courbe);
}
.n .n__cible {
  fill: transparent;
  stroke: none;
  pointer-events: all;
}
.n .forme,
.n > circle:not(.n__cible),
.n > rect:not(.n__cible),
.n > ellipse, .n > path, .n > polygon {
  fill: var(--c);
  stroke: var(--n-contour);
  stroke-width: 1.5;
  transition: fill var(--d-court) var(--courbe),
              stroke var(--d-court) var(--courbe),
              stroke-width var(--d-court) var(--courbe);
}

.n .etiquette,
.n > text {
  font-family: var(--f-sans);
  
  font-size: calc(11px / var(--zoom-texte, 1));
  fill: var(--texte);             
  paint-order: stroke fill;
  stroke: var(--canevas);         
  stroke-width: 3;
  stroke-linejoin: round;
  pointer-events: none;
  user-select: none;
  dominant-baseline: middle;
}
.n--objet, .n--section                { --c: var(--fam-argument); }
.n--externalite, .n--secteur          { --c: var(--fam-externalites); }
.n--fonction, .n--institution         { --c: var(--fam-architecture); }
.n[data-id="inst-human-impacts-board"]              { --c: var(--c-huib); }
.n[data-id="inst-global-impact-rating-authority"]   { --c: var(--c-gira); }
.n[data-id="inst-global-financial-equity-authority"]{ --c: var(--c-gfea); }
.n[data-id="inst-border-fairness-mechanism"]        { --c: var(--c-bfm); }
.n[data-id="inst-global-solidarity-fund"]           { --c: var(--c-gsf); }
.n[data-id="inst-humanity-court"]                   { --c: var(--c-court); }
.n[data-id="inst-inter-parliamentary-digital-authority"] { --c: var(--c-ipda); }
.n--classe, .n--regle-arret           { --c: var(--fam-qualification); }
.n--innovation, .n--famille           { --c: var(--fam-apports); }
.n--mecanisme                         { --c: var(--fam-transmission); }
.n--completude                        { --c: var(--fam-argument); }
.n--instrument                        { --c: var(--fam-architecture); }
.n--reference                                     { --c: var(--r-article); }
.n--reference.n--r-article,     .n--r-article     { --c: var(--r-article); }
.n--reference.n--r-institution, .n--r-institution { --c: var(--r-institution); }
.n--reference.n--r-juridique,   .n--r-juridique   { --c: var(--r-juridique); }
.n--reference.n--r-donnees,     .n--r-donnees     { --c: var(--r-donnees); }
.n--losange .forme,
.n--secteur .forme, .n--regle-arret .forme, .n--r-juridique .forme {
  transform: rotate(45deg);
  transform-box: fill-box;
  transform-origin: 50% 50%;
}
.n--hexagone .forme:not(polygon),
.n--famille .forme:not(polygon),
.n--r-donnees .forme:not(polygon) {
  clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}
.n--reference .forme,
.n--r-article .forme, .n--r-institution .forme,
.n--r-juridique .forme, .n--r-donnees .forme,
.n--reference > circle:not(.n__cible), .n--reference > rect:not(.n__cible),
.n--reference > path, .n--reference > polygon {
  stroke: var(--lisere-ref);
  stroke-width: 3;
  stroke-dasharray: 4 3;
  stroke-linecap: butt;
}
.n .halo { fill: none; stroke-width: 2.5; opacity: 0.92; }
.n--vigueur  .halo { stroke: var(--h-vigueur); }
.n--conteste .halo { stroke: var(--h-conteste); stroke-dasharray: 5 3; }
.n--abroge   .halo { stroke: var(--h-abroge);   stroke-dasharray: 1 3;
                     stroke-linecap: round; }
.n:hover .forme,
.n:hover > circle:not(.n__cible),
.n:hover > rect:not(.n__cible),
.n:hover > path, .n:hover > polygon {
  fill: color-mix(in srgb, var(--c) 82%, var(--surface));
  stroke-width: 3;
}
.n--actif .forme,
.n--actif > circle:not(.n__cible),
.n--actif > rect:not(.n__cible),
.n--actif > path, .n--actif > polygon {
  stroke: var(--texte);
  stroke-width: 3;
  stroke-dasharray: none;   
}
.n--actif .etiquette, .n--actif > text { font-weight: 600; }
.n:focus-visible {
  outline: var(--focus-e) solid var(--focus);
  outline-offset: 3px;
  border-radius: var(--r-2);
}
.n:focus-visible .forme,
.n:focus-visible > circle:not(.n__cible),
.n:focus-visible > rect:not(.n__cible),
.n:focus-visible > path, .n:focus-visible > polygon {
  stroke: var(--focus-doubl);
  stroke-width: 3;
  stroke-dasharray: none;
}

@supports not (outline-offset: 3px) {
  .n:focus-visible {
    filter: drop-shadow(0 0 0 var(--focus-doubl))
            drop-shadow(0 0 3px var(--focus));
  }
}
.n[data-estompe="oui"], .n--estompe { opacity: 0.22; pointer-events: none; }
.a[data-estompe="oui"], .a--estompe { opacity: 0.12; }
#aretes .a,
#aretes line, #aretes path {
  fill: none;
  stroke: var(--arete);       
  stroke-width: 1.25;
  stroke-linecap: round;
  transition: stroke var(--d-court) var(--courbe),
              stroke-width var(--d-court) var(--courbe);
}
#aretes [data-origine^="declaree"],
#aretes .a--declaree,
#aretes [class*="--declaree"] {
  stroke-dasharray: none;
}
#aretes [data-origine^="deduite"],
#aretes .a--deduite,
#aretes [class*="--deduite"] {
  stroke-dasharray: 5 4;
  stroke-opacity: 0.85;
}
#aretes .a--actif,
#aretes [data-actif="oui"] {
  stroke: var(--arete-forte);
  stroke-width: 2.25;
}
#aretes marker path,
.marqueur-fleche { fill: context-stroke, var(--arete); }

.a__etiquette {
  font-family: var(--f-sans);
  font-size: 10px;
  fill: var(--texte-doux);
  paint-order: stroke fill;
  stroke: var(--canevas);
  stroke-width: 3;
  pointer-events: none;
}
.temple {
  
  --t-ciel-haut:    var(--c-parchemin);
  --t-ciel-bas:     var(--c-parchemin-ombre);
  --t-cadre-ext:    var(--c-or);          
  --t-cadre-int:    var(--surface-creuse);
  --t-fronton:      var(--c-navy);
  --t-or-filet:     var(--c-or-fonce);    
  --t-titre:        var(--c-blanc-casse); 
  --t-sous-titre:   var(--surface-creuse);    
  --t-frise-fond:   var(--c-parchemin);
  --t-frise-titre:  var(--c-encre);       
  --t-frise-sous:   #7E611B;              
  --t-architrave:   var(--c-navy);        
  --t-fut-bord:     var(--c-pierre-ombre);
  --t-fut-a:        var(--c-pierre-ombre);   
  --t-fut-b:        var(--c-pierre-clair);   
  --t-fut-c:        var(--c-pierre);         
  --t-cannelure:    var(--c-pierre-ombre);
  --t-halo:         var(--c-blanc-casse); 
  --t-sigle:        var(--c-blanc-casse); 
  --t-nom:          var(--c-navy);        
  --t-forum:        #1C354E;              
  --t-forum-nom:    var(--c-navy);        
  --t-socle:        var(--c-navy);
  --t-socle-titre:  var(--surface-creuse);    
  --t-socle-bande:  var(--c-parchemin-ombre);
  --t-socle-sous:   var(--c-encre);       
  --t-focus:        var(--focus);
  --t-focus-doubl:  var(--focus-doubl);
  --inst-huib:  var(--c-huib);   --inst-gira:  var(--c-gira);
  --inst-gfea:  var(--c-gfea);   --inst-bfm:   var(--c-bfm);
  --inst-gsf:   var(--c-gsf);    --inst-court: var(--c-court);
  --inst-ipda:  var(--c-ipda);
  --nuit-t-ciel-haut:   var(--c-navy-profond);
  --nuit-t-ciel-bas:    var(--c-navy);
  --nuit-t-cadre-ext:   var(--c-or-fonce);
  --nuit-t-cadre-int:   var(--c-or);
  
  --nuit-t-fronton:     #1A2E4A;   
  --nuit-t-or-filet:    var(--c-or);  
  --nuit-t-titre:       var(--c-blanc-casse);  
  --nuit-t-sous-titre:  var(--surface-creuse);     
  --nuit-t-frise-fond:  #16283F;
  --nuit-t-frise-titre: var(--c-parchemin);    
  --nuit-t-frise-sous:  var(--surface-creuse);     
  --nuit-t-architrave:  #6E82A4;               
  --nuit-t-fut-bord:    #46597A;
  --nuit-t-fut-a:       #2A3D57;
  --nuit-t-fut-b:       #46597A;
  --nuit-t-fut-c:       #35486A;
  --nuit-t-cannelure:   #46597A;
  --nuit-t-halo:        var(--c-navy-profond);
  --nuit-t-sigle:       var(--c-navy-profond); 
  --nuit-t-nom:         var(--c-parchemin);    
  --nuit-t-forum:       var(--c-pierre-clair); 
  --nuit-t-forum-nom:   var(--c-parchemin);    
  --nuit-t-socle:       #1A2E4A;               
  --nuit-t-socle-titre: var(--surface-creuse);     
  --nuit-t-socle-bande: #1C3352;
  --nuit-t-socle-sous:  var(--c-parchemin-ombre); 
  
  --nuit-inst-huib:  #7FA6CE;  --nuit-inst-gira:  #C7A64A;
  --nuit-inst-gfea:  #9E7C28;  --nuit-inst-bfm:   #4FB3AB;
  --nuit-inst-gsf:   #6FBE8C;  --nuit-inst-court: #B995D4;
  --nuit-inst-ipda:  #94A9C4;
  display: block;
  inline-size: 100%;
  
  max-inline-size: 100rem;
  margin-inline: auto;
  block-size: auto;
  font-family: var(--f-serif);
  font-synthesis-weight: auto;   
}
.temple-cadre,
figure:has(> .temple),
div:has(> .temple) {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
@media (max-width: 56rem) {
  .temple { min-inline-size: 44rem; }   
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .temple {
    --t-ciel-haut:   var(--nuit-t-ciel-haut);
    --t-ciel-bas:    var(--nuit-t-ciel-bas);
    --t-cadre-ext:   var(--nuit-t-cadre-ext);
    --t-cadre-int:   var(--nuit-t-cadre-int);
    --t-fronton:     var(--nuit-t-fronton);
    --t-or-filet:    var(--nuit-t-or-filet);
    --t-titre:       var(--nuit-t-titre);
    --t-sous-titre:  var(--nuit-t-sous-titre);
    --t-frise-fond:  var(--nuit-t-frise-fond);
    --t-frise-titre: var(--nuit-t-frise-titre);
    --t-frise-sous:  var(--nuit-t-frise-sous);
    --t-architrave:  var(--nuit-t-architrave);
    --t-fut-bord:    var(--nuit-t-fut-bord);
    --t-fut-a:       var(--nuit-t-fut-a);
    --t-fut-b:       var(--nuit-t-fut-b);
    --t-fut-c:       var(--nuit-t-fut-c);
    --t-cannelure:   var(--nuit-t-cannelure);
    --t-halo:        var(--nuit-t-halo);
    --t-sigle:       var(--nuit-t-sigle);
    --t-nom:         var(--nuit-t-nom);
    --t-forum:       var(--nuit-t-forum);
    --t-forum-nom:   var(--nuit-t-forum-nom);
    --t-socle:       var(--nuit-t-socle);
    --t-socle-titre: var(--nuit-t-socle-titre);
    --t-socle-bande: var(--nuit-t-socle-bande);
    --t-socle-sous:  var(--nuit-t-socle-sous);
    --inst-huib:  var(--nuit-inst-huib);   --inst-gira:  var(--nuit-inst-gira);
    --inst-gfea:  var(--nuit-inst-gfea);   --inst-bfm:   var(--nuit-inst-bfm);
    --inst-gsf:   var(--nuit-inst-gsf);    --inst-court: var(--nuit-inst-court);
    --inst-ipda:  var(--nuit-inst-ipda);
  }
}
:root[data-theme="dark"] .temple {
  --t-ciel-haut:   var(--nuit-t-ciel-haut);
  --t-ciel-bas:    var(--nuit-t-ciel-bas);
  --t-cadre-ext:   var(--nuit-t-cadre-ext);
  --t-cadre-int:   var(--nuit-t-cadre-int);
  --t-fronton:     var(--nuit-t-fronton);
  --t-or-filet:    var(--nuit-t-or-filet);
  --t-titre:       var(--nuit-t-titre);
  --t-sous-titre:  var(--nuit-t-sous-titre);
  --t-frise-fond:  var(--nuit-t-frise-fond);
  --t-frise-titre: var(--nuit-t-frise-titre);
  --t-frise-sous:  var(--nuit-t-frise-sous);
  --t-architrave:  var(--nuit-t-architrave);
  --t-fut-bord:    var(--nuit-t-fut-bord);
  --t-fut-a:       var(--nuit-t-fut-a);
  --t-fut-b:       var(--nuit-t-fut-b);
  --t-fut-c:       var(--nuit-t-fut-c);
  --t-cannelure:   var(--nuit-t-cannelure);
  --t-halo:        var(--nuit-t-halo);
  --t-sigle:       var(--nuit-t-sigle);
  --t-nom:         var(--nuit-t-nom);
  --t-forum:       var(--nuit-t-forum);
  --t-forum-nom:   var(--nuit-t-forum-nom);
  --t-socle:       var(--nuit-t-socle);
  --t-socle-titre: var(--nuit-t-socle-titre);
  --t-socle-bande: var(--nuit-t-socle-bande);
  --t-socle-sous:  var(--nuit-t-socle-sous);
  --inst-huib:  var(--nuit-inst-huib);   --inst-gira:  var(--nuit-inst-gira);
  --inst-gfea:  var(--nuit-inst-gfea);   --inst-bfm:   var(--nuit-inst-bfm);
  --inst-gsf:   var(--nuit-inst-gsf);    --inst-court: var(--nuit-inst-court);
  --inst-ipda:  var(--nuit-inst-ipda);
}
.temple #fut stop:nth-child(1), .temple #fut stop:nth-child(4),
.temple defs linearGradient:nth-of-type(1) stop:nth-child(1),
.temple defs linearGradient:nth-of-type(1) stop:nth-child(4) { stop-color: var(--t-fut-a); }
.temple #fut stop:nth-child(2),
.temple defs linearGradient:nth-of-type(1) stop:nth-child(2) { stop-color: var(--t-fut-b); }
.temple #fut stop:nth-child(3),
.temple defs linearGradient:nth-of-type(1) stop:nth-child(3) { stop-color: var(--t-fut-c); }
.temple #ciel stop:nth-child(1),
.temple defs linearGradient:nth-of-type(2) stop:nth-child(1) { stop-color: var(--t-ciel-haut); }
.temple #ciel stop:nth-child(2),
.temple defs linearGradient:nth-of-type(2) stop:nth-child(2) { stop-color: var(--t-ciel-bas); }
.temple > rect:nth-of-type(2) { stroke: var(--t-cadre-ext); }
.temple > rect:nth-of-type(3) { stroke: var(--t-cadre-int); }
.temple > rect:nth-of-type(4) { fill: var(--t-architrave); }

.temple__fronton path { fill: var(--t-fronton); stroke: var(--t-or-filet); }
.temple__frise rect   { fill: var(--t-frise-fond); stroke: var(--t-or-filet); }

.temple__socle > rect:nth-of-type(1) { fill: var(--t-socle); stroke: var(--t-or-filet); }
.temple__socle > rect:nth-of-type(2) { fill: var(--t-socle-bande); stroke: var(--t-fut-bord); }
.temple__titre {
  font-family: var(--f-serif);
  font-size: 30px;
  font-weight: 700;
  letter-spacing: var(--ls-ui);
  fill: var(--t-titre);
}
.temple__sous {
  font-family: var(--f-sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.28em;
  fill: var(--t-sous-titre);
}

.temple__frise-titre {
  font-family: var(--f-serif);
  font-size: 26px;
  font-weight: 600;
  letter-spacing: var(--ls-ui);
  fill: var(--t-frise-titre);
}
.temple__frise-sous {
  font-family: var(--f-sans);
  font-size: 17px;
  letter-spacing: var(--ls-ui);
  fill: var(--t-frise-sous);
}
.temple__colonne { text-decoration: none; }
.temple__colonne:hover .temple__nom,
.temple__colonne:focus-visible .temple__nom {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}
.temple__colonne > rect:nth-of-type(1) {
  fill: var(--inst);
  stroke: var(--t-or-filet);
}
.temple__colonne > rect:nth-of-type(2) { stroke: var(--t-fut-bord); }
.temple__colonne > rect:nth-of-type(3) {
  fill: var(--inst);
  
  opacity: 1;
}
.temple__colonne > line { stroke: var(--t-cannelure); }

.temple__sigle {
  font-family: var(--f-serif);
  font-size: 27px;
  font-weight: 700;
  letter-spacing: var(--ls-ui);
  fill: var(--t-sigle);
}

.temple__colonne[data-id="inst-humanity-court"] .temple__sigle {
  font-size: 17px;
  letter-spacing: var(--ls-ui);
}
.temple__surnom {
  font-family: var(--f-serif);
  font-size: 15px;
  font-style: italic;
  fill: var(--inst);
  paint-order: stroke fill;
  stroke: var(--t-halo);
  stroke-width: 2.2;   
  stroke-linejoin: round;
}
.temple__colonne[data-id="inst-inter-parliamentary-digital-authority"] .temple__surnom {
  font-size: 13.5px;   
}

.temple__nom {
  font-family: var(--f-serif);
  font-size: 21px;
  font-weight: 600;
  fill: var(--t-nom);
}
.temple__colonne[data-id="inst-inter-parliamentary-digital-authority"] .temple__nom {
  font-size: 17px;     
}

.temple__forum {
  font-family: var(--f-sans);
  font-size: 13px;
  font-style: italic;
  letter-spacing: var(--ls-ui);
  fill: var(--t-forum);
}
.temple__forum-nom {
  font-family: var(--f-sans);
  font-size: 14px;
  font-weight: 600;
  fill: var(--t-forum-nom);
}
.temple__colonne[data-id="inst-humanity-court"] .temple__forum-nom {
  font-size: 12px;     
}
.temple__type {
  font-family: var(--f-sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--ls-caps);
  fill: var(--t-sigle);
}

.temple__socle-titre {
  font-family: var(--f-serif);
  font-size: 23px;
  font-weight: 700;
  letter-spacing: var(--ls-caps);
  fill: var(--t-socle-titre);
}
.temple__socle-sous {
  font-family: var(--f-sans);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: var(--ls-caps);
  fill: var(--t-socle-sous);
}
.temple text { user-select: none; }
.temple__colonne[data-id="inst-human-impacts-board"]                 { --inst: var(--inst-huib); }
.temple__colonne[data-id="inst-global-impact-rating-authority"]      { --inst: var(--inst-gira); }
.temple__colonne[data-id="inst-global-financial-equity-authority"]   { --inst: var(--inst-gfea); }
.temple__colonne[data-id="inst-border-fairness-mechanism"]           { --inst: var(--inst-bfm); }
.temple__colonne[data-id="inst-global-solidarity-fund"]              { --inst: var(--inst-gsf); }
.temple__colonne[data-id="inst-humanity-court"]                      { --inst: var(--inst-court); }
.temple__colonne[data-id="inst-inter-parliamentary-digital-authority"] { --inst: var(--inst-ipda); }
.temple__colonne {
  cursor: pointer;
  transition: transform var(--d-court) var(--courbe),
              filter var(--d-court) var(--courbe);
}
.temple__colonne > rect {
  transition: stroke var(--d-court) var(--courbe),
              stroke-width var(--d-court) var(--courbe);
}

.temple__colonne:hover {
  transform: translateY(-8px);   
}
.temple__colonne:hover > rect:nth-of-type(1),
.temple__colonne:hover > rect:nth-of-type(2),
.temple__colonne:hover > rect:nth-of-type(3) {
  stroke: var(--t-or-filet);
  stroke-width: 3;
}
.temple__colonne:focus,
.temple__colonne:focus-visible {
  outline: var(--focus-e) solid var(--t-focus);
  outline-offset: 4px;
}
.temple__colonne:focus > rect:nth-of-type(1),
.temple__colonne:focus > rect:nth-of-type(2),
.temple__colonne:focus-visible > rect:nth-of-type(1),
.temple__colonne:focus-visible > rect:nth-of-type(2) {
  stroke: var(--t-focus);        
  stroke-width: 4;
}

@supports not (outline-offset: 4px) {
  .temple__colonne:focus,
  .temple__colonne:focus-visible {
    filter: drop-shadow(0 0 2px var(--t-focus-doubl))
            drop-shadow(0 0 5px var(--t-focus));
  }
}
#panneau {
  --panneau-marge: var(--e-5);
  min-inline-size: 0;
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
  box-shadow: var(--o-2);
  font-size: var(--t-md);
  overscroll-behavior: contain;
}
#panneau[hidden] { display: none; }

#panneau > header {
  position: sticky;
  inset-block-start: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--e-3);
  padding: var(--e-4) var(--panneau-marge);
  background: var(--surface);
  border-block-end: 1px solid var(--bordure);
  border-start-start-radius: var(--r-3);
  border-start-end-radius: var(--r-3);
}
#panneau h2, #panneau .panneau__titre {
  margin: 0;
  font-size: var(--t-lg);
  text-wrap: pretty;
}
#panneau .panneau__corps { padding: var(--e-4) var(--panneau-marge) var(--e-6); }
#panneau .panneau__corps > * + * { margin-block-start: var(--e-4); }
.panneau__type,
.type-pastille {
  display: inline-flex;
  align-items: center;
  gap: var(--e-2);
  font-size: var(--t-sm);
  font-family: var(--f-sans);
  color: var(--texte-doux);
  text-transform: lowercase;
  letter-spacing: var(--ls-ui);
}
.panneau__type::before,
.type-pastille::before {
  content: "";
  inline-size: 0.7em;
  block-size: 0.7em;
  border-radius: var(--r-plein);
  background: var(--c, var(--fam-argument));
  flex: none;
}

#panneau dl { display: grid; grid-template-columns: auto 1fr; gap: var(--e-2) var(--e-4); }
#panneau dt { color: var(--texte-doux); font-size: var(--t-sm); }
#panneau dd { margin: 0; }
#panneau .citation {
  font-family: var(--f-serif);
  font-size: var(--t-base);
  line-height: var(--i-lecture);
}
#panneau .identifiant {
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  word-break: break-all;
}
@media (min-width: 62rem) {
  
  #panneau { inline-size: 100%; }
}

#panneau .fiche__sous-titre {
  font-family: var(--f-sans);
  font-size: var(--t-md);
  font-weight: 600;
  line-height: var(--i-normal);
  margin-block: var(--e-5, 1.75rem) var(--e-2, 0.5rem);
  padding-block-end: var(--e-1, 0.25rem);
  border-block-end: 1px solid var(--bordure);
}
.panneau__invite { padding: var(--e-4, 1rem); font-size: var(--t-sm); }

#panneau .fiche__vers-ouvrage {
  margin: 0 0 var(--e-3, 0.75rem);
  padding: var(--e-2, 0.5rem) var(--e-3, 0.75rem);
  background: var(--surface-creuse);
  border-inline-start: 3px solid var(--bordure-forte);
  border-radius: var(--r-2);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
}
#panneau .fiche__vers-ouvrage a { color: var(--lien); font-weight: 600; }

#panneau .relation { margin-block-end: var(--e-3, 0.75rem); }
#panneau .relation__titre {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  font-weight: 600;
  color: var(--texte-doux);
  margin-block: var(--e-2, 0.5rem) var(--e-1, 0.25rem);
}
#panneau .relation__compte {
  display: inline-block;
  min-inline-size: 1.4em;
  padding: 0 0.35em;
  border-radius: var(--r-plein);
  background: var(--surface-creuse);
  color: var(--texte);
  font-size: var(--t-xs);
  text-align: center;
}

#panneau .relation__liste,
#panneau .historique__liste { list-style: none; margin: 0; padding: 0; }
#panneau .historique__item { padding-block: var(--e-1, 0.25rem); font-size: var(--t-sm); }
#panneau .historique__type { color: var(--texte-doux); font-size: var(--t-xs); }
#panneau .historique__effacer {
  margin-block-start: var(--e-2, 0.5rem);
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--lien);
  background: none;
  border: 0;
  padding: 0.4rem 0;
  cursor: pointer;
  text-decoration: underline;
}

#panneau .relation__item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.25rem 0.5rem;
  padding-block: var(--e-1, 0.25rem);
  border-block-end: 1px solid var(--bordure);
}
#panneau .relation__item:last-child { border-block-end: 0; }
#panneau .relation__item > a { flex: 1 1 auto; min-inline-size: 8rem; }
#panneau .relation__type {
  font-size: var(--t-xs);
  color: var(--texte-doux);
  white-space: nowrap;
}

#panneau .origine {
  font-size: var(--t-xs);
  white-space: nowrap;
  padding-inline: 0.4em;
  border-radius: var(--r-1);
}
#panneau .origine--declaree {
  color: var(--texte);
  border: 1px solid var(--bordure-forte);
}
#panneau .origine--deduite {
  color: var(--texte-doux);
  border: 1px dashed var(--bordure-forte);
}
#panneau .voisins { list-style: none; margin: 0; padding: 0; }
#panneau .voisins li + li { border-block-start: 1px solid var(--bordure); }
#panneau .voisins a {
  display: flex;
  align-items: center;
  gap: var(--e-2);
  min-block-size: 2.5rem;
  padding-block: var(--e-2);
  text-decoration: none;
  color: var(--texte);
}
#panneau .voisins a:hover { text-decoration: underline; }
@media (max-width: 61.999rem) {
  #panneau {
    position: fixed;
    inset: auto 0 0 0;
    z-index: var(--z-panneau);
    max-block-size: 70svb;
    overflow-y: auto;
    border-radius: var(--r-3) var(--r-3) 0 0;
    border-inline: 0;
    border-block-end: 0;
    box-shadow: var(--o-3);
    animation: feuille-monte var(--d-moyen) var(--courbe);
    padding-block-end: env(safe-area-inset-bottom, 0);
  }
  
  #panneau > header { touch-action: none; }
  #panneau { transition: transform var(--d-court) var(--courbe); }
  #panneau > header::before {
    content: "";
    position: absolute;
    inset-block-start: var(--e-2);
    inset-inline: 0;
    margin-inline: auto;
    inline-size: 2.5rem;
    block-size: 4px;
    border-radius: var(--r-plein);
    background: var(--bordure-forte);
  }
  #panneau > header { padding-block-start: var(--e-5); }
}

@media (min-width: 62rem) {
  #panneau {
    position: sticky;
    inset-block-start: var(--e-4);
    max-block-size: calc(100svb - 6rem);
    overflow-y: auto;
    animation: glisse-droite var(--d-moyen) var(--courbe);
  }
}

@keyframes glisse-droite {
  from { opacity: 0; transform: translateX(1.5rem); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes feuille-monte {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}
#fil {
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
#fil ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-1);
  list-style: none;
  margin: 0;
  padding: 0;
}
#fil li { display: flex; align-items: center; gap: var(--e-1); }
#fil li + li::before {
  content: "›";
  color: var(--bordure-forte);
  margin-inline-end: var(--e-1);
}
#fil a {
  display: inline-flex;
  align-items: center;
  min-block-size: 24px;            
  padding-inline: var(--e-1);
  color: inherit;
}
#fil [aria-current="page"] { color: var(--texte); font-weight: 600; }
#legende {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  padding-block-start: var(--e-2);
}
#legende .legende__liste {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-2) var(--e-4);
  list-style: none;
  margin: var(--e-2) 0 0;
  padding: 0;
}
#legende .legende__liste li { display: flex; align-items: center; gap: var(--e-2); }
#legende .puce {
  inline-size: 0.8rem;
  block-size: 0.8rem;
  background: var(--c, var(--fam-argument));
  border: 1px solid var(--n-contour);
  border-radius: var(--r-plein);
  flex: none;
}
#legende .puce--carre    { border-radius: var(--r-1); }
#legende .puce--losange  { border-radius: var(--r-1); rotate: 45deg; }
#legende .puce--hexagone {
  border-radius: 0;
  clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);
}

#legende .puce--reference {
  inline-size: 0.95rem;
  block-size: 0.95rem;
  border: 2px dashed var(--lisere-ref);   
}
#legende .trait {
  inline-size: 2rem;
  block-size: 0;
  border-block-start: 2px solid var(--arete-forte);
  flex: none;
}
#legende .trait--deduite { border-block-start-style: dashed; }
.filtres {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-2);
  padding: var(--e-2) 0;
  border: 0;
  margin: 0;
}
.filtres legend {
  padding: 0;
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
.filtre {
  display: inline-flex;
  align-items: center;
  gap: var(--e-2);
  min-block-size: 2rem;
  padding: var(--e-1) var(--e-3);
  font: inherit;
  font-size: var(--t-sm);
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-plein);
  cursor: pointer;
  user-select: none;
  transition: background var(--d-court) var(--courbe),
              border-color var(--d-court) var(--courbe);
}
.filtre::before {
  content: "";
  inline-size: 0.7em;
  block-size: 0.7em;
  border-radius: var(--r-plein);
  background: var(--c, var(--fam-argument));
  flex: none;
}
.filtre:hover { background: var(--surface-creuse); }
.filtre[aria-pressed="true"],
.filtre:has(input:checked) {
  background: var(--surface-creuse);
  border-color: var(--texte);
  border-width: 2px;
  font-weight: 600;
  
}
.filtre input {
  position: absolute;
  inline-size: 1px; block-size: 1px;
  clip-path: inset(50%);
}
.filtre:has(input:focus-visible) {
  outline: var(--focus-e) solid var(--focus);
  outline-offset: 2px;
}

.filtre__compte {
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  font-variant-numeric: tabular-nums;
  color: var(--texte-doux);
}
.recherche { position: relative; flex: 1 1 14rem; min-inline-size: 0; }
.recherche label { display: block; font-size: var(--t-sm); color: var(--texte-doux); }
.recherche input[type="search"],
input[type="search"], input[type="text"], input[type="email"],
input[type="url"], input[type="number"], select, textarea {
  inline-size: 100%;
  min-block-size: 2.25rem;
  padding: var(--e-2) var(--e-3);
  font: inherit;
  font-size: var(--t-champ);
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);   
  border-radius: var(--r-2);
  appearance: none;
}
input::placeholder { color: var(--texte-doux); opacity: 1; }
.recherche kbd {
  position: absolute;
  inset-inline-end: var(--e-2);
  inset-block-end: var(--e-2);
  padding: 0 var(--e-1);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  background: var(--surface-creuse);
  border: 1px solid var(--bordure);
  border-radius: var(--r-1);
  pointer-events: none;
}
.recherche input:focus-visible ~ kbd { opacity: 0; }

.recherche__resultats {
  position: absolute;
  inset-block-start: 100%;
  inset-inline: 0;
  z-index: var(--z-panneau);
  max-block-size: 18rem;
  overflow-y: auto;
  margin-block-start: var(--e-1);
  padding: var(--e-1);
  list-style: none;
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  box-shadow: var(--o-2);
}
.recherche__resultats:empty { display: none; }
.recherche__resultats li a {
  display: block;
  min-block-size: 2.25rem;
  padding: var(--e-2);
  color: var(--texte);
  text-decoration: none;
  border-radius: var(--r-1);
}
.recherche__resultats li a:hover,
.recherche__resultats li [aria-selected="true"] { background: var(--surface-creuse); }
.recherche__resultats mark {
  background: var(--selection-fond);
  color: var(--texte);
  padding-inline: 0.1em;
  border-radius: var(--r-1);
}
.table-cadre {
  overflow-x: auto;
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
  background: var(--surface);
  
  background-image:
    linear-gradient(to right, var(--surface) 30%, rgba(255, 255, 255, 0)),
    linear-gradient(to right, rgba(255, 255, 255, 0), var(--surface) 70%),
    linear-gradient(to right, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0)),
    linear-gradient(to left, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0));
  background-position: 0 0, 100% 0, 0 0, 100% 0;
  background-repeat: no-repeat;
  background-size: 3rem 100%, 3rem 100%, 1rem 100%, 1rem 100%;
  background-attachment: local, local, scroll, scroll;
}

.table-cadre:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

table, #alternative {
  inline-size: 100%;
  border-collapse: collapse;
  font-size: var(--t-md);
  font-variant-numeric: tabular-nums;
}
#alternative caption, table caption {
  caption-side: top;
  text-align: start;
  padding: var(--e-3) var(--e-4);
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
#alternative th, table th {
  text-align: start;
  font-weight: 600;
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  letter-spacing: var(--ls-ui);
  background: var(--surface);
  border-block-end: 2px solid var(--bordure-forte);
}
#alternative th, #alternative td,
table th, table td {
  padding: var(--e-3) var(--e-4);
  border-block-end: 1px solid var(--bordure);
  vertical-align: top;
}

#alternative tbody tr:nth-child(even),
table tbody tr:nth-child(even) { background: rgb(19 36 60 / 0.028); }
#alternative tbody tr:hover, table tbody tr:hover { background: var(--surface-creuse); }

table td.nombres, table th.nombres { text-align: end; font-variant-numeric: tabular-nums; }
#alternative td:first-child { white-space: nowrap; }
#alternative .identifiant { font-family: var(--f-mono); font-size: var(--t-xs); }
#alternative tr[aria-selected="true"],
#alternative tr.n--actif {
  background: var(--surface-creuse);
  box-shadow: inset 3px 0 0 var(--texte);
}
button, .bouton, [role="button"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--e-2);
  min-block-size: 2.25rem;
  min-inline-size: 2.25rem;
  padding: var(--e-2) var(--e-4);
  font: inherit;
  font-size: var(--t-md);
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  cursor: pointer;
  text-decoration: none;
  transition: background var(--d-court) var(--courbe),
              border-color var(--d-court) var(--courbe);
}
button:hover, .bouton:hover { background: var(--surface-creuse); }
button:disabled, .bouton[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
.bouton--primaire {
  background: var(--texte);
  color: var(--texte-inverse);   
  border-color: var(--texte);
}
.bouton--primaire:hover { background: color-mix(in srgb, var(--texte) 88%, var(--fond)); }

.bouton--discret {
  background: transparent;
  border-color: transparent;
  color: var(--texte-doux);
}
.bouton--discret:hover { background: var(--surface-creuse); color: var(--texte); }
.cible-24 { position: relative; }
.cible-24::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  min-inline-size: 24px;
  min-block-size: 24px;
  inline-size: 100%;
  block-size: 100%;
  transform: translate(-50%, -50%);
}

.panneau__fermer {
  flex: none;
  inline-size: 2.25rem;
  block-size: 2.25rem;
  min-block-size: 0;
  padding: 0;
  border-color: transparent;
  background: transparent;
  font-size: 1.1rem;
  line-height: 1;
  color: var(--texte-doux);
}
.panneau__fermer:hover { background: var(--surface-creuse); color: var(--texte); }
.theme-bascule { display: inline-flex; gap: 0; }
.theme-bascule button { border-radius: 0; margin-inline-start: -1px; }
.theme-bascule button:first-child {
  border-start-start-radius: var(--r-2); border-end-start-radius: var(--r-2);
  margin-inline-start: 0;
}
.theme-bascule button:last-child {
  border-start-end-radius: var(--r-2); border-end-end-radius: var(--r-2);
}
.theme-bascule button[aria-pressed="true"] {
  background: var(--surface-creuse);
  border-color: var(--texte);
  font-weight: 600;
  z-index: 1;
}
@media (pointer: coarse) {
  button, .bouton, [role="button"],
  .filtre, .theme-bascule button, .panneau__fermer {
    min-block-size: 2.75rem;      
    min-inline-size: 2.75rem;
  }
  .panneau__fermer { inline-size: 2.75rem; block-size: 2.75rem; }
  input[type="search"], input[type="text"], input[type="email"],
  input[type="url"], input[type="number"], select, textarea {
    min-block-size: 2.75rem;
    padding-block: var(--e-3);
  }
  #fil a { min-block-size: 2.75rem; padding-inline: var(--e-2); }
  #panneau .voisins a,
  .recherche__resultats li a { min-block-size: 2.75rem; }
  .note-appel::after { inline-size: 44px; block-size: 44px; }
  .cible-24::after { min-inline-size: 44px; min-block-size: 44px; }
  .temple__colonne:hover { transform: none; }
}
@media (hover: none) {
  
  a { text-decoration-color: currentColor; }
  .porte {
    border-block-start-width: 4px;
    box-shadow: var(--o-2);
  }
  .porte:hover { transform: none; box-shadow: var(--o-2); }
  .recherche kbd { display: none; }
  #alternative tbody tr:nth-child(even),
  table tbody tr:nth-child(even) { background: var(--surface-creuse); }
  #alternative tbody tr:hover, table tbody tr:hover { background: var(--surface-creuse); }
}
@media (max-width: 47.99rem) {
  .bandeau, body > header { position: static; }
}
@media (max-width: 26rem) {
  .bandeau, body > header { padding-inline: var(--e-3); }
  .bandeau nav ul, body > header nav ul { gap: var(--e-1) var(--e-3); }
  .diagramme__outils { gap: var(--e-1); }
  .diagramme__outils > * { flex: 1 1 auto; }
  .contenu, .pied__grille { inline-size: min(100% - 2 * var(--e-3), 72rem); }
  
  #panneau { max-block-size: 60svb; }
}
.visuellement-cache:not(:focus):not(:active) {
  position: absolute !important;
  inline-size: 1px; block-size: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.mesure { max-inline-size: var(--mesure); }
.centre { margin-inline: auto; }
.doux   { color: var(--texte-doux); }
.mono   { font-family: var(--f-mono); }
.serif  { font-family: var(--f-serif); }
.nombres { font-variant-numeric: tabular-nums; }
dl.nombres {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 0.7em;
  row-gap: 0.2em;
  max-inline-size: 26rem;
  margin-block: var(--e-4);
}
dl.nombres > dt {
  text-align: end;
  font-weight: 600;
  color: var(--texte);
}
dl.nombres > dd {
  margin: 0;
  color: var(--texte-doux);
}
.chiffres {
  list-style: none;
  margin: var(--e-6) 0 0;
  padding: 0;
  display: grid;
  gap: 1px;                       
  background: var(--bordure);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
  overflow: hidden;
  grid-template-columns: repeat(auto-fit, minmax(var(--piste-etroite), 1fr));
}
.chiffres__case { background: var(--surface); }
.chiffres__case > a,
.chiffres__case > span {
  display: flex;
  flex-direction: column;
  gap: 0.15em;
  padding: var(--e-4) var(--e-4) var(--e-3);
  block-size: 100%;
  color: inherit;
  text-decoration: none;
}
.chiffres__case > a:hover { background: var(--surface-creuse); }
.chiffres__case > a:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.chiffres__valeur {
  font-family: var(--f-serif);
  font-size: clamp(1.75rem, 1.2rem + 1.7vw, 2.75rem);
  line-height: 1.05;
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--texte);
}
.chiffres__libelle {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--texte-doux);
}

.chiffres--menu .chiffres__valeur { font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.875rem); }
.grille-liens {
  list-style: none;
  margin: var(--e-5) 0 0;
  padding: 0;
  display: grid;
  gap: var(--e-3);
  grid-template-columns: repeat(auto-fit, minmax(var(--piste-large), 1fr));
}
.grille-liens__case > a {
  display: flex;
  flex-direction: column;
  gap: 0.25em;
  block-size: 100%;
  padding: var(--e-4);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2);
  color: var(--texte);
  text-decoration: none;
  transition: border-color var(--d-court) var(--courbe),
              box-shadow var(--d-court) var(--courbe);
}
.grille-liens__case > a:hover {
  border-color: var(--bordure-forte);
  box-shadow: var(--o-1);
}
.grille-liens__case > a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.grille-liens__sigle {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: var(--ls-caps);
  text-transform: uppercase;
  color: var(--bordure-forte);
  
  min-block-size: 1.2em;
}
.grille-liens__titre {
  font-family: var(--f-serif);
  font-size: var(--t-md);
  line-height: var(--i-serre);
}

.grille-liens__case .mono { display: block; font-size: var(--t-xs); color: var(--texte-doux); }
li:has(.type-pastille),
li:has(.puce) { list-style: none; }
ul:has(li .type-pastille),
ul:has(li .puce) { padding-inline-start: 0; }
#recherche-corpus:empty::before {
  content: "Chargement de l’index de recherche…";
  display: block;
  padding: var(--e-3) var(--e-4);
  border: 1px dashed var(--bordure-forte);
  border-radius: var(--r-2);
  background: var(--surface);
  color: var(--texte-doux);
  font-size: var(--t-champ);
  max-inline-size: 32rem;
}

.etat-vide {
  padding: var(--e-6);
  text-align: center;
  color: var(--texte-doux);
  border: 1px dashed var(--bordure-forte);
  border-radius: var(--r-3);
}
.annonce { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
@media print {
  @page { margin: 18mm; }
  :root,
  :root:not([data-theme="light"]),
  :root[data-theme="dark"] {
    --fond: #FFFFFF; --surface: #FFFFFF; --surface-creuse: #F4EFE3;
    --canevas: #FFFFFF; --texte: #13243C; --texte-doux: #3D4655;
    --bordure: #D8CDB6; --bordure-forte: #6E5514;
    
    --or-texte: #6E5514; --accent-mouvement: #5A2742;
    --arete: #5E5540; --arete-forte: #13243C;
    --lisere-ref: #6E5514;
    --o-1: none; --o-2: none; --o-3: none;
  }
  
  .temple,
  :root:not([data-theme="light"]) .temple,
  :root[data-theme="dark"] .temple {
    --t-ciel-haut: #FFFFFF; --t-ciel-bas: #F4EBD7;
    --t-cadre-ext: #B08A33; --t-cadre-int: #D9C079;
    --t-fronton: #13243C; --t-or-filet: #8A6A1E;
    --t-titre: #FBF6EA; --t-sous-titre: #D9C079;
    --t-frise-fond: #F4EBD7; --t-frise-titre: #13243C; --t-frise-sous: #7E611B;
    --t-architrave: #13243C;
    --t-fut-bord: #B6A57E; --t-fut-a: #B6A57E; --t-fut-b: #E4D8BB;
    --t-fut-c: #CDBE9B; --t-cannelure: #B6A57E;
    --t-halo: #FBF6EA; --t-sigle: #FBF6EA; --t-nom: #13243C;
    --t-forum: #1C354E; --t-forum-nom: #13243C;
    --t-socle: #13243C; --t-socle-titre: #D9C079;
    --t-socle-bande: #EADDBF; --t-socle-sous: #13243C;
    --inst-huib: #22405F; --inst-gira: #6E5A1C; --inst-gfea: #8A6A1E;
    --inst-bfm: #1E5E59; --inst-gsf: #2C6E45; --inst-court: #5A2E7A;
    --inst-ipda: #2C3E54;
  }
  .temple {
    min-inline-size: 0;      
    break-inside: avoid;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .temple__colonne { transform: none !important; }
  .temple-cadre, figure:has(> .temple), div:has(> .temple) { overflow: visible; }

  body { background: #FFFFFF; color: #000000; font-size: 10.5pt; }

  .evitement, .bandeau, body > header, .filtres, .recherche,
  .diagramme__outils, .theme-bascule, .panneau__fermer,
  .recherche__resultats { display: none !important; }

  a { color: inherit; text-decoration: underline; }
  
  .texte a[href^="http"]::after {
    content: " <" attr(href) ">";
    font-family: var(--f-mono);
    font-size: 0.78em;
    word-break: break-all;
  }

  .page-diagramme, .diagramme__scene, .texte {
    display: block !important;
    padding: 0;
    min-block-size: 0;
  }

  #diagramme, #diagramme-circuit { break-inside: avoid; }
  #canevas {
    inline-size: 100%;
    block-size: auto;
    max-block-size: 150mm;
    border: 1px solid var(--bordure-forte);
    
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .n .etiquette, .n > text { stroke: none; fill: #000000; font-size: 8px; }
  #panneau, #panneau[hidden] {
    display: block !important;
    position: static !important;
    max-block-size: none !important;
    overflow: visible !important;
    inline-size: 100%;
    margin-block-start: 6mm;
    border: 1px solid var(--bordure-forte);
    box-shadow: none;
    animation: none;
    break-inside: avoid;
  }
  .note-marge, .texte aside.note {
    display: block !important;
    max-inline-size: none;
    margin-block: 2mm 4mm;
    padding-inline-start: 4mm;
    border-inline-start: 1px solid var(--bordure-forte);
    font-size: 9pt;
    break-inside: avoid;
  }
  .note-bascule { display: none !important; }

  #alternative, .table-cadre {
    display: table; overflow: visible; border: 0;
    inline-size: 100%;
  }
  #alternative th { position: static; }
  #alternative tr, .porte, figure, blockquote { break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
  html { scroll-behavior: auto; }
  .porte:hover { transform: none; }
  #panneau { animation: none !important; }
  .temple__colonne:hover { transform: none; }
  .temple__colonne { transition: none; }
}
.diagramme__outils a[aria-current],
.diagramme__outils a[aria-current="true"],
.diagramme__outils a[aria-current="page"] {
  background: var(--texte);
  color: var(--texte-inverse);          
  border-color: var(--texte);
  box-shadow: inset 0 3px 0 0 var(--bordure-forte);
  font-weight: 600;
}
.diagramme__outils a[aria-current]:hover {
  background: color-mix(in srgb, var(--texte) 88%, var(--fond));
}
.diagramme__outils button,
.diagramme__outils [data-graphe-action] {
  font: inherit;
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  padding: var(--e-2) var(--e-3);
  cursor: pointer;
  min-block-size: 44px;          
}
.diagramme__outils button:hover,
.diagramme__outils [data-graphe-action]:hover { background: var(--surface-creuse); }
.n__etiquette {
  font-family: var(--f-sans);
  font-size: 11px;
  fill: var(--texte-doux);
  pointer-events: none;
}
.n--bloc .n__etiquette {
  font-size: 15px;
  font-weight: 600;
  fill: var(--texte);
}
.n--bloc .n__glyphe { stroke-width: 2; }
@media (max-width: 56rem) {
  .temple-cadre::after,
  figure:has(> .temple)::after {
    content: "Faites glisser la planche pour voir les sept colonnes →";
    display: block;
    font-family: var(--f-sans);
    font-size: 0.8125rem;
    color: var(--texte-doux);
    padding-block-start: var(--e-2);
    text-align: center;
    transition: opacity var(--d-moyen) var(--courbe);
  }
  
  .a-defile.temple-cadre::after,
  figure.a-defile:has(> .temple)::after {
    opacity: 0;
    
    visibility: hidden;
  }
}
.n--bloc.nf--externalites  { --c: var(--fam-externalites); }
.n--bloc.nf--architecture  { --c: var(--fam-architecture); }
.n--bloc.nf--transmission  { --c: var(--fam-transmission); }
.n--bloc.nf--apports       { --c: var(--fam-apports); }
.n--bloc.nf--qualification { --c: var(--fam-qualification); }
.n--bloc.nf--argument      { --c: var(--fam-argument); }
.n--bloc.nf--reference     { --c: var(--r-article); }
.porte__citation {
  border-inline-start: 2px solid var(--bordure-forte);
  padding-inline-start: var(--e-3);
  font-style: italic;
  color: var(--texte-doux);
}
.n__etiquette {
  paint-order: stroke fill;
  stroke: var(--canevas);
  stroke-width: 3px;
  stroke-linejoin: round;
}

.n--saillant .n__etiquette { stroke-width: 3.5px; }
#canevas-circuit { inline-size: 100%; }

.circuit-zone {
  inline-size: 100%;
  container-type: inline-size;
}

.circuit-zone--defilante {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  background-image:
    linear-gradient(to right, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0)),
    linear-gradient(to left, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0));
  background-position: 0 0, 100% 0;
  background-repeat: no-repeat;
  background-size: 1rem 100%, 1rem 100%;
  background-attachment: scroll, scroll;
}

.circuit-canevas {
  display: block;
  inline-size: 100%;
  block-size: auto;
  min-inline-size: 46rem;
  background: var(--canevas);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
}

.circuit-titre-colonne {
  font-family: var(--f-sans);
  
  font-size: 11px;
  font-weight: 700;
  fill: var(--texte);
  text-transform: uppercase;
  letter-spacing: var(--ls-ui);
}
.circuit-flux {
  fill: var(--c, var(--fam-transmission));
  opacity: 0.38;
  transition: opacity 120ms ease-out;
}
.circuit-flux:hover,
.circuit-flux:focus-visible,
.circuit-flux.est-saillant { opacity: 0.8; }
.circuit-zone.a-saillance .circuit-flux:not(.est-saillant) { opacity: 0.12; }
#canevas-circuit .n--porte .n-corps,
#canevas-circuit .n--externalite .n-corps {
  stroke: var(--texte);
  stroke-width: 2.5;
}
.circuit-fuite { fill: var(--fam-qualification); opacity: 0.5; }
.circuit-ligne-fuite {
  stroke: var(--fam-qualification);
  stroke-width: 1.5;
  stroke-dasharray: 6 4;
  fill: none;
}

.circuit-item-titre {
  font-family: var(--f-sans);
  font-size: 11px;
  fill: var(--texte);
  paint-order: stroke fill;
  stroke: var(--canevas);
  stroke-width: 3px;
  stroke-linejoin: round;
}
.circuit-item-detail { font-size: 10.5px; fill: var(--texte-doux); }
.circuit-item-marque { font-size: 10px; fill: var(--texte-doux); font-style: italic; }
.circuit-item-glyphe { stroke: var(--bordure-forte); stroke-width: 1; }
.circuit-item-bouton { cursor: pointer; }
.circuit-item-bouton:focus-visible .circuit-item-glyphe {
  stroke: var(--focus);
  stroke-width: 3;
}

.circuit-legende {
  margin-block-start: var(--e-4);
  font-family: var(--f-sans);
  font-size: 0.8125rem;
  color: var(--texte-doux);
}
.circuit-legende-item { display: inline-flex; align-items: center; gap: var(--e-1);
                        margin-inline-end: var(--e-4); }

.circuit-legende-alerte {
  border-inline-start: 3px solid var(--fam-qualification);
  padding: var(--e-2) var(--e-3);
  margin-block-start: var(--e-3);
  background: var(--surface-creuse);
  color: var(--texte);
}
.circuit-empile { display: grid; gap: var(--e-5); }
.circuit-bloc { border: 1px solid var(--bordure); border-radius: var(--r-3);
                padding: var(--e-4); background: var(--surface); }
.circuit-bloc-titre { font-family: var(--f-sans); font-size: 0.875rem;
                      font-weight: 600; text-transform: uppercase;
                      letter-spacing: var(--ls-caps); margin-block-end: var(--e-3); }
.circuit-bloc-liste { margin: 0; padding-inline-start: var(--e-4); }
.circuit-bloc-liste li { margin-block-end: var(--e-2); }
.circuit-alternative { margin-block-start: var(--e-5); }
.n--completude { --c: var(--fam-argument); }
.n--instrument { --c: var(--fam-architecture); }
.n--bloc       { --c: var(--fam-argument); }   
.f--depuis-mecanisme   { --c: var(--fam-transmission); }
.f--depuis-externalite { --c: var(--fam-externalites); }
.f--vers-institution   { --c: var(--fam-architecture); }
.f--vers-fuite         { --c: var(--fam-qualification); }

#canevas-circuit .n-cible { fill: none; }
#canevas-circuit .n-motif { fill: url(#circuit-hachure-fuite); }
.est-estompe { opacity: 0.18; }
.est-en-evidence { opacity: 1; }
.circuit-zone .est-en-evidence .f-corps,
.circuit-zone .est-en-evidence .n-corps { stroke: var(--focus); stroke-width: 2; }

.f-corps { fill: var(--c, var(--fam-transmission)); stroke: none; }
.f--deduite .f-corps { opacity: 0.72; }   
.f-motif { opacity: 0.5; pointer-events: none; }
.motif-trait { stroke: var(--bordure-forte); stroke-width: 1; fill: none; }
.texte p,
.texte li,
.texte dd,
.contenu p.mesure,
.chapeau {
  hyphens: auto;
  -webkit-hyphens: auto;
  hyphenate-limit-chars: 8 4 4;   
}
h1, h2, h3, h4, h5, h6,
code, pre, kbd, .nombres, table { hyphens: manual; -webkit-hyphens: manual; }
#diagramme, #diagramme-circuit { position: relative; }
.graphe-bouton {
  position: absolute;
  inset-block-start: var(--e-3, 0.75rem);
  z-index: 2;
  min-block-size: 2.75rem;
  min-inline-size: 2.75rem;
  padding-inline: var(--e-3, 0.75rem);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  cursor: pointer;
}
.graphe-bouton:hover { background: var(--surface-creuse); }
.graphe-bouton--recadrer  { inset-inline-end: var(--e-3, 0.75rem); }
.graphe-bouton--zoom      { inline-size: 2.75rem; padding-inline: 0; font-size: 1.1rem; }
.graphe-bouton[data-graphe-action="zoom-plus"]  { inset-inline-end: 7.5rem; }
.graphe-bouton[data-graphe-action="zoom-moins"] { inset-inline-end: 4.5rem; }
@media (max-height: 30rem) and (orientation: landscape) {
  #canevas { block-size: clamp(12rem, 70svb, 20rem); }
  #panneau { max-block-size: 60svb; }
}
@media (min-width: 62rem) and (max-width: 67.999rem) {
  .diagramme__scene { display: flex; gap: var(--e-4, 1rem); align-items: flex-start; }
  .diagramme__scene > figure { flex: 1 1 auto; min-inline-size: 0; }
}
.texte p, .texte li { orphans: 3; widows: 3; }
@media print {
  h1, h2, h3, h4, figcaption, caption { break-after: avoid; page-break-after: avoid; }
  figure, .table-cadre { break-inside: avoid; page-break-inside: avoid; }
  
  .bandeau nav, .corpus-bloc, .aide-clavier, .diagramme__outils, .graphe-bouton,
  .fil-site, .avis-mobile, .ancre-para { display: none; }
  
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 0.85em; }
}
a:active, button:active, .bouton:active, summary:active {
  transform: translateY(1px);
}
@media (prefers-reduced-motion: reduce) {
  a:active, button:active, .bouton:active, summary:active { transform: none; }
}
@media (forced-colors: active) {
  .puce, .type-pastille, .filtre, .porte, .table-cadre, #panneau, .corpus__liste {
    border: 1px solid CanvasText;
  }
  .diagramme__outils a[aria-current] {
    outline: 2px solid Highlight;
    outline-offset: -2px;
  }
  
  .n__glyphe, .a { forced-color-adjust: auto; }
  .corpus__citation, .renvoi { text-decoration: underline; }
}
.tdm-sections > summary {
  cursor: pointer;
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  min-block-size: 2.75rem;
  display: flex;
  align-items: center;
}
.tdm-sections > summary:hover { color: var(--lien); }
.avis-mobile { display: none; }
@media (max-width: 43.75rem) { .avis-mobile { display: block; } }
.porte__meta {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte);
  font-variant-numeric: tabular-nums;
  border-block-start: 1px solid var(--bordure);
  padding-block-start: var(--e-2, 0.5rem);
  margin-block-start: auto;
}
#recherche-resultats, .recherche__resultats { max-block-size: min(50svh, 26rem); overflow-y: auto; }
.accueil__auteur { margin-block-start: var(--e-3, 0.75rem); }
.porte h2 a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
.porte h2 a::before {
  content: "→ ";
  color: var(--bordure-forte);
  text-decoration: none;
}
.porte__amorce {
  display: block;
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  font-style: normal;
  color: var(--texte-doux);
  margin-block-end: 0.15rem;
}
.fil-site {
  max-inline-size: var(--mesure);
  margin: var(--e-3, 0.75rem) auto 0;
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
.fil-site__liste {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--e-2, 0.5rem);
  margin: 0;
  padding: 0;
}
.fil-site__liste li + li::before {
  content: "›";
  margin-inline-end: var(--e-2, 0.5rem);
  color: var(--bordure-forte);
}
.fil-site a { color: var(--lien); }
.fil-site [aria-current="page"] { color: var(--texte); }
.aide-clavier {
  margin-block: var(--e-3, 0.75rem);
  font-size: var(--t-sm);
}
.aide-clavier summary {
  cursor: pointer;
  font-family: var(--f-sans);
  color: var(--lien);
  min-block-size: 2.75rem;      
  display: flex;
  align-items: center;
}

.aide-clavier[open] dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--e-2, 0.5rem) var(--e-4, 1rem);
  margin-block-start: var(--e-2, 0.5rem);
}
.aide-clavier dt { margin: 0; }
.aide-clavier dd { margin: 0; color: var(--texte-doux); }
.aide-clavier kbd {
  font-family: var(--f-mono);
  font-size: var(--t-xs);
  padding: 0.15em 0.45em;
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  background: var(--surface-creuse);
  white-space: nowrap;
}
.ancre-para {
  margin-inline-start: 0.35em;
  color: var(--texte-doux);
  text-decoration: none;
  opacity: 0;
  transition: opacity var(--d-court) var(--courbe);
  
  font-size: var(--t-xs);
  white-space: nowrap;
  vertical-align: 0.15em;
}

p:hover > .ancre-para,
.ancre-para:focus,
.ancre-para:focus-visible { opacity: 1; }
.ancre-para:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (hover: none) {
  
  .ancre-para { opacity: 0.45; }
}
:where(h1, h2, h3, h4, h5, h6, p[id], li[id], figure[id], table[id], section[id]) {
  scroll-margin-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-5, 1.5rem));
}
.sommaire a[aria-current="location"],
.sommaire__courant {
  color: var(--texte);
  font-weight: 600;
  border-inline-start: 3px solid currentColor;
  padding-inline-start: 0.45em;
  margin-inline-start: -0.75em;
}
@media (forced-colors: active) {
  .sommaire a[aria-current="location"] { border-inline-start-color: Highlight; }
}
.methode {
  margin-block: var(--e-5);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  
  inline-size: min(96rem, 100vw - 2 * var(--e-4));
  position: relative;
  inset-inline-start: 50%;
  transform: translateX(-50%);
}

.methode-large {
  
  max-inline-size: none;
  inline-size: min(96rem, 100vw - 2 * var(--e-4));
  position: relative;
  inset-inline-start: 50%;
  transform: translateX(-50%);
  
  --masque: linear-gradient(to right, #000 0, #000 calc(100% - 4rem), transparent 100%);
  -webkit-mask-image: var(--masque);
  mask-image: var(--masque);
}
@supports (animation-timeline: scroll()) {
  .methode {
    animation: methode-fin-de-course linear both;
    animation-timeline: scroll(self inline);
    animation-range: contain 85% contain 100%;
  }
  @keyframes methode-fin-de-course {
    to { -webkit-mask-image: none; mask-image: none; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .methode { animation: none; }
}
.methode__axe {
  display: grid;
  grid-template-columns: repeat(16, minmax(var(--piste-dense, 7.5rem), 1fr));
  gap: var(--e-1);
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
  background: var(--fond);
  padding-block: var(--e-1);
  border-block-end: 1px solid var(--bordure);
  min-inline-size: 120rem;
}

.methode__tete {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  text-align: center;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
  display: block;
  padding-block: 0.15em;
  border-radius: var(--r-2, 4px);
}
.methode__tete:hover { color: var(--texte); background: var(--surface);
                       text-decoration: underline; }
.methode__tete:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
.methode__couloir { margin-block-start: var(--e-4); }
.methode__couloir-titre {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  color: var(--texte);
  margin-block: 0 var(--e-2);
}

.methode__couloir-titre > a { color: inherit; text-decoration: none; }
.methode__couloir-titre > a:hover { text-decoration: underline; }
.methode__sous-titre {
  display: block;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  color: var(--texte-doux);
}
.methode__grille {
  display: grid;
  grid-template-columns: repeat(16, minmax(var(--piste-dense, 7.5rem), 1fr));
  gap: var(--e-1);
  list-style: none;
  margin: 0;
  padding: 0;
  min-inline-size: 120rem;
}

.methode__item { min-inline-size: 0; scroll-margin-block-start: 8rem; }
.methode__item[data-col="1"] { grid-column-start: 1 }
.methode__item[data-col="2"] { grid-column-start: 2 }
.methode__item[data-col="3"] { grid-column-start: 3 }
.methode__item[data-col="4"] { grid-column-start: 4 }
.methode__item[data-col="5"] { grid-column-start: 5 }
.methode__item[data-col="6"] { grid-column-start: 6 }
.methode__item[data-col="7"] { grid-column-start: 7 }
.methode__item[data-col="8"] { grid-column-start: 8 }
.methode__item[data-col="9"] { grid-column-start: 9 }
.methode__item[data-col="10"] { grid-column-start: 10 }
.methode__item[data-col="11"] { grid-column-start: 11 }
.methode__item[data-col="12"] { grid-column-start: 12 }
.methode__item[data-col="13"] { grid-column-start: 13 }
.methode__item[data-col="14"] { grid-column-start: 14 }
.methode__item[data-col="15"] { grid-column-start: 15 }
.methode__item[data-col="16"] { grid-column-start: 16 }
.methode__item[data-fin="2"] { grid-column-end: 2 }
.methode__item[data-fin="3"] { grid-column-end: 3 }
.methode__item[data-fin="4"] { grid-column-end: 4 }
.methode__item[data-fin="5"] { grid-column-end: 5 }
.methode__item[data-fin="6"] { grid-column-end: 6 }
.methode__item[data-fin="7"] { grid-column-end: 7 }
.methode__item[data-fin="8"] { grid-column-end: 8 }
.methode__item[data-fin="9"] { grid-column-end: 9 }
.methode__item[data-fin="10"] { grid-column-end: 10 }
.methode__item[data-fin="11"] { grid-column-end: 11 }
.methode__item[data-fin="12"] { grid-column-end: 12 }
.methode__item[data-fin="13"] { grid-column-end: 13 }
.methode__item[data-fin="14"] { grid-column-end: 14 }
.methode__item[data-fin="15"] { grid-column-end: 15 }
.methode__item[data-fin="16"] { grid-column-end: 16 }
.methode__item[data-fin="17"] { grid-column-end: 17 }
.methode__item[data-ligne="1"] { grid-row: 1 }
.methode__item[data-ligne="2"] { grid-row: 2 }
.methode__item[data-ligne="3"] { grid-row: 3 }
.methode__item[data-ligne="4"] { grid-row: 4 }
.methode__item[data-ligne="5"] { grid-row: 5 }
.methode__item[data-ligne="6"] { grid-row: 6 }
.methode__item[data-ligne="7"] { grid-row: 7 }
.methode__item[data-ligne="8"] { grid-row: 8 }
.methode__item[data-ligne="9"] { grid-row: 9 }
.methode__item[data-ligne="10"] { grid-row: 10 }
.methode__item[data-ligne="11"] { grid-row: 11 }
.methode__item[data-ligne="12"] { grid-row: 12 }
.methode__item[data-ligne="13"] { grid-row: 13 }
.methode__item[data-ligne="14"] { grid-row: 14 }
.methode__item:target > a { outline: 2px solid var(--focus); outline-offset: 2px; }
.methode__item > a,
.methode__item > span {
  display: block;
  block-size: 100%;
  padding: 0.4em 0.55em;
  border-inline-start: 3px solid var(--methode-c, var(--bordure-forte));
  border-radius: var(--r-2, 4px);
  background: var(--methode-f, var(--surface));
  color: var(--texte);
  text-decoration: none;
  font-size: var(--t-xs);
  line-height: 1.25;
}
.methode__item > a:hover { background: var(--surface); border-color: var(--texte); }
.methode__item > a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.methode__n {
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  color: var(--methode-c, var(--texte));
  margin-inline-end: 0.35em;
}
.methode__titre { font-family: var(--f-sans); font-weight: 600; }
.methode__glose { display: block; color: var(--texte-doux); margin-block-start: 0.15em; }
.methode__item--v { --methode-c: #1e6b41; --methode-f: #e3ede6; }
.methode__item--p { --methode-c: #8a5000; --methode-f: #f5ecda; }
.methode__item--c { --methode-c: #2f4b7c; --methode-f: #e5eaf3; }
.methode__item--n { --methode-c: #8b2f5f; --methode-f: #f2e5ed; }

.methode__legende { list-style: none; margin: var(--e-3) 0 0; padding: 0; display: flex;
                    flex-wrap: wrap; gap: var(--e-2) var(--e-5); font-size: var(--t-sm); }

.methode__legende-item > a { color: inherit; text-decoration-color: var(--bordure-forte);
                             text-underline-offset: 0.2em; }
.methode__legende-item > a:hover { text-decoration-color: currentColor; }

.methode__bande {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  letter-spacing: var(--ls-ui);
  text-transform: uppercase;
  text-align: start;
  background: var(--surface);
  scroll-margin-block-start: var(--decalage-sommaire, 5rem);
}
.methode__pastille {
  display: inline-block;
  inline-size: 0.85em;
  block-size: 0.85em;
  border-radius: 2px;
  vertical-align: -0.05em;
  border: 2px solid currentColor;
}
.methode__pastille--v { color: #1e6b41; background: #e3ede6; }
.methode__pastille--p { color: #8a5000; background: #f5ecda; }
.methode__pastille--c { color: #2f4b7c; background: #e5eaf3; }
.methode__pastille--n { color: #8b2f5f; background: #f2e5ed; }
@media (max-width: 61.999rem) {
  .methode__axe { display: none; }
  .methode__grille { display: block; min-inline-size: 0; }
  .methode__item { margin-block-end: var(--e-2); }
  .methode { overflow-x: visible; }
}

@media print {
  .methode { overflow: visible; }
  .methode__grille, .methode__axe { min-inline-size: 0; }
}
.relation__plus {
  font: inherit;
  font-size: var(--t-sm);
  color: var(--texte-doux);
  background: none;
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
  padding: 0.15em 0.6em;
  margin-block-start: 0.3em;
  cursor: pointer;
}
.relation__plus:hover { color: var(--texte); border-color: var(--bordure-forte); }
.relation__plus:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.sous-vues > summary {
  cursor: pointer;
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
.sous-vues > summary:hover { color: var(--texte); }
.sous-vues > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.sous-vues__liste {
  list-style: none;
  margin: var(--e-2, 0.5rem) 0 0;
  padding: 0;
  columns: 22rem auto;
  column-gap: var(--e-5);
  font-size: var(--t-sm);
}
.sous-vues__liste li { break-inside: avoid; margin-block-end: 0.15em; }
.sous-vue { color: var(--texte-doux); }
.sous-vue:hover { color: var(--texte); }
.sous-vue[aria-current="page"] { color: var(--texte); font-weight: 600; }
.legende__replie > summary {
  cursor: pointer;
  font-size: var(--t-sm);
  color: var(--texte-doux);
  margin-block-start: var(--e-2, 0.5rem);
}
.legende__replie > summary:hover { color: var(--texte); }
.legende__replie > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

@media print { .legende__replie > summary { list-style: none; color: var(--texte); } }
.reprise {
  margin: var(--e-2, 0.5rem) 0 var(--e-4, 1rem);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  display: flex;
  flex-wrap: wrap;
  gap: 0.6em;
  align-items: baseline;
}
.reprise__lien { color: var(--texte); }
.reprise__fermer {
  font: inherit;
  color: var(--texte-doux);
  background: none;
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
  padding: 0.1em 0.5em;
  cursor: pointer;
}
.reprise__fermer:hover { color: var(--texte); border-color: var(--bordure-forte); }
.reprise__fermer:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media print { .reprise { display: none; } }
.sommaire__n3 {
  margin-inline-start: var(--e-4, 1rem);
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
.figure__agrandir { display: block; cursor: zoom-in; }
.figure__agrandir:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.renvoi {
  color: var(--lien);
  text-decoration: underline dotted;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.18em;
  text-decoration-color: var(--bordure-forte);
}
.renvoi:hover,
.renvoi:focus-visible { text-decoration: underline solid; }
.renvoi:visited { color: var(--lien-visite); }
.avis {
  margin: var(--e-3, 0.75rem) 0;
  padding: var(--e-2, 0.5rem) var(--e-3, 0.75rem);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  background: var(--surface-creuse);
  border-inline-start: 3px solid var(--fam-externalites);
  border-radius: var(--r-2);
  color: var(--texte);
}
.avis--erreur { border-inline-start-color: var(--h-abroge); }

.avis--attente {
  border-inline-start-color: var(--bordure-forte);
  color: var(--texte-doux);
}
.corpus-bloc {
  inline-size: min(100% - 2 * var(--e-4), var(--page, 72rem));
  margin-block: var(--e-6, 2.5rem);
  margin-inline: auto;
  padding-block-start: var(--e-5, 1.75rem);
  border-block-start: 1px solid var(--bordure);
}
.corpus-bloc > * { max-inline-size: var(--mesure); }
.corpus-bloc__titre {
  font-family: var(--f-sans);
  font-size: var(--t-md);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--ls-caps);
  color: var(--texte-doux);
  margin-block-end: var(--e-2, 0.5rem);
}
.corpus-bloc__note {
  font-size: var(--t-sm);
  color: var(--texte-doux);
  margin-block-end: var(--e-3, 0.75rem);
}

.corpus { position: relative; }
.corpus__etiquette {
  display: block;
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  margin-block-end: var(--e-1, 0.25rem);
}
.corpus__champ {
  inline-size: 100%;
  
  font-size: var(--t-champ);
  font-family: var(--f-sans);
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  padding: 0.55rem 0.7rem;
  min-block-size: 2.75rem;   
}
.corpus__champ:disabled { color: var(--texte-doux); background: var(--surface-creuse); }

.corpus__exemples {
  margin-block-start: var(--e-2, 0.5rem);
  font-size: var(--t-sm);
  color: var(--texte-doux);
}
.corpus__exemple {
  font: inherit;
  color: var(--lien);
  background: none;
  border: 0;
  padding: 0.2em 0;
  cursor: pointer;
  text-decoration: underline dotted;
  text-underline-offset: 0.18em;
}
.corpus__exemple:hover { text-decoration: underline solid; }
.corpus__vide-detail { margin: 0.25rem 0 0; font-size: var(--t-sm); color: var(--texte-doux); }

.corpus__statut, .corpus__vide {
  font-size: var(--t-sm);
  color: var(--texte-doux);
  margin-block-start: var(--e-2, 0.5rem);
}
.corpus__vide strong { color: var(--texte); }
.corpus__filtre {
  margin: var(--e-2, 0.5rem) 0 0;
  font-size: var(--t-sm);
  color: var(--texte-doux);
}

.corpus__filtre-choix {
  font: inherit;
  color: var(--texte);
  background: var(--surface);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
  padding: 0.15em 0.4em;
  max-inline-size: min(28rem, 100%);
}
.corpus__filtre-choix:focus-visible {
  outline: 2px solid var(--focus, currentColor);
  outline-offset: 2px;
}
.corpus__quota {
  margin: var(--e-1, 0.25rem) 0 0;
  font-size: var(--t-sm);
  color: var(--texte-doux);
}

.corpus__statut--annonce-seule {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.corpus__liste {
  list-style: none;
  margin: var(--e-2, 0.5rem) 0 0;
  padding: 0;
  max-block-size: 26rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
  background: var(--surface);
}
.corpus__resultat {
  padding: var(--e-3, 0.75rem);
  border-block-end: 1px solid var(--bordure);
  cursor: pointer;
}
.corpus__resultat:last-child { border-block-end: 0; }
.corpus__resultat:hover,
.corpus__resultat.est-actif { background: var(--surface-creuse); }
.corpus__contexte {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  margin: 0 0 0.25rem;
}
.corpus__chapitre, .corpus__page { color: var(--texte-doux); }
.corpus__extrait {
  margin: 0;
  font-size: var(--t-sm);
  line-height: var(--i-normal);
}
.corpus__extrait mark {
  background: var(--surface-creuse);
  color: var(--texte);
  border-radius: var(--r-1);
  padding: 0 0.1em;
}
.corpus__assistant-bouton {
  margin-block-start: var(--e-3, 0.75rem);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte);
  background: var(--surface-creuse);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2);
  padding: 0.4rem 0.8rem;
  cursor: pointer;
  min-block-size: 2.75rem;   
}
.corpus__assistant-bouton:hover { background: var(--surface-creuse); }
.corpus__assistant-bouton:disabled { opacity: 0.55; cursor: progress; }

.corpus__mention-ia {
  font-size: var(--t-xs);
  color: var(--texte-doux);
  margin-block-start: var(--e-2, 0.5rem);
  max-inline-size: 42em;
}

.corpus__assistant {
  margin-block-start: var(--e-3, 0.75rem);
  padding: var(--e-3, 0.75rem);
  border: 1px solid var(--bordure);
  border-inline-start: 3px solid var(--bordure-forte);
  border-radius: var(--r-3);
  background: var(--surface);
}
.corpus__reponse { margin: 0; line-height: var(--i-lecture); }

.corpus__reponse--en-cours {
  border-inline-start: 2px solid var(--bordure);
  padding-inline-start: 0.6em;
  color: var(--texte-doux);
}
@media (prefers-reduced-motion: reduce) { .corpus__reponse--en-cours { transition: none; } }

.corpus__citation {
  font-size: 0.8em;
  vertical-align: super;
  padding: 0 0.15em;
  text-decoration: none;
  color: var(--c-or-fonce);
}
.corpus__citation:hover, .corpus__citation:focus-visible { text-decoration: underline; }
.corpus__sources-titre {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  text-transform: uppercase;
  letter-spacing: var(--ls-caps);
  color: var(--texte-doux);
  margin-block: var(--e-3, 0.75rem) var(--e-1, 0.25rem);
}
.corpus__sources { margin: 0; padding-inline-start: var(--e-4, 1rem); font-size: var(--t-sm); }
.corpus__sources li { margin-block-end: 0.2rem; }
.corpus__assistant-pied {
  margin-block-start: var(--e-3, 0.75rem);
  font-size: var(--t-xs);
  color: var(--texte-doux);
}
.corpus__attente { margin: 0; font-size: var(--t-sm); color: var(--texte-doux); }

.corpus__alerte {
  margin: 0;
  font-size: var(--t-sm);
  color: var(--texte);
  border-inline-start: 3px solid var(--fam-externalites);
  padding-inline-start: var(--e-3, 0.75rem);
}

@media (prefers-reduced-motion: reduce) {
  .corpus__assistant-bouton { transition: none; }
}
.ouverture { padding-block: var(--e-11) var(--e-8); }
.ouverture h1 { max-inline-size: 17ch; font-size: var(--t-4xl); }
.ouverture__accroche {
  font-size: var(--t-lg); color: var(--texte-doux);
  max-inline-size: 44rem; margin-block-start: var(--e-6);
}
.ouverture__signature {
  font-family: var(--f-sans); font-size: var(--t-md); color: var(--texte-doux);
  max-inline-size: 44rem; margin-block-start: var(--e-5);
}
.ouverture__signature strong { color: var(--texte); font-weight: 600; }
.filet-or { block-size: 2px; inline-size: 4rem; background: var(--bordure-forte);
            border: 0; margin: var(--e-7) 0 0; }
.chaine-bloc { padding-block: var(--e-8) var(--e-10); }
.chaine-cadre { position: relative; }
.chaine-cadre {
  margin-block-start: var(--e-7);
  padding-block: var(--e-8) var(--e-5);
  border-block: 1px solid var(--bordure-forte);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
.chaine {
  position: relative;
  display: grid; grid-template-columns: repeat(7, minmax(8.5rem, 1fr));
  gap: var(--e-2);
  min-inline-size: 62rem;
}
.station { position: relative; min-inline-size: 0; }
.station__rail { block-size: 3px; background: var(--bordure); position: relative;
                 margin-block-end: var(--e-5); }
.station__rail::after {
  content: ""; position: absolute; inset: 0; background: var(--accent-mouvement);
  transform: scaleX(0); transform-origin: left;
}
.station__point {
  position: absolute; inset-block-start: -0.32rem; inset-inline-start: -0.4rem; z-index: 2;
  inline-size: 0.85rem; block-size: 0.85rem; border-radius: 50%;
  background: var(--fond); border: 2px solid var(--bordure-forte);
}
.station__sigle {
  display: block; font-family: var(--f-sans); font-size: var(--t-xs);
  font-weight: 700; letter-spacing: var(--ls-caps); color: var(--or-texte);
}
.station__verbe { display: block; font-size: var(--t-lg); font-weight: 600;
                  margin-block-start: 0.1em; }
.station__nom { display: block; font-size: var(--t-sm); color: var(--texte-doux);
                margin-block-start: 0.25em; line-height: 1.35; }
.station__interdit {
  display: block; font-family: var(--f-sans); font-size: var(--t-xs);
  color: var(--texte-doux); margin-block-start: var(--e-3);
  padding-block-start: var(--e-2); border-block-start: 1px solid var(--bordure);
  line-height: 1.4;
}

.station__interdit::before {
  content: "Mandat négatif";
  display: block; color: var(--accent-mouvement); font-weight: 700;
  font-size: 0.9em; letter-spacing: var(--ls-caps); text-transform: uppercase;
  margin-block-end: 0.25em;
}
.station a { text-decoration: none; display: block; }
.station a:hover .station__verbe { text-decoration: underline;
                                   text-decoration-color: var(--bordure-forte); }

.dossier {
  position: absolute; inset-block-start: -1.9rem; inset-inline-start: 0;
  font-family: var(--f-sans); font-size: var(--t-xs); font-weight: 700;
  letter-spacing: var(--ls-caps); text-transform: uppercase;
  color: var(--fond); background: var(--accent-mouvement);
  padding: 0.22em 0.55em; border-radius: var(--r-2); white-space: nowrap; opacity: 0;
}
.chaine.joue .station__rail::after { animation: rail 1.05s var(--courbe) forwards; }
.chaine.joue .station__point       { animation: point 0.45s var(--courbe) forwards; }
.chaine.joue .station__verbe       { animation: monte 0.45s var(--courbe) backwards; }
.chaine.joue .station:nth-of-type(1) * { animation-delay: 0s; }
.chaine.joue .station:nth-of-type(2) * { animation-delay: 0.5s; }
.chaine.joue .station:nth-of-type(3) * { animation-delay: 1s; }
.chaine.joue .station:nth-of-type(4) * { animation-delay: 1.5s; }
.chaine.joue .station:nth-of-type(5) * { animation-delay: 2s; }
.chaine.joue .station:nth-of-type(6) * { animation-delay: 2.5s; }
.chaine.joue .station:nth-of-type(7) * { animation-delay: 3s; }
.chaine.joue .dossier { animation: voyage 4s var(--courbe) forwards; }

@keyframes rail  { to { transform: scaleX(1); } }
@keyframes point { to { background: var(--accent-mouvement); border-color: var(--accent-mouvement);
                        box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent-mouvement) 16%, transparent); } }
@keyframes monte { from { opacity: 0; transform: translateY(0.4rem); } to { opacity: 1; transform: none; } }
@keyframes voyage {
  0%   { opacity: 0; inset-inline-start: 0; }
  5%   { opacity: 1; }
  100% { opacity: 1; inset-inline-start: calc(100% - 9.5rem); }
}

.rejouer { display: none; }
.js .rejouer { display: inline-flex; }
.rejouer {
  font-family: var(--f-sans); font-size: var(--t-md); font-weight: 600;
  background: transparent; color: var(--texte); border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2); padding: 0.6em 1.1em; cursor: pointer;
  margin-block-start: var(--e-5);
}
.rejouer:hover { border-color: var(--bordure-forte); }

.livre {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(var(--piste-etroite), 1fr));
  border-block: 1px solid var(--bordure-forte); margin-block-start: var(--e-7);
}
.poste { padding: var(--e-5) var(--e-4) var(--e-4); border-inline-end: 1px solid var(--bordure); }
.poste:last-child { border-inline-end: 0; }
.poste a { text-decoration: none; display: block; }
.poste a:hover .poste__val { color: var(--accent-mouvement); }
.poste__val {
  display: block; font-family: var(--f-mono); font-variant-numeric: tabular-nums lining-nums;
  font-size: clamp(1.9rem, 1.3rem + 1.9vw, 2.85rem); font-weight: 600; line-height: 1;
  transition: color 160ms var(--courbe);
}
.poste__lib {
  display: block; font-family: var(--f-sans); font-size: var(--t-xs);
  letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--texte-doux);
  margin-block-start: var(--e-3);
}
@media (max-width: 47.99rem) {
  .chaine {
    grid-template-columns: 1fr;
    min-inline-size: 0;
    gap: var(--e-4);
  }
  .chaine-cadre { overflow-x: visible; padding-block: var(--e-5); }
  .station { padding-block-end: var(--e-4); border-block-end: 1px solid var(--bordure); }
  .station:last-child { border-block-end: 0; }
  .station__rail { margin-block-end: var(--e-3); }
  .dossier { display: none; }
  .chaine.joue .station__rail::after { animation-duration: 0.6s; }
  .chiffres { grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); }
  .ouverture h1, .accueil__intro h1 { font-size: var(--t-3xl); }
}
:target {
  scroll-margin-block-start: 6rem;
  animation: repere-cible 2.4s var(--courbe) 1;
}
@keyframes repere-cible {
  0%, 60% { background: color-mix(in srgb, var(--accent-mouvement) 14%, transparent); }
  100%    { background: transparent; }
}
@media (prefers-reduced-motion: reduce) {
  :target { animation: none; box-shadow: inset 3px 0 0 var(--accent-mouvement); }
}
@media (max-width: 56rem) {
  :lang(en) .temple-cadre::after,
  :lang(en) figure:has(> .temple)::after {
    content: "Drag the plate to see all seven columns →";
  }
}
.avis-langue {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  border-inline-start: 3px solid var(--bordure-forte);
  padding-inline-start: var(--e-3);
  margin-block: 0 var(--e-6);
}
.table-cadre th,
.table-cadre td { overflow-wrap: normal; hyphens: manual; }
.table-cadre table.table--c3,
.table-cadre table.table--c4,
.table-cadre table.table--c5,
.table-cadre table.table--c6 { min-inline-size: 40rem; }
.table-cadre table.table--c3 th:first-child,
.table-cadre table.table--c4 th:first-child { inline-size: 30%; }
.table-cadre table.table--c5 th:first-child,
.table-cadre table.table--c6 th:first-child { inline-size: 22%; }
@media (max-width: 48rem) {
  .table-cadre table.table--c3,
  .table-cadre table.table--c4,
  .table-cadre table.table--c5,
  .table-cadre table.table--c6 { min-inline-size: 44rem; }
}
.accueil__definition {
  font-size: var(--t-lg);
  line-height: 1.45;
  max-inline-size: var(--mesure);
  margin-block: var(--e-4) var(--e-5);
}
.accueil__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-3);
  margin-block: 0 var(--e-6);
}
.accueil__actions .bouton { font-size: var(--t-md); }
a.dossier {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  text-decoration-thickness: 0.05em;
}
.bandeau nav .nav--principal a {
  background: var(--texte);
  color: var(--texte-inverse);
  padding: 0.4rem 0.9rem;
  border-radius: var(--r-2, 4px);
  text-decoration: none;
  font-weight: 600;
}
.bandeau nav .nav--principal a:hover,
.bandeau nav .nav--principal a:focus-visible {
  background: color-mix(in srgb, var(--texte) 86%, var(--fond));
}
.bandeau nav .nav--principal a[aria-current] {
  color: var(--texte-inverse);
  box-shadow: inset 0 -3px 0 var(--bordure-forte);
}
.bandeau__menu-bouton { display: none; }
@media (max-width: 56rem) {
  .js .bandeau__menu-bouton {
    display: inline-flex;
    align-items: center;
    gap: var(--e-2);
    min-block-size: 2.75rem;
    padding-inline: var(--e-3);
    margin-inline-start: auto;
    font-family: var(--f-sans);
    font-size: var(--t-sm);
    border: 1px solid var(--bordure-forte);
    border-radius: var(--r-2, 4px);
    background: var(--surface);
    color: var(--texte);
  }
  .js .bandeau nav { flex-basis: 100%; }
  .js .bandeau nav ul { display: none; flex-direction: column; gap: 0; }
  .js .bandeau nav ul li a { display: block; padding-block: 0.65rem; }
  .js .bandeau--ouvert nav ul { display: flex; }
  .js .bandeau--ouvert .bandeau__langue-item { margin-inline-start: 0; }
}
.parcours-barre {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-2) var(--e-4);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  padding: var(--e-3) var(--e-4);
  margin-block: 0 var(--e-6);
  border: 1px solid var(--bordure);
  border-inline-start: 4px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
  background: var(--surface);
}
.parcours-barre__titre { font-weight: 600; }
.parcours-barre__etape { color: var(--texte-doux); }
.parcours-barre__nav { display: flex; gap: var(--e-3); margin-inline-start: auto; }
.parcours-barre__nav a[aria-disabled="true"] { color: var(--texte-doux); pointer-events: none; text-decoration: none; }
.parcours-barre__pas { display: flex; gap: 0.3rem; }
.parcours-barre__pas span {
  inline-size: 1.25rem; block-size: 0.35rem; border-radius: 2px;
  background: var(--bordure);
}
.parcours-barre__pas span.fait { background: var(--bordure-forte); }
.texte > .sommaire li { margin-block: var(--e-2); line-height: 1.35; }
.texte > .sommaire a[aria-current="true"] {
  display: inline-block;
  background: var(--surface-creuse);
  padding: 0.1rem var(--e-2);
  margin-inline-start: calc(-1 * var(--e-2));
  border-radius: var(--r-1, 2px);
}

@media print {
  .texte > .sommaire { display: none; }
  .avis-langue, .auteur-pied, .parcours-barre { display: none; }
}
@media (max-width: 48rem) {
  #vues { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: var(--e-2); padding-block-end: var(--e-2); }
  #vues > * { flex: 0 0 auto; }
}
.diagramme__aide { margin-block: var(--e-2) 0; }
.table-cadre { border-color: var(--bordure-forte); }
details.voisins-repli > summary { cursor: pointer; font-family: var(--f-sans); font-size: var(--t-sm); }
details.voisins-repli[open] > summary { margin-block-end: var(--e-2); }
.figures__item { display: flex; gap: var(--e-4); align-items: flex-start; margin-block: var(--e-4); }
.figures__vignette { flex: 0 0 auto; }
.figures__vignette img { inline-size: 12rem; block-size: auto; border: 1px solid var(--bordure); background: var(--surface); }
.figures__legende { color: var(--texte-doux); }
.auteur-pied {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  border-block-start: 1px solid var(--bordure);
  padding-block-start: var(--e-4);
  margin-block-start: var(--e-8);
}
.corpus__assistant-tete { font-family: var(--f-sans); font-size: var(--t-sm); color: var(--texte-doux); }
.filtre-table { margin-block: var(--e-4); }
.filtre-table input { inline-size: min(100%, 28rem); }
.filtre-table__compte { font-family: var(--f-sans); font-size: var(--t-sm); color: var(--texte-doux); margin-inline-start: var(--e-3); }
td.statut-m { font-family: var(--f-sans); font-weight: 600; white-space: nowrap; }
td.statut-m1 { background: color-mix(in srgb, var(--surface-creuse) 20%, transparent); }
td.statut-m2 { background: color-mix(in srgb, var(--surface-creuse) 40%, transparent); }
td.statut-m3 { background: color-mix(in srgb, var(--surface-creuse) 60%, transparent); }
td.statut-m4 { background: color-mix(in srgb, var(--surface-creuse) 80%, transparent); }
td.statut-m5 { background: var(--surface-creuse); }

@media (max-width: 48rem) { .chiffres__valeur { font-size: 2rem; } }

ul.historique { font-family: var(--f-sans); font-size: var(--t-sm); }
#vues { counter-reset: vue; }
#vues > a::before { counter-increment: vue; content: counter(vue) " · "; color: var(--texte-doux); font-variant-numeric: tabular-nums; }

.texte h2::before { content: ""; display: block; inline-size: 2.5rem; block-size: 3px; background: var(--bordure-forte); margin-block-end: var(--e-3); }

.corpus-bloc { max-inline-size: 60rem; margin-inline: auto; }

.table-telecharger { font-family: var(--f-sans); font-size: var(--t-sm); margin-block: calc(-1 * var(--e-3)) var(--e-6); }

.sommaire__position { font-family: var(--f-sans); font-size: var(--t-xs); color: var(--texte-doux); margin: 0 0 var(--e-2); }

.retour-renvoi { font-family: var(--f-sans); font-size: var(--t-sm); margin-block: 0 var(--e-5); }
@media (min-width: 68rem) {
  .texte > .sommaire a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .sommaire__tiroir > summary { display: none; }
}
.sommaire__tiroir > summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--texte);
  padding-block: var(--e-1);
}
.sommaire__tiroir > summary:hover { color: var(--lien); }
.sommaire__tiroir > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (forced-colors: active) { .sommaire__tiroir > summary { color: LinkText; } }
.index-ouvrage { font-family: var(--f-sans); font-size: var(--t-sm); }
.index-ouvrage ol { list-style: none; margin: 0; padding: 0; }
.index-ouvrage a[aria-current="true"] { font-weight: 600; color: var(--texte); }
.liste-index__lu {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  margin-inline-start: 0.6em;
  white-space: nowrap;
}
.autour {
  margin-block-start: var(--e-6);
  padding-block-start: var(--e-3);
  border-block-start: 1px solid var(--bordure);
}
.texte__outils {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  line-height: var(--i-normal);
  color: var(--texte-doux);
}
.texte__outils a { color: inherit; }
.citer {
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  color: var(--texte-doux);
  margin-block: var(--e-3) var(--e-5);
}
.citer > summary { cursor: pointer; color: var(--texte); }
.citer > summary:hover { color: var(--lien); }
.citer > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.citer__texte { margin-block: var(--e-3) var(--e-2); color: var(--texte); }
.citer__bibtex {
  font-size: var(--t-xs);
  line-height: 1.45;
  overflow-x: auto;
  padding: var(--e-3);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
  background: var(--surface, var(--fond));
}
.citer__bibtex:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.texte > .encadre {
  max-inline-size: var(--mesure);
  margin-block: var(--e-5);
  padding: var(--e-4) var(--e-5);
  background: var(--surface, var(--fond));
  border: 1px solid var(--bordure);
  border-inline-start: 4px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
}
.encadre > p { margin-block-end: 0; font-size: calc(var(--t-base) * 0.95); }
.encadre > p > strong:first-child,
.encadre > p > em:first-child {
  font-style: normal;
  display: block;
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  letter-spacing: var(--ls-ui);
  color: var(--texte-doux);
  margin-block-end: var(--e-2);
}
.encadre--fait        { border-inline-start-color: #2f6f4e; }
.encadre--programme   { border-inline-start-color: #1f5f8b; }
.encadre--proposition { border-inline-start-color: #8a6d1f; }
.encadre--objection   { border-inline-start-color: #9b3b2e; }
.encadre--critere     { border-inline-start-color: #5b4b8a; }
@media (forced-colors: active) { .texte > .encadre { border-inline-start-color: CanvasText; } }
@media print { .texte > .encadre { break-inside: avoid; } }
.texte abbr[title] {
  text-decoration: underline dotted;
  text-decoration-color: var(--bordure-forte);
  text-underline-offset: 0.16em;
  cursor: help;
}
@media (hover: none) {
  .ancre-para { opacity: 0; }
  p.ancre-visible > .ancre-para { opacity: 1; }
}
.texte--sequence { counter-reset: etape; }
.texte--sequence > p[id] {
  counter-increment: etape;
  position: relative;
  padding-inline-start: 3.25rem;
  margin-block-end: var(--e-5);
}
.texte--sequence > p[id]::before {
  content: counter(etape);
  position: absolute;
  inset-inline-start: 0;
  inset-block-start: -0.1em;
  font-family: var(--f-sans);
  font-size: var(--t-2xl);
  font-weight: 600;
  line-height: 1;
  color: var(--texte-doux);
  opacity: 0.6;
}
@media (max-width: 47.99rem) {
  .texte--sequence > p[id] { padding-inline-start: 2.25rem; }
  .texte--sequence > p[id]::before { font-size: var(--t-xl); }
}
.sequence__etape {
  position: sticky;
  inset-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-2));
  z-index: 2;
  inline-size: fit-content;
  margin-block: 0 var(--e-4);
  padding: 0.2em 0.7em;
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--texte-doux);
  background: var(--fond);
  border: 1px solid var(--bordure);
  border-radius: 999px;
}
@media print { .sequence__etape { display: none; } }
.apercu-ref {
  position: absolute;
  z-index: 30;
  max-inline-size: min(22rem, calc(100vw - 2rem));
  padding: var(--e-3) var(--e-4);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  line-height: var(--i-normal);
  color: var(--texte);
  background: var(--fond);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.14);
}
.apercu-ref p { margin: 0 0 var(--e-2); }
.apercu-ref p:last-child { margin: 0; }
.apercu-ref__annee { color: var(--texte-doux); }
.apercu-ref__lien { font-size: var(--t-xs); }
@media print { .apercu-ref { display: none; } }
.refs-outils {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-3) var(--e-5);
  align-items: end;
  margin-block: var(--e-3) var(--e-5);
  padding: var(--e-3) var(--e-4);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  background: var(--surface, var(--fond));
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
}
.refs-outils__champ { margin: 0; display: flex; flex-direction: column; gap: var(--e-1); }
.refs-outils label { color: var(--texte-doux); }
.refs-outils input,
.refs-outils select {
  font: inherit;
  color: var(--texte);
  background: var(--fond);
  border: 1px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
  padding: 0.35em 0.6em;
  min-inline-size: 12rem;
  max-inline-size: 100%;
}
.refs-outils input:focus-visible,
.refs-outils select:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.refs-outils__compte { inline-size: 100%; margin: 0; color: var(--texte-doux); }
.ref--masquee { display: none; }
.groupe--vide { display: none; }
@media print { .refs-outils { display: none; } .ref--masquee { display: list-item; } }
.adresse-copiable { user-select: all; font-size: 0.95em; }
td.magnitude .jauge {
  display: block;
  block-size: 5px;
  max-inline-size: 9rem;
  margin-block-end: 0.4em;
  border-radius: 3px;
  background: var(--bordure-forte);
}
.jauge--1 { inline-size: 10%; }  .jauge--2 { inline-size: 20%; }  .jauge--3 { inline-size: 30%; }
.jauge--4 { inline-size: 40%; }  .jauge--5 { inline-size: 50%; }  .jauge--6 { inline-size: 60%; }
.jauge--7 { inline-size: 70%; }  .jauge--8 { inline-size: 80%; }  .jauge--9 { inline-size: 90%; }
.jauge--10 { inline-size: 100%; }
@media (forced-colors: active) { td.magnitude .jauge { background: CanvasText; } }
table td.source { font-size: var(--t-xs); color: var(--texte-doux); line-height: 1.45; }
table caption .numero { font-family: var(--f-sans); font-weight: 600; color: var(--texte); letter-spacing: var(--ls-ui); }
.table-avis {
  display: none;
  margin: 0;
  padding: var(--e-2) var(--e-4) 0;
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  color: var(--texte-doux);
}
.table-cadre--deborde > .table-avis { display: block; }
@media print { .table-avis { display: none !important; } }
.table-cadre--long { max-block-size: 75svb; overflow-y: auto; }
.table-cadre--long thead th {
  position: sticky;
  inset-block-start: 0;
  z-index: 1;
  background: var(--surface, var(--fond));
}
@media print { .table-cadre--long { max-block-size: none; overflow: visible; } }
@media (max-width: 30rem) {
  .table-cadre table.table--fiches { min-inline-size: 0; inline-size: 100%; }
  .table-cadre table.table--fiches thead {
    position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden;
    clip: rect(0 0 0 0); white-space: nowrap;
  }
  .table-cadre table.table--fiches tr {
    display: block;
    padding-block: var(--e-2);
    border-block-end: 2px solid var(--bordure-forte);
  }
  .table-cadre table.table--fiches tbody tr:nth-child(even) { background: transparent; }
  .table-cadre table.table--fiches th,
  .table-cadre table.table--fiches td {
    display: block;
    border: 0;
    padding: var(--e-1) var(--e-3);
  }
  .table-cadre table.table--fiches td.nombres { text-align: start; }
  .table-cadre table.table--fiches td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-family: var(--f-sans);
    font-size: var(--t-xs);
    letter-spacing: var(--ls-ui);
    color: var(--texte-doux);
  }
  .table-cadre:has(> table.table--fiches) > .table-avis { display: none; }
}
.bandeau__titre a { display: inline-flex; align-items: center; gap: 0.5em; }
.sceau { inline-size: 1.6em; block-size: 1.6em; color: var(--texte); flex: none; }
.picto {
  inline-size: 1em; block-size: 1em;
  vertical-align: -0.15em;
  margin-inline-end: 0.35em;
  color: currentColor;
}
.bandeau__langue .picto { margin-inline-end: 0.3em; vertical-align: -0.2em; }
.bandeau nav a, body > header nav a { font-size: var(--t-sm); }
.bandeau--accueil nav a:not([aria-current]):not(.bandeau__langue) { color: var(--texte-doux); }
.bandeau--accueil nav a:not([aria-current]):hover { color: var(--texte); }
.pied { font-size: var(--t-xs); }
.pied h2, .pied h3 { font-size: var(--t-sm); }
.accueil__definition {
  color: var(--texte);
  font-size: var(--t-md);
  padding-inline-start: var(--e-4);
  border-inline-start: 3px solid var(--bordure-forte);
}
.accueil__schema {
  display: block;
  max-inline-size: 44rem;
  margin-block: var(--e-5) var(--e-4);
  text-decoration: none;
}
.accueil__schema .schema-compact { inline-size: 100%; block-size: auto; }
.accueil__schema:hover circle, .accueil__schema:focus-visible circle { fill: var(--lien, #1F4E79); }
.accueil__schema:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
@media (max-width: 48rem) {
  
  .accueil__schema { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .accueil__schema .schema-compact { min-inline-size: 38rem; }
}
.temple__sigles { display: none; font-family: var(--f-sans); font-size: var(--t-sm); letter-spacing: var(--ls-ui); }
@media (max-width: 48rem) { .temple__sigles { display: block; } }
.temple__cle { font-family: var(--f-sans); font-size: var(--t-sm); color: var(--texte-doux); }
.couverture {
  margin: 0 0 var(--e-6);
  max-inline-size: 18rem;
  border: 1px solid var(--bordure);
  box-shadow: var(--o-2, 0 8px 24px rgba(0, 0, 0, 0.12));
  background: #F4EBD7;
}
.couverture img { display: block; inline-size: 100%; block-size: auto; }
@media (min-width: 62rem) {
  .couverture { float: inline-end; margin: 0 0 var(--e-5) var(--e-6); }
}
.texte h2 .numero, .texte h3 .numero {
  font-family: var(--f-sans);
  font-size: 0.7em;
  font-weight: 600;
  letter-spacing: var(--ls-caps);
  color: var(--bordure-forte);
  margin-inline-end: 0.3em;
}
.glossaire { margin-block: var(--e-5); }
.glossaire__entree {
  padding-block: var(--e-3);
  border-block-end: 1px solid var(--bordure);
  max-inline-size: var(--mesure);
}
.glossaire dt { font-weight: 700; font-family: var(--f-serif); font-size: var(--t-md); margin: 0; }
.glossaire dd { margin: var(--e-1) 0 0; }
.glossaire__ou { font-family: var(--f-sans); font-size: var(--t-xs); }
.guide-annexes { margin-block: var(--e-3) var(--e-5); font-family: var(--f-sans); font-size: var(--t-sm); }
.guide-annexes h3 { font-size: var(--t-sm); margin: 0 0 var(--e-2); }
.guide-annexes ul { margin: 0; padding-inline-start: var(--e-4); }
.methode__cle { font-family: var(--f-sans); font-size: var(--t-sm); }
.diagramme__glossaire { font-family: var(--f-sans); font-size: var(--t-sm); }
.bandeau__langue-item { margin: 0 0 0 auto; order: 2; }
.bandeau nav { order: 1; }
.bandeau__menu-bouton { order: 3; }
@media (max-width: 56rem) {
  
  .js .bandeau nav { order: 5; }
  .js .bandeau__menu-bouton { margin-inline-start: auto; }
  .js .bandeau--ouvert .bandeau__langue-item { margin-inline-start: auto; }
}
@media (max-width: 61.999rem) {
  #vues {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    padding-block-end: var(--e-1);
    background-image:
      linear-gradient(to right, var(--fond) 30%, rgba(255, 255, 255, 0)),
      linear-gradient(to right, rgba(255, 255, 255, 0), var(--fond) 70%),
      linear-gradient(to right, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0)),
      linear-gradient(to left, rgba(0, 0, 0, 0.12), rgba(0, 0, 0, 0));
    background-position: 0 0, 100% 0, 0 0, 100% 0;
    background-repeat: no-repeat;
    background-size: 2rem 100%, 2rem 100%, 0.75rem 100%, 0.75rem 100%;
    background-attachment: local, local, scroll, scroll;
  }
  #vues > * { flex: 0 0 auto; white-space: nowrap; }
}
#legende .legende__liste li[hidden] { display: none; }
.legende__note { font-family: var(--f-sans); font-size: var(--t-xs); margin-block: var(--e-2) 0; }
.alt__plus { font-family: var(--f-sans); font-size: var(--t-xs); white-space: nowrap; }
.table-noeuds__section { margin-block: var(--e-6); }
.table-noeuds__section h2 { display: flex; align-items: center; gap: var(--e-2); font-size: var(--t-xl); }
.table-noeuds__section[hidden] { display: none; }
#alternative .table-cadre { margin-block: var(--e-3) 0; }
:root {
  
  --page: 72rem;
  --page-large: 78rem;
  
  --t-sm: 0.8333rem;
  --t-xs: 0.7407rem;
  
  --ls-texte: 0;
  --ls-ui: 0.02em;
  --ls-caps: 0.1em;
  --ls-caps-large: 0.14em;
  --ls-titre: -0.022em;
  
  --piste-etroite: 11rem;
  --piste-large: 15rem;
  --piste-dense: 7.5rem;
}

.role-etiquette, .surtitre {
  font-family: var(--f-sans);
  font-size: var(--t-xs);
  font-weight: 700;
  letter-spacing: var(--ls-caps-large);
  text-transform: uppercase;
  color: var(--texte-doux);
}
.bandeau__langue { letter-spacing: var(--ls-caps); }
.accueil__intro h1 { letter-spacing: var(--ls-titre); }
#alternative th, table th { letter-spacing: var(--ls-ui); }
section[id^="groupe-"] > ol > li[id] {
  content-visibility: auto;
  contain-intrinsic-block-size: auto 9rem;
}
@media print { section[id^="groupe-"] > ol > li[id] { content-visibility: visible; } }
@media (min-width: 62rem) {
  main.contenu:not(:has(> article.texte)) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--e-7);
    row-gap: var(--e-6);
    align-items: start;
  }
  main.contenu:not(:has(> article.texte)) > * { grid-column: 1 / -1; min-inline-size: 0; }
  main.contenu:not(:has(> article.texte)) > h1 { margin-block-end: 0; }
  main.contenu:not(:has(> article.texte)) > .chapeau { margin-block: 0 var(--e-2); }
  main.contenu:not(:has(> article.texte)) > section {
    grid-column: auto;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-radius: var(--r-3);
    padding: var(--e-5) var(--e-6);
  }
  main.contenu > section:has(.table-cadre),
  main.contenu > section:has(.liste-index),
  main.contenu > section:has(.refs-outils),
  main.contenu > section:has(.figures__item),
  main.contenu > section:has(.chiffres),
  main.contenu > section:has(> section) { grid-column: 1 / -1; }
  main.contenu > section > h2:first-child { margin-block-start: 0; }
  main.contenu > section p,
  main.contenu > section li,
  main.contenu > section dd { max-inline-size: none; }
}
.liste-index {
  columns: auto;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
  gap: var(--e-3);
}
.liste-index > li {
  margin: 0;
  padding: var(--e-3) var(--e-4);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
  transition: border-color var(--d-court) var(--courbe), box-shadow var(--d-court) var(--courbe);
}
.liste-index > li:last-child { border-block-end: 1px solid var(--bordure); }
.liste-index > li:hover { border-color: var(--bordure-forte); box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07); }
.liste-index > li > a:first-child { font-weight: 600; }
.glossaire {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr));
  gap: var(--e-4);
}
.glossaire__entree {
  max-inline-size: none;
  margin: 0;
  padding: var(--e-4);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
}
main.contenu section:has(.figures__item) > ol {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: var(--e-4);
  list-style: none;
  padding: 0;
  margin: var(--e-4) 0 0;
}
.figures__item {
  max-inline-size: none;
  display: flex;
  flex-direction: column;
  gap: var(--e-2);
  padding: var(--e-3);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
}
.figures__vignette img { inline-size: 100%; block-size: auto; border: 1px solid var(--bordure); }
.portes__intro { inline-size: min(100% - 2 * var(--e-4), var(--page)); margin-inline: auto; }
.accueil__actions .bouton--discret { border-color: var(--bordure-forte); color: var(--texte); }
@media (max-width: 48rem) {
  .accueil__actions { display: grid; grid-template-columns: 1fr 1fr; gap: var(--e-2); }
  .accueil__actions .bouton { margin: 0; text-align: center; }
}
.page-diagramme > .contenu { padding-block: var(--e-2); }
.page-diagramme > .contenu:first-child { padding-block-start: var(--e-6); }
.diagramme__entete { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--e-7); align-items: start; }
.diagramme__entete > * { min-inline-size: 0; }
.diagramme__entete .aide-clavier {
  max-inline-size: none;
  padding: var(--e-4) var(--e-5);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
}
.diagramme__entete .aide-clavier p, .diagramme__entete .aide-clavier dd { max-inline-size: none; }
.diagramme__entete details.aide-clavier > summary { font-weight: 600; cursor: pointer; }
.diagramme__entete details.aide-clavier[open] > summary { margin-block-end: var(--e-3); }
@media (max-width: 61.999rem) { .diagramme__entete { grid-template-columns: 1fr; gap: var(--e-3); } }
.page-diagramme > #vues,
.page-diagramme > .diagramme__aide { inline-size: min(100% - 2 * var(--e-4), var(--page)); margin-inline: auto; }
@media (max-width: 47.99rem) {
  .graphe-bouton { inset-block-start: auto; inset-block-end: var(--e-3, 0.75rem); }
}
.n--bloc .n__glyphe { fill: var(--surface); stroke: var(--c); stroke-width: 3; }
.n--bloc:hover .n__glyphe, .n--bloc.n--actif .n__glyphe { fill: var(--surface-creuse); stroke-width: 4; }
.n--bloc .n__etiquette { font-size: 22px; font-weight: 600; fill: var(--texte); stroke: none; }
.n--bloc .n__effectif { font-size: 16px; font-weight: 500; fill: var(--c); }
@media (min-width: 62rem) {
  main.contenu:not(:has(> article.texte)) > section:has(.table-cadre),
  main.contenu:not(:has(> article.texte)) > section:has(.liste-index),
  main.contenu:not(:has(> article.texte)) > section:has(.refs-outils),
  main.contenu:not(:has(> article.texte)) > section:has(.figures__legende),
  main.contenu:not(:has(> article.texte)) > section:has(.chiffres),
  main.contenu:not(:has(> article.texte)) > section:has(> section) { grid-column: 1 / -1; }
}

main.contenu section:has(.figures__legende) > ol {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
  gap: var(--e-3);
  list-style: none;
  padding: 0;
  margin: var(--e-4) 0 0;
}
main.contenu section:has(.figures__legende) > ol > li {
  max-inline-size: none;
  padding: var(--e-3);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2, 4px);
}

.chiffres { background: var(--surface); gap: 0; }
.chiffres__case { box-shadow: inset 0 0 0 0.5px var(--bordure); }
@media (min-width: 62rem) {
  .diagramme__scene:has(#panneau:not([hidden]) > .panneau__invite:only-child) { grid-template-columns: minmax(0, 1fr) 0; }
  #panneau:has(> .panneau__invite:only-child) { visibility: hidden; overflow: hidden; }
}
.legende__invite { font-family: var(--f-sans); font-size: var(--t-sm); color: var(--texte); margin-block-end: var(--e-2); }
.diagramme__sous { display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-6); align-items: baseline; }
.diagramme__sous > * { margin: 0; }
.diagramme__aide { margin: 0; }

.n--bloc .n__etiquette { font-size: 26px; }
.n--bloc .n__effectif { font-size: 18px; }

@media (min-width: 62rem) {
  main.contenu:not(:has(> article.texte)) > figure.couverture { grid-column: auto; float: none; justify-self: center; margin: 0; }
  main.contenu:not(:has(> article.texte)) > section#liminaires { grid-column: auto; }
}

@media (max-width: 47.99rem) { #canevas { block-size: clamp(16rem, 46svb, 30rem); } }
:root { --page-large: 84rem; --marge-droite: 17rem; --marge-gauche: 15rem; }
.texte > .texte__corps { max-inline-size: none; min-inline-size: 0; }
.texte__corps > * { max-inline-size: var(--mesure); }
.texte__corps > h1, .texte__corps > h2, .texte__corps > h3 { max-inline-size: 30em; }
.texte__corps > .pleine-largeur,
.texte__corps > figure.pleine-largeur,
.texte__corps > .table-cadre { max-inline-size: none; }
.texte__corps > .encadre {
  max-inline-size: var(--mesure);
  margin-block: var(--e-5);
  padding: var(--e-4) var(--e-5);
  background: var(--surface, var(--fond));
  border: 1px solid var(--bordure);
  border-inline-start: 4px solid var(--bordure-forte);
  border-radius: var(--r-2, 4px);
}
.texte__corps > .encadre--fait        { border-inline-start-color: #2f6f4e; }
.texte__corps > .encadre--programme   { border-inline-start-color: #1f5f8b; }
.texte__corps > .encadre--proposition { border-inline-start-color: #8a6d1f; }
.texte__corps > .encadre--objection   { border-inline-start-color: #9b3b2e; }
.texte__corps > .encadre--critere     { border-inline-start-color: #5b4b8a; }
.texte--sequence .texte__corps { counter-reset: etape; }
.texte--sequence .texte__corps > p[id] { counter-increment: etape; position: relative; padding-inline-start: 3.25rem; margin-block-end: var(--e-5); }
.texte--sequence .texte__corps > p[id]::before {
  content: counter(etape); position: absolute; inset-inline-start: 0; inset-block-start: -0.1em;
  font-family: var(--f-sans); font-size: var(--t-2xl); font-weight: 600; line-height: 1;
  color: var(--texte-doux); opacity: 0.6;
}
.marge-droite { display: grid; gap: var(--e-4); align-content: start; font-family: var(--f-sans); font-size: var(--t-sm); }
.marge-droite .carte {
  padding: var(--e-4) var(--e-5);
  background: var(--surface);
  border: 1px solid var(--bordure);
  border-radius: var(--r-3);
}
.marge-droite .carte h2 { font-family: var(--f-sans); font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-caps); text-transform: uppercase; color: var(--texte-doux); margin: 0 0 var(--e-3); }
.marge-droite ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--e-2); }
.marge-droite li, .marge-droite p { max-inline-size: none; margin: 0; line-height: var(--i-normal); }
.marge-droite p + p { margin-block-start: var(--e-2); }
@media (min-width: 68rem) {
  .texte:has(> .texte__corps) {
    display: grid;
    grid-template-columns: minmax(0, var(--marge-gauche)) var(--e-6) minmax(0, 1fr);
    justify-content: center;
    align-items: start;
  }
  .texte:has(> .texte__corps) > .sommaire { grid-column: 1; grid-row: 1; }
  .texte:has(> .texte__corps) > .texte__corps { grid-column: 3; grid-row: 1; }
  .texte:has(> .texte__corps) > .marge-droite { grid-column: 3; grid-row: 2; margin-block-start: var(--e-6); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .texte:has(> .texte__corps) > .sommaire { max-inline-size: none; }
}
@media (min-width: 78rem) {
  .texte:has(> .texte__corps) {
    grid-template-columns: minmax(0, var(--marge-gauche)) var(--e-6) minmax(0, 1fr) var(--e-6) minmax(0, var(--marge-droite));
  }
  .texte:has(> .texte__corps) > .marge-droite {
    grid-column: 5; grid-row: 1; margin: 0; grid-template-columns: 1fr;
    position: sticky;
    inset-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-4));
  }
}
@media (max-width: 67.999rem) {
  .texte:has(> .texte__corps) > .marge-droite { margin-block-start: var(--e-6); }
  .marge-droite { grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
}
@media print { .marge-droite { display: none; } }
@media (min-width: 68rem) {
  .texte:has(> .texte__corps) { display: block; }
  .texte__corps {
    display: grid;
    grid-template-columns: minmax(0, var(--marge-gauche)) var(--e-6) minmax(0, 1fr);
    align-items: start;
  }
  .texte__corps > * { grid-column: 3; }
  .texte__corps > .sommaire {
    grid-column: 1;
    grid-row: 1 / span 500;
    align-self: start;
    position: sticky;
    inset-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-4));
    max-block-size: calc(100svb - var(--decalage-sommaire, 0px) - var(--e-8));
    overflow-y: auto;
    max-inline-size: none;
    margin-block: 0;
    padding: var(--e-4) var(--e-4) var(--e-4) 0;
    background: var(--fond);
    border: 0;
    border-inline-end: 2px solid var(--bordure);
  }
  .texte__corps > .sommaire a {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .texte__corps > .sommaire .sommaire__tiroir > summary { display: none; }
  .texte__corps > .marge-droite {
    grid-column: 3;
    margin-block-start: var(--e-6);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-inline-size: none;
  }
}
@media (min-width: 78rem) {
  .texte__corps {
    grid-template-columns: minmax(0, var(--marge-gauche)) var(--e-6) minmax(0, 1fr) var(--e-6) minmax(0, var(--marge-droite));
  }
  .texte__corps > .marge-droite {
    grid-column: 5;
    grid-row: 1 / span 500;
    grid-template-columns: 1fr;
    margin: 0;
    align-self: start;
    position: sticky;
    inset-block-start: calc(var(--decalage-sommaire, 0px) + var(--e-4));
    max-block-size: calc(100svb - var(--decalage-sommaire, 0px) - var(--e-8));
    overflow-y: auto;
  }
}
@media (min-width: 62rem) {
  article.texte:has(> section) {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--e-7);
    row-gap: var(--e-6);
    align-items: start;
    max-inline-size: none;
    inline-size: 100%;
  }
  article.texte:has(> section) > * { grid-column: 1 / -1; min-inline-size: 0; max-inline-size: none; }
  article.texte:has(> section) > .chapeau, article.texte:has(> section) > .mesure, article.texte:has(> section) > .avis-langue { max-inline-size: var(--mesure); }
  article.texte:has(> section) > section {
    grid-column: auto;
    background: var(--surface);
    border: 1px solid var(--bordure);
    border-radius: var(--r-3);
    padding: var(--e-5) var(--e-6);
    font-size: var(--t-md);
  }
  article.texte:has(> section) > section:has(.table-cadre),
  article.texte:has(> section) > section:has(pre),
  article.texte:has(> section) > section.methode-large,
  article.texte:has(> section) > div.methode { grid-column: 1 / -1; }
  article.texte:has(> section) > section > h2:first-child { margin-block-start: 0; }
  article.texte:has(> section) > section p,
  article.texte:has(> section) > section li,
  article.texte:has(> section) > section dd { max-inline-size: none; }
}

.texte__corps > h2:nth-of-type(4n+1):not(:first-of-type) {
  margin-block-start: var(--e-10);
  padding-block-start: var(--e-6);
  border-block-start: 1px solid var(--bordure-forte);
}

.texte__corps > nav[aria-label] > ul { list-style: none; padding: 0; margin: var(--e-5) 0 0; display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--e-3); }
.texte__corps > nav[aria-label] > ul > li { max-inline-size: none; }

a.glose { color: inherit; text-decoration: underline dotted; text-decoration-color: var(--bordure-forte); text-underline-offset: 0.16em; }
a.glose:hover { text-decoration-style: solid; }
.accueil__legende { font-family: var(--f-sans); font-size: var(--t-sm); margin-block: var(--e-2) var(--e-3); }
.accueil__statut {
  font-family: var(--f-sans); font-size: var(--t-xs); color: var(--texte-doux);
  margin-block: 0 var(--e-4); padding: var(--e-2) var(--e-3);
  background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-2, 4px);
  max-inline-size: 48rem;
}
.accueil__statut-cle { font-weight: 700; letter-spacing: var(--ls-ui); color: var(--texte); }
.besoins { padding-block: var(--e-4) var(--e-2); }
.grille-liens--besoins { grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--piste-large)), 1fr)); }

.artefacts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--e-4); margin-block: var(--e-4); }
.artefacts__fiche { padding: var(--e-4); background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-2, 4px); max-inline-size: none; }
.artefacts__fiche h3 { margin: 0 0 var(--e-3); font-size: var(--t-md); }
.artefacts__fiche dl { margin: 0; display: grid; gap: var(--e-2); font-size: var(--t-sm); }
.artefacts__fiche dt { font-family: var(--f-sans); font-size: var(--t-xs); font-weight: 700; letter-spacing: var(--ls-ui); color: var(--texte-doux); }
.artefacts__fiche dd { margin: 0; max-inline-size: none; }

.chrono { list-style: none; margin: var(--e-5) 0; padding: 0; border-inline-start: 2px solid var(--bordure-forte); }
.chrono__item { position: relative; padding: 0 0 var(--e-5) var(--e-5); max-inline-size: 40rem; }
.chrono__item::before { content: ""; position: absolute; inset-inline-start: -7px; inset-block-start: 0.45em; inline-size: 12px; block-size: 12px; border-radius: 50%; background: var(--bordure-forte); }
.chrono__item time { font-family: var(--f-sans); font-size: var(--t-xs); color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.chrono__type { font-family: var(--f-sans); font-size: var(--t-xs); text-transform: uppercase; letter-spacing: var(--ls-caps); color: var(--bordure-forte); margin-inline: var(--e-2); }
.chrono__item strong { display: block; margin-block: var(--e-1) 0; }
.chrono__item p { margin: var(--e-1) 0 0; font-size: var(--t-sm); }

.cas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--e-4); }
.cas__carte { padding: var(--e-5); background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-3); max-inline-size: none; }
.cas__carte h2 { font-size: var(--t-xl); margin: 0 0 var(--e-3); }
.cas__carte p { max-inline-size: none; }

.onboarding { font-family: var(--f-sans); font-size: var(--t-sm); background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-3); padding: var(--e-3) var(--e-5); }
.onboarding > summary { font-weight: 600; cursor: pointer; }
.onboarding ol { margin: var(--e-3) 0 0; padding-inline-start: var(--e-5); }
.onboarding li { max-inline-size: none; margin-block: var(--e-1); }

.haut-de-page-flottant {
  position: fixed; inset-inline-end: var(--e-4); inset-block-end: var(--e-4); z-index: 20;
  font-family: var(--f-sans); font-size: var(--t-sm); padding: 0.5em 0.9em;
  background: var(--surface); color: var(--texte); border: 1px solid var(--bordure-forte); border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12); text-decoration: none;
}
.haut-de-page-flottant[hidden] { display: none; }
@media print { .haut-de-page-flottant { display: none; } }

.signalement-formulaire { display: grid; gap: var(--e-3); max-inline-size: 40rem; font-family: var(--f-sans); font-size: var(--t-sm); }
.signalement-formulaire p { margin: 0; display: grid; gap: var(--e-1); max-inline-size: none; }
.signalement-formulaire label { color: var(--texte-doux); }
.signalement-formulaire input:not([type="checkbox"]), .signalement-formulaire textarea {
  font: inherit; font-size: var(--t-champ); color: var(--texte); background: var(--fond);
  border: 1px solid var(--bordure-forte); border-radius: var(--r-2, 4px); padding: 0.45em 0.6em;
}
.signalement__consentement { grid-template-columns: auto 1fr; align-items: start; }
.signalement__consentement label { color: var(--texte); }
#panneau .panneau__titre:focus { outline: none; }

.panneau__fermer {
  inline-size: auto;
  min-inline-size: 2.25rem;
  padding-inline: var(--e-3);
  font-family: var(--f-sans);
  font-size: var(--t-sm);
  border: 1px solid var(--bordure);
  border-radius: var(--r-2);
}
@media (pointer: coarse) { .panneau__fermer { inline-size: auto; } }

#panneau .relation__item { display: flex; flex-wrap: wrap; align-items: center; column-gap: var(--e-2); row-gap: var(--e-1); }
#panneau .relation__item > :first-child { flex: 1 1 100%; min-inline-size: 0; }
#panneau .relation__item > .relation__type { margin-inline-start: 0; }
.exergue {
  margin: var(--e-5) 0 var(--e-6);
  padding: var(--e-4) var(--e-5);
  border-inline-start: 3px solid var(--or, #6E5A1C);
  background: var(--surface);
  max-inline-size: var(--mesure);
}
.exergue > p { margin: 0; font-family: var(--f-serif); font-size: var(--t-lg); line-height: 1.35; text-wrap: pretty; }
.exergue > p::before { content: "“"; color: var(--or, #6E5A1C); }
.exergue > p::after { content: "”"; color: var(--or, #6E5A1C); }
.exergue > footer { margin-block-start: var(--e-2); font-family: var(--f-sans); font-size: var(--t-sm); }
.exergue--carte q { font-family: var(--f-serif); font-style: italic; quotes: "“" "”"; }
.toc__phrase { display: block; font-family: var(--f-serif); font-style: italic; color: var(--texte-doux); font-size: var(--t-sm); margin-block-start: 0.15em; text-wrap: pretty; }
.phrases { list-style: none; margin: var(--e-4) 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr)); gap: var(--e-4); counter-reset: phrase; }
.phrases > li { max-inline-size: none; padding: var(--e-4) var(--e-5); background: var(--surface); border: 1px solid var(--bordure); border-radius: var(--r-3); font-family: var(--f-serif); line-height: 1.4; counter-increment: phrase; }
.phrases > li::before { content: counter(phrase, decimal-leading-zero); display: block; font-family: var(--f-sans); font-size: var(--t-xs); letter-spacing: var(--ls-caps); color: var(--or, #6E5A1C); margin-block-end: var(--e-2); }
.phrases q { quotes: "“" "”"; }
.phrases .phrases__source { display: block; margin-block-start: var(--e-2); font-family: var(--f-sans); font-size: var(--t-sm); }

