@font-face{font-family:'Readex Pro';font-style:normal;font-weight:700;font-display:swap;src:url('/readex-pro-v10-latin-700.woff2') format('woff2')}
@font-face{font-family:'Core Sans A';font-style:normal;font-weight:400;font-display:swap;src:url('/core-sans-a-latin-regular.woff2') format('woff2')}
@font-face{font-family:'Core Sans A';font-style:normal;font-weight:700;font-display:swap;src:url('/core-sans-a-latin-700.woff2') format('woff2')}

/* PEAU « La Table d'Essai » (préfixe pv-) : bibliothèque des peaux du socle, 17/09/2026.
   Archétype fiches-reference, direction 14 « La Table d'Essai ». Un banc d'essai : le protocole est annoncé avant
   les résultats, chaque fiche est un procès-verbal numéroté, le banc dit ce qu'il ne fait pas.
   TROIS GESTES SIGNATURE : A. les rayures de sécurité (jaune et encre à 135 degrés), B. l'étiquette embossée
   (cote frappée en capitales claires sur ruban d'encre), C. la jauge à segments (dix segments remplis en jaune à
   proportion d'une mesure). En appui : la plaque signalétique rivetée et la règle graduée de la plaque de protocole.
   RÉGLAGE D'UN SITE : uniquement le bloc :root ci-dessous (palette de matières, piles système, rayon, densité,
   mesure). Le reste de la feuille ne contient AUCUNE couleur écrite en dur.
   RÈGLES NÉGATIVES (à tenir en changeant la palette) :
   - le jaune de sécurité ne porte jamais un paragraphe, jamais un titre de fiche, jamais un produit : il marque le
     protocole, les segments de jauge, les rayures de sécurité et ce qui est hors protocole ;
   - la chasse fixe n'écrit que des VALEURS relevées (dates, comptes, mots, minutes) et le code cité dans un texte :
     jamais une étiquette, un titre, un fil d'Ariane ni une légende ;
   - aucune ombre floue, aucun dégradé décoratif, aucun coin arrondi hors --rayon : la profondeur vient des filets
     et du fond plein de la plaque ;
   - aucune grille de cartes égales : une fiche vedette, une série dense à filets, des postes en texte.
   contraste: encre/etabli encre/feuille outil/etabli outil/feuille signal/etabli signal/feuille sur-plaque/plaque jaune/plaque encre/jaune feuille/encre */
:root {
  /* palette : 9 matières */
  --etabli: #e6e5e0;      /* plan de travail : fond général */
  --feuille: #f7f6f2;     /* papier du procès-verbal : fiche vedette, rail, établi, visa */
  --encre: #1a1d1f;       /* texte, filets porteurs, ruban des étiquettes embossées */
  --outil: #556065;       /* gris outil : étiquettes, légendes */
  --signal: #1d5468;      /* bleu de repère : liens et renvois */
  --jaune: #c08d2c;       /* jaune de sécurité : rayures, segments, protocole (jamais un paragraphe) */
  --filet: #aea99f;       /* filets fins */
  --plaque: #1f2529;      /* acier peint : fond plein du protocole */
  --sur-plaque: #ecebe4;  /* craie de marquage : texte sur la plaque */
  /* piles système : condensée pour titres et étiquettes, humaniste de manuel pour la lecture, chasse fixe pour les valeurs */
  --titre-police: "Readex Pro", "DIN Condensed", "Bahnschrift Condensed", "Roboto Condensed", sans-serif;
  --texte-police: "Core Sans A", "Lucida Grande", "Lucida Sans Unicode", "DejaVu Sans", sans-serif;
  --valeur-police: "PT Mono", "Cascadia Mono", Consolas, "Liberation Mono", monospace;
  /* forme et rythme */
  --rayon: 12px;          /* coins des cartes et clichés posés sur l'établi (relief, design-exceptionnel 4.3) */
  --pas: 1.45rem;          /* densité : unité de rythme vertical */
  --mesure: 66ch;         /* largeur de lecture */
  --banc: 76rem;          /* largeur maximale de page */
  --marge-largeur: 13.5rem;
  --rail-largeur: 16.5rem;
  --manchette: 10.5rem;   /* gouttière des intertitres en manchette */
}

