:root {
  --bg: #FFFFFF;
  --bg-warm: #F5EFE2;
  --dark: #15120D;
  --ink: #17140F;
  --ink-muted: #6B6153;
  --on-dark: #F4EEE2;
  --on-dark-muted: rgba(244,238,226,0.62);
  --accent: #AC5D29;
  --accent-dark: #954E22;
  --accent-ink: #FFFFFF;
  --teal: #4F8A86;
  --plum: #8C6AA0;
  --gold: #956F19;
  --indigo: #3B5B8C;
  --border: rgba(23,20,15,0.14);
  --border-dark: rgba(244,238,226,0.18);
  --serif: 'Fraunces', Georgia, serif;
  --serif-display: 'Fraunces', Georgia, serif;
  --serif-text: 'Source Serif 4', Georgia, serif;
  --sans: 'Inter', system-ui, sans-serif;
  --mono: 'IBM Plex Mono', 'Courier New', monospace;
  --max: 1400px;
  --px: clamp(1.5rem, 5vw, 4rem);
}
*, *::before, *::after { box-sizing: border-box; margin:0; padding:0; }
html { scroll-behavior: smooth; font-size: 18px; }
body { background: var(--bg); color: var(--ink); font-family: var(--serif-text); font-weight: 400; line-height: 1.75; -webkit-font-smoothing: antialiased; }
img { max-width:100%; display:block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.wrap { width:100%; max-width: var(--max); margin-inline:auto; padding-inline: var(--px); }

/* Placeholder d'image / média — slot vide volontaire */
.ph-box { width:100%; height:100%; display:flex; align-items:center; justify-content:center; background: var(--bg-warm); border:1px dashed var(--border); }
.ph-box span { font-family: var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-muted); }
.ph-media { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; border:1px dashed var(--border-dark); }
.ph-media span { font-family: var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color: var(--on-dark-muted); }

