/* ============================================================
   single-news.css — Gabarit articles d'actualité GenEvolutioN
   Phases C1 → C3 : layout + hero immersif + progression + méta-bar
   Préfixe : .gev-news
   ============================================================ */

/* ---------- Conteneur principal ---------- */
.gev-news {
  background: var(--gev-cream);
  color: var(--gev-text);
  font-family: var(--gev-font-sans);
  font-size: 18px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   BARRE DE PROGRESSION DE LECTURE
   Intégrée en bas de la méta-bar sticky : suit le scroll en
   restant visible juste sous le header Salient.
   ============================================================ */

.gev-news__progress {
  position: relative;
  width: 100%;
  height: 3px;
  background: rgba(44, 44, 42, 0.06);
  pointer-events: none;
  overflow: hidden;
}

.gev-news__progress-bar {
  height: 100%;
  width: 100%;
  background: var(--gev-gradient-orange);
  transform: scaleX(0);
  transform-origin: 0 50%;
  transition: transform 0.05s linear;
  will-change: transform;
}

/* ============================================================
   HERO IMMERSIF
   ============================================================ */

.gev-news__hero {
  position: relative;
  width: 100%;
  height: clamp(420px, 70vh, 720px);
  overflow: hidden;
  margin: 0 0 0;
  display: flex;
  align-items: flex-end;
  isolation: isolate;
}

.gev-news__hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  z-index: 1;
}

.gev-news__hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    to top,
    rgba(28, 28, 26, 0.92) 0%,
    rgba(28, 28, 26, 0.70) 25%,
    rgba(28, 28, 26, 0.30) 55%,
    rgba(28, 28, 26, 0.00) 100%
  );
  pointer-events: none;
}

.gev-news__hero-content {
  position: relative;
  z-index: 3;
  width: 100%;
  max-width: var(--gev-col-wide);
  margin: 0 auto;
  padding: 0 var(--gev-gutter) clamp(2rem, 5vw, 3.5rem);
  color: var(--gev-white);
}

.gev-news__hero .gev-news__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gev-orange);
  margin: 0 0 1.25rem;
}

.gev-news__hero .gev-news__eyebrow::before {
  content: "";
  display: block;
  width: 36px;
  height: 2px;
  background: var(--gev-orange);
  flex: none;
}

.gev-news__hero .gev-news__title {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: clamp(2.2rem, 5.5vw, 4.25rem);
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--gev-white);
  margin: 0 0 1.25rem;
  max-width: 18ch;
  text-wrap: balance;
}

.gev-news__hero .gev-news__meta {
  font-size: 0.92rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

.gev-news__hero .gev-news__meta time {
  font-feature-settings: "tnum";
}

/* ============================================================
   HEADER SOBRE (fallback si pas d'image à la une)
   ============================================================ */

.gev-news__header {
  max-width: var(--gev-col-text);
  margin: 0 auto;
  padding: clamp(2rem, 4vw, 3.5rem) var(--gev-gutter) 0;
}

.gev-news__article--no-hero .gev-news__eyebrow {
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gev-orange);
  margin: 0 0 1rem;
}

.gev-news__article--no-hero .gev-news__title {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: clamp(2rem, 4.5vw, 3.5rem);
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--gev-charcoal);
  margin: 0 0 1.25rem;
  text-wrap: balance;
}

.gev-news__article--no-hero .gev-news__meta {
  font-size: 0.92rem;
  color: var(--gev-text-light);
  margin: 0;
}

/* ============================================================
   MÉTA-BAR — Pinnée sous le header Salient au scroll
   Contient : breadcrumb + temps lecture + partage + progression
   - État initial : position relative (sous le hero)
   - État pinné  : position fixed sous le header Salient
     (déclenché par JS quand le hero sort du viewport)
   - Le spacer compense le saut de hauteur quand pinned.
   --gev-header-h et --gev-metabar-h sont mesurées par single-news.js
   ============================================================ */

.gev-news__metabar {
  position: relative;
  z-index: 50;
  border-top: 1px solid var(--gev-rule-light);
  background: rgba(250, 250, 247, 0.94);
  backdrop-filter: saturate(140%) blur(8px);
  -webkit-backdrop-filter: saturate(140%) blur(8px);
}

.gev-news__metabar.is-pinned {
  position: fixed;
  top: var(--gev-header-h, 0px);
  left: 0;
  right: 0;
  width: 100%;
  border-bottom: 1px solid var(--gev-rule-light);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  /* Adoucit le suivi du header Salient pendant sa transition compact */
  transition: top 0.15s ease;
}

@media (prefers-reduced-motion: reduce) {
  .gev-news__metabar.is-pinned {
    transition: none;
  }
}

/* Spacer : invisible par défaut, prend la hauteur quand la méta-bar est pinned */
.gev-news__metabar-spacer {
  height: 0;
  transition: height 0.15s ease;
}

.gev-news__metabar.is-pinned + .gev-news__metabar-spacer {
  height: var(--gev-metabar-h, 56px);
}

.gev-news__metabar-inner {
  max-width: var(--gev-col-wide);
  margin: 0 auto;
  padding: 0.7rem var(--gev-gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 56px;
}

/* — Fil d'Ariane (gauche) — */
.gev-news__breadcrumb {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
}

.gev-news__breadcrumb-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--gev-charcoal);
  text-decoration: none;
  padding: 0.4rem 0.65rem 0.4rem 0.4rem;
  border-radius: 6px;
  transition: color 0.18s ease, background 0.18s ease, transform 0.12s ease;
}

.gev-news__breadcrumb-back svg {
  flex: none;
  transition: transform 0.18s ease;
}

.gev-news__breadcrumb-back:hover,
.gev-news__breadcrumb-back:focus-visible {
  color: var(--gev-orange);
  background: rgba(255, 126, 0, 0.06);
}

.gev-news__breadcrumb-back:hover svg,
.gev-news__breadcrumb-back:focus-visible svg {
  transform: translateX(-3px);
}

/* Layout : breadcrumb à gauche, reading + share à droite */
.gev-news__metabar-inner > .gev-news__breadcrumb {
  margin-right: auto;
}

/* — Temps de lecture (gauche) — */
.gev-news__reading-time {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--gev-text-light);
}

.gev-news__reading-time .gev-news__icon {
  color: var(--gev-orange);
  flex: none;
}

/* — Liste des partages (droite) — */
.gev-news__share {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Salient applique list-style: disc sur les <ul> du contenu —
   on neutralise pour notre méta-bar. */
.gev-news__share li {
  margin: 0;
  padding: 0;
  list-style: none;
  background: none;
}

.gev-news__share li::before,
.gev-news__share li::marker {
  content: none;
  display: none;
}

/* Bouton de partage générique */
.gev-news__share-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--gev-rule-light);
  background: var(--gev-white);
  color: var(--gev-text-light);
  border-radius: 50%;
  cursor: pointer;
  text-decoration: none;
  transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease, transform 0.12s ease;
  position: relative;
}