/* ------------------------------------------------------------------ base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; background: var(--etabli); color: var(--encre); font-family: var(--texte-police); font-size: clamp(.95rem, .92rem + .18vw, 1.02rem); line-height: 1.62; overflow-wrap: break-word; overflow-x: clip;
  --rayures: repeating-linear-gradient(135deg, var(--jaune) 0 12px, var(--encre) 12px 24px); }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--titre-police); font-weight: 700; line-height: 1.02; margin: 0 0 .5em; letter-spacing: .005em; text-wrap: balance; }
h1 { font-size: clamp(2.3rem, 1.4rem + 3.5vw, 4rem); }
h2 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
h3 { font-size: clamp(1.25rem, 1.12rem + .45vw, 1.45rem); }
p, ul, ol, dl, figure, table { margin: 0 0 var(--pas); }
a { color: var(--signal); text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--encre); text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 2px; }
time { font-family: var(--valeur-police); font-size: .94em; font-variant-numeric: tabular-nums; }
.pv-banc { width: min(100% - 2rem, var(--banc)); margin-inline: auto; }
.pv-saut { position: absolute; left: -9999px; top: 0; z-index: 30; background: var(--encre); color: var(--feuille); padding: .6rem 1rem; }
.pv-saut:focus { left: .5rem; top: .5rem; }
.pv-paragraphe { font: 700 .55em/1 var(--titre-police); letter-spacing: .08em; color: var(--outil); vertical-align: .3em; margin-right: .3em; }

/* ------------------------------------------------------------------ geste A : les rayures de sécurité */
.pv-etabli::before, .pv-visa::before, .pv-hors::before, .pv-perdu__rayures { content: ""; display: block; height: 6px; background: var(--rayures); }

/* ------------------------------------------------------------------ geste B : l'étiquette embossée */
.pv-embosse { display: inline-block; padding: .16em .55em .1em; border-radius: var(--rayon); background: var(--encre); color: var(--feuille); font: 700 .8em/1.2 var(--titre-police); letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; vertical-align: .08em;
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--feuille) 26%, transparent), inset 0 -2px 0 var(--plaque);
  text-shadow: 0 1px 0 color-mix(in srgb, var(--plaque) 80%, transparent); }

/* ------------------------------------------------------------------ geste C : la jauge à segments (longueur = mesure) */
.pv-jauge { display: grid; gap: .28rem; margin: .7rem 0 0; max-width: 15rem; }
span.pv-jauge { display: inline-grid; width: 100%; min-width: 7rem; margin: 0; vertical-align: middle; }
.pv-jauge__valeur { font: 400 .74rem/1.2 var(--valeur-police); color: var(--outil); font-variant-numeric: tabular-nums; }
.pv-jauge__cadre { position: relative; display: block; height: .7rem; border: 1px solid var(--encre); background: var(--feuille); border-radius: 999px; overflow: hidden; }
.pv-jauge__cadre::before { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: var(--niveau, 10%); background: var(--jaune); }
.pv-jauge__cadre::after { content: ""; position: absolute; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), var(--encre) calc(10% - 1px) 10%); }
.pv-jauge--p10 { --niveau: 10%; } .pv-jauge--p20 { --niveau: 20%; } .pv-jauge--p30 { --niveau: 30%; } .pv-jauge--p40 { --niveau: 40%; } .pv-jauge--p50 { --niveau: 50%; }
.pv-jauge--p60 { --niveau: 60%; } .pv-jauge--p70 { --niveau: 70%; } .pv-jauge--p80 { --niveau: 80%; } .pv-jauge--p90 { --niveau: 90%; } .pv-jauge--p100 { --niveau: 100%; }

/* ------------------------------------------------------------------ appui : la plaque signalétique rivetée, les champs de fiche */
.pv-signaletique { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .15rem .55rem; margin: 0 0 var(--pas); padding: .55rem 1.15rem .5rem; border: 1px solid var(--encre); border-radius: var(--rayon); color: var(--encre);
  background: radial-gradient(circle at 5px 5px, var(--encre) 1.4px, transparent 2px), radial-gradient(circle at calc(100% - 5px) 5px, var(--encre) 1.4px, transparent 2px), radial-gradient(circle at 5px calc(100% - 5px), var(--encre) 1.4px, transparent 2px), radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), var(--encre) 1.4px, transparent 2px), var(--feuille);
  font: 700 .82rem/1.25 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; }
