/* Trinity Miles — Le Répertoire à Onglets : registre ivoire, tranches colorées
   en liseré 4px (jamais de fond), codes en mono. Piles système uniquement. */

:root{
  --rp-fond:#faf6ee;
  --rp-fond2:#f2ecdd;
  --rp-carte:#fffdf7;
  --rp-encre:#22201c;
  --rp-encre2:#4c463d;
  --rp-gris:#8b8172;
  --rp-lien:#2f4d7a;
  --rp-filet:#ddd2ba;
  --rp-filet2:#c9bda2;
  --rp-serif:'Palatino Linotype',Palatino,'Book Antiqua',Georgia,serif;
  --rp-sans:'Helvetica Neue',Helvetica,Arial,sans-serif;
  --rp-mono:'SF Mono',Menlo,Consolas,'Courier New',monospace;
  --rp-max:74rem;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--rp-fond);color:var(--rp-encre);font-family:var(--rp-sans);font-size:.95rem;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
h1,h2,h3,h4{font-family:var(--rp-serif);font-weight:600;line-height:1.15;margin:0;color:var(--rp-encre)}
a{color:var(--rp-lien)}
ul,ol{margin:0;padding:0;list-style:none}
dl,dt,dd,p,figure{margin:0}
table{border-collapse:collapse;width:100%}

.rp-saut{position:fixed;left:.6rem;top:.6rem;z-index:60;background:var(--rp-encre);color:var(--rp-fond);padding:.5rem .9rem;font-size:.78rem;text-decoration:none;transform:translateY(-4rem)}
.rp-saut:focus{transform:none}

/* ---------------------------------------------------------------- enseigne */

.rp-enseigne{border-bottom:1px solid var(--rp-filet2)}
.rp-enseigne__barre{display:flex;align-items:baseline;justify-content:space-between;gap:1.4rem;max-width:var(--rp-max);margin-inline:auto;padding:1.1rem clamp(1.1rem,4vw,2.2rem)}
.rp-enseigne__devise{font-size:.84rem;color:var(--rp-encre2);font-style:italic}
.rp-timbre{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.rp-timbre__marque{width:2rem;height:1.4rem;flex:none}
.rp-timbre__nom{font-family:var(--rp-serif);font-size:1.45rem;font-weight:600;color:var(--rp-encre)}

.rp-onglets{border-top:1px solid var(--rp-filet)}
.rp-onglets ol{display:flex;flex-wrap:wrap;gap:0;max-width:var(--rp-max);margin-inline:auto;padding:0 clamp(1.1rem,4vw,2.2rem)}
.rp-onglet{display:block;padding:.65rem 1.1rem .55rem;font-size:.8rem;letter-spacing:.04em;color:var(--rp-encre2);text-decoration:none;border-left:4px solid var(--rp-ton,var(--rp-filet));border-bottom:2px solid transparent;margin-right:.35rem}
.rp-onglet:hover{color:var(--rp-encre);background:var(--rp-fond2)}
.rp-onglet--ouvert{color:var(--rp-encre);font-weight:600;border-bottom-color:var(--rp-ton,var(--rp-encre))}

/* ---------------------------------------------------------------- classeur */

.rp-classeur{max-width:var(--rp-max);margin-inline:auto;padding:0 clamp(1.1rem,4vw,2.2rem)}

.rp-ouverture{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);gap:2.6rem;align-items:start;padding-block:clamp(1.8rem,4.5vw,3.2rem)}
.rp-ouverture__sourcil{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--rp-lien);font-weight:700}
.rp-ouverture__titre{font-size:clamp(2rem,4.2vw,3.2rem);margin-top:.8rem}
.rp-ouverture__devise{font-family:var(--rp-serif);font-style:italic;font-size:1.15rem;color:var(--rp-encre2);margin-top:.7rem}
.rp-ouverture__intro{margin-top:1.1rem;color:var(--rp-encre2);max-width:40em}
.rp-ouverture__boutons{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.rp-reperes{display:flex;gap:1.8rem;margin-top:1.6rem;border-top:1px solid var(--rp-filet);padding-top:1rem}
.rp-reperes div{display:flex;flex-direction:column}
.rp-reperes dt{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rp-gris)}
.rp-reperes dd{font-family:var(--rp-mono);font-size:1.3rem;color:var(--rp-encre)}
.rp-ouverture__planche{border:1px solid var(--rp-filet2);background:var(--rp-carte);padding:.5rem .5rem .3rem}
.rp-ouverture__image{width:100%;aspect-ratio:4/5;object-fit:cover}
.rp-ouverture__planche figcaption{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-gris);text-align:center;padding-block:.45rem .1rem}

