/* PEAU « The Labrador Stockroom » (dakotatklabradors.com), troisième passage le 17/09/2026.
   Direction 15 « La Vitrine de Quincaillerie » (DESIGN-BRIEF.md), squelette grille-annuaire.
   Matières : kraft d'emballage (fond de page), planche poncée (fiches, pied, saisons), encre de
   tampon, bleu de catalogue imprimé (planches, liens, filets doubles), rouge des cotes au tampon,
   laiton d'étiquette, eau froide d'un slough en décembre (étagère field), ficelle de kraft (filets).
   RÈGLE NÉGATIVE (brief §6) : le rouge de référence ne fait jamais un fond ni un texte courant,
   cotes et marque seulement ; aucune photo sur fond blanc détouré, ce n'est pas une boutique.
   Corrections du juge (ops/design-retour.md) : la cote pend en gouttière verticale reliée à la
   ligne de titre par un filet rouge, sans filet gauche ; l'accueil ouvre sur une vedette puis un
   registre, plus de casier auto-fill en tête ; la ligne d'usage porte le libellé « What it is
   for: » sur chaque référence et n'est jamais tronquée ; la légende de planche porte la scène
   (action 4) et reste distincte de l'alt ; .qc-saisons__calendrier a remplacé l'ancien nom,
   qui contenait un mot interdit (action 6) ; les planches d'étagère ne répètent pas le rayon
   des récents (action 8) ;
   l'éditeur du pied est un lien mailto (action 9) ; la lettrine sert aussi aux intros de rubrique ;
   --ligne-registre sert sur quatre surfaces (vitrine, planche d'article, encart, pied) ; la pile
   de texte n'est plus Iowan Old Style (prise par dentoncountyhistoricalmuseum.com et eannpoole.com)
   mais Century Schoolbook, absente des dix dernières lignes du journal ; la mono ne sert plus aux
   lettres des mois, seulement aux cotes, dates et chiffres (brief §5).
   Aucune ressource externe, aucune police distante, aucun débordement horizontal à 360 px,
   contraste >= 4.5:1. Mode sombre : non prévu, le kraft est la matière du site. */
:root {
  --kraft: #e8e0d2; --planche: #f4efe6; --ombre: #d9cfbd;
  --encre: #241f1a; --encre-douce: #5c534a;
  --bleu-imprimerie: #2c4a7c; --bleu-sombre: #1f3559;
  --rouge-reference: #a83224;
  --laiton: #b08d57; --laiton-fonce: #7a5a2e;
  --eau-froide: #5b7d8c; --eau-froide-fonce: #3f5c69;
  --filet: #cfc4b2;
  /* couple typographique propre à ce site : capitales condensées de catalogue, Century Schoolbook
     (le corps des catalogues américains), mono de caisse pour les seules cotes, dates et chiffres */
  --titre-police: "Franklin Gothic Medium", "Arial Narrow", "Helvetica Neue Condensed", "Avenir Next Condensed", sans-serif;
  --texte-police: "Century Schoolbook", "Century", "Bookman Old Style", "Bookman", Georgia, serif;
  --chiffre-police: Menlo, "Courier New", monospace;
  --travee: 74rem; --mesure: 64ch; --pas-grille: 16rem; --rythme: 1.5rem;
  --trait: 1px solid var(--filet);
  --double: 3px double var(--bleu-imprimerie);
  --ratio-planche: 16 / 9; --ratio-carte: 4 / 3; --ratio-reference: 1 / 1;
  --ligne-registre: repeating-linear-gradient(0deg, transparent 0 31px, rgba(36, 31, 26, .05) 31px 32px);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--kraft); color: var(--encre); font-family: var(--texte-police); font-size: clamp(1rem, .98rem + .15vw, 1.0625rem); line-height: 1.62; overflow-wrap: break-word; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { font-family: var(--titre-police); line-height: 1.1; margin: 0 0 .5em; font-weight: 600; letter-spacing: .01em; }