.pv-signaletique > span + span::before { content: "/"; margin-right: .55rem; font-weight: 400; }
.pv-signaletique--etat { margin: 0; }
.pv-signaletique--jaune { color: var(--jaune); border-color: var(--jaune); background: radial-gradient(circle at 5px 5px, var(--jaune) 1.4px, transparent 2px), radial-gradient(circle at calc(100% - 5px) 5px, var(--jaune) 1.4px, transparent 2px), radial-gradient(circle at 5px calc(100% - 5px), var(--jaune) 1.4px, transparent 2px), radial-gradient(circle at calc(100% - 5px) calc(100% - 5px), var(--jaune) 1.4px, transparent 2px), var(--plaque); }
.pv-signaletique--station { margin: 0 0 .75rem; }
.pv-signaletique--visa { margin-bottom: 1rem; }
.pv-signaletique--mesures { margin: .3rem 0 0; }
.pv-champs { display: flex; flex-wrap: wrap; gap: .3rem 1.5rem; margin: 0 0 .75rem; padding-top: .5rem; border-top: 2px solid var(--encre); }
.pv-champs__champ { min-width: 0; }
.pv-champs dt { font: 700 .68rem/1.2 var(--titre-police); letter-spacing: .12em; text-transform: uppercase; color: var(--outil); }
.pv-champs dd { margin: .15rem 0 0; font-size: .9rem; line-height: 1.3; }

/* ------------------------------------------------------------------ l'établi (en-tête) */
.pv-etabli { background: var(--feuille); }
.pv-etabli__haut { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem 2rem; padding: .55rem 0 .5rem; }
.pv-plaque { display: grid; gap: .2rem; color: var(--encre); text-decoration: none; }
.pv-plaque:hover { color: var(--encre); }
.pv-plaque__nom { font: 700 clamp(1.45rem, 1.2rem + 1vw, 1.9rem)/1 var(--titre-police); text-transform: uppercase; letter-spacing: .03em; }
.pv-plaque__devise { font: 700 .76rem/1.3 var(--titre-police); letter-spacing: .14em; text-transform: uppercase; color: var(--outil); }
.pv-postes { border-top: 1px solid var(--filet); border-bottom: 2px solid var(--encre); }
.pv-postes__liste { display: flex; flex-wrap: wrap; list-style: none; margin-block: 0; padding: 0; }
.pv-postes__liste > li { border-right: 1px solid var(--filet); }
.pv-postes__liste > li:first-child { border-left: 1px solid var(--filet); }
.pv-postes__lien { display: flex; align-items: center; gap: .5rem; padding: .45rem .95rem .4rem; color: var(--encre); text-decoration: none; font: 700 1rem/1 var(--titre-police); text-transform: uppercase; letter-spacing: .04em; }
.pv-postes__lien:hover { background: var(--etabli); color: var(--encre); }
.pv-postes__lien[aria-current] { box-shadow: inset 0 -5px 0 var(--jaune); }
.pv-postes__code { font-size: .72rem; }

/* ------------------------------------------------------------------ le protocole (ouverture de l'accueil) */
.pv-protocole { position: relative; background: var(--plaque); color: var(--sur-plaque); padding-block: clamp(2rem, 4vw, 3.5rem) calc(clamp(2rem, 4vw, 3.5rem) + 14px); }
.pv-protocole::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 14px; border-top: 1px solid var(--jaune);
  background: repeating-linear-gradient(90deg, var(--jaune) 0 1px, transparent 1px 12px) 0 0 / 100% 6px no-repeat, repeating-linear-gradient(90deg, var(--jaune) 0 1px, transparent 1px 60px) 0 0 / 100% 12px no-repeat; }
.pv-protocole__corps { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2rem clamp(2rem, 5vw, 4.5rem); align-items: end; }
.pv-protocole h1 { font-size: clamp(2.5rem, 1.3rem + 4.6vw, 5.4rem); line-height: .92; text-transform: uppercase; letter-spacing: .01em; max-width: 16ch; margin-bottom: .35em; color: var(--sur-plaque); }
.pv-protocole__chapo { font-size: clamp(1.02rem, .96rem + .3vw, 1.18rem); line-height: 1.6; max-width: 58ch; }
.pv-champs--protocole { border-top-color: var(--jaune); gap: .5rem 2.2rem; margin: 0; }
.pv-champs--protocole dt { color: var(--jaune); }
.pv-champs--protocole .pv-bareme__chiffre { font: 400 2.1rem/1 var(--valeur-police); font-variant-numeric: tabular-nums; }
.pv-notice { padding: 1.1rem 1.35rem 1.2rem; border: 1px solid var(--jaune); border-radius: var(--rayon); background: radial-gradient(circle at 6px 6px, var(--jaune) 1.6px, transparent 2.2px), radial-gradient(circle at calc(100% - 6px) 6px, var(--jaune) 1.6px, transparent 2.2px), radial-gradient(circle at 6px calc(100% - 6px), var(--jaune) 1.6px, transparent 2.2px), radial-gradient(circle at calc(100% - 6px) calc(100% - 6px), var(--jaune) 1.6px, transparent 2.2px), var(--plaque); }
.pv-notice__titre { font-size: 1.35rem; text-transform: uppercase; letter-spacing: .03em; color: var(--sur-plaque); }
.pv-notice p { margin: 0; line-height: 1.6; }

