/* =========================================================================
   MA-RSE — feuille de style du site — Charte v2 (fév. 2023)
   Base reprise de la maquette T01-accueil.html ; ajouts en fin de fichier.
   Polices hébergées sur le site (aucun appel à un service extérieur).
   ========================================================================= */
@font-face{font-family:"Futura Std";font-weight:400;font-style:normal;font-display:swap;src:url(../polices/futura-400.woff2) format("woff2")}
@font-face{font-family:"Futura Std";font-weight:400;font-style:italic;font-display:swap;src:url(../polices/futura-400-italic.woff2) format("woff2")}
/* Graisses : Book (texte), Heavy (gras du texte, boutons : fichier futura-900), ExtraBold (titres : fichier futura-800) */
@font-face{font-family:"Futura Std";font-weight:500 700;font-style:normal;font-display:swap;src:url(../polices/futura-900.woff2) format("woff2")}
@font-face{font-family:"Futura Std";font-weight:800 900;font-style:normal;font-display:swap;src:url(../polices/futura-800.woff2) format("woff2")}

:root {
  --c-or: #E9BE70; --c-or-clair: #F4DAA6;
  --c-bleu: #273582; --c-bleu-clair: #4956a5;
  --c-anthracite: #1C323A;
  --c-gris: #C6C6C6; --c-gris-clair: #ECECEC;
  --c-fond: #FAFAF7; --c-blanc: #FFFFFF;
  --c-success: #4a8e3a;
  --font-display: "Futura Std", "Jost", "Avenir Next", "Trebuchet MS", system-ui, sans-serif;
  --font-text: "Futura Std", "Futura", "Jost", "Avenir Next", "Trebuchet MS", system-ui, sans-serif;
  --fs-xs: 0.875rem; --fs-sm: 1rem; --fs-base: 1.0625rem;
  --fs-lg: 1.25rem; --fs-xl: 1.625rem; --fs-2xl: 2.25rem;
  --fs-hero: clamp(2.25rem, 5vw + 1rem, 3.75rem);
  --sp-1: 0.5rem; --sp-2: 1rem; --sp-3: 1.5rem; --sp-4: 2rem;
  --sp-6: 3rem; --sp-8: 4rem; --sp-12: 6rem;
  --container: 1200px;
  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 16px;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; font-family: var(--font-text);
  font-size: var(--fs-base); line-height: 1.6;
  color: var(--c-anthracite); background: var(--c-fond);
  -webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--c-bleu); text-decoration: none; }
a:hover { text-decoration: underline; }
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid var(--c-or); outline-offset: 3px; border-radius: 2px;
}
.skip-link {
  position: absolute; left: -9999px;
  background: var(--c-anthracite); color: var(--c-blanc);
  padding: var(--sp-2) var(--sp-3); z-index: 1000;
}
.skip-link:focus { left: var(--sp-2); top: var(--sp-2); }
.container {
  width: 100%; max-width: var(--container);
  margin: 0 auto; padding: 0 var(--sp-3);
}
@media (min-width: 768px) { .container { padding: 0 var(--sp-4); } }

h1, h2, h3, h4 {
  font-family: var(--font-display); font-weight: 800;
  color: var(--c-anthracite); line-height: 1.15; margin: 0 0 var(--sp-3);
}
h1 { font-size: var(--fs-hero); letter-spacing: -0.02em; }
h2 { font-size: clamp(1.75rem, 3vw + 1rem, 2.5rem); letter-spacing: -0.01em; }
h3 { font-size: var(--fs-xl); font-weight: 700; }
h4 { font-size: var(--fs-lg); font-weight: 700; }

.surligne {
  background: linear-gradient(180deg, transparent 60%, rgba(233, 190, 112, 0.45) 60%, rgba(233, 190, 112, 0.45) 92%, transparent 92%);
  padding: 0 0.15em;
}
.signature-point { position: relative; }
.signature-point::after {
  content: ""; position: absolute;
  bottom: 16px; right: 16px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--c-or);
  box-shadow: 0 0 0 4px rgba(233, 190, 112, 0.18);
}
.signature-point.bleu::after { background: var(--c-bleu); box-shadow: 0 0 0 4px rgba(39, 53, 130, 0.18); }