h1 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.4rem); }
h2 { font-size: clamp(1.15rem, 1.05rem + .5vw, 1.45rem); }
h3 { font-size: 1.05rem; }
p, ul, ol, dl, table, figure { margin: 0 0 var(--rythme); }
a { color: var(--bleu-imprimerie); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--bleu-sombre); }
:focus-visible { outline: 2px solid var(--bleu-imprimerie); outline-offset: 2px; }
h2[id] { scroll-margin-top: 1rem; }
.qc-travee { width: min(100% - 2rem, var(--travee)); margin-inline: auto; }
.qc-acces-direct { position: absolute; left: -9999px; top: 0; background: var(--encre); color: var(--planche); padding: .6rem 1rem; z-index: 20; }
.qc-acces-direct:focus { left: .5rem; top: .5rem; }

/* SIGNATURE A : la cote rouge en gouttière. L'étiquette de quincaillerie percée d'un oeillet pend
   verticalement le long de la fiche, l'oeillet en tête, et un filet rouge descend de la cote vers
   la ligne de titre qui la suit. Aucun filet gauche (forme prise par d'autres sites de la fenêtre).
   Variante --ligne : oeillet puis référence à plat, pour le rail, les légendes, l'encart, le pied. */
.qc-cote { display: inline-flex; align-items: center; gap: .42rem; font-family: var(--chiffre-police); font-size: .72rem; letter-spacing: .05em; color: var(--rouge-reference); line-height: 1.3; }
.qc-cote__oeillet { width: .42rem; height: .42rem; border: 1.5px solid var(--rouge-reference); border-radius: 50%; flex: none; }
.qc-cote--ligne .qc-cote__texte { white-space: nowrap; }
.qc-cote--gouttiere { flex-direction: column; align-items: center; justify-content: flex-start; align-self: stretch; height: 100%; }
.qc-cote--gouttiere .qc-cote__texte { writing-mode: vertical-rl; text-orientation: mixed; letter-spacing: .09em; }
.qc-cote__filet { width: 2px; background: var(--rouge-reference); flex: 1 1 auto; min-height: 1.4rem; }
.qc-entree__gouttiere { margin: 0; align-self: stretch; display: flex; justify-content: center; padding: .85rem .45rem .85rem .75rem; min-width: 0; }
.qc-entree__gouttiere--libre { padding-top: .3rem; padding-bottom: .3rem; }

/* SIGNATURE B : la planche. Chaque section de l'accueil et de la rubrique ouvre par un entête pleine
   largeur en capitales bleu d'imprimerie espacées de .1em, posé sur un filet double de 3 px, la cote
   de planche pendant dans la gouttière. Employée sur les récents, les quatre étagères, les autres
   étagères, le voisinage, la rubrique, et reprise par les intertitres du corps. */
.qc-rayon__tete { border-top: var(--double); padding-top: .65rem; margin-bottom: var(--rythme); display: flex; align-items: flex-start; gap: .9rem; }
.qc-rayon__tete .qc-cote--gouttiere { padding-top: .25rem; }
.qc-rayon__texte { min-width: 0; flex: 1; }
.qc-rayon__tete h2 { margin: 0; font-size: clamp(.92rem, .88rem + .3vw, 1.12rem); text-transform: uppercase; letter-spacing: .1em; color: var(--bleu-imprimerie); }
.qc-rayon__tete h2 a { color: inherit; text-decoration: none; }
.qc-rayon__tete h2 a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.qc-rayon__decompte { font-family: var(--chiffre-police); font-size: .72rem; color: var(--encre-douce); padding-top: .35rem; white-space: nowrap; }
.qc-rayon__phrase { margin: .2rem 0 0; color: var(--encre-douce); max-width: var(--mesure); }

/* SIGNATURE C : l'usage en italique sous chaque référence, qui dit à quoi sert la fiche, précédé
   du libellé « What it is for: » sur chaque référence (action 2 du juge). Jamais tronqué : la
   ligne entière reste lisible, même longue. */
.qc-entree__abrege { font-style: italic; font-family: var(--texte-police); color: var(--encre-douce); font-size: .93rem; margin: 0 0 .5rem; }
.qc-entree__abrege--fiche { font-size: 1.12rem; max-width: var(--mesure); }
.qc-entree__usage-label { font-style: normal; font-family: var(--titre-police); font-size: .62rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-douce); }