.rp-bouton{display:inline-block;font-size:.76rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;text-decoration:none;padding:.65rem 1.25rem;border:1.5px solid var(--rp-encre)}
.rp-bouton--plein{background:var(--rp-encre);color:var(--rp-fond)}
.rp-bouton--plein:hover{background:transparent;color:var(--rp-encre)}
.rp-bouton--clair{color:var(--rp-encre)}
.rp-bouton--clair:hover{background:var(--rp-encre);color:var(--rp-fond)}

/* Index par tranches : gros onglets cliquables. */
.rp-tranches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--rp-filet2);background:var(--rp-carte)}
.rp-tranche{display:flex;flex-direction:column;gap:.3rem;padding:1rem 1.1rem 1rem 1.3rem;border-left:4px solid var(--rp-ton);border-right:1px solid var(--rp-filet);text-decoration:none}
.rp-tranche:last-child{border-right:0}
.rp-tranche:hover{background:var(--rp-fond2)}
.rp-tranche__label{font-family:var(--rp-serif);font-size:1.05rem;font-weight:600;color:var(--rp-encre)}
.rp-tranche__compte{font-family:var(--rp-mono);font-size:.72rem;color:var(--rp-gris)}

.rp-bloc{padding-block:clamp(1.7rem,4vw,2.8rem)}
.rp-bloc__titre{font-size:clamp(1.45rem,2.6vw,2rem);margin-bottom:1.3rem}

/* La table du registre. */
.rp-registre{border:1px solid var(--rp-filet2);background:var(--rp-carte);font-size:.9rem}
.rp-registre thead th{font-family:var(--rp-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rp-gris);font-weight:400;text-align:left;padding:.65rem .9rem;border-bottom:1.5px solid var(--rp-encre)}
.rp-rangee td{padding:.75rem .9rem;border-bottom:1px solid var(--rp-filet);vertical-align:middle}
.rp-rangee:last-child td{border-bottom:0}
.rp-rangee td:first-child{border-left:4px solid var(--rp-ton)}
.rp-rangee:hover td{background:var(--rp-fond2)}
.rp-rangee__cote{font-family:var(--rp-mono);font-size:.78rem;color:var(--rp-encre2);white-space:nowrap}
.rp-rangee__titre a{font-family:var(--rp-serif);font-size:1.02rem;font-weight:600;color:var(--rp-encre);text-decoration:none}
.rp-rangee__titre a:hover{text-decoration:underline;text-decoration-color:var(--rp-ton)}
.rp-rangee__abrege{display:block;font-size:.8rem;color:var(--rp-encre2);margin-top:.2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:34rem}
.rp-rangee__tranche a{font-size:.78rem;color:var(--rp-encre2);text-decoration:none}
.rp-rangee__tranche a:hover{color:var(--rp-lien)}
.rp-rangee__date{font-family:var(--rp-mono);font-size:.76rem;color:var(--rp-gris);white-space:nowrap}
.rp-rangee__vignette{width:4.5rem}
.rp-rangee__vignette a{display:block;width:4.5rem;height:3.4rem;overflow:hidden;border:1px solid var(--rp-filet)}
.rp-rangee__photo{width:100%;height:100%;object-fit:cover}

