/* =====================================================================
   PEAU « cb- » — The Maternity Register (maternity-reflexology-london.com)
   Direction 01 « Le Registre de Chenil » traduite au sujet : le casebook
   d'une pratique de maternité, tenu à la main. Papier d'archive, encre
   sépia, prune d'enregistrement en aplat, grenat de tampon en filets.
   Trois gestes : la ligne cousue, le tampon « Checked », la cote en
   gouttière ; et la rature, la correction barrée et datée.
   ===================================================================== */

/* ---------- fontes auto-hébergées (aucune requête tierce) ---------- */
@font-face {
  font-family: 'cb-titre';
  src: url('cb-titre.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'cb-texte';
  src: url('cb-texte.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'cb-texte';
  src: url('cb-texte-it.woff2') format('woff2');
  font-weight: 100 900; font-style: italic; font-display: swap;
}
@font-face {
  font-family: 'cb-note';
  src: url('cb-note.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'cb-note';
  src: url('cb-note-700.woff2') format('woff2');
  font-weight: 700; font-style: normal; font-display: swap;
}

:root {
  /* ---------- matières ---------- */
  --papier:        #f3eee2;   /* papier d'archive : fond général */
  --feuille:       #fbf7ec;   /* feuille du cahier : surfaces d'entrées */
  --buvard:        #e9dfcc;   /* buvard : encarts creux, bandes de repos */
  --encre:         #29211a;   /* encre sépia : texte courant */
  --encre-douce:   #6a6053;   /* encre délayée : mentions, légendes */
  --prune:         #7a2d52;   /* encre violette du registre : APLAT signature */
  --prune-vive:    #93406b;   /* encre violette rechargée : survols */
  --grenat:        #8c2f2a;   /* tampon de contrôle : filets forts, cotes */
  --sauge:         #5f7557;   /* feuille de sauge : focus, petites pastilles */
  --filet:         #cbc0ac;   /* filet de réglure : séparateurs fins */
  --filet-fort:    #a5977f;   /* filet de reliure : séparateurs structurants */
  --selection:     #e6d5c2;   /* buvard taché */

  /* la sauge ne porte jamais de texte : elle est un fond de repos, pas une encre */

  /* ---------- polices ---------- */
  --titre-police:  'cb-titre', Didot, 'Bodoni MT', Georgia, serif;
  --texte-police:  'cb-texte', 'Avenir Next', 'Segoe UI', 'Helvetica Neue', sans-serif;
  --note-police:   'cb-note', 'Courier New', monospace;

  /* ---------- rythme ---------- */
  --travee:        72rem;
  --mesure:        38rem;
  --marge-largeur: 12.5rem;
  --gouttiere:     2.6rem;
  --interligne:    1.62;
  --pas:           1.3rem;
  --rayon:         3px;

  /* ---------- ratios d'image ---------- */
  --r-planche:     16 / 9;
  --r-fiche:       3 / 4;
  --r-pano:        21 / 9;

  /* ---------- tailles ---------- */
  --t-base:   clamp(1.02rem, 1rem + .25vw, 1.13rem);
  --t-petit:  .86rem;
  --t-menu:   .8rem;
  --t-h1:     clamp(2rem, 1.4rem + 2.6vw, 3.3rem);
  --t-h2:     clamp(1.35rem, 1.1rem + 1vw, 1.8rem);
  --t-h3:     1.06rem;
}

/* =====================================================================
   BASE
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
  margin: 0;
  background: var(--papier);
  color: var(--encre);
  font-family: var(--texte-police);
  font-size: var(--t-base);
  line-height: var(--interligne);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}
::selection { background: var(--selection); }
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--prune); text-underline-offset: .15em; text-decoration-thickness: 1px; }
a:hover { color: var(--prune-vive); }
:focus-visible { outline: 2px solid var(--sauge); outline-offset: 2px; border-radius: var(--rayon); }

h1, h2, h3, h4 {
  font-family: var(--titre-police);
  font-weight: 500;
  line-height: 1.08;
  margin: 0;
  letter-spacing: -.012em;
}
p, ul, ol, dl, table, figure, blockquote { margin: 0; }

.cb-travee { width: min(100% - 2.4rem, var(--travee)); margin-inline: auto; }
.cb-acces-direct {
  position: absolute; left: -9999px; top: -4rem; z-index: 60;
  background: var(--encre); color: var(--feuille);
  padding: .6rem 1rem; font-family: var(--note-police); font-size: .8rem;
}
.cb-acces-direct:focus { left: .6rem; top: .6rem; }

/* la réglure du registre : filets horizontaux de cahier, très pâles */
.cb-reglure {
  background-image: repeating-linear-gradient(0deg,
    transparent 0, transparent calc(1.9rem - 1px),
    var(--filet) calc(1.9rem - 1px), var(--filet) 1.9rem);
}

/* =====================================================================
   SIGNATURE A — la ligne cousue : filet de marge prune + filet double de
   reliure. Chaque entrée du registre est une ligne cousue, jamais une
   carte ombrée générique.
   ===================================================================== */
.cb-entree, .cb-entree-voisine, .cb-section-casier {
  border-left: 2px solid var(--prune);
  border-block-start: 1px solid var(--filet);
  box-shadow: 0 -3px 0 -1px var(--papier), 0 -4px 0 -1px var(--filet-fort);
}

/* =====================================================================
   SIGNATURE B — le tampon « Checked » : cartouche bordé grenat, incliné,
   mono capitales. La relecture avant rangement, visible sur la dateline.
   ===================================================================== */
.cb-tampon {
  display: inline-block;
  font-family: var(--note-police); font-size: .72rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--grenat);
  border: 1.5px solid var(--grenat);
  border-radius: 2px;
  padding: .18rem .55rem .12rem;
  transform: rotate(-1.5deg);
  box-shadow: 1px 2px 0 rgba(41, 33, 26, .18);
  background: var(--feuille);
  white-space: nowrap;
}

/* =====================================================================
   SIGNATURE C — la cote en gouttière : numéro d'entrée en machine à
   écrire, chiffres tabulaires, relié à l'entrée par son filet de marge.
   ===================================================================== */
.cb-cote {
  display: inline-block;
  font-family: var(--note-police); font-size: .74rem;
  letter-spacing: .06em; color: var(--grenat);
  font-feature-settings: 'tnum' 1;
}
.cb-cote--ouverte, .cb-cote--notice {
  background: var(--prune); color: var(--feuille);
  padding: .22rem .6rem; border-radius: var(--rayon);
  font-size: .78rem; letter-spacing: .1em;
}

/* =====================================================================
   L'IDÉE INATTENDUE — la rature : dans un registre tenu à la main on ne
   gomme pas, on barre et on date. La correction reste visible.
   ===================================================================== */
.cb-rature { font-size: var(--t-petit); color: var(--encre-douce); }
.cb-rature s {
  color: var(--grenat); text-decoration-color: var(--grenat);
  text-decoration-thickness: 2px;
}
.cb-rature__note {
  font-family: var(--note-police); font-size: .74rem;
  color: var(--encre-douce); display: block; margin-top: .15rem;
}

/* =====================================================================
   FRONTISPICE — le haut du registre : nom, sous-titre, état d'édition,
   pupitre de sections.
   ===================================================================== */
.cb-frontispice {
  border-block-end: 1px solid var(--filet-fort);
  background:
    linear-gradient(180deg, var(--feuille) 0%, var(--papier) 100%);
  position: relative;
}
.cb-frontispice::before {
  content: ''; display: block; height: .3rem;
  background: var(--prune);   /* l'aplat de marque : le dos du registre */
}
.cb-frontispice__haut {
  display: flex; flex-wrap: wrap; align-items: flex-end;
  justify-content: space-between; gap: .8rem 2rem;
  padding: .85rem 0 .6rem;
}
.cb-titraille { display: flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--encre); }
.cb-titraille:hover { color: var(--encre); }
.cb-marque { width: 2.6rem; height: 2.6rem; stroke: var(--prune); flex: none; }
.cb-titraille__nom {
  display: block; font-family: var(--titre-police); font-weight: 500;
  font-size: clamp(1.4rem, 1.15rem + 1.2vw, 1.95rem); line-height: 1;
  letter-spacing: -.01em;
}
.cb-titraille__sous {
  display: block; margin-top: .3rem;
  font-family: var(--note-police); font-size: .74rem;
  letter-spacing: .12em; text-transform: uppercase; color: var(--encre-douce);
}
.cb-etat {
  display: flex; flex-direction: column; gap: .12rem; text-align: right;
  font-family: var(--note-police); font-size: .74rem; color: var(--encre-douce);
}
.cb-etat span { border-block-end: 1px dotted var(--filet); padding-block: .1rem; }
.cb-etat span:last-child { border-block-end: 0; }

.cb-pupitre { border-block-start: 1px solid var(--filet); }
.cb-pupitre ul {
  display: flex; flex-wrap: wrap; margin: 0; padding: 0;
  list-style: none;
}
.cb-pupitre li { display: flex; }
.cb-pupitre a {
  display: block; padding: .46rem .9rem .42rem;
  font-family: var(--note-police); font-size: var(--t-menu);
  letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
  color: var(--encre); border-inline-end: 1px solid var(--filet);
}
.cb-pupitre li:first-child a { border-inline-start: 1px solid var(--filet); }
.cb-pupitre a:hover { background: var(--buvard); color: var(--encre); }
.cb-pupitre a[aria-current='page'] {
  background: var(--prune); color: var(--feuille);   /* aplat signature */
}

/* =====================================================================
   ACCUEIL — chapeau habillé, l'entrée ouverte, puis le plan marge+lecture.
   ===================================================================== */
.cb-titre-accueil {
  margin: 0 auto; padding-top: 1.6rem; max-width: 44rem;
  font-size: clamp(2.1rem, 1.5rem + 2.6vw, 3.4rem);
  text-wrap: balance;
}
.cb-chapeau-accueil {
  max-width: 44rem; margin: 1rem auto 0;
  font-size: clamp(1.18rem, 1.05rem + .6vw, 1.42rem); line-height: 1.5;
  color: var(--encre);
  text-wrap: balance;
}
.cb-chapeau-accueil::first-line { font-weight: 600; }

/* --- l'entrée ouverte : la une du registre --- */
.cb-ouverte {
  margin-top: 2rem;
  display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
  gap: 0 var(--gouttiere); align-items: stretch;
  background: var(--feuille);
  border: 1px solid var(--filet-fort);
  border-radius: 6px;
  box-shadow: 0 10px 28px -14px rgba(41, 33, 26, .35), 0 2px 0 var(--filet);
  overflow: hidden;
}
.cb-ouverte__texte {
  padding: 1.9rem 0 1.9rem 2rem;
  display: flex; flex-direction: column; gap: .8rem; justify-content: center;
}
.cb-ouverte__titre { font-size: clamp(1.7rem, 1.2rem + 2.2vw, 2.7rem); }
.cb-ouverte__titre a { color: var(--encre); text-decoration: none; }
.cb-ouverte__titre a:hover { color: var(--prune); }
.cb-ouverte__chapeau { color: var(--encre-douce); font-size: 1.04rem; max-width: 30rem; }
.cb-ouverte__impression { position: relative; margin: 0; }
.cb-ouverte__impression picture,
.cb-ouverte__impression img { width: 100%; height: 100%; object-fit: cover; }
.cb-ouverte__impression img { aspect-ratio: var(--r-planche); filter: sepia(.14) saturate(.92); }
.cb-ouverte__impression figcaption {
  position: absolute; inset-inline: 0; bottom: 0;
  padding: 1.6rem 1.2rem .7rem;
  font-size: var(--t-petit); color: var(--feuille);
  background: linear-gradient(0deg, rgba(30, 22, 16, .82), transparent);
}
.cb-credit { font-family: var(--note-police); font-size: .68rem; opacity: .85; }

/* --- le plan : marge de repères + lecture --- */
.cb-plan {
  display: grid; grid-template-columns: var(--marge-largeur) minmax(0, 1fr);
  gap: 0 var(--gouttiere); margin-top: 2.6rem;
}
.cb-plan--inverse { grid-template-columns: minmax(0, 1fr) var(--marge-largeur); }
.cb-plan--inverse > .cb-lecture { order: 1; }
.cb-plan--inverse > .cb-marge { order: 2; }

.cb-marge {
  background-image: repeating-linear-gradient(0deg,
    transparent 0, transparent calc(1.9rem - 1px),
    rgba(203, 192, 172, .5) calc(1.9rem - 1px), rgba(203, 192, 172, .5) 1.9rem);
  padding: .2rem .9rem 1.4rem 0;
  align-self: start;
  position: sticky; top: 1rem;
}
.cb-marge__titre {
  font-family: var(--note-police); font-size: .72rem;
  letter-spacing: .2em; text-transform: uppercase;
  color: var(--grenat); margin: 1.2rem 0 .55rem;
  border-block-end: 2px solid var(--grenat); padding-block-end: .25rem;
  width: fit-content;
}
.cb-marge__liste { list-style: none; margin: 0; padding: 0; font-size: var(--t-petit); }
.cb-marge__liste li { margin: .3rem 0; }
.cb-marge__liste a { text-decoration: none; color: var(--encre); }
.cb-marge__liste a:hover { color: var(--prune); }
.cb-marge__liste a[aria-current='true'] { font-weight: 700; color: var(--prune); }
.cb-marge__n { font-family: var(--note-police); color: var(--encre-douce); font-size: .72rem; }
.cb-marge__note { font-size: var(--t-petit); color: var(--encre-douce); margin-top: 1.2rem; font-style: italic; }
.cb-marge__encart {
  margin-top: 1.4rem; padding: .9rem 1rem;
  background: var(--buvard); border-radius: var(--rayon);
  border: 1px solid var(--filet-fort);
  box-shadow: 0 6px 16px -10px rgba(41, 33, 26, .4);
}
.cb-marge__encart p { font-size: var(--t-petit); margin-top: .3rem; }

/* --- le bilan : la cellule cousue du registre --- */
.cb-bilan { margin: .4rem 0 0; }
.cb-bilan__cellule {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: .8rem; padding: .3rem 0;
  border-block-end: 1px solid var(--filet);
}
.cb-bilan__cellule dt {
  font-family: var(--note-police); font-size: .7rem;
  letter-spacing: .12em; text-transform: uppercase; color: var(--encre-douce);
}
.cb-bilan__cellule dd {
  margin: 0; font-family: var(--titre-police); font-size: 1.25rem;
  font-feature-settings: 'tnum' 1; color: var(--encre);
}

/* --- tranches de la colonne de lecture --- */
.cb-tranche { margin-bottom: 3rem; }
.cb-tete-tranche {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap;
  border-block-end: 3px double var(--filet-fort);
  padding-block-end: .5rem; margin-bottom: 0;
}
.cb-tete-tranche h2 { font-size: var(--t-h2); }
.cb-tete-tranche h2 a { color: var(--encre); text-decoration: none; }
.cb-tete-tranche h2 a:hover { color: var(--prune); }
.cb-tete-tranche p {
  font-family: var(--note-police); font-size: .72rem;
  letter-spacing: .1em; text-transform: uppercase; color: var(--encre-douce);
}

/* --- la liasse : entrées cousues --- */
.cb-liasse { display: flex; flex-direction: column; }
.cb-entree {
  display: grid; grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: 0 1.3rem; padding: 1.1rem 0 1.1rem 1.1rem;
  background: transparent;
  transition: background .18s ease;
}
.cb-entree:hover { background: var(--feuille); }
.cb-entree__impression { margin: 0; }
.cb-entree__impression picture,
.cb-entree__impression img { width: 100%; height: 100%; object-fit: cover; }
.cb-cadre-fiche {
  display: block; aspect-ratio: var(--r-fiche); overflow: hidden;
  border: 1px solid var(--filet-fort); border-radius: var(--rayon);
  box-shadow: 0 5px 14px -8px rgba(41, 33, 26, .45);
}
.cb-cadre-fiche img { filter: sepia(.14) saturate(.92); transition: transform .25s ease; }
.cb-entree:hover .cb-cadre-fiche img { transform: scale(1.02); }
.cb-entree__corps { min-width: 0; }
.cb-entree__cote {
  display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
  margin-bottom: .3rem;
}
.cb-entree__section {
  font-family: var(--note-police); font-size: .7rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--encre-douce); text-decoration: none;
}
.cb-entree__section:hover { color: var(--prune); }
.cb-entree__intitule { font-size: var(--t-h3); font-weight: 500; }
.cb-entree__intitule a { color: var(--encre); text-decoration: none; }
.cb-entree__intitule a:hover { color: var(--prune); }
.cb-entree__usage { font-size: var(--t-petit); color: var(--encre-douce); margin-top: .3rem; max-width: 34rem; }
.cb-entree__datation {
  font-family: var(--note-police); font-size: .72rem;
  color: var(--encre-douce); margin-top: .4rem;
}