/* fronton : enseigne, devise, parcours, barre rouge fine */
.qc-fronton { background: var(--planche); border-top: 3px solid var(--rouge-reference); border-bottom: var(--trait); }
.qc-fronton__interieur { display: flex; flex-wrap: wrap; align-items: baseline; gap: .45rem 1.6rem; padding: 1.15rem 0 .95rem; }
.qc-enseigne { display: inline-flex; align-items: baseline; gap: .6rem; font-family: var(--titre-police); font-weight: 600; font-size: 1.3rem; letter-spacing: .05em; color: var(--encre); text-decoration: none; }
.qc-enseigne:hover .qc-enseigne__nom { color: var(--bleu-imprimerie); }
.qc-enseigne__marque { font-family: var(--titre-police); font-size: .62rem; font-weight: 600; color: var(--rouge-reference); border: 1.5px solid var(--rouge-reference); border-radius: 50%; width: 1.6rem; height: 1.6rem; display: inline-flex; align-items: center; justify-content: center; letter-spacing: .05em; }
.qc-devise { margin: 0; color: var(--encre-douce); font-size: .88rem; font-style: italic; }
.qc-parcours { margin-left: auto; }
.qc-parcours ul { display: flex; flex-wrap: wrap; gap: .35rem 1.15rem; list-style: none; margin: 0; padding: 0; }
.qc-parcours__lien { display: inline-flex; align-items: baseline; gap: .4rem; font-family: var(--titre-police); font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--encre); text-decoration: none; }
.qc-parcours__cote { font-family: var(--chiffre-police); font-size: .66rem; color: var(--rouge-reference); letter-spacing: .02em; }
.qc-parcours__lien:hover, .qc-parcours__lien[aria-current="page"] { color: var(--bleu-imprimerie); }
.qc-parcours__lien[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--bleu-imprimerie); }
.qc-parcours__lien--desk { color: var(--laiton-fonce); }
@media (max-width: 44rem) {
  .qc-devise { flex-basis: 100%; }
  .qc-parcours { margin-left: 0; flex-basis: 100%; }
}

/* préambule : étroit, mesure 64ch, h1 + intro + bilan chiffré en mono */
.qc-preambule { width: min(100% - 2rem, 40rem); margin-inline: auto; padding: calc(var(--rythme) * 1.5) 0 var(--rythme); }
.qc-preambule--etagere { padding-bottom: .4rem; }
.qc-preambule h1 { color: var(--encre); margin-bottom: .45rem; }
.qc-preambule__entete { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; margin-bottom: .6rem; }
.qc-preambule__intro { margin: 0; }
/* la lettrine sert aussi à l'intro des pages de rubrique : le geste n'est plus confiné au corps
   d'article (noté par le juge) */
.qc-preambule--etagere .qc-preambule__intro::first-letter { font-family: var(--titre-police); font-weight: 600; font-size: 3.1em; float: left; line-height: .82; padding: .08em .12em 0 0; color: var(--bleu-imprimerie); }
.qc-bilan { display: flex; flex-wrap: wrap; list-style: none; margin: var(--rythme) 0 0; padding: 0; border: var(--trait); background: var(--planche); }
.qc-bilan__poste { flex: 1 1 7.5rem; padding: .7rem 1rem; border-right: var(--trait); }
.qc-bilan__poste:last-child { border-right: 0; }
.qc-bilan__chiffre { display: block; font-family: var(--chiffre-police); font-size: 1.3rem; color: var(--laiton-fonce); }
.qc-bilan__libelle { display: block; font-family: var(--titre-police); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--encre-douce); margin-top: .15rem; }

/* les planches photographiques : une source unique, recadrée par le ratio en CSS (brief §8) */
.qc-vignette { display: block; aspect-ratio: var(--ratio-carte); overflow: hidden; background: var(--ombre); }
.qc-vignette img { width: 100%; height: 100%; object-fit: cover; }
.qc-vignette--reference { aspect-ratio: var(--ratio-reference); }
.qc-vignette--planche { aspect-ratio: var(--ratio-planche); }
.qc-vignette--vitrine { aspect-ratio: var(--ratio-planche); }

