/* Thème StarckHouse : styles (repris des maquettes validées le 20/10/2026). */
:root {
  --fond: #F2F1EF;      /* gris très clair, chaud */
  --papier: #FFFFFF;
  --encre: #141414;
  --gris: #77766F;
  --gris-clair: #A3A39E;
  --trait: #D9D8D3;
  --accent: #D9461E;    /* un seul accent, rouge orangé */
  --accent-doux: #F6DED5;
  --titre: "Barlow Condensed", "Arial Narrow", sans-serif;
  --texte: "Barlow", "Helvetica Neue", Arial, sans-serif;
  --main: "Caveat", "Bradley Hand", cursive;   /* annotations manuscrites */
  --large: 1240px;
  --gouttiere: clamp(16px, 4vw, 48px);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--fond); color: var(--encre); font: 400 17px/1.6 var(--texte); }
a { color: inherit; text-decoration-color: var(--accent); text-underline-offset: 3px; }
a:hover { color: var(--accent); }
img, svg { max-width: 100%; }
.enveloppe { max-width: var(--large); margin: 0 auto; padding: 0 var(--gouttiere); }


/* En-tête */
.entete { position: sticky; top: 0; z-index: 10; background: color-mix(in srgb, var(--fond) 92%, transparent); backdrop-filter: blur(6px); border-bottom: 1px solid var(--trait); }
.entete .enveloppe { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 64px; }
.marque { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.marque img { width: 34px; height: 34px; }
.marque span { font: 300 21px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; }
.marque b { font-weight: 500; }
.menu { display: flex; gap: 24px; white-space: nowrap; font: 400 14px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; }
.menu a { text-decoration: none; color: var(--gris); }
.menu a[aria-current], .menu a:hover { color: var(--accent); }
.langue { font: 400 13px/1 var(--titre); letter-spacing: .12em; color: var(--gris); }
.langue b { color: var(--accent); font-weight: 400; }
.burger { display: none; white-space: nowrap; font: 400 14px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; background: none; border: 0; color: var(--encre); padding: 10px 0; cursor: pointer; }
@media (max-width: 1020px) { .menu, .langue { display: none; } .burger { display: block; } }

/* Fil d'Ariane */
.ariane { font: 400 13px/1 var(--titre); letter-spacing: .12em; text-transform: uppercase; color: var(--gris); padding: 28px 0 0; }
.ariane a { text-decoration: none; }
.ariane span { margin: 0 8px; color: var(--accent); }

/* Typographie */
h1, h2, h3, .surtitre { font-family: var(--titre); text-transform: uppercase; letter-spacing: .04em; margin: 0; }
h1 { font-weight: 300; font-size: clamp(44px, 8vw, 104px); line-height: .95; }
h2 { font-weight: 300; font-size: clamp(30px, 4.4vw, 52px); line-height: 1; }
h3 { font-weight: 500; font-size: 20px; letter-spacing: .1em; }
.surtitre { font-weight: 400; font-size: 14px; letter-spacing: .2em; color: var(--accent); }
.accent { color: var(--accent); }
.gris { color: var(--gris); }
.manuscrit { font: 400 26px/1.1 var(--main); color: var(--accent); transform: rotate(-3deg); display: inline-block; }
.chapo { font-size: clamp(18px, 2vw, 22px); line-height: 1.5; max-width: 40em; }
.mini { font-size: 13px; color: var(--gris); }
section { padding: clamp(56px, 9vw, 120px) 0; }
section + section { border-top: 1px solid var(--trait); }

/* Héros d'accueil */
.heros { padding-top: clamp(48px, 8vw, 110px); position: relative; }
.heros h1 .accent { font-weight: 400; }
.heros .grille-heros { display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(32px, 6vw, 90px); align-items: end; margin-top: 48px; }
/* Rature façon correction manuscrite (jeu de mots VAD) */
.rature { position: relative; display: inline-block; }
.rature s { text-decoration: none; color: var(--gris-clair); position: relative; }
.rature s::after { content: ""; position: absolute; left: -3%; right: -3%; top: 50%; height: .075em; min-height: 3px; background: var(--encre); transform: rotate(-2.5deg); pointer-events: none; } /* trait dessiné par-dessus les lettres */
.rature .correction { position: absolute; left: 18%; top: 88%; font-size: clamp(22px, 3.2vw, 40px); text-transform: none; letter-spacing: 0; white-space: nowrap; transform: rotate(-5deg); }
.heros h1 { padding-bottom: .5em; }
@media (max-width: 860px) { .heros h1 { padding-bottom: 0; } .rature .correction { position: static; display: block; white-space: normal; margin-top: 10px; transform: rotate(-3deg); } }
/* Étiquette référence catalogue */
.etiquette { display: inline-block; font: 400 14px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; border: 1px solid var(--encre); padding: 8px 12px; margin-top: 14px; }
.etiquette b { color: var(--accent); font-weight: 500; }
.toit-fig { margin: 0; justify-self: end; text-align: right; }
.heros .toit { display: block; width: min(100%, 300px); margin-left: auto; }
.toit-fig figcaption { margin-top: 8px; }
@media (max-width: 860px) { .heros .grille-heros { grid-template-columns: 1fr; } .toit-fig { justify-self: start; text-align: left; } .heros .toit { width: 200px; margin: 0; } }

/* Chiffres clés */
.chiffres { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--encre); margin-top: clamp(40px, 6vw, 80px); }
.chiffres > div { padding: 22px 20px 0 0; }
.chiffres > div + div { border-left: 1px solid var(--trait); padding-left: 20px; }
.chiffres strong { display: block; font: 300 clamp(34px, 5vw, 64px)/1 var(--titre); white-space: nowrap; }
.chiffres span { font: 400 13px/1.3 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
@media (max-width: 760px) { .chiffres { grid-template-columns: 1fr 1fr; } .chiffres > div:nth-child(3) { border-left: 0; padding-left: 0; } .chiffres > div { padding-bottom: 20px; } }

/* Réponses courtes (GEO) */
.reponses { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(32px, 5vw, 72px); margin-top: 40px; }
.reponses details { border-top: 1px solid var(--trait); padding: 18px 0; }
.reponses summary { cursor: pointer; list-style: none; font: 500 19px/1.3 var(--titre); letter-spacing: .06em; text-transform: uppercase; display: flex; justify-content: space-between; gap: 16px; }
.reponses summary::after { content: "+"; color: var(--accent); font-weight: 300; font-size: 26px; line-height: .8; }
.reponses details[open] summary::after { content: "–"; }
.reponses p { margin: 12px 0 0; }
.source { font-size: 13px; color: var(--gris); }
@media (max-width: 860px) { .reponses { grid-template-columns: 1fr; } }

/* Tuiles d'entrée */
.tuiles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; margin-top: 40px; background: var(--trait); border: 1px solid var(--trait); }
.tuile { background: var(--papier); padding: 32px 28px 28px; text-decoration: none; display: flex; flex-direction: column; gap: 14px; min-height: 300px; transition: background .2s; }
.tuile:hover { background: var(--accent-doux); color: inherit; }
.tuile .num { font: 300 64px/1 var(--titre); color: var(--trait); }
.tuile:hover .num { color: var(--accent); }
.tuile h3 { font-size: 24px; font-weight: 400; letter-spacing: .08em; }
.tuile p { margin: 0; color: var(--gris); flex: 1; }
.tuile .fleche { font: 400 14px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
@media (max-width: 860px) { .tuiles { grid-template-columns: 1fr; } .tuile { min-height: 0; } }

/* Tableaux */
.tableau-wrap { overflow-x: auto; margin-top: 32px; }
table { width: 100%; border-collapse: collapse; font-size: 15px; }
th { font: 400 12px/1.2 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); text-align: left; padding: 10px 14px 10px 0; border-bottom: 1px solid var(--encre); }
td { padding: 14px 14px 14px 0; border-bottom: 1px solid var(--trait); vertical-align: top; }
td.n { font: 400 22px/1 var(--titre); }
td.prix { font: 400 20px/1 var(--titre); white-space: nowrap; }
.badge { display: inline-block; font: 500 11px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; padding: 4px 7px 3px; border: 1px solid currentColor; white-space: nowrap; }
.badge.confirme { color: var(--encre); }
.badge.probable { color: var(--gris); }
.badge.a-verifier { color: var(--accent); }