/* Fiches de rubrique. */
.rp-fiches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}
.rp-fiche{border:1px solid var(--rp-filet2);border-left:4px solid var(--rp-ton);background:var(--rp-carte);padding:1.2rem 1.3rem}
.rp-fiche__titre{font-size:1.3rem}
.rp-fiche__titre a{color:var(--rp-encre);text-decoration:none}
.rp-fiche__titre a:hover{text-decoration:underline;text-decoration-color:var(--rp-ton)}
.rp-fiche__note{font-size:.84rem;color:var(--rp-encre2);margin-top:.55rem}
.rp-fiche__extraits{margin-top:.8rem;border-top:1px dotted var(--rp-filet);padding-top:.7rem;display:flex;flex-direction:column;gap:.4rem}
.rp-fiche__extraits li{display:flex;justify-content:space-between;gap:.8rem;align-items:baseline}
.rp-fiche__extraits a{font-size:.83rem;color:var(--rp-encre2);text-decoration:none}
.rp-fiche__extraits a:hover{color:var(--rp-lien)}
.rp-fiche__cote{font-family:var(--rp-mono);font-size:.68rem;color:var(--rp-gris);white-space:nowrap}

.rp-note-methode{margin-block:clamp(1.6rem,3.5vw,2.6rem);border-top:2px solid var(--rp-encre);border-bottom:1px solid var(--rp-filet);padding:1.4rem 0}
.rp-note-methode__titre{font-size:1.25rem;margin-bottom:.55rem}
.rp-note-methode p{font-size:.9rem;color:var(--rp-encre2);max-width:52em}

.rp-confreres__note{font-size:.88rem;color:var(--rp-encre2);max-width:48em;margin-top:-.7rem;margin-bottom:1.2rem}
.rp-confreres__liste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 2rem}
.rp-confreres__liste li{font-size:.85rem;color:var(--rp-encre2);padding-left:.8rem;border-left:3px solid var(--rp-filet2)}
.rp-confreres__vide{color:var(--rp-gris);font-style:italic}

/* ------------------------------------------------------------------ ariane */

.rp-ariane{padding-block:1rem 0}
.rp-ariane ol{display:flex;flex-wrap:wrap;gap:.3rem .5rem;font-family:var(--rp-mono);font-size:.74rem;letter-spacing:.06em}
.rp-ariane li{display:flex;align-items:center;gap:.5rem;color:var(--rp-gris)}
.rp-ariane li+li::before{content:'»';color:var(--rp-filet2)}
.rp-ariane a{color:var(--rp-encre2);text-decoration:none}
.rp-ariane a:hover{color:var(--rp-lien)}

/* --------------------------------------------------------------- rubrique */

.rp-tranche-tete{margin-top:1.2rem;border:1px solid var(--rp-filet2);border-left:5px solid var(--rp-ton);background:var(--rp-carte);padding:clamp(1.3rem,3vw,2rem)}
.rp-tranche-tete__cote{font-family:var(--rp-mono);font-size:.85rem;letter-spacing:.14em;color:var(--rp-gris)}
.rp-tranche-tete__titre{font-size:clamp(1.8rem,3.2vw,2.5rem);margin-top:.4rem}
.rp-tranche-tete__intro{color:var(--rp-encre2);margin-top:.8rem;max-width:46em}
.rp-tranche-tete__compte{margin-top:1rem;font-family:var(--rp-mono);font-size:.82rem;color:var(--rp-gris)}

.rp-autres{padding-block:clamp(1.5rem,3vw,2.2rem)}
.rp-autres__titre{font-size:1.15rem;margin-bottom:.8rem}
.rp-autres ul{display:flex;flex-wrap:wrap;gap:.55rem}
.rp-autres__lien{display:inline-flex;align-items:baseline;gap:.5rem;border:1px solid var(--rp-filet2);border-left:4px solid var(--rp-ton);background:var(--rp-carte);padding:.5rem .9rem;font-size:.84rem;color:var(--rp-encre);text-decoration:none}
.rp-autres__lien:hover{background:var(--rp-fond2)}
.rp-autres__compte{font-family:var(--rp-mono);font-size:.7rem;color:var(--rp-gris)}

/* ---------------------------------------------------------------- article */