/* vitrine du magasin : la planche dédiée de l'accueil, légende sur papier ligné de registre */
.qc-vitrine { margin: 0 auto calc(var(--rythme) * 1.2); }
.qc-vitrine .qc-vignette { border: var(--trait); }
.qc-vitrine figcaption { font-size: .8rem; color: var(--encre-douce); background: var(--planche) var(--ligne-registre); border: var(--trait); border-top: 0; padding: .55rem .6rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; }
.qc-vitrine__scene { font-style: italic; }

/* IDÉE INATTENDUE : le calendrier des saisons, fond planche qui déborde des marges (brief §9). Le
   mois courant est calculé au build, le calendrier est daté dans la note, les lettres des mois
   sont en capitales condensées (la mono est réservée aux cotes, dates et chiffres). La classe
   s'appelle .qc-saisons__calendrier depuis le juge (action 6 : l'ancien nom contenait un mot
   interdit). */
.qc-saisons { background: var(--planche); border-top: var(--double); border-bottom: var(--trait); padding: 1.15rem 0 1.25rem; margin: var(--rythme) 0 calc(var(--rythme) * 1.4); }
.qc-saisons__titre { font-size: .92rem; text-transform: uppercase; letter-spacing: .1em; color: var(--encre); margin: 0 0 .35rem; }
.qc-saisons__courant { font-style: italic; color: var(--encre-douce); margin: 0 0 .9rem; font-size: .95rem; }
.qc-saisons__calendrier { display: grid; gap: .25rem; }
.qc-saisons__ligne { display: grid; grid-template-columns: 8.75rem repeat(12, minmax(0, 1fr)); gap: .25rem; align-items: center; }
.qc-saisons__etiquette { font-family: var(--titre-police); font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--encre); text-decoration: none; padding-left: .5rem; border-left: 3px solid var(--bleu-imprimerie); }
a.qc-saisons__etiquette:hover { color: var(--bleu-imprimerie); }
.qc-saisons__ligne--field .qc-saisons__etiquette { border-left-color: var(--eau-froide); }
.qc-saisons__ligne--care .qc-saisons__etiquette { border-left-color: var(--laiton); }
.qc-saisons__ligne--training .qc-saisons__etiquette { border-left-color: var(--bleu-imprimerie); }
.qc-saisons__ligne--health .qc-saisons__etiquette { border-left-color: var(--encre-douce); }
.qc-saisons__mois { font-family: var(--titre-police); font-size: .62rem; font-weight: 600; letter-spacing: .04em; text-align: center; color: var(--encre-douce); }
.qc-saisons__mois--courant { color: var(--rouge-reference); }
.qc-saisons__case { height: 1rem; border: 1px solid var(--filet); background: var(--kraft); }
.qc-saisons__case--pleine { background: var(--bleu-imprimerie); border-color: var(--bleu-imprimerie); }
.qc-saisons__case--field { background: var(--eau-froide); border-color: var(--eau-froide); }
.qc-saisons__case--care { background: var(--laiton); border-color: var(--laiton); }
.qc-saisons__case--health { background: var(--encre-douce); border-color: var(--encre-douce); }
.qc-saisons__case--courant { outline: 2px solid var(--rouge-reference); outline-offset: -2px; }
.qc-saisons__note { font-size: .82rem; color: var(--encre-douce); margin: .8rem 0 0; max-width: var(--mesure); }
@media (max-width: 44rem) {
  .qc-saisons__ligne { grid-template-columns: 5.5rem repeat(12, minmax(0, 1fr)); }
  .qc-saisons__etiquette { font-size: .58rem; padding-left: .35rem; border-left-width: 2px; }
}

/* rayons : casier (grille de cartes, réservée aux fiches voisines de l'article) et registre
   (liste dense à filets pour l'accueil et les rubriques) */
.qc-rayon { padding: var(--rythme) 0 calc(var(--rythme) * 1.25); }
.qc-casier { display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--pas-grille), 1fr)); gap: 1rem; }
/* la note des planches d'étagère entièrement couvertes par le rayon des récents (action 8 du juge) */
.qc-planche__note { font-style: italic; color: var(--encre-douce); font-size: .88rem; margin: .55rem 0 0; }

