/* CITATIO – thème WordPress · famille graphique Institut Iliade
   Parti pris : un abécédaire imprimé. Une colonne de manchette à gauche porte les titres,
   la colonne de droite porte le texte ; des filets plutôt que des cartes.
   Rôles typographiques : Playfair = titres de section et noms en vedette, rien d'autre · Open Sans = tout le reste
   (étiquettes en majuscules espacées de 1,5 px). Le doré est réservé au logo et au bouton de don ;
   seule exception, le compteur des en-têtes, en doré à 65 % (bronze), qui ne peut pas être pris pour un bouton.
   Polices servies par le site (assets/polices), variables : un fichier par style couvre toutes les graisses. */

@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url("../polices/open-sans-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Open Sans"; font-style: italic; font-weight: 300 800; font-display: swap; src: url("../polices/open-sans-latin-wght-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url("../polices/open-sans-latin-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Open Sans"; font-style: italic; font-weight: 300 800; font-display: swap; src: url("../polices/open-sans-latin-ext-wght-italic.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../polices/playfair-display-latin-wght-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400 900; font-display: swap; src: url("../polices/playfair-display-latin-wght-italic.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("../polices/playfair-display-latin-ext-wght-normal.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Playfair Display"; font-style: italic; font-weight: 400 900; font-display: swap; src: url("../polices/playfair-display-latin-ext-wght-italic.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --bordeaux: #5e0000;
  --bordeaux-fonce: #420700;
  --sous-pied: #2e0500;
  --noir: #2e2926;         /* titres, noms, liens d'index : gris très foncé légèrement chaud, plutôt qu'un noir pur (validé le 19/10) */
  --encre: #3b3633;        /* texte des citations et des chapôs */
  --texte: #414141;
  --texte-doux: #6d6a66;
  --fond: #f5f5f5;
  --blanc: #ffffff;
  --champ: #fdf8ec;        /* fond des champs de saisie : ivoire chaud, de la famille du doré */
  --champ-survol: #f6eedb;
  --filet: #e6e2da;
  --or: #ecbf60;
  --or-logo: #f3c53c;
  --creme: #efe3d0;
  --pied-texte: #cbb79e;
  --pale: #c9c4bc;
  --pastille: #f0eeea;     /* fond des numéros de page */
  --survol: #f8f5f1;       /* fond d'une citation en liste survolée */

  --titre: "Playfair Display", Georgia, "Times New Roman", serif;
  --courant: "Open Sans", Helvetica, Arial, sans-serif;
  --titre-graisse: 500;
  /* Texte des citations (compromis validé le 19/10) : en liste 18 px / 1,75 ; sur sa page 20 px / 1,7 */
  --citation-liste: 1.125rem;
  --citation-liste-il: 1.75;
  --citation-page: 1.25rem;
  --citation-page-il: 1.7;    /* graisse de Playfair : 500, comme sur le site actuel (700 paraissait trop épais) */

  /* Échelle unique des corps */
  --c-0: .8125rem;   /* mentions, commandes */
  --c-1: .9375rem;   /* références, étiquettes, listes secondaires */
  --c-2: 1.0625rem;  /* texte courant */
  --c-3: 1.1875rem;  /* citations en liste */
  --c-4: 1.375rem;   /* citation en vedette, lettres */
  --c-5: 1.625rem;   /* titres de section */
  --c-6: clamp(1.6rem, 3.3vw, 2.3rem);
  --c-7: clamp(2.1rem, 5vw, 3.25rem);
  /* Interlignages : trois valeurs, pas une de plus */
  --il-titre: 1.2;
  --il-liste: 1.5;
  --il-texte: 1.65;
  /* Espacements */
  --e-1: .5rem;
  --e-2: 1rem;
  --e-3: 1.5rem;
  --e-4: 2.5rem;
  --e-section: clamp(3.2rem, 7vw, 5.5rem);

  --manchette: 14rem;
  --largeur: 1180px;
  --gouttiere: clamp(16px, 4vw, 40px);
  --rayon: 2px;
  --haut: 0px;             /* hauteur de la barre d'administration de WordPress, quand elle est affichée */
}
.admin-bar { --haut: 32px; }
@media (max-width: 782px) { .admin-bar { --haut: 46px; } }
@media (max-width: 600px) { .admin-bar { --haut: 0px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--blanc); color: var(--texte); font-family: var(--courant); font-size: var(--c-2); line-height: var(--il-texte); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 { margin: 0; font-family: var(--titre); font-weight: var(--titre-graisse); color: var(--noir); line-height: var(--il-titre); text-wrap: balance; }
p, ul, ol, dl, dd, figure, blockquote { margin: 0; padding: 0; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; cursor: pointer; }
a { color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
a:hover { color: var(--bordeaux-fonce); text-decoration-style: solid; }
:focus-visible { outline: 2px solid var(--bordeaux); outline-offset: 3px; }
.barre-haute :focus-visible, header.principal :focus-visible, .heros :focus-visible, .tete-page :focus-visible, .don :focus-visible, .pied :focus-visible { outline-color: var(--blanc); }
.vh, .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.conteneur { width: 100%; max-width: calc(var(--largeur) + 2 * var(--gouttiere)); margin-inline: auto; padding-inline: var(--gouttiere); }

/* Étiquette : la seule forme de surtitre du site */
.etiquette { display: block; font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--bordeaux); }

/* Boutons (repris de la charte Iliade) */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: .8em 1.5em; border: 0; border-radius: var(--rayon); font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; line-height: var(--il-titre); text-transform: uppercase; text-decoration: none; transition: background-color .2s, color .2s; }
.btn--plein { background: var(--bordeaux); color: var(--blanc); }
.btn--plein:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.btn--or { background: var(--or); color: var(--noir); }
.btn--or:hover { background: var(--blanc); color: var(--noir); }
/* Pictogrammes en ligne : livre ouvert (« Les éditions »), cœur bordeaux (« Faire un don ») */
.picto { flex: none; width: 1.25em; height: 1.25em; }
.btn .picto--coeur { width: 1.15em; height: 1.15em; margin-left: -.15em; color: var(--bordeaux); }
.btn--don:hover .picto--coeur { animation: battement .9s ease-in-out; }
@keyframes battement { 0%, 100% { transform: scale(1); } 20% { transform: scale(1.18); } 40% { transform: scale(.96); } 60% { transform: scale(1.1); } }
.avec-picto { display: inline-flex; align-items: center; gap: .45em; }

/* Commandes discrètes (copier, voir la fiche…) */
.actions { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; font-size: var(--c-0); font-weight: 600; line-height: var(--il-liste); }
.action { background: none; border: 0; padding: 0; color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; white-space: nowrap; }
button.action { text-align: left; }
.action:hover, .action.est-fait { color: var(--bordeaux-fonce); text-decoration-style: solid; }
/* Adresse électronique protégée (inc/courriel.php) : un bouton qui a l'air d'un lien, remplacé par l'adresse au clic */
.courriel button { padding: 0; border: 0; background: none; font: inherit; color: var(--bordeaux); text-decoration: underline dotted currentColor; text-decoration-thickness: 1.5px; text-underline-offset: 4px; cursor: pointer; }
.courriel button:hover { text-decoration-style: solid; }
.courriel button:disabled { cursor: progress; opacity: .7; }

/* Barre haute */
.barre-haute { background: var(--sous-pied); color: var(--pied-texte); font-size: var(--c-0); line-height: var(--il-liste); }
.barre-haute .conteneur { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .2rem 1.5rem; padding-block: .55rem; }
.barre-haute a { color: var(--creme); text-decoration: none; }
.barre-haute a:hover { color: var(--blanc); text-decoration: underline; }
.barre-haute .avec-picto:hover { text-decoration: none; }
.barre-haute .avec-picto:hover span { text-decoration: underline; }
.barre-haute .picto { color: var(--pied-texte); }
.barre-haute .avec-picto:hover .picto { color: var(--blanc); }
.barre-haute ul { display: flex; gap: 1.6rem; }

/* En-tête */
header.principal { position: sticky; top: calc(env(safe-area-inset-top, 0px) + var(--haut)); z-index: 60; background: var(--bordeaux); }
.entete-int { display: flex; align-items: center; justify-content: space-between; gap: var(--e-3); min-height: 68px; }
.mot { display: block; flex: none; }
.mot img { height: 26px; width: auto; }
/* Accueil : pas d'en-tête au chargement ; il glisse en place une fois la recherche du héros sortie de l'écran */
.accueil header.principal { position: fixed; top: calc(env(safe-area-inset-top, 0px) + var(--haut)); left: 0; right: 0; transform: translateY(-110%); visibility: hidden; transition: transform .3s ease, visibility .3s; box-shadow: 0 6px 18px rgba(0, 0, 0, .22); }
.accueil header.principal.est-defile { transform: none; visibility: visible; }
section[id], .puces[id] { scroll-margin-top: calc(84px + var(--haut)); }
/* Toutes les pages : l'en-tête se retire dès que le pied de page entre à l'écran (pas de double logo) */
header.principal { transition: transform .3s ease, visibility .3s; }
header.principal.est-au-pied, .accueil header.principal.est-defile.est-au-pied { transform: translateY(-110%); visibility: hidden; }
.nav-principale ul { display: flex; align-items: center; gap: clamp(1.1rem, 2.4vw, 2.2rem); }
.nav-principale a:not(.btn) { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--blanc); text-decoration: none; padding-block: .4rem; border-bottom: 2px solid transparent; }
.nav-principale a:not(.btn):hover, .nav-principale a[aria-current] { border-bottom-color: var(--blanc); }
.bouton-menu { display: none; background: none; border: 0; color: var(--blanc); padding: .6rem 0; font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); }
.bouton-menu span { display: inline-block; width: 22px; height: 2px; background: var(--blanc); box-shadow: 0 6px 0 var(--blanc), 0 -6px 0 var(--blanc); vertical-align: middle; margin-right: .7rem; }