/* Carte du tirage (registre) */
.tirage { display: grid; grid-template-columns: repeat(30, 1fr); gap: 3px; margin-top: 36px; }
.tirage i { aspect-ratio: 1; background: var(--trait); position: relative; }
.tirage i.c { background: var(--encre); }
.tirage i.v { background: var(--accent); }
.tirage i[data-n]:hover::after { content: "n° " attr(data-n); position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); background: var(--encre); color: var(--fond); font: 400 12px/1 var(--titre); letter-spacing: .1em; padding: 5px 7px; white-space: nowrap; z-index: 2; }
.legende { display: flex; flex-wrap: wrap; gap: 22px; margin-top: 16px; font: 400 13px/1 var(--titre); letter-spacing: .12em; text-transform: uppercase; color: var(--gris); }
.legende i { display: inline-block; width: 11px; height: 11px; margin-right: 8px; vertical-align: -1px; }
@media (max-width: 760px) { .tirage { grid-template-columns: repeat(18, 1fr); gap: 2px; } }

/* Grille de cartes coffret */
.filtres { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.filtres button { font: 400 13px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; background: none; border: 1px solid var(--trait); color: var(--encre); padding: 9px 14px; cursor: pointer; }
.filtres button[aria-pressed="true"] { border-color: var(--encre); background: var(--encre); color: var(--fond); }
.cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px; margin-top: 20px; background: var(--trait); border: 1px solid var(--trait); }
.carte { background: var(--papier); padding: 20px; text-decoration: none; display: flex; flex-direction: column; gap: 8px; min-height: 190px; }
.carte:hover { background: var(--accent-doux); color: inherit; }
.carte .n { font: 300 52px/1 var(--titre); }
.carte .meta { font-size: 13px; color: var(--gris); flex: 1; }