/* Boutons */
.btn {
  display: inline-flex; align-items: center; gap: var(--sp-1);
  padding: 14px 22px;
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--fs-sm); letter-spacing: 0.02em; text-transform: uppercase;
  border: 2px solid transparent; border-radius: var(--radius-sm);
  cursor: pointer; text-decoration: none; white-space: nowrap;
  transition: transform 0.15s ease, background 0.15s ease, color 0.15s ease;
}
.btn:hover { text-decoration: none; transform: translateY(-1px); }
.btn-primary { background: var(--c-bleu); color: var(--c-blanc); }
.btn-primary:hover { background: #1d2868; }
.btn-secondary { background: transparent; color: var(--c-bleu); border-color: var(--c-bleu); }
.btn-secondary:hover { background: var(--c-bleu); color: var(--c-blanc); }
.btn-or { background: var(--c-or); color: var(--c-anthracite); }
.btn-or:hover { background: #d8a85a; }
.btn-sm { padding: 10px 16px; font-size: 0.8rem; }
.btn-link {
  color: var(--c-bleu); font-weight: 700;
  text-transform: uppercase; font-size: var(--fs-xs); letter-spacing: 0.05em;
  border-bottom: 2px solid var(--c-or); padding-bottom: 2px;
}

/* ============================
   HEADER — version corrigée
   Layout : flex aligné, logo compact sur une ligne, CTA nowrap
   ============================ */
.site-header {
  background: var(--c-blanc);
  border-bottom: 1px solid var(--c-gris-clair);
  position: sticky; top: 0; z-index: 100;
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: 12px 0;
  min-height: 64px;
}
.logo {
  display: inline-flex; align-items: center; gap: 12px;
  text-decoration: none; flex-shrink: 0;
}
.logo-mark {
  width: 40px; height: 40px;
  background: var(--c-bleu);
  display: grid; place-items: center;
  color: var(--c-or);
  font-family: var(--font-display); font-weight: 800; font-size: 1.35rem;
  letter-spacing: -0.05em;
  flex-shrink: 0;
}
.logo-text {
  font-family: var(--font-display); font-weight: 800;
  color: var(--c-anthracite); font-size: 1.15rem;
  letter-spacing: 0.02em; line-height: 1;
  white-space: nowrap;
}
.logo-text small {
  display: block;
  margin-top: 3px;
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--c-bleu);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
}

.main-nav { display: none; flex: 1; justify-content: center; }
.main-nav > ul {
  list-style: none; display: flex;
  gap: clamp(var(--sp-3), 3vw, var(--sp-4));
  margin: 0; padding: 0;
}
.main-nav > ul > li { position: relative; }
.main-nav > ul > li > a {
  color: var(--c-anthracite);
  font-family: var(--font-display); font-weight: 600;
  font-size: 0.95rem; padding: 22px 0;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  display: inline-flex; align-items: center; gap: 4px;
}
.main-nav > ul > li > a:hover,
.main-nav > ul > li > a[aria-current="page"],
.main-nav > ul > li:hover > a,
.main-nav > ul > li:focus-within > a {
  border-bottom-color: var(--c-or); text-decoration: none;
}
.dropdown-arrow {
  font-size: 0.7rem; line-height: 1;
  transition: transform 0.2s ease;
}
.main-nav > ul > li:hover .dropdown-arrow,
.main-nav > ul > li:focus-within .dropdown-arrow {
  transform: rotate(180deg); color: var(--c-or);
}
.dropdown-menu {
  position: absolute;
  top: 100%; left: -16px;
  list-style: none; padding: 8px 0; margin: 0;
  background: var(--c-blanc);
  min-width: 260px;
  box-shadow: 0 12px 32px rgba(28, 50, 58, 0.12);
  border-top: 3px solid var(--c-or);
  border-radius: 0 0 var(--radius-md) var(--radius-md);
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 50;
}
.main-nav > ul > li:hover .dropdown-menu,
.main-nav > ul > li:focus-within .dropdown-menu {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.dropdown-menu li { margin: 0; }
.dropdown-menu a {
  display: block;
  padding: 10px 18px;
  color: var(--c-anthracite);
  font-family: var(--font-display); font-weight: 500;
  font-size: 0.9rem; line-height: 1.3;
  border-left: 3px solid transparent;
}
.dropdown-menu a:hover, .dropdown-menu a:focus-visible {
  background: var(--c-fond); color: var(--c-bleu);
  border-left-color: var(--c-or); text-decoration: none;
}
.dropdown-menu a small {
  display: block; font-size: 0.72rem; font-weight: 500;
  color: var(--c-anthracite); opacity: 0.65;
  margin-top: 2px;
}

.header-cta { display: none; flex-shrink: 0; }
.menu-toggle {
  background: var(--c-anthracite); color: var(--c-blanc);
  border: none; width: 44px; height: 44px;
  display: grid; place-items: center;
  cursor: pointer; border-radius: var(--radius-sm);
}
@media (min-width: 1100px) {
  .main-nav { display: flex; }
  .header-cta { display: inline-flex; }
  .menu-toggle { display: none; }
}

/* ============================
   HERO
   ============================ */
.hero {
  background: var(--c-fond);
  padding: var(--sp-6) 0 var(--sp-8);
  position: relative; overflow: hidden;
}
.hero::before {
  content: ""; position: absolute;
  top: -80px; right: -80px;
  width: 280px; height: 280px;
  background: var(--c-or); opacity: 0.18;
  border-radius: 50%; z-index: 0;
}
.hero::after {
  content: ""; position: absolute;
  bottom: -60px; left: -60px;
  width: 180px; height: 180px;
  background: var(--c-bleu); opacity: 0.07;
  transform: rotate(45deg); z-index: 0;
}
.hero-grid {
  position: relative; z-index: 1;
  display: grid; gap: var(--sp-6); align-items: center;
}
@media (min-width: 1024px) {
  .hero-grid { grid-template-columns: 1.2fr 1fr; gap: var(--sp-8); }
  .hero { padding: var(--sp-12) 0; }
}
.hero-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--c-bleu); background: rgba(39, 53, 130, 0.08);
  padding: 6px 14px; border-radius: 999px; margin-bottom: var(--sp-3);
}
.hero-eyebrow::before {
  content: ""; width: 8px; height: 8px; background: var(--c-or); border-radius: 50%;
}
.hero h1 { margin-bottom: var(--sp-3); }
.hero-lead {
  font-size: var(--fs-lg); color: var(--c-anthracite); opacity: 0.9;
  margin-bottom: var(--sp-4); max-width: 580px;
}
.hero-cta { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

.hero-visual {
  position: relative; aspect-ratio: 5 / 6;
  max-width: 460px; margin: 0 auto;
}
.hero-photo {
  position: absolute; inset: 0;
  background:
    linear-gradient(135deg, rgba(28, 50, 58, 0.55), rgba(39, 53, 130, 0.35)),
    linear-gradient(45deg, #2c4a52 0%, #3a6b78 50%, #5a8a98 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 78% 100%, 78% 38%, 50% 78%, 22% 38%, 22% 100%, 0 100%);
}
.hero-block-or {
  position: absolute; bottom: -20px; right: -20px;
  width: 140px; height: 140px; background: var(--c-or); z-index: -1;
}
.hero-block-bleu {
  position: absolute; top: 30px; left: -30px;
  width: 80px; height: 80px; background: var(--c-bleu);
  border-radius: 50%; z-index: -1;
}
.hero-badge {
  position: absolute; bottom: 30px; left: -10px;
  background: var(--c-blanc); padding: var(--sp-2) var(--sp-3);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  border-left: 4px solid var(--c-or); max-width: 280px;
}
.hero-badge strong {
  display: block; font-family: var(--font-display);
  font-size: 0.95rem; color: var(--c-bleu); margin-bottom: 2px;
}
.hero-badge span { font-size: var(--fs-xs); color: var(--c-anthracite); }

/* ============================
   PREUVES + CHIFFRES
   ============================ */
.preuves {
  background: var(--c-blanc);
  padding: var(--sp-6) 0;
  border-top: 1px solid var(--c-gris-clair);
  border-bottom: 1px solid var(--c-gris-clair);
}
.preuves-label {
  text-align: center;
  font-family: var(--font-display); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--c-anthracite); opacity: 0.6;
  margin-bottom: var(--sp-3);
}
.partenaires-row {
  display: flex; justify-content: center; align-items: center;
  gap: var(--sp-4); flex-wrap: wrap;
  margin-bottom: var(--sp-6); opacity: 0.75;
}
.partenaire-logo {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.95rem; color: var(--c-anthracite); letter-spacing: 0.05em;
  padding: 8px 14px; border: 1px solid var(--c-gris); border-radius: var(--radius-sm);
}
.partenaire-logo.highlight {
  background: var(--c-bleu); color: var(--c-blanc); border-color: var(--c-bleu);
}
.chiffres-cles {
  display: grid; grid-template-columns: 1fr; gap: var(--sp-3);
  max-width: 1000px; margin: 0 auto;
}
@media (min-width: 768px) { .chiffres-cles { grid-template-columns: repeat(3, 1fr); } }
.chiffre {
  text-align: center; padding: var(--sp-3);
  border-top: 4px solid var(--c-or); background: var(--c-fond);
}
.chiffre-number {
  font-family: var(--font-display); font-weight: 800;
  font-size: clamp(2rem, 4vw, 2.75rem);
  color: var(--c-bleu); line-height: 1; margin-bottom: 8px;
}
.chiffre-label {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.95rem; color: var(--c-anthracite); margin-bottom: 4px;
}
.chiffre-detail { font-size: var(--fs-xs); color: var(--c-anthracite); opacity: 0.7; }

/* ============================
   SECTIONS GÉNÉRIQUES
   ============================ */
section.bloc { padding: var(--sp-8) 0; }
@media (min-width: 1024px) { section.bloc { padding: var(--sp-12) 0; } }
.bloc-header { max-width: 760px; margin-bottom: var(--sp-6); }
.bloc-header.center { margin-left: auto; margin-right: auto; text-align: center; }
.bloc-eyebrow {
  display: inline-block;
  font-family: var(--font-display); font-weight: 700;
  font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 0.12em;
  color: var(--c-bleu); margin-bottom: var(--sp-2);
}
.bloc-eyebrow::before {
  content: ""; display: inline-block;
  width: 24px; height: 2px; background: var(--c-or);
  vertical-align: middle; margin-right: 10px;
}
.bloc-intro { font-size: var(--fs-lg); color: var(--c-anthracite); opacity: 0.85; }

/* ============================
   4 CARTES SERVICES (révisé : RSE robuste, CSRD, QSE, Formation)
   ============================ */
.services-grid {
  display: grid; gap: var(--sp-3); grid-template-columns: 1fr;
}
@media (min-width: 768px) { .services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .services-grid { grid-template-columns: repeat(4, 1fr); } }
.service-card {
  background: var(--c-blanc); padding: var(--sp-4);
  border-radius: var(--radius-md); border: 1px solid var(--c-gris-clair);
  transition: border-color 0.2s ease, transform 0.2s ease;
  display: flex; flex-direction: column; min-height: 340px;
}
.service-card:hover { border-color: var(--c-or); transform: translateY(-4px); }
.service-icon {
  width: 56px; height: 56px;
  background: rgba(39, 53, 130, 0.08); color: var(--c-bleu);
  display: grid; place-items: center;
  border-radius: var(--radius-sm); margin-bottom: var(--sp-3);
}
.service-card h3 { margin-bottom: var(--sp-2); font-size: 1.2rem; }
.service-card p {
  flex-grow: 1; margin: 0 0 var(--sp-3);
  font-size: 0.95rem; color: var(--c-anthracite); opacity: 0.85;
}

/* ============================
   MÉTHODE 10 ÉTAPES — APERÇU
   ============================ */
.methode { background: var(--c-blanc); }
.methode-livre {
  background: var(--c-fond);
  border-left: 4px solid var(--c-or);
  padding: var(--sp-3) var(--sp-4);
  margin-bottom: var(--sp-6);
  display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap;
}
.methode-livre-icon {
  width: 56px; height: 72px;
  background: linear-gradient(135deg, var(--c-bleu) 0%, var(--c-anthracite) 100%);
  border-radius: 4px;
  display: grid; place-items: center;
  color: var(--c-or);
  font-family: var(--font-display); font-weight: 800; font-size: 0.7rem;
  text-align: center; line-height: 1.1;
  flex-shrink: 0;
  box-shadow: 4px 4px 0 var(--c-or);
}
.methode-livre-text { flex: 1; min-width: 240px; }
.methode-livre-text strong {
  font-family: var(--font-display); font-weight: 800;
  color: var(--c-anthracite); font-size: 1rem; display: block; margin-bottom: 2px;
}
.methode-livre-text span { font-size: 0.9rem; color: var(--c-anthracite); opacity: 0.85; }

.etapes-grid {
  display: grid; gap: var(--sp-2);
  grid-template-columns: 1fr;
  counter-reset: etape;
}
@media (min-width: 640px) { .etapes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .etapes-grid { grid-template-columns: repeat(5, 1fr); } }
.etape {
  counter-increment: etape;
  background: var(--c-fond);
  padding: var(--sp-3);
  border-radius: var(--radius-md);
  border-top: 3px solid var(--c-or);
  position: relative;
}
.etape::before {
  content: counter(etape, decimal-leading-zero);
  display: block;
  font-family: var(--font-display); font-weight: 800;
  font-size: 1.5rem; color: var(--c-or);
  line-height: 1; margin-bottom: var(--sp-2);
}
.etape h4 {
  font-size: 0.95rem; margin-bottom: 0; color: var(--c-bleu);
  line-height: 1.3;
}

.methode-cta { text-align: center; margin-top: var(--sp-6); }

/* ============================
   VERTICALES
   ============================ */
.verticales-grid {
  display: grid; gap: var(--sp-3); grid-template-columns: 1fr;
}
@media (min-width: 900px) { .verticales-grid { grid-template-columns: 1fr 1fr; } }
.verticale {
  background: var(--c-anthracite); color: var(--c-blanc);
  padding: var(--sp-6); border-radius: var(--radius-md);
  position: relative; overflow: hidden;
  min-height: 320px;
  display: flex; flex-direction: column; justify-content: flex-end;
}
.verticale.vins { background: linear-gradient(135deg, #1C323A 0%, #273582 100%); }
.verticale.agro { background: linear-gradient(135deg, #1C323A 0%, #4a6b3a 100%); }
.verticale-eyebrow {
  font-family: var(--font-display); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: 0.15em;
  color: var(--c-or); margin-bottom: var(--sp-2);
}
.verticale h3 { color: var(--c-blanc); font-size: 1.5rem; margin-bottom: var(--sp-2); }
.verticale p { color: rgba(255, 255, 255, 0.85); margin-bottom: var(--sp-3); }
.verticale-shape {
  position: absolute; top: -40px; right: -40px;
  width: 200px; height: 200px;
  background: var(--c-or); opacity: 0.12; border-radius: 50%;
}
.verticale a {
  color: var(--c-or);
  font-family: var(--font-display); font-weight: 700;
  text-transform: uppercase; font-size: var(--fs-xs); letter-spacing: 0.05em;
  border-bottom: 2px solid var(--c-or); padding-bottom: 2px;
  align-self: flex-start;
}

/* ============================
   TÉMOIGNAGES — CARROUSEL AUTO-DÉFILANT
   Pause au survol/focus, désactivé si prefers-reduced-motion
   ============================ */
.temoignages { background: var(--c-fond); overflow: hidden; }

.marquee {
  position: relative;
  overflow: hidden;
  margin: 0 calc(-1 * var(--sp-3));
  padding: var(--sp-2) 0;
  mask-image: linear-gradient(to right,
    transparent 0,
    black 60px,
    black calc(100% - 60px),
    transparent 100%);
  -webkit-mask-image: linear-gradient(to right,
    transparent 0,
    black 60px,
    black calc(100% - 60px),
    transparent 100%);
}

@keyframes marquee-scroll {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.marquee-track {
  display: flex;
  gap: var(--sp-3);
  width: max-content;
  animation: marquee-scroll 60s linear infinite;
}

.marquee:hover .marquee-track,
.marquee:focus-within .marquee-track {
  animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
  .marquee-track {
    animation: none;
    transform: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
}

.temoignage {
  background: var(--c-blanc);
  padding: var(--sp-4);
  border-radius: var(--radius-md);
  border-top: 4px solid var(--c-bleu);
  flex: 0 0 340px;
  max-width: 340px;
  display: flex; flex-direction: column;
  position: relative;
  scroll-snap-align: start;
}
.temoignage::before {
  content: "\201C";
  position: absolute; top: -10px; left: 16px;
  font-family: Georgia, serif; font-size: 5rem;
  color: var(--c-or); line-height: 1;
}
.temoignage-quote {
  font-size: 0.98rem; color: var(--c-anthracite); line-height: 1.5;
  margin: var(--sp-2) 0 var(--sp-3); flex-grow: 1;
}
.temoignage-meta {
  display: flex; align-items: center; gap: var(--sp-2);
  padding-top: var(--sp-3); border-top: 1px solid var(--c-gris-clair);
}
.temoignage-avatar {
  width: 48px; height: 48px;
  background: var(--c-bleu); color: var(--c-or);
  display: grid; place-items: center;
  font-family: var(--font-display); font-weight: 700;
  border-radius: 50%; flex-shrink: 0;
}
.temoignage-author {
  font-family: var(--font-display); font-weight: 700;
  font-size: 0.95rem; color: var(--c-anthracite);
}
.temoignage-role { font-size: var(--fs-xs); color: var(--c-anthracite); opacity: 0.7; }
.temoignage-tag {
  display: inline-block; margin-top: 4px;
  font-size: 0.7rem;
  background: rgba(233, 190, 112, 0.2); color: var(--c-bleu);
  padding: 2px 8px; border-radius: 4px;
  font-family: var(--font-display); font-weight: 500;
}

/* ============================
   ARTICLES
   ============================ */
.articles { background: var(--c-blanc); }
.articles-grid { display: grid; gap: var(--sp-3); grid-template-columns: 1fr; }
@media (min-width: 768px) { .articles-grid { grid-template-columns: repeat(3, 1fr); } }
.article-card {
  background: var(--c-fond); border-radius: var(--radius-md);
  overflow: hidden; display: flex; flex-direction: column;
  transition: transform 0.2s ease;
}
.article-card:hover { transform: translateY(-4px); }
.article-cover {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, var(--c-bleu) 0%, var(--c-anthracite) 100%);
  position: relative; overflow: hidden;
}
.article-cover.var-2 { background: linear-gradient(135deg, var(--c-or) 0%, #c89642 100%); }
.article-cover.var-3 { background: linear-gradient(135deg, #4a6b3a 0%, var(--c-anthracite) 100%); }
.article-cover::after {
  content: ""; position: absolute;
  bottom: 0; left: 0; right: 0; height: 8px;
  background: var(--c-or);
}
.article-cover.var-2::after { background: var(--c-bleu); }
.article-cover.var-3::after { background: var(--c-or); }
.article-body { padding: var(--sp-3); display: flex; flex-direction: column; flex-grow: 1; }
.article-meta {
  display: flex; gap: var(--sp-2); align-items: center;
  font-family: var(--font-display); font-size: var(--fs-xs);
  text-transform: uppercase; letter-spacing: 0.05em;
  color: var(--c-bleu); margin-bottom: var(--sp-2);
}
.article-meta .dot { width: 4px; height: 4px; background: var(--c-or); border-radius: 50%; }
.article-card h3 { font-size: 1.1rem; margin-bottom: var(--sp-2); flex-grow: 1; }
.article-card a { color: var(--c-anthracite); }
.article-card a:hover { color: var(--c-bleu); text-decoration: none; }

/* ============================
   NEWSLETTER
   ============================ */
.newsletter {
  background: var(--c-bleu); color: var(--c-blanc);
  position: relative; overflow: hidden;
}
.newsletter::before {
  content: ""; position: absolute;
  top: -100px; right: -100px;
  width: 320px; height: 320px;
  background: var(--c-or); opacity: 0.15; border-radius: 50%;
}
.newsletter-grid { position: relative; display: grid; gap: var(--sp-4); align-items: center; }
@media (min-width: 900px) { .newsletter-grid { grid-template-columns: 1.2fr 1fr; gap: var(--sp-6); } }
.newsletter h2 { color: var(--c-blanc); font-size: clamp(1.5rem, 2.5vw + 1rem, 2.25rem); }
.newsletter h2 .surligne {
  background: linear-gradient(180deg, transparent 60%, rgba(233, 190, 112, 0.5) 60%, rgba(233, 190, 112, 0.5) 92%, transparent 92%);
}
.newsletter p { color: rgba(255, 255, 255, 0.9); }
.newsletter-form { display: flex; flex-direction: column; gap: var(--sp-2); }
.newsletter-form input {
  padding: 14px 16px; border: none; border-radius: var(--radius-sm);
  font-family: var(--font-text); font-size: var(--fs-base);
}
.newsletter-form .form-row { display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.newsletter-form .form-row input { flex: 1 1 200px; }
.newsletter-rgpd { font-size: var(--fs-xs); color: rgba(255, 255, 255, 0.75); }
.newsletter-rgpd a { color: var(--c-or); }

/* ============================
   FOOTER
   ============================ */
.site-footer {
  background: var(--c-anthracite); color: var(--c-blanc);
  padding: var(--sp-6) 0 var(--sp-3);
}
.footer-grid {
  display: grid; gap: var(--sp-4); grid-template-columns: 1fr;
  margin-bottom: var(--sp-6);
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; } }
.footer-col h4 {
  color: var(--c-or); font-size: 0.95rem;
  text-transform: uppercase; letter-spacing: 0.1em;
  margin-bottom: var(--sp-3);
}
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: var(--sp-1); }
.footer-col a { color: rgba(255, 255, 255, 0.85); font-size: 0.95rem; }
.footer-col a:hover { color: var(--c-or); text-decoration: none; }
.footer-about p { color: rgba(255, 255, 255, 0.8); font-size: 0.95rem; margin: var(--sp-2) 0 var(--sp-3); }
.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: var(--sp-3);
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
  gap: var(--sp-2); font-size: var(--fs-xs); color: rgba(255, 255, 255, 0.65);
}
.footer-bottom a { color: rgba(255, 255, 255, 0.85); }
.ecoindex {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255, 255, 255, 0.1); padding: 6px 12px; border-radius: 4px;
}
.ecoindex-grade {
  display: inline-grid; place-items: center;
  width: 24px; height: 24px;
  background: var(--c-success); color: var(--c-blanc);
  font-family: var(--font-display); font-weight: 800; border-radius: 4px;
}
.sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* =========================================================================
   AJOUTS — version PHP du site
   ========================================================================= */
.site-header .container.header-inner{padding:8px var(--sp-3)}
@media (min-width:768px){.site-header .container.header-inner{padding:8px var(--sp-4)}}
.logo img{width:52px;height:52px}
.site-footer .logo img{width:64px;height:64px}
.main-nav > ul > li > a{font-weight:700}
.header-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}

/* Menu mobile */
.menu-mobile{display:none;background:var(--c-blanc);border-top:1px solid var(--c-gris-clair);padding:var(--sp-2) 0 var(--sp-4)}
.menu-mobile.ouvert{display:block}
.menu-mobile ul{list-style:none;margin:0;padding:0}
.menu-mobile > .container > ul > li{border-bottom:1px solid var(--c-gris-clair);padding:var(--sp-2) 0}
.menu-mobile .titre{font-family:var(--font-display);font-weight:800;color:var(--c-anthracite);display:block;padding:6px 0}
.menu-mobile ul ul a{display:block;padding:8px 0 8px var(--sp-2);color:var(--c-anthracite);border-left:3px solid var(--c-or);margin:2px 0}
.menu-mobile .btn{margin-top:var(--sp-3);width:100%;justify-content:center}
@media (min-width:1100px){.menu-mobile,.menu-mobile.ouvert{display:none}}

/* Bandeau de préproduction */
.bandeau-preprod{background:var(--c-anthracite);color:var(--c-or);text-align:center;font-family:var(--font-display);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:6px var(--sp-2)}

/* Hero : portrait */
.hero-visual{aspect-ratio:auto;max-width:420px}
.hero-portrait{position:relative;z-index:1;border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 18px 40px rgba(28,50,58,.18)}
.hero-portrait img{width:100%;aspect-ratio:1/1;object-fit:cover}
.hero-badge{position:relative;left:auto;bottom:auto;margin:-28px 0 0 -10px;z-index:2;display:inline-block}
.hero-badge a{font-family:var(--font-display);font-weight:700;color:var(--c-bleu)}

/* Offres (5 cartes) */
.services-grid{grid-template-columns:1fr}
@media (min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:900px){.services-grid{grid-template-columns:repeat(6,1fr)}
  .services-grid > *{grid-column:span 2}
  .services-grid > *:nth-child(4){grid-column:2 / span 2}}
@media (min-width:1200px){.services-grid{grid-template-columns:repeat(5,1fr);gap:var(--sp-2)}
  .services-grid > *, .services-grid > *:nth-child(4){grid-column:auto}
  .service-card{padding:var(--sp-3)}}
.service-card{min-height:0}
.service-card h3 a{color:inherit}
.service-card h3 a:hover{color:var(--c-bleu);text-decoration:none}

/* Diagnostic : trois niveaux */
.diagnostic{background:var(--c-blanc)}
.niveaux{display:grid;gap:var(--sp-3);grid-template-columns:1fr;align-items:stretch}
@media (min-width:900px){.niveaux{grid-template-columns:repeat(3,1fr)}}
.niveau{position:relative;background:var(--c-fond);border:1px solid var(--c-gris-clair);border-top:4px solid var(--c-or);border-radius:var(--radius-md);padding:var(--sp-4);display:flex;flex-direction:column}
.niveau.phare{border-color:var(--c-bleu);border-top-color:var(--c-bleu);background:var(--c-blanc);box-shadow:0 14px 34px rgba(39,53,130,.12)}
.niveau-rang{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--c-bleu);margin:0 0 var(--sp-1)}
.niveau h3{margin-bottom:var(--sp-2)}
.niveau > p{margin:0 0 var(--sp-2)}
.niveau ul{list-style:none;margin:0 0 var(--sp-3);padding:0;flex-grow:1}
.niveau li{position:relative;padding:6px 0 6px 26px;font-size:.95rem;border-bottom:1px solid var(--c-gris-clair)}
.niveau li:last-child{border-bottom:0}
.niveau li::before{content:"";position:absolute;left:4px;top:14px;width:10px;height:10px;border-radius:50%;background:var(--c-or)}
.niveau .etiquette{position:absolute;top:-14px;right:16px;background:var(--c-bleu);color:var(--c-blanc);font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.niveau .btn{align-self:flex-start}
.diagnostic-note{margin-top:var(--sp-4);font-size:.95rem;opacity:.85}

/* Chiffres clés (4) */
.resultats{background:var(--c-fond)}
@media (min-width:768px){.chiffres-cles{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.chiffres-cles{grid-template-columns:repeat(4,1fr);max-width:none}}
.chiffre{background:var(--c-blanc)}
.chiffre-label{font-weight:400;font-family:var(--font-text);font-size:.95rem}

/* Partenaires */
.partenaires-row{margin-bottom:0;opacity:1}
a.partenaire-logo{text-decoration:none;transition:border-color .15s ease,color .15s ease}
a.partenaire-logo:hover{border-color:var(--c-or);color:var(--c-bleu)}

/* Nous suivre */
.suivre-grid{display:grid;gap:var(--sp-3);grid-template-columns:1fr}
@media (min-width:768px){.suivre-grid{grid-template-columns:1fr 1fr}}
.suivre-carte{background:var(--c-blanc);border:1px solid var(--c-gris-clair);border-radius:var(--radius-md);padding:var(--sp-4)}
.suivre-carte h3{margin-bottom:var(--sp-2)}
.suivre-carte p{margin:0 0 var(--sp-3)}

/* Pied de page */
.footer-label{width:84px;border-radius:6px;margin-top:var(--sp-2)}
.footer-col .titre-col{color:var(--c-or);font-family:var(--font-display);font-weight:700;font-size:.95rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 var(--sp-3)}
.footer-about a{color:rgba(255,255,255,.85)}

/* Pages intérieures simples */
.page-simple{padding:var(--sp-8) 0}
.page-simple .container{max-width:820px}
.page-simple .chantier{background:var(--c-blanc);border-left:4px solid var(--c-or);padding:var(--sp-3) var(--sp-4);border-radius:0 var(--radius-md) var(--radius-md) 0}

/* Administration */
.admin-page{padding:var(--sp-6) 0 var(--sp-8)}
.admin-page .container{max-width:980px}
.formulaire{display:flex;flex-direction:column;gap:6px;max-width:420px}
.formulaire label{font-family:var(--font-display);font-size:var(--fs-xs);font-weight:700;color:var(--c-anthracite);margin-top:var(--sp-2)}
.formulaire input{font:inherit;padding:12px 14px;border:1px solid var(--c-gris);border-radius:var(--radius-sm);background:var(--c-blanc)}
.formulaire .btn{margin-top:var(--sp-3);align-self:flex-start}
.message{padding:12px 16px;border-left:4px solid var(--c-bleu);background:var(--c-blanc);margin:0 0 var(--sp-3);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.message.erreur{border-color:#a63a2a}
.tuiles{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:var(--sp-4) 0 var(--sp-6)}
.tuile{display:flex;flex-direction:column;gap:6px;background:var(--c-blanc);border:1px solid var(--c-gris-clair);border-top:4px solid var(--c-or);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);color:var(--c-anthracite);transition:transform .15s ease,border-color .15s ease}
a.tuile:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--c-bleu)}
.tuile strong{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--c-bleu)}
.tuile span{font-size:.92rem;opacity:.85}
.tuile.avenir{border-top-color:var(--c-gris);opacity:.75}
.etat{border-collapse:collapse;width:100%;background:var(--c-blanc);font-size:.95rem}
.etat th,.etat td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--c-gris-clair)}
.etat th{font-family:var(--font-display);font-weight:700;width:45%}
.ok{color:var(--c-success);font-weight:600}.ko{color:#a63a2a;font-weight:600}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

/* Téléphone : rien ne dépasse de l'écran */
body{overflow-x:clip}
.hero-grid > *, .newsletter-grid > *, .suivre-grid > *, .niveaux > *, .services-grid > *{min-width:0}
@media (max-width:520px){
  .btn{white-space:normal;text-align:center;justify-content:center}
  .hero-cta .btn{width:100%}
  .hero-eyebrow{letter-spacing:.06em}
  .hero-badge{margin-left:0}
  .hero-block-bleu{left:-12px}
  .hero-block-or{right:-8px}
}

/* =========================================================================
   LA REVUE DE L'ESSAIM — liste et article
   ========================================================================= */
.container.etroit{max-width:780px}
.rubriques{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--sp-4)}
.rubriques a{font-family:var(--font-display);font-weight:700;font-size:.85rem;padding:7px 14px;border:1px solid var(--c-gris);border-radius:999px;color:var(--c-anthracite);background:var(--c-blanc)}
.rubriques a:hover{border-color:var(--c-or);text-decoration:none}
.rubriques a[aria-current]{background:var(--c-bleu);border-color:var(--c-bleu);color:var(--c-blanc)}
.rubriques small{opacity:.7;font-weight:400;margin-left:4px}
.revue .articles-grid{gap:var(--sp-4) var(--sp-3)}
@media (min-width:640px) and (max-width:1023px){.revue .articles-grid{grid-template-columns:repeat(2,1fr)}}
.revue .article-card{background:var(--c-blanc);border:1px solid var(--c-gris-clair)}
.article-card > a{display:flex;flex-direction:column;height:100%}
.article-image{width:100%;aspect-ratio:16/9;object-fit:contain;background:var(--c-anthracite);border-bottom:6px solid var(--c-or)}
.article-card h2{font-size:1.1rem;line-height:1.3;margin-bottom:var(--sp-2)}
.article-extrait{font-size:.92rem;margin:0 0 var(--sp-3);opacity:.85;flex-grow:1}
.article-meta{flex-wrap:wrap}
.pagination{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--sp-2);align-items:center;margin-top:var(--sp-6);font-family:var(--font-display);font-size:.9rem}
.pagination a{font-weight:700}
.pagination a[rel=next]{text-align:right}

.article-entete{padding:var(--sp-6) 0 0}
.article-entete .article-meta a{color:var(--c-bleu)}
.article-entete h1{font-size:clamp(1.8rem,3.2vw + 1rem,2.9rem);margin-bottom:var(--sp-2)}
.article-infos{font-size:.92rem;opacity:.75;margin:0 0 var(--sp-4)}
.article-une{width:auto;max-width:min(100%,980px);height:auto;max-height:640px;margin:0 auto;border-radius:var(--radius-md);border-bottom:8px solid var(--c-or)}
.prose{padding-top:var(--sp-6);padding-bottom:var(--sp-4);font-size:1.09rem;line-height:1.75}
.prose p{margin:0 0 1.2em}
.prose h2{font-size:1.6rem;margin:1.8em 0 .6em}
.prose h3{font-size:1.25rem;margin:1.6em 0 .5em}
.prose a{text-decoration:underline;text-decoration-color:var(--c-or);text-decoration-thickness:2px;text-underline-offset:3px;overflow-wrap:anywhere}
.prose a:hover{text-decoration-color:var(--c-bleu)}
.prose ul,.prose ol{margin:0 0 1.2em;padding-left:1.3em}
.prose li{margin-bottom:.4em}
.prose blockquote{margin:1.6em 0;padding:var(--sp-2) var(--sp-3);border-left:4px solid var(--c-or);background:var(--c-blanc);border-radius:0 var(--radius-md) var(--radius-md) 0}
.prose blockquote p:last-child{margin-bottom:0}
.prose hr{border:0;height:2px;width:64px;background:var(--c-or);margin:2.4em 0}
.prose figure.tableau{margin:1.6em 0;overflow-x:auto}
.prose table{border-collapse:collapse;width:100%;font-size:.95rem;background:var(--c-blanc)}
.prose td,.prose th{border:1px solid var(--c-gris-clair);padding:10px 12px;vertical-align:top;text-align:left}
.article-pied{padding-bottom:var(--sp-8)}
.article-appel{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center;justify-content:space-between;background:var(--c-blanc);border:1px solid var(--c-gris-clair);border-top:4px solid var(--c-or);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4)}
.article-appel p{margin:0;flex:1 1 280px}
.article-voisins{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-top:var(--sp-4)}
.article-voisins a{font-family:var(--font-display);font-weight:700;color:var(--c-anthracite);line-height:1.3}
.article-voisins a.droite{text-align:right;grid-column:2}
.article-voisins small{display:block;font-family:var(--font-text);font-weight:400;font-size:.8rem;color:var(--c-bleu);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
@media (max-width:600px){.article-voisins{grid-template-columns:1fr}.article-voisins a.droite{grid-column:1;text-align:left}}

/* Futura partout : réglages de lecture du texte courant */
body{font-size:1.09rem;line-height:1.6}
.prose{font-size:1.16rem;line-height:1.7}
strong,b{font-weight:700}
input,button,select,textarea{font-family:inherit}
.main-nav > ul > li > a{font-weight:700}
.dropdown-menu a,.temoignage-tag{font-weight:400}
.dropdown-menu a small{font-weight:400}

/* =========================================================================
   PAGES REPRISES DE WORDPRESS — ajustements communs (le détail est dans css/pages/)
   ========================================================================= */
.reprise h1,.reprise h2,.reprise h3,.reprise h4{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal;word-break:normal;text-wrap:balance}
.reprise h1{font-size:clamp(2rem,3.4vw + 1rem,3.2rem)}
.reprise .icone{flex-shrink:0}
.reprise img{max-width:100%;height:auto}
.widget-a-venir{padding:var(--sp-3) var(--sp-4);border:1px dashed var(--c-gris);border-radius:var(--radius-md);background:var(--c-blanc);opacity:.85}
.avis-contact{padding:14px 18px;border-left:4px solid var(--c-success);background:var(--c-blanc);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 var(--sp-3)}
.avis-contact.erreur{border-color:#a63a2a}
.reprise form input[name="form-field-honey0"]{position:absolute;left:-9999px}
.reprise form .form-group:has(input[name="form-field-honey0"]){position:absolute;left:-9999px;height:0;overflow:hidden}
.messages details{background:var(--c-blanc);border:1px solid var(--c-gris-clair);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:8px}
.messages summary{cursor:pointer}
/* Marge de sécurité : une section reprise qui n'a pas sa propre marge ne colle plus aux bords de l'écran */
.reprise :where(.brxe-section){padding-inline:var(--sp-3)}
.reprise{hyphens:manual;-webkit-hyphens:manual}
/* Pas de coupure de mots dans les titres des pages reprises (les anciennes pages l'imposaient) */
.reprise h1,.reprise h2,.reprise h3,.reprise h4,.reprise [class*="title"],.reprise [class*="titre"]{hyphens:manual!important;-webkit-hyphens:manual!important;overflow-wrap:normal!important;word-break:normal!important}

/* =========================================================================
   RELAIS (YouTube, LinkedIn)
   ========================================================================= */
.relais-grille{list-style:none;margin:0 0 var(--sp-4);padding:0;display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.relais-carte{display:flex;flex-direction:column;height:100%;background:var(--c-blanc);border:1px solid var(--c-gris-clair);border-radius:var(--radius-md);overflow:hidden;color:var(--c-anthracite);transition:transform .15s ease,border-color .15s ease}
.relais-carte:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--c-or)}
.relais-image{position:relative;display:block;background:var(--c-anthracite)}
.relais-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.relais-lecture{position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:rgba(28,50,58,.82)}
.relais-lecture::after{content:"";position:absolute;left:21px;top:16px;border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent var(--c-or)}
.relais-texte{display:flex;flex-direction:column;gap:6px;padding:var(--sp-2) var(--sp-3) var(--sp-3);flex-grow:1}
.relais-date{font-size:var(--fs-xs);color:var(--c-bleu);text-transform:uppercase;letter-spacing:.05em}
.relais-texte strong{font-weight:700;line-height:1.3}
.relais-extrait{font-size:.92rem;opacity:.85}
.relais-suite{margin-top:auto;padding-top:8px;font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--c-bleu)}
.relais-vide{opacity:.75}
.reprise .relais-grille{max-width:1200px;margin-inline:auto}

/* =========================================================================
   ADMINISTRATION — articles et relais
   ========================================================================= */
.admin-menu{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding-bottom:var(--sp-2);margin-bottom:var(--sp-4);border-bottom:2px solid var(--c-bleu);font-weight:700}
.admin-menu a{color:var(--c-anthracite);padding:6px 0;border-bottom:3px solid transparent}
.admin-menu a[aria-current]{color:var(--c-bleu);border-bottom-color:var(--c-or)}
.admin-menu .droite{margin-left:auto}
.admin-page h1{font-size:clamp(1.6rem,2.5vw + 1rem,2.3rem)}
.admin-page h2{font-size:1.25rem;margin-top:var(--sp-4)}
.defile{overflow-x:auto}
.etat thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;width:auto}
.liste-articles th,.liste-articles td{width:auto}
.fort{font-weight:700}
.pastille{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 9px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.pastille.ok{color:var(--c-success)}.pastille.attente{color:#96650f}
tr.masque td{opacity:.5}
.article-form{max-width:820px}
.article-form input[type=text],.article-form input:not([type]),.article-form textarea,.formulaire textarea,.formulaire input[type=url],.formulaire input[type=date],.formulaire input[type=datetime-local]{font:inherit;padding:12px 14px;border:1px solid var(--c-gris);border-radius:var(--radius-sm);background:var(--c-blanc);width:100%}
.article-form #titre{font-family:var(--font-display);font-weight:800;font-size:1.4rem}
.formulaire fieldset{border:1px solid var(--c-gris-clair);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-3) 0 0;display:flex;flex-direction:column;gap:6px;background:var(--c-blanc)}
.formulaire legend{font-weight:700;font-size:var(--fs-xs);padding:0 6px}
.formulaire .choix{display:inline-flex;gap:8px;align-items:center;font-weight:400;margin:2px 14px 2px 0}
.formulaire fieldset:has(.choix){flex-direction:row;flex-wrap:wrap}
.formulaire.ligne{flex-direction:row;align-items:flex-end;gap:var(--sp-2);flex-wrap:wrap;max-width:none}
.formulaire.ligne > div{display:flex;flex-direction:column;gap:6px;flex:1 1 260px}
.formulaire.ligne .btn{margin-top:0}
.aide{font-size:.88rem;opacity:.8;margin:4px 0 0}
.editeur-barre{display:flex;flex-wrap:wrap;gap:4px;padding:6px;background:var(--c-anthracite);border-radius:var(--radius-sm) var(--radius-sm) 0 0;position:sticky;top:68px;z-index:5}
.editeur-barre button{font:inherit;font-size:.85rem;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:5px 10px;cursor:pointer}
.editeur-barre button:hover,.editeur-barre button:focus-visible{background:var(--c-or);color:var(--c-anthracite);border-color:var(--c-or)}
.editeur{min-height:340px;background:var(--c-blanc);border:1px solid var(--c-gris);border-top:0;border-radius:0 0 var(--radius-sm) var(--radius-sm);padding:var(--sp-3) var(--sp-4)}
.editeur:focus{outline:3px solid var(--c-or);outline-offset:0}
.editeur.prose{padding-top:var(--sp-3);font-size:1.08rem}
.apercu-image{border-radius:var(--radius-sm);border:1px solid var(--c-gris-clair)}
.actions-article{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center;margin-top:var(--sp-4)}
.actions-article .btn{margin-top:0}
.btn-danger{background:#a63a2a;color:#fff}
.zone-danger{margin-top:var(--sp-6);max-width:820px}
.zone-danger summary{cursor:pointer;color:#a63a2a;font-weight:700}
.en-ligne{display:inline}
button.lien{background:none;border:0;padding:0;margin-left:12px;font:inherit;font-size:.88rem;color:var(--c-bleu);text-decoration:underline;cursor:pointer}
button.lien.danger{color:#a63a2a}
.actions{text-align:right;white-space:nowrap}
.bandeau-apercu{background:var(--c-or);color:var(--c-anthracite);text-align:center;padding:8px var(--sp-2);margin:0;font-weight:700}
.logo-mini{width:40px;height:40px;object-fit:contain;background:#fff;border:1px solid var(--c-gris-clair);border-radius:4px}
.formulaire select,.formulaire input[type=number]{font:inherit;padding:12px 14px;border:1px solid var(--c-gris);border-radius:var(--radius-sm);background:var(--c-blanc)}
.reprise .tmg-mlogo{background-size:contain;background-repeat:no-repeat;background-position:center}
.reprise .partenaire-card-logo{object-fit:contain}
/* Formulaire de contact : chaque champ occupe sa ligne, la case de consentement ne chevauche plus la zone de texte */
.reprise form textarea{display:block;width:100%;box-sizing:border-box}
.reprise form .form-group{position:relative}
.reprise form .form-group:has(.options-wrapper){margin-top:var(--sp-3);clear:both}
.reprise form .options-wrapper{list-style:none;margin:8px 0 0;padding:0}
.reprise form .options-wrapper li{display:flex;gap:10px;align-items:flex-start}

/* =========================================================================
   ALLÈGEMENT (EcoIndex) : moins d'éléments dans la page, même rendu
   ========================================================================= */
/* Flèche des menus dessinée en CSS */
.main-nav > ul > li > a::after{content:"▾";font-size:.7rem;margin-left:4px;transition:transform .2s ease}
.main-nav > ul > li:hover > a::after,.main-nav > ul > li:focus-within > a::after{transform:rotate(180deg);color:var(--c-or)}
/* Menu du téléphone : copie du menu principal, construite au clic */
.menu-mobile > .container > ul{list-style:none;margin:0;padding:0}
.menu-mobile > .container > ul > li{border-bottom:1px solid var(--c-gris-clair);padding:var(--sp-2) 0}
.menu-mobile > .container > ul > li > a{font-family:var(--font-display);font-weight:800;color:var(--c-anthracite);display:block;padding:6px 0}
.menu-mobile > .container > ul > li > a::after{content:none}
.menu-mobile .dropdown-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;padding:0;min-width:0}
.menu-mobile .dropdown-menu a{display:block;padding:8px 0 8px var(--sp-2);border-left:3px solid var(--c-or);margin:2px 0;font-weight:400;font-size:1rem}
.menu-mobile .dropdown-menu small{display:none}
/* Pied de page : liens en colonne sans liste */
.footer-col .liens{margin:0}
.footer-col .liens a{display:block;margin-bottom:var(--sp-1)}
/* Décor du portrait */
.hero-visual::before{content:"";position:absolute;bottom:-20px;right:-20px;width:140px;height:140px;background:var(--c-or);z-index:0}
.hero-visual::after{content:"";position:absolute;top:30px;left:-30px;width:80px;height:80px;background:var(--c-bleu);border-radius:50%;z-index:0}
@media (max-width:520px){.hero-visual::before{right:-8px}.hero-visual::after{left:-12px}}
/* Chiffres clés */
.chiffre{font-size:.95rem}
.chiffre .chiffre-number{display:block}
/* Cartes « nous suivre » */
a.suivre-carte{display:block;color:var(--c-bleu);font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em}
a.suivre-carte:hover{text-decoration:none;border-color:var(--c-or)}
a.suivre-carte strong{display:block;font-family:var(--font-display);font-weight:800;font-size:var(--fs-xl);text-transform:none;letter-spacing:0;color:var(--c-anthracite);margin-bottom:var(--sp-2)}
/* Cartes d'articles */
p.article-meta{margin:0 0 var(--sp-2)}
.accueil .article-card h3{font-size:1.1rem;margin-bottom:0}
/* Cartes de relais : image, date, titre, puis l'invitation écrite par le CSS */
.relais-carte{padding-bottom:var(--sp-3);position:relative}
.relais-carte img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--c-anthracite)}
.relais-carte small,.relais-carte strong,.relais-carte .relais-extrait{padding:0 var(--sp-3)}
.relais-carte small{margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--c-bleu);text-transform:uppercase;letter-spacing:.05em}
.relais-carte.sans-image small{margin-top:var(--sp-3)}
.relais-carte strong{margin-top:6px;font-weight:700;line-height:1.3}
.relais-carte::after{content:attr(data-suite);margin-top:auto;padding:12px var(--sp-3) 0;font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--c-bleu)}
/* Précision sous chaque entrée de menu, écrite par le CSS (un élément de moins par entrée) */
.dropdown-menu a[data-precision]::after{content:attr(data-precision);display:block;font-size:.72rem;font-weight:400;opacity:.65;margin-top:2px}
.menu-mobile .dropdown-menu a[data-precision]::after{content:none}
.cle-totp{font-size:1.15rem;letter-spacing:.08em;user-select:all}
.codes-secours code{display:inline-block;font-size:1.05rem;padding:6px 10px;margin:0 6px 8px 0;background:var(--c-blanc);border:1px solid var(--c-gris);border-radius:4px;user-select:all}