/* ------------------------------------------------------------------ plan du squelette : marge de repères + lecture */
.pv-plan { display: grid; grid-template-columns: var(--marge-largeur) minmax(0, 1fr); gap: 0 clamp(1.5rem, 3vw, 3rem); padding-block: calc(var(--pas) * 2) var(--pas); }
.pv-plan > .pv-marge { grid-column: 1; grid-row: 1; }
.pv-plan > .pv-lecture { grid-column: 2; grid-row: 1; min-width: 0; }
.pv-plan--inverse { grid-template-columns: minmax(0, 1fr) var(--marge-largeur); }
.pv-plan--inverse > .pv-marge { grid-column: 2; }
.pv-plan--inverse > .pv-lecture { grid-column: 1; }
.pv-marge { align-self: start; position: sticky; top: 1rem; font-size: .88rem; }
.pv-marge__titre { margin: 0 0 .45rem; font: 700 .76rem/1.3 var(--titre-police); letter-spacing: .14em; text-transform: uppercase; color: var(--outil); }
.pv-marge__liste { list-style: none; padding: 0; margin: 0 0 1.6rem; border-top: 2px solid var(--encre); }
.pv-marge__liste li { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; padding: .45rem 0; border-bottom: 1px solid var(--filet); line-height: 1.3; }
.pv-marge__liste a { color: var(--encre); text-decoration: none; }
.pv-marge__liste a:hover { color: var(--signal); text-decoration: underline; }
.pv-marge__liste .pv-paragraphe { font-size: .8rem; vertical-align: baseline; }
.pv-marge__compte { font-family: var(--valeur-police); font-size: .78rem; color: var(--outil); }
.pv-lot { margin-bottom: calc(var(--pas) * 2.2); }
.pv-lot__tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3rem 1rem; margin-bottom: 1.1rem; padding-bottom: .45rem; border-bottom: 2px solid var(--encre); }
.pv-lot__titre { margin: 0; text-transform: uppercase; letter-spacing: .02em; }
.pv-lot__note { margin: 0; font: 700 .78rem/1.3 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }

/* ------------------------------------------------------------------ les fiches */
.pv-fiche { min-width: 0; }
.pv-fiche__vue { margin: 0; }
.pv-cliche { display: block; overflow: hidden; background: var(--filet); border-radius: var(--rayon); }
.pv-cliche img { width: 100%; height: 100%; object-fit: cover; }
.pv-cliche--vue { aspect-ratio: 3 / 2; }
.pv-cliche--detail { aspect-ratio: 1 / 1; }
.pv-fiche__legende { margin-top: .4rem; font: 700 .7rem/1.35 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }
.pv-fiche__legende .pv-embosse { font-size: .95em; }
.pv-fiche__legende time { font-weight: 400; letter-spacing: 0; text-transform: none; }
.pv-fiche__titre { margin: 0 0 .35rem; font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.05; }
.pv-fiche__titre a { color: var(--encre); text-decoration: none; }
.pv-fiche__titre a:hover { color: var(--signal); text-decoration: underline; text-decoration-thickness: 2px; }
.pv-fiche__constat { margin: 0; color: var(--encre); max-width: var(--mesure); line-height: 1.55; }
.pv-fiche--vedette { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: 1.4rem clamp(1.25rem, 3vw, 2.5rem); align-items: start; background: var(--feuille); border-radius: var(--rayon); padding: 1.3rem clamp(1rem, 2.5vw, 1.8rem) 1.5rem; margin: -1.1rem 0 1.4rem; }
.pv-fiche--vedette .pv-fiche__titre { font-size: clamp(1.7rem, 1.25rem + 1.6vw, 2.6rem); line-height: 1; }
.pv-fiche--vedette .pv-cliche--vue { outline: 1px solid var(--encre); outline-offset: 5px; }
.pv-fiche--vedette .pv-fiche__vue { padding: 5px; }
.pv-fiche--vedette .pv-fiche__legende { margin-top: .75rem; }
.pv-serie { display: grid; }
.pv-fiche--ligne { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: 1.2rem; padding: 1rem 0 1.1rem; border-top: 1px solid var(--filet); }
.pv-fiche--ligne:first-child { border-top: 1px solid var(--encre); }
.pv-fiche--ligne .pv-champs { margin-bottom: .55rem; }
.pv-fiche--breve { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: .8rem; padding: .7rem 0; border-top: 1px solid var(--filet); }
.pv-fiche--breve .pv-fiche__titre { font-size: 1.08rem; margin: 0; }
.pv-fiche--breve .pv-fiche__legende { margin-top: .3rem; }
.pv-fiche__date { margin: 0 0 .2rem; color: var(--outil); font-size: .8rem; }