/* la FICHE : carte cartonnée, cote pendue dans la gouttière, vignette, usage, date */
.qc-entree { background: var(--planche); border: var(--trait); display: grid; grid-template-columns: auto minmax(0, 1fr); }
.qc-entree__corps { display: flex; flex-direction: column; min-width: 0; }
.qc-entree__vignette { margin: 0; }
.qc-entree__vignette .qc-vignette { border-bottom: var(--trait); }
.qc-entree__legende { font-family: var(--chiffre-police); font-size: .66rem; color: var(--encre-douce); padding: .35rem .55rem .45rem; display: flex; align-items: center; gap: .35rem; }
.qc-entree__legende .qc-cote { font-size: .68rem; }
.qc-entree__planche { padding: .8rem 1rem .9rem .95rem; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.qc-entree__cote { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .4rem; }
.qc-mention { font-family: var(--titre-police); font-weight: 600; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border-bottom: 1px solid transparent; }
.qc-mention:hover { border-bottom-color: currentColor; }
.qc-mention--health { color: var(--encre-douce); }
.qc-mention--training { color: var(--bleu-imprimerie); }
.qc-mention--field { color: var(--eau-froide-fonce); }
.qc-mention--care { color: var(--laiton-fonce); }
.qc-entree__intitule { margin: 0 0 .35rem; font-size: 1.04rem; }
.qc-entree__intitule a { color: var(--encre); text-decoration: none; }
.qc-entree__intitule a:hover { color: var(--bleu-imprimerie); text-decoration: underline; text-decoration-thickness: 1px; }
.qc-entree__datation { font-family: var(--chiffre-police); font-size: .7rem; color: var(--encre-douce); margin: auto 0 0; padding-top: .5rem; }

/* la VEDETTE : la fiche la plus récente, pleine largeur, texte à gauche, planche 16/9 à droite.
   C'est elle qui ouvre le rayon des récents : plus de casier auto-fill en tête de l'accueil. */
.qc-entree--vedette { grid-template-columns: auto minmax(0, 1fr) minmax(0, 24rem); }
.qc-entree--vedette .qc-entree__gouttiere { padding: 1rem .45rem 1rem .8rem; }
.qc-entree--vedette .qc-entree__vignette { border-left: var(--trait); }
.qc-entree--vedette .qc-entree__vignette .qc-vignette { border-bottom: 0; }
.qc-entree--vedette .qc-entree__planche { padding: 1.15rem 1.3rem 1.05rem 1.1rem; }
.qc-entree--vedette .qc-entree__intitule { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); }
.qc-entree--vedette .qc-entree__abrege { font-size: 1rem; }
@media (max-width: 56rem) {
  .qc-entree--vedette { grid-template-columns: auto minmax(0, 1fr); }
  .qc-entree--vedette .qc-entree__vignette { grid-column: 2; border-left: 0; border-top: var(--trait); }
}

/* le REGISTRE : liste dense à filets, vignette 1/1, cote en gouttière, pour les planches, le rayon
   des récents et les pages de rubrique */
.qc-registre { display: flex; flex-direction: column; }
.qc-entree--registre { grid-template-columns: auto minmax(0, 1fr); border: 0; border-top: var(--trait); background: transparent; }
.qc-entree--registre .qc-entree__gouttiere { padding: .85rem .5rem .85rem .6rem; }
.qc-entree--registre .qc-entree__corps { display: grid; grid-template-columns: 5.75rem minmax(0, 1fr); gap: .9rem; padding: .85rem 0; }
.qc-entree--registre .qc-vignette { border: var(--trait); }
.qc-entree--registre .qc-entree__legende { padding: .25rem 0 0; }
.qc-entree--registre .qc-entree__planche { padding: 0 .4rem 0 0; }
.qc-entree--registre .qc-entree__datation { margin: .25rem 0 0; padding-top: 0; }
@media (max-width: 30rem) { .qc-entree--registre .qc-entree__corps { grid-template-columns: 4.25rem minmax(0, 1fr); gap: .7rem; } }
.qc-entree__renvoi { text-align: right; margin: .7rem 0 0; }
.qc-renvoi { font-family: var(--titre-police); font-size: .72rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; color: var(--bleu-imprimerie); }
.qc-renvoi:hover { text-decoration: underline; text-decoration-thickness: 1px; }