/* Fiche */
.fiche-tete { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 5vw, 72px); align-items: end; padding-top: 32px; }
.grand-numero { font: 200 clamp(120px, 22vw, 300px)/.8 var(--titre); letter-spacing: -.02em; }
.grand-numero small { display: block; font-size: 14px; font-weight: 400; letter-spacing: .2em; color: var(--accent); margin-bottom: 10px; }
@media (max-width: 760px) { .fiche-tete { grid-template-columns: 1fr; } }
.fiche-corps { display: grid; grid-template-columns: 1fr 340px; gap: clamp(32px, 6vw, 80px); }
@media (max-width: 960px) { .fiche-corps { grid-template-columns: 1fr; } }
.metas { border-top: 1px solid var(--encre); }
.metas div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--trait); font-size: 15px; }
.metas dt { font: 400 12px/1.6 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.metas dd { margin: 0; }
.chronologie { list-style: none; margin: 32px 0 0; padding: 0; border-left: 1px solid var(--encre); }
.chronologie li { position: relative; padding: 0 0 32px 28px; }
.chronologie li::before { content: ""; position: absolute; left: -5px; top: 7px; width: 9px; height: 9px; background: var(--fond); border: 1px solid var(--encre); }
.chronologie li.vente::before { background: var(--accent); border-color: var(--accent); }
.chronologie time { font: 400 13px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.chronologie h3 { margin: 8px 0 6px; font-weight: 400; }
.photo-vide { aspect-ratio: 4/3; background: var(--papier); border: 1px solid var(--trait); display: grid; place-items: center; text-align: center; padding: 24px; color: var(--gris); font-size: 14px; }
.encadre { background: var(--papier); padding: 24px; border-top: 3px solid var(--accent); }
.encadre h3 { margin-bottom: 10px; }
.bouton { display: inline-block; font: 400 14px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; text-decoration: none; background: var(--encre); color: var(--fond); padding: 15px 22px; border: 0; cursor: pointer; }
.bouton:hover { background: var(--accent); color: var(--fond); }
.bouton.creux { background: none; color: var(--encre); border: 1px solid var(--encre); }

/* Formulaire d'alerte */
.alerte { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.champs { display: grid; gap: 12px; }
.champs input { font: 400 16px/1 var(--texte); padding: 15px 14px; border: 1px solid var(--trait); background: var(--papier); width: 100%; }
.champs input:focus { outline: 2px solid var(--accent); outline-offset: -1px; }
@media (max-width: 860px) { .alerte { grid-template-columns: 1fr; } }

/* Graphique de cote */
.graphe { background: var(--papier); border: 1px solid var(--trait); padding: 24px 16px 12px; margin-top: 32px; }
.graphe svg { display: block; width: 100%; height: auto; }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: var(--trait); border: 1px solid var(--trait); margin-top: 32px; }
.stats div { background: var(--papier); padding: 20px; }
.stats strong { display: block; font: 300 clamp(30px, 7vw, 44px)/1 var(--titre); white-space: nowrap; }
.stats span { font: 400 12px/1.3 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
@media (max-width: 760px) { .stats { grid-template-columns: 1fr 1fr; } }

/* Pied de page */
.pied { background: var(--encre); color: var(--fond); padding: clamp(56px, 8vw, 100px) 0 32px; margin-top: 0; }
.pied .devise { font: 300 clamp(28px, 4.6vw, 58px)/1.05 var(--titre); text-transform: uppercase; color: #8c8b85; max-width: 18em; }
.pied .devise b { color: var(--fond); font-weight: 300; }
.pied .colonnes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; margin-top: 64px; font-size: 14px; }
.pied h4 { font: 400 12px/1 var(--titre); letter-spacing: .18em; text-transform: uppercase; color: #8c8b85; margin: 0 0 14px; }
.pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pied a { text-decoration: none; }
.pied .bas { border-top: 1px solid #333; margin-top: 56px; padding-top: 20px; font-size: 12px; color: #8c8b85; display: flex; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
@media (max-width: 760px) { .pied .colonnes { grid-template-columns: 1fr 1fr; } }

/* ===== Compléments propres au thème WordPress (v0.2, 21/10/2026) ===== */
:root { --lecture: "Source Serif 4", Georgia, "Times New Roman", serif; --texte-long: #2B2A26; }
.evitement { position: absolute; left: -9999px; top: 8px; background: var(--encre); color: var(--fond); padding: 10px 14px; z-index: 50; }
.evitement:focus { left: 16px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* En-tête : menu + bouton d'alerte toujours visible */
.entete .enveloppe { position: relative; }
.entete-actions { display: flex; align-items: center; gap: 20px; }
.bouton-alerte { font: 400 13px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; text-decoration: none; background: var(--accent); color: #fff; padding: 11px 14px; white-space: nowrap; }
.bouton-alerte:hover { background: var(--encre); color: #fff; }
@media (max-width: 1200px) {
  .menu, .langue { display: none; } .burger { display: block; }
  .menu.ouvert { display: flex; flex-direction: column; gap: 0; position: absolute; top: 64px; left: 0; right: 0; background: var(--fond); border-bottom: 1px solid var(--trait); padding: 8px var(--gouttiere) 16px; }
  .menu.ouvert a { padding: 12px 0; border-top: 1px solid var(--trait); font-size: 16px; }
}
.bouton-alerte .court { display: none; }
@media (max-width: 640px) {
  .bouton-alerte .long { display: none; } .bouton-alerte .court { display: inline; }
  .bouton-alerte { padding: 9px 10px; font-size: 12px; }
  .marque { gap: 8px; min-width: 0; } .marque img { width: 28px; height: 28px; }
  .marque span { font-size: 15px; letter-spacing: .08em; }
  .entete-actions { gap: 12px; flex-shrink: 0; }
}
@media (max-width: 400px) { .burger .mot { display: none; } .burger { font-size: 20px; } }
.maisons { margin-bottom: clamp(32px, 5vw, 56px); }
.ariane span[aria-hidden] { margin: 0 8px; color: var(--accent); }
.ariane span[aria-current] { color: var(--encre); }

/* En-tête des pages */
.tete-page { padding-top: 28px; padding-bottom: clamp(32px, 5vw, 56px); }
.tete-page h1 { font-size: clamp(36px, 6vw, 72px); text-wrap: balance; margin-top: 14px; }
.tete-fiche { display: grid; grid-template-columns: auto 1fr; gap: clamp(24px, 5vw, 72px); align-items: end; }
.tete-fiche .titre-fiche { font-size: clamp(22px, 2.6vw, 32px); line-height: 1.15; margin: 0 0 10px; }
@media (max-width: 760px) { .tete-fiche { grid-template-columns: 1fr; } }

/* ---- Lecture : texte éditorial en serif, colonne d'environ 68 signes ---- */
.contenu { padding-bottom: clamp(48px, 8vw, 96px); font: 400 clamp(17px, 1.15vw + 12px, 19px)/1.72 var(--lecture); color: var(--texte-long); font-optical-sizing: auto; }
.contenu > * + * { margin-top: 1.15em; }
/* Texte : colonne d'environ 620 px centrée ; galeries, images et tableaux : pleine largeur (1 144 px) */
:root { --colonne: 620px; }
.contenu > :not(.wp-block-gallery):not(.mosaique):not(.pgc-sgb-cb):not(.wp-block-table):not(figure):not(.bon):not(.tirage):not(.legende):not(.cartes):not(.stats):not(.graphe):not(.tout):not(.tableau-wrap):not(.reponses):not(.licence) { max-width: var(--colonne); margin-left: auto; margin-right: auto; }
body:not(:has(.tete-fiche)) .enveloppe:has(> .ariane), .tete-page:not(.tete-fiche) { max-width: calc(var(--colonne) + 2 * var(--gouttiere)); }
.tete-page:not(.tete-fiche) h1 { font-size: clamp(34px, 5vw, 54px); }
.contenu p { margin: 0; text-wrap: pretty; hyphens: auto; }
.contenu h2 { font-family: var(--titre); font-size: clamp(26px, 3vw, 36px); line-height: 1.05; color: var(--encre); margin-top: 2em; }
.contenu h3 { font-family: var(--titre); color: var(--encre); margin-top: 1.7em; }
.contenu strong { font-weight: 600; color: var(--encre); }
.contenu a { color: var(--encre); text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.contenu a:hover { color: var(--accent); }
.contenu ul, .contenu ol { padding-left: 1.2em; }
.contenu ul + ul { margin-top: .6em; }
.contenu li + li { margin-top: .45em; }
.contenu li::marker { color: var(--accent); }
.contenu .has-text-align-center { text-align: center; }
.contenu .has-text-align-right { text-align: right; }
/* Intitulés de fiche (« Propriétaire : », « État du coffret : »), repérés par le thème */
.contenu strong.champ { font: 500 13px/1.5 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); margin-right: 6px; }
.contenu p:has(> strong.champ:only-child) { margin-top: 1.8em; }
/* Phrase courte entièrement en gras : mise en exergue, pas en petit */
.contenu p.exergue > strong { font: 300 clamp(26px, 3vw, 38px)/1.1 var(--titre); text-transform: uppercase; letter-spacing: .03em; color: var(--encre); display: block; margin: .4em 0; }
.contenu p.exergue.has-text-align-center { text-align: left; }
.contenu p.exergue.has-text-align-center strong { color: var(--accent); }
.contenu blockquote { margin: 1.6em 0; padding-left: 20px; border-left: 2px solid var(--accent); font-style: italic; }
.contenu iframe, .contenu video, .contenu embed { max-width: 100%; }
.contenu .wp-block-table { overflow-x: auto; font-family: var(--texte); font-size: 16px; }
.contenu table td, .contenu table th { padding: 10px 12px 10px 0; }
/* Tableaux de l'éditeur (blocs « Tableau ») : pleine largeur (rythme de lecture, demande d'Alban), fond papier, marges des deux côtés,
   chiffres alignés à droite (hors registre, page 57, qui a sa propre grille), lignes en gras (totaux) sur fond gris avec un filet au-dessus du premier */
body:not(.page-id-57) .contenu .wp-block-table table { table-layout: auto; background: var(--papier); border: 1px solid var(--trait); }
body:not(.page-id-57) .contenu .wp-block-table thead { border: 0; }
body:not(.page-id-57) .contenu .wp-block-table th, body:not(.page-id-57) .contenu .wp-block-table td { padding: 10px 14px; border: 0; border-bottom: 1px solid var(--trait); text-align: left; vertical-align: top; }
body:not(.page-id-57) .contenu .wp-block-table th, body:not(.page-id-57) .contenu .wp-block-table td:nth-child(n+3) { white-space: nowrap; }
body:not(.page-id-57) .contenu .wp-block-table thead th { font: 500 14px/1.2 var(--titre); letter-spacing: .1em; text-transform: uppercase; color: var(--gris); border-bottom: 2px solid var(--encre); }
body:not(.page-id-57) .contenu .wp-block-table .has-text-align-right { text-align: right; font-variant-numeric: tabular-nums; }
body:not(.page-id-57) .contenu .wp-block-table tbody tr:last-child td { border-bottom: 0; }
body:not(.page-id-57) .contenu .wp-block-table tbody tr:hover td, body:not(.page-id-57) .contenu .wp-block-table tbody tr:has(strong) td { background: var(--fond); }
body:not(.page-id-57) .contenu .wp-block-table tbody tr:not(:has(strong)) + tr:has(strong) td { border-top: 2px solid var(--encre); }
/* Mention des droits en bas des pages qui reproduisent des documents (mu-plugin starckhouse-droits.php) */
.contenu p.droits { font: 400 13px/1.5 var(--texte); color: var(--gris); border-top: 1px solid var(--trait); padding-top: 14px; margin-top: 3em; }
.contenu p.droits a { color: inherit; }
/* Boutons francs / euros au-dessus des tableaux en francs (starckhouse.js) */
.contenu .conversion { display: flex; flex-wrap: wrap; margin: 0 0 10px; }
.contenu .conversion button { font: 500 13px/1 var(--titre); letter-spacing: .1em; text-transform: uppercase; padding: 10px 14px; border: 1px solid var(--encre); margin-left: -1px; background: transparent; color: var(--encre); cursor: pointer; transition: background .2s, color .2s; }
.contenu .conversion button:first-child { margin-left: 0; }
.contenu .conversion button:hover { color: var(--accent); }
.contenu .conversion button[aria-pressed="true"] { background: var(--encre); color: var(--fond); }
.contenu .conversion-note { font: 400 13px/1.4 var(--texte); color: var(--gris); margin: 0 0 12px; }
body:not(.page-id-57) .contenu .wp-block-table th, body:not(.page-id-57) .contenu .wp-block-table td { overflow-wrap: normal; word-break: normal; hyphens: manual; }
@media (max-width: 600px) {
  body:not(.page-id-57) .contenu .wp-block-table { font-size: 14px; }
  body:not(.page-id-57) .contenu .wp-block-table th, body:not(.page-id-57) .contenu .wp-block-table td { padding: 8px 8px; }
  body:not(.page-id-57) .contenu .wp-block-table thead th { white-space: normal; font-size: 12px; }
}
.contenu .wp-block-group { background: var(--papier); padding: 24px; border-top: 3px solid var(--accent); }
.contenu .wp-block-group > * + * { margin-top: 1em; }

/* ---- Images et galeries ---- */
.contenu img { height: auto; max-width: 100%; display: block; }
.contenu figure { margin: 1.8em 0; }
.contenu figcaption, .contenu .wp-element-caption { font: 400 13px/1.4 var(--texte); color: var(--gris); margin-top: 8px; text-align: left; }
/* Image seule : largeur de colonne, sur fond papier */
.contenu > figure.wp-block-image img { width: 100%; max-height: 80vh; object-fit: contain; background: var(--papier); }
/* Galerie native et suites d'images regroupées par le thème : planche-contact régulière */
.contenu .wp-block-gallery.has-nested-images, .contenu .mosaique { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; margin: 1.8em 0; }
.contenu .wp-block-gallery.has-nested-images figure.wp-block-image, .contenu .mosaique figure { width: auto !important; max-width: none !important; margin: 0 !important; flex: none !important; aspect-ratio: 1; overflow: hidden; background: var(--papier); position: relative; }
.contenu .wp-block-gallery.has-nested-images figure.wp-block-image img, .contenu .mosaique figure img { width: 100% !important; height: 100% !important; object-fit: cover; max-height: none; transition: transform .35s ease; }
.contenu .wp-block-gallery figure a:hover img, .contenu .mosaique figure a:hover img { transform: scale(1.04); }
.contenu .wp-block-gallery figure figcaption, .contenu .mosaique figure figcaption { position: absolute; inset: auto 0 0; margin: 0; padding: 6px 8px; background: rgba(20,20,20,.7); color: #fff; font-size: 12px; }
.contenu .mosaique-compte { grid-column: 1 / -1; font: 400 12px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); margin: 0 0 2px; }
.contenu .pgc-sgb-cb { margin: 1.8em 0; font-family: var(--texte); }
.contenu .plus-photos { grid-column: 1 / -1; justify-self: start; margin-top: 8px; font: 400 14px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; background: var(--encre); color: #fff; border: 0; padding: 14px 20px; cursor: pointer; }
.contenu .plus-photos:hover { background: var(--accent); }

/* Visionneuse plein écran */
.visionneuse { position: fixed; inset: 0; z-index: 100; background: rgba(15,15,14,.94); display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; padding: max(16px, env(safe-area-inset-top, 0px)) 8px; }
.visionneuse[hidden] { display: none; }
.visionneuse img { max-width: 100%; max-height: 86vh; margin: auto; display: block; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.visionneuse button { background: none; border: 0; color: #fff; font: 300 44px/1 var(--titre); cursor: pointer; padding: 12px; }
.visionneuse button:hover { color: var(--accent); }
.visionneuse .fermer { position: absolute; top: 12px; right: 16px; font-size: 32px; }
/* Zoom dans la visionneuse : l'image grossit sur place, les boutons et la légende restent au-dessus */
.visionneuse { overflow: hidden; }
.visionneuse img { cursor: zoom-in; position: relative; z-index: 1; transition: transform .3s ease; }
.visionneuse.zoome img { cursor: zoom-out; touch-action: none; box-shadow: none; }
.visionneuse button, .visionneuse .legende-v { position: relative; z-index: 2; }
.visionneuse.zoome button { background: rgba(15, 15, 14, .7); border-radius: 50%; width: 56px; height: 56px; padding: 0; }
.visionneuse.zoome .legende-v { background: rgba(15, 15, 14, .7); width: max-content; max-width: 90%; margin: 0 auto; padding: 6px 12px; }
.visionneuse .legende-v { position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; color: #cfcdc6; font: 400 13px/1.3 var(--titre); letter-spacing: .12em; text-transform: uppercase; }

/* Registre : tableau des tranches de numéros */
.page-id-57 .contenu { font-family: var(--texte); }
.page-id-57 .contenu table ul { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(3.2em, 1fr)); gap: 2px; font: 400 14px/1 var(--titre); letter-spacing: .06em; }
.page-id-57 .contenu table li { margin: 0; padding: 6px 0; text-align: center; background: var(--trait); color: var(--gris); }
.page-id-57 .contenu table li a { display: block; margin: -6px 0; padding: 6px 0; background: var(--encre); color: var(--fond); text-decoration: none; }
.page-id-57 .contenu table li a:hover { background: var(--accent); }

/* ---- Bon de commande (formulaires d'alerte et de vente) ---- */
.bon { position: relative; background: var(--papier); border: 1px solid var(--encre); padding: clamp(22px, 4vw, 40px); max-width: var(--colonne); margin: 8px auto clamp(48px, 8vw, 96px); font-family: var(--texte); }
.bon::before { content: ""; position: absolute; inset: 6px; border: 1px dashed var(--gris-clair); pointer-events: none; }
.bon-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; border-bottom: 2px solid var(--encre); padding-bottom: 14px; margin-bottom: 22px; }
.bon-tete h2 { font-size: clamp(24px, 3vw, 34px); }
.bon-ref { font: 400 12px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; color: var(--gris); }
.bon form { display: grid; gap: 18px; position: relative; }
.bon .ligne { display: grid; gap: 6px; }
.bon .deux { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 560px) { .bon .deux { grid-template-columns: 1fr; } }
.bon label, .bon legend { font: 500 13px/1.3 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--encre); padding: 0; }
.bon label small { font-weight: 400; color: var(--gris); letter-spacing: .06em; text-transform: none; font-size: 13px; }
.bon fieldset { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.bon input, .bon select, .bon textarea { font: 400 17px/1.3 var(--texte); padding: 12px 2px 8px; border: 0; border-bottom: 1px solid var(--encre); background: transparent; width: 100%; color: var(--encre); border-radius: 0; }
.bon textarea { min-height: 7em; resize: vertical; border: 1px solid var(--trait); padding: 10px; }
.bon input:focus, .bon select:focus, .bon textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 1px 0 var(--accent); }
.bon .euro { display: flex; align-items: end; gap: 8px; }
.bon .euro span { font: 400 20px/1 var(--titre); padding-bottom: 10px; }
.bon .cases { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.bon .cases label { font: 400 16px/1.3 var(--texte); letter-spacing: 0; text-transform: none; display: flex; gap: 8px; align-items: center; }
.bon .cases input { width: auto; accent-color: var(--accent); }
.bon .envoi { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--trait); padding-top: 18px; }
.bon button { font: 400 15px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; background: var(--encre); color: #fff; padding: 16px 26px; border: 0; cursor: pointer; }
.bon button:hover { background: var(--accent); }
.bon .rgpd { font-size: 13px; color: var(--gris); margin: 0; max-width: 32em; }
.bon .piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
/* Message après envoi : même encadré pour le bon d'alerte (réponse de message.php, qui remplace le formulaire) et le bon de mise en vente */
.bon .reponse > p, .bon .confirmation { font: 400 17px/1.6 var(--texte); color: var(--encre); background: var(--accent-doux); border-left: 3px solid var(--accent); padding: 18px 20px; margin: 0; }
.bon .reponse > p a, .bon .confirmation a { color: var(--encre); text-decoration-color: var(--accent); }
.bon .reponse > p::first-line, .bon .confirmation::first-line { font: 400 24px/1.5 var(--titre); text-transform: uppercase; letter-spacing: .04em; }
.bon .erreur:empty { display: none; }
.bon .confirmation { background: var(--accent-doux); padding: 16px; border-left: 3px solid var(--accent); }
.bon .erreur { color: var(--accent); }

/* ---- Bandeaux « marché » (alerte / vente) ---- */
.marche { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; background: var(--encre); border: 1px solid var(--encre); margin-top: 40px; }
.marche a { background: var(--encre); color: var(--fond); text-decoration: none; padding: clamp(26px, 4vw, 44px); display: grid; gap: 14px; align-content: start; min-height: 260px; position: relative; }
.marche a + a { background: #22211E; }
.marche a:hover { background: var(--accent); color: #fff; }
.marche .surtitre { color: var(--accent); }
.marche a:hover .surtitre { color: #fff; }
.marche h3 { font: 300 clamp(30px, 3.6vw, 46px)/1 var(--titre); letter-spacing: .03em; }
.marche p { margin: 0; color: #c9c7c0; max-width: 28em; }
.marche a:hover p { color: #fff; }
.marche .fleche { font: 400 14px/1 var(--titre); letter-spacing: .16em; text-transform: uppercase; margin-top: auto; }
.marche .manuscrit { position: absolute; right: 22px; top: 18px; color: var(--accent); font-size: 22px; }
.marche a:hover .manuscrit { color: #fff; }
@media (max-width: 760px) { .marche { grid-template-columns: 1fr; } .marche a { min-height: 0; } .marche .manuscrit { position: static; } }
.bandeau-marche { padding: clamp(48px, 7vw, 88px) 0; border-top: 1px solid var(--trait); }

/* ---- Maisons construites : cartes avec photo ---- */
.maisons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 2px; background: var(--trait); border: 1px solid var(--trait); margin-top: 32px; }
.maison { background: var(--papier); text-decoration: none; display: grid; grid-template-rows: auto 1fr; }
.maison .photo { aspect-ratio: 4/3; overflow: hidden; background: var(--trait); }
.maison .photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; filter: grayscale(.25); }
.maison:hover .photo img { transform: scale(1.05); filter: none; }
.maison .texte { padding: 18px 20px 22px; display: grid; gap: 6px; align-content: start; }
.maison .lieu { font: 400 24px/1.05 var(--titre); text-transform: uppercase; letter-spacing: .04em; }
.maison .mini { font-size: 13px; }
.maison:hover .lieu { color: var(--accent); }
.page-id-74 .contenu > ul.wp-block-list { display: none; } /* remplacée par les cartes */

/* Accueil */
.heros .chapo { margin-top: 32px; }
.recit .contenu { margin-top: 28px; }
.appel { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 32px; }
.appel .chapo { margin-top: 20px; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.reponses p + p { margin-top: 8px; }

/* Voisins d'une fiche */
.voisins { padding: 48px 0 72px; }
.cartes-voisins { grid-template-columns: repeat(3, 1fr); margin-top: 16px; }
.cartes-voisins .carte { min-height: 0; }
.cartes-voisins .n { font-size: 36px; }
.carte-registre { background: var(--encre); color: var(--fond); }
.carte-registre .mini { color: var(--gris-clair); }
@media (max-width: 560px) { .cartes-voisins { grid-template-columns: 1fr; } }

/* Pied de page : intertitres en h2 */
.pied h2 { font: 400 12px/1 var(--titre); letter-spacing: .18em; text-transform: uppercase; color: #8c8b85; margin: 0 0 14px; }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
.contenu figure[hidden] { display: none !important; }

/* ---- Registre (extension starckhouse-registre) ---- */
.tirage a { aspect-ratio: 1; display: block; background: var(--encre); position: relative; }
.tirage a.v { background: var(--accent); }
.tirage a:hover, .tirage a:focus-visible { outline: 2px solid var(--encre); outline-offset: 1px; z-index: 1; }
.tirage a[data-n]:hover::after { content: "n° " attr(data-n); position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); background: var(--encre); color: var(--fond); font: 400 12px/1 var(--titre); letter-spacing: .1em; padding: 5px 7px; white-space: nowrap; z-index: 2; }
.contenu .carte { text-decoration: none; color: var(--encre); font-family: var(--texte); }
.contenu .carte:hover { color: var(--encre); }
.chapo-registre, .resume-fiche, .reponse-courte { font: 400 clamp(19px, 1.6vw, 22px)/1.55 var(--lecture); color: var(--encre); }
.resume-fiche { border-left: 3px solid var(--accent); padding-left: 18px; }
.contenu .metas { font-family: var(--texte); font-size: 16px; }
.contenu .chronologie { font-family: var(--texte); font-size: 16px; }
.contenu .chronologie p { margin: 4px 0 0; }
.contenu .chronologie .source { font-size: 13px; color: var(--gris); }
.contenu .badge { margin-left: 6px; vertical-align: 1px; }
.contenu details.tout { margin-top: 1.5em; }
.contenu details.tout summary { cursor: pointer; font: 400 14px/1.2 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.contenu table { font-family: var(--texte); font-size: 15px; }

/* Galeries à l'ancien format WordPress (liste ul.blocks-gallery-grid) : même planche-contact */
.contenu .wp-block-gallery:not(.has-nested-images) { display: block !important; margin: 1.8em 0; }
.contenu .blocks-gallery-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 6px; list-style: none; padding: 0 !important; margin: 0 !important; }
.contenu .blocks-gallery-grid .blocks-gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; aspect-ratio: 1; overflow: hidden; background: var(--papier); display: block !important; }
.contenu .blocks-gallery-grid .blocks-gallery-item::marker { content: none; }
.contenu .blocks-gallery-grid .blocks-gallery-item figure { margin: 0 !important; height: 100%; display: block !important; }
.contenu .blocks-gallery-grid .blocks-gallery-item a { display: block; height: 100%; }
.contenu .blocks-gallery-grid .blocks-gallery-item img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: top; }
.contenu .blocks-gallery-grid .blocks-gallery-item figcaption { display: none; }

/* Registre : comptes par centaine */
.contenu ul.tranches { font-size: .95em; }

/* Encadré « données libres » */
.licence { background: var(--papier); border: 1px solid var(--encre); border-left: 6px solid var(--accent); padding: clamp(20px, 3vw, 32px); margin: 2em 0; font-family: var(--texte); }
.licence p { margin: 0 0 12px; font-size: 17px; line-height: 1.55; max-width: 46em; }
.licence-titre { font: 400 clamp(26px, 3vw, 36px)/1.05 var(--titre) !important; text-transform: uppercase; letter-spacing: .03em; color: var(--encre); }
.licence-liens { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin: 18px 0 0 !important; }
.licence-liens .bouton { text-decoration: none; }
.licence-liens .bouton.creux { color: var(--encre); }
.contenu .citation { font-family: var(--texte); background: var(--papier); border-left: 3px solid var(--accent); padding: 14px 16px; font-size: 16px; }

/* Boutons placés dans le contenu : la couleur des liens du texte ne doit pas les écraser */
.contenu a.bouton, .licence a.bouton { color: #fff; text-decoration: none; }
.contenu a.bouton:hover, .licence a.bouton:hover { color: #fff; background: var(--accent); }
.contenu a.bouton.creux, .licence a.bouton.creux { color: var(--encre); background: none; }
.contenu a.bouton.creux:hover, .licence a.bouton.creux:hover { color: #fff; background: var(--encre); }

/* ---- Parcours de lecture ---- */
.repere { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; font: 400 13px/1.3 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.repere span:first-child { color: var(--accent); }
.repere a { color: var(--gris); }
.progression { position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: transparent; }
.progression span { display: block; height: 100%; width: 0; background: var(--accent); transition: width .1s linear; }
.parcours-suite { padding: clamp(40px, 6vw, 72px) 0 0; }
.parcours-suite .enveloppe { max-width: calc(var(--colonne) + 2 * var(--gouttiere)); }
.suite { display: grid; gap: 10px; position: relative; text-decoration: none; color: var(--encre); background: var(--papier); border: 1px solid var(--encre); padding: clamp(24px, 4vw, 40px); }
a.suite:hover { background: var(--encre); color: var(--fond); }
.suite-ref { font: 400 13px/1 var(--titre); letter-spacing: .18em; text-transform: uppercase; color: var(--accent); }
.suite-titre { font: 300 clamp(30px, 4vw, 48px)/1.02 var(--titre); text-transform: uppercase; letter-spacing: .03em; }
.suite-accroche { font: 400 17px/1.5 var(--lecture); color: var(--gris); max-width: 32em; }
a.suite:hover .suite-accroche { color: #d6d4cd; }
.suite .manuscrit { position: absolute; right: 22px; top: 16px; font-size: 22px; }
.suite.fin { border-style: dashed; }
.precedent { margin: 14px 0 0; font: 400 14px/1.3 var(--titre); letter-spacing: .12em; text-transform: uppercase; }
.precedent a { color: var(--gris); text-decoration: none; }
.precedent a:hover { color: var(--accent); }
@media (max-width: 560px) { .suite .manuscrit { position: static; } }
/* Sommaire de l'accueil */
.sommaire { list-style: none; margin: 32px 0 0; padding: 0; border-top: 1px solid var(--encre); max-width: 860px; }
.sommaire a { display: grid; grid-template-columns: 4.5em 1fr auto; gap: 16px; align-items: baseline; padding: 18px 0; border-bottom: 1px solid var(--trait); text-decoration: none; color: inherit; }
.sommaire a:hover { background: var(--papier); }
.sommaire .ref, .sommaire .duree { font: 400 13px/1 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); }
.sommaire .ref { color: var(--accent); }
.sommaire .nom { display: block; font: 400 clamp(22px, 2.4vw, 28px)/1.1 var(--titre); text-transform: uppercase; letter-spacing: .04em; }
.sommaire .desc { display: block; color: var(--gris); font-size: 15px; margin-top: 4px; }
@media (max-width: 560px) { .sommaire a { grid-template-columns: 3.5em 1fr; } .sommaire .duree { display: none; } }

/* ---- Témoignages (fiches et maisons) ---- */
.temoignages { padding: clamp(32px, 5vw, 56px) 0 0; }
.temoignages .enveloppe { max-width: calc(var(--colonne) + 2 * var(--gouttiere)); }
.temoignages h2 { font-size: clamp(24px, 3vw, 32px); margin-bottom: 18px; }
.liste-temoignages { list-style: none; margin: 0 0 28px; padding: 0; border-top: 1px solid var(--trait); }
.liste-temoignages > li { padding: 18px 0; border-bottom: 1px solid var(--trait); font: 400 17px/1.6 var(--lecture); }
.liste-temoignages p { margin: 0 0 .6em; }
.temoin { font: 500 14px/1.3 var(--titre) !important; letter-spacing: .12em; text-transform: uppercase; }
.temoin span { color: var(--gris); font-weight: 400; letter-spacing: .06em; text-transform: none; }
.liste-temoignages .reponse { margin: 12px 0 0 clamp(16px, 4vw, 40px); padding-left: 16px; border-left: 2px solid var(--accent); }
.ajout-temoignage > summary { cursor: pointer; list-style: none; font: 400 15px/1.3 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--gris); padding: 12px 0; border-bottom: 1px dashed var(--trait); }
.ajout-temoignage > summary::-webkit-details-marker { display: none; }
.ajout-temoignage > summary::before { content: "+ "; color: var(--accent); }
.ajout-temoignage[open] > summary::before { content: "– "; }
.ajout-temoignage > summary:hover { color: var(--accent); }
.temoignages .bon { margin: 18px 0 0; max-width: none; }

/* Petites galeries (2 ou 3 photos) : colonnes larges, photos entières, légende sous la galerie */
.contenu .wp-block-gallery.has-nested-images:not(:has(> figure:nth-of-type(4))) { grid-template-columns: repeat(2, 1fr) !important; align-items: start; max-width: 760px; margin-inline: auto; }
.contenu .wp-block-gallery.has-nested-images:has(> figure:nth-of-type(3)):not(:has(> figure:nth-of-type(4))) { grid-template-columns: repeat(3, 1fr) !important; }
.contenu .wp-block-gallery.has-nested-images:not(:has(> figure:nth-of-type(4))) figure.wp-block-image img { height: auto !important; object-fit: contain !important; }
.contenu .wp-block-gallery.has-nested-images > figcaption { grid-column: 1 / -1; position: static; font-size: 14px; color: var(--gris); margin: 4px 0 0; text-align: left; }
.contenu .wp-block-gallery.has-nested-images:not(:has(> figure:nth-of-type(4))) figure.wp-block-image { aspect-ratio: auto; }
/* Photos seules : centrées, à leur taille naturelle (80 % de la hauteur d'écran au plus), légende centrée */
.contenu > figure.wp-block-image { text-align: center; display: block; margin-inline: auto; }
.contenu > figure.wp-block-image img { width: auto; max-width: 100%; height: auto; display: block; margin-inline: auto; }
.contenu > figure.wp-block-image figcaption { text-align: center; display: block; }
.contenu .wp-block-gallery.has-nested-images > figcaption { text-align: center; }
/* Photo centrée : WordPress l'enveloppe dans <div class="wp-block-image"><figure class="aligncenter"> */
.contenu > div.wp-block-image { max-width: none; margin: 1.8em 0; }
.contenu > div.wp-block-image > figure { display: table; margin: 0 auto; }
.contenu > div.wp-block-image img { width: auto; max-width: 100%; height: auto; max-height: 80vh; margin-inline: auto; background: var(--papier); }
.contenu > div.wp-block-image figcaption { display: table-caption; caption-side: bottom; text-align: center; }

/* Encarts : textes du catalogue reproduits mot pour mot (page « Le coffret dans le catalogue ») */
.contenu blockquote.encart { margin: 1.4em 0; padding: 18px 22px; background: var(--papier); border-left: 3px solid var(--accent); font: 400 16px/1.6 var(--texte); font-style: normal; color: var(--encre); }
.contenu blockquote.encart > * + * { margin-top: .7em; }
.contenu blockquote.encart > p:first-child > strong:only-child { display: block; font: 500 15px/1.3 var(--titre); letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.contenu blockquote.encart ul { margin-block: .5em 0; padding-left: 1.2em; }
.contenu blockquote.encart li + li { margin-top: .4em; }
.contenu .encarts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; align-items: start; margin: 1.4em 0; }
.contenu .encarts > blockquote.encart { margin: 0; }

/* Carte du tirage : repère tous les 50 numéros, écrit en petit dans la case, un ton plus foncé que la case (plus clair sur les cases noires, où un ton plus foncé serait invisible) */
.tirage [data-r] { display: grid; place-items: center; }
.tirage [data-r]::before { content: attr(data-r); font: 500 clamp(7px, .75vw, 11px)/1 var(--titre); letter-spacing: .02em; color: var(--gris-clair); pointer-events: none; }
.tirage i:not([data-n])[data-r]::before { color: var(--gris); }
.tirage .c[data-r]::before, .tirage a:not(.v)[data-r]::before { color: var(--gris); }
.tirage .v[data-r]::before { color: #8E2A10; }

/* Accueil : bandeau photo de la maison (double page du catalogue) */
.bandeau-maison { padding-top: 0; border-top: 0 !important; }
.bandeau-maison figure { margin: 0; }
.bandeau-maison img { display: block; width: 100%; height: auto; background: var(--papier); }
.bandeau-maison figcaption { margin-top: 12px; font: 400 15px/1.5 var(--texte); color: var(--gris); max-width: 60em; }
.bandeau-maison figcaption a { color: var(--encre); white-space: nowrap; }

/* Accueil : 4e de couverture du catalogue à la place du logo, posée de biais comme sur une table */
.heros .couverture { display: block; position: relative; overflow: hidden; width: min(100%, 360px); margin-left: auto; transform: translateY(0) rotate(3deg); transform-origin: 50% 100%; box-shadow: 0 18px 40px -18px rgba(20, 20, 20, .45); transition: transform .6s cubic-bezier(.2, .7, .3, 1), box-shadow .6s ease; }
.heros .couverture:hover { transform: translateY(-4px) rotate(0deg); box-shadow: 0 24px 48px -18px rgba(20, 20, 20, .5); }
.heros .couverture img { display: block; width: 100%; height: auto; }
/* Lumière de fenêtre en biais, comme sur la photo : le calque fait la transformation inverse de la couverture,
   donc la lumière reste fixe quand la couverture bascule ; overflow: hidden la coupe aux bords du catalogue.
   Origine 50% 83.333% = le bas-milieu de la couverture, vu depuis un calque débordant de 25 % de chaque côté. */
.heros .couverture::after { content: ""; position: absolute; inset: -25%; pointer-events: none; mix-blend-mode: multiply; transform-origin: 50% 83.333%; transform: rotate(-3deg) translateY(0); transition: transform .6s cubic-bezier(.2, .7, .3, 1);
  background: linear-gradient(118deg, rgba(80, 66, 50, .40) 0%, rgba(80, 66, 50, .34) 24%, rgba(80, 66, 50, 0) 29%, rgba(80, 66, 50, 0) 40%, rgba(80, 66, 50, .26) 43%, rgba(80, 66, 50, .26) 48%, rgba(80, 66, 50, 0) 51%, rgba(80, 66, 50, 0) 63%, rgba(80, 66, 50, .30) 68%, rgba(80, 66, 50, .38) 100%),
    linear-gradient(rgba(255, 246, 230, .25), rgba(246, 232, 208, .45)); }
.heros .couverture:hover::after { transform: rotate(0deg) translateY(4px); }
.etiquette sup { font-size: .7em; vertical-align: .35em; text-transform: lowercase; }
@media (max-width: 860px) { .heros .couverture { width: min(70vw, 300px); margin: 0; } }
/* La couverture garde sa bascule douce même quand le système demande moins d'animations (sinon le changement est abrupt) */
@media (prefers-reduced-motion: reduce) { .heros .couverture { transition: transform .6s cubic-bezier(.2, .7, .3, 1), box-shadow .6s ease !important; } .heros .couverture::after { transition: transform .6s cubic-bezier(.2, .7, .3, 1) !important; } }

/* Fiche : la vente visée par un lien de la cote (#vente-…) est mise en évidence à l'arrivée */
.chronologie li { scroll-margin-top: 110px; }
.chronologie li:target { background: var(--accent-doux); box-shadow: -12px 0 0 var(--accent-doux), 12px 0 0 var(--accent-doux); padding-top: 12px; padding-bottom: 20px; margin-bottom: 12px; }
.chronologie li:target::before { top: 19px; }

/* Menu « Découvrir » : les pages du dossier en menu déroulant */
.sous-menu { position: relative; display: flex; align-items: center; gap: 2px; }
.sous-menu .deplier { background: none; border: 0; padding: 4px; margin: -4px 0; color: var(--gris); font: inherit; cursor: pointer; line-height: 1; }
.sous-menu .deplier:hover, .sous-menu.deplie .deplier { color: var(--accent); }
.sous-menu .deroulant { display: none; position: absolute; top: 100%; left: -18px; z-index: 20; min-width: 300px; margin-top: 14px; padding: 8px 0; background: var(--papier); border: 1px solid var(--trait); box-shadow: 0 16px 32px -16px rgba(20, 20, 20, .3); }
.sous-menu .deroulant::before { content: ""; position: absolute; left: 0; right: 0; top: -15px; height: 15px; } /* pont pour garder le survol */
.sous-menu:hover .deroulant, .sous-menu:focus-within .deroulant, .sous-menu.deplie .deroulant { display: block; }
.sous-menu .deroulant a { display: flex; gap: 12px; align-items: baseline; padding: 10px 18px; text-transform: none; letter-spacing: .04em; font-size: 15px; color: var(--encre); }
.sous-menu .deroulant a:hover, .sous-menu .deroulant a[aria-current] { color: var(--accent); background: var(--fond); }
.sous-menu .ref { flex: 0 0 2.6em; font-size: 12px; letter-spacing: .12em; color: var(--gris-clair); }
@media (max-width: 1200px) {
  .menu.ouvert .sous-menu { display: block; border-top: 1px solid var(--trait); }
  .menu.ouvert .sous-menu > a { display: inline-block; border-top: 0; }
  .menu.ouvert .sous-menu .deplier { display: none; }
  .menu.ouvert .sous-menu .deroulant { display: block; position: static; min-width: 0; margin: 0 0 8px; padding: 0 0 0 16px; background: none; border: 0; box-shadow: none; }
  .menu.ouvert .sous-menu .deroulant::before { display: none; }
  .menu.ouvert .sous-menu .deroulant a { padding: 9px 0; border-top: 0; font-size: 15px; }
}

/* Zoom des vignettes au survol : la transition reste douce même quand le système demande moins d'animations
   (sinon la règle générale « transition: none » rend le grossissement abrupt) */
@media (prefers-reduced-motion: reduce) {
  .contenu .wp-block-gallery figure img, .contenu .mosaique figure img { transition: transform .35s ease !important; }
  .maison .photo img { transition: transform .4s ease !important; }
}

/* Cote : chaque point du graphique mène à sa ligne dans le tableau, mise en évidence à l'arrivée */
.graphe svg a { cursor: pointer; }
.graphe svg a circle { transition: transform .2s ease; transform-box: fill-box; transform-origin: center; }
.graphe svg a:hover circle, .graphe svg a:focus-visible circle { transform: scale(1.5); }
.tableau-wrap tr[id] { scroll-margin-top: 110px; }
.tableau-wrap tr:target td { background: var(--accent-doux); }

/* Page vidéo : transcription repliable sous la vidéo */
.contenu details.transcription { margin: 1.4em auto 2em; border-top: 1px solid var(--trait); border-bottom: 1px solid var(--trait); padding: 14px 0; }
.contenu details.transcription > summary { cursor: pointer; font: 400 14px/1.2 var(--titre); letter-spacing: .14em; text-transform: uppercase; color: var(--accent); }
.contenu details.transcription[open] > summary { margin-bottom: 1em; }
.contenu details.transcription > p + p { margin-top: .9em; }
.contenu .minutage { display: inline-block; margin-right: .5em; font: 400 12px/1 var(--titre); letter-spacing: .1em; color: var(--gris); border: 1px solid var(--trait); padding: 3px 6px; vertical-align: .15em; }