.gev-news__share-link:hover,
.gev-news__share-link:focus-visible {
  color: var(--gev-orange);
  border-color: var(--gev-orange);
  background: var(--gev-cream);
}

.gev-news__share-link:active {
  transform: scale(0.95);
}

/* — Bouton "copier le lien" : icône qui change après succès — */
.gev-news__share-copy {
  font: inherit;
  padding: 0;
}

.gev-news__share-copy .gev-news__icon-success {
  display: none;
}

.gev-news__share-copy.is-copied {
  color: var(--gev-teal);
  border-color: var(--gev-teal);
  background: rgba(29, 158, 117, 0.08);
}

.gev-news__share-copy.is-copied .gev-news__icon-default {
  display: none;
}

.gev-news__share-copy.is-copied .gev-news__icon-success {
  display: block;
}

/* ============================================================
   CORPS DE L'ARTICLE — Phase C4
   Colonne lecture 760px, typographie éditoriale enrichie
   ============================================================ */

.gev-news__content {
  max-width: var(--gev-col-text);
  margin: 0 auto;
  padding: var(--gev-space-section) var(--gev-gutter);
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--gev-charcoal);
}

/* Stack vertical : tous les enfants directs s'espacent de 1.4em entre eux */
.gev-news__content > * + * {
  margin-top: 1.4em;
}

.gev-news__content p {
  margin: 0;
}

/* — Lead paragraph (le tout premier <p>) : taille augmentée, line-height resserrée — */
.gev-news__content > p:first-of-type {
  font-size: 1.18em;
  line-height: 1.55;
  color: var(--gev-charcoal);
}

/* — Lettrine : grande capitale orange en Playfair sur le 1er paragraphe — */
.gev-news__content > p:first-of-type::first-letter {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  float: left;
  font-size: 4.4em;
  line-height: 0.85;
  margin: 0.05em 0.12em -0.05em 0;
  color: var(--gev-orange);
  -webkit-font-smoothing: antialiased;
}

/* ---------- Titres ---------- */

.gev-news__content h2 {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: clamp(1.6rem, 3.2vw, 2.25rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--gev-charcoal);
  margin-top: 2.5em;
  margin-bottom: 0.5em;
  text-wrap: balance;
}

.gev-news__content h3 {
  font-family: var(--gev-font-sans);
  font-weight: 600;
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  line-height: 1.35;
  letter-spacing: -0.005em;
  color: var(--gev-charcoal);
  margin-top: 2em;
  margin-bottom: 0.5em;
}

.gev-news__content h4 {
  font-family: var(--gev-font-sans);
  font-weight: 600;
  font-size: 0.92rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gev-orange);
  margin-top: 1.6em;
  margin-bottom: 0.3em;
}

/* — Le titre qui suit immédiatement un h2 : marge réduite — */
.gev-news__content h2 + h3,
.gev-news__content h3 + h4 {
  margin-top: 0.6em;
}

/* ---------- Citations ----------
   Spécificité élevée + reset des border-image que Salient applique
   parfois sur les blockquote (gradient bleu/violet par défaut). */

.gev-news .gev-news__content blockquote,
.gev-news .gev-news__content .wp-block-quote {
  margin: 2em 0;
  padding: 1.5em 1.5em 1.5em 1.75em;
  border: 0;
  border-left: 3px solid var(--gev-orange);
  border-image: none;
  background: rgba(255, 126, 0, 0.045);
  font-family: var(--gev-font-serif);
  font-style: italic;
  font-size: 1.18em;
  line-height: 1.55;
  color: var(--gev-charcoal);
  border-radius: 0 4px 4px 0;
  box-shadow: none;
  quotes: none;
}

/* Salient ajoute parfois un ::before avec un guillemet décoratif coloré */
.gev-news .gev-news__content blockquote::before,
.gev-news .gev-news__content .wp-block-quote::before {
  content: none;
  display: none;
}

.gev-news .gev-news__content blockquote p,
.gev-news .gev-news__content .wp-block-quote p {
  margin: 0;
}

.gev-news .gev-news__content blockquote cite,
.gev-news .gev-news__content .wp-block-quote cite {
  display: block;
  margin-top: 1em;
  font-family: var(--gev-font-sans);
  font-size: 0.78em;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gev-text-light);
}

.gev-news .gev-news__content blockquote cite::before,
.gev-news .gev-news__content .wp-block-quote cite::before {
  content: '— ';
  color: var(--gev-orange);
}

/* ---------- Listes ----------
   Spécificité élevée + ::marker neutralisé : Salient applique des
   styles list-style hérités du body qu'il faut écraser frontalement. */

/* Listes à puces : reset complet + bullet orange custom */
.gev-news .gev-news__content ul,
.gev-news .gev-news__content .wp-block-list:not(.is-style-none) {
  list-style: none;
  list-style-type: none;
  list-style-image: none;
  padding-left: 0;
  margin: 1.4em 0;
}

.gev-news .gev-news__content ul li {
  position: relative;
  padding-left: 1.6em;
  margin-bottom: 0.55em;
  list-style: none;
  list-style-type: none;
  background: none; /* certains thèmes mettent un bg-image en bullet */
}

/* Neutralise le ::marker natif (Safari/Firefox peuvent encore le rendre) */
.gev-news .gev-news__content ul li::marker,
.gev-news .gev-news__content ol li::marker {
  content: '';
  display: none;
  font-size: 0;
}

.gev-news .gev-news__content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 7px;
  height: 7px;
  background: var(--gev-orange);
  border-radius: 50%;
}

.gev-news .gev-news__content ul li:last-child {
  margin-bottom: 0;
}

/* Listes numérotées : compteur custom Playfair orange */
.gev-news .gev-news__content ol {
  list-style: none;
  list-style-type: none;
  counter-reset: gev-news-counter;
  padding-left: 0;
  margin: 1.4em 0;
}

.gev-news .gev-news__content ol li {
  position: relative;
  padding-left: 2.25em;
  margin-bottom: 0.7em;
  counter-increment: gev-news-counter;
  list-style: none;
  list-style-type: none;
}

.gev-news .gev-news__content ol li::before {
  content: counter(gev-news-counter) ".";
  position: absolute;
  left: 0;
  top: -0.05em;
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: 1.25em;
  color: var(--gev-orange);
  line-height: 1.4;
}

.gev-news .gev-news__content ol li:last-child {
  margin-bottom: 0;
}

/* Listes imbriquées */
.gev-news .gev-news__content li ul,
.gev-news .gev-news__content li ol {
  margin: 0.5em 0 0 0;
}

/* ---------- Liens ---------- */

.gev-news__content a {
  color: var(--gev-orange-dark);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  transition: color 0.2s ease, text-decoration-thickness 0.2s ease;
}

.gev-news__content a:hover,
.gev-news__content a:focus-visible {
  color: var(--gev-orange);
  text-decoration-thickness: 2px;
}