/* Recherche de l'en-tête : même UI que le thème Iliade – une loupe dans un carré de 44 px, le champ se déplie au clic */
.recherche.recherche--entete { flex: 0 0 44px; width: 44px; height: 44px; max-width: none; margin: 0 0 0 auto; background: rgba(255, 255, 255, .055); border-radius: 3px; transition: background .25s; }
.recherche.recherche--entete:hover { background: rgba(255, 255, 255, .075); }
.recherche.recherche--entete form, .recherche.recherche--entete form:focus-within { flex-direction: row-reverse; height: 100%; background: transparent; box-shadow: none; }
.recherche.recherche--entete button { flex: 0 0 44px; height: 44px; display: flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 3px; background: transparent; color: rgba(240, 230, 216, .55); transition: color .25s; }
.recherche.recherche--entete button:hover, .recherche.recherche--entete.est-ouverte button { color: rgba(240, 230, 216, .95); }
.recherche.recherche--entete button svg { width: 16px; height: 16px; }
.recherche.recherche--entete input { flex: 0 0 0; width: 0; padding: 0; visibility: hidden; color: rgba(255, 255, 255, .95); font-size: .9rem; }
.recherche.recherche--entete input::placeholder { color: rgba(240, 230, 216, .45); }
.recherche.recherche--entete.est-ouverte { flex: 1 1 auto; width: auto; max-width: 420px; background: rgba(255, 255, 255, .13); }
.recherche.recherche--entete.est-ouverte input { flex: 1 1 auto; width: auto; padding: .5rem 0 .5rem 1.1rem; visibility: visible; }
.recherche.recherche--entete .resultats { top: calc(100% + 12px); min-width: min(22rem, calc(100vw - 2 * var(--gouttiere))); }

/* Héros */
.heros { background: var(--bordeaux-fonce); color: var(--creme); text-align: center; padding-block: clamp(2.4rem, 6vw, 4.2rem); position: relative; isolation: isolate; overflow: hidden; }
/* Fond du héros : la galerie des auteurs (ancienne image de partage de Citatio), en niveaux de gris,
   fondue dans le bordeaux (mode luminosité : l'image ne garde que ses ombres et lumières), assombrie au centre
   pour la lisibilité du logo et de la recherche, et fondue vers le bas. */
.heros-fond { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.heros-fond img { width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 35%; mix-blend-mode: luminosity; opacity: var(--heros-opacite, .3); }  /* réglée dans « Citatio › Images » */
.heros-fond::after { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 55% at 50% 45%, rgba(66, 7, 0, .55) 0%, rgba(66, 7, 0, 0) 100%), linear-gradient(180deg, rgba(66, 7, 0, .25) 0%, rgba(66, 7, 0, 0) 30%, rgba(66, 7, 0, .6) 72%, var(--bordeaux-fonce) 100%); }
.heros h1 { margin: 0 auto; max-width: 440px; }
.heros h1 img { width: 100%; }
.heros .chapo { max-width: 58ch; margin: var(--e-3) auto 0; }
.recherche { position: relative; max-width: 720px; margin: var(--e-4) auto 0; text-align: left; }
.recherche form { display: flex; background: var(--champ); border-radius: var(--rayon); }
.recherche input { flex: 1; min-width: 0; border: 0; background: transparent; color: var(--noir); font: inherit; font-size: var(--c-3); line-height: var(--il-titre); padding: 1.05rem 1.3rem; }
.recherche input::placeholder { color: #8b8782; }
.recherche input::-webkit-search-cancel-button { -webkit-appearance: none; }
.recherche input:focus { outline: none; }
.recherche form:focus-within { box-shadow: 0 0 0 2px var(--blanc), 0 0 0 4px var(--bordeaux); }
.recherche .btn { background: transparent; color: var(--bordeaux); border-left: 1px solid var(--filet); border-radius: 0 var(--rayon) var(--rayon) 0; }
.recherche .btn:hover { background: var(--champ-survol); }
/* Recherche du héros : bouton bordeaux plein, serti dans le champ ivoire */
.heros .recherche form, .recherche--page form { padding: 5px; }
.heros .recherche input, .recherche--page input { padding: .8rem 1rem .8rem 1.1rem; }
.heros .recherche .btn, .recherche--page .btn { background: var(--bordeaux); color: var(--blanc); border-left: 0; border-radius: var(--rayon); }
.heros .recherche .btn:hover, .recherche--page .btn:hover { background: var(--bordeaux-fonce); color: var(--blanc); }
.resultats { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 20; background: var(--blanc); color: var(--texte); border-radius: var(--rayon); box-shadow: 0 16px 36px rgba(0, 0, 0, .3); max-height: 23rem; overflow-y: auto; padding: var(--e-1) 0 var(--e-2); }
.resultats h3 { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--bordeaux); padding: .9rem 1.3rem .3rem; }
.resultats a { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: .4rem 1.3rem; color: var(--noir); text-decoration: none; line-height: var(--il-liste); }
.resultats a small { color: var(--texte-doux); font-size: var(--c-0); white-space: nowrap; }
.resultats a:hover, .resultats a.actif { background: var(--fond); color: var(--bordeaux); }
.resultats .vide { padding: .9rem 1.3rem; font-size: var(--c-1); color: var(--texte-doux); }
/* Thèmes au hasard, sous la recherche : tirés à chaque affichage, et de nouveau au clic */
.themes-heros { max-width: 820px; margin: var(--e-4) auto 0; font-size: var(--c-1); line-height: 1.9; }
.themes-heros .etiquette { color: var(--blanc); margin-bottom: .3rem; }
/* Hauteur fixe de --lignes lignes : le script du tirage y range autant de thèmes qu’il en tient */
.themes-heros ul { --lignes: 3; display: flex; flex-wrap: wrap; justify-content: center; align-content: flex-start; gap: 0 1.5rem; min-height: calc(var(--lignes) * 1.9em); }
@media (max-width: 640px) { .themes-heros ul { --lignes: 6; } }
.themes-heros a { color: var(--creme); text-decoration-color: var(--pied-texte); white-space: nowrap; }
.themes-heros a:hover { color: var(--blanc); }
.themes-tirage { margin-top: .6rem; }
.themes-tirage button { display: inline-flex; align-items: center; gap: .45em; background: none; border: 0; padding: .3rem 0; color: var(--pied-texte); font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); cursor: pointer; }
.themes-tirage button:hover { color: var(--blanc); }
.themes-tirage svg { width: 1.15em; height: 1.15em; transition: transform .4s ease; }
.themes-tirage button:hover svg { transform: rotate(-180deg); }

/* Sections et planche (manchette + texte) */
.section { padding-block: var(--e-section); border-top: 1px solid var(--filet); }
.section--grise { background: var(--fond); }
.planche { display: grid; grid-template-columns: var(--manchette) minmax(0, 1fr); column-gap: clamp(2rem, 5vw, 4.5rem); row-gap: var(--e-3); align-items: start; }
.manchette h2:not(.etiquette) { font-size: var(--c-5); }
.manchette .etiquette + h2, .manchette h2 + p, .manchette p + p { margin-top: var(--e-2); }
.manchette .colle { position: sticky; top: calc(env(safe-area-inset-top, 0px) + var(--haut) + 96px); }
/* Pagination sous une liste (et, à l'accueil, lien « Toutes les citations ») : séparée de la dernière citation par un filet */
.suite, .pagenav--bas { margin-top: var(--e-4); padding-top: var(--e-3); border-top: 1px solid var(--filet); }
.suite { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-2) var(--e-3); font-size: var(--c-1); }