/* onglets : des liens, jamais un script ; l'étagère courante est une étiquette de laiton */
.qc-onglets { display: flex; flex-wrap: wrap; gap: .45rem; margin: calc(var(--rythme) * .8) 0 var(--rythme); }
.qc-onglet { display: inline-flex; align-items: baseline; gap: .5rem; padding: .38rem .85rem; border: var(--trait); background: var(--planche); color: var(--encre); font-family: var(--titre-police); font-size: .7rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; text-decoration: none; }
.qc-onglet:hover { border-color: var(--bleu-imprimerie); color: var(--bleu-imprimerie); }
.qc-onglet__cote { font-family: var(--chiffre-police); font-size: .64rem; color: var(--rouge-reference); }
.qc-onglet--courant, .qc-onglet--courant:hover { background: var(--laiton); border-color: var(--laiton); color: var(--encre); }
.qc-onglet--courant .qc-onglet__cote { color: var(--encre); }

/* remontée : fil d'archives en capitales discrètes */
.qc-remontee ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 1.1rem 0 0; font-family: var(--titre-police); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.qc-remontee a { color: var(--encre-douce); text-decoration: none; }
.qc-remontee a:hover { color: var(--bleu-imprimerie); }
.qc-remontee li + li::before { content: "/"; margin-right: .4rem; color: var(--filet); }

/* fiche : entête coté, planche 16/9, duo texte + rail collant */
.qc-entete-fiche { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; padding: var(--rythme) 0 .3rem; }
.qc-entete-fiche__gouttiere { margin: 0; align-self: stretch; display: flex; justify-content: center; padding-top: .3rem; }
.qc-entete-fiche h1 { max-width: 26ch; }
.qc-datation { font-family: var(--chiffre-police); font-size: .76rem; color: var(--encre-douce); margin: .3rem 0 0; }
.qc-planche-image { margin: 0 auto var(--rythme); }
.qc-planche-image .qc-vignette { border: var(--trait); }
/* la légende de la planche porte la scène promise au brief §8 (« Plate <cote> : <scène> »,
   action 4 du juge), puis l'étagère et la date de vérification : elle reste distincte de l'alt,
   qui est la scène seule. Papier ligné de registre (troisième surface de --ligne-registre). */
.qc-planche-image figcaption { font-size: .85rem; color: var(--encre-douce); background: var(--planche) var(--ligne-registre); border: var(--trait); border-top: 0; padding: .55rem .7rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem; }
.qc-planche-image__scene { font-style: italic; }
.qc-planche-image__releve { font-size: .78rem; }
.qc-duo { display: grid; grid-template-columns: minmax(0, 1fr) 17.5rem; gap: 2.5rem; align-items: start; padding-bottom: var(--rythme); }
@media (max-width: 62rem) { .qc-duo { grid-template-columns: 1fr; } }
.qc-corps { max-width: var(--mesure); min-width: 0; }
/* les intertitres reprennent l'entête de planche : filet double, capitales bleues */
.qc-corps h2 { border-top: var(--double); padding-top: .7rem; margin-top: calc(var(--rythme) * 1.4); text-transform: uppercase; letter-spacing: .08em; font-size: 1rem; color: var(--bleu-imprimerie); }
/* la lettrine est bleue : le rouge reste aux cotes et à la marque (règle négative) */
.qc-corps > p:first-of-type::first-letter { font-family: var(--titre-police); font-weight: 600; font-size: 3.1em; float: left; line-height: .82; padding: .08em .12em 0 0; color: var(--bleu-imprimerie); }
.qc-corps table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.qc-corps th { font-family: var(--titre-police); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--encre-douce); text-align: left; }
.qc-corps th, .qc-corps td { border-bottom: var(--trait); padding: .45rem .5rem; vertical-align: top; }
.qc-corps blockquote { margin: 0 0 var(--rythme); padding: .2rem 1rem; border-left: 3px double var(--bleu-imprimerie); color: var(--encre-douce); }
.qc-corps ul, .qc-corps ol { padding-left: 1.3rem; }
.qc-corps img { border: var(--trait); }
.qc-releve { position: sticky; top: 1rem; align-self: start; background: var(--planche); border: var(--trait); padding: 1rem 1rem .5rem; font-size: .9rem; }
.qc-releve h2 { font-size: .64rem; text-transform: uppercase; letter-spacing: .12em; color: var(--bleu-imprimerie); margin: 0 0 .55rem; }
.qc-releve h2:not(:first-child) { border-top: var(--double); padding-top: .55rem; margin-top: 1rem; }
.qc-releve__sommaire { list-style: none; padding: 0; margin: 0 0 .4rem; counter-reset: releve; }
.qc-releve__sommaire li { counter-increment: releve; display: flex; gap: .5rem; margin-bottom: .4rem; }
.qc-releve__sommaire li::before { content: counter(releve, decimal-leading-zero); font-family: var(--chiffre-police); font-size: .72rem; color: var(--laiton-fonce); }
.qc-releve__sommaire a { text-decoration: none; }
.qc-releve__sommaire a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.qc-releve__etiquette { margin: 0 0 .4rem; }
.qc-releve__etiquette div { display: flex; justify-content: space-between; gap: 1rem; border-bottom: var(--trait); padding: .3rem 0; }
.qc-releve__etiquette dt { font-family: var(--titre-police); font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; color: var(--encre-douce); }
.qc-releve__etiquette dd { margin: 0; font-size: .8rem; color: var(--encre); text-align: right; min-width: 0; }
.qc-releve__etiquette dd time { font-family: var(--chiffre-police); }
.qc-releve__sources { list-style: none; padding: 0; margin: 0 0 .4rem; }
.qc-releve__sources li { margin-bottom: .35rem; }
.qc-releve__sources a { word-break: break-word; }