/* Liens externes : indicateur ↗ bleu pour signaler la sortie du site.
   Convention UX standard. Le rédacteur active l'attribut "Ouvrir dans un
   nouvel onglet" dans Gutenberg → target="_blank" → l'icône apparaît. */
.gev-news__content a[target="_blank"]::after {
  content: '\2197'; /* ↗ */
  display: inline-block;
  margin-left: 0.18em;
  font-size: 0.85em;
  font-weight: 700;
  line-height: 1;
  color: var(--gev-blue);
  text-decoration: none;
  transition: transform 0.18s ease;
}

.gev-news__content a[target="_blank"]:hover::after,
.gev-news__content a[target="_blank"]:focus-visible::after {
  transform: translate(2px, -2px);
}

/* Pas d'indicateur sur les liens externes des composants UI
   (méta-bar partage, expert-link, etc.) — seulement dans le corps.
   Spécificité augmentée pour battre .gev-news__content a[target="_blank"]. */
.gev-news .gev-news__content .gev-news__share a[target="_blank"]::after,
.gev-news .gev-news__content .gev-news__expert-link[target="_blank"]::after,
.gev-news__share a[target="_blank"]::after,
.gev-news__expert-link[target="_blank"]::after {
  content: none;
  display: none;
}

/* ---------- Emphase ---------- */

.gev-news__content strong,
.gev-news__content b {
  font-weight: 600;
  color: var(--gev-charcoal);
}

.gev-news__content em,
.gev-news__content i {
  font-style: italic;
}

/* ---------- Figures et images dans le contenu ---------- */

.gev-news__content figure,
.gev-news__content .wp-block-image {
  margin: 2.5em auto;
}

.gev-news__content figure img,
.gev-news__content .wp-block-image img,
.gev-news__content img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.gev-news__content figcaption,
.gev-news__content .wp-block-image figcaption {
  margin-top: 0.75em;
  font-size: 0.88em;
  font-style: italic;
  line-height: 1.5;
  color: var(--gev-text-light);
  text-align: center;
}

/* WordPress alignements (alignwide / alignfull) — image qui dépasse la colonne 760 */
.gev-news__content .alignwide,
.gev-news__content .wp-block-image.alignwide {
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  width: var(--gev-col-wide);
  max-width: var(--gev-col-wide);
}

@media (max-width: 1100px) {
  .gev-news__content .alignwide,
  .gev-news__content .wp-block-image.alignwide {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
  }
}

/* ---------- Tableaux ---------- */

.gev-news__content table,
.gev-news__content .wp-block-table table {
  width: 100%;
  border-collapse: collapse;
  margin: 2em 0;
  font-size: 0.95em;
}

.gev-news__content th,
.gev-news__content td {
  padding: 0.75em 1em;
  text-align: left;
  border-bottom: 1px solid var(--gev-rule-light);
}

.gev-news__content th {
  font-weight: 600;
  color: var(--gev-charcoal);
  background: rgba(37, 99, 235, 0.05);
  border-bottom: 2px solid var(--gev-blue);
  letter-spacing: 0.02em;
}

.gev-news__content tr:last-child td {
  border-bottom: none;
}

/* ---------- Code (rare en actu mais utile) ---------- */

.gev-news__content code {
  font-family: ui-monospace, SFMono-Regular, "JetBrains Mono", "Menlo", monospace;
  font-size: 0.88em;
  background: var(--gev-rule-light);
  padding: 0.15em 0.42em;
  border-radius: 3px;
  color: var(--gev-charcoal);
}

.gev-news__content pre {
  font-family: ui-monospace, SFMono-Regular, "JetBrains Mono", "Menlo", monospace;
  font-size: 0.88em;
  background: var(--gev-charcoal);
  color: #e8e8e2;
  padding: 1.25em 1.5em;
  border-radius: 6px;
  overflow-x: auto;
  margin: 1.5em 0;
  line-height: 1.55;
}

.gev-news__content pre code {
  background: transparent;
  padding: 0;
  color: inherit;
  font-size: inherit;
}

/* ---------- Séparateurs ---------- */

.gev-news__content hr {
  margin: 2.5em auto;
  border: 0;
  border-top: 1px solid var(--gev-rule);
  width: 80px;
}

/* ============================================================
   COMPOSANT — FAITS SAILLANTS (shortcode)
   Section pleine largeur, 3 colonnes desktop, stack mobile
   Inséré via [gev_highlights] [gev_highlight] dans le contenu
   ============================================================ */

.gev-news__content .gev-news__highlights {
  /* Sort de la colonne 760 et atteint la largeur 1100 (--gev-col-wide) */
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem);
  max-width: var(--gev-col-wide);
  background: linear-gradient(180deg, rgba(37, 99, 235, 0.04) 0%, rgba(37, 99, 235, 0.015) 100%);
  border-top: 1px solid rgba(37, 99, 235, 0.15);
  border-bottom: 1px solid rgba(37, 99, 235, 0.15);
  border-radius: 4px;
}

@media (max-width: 1100px) {
  .gev-news__content .gev-news__highlights {
    margin-left: calc(var(--gev-gutter) * -1);
    margin-right: calc(var(--gev-gutter) * -1);
    max-width: none;
    border-radius: 0;
  }
}

.gev-news__highlights-inner {
  max-width: 100%;
  margin: 0;
}

/* Eyebrow / titre de section : bleu institutionnel, uppercase, centré */
.gev-news__content .gev-news__highlights-eyebrow {
  font-family: var(--gev-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 clamp(2rem, 4vw, 3rem);
  color: var(--gev-blue);
}

/* Grille 3 colonnes desktop, 1 colonne mobile */
.gev-news__highlights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.75rem, 3.5vw, 2.75rem);
  align-items: start;
}

/* Mobile : cards individuelles (fond blanc + bord) séparées par
   un gap. Distinction visuelle franche entre les highlights.
   La section retourne dans le flow normal du contenu (pas de full-bleed)
   pour s'aligner avec le H2 et les paragraphes — fini l'asymétrie. */
