/* ============================================================
   Ponts entre les blocs WordPress (Query Loop, etc.) et le design PG
   ============================================================ */

/* Le bloc post-content du front ne doit pas contraindre la largeur des sections pleine-largeur */
.wp-site-blocks main > .wp-block-post-content > * { margin-block: 0; }

/* --- Article : catégorie en pastille dans le chapeau --- */
.post__head .wp-block-post-terms { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.post__head .wp-block-post-terms a {
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  padding: 0.2rem 0.55rem;
  background: var(--rouge, #d71920);
  color: #fff;
  text-decoration: none;
}
.post .wp-block-post-title { margin-top: 0.8rem; }
.post__hero.wp-block-post-featured-image { margin: 0 0 2rem; }
.related .news__grid { padding-top: 0; }
.pager {
  max-width: var(--maxw, 1200px);
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem) clamp(3rem, 6vw, 4.5rem);
}
.pager ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; padding: 0; margin: 0; }
.pager a, .pager span {
  display: inline-block;
  min-width: 44px;
  text-align: center;
  padding: 0.6rem 0.9rem;
  border: 2px solid var(--encre, #141414);
  font-weight: 700;
  text-decoration: none;
  color: var(--encre, #141414);
  background: #fff;
}
.pager a:hover { background: var(--encre, #141414); color: #fff; }
.pager .current { background: var(--rouge, #d71920); color: #fff; border-color: var(--rouge, #d71920); }

/* La section .news sur une page intérieure garde un peu d'air en haut */
.page .news { padding-top: 1px; }

/* --- Page Actualités : barre de filtres par rubrique --- */
.rubriques {
  max-width: var(--maxw, 1200px);
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem) 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.rubriques__label {
  font-family: var(--font-display, "Anton", sans-serif);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.85rem;
  margin-right: 0.4rem;
  color: var(--gris, #6b6b6b);
}
.rubriques__link {
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  padding: 0.4rem 0.9rem;
  border: 2px solid var(--encre, #141414);
  border-radius: 99px;
  color: var(--encre, #141414);
  background: #fff;
  transition: background 0.15s, color 0.15s, transform 0.15s;
}
.rubriques__link:hover { transform: translateY(-1px); background: var(--encre, #141414); color: #fff; }
.rubriques__link--active { background: var(--rouge, #d71920); border-color: var(--rouge, #d71920); color: #fff; }

/* ============================================================
   GABARIT ARTICLE — mise en page éditoriale (insp. Libération)
   Charte PG conservée : rouge #d71920, vert, Anton + Inter.
   ============================================================ */
.post {
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(2rem, 5vw, 3.5rem) clamp(1rem, 4vw, 2rem) 1rem;
}
.post__head { max-width: 760px; margin: 0 auto 1.6rem; }

/* Surtitre (rubrique) en rouge, façon « Polémique » */
.post__kicker.wp-block-post-terms { margin: 0 0 0.8rem; font-size: 0; }
.post__kicker.wp-block-post-terms a {
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 0.82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rouge, #d71920);
  text-decoration: none;
}
.post__kicker.wp-block-post-terms a:hover { text-decoration: underline; }
.post__kicker .wp-block-post-terms__separator { color: var(--rouge, #d71920); }

/* Titre */
.post .post__title.wp-block-post-title {
  font-family: var(--font-display, "Anton", sans-serif);
  font-weight: 400;
  text-transform: none;
  font-size: clamp(2rem, 5vw, 3.3rem);
  line-height: 1.06;
  letter-spacing: 0.01em;
  color: var(--encre, #141414);
  margin: 0 0 1rem;
}

/* Chapeau (standfirst) */
.post__standfirst.wp-block-post-excerpt { margin: 0 0 1.4rem; }
.post__standfirst .wp-block-post-excerpt__excerpt,
.post__standfirst p {
  font-size: clamp(1.1rem, 2.2vw, 1.3rem);
  line-height: 1.5;
  font-weight: 500;
  color: #33312c;
  margin: 0;
}
.post__standfirst .wp-block-post-excerpt__more-text { display: none; }

/* Ligne auteur + date */
.post__byline {
  align-items: center;
  gap: 1rem;
  padding: 0.9rem 0;
  margin: 0;
  border-top: 1px solid var(--encre, #141414);
  border-bottom: 1px solid rgba(20,20,20,0.15);
  font-size: 0.85rem;
}
.post__byline .post__author { color: var(--gris, #6b6b6b); }
.post__byline .post__author strong { color: var(--rouge, #d71920); font-weight: 700; }
.post__byline .post__date.wp-block-post-date {
  margin: 0 0 0 auto;
  color: var(--gris, #6b6b6b);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.78rem;
}

/* Image principale + crédit */
.post__hero.wp-block-post-featured-image {
  max-width: 820px;
  margin: 0 auto 0.6rem;
  box-shadow: none;
  border: none;
}
.post__hero.wp-block-post-featured-image img {
  width: 100%;
  height: auto;
  border: 1px solid rgba(20,20,20,0.12);
}
.post__hero figcaption,
.post .wp-block-post-featured-image figcaption {
  max-width: 760px;
  margin: 0.5rem auto 0;
  font-size: 0.8rem;
  font-style: italic;
  color: var(--gris, #6b6b6b);
}

/* Corps de l'article — lecture confortable */
.post__body.wp-block-post-content { margin-top: 2rem; max-width: 760px; margin-inline: auto; }
/* Neutralise le global padding WP qui décalait le corps par rapport au chapeau */
.post__body.has-global-padding { padding-left: 0; padding-right: 0; }
.post__body p,
.post__body ul,
.post__body ol {
  font-size: 1.16rem;
  line-height: 1.78;
  color: #1c1b18;
  margin: 0 0 1.4rem;
}
.post__body p:first-of-type::first-letter {
  /* lettrine discrète */
  font-family: var(--font-display, "Anton", sans-serif);
  font-size: 3.2rem;
  line-height: 0.8;
  float: left;
  margin: 0.35rem 0.6rem 0 0;
  color: var(--rouge, #d71920);
}
.post__body a { color: var(--rouge, #d71920); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.post__body a:hover { text-decoration: none; }
.post__body strong { color: var(--encre, #141414); }
.post__body h2, .post__body h3 {
  font-family: var(--font-display, "Anton", sans-serif);
  font-weight: 400;
  text-transform: none;
  color: var(--encre, #141414);
  line-height: 1.1;
  margin: 2.4rem 0 1rem;
  padding-top: 0.4rem;
}
.post__body h2 { font-size: clamp(1.5rem, 3.2vw, 2rem); }
.post__body h3 { font-size: clamp(1.3rem, 2.6vw, 1.6rem); }
.post__body h2::before {
  content: ""; display: block; width: 2.4rem; height: 4px;
  background: var(--rouge, #d71920); margin-bottom: 0.7rem;
}
.post__body blockquote {
  margin: 2rem 0;
  padding: 0.4rem 0 0.4rem 1.4rem;
  border-left: 4px solid var(--rouge, #d71920);
  font-size: 1.3rem;
  line-height: 1.5;
  font-style: italic;
  color: var(--encre, #141414);
  box-shadow: none;
  background: none;
}
.post__body img { border: 1px solid rgba(20,20,20,0.12); height: auto; }
.post__body figcaption { font-size: 0.8rem; font-style: italic; color: var(--gris, #6b6b6b); margin-top: 0.4rem; }

/* Tags « Pour aller plus loin » */
.post__tags {
  max-width: 760px;
  margin: 2.5rem auto 0;
  padding-top: 1.4rem;
  border-top: 2px solid var(--encre, #141414);
  align-items: center;
  gap: 0.6rem;
}
.post__tags-label {
  font-family: var(--font-display, "Anton", sans-serif);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.85rem;
  margin-right: 0.4rem;
}
.post__tags-list.wp-block-post-terms { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.post__tags-list.wp-block-post-terms a {
  font-size: 0.82rem;
  font-weight: 700;
  padding: 0.35rem 0.8rem;
  border: 1.5px solid rgba(20,20,20,0.25);
  border-radius: 99px;
  color: var(--encre, #141414);
  text-decoration: none;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.post__tags-list.wp-block-post-terms a:hover { background: var(--rouge, #d71920); color: #fff; border-color: var(--rouge, #d71920); }
.post__tags-list .wp-block-post-terms__separator { display: none; }

/* Appel à l'action en bas d'article */
.post__cta {
  max-width: 760px;
  margin: 2.5rem auto 1rem;
  padding: 1.6rem 1.8rem;
  background: var(--encre, #141414);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  flex-wrap: wrap;
  border-left: 6px solid var(--rouge, #d71920);
}
.post__cta h2 { font-family: var(--font-display, "Anton", sans-serif); font-size: 1.5rem; margin: 0 0 0.2rem; text-transform: uppercase; }
.post__cta p { margin: 0; color: rgba(255,255,255,0.7); font-size: 0.95rem; }

@media (max-width: 600px) {
  .post__body p:first-of-type::first-letter { font-size: 2.6rem; }
  .post__byline .post__date { margin-left: 0; }
}

/* ============================================================
   CORRECTIFS gabarit article (rendu réel)
   ============================================================ */
/* Surtitre : texte rouge lisible, PAS un bloc rouge (neutralise l'ancienne pastille à fond rouge) */
.post__head .wp-block-post-terms.post__kicker a,
.post__kicker.wp-block-post-terms a {
  background: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  color: var(--rouge, #d71920) !important;
}
/* Image principale : rendu propre, sans l'ombre verte décalée */
.post__hero img,
.post__hero.wp-block-post-featured-image img {
  box-shadow: none !important;
}

/* ============================================================
   ARTICLE PREMIUM — lecture longue + incitation au partage
   ============================================================ */
:root { --serif: "Spectral", Georgia, "Times New Roman", serif; }

/* Barre de progression de lecture */
.reading-progress { position: fixed; top: var(--stuck-h, 108px); left: 0; right: 0; height: 4px; z-index: 49; background: rgba(20,20,20,0.08); }

/* ============================================================
   Lightbox vidéo (meeting 2027)
   ============================================================ */
.pg-modal[hidden] { display: none; }
.pg-modal { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: clamp(1rem, 4vw, 3rem); }
.pg-modal__backdrop { position: absolute; inset: 0; background: rgba(8, 5, 5, 0.86); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); animation: pg-modal-fade 0.2s ease; }
.pg-modal__dialog { position: relative; z-index: 1; width: min(1040px, 100%); animation: pg-modal-pop 0.22s ease; }
.pg-modal__video { position: relative; padding-top: 56.25%; background: #000; border-radius: 12px; overflow: hidden; box-shadow: 0 30px 90px rgba(0, 0, 0, 0.6); }
.pg-modal__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pg-modal__close { position: absolute; top: -2.9rem; right: -0.2rem; display: inline-grid; place-items: center; width: 40px; height: 40px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.3); border-radius: 50%; color: #fff; cursor: pointer; transition: background 0.15s, transform 0.15s; }
.pg-modal__close:hover { background: var(--rouge, #d71920); border-color: var(--rouge, #d71920); transform: scale(1.06); }
body.pg-modal-open { overflow: hidden; }
@keyframes pg-modal-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes pg-modal-pop { from { opacity: 0; transform: translateY(12px) scale(0.98); } to { opacity: 1; transform: none; } }
.reading-progress span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--rouge,#d71920), var(--vert,#76b82a)); transition: width 0.1s linear; }

/* Corps en serif, lecture confortable (niveau presse) */
.post__body.wp-block-post-content { margin-top: 2.2rem; }
.post__body p, .post__body ul, .post__body ol {
  font-family: var(--serif);
  font-size: 1.3rem;
  line-height: 1.82;
  color: #1a1916;
  margin: 0 0 1.5rem;
  letter-spacing: 0.003em;
}
.post__body p:first-of-type::first-letter {
  font-family: var(--font-display, "Anton", sans-serif);
  font-size: 4.2rem; line-height: 0.74; float: left; margin: 0.4rem 0.7rem 0 0; color: var(--rouge,#d71920);
}
.post__body a { color: var(--rouge,#d71920); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1.5px; }
.post__body a:hover { background: rgba(215,25,32,0.08); }
.post__body h2, .post__body h3 { font-family: var(--font-display,"Anton",sans-serif); font-weight: 400; line-height: 1.12; color: var(--encre,#141414); margin: 2.6rem 0 1rem; }
.post__body h2 { font-size: clamp(1.6rem,3.4vw,2.1rem); }
.post__body h2::before { content:""; display:block; width:2.6rem; height:4px; background:var(--rouge,#d71920); margin-bottom:0.8rem; }
.post__body h3 { font-size: clamp(1.35rem,2.6vw,1.65rem); }

/* Citation = pull quote partageable */
.post__body blockquote {
  font-family: var(--serif);
  font-size: clamp(1.45rem,3vw,1.9rem);
  line-height: 1.34; font-style: italic; font-weight: 500;
  color: var(--encre,#141414);
  margin: 2.4rem 0; padding: 0.5rem 0 0.5rem 0;
  border: none; box-shadow: none; background: none;
  position: relative; padding-left: 2.6rem;
}
.post__body blockquote::before { content:"\201C"; position:absolute; left:-0.2rem; top:0.1em; font-family:var(--serif); font-size:4rem; line-height:1; color:var(--rouge,#d71920); }

/* Image principale : plus immersive (déborde la colonne de texte) */
.post__hero.wp-block-post-featured-image { max-width: 900px; margin: 0 auto 0.7rem; }

/* ---------- Partage social ---------- */
.pg-share { display: flex; gap: 0.55rem; align-items: center; }
.pg-share__btn {
  width: 42px; height: 42px; display: grid; place-items: center;
  border-radius: 50%; border: 1.5px solid rgba(20,20,20,0.2);
  background: #fff; color: var(--encre,#141414); cursor: pointer; padding: 0;
  transition: transform 0.15s, background 0.15s, color 0.15s, border-color 0.15s;
}
.pg-share__btn svg { width: 18px; height: 18px; fill: currentColor; }
.pg-share__btn:hover { transform: translateY(-2px); color: #fff; }
.pg-share__btn--x:hover { background:#000; border-color:#000; }
.pg-share__btn--facebook:hover { background:#1877f2; border-color:#1877f2; }
.pg-share__btn--whatsapp:hover { background:#25d366; border-color:#25d366; }
.pg-share__btn--telegram:hover { background:#26a5e4; border-color:#26a5e4; }
.pg-share__btn--copy:hover { background:var(--rouge,#d71920); border-color:var(--rouge,#d71920); }
.pg-share__btn--copy.is-copied { background:var(--vert,#76b82a); border-color:var(--vert,#76b82a); color:#fff; }

/* Rail vertical flottant (desktop) */
.post { position: relative; }
.post__rail { display: none; }
@media (min-width: 1100px) {
  .post__rail { display: block; position: fixed; top: 50%; transform: translateY(-50%); left: max(1.4rem, calc(50vw - 480px)); z-index: 30; transition: opacity 0.25s ease, visibility 0.25s ease; }
  .post__rail--hidden { opacity: 0; visibility: hidden; pointer-events: none; }
  .post__rail .pg-share { flex-direction: column; }
  .post__head .pg-share--inline { display: none; }
}

/* Partage horizontal sous le chapeau (mobile/tablette) */
.pg-share--inline { margin: 1.2rem 0 0; }

/* Bloc de partage en fin d'article */
.pg-share--end {
  max-width: 700px; margin: 2.5rem auto; padding: 1.4rem 1.6rem;
  border: 2px solid var(--encre,#141414); border-radius: 6px;
  flex-wrap: wrap; gap: 0.7rem;
}
.pg-share--end .pg-share__title {
  font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase;
  letter-spacing: 0.04em; font-size: 1.1rem; margin-right: auto;
}

/* Ligne méta : temps de lecture */
.post__byline .post__readtime { color: var(--gris,#6b6b6b); position: relative; padding-left: 1.1rem; }
.post__byline .post__readtime::before { content:""; position:absolute; left:0; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:var(--gris,#6b6b6b); }
.post__byline .post__date.wp-block-post-date { margin-left: auto; }

/* ============================================================
   CORRECTIFS EN-TÊTE (tournée QA)
   ============================================================ */
/* (Le pont « bloc Navigation » WordPress et la pastille nav__p27 ont été
   supprimés : le menu est rendu par [pg_menu] → .pg-nav, pas de wp-block-navigation.) */

/* Compaction du bouton don sur très petit écran (≤ 480px) */
@media (max-width: 480px) {
  .header__actions .btn--red { padding: 0.45rem 0.75rem; font-size: 0.72rem; }
}

/* ============================================================
   EN-TÊTE — REFONTE (barre utilitaire + header condensable)
   ============================================================ */

/* CORRECTIF STICKY : le template-part header est enveloppé dans un <header class="wp-block-template-part">
   dont la hauteur = l'en-tête (~116px), ce qui confine position:sticky (il décolle au scroll).
   display:contents retire ce wrapper du flux → topbar/header collent sur toute la page (.wp-site-blocks). */
header.wp-block-template-part { display: contents; }

/* --- Barre utilitaire sombre : ticker + don + réseaux (collante) --- */
.topbar { position: sticky; top: 0; z-index: 60; background: var(--encre, #141414); color: rgba(255,255,255,0.82); }
.topbar__inner {
  max-width: 1340px; margin: 0 auto; padding: 0 clamp(.6rem, 2vw, 1rem);
  display: flex; align-items: center; gap: 0; font-size: .74rem; white-space: nowrap;
}
.topbar__brand {
  display: flex; align-items: center; gap: .4rem; color: #fff;
  font-family: var(--font-display, Anton); text-transform: uppercase; letter-spacing: .06em;
  padding: .4rem .9rem .4rem 0; flex-shrink: 0;
}
.topbar__star { color: var(--vert, #76b82a); }
.topbar__score {
  display: flex; align-items: center; gap: .6rem; flex: 1; min-width: 0;
  padding: 0 .9rem; border-left: 1px solid rgba(255,255,255,.14); overflow: hidden;
}
.topbar__lbl { font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: rgba(255,255,255,.6); font-size: .64rem; flex-shrink: 0; }
.topbar__num { font-family: var(--font-display, Anton); font-weight: 400; color: var(--vert, #76b82a); font-size: 1rem; font-variant-numeric: tabular-nums; flex-shrink: 0; }
.topbar__gauge {
  --pct: 89.5%;
  position: relative; flex: 1; min-width: 60px; height: 8px;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); border-radius: 99px;
}
.topbar__gauge-clip { position: absolute; inset: 0; border-radius: 99px; overflow: hidden; }
.topbar__gauge-fill { display: block; height: 100%; width: var(--pct); background: linear-gradient(90deg, var(--rouge, #d71920), var(--vert, #76b82a)); }
.topbar__walker {
  position: absolute; left: var(--pct); top: 50%; transform: translate(-50%, -50%) scaleX(-1);
  font-size: 26px; line-height: 1; pointer-events: none;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.65));
}
.topbar__turtle { display: inline-block; animation: pg-walk .45s ease-in-out infinite; }
.topbar__cap { color: rgba(255,255,255,.5); font-size: .64rem; flex-shrink: 0; }
.topbar__time {
  display: flex; align-items: center; gap: .4rem; flex-shrink: 0; padding: 0 .85rem;
  border-left: 1px solid rgba(255,255,255,.14);
  font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.85);
}
.topbar__dot { color: var(--vert, #76b82a); animation: pg-blink 1s steps(1) infinite; }
.topbar__j { font-family: var(--font-display, Anton); font-weight: 400; color: #fff; }
@keyframes pg-walk { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-8deg); } }
@keyframes pg-blink { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .topbar__turtle, .topbar__dot { animation: none; } }

/* --- Header : grille 3 zones + condensation au scroll --- */
.header {
  position: sticky; top: var(--topbar-h, 38px); z-index: 50;
  display: flex; align-items: center; gap: clamp(0.6rem, 1.5vw, 1.2rem);
  padding: 0.6rem clamp(1rem, 4vw, 2.4rem);
  background: var(--papier, #faf7f0); border-bottom: none;
  transition: padding 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}
.header::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: linear-gradient(90deg, var(--rouge, #d71920) 0 50%, var(--vert, #76b82a) 50% 100%); }
.header.is-scrolled {
  padding-top: 0.4rem; padding-bottom: 0.4rem;
  background: rgba(250,247,240,0.96); box-shadow: 0 6px 22px rgba(20,20,20,0.13);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.header.is-layout-flow > * { margin-block: 0; } /* annule la block-gap WP qui décalait header__right de ~9px vers le bas */
.header__left { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
.header__right { display: flex; align-items: center; gap: 0.6rem; }

/* --- Sélecteur « Nos espaces » (icône grille) --- */
.pg-sites { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; width: 40px; height: 40px; padding: 9px; border: none; background: transparent; border-radius: 9px; cursor: pointer; flex-shrink: 0; transition: background 0.15s; }
.pg-sites:hover, .pg-sites[aria-expanded="true"] { background: rgba(20,20,20,0.07); }
.pg-sites span { display: block; width: 100%; aspect-ratio: 1; border-radius: 1.5px; background: var(--encre, #141414); transition: background 0.15s; }
.pg-sites:hover span, .pg-sites[aria-expanded="true"] span { background: var(--rouge, #d71920); }

.pg-sites-menu {
  position: absolute; top: calc(100% + 9px); left: clamp(1rem, 4vw, 2.4rem); z-index: 60;
  width: 320px; max-width: calc(100vw - 2rem); background: #fff;
  border: 1px solid var(--line, #e7e1d4); border-radius: 14px; box-shadow: 0 22px 54px rgba(20,20,20,0.24);
  padding: 0.5rem; opacity: 0; transform: translateY(-8px); visibility: hidden; pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.pg-sites-menu.is-open { opacity: 1; transform: none; visibility: visible; pointer-events: auto; }
.pg-sites-menu__head { display: flex; justify-content: space-between; align-items: center; padding: 0.45rem 0.55rem 0.6rem; font-weight: 800; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--gris, #6b6b6b); }
.pg-sites-menu__close { background: none; border: none; color: var(--gris, #6b6b6b); cursor: pointer; padding: 4px; border-radius: 6px; display: grid; place-items: center; }
.pg-sites-menu__close:hover { background: rgba(20,20,20,0.06); color: var(--encre, #141414); }
.pg-sites-menu__grid { display: flex; flex-direction: column; gap: 0.15rem; }
.pg-site { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem; border-radius: 10px; text-decoration: none; color: var(--encre, #141414); transition: background 0.15s; }
.pg-site:hover { background: var(--papier, #faf7f0); }
.pg-site__ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 11px; flex-shrink: 0; color: #fff; font-family: var(--font-display, Anton); font-size: 1.05rem; letter-spacing: 0.02em; }
.pg-site__ico--tu { background: #a855f7; }
.pg-site__ico--ig { background: #e8342a; }
.pg-site__ico--fi { background: #4f1d96; font-size: 1.5rem; }
.pg-site__txt { display: flex; flex-direction: column; line-height: 1.2; }
.pg-site__txt strong { font-size: 0.96rem; font-weight: 800; }
.pg-site__txt small { font-size: 0.78rem; color: var(--gris, #6b6b6b); }

/* --- Marque : logo officiel seul + devise --- */
.brand { display: flex; align-items: center; gap: 0.65rem; text-decoration: none; flex-shrink: 0; }
.brand__logo { height: 52px; width: auto; display: block; border: 3px solid var(--encre, #141414); border-radius: 4px; transition: height 0.22s ease, transform 0.15s ease, box-shadow 0.15s ease; }
.brand:hover .brand__logo { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--encre, #141414); }
.header.is-scrolled .brand__logo { height: 42px; }
.brand__sep { width: 4px; height: 40px; border-radius: 1px; flex-shrink: 0; transition: opacity 0.2s ease; background: linear-gradient(to bottom, var(--vert-fonce, #4e8a14) 0 33.33%, var(--rouge, #d71920) 33.33% 66.66%, var(--encre, #141414) 66.66% 100%); }
.brand__tag { display: flex; flex-direction: column; line-height: 0.92; transition: opacity 0.2s ease; }
.brand__tag span { font-family: var(--font-display, Anton); text-transform: uppercase; font-size: 0.86rem; letter-spacing: 0.05em; }
.brand__tag span:nth-child(1) { color: var(--vert-fonce, #4e8a14); }
.brand__tag span:nth-child(2) { color: var(--rouge, #d71920); }
.brand__tag span:nth-child(3) { color: var(--encre, #141414); }
.header.is-scrolled .brand__sep, .header.is-scrolled .brand__tag { opacity: 0; }

/* --- Navigation principale (centrée entre marque et actions) --- */
.pg-nav { margin: 0 auto; }
.pg-nav__list { display: flex; align-items: center; gap: clamp(0.7rem, 1.6vw, 1.35rem); list-style: none; margin: 0; padding: 0; }
.pg-nav__list li { margin: 0; position: relative; }
.pg-nav__list a {
  position: relative; text-decoration: none;
  font-family: var(--font-display, Anton); font-weight: 400; font-size: 1rem;
  text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--encre, #141414); white-space: nowrap; padding: 0.4rem 0 0.3rem; transition: color 0.15s;
}
.pg-nav__list a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 2px;
  background: var(--rouge, #d71920); transform: scaleX(0); transform-origin: left; transition: transform 0.2s ease;
}
.pg-nav__list a:hover { color: var(--rouge, #d71920); }
.pg-nav__list a:hover::after { transform: scaleX(1); }
.pg-nav__list .current-menu-item > a, .pg-nav__list .current_page_item > a, .pg-nav__list .current-menu-ancestor > a, .pg-nav__list a[aria-current="page"] { color: var(--rouge, #d71920); }
.pg-nav__list .current-menu-item > a::after, .pg-nav__list .current_page_item > a::after, .pg-nav__list .current-menu-ancestor > a::after, .pg-nav__list a[aria-current="page"]::after { transform: scaleX(1); }

 }

/* --- Actions --- */
.header__actions { display: flex; gap: 0.6rem; flex-shrink: 0; }
.header__actions .btn--red { font-size: 0.92rem; padding: 0.6rem 1.3rem; border: 3px solid var(--rouge, #d71920); }

/* --- Burger : masqué en desktop --- */
.pg-burger { display: none; }
.pg-nav-backdrop { display: none; }

@media (max-width: 1240px) {
  .brand__sep, .brand__tag { display: none; }
  .pg-nav__list { gap: 1rem; }
}

@media (max-width: 560px) {
  .topbar__cap, .topbar__lbl { display: none; }
  .topbar__walker { font-size: 20px; }
}

/* ====== MOBILE (≤ 980px) ====== */
@media (max-width: 980px) {
  .topbar__time { display: none; }
  .header { display: flex; justify-content: space-between; gap: 0.7rem; }
  .pg-sites, .pg-sites-menu { display: none; }
  .brand__sep, .brand__tag { display: none; }

  .header__actions { display: flex; flex-shrink: 0; }
  .header__actions .btn--ghost { display: none; }
  .header__actions .btn--red { padding: 0.5rem 0.9rem; font-size: 0.8rem; }
  .header.is-scrolled .brand__logo { height: 42px; }

  .pg-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 5px;
    width: 44px; height: 44px; padding: 0; margin-left: 0.1rem; order: 6;
    background: none; border: none; cursor: pointer; flex-shrink: 0;
  }
  .pg-burger span { display: block; width: 26px; height: 3px; background: var(--encre, #141414); border-radius: 2px; transition: transform 0.25s, opacity 0.2s; }
  .header.is-nav-open .pg-burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .header.is-nav-open .pg-burger span:nth-child(2) { opacity: 0; }
  .header.is-nav-open .pg-burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  .pg-nav {
    position: fixed; left: 0; right: 0; top: 110px;
    background: var(--papier, #faf7f0); border-top: 3px solid var(--encre, #141414);
    box-shadow: 0 18px 34px rgba(20,20,20,0.18);
    transform: translateY(-12px); opacity: 0; visibility: hidden; pointer-events: none;
    transition: transform 0.25s ease, opacity 0.25s ease, visibility 0.25s;
    z-index: 48; max-height: calc(100vh - 110px); overflow-y: auto; margin: 0;
  }
  .header.is-nav-open .pg-nav { transform: none; opacity: 1; visibility: visible; pointer-events: auto; }
  .pg-nav__list { flex-direction: column; align-items: stretch; gap: 0; padding: 0.4rem clamp(1.1rem, 5vw, 2rem) 1.4rem; }
  .pg-nav__list a { display: block; padding: 1rem 0; border-bottom: 1px solid rgba(20,20,20,0.1); font-size: 1.2rem; }
  .pg-nav__list a::after { display: none; }
  .pg-nav__list .current-menu-item > a, .pg-nav__list .current_page_item > a, .pg-nav__list a[aria-current="page"] { color: var(--rouge, #d71920); }

  .pg-nav-backdrop { display: block; position: fixed; inset: 0; background: rgba(20,20,20,0.45); z-index: 47; opacity: 0; visibility: hidden; transition: opacity 0.25s, visibility 0.25s; }
  body.pg-nav-open .pg-nav-backdrop { opacity: 1; visibility: visible; }
  body.pg-nav-open { overflow: hidden; }
}

@media (max-width: 720px) {
   /* la pastille 2027 cède la place (présente dans le ticker) */
}

/* ============================================================
   ACCESSIBILITÉ (audit) — focus visibles + contrastes
   ============================================================ */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, .btn:focus-visible, .amount:focus-visible {
  outline: 3px solid var(--rouge, #d71920);
  outline-offset: 2px;
  border-radius: 2px;
}
/* Contraste : texte blanc sur vert — passer au vert foncé (WCAG AA) */
.btn--green { background: var(--vert-fonce, #4e8a14); }
.btn--green:hover { background: #3d6f10; }
.counter { background: var(--vert-fonce, #4e8a14); }
.tag--green { background: var(--vert-fonce, #4e8a14); color: #fff; }
/* Lien d'évitement visible au focus (déjà fourni par WP, on s'assure du style) */
.skip-link:focus { background: #fff; color: var(--encre, #141414); }

/* Pages légales — colonne de lecture */
.legal { max-width: 800px; margin: 0 auto; padding: clamp(2.5rem,5vw,4rem) clamp(1rem,4vw,2rem); }
.legal h1 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: clamp(2rem,4vw,2.8rem); margin: 0 0 1.5rem; }
.legal h2 { font-family: var(--font-display,"Anton",sans-serif); font-size: 1.4rem; margin: 2rem 0 0.6rem; }
.legal p, .legal li { font-size: 1.05rem; line-height: 1.7; color: #2a2926; }
.legal a { color: var(--rouge,#d71920); }

/* ============================================================
   Listing éditorial façon presse (archives, recherche, /actus/)
   ============================================================ */
.feed { max-width: var(--maxw,1200px); margin: 0 auto; padding: clamp(1.5rem,4vw,2.5rem) clamp(1rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.feed__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.2rem 2rem; flex-wrap: wrap; border-bottom: 4px solid var(--encre,#141414); padding-bottom: 1.1rem; margin-bottom: 2.2rem; }
.feed__kicker { font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .8rem; color: var(--rouge,#d71920); margin: 0 0 .35rem; }
.feed__title { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; line-height: .95; font-size: clamp(2rem,5.5vw,3.4rem); margin: 0; color: var(--encre,#141414); }
.feed__sub { color: var(--gris,#666); margin: .5rem 0 0; max-width: 60ch; }
.feed__empty { padding: 2.5rem 0; color: var(--gris,#555); font-size: 1.1rem; }
.feed__empty a { color: var(--rouge,#d71920); font-weight: 700; }

.feed__grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 2.4rem 1.8rem; }
.feed__grid .card { background: transparent; border: 0; }
.feed__grid .card:hover { transform: none; box-shadow: none; }
.feed__grid .card__media { border: 0; border-radius: 3px; margin-bottom: .85rem; }
.feed__grid .card__media img { aspect-ratio: 16/10; height: auto; border-radius: 3px; transition: opacity .2s ease; }
.feed__grid .card:hover .card__media img { opacity: .88; }
.feed__grid .card__body { padding: 0; }
.feed__grid .card__tags { margin-bottom: .45rem; }
.feed__grid .card__tags .tag { background: transparent; color: var(--rouge,#d71920); padding: 0; font-size: .74rem; letter-spacing: .09em; }
.feed__grid .card h3 { font-family: var(--font-body,"Inter",sans-serif); font-weight: 800; font-size: 1.18rem; line-height: 1.16; letter-spacing: -.01em; margin-bottom: .5rem; color: var(--encre,#141414); }
.feed__grid .card:hover h3 { color: var(--rouge,#d71920); }
.feed__grid .card__meta { font-size: .76rem; color: var(--gris,#777); }

/* Vedette en tête : pleine largeur, image + chapô */
.feed__grid .card--feature { grid-column: 1 / -1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.8rem; align-items: center; border: 0; border-bottom: 1px solid #e3ddcf; padding-bottom: 2.4rem; margin-bottom: .4rem; }
.feed__grid .card--feature .card__media { margin-bottom: 0; }
.feed__grid .card--feature .card__media img { aspect-ratio: 16/9; }
.feed__grid .card--feature h3 { font-family: var(--font-display,"Anton",sans-serif); font-weight: 400; text-transform: uppercase; line-height: 1; font-size: clamp(1.8rem,3.6vw,2.9rem); letter-spacing: 0; }
.feed__grid .card--feature .card__excerpt { color: var(--gris,#555); font-size: 1.04rem; line-height: 1.55; margin: .3rem 0 .7rem; }

@media (max-width:880px){
  .feed__grid { grid-template-columns: 1fr 1fr; gap: 2rem 1.4rem; }
  .feed__grid .card--feature { grid-template-columns: 1fr; }
}
@media (max-width:560px){
  .feed__grid { grid-template-columns: 1fr; }
  .feed__head { border-bottom-width: 3px; }
}

/* ---------- Champ de recherche ---------- */
.pg-search { display: flex; align-items: center; gap: .5rem; background: #fff; border: 2px solid var(--encre,#141414); border-radius: 4px; padding: .4rem .55rem .4rem .7rem; }
.pg-search__ico { color: var(--gris,#777); flex: 0 0 auto; }
.pg-search__input { border: 0; outline: 0; background: transparent; font: inherit; font-size: 1rem; flex: 1; min-width: 0; color: var(--encre,#141414); }
.pg-search__submit { border: 0; background: var(--rouge,#d71920); color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .8rem; padding: .5rem .95rem; border-radius: 3px; cursor: pointer; flex: 0 0 auto; }
.pg-search__submit:hover { background: var(--rouge-fonce,#b3141a); }
.pg-search--compact { min-width: min(330px,100%); align-self: center; }

/* Bouton loupe de l'en-tête + panneau déroulant */
.header__search { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; padding: 0; border: 0; background: transparent; color: var(--encre,#141414); cursor: pointer; border-radius: 50%; }
.header__search:hover { background: rgba(0,0,0,.07); }
.pg-search-panel { position: fixed; top: 0; left: 0; right: 0; z-index: 130; background: var(--encre,#141414); padding: clamp(.9rem,2.2vw,1.3rem) clamp(1rem,4vw,3rem); box-shadow: 0 14px 34px rgba(0,0,0,.34); transform: translateY(-105%); transition: transform .26s ease; visibility: hidden; }
.pg-search-panel.is-open { transform: translateY(0); visibility: visible; }
.pg-search-panel__inner { max-width: var(--maxw,1200px); margin: 0 auto; display: flex; align-items: center; gap: 1rem; }
.pg-search-panel .pg-search { flex: 1; border-color: transparent; padding: .55rem .7rem; }
.pg-search-panel .pg-search__input { font-size: 1.15rem; }
.pg-search-panel__close { flex: 0 0 auto; width: 42px; height: 42px; border: 0; background: transparent; color: #fff; cursor: pointer; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.pg-search-panel__close:hover { background: rgba(255,255,255,.14); }
@media (prefers-reduced-motion: reduce){ .pg-search-panel { transition: none; } }

/* ============================================================
   Pages de contenu génériques (contact, organisation, groupes, presse…)
   ============================================================ */
.pagewrap { max-width: var(--maxw,1200px); margin: 0 auto; padding: clamp(1.5rem,4vw,2.5rem) clamp(1rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.page-hero { max-width: 820px; margin: 0 auto clamp(2rem,5vw,3rem); text-align: center; }
.page-hero__kicker { font-weight: 800; text-transform: uppercase; letter-spacing: .14em; font-size: .8rem; color: var(--rouge,#d71920); margin: 0 0 .6rem; }
.page-hero__title { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; line-height: 1; font-size: clamp(2.2rem,6vw,3.8rem); margin: 0; color: var(--encre,#141414); }
.page-hero__lead { color: var(--gris,#555); font-size: 1.15rem; line-height: 1.6; margin: 1rem auto 0; max-width: 60ch; }

.prose { max-width: 760px; margin: 0 auto; }
.prose h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: clamp(1.5rem,3vw,2rem); margin: 2.2rem 0 .7rem; }
.prose h3 { font-size: 1.2rem; font-weight: 800; margin: 1.6rem 0 .5rem; }
.prose p, .prose li { font-size: 1.06rem; line-height: 1.7; color: #2a2926; }
.prose ul { padding-left: 1.2rem; } .prose li { margin: .3rem 0; }
.prose a { color: var(--rouge,#d71920); font-weight: 600; }
.prose__pdf { display: inline-flex; align-items: center; gap: .5rem; font-weight: 800; border: 2px solid var(--encre,#141414); padding: .5rem .9rem; text-decoration: none; color: var(--encre,#141414); margin-top: .6rem; }
.prose__pdf:hover { background: var(--encre,#141414); color: #fff; }

.tiles { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 1.4rem; margin: 1.5rem 0; }
.tile { border: 3px solid var(--encre,#141414); background: #fff; padding: 1.4rem 1.3rem; }
.tile h3 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: 1.15rem; margin: 0 0 .5rem; }
.tile p { margin: 0; color: #3a3935; font-size: .98rem; line-height: 1.55; }
.tile__tag { display: inline-block; font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: #fff; background: var(--rouge,#d71920); padding: .15rem .5rem; margin-bottom: .6rem; }

.steps { counter-reset: step; display: grid; gap: 1rem; margin: 1.5rem 0; padding: 0; list-style: none; }
.steps li { position: relative; padding-left: 3.2rem; }
.steps li::before { counter-increment: step; content: counter(step); position: absolute; left: 0; top: -.1rem; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--encre,#141414); color: #fff; font-family: var(--font-display,"Anton",sans-serif); font-size: 1.1rem; display: flex; align-items: center; justify-content: center; }
.steps strong { display: block; font-size: 1.05rem; }
.steps span { color: #555; }

.cta-band { background: var(--encre,#141414); color: #fff; text-align: center; padding: clamp(2rem,5vw,3rem); margin-top: 2.5rem; border-radius: 4px; }
.cta-band h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: clamp(1.6rem,3.5vw,2.4rem); margin: 0 0 .8rem; color: #fff; }
.cta-band p { color: rgba(255,255,255,.82); max-width: 52ch; margin: 0 auto 1.4rem; }
.cta-band .btn { margin: .3rem; }

/* Contact */
.contact { max-width: var(--maxw,1200px); margin: 0 auto; padding: clamp(1.5rem,4vw,2.5rem) clamp(1rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.contact__cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 1.3rem; margin-bottom: clamp(2.5rem,5vw,3.5rem); }
.contact-card { border: 3px solid var(--encre,#141414); background: #fff; padding: 1.5rem 1.4rem; display: flex; flex-direction: column; }
.contact-card__ico { color: var(--rouge,#d71920); margin-bottom: .7rem; }
.contact-card h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: 1.2rem; margin: 0 0 .5rem; }
.contact-card p { color: #3a3935; font-size: .97rem; line-height: 1.55; margin: 0 0 1rem; flex: 1; }
.contact-card__link { color: var(--rouge,#d71920); font-weight: 800; text-decoration: none; }
.contact-card__link:hover { text-decoration: underline; }
.contact__grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2.5rem; align-items: start; }
.contact-form { border: 3px solid var(--encre,#141414); padding: clamp(1.4rem,3vw,2rem); background: #fff; }
.contact-form h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: 1.4rem; margin: 0 0 1.2rem; }
.contact-form label { display: block; font-weight: 700; font-size: .9rem; margin-bottom: 1rem; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; margin-top: .35rem; padding: .7rem .8rem; border: 2px solid #cfcabb; border-radius: 3px; font: inherit; font-weight: 400; background: #fdfcf8; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { outline: none; border-color: var(--rouge,#d71920); }
.contact-form__check { font-weight: 400; font-size: .85rem; color: #555; display: flex; gap: .5rem; align-items: flex-start; }
.contact-form__check input { width: auto; margin-top: .2rem; }
.contact-form .btn { margin-top: .4rem; }
.form-success { margin-top: 1rem; padding: .8rem 1rem; background: #e7f5e1; border-left: 4px solid var(--vert,#4e8a14); color: #2a5212; font-weight: 700; }
.contact__info { border-top: 4px solid var(--encre,#141414); padding-top: 1.2rem; }
.contact__info h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: 1.3rem; margin: 0 0 .6rem; }
.contact__info h3 { font-size: 1rem; text-transform: uppercase; letter-spacing: .05em; margin: 1.4rem 0 .5rem; }
.contact__addr { font-style: normal; line-height: 1.6; color: #2a2926; font-size: 1.05rem; }
.contact__info a { color: var(--rouge,#d71920); }
.contact__social { display: flex; flex-wrap: wrap; gap: .5rem; }
.contact__social a { font-weight: 700; font-size: .85rem; border: 2px solid var(--encre,#141414); padding: .3rem .7rem; text-decoration: none; color: var(--encre,#141414); }
.contact__social a:hover { background: var(--encre,#141414); color: #fff; }
.contact__note { font-size: .85rem; color: #777; font-style: italic; margin-top: 1.4rem; }

/* Plan du site */
.sitemap { max-width: var(--maxw,1200px); margin: 0 auto; padding: clamp(1.5rem,4vw,2.5rem) clamp(1rem,4vw,3rem) clamp(3rem,6vw,4.5rem); }
.sitemap__grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 2rem; }
.sitemap__col h2 { font-family: var(--font-display,"Anton",sans-serif); text-transform: uppercase; font-size: 1.1rem; border-bottom: 3px solid var(--rouge,#d71920); padding-bottom: .4rem; margin: 0 0 .8rem; }
.sitemap__col ul { list-style: none; padding: 0; margin: 0; }
.sitemap__col li { margin: .4rem 0; }
.sitemap__col a { color: #2a2926; text-decoration: none; font-weight: 600; }
.sitemap__col a:hover { color: var(--rouge,#d71920); }

@media (max-width:760px){
  .contact__grid { grid-template-columns: 1fr; }
  .contact-form__row { grid-template-columns: 1fr; }
}

/* ============================================================
   REFONTE CLAUDE DESIGN — accueil (valeurs extraites de la maquette)
   ============================================================ */

/* ---------- Helpers grilles ---------- */
.pg-2col { display: grid; align-items: center; }
@media (max-width: 880px) { .pg-2col { grid-template-columns: 1fr !important; } }

/* ---------- En-têtes de section (sech) ---------- */
.sech { max-width: 1240px; margin: 0 auto; padding: clamp(2.6rem,5vw,4rem) clamp(1.2rem,4vw,3rem) 1.8rem; }
.sech--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; flex-wrap: wrap; }
.sech__kicker { display: flex; align-items: center; gap: .5rem; font-weight: 800; font-size: .78rem; text-transform: uppercase; letter-spacing: .16em; color: var(--vert-fonce,#4e8a14); margin: 0 0 1rem; }
.sech__kicker--green { color: var(--vert,#76b82a); }
.sech__dot { width: 9px; height: 9px; }
.sech__dot--red { background: var(--rouge,#d71920); }
.sech__dot--green { background: var(--vert,#76b82a); }
.sech__title { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(2.2rem,5vw,3.6rem); line-height: .98; letter-spacing: .01em; margin: 0 0 .8rem; }
.sech__sub { color: var(--gris,#6b6b6b); font-size: 1.05rem; max-width: 60ch; margin: 0; }
.sech--dark .sech__sub { color: rgba(255,255,255,.72); }
.sech__link { font-weight: 700; color: var(--rouge,#d71920); text-decoration: none; font-size: 1rem; border-bottom: 2px solid transparent; }
.sech__link:hover { border-bottom-color: var(--rouge,#d71920); }

/* ---------- À la une : alignement + vedette Anton ---------- */
.news__grid { max-width: 1240px; }
.card h3 { font-weight: 800; font-size: 1.14rem; }
.card--feature h3 { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase; font-size: clamp(1.5rem,2.8vw,2.2rem); line-height: 1.04; }
.card--feature .card__media { height: clamp(240px,40vh,440px); }
.card:hover { box-shadow: 6px 6px 0 var(--encre,#141414); }
.card--feature:hover { box-shadow: 8px 8px 0 var(--encre,#141414); }

/* ---------- Présidentielle 2027 (pg27) ---------- */
.pg27 { position: relative; background: #141414; color: #fff; overflow: hidden; min-height: 100vh; display: grid; place-items: center; }
.pg27__bg {
  position: absolute; inset: 0; z-index: 0; transform: scale(1.04);
  background: image-set(url("../img/grand-meeting-2027.webp") type("image/webp"), url("../img/grand-meeting-2027.jpg") type("image/jpeg")) center 30% / cover no-repeat;
  animation: pg-kb 26s ease-in-out infinite alternate;
}
.pg27__shade { position: absolute; inset: 0; z-index: 0; background: linear-gradient(102deg, rgba(13,9,9,.95) 0%, rgba(13,9,9,.84) 46%, rgba(13,9,9,.55) 100%); }
.pg27__wm {
  position: absolute; right: -2%; top: 50%; transform: translateY(-50%); z-index: 1;
  font-family: var(--font-display,Anton); font-size: clamp(11rem,28vw,24rem); line-height: 1;
  color: transparent; -webkit-text-stroke: 2px rgba(168,85,247,.24); pointer-events: none;
  animation: pg-drift 14s ease-in-out infinite alternate;
}
.pg27__glows { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(55% 80% at 12% 20%, rgba(124,58,237,.34), transparent 65%), radial-gradient(45% 70% at 88% 85%, rgba(168,85,247,.26), transparent 60%); }
.pg27__spot { position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0; transition: opacity .4s ease; background: radial-gradient(480px at var(--mx,50%) var(--my,40%), rgba(168,85,247,.24), rgba(124,58,237,.12) 45%, transparent 68%); mix-blend-mode: screen; }
.pg27__grid { position: relative; z-index: 2; width: 100%; max-width: 1140px; margin: 0 auto; padding: clamp(2.2rem,4.5vw,3.4rem) clamp(1.2rem,4vw,3rem); grid-template-columns: 1.05fr .95fr; gap: clamp(1.8rem,4vw,3.4rem); }
.pg27__kicker { display: inline-flex; align-items: center; gap: .6rem; background: #5a189a; color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; padding: .4rem 1rem; margin: 0 0 1.3rem; }
.pg27__kdot { width: 9px; height: 9px; border-radius: 50%; background: #fff; animation: pg-blink2 1.6s ease-in-out infinite; }
.pg27__title { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(2.6rem,5.5vw,4.6rem); line-height: .98; margin: 0 0 .9rem; color: #fff; }
.pg27__title em, .p27-glow { font-style: normal; color: #b06bff; animation: pg-glowg 2.8s ease-in-out infinite; }
.pg27__lead { font-size: 1.04rem; color: rgba(255,255,255,.82); max-width: 44ch; margin: 0 0 1.8rem; }
.pg27__cta { display: flex; gap: .9rem 1.1rem; flex-wrap: wrap; align-items: center; }
.pg27__btn { display: inline-block; font-weight: 800; font-size: 1rem; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; padding: .9rem 1.8rem; border-radius: 4px; background: #5a189a; color: #fff; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.pg27__btn:hover { background: #4a1380; transform: translate(-2px,-2px); box-shadow: 6px 6px 0 rgba(0,0,0,.45); }
.pg27__link { font-weight: 700; color: #fff; text-decoration: none; border-bottom: 3px solid #b06bff; padding-bottom: 2px; font-size: 1rem; }
.pg27__link:hover { color: #b06bff; }
.pg27__watch { display: inline-flex; align-items: center; gap: .5em; font-weight: 700; color: rgba(255,255,255,.85); text-decoration: none; font-size: .95rem; }
.pg27__watch svg { color: #b06bff; }
.pg27__watch:hover { color: #fff; }
.pg27__card { background: rgba(10,7,7,.5); border: 1px solid rgba(255,255,255,.16); border-radius: 6px; -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); padding: clamp(1.3rem,2.6vw,1.9rem); }
.pg27__label { display: flex; align-items: center; gap: .5rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .7rem; color: #b06bff; margin: 0 0 1rem; }
.pg27__label > span { width: 7px; height: 7px; border-radius: 50%; background: #b06bff; }
.pg27__cells { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; margin-bottom: 1.4rem; }
.pg27__cell { display: flex; flex-direction: column; align-items: center; gap: .25rem; padding: .7rem .2rem; background: rgba(124,58,237,.16); border: 1px solid rgba(168,85,247,.32); border-radius: 4px; }
.pg27__cell b { font-family: var(--font-display,Anton); font-size: clamp(1.7rem,4.4vw,2.7rem); line-height: .9; font-weight: 400; color: #fff; font-variant-numeric: tabular-nums; }
.pg27__cell > span { font-size: .58rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; color: rgba(255,255,255,.66); }
.pg27__sep { height: 1px; background: rgba(255,255,255,.14); margin: 0 0 1.3rem; }
.pg27__meter { position: relative; transform: rotate(-1.5deg); background: #5a189a; border: 2px solid #7c3aed; border-radius: 999px; padding: .45rem; box-shadow: 0 12px 34px rgba(124,58,237,.5); margin-bottom: .4rem; }
.pg27__meter-track { position: relative; height: clamp(42px,7vw,54px); border-radius: 999px; background: rgba(255,255,255,.16); overflow: hidden; }
.pg27__meter-fill { position: absolute; left: 0; top: 0; bottom: 0; width: var(--pct, 89%); background: linear-gradient(90deg,#7c3aed,#b06bff); border-radius: 999px; transition: width 2s cubic-bezier(.22,1,.36,1); }
.pg27__meter-text { position: absolute; inset: 0; display: flex; align-items: center; gap: .5rem; padding: 0 1.3rem; pointer-events: none; }
.pg27__meter-big { font-family: var(--font-display,Anton); font-size: clamp(1.6rem,4.4vw,2.6rem); color: #fff; line-height: 1; text-shadow: 0 2px 8px rgba(0,0,0,.35); font-variant-numeric: tabular-nums; }
.pg27__meter-goal { font-family: var(--font-display,Anton); font-size: clamp(1rem,2.4vw,1.5rem); color: rgba(255,255,255,.7); line-height: 1; }
.pg27__meter-turtle { position: absolute; left: var(--pct, 89%); top: 50%; transform: translate(-58%,-80%) scaleX(-1); font-size: 36px; line-height: 1; pointer-events: none; filter: drop-shadow(0 2px 4px rgba(0,0,0,.55)); }
.pg27__meter-turtle > span { display: inline-block; animation: pg-walk .45s ease-in-out infinite; }
.pg27__check { display: flex; align-items: center; gap: .45rem; margin-top: 1rem; font-weight: 800; font-size: .92rem; color: #fff; flex-wrap: wrap; }
.pg27__check-ico { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--vert,#76b82a); color: #fff; font-size: .78rem; flex-shrink: 0; }
.pg27__check-ok { color: var(--vert,#76b82a); }
.pg27__note { font-size: .92rem; color: #c9a8ff; margin: .6rem 0 0; font-weight: 800; letter-spacing: .01em; }

/* ---------- Nos combats (cbt) ---------- */
.cbt { background: #141414; color: #fff; position: relative; overflow: hidden; }
.cbt__spot { position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0; transition: opacity .35s ease; background: radial-gradient(440px at var(--mx,50%) var(--my,40%), rgba(118,184,42,.2), rgba(215,25,32,.09) 42%, transparent 66%); }
.cbt .sech { position: relative; z-index: 1; }
.cbt .sech__title { color: #fff; }
.cbt__stage { max-width: 1240px; margin: 0 auto; padding: 0 clamp(1.2rem,4vw,3rem) clamp(2.6rem,5vw,4rem); position: relative; z-index: 1; display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(1.4rem,4vw,3rem); align-items: stretch; }
.cbt__list { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.16); align-self: center; }
.cbt__row { display: flex; align-items: center; gap: 1rem; padding: 1.05rem .3rem; border-bottom: 1px solid rgba(255,255,255,.16); cursor: pointer; color: #fff; transition: padding .28s cubic-bezier(.2,.7,.2,1), background .28s ease; }
.cbt__num { font-family: var(--font-display,Anton); font-size: 1.05rem; color: rgba(255,255,255,.42); width: 2rem; flex-shrink: 0; transition: color .25s ease; }
.cbt__rtitle { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(1.05rem,1.9vw,1.55rem); letter-spacing: .01em; line-height: 1; transition: transform .28s ease; }
.cbt__arrow { margin-left: auto; font-family: var(--font-display,Anton); color: var(--vert,#76b82a); opacity: 0; transform: translateX(-10px); transition: opacity .25s ease, transform .25s ease; }
.cbt__row:hover .cbt__num { color: #fff; }
.cbt__row.is-active { padding-left: 1.1rem; background: linear-gradient(90deg, rgba(255,255,255,.07), transparent 80%); }
.cbt__row.is-active .cbt__num { color: #fff; }
.cbt__row.is-active .cbt__rtitle { transform: translateX(5px); }
.cbt__row.is-active .cbt__arrow { opacity: 1; transform: none; }
.cbt__show { position: relative; overflow: hidden; border: 3px solid rgba(255,255,255,.18); background: rgba(255,255,255,.03); padding: clamp(1.6rem,3vw,2.6rem); display: flex; flex-direction: column; justify-content: center; min-height: 360px; --accent: #d71920; }
.cbt__show::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 5px; background: var(--accent); transition: background .3s ease; }
.cbt__snum { position: absolute; right: -1.2rem; top: -3rem; font-family: var(--font-display,Anton); font-size: clamp(9rem,20vw,17rem); line-height: 1; color: var(--accent); opacity: .16; pointer-events: none; }
.cbt__skicker { position: relative; font-family: var(--font-display,Anton); text-transform: uppercase; letter-spacing: .16em; font-size: .82rem; color: var(--accent); margin-bottom: .9rem; }
.cbt__stitle { position: relative; font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(1.9rem,3.6vw,3rem); line-height: 1; margin: 0 0 1rem; color: #fff; }
.cbt__sbody { position: relative; font-size: 1.04rem; line-height: 1.6; color: rgba(255,255,255,.82); max-width: 46ch; margin: 0 0 1.7rem; }
.cbt__cta { position: relative; align-self: flex-start; display: inline-flex; align-items: center; gap: .5rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .95rem; color: #fff; text-decoration: none; border-bottom: 3px solid var(--accent); padding-bottom: 3px; }
.cbt__cta span { transition: transform .2s ease; }
.cbt__cta:hover span { transform: translateX(5px); }
.cbt__show.swap .cbt__skicker { animation: pg-swap .5s ease both; }
.cbt__show.swap .cbt__stitle { animation: pg-swap .5s .06s ease both; }
.cbt__show.swap .cbt__sbody { animation: pg-swap .5s .12s ease both; }
.cbt__show.swap .cbt__snum { animation: pg-swapnum .55s ease both; }

/* ---------- Notre histoire (timeline) ---------- */
.hist { background: var(--papier,#faf7f0); }
.tl-wrap { position: relative; max-width: 1080px; margin: 0 auto; padding: 1.4rem clamp(1.2rem,4vw,3rem); }
.tl-rail { position: absolute; top: .2rem; bottom: .2rem; left: clamp(1.2rem,4vw,3rem); width: 5px; z-index: 0; }
.tl-rail-base { position: absolute; inset: 0; background: rgba(20,20,20,.13); border-radius: 3px; }
.tl-rail-fill { position: absolute; inset: 0; background: linear-gradient(to bottom, var(--rouge,#d71920), var(--vert,#76b82a)); border-radius: 3px; }
.tl-item { position: relative; padding-left: 3.4rem; margin-bottom: 2.4rem; box-sizing: border-box; }
.tl-dot { position: absolute; left: clamp(1.2rem,4vw,3rem); top: .6rem; width: 15px; height: 15px; background: var(--rouge,#d71920); border: 3px solid var(--papier,#faf7f0); box-shadow: 0 0 0 3px var(--rouge,#d71920); transform: translateX(calc(-50% + 2.5px)); z-index: 2; }
.tl-item:nth-of-type(even) .tl-dot { background: var(--vert-fonce,#4e8a14); box-shadow: 0 0 0 3px var(--vert-fonce,#4e8a14); }
.tl-year { font-family: var(--font-display,Anton); font-size: clamp(2.2rem,4.6vw,3.4rem); line-height: 1; color: var(--rouge,#d71920); margin-bottom: .6rem; }
.tl-item:nth-of-type(even) .tl-year { color: var(--vert-fonce,#4e8a14); }
.tl-card { background: #fff; border: 3px solid var(--encre,#141414); overflow: hidden; transition: transform .15s ease, box-shadow .15s ease; }
.tl-card:hover { transform: translate(-3px,-3px); box-shadow: 7px 7px 0 var(--encre,#141414); }
.tl-fig { position: relative; border-bottom: 3px solid var(--encre,#141414); overflow: hidden; }
.tl-fig img { width: 100%; aspect-ratio: 16/9; height: auto; object-fit: cover; display: block; filter: grayscale(.35) contrast(1.06); }
.tl-fig::after { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg, rgba(167,15,21,.42), transparent 55%, rgba(78,138,20,.3)); mix-blend-mode: multiply; pointer-events: none; }
.tl-body { padding: 1.2rem 1.3rem 1.3rem; }
.tl-body h3 { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: 1.3rem; letter-spacing: .01em; margin: 0 0 .5rem; }
.tl-body p { font-size: .95rem; color: #333; line-height: 1.6; margin: 0; }
@media (min-width: 900px) {
  .tl-rail { left: 50%; transform: translateX(-50%); }
  .tl-item { width: 50%; padding-left: 0; margin-bottom: 1.4rem; }
  .tl-item:nth-of-type(odd) { padding-right: 3.4rem; text-align: right; }
  .tl-item:nth-of-type(even) { margin-left: 50%; padding-left: 3.4rem; }
  .tl-item:nth-of-type(odd) .tl-dot { left: auto; right: 0; transform: translateX(calc(50% + 2.5px)); }
  .tl-item:nth-of-type(even) .tl-dot { left: 0; transform: translateX(calc(-50% + 2.5px)); }
}
.hist__quote { max-width: 800px; margin: 0 auto; padding: 1rem clamp(1.2rem,4vw,3rem) clamp(2.6rem,5vw,4rem); text-align: center; }
.hist__quote p { font-family: var(--font-display,Anton); font-size: clamp(1.5rem,3.4vw,2.4rem); text-transform: uppercase; line-height: 1.25; margin: 0 0 .8rem; }
.hist__quote cite { font-style: normal; color: var(--gris,#6b6b6b); font-size: .9rem; }

/* ---------- Trait d'union (tup) ---------- */
.tup { background: #120a1e; color: #fff; position: relative; overflow: hidden; }
.tup__glows { position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 90% at 80% 20%, rgba(168,85,247,.35), transparent 65%), radial-gradient(50% 80% at 15% 85%, rgba(217,70,160,.25), transparent 60%); }
.tup__grid { position: relative; max-width: 1240px; margin: 0 auto; padding: clamp(2.6rem,5vw,4rem) clamp(1.2rem,4vw,3rem); grid-template-columns: 1.1fr 1fr; gap: clamp(2rem,5vw,4rem); }
.tup__kicker { display: inline-block; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; font-size: .78rem; color: #d8b4fe; margin: 0 0 .9rem; }
.tup__title { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(1.9rem,3.8vw,3rem); line-height: 1.08; margin: 0 0 1rem; color: #fff; }
.tup__lead { color: rgba(255,255,255,.8); max-width: 52ch; margin: 0 0 1.6rem; }
.tup__cta { display: flex; gap: .9rem; flex-wrap: wrap; }
.tup__btn { display: inline-flex; align-items: center; gap: .5em; font-weight: 800; font-size: 1.05rem; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; padding: .95rem 1.9rem; border-radius: 4px; background: #a855f7; color: #fff; transition: transform .15s ease, background .15s ease, border-color .15s ease; }
.tup__btn:hover { background: #9333ea; transform: translate(-2px,-2px); }
.tup__btn--ghost { background: transparent; border: 3px solid rgba(255,255,255,.6); }
.tup__btn--ghost:hover { background: transparent; border-color: #fff; }
.tup__neon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: clamp(1.6rem,4vw,3rem) clamp(1rem,3vw,2rem); border: 1px solid rgba(168,85,247,.4); border-radius: 12px; background: rgba(168,85,247,.07); box-shadow: 0 0 70px rgba(168,85,247,.25), inset 0 0 40px rgba(168,85,247,.08); }
.tup__neon-word { font-family: var(--font-display,Anton); text-transform: uppercase; line-height: .84; text-align: center; letter-spacing: .02em; font-size: clamp(2.6rem,7vw,5rem); color: #fff; }
.tup__neon-word span { display: inline-block; text-shadow: 0 0 16px rgba(168,85,247,.6), 0 0 36px rgba(217,70,160,.32); animation: pg-glow 2.6s ease-in-out infinite; }
.tup__neon-sub { font-weight: 800; text-transform: uppercase; letter-spacing: .28em; font-size: .7rem; color: #d8b4fe; margin-top: .5rem; }

/* ---------- La revue (rev) ---------- */
.rev { background: #e8342a; color: #fff; overflow: hidden; }
.rev__grid { max-width: 1240px; margin: 0 auto; padding: clamp(2.6rem,5vw,4rem) clamp(1.2rem,4vw,3rem); grid-template-columns: 1fr 1.2fr; gap: clamp(2rem,5vw,4rem); }
.rev__covers { position: relative; display: flex; justify-content: center; }
.rev__covers img:first-child { width: min(280px,70%); height: auto; border: 4px solid #fff; box-shadow: 14px 14px 0 rgba(0,0,0,.35); transform: rotate(-3deg); }
.rev__covers img:last-child { position: absolute; width: min(170px,42%); height: auto; right: 4%; bottom: -8%; transform: rotate(5deg); border: 4px solid #fff; box-shadow: 8px 8px 0 rgba(0,0,0,.35); }
.rev__kicker { display: inline-block; background: #fff; color: #e8342a; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; padding: .3rem .8rem; margin: 0 0 1rem; }
.rev__title { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(1.9rem,3.8vw,3rem); line-height: 1.08; margin: 0 0 1rem; color: #fff; }
.rev__lead { color: rgba(255,255,255,.92); max-width: 52ch; margin: 0 0 1.6rem; }
.rev__cta { display: flex; gap: .9rem; flex-wrap: wrap; }
.rev__btn { display: inline-block; font-weight: 800; font-size: 1.05rem; text-decoration: none; text-transform: uppercase; letter-spacing: .04em; padding: .95rem 1.9rem; border-radius: 4px; transition: transform .15s ease; }
.rev__btn:hover { transform: translate(-2px,-2px); }
.rev__btn--dark { background: var(--encre,#141414); color: #fff; }
.rev__btn--white { background: #fff; color: var(--encre,#141414); }

/* ---------- Adhérer (adh, sur .counter) ---------- */
.counter.adh { background: var(--vert-fonce,#4e8a14); color: var(--encre,#141414); }
.adh__grid { max-width: 1240px; margin: 0 auto; grid-template-columns: 1fr 1.1fr; gap: clamp(2rem,5vw,4.5rem); padding: clamp(2.4rem,4.5vw,3.6rem) clamp(1.2rem,4vw,3rem); }
.adh__value { font-family: var(--font-display,Anton); font-size: clamp(4rem,9vw,7rem); line-height: 1; color: #fff; text-shadow: 5px 5px 0 var(--encre,#141414); }
.adh__bar { height: 18px; background: rgba(20,20,20,.25); border: 3px solid var(--encre,#141414); margin: 1.2rem 0 .8rem; }
.adh__bar-fill { height: 100%; width: 82%; background: var(--rouge,#d71920); transition: width 1.8s cubic-bezier(.22,1,.36,1); }
.adh__caption { font-weight: 600; font-size: 1.05rem; margin: 0; }
.adh .join-form { background: #fff; border: 3px solid var(--encre,#141414); box-shadow: 10px 10px 0 var(--encre,#141414); padding: clamp(1.5rem,3vw,2.2rem); }

/* ---------- Don (restylage du bloc existant) ---------- */
.donate { background: var(--papier,#faf7f0); }
.donate__inner { max-width: 1240px; grid-template-columns: 1.2fr 1fr; gap: clamp(2rem,5vw,4rem); }
.donate__text h2 { font-family: var(--font-display,Anton); text-transform: uppercase; font-size: clamp(1.9rem,3.6vw,2.9rem); line-height: 1.1; }
.donate__form { background: #fff; border: 3px solid var(--encre,#141414); box-shadow: 10px 10px 0 var(--vert,#76b82a); padding: clamp(1.5rem,3vw,2rem); }
.donate__amounts { display: grid; grid-template-columns: repeat(4,1fr); gap: .6rem; }
@media (max-width: 880px) {.donate__inner { grid-template-columns: 1fr; } }
.amount { font-family: var(--font-display,Anton); font-size: 1.15rem; padding: .7rem 0; border-radius: 4px; cursor: pointer; transition: background .12s; background: var(--papier,#faf7f0); color: var(--encre,#141414); border: 2px solid var(--encre,#141414); }
.amount--active { background: var(--vert-fonce,#4e8a14); color: #fff; border-color: var(--vert-fonce,#4e8a14); }

/* ---------- Footer (alignement design) ---------- */
.footer { background: var(--encre,#141414); color: rgba(255,255,255,.8); }
.footer__col h4, .footer__col .footer__h { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase; letter-spacing: .06em; font-size: 1rem; margin: 0 0 .4rem; color: var(--vert,#76b82a); }

/* ---------- Animations & entrée en vue ---------- */
@keyframes pg-kb { from { transform: scale(1.04); } to { transform: scale(1.16) translate(-1.5%,-1%); } }
@keyframes pg-drift { from { transform: translateY(-52%); } to { transform: translateY(-46%); } }
@keyframes pg-blink2 { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes pg-swap { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes pg-swapnum { from { opacity: 0; transform: translateX(50px); } to { opacity: .16; transform: none; } }
@keyframes pg-glow { 0%, 100% { text-shadow: 0 0 7px rgba(168,85,247,.65), 0 0 22px rgba(168,85,247,.5), 0 0 46px rgba(217,70,160,.32); } 50% { text-shadow: 0 0 13px rgba(217,70,160,.95), 0 0 36px rgba(168,85,247,.85), 0 0 78px rgba(168,85,247,.6); } }
@keyframes pg-glowg { 0%, 100% { text-shadow: 0 0 16px rgba(168,85,247,.55), 0 0 40px rgba(168,85,247,.32); } 50% { text-shadow: 0 0 26px rgba(168,85,247,.95), 0 0 72px rgba(168,85,247,.55); } }
@keyframes pg-pop { from { opacity: 0; transform: translateY(56px) scale(.93); } to { opacity: 1; transform: none; } }
@supports (animation-timeline: view()) {
  [data-anim-pop] { animation: pg-pop both; animation-timeline: view(); animation-range: entry 0% cover 32%; }
}

/* ---------- Responsive sections refonte ---------- */
@media (max-width: 880px) {
  .cbt__stage { grid-template-columns: 1fr; }
  .cbt__show { min-height: 300px; }
  .pg27 { min-height: 0; }
  .rev__covers { margin-bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .pg27__bg, .pg27__wm, .pg27__kdot, .p27-glow, .pg27__title em, .tup__neon-word span,
  .pg27__meter-turtle > span, [data-anim-pop] { animation: none !important; }
}

/* ============================================================
   ERGONOMIE & ANIMATIONS — passe de polish
   ============================================================ */
/* Ancres : défilement doux + marge sous l'en-tête collant */
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
main section[id], section[id] { scroll-margin-top: 124px; }

/* Clavier : focus visibles partout (vert sur fonds sombres) */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--rouge, #d71920); outline-offset: 2px;
}
.cbt :focus-visible, .pg27 :focus-visible, .tup :focus-visible,
.footer :focus-visible, .topbar :focus-visible, .pg-search-panel :focus-visible {
  outline-color: var(--vert, #76b82a);
}
.cbt__row { user-select: none; }
.cbt__row:focus-visible { outline-offset: -3px; }

/* Boutons : retour tactile au clic */
.btn:active, .pg27__btn:active, .tup__btn:active, .rev__btn:active,
.amount:active, .pg-search__submit:active, .act2__card:active { transform: translate(0, 1px) scale(.985); }

/* Cascade d'apparition des cartes dans les sections révélées */
main > section.reveal .news__grid .card,
main > section.reveal .act2__card,
main > section.reveal .tl-item,
main > section.reveal .cbt__row { opacity: 0; transform: translateY(18px); }
main > section.reveal--visible .news__grid .card,
main > section.reveal--visible .act2__card,
main > section.reveal--visible .tl-item,
main > section.reveal--visible .cbt__row { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s ease; }
main > section.reveal--visible .news__grid .card:nth-child(2),
main > section.reveal--visible .act2__card:nth-child(2),
main > section.reveal--visible .tl-item:nth-of-type(2),
main > section.reveal--visible .cbt__row:nth-child(2) { transition-delay: .08s; }
main > section.reveal--visible .news__grid .card:nth-child(3),
main > section.reveal--visible .act2__card:nth-child(3),
main > section.reveal--visible .tl-item:nth-of-type(3),
main > section.reveal--visible .cbt__row:nth-child(3) { transition-delay: .16s; }
main > section.reveal--visible .news__grid .card:nth-child(4),
main > section.reveal--visible .act2__card:nth-child(4),
main > section.reveal--visible .tl-item:nth-of-type(4),
main > section.reveal--visible .cbt__row:nth-child(4) { transition-delay: .24s; }
main > section.reveal--visible .cbt__row:nth-child(5) { transition-delay: .32s; }

/* Badge du hero : pop après le reste */
.hero__badge { animation: pg-rise .5s .75s ease both; }

/* Formulaire adhésion : champs alignés sur la maquette */
.adh .join-form input { border: 2px solid var(--encre, #141414); border-radius: 4px; background: var(--papier, #faf7f0); }

/* Rail timeline animé au défilement (JS) */
.tl-rail-fill { will-change: transform; transform-origin: top center; }

@media (prefers-reduced-motion: reduce) {
  main > section.reveal .news__grid .card, main > section.reveal .act2__card,
  main > section.reveal .tl-item, main > section.reveal .cbt__row { opacity: 1; transform: none; }
  .hero__badge { animation: none; }
}

/* ============================================================
   AGIR — cartes color-block (refonte graphique)
   ============================================================ */
.act3 { position: relative; background: var(--papier, #faf7f0); border-top: 3px solid var(--encre, #141414); overflow: hidden; }
.act3::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .7;
  background: repeating-linear-gradient(135deg, rgba(20,20,20,.04) 0 2px, transparent 2px 26px);
}
.act3__wm {
  position: absolute; right: -2%; bottom: -7%; z-index: 0;
  font-family: var(--font-display, Anton); text-transform: uppercase;
  font-size: clamp(9rem, 22vw, 20rem); line-height: .8; letter-spacing: -.01em;
  color: transparent; -webkit-text-stroke: 2px rgba(20,20,20,.06); pointer-events: none;
}
.act3 .sech { position: relative; z-index: 1; }
.act3__grid {
  position: relative; z-index: 1; max-width: 1240px; margin: 0 auto;
  padding: .4rem clamp(1.2rem, 4vw, 3rem) clamp(3rem, 6vw, 4.5rem);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; align-items: start;
}
.act3__card {
  position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .6rem;
  min-height: 290px; padding: 1.6rem 1.4rem 1.5rem; text-decoration: none;
  border: 3px solid var(--encre, #141414);
  transition: transform .18s ease, box-shadow .18s ease;
}
.act3__card:hover { transform: translate(-4px, -4px); box-shadow: 8px 8px 0 var(--encre, #141414); }
@media (min-width: 981px) {
  .act3__card:nth-child(2), .act3__card:nth-child(4) { margin-top: 1.7rem; }
}
.act3__step { position: relative; z-index: 1; font-weight: 800; font-size: .68rem; text-transform: uppercase; letter-spacing: .16em; opacity: .75; }
.act3__num {
  position: absolute; top: -1.6rem; right: -.7rem; z-index: 0;
  font-family: var(--font-display, Anton); font-size: 7rem; line-height: 1; pointer-events: none;
  transition: transform .25s ease;
}
.act3__card:hover .act3__num { transform: translate(-5px, 7px); }
.act3__card h3 { position: relative; z-index: 1; font-family: var(--font-display, Anton); font-weight: 400; text-transform: uppercase; font-size: 1.5rem; line-height: 1.05; margin: 0; }
.act3__card p { position: relative; z-index: 1; font-size: .92rem; line-height: 1.55; margin: 0; flex: 1; }
.act3__link { position: relative; z-index: 1; align-self: flex-start; display: inline-flex; align-items: center; gap: .45rem; font-weight: 800; font-size: .9rem; border-bottom: 3px solid currentColor; padding-bottom: 2px; margin-top: .4rem; }
.act3__arr { transition: transform .2s ease; }
.act3__card:hover .act3__arr { transform: translateX(6px); }

.act3__card--red { background: var(--rouge, #d71920); color: #fff; }
.act3__card--red p { color: rgba(255,255,255,.88); }
.act3__card--red .act3__num { color: rgba(255,255,255,.2); }
.act3__card--paper { background: #fff; color: var(--encre, #141414); }
.act3__card--paper p { color: var(--gris, #6b6b6b); }
.act3__card--paper .act3__num { color: rgba(215,25,32,.14); }
.act3__card--paper .act3__link { color: var(--rouge, #d71920); }
.act3__card--ink { background: var(--encre, #141414); color: #fff; }
.act3__card--ink p { color: rgba(255,255,255,.8); }
.act3__card--ink .act3__num { color: rgba(215,25,32,.5); }
.act3__card--ink .act3__link { color: var(--vert, #76b82a); }
.act3__card--ink:hover { box-shadow: 8px 8px 0 var(--rouge, #d71920); }
.act3__card--green { background: var(--vert, #76b82a); color: var(--encre, #141414); }
.act3__card--green p { color: rgba(20,20,20,.78); }
.act3__card--green .act3__num { color: rgba(255,255,255,.34); }

@media (max-width: 980px) { .act3__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .act3__grid { grid-template-columns: 1fr; } .act3__card { min-height: 0; } }

/* ---------- Cascade d'apparition : passage en animation (backwards)
   pour ne plus ramollir les transitions de survol après l'entrée ---------- */
main > section.reveal .news__grid .card,
main > section.reveal .act2__card,
main > section.reveal .tl-item,
main > section.reveal .cbt__row,
main > section.reveal .act3__card { opacity: 1; transform: none; }
main > section.reveal--visible .news__grid .card,
main > section.reveal--visible .act2__card,
main > section.reveal--visible .tl-item,
main > section.reveal--visible .cbt__row,
main > section.reveal--visible .act3__card {
  opacity: 1; transform: none; transition: transform .18s ease, box-shadow .18s ease;
  animation: pg-up2 .5s ease backwards;
}
main > section.reveal--visible .news__grid .card:nth-child(2),
main > section.reveal--visible .act2__card:nth-child(2),
main > section.reveal--visible .tl-item:nth-of-type(2),
main > section.reveal--visible .cbt__row:nth-child(2),
main > section.reveal--visible .act3__card:nth-child(2) { animation-delay: .08s; }
main > section.reveal--visible .news__grid .card:nth-child(3),
main > section.reveal--visible .act2__card:nth-child(3),
main > section.reveal--visible .tl-item:nth-of-type(3),
main > section.reveal--visible .cbt__row:nth-child(3),
main > section.reveal--visible .act3__card:nth-child(3) { animation-delay: .16s; }
main > section.reveal--visible .news__grid .card:nth-child(4),
main > section.reveal--visible .act2__card:nth-child(4),
main > section.reveal--visible .tl-item:nth-of-type(4),
main > section.reveal--visible .cbt__row:nth-child(4),
main > section.reveal--visible .act3__card:nth-child(4) { animation-delay: .24s; }
main > section.reveal--visible .cbt__row:nth-child(5) { animation-delay: .32s; }
@keyframes pg-up2 { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  main > section.reveal--visible .news__grid .card, main > section.reveal--visible .act2__card,
  main > section.reveal--visible .tl-item, main > section.reveal--visible .cbt__row,
  main > section.reveal--visible .act3__card { animation: none; }
}

/* ============================================================
   PACK PREMIUM — palette ⌘K, halo, transitions, finitions
   ============================================================ */
/* Sélection de texte aux couleurs du parti */
::selection { background: var(--rouge, #d71920); color: #fff; }
.pg27 ::selection, .cbt ::selection, .tup ::selection { background: var(--vert, #76b82a); color: var(--encre, #141414); }

/* Barre de défilement affinée */
html { scrollbar-color: var(--encre, #141414) #e8e2d4; scrollbar-width: thin; }
::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: #e8e2d4; }
::-webkit-scrollbar-thumb { background: var(--encre, #141414); border-radius: 8px; border: 2px solid #e8e2d4; }
::-webkit-scrollbar-thumb:hover { background: var(--rouge, #d71920); }

/* Transitions de page (View Transitions API — amélioration progressive) */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  ::view-transition-old(root) { animation-duration: .22s; }
  ::view-transition-new(root) { animation-duration: .22s; }
}

/* Palette de raccourcis dans le panneau de recherche */
.pg-quick { max-width: var(--maxw, 1200px); margin: .9rem auto 0; }
.pg-quick__label { font-weight: 800; text-transform: uppercase; letter-spacing: .14em; font-size: .66rem; color: rgba(255,255,255,.55); margin: 0 0 .55rem; }
.pg-quick__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.pg-quick__item {
  display: flex; align-items: center; gap: .6rem;
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 6px;
  color: #fff; text-decoration: none; font-weight: 700; font-size: .92rem; padding: .6rem .8rem;
  transition: background .12s ease, border-color .12s ease, transform .12s ease;
}
.pg-quick__item:hover { background: rgba(215,25,32,.35); border-color: rgba(215,25,32,.75); transform: translateY(-1px); }
.pg-quick__ico { flex-shrink: 0; }
.pg-quick__arr { margin-left: auto; opacity: 0; transform: translateX(-6px); transition: opacity .15s ease, transform .15s ease; color: var(--vert, #76b82a); }
.pg-quick__item:hover .pg-quick__arr { opacity: 1; transform: none; }
.pg-quick__hint { margin: .8rem 0 0; font-size: .74rem; color: rgba(255,255,255,.45); }
.pg-quick__hint kbd {
  display: inline-block; font: 700 .72rem/1 var(--font-body, Inter); color: #fff;
  background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.25); border-bottom-width: 2px;
  border-radius: 4px; padding: .18rem .4rem; margin: 0 .1rem;
}
@media (max-width: 760px) { .pg-quick__grid { grid-template-columns: 1fr 1fr; } .pg-quick__hint { display: none; } }

/* Reflet balayant sur le CTA principal de l'en-tête */
.header__actions .btn--red { position: relative; overflow: hidden; }
@media (prefers-reduced-motion: no-preference) {
  .header__actions .btn--red::after {
    content: ""; position: absolute; top: -20%; bottom: -20%; left: -70%; width: 45%;
    background: linear-gradient(105deg, transparent, rgba(255,255,255,.42), transparent);
    transform: skewX(-18deg); animation: pg-shine 5.5s ease-in-out infinite;
  }
}
@keyframes pg-shine { 0%, 78% { left: -70%; } 92%, 100% { left: 150%; } }

/* Retour en haut (injecté en JS) */
#pg-top {
  position: fixed; right: 1.1rem; bottom: 1.1rem; z-index: 90;
  width: 46px; height: 46px; border-radius: 50%; border: 3px solid var(--encre, #141414);
  background: var(--papier, #faf7f0); color: var(--encre, #141414); cursor: pointer;
  display: grid; place-items: center;
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity .25s ease, transform .25s ease, background .15s ease, color .15s ease;
  box-shadow: 0 6px 18px rgba(20,20,20,.22);
}
#pg-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
#pg-top:hover { background: var(--encre, #141414); color: #fff; }
@media (max-width: 700px) { #pg-top { width: 42px; height: 42px; right: .8rem; bottom: .8rem; } }

/* ---------- Page 404 ---------- */
.nf { position: relative; overflow: hidden; background: var(--papier,#faf7f0); min-height: 62vh; display: grid; place-items: center; }
.nf::before { content: ""; position: absolute; inset: 0; opacity: .7; pointer-events: none; background: repeating-linear-gradient(135deg, rgba(20,20,20,.04) 0 2px, transparent 2px 26px); }
.nf__wm { position: absolute; right: -3%; bottom: -12%; font-family: var(--font-display,Anton); font-size: clamp(14rem,34vw,34rem); line-height: .8; color: transparent; -webkit-text-stroke: 2px rgba(215,25,32,.09); pointer-events: none; }
.nf__inner { position: relative; max-width: 720px; padding: clamp(3rem,7vw,5rem) clamp(1.2rem,4vw,3rem); }
.nf__kicker { display: inline-flex; align-items: center; gap: .5rem; background: var(--encre,#141414); color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; font-size: .76rem; padding: .4rem .9rem; border-radius: 3px; margin: 0 0 1.2rem; }
.nf__kicker > span { width: 7px; height: 7px; border-radius: 50%; background: var(--rouge,#d71920); }
.nf__title { font-family: var(--font-display,Anton); text-transform: uppercase; line-height: 1.2; font-size: clamp(2rem,5vw,3.4rem); margin: 0 0 1rem; }
.nf__sub { color: var(--gris,#6b6b6b); font-size: 1.06rem; margin: 0 0 1.4rem; max-width: 52ch; }
.nf .pg-search { max-width: 560px; }
.nf__links { display: flex; gap: .5rem 1.4rem; flex-wrap: wrap; margin-top: 1.5rem; }
.nf__links a { font-weight: 700; color: var(--encre,#141414); text-decoration: none; border-bottom: 3px solid var(--rouge,#d71920); padding-bottom: 2px; }
.nf__links a:hover { color: var(--rouge,#d71920); }

/* Mentions de financement (recherche juill. 2026 : loi 88-227, AFPG n°893) */
.donate__legal { font-size: .72rem; color: var(--gris,#6b6b6b); line-height: 1.5; margin-top: .8rem; }
.join-form__alt { font-size: .8rem; color: #444; margin-top: .6rem; }
.join-form__alt a { color: var(--rouge,#d71920); font-weight: 700; }


/* ============================================================
   VIE DÉMOCRATIQUE — organigramme, textes du CN, communiqués
   ============================================================ */
/* ---------- Organigramme ascendant ---------- */
.orga { background: var(--encre,#141414); color: #fff; position: relative; overflow: hidden; }
.orga::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.03) 0 2px, transparent 2px 28px); }
.orga .sech { position: relative; }
.orga .sech__title { color: #fff; }
.orga__stage { position: relative; max-width: 880px; margin: 0 auto; padding: .5rem clamp(1.2rem,4vw,3rem) 1rem; }
.orga__spine { position: absolute; left: 50%; top: 0; bottom: 0; width: 6px; transform: translateX(-50%); z-index: 0;
  background: repeating-linear-gradient(to top, var(--vert,#76b82a) 0 12px, transparent 12px 24px);
  opacity: .55; border-radius: 3px; }
@media (prefers-reduced-motion: no-preference) {
  .orga__spine { animation: orga-rise 1.2s linear infinite; }
}
@keyframes orga-rise { from { background-position: 0 0; } to { background-position: 0 -24px; } }
.orga__tip { position: absolute; top: -2px; left: 50%; transform: translateX(-50%);
  width: 0; height: 0; border-left: 11px solid transparent; border-right: 11px solid transparent;
  border-bottom: 14px solid var(--vert,#76b82a); }
.orga__flow { position: relative; z-index: 1; display: flex; flex-direction: column-reverse; align-items: center; gap: 0; padding: 1.6rem 0 .5rem; }
.orga__lvl { position: relative; width: min(640px,100%); background: #1b1b1b; border: 3px solid rgba(255,255,255,.18);
  padding: 1.5rem 1.6rem 1.4rem; transition: transform .18s ease, box-shadow .18s ease; }
.orga__lvl:hover { transform: translate(-3px,-3px); }
.orga__badge { display: inline-block; font-family: var(--font-display,Anton); text-transform: uppercase; letter-spacing: .12em;
  font-size: .74rem; padding: .3rem .7rem; margin-bottom: .8rem; background: rgba(255,255,255,.1); color: rgba(255,255,255,.85); }
.orga__lvl h2 { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase; font-size: clamp(1.4rem,3vw,2rem); line-height: 1.02; margin: 0 0 .6rem; }
.orga__lvl p { font-size: .97rem; line-height: 1.6; color: rgba(255,255,255,.8); margin: 0; max-width: 54ch; }
.orga__lvl--base { width: min(760px,100%); border-color: var(--vert,#76b82a); }
.orga__lvl--base .orga__badge { background: var(--vert,#76b82a); color: var(--encre,#141414); }
.orga__lvl--base:hover { box-shadow: 8px 8px 0 rgba(118,184,42,.55); }
.orga__cells { display: grid; grid-template-columns: repeat(3,1fr); gap: .6rem; margin-top: 1.1rem; }
.orga__cells span { display: flex; flex-direction: column; gap: .15rem; font-size: .78rem; color: rgba(255,255,255,.75);
  border: 1px solid rgba(255,255,255,.2); padding: .6rem .7rem; background: rgba(255,255,255,.04); }
.orga__cells strong { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase; letter-spacing: .04em; font-size: .92rem; color: #fff; }
.orga__lvl--congres { border-color: var(--rouge,#d71920); }
.orga__lvl--congres .orga__badge { background: var(--rouge,#d71920); color: #fff; }
.orga__lvl--congres:hover { box-shadow: 8px 8px 0 rgba(215,25,32,.55); }
.orga__lvl--cn { background: var(--papier,#faf7f0); color: var(--encre,#141414); border-color: var(--papier,#faf7f0); }
.orga__lvl--cn h2 { color: var(--encre,#141414); }
.orga__lvl--cn p { color: #3a3633; }
.orga__lvl--cn .orga__badge { background: var(--encre,#141414); color: #fff; }
.orga__lvl--cn:hover { box-shadow: 8px 8px 0 rgba(250,247,240,.4); }
.orga__side { display: block; margin-top: .9rem; font-size: .8rem; color: #555;
  border-left: 4px solid var(--vert,#76b82a); padding: .35rem 0 .35rem .7rem; }
.orga__side strong { color: var(--encre,#141414); }
.orga__more { display: inline-block; margin-top: .9rem; font-weight: 800; font-size: .88rem; color: var(--rouge,#d71920);
  text-decoration: none; border-bottom: 3px solid var(--rouge,#d71920); padding-bottom: 2px; }
.orga__lvl--sen { border-color: rgba(215,25,32,.8); background: linear-gradient(180deg, #201113, #1b1b1b); }
.orga__lvl--sen .orga__badge { background: var(--rouge,#d71920); color: #fff; }
.orga__lvl--sen:hover { box-shadow: 8px 8px 0 rgba(215,25,32,.55); }
.orga__link { position: relative; z-index: 1; padding: .9rem 0; }
.orga__link i { display: inline-block; font-style: normal; font-family: var(--font-display,Anton); text-transform: uppercase;
  letter-spacing: .1em; font-size: .72rem; color: var(--vert,#76b82a); background: var(--encre,#141414);
  border: 1px solid rgba(118,184,42,.5); padding: .3rem .8rem; border-radius: 999px; }
.orga__note { position: relative; text-align: center; font-size: .82rem; color: rgba(255,255,255,.55);
  max-width: 880px; margin: 0 auto; padding: 0 clamp(1.2rem,4vw,3rem) clamp(2.6rem,5vw,4rem); }
.orga__note a { color: var(--vert,#76b82a); }
/* révélation ascendante : la base d'abord, puis ça monte */
main > section.reveal--visible .orga__lvl--base { animation: pg-up2 .5s ease backwards; }
main > section.reveal--visible .orga__lvl--congres { animation: pg-up2 .5s .14s ease backwards; }
main > section.reveal--visible .orga__lvl--cn { animation: pg-up2 .5s .28s ease backwards; }
main > section.reveal--visible .orga__lvl--sen { animation: pg-up2 .5s .42s ease backwards; }

/* ---------- Textes du CN : cartes-documents ---------- */
.cnx { background: var(--papier,#faf7f0); }
.cnx__wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(1.2rem,4vw,3rem) clamp(2.6rem,5vw,4rem); }
.cnx__grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1.6rem; }
.cnx__card { position: relative; display: flex; flex-direction: column; background: #fff; border: 3px solid var(--encre,#141414);
  text-decoration: none; color: var(--encre,#141414); transition: transform .18s ease, box-shadow .18s ease; }
.cnx__card::before { content: ""; position: absolute; inset: 10px -10px -10px 10px; background: #e9e3d5;
  border: 3px solid var(--encre,#141414); z-index: -1; transition: transform .18s ease; }
.cnx__card:hover { transform: translate(-3px,-3px); box-shadow: 7px 7px 0 var(--encre,#141414); }
.cnx__card:hover::before { transform: translate(3px,3px); }
.cnx__bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: var(--rouge,#d71920); color: #fff; font-family: var(--font-display,Anton); text-transform: uppercase;
  letter-spacing: .08em; font-size: .8rem; padding: .5rem 1rem; }
.cnx__bar time { font-family: var(--font-body,Inter); font-weight: 800; font-size: .72rem; opacity: .9; }
.cnx__card h3 { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase;
  font-size: 1.25rem; line-height: 1.1; margin: 0; padding: 1.1rem 1.2rem .6rem; }
.cnx__card p { flex: 1; font-size: .92rem; line-height: 1.55; color: var(--gris,#6b6b6b); margin: 0; padding: 0 1.2rem .9rem; }
.cnx__go { font-weight: 800; font-size: .88rem; color: var(--rouge,#d71920); padding: 0 1.2rem 1.1rem; }
.cnx__go span { display: inline-block; transition: transform .2s ease; }
.cnx__card:hover .cnx__go span { transform: translateX(6px); }
.cnx__empty, .cmq__empty { color: var(--gris,#6b6b6b); font-size: 1.02rem; }
@media (max-width: 760px) { .cnx__grid { grid-template-columns: 1fr; } }

/* ---------- Communiqués : dépêches ---------- */
.cmq { background: var(--papier,#faf7f0); border-top: 3px solid var(--encre,#141414); }
.cmq__wrap { max-width: 1240px; margin: 0 auto; padding: 0 clamp(1.2rem,4vw,3rem); }
.cmq__list { border-top: 3px solid var(--encre,#141414); }
.cmq__row { display: flex; align-items: center; gap: 1.2rem; padding: 1rem .4rem; text-decoration: none;
  color: var(--encre,#141414); border-bottom: 1px solid rgba(20,20,20,.18); transition: background .15s ease, padding .2s ease; }
.cmq__row:hover { background: #fff; padding-left: 1rem; }
.cmq__date { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 64px; line-height: 1; }
.cmq__date b { font-family: var(--font-display,Anton); font-weight: 400; font-size: 1.7rem; }
.cmq__date span { font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--gris,#6b6b6b); margin-top: .2rem; }
.cmq__pill { flex-shrink: 0; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em;
  background: var(--rouge,#d71920); color: #fff; padding: .22rem .55rem; }
.cmq__row h3 { flex: 1; font-size: 1.05rem; font-weight: 800; line-height: 1.3; margin: 0; }
.cmq__arr { font-family: var(--font-display,Anton); color: var(--rouge,#d71920); opacity: 0; transform: translateX(-8px); transition: opacity .18s ease, transform .18s ease; }
.cmq__row:hover .cmq__arr { opacity: 1; transform: none; }
@media (max-width: 620px) { .cmq__pill { display: none; } .cmq__date { width: 52px; } }

/* ---------- Bannière depuis la page Le parti ---------- */
.vd-banner { display: flex; align-items: center; gap: 1.1rem; flex-wrap: wrap;
  max-width: 1240px; margin: 0 auto clamp(2.6rem,5vw,4rem); padding: 1.3rem 1.5rem;
  background: var(--encre,#141414); color: #fff; text-decoration: none; border: 3px solid var(--encre,#141414);
  transition: transform .18s ease, box-shadow .18s ease; }
.vd-banner:hover { transform: translate(-3px,-3px); box-shadow: 8px 8px 0 var(--vert,#76b82a); }
.vd-banner__kicker { font-family: var(--font-display,Anton); text-transform: uppercase; letter-spacing: .08em;
  font-size: .78rem; background: var(--vert,#76b82a); color: var(--encre,#141414); padding: .3rem .7rem; }
.vd-banner strong { font-family: var(--font-display,Anton); font-weight: 400; text-transform: uppercase; font-size: 1.25rem; }
.vd-banner > span:not(.vd-banner__kicker) { color: rgba(255,255,255,.75); font-size: .92rem; flex: 1; min-width: 220px; }
.vd-banner b { font-family: var(--font-display,Anton); color: var(--vert,#76b82a); font-size: 1.4rem; transition: transform .2s ease; }
.vd-banner:hover b { transform: translateX(6px); }

/* Image de remplacement (logo PG) — articles sans image à la une OU vignette cassée (onerror).
   Le conteneur .card__media garde le gabarit 16/10 ; le logo est contenu et centré sur le papier. */
.card__media img.is-placeholder {
  object-fit: contain;
  background: var(--papier, #faf7f0);
  padding: 9% 16%;
}
.feed__grid .card__media img.is-placeholder { padding: 9% 16%; }