/* ------------------------------------------------------------------ postes de l'accueil, index, renvois */
.pv-stations { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1.8rem clamp(1.5rem, 3vw, 2.5rem); }
.pv-station { border-top: 2px solid var(--encre); padding-top: 1rem; }
.pv-station__titre { margin: 0 0 .35rem; font-size: clamp(1.4rem, 1.2rem + .7vw, 1.75rem); text-transform: uppercase; letter-spacing: .02em; }
.pv-station__titre a { color: var(--encre); text-decoration: none; }
.pv-station__titre a:hover { color: var(--signal); text-decoration: underline; }
.pv-station__intro { margin: 0 0 .7rem; color: var(--outil); line-height: 1.55; }
.pv-station__fiches { margin-bottom: .5rem; border-bottom: 1px solid var(--filet); }
.pv-suite { margin: .6rem 0 0; font: 700 .82rem/1.3 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; }
.pv-suite a { text-decoration: none; }
.pv-suite a:hover { text-decoration: underline; }
.pv-index { columns: 15rem; column-gap: 2rem; column-rule: 1px solid var(--filet); }
.pv-index__groupe { break-inside: avoid; margin-bottom: 1rem; }
.pv-index__lettre { margin: 0 0 .3rem; font: 700 1.9rem/1 var(--titre-police); border-bottom: 1px solid var(--encre); }
.pv-index__lettre--poste { margin-top: 1.4rem; font-size: 2.2rem; }
.pv-index__liste { list-style: none; padding: 0; margin: 0; font-size: .9rem; }
.pv-index__liste li { padding: .25rem 0; line-height: 1.4; }
.pv-index__liste .pv-embosse { margin-right: .35rem; }