@media (max-width: 800px) {
  .gev-news__content .gev-news__highlights {
    /* Annule le full-bleed hérité de @media (max-width: 1100px) :
       en mobile la section s'aligne avec le reste du contenu. */
    margin-left: 0;
    margin-right: 0;
    padding-top: clamp(1.5rem, 4vw, 2.25rem);
    padding-bottom: clamp(1.5rem, 4vw, 2.25rem);
    padding-left: clamp(1rem, 3vw, 1.5rem);
    padding-right: clamp(1rem, 3vw, 1.5rem);
    border-radius: 6px;
  }

  .gev-news__content .gev-news__highlights-eyebrow {
    margin-bottom: 1.25rem;
  }

  .gev-news__highlights-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  /* Layout VERTICAL : icône en haut, titre en dessous, texte pleine
     largeur. Pattern Stripe/Notion/Linear — plus aéré et plus lisible
     au pouce qu'un layout horizontal en mobile.

     Salient applique des règles padding/margin avec !important sur
     .single .post, body.single-post, etc. — on doit forcer la main
     via une spécificité élevée (.gev-news .gev-news__content
     article.gev-news__highlight = 0,3,1) + !important ciblé. */
  .gev-news .gev-news__content article.gev-news__highlight {
    display: block;
    padding: 1.75rem !important;
    background: var(--gev-white);
    border: 1px solid rgba(37, 99, 235, 0.18);
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(37, 99, 235, 0.04);
    margin: 0;
  }

  /* Icône en haut à gauche, légèrement plus visible qu'en horizontal */
  .gev-news__highlight-icon {
    width: 36px;
    height: 36px;
    margin: 0 0 0.95rem 0;
    grid-column: auto;
    grid-row: auto;
    align-self: auto;
  }

  .gev-news__highlight-icon svg {
    width: 17px;
    height: 17px;
  }

  .gev-news__content .gev-news__highlight-title {
    grid-column: auto;
    grid-row: auto;
    margin: 0 0 0.55rem 0;
    font-size: 1.05rem;
    line-height: 1.3;
  }

  /* Texte pleine largeur — c'est tout l'avantage du layout vertical */
  .gev-news__highlight-text {
    grid-column: auto;
    grid-row: auto;
    margin: 0;
    font-size: 0.93rem;
    line-height: 1.6;
  }
}

/* Carte Highlight */
.gev-news__highlight {
  margin: 0 !important; /* override le stack vertical du contenu (1.4em) */
  padding: 0;
  text-align: left;
}

/* Icône : cercle bleu doux avec bordure subtile */
.gev-news__highlight-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.08);
  border: 1px solid rgba(37, 99, 235, 0.20);
  color: var(--gev-blue);
  margin-bottom: 1.25rem;
}

.gev-news__highlight-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

/* Titre du highlight : Inter bold, charcoal */
.gev-news__content .gev-news__highlight-title {
  font-family: var(--gev-font-sans);
  font-weight: 700;
  font-size: 1.1rem;
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--gev-charcoal);
  margin: 0 0 0.65rem;
  text-wrap: balance;
}

/* Texte du highlight : taille légèrement réduite */
.gev-news__highlight-text {
  font-size: 0.95rem;
  line-height: 1.65;
  color: var(--gev-text);
  margin: 0;
}

.gev-news__highlight-text p {
  margin: 0;
}

.gev-news__highlight-text p + p {
  margin-top: 0.6em;
}

/* ============================================================
   COMPOSANT — CHIFFRES CLÉS [gev_stats]
   Grille 2-4 colonnes avec un grand chiffre Playfair par carte
   ============================================================ */

.gev-news__content .gev-news__stats {
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 3vw, 2.5rem);
  max-width: var(--gev-col-wide);
  background: var(--gev-cream);
  border-top: 2px solid var(--gev-blue);
  border-bottom: 1px solid var(--gev-rule-light);
}

@media (max-width: 1100px) {
  .gev-news__content .gev-news__stats {
    margin-left: calc(var(--gev-gutter) * -1);
    margin-right: calc(var(--gev-gutter) * -1);
    max-width: none;
  }
}

.gev-news__stats-inner {
  max-width: 100%;
  margin: 0;
}

.gev-news__content .gev-news__stats-eyebrow {
  font-family: var(--gev-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 clamp(2rem, 4vw, 2.75rem);
  color: var(--gev-blue);
}

.gev-news__stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: start;
}

.gev-news__stat {
  margin: 0 !important;
  text-align: center;
  padding: 0;
}

.gev-news__stat-number {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: clamp(2.5rem, 6vw, 4.25rem);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0 0 0.65rem;
  background: linear-gradient(135deg, var(--gev-blue) 0%, var(--gev-blue-dark) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.gev-news__content .gev-news__stat-label {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--gev-text-light);
  margin: 0;
  max-width: 28ch;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   COMPOSANT — TIMELINE [gev_timeline]
   Horizontale desktop / verticale mobile, jalons cliqués/coches
   ============================================================ */

.gev-news__content .gev-news__timeline {
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(2rem, 4vw, 3rem) clamp(1rem, 3vw, 2rem);
  max-width: var(--gev-col-wide);
}

@media (max-width: 1100px) {
  .gev-news__content .gev-news__timeline {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
}

.gev-news__content .gev-news__timeline-eyebrow {
  font-family: var(--gev-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 clamp(2.5rem, 4vw, 3.5rem);
  color: var(--gev-charcoal);
}

/* Track : ol qui contient les milestones */
.gev-news__timeline-track {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 0;
  position: relative;
}

/* Ligne horizontale qui traverse les points (desktop) */
.gev-news__timeline-track::before {
  content: '';
  position: absolute;
  top: 8px;
  left: calc(50% / var(--cols, 4));
  right: calc(50% / var(--cols, 4));
  height: 2px;
  background: linear-gradient(90deg, var(--gev-orange) 0%, var(--gev-rule) 100%);
  z-index: 0;
}

@media (min-width: 800px) {
  /* Approximation : la ligne va du milieu du 1er jalon au milieu du dernier */
  .gev-news__timeline-track::before {
    left: 12.5%;
    right: 12.5%;
  }
}

.gev-news__milestone {
  list-style: none;
  margin: 0 !important;
  padding: 0 0.5rem;
  position: relative;
  text-align: center;
  z-index: 1;
}

.gev-news__milestone::before,
.gev-news__milestone::marker {
  content: none;
  display: none;
}

.gev-news__milestone-dot {
  display: block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  margin: 0 auto 1.25rem;
  background: var(--gev-cream);
  border: 2px solid var(--gev-rule);
  position: relative;
  z-index: 2;
  transition: transform 0.18s ease;
}

.gev-news__milestone--done .gev-news__milestone-dot {
  background: var(--gev-orange);
  border-color: var(--gev-orange);
  box-shadow: 0 0 0 4px rgba(255, 126, 0, 0.12);
}

.gev-news__milestone--current .gev-news__milestone-dot {
  background: var(--gev-cream);
  border-color: var(--gev-orange);
  border-width: 3px;
  box-shadow: 0 0 0 4px rgba(255, 126, 0, 0.18);
  animation: gev-pulse 2.4s ease-in-out infinite;
}

.gev-news__milestone--future .gev-news__milestone-dot {
  background: var(--gev-cream);
  border-color: var(--gev-rule);
  border-style: dashed;
}

@keyframes gev-pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(255, 126, 0, 0.18); }
  50%      { box-shadow: 0 0 0 8px rgba(255, 126, 0, 0.10); }
}

@media (prefers-reduced-motion: reduce) {
  .gev-news__milestone--current .gev-news__milestone-dot {
    animation: none;
  }
}

.gev-news__milestone-date {
  font-family: var(--gev-font-sans);
  font-weight: 700;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  color: var(--gev-orange);
  margin: 0 0 0.4rem;
  text-transform: uppercase;
}

.gev-news__milestone--future .gev-news__milestone-date {
  color: var(--gev-text-muted);
}

.gev-news__content .gev-news__milestone-title {
  font-family: var(--gev-font-sans);
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
  color: var(--gev-charcoal);
  margin: 0 0 0.4rem;
}

.gev-news__milestone--future .gev-news__milestone-title {
  color: var(--gev-text-light);
}

.gev-news__milestone-text {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--gev-text-light);
  margin: 0;
}

/* En mobile : passe en vertical avec ligne à gauche */
@media (max-width: 700px) {
  .gev-news__timeline-track {
    grid-template-columns: 1fr;
    gap: 1.75rem;
  }
  .gev-news__timeline-track::before {
    top: 0;
    bottom: 0;
    left: 8px;
    right: auto;
    width: 2px;
    height: auto;
    background: linear-gradient(180deg, var(--gev-orange) 0%, var(--gev-rule) 100%);
  }
  .gev-news__milestone {
    text-align: left;
    padding-left: 2.25rem;
  }
  .gev-news__milestone-dot {
    position: absolute;
    left: 0;
    top: 0.25rem;
    margin: 0;
  }
}

/* ============================================================
   COMPOSANT — À RETENIR [gev_takeaway]
   Encadré crème teinté, bordure haute épaisse colorée
   ============================================================ */

.gev-news__content .gev-news__takeaway {
  margin: clamp(2rem, 4vw, 3rem) 0;
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.5rem, 3vw, 2rem);
  border-radius: 0 0 4px 4px;
}