.rp-entree{margin-top:1.2rem}
.rp-entree__liseret{height:5px;background:var(--rp-ton)}
.rp-entree__tete{border:1px solid var(--rp-filet2);border-top:0;background:var(--rp-carte);padding:clamp(1.3rem,3.2vw,2.2rem)}
.rp-entree__cote{font-family:var(--rp-mono);font-size:.82rem;letter-spacing:.14em;color:var(--rp-gris)}
.rp-entree__titre{font-size:clamp(1.85rem,3.6vw,2.7rem);margin-top:.45rem}
.rp-entree__chapeau{font-family:var(--rp-serif);font-style:italic;font-size:1.05rem;color:var(--rp-encre2);margin-top:.9rem;line-height:1.6;max-width:44em}
.rp-champs{display:flex;flex-wrap:wrap;gap:.4rem 2.2rem;margin-top:1.4rem;border-top:1px solid var(--rp-filet);padding-top:1rem}
.rp-champs div{display:flex;flex-direction:column}
.rp-champs dt{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--rp-gris)}
.rp-champs dd{font-family:var(--rp-mono);font-size:.85rem;color:var(--rp-encre);margin-top:.15rem}
.rp-champs dd a{color:var(--rp-lien);text-decoration:none}
.rp-champs dd a:hover{text-decoration:underline}

.rp-entree__corps{max-width:46rem;padding-top:1.6rem}
.rp-planche{border:1px solid var(--rp-filet2);background:var(--rp-carte);padding:.5rem .5rem .3rem;margin-bottom:1.8rem}
.rp-planche__image{width:100%;aspect-ratio:16/9;object-fit:cover}
.rp-planche figcaption{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-gris);text-align:center;padding-block:.45rem .1rem}

.rp-etapes{border:1px solid var(--rp-filet2);border-left:4px solid var(--rp-ton);background:var(--rp-carte);padding:1rem 1.2rem;margin-bottom:1.8rem}
.rp-etapes__titre{font-family:var(--rp-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rp-gris);margin-bottom:.6rem}
.rp-etapes ol{list-style:none;counter-reset:etape;display:flex;flex-direction:column;gap:.4rem}
.rp-etapes li{counter-increment:etape;font-size:.85rem}
.rp-etapes li::before{content:counter(etape,decimal-leading-zero) '  ';font-family:var(--rp-mono);color:var(--rp-ton,var(--rp-lien));font-size:.75rem}
.rp-etapes a{color:var(--rp-encre2);text-decoration:none}
.rp-etapes a:hover{color:var(--rp-lien)}

.rp-entree__corps h2{font-size:1.45rem;margin:2rem 0 .6rem;padding-bottom:.3rem;border-bottom:1.5px solid var(--rp-encre)}
.rp-entree__corps h3{font-size:1.15rem;margin:1.6rem 0 .5rem}
.rp-entree__corps p{margin:.9rem 0}
.rp-entree__corps a{color:var(--rp-lien)}
.rp-entree__corps ul,.rp-entree__corps ol{list-style:disc;padding-left:1.3rem;margin:.85rem 0}
.rp-entree__corps ol{list-style:decimal}
.rp-entree__corps li{margin:.35rem 0}
.rp-entree__corps blockquote{border-left:3px solid var(--rp-ton,var(--rp-lien));padding:.3rem 0 .3rem 1rem;margin:1.3rem 0;color:var(--rp-encre2);font-family:var(--rp-serif);font-style:italic}
.rp-entree__corps table{border:1px solid var(--rp-filet2);margin:1.3rem 0;font-size:.85rem}
.rp-entree__corps td,.rp-entree__corps th{border:1px solid var(--rp-filet);padding:.4rem .6rem;text-align:left}
.rp-entree__corps th{background:var(--rp-fond2);font-family:var(--rp-serif)}
.rp-entree__corps figure{margin:1.6rem 0}
.rp-entree__corps figcaption{font-size:.74rem;color:var(--rp-gris);margin-top:.4rem}
.rp-entree__corps strong{color:var(--rp-encre)}