/* ------------------------------------------------------------------ tableaux (défilement obligatoire) */
.pv-defile { overflow-x: auto; margin: 0 0 var(--pas); border-top: 2px solid var(--encre); }
.pv-defile:focus-visible { outline-offset: 4px; }
.pv-bareme { width: 100%; min-width: 34rem; border-collapse: collapse; font-size: .9rem; margin: 0; }
.pv-bareme caption { caption-side: bottom; text-align: left; padding: .55rem 0 0; font-size: .8rem; font-style: italic; color: var(--outil); }
.pv-bareme th, .pv-bareme td { padding: .55rem .75rem; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--filet); }
.pv-bareme thead th { font: 700 .72rem/1.3 var(--titre-police); letter-spacing: .12em; text-transform: uppercase; color: var(--outil); border-bottom: 1px solid var(--encre); }
.pv-bareme tbody th { width: 6rem; }
.pv-bareme__chiffre { font-family: var(--valeur-police); font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------------ hors banc (section réseau) */
.pv-exterieur { padding-block: var(--pas) calc(var(--pas) * 2); }
.pv-exterieur__phrase { max-width: var(--mesure); color: var(--outil); }
.pv-exterieur__liste { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap: 0 2.5rem; }
.pv-exterieur__item { display: grid; grid-template-columns: 4.6rem minmax(0, 1fr); gap: .8rem; align-items: baseline; padding: .85rem 0; border-top: 1px solid var(--filet); }
.pv-exterieur__item p { margin: 0; line-height: 1.55; }

/* ------------------------------------------------------------------ chemin, entête de poste, sélecteur */
.pv-chemin ol { display: flex; flex-wrap: wrap; gap: .2rem .5rem; list-style: none; padding: 0; margin: 1.1rem auto 0; font: 700 .78rem/1.4 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }
.pv-chemin li + li::before { content: "/"; margin-right: .5rem; color: var(--filet); }
.pv-chemin a { color: var(--outil); }
.pv-poste-entete { padding-block: 1.6rem .4rem; }
.pv-poste-entete h1 { text-transform: uppercase; max-width: 20ch; margin-top: .4rem; }
.pv-selecteur { display: flex; flex-wrap: wrap; gap: 0; margin-block: .6rem 0; border-top: 1px solid var(--filet); border-bottom: 2px solid var(--encre); }
.pv-selecteur__lien { display: inline-flex; align-items: center; gap: .5rem; padding: .6rem .9rem; border-right: 1px solid var(--filet); color: var(--encre); text-decoration: none; font: 700 .98rem/1 var(--titre-police); text-transform: uppercase; letter-spacing: .04em; }
.pv-selecteur__lien:hover { background: var(--feuille); color: var(--encre); }
.pv-selecteur__lien[aria-current] { box-shadow: inset 0 -5px 0 var(--jaune); background: var(--feuille); }

/* ------------------------------------------------------------------ le procès-verbal (article) */
.pv-proces { padding-block: 1.4rem var(--pas); }
.pv-proces__entete { max-width: 62rem; margin-bottom: 1.6rem; }
.pv-proces__entete h1 { margin: .5rem 0 .45em; line-height: .98; }
.pv-proces__chapo { font-size: clamp(1.05rem, .98rem + .35vw, 1.22rem); line-height: 1.55; max-width: 60ch; margin-bottom: 1rem; }
.pv-proces__plan { display: grid; grid-template-columns: minmax(0, 1fr) var(--rail-largeur); gap: 2rem clamp(1.5rem, 3vw, 3rem); align-items: start; }
.pv-proces__lecture { min-width: 0; }
.pv-vue { margin: 0 0 1.6rem; }
.pv-vue .pv-cliche { outline: 1px solid var(--encre); outline-offset: 5px; margin: 5px; }
.pv-vue__legende { margin-top: .8rem; padding-top: .5rem; border-top: 1px solid var(--filet); font: 700 .74rem/1.45 var(--titre-police); letter-spacing: .08em; text-transform: uppercase; color: var(--outil); }
.pv-vue__legende .pv-embosse { margin-right: .45rem; }
.pv-vue__legende time { font-weight: 400; letter-spacing: 0; }
.pv-phrase { max-width: var(--mesure); border-left: 3px solid var(--encre); padding: .15rem 0 .15rem 1rem; font-size: 1.04rem; line-height: 1.55; }
.pv-phrase__etiquette { display: block; font: 700 .72rem/1.4 var(--titre-police); letter-spacing: .12em; text-transform: uppercase; color: var(--outil); }
.pv-deroule { counter-reset: pv-point; line-height: 1.7; }
.pv-deroule > * { max-width: var(--mesure); }
.pv-deroule > h2 { counter-increment: pv-point; margin: 2.2rem 0 .7rem; padding-top: .55rem; border-top: 2px solid var(--encre); font-size: clamp(1.35rem, 1.2rem + .6vw, 1.7rem); line-height: 1.05; }
.pv-deroule > h2::before { content: counter(pv-point, decimal-leading-zero); display: block; margin-bottom: .3rem; font: 700 .8rem/1 var(--titre-police); letter-spacing: .12em; color: var(--outil); }
.pv-deroule > h3 { margin: 1.6rem 0 .5rem; font-size: 1.2rem; }
.pv-deroule ul { list-style: none; padding-left: 1.3rem; }
.pv-deroule ul > li { position: relative; margin-bottom: .35rem; }
.pv-deroule ul > li::before { content: ""; position: absolute; left: -1.15rem; top: .62em; width: .5rem; height: .5rem; border: 1px solid var(--encre); }
.pv-deroule ol { padding-left: 1.6rem; }
.pv-deroule ol > li { margin-bottom: .35rem; }
.pv-deroule ol > li::marker { font-family: var(--titre-police); font-weight: 700; color: var(--outil); }
.pv-deroule blockquote { margin: 0 0 var(--pas); padding: .2rem 0 .2rem 1.1rem; border-left: 3px solid var(--encre); font-size: 1.06rem; }
.pv-deroule table { display: block; overflow-x: auto; max-width: 100%; border-collapse: collapse; font-size: .9rem; border-top: 2px solid var(--encre); }
.pv-deroule th, .pv-deroule td { padding: .45rem .7rem; border-bottom: 1px solid var(--filet); text-align: left; vertical-align: top; }
.pv-deroule th { font: 700 .74rem/1.3 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }
.pv-deroule code, .pv-deroule pre { font-family: var(--valeur-police); font-size: .9em; }
.pv-deroule pre { overflow-x: auto; padding: .8rem; background: var(--feuille); border-top: 2px solid var(--encre); }
.pv-deroule a { overflow-wrap: anywhere; }
.pv-deroule img { margin-block: 1rem; }
.pv-rail { position: sticky; top: 1rem; background: var(--feuille); border-top: 3px solid var(--encre); padding: 1rem 1.1rem 1.2rem; font-size: .88rem; }
.pv-rail__titre { margin: 0 0 .5rem; font: 700 .76rem/1.3 var(--titre-police); letter-spacing: .14em; text-transform: uppercase; color: var(--outil); }
.pv-rail__points { counter-reset: pv-rail; list-style: none; padding: 0; margin: 0 0 1.3rem; }
.pv-rail__points > li { counter-increment: pv-rail; display: grid; grid-template-columns: 1.7rem minmax(0, 1fr); padding: .32rem 0; border-top: 1px solid var(--filet); line-height: 1.35; }
.pv-rail__points > li::before { content: counter(pv-rail, decimal-leading-zero); font: 700 .82rem/1.5 var(--titre-police); color: var(--outil); }
.pv-rail__points--postes > li { grid-template-columns: minmax(0, 1fr); }
.pv-rail__points--postes > li::before { content: none; }
.pv-rail__points a { color: var(--encre); text-decoration: none; }
.pv-rail__points a:hover { color: var(--signal); text-decoration: underline; }
.pv-rail__mesures { margin: 0 0 1.3rem; }
.pv-rail__mesures > div { display: grid; grid-template-columns: 5.4rem minmax(0, 1fr); gap: .5rem; align-items: center; padding: .42rem 0; border-top: 1px solid var(--filet); }
.pv-rail__mesures dt { font: 700 .7rem/1.3 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }
.pv-rail__mesures dd { margin: 0; font-family: var(--valeur-police); font-size: .82rem; }
.pv-sources { margin: 0 0 1.3rem; }
.pv-sources__liste { list-style: none; counter-reset: pv-source; padding: 0; margin: 0; }
.pv-sources__liste > li { counter-increment: pv-source; display: grid; grid-template-columns: 1.8rem minmax(0, 1fr); padding: .42rem 0; border-top: 1px solid var(--filet); }
.pv-sources__liste > li::before { content: "[" counter(pv-source) "]"; font: 700 .8rem/1.5 var(--titre-police); color: var(--outil); }
.pv-sources__liste a { text-decoration: none; color: var(--signal); }
.pv-sources__liste a:hover .pv-sources__hote { text-decoration: underline; }
.pv-sources__hote { display: block; font-weight: 700; line-height: 1.3; }
.pv-sources__chemin { display: block; font-size: .76rem; line-height: 1.4; color: var(--outil); overflow-wrap: anywhere; }
.pv-hors { position: relative; margin: 0 0 var(--pas); padding: 0 .9rem .85rem; border: 1px solid var(--encre); background: var(--feuille); font-size: .86rem; line-height: 1.5; }
.pv-hors::before { margin: 0 -.9rem .7rem; }
.pv-hors__titre { margin: 0 0 .3rem; font: 700 .76rem/1.3 var(--titre-police); letter-spacing: .14em; text-transform: uppercase; }
.pv-hors p:last-child { margin: 0; }
.pv-sequence { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 0 2rem; margin: 2.4rem 0 0; }
.pv-sequence__lien { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); gap: .9rem; align-items: center; padding: .8rem 0; border-top: 2px solid var(--encre); color: var(--encre); text-decoration: none; }
.pv-sequence__lien--apres { grid-template-columns: minmax(0, 1fr) 4.5rem; text-align: right; }
.pv-sequence__lien--apres .pv-sequence__vue { order: 2; }
.pv-sequence__lien:hover .pv-sequence__titre { color: var(--signal); text-decoration: underline; }
.pv-sequence__sens { display: block; margin-bottom: .3rem; font: 700 .74rem/1.3 var(--titre-police); letter-spacing: .12em; text-transform: uppercase; color: var(--outil); }
.pv-sequence__titre { font: 700 1.15rem/1.1 var(--titre-police); margin-left: .4rem; }
.pv-voisines { padding-block: var(--pas) calc(var(--pas) * 2); }