/* Variante par défaut : orange (marque, signature GenEvolutioN) */
.gev-news__takeaway--orange {
  background: rgba(255, 126, 0, 0.05);
  border-top: 4px solid var(--gev-orange);
}

/* Variante bleue : institutionnel / info technique / réglementaire */
.gev-news__takeaway--blue {
  background: rgba(37, 99, 235, 0.05);
  border-top: 4px solid var(--gev-blue);
}

.gev-news__content .gev-news__takeaway-eyebrow {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--gev-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin: 0 0 1rem;
}

.gev-news__takeaway--orange .gev-news__takeaway-eyebrow { color: var(--gev-orange-dark); }
.gev-news__takeaway--blue   .gev-news__takeaway-eyebrow { color: var(--gev-blue-dark); }

.gev-news__takeaway-mark {
  font-size: 1.1em;
  line-height: 1;
}

.gev-news__takeaway--orange .gev-news__takeaway-mark { color: var(--gev-orange); }
.gev-news__takeaway--blue   .gev-news__takeaway-mark { color: var(--gev-blue); }

.gev-news__takeaway-body {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--gev-charcoal);
}

.gev-news__takeaway-body p:first-child { margin-top: 0; }
.gev-news__takeaway-body p:last-child  { margin-bottom: 0; }

/* Listes dans le takeaway : reset cohérent + bullet selon le ton */
.gev-news__takeaway-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.gev-news__takeaway-body ul li {
  position: relative;
  padding-left: 1.5em;
  margin-bottom: 0.5rem;
}
.gev-news__takeaway-body ul li::before {
  content: '';
  position: absolute;
  left: 0.1em;
  top: 0.7em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
}
.gev-news__takeaway--orange .gev-news__takeaway-body ul li::before { background: var(--gev-orange); }
.gev-news__takeaway--blue   .gev-news__takeaway-body ul li::before { background: var(--gev-blue); }

.gev-news__takeaway-body ul li:last-child {
  margin-bottom: 0;
}

/* ============================================================
   COMPOSANT — CARTE EXPERT [gev_expert]
   Photo ronde + nom + rôle + citation Playfair + liens contact
   ============================================================ */

.gev-news__content .gev-news__expert {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: clamp(1.25rem, 3vw, 2rem);
  align-items: start;
  margin: clamp(2rem, 4vw, 3rem) 0;
  padding: clamp(1.5rem, 3vw, 2rem);
  background: var(--gev-white);
  border: 1px solid var(--gev-rule-light);
  border-left: 3px solid var(--gev-orange);
  border-radius: 4px;
}

@media (max-width: 600px) {
  .gev-news__content .gev-news__expert {
    grid-template-columns: 1fr;
    text-align: left;
  }
}

.gev-news__expert-media {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, var(--gev-orange) 0%, var(--gev-orange-dark) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gev-white);
  flex: none;
}

.gev-news__expert-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.gev-news__expert-initials {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: 1.85rem;
  line-height: 1;
  color: var(--gev-white);
  letter-spacing: 0.02em;
}

.gev-news__expert-body {
  min-width: 0;
}

.gev-news__content .gev-news__expert-name {
  font-family: var(--gev-font-sans);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--gev-charcoal);
  margin: 0;
}

.gev-news__content .gev-news__expert-role {
  font-family: var(--gev-font-sans);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--gev-orange-dark);
  text-transform: uppercase;
  margin: 0.25rem 0 1rem;
}

/* Override spécifique : le blockquote dans la carte expert n'a pas le
   gros traitement de citation standard (fond, padding, italique fort) */
.gev-news .gev-news__content .gev-news__expert-quote {
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
  background: none;
  font-family: var(--gev-font-serif);
  font-style: italic;
  font-size: 1.05em;
  line-height: 1.6;
  color: var(--gev-charcoal);
  border-radius: 0;
  box-shadow: none;
  quotes: '« ' ' »';
}

.gev-news .gev-news__content .gev-news__expert-quote::before,
.gev-news .gev-news__content .gev-news__expert-quote::after {
  content: none;
  display: none;
}

.gev-news .gev-news__content .gev-news__expert-quote p {
  margin: 0;
}

.gev-news__content .gev-news__expert-quote::first-line {
  /* hint typographique pour aérer le début */
}

.gev-news__expert-links {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 !important;
}

.gev-news__expert-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--gev-rule-light);
  background: var(--gev-cream);
  color: var(--gev-text-light);
  border-radius: 50%;
  text-decoration: none;
  transition: color 0.18s, border-color 0.18s, background 0.18s;
}

.gev-news__expert-link:hover,
.gev-news__expert-link:focus-visible {
  color: var(--gev-orange);
  border-color: var(--gev-orange);
  background: rgba(255, 126, 0, 0.06);
}

/* ============================================================
   COMPOSANT — FAQ ACCORDÉON [gev_faq]
   Native <details>/<summary>, pas de JS
   ============================================================ */

.gev-news__content .gev-news__faq {
  margin: clamp(2rem, 4vw, 3rem) 0;
}

.gev-news__content .gev-news__faq-title {
  font-family: var(--gev-font-sans);
  font-weight: 700;
  font-size: 1.2rem;
  color: var(--gev-charcoal);
  margin: 0 0 1.25rem;
}