/* Citations : le texte est toujours en sans-serif, alignée sur la marge de gauche */
blockquote { font-family: var(--courant); color: var(--encre); line-height: var(--il-texte); }
blockquote p + p { margin-top: .8em; }
blockquote a { color: inherit; }
blockquote a:hover { color: var(--bordeaux); }
/* Citations en liste : même blanc entre l'en-tête du bloc et la première citation qu'entre deux citations (2 × --e-3) */
.entree { padding-block: var(--e-3); border-top: 1px solid var(--filet); }
.entree:first-child { padding-top: 0; border-top: 0; }
.entree:last-child { padding-bottom: 0; }
/* Titre de la citation (titre de la fiche) : lien vers la page de la citation, précédé d'un guillemet gris comme sur le site actuel */
.entree-titre { font-size: clamp(1.3rem, 2.4vw, 1.625rem); font-weight: var(--titre-graisse); line-height: 1.25; color: var(--bordeaux); margin-bottom: var(--e-2); }
.entree-titre::before { content: "\201C"; display: inline-block; font-weight: var(--titre-graisse); font-size: 1.9em; line-height: 0; vertical-align: -.36em; margin-right: .22em; color: var(--pale); }
.entree-titre a { color: inherit; text-decoration: none; }
.entree-titre a:hover { text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
.entree blockquote { font-size: var(--citation-liste); line-height: var(--citation-liste-il); max-width: 66ch; }
/* Toute la citation ouvre sa page : le lien du titre s'étend sur la fiche entière (un seul lien, nommé par le titre) ;
   les liens du texte, l'auteur, le livre et les actions passent au-dessus et gardent leur destination. Au survol, la
   fiche s'éclaire sur un fond débordant un peu de la colonne, et son titre se souligne. */
.entree { position: relative; isolation: isolate; }
.entree::before, .entree-titre a::after { content: ""; position: absolute; inset: 0 -1rem; }
.entree:first-child::before, .entree.est-premiere::before, .entree:first-child .entree-titre a::after, .entree.est-premiere .entree-titre a::after { top: calc(-1 * var(--e-2)); }
.entree:last-child::before, .entree:last-child .entree-titre a::after { bottom: calc(-1 * var(--e-2)); }
.entree::before { z-index: -1; border-radius: var(--rayon); background: var(--survol); opacity: 0; transition: opacity .2s ease; }
.entree-titre a::after { z-index: 1; }
.entree blockquote a, .entree .ref a, .entree .ref button { position: relative; z-index: 2; }
@media (hover: hover) {
  .entree:hover::before { opacity: 1; }
  .entree:hover .entree-titre a { text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 5px; }
}
.entree-titre a:focus-visible { outline: none; }
.entree:has(.entree-titre a:focus-visible)::before { opacity: 1; outline: 2px solid var(--bordeaux); }
.ref { margin-top: var(--e-2); display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem var(--e-4); }
.ref p { flex: 1 1 20rem; min-width: 0; font-size: var(--c-1); line-height: var(--il-liste); color: var(--texte-doux); }
.auteur { font-weight: 600; font-size: var(--c-2); color: var(--noir); text-decoration: none; margin-right: .6em; }
a.auteur:hover { color: var(--bordeaux); }
.ref p a:not(.auteur) { color: inherit; }
/* Pagination, reprise du site actuel : compteur, pastilles rondes, page courante en bordeaux plein.
   Les « … » n'ont pas de pastille : ils ne se cliquent pas. */
.pagenav { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: var(--c-1); line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.pagenav-compte { margin-right: 1rem; color: var(--texte); white-space: nowrap; }
.pastille { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2.5rem; padding: 0 .75rem; border-radius: 1.25rem; background: var(--pastille); color: var(--noir); text-decoration: none; white-space: nowrap; transition: background-color .15s, color .15s; }
a.pastille:hover { background: var(--filet); color: var(--bordeaux); text-decoration: none; }
.pastille[aria-current] { background: var(--bordeaux); color: var(--blanc); font-weight: 600; }
.pastille.trou { min-width: 1.25rem; padding: 0; background: none; color: var(--texte-doux); }
.pastille.bout .court { display: none; }
@media (min-width: 641px) { .pagenav .pg-etroit { display: none; } }
@media (max-width: 640px) {
  .pagenav { gap: .375rem; }
  .pagenav .pg-large { display: none; }
  .pagenav-compte { flex-basis: 100%; order: -2; margin: 0 0 .375rem; }
  .pagenav [rel="prev"] { order: -1; }
  .pagenav [rel="next"] { order: 1; }
  .pastille { min-width: 2.25rem; height: 2.25rem; padding: 0 .55rem; }
  .pastille.bout .long { display: none; }
  .pastille.bout .court { display: inline; }
}

/* Citation du jour */
.du-jour blockquote { font-weight: 300; font-size: var(--c-6); line-height: 1.4; color: var(--noir); max-width: 24ch; }
.du-jour .ref { justify-content: flex-start; margin-top: var(--e-3); }
.du-jour .ref p { flex: 0 1 auto; }

/* Listes de liens : un seul composant partout (index, accueil, marges, recherche, livres en liste),
   avec la puce triangle bordeaux du site Iliade. Partie forte (.nom), partie discrète (.prefixe, .doux),
   précision en petit (.precision : nombre de citations, années). */
/* Pas de ligne unique : l'écart entre deux lignes d'un même élément égale l'écart entre deux éléments (interligne de liste + .4rem) */
.liste-index { font-size: var(--c-2); line-height: calc(var(--il-liste) * 1em + .4rem); }
.liste-index li, .est-en-liste .grille-livres li { position: relative; padding-left: 1.15rem; break-inside: avoid; }
.liste-index li::before, .est-en-liste .grille-livres li::before { content: "▸"; position: absolute; left: 0; top: 0; font-size: .85em; line-height: inherit; color: var(--bordeaux); }
.liste-index a { color: var(--noir); text-decoration: none; }
.liste-index a:hover { color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.liste-index .nom { font-weight: 600; }
.liste-index .prefixe, .liste-index .doux { color: var(--texte-doux); }
.precision { font-size: var(--c-0); color: var(--texte-doux); font-variant-numeric: lining-nums tabular-nums; }
.col-2 { columns: 2; column-gap: clamp(1.5rem, 4vw, 3rem); }
.col-3 { columns: 3; column-gap: clamp(1.5rem, 4vw, 3rem); }

/* Livres */
/* Livres à l'affiche : grille de 7 × 2 sur grand écran ; rangée à faire glisser au doigt sur téléphone */
.livres { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: var(--e-4) var(--e-3); }
.livres li { min-width: 0; }
.livres a { display: block; color: var(--texte-doux); text-decoration: none; }
.couverture { aspect-ratio: 2 / 3; width: 100%; min-height: 0; display: flex; flex-direction: column; justify-content: space-between; padding: .9rem .8rem; background: var(--bordeaux-fonce); color: var(--creme); font-family: var(--titre); font-size: var(--c-1); font-weight: var(--titre-graisse); line-height: var(--il-titre); box-shadow: inset 3px 0 0 rgba(255, 255, 255, .08); }
.couverture small { font-family: var(--courant); font-size: .625rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: var(--creme); }
.couverture { position: relative; overflow: hidden; }
.couverture .couv { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* Chargement : fileur discret sur le fond de la couverture, puis fondu ; le texte de repli reste caché tant que l'image peut arriver */
.couv { transition: opacity .35s ease; }
.est-en-charge, .a-image { color: transparent; }
.est-en-charge > :not(img), .a-image > :not(img) { visibility: hidden; }
.est-en-charge .couv { opacity: 0; }
.est-en-charge::after { content: ""; position: absolute; top: 50%; left: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; border: 2px solid rgba(239, 227, 208, .2); border-top-color: var(--creme); border-radius: 50%; animation: fileur .8s linear infinite; }
@keyframes fileur { to { transform: rotate(360deg); } }
.couverture--b { background: #1d1b1a; }
.couverture--c { background: #7a5a1e; }
.couverture--d { background: #2f3b34; }
/* Couverture qui a une image : le même gris clair partout tant qu'elle charge, fileur assorti ; les quatre couleurs
   ne servent qu'aux couvertures typographiques (livre sans image, ou image introuvable, que le script retire alors) */
.couverture:has(.couv) { background: var(--filet); }
.couverture.est-en-charge::after { border-color: rgba(7, 6, 6, .1); border-top-color: var(--texte-doux); }
/* Légende sous la couverture, la même partout (accueil, index, recherche) : titre en gras sur trois lignes au plus, auteur dessous */
.livres .legende { display: block; margin-top: .75rem; font-size: var(--c-1); line-height: var(--il-liste); }
.livres .titre-livre { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; font-weight: 600; color: var(--noir); overflow-wrap: break-word; hyphens: auto; }
.livres .auteur { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin-top: .2rem; font-size: var(--c-0); color: var(--texte-doux); }
.livres a:hover .titre-livre { color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }

/* Don */
.don { background: var(--bordeaux); color: var(--creme); border-top: 0; }
.don .etiquette { color: var(--blanc); }
.don h2 { color: var(--blanc); font-size: var(--c-6); max-width: 30ch; }
.don p { max-width: 58ch; margin-block: var(--e-3) var(--e-4); }

/* En-tête de page illustré – commun aux citations et aux taxonomies (auteur, thème, livre).
   L'image téléversée passe en niveaux de gris puis est teintée ; --teinte, --voile et --cadrage se règlent depuis l'admin. */
.tete-page { position: relative; isolation: isolate; overflow: hidden; background: var(--bordeaux-fonce); color: var(--creme); padding-block: var(--e-3) clamp(7rem, 13vw, 9.5rem); --teinte: #7a0a00; --voile: .92; }
.tete-page .fond { position: absolute; inset: 0; z-index: -1; opacity: var(--entete-opacite, .4); }  /* image, teinte et dégradé ensemble, sur le fond bordeaux : intensité réglée dans « Citatio › Images » */
/* Sans image d'en-tête (cas par défaut : citation, livre et thème n'en ont pas) : le grand guillemet de Citatio en filigrane */
.tete-page:not(:has(> .fond)) { background: radial-gradient(110% 130% at 88% 0%, #571004 0%, var(--bordeaux-fonce) 58%); }
.tete-page:not(:has(> .fond))::before { content: "\201C"; position: absolute; z-index: -1; top: -.06em; right: max(var(--gouttiere), calc((100% - var(--largeur)) / 2)); font-family: var(--titre); font-size: clamp(15rem, 30vw, 27rem); font-weight: var(--titre-graisse); line-height: 1; color: rgba(255, 255, 255, .045); pointer-events: none; }
.tete-page .fond img { width: 100%; height: 100%; object-fit: cover; object-position: var(--cadrage, 50% 50%); filter: grayscale(1) contrast(1.15) brightness(1.1); }
.tete-page .fond::before { content: ""; position: absolute; inset: 0; background: var(--teinte); mix-blend-mode: multiply; }
.tete-page .fond::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(46, 5, 0, var(--voile)) 0%, rgba(66, 7, 0, calc(var(--voile) * .8)) 48%, rgba(66, 7, 0, .12) 100%), linear-gradient(0deg, rgba(46, 5, 0, .55) 0%, rgba(46, 5, 0, 0) 45%); }
.tete-haut { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 2rem; font-size: var(--c-0); line-height: var(--il-liste); }
.fil { display: flex; flex-wrap: wrap; gap: .2rem .6rem; }
.fil li + li::before { content: "›"; margin-right: .6rem; color: var(--pied-texte); }
.fil a { color: var(--creme); text-decoration: none; }
.fil a:hover { color: var(--blanc); text-decoration: underline; }
/* Légende de l'image d'en-tête : hors de l'en-tête, sous la citation (fiche citation) ou en tête du contenu (livre, thème) */
.legende-image { max-width: 60ch; font-size: var(--c-0); line-height: var(--il-liste); color: var(--texte-doux); }
.feuille + .legende-image { margin-top: .75rem; }
.fiche-corps > .legende-image:first-child { margin-bottom: var(--e-4); }
.fiche-corps > .legende-image:first-child + * { margin-top: 0; }
.tete-page .planche { margin-top: clamp(2.4rem, 6vw, 4.2rem); }
.tete-titre { grid-column: 2; }
.tete-surtitre { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); }
.tete-surtitre a { color: var(--blanc); text-decoration: none; }
.tete-surtitre a:hover { text-decoration: underline dotted var(--blanc); }
/* H1 = incipit de la citation, en serif comme sur le site actuel */
.tete-page h1 { font-family: var(--titre); font-size: clamp(1.85rem, 4vw, 2.9rem); font-weight: var(--titre-graisse); line-height: 1.16; color: var(--blanc); max-width: 24ch; margin-top: .8rem; }
.tete-source { font-size: var(--c-2); line-height: var(--il-liste); color: var(--creme); margin-top: 1rem; }
.tete-source a { color: inherit; text-decoration-color: var(--creme); }
.tete-source .tete-auteur { font-weight: 700; color: var(--blanc); text-decoration: none; }
.tete-source .tete-auteur:hover { text-decoration: underline dotted var(--blanc); }
/* Chapô d'un thème (sa description, sinon la phrase automatique) : une longueur de ligne de lecture */
.tete-chapo { max-width: 62ch; }

/* Page d'une citation */
.section--single { padding-top: 0; border-top: 0; }
.section--single .manchette { padding-top: var(--e-4); display: grid; gap: var(--e-4); }
.feuille { position: relative; margin-top: clamp(-6.5rem, -9vw, -5rem); background: var(--blanc); border: 1px solid var(--filet); border-top: 3px solid var(--bordeaux); padding: clamp(1.6rem, 4.5vw, 3.2rem); }
.feuille blockquote { font-size: var(--citation-page); line-height: var(--citation-page-il); max-width: 60ch; }
.feuille .ref { margin-top: var(--e-4); padding-top: var(--e-3); border-top: 1px solid var(--filet); }
.bloc { margin-top: var(--e-section); }
.bloc > .etiquette + h2 { margin-top: var(--e-1); }
.bloc > h2 { font-size: var(--c-5); margin-bottom: var(--e-3); }
.fiche { border-top: 1px solid var(--noir); }
.fiche .ligne { display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: .1rem var(--e-3); padding-block: .8rem; border-bottom: 1px solid var(--filet); align-items: baseline; }
.fiche dt { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--bordeaux); }
.fiche dd { color: var(--noir); }
.fiche dd a { color: inherit; }
.controle { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .4rem var(--e-3); margin-top: var(--e-2); font-size: var(--c-1); line-height: var(--il-liste); }
.controle strong { color: var(--bordeaux); }
.notice h3 { font-size: var(--c-4); margin-top: var(--e-1); }
.notice p { font-size: var(--c-1); line-height: var(--il-liste); color: var(--texte-doux); margin-top: .2rem; }
.notice .actions { margin-top: var(--e-2); flex-direction: column; gap: .35rem; }
.notice .couverture { width: 128px; margin-top: var(--e-2); font-size: .72rem; padding: .6rem .5rem; }
.notice .couverture small { font-size: .5rem; }
.notice .liste-index { margin-top: var(--e-2); font-size: var(--c-1); }
.voisines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--e-3); margin-top: var(--e-section); padding-top: var(--e-3); border-top: 1px solid var(--noir); }
.voisines a { display: block; color: var(--noir); text-decoration: none; font-size: var(--c-2); font-weight: 600; line-height: var(--il-liste); }
.voisines a .etiquette { margin-bottom: .3rem; }
.voisines a:last-child { text-align: right; }
.voisines a:hover { color: var(--bordeaux); }

/* Pages de taxonomie unique (un auteur, un livre) : portrait ou couverture en manchette de l'en-tête, nom en vedette */
.tete-page--fiche { padding-block: var(--e-3) clamp(2.8rem, 5.5vw, 4rem); }
.tete-page--fiche .planche { align-items: end; }
.tete-visuel { grid-column: 1; grid-row: 1; }
.tete-page--fiche .tete-titre { grid-row: 1; }
.tete-page--fiche h1 { margin-top: 0; }
.h1-surtitre { display: block; margin-bottom: .75rem; font-family: var(--courant); font-size: var(--c-0); font-weight: 700; font-style: normal; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--creme); }
.portrait { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; max-width: 10.5rem; aspect-ratio: 1 / 1; overflow: hidden; background: var(--bordeaux); border-radius: var(--rayon); font-family: var(--titre); font-size: 2.6rem; font-weight: var(--titre-graisse); line-height: 1; color: var(--creme); }
.portrait .couv { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; filter: grayscale(1) contrast(1.05); }
.tete-visuel .couverture { max-width: 10.5rem; box-shadow: 0 18px 32px rgba(0, 0, 0, .35); }
.fiche-corps { padding-top: var(--e-4); }
.fiche-corps .chapo { max-width: 62ch; font-size: var(--c-3); line-height: var(--il-texte); color: var(--encre); }
.fiche-corps .chapo + .bloc { margin-top: var(--e-4); }
.reperes { display: grid; gap: 1.05rem; margin-top: var(--e-2); font-size: var(--c-1); line-height: var(--il-liste); }
.reperes dt { font-size: .6875rem; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--texte-doux); }
.reperes dd { margin: .2rem 0 0; color: var(--noir); }
.reperes a { color: inherit; }
.puces { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--e-4); }
.puces button { font-family: var(--courant); font-size: var(--c-0); font-weight: 600; line-height: 1.2; padding: .6rem .85rem; color: var(--texte); background: var(--blanc); border: 1px solid var(--pale); border-radius: var(--rayon); cursor: pointer; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.puces button span { margin-left: .3rem; font-weight: 400; color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.puces button:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
.puces button[aria-pressed="true"] { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); cursor: default; }
.puces button[aria-pressed="true"] span { color: var(--creme); }
.puces a { display: inline-block; font-size: var(--c-0); font-weight: 600; line-height: 1.2; padding: .6rem .85rem; color: var(--texte); background: var(--blanc); border: 1px solid var(--pale); border-radius: var(--rayon); text-decoration: none; transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.puces a span { margin-left: .3rem; font-weight: 400; color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.puces a:hover { border-color: var(--bordeaux); color: var(--bordeaux); }
.puces a[aria-current] { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
.puces a[aria-current] span { color: var(--creme); }
.entree.est-premiere { padding-top: 0; border-top: 0; }
.ref p.vh + .actions { margin-left: auto; }
.ref:has(> p.vh) { margin-top: var(--e-1); }  /* référence masquée (fiche livre) : « Copier » reste près de la citation */
sup { line-height: 0; }
/* Thème : le nombre de citations tient lieu de visuel */
.tete-compte { display: flex; flex-direction: column; gap: .5rem; }
.tete-compte .nombre { font-family: var(--titre); font-size: clamp(3rem, 6vw, 4.5rem); font-weight: var(--titre-graisse); line-height: .85; color: rgba(236, 191, 96, .65); font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }  /* doré du logo à 65 % : un bronze qui se fond dans le fond bordeaux, distinct du doré plein du bouton de don */
.tete-compte .unite { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--creme); }
/* Recherche et 404 : formulaire dans l'en-tête, filtres par type, terme surligné */
.recherche.recherche--page { max-width: 640px; margin: var(--e-3) 0 0; }
mark { background: var(--champ-survol); color: inherit; padding: 0 .08em; border-radius: 2px; }
.filtres-types { margin-top: var(--e-2); font-size: var(--c-1); line-height: var(--il-liste); }
.filtres-types li + li { margin-top: .35rem; }
.filtres-types a, .filtres-types .sans { display: inline-flex; gap: .4rem; align-items: baseline; color: var(--noir); text-decoration: none; }
.filtres-types a span, .filtres-types .sans span { font-size: var(--c-0); color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.filtres-types a:hover { color: var(--bordeaux); }
.filtres-types a[aria-current] { color: var(--bordeaux); font-weight: 700; }
.filtres-types .sans { color: var(--pale); }
.fiche-corps > .bloc:first-child { margin-top: 0; }
.bloc--court + .bloc--court { margin-top: var(--e-4); }
.bloc > h2.etiquette { font-size: var(--c-0); margin-bottom: var(--e-2); }
.portes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-3); }
.portes a { display: flex; flex-direction: column; gap: .35rem; height: 100%; padding: var(--e-3); border: 1px solid var(--filet); border-top: 3px solid var(--bordeaux); color: var(--texte-doux); text-decoration: none; font-size: var(--c-1); line-height: var(--il-liste); transition: border-color .2s ease, box-shadow .2s ease; }
.portes strong { font-family: var(--titre); font-weight: var(--titre-graisse); font-size: var(--c-5); line-height: var(--il-titre); color: var(--noir); }
.portes a:hover { border-color: var(--bordeaux); box-shadow: 0 10px 18px rgba(7, 6, 6, .08); }
.portes a:hover strong { color: var(--bordeaux); }
.actions--du-jour { margin-top: var(--e-2); }
/* En-tête des blocs de citations : le titre de section domine les titres de citations (filet noir, information de page à droite) */
.bloc-tete { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: var(--e-3); padding-bottom: var(--e-2); margin-bottom: calc(2 * var(--e-3)); border-bottom: 1px solid var(--noir); }
.bloc-tete .etiquette { grid-column: 1 / -1; margin-bottom: var(--e-1); }
.bloc-tete h2 { font-size: var(--c-6); line-height: var(--il-titre); }
/* Sections secondaires d'une fiche citation (« Autres citations de… ») : titre et filet comme « Référence de la citation » */
.bloc-tete--secondaire { padding-bottom: var(--e-3); }
.bloc-tete--secondaire h2 { font-size: var(--c-5); }
.bloc-meta { font-size: var(--c-1); line-height: var(--il-liste); color: var(--texte-doux); white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Pages de contenu (mentions légales, confidentialité) : sommaire collant en manchette, texte en colonne de lecture */
.section--contenu { padding-top: var(--e-4); border-top: 0; }
.sommaire .etiquette { margin-bottom: var(--e-2); }
.sommaire ol { font-size: var(--c-1); line-height: var(--il-liste); }
.sommaire li + li { margin-top: .35rem; }
.sommaire a { color: var(--texte); text-decoration: none; }
.sommaire a:hover { color: var(--bordeaux); text-decoration: underline dotted var(--bordeaux); text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
.prose { max-width: 68ch; }
.prose-chapo { font-size: var(--c-3); color: var(--encre); margin-bottom: var(--e-4); }
.prose section + section { margin-top: var(--e-4); padding-top: var(--e-4); border-top: 1px solid var(--filet); }
.prose h2 { font-size: var(--c-5); margin-bottom: var(--e-2); }
.prose p + p, .prose p + ul, .prose ul + p, .prose dl + p { margin-top: var(--e-2); }
.prose ul { margin-top: var(--e-2); padding-left: 1.2em; list-style: disc; }
.prose li + li { margin-top: .4rem; }
.prose li::marker { color: var(--bordeaux); }
.prose strong { color: var(--noir); }
.coordonnees { display: grid; gap: .55rem; margin-top: var(--e-3); }
.coordonnees > div { display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: .1rem var(--e-3); align-items: baseline; }
.coordonnees dt { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--texte-doux); }
.coordonnees dd { margin: 0; color: var(--noir); }
.bloc-suite { margin-top: var(--e-4); padding-top: var(--e-3); border-top: 1px solid var(--filet); font-weight: 600; }

/* Index des auteurs */
.tete-page--simple { padding-block: var(--e-3) clamp(2.5rem, 5vw, 3.5rem); }
.index-outils { background: var(--fond); border-bottom: 1px solid var(--filet); padding-block: var(--e-3); }
.index-outils .planche { align-items: center; row-gap: var(--e-1); }
.filtre { display: flex; flex-wrap: wrap; align-items: center; gap: var(--e-1) var(--e-3); }
.filtre input { flex: 1 1 20rem; min-width: 0; max-width: 34rem; font: inherit; font-size: var(--c-2); line-height: var(--il-titre); padding: .8rem 1rem; color: var(--noir); background: var(--champ); border: 1px solid var(--pale); border-radius: var(--rayon); }
.filtre input::-webkit-search-cancel-button { -webkit-appearance: none; }
.filtre input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 1px var(--bordeaux); }
.filtre-compte { font-size: var(--c-1); color: var(--texte-doux); font-variant-numeric: tabular-nums; }
.barre-lettres { position: sticky; top: calc(env(safe-area-inset-top, 0px) + var(--haut) + 68px); z-index: 50; background: var(--blanc); border-bottom: 1px solid var(--filet); transition: top .3s ease; }
header.principal.est-au-pied ~ main .barre-lettres { top: calc(env(safe-area-inset-top, 0px) + var(--haut)); }
.barre-lettres .conteneur { display: grid; grid-template-columns: repeat(var(--lettres, 26), minmax(0, 1fr)); }
.barre-lettres a, .barre-lettres span { display: flex; align-items: center; justify-content: center; height: 3rem; font-family: var(--titre); font-size: var(--c-3); font-weight: var(--titre-graisse); line-height: 1; color: var(--noir); text-decoration: none; border-bottom: 3px solid transparent; margin-bottom: -1px; }
.barre-lettres span, .barre-lettres a.est-vide { color: var(--pale); pointer-events: none; }
.barre-lettres a:hover { color: var(--bordeaux); }
.barre-lettres a[aria-current="true"] { color: var(--bordeaux); border-bottom-color: var(--bordeaux); }
.index-alpha .lettre { padding-block: var(--e-4); border-top: 1px solid var(--filet); scroll-margin-top: calc(68px + 3rem + var(--haut)); }
.index-alpha .lettre:first-child { border-top: 0; }
.lettre .manchette .grande-lettre { font-size: clamp(3rem, 6vw, 4.5rem); line-height: .85; color: var(--bordeaux); }
.index-voir { font-size: var(--c-1); }
.lettre--annexe { background: var(--fond); }
.filtre-vide { padding-block: var(--e-section); color: var(--texte-doux); }

/* Index des livres : couvertures rangées par lettre, ou liste compacte (choix mémorisé dans le navigateur) */
.vues { display: inline-flex; margin-left: auto; }
.vues button { font-family: var(--courant); font-size: .75rem; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase; line-height: 1; padding: .7rem .95rem; color: var(--texte); background: var(--blanc); border: 1px solid var(--pale); cursor: pointer; transition: background-color .2s ease, color .2s ease; }
.vues button:first-child { border-radius: var(--rayon) 0 0 var(--rayon); }
.vues button:last-child { border-radius: 0 var(--rayon) var(--rayon) 0; border-left: 0; }
.vues button:hover { color: var(--bordeaux); }
.vues button[aria-pressed="true"] { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); cursor: default; }
.livres.grille-livres { display: grid; width: auto; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: var(--e-4) var(--e-3); }
.livres.grille-livres li { width: auto; }
.grille-livres .couverture { overflow-wrap: break-word; hyphens: auto; }
.grille-livres .couverture, .couverture-lien .couverture { transition: transform .25s ease, box-shadow .25s ease; }
.grille-livres a:hover .couverture, .couverture-lien:hover .couverture { transform: translateY(-3px); box-shadow: 0 10px 18px rgba(7, 6, 6, .18); }
/* Couverture du livre dans la notice d'une citation : lien vers la fiche du livre */
.couverture-lien { display: block; width: fit-content; color: inherit; text-decoration: none; }
.est-en-liste .livres.grille-livres { display: block; columns: 2; column-gap: clamp(1.5rem, 4vw, 3rem); font-size: var(--c-2); line-height: calc(var(--il-liste) * 1em + .4rem); }
.est-en-liste .grille-livres .couverture { display: none; }
.est-en-liste .grille-livres .legende { margin: 0; font-size: inherit; line-height: inherit; }
.est-en-liste .grille-livres .titre-livre, .est-en-liste .grille-livres .auteur { display: inline; -webkit-line-clamp: none; overflow: visible; hyphens: manual; }
.est-en-liste .grille-livres .auteur { margin: 0; font-size: inherit; }
.est-en-liste .grille-livres .auteur::before { content: "\00a0– "; }  /* le tiret ne commence jamais une ligne ; s'il la termine, l'auteur repart sans retrait */

/* Pied */
footer.pied { background: var(--bordeaux-fonce); color: var(--pied-texte); font-size: var(--c-1); line-height: var(--il-liste); }
.pied-haut { --pied-gouttiere: clamp(1.5rem, 3.5vw, 3rem); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--e-4) var(--pied-gouttiere); padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.pied-presentation { grid-column: 1 / -1; margin-bottom: var(--e-3); }
.pied-presentation p { max-width: calc(50% - var(--pied-gouttiere) / 2); }
.pied-presentation img { width: 200px; margin-bottom: var(--e-3); }
.pied-presentation p + p { margin-top: var(--e-2); }
.pied .courriel button { color: var(--creme); }
.pied .courriel button:hover { color: var(--blanc); }
.pied-colonnes { display: contents; }
.pied h3 { font-family: var(--courant); font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--blanc); margin-bottom: var(--e-3); }
.pied a { color: var(--creme); text-decoration: none; }
.pied a:hover { color: var(--blanc); text-decoration: underline dotted var(--blanc); }
.pied-colonnes li + li { margin-top: .65rem; }
.pied-partenaires { grid-column: span 2; }
.pied-partenaires ul { columns: 2; column-gap: var(--pied-gouttiere); }
.pied-partenaires li { break-inside: avoid; }
.pied-partenaires li + li { margin-top: 0; }
.pied-partenaires li { padding-bottom: .65rem; }
.pied-bas { border-top: 1px solid rgba(255, 255, 255, .16); padding-block: var(--e-4); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--e-3) var(--e-4); }
.pied-bas .iliade { display: block; flex: 0 1 410px; min-width: 0; }
.pied-bas .iliade img { width: 100%; height: auto; }
.reseaux { display: flex; flex-wrap: wrap; gap: .4rem; }
.reseaux a { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; opacity: .65; transition: opacity .25s ease; }
.reseaux a:hover, .reseaux a:focus-visible { opacity: 1; }
.reseaux img { width: 20px; height: 20px; }
.sous-pied { background: var(--sous-pied); color: var(--pied-texte); font-size: var(--c-0); }
.sous-pied .conteneur { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 2rem; padding-block: var(--e-2); }