/* ailleurs : les autres étagères (liens réseau depuis les données), sobre, sans vignette */
.qc-ailleurs__liste { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); gap: .7rem 1.6rem; }
.qc-ailleurs__item { display: grid; grid-template-columns: auto 1fr; gap: .7rem; align-items: start; border-top: var(--trait); padding-top: .7rem; font-size: .95rem; }
.qc-ailleurs__item .qc-cote { padding-top: .15rem; }
.qc-ailleurs__item p { margin: 0; min-width: 0; }

/* encart de méthode : une note sur papier ligné, comme le pied (quatrième surface) */
.qc-encart { margin: var(--rythme) auto 0; max-width: min(100% - 2rem, 46rem); background: var(--planche) var(--ligne-registre); border: var(--trait); padding: 1.1rem 1.3rem 1.3rem; }
.qc-encart h2 { font-size: .88rem; text-transform: uppercase; letter-spacing: .1em; color: var(--bleu-imprimerie); margin: .55rem 0 .5rem; }

/* le pied qui prouve : papier ligné de registre, filet double, colophon, note, refus, éditeur
   joignable (action 9 du juge : l'adresse est un lien mailto vers le domaine), plan du site,
   flux */
.qc-pied { margin-top: calc(var(--rythme) * 2); background: var(--planche) var(--ligne-registre); border-top: var(--double); font-size: .9rem; }
.qc-pied__colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 2rem; padding: 2rem 0 1rem; }
.qc-pied__colonne--large { grid-column: span 2; }
@media (max-width: 44rem) { .qc-pied__colonne--large { grid-column: span 1; } }
.qc-pied h2 { font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: var(--bleu-imprimerie); }
.qc-pied ul { list-style: none; padding: 0; margin: 0; }
.qc-pied li { margin-bottom: .4rem; display: flex; align-items: baseline; gap: .5rem; }
.qc-pied__note { color: var(--encre-douce); font-size: .85rem; }
.qc-pied__refus { font-style: italic; margin: 0 0 .5rem; }
.qc-pied__editeur { font-family: var(--titre-police); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; color: var(--encre-douce); margin: 0; border-top: var(--trait); padding-top: .6rem; }
.qc-pied__editeur a { color: var(--bleu-imprimerie); text-decoration: none; }
.qc-pied__editeur a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.qc-pied__ligne { padding: .8rem 0 1.6rem; border-top: var(--trait); color: var(--encre-douce); font-family: var(--titre-police); font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; }
@media print { .qc-fronton, .qc-pied, .qc-releve, .qc-saisons { display: none; } }
