/* ==========================================================================
   Sabrina Boost — editorial.css
   --------------------------------------------------------------------------
   Pages générées par scripts/build_site.py : index des analyses (/articles/)
   et gabarit d’article long. Ne consomme que les variables de tokens.css.
   ========================================================================== */

/* 1. Index des analyses --------------------------------------------------- */
.index { padding-block: var(--section-dense) var(--section-ouverte); }
.index__en-tete { grid-column: 1 / -1; min-width: 0; margin-bottom: var(--e-8); }
.index__titre { font-family: var(--font-titrage); font-weight: var(--g-titrage); font-size: clamp(3rem, 5vw, 4.5rem); line-height: 1; letter-spacing: var(--ls-titre); }
.index__liste-groupes { grid-column: 1 / -1; min-width: 0; width: 100%; }
.index__groupe { min-width: 0; }
.index__liste { list-style: none; min-width: 0; width: 100%; }
.notice { min-width: 0; border-top: var(--filet-fin) solid var(--filet); padding-block: var(--e-6); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--e-3); }
.index__liste .notice:last-child { border-bottom: var(--filet-fin) solid var(--filet); }
.notice__corps { min-width: 0; display: flex; flex-direction: column; gap: var(--e-3); }
.notice__titre { font-family: var(--font-titrage); font-weight: var(--g-titrage); font-size: clamp(1.65rem, 2vw, 1.9rem); line-height: 1.17; letter-spacing: var(--ls-titre); hyphens: none; -webkit-hyphens: none; }
.notice__titre a { color: var(--encre); text-decoration: none; }
.notice__titre a:hover { color: var(--accent); }
.notice__chapo { max-width: var(--mesure); color: var(--texte-secondaire); font-size: var(--t-corps-petit); line-height: 1.55; }
/* Sommaire mobile : titres compacts sans modifier la typographie desktop. */
@media (max-width: 63.99rem) {
  .notice__titre { font-size: clamp(1.4rem, 5.2vw, 1.55rem); line-height: 1.18; }
  .notice__corps { display: flex; flex-direction: column; gap: var(--e-4); }
  .notice__chapo { font-size: 0.9375rem; line-height: 1.55; }
}
@media (min-width: 64rem) {
  .notice { grid-template-columns: minmax(0, 1fr); }
  .notice__corps { grid-column: 1; display: flex; flex-direction: column; gap: var(--e-3); }
}

/* 2. Article : en-tête ----------------------------------------------------- */
.article { padding-block: var(--section-dense) var(--section-ouverte); }
.article__en-tete { display: flex; flex-direction: column; gap: var(--e-4); max-width: var(--conteneur-article); margin-inline: auto; }
.article__filet { width: var(--filet-rubrique-l); border-top: var(--filet-epais) solid var(--accent); }
.article__titre { font-family: var(--font-titrage); font-weight: var(--g-titrage); font-size: var(--t-une); line-height: var(--lh-titre); letter-spacing: var(--ls-titre); margin-top: var(--e-2); }
.article__chapo { font-size: var(--t-chapo); line-height: var(--lh-chapo); max-width: var(--mesure-chapo); margin-top: var(--e-2); }
.article__meta { display: flex; flex-wrap: wrap; gap: var(--e-2) var(--e-4); font-size: var(--t-meta); color: var(--texte-secondaire); border-top: var(--filet-fin) solid var(--filet); padding-top: var(--e-4); margin-top: var(--e-4); }
.article__meta span + span::before { content: "—"; margin-right: var(--e-4); color: var(--filet-fort); }
.article__cover { max-width: var(--conteneur-article); margin: var(--e-7) auto 0; }
.article__cover img { width: 100%; }
.article__cover figcaption { margin-top: var(--e-3); font-size: var(--t-meta); color: var(--texte-secondaire); }

/* 3. Article : prose ------------------------------------------------------- */
.prose { max-width: var(--mesure-article); margin: var(--e-7) auto 0; font-size: var(--t-corps); line-height: var(--lh-article); }
.prose > * + * { margin-top: var(--e-5); }
.prose p { text-wrap: pretty; }
.prose h2 { font-family: var(--font-titrage); font-weight: var(--g-titrage); font-size: var(--t-h2-article); line-height: 1.2; letter-spacing: var(--ls-titre); margin-top: var(--e-8); }
.prose h2::before { content: ""; display: block; width: var(--filet-rubrique-l); border-top: var(--filet-epais) solid var(--accent); margin-bottom: var(--e-4); }
.prose h3 { font-family: var(--font-texte); font-weight: var(--g-texte-fort); font-size: var(--t-h3-article); line-height: 1.3; margin-top: var(--e-7); }
.prose h2 + p, .prose h3 + p { margin-top: var(--e-4); }
.prose a { color: var(--accent); text-decoration-thickness: var(--filet-fin); text-underline-offset: 0.3em; }
.prose a:hover { color: var(--accent-hover); text-decoration-thickness: 2px; }
.prose strong { font-weight: var(--g-texte-fort); }
.prose em { font-style: italic; }
.prose ul, .prose ol { padding-left: 1.25rem; display: flex; flex-direction: column; gap: var(--e-2); }
.prose li::marker { color: var(--accent); }
.prose code { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 0.9em; background: var(--fond-alt); padding: 0.1em 0.35em; }
.prose hr { border: 0; width: var(--filet-section-l); border-top: var(--filet-fin) solid var(--filet-fort); margin: var(--e-8) auto; }
.prose blockquote { margin: var(--e-8) 0; padding: var(--e-5) 0 0; border-top: var(--filet-epais) solid var(--accent); }
.prose blockquote p { font-family: var(--font-texte); font-style: normal; font-weight: 500; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.5; color: var(--accent); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
.prose blockquote + * { margin-top: var(--e-7); }
.prose img { width: 100%; margin-block: var(--e-6); }

/* 4. Article : fin ---------------------------------------------------------- */
.article__fin { max-width: var(--mesure-article); margin: var(--e-10) auto 0; border-top: var(--filet-fin) solid var(--filet); padding-top: var(--e-6); display: flex; flex-direction: column; gap: var(--e-5); }
.article__signature { display: flex; flex-direction: column; gap: var(--e-1); }
.article__signature strong { font-weight: var(--g-texte-fort); }
.article__signature span { font-size: var(--t-corps-petit); color: var(--texte-secondaire); }
.article__suite { display: flex; gap: var(--e-5); flex-wrap: wrap; }