/* Adaptation */
@media (max-width: 1020px) {
}
@media (max-width: 1180px) {
  #livres .planche { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .defile { overflow-x: auto; margin-inline: calc(var(--gouttiere) * -1); padding: 0 var(--gouttiere) var(--e-2); scroll-snap-type: x mandatory; scroll-padding-inline: var(--gouttiere); scrollbar-color: var(--bordeaux) var(--filet); }
  .livres { display: flex; gap: var(--e-2); width: max-content; }
  .livres li { width: 132px; scroll-snap-align: start; }
}
@media (max-width: 1020px) {
  .pied-haut { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pied-presentation p { max-width: none; }
  .col-3 { columns: 2; }
}
@media (max-width: 900px) {
  .planche { grid-template-columns: minmax(0, 1fr); }
  .manchette .colle { position: static; }
  .tete-titre { grid-column: 1; }
  .tete-visuel, .tete-page--fiche .tete-titre { grid-row: auto; }
  .tete-compte { flex-direction: row; align-items: baseline; gap: .6rem; }
  .tete-compte .nombre { font-size: 2.6rem; }
  .section--single .manchette.manchette--filtres { order: 0; padding-top: var(--e-3); }
  .manchette--filtres .filtres-types { display: flex; flex-wrap: wrap; gap: .5rem; }
  .manchette--filtres .filtres-types li + li { margin-top: 0; }
  .manchette--filtres .filtres-types a, .manchette--filtres .filtres-types .sans { padding: .45rem .75rem; border: 1px solid var(--pale); border-radius: var(--rayon); font-size: var(--c-1); }
  .manchette--filtres .filtres-types a[aria-current] { background: var(--bordeaux); border-color: var(--bordeaux); color: var(--blanc); }
  .manchette--filtres .filtres-types a[aria-current] span { color: var(--creme); }
  .portes { grid-template-columns: minmax(0, 1fr); }
  .sommaire { display: none; }
  .coordonnees > div { grid-template-columns: minmax(0, 1fr); }
  .tete-visuel .portrait, .tete-visuel .couverture { max-width: 6.5rem; }
  .portrait { font-size: 1.8rem; }
  .tete-visuel .couverture { font-size: .62rem; padding: .5rem .45rem; }
  .tete-visuel .couverture small { font-size: .45rem; }
  .section--single .manchette { order: 2; padding-top: var(--e-section); grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bouton-menu { display: block; }
  .entete-int { position: relative; }
  .recherche.recherche--entete.est-ouverte { position: absolute; z-index: 2; left: var(--gouttiere); right: var(--gouttiere); top: 7px; max-width: none; background: #6b1f18; }
  .nav-principale { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--bordeaux-fonce); padding: .4rem var(--gouttiere) 1.5rem; box-shadow: 0 14px 24px rgba(0, 0, 0, .3); }
  .nav-principale.est-ouverte { display: block; }
  .nav-principale ul { flex-direction: column; align-items: stretch; gap: 0; }
  .nav-principale a:not(.btn) { display: block; padding: .9rem 0; border-bottom: 1px solid rgba(255, 255, 255, .12); }
  .nav-principale .btn { margin-top: 1.2rem; width: 100%; }
  .entete-int { min-height: 58px; }
  .barre-lettres { top: calc(env(safe-area-inset-top, 0px) + var(--haut) + 58px); }
  .barre-lettres .conteneur { display: flex; overflow-x: auto; scrollbar-width: none; }
  .barre-lettres .conteneur::-webkit-scrollbar { display: none; }
  .barre-lettres a, .barre-lettres span { flex: 0 0 2.4rem; }
  .index-alpha .lettre { scroll-margin-top: calc(58px + 3rem + var(--haut)); }
  .lettre .manchette .grande-lettre { font-size: 2.75rem; }
}
@media (max-width: 640px) {
  :root { --c-3: 1.0938rem; --c-4: 1.1875rem; --citation-liste: 1.0625rem; --citation-page: 1.125rem; }
  .barre-haute .conteneur { justify-content: center; text-align: center; }
  .barre-haute ul { display: none; }
  .recherche .btn span { display: none; }
  .col-2, .col-3 { columns: 1; }
  .liste-recents li:nth-child(n+11) { display: none; }  /* accueil : dix derniers auteurs sur mobile */
  .livres.grille-livres { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--e-3) var(--e-2); }
  .est-en-liste .livres.grille-livres { columns: 1; }
  .grille-livres .couverture { padding: .7rem .6rem; font-size: .8125rem; }
  .recherche .btn { padding-inline: 1.1rem; }
  .fiche .ligne { grid-template-columns: minmax(0, 1fr); }
  .section--single .manchette { grid-template-columns: minmax(0, 1fr); }
  .voisines { grid-template-columns: minmax(0, 1fr); }
  .voisines a:last-child { text-align: left; }
  .pied-haut { grid-template-columns: minmax(0, 1fr); }
  .pied-partenaires { grid-column: auto; }
  .pied-bas { flex-direction: column; align-items: flex-start; }
  .pied-bas .iliade { flex: none; width: 100%; max-width: 410px; }
  .reseaux { margin-left: -12px; }
}
@media (prefers-reduced-motion: reduce) {
  .est-en-charge::after { animation-duration: 2.4s; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .btn--don:hover .picto--coeur { animation: none; }
}

/* ===== Compléments propres à WordPress ===== */

/* Lien d'évitement, visible au clavier */
.aller-au-contenu { position: absolute; left: var(--gouttiere); top: -100px; z-index: 100; padding: .7rem 1.1rem; background: var(--blanc); color: var(--bordeaux); font-size: var(--c-1); font-weight: 700; text-decoration: none; border-radius: var(--rayon); box-shadow: 0 6px 18px rgba(0, 0, 0, .2); }
.aller-au-contenu:focus { top: calc(var(--haut) + .6rem); }

/* Couverture typographique : le titre est dans un span (le texte de repli reste caché pendant le chargement) */
.couverture > span { display: block; }

/* Pages de contenu : intertitres séparés par un filet, comme les sections de la maquette */
.prose h2:not(:first-child) { margin-top: var(--e-4); padding-top: var(--e-4); border-top: 1px solid var(--filet); }
.prose > .prose-chapo + h2 { margin-top: 0; padding-top: 0; border-top: 0; }
.prose h2[id] { scroll-margin-top: calc(84px + var(--haut)); }
.prose h3 { font-size: var(--c-4); margin: var(--e-3) 0 var(--e-1); }
.prose ol { margin-top: var(--e-2); padding-left: 1.4em; list-style: decimal; }
.prose p + ol, .prose ol + p, .prose p + h3 { margin-top: var(--e-2); }
.prose blockquote { margin: var(--e-3) 0; padding-left: var(--e-3); border-left: 3px solid var(--bordeaux); }
.prose img, .prose figure { margin-block: var(--e-3); }
.prose figcaption, .wp-caption-text { font-size: var(--c-0); line-height: var(--il-liste); color: var(--texte-doux); margin-top: .4rem; }
.prose table { width: 100%; border-collapse: collapse; margin-top: var(--e-3); font-size: var(--c-1); }
.prose th, .prose td { text-align: left; padding: .6rem .8rem .6rem 0; border-bottom: 1px solid var(--filet); }
.alignleft { float: left; margin: .3rem var(--e-3) var(--e-2) 0; }
.alignright { float: right; margin: .3rem 0 var(--e-2) var(--e-3); }
.aligncenter { margin-inline: auto; }
.prose .btn { margin-top: var(--e-2); }

/* Formulaires « Proposer une citation » et « Signaler une erreur » */
.formulaire { display: grid; gap: var(--e-3); max-width: 46rem; margin-top: var(--e-4); }
.formulaire > p { margin: 0; }
.champ { display: grid; gap: .45rem; }
.champ label { font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; line-height: var(--il-liste); color: var(--bordeaux); }
.champ .facultatif { font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--texte-doux); }
.champ input, .champ textarea { width: 100%; font: inherit; font-size: var(--c-2); line-height: var(--il-liste); padding: .8rem 1rem; color: var(--noir); background: var(--champ); border: 1px solid var(--pale); border-radius: var(--rayon); }
.champ textarea { resize: vertical; min-height: 7.5rem; }
.champ input:focus, .champ textarea:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 1px var(--bordeaux); }
.champ .aide { font-size: var(--c-1); line-height: var(--il-liste); color: var(--texte-doux); }
.champ--erreur input, .champ--erreur textarea { border-color: #a12622; }
.champ-erreur { font-size: var(--c-1); font-weight: 600; line-height: var(--il-liste); color: #a12622; }
.formulaire-erreurs, .formulaire-merci { padding: var(--e-2) var(--e-3); background: var(--fond); border-left: 3px solid var(--bordeaux); }
.formulaire-erreurs { border-left-color: #a12622; }
.formulaire-merci { margin-top: var(--e-4); }
.formulaire-merci p + p { margin-top: .6rem; }
.formulaire-citation { font-size: var(--c-3); line-height: var(--il-liste); }
.formulaire-citation .etiquette { margin-bottom: .3rem; }
.formulaire-rgpd { font-size: var(--c-1); line-height: var(--il-liste); color: var(--texte-doux); }
button.btn { cursor: pointer; }

/* Sans service soumis à consentement, pas de lien « Gestion des cookies » */
.sans-consentement [data-cookies] { display: none !important; }

/* ---------- Consentement (tarteaucitron) ----------
   Même bandeau et même parcours sur les sites de la famille Iliade.
   - Bandeau : celui d'institut-iliade.com, carte bordeaux grainée en bas à gauche, avec ses mesures propres
     (titre Playfair 1,15 rem, texte 0,85 rem, boutons 0,72 rem). Le doré y est remplacé par le crème : ici, il reste
     réservé au logo et au don.
   - Panneau « La fiche » : fenêtre claire au centre, titre en Playfair, choix en boutons couplés, filets fins ;
     plein écran sur téléphone.
   La feuille de tarteaucitron est chargée après celle du thème : identifiants doublés et !important. */
html body #tarteaucitronRoot#tarteaucitronRoot, html body #tarteaucitronRoot#tarteaucitronRoot * { font-family: var(--courant) !important; }

/* Bandeau */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig { position: fixed !important; top: auto !important; right: auto !important; bottom: 20px !important; left: 20px !important; box-sizing: border-box !important; width: auto !important; max-width: 380px !important; margin: 0 !important; padding: 1.5rem 1.5rem 1.4rem !important; border-radius: var(--rayon) !important; background: var(--bordeaux-fonce) !important; color: var(--creme) !important; box-shadow: 0 18px 50px rgba(7, 6, 6, .35) !important; text-align: left !important; font-size: .85rem !important; line-height: 1.55 !important; animation: tac-entree .5s ease both; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: .09; background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"); }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig > * { position: relative; z-index: 1; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert { display: block !important; margin: 0 0 1.2rem !important; padding: 0 !important; font-size: .85rem !important; line-height: 1.55 !important; text-align: left !important; color: rgba(239, 227, 208, .85) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert strong { display: block; margin-bottom: .5rem; font-family: var(--titre) !important; font-size: 1.15rem; font-weight: var(--titre-graisse); line-height: var(--il-titre); color: var(--blanc); }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert a { color: var(--creme); text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronDisclaimerAlert a:hover { color: var(--blanc); text-decoration-style: solid; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig .tarteaucitronCheck, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig .tarteaucitronCross, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronPrivacyUrl { display: none !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronPersonalize2, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronAllDenied2 { display: inline-flex !important; align-items: center; justify-content: center; margin: 0 .7rem 0 0 !important; padding: .6rem 1.2rem !important; border: 0 !important; border-radius: var(--rayon) !important; font-size: .72rem !important; font-weight: 700 !important; letter-spacing: .08em !important; line-height: 1.2 !important; text-transform: uppercase !important; cursor: pointer; transition: background-color .2s, color .2s, transform .5s cubic-bezier(.3, 1.8, .45, .95); }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronAllDenied2 { margin-right: 0 !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronPersonalize2 { background: var(--creme) !important; color: var(--noir) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronPersonalize2:hover { background: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronAllDenied2 { background: rgba(255, 255, 255, .08) !important; color: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronAllDenied2:hover { background: rgba(255, 255, 255, .14) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronPersonalize2:active, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronAllDenied2:active { transform: scale(.955); transition: background-color .2s, color .2s, transform .06s ease-out; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronCloseAlert { display: block !important; width: max-content; margin: .9rem 0 0 !important; padding: .2rem 0 !important; background: none !important; border: 0 !important; font-size: 11px !important; font-weight: 400 !important; letter-spacing: 1px !important; line-height: 1.4 !important; text-transform: uppercase !important; color: rgba(239, 227, 208, .6) !important; cursor: pointer; transition: color .2s; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig #tarteaucitronCloseAlert:hover { color: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig button:focus-visible, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig a:focus-visible { outline: 2px solid var(--blanc) !important; outline-offset: 2px; }
@keyframes tac-entree { from { opacity: 0; transform: translateY(16px); } }
@media (max-width: 480px) {
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig { right: 12px !important; bottom: 12px !important; left: 12px !important; max-width: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronAlertBig#tarteaucitronAlertBig { animation: none; }
}

/* Panneau « La fiche » */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitronBack { background: #1c0502 !important; opacity: .55 !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron { top: 50% !important; right: auto !important; bottom: auto !important; left: 50% !important; transform: translate(-50%, -50%) !important; box-sizing: border-box !important; width: min(42rem, calc(100% - 32px)) !important; max-height: min(88vh, 50rem) !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: var(--rayon) !important; overflow: hidden !important; background: var(--blanc) !important; color: var(--texte) !important; box-shadow: 0 30px 80px rgba(20, 4, 2, .35) !important; font-size: var(--c-1) !important; line-height: var(--il-liste) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron *, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron *::before, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron *::after { box-sizing: border-box !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServices { height: auto !important; max-height: min(88vh, 50rem) !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; background: transparent !important; overflow-x: hidden !important; overflow-y: auto !important; overscroll-behavior: contain; }

/* Ce qui ne sert pas : coches et croix en caractères, « + » des catégories, sauts de ligne, liens en double */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronCheck, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronCross, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronPlus, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronInfo br, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronReadmoreSeparator,
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronReadmoreOfficial, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronListCookies, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronScrollbarChild, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .clear { display: none !important; }

/* Remise à plat des lignes (tarteaucitron les place en flottants) */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronMainLine { float: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; overflow: visible !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine:hover { background: transparent !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronName, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronAsk { float: none !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; text-align: left !important; }

/* En-tête : surtitre, titre, texte, lien vers la politique, puis « Tous les services » */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 1.5rem; padding: 2.4rem 2.4rem 0 !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronH1, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronInfo { grid-column: 1 / -1; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronH1 { display: block !important; margin: 0 0 .7rem !important; font-family: var(--titre) !important; font-weight: var(--titre-graisse) !important; font-size: var(--c-5) !important; line-height: var(--il-titre) !important; text-align: left !important; color: var(--noir) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronH1::before { content: "Confidentialité"; display: block; margin-bottom: .45rem; font-family: var(--courant) !important; font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bordeaux); }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronInfo { display: block !important; position: static !important; max-width: none !important; margin: 0 !important; padding: 0 0 1.5rem !important; border: 0 !important; border-bottom: 1px solid var(--filet) !important; background: transparent !important; text-align: left !important; font-size: var(--c-1) !important; font-weight: 400 !important; line-height: var(--il-liste) !important; color: var(--texte) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronInfo p { max-width: 60ch; margin: 0 !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronPrivacyUrlDialog { display: inline-block !important; margin: .8rem 0 0 !important; padding: 0 0 1px !important; background: none !important; border: 0 !important; border-bottom: 1px dotted currentColor !important; border-radius: 0 !important; color: var(--bordeaux) !important; font-size: var(--c-0) !important; font-weight: 700 !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; cursor: pointer; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName { display: block !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronName, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronAsk { margin-top: 1.1rem !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronH2 { display: block !important; max-width: none !important; margin: 0 !important; font-size: var(--c-0) !important; font-weight: 700 !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; color: var(--texte-doux) !important; }

/* Catégories et services */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder { height: auto !important; padding: 0 2.4rem !important; border: 0 !important; background: transparent !important; overflow: visible !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder ul { margin: 0 !important; padding: 0 !important; list-style: none !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder > ul > li:not(.tarteaucitronHidden), html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServicesTitle_analytic { padding-top: 1.5rem !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronTitle button { display: block !important; width: auto !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; text-align: left !important; font-size: var(--c-0) !important; font-weight: 700 !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; color: var(--bordeaux) !important; pointer-events: none; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronDetails { display: block !important; position: static !important; max-width: 60ch !important; margin: .35rem 0 0 !important; padding: 0 !important; background: none !important; font-size: var(--c-0) !important; font-weight: 400 !important; line-height: var(--il-liste) !important; color: var(--texte-doux) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder .tarteaucitronLine:not(#tarteaucitronNoServicesTitle) { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .4rem 1.5rem; margin-top: .8rem !important; padding: .9rem 0 0 !important; border-top: 1px solid var(--filet) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronH3 { display: block !important; margin: 0 !important; font-size: var(--c-2) !important; font-weight: 700 !important; line-height: var(--il-titre) !important; color: var(--noir) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronH3 { font-size: var(--c-1) !important; font-weight: 400 !important; line-height: var(--il-liste) !important; color: var(--texte) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronLine::after { content: "Toujours actifs"; font-size: var(--c-0); font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: var(--texte-doux); white-space: nowrap; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronStatusInfo, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tacCurrentStatus { display: inline !important; margin: 0 !important; font-size: var(--c-0) !important; color: var(--texte-doux) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronReadmoreInfo { display: inline-block !important; margin: .25rem 0 0 .9em !important; font-size: var(--c-0) !important; font-weight: 400 !important; color: var(--bordeaux) !important; text-decoration: none !important; border-bottom: 1px dotted currentColor; }

/* Boutons : capitales espacées, comme les boutons du site ; choix couplés sur chaque ligne */
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron button.tarteaucitronAllow, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron button.tarteaucitronDeny, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSaveButton { display: inline-flex !important; align-items: center; justify-content: center; margin: 0 !important; padding: .72em 1.15em !important; border: 1px solid var(--pale) !important; border-radius: var(--rayon) !important; background: transparent !important; color: var(--texte) !important; font-size: var(--c-0) !important; font-weight: 700 !important; letter-spacing: 1.5px !important; line-height: 1.2 !important; text-transform: uppercase !important; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronAsk { display: flex !important; gap: .5rem; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine .tarteaucitronAsk { gap: 0; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine .tarteaucitronAsk button + button { margin-left: -1px !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine .tarteaucitronAsk button:first-child { border-radius: var(--rayon) 0 0 var(--rayon) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronLine .tarteaucitronAsk button:last-child { border-radius: 0 var(--rayon) var(--rayon) 0 !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronIsAllowed .tarteaucitronAllow, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronAllAllowed.tarteaucitronIsSelected { position: relative; background: var(--bordeaux) !important; border-color: var(--bordeaux) !important; color: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronIsDenied .tarteaucitronDeny, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronAllDenied.tarteaucitronIsSelected { position: relative; background: var(--noir) !important; border-color: var(--noir) !important; color: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSave { position: sticky !important; bottom: 0; z-index: 2; margin: 1.6rem 0 0 !important; padding: 1rem 2.4rem 1.4rem !important; border-top: 1px solid var(--filet) !important; background: var(--blanc) !important; box-shadow: 0 -12px 18px -12px rgba(0, 0, 0, .12); text-align: right !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSaveButton { padding: .85em 1.6em !important; background: var(--bordeaux) !important; border-color: var(--bordeaux) !important; color: var(--blanc) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSaveButton:hover { background: var(--bordeaux-fonce) !important; border-color: var(--bordeaux-fonce) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronClosePanel { position: absolute !important; top: 1.1rem !important; right: 1.4rem !important; z-index: 3; margin: 0 !important; padding: .4rem .2rem !important; background: none !important; border: 0 !important; border-radius: 0 !important; color: var(--texte-doux) !important; font-size: var(--c-0) !important; font-weight: 700 !important; letter-spacing: 1.5px !important; text-transform: uppercase !important; white-space: nowrap; cursor: pointer; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronClosePanel::after { content: "\00a0✕"; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronClosePanel:hover { color: var(--bordeaux) !important; }
html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron button:focus-visible, html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron a:focus-visible { outline: 2px solid var(--bordeaux) !important; outline-offset: 2px; }

/* Téléphone : plein écran ; le choix passe sous le nom du service, les boutons prennent toute la largeur */
@media (max-width: 640px) {
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron { top: 0 !important; left: 0 !important; transform: none !important; width: 100% !important; height: 100% !important; max-height: 100% !important; border-radius: 0 !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServices { height: 100% !important; max-height: 100% !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset { grid-template-columns: minmax(0, 1fr); padding: 3.2rem 1.25rem 0 !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronMainLineOffset .tarteaucitronAsk { margin-top: .7rem !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder { padding: 0 1.25rem !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronBorder .tarteaucitronLine:not(#tarteaucitronNoServicesTitle) { grid-template-columns: minmax(0, 1fr); }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronServices_mandatory .tarteaucitronLine::after { justify-self: start; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron .tarteaucitronAsk button { flex: 1; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSave { padding: .9rem 1.25rem 1.1rem !important; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronSaveButton { width: 100%; }
  html body #tarteaucitronRoot#tarteaucitronRoot #tarteaucitron#tarteaucitron #tarteaucitronClosePanel { top: .9rem !important; right: 1.25rem !important; }
}

@media print {
  .barre-haute, header.principal, .recherche, .don, footer.pied, .actions, .voisines, .barre-lettres, .index-outils, #tarteaucitronRoot { display: none !important; }
  .tete-page { background: none !important; color: var(--noir); padding-block: 0 1rem; }
  .tete-page h1, .tete-source, .tete-surtitre, .tete-source a, .fil a { color: var(--noir) !important; }
  .feuille { margin-top: 0; border: 0; padding: 0; }
  .planche { display: block; }
  .section--single .manchette { display: none; }
}

/* Couvertures réelles : formats variés, jamais rognées. L'image tient entière dans le cadre 2:3 (de hauteur fixe :
   min-height: 0 empêche un long titre de repli de l'allonger), alignée en haut pour que les couvertures d'une rangée
   partent de la même ligne ; l'ombre suit le contour de la couverture. */
.couverture .couv { object-fit: contain; object-position: 50% 0; }
.couverture { transition: background-color .35s ease, box-shadow .35s ease; }
.couverture.a-image { background-color: transparent; box-shadow: none; overflow: visible; }
.couverture.a-image .couv { filter: drop-shadow(0 1px 1px rgba(7, 6, 6, .14)) drop-shadow(0 6px 12px rgba(7, 6, 6, .12)); }
.tete-visuel .couverture.a-image { box-shadow: none; }
.tete-visuel .couverture.a-image .couv { filter: drop-shadow(0 16px 22px rgba(0, 0, 0, .45)); }
.grille-livres a:hover .couverture.a-image, .couverture-lien:hover .couverture.a-image { box-shadow: none; }
.grille-livres a:hover .couverture.a-image .couv, .couverture-lien:hover .couverture.a-image .couv { filter: drop-shadow(0 1px 1px rgba(7, 6, 6, .14)) drop-shadow(0 12px 16px rgba(7, 6, 6, .24)); }

/* Page d'un livre : présentation en vrais paragraphes, rubriques sous étiquette, liens d'achat regroupés */
.livre-presentation { max-width: 68ch; }
.presentation + .presentation { margin-top: var(--e-4); }
.presentation .etiquette { margin-bottom: var(--e-2); }
.presentation p { font-size: var(--c-2); line-height: 1.75; color: var(--encre); }
.presentation p + p { margin-top: 1.1em; }
.livre-achat { max-width: 68ch; margin-top: var(--e-4); padding-top: var(--e-3); border-top: 1px solid var(--filet); }
.livre-achat .etiquette { margin-bottom: var(--e-1); }
.livre-achat li + li { margin-top: .4rem; }
.livre-achat .action { white-space: normal; font-size: var(--c-1); }
.fiche-corps > .livre-presentation + .bloc, .fiche-corps > .livre-achat + .bloc { margin-top: var(--e-section); }