/* TOPBAR aeon-style : menu + recherche + réseaux sur une seule ligne, logo centré */
.topbar { border-bottom: 1px solid var(--border); padding-block: 1.7rem 1.6rem; position:relative; z-index:20; background:var(--bg); }
.topbar.on-hero { position:absolute; inset-inline:0; top:0; background:transparent; border-bottom:none; z-index:30; }
.topbar.on-hero .topbar-logo,
.topbar.on-hero .menu-trigger,
.topbar.on-hero .search-trigger,
.topbar.on-hero .search-trigger svg,
.topbar.on-hero .topbar-sep,
.topbar.on-hero .topbar-social svg,
.topbar.on-hero .topbar-right,
.topbar.on-hero .topbar-right a { color: var(--on-dark); }
.topbar.on-hero .topbar-right .pill { background: var(--accent); color:#fff; }
.topbar .wrap { max-width: none; }
/* Disposition aeon : gauche = MENU / recherche + réseaux en dessous ; logo centré ; droite = liens en capitales */
.topbar-inner { display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap:1.5rem; }
.topbar-left { display:flex; flex-direction:column; align-items:flex-start; gap:1.15rem; align-self:center; }
.topbar-actions { display:flex; align-items:center; gap:.7rem; }
.menu-trigger, .search-trigger { display:flex; align-items:center; gap:.5rem; background:none; border:none; cursor:pointer; color:var(--ink); padding:0; }
.menu-trigger { font-family: var(--mono); font-size:.95rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; line-height:1; }
.menu-trigger svg { display:none; width:24px; height:24px; }
.topbar-sep { font-family: var(--mono); font-size:.95rem; color:var(--ink); line-height:1; }
.search-trigger svg { width:24px; height:24px; color:var(--ink); }
.menu-trigger:hover, .search-trigger:hover svg { color:var(--accent); }
.topbar-social { display:flex; gap:1rem; align-items:center; }
.topbar-social svg { width:19px; height:19px; color: var(--ink); }
.topbar-social a:hover svg { color: var(--accent); }
.topbar-logo { display:flex; justify-content:center; align-items:center; line-height:0; }
.topbar-logo img { height: clamp(36px, 4vw, 66px); width:auto; display:block; }
.topbar-logo .logo-light { display:none; }
.topbar.on-hero .topbar-logo .logo-dark { display:none; }
.topbar.on-hero .topbar-logo .logo-light { display:block; }
.topbar-right { display:flex; flex-direction:column; align-items:flex-end; gap:.55rem; align-self:start; padding-top:.15rem; font-family: var(--mono); font-size:.95rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color: var(--ink); line-height:1; }
.topbar-right-row { display:flex; gap:1.6rem; }
.topbar-right-sub { gap:.7rem; }
.topbar-right a:hover { color: var(--accent); }
.topbar-right .pill { background: var(--accent); color:#fff; padding:.4rem .85rem; }

.subnav { border-bottom:1px solid var(--border); background: var(--bg-warm); }
.subnav-inner { display:flex; gap:2rem; padding-block:.75rem; font-family: var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-muted); overflow-x:auto; }
.subnav-inner a:hover, .subnav-inner a.active { color: var(--accent); }

/* MENU — panneau clair qui se déroule sous la topbar (aeon-style, pas d'overlay sombre plein écran) */
.menu-overlay { position:absolute; top:100%; left:0; right:0; background: var(--bg); z-index:50; max-height:0; overflow:hidden; transition:max-height .3s ease; border-bottom:1px solid var(--border); box-shadow: 0 16px 32px rgba(23,20,15,.08); }
.menu-overlay.open { max-height:85vh; overflow-y:auto; }
.menu-top { display:flex; justify-content:space-between; align-items:center; padding-block:1.1rem; border-bottom:1px solid var(--border); }
.menu-close { display:flex; align-items:center; gap:.6rem; background:none; border:none; color:var(--ink); font-family: var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; cursor:pointer; }
.menu-close svg { width:15px; height:15px; }
.menu-close:hover { color:var(--accent); }
.menu-top-social { display:flex; gap:1rem; }
.menu-top-social svg { width:16px; height:16px; color:var(--ink-muted); }
.menu-top-social a:hover svg { color:var(--accent); }
.menu-body { display:block; padding-block:3rem 4rem; }
.menu-topics { display:flex; flex-direction:column; gap:.2rem; }
.menu-topic { font-family: var(--serif-display); font-weight:700; font-size: clamp(2.2rem, 5.8vw, 4.2rem); line-height:1.05; letter-spacing:-0.01em; transition:opacity .2s; }
.menu-topic:hover { opacity:.72; }
.menu-topic.t1 { color: #B5471B; }  /* Intracogito : orange brûlé */
.menu-topic.t2 { color: #1F2F5C; }  /* Cogito : bleu nuit */
.menu-topic.t3 { color: #5E6B2E; }  /* Philosophes : olive */
.menu-topic.t4 { color: #7A4E36; }  /* Concepts : brun cuir */
.menu-topic.t5 { color: #4A5361; }  /* Comparatifs : ardoise */
.menu-topic.t6 { color: #3D5A4C; }  /* Mouvements : vert sauge foncé */
.menu-extra { display:flex; flex-wrap:wrap; gap:1.4rem; margin-top:2.2rem; padding-top:1.6rem; border-top:1px solid var(--border); font-family: var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color: var(--ink-muted); }
.menu-extra a:hover { color: var(--accent); }

.search-overlay { position:absolute; top:100%; left:0; right:0; background: var(--bg); z-index:50; max-height:0; overflow:hidden; transition:max-height .3s ease; border-bottom:1px solid var(--border); box-shadow: 0 16px 32px rgba(23,20,15,.08); }
.search-overlay.open { max-height:85vh; overflow-y:auto; }
.search-top { display:flex; justify-content:flex-end; padding-block:1.1rem; border-bottom:1px solid var(--border); }
.search-box { display:flex; align-items:center; gap:.9rem; padding-block:1.8rem; border-bottom:1px solid var(--border); }
.search-box svg { width:22px; height:22px; color:var(--ink-muted); flex-shrink:0; }
.search-box input { flex:1; border:none; outline:none; background:none; font-family: var(--serif-display); font-size: clamp(1rem, 1.6vw, 1.2rem); color:var(--ink); }
.search-box input::placeholder { color:var(--ink-muted); opacity:.55; }
.search-results { padding-block:1.6rem 3rem; display:flex; flex-direction:column; gap:1.5rem; }
.search-result { display:flex; gap:1.2rem; align-items:flex-start; }
.search-result:hover h3 { color:var(--accent); }
.search-result img { width:88px; height:62px; object-fit:cover; border-radius:4px; flex-shrink:0; background: var(--bg-warm); }
.search-result-badge { display:block; font-family: var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); margin-bottom:.25rem; }
.search-result h3 { font-family: var(--serif-display); font-weight:600; font-size:1.05rem; color:var(--ink); margin-bottom:.3rem; }
.search-result p { font-family: var(--serif-text); font-size:.9rem; color:var(--ink-muted); line-height:1.5; }
.search-result mark { background:none; color: var(--ink); font-weight:700; }
.search-empty { font-family: var(--serif-text); color:var(--ink-muted); padding-block:1rem; }

/* Carte newsletter homepage, coin bas-droit, ne bloque jamais le site (façon aeon.co) */
.newsletter-popup { position:fixed; right:1.4rem; bottom:1.4rem; width:340px; max-width: calc(100vw - 2.4rem); background: var(--bg-warm); box-shadow: 0 18px 44px rgba(23,20,15,.22); padding: 1.3rem 1.3rem 1.2rem; z-index:90; opacity:0; transform: translateY(16px); pointer-events:none; transition: opacity .35s ease, transform .35s ease; }
.newsletter-popup.open { opacity:1; transform:translateY(0); pointer-events:auto; }
.newsletter-popup-close { position:absolute; top:.7rem; right:.7rem; background:none; border:none; cursor:pointer; color: var(--ink-muted); padding:.25rem; line-height:0; }
.newsletter-popup-close svg { width:15px; height:15px; }
.newsletter-popup-close:hover { color: var(--ink); }
.newsletter-popup-head { display:flex; gap:.9rem; align-items:flex-start; margin-bottom:1rem; padding-right:1.3rem; }
.newsletter-popup-photo { width:46px; height:46px; border-radius:50%; object-fit:cover; flex-shrink:0; border:1px solid var(--border); }
.newsletter-popup-head h2 { font-family: var(--serif-display); font-weight:700; font-size:1.05rem; margin-bottom:.3rem; color: var(--ink); }
.newsletter-popup-head p { font-family: var(--serif-text); font-size:.8rem; color: var(--ink-muted); line-height:1.4; }
.newsletter-popup-cta { width:100%; justify-content:center; font-size:.68rem; }
@media (max-width: 480px) {
  .newsletter-popup { right:.8rem; bottom:.8rem; left:.8rem; width:auto; max-width:none; }
}
.menu-links { display:flex; flex-direction:column; gap:1.6rem; justify-content:center; }
.menu-group h4 { font-family: var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:.8rem; }
.menu-group ul { list-style:none; display:flex; flex-direction:column; gap:.55rem; }
.menu-group a { font-size:.95rem; color:var(--ink); }
.menu-group a:hover { color:var(--accent); }
.menu-group.archive h4 { color: var(--accent); }
.menu-group.archive a { font-size:.85rem; color: var(--ink-muted); }
.menu-group.archive a:hover { color: var(--ink); }

/* HERO full-bleed (aeon-style) — détourné vers la newsletter */
.hero-full { position:relative; min-height:78vh; display:flex; align-items:flex-end; background: var(--dark); overflow:hidden; }
.hero-full::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(21,18,13,.05) 0%, rgba(21,18,13,.9) 88%); pointer-events:none; }
.hero-full-content { position:relative; z-index:1; padding: 3rem var(--px) 3.5rem; max-width: 1100px; margin-inline: 0; display:flex; flex-direction:column; align-items:flex-start; gap:1.1rem; }
.hero-eyebrow { font-family: var(--mono); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color: var(--dark); background: var(--on-dark); border:1px solid rgba(21,18,13,0.1); padding:.35rem .8rem; width:fit-content; }
.hero-full h1 { font-family: var(--serif-display); font-weight:700; color: var(--on-dark); font-size: clamp(2.6rem, 6vw, 4.6rem); line-height:1.02; letter-spacing:-0.01em; }
.hero-full .chapo { font-size:1.05rem; color: var(--on-dark-muted); max-width:56ch; line-height:1.7; }
.hero-cta { display:inline-flex; align-items:center; gap:.5rem; background: var(--accent); color:#fff; padding:.85rem 1.6rem; font-size:.72rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; width:fit-content; transition: background .2s; }
.hero-cta:hover { background: var(--accent-dark); }

.sec { padding-block: 5.5rem; }
.sec-head { display:flex; justify-content:space-between; align-items:baseline; gap:2rem; margin-bottom:2.5rem; flex-wrap:wrap; }
.sec-title { font-family: var(--serif-display); font-weight:700; font-size: clamp(1.8rem,3.4vw,2.6rem); color: var(--ink); }
.sec-more { font-family: var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-muted); border-bottom:1px solid var(--border); padding-bottom:.15rem; }
.sec-more:hover { color: var(--accent); border-color: var(--accent); }
.rubrique-empty .wrap { text-align:center; padding-block:3rem 5rem; display:flex; flex-direction:column; align-items:center; gap:1.2rem; }
.rubrique-empty-label { font-family: var(--mono); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; color: var(--ink-muted); }
.rubrique-empty p:not(.rubrique-empty-label) { max-width:48ch; color: var(--ink-muted); }
.sec-all { display:flex; justify-content:center; margin-top:3.5rem; }

/* CARTES — badge rond + ligne meta minuscule icône + auteur en texte simple */
.card-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; }
.card { display:flex; flex-direction:column; gap:.8rem; }
.card-img { position:relative; aspect-ratio: 16/10; overflow:hidden; }
.card-img img { width:100%; height:100%; object-fit:cover; transition: transform .35s ease; }
.card-img::after { content:""; position:absolute; inset:0; background: var(--accent); opacity:0; transition: opacity .25s ease; pointer-events:none; }
.card:hover .card-img::after { opacity:.32; }
.card:hover .card-img img { transform: scale(1.03); }
.card-badge { position:absolute; top:.7rem; right:.7rem; width:34px; height:34px; border-radius:50%; background: var(--dark); display:flex; align-items:center; justify-content:center; z-index:1; }
.card-badge svg { width:14px; height:14px; color: var(--on-dark); }
.card-meta-line { display:flex; align-items:center; gap:.4rem; font-family: var(--mono); font-size:.7rem; letter-spacing:.02em; color: var(--ink-muted); text-transform:uppercase; }
.card-meta-line svg { width:13px; height:13px; color: var(--accent); flex-shrink:0; }
.card-title { font-family: var(--serif); font-size:1.15rem; font-weight:600; line-height:1.3; color: var(--ink); }
.card-chapo { font-size:.85rem; color: var(--ink-muted); line-height:1.6; }
.card-author { font-size:.78rem; color: var(--ink-muted); }

.rubriques { display:grid; grid-template-columns: 1fr 1fr 1fr; gap:1.5rem; }
.rubrique-tile { position:relative; aspect-ratio: 16/7; overflow:hidden; display:flex; align-items:flex-end; padding:1.6rem; }
.rubrique-tile .tile-label { position:relative; z-index:1; font-family: var(--serif-display); font-weight:700; color:#fff; font-size: clamp(1.6rem, 2.6vw, 2.4rem); line-height:1; letter-spacing:-0.01em; }
.rubrique-tile { transition: filter .2s; }
.rubrique-tile:hover { filter: brightness(1.12); }
.tile-intracogito { background:#B5471B; }
.tile-cogito { background:#1F2F5C; }
.tile-philosophes { background:#5E6B2E; }
.tile-concepts { background:#7A4E36; }
.tile-comparatifs { background:#4A5361; }

/* PAGE DE RUBRIQUE (aeon-style : titre coloré + sous-titre + nuage de sous-thèmes + onglets) */
.rubrique-head { padding-block: 3.5rem 2rem; text-align:center; border-bottom:1px solid var(--border); }
.rubrique-head h1 { font-family: var(--serif-display); font-weight:700; font-size: clamp(2.4rem,5vw,3.6rem); margin-bottom:.9rem; }
.rubrique-head p { font-size:1.05rem; max-width:62ch; margin-inline:auto; }
.rubrique-head.philosophes h1, .rubrique-head.philosophes p { color: #5E6B2E; }
.rubrique-head.concepts h1, .rubrique-head.concepts p { color: #7A4E36; }
.rubrique-head.comparatifs h1, .rubrique-head.comparatifs p { color: #4A5361; }
.rubrique-head.cogito h1, .rubrique-head.cogito p { color: #1F2F5C; }
.rubrique-head.intracogito h1, .rubrique-head.intracogito p { color: #B5471B; }
.subtopic-cloud { display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem 1.6rem; padding-block:2rem; max-width: 900px; margin-inline:auto; }
.subtopic-cloud a { font-size:.9rem; color: var(--ink-muted); }
.subtopic-cloud a:hover { color: var(--ink); text-decoration:underline; }
.rubrique-tabs { display:flex; gap:1.6rem; justify-content:center; padding-bottom:2.5rem; font-family: var(--mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; }
.rubrique-tabs a { color: var(--ink-muted); padding-bottom:.4rem; }
.rubrique-tabs a.active { color: var(--ink); border-bottom:2px solid var(--ink); }

footer { background: var(--dark); color: var(--on-dark-muted); padding-block: 1.1rem; }
.footer-band { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; font-family: var(--mono); font-size:.68rem; letter-spacing:.08em; }
.footer-mid { display:flex; align-items:center; gap:1.8rem; }
.footer-social { display:flex; align-items:center; gap:1rem; }
.footer-social svg { width:17px; height:17px; color: var(--on-dark-muted); display:block; }
.footer-band a { color: var(--on-dark-muted); }
.footer-band a:hover, .footer-social a:hover svg { color: var(--on-dark); }

/* LISTING (essais.html) */
.listing-head { padding-block: 3.5rem 2.5rem; border-bottom:1px solid var(--border); }
.listing-head h1 { font-family: var(--serif-display); font-weight:700; font-size: clamp(2.2rem,4.5vw,3.2rem); color: var(--ink); margin-bottom: .8rem; }
.listing-head p { color: var(--ink-muted); max-width: 56ch; }
.listing-note { display:inline-block; margin-top:1.2rem; font-family: var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color: var(--accent); border:1px solid var(--border); padding:.4rem .8rem; }

/* ARTICLE */
.article-hero { position:relative; min-height:56vh; background: var(--dark); display:flex; align-items:flex-end; overflow:hidden; }
.bg-cover-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.article-hero::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(21,18,13,.15) 0%, rgba(21,18,13,.8) 100%); pointer-events:none; }
.article-hero-content { position:relative; z-index:1; padding: 12.5rem var(--px) 2rem; max-width:900px; margin-inline:auto; text-align:center; }
.article-hero-content h1 { font-family: var(--serif-display); font-weight:700; color:#fff; font-size: clamp(2.2rem,5.5vw,4rem); line-height:1.05; margin-bottom:1.2rem; }
.article-hero-content .chapo { display:inline-block; font-size:1.05rem; color: var(--on-dark-muted); max-width:56ch; margin-top:.8rem; }
.article-hero-content .article-ref { display:inline-block; margin-bottom:1.1rem; }
.article-credit { position:relative; z-index:1; text-align:right; padding: .6rem var(--px) 1rem; font-family: var(--mono); font-size:.62rem; color: var(--on-dark-muted); }

.article-meta-wrap { padding-block: 2.5rem; border-bottom:1px solid var(--border); }
.article-end-meta { padding-block: 2.5rem; border-top:1px solid var(--border); max-width:1000px; margin-inline:auto; }
.article-tags { display:flex; gap:.6rem; margin-bottom:1.6rem; flex-wrap:wrap; justify-content:center; }
.article-tag { font-family: var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color: var(--ink-muted); border:1px solid var(--border); padding:.25rem .6rem; }
.article-tag:hover { color: var(--accent); border-color: var(--accent); }
.article-author-row { display:flex; gap:1rem; align-items:center; justify-content:center; max-width:620px; margin-inline:auto; }
.article-author-avatar { width:44px; height:44px; flex-shrink:0; border-radius:50%; overflow:hidden; }
.article-author-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.article-author-name { font-weight:600; color: var(--ink); margin-bottom:.2rem; }
.article-author-bio { font-size:.85rem; color: var(--ink-muted); line-height:1.6; }
.article-sub-meta { display:flex; gap:1rem; justify-content:center; font-family: var(--mono); font-size:.65rem; letter-spacing:.06em; text-transform:uppercase; color: var(--ink-muted); flex-wrap:wrap; }

.article-body {
  padding-block: 3rem;
  max-width: 1000px;
  margin-inline:auto;
  font-family: var(--serif-text);
  font-size:1.15rem;
  line-height:1.85;
  color: var(--ink);
}
.article-body p { margin-bottom:1.6rem; }
.article-body .placeholder { background: var(--bg-warm); border-left:2px solid var(--accent); padding: 1.1rem 1.4rem; font-size:.85rem; color: var(--ink-muted); font-family: var(--sans); font-style:normal; margin-bottom:1.6rem; }
.article-body h2 { font-family: var(--serif-display); font-weight:700; font-size:1.5rem; line-height:1.25; margin: 2.3rem 0 1.1rem; color: var(--ink); }
.article-body h3 { font-family: var(--serif-display); font-weight:700; font-size:1.15rem; margin: 2.1rem 0 1rem; color: var(--ink); }
.article-body blockquote { border-left:3px solid var(--accent); padding-left:1.3rem; margin: 0 0 1.6rem; font-style:normal; color: var(--ink-muted); }
.article-body blockquote p { margin-bottom:.5rem; }
.article-body hr { border:none; border-top:1px solid var(--border); margin: 2.4rem 0; }
/* figures : même largeur que la colonne de texte, jamais plus large */
.article-body figure { margin: 2.2rem 0; }
.article-body figure img { width:100%; height:auto; display:block; }
.article-body figcaption { font-family: var(--serif-text); font-size:.85rem; color: var(--ink-muted); margin-top:.7rem; text-align:center; }
.article-body em { font-style:normal; }
.article-body a:not(.hero-cta) { color: var(--accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.article-body a:not(.hero-cta):hover { color: var(--accent-dark); }

.newsletter-insert { max-width: 1000px; margin: 0 auto 2.4rem; background: var(--bg-warm); border: 1px solid var(--border); padding: 1rem 1.4rem; display:flex; align-items:center; gap:1.2rem; }
.newsletter-insert-photo { width:56px; height:56px; border-radius:50%; object-fit:cover; flex-shrink:0; border:1px solid var(--border); display:block; }
.newsletter-insert-text { flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center; }
.newsletter-insert h3 { font-family: var(--serif-display); font-weight:700; font-size:1.05rem; line-height:1.2; margin:0 0 .2rem; }
.newsletter-insert p { font-size:.8rem; color: var(--ink-muted); line-height:1.4; margin:0; }
.newsletter-insert-cta { flex-shrink:0; font-size:.68rem; }

.article-paywall { max-width:1000px; margin:0 auto 2.4rem; background: var(--dark); color: var(--on-dark); padding: 2.2rem 2.2rem; text-align:center; }
.article-paywall h3 { font-family: var(--serif-display); font-weight:700; font-size:1.3rem; margin-bottom:.7rem; color: var(--on-dark); }
.article-paywall p { font-size:.88rem; color: var(--on-dark-muted); margin-bottom:1.3rem; }
.article-paywall .hero-cta { background: var(--gold); margin-inline:auto; }
.article-paywall .hero-cta:hover { background: var(--accent-dark); }

/* ═════════════ PAGE 404 ═════════════ */
.page-404 { position:relative; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background: var(--dark); color: var(--on-dark); padding: 6rem var(--px) 3.5rem; gap:1.3rem; }
.page-404-logo { position:absolute; top:1.8rem; left:var(--px); font-family: var(--serif-display); font-weight:700; font-size:1.3rem; color: var(--on-dark); }
.page-404-icon { width:160px; height:160px; margin-bottom:.4rem; border-radius:50%; object-fit:cover; border:1px solid var(--border-dark); filter: sepia(.15); }
.page-404-code { font-family: var(--serif-display); font-weight:700; font-size: clamp(3.2rem,9vw,5.5rem); line-height:1; letter-spacing:-0.01em; color: var(--on-dark); }
.page-404 h1 { font-family: var(--serif-display); font-weight:700; font-size: clamp(1.4rem,3vw,1.9rem); max-width:34ch; margin:0; color: var(--on-dark); }
.page-404 p { color: var(--on-dark-muted); max-width:44ch; line-height:1.75; margin:0; }
.page-404 .hero-cta { margin-top:.6rem; }

.article-related { border-top:1px solid var(--border); padding-block:4rem; background: var(--bg-warm); }

@media (max-width: 960px) {
  .topbar-inner { grid-template-columns: auto 1fr auto; }
  .card-grid { grid-template-columns: repeat(2,1fr); }
  .rubriques { grid-template-columns: 1fr; }
  .menu-body { grid-template-columns: 1fr; gap:2.5rem; padding-block:2rem 3rem; }
  .menu-topic { font-size: clamp(2rem, 11vw, 3.2rem); }
  .article-author-row { flex-direction:column; align-items:center; text-align:center; }
}
@media (max-width:640px) {
  .topbar { padding-block: 1.1rem; }
  .topbar-logo img { height: 22px; }
  .topbar-inner { gap:.75rem; }
  .menu-trigger .lbl, .topbar-sep, .topbar-social { display:none; }
  .menu-trigger svg { display:block; }
  .topbar-actions { gap:.9rem; }
  .search-trigger svg, .menu-trigger svg { width:22px; height:22px; }
  .topbar-right { display:none; }
  .card-grid { grid-template-columns: 1fr; }
  .footer-band { justify-content:center; text-align:center; gap:.7rem; }
  .footer-mid { flex-wrap:wrap; justify-content:center; gap:1rem; }
  .subnav-inner { gap:1.2rem; }
  .topbar-social { display:none; }
}