/* --- les brèves : lignes de registre sans vignette --- */
.cb-breves {
  list-style: none; margin: 0; padding: 0;
  columns: 2; column-gap: 2.4rem; column-rule: 1px solid var(--filet);
}
.cb-entree--breve {
  break-inside: avoid; padding: .85rem 0 .85rem 1rem;
  display: block;
}
.cb-entree--breve .cb-entree__cote { justify-content: space-between; }
.cb-entree--breve time { font-family: var(--note-police); font-size: .72rem; color: var(--encre-douce); }
.cb-entree__section-txt {
  font-family: var(--note-police); font-size: .68rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--encre-douce);
  margin-top: .2rem;
}

/* --- l'établi : le tableau « établi / incertain / non dit » en aplat prune --- */
.cb-tranche--etabli {
  background: var(--prune);
  color: #f6eee9;
  border-radius: 8px;
  padding: 1.6rem 1.8rem 2rem;
  box-shadow: 0 14px 34px -18px rgba(80, 22, 50, .55);
}
.cb-tranche--etabli .cb-tete-tranche { border-block-end-color: rgba(246, 238, 233, .4); }
.cb-tranche--etabli .cb-tete-tranche h2 { color: #f6eee9; }
.cb-tranche--etabli .cb-tete-tranche p { color: rgba(246, 238, 233, .75); }
.cb-abaque { overflow-x: auto; }
.cb-tableau {
  width: 100%; border-collapse: collapse;
  font-size: .92rem; line-height: 1.5;
  background: var(--feuille); color: var(--encre);
  border-radius: var(--rayon); overflow: hidden;
}
.cb-tableau caption {
  caption-side: top; text-align: left;
  font-family: var(--note-police); font-size: .72rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: rgba(246, 238, 233, .8); padding-bottom: .6rem;
}
.cb-tableau th {
  font-family: var(--note-police); font-size: .74rem; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; text-align: left;
  background: var(--buvard); color: var(--encre);
  padding: .6rem .8rem; border-block-end: 2px solid var(--grenat);
}
.cb-tableau td {
  padding: .7rem .8rem; vertical-align: top;
  border-block-end: 1px solid var(--filet);
  border-inline-end: 1px solid var(--filet);
}
.cb-tableau td:last-child { border-inline-end: 0; }
.cb-tableau tr:last-child td { border-block-end: 0; }
.cb-tableau tbody tr:nth-child(even) { background: #f4eee0; }

/* --- les sections : les casiers du registre --- */
.cb-sections {
  display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem;
  margin-top: 1.2rem;
}
.cb-section-casier {
  padding: 1.1rem 1.2rem 1.2rem 1.3rem;
  background: var(--feuille);
  border-radius: var(--rayon);
  box-shadow: 0 8px 20px -14px rgba(41, 33, 26, .4);
}
.cb-section-casier__cote {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: var(--note-police); font-size: .7rem; color: var(--encre-douce);
  border-block-end: 1px solid var(--filet); padding-block-end: .35rem;
}
.cb-section-casier__titre { font-size: 1.3rem; margin-top: .6rem; }
.cb-section-casier__titre a { color: var(--encre); text-decoration: none; }
.cb-section-casier__titre a:hover { color: var(--prune); }
.cb-section-casier__intro { font-size: var(--t-petit); color: var(--encre-douce); margin-top: .35rem; }
.cb-section-casier__liste { list-style: none; margin: .8rem 0 0; padding: 0; font-size: var(--t-petit); }
.cb-section-casier__liste li { padding: .28rem 0; border-block-start: 1px dotted var(--filet); }
.cb-section-casier__liste a { color: var(--encre); }
.cb-section-casier__liste a:hover { color: var(--prune); }
.cb-renvoi-ligne { margin-top: .9rem; }
.cb-renvoi {
  display: inline-block;
  font-family: var(--note-police); font-size: .74rem;
  letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  background: var(--prune); color: var(--feuille);       /* aplat signature */
  padding: .5rem 1rem; border-radius: var(--rayon);
  box-shadow: 0 4px 10px -6px rgba(80, 22, 50, .6);
}
.cb-renvoi:hover { background: var(--prune-vive); color: var(--feuille); }

/* --- le registre voisin (section réseau) --- */
.cb-registre-voisin { margin: 1rem 0 3rem; }
.cb-registre-voisin__liste { list-style: none; margin: 1rem 0 0; padding: 0; }
.cb-entree-voisine { padding: .85rem 0 .85rem 1.1rem; font-size: var(--t-petit); }

/* =====================================================================
   RUBRIQUE — la section du registre.
   ===================================================================== */
.cb-remontee { font-size: var(--t-petit); padding-top: 1.1rem; }
.cb-remontee ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.cb-remontee li { font-family: var(--note-police); letter-spacing: .06em; }
.cb-remontee li + li::before { content: '/'; margin-right: .4rem; color: var(--filet-fort); }
.cb-remontee a { color: var(--encre-douce); text-decoration: none; }
.cb-remontee a:hover { color: var(--prune); }
.cb-remontee li[aria-current] { color: var(--encre); }

.cb-ouverture { padding: 1.6rem 0 1rem; max-width: var(--mesure); }
.cb-ouverture__sur { margin-bottom: .5rem; }
.cb-ouverture h1 { font-size: var(--t-h1); }
.cb-ouverture .cb-chapeau { margin-top: .9rem; }
.cb-mention {
  font-family: var(--note-police); font-size: .74rem;
  letter-spacing: .1em; color: var(--encre-douce); margin-top: .9rem;
}
.cb-liasse--section { margin-top: .6rem; }
.cb-liasse--section .cb-entree { grid-template-columns: 9rem minmax(0, 1fr); }

/* =====================================================================
   ARTICLE — la notice de registre.
   ===================================================================== */
.cb-notice__tete { max-width: var(--mesure); padding-top: 1.4rem; }
.cb-notice__tete h1 { font-size: var(--t-h1); margin-top: .5rem; }
.cb-chapeau {
  font-size: 1.12rem; line-height: 1.55; color: var(--encre);
  text-wrap: pretty;
}
.cb-datation {
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  margin-top: 1rem; font-family: var(--note-police); font-size: .76rem;
  color: var(--encre-douce);
}
.cb-signature { letter-spacing: .02em; }
.cb-notice__planche { margin: 1.8rem 0 0; }
.cb-notice__planche picture { display: block; }
.cb-cadre-planche {
  display: block; overflow: hidden;
  border: 1px solid var(--filet-fort); border-radius: 6px;
  box-shadow: 0 12px 30px -16px rgba(41, 33, 26, .45);
}
.cb-cadre-planche img { aspect-ratio: var(--r-planche); width: 100%; object-fit: cover; filter: sepia(.14) saturate(.92); }
.cb-notice__planche figcaption {
  font-size: var(--t-petit); color: var(--encre-douce);
  padding: .55rem .2rem 0; border-block-end: 1px solid var(--filet);
  padding-block-end: .55rem;
}

/* le corps de la notice : mesure bornée, H2 en manchettes côtées */
.cb-corps { max-width: var(--mesure); min-width: 0; }
.cb-corps > * + * { margin-top: var(--pas); }
.cb-corps h2 {
  font-size: var(--t-h2); margin-top: 2.4rem; padding-top: .9rem;
  border-block-start: 3px double var(--filet-fort);
  position: relative;
}
.cb-corps h2::before {
  content: '§'; position: absolute; left: -2.1rem; top: 1.05rem;
  font-family: var(--note-police); font-size: .9rem; color: var(--grenat);
}
.cb-corps h3 { font-size: 1.14rem; margin-top: 1.9rem; font-weight: 600; }
.cb-corps p { max-width: 36rem; }
.cb-corps ul, .cb-corps ol { padding-left: 1.3rem; max-width: 35rem; }
.cb-corps li { margin: .35rem 0; }
.cb-corps li::marker { color: var(--grenat); }
.cb-corps a { text-decoration-thickness: 1px; }
.cb-corps strong { font-weight: 650; }
.cb-corps blockquote {
  border-left: 2px solid var(--prune);
  margin: 0; padding: .4rem 0 .4rem 1.2rem;
  font-style: italic; color: var(--encre-douce);
  max-width: 34rem;
}
.cb-corps table {
  border-collapse: collapse; font-size: .92rem;
  background: var(--feuille); width: 100%;
}
.cb-corps th, .cb-corps td {
  padding: .55rem .7rem; text-align: left; vertical-align: top;
  border-block-end: 1px solid var(--filet);
}
.cb-corps th {
  font-family: var(--note-police); font-size: .72rem; letter-spacing: .1em;
  text-transform: uppercase; border-block-end: 2px solid var(--grenat);
}
.cb-corps img { border-radius: var(--rayon); }
.cb-corps table { display: block; max-width: 100%; overflow-x: auto; }
.cb-corps--office { max-width: 42rem; padding-bottom: 2.5rem; }

/* --- le relevé : rail latéral de la notice --- */
.cb-releve {
  align-self: start; position: sticky; top: 1rem;
  border-left: 1px solid var(--filet-fort);
  padding-left: 1.2rem;
}
.cb-releve__bloc { margin-bottom: 1.8rem; }
.cb-releve__sommaire { list-style: none; margin: 0; padding: 0; font-size: var(--t-petit); counter-reset: renv; }
.cb-releve__sommaire li { margin: .38rem 0; padding-left: 1.4rem; position: relative; counter-increment: renv; }
.cb-releve__sommaire li::before {
  content: counter(renv, decimal-leading-zero);
  position: absolute; left: 0; top: .05rem;
  font-family: var(--note-police); font-size: .7rem; color: var(--grenat);
}
.cb-releve__sommaire a { text-decoration: none; color: var(--encre); }
.cb-releve__sommaire a:hover { color: var(--prune); }
.cb-releve__sources { list-style: none; margin: 0; padding: 0; font-size: var(--t-petit); }
.cb-releve__sources li { margin: .5rem 0; padding-left: 1rem; border-left: 2px solid var(--filet); }
.cb-releve__sources a { word-break: break-word; }
.cb-src-dom { font-family: var(--note-police); font-size: .68rem; color: var(--encre-douce); }
.cb-folio {
  font-family: var(--note-police); font-size: .74rem; color: var(--encre-douce);
  border-top: 1px solid var(--filet); border-bottom: 1px solid var(--filet);
  padding: .45rem 0;
}

/* --- les voisines --- */
.cb-voisines { margin: 2.6rem 0 3rem; }
.cb-liasse--trois { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.4rem; }
.cb-liasse--trois .cb-entree { grid-template-columns: 1fr; gap: .8rem; padding: 1rem; background: var(--feuille); border-radius: var(--rayon); }
.cb-liasse--trois .cb-entree__impression picture { aspect-ratio: var(--r-planche); }
.cb-liasse--trois .cb-cadre-fiche { aspect-ratio: var(--r-planche); }

/* =====================================================================
   L'OURS — le pied qui prouve.
   ===================================================================== */
.cb-ours {
  background: var(--buvard);
  border-block-start: 2px solid var(--prune);   /* la ligne cousue du pied */
  box-shadow: inset 0 4px 0 -3px var(--filet-fort);
  margin-top: 1rem;
}
.cb-ours__colonnes {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2.4rem;
  padding: 2.2rem 0 1.6rem;
}
.cb-ours__col h2 {
  font-family: var(--note-police); font-size: .72rem; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: var(--grenat);
  border-block-end: 2px solid var(--grenat); padding-block-end: .3rem;
  width: fit-content; margin-bottom: .8rem;
}
.cb-ours__col p { font-size: var(--t-petit); color: var(--encre); }
.cb-ours__note { margin-top: .8rem; font-style: italic; color: var(--encre-douce); }
.cb-ours__col ul { list-style: none; margin: 0; padding: 0; font-size: var(--t-petit); }
.cb-ours__col li { margin: .35rem 0; }
.cb-ours__col a { color: var(--encre); text-decoration: none; }
.cb-ours__col a:hover { color: var(--prune); }
.cb-ours__ligne {
  display: flex; align-items: center; gap: .7rem;
  font-family: var(--note-police); font-size: .72rem; color: var(--encre-douce);
  border-block-start: 1px solid var(--filet-fort);
  padding: .8rem 0 1.6rem;
}
.cb-ours__marque .cb-marque { width: 1.4rem; height: 1.4rem; stroke: var(--encre-douce); }

/* =====================================================================
   404
   ===================================================================== */
.cb-page--404 .cb-ouverture { padding-top: 3rem; }

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width: 64rem) {
  .cb-plan, .cb-plan--inverse { grid-template-columns: minmax(0, 1fr); }
  .cb-plan > * { min-width: 0; }
  .cb-marge { position: static; order: 2; padding-right: 0; }
  .cb-plan--inverse > .cb-marge { order: 2; }
  .cb-releve { position: static; border-left: 0; padding-left: 0; margin-top: 2rem; border-top: 1px solid var(--filet-fort); padding-top: 1.4rem; }
  .cb-ouverte { grid-template-columns: 1fr; }
  .cb-ouverte__texte { padding: 1.4rem 1.4rem 1.6rem; }
  .cb-liasse--trois { grid-template-columns: 1fr; }
  .cb-corps h2::before { position: static; margin-right: .5rem; }
}
@media (max-width: 46rem) {
  .cb-frontispice__haut { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .cb-etat { text-align: left; }
  .cb-sections { grid-template-columns: 1fr; }
  .cb-breves { columns: 1; }
  .cb-entree, .cb-liasse--section .cb-entree { grid-template-columns: 1fr; gap: .7rem; }
  .cb-entree__impression { max-width: 11rem; }
  .cb-pupitre a { padding: .55rem .7rem; }
  .cb-tranche--etabli { padding: 1.2rem 1rem 1.5rem; }
}
@media print {
  .cb-pupitre, .cb-marge, .cb-releve, .cb-remontee { display: none; }
  .cb-plan { display: block; }
}