/* ------------------------------------------------------------------ le visa (pied) */
.pv-visa { margin-top: calc(var(--pas) * 1.5); background: var(--feuille); font-size: .9rem; }
.pv-visa__colonnes { display: grid; grid-template-columns: minmax(0, 2fr) repeat(2, minmax(0, 1fr)); gap: 2rem clamp(1.5rem, 4vw, 3.5rem); padding-block: 2.2rem 1.4rem; }
.pv-visa__bloc p { max-width: 60ch; line-height: 1.6; }
.pv-visa__titre { font-size: 1.15rem; text-transform: uppercase; letter-spacing: .04em; padding-bottom: .35rem; border-bottom: 2px solid var(--encre); }
.pv-visa__bloc ul { list-style: none; padding: 0; margin: 0; }
.pv-visa__bloc li { padding: .32rem 0; border-bottom: 1px solid var(--filet); }
.pv-visa__bloc li .pv-embosse { margin-right: .3rem; }
.pv-visa__note { padding-left: .9rem; border-left: 3px solid var(--jaune); }
.pv-visa__etiquette { display: block; font: 700 .72rem/1.4 var(--titre-police); letter-spacing: .14em; text-transform: uppercase; color: var(--outil); }
.pv-visa .pv-visa__preuves { margin-top: 1rem; border-top: 2px solid var(--encre); font-size: .84rem; color: var(--outil); }
.pv-visa__ligne { margin-block: 0; padding: .8rem 0 1.4rem; border-top: 1px solid var(--filet); font: 700 .78rem/1.4 var(--titre-police); letter-spacing: .1em; text-transform: uppercase; color: var(--outil); }