.gev-news__faq-list {
  border-top: 1px solid var(--gev-rule-light);
}

.gev-news__faq-item {
  border-bottom: 1px solid var(--gev-rule-light);
  margin: 0 !important;
}

.gev-news__faq-item[open] {
  background: rgba(255, 126, 0, 0.025);
}

.gev-news__faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 0.5rem;
  cursor: pointer;
  list-style: none;
  font-family: var(--gev-font-sans);
  font-weight: 600;
  font-size: 1rem;
  line-height: 1.4;
  color: var(--gev-charcoal);
  transition: color 0.18s;
}

.gev-news__faq-question::-webkit-details-marker {
  display: none;
}

.gev-news__faq-question:hover,
.gev-news__faq-question:focus-visible {
  color: var(--gev-orange);
  outline: none;
}

.gev-news__faq-chevron {
  flex: none;
  color: var(--gev-text-light);
  transition: transform 0.25s ease, color 0.18s;
}

.gev-news__faq-item[open] .gev-news__faq-chevron {
  transform: rotate(180deg);
  color: var(--gev-orange);
}

.gev-news__faq-answer {
  padding: 0 0.5rem 1.25rem;
  font-size: 0.97rem;
  line-height: 1.7;
  color: var(--gev-text);
}

.gev-news__faq-answer p:first-child { margin-top: 0; }
.gev-news__faq-answer p:last-child  { margin-bottom: 0; }

@media (prefers-reduced-motion: reduce) {
  .gev-news__faq-chevron {
    transition: none;
  }
}

/* ============================================================
   CTA FIN D'ARTICLE
   Encart pleine largeur orange avec gradient, titre Playfair blanc,
   texte court, bouton blanc pillulé qui mène à la page contact.
   ============================================================ */

/* Salient applique des !important sur background/color de plein
   d'éléments dans le single. On force la main avec !important ciblés
   sur les propriétés visuelles critiques de notre CTA. */
.gev-news .gev-news__content .gev-news__cta {
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 4vw, 3rem) !important;
  max-width: var(--gev-col-wide);
  background: linear-gradient(135deg, var(--gev-orange) 0%, var(--gev-orange-dark) 100%) !important;
  background-color: var(--gev-orange) !important; /* fallback pleine couleur */
  border-radius: 6px !important;
  text-align: center;
  color: var(--gev-white) !important;
  position: relative;
  overflow: hidden;
  border: 0 !important;
  box-shadow: none !important;
}

/* Léger motif décoratif en arrière-plan (cercles atténués) */
.gev-news__cta::before {
  content: '';
  position: absolute;
  top: -40%;
  right: -10%;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.10) 0%, transparent 70%);
  pointer-events: none;
}

@media (max-width: 1100px) {
  .gev-news .gev-news__content .gev-news__cta {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
}

@media (max-width: 800px) {
  .gev-news .gev-news__content .gev-news__cta {
    padding: clamp(1.75rem, 5vw, 2.5rem) clamp(1.25rem, 4vw, 2rem);
  }
}

.gev-news__cta-inner {
  max-width: 600px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.gev-news .gev-news__content .gev-news__cta-title {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: clamp(1.65rem, 3.5vw, 2.4rem);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--gev-white) !important; /* Salient force le charcoal sur les h2 du single */
  margin: 0 0 0.85rem;
  text-wrap: balance;
}

.gev-news .gev-news__content .gev-news__cta-text {
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.92) !important;
  margin: 0 0 1.75rem;
  text-wrap: pretty;
}

.gev-news .gev-news__content .gev-news__cta-button {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.9rem 1.65rem !important;
  background: var(--gev-white) !important;
  color: var(--gev-orange-dark) !important;
  font-family: var(--gev-font-sans);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  text-decoration: none !important;
  border-radius: 999px !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  border: 0 !important;
}

.gev-news .gev-news__content .gev-news__cta-button:hover,
.gev-news .gev-news__content .gev-news__cta-button:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
  color: var(--gev-orange-dark) !important;
  background: var(--gev-white) !important;
}

.gev-news__cta-button svg {
  flex: none;
  transition: transform 0.18s ease;
}

.gev-news__cta-button:hover svg,
.gev-news__cta-button:focus-visible svg {
  transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
  .gev-news__cta-button,
  .gev-news__cta-button svg {
    transition: none;
  }
}

/* ============================================================
   ARTICLES CONNEXES
   Grille 3 colonnes desktop, 1 colonne mobile. Image 16/10 +
   catégorie + titre Playfair + date.
   ============================================================ */

.gev-news .gev-news__content .gev-news__related {
  margin-left: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-right: calc((var(--gev-col-text) - var(--gev-col-wide)) / 2);
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: clamp(1rem, 3vw, 2rem);
  max-width: var(--gev-col-wide);
}

@media (max-width: 1100px) {
  .gev-news .gev-news__content .gev-news__related {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
}

.gev-news .gev-news__content .gev-news__related-eyebrow {
  font-family: var(--gev-font-sans);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--gev-orange);
  margin: 0 0 1.75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--gev-rule-light);
}

.gev-news__related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.25rem);
}

@media (max-width: 800px) {
  .gev-news__related-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
}

.gev-news .gev-news__content article.gev-news__related-card {
  margin: 0 !important;
  padding: 0;
  background: none;
  border: 0;
  box-shadow: none;
}

.gev-news__related-link {
  display: block;
  text-decoration: none !important;
  color: inherit;
  transition: transform 0.2s ease;
}

.gev-news__related-link:hover,
.gev-news__related-link:focus-visible {
  transform: translateY(-2px);
}

.gev-news__related-media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-radius: 4px;
  background: var(--gev-rule-light);
  margin-bottom: 1rem;
  position: relative;
}

.gev-news__related-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.gev-news__related-link:hover .gev-news__related-img {
  transform: scale(1.04);
}

.gev-news__related-img-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--gev-rule-light) 0%, var(--gev-cream) 100%);
}

.gev-news__related-body {
  /* container vide pour structurer */
}

.gev-news__related-cat {
  font-family: var(--gev-font-sans);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gev-orange);
  margin: 0 0 0.5rem;
}

.gev-news .gev-news__content .gev-news__related-title {
  font-family: var(--gev-font-serif);
  font-weight: 700;
  font-size: 1.2rem;
  line-height: 1.3;
  letter-spacing: -0.005em;
  color: var(--gev-charcoal);
  margin: 0 0 0.5rem;
  transition: color 0.2s ease;
  text-wrap: balance;
}

.gev-news__related-link:hover .gev-news__related-title,
.gev-news__related-link:focus-visible .gev-news__related-title {
  color: var(--gev-orange-dark);
}

.gev-news__related-date {
  font-size: 0.85rem;
  color: var(--gev-text-light);
  margin: 0;
  font-feature-settings: "tnum";
}

@media (prefers-reduced-motion: reduce) {
  .gev-news__related-link,
  .gev-news__related-img {
    transition: none;
  }
}