/* =========================================================================
   ACCESSIBILITÉ — corrections issues des contrôles du 12/11/2026
   ========================================================================= */
.preuves-label{opacity:.85}
.reprise .process-step-desc em{opacity:.85}
.reprise a:empty{display:none}
.reprise .cta-final .btn-secondary{color:#fff!important;border-color:var(--c-or)!important}
.reprise .cta-final .btn-secondary:hover{background:var(--c-or)!important;color:var(--c-anthracite)!important}
/* Pages d'information (mentions légales, confidentialité, accessibilité, éco-conception) */
.legale .prose{padding-top:var(--sp-3);padding-bottom:0}
.legale .prose h2{font-size:1.45rem}
.legale .maj{font-size:.92rem;opacity:.8}
.legale table{border-collapse:collapse;width:100%;font-size:.98rem;background:var(--c-blanc);margin:0 0 1.2em}
.legale th,.legale td{border:1px solid var(--c-gris-clair);padding:9px 12px;text-align:left;vertical-align:top}
.legale thead th{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em}
.legale .tableau{overflow-x:auto}

/* =========================================================================
   HARMONISATION — retours de relecture du 12/11/2026
   Pages plus resserrées, mêmes titres partout, en-têtes alignés à gauche.
   Ces règles passent après les feuilles propres à chaque page reprise.
   ========================================================================= */
/* Espaces entre les blocs (ils allaient jusqu'à 96 px en haut et en bas) */
section.bloc{padding:clamp(2.25rem,4.5vw,3.25rem) 0}
.bloc-header{margin-bottom:var(--sp-4)}
main .reprise>section:not(#_){padding-top:clamp(2.25rem,4.5vw,3.25rem)!important;padding-bottom:clamp(2.25rem,4.5vw,3.25rem)!important}
main .reprise>section.rcf-mosaique:not(#_){padding-top:0!important;padding-bottom:0!important}
main .reprise>section.stats:not(#_){padding-top:2rem!important;padding-bottom:2rem!important}
main .reprise>section.hero-contact:not(#_){padding-bottom:1rem!important}
main .reprise>section.contact-main:not(#_){padding-top:1.5rem!important}
main .reprise .bloc-header,main .reprise .dem-bloc-header{margin-bottom:2rem!important}
/* Titres : même graisse (Futura Extra Bold) et même taille sur toutes les pages */
main h1,main h2,main h3:not(.brxe-text-basic){font-weight:800!important}
main .reprise h1:not(#_){font-family:var(--font-display)!important;font-size:clamp(2rem,3.2vw + 1rem,3rem)!important;line-height:1.12!important;color:var(--c-anthracite)!important}
/* Diagnostic RSE : texte à gauche, aperçu du livrable à droite */
main .reprise .hero-diag .hero-diag-grid{row-gap:2rem!important;align-items:stretch!important;padding-inline:var(--sp-2)}
main .reprise .hero-diag h1{margin-bottom:1.25rem!important}
main .reprise .hero-diag .hero-diag-grid .hero-content{align-items:flex-start!important;text-align:left!important;max-width:none!important;margin:0!important}
main .reprise .hero-diag .hero-diag-grid .hero-content>*{align-self:flex-start!important}
main .reprise .hero-diag .hero-diag-grid .hero-content h1,main .reprise .hero-diag .hero-diag-grid .hero-content p{text-align:left!important;margin-left:0!important;margin-right:0!important}
main .reprise .hero-diag .hero-diag-grid .hero-diag-cta{justify-content:flex-start!important;align-self:flex-start!important}
main .reprise .hero-diag .hero-diag-grid .hero-diag-meta{justify-content:flex-start!important;margin-left:0!important;margin-right:0!important;max-width:none!important}
main .reprise .hero-diag .hero-diag-meta-item{text-align:left;flex:0 1 auto}
@media (min-width:960px){
  main .reprise .hero-diag .hero-diag-grid{display:grid!important;grid-template-columns:1.15fr 1fr;column-gap:3rem;align-items:center!important}
  main .reprise .hero-diag .hero-diag-visual{max-width:none!important;margin:0!important}
}
main .reprise .diag-niveau,main .reprise .diag-card-desc,main .reprise .diag-feat{font-size:1rem!important}
/* Témoignages : en-tête aligné à gauche, comme les autres pages */
main .reprise .tmg-hero .tmg-hero-inner{max-width:1200px!important;align-items:flex-start!important;text-align:left!important}
/* Le livre : les deux boutons du bas l'un sous l'autre, sans chevauchement */
main .reprise .livre-cta-final .cta-final-grid{display:flex!important;flex-direction:column;align-items:center;gap:1rem}
main .reprise .livre-cta-final .cta-final-grid>*{margin:0!important}
/* Accueil : six articles, quatre vidéos — et une page allégée d'autant (icônes et menu sans éléments superflus) */
.service-icon::before{content:"";width:28px;height:28px;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.menu-toggle::before{content:"";width:20px;height:2.5px;background:currentColor;box-shadow:0 -6px currentColor,0 6px currentColor}
.accueil a.article-card{display:flex;flex-direction:column;color:var(--c-anthracite)}
.accueil a.article-card:hover{text-decoration:none;color:var(--c-bleu)}
.accueil a.article-card:hover h3{color:var(--c-bleu)}
.accueil .article-card>.article-meta{margin:var(--sp-3) var(--sp-3) var(--sp-1)}
.accueil .article-card>h3{margin:0 var(--sp-3) var(--sp-3)}
@media (min-width:1000px){.accueil .relais-grille{grid-template-columns:repeat(4,1fr)}}
main .reprise .hero-fmt-cta{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:var(--sp-2);margin:0 0 var(--sp-3)}
main .reprise .hero-fmt-cta .btn-primary,main .reprise .hero-fmt-cta .btn-primary:hover{color:#fff!important}
/* Outils en ligne : page /outils/ et page du logiciel de pilotage (12/11/2026) */
.outils-page h1{max-width:820px}
.outils-page .bloc-intro{max-width:760px;margin-bottom:var(--sp-4)}
.outils-grille{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.outils-grille .tuile{color:var(--c-anthracite)}
.outils-grille .tuile:hover{text-decoration:none;border-color:var(--c-or)}
.outils-grille .tuile em{margin-top:auto;padding-top:var(--sp-2);font-style:normal;font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--c-bleu)}
.outils-points{list-style:none;margin:0 0 var(--sp-4);padding:0;max-width:820px}
.outils-points li{position:relative;padding:10px 0 10px 28px;border-bottom:1px solid var(--c-gris-clair)}
.outils-points li::before{content:"";position:absolute;left:4px;top:19px;width:10px;height:10px;border-radius:50%;background:var(--c-or)}
.hero-badge a{display:block}
@media (min-width:1000px){.footer-grid{grid-template-columns:1.5fr repeat(4,1fr)!important}}
/* Portrait de l'accueil : une seule carte, sans formes décoratives, bandeau blanc sur toute la largeur de la photo */
.hero-visual::before,.hero-visual::after{display:none}
.hero-visual{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 18px 40px rgba(28,50,58,.18);background:var(--c-blanc)}
.hero-visual .hero-portrait{border-radius:0;box-shadow:none}
.hero-visual .hero-badge{display:block;position:static;margin:0;max-width:none;box-shadow:none;border-left:0;border-top:4px solid var(--c-or);padding:var(--sp-2) var(--sp-3)}