/* ------------------------------------------------------------------ 404 : la fiche hors protocole */
.pv-perdu { padding-block: clamp(2rem, 6vw, 4.5rem) calc(var(--pas) * 2); }
.pv-perdu__rayures { height: 14px; margin-bottom: 1.4rem; }
.pv-perdu h1 { text-transform: uppercase; max-width: 18ch; font-size: clamp(2.4rem, 1.4rem + 4vw, 4.6rem); line-height: .95; }
.pv-perdu__texte { max-width: var(--mesure); font-size: 1.05rem; }
.pv-perdu h2.pv-marge__titre { margin-top: 2rem; }
.pv-selecteur--perdu { margin-bottom: 1.6rem; }

/* ------------------------------------------------------------------ largeurs intermédiaires et mobile */
@media (min-width: 76rem) {
  .pv-deroule { padding-left: var(--manchette); }
  .pv-deroule > h2 { float: left; clear: left; width: calc(var(--manchette) - 1.4rem); margin: .45rem 0 1rem calc(var(--manchette) * -1); font-size: 1.14rem; line-height: 1.12; text-transform: uppercase; letter-spacing: .02em; text-wrap: pretty; }
  .pv-deroule > h2 + * { margin-top: 0; }
}
@media (max-width: 75.99rem) {
  .pv-proces__plan { grid-template-columns: minmax(0, 1fr) 15rem; }
}
@media (max-width: 62rem) {
  .pv-protocole__corps { grid-template-columns: minmax(0, 1fr); }
  .pv-plan, .pv-plan--inverse { grid-template-columns: minmax(0, 1fr); }
  .pv-plan > .pv-marge, .pv-plan--inverse > .pv-marge { grid-column: 1; grid-row: 2; position: static; }
  .pv-plan > .pv-lecture, .pv-plan--inverse > .pv-lecture { grid-column: 1; grid-row: 1; }
  .pv-proces__plan { grid-template-columns: minmax(0, 1fr); }
  .pv-rail { position: static; }
  .pv-visa__colonnes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .pv-visa__bloc--large { grid-column: 1 / -1; }
}
@media (max-width: 48rem) {
  .pv-etabli__haut { flex-direction: column; align-items: flex-start; }
  .pv-postes__liste > li:first-child { border-left: 0; }
  .pv-postes__lien { padding: .6rem .7rem .55rem; font-size: .92rem; }
  .pv-fiche--vedette { grid-template-columns: minmax(0, 1fr); }
  .pv-fiche--vedette > .pv-fiche__vue { order: -1; }
  .pv-fiche--ligne { grid-template-columns: 4.75rem minmax(0, 1fr); gap: .55rem .9rem; }
  .pv-fiche--ligne > .pv-fiche__texte { display: contents; }
  .pv-fiche--ligne > .pv-fiche__vue { grid-column: 1; grid-row: 1; }
  .pv-fiche--ligne .pv-fiche__titre { grid-column: 2; grid-row: 1; align-self: center; margin: 0; }
  .pv-fiche--ligne .pv-champs { grid-column: 1 / -1; grid-row: 2; margin: 0; }
  .pv-fiche--ligne .pv-fiche__constat { grid-column: 1 / -1; grid-row: 3; }
  .pv-fiche--ligne .pv-jauge { grid-column: 1 / -1; grid-row: 4; margin-top: .1rem; }
  .pv-sequence__lien--apres { grid-template-columns: 4.5rem minmax(0, 1fr); text-align: left; }
  .pv-sequence__lien--apres .pv-sequence__vue { order: 0; }
  .pv-visa__colonnes { grid-template-columns: minmax(0, 1fr); }
  .pv-bareme { min-width: 30rem; }
}
@media print {
  .pv-postes, .pv-marge, .pv-rail, .pv-visa, .pv-selecteur, .pv-sequence { display: none; }
  .pv-protocole { background: none; color: var(--encre); }
  .pv-deroule table { display: table; }
}

/* couleur par rubrique : --pv-rc est posée en ligne sur les éléments codés d'un poste */
.pv-postes__lien .pv-embose{background:var(--pv-rc,var(--encre))}
.pv-signaletique--station{border-top:3px solid var(--pv-rc,var(--encre));padding-top:.4rem}
.pv-vue__humaine{display:block;margin-bottom:.3rem;font-weight:400}
