/* Hémicycle : nouvelle direction artistique (mise en page inspirée d'Apple, couleurs d'origine), adoptée le 31/10/2026.
   Feuille chargée APRÈS style.css : elle ne fait que surcharger. Retirer la balise <link> = retour à l'ancienne mise en page. */
:root {
  /* couleurs d'origine d'Hémicycle, structure Apple */
  --ink: #18342e;
  --muted: #6b756f;
  --paper: #f6f7f2;
  --line: #e0e4db;
  --lime: #deedab;
  --forest: #153e32;
  --white: #fff;
  --apple-blue: #153e32;
  --apple-link: #1f5c49;
  --tile: #f3f5ee;
  --tile-hover: #eaeee2;
  --apple-grad: linear-gradient(90deg, #deedab 0%, #b9dc8a 55%, #8fc79a 100%);
}
html, body { -webkit-font-smoothing: antialiased; }
body { background: #fbfcf8; letter-spacing: -.016em; font-size: 15px; }
h1, h2, h3 { letter-spacing: -.03em; }

/* Bandeau « version test » */

/* En-tête translucide */
.header { position: sticky; top: 0; z-index: 30; height: 56px; background: rgba(251, 252, 248, .82); backdrop-filter: saturate(180%) blur(20px); -webkit-backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid rgba(0, 0, 0, .08); }
.header nav a { color: var(--ink); opacity: .8; font-weight: 500; font-size: 13px; }
.header nav a.active { opacity: 1; font-weight: 600; }
.header nav a.active:after { background: var(--forest); height: 2px; }
.nav-year { background: var(--lime) !important; color: var(--forest) !important; border-radius: 6px; }
.brand { color: var(--forest); }
.selection-button, .icon-btn { border-radius: 999px !important; border-color: var(--line) !important; background: #fff; }
.df-head-btn { background: #0071e3; }

/* Héros : noir profond, titre en dégradé */
.hero, .prog-hero { background: var(--forest) !important; border-radius: 28px !important; }
.hero h1, .prog-hero h1 { font-weight: 700; letter-spacing: -.035em; }
.hero h1 em, .prog-hero h1 em { background: var(--apple-grad); -webkit-background-clip: text; background-clip: text; color: transparent !important; }
.hero .eyebrow, .prog-hero .eyebrow { color: #b9cdb9 !important; letter-spacing: .08em; }
.hero p, .prog-hero p { color: #c9d8cd !important; }
.eyebrow { color: #69804f; }

/* Boutons en pilule, bleu Apple */
.primary, .hero-btn, .entry-search button, button.primary, .quiz-start, .btn-primary { border-radius: 999px !important; }
.primary { background: var(--apple-blue) !important; color: #fff !important; font-size: 14px; padding: 11px 20px; }
.entry-search button { background: var(--lime) !important; color: var(--forest) !important; font-weight: 700; }
.hero-btn { background: var(--lime) !important; color: var(--forest) !important; }
/* Boutons secondaires : contour vert sur fond clair, blanc translucide sur fond sombre */
.hero-btn.ghost, .hero-btn.ghost-dark { background: transparent !important; color: var(--forest) !important; border: 1.5px solid var(--forest) !important; }
.hero .hero-btn.ghost, .prog-hero .hero-btn.ghost, .quiz-hero .hero-btn.ghost, .entry-elus .hero-btn.ghost { background: rgba(255, 255, 255, .12) !important; color: #fff !important; border-color: rgba(255, 255, 255, .35) !important; }
a { color: inherit; }
.source-link, .df-more, .entry-go, .table-source { color: var(--apple-link) !important; }

/* Cartes et tuiles : coins très arrondis, sans bordure, ombre au survol */
.entry, .party-tile, .program-card, .board, .vote-row, .stat-card, .quiz-card, .data-note, .res-q, .card, .panel, .vote-summary div {
  border-radius: 22px !important;
  border-color: transparent !important;
}
.entry { background: var(--tile); }
.entry-elus { background: var(--forest) !important; }
.entry-df { background: var(--tile); border: 1px solid #0071e3 !important; }
.entry:hover, .party-tile:hover { box-shadow: 0 4px 30px rgba(0, 0, 0, .08); transform: scale(1.015); }
.entry-ico { border-radius: 12px; background: var(--lime) !important; color: var(--forest); }
.entry-elus .entry-ico { background: rgba(255, 255, 255, .12) !important; }
.player-card { border-radius: 24px !important; }

/* Titres de pages façon pages produit */
.page-top h1 { font-size: 48px; font-weight: 700; letter-spacing: -.035em; }
.page-top p { font-size: 19px; color: var(--muted); line-height: 1.45; }
.data-note { background: var(--tile) !important; }

/* Pastilles et filtres */
.pick, .chip, .filter-chip, .tab, .party-kind button { border-radius: 999px !important; }
.party-kind button.active, .chip.active { background: var(--forest) !important; color: #fff !important; }

/* Chiffres Données France */
.df-fact { background: var(--tile); border-radius: 14px; }
.df-fact:hover { background: var(--tile-hover); }

/* Pied de page façon Apple */
.site-footer { background: var(--paper) !important; color: var(--muted); font-size: 12px; }
.site-footer h4 { color: var(--forest); font-size: 12px; }
.site-footer a { color: #3d4a43; }
.glossary-fab { border-radius: 999px; }

@media (max-width: 850px) {
  .header { height: auto; position: sticky; }
  .page-top h1 { font-size: 34px; }
  .page-top p { font-size: 16px; }
}
.party-tile, .program-card, .board, .stat-card, .quiz-card, .vote-row { background: var(--tile) !important; }
.party-tile:hover, .vote-row:hover { background: var(--tile-hover) !important; }
.data-note { font-size: 13px; }

.cmp-cell { border-radius: 18px !important; }

/* Mention de confidentialité : discrète, sans encadré */
.privacy-note { display: flex !important; align-items: flex-start; gap: 10px; background: none !important; border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; padding: 16px 2px 0 !important; margin-top: 22px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.privacy-note .pn-ico { flex: none; margin-top: 2px; color: var(--forest); }
.privacy-note p { margin: 0; }
.privacy-note b { color: var(--ink); font-weight: 600; }
.privacy-note .text-button { color: var(--apple-link); }

/* ===== Lisibilité (contraste WCAG AA) ===== */
:root { --muted: #566059; }
.eyebrow { color: #4f6338; }
.footer-date, .coverage, .coverage a { color: var(--muted) !important; }
/* Sigles de partis : couleur du parti assombrie pour rester lisible sur sa teinte claire */
.party-monogram, .pav, .pav b, .pav span, .pick .pav { color: color-mix(in srgb, var(--c) 42%, #0d1a15) !important; }
/* Étiquettes et badges colorés : texte assombri */
.tag, .cand-tag, .pub-badge, .nc-badge, .badge { color: color-mix(in srgb, currentColor 70%, #000) !important; font-weight: 700; }
.tag { font-size: 10px; }
/* Chiffres Données France */
.df-fact span { color: #3d4741; }
.df-fact small { color: #566059; }
.eyebrow { color: #4f6338 !important; }
.hero .eyebrow, .prog-hero .eyebrow, .quiz-hero .eyebrow, .entry-elus .eyebrow { color: #c9dcc0 !important; }
.coverage-bar, .coverage-bar a, .coverage-bar span { color: #47533f !important; }
.prom-status { color: color-mix(in srgb, var(--c) 40%, #0d1a15) !important; font-weight: 700; }
/* Pourcentages dans les barres de répartition : pastille claire pour rester lisibles sur toutes les couleurs */
.sb-seg > * { background: rgba(255, 255, 255, .9); color: #18342e !important; border-radius: 6px; padding: 0 4px; }
.prom-status { background: color-mix(in srgb, var(--c) 20%, #fff) !important; border: 1px solid color-mix(in srgb, var(--c) 45%, #fff); }