.rp-entree__pied{max-width:46rem;margin-top:2.4rem}
.rp-sources__titre,.rp-voisines__titre{font-family:var(--rp-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rp-gris);margin-bottom:.7rem}
.rp-sources ul{display:flex;flex-direction:column;gap:.35rem;margin-bottom:2rem}
.rp-sources a{font-size:.82rem;color:var(--rp-gris);text-decoration:none}
.rp-sources a:hover{color:var(--rp-lien)}
.rp-voisines{margin-top:1.6rem}
.rp-voisines .rp-rangee__abrege{display:none}
.rp-entree__signe{margin-top:1.8rem;font-family:var(--rp-serif);font-style:italic;color:var(--rp-encre2);font-size:.9rem}
.rp-entree__boutons{padding-top:1.6rem}

.rp-entree--simple .rp-entree__corps--seul{max-width:46rem}
.rp-entree--vide .rp-entree__tete{text-align:center}
.rp-entree__filigrane{font-family:var(--rp-mono);font-size:clamp(3.5rem,9vw,6rem);color:var(--rp-filet2);line-height:1;margin-bottom:.3rem}
.rp-entree--vide .rp-entree__corps{max-width:30rem;margin-inline:auto;text-align:center;color:var(--rp-encre2)}
.rp-entree--vide .rp-entree__boutons{display:flex;justify-content:center}

/* ---------------------------------------------------------------------- bas */

.rp-bas{margin-top:clamp(2rem,5vw,3.2rem);border-top:1.5px solid var(--rp-encre);background:var(--rp-fond2);display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1.6rem;padding:1.8rem clamp(1.1rem,4vw,2.2rem) 1.2rem}
.rp-bas__texte{font-size:.84rem;color:var(--rp-encre2);max-width:30em;margin-top:.8rem}
.rp-bas__titre{font-family:var(--rp-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--rp-gris);margin-bottom:.7rem}
.rp-bas__bloc ul{display:flex;flex-direction:column;gap:.35rem}
.rp-bas__bloc a{font-size:.84rem;color:var(--rp-encre2);text-decoration:none}
.rp-bas__bloc a:hover{color:var(--rp-lien)}
.rp-bas__lien{border-left:3px solid var(--rp-ton,var(--rp-filet2));padding-left:.55rem}
.rp-bas__ligne{grid-column:1/-1;border-top:1px solid var(--rp-filet);padding-top:1rem;margin-top:.4rem;font-family:var(--rp-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rp-gris)}

/* -------------------------------------------------------------- responsive */

@media (max-width:62rem){
  .rp-ouverture{grid-template-columns:1fr}
  .rp-tranches{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rp-tranche{border-bottom:1px solid var(--rp-filet)}
  .rp-fiches,.rp-confreres__liste{grid-template-columns:1fr}
  .rp-bas{grid-template-columns:1fr}
}

@media (max-width:42rem){
  .rp-rangee__abrege,.rp-rangee__vignette{display:none}
  .rp-tranches{grid-template-columns:1fr}
  .rp-champs{gap:.5rem 1.4rem}
  .rp-enseigne__barre{flex-direction:column;gap:.3rem}
}

/* 18/09/2026 : le cadrage doit viser l'IMAGE. Posé sur un <picture> (élément en ligne),
   il est ignoré et la photo sort déformée. Les proportions de la source sont conservées
   par object-fit: cover, qui recadre sans jamais étirer. */
.rp-ouverture__image { display: block; }
.rp-ouverture__image img { width: 100%; height: 100%; object-fit: cover; }
.rp-rangee__photo { display: block; }
.rp-rangee__photo img { width: 100%; height: 100%; object-fit: cover; }

/* 18/09/2026 : le cadrage doit viser l'IMAGE. Posé sur un <picture> (élément en ligne),
   il est ignoré et la photo sort déformée. Les proportions de la source sont conservées
   par object-fit: cover, qui recadre sans jamais étirer. */
.rp-planche__image { display: block; }
.rp-planche__image img { width: 100%; height: 100%; object-fit: cover; }