/* ============================================================
   ANTI-SALIENT — Override via attributs data-*
   Salient applique des règles avec !important + spécificité élevée
   sur tous les éléments du single (.post, body.single h2, etc.).
   On utilise des attributs data-* qu'aucune règle Salient ne cible :
   ça nous donne une porte de sortie systématique pour nos blocs
   personnalisés qui doivent absolument garder leurs couleurs.
   ============================================================ */

[data-gev-cta="1"] {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  margin-top: clamp(2.5rem, 5vw, 4rem) !important;
  margin-bottom: clamp(2.5rem, 5vw, 4rem) !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: clamp(2.5rem, 5vw, 4rem) clamp(2rem, 4vw, 3rem) !important;
  background: linear-gradient(135deg, var(--gev-orange, #ff7e00) 0%, var(--gev-orange-dark, #cc6500) 100%) !important;
  background-color: var(--gev-orange, #ff7e00) !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  text-align: center !important;
  border: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
}

/* Force le centrage du contenu interne du CTA */
[data-gev-cta="1"] .gev-news__cta-inner {
  text-align: center !important;
  max-width: 600px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  position: relative !important;
  z-index: 1 !important;
}

@media (max-width: 800px) {
  [data-gev-cta="1"] {
    padding: clamp(1.75rem, 5vw, 2.5rem) clamp(1.25rem, 4vw, 2rem) !important;
  }
}

[data-gev-cta-title="1"] {
  color: #ffffff !important;
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 700 !important;
  font-size: clamp(1.65rem, 3.5vw, 2.4rem) !important;
  line-height: 1.2 !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
  text-align: center !important;
}

[data-gev-cta-text="1"] {
  color: rgba(255, 255, 255, 0.92) !important;
  font-size: 1rem !important;
  line-height: 1.6 !important;
  margin: 0 0 1.75rem !important;
  padding: 0 !important;
  text-align: center !important;
}

[data-gev-cta-button="1"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  padding: 0.9rem 1.65rem !important;
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: var(--gev-orange-dark, #cc6500) !important;
  font-family: 'Inter', -apple-system, sans-serif !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  letter-spacing: 0.03em !important;
  text-decoration: none !important;
  border: 0 !important;
  border-radius: 999px !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease !important;
  cursor: pointer !important;
}

[data-gev-cta-button="1"]:hover,
[data-gev-cta-button="1"]:focus-visible {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: var(--gev-orange-dark, #cc6500) !important;
  transform: translateY(-1px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16) !important;
}

[data-gev-cta-button="1"] svg {
  flex: none !important;
  transition: transform 0.18s ease !important;
}

[data-gev-cta-button="1"]:hover svg,
[data-gev-cta-button="1"]:focus-visible svg {
  transform: translateX(3px);
}

/* Reset doux des classes Salient potentiellement appliquées */
.gev-news .gev-news__article,
.gev-news .gev-news__hero,
.gev-news .gev-news__header,
.gev-news .gev-news__content {
  float: none;
  width: auto;
}

/* ============================================================
   ADAPTATIONS MOBILE
   ============================================================ */

@media (max-width: 900px) {
  .gev-news__hero {
    height: clamp(380px, 60vh, 560px);
  }
}

@media (max-width: 600px) {
  .gev-news {
    font-size: 17px;
  }

  .gev-news__hero {
    height: clamp(340px, 65vh, 480px);
  }

  .gev-news__hero-content {
    padding-bottom: 1.5rem;
  }

  .gev-news__hero .gev-news__title {
    max-width: none;
  }

  .gev-news__metabar-inner {
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
    padding: 0.75rem var(--gev-gutter);
  }

  .gev-news__share-link {
    width: 36px;
    height: 36px;
  }
}

/* ============================================================
   ACCESSIBILITÉ
   ============================================================ */

.gev-news a:focus-visible,
.gev-news button:focus-visible {
  outline: 2px solid var(--gev-orange);
  outline-offset: 3px;
  border-radius: 50%;
}

.gev-news__content a:focus-visible {
  border-radius: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .gev-news *,
  .gev-news *::before,
  .gev-news *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .gev-news__progress-bar {
    transition: none;
  }
}

/* ============================================================
   FIX SALIENT — Force l'eyebrow "À lire aussi" stylé
   Salient écrase text-transform/color/etc. sur les <p> dans
   .related-posts et zones similaires. !important nécessaire.
   ============================================================ */

.gev-news .gev-news__content .gev-news__related-eyebrow,
.gev-news__content .gev-news__related-eyebrow,
.gev-news__related-eyebrow {
  font-family: var(--gev-font-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange) !important;
  margin: 0 0 1.75rem !important;
  padding: 0 0 1rem 0 !important;
  border-bottom: 1px solid var(--gev-rule-light) !important;
  text-align: left !important;
}

.gev-news .gev-news__content .gev-news__related-cat,
.gev-news__related-cat {
  font-family: var(--gev-font-sans) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: var(--gev-orange) !important;
  margin: 0 0 0.5rem !important;
  padding: 0 !important;
}

/* ============================================================
   ARTICLES CONNEXES — Refonte ergonomique v0.4.6
   - Hauteurs égalisées via flex column
   - Titre limité à 3 lignes
   - Ratio image 3:2 (au lieu de 16:10)
   - CTA "Lire l'article →" en bas avec flèche animée
   - Catégorie cachée (redondante avec l'eyebrow "À LIRE AUSSI")
   ============================================================ */

.gev-news .gev-news__related-grid {
  align-items: stretch !important;
}

.gev-news .gev-news__content article.gev-news__related-card {
  display: flex !important;
  height: 100% !important;
  flex-direction: column !important;
}

.gev-news .gev-news__related-link {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  height: 100% !important;
  flex: 1 !important;
}

.gev-news .gev-news__related-media {
  aspect-ratio: 3 / 2 !important;
  flex: 0 0 auto !important;
}

.gev-news .gev-news__related-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  min-height: 0 !important;
}

/* Cache la catégorie résiduelle au cas où (si version cachée NitroPack) */
.gev-news .gev-news__related-cat {
  display: none !important;
}

/* Titre limité à 3 lignes max */
.gev-news .gev-news__content .gev-news__related-title {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  margin: 0 0 0.5rem !important;
}

.gev-news .gev-news__related-date {
  margin: 0 !important;
}

/* CTA "Lire l'article →" : poussé en bas via margin-top: auto,
   séparé du texte par une fine ligne, flèche qui se décale au hover */
.gev-news .gev-news__related-cta {
  margin: auto 0 0 !important;
  padding: 1rem 0 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  font-family: var(--gev-font-sans) !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  letter-spacing: 0.02em !important;
  color: var(--gev-orange-dark) !important;
  border-top: 1px solid var(--gev-rule-light) !important;
  margin-top: 1rem !important;
  width: 100% !important;
  transition: color 0.18s ease !important;
}

.gev-news .gev-news__related-cta svg {
  flex: none !important;
  transition: transform 0.18s ease !important;
}

.gev-news .gev-news__related-link:hover .gev-news__related-cta,
.gev-news .gev-news__related-link:focus-visible .gev-news__related-cta {
  color: var(--gev-orange) !important;
}

.gev-news .gev-news__related-link:hover .gev-news__related-cta svg,
.gev-news .gev-news__related-link:focus-visible .gev-news__related-cta svg {
  transform: translateX(3px);
}

/* ============================================================
   FIX v0.4.7 — Respiration du bloc "À lire aussi" + hero plus lisible
   ============================================================ */

/* Bloc related : centré, max 1100, padding latéral, plus d'air en bas */
.gev-news .gev-news__content .gev-news__related {
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: clamp(3rem, 6vw, 5rem) !important;
  margin-bottom: clamp(2.5rem, 5vw, 4rem) !important;
  padding: clamp(1rem, 3vw, 2rem) var(--gev-gutter) clamp(2.5rem, 5vw, 4rem) !important;
  max-width: var(--gev-col-wide) !important;
  box-sizing: border-box !important;
}

/* Hero overlay plus opaque : titre lisible quoi qu'il arrive */
.gev-news .gev-news__hero-overlay {
  background: linear-gradient(
    to top,
    rgba(28, 28, 26, 0.85) 0%,
    rgba(28, 28, 26, 0.55) 30%,
    rgba(28, 28, 26, 0.20) 65%,
    rgba(28, 28, 26, 0.0) 100%
  ) !important;
}


/* ============================================================
   FIX v0.4.9 — RELATED via data-* (échappatoire anti-Salient)
   Salient écrase max-width/margin/padding sur les .row .container
   et autres wrappers, même avec spécificité élevée. On utilise
   un attribut data-gev-related="1" qu'aucune règle Salient ne
   cible : passage en force.
   ============================================================ */

[data-gev-related="1"] {
  display: block !important;
  width: auto !important;
  max-width: var(--gev-col-wide, 1100px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  margin-top: clamp(3rem, 6vw, 5rem) !important;
  margin-bottom: clamp(2.5rem, 5vw, 4rem) !important;
  padding: clamp(1.25rem, 3vw, 2rem) clamp(1.5rem, 4vw, 2.5rem) clamp(2.5rem, 5vw, 4rem) !important;
  background: transparent !important;
  border: 0 !important;
  box-sizing: border-box !important;
}

/* Eyebrow "À LIRE AUSSI/ÉGALEMENT" : même échappatoire data-* */
[data-gev-related-eyebrow="1"] {
  font-family: var(--gev-font-sans) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.28em !important;
  text-transform: uppercase !important;
  text-align: left !important;
  margin: 0 0 1.75rem !important;
  padding: 0 0 1rem 0 !important;
  border-bottom: 1px solid var(--gev-rule-light, #ebe9e0) !important;
}

/* Grille : 3 colonnes desktop, 1 colonne mobile */
[data-gev-related-grid="1"] {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: clamp(1.5rem, 3vw, 2.25rem) !important;
  align-items: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 800px) {
  [data-gev-related-grid="1"] {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
  }
}

/* Couleur de l'eyebrow : orange sur news (par défaut), bleu sur editorial */
.gev-news [data-gev-related-eyebrow="1"] {
  color: var(--gev-orange, #ff7e00) !important;
}
.gev-editorial [data-gev-related-eyebrow="1"] {
  color: var(--gev-blue, #2563eb) !important;
}

/* ============================================================
   FIX v0.5.0 — Hero plus aéré
   - Hero plus haut pour donner plus d'air
   - Padding-top du contenu généreux pour descendre l'eyebrow
   - Plus d'espace entre eyebrow et titre
   - Eyebrow légèrement plus gros et lisible
   ============================================================ */

.gev-news .gev-news__hero {
  min-height: clamp(560px, 78vh, 820px) !important;
  height: auto !important;
}

.gev-news .gev-news__hero-content {
  padding-top: clamp(3rem, 6vw, 4.5rem) !important;
  padding-bottom: clamp(2.5rem, 5vw, 3.75rem) !important;
}

.gev-news .gev-news__hero .gev-news__eyebrow {
  font-size: 0.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.25em !important;
  margin-bottom: clamp(1.5rem, 3vw, 2.25rem) !important;
}

.gev-news .gev-news__hero .gev-news__eyebrow::before {
  width: 48px !important;
  height: 2px !important;
}

/* ============================================================
   FIX v0.5.1 — Eyebrow hero en mode "badge pill"
   Fond orange très transparent + bord subtil + radius
   Plus de filet décoratif (le pill se suffit à lui-même)
   ============================================================ */

.gev-news .gev-news__hero .gev-news__eyebrow {
  display: inline-flex !important;
  align-items: center !important;
  background: rgba(255, 126, 0, 0.12) !important;
  border: 1px solid rgba(255, 126, 0, 0.32) !important;
  border-radius: 6px !important;
  padding: 0.5rem 0.9rem !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
  /* gap conservé au cas où le filet réapparaîtrait via cascade — */
  gap: 0 !important;
}

/* On retire le filet décoratif — le pill se suffit à lui-même */
.gev-news .gev-news__hero .gev-news__eyebrow::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
}

/* ============================================================
   FIX v0.5.2 — Grid related : largeurs strictement égales
   Bug grid classique : sans min-width: 0, la taille naturelle
   de l'image enfant peut forcer une cellule grid à dépasser
   son 1fr, cassant la mise en page.
   ============================================================ */

[data-gev-related-grid="1"] > * {
  min-width: 0 !important;
  max-width: 100% !important;
}

[data-gev-related-grid="1"] article .gev-news__related-media,
[data-gev-related-grid="1"] article .gev-editorial__related-media {
  aspect-ratio: 3 / 2 !important;
  width: 100% !important;
  max-width: 100% !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
  display: block !important;
}

[data-gev-related-grid="1"] article .gev-news__related-img,
[data-gev-related-grid="1"] article .gev-editorial__related-img {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* Empêche les images sans le bon ratio de déborder leur conteneur */
[data-gev-related-grid="1"] img {
  max-width: 100% !important;
  height: auto;
}

/* ============================================================
   FIX v0.5.3 — Badge eyebrow plus visible
   On augmente l'opacité du fond et du bord pour mieux ressortir
   sur les images hero complexes.
   ============================================================ */

.gev-news .gev-news__hero .gev-news__eyebrow {
  background: rgba(255, 126, 0, 0.22) !important;
  border: 1px solid rgba(255, 126, 0, 0.55) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

/* v0.5.4 — Texte de l'eyebrow hero en blanc (pas orange) pour
   contraster avec le badge orange transparent en arrière-plan */
.gev-news .gev-news__hero .gev-news__eyebrow {
  color: #ffffff !important;
}
