/* ---------- Fallbacks métriques (anti-clignotement / anti-décalage) ---------- */
@font-face {
  font-family: "Grift Fallback";
  src: local("Georgia"), local("Times New Roman"), local("Times");
  size-adjust: 96%; ascent-override: 92%; descent-override: 24%; line-gap-override: 0%;
}
@font-face {
  font-family: "Archivo Fallback";
  src: local("Helvetica Neue"), local("Arial"), local("Segoe UI");
  size-adjust: 101%; ascent-override: 92%; descent-override: 24%; line-gap-override: 0%;
}
@font-face {
  font-family: "Serif4 Fallback";
  src: local("Georgia"), local("Times New Roman"), local("Times");
  size-adjust: 98%; ascent-override: 94%; descent-override: 26%; line-gap-override: 0%;
}

/* =========================================================
   Home V3 - scoped to body.v3
   Variante claire : body.v3-light
   Aucun fond photographique, titres non gras (sauf slogan hero),
   menu réduit (Contact / FR / recherche / burger).
   ========================================================= */

/* ---------- Grift display font ---------- */
@font-face {
  font-family: "Grift";
  src: url("/fonts/Grift-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Grift";
  src: url("/fonts/Grift-Medium.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Grift";
  src: url("/fonts/Grift-SemiBold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Grift";
  src: url("/fonts/Grift-Bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Grift";
  src: url("/fonts/Grift-Black.woff2") format("woff2");
  font-weight: 900; font-style: normal; font-display: swap;
}

body.v3 {
  --font-friendly: "Archivo", "Archivo Fallback", system-ui, -apple-system, sans-serif;
  --font-display: "Grift", "Grift Fallback", "Frank Ruhl Libre", serif;
  --v3-surface: #092f4e;
  --v3-on-surface: #f4f1ea;
  font-family: var(--font-friendly);
  font-size: 18px;
}

/* ---------- Typography ---------- */
body.v3 p,
body.v3 .bureaux-text,
body.v3 .awards p {
  font-family: var(--font-friendly);
  font-size: 1.1rem;
  line-height: 1.65;
  letter-spacing: 0.005em;
  font-weight: 400;
}

/* Titres de section : plus de graisse */
body.v3 .section-title,
body.v3 .vision__title {
  font-family: var(--font-display);
  font-weight: 400;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  font-size: clamp(34px, 4.4vw, 54px);
  line-height: 1.06;
}
body.v3 .vision__title { font-size: clamp(30px, 3.6vw, 46px); }

/* Le slogan de la hero reste en gras */
body.v3 .hero__title {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.035em;
  text-transform: uppercase;
  font-size: clamp(42px, 6.6vw, 92px);
  line-height: 0.95;
}
body.v3 .hero__title .line-accent {
  color: var(--color-accent);
  font-weight: 900;
  font-style: italic;
  letter-spacing: -0.04em;
  display: block;
}

body.v3 .hero__scroll {
  font-family: var(--font-display);
  font-size: 12.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 400;
}

/* Mobile : centrer le titre sur l'axe vertical de l'écran au chargement */
@media (max-width: 640px) {
  body.v3 .hero__inner {
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 0;
  }
}

/* ---------- Header : logo + actions rondes ---------- */
body.v3 .site-header,
body.v3 .site-header.is-scrolled {
  position: fixed;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: min(1320px, calc(100% - 32px));
  background: transparent;
  box-shadow: none;
  border: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: 120;
}
body.v3 .site-header > .container {
  background: transparent;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
body.v3 .brand { padding: 0; display: inline-flex; align-items: center; }

body.v3 .nav-actions {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.2vw, 18px);
}
/* ==========================================================================
   HEADER ACTIONS — STYLE FIGÉ (référence définitive, ne pas modifier)
   Puces en verre dépoli (glassmorphism) : fond semi-opaque 15–25 % + flou
   d'arrière-plan, bordure fine orange, texte orange. Le fond s'adapte à la
   section derrière (clair / navy). Loupe + burger restent navy pleins.
   ========================================================================== */
body.v3 .pill-btn,
body.v3 .round-btn,
body.v3 .burger--square {
  --nav-action-bg: rgba(255, 255, 255, 0.62);
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #8f4703;
  position: relative;
  clip-path: none;
  border: 1px solid var(--nav-action-border);
  border-radius: 999px;
  background: var(--nav-action-bg);
  backdrop-filter: blur(18px) saturate(160%);
  color: var(--nav-action-fg);
  box-shadow: 0 7px 20px rgba(9, 47, 78, 0.16), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  overflow: hidden;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
body.v3 .pill-btn::before,
body.v3 .round-btn::before,
body.v3 .burger--square::before,
body.v3 .pill-btn::after,
body.v3 .round-btn::after,
body.v3 .burger--square::after {
  display: none;
}
/* Sections sombres (hero navy, header non "light") : voile navy très léger,
   bordure fine or, texte or clair — rendu de référence validé. */
body.v3:not(.v3-light) .pill-btn,
body.v3:not(.v3-light) .round-btn,
body.v3:not(.v3-light) .burger--square {
  --nav-action-bg: rgba(9, 39, 66, 0.28);
  --nav-action-border: #ffc978;
  --nav-action-fg: #ffc978;
  backdrop-filter: blur(6px) saturate(140%);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

/* Le header survole une section sombre : même voile léger que ci-dessus,
   quel que soit le thème de la page (pas de pastille navy dense). */
body.v3.nav-over-dark .pill-btn,
body.v3.nav-over-dark .round-btn--ghost {
  --nav-action-bg: rgba(9, 39, 66, 0.28);
  --nav-action-border: #ffc978;
  --nav-action-fg: #ffc978;
  backdrop-filter: blur(6px) saturate(140%);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}
body.v3.nav-over-dark .pill-btn:hover,
body.v3.nav-over-dark .pill-btn:focus-visible,
body.v3.nav-over-dark .round-btn--ghost:hover,
body.v3.nav-over-dark .round-btn--ghost:focus-visible {
  --nav-action-bg: var(--color-accent);
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #092f4e;
}




body.v3 .pill-btn:hover,
body.v3 .pill-btn:focus-visible,
body.v3 .round-btn:hover,
body.v3 .round-btn:focus-visible,
body.v3 .burger--square:hover,
body.v3 .burger--square:focus-visible {
  --nav-action-bg: var(--color-accent);
  --nav-action-fg: #092f4e;
  background: var(--nav-action-bg);
  border-color: var(--nav-action-border);
  color: var(--nav-action-fg);
  outline: none;
  box-shadow: 0 0 0 3px rgba(255, 166, 43, 0.32), 0 8px 22px rgba(9, 47, 78, 0.28);
}
body.v3 .pill-btn {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 14px;
  padding: 14px 32px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  white-space: nowrap;
}
body.v3 .pill-btn,
body.v3 .round-btn,
body.v3 .burger--square span,
body.v3 .round-btn svg {
  z-index: 1;
}
body.v3 .round-btn {
  width: 54px;
  min-width: 54px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
}
/* EN : verre, hérite des tokens adaptatifs (rien à surcharger) */
/* Loupe + burger : navy plein pour contraster avec les puces vitrées */
body.v3 .round-btn--solid,
body.v3 .burger--square,
body.v3:not(.v3-light) .round-btn--solid,
body.v3:not(.v3-light) .burger--square {
  --nav-action-bg: #092f4e;
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #ffb457;
  backdrop-filter: none;
  box-shadow: 0 7px 20px rgba(9, 47, 78, 0.24);
}
body.v3 .round-btn svg { position: relative; z-index: 1; width: 18px; height: 18px; }


/* Burger en parallélogramme */
body.v3 .burger--square {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 54px;
  min-width: 54px;
  height: 48px;
  padding: 0 15px;
  cursor: pointer;
}
body.v3 .burger--square span {
  position: relative;
  display: block;
  height: 2px;
  width: 22px;
  background: currentColor;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
body.v3 .burger--square[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
body.v3 .burger--square[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
body.v3 .burger--square[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Logo favicon au scroll (V3 sombre) */
body.v3 .brand { position: relative; display: inline-flex; align-items: center; }
body.v3 .brand__logo--main {
  display: block;
  opacity: 1;
  transition: opacity 0.2s ease;
}
body.v3 .brand__favicon {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: var(--v3-surface);
  border: 1px solid var(--v3-surface);
  opacity: 0;
  transition: opacity 0.2s ease;
  overflow: hidden;
  z-index: 2;
}
body.v3 .brand__favicon img {
  height: 26px;
  width: auto;
  max-width: 34px;
  object-fit: contain;
  display: block;
}
body.v3.is-scrolled .brand__logo--main { opacity: 0; }
body.v3.is-scrolled .brand__favicon { opacity: 1; }

/* Version claire : favicon encadré bleu nuit également */
body.v3.v3-light .brand__favicon {
  background: #092f4e;
  border-color: #092f4e;
}

/* ---------- Panneau menu ---------- */
body.v3 .v3-menu {
  position: fixed;
  inset: 0;
  z-index: 110;
  background: var(--v3-surface);
  color: var(--v3-on-surface);
  padding: 120px clamp(24px, 6vw, 96px) 48px;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-16px);
  transition: opacity 0.3s ease, transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), visibility 0.3s;
}
body.v3.v3-menu-open .v3-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
body.v3.v3-menu-open { overflow: hidden; }
body.v3 .v3-menu__grid {
  display: grid;
  grid-template-columns: minmax(200px, 260px) 1fr;
  gap: clamp(32px, 6vw, 88px);
  max-width: 1320px;
  margin: 0 auto;
}
body.v3 .v3-menu__primary { display: flex; flex-direction: column; gap: 10px; }
body.v3 .v3-menu__primary a {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  font-size: clamp(28px, 3.2vw, 40px);
  line-height: 1.1;
  color: var(--v3-on-surface);
}
body.v3 .v3-menu__primary a:hover { color: var(--color-accent); }
body.v3 .v3-menu__cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px;
}
body.v3 .v3-menu__cols h4 {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  font-size: 14px;
  color: var(--color-accent);
  margin: 0 0 14px;
  line-height: 1.35;
}
body.v3 .v3-menu__cols ul { list-style: none; margin: 0; padding: 0; }
body.v3 .v3-menu__cols li { margin: 0 0 8px; }
body.v3 .v3-menu__cols a {
  font-family: var(--font-friendly);
  font-size: 15px;
  line-height: 1.5;
  color: var(--v3-on-surface);
}
body.v3 .v3-menu__cols a:hover { color: var(--color-accent); }
@media (max-width: 900px) {
  body.v3 .v3-menu__grid { grid-template-columns: 1fr; }
  body.v3 .v3-menu__cols { grid-template-columns: 1fr; }
  body.v3 .site-header > .container { gap: 10px; }
  body.v3 .nav-actions { gap: 8px; margin-left: auto; }
  body.v3 .pill-btn {
    display: inline-flex;
    font-size: 10px;
    letter-spacing: 0.04em;
    padding: 10px 12px;
  }
  body.v3 .round-btn,
  body.v3 .burger--square {
    width: 44px;
    min-width: 44px;
    height: 40px;
  }
}
@media (max-width: 520px) {
  body.v3 .site-header { width: calc(100% - 16px); top: 10px; }
  body.v3 .site-header > .container { justify-content: flex-end; }
  body.v3 .brand { display: none; }
  body.v3 .nav-actions { width: 100%; justify-content: center; gap: 5px; }
  body.v3 .pill-btn {
    font-size: 8px;
    letter-spacing: 0.02em;
    padding: 8px 7px;
  }
  body.v3 .round-btn,
  body.v3 .burger--square {
    width: 32px;
    min-width: 32px;
    height: 32px;
  }
  body.v3 .round-btn svg { width: 15px; height: 15px; }
  body.v3 .burger--square { gap: 4px; padding: 0 8px; }
  body.v3 .burger--square span { width: 15px; }
  body.v3 .burger--square[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.v3 .burger--square[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
}

body.v3 main { padding-top: 0; }

/* ---------- Fonds : dégradé Pledge (sombre) / texture Pledge (clair) ---------- */
body.v3 {
  --v3-gradient: linear-gradient(160deg, rgba(9, 47, 78, 0.97) 0%, rgba(9, 47, 78, 0.95) 55%, rgba(126, 141, 133, 0.92) 100%);
  --v3-texture: url("/__l5e/assets-v1/e1773ced-4efb-4690-a7c7-18d86a66e06d/bureaux-bg.png");
  /* Voile blanc appliqué sur la texture : source unique d'éclaircissement */
  --v3-veil: rgba(255, 255, 255, 0.66);
  --v3-veil-strong: rgba(255, 255, 255, 0.78);
}
body.v3 .hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: var(--v3-surface);
  background-image: var(--v3-gradient);
  background-repeat: no-repeat;
  background-size: cover;
}
body.v3 .section--dark {
  background-color: var(--v3-surface);
  background-image: var(--v3-gradient);
  background-repeat: no-repeat;
  background-size: cover;
  padding-top: 72px;
  padding-bottom: 24px;
}
body.v3 .section--bureaux:not(.section--bureaux-dark),
body.v3 .section--awards {
  background-color: #fbfaf7;
  background-image: linear-gradient(var(--v3-veil), var(--v3-veil)), var(--v3-texture);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

/* Groupe texturé unique : Actualités + Récompenses partagent le même fond */
body.v3 .section-group--texture {
  position: relative;
  background-color: #fbfaf7;
  background-image: linear-gradient(var(--v3-veil), var(--v3-veil)), var(--v3-texture);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-attachment: scroll;
  overflow: hidden;
}
body.v3 .site-footer {
  background-color: var(--v3-surface);
  background-image: var(--v3-gradient);
  background-repeat: no-repeat;
  background-size: cover;
}
body.v3 .site-footer::before { display: none; }

/* Le visuel à gauche de "Notre Vision" est supprimé */
body.v3 .vision { grid-template-columns: 1fr; }
body.v3 .vision__text { max-width: 860px; padding-top: 0; }

/* Foreground au-dessus des biseaux */
body.v3 .hero__inner,
body.v3 .hero__scroll,
body.v3 .vision,
body.v3 .section--dark .section__inner,
body.v3 .section--bureaux .section__inner,
body.v3 .section--awards .section__inner {
  position: relative;
  z-index: 2;
}
body.v3 .hero__shapes { z-index: 1; }

/* Biseaux Pledge animés à la souris */
body.v3 .hero__shapes,
body.v3 .hero__shape,
body.v3 .section__shape {
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: transform;
}
body.v3 .hero__shape--1 {
  transform: translate3d(calc(var(--v2-mx, 0) * 22px), calc(var(--v2-my, 0) * 22px), 0) skewX(-22deg);
}
body.v3 .hero__shape--2 {
  transform: translate3d(calc(var(--v2-mx, 0) * 36px), calc(var(--v2-my, 0) * 36px), 0) skewX(-22deg);
}
body.v3 .hero__shape--3 {
  transform: translate3d(calc(var(--v2-mx, 0) * 52px), calc(var(--v2-my, 0) * 52px), 0) skewX(-22deg);
}
body.v3 .section__shapes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}
body.v3 .section__shape {
  position: absolute;
  width: 14%;
  border: 1px solid rgba(255, 166, 43, 0.55);
  transform: translate3d(calc(var(--v2-mx, 0) * var(--v2-parallax, 0px)), calc(var(--v2-my, 0) * var(--v2-parallax, 0px)), 0) skewX(-22deg);
  background: transparent;
}
body.v3 .section__shape--1 { left: 62%; top: -10%; height: 55%; --v2-parallax: 24px; }
body.v3 .section__shape--2 { left: 82%; top: -10%; height: 48%; --v2-parallax: 38px; }
body.v3 .section__shape--3 { left: 102%; top: -10%; height: 65%; --v2-parallax: 52px; }

@media (prefers-reduced-motion: reduce) {
  body.v3 .hero__shape,
  body.v3 .section__shape,
  body.v3 .hero__shapes,
  body.v3 .section__shapes { transition: none !important; transform: none !important; }
}

/* Règles / CTA */
body.v3 .title-rule,
body.v3 .vision__rule {
  height: 3px;
  width: 72px;
  border-radius: 2px;
}
body.v3 .vision__cta { justify-content: flex-start; }
body.v3 .vision__cta .btn {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
  color: var(--v3-on-surface);
  background: transparent;
  border: 1px solid var(--color-accent);
  border-radius: 999px;
  padding: 15px 32px;
  transition: background 0.25s ease, color 0.25s ease;
}
body.v3 .vision__cta .btn:hover { background: var(--color-accent); color: #fff; }

/* Awards logos hover */
body.v3 .awards__logo {
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.35s ease, opacity 0.35s ease;
}
body.v3 .awards__logo:hover { transform: scale(1.12); filter: grayscale(0); opacity: 1; }

/* Footer */
body.v3 .site-footer h3 {
  font-family: var(--font-display);
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: -0.005em;
  font-size: 24px;
}
body.v3 .site-footer p,
body.v3 .site-footer a { font-size: 15px; }
body.v3 .footer__social a { width: 40px; height: 40px; }
body.v3 .footer__social svg { width: 28px; height: 28px; }
body.v3 .site-footer .footer__bottom,
body.v3 .site-footer .footer__bottom a {
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.6;
}

/* =========================================================
   VARIANTE CLAIRE - body.v3-light
   Fond blanc/ivoire dominant, texte bleu nuit
   ========================================================= */
body.v3.v3-light {
  --v3-surface: #fcfbf8;
  --v3-on-surface: #092f4e;
  background-color: #fcfbf8;
  background-image: linear-gradient(var(--v3-veil), var(--v3-veil)), var(--v3-texture);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  background-attachment: scroll;
}
body.v3.v3-light .hero,
body.v3.v3-light .section-group--texture {
  background-color: #fcfbf8;
  background-image: linear-gradient(var(--v3-veil), var(--v3-veil)), var(--v3-texture);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  color: #092f4e;
}
/* Les sections à l'intérieur du groupe texturé n'ont pas leur propre fond */
body.v3.v3-light .section-group--texture .section--dark,
body.v3.v3-light .section-group--texture .section--awards {
  background-color: transparent;
  background-image: none;
  color: #092f4e;
}
body.v3.v3-light .section--bureaux.section--bureaux-dark {
  background-color: transparent;
  background-image: none;
  color: #092f4e;
}
body.v3.v3-light .section--bureaux.section--bureaux-dark .section-title,
body.v3.v3-light .section--bureaux.section--bureaux-dark .bureaux-text,
body.v3.v3-light .section--bureaux.section--bureaux-dark .bureaux-text strong { color: #092f4e; }
body.v3.v3-light .section--bureaux.section--bureaux-dark .bureaux-list__item { border-bottom-color: rgba(9, 47, 78, 0.12); }
body.v3.v3-light .section--bureaux.section--bureaux-dark .bureaux-list__item:hover { color: var(--color-accent); }
body.v3.v3-light .section--bureaux.section--bureaux-dark .bureaux-list__dot { background: var(--color-accent); }

/* Hero home : texte bleu nuit sur fond texturé clair */
body.v3.v3-light .hero__title,
body.v3.v3-light .hero__title span:not(.line-accent),
body.v3.v3-light .hero__scroll,
body.v3.v3-light .hero__scroll::after { color: #092f4e; }
body.v3.v3-light .hero__scroll::after { background: #092f4e; }

/* Piliers hero sur fond clair */
body.v3.v3-light .hero__pillars { border-top-color: rgba(9, 47, 78, 0.18); }
body.v3.v3-light .hero__pillar + .hero__pillar::before { background: rgba(9, 47, 78, 0.18); }
body.v3.v3-light .hero__pillar-label { color: #092f4e; }
body.v3.v3-light .hero__pillar-tag { color: rgba(9, 47, 78, 0.62); }
body.v3.v3-light .section--dark .section-title { color: #092f4e; }

/* Vision (située dans le hero) : hérite du fond texturé clair */
body.v3.v3-light .hero .vision { color: #092f4e; }
body.v3.v3-light .hero .vision__title,
body.v3.v3-light .hero .vision__text p { color: #092f4e; }
body.v3.v3-light .hero .vision__rule { background: #ffa62b; }
body.v3.v3-light .hero .vision__cta .btn {
  color: #092f4e;
  border-color: #092f4e;
}
body.v3.v3-light .hero .vision__cta .btn:hover {
  background: #092f4e;
  color: #f4f1ea;
}

/* Header clair : loupe + burger navy pleins, EN vitré (hérite des tokens) */
body.v3.v3-light .round-btn--solid,
body.v3.v3-light .burger--square {
  --nav-action-bg: #092f4e;
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #ffb457;
  color: var(--nav-action-fg);
  backdrop-filter: none;
}
body.v3.v3-light .burger--square span { background: currentColor; }
body.v3.v3-light .round-btn--solid:hover,
body.v3.v3-light .round-btn--solid:focus-visible,
body.v3.v3-light .burger--square:hover,
body.v3.v3-light .burger--square:focus-visible {
  --nav-action-bg: var(--color-accent);
  --nav-action-fg: #092f4e;
  color: var(--nav-action-fg);
  backdrop-filter: none;
}



/* Panneau menu clair */
body.v3.v3-light .v3-menu {
  background: #ffffff;
  color: #092f4e;
}
body.v3.v3-light .v3-menu__primary a,
body.v3.v3-light .v3-menu__cols a { color: #092f4e; }
body.v3.v3-light .v3-menu__primary a:hover,
body.v3.v3-light .v3-menu__cols a:hover { color: #ffa62b; }

/* Footer clair */
body.v3.v3-light .site-footer {
  background-color: var(--v3-surface);
  background-image: var(--v3-gradient);
}
body.v3.v3-light .site-footer,
body.v3.v3-light .site-footer p,
body.v3.v3-light .site-footer a { color: #f4f1ea; }

/* Biseaux plus discrets sur fond clair */
body.v3.v3-light .hero__shape,
body.v3.v3-light .section__shape {
  border-color: rgba(255, 166, 43, 0.45);
}

/* Logo Pledge (blanc) recoloré en bleu nuit sur la variante claire */
body.v3.v3-light .brand__logo {
  filter: brightness(0) saturate(100%) invert(13%) sepia(38%) saturate(1500%) hue-rotate(172deg) brightness(92%) contrast(95%);
}

/* =========================================================
   V3 - RETOURS CLIENT (août)
   Or adouci, piliers hero, menu resserré, carte des bureaux,
   distinction 2025
   ========================================================= */

/* --- 1. Couleur or adoucie (proche du site actuel pledge.law) --- */
body.v3 {
  --color-accent: #ffa62b;
  --color-accent-hover: #c79246;
}

/* --- 2. Piliers d'expertise sous le slogan --- */
body.v3 .hero__pillars {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: clamp(28px, 4vw, 48px) 0 0;
  max-width: 1020px;
  border-top: 1px solid rgba(9, 47, 78, 0.18);
}
body.v3 .hero__pillar {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 22px 26px 20px 0;
  text-decoration: none;
  color: inherit;
  transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
}
body.v3 .hero__pillar + .hero__pillar { padding-left: 26px; }
body.v3 .hero__pillar + .hero__pillar::before {
  content: "";
  position: absolute;
  left: 0; top: 22px; bottom: 20px;
  width: 1px;
  background: rgba(9, 47, 78, 0.18);
}
body.v3 .hero__pillar::after {
  content: "";
  position: absolute;
  left: 0; right: 26px; top: -1px;
  height: 2px;
  background: var(--color-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
body.v3 .hero__pillar:hover::after { transform: scaleX(1); }
body.v3 .hero__pillar-index {
  display: block;
  font-family: var(--font-display);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--color-accent);
  margin-bottom: 10px;
}
body.v3 .hero__pillar-label {
  display: block;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-weight: 400;
  letter-spacing: -0.005em;
  font-size: clamp(15px, 1.25vw, 19px);
  line-height: 1.25;
}
body.v3 .hero__pillar-tag {
  display: block;
  margin-top: auto;
  padding-top: 12px;
  font-family: var(--font-friendly);
  font-size: 12.5px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.62);
}
body.v3:not(.v3-light) .hero__pillars { border-top-color: rgba(244, 241, 234, 0.22); }
body.v3:not(.v3-light) .hero__pillar + .hero__pillar::before { background: rgba(244, 241, 234, 0.22); }
body.v3:not(.v3-light) .hero__pillar-tag { color: rgba(244, 241, 234, 0.6); }
@media (max-width: 780px) {
  body.v3 .hero__pillars { grid-template-columns: 1fr; }
  body.v3 .hero__pillar,
  body.v3 .hero__pillar + .hero__pillar { padding: 16px 0; border-top: 1px solid rgba(9, 47, 78, 0.14); }
  body.v3 .hero__pillars { border-top: none; }
  body.v3 .hero__pillar + .hero__pillar::before { display: none; }
  body.v3 .hero__pillar-label br { display: none; }
}

/* --- 3. Moins de vide sous "Découvrez notre cabinet" (chevron supprimé) --- */
body.v3 .hero__inner { padding-top: clamp(150px, 17vh, 200px); }
body.v3 .hero__scroll { margin: clamp(36px, 5vh, 64px) auto clamp(28px, 4vh, 44px); }
body.v3 .hero { padding-bottom: 0; }
body.v3 .hero__scroll::after {
  content: "";
  display: block;
  width: 34px;
  height: 1px;
  margin: 12px auto 0;
  background: var(--color-accent);
}
@media (max-width: 640px) {
  body.v3 .hero__inner { min-height: 100dvh; padding-top: 96px; padding-bottom: 24px; }
  body.v3 .hero__scroll { margin: 28px auto 24px; }
}

/* --- 4. Menu : hauteur maîtrisée, plus de chevauchement avec le logo --- */
body.v3 .v3-menu {
  padding: 0;
  display: flex;
  align-items: flex-start;
}
body.v3 .v3-menu__grid {
  width: 100%;
  padding: clamp(104px, 13vh, 148px) clamp(24px, 6vw, 96px) clamp(40px, 6vh, 72px);
  align-items: start;
}
body.v3 .v3-menu__primary a { font-size: clamp(24px, 2.4vw, 32px); line-height: 1.18; }

/* --- 5. Nouvelle présentation des rubriques --- */
body.v3 .v3-menu__cols { gap: clamp(20px, 3vw, 44px); }
body.v3 .v3-menu__col { border-top: 1px solid rgba(9, 47, 78, 0.16); padding-top: 14px; }
body.v3:not(.v3-light) .v3-menu__col { border-top-color: rgba(244, 241, 234, 0.2); }
body.v3 .v3-menu__eyebrow {
  font-family: var(--font-friendly);
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin: 0 0 6px;
  line-height: 1;
}
body.v3 .v3-menu__cols h4 {
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
  color: inherit;
  margin: 0 0 14px;
}
body.v3 .v3-menu__cols li { margin: 0; }
body.v3 .v3-menu__cols a {
  display: block;
  font-size: 14.5px;
  line-height: 1.35;
  padding: 7px 0;
  border-bottom: 1px solid rgba(9, 47, 78, 0.07);
  transition: color 0.2s ease, padding-left 0.25s ease;
}
body.v3:not(.v3-light) .v3-menu__cols a { border-bottom-color: rgba(244, 241, 234, 0.12); }
body.v3 .v3-menu__cols a:hover { padding-left: 8px; }

/* --- 6. Carte interactive des bureaux --- */
body.v3 .bureaux-map-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(320px, 1.15fr);
  gap: clamp(12px, 1.6vw, 24px);
  align-items: start;
}
body.v3 .bureaux-map {
  min-height: 0;
  height: auto;
  border: 1px solid rgba(255, 166, 43, 0.4);
  background: #092f4e;
  z-index: 2;
}
body.v3 .bureaux-map-side { display: flex; flex-direction: column; gap: 22px; margin-top: 0; padding-top: 0; }
body.v3 .bureaux-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
body.v3 .bureaux-list__item {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 14px 0;
  border-top: 1px solid rgba(244, 241, 234, 0.16);
  cursor: pointer;
  font-size: 15px;
  line-height: 1.45;
  transition: color 0.2s ease, padding-left 0.25s ease;
}
body.v3 .bureaux-list__item:last-child { border-bottom: 1px solid rgba(244, 241, 234, 0.16); }
body.v3 .bureaux-list__item:hover { padding-left: 6px; color: var(--color-accent); }
body.v3 .bureaux-list__item strong { font-family: var(--font-display); text-transform: uppercase; letter-spacing: 0.02em; font-weight: 400; font-size: 16px; }
body.v3 .bureaux-list__dot {
  flex: 0 0 auto;
  width: 9px; height: 9px;
  margin-top: 7px;
  border-radius: 999px;
  background: var(--color-accent);
}
body.v3 .bureaux-list__item--partner .bureaux-list__dot { background: transparent; border: 1px solid var(--color-accent); }
@media (max-width: 900px) {
  body.v3 .bureaux-map-grid { grid-template-columns: 1fr; }
  body.v3 .bureaux-map { min-height: 0; }
}

/* Pins & popups Leaflet */
.pledge-pin { position: relative; }
.pledge-pin__dot {
  position: absolute; left: 50%; top: 50%;
  width: 12px; height: 12px; margin: -6px 0 0 -6px;
  border-radius: 999px;
  box-shadow: 0 0 0 3px rgba(9, 47, 78, 0.65);
}
.pledge-pin__pulse {
  position: absolute; left: 50%; top: 50%;
  width: 22px; height: 22px; margin: -11px 0 0 -11px;
  border-radius: 999px;
  opacity: 0.35;
  animation: pledgePinPulse 2.4s ease-out infinite;
}
@keyframes pledgePinPulse {
  0% { transform: scale(0.6); opacity: 0.45; }
  70% { transform: scale(1.5); opacity: 0; }
  100% { transform: scale(1.5); opacity: 0; }
}
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #f4f1ea; color: #000; border-radius: 2px; }
.leaflet-popup-content { margin: 14px 16px; }
.pledge-popup__type { margin: 0 0 4px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: #000; }
.pledge-popup__name { margin: 0 0 6px; font-size: 18px; font-family: "Grift", "Frank Ruhl Libre", serif; text-transform: uppercase; color: #000; }
.pledge-popup__addr { margin: 0; font-size: 13px; line-height: 1.5; color: #000; }
.leaflet-container a.leaflet-popup-close-button { color: rgba(0, 0, 0, 0.55); }

/* --- 7. Distinction 2025 mise en avant --- */
body.v3 .awards__highlight {
  display: grid;
  grid-template-columns: minmax(240px, 420px) 1fr;
  gap: clamp(20px, 3vw, 40px);
  align-items: center;
  margin: 32px 0 44px;
  padding: 20px;
  background: rgba(9, 47, 78, 0.04);
  border-left: 3px solid var(--color-accent);
}
body.v3 .awards__highlight img { width: 100%; height: auto; display: block; }
body.v3 .awards__highlight-year {
  margin: 0 0 6px; font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--color-accent);
}
body.v3 .awards__highlight-title {
  margin: 0 0 8px; font-family: var(--font-display); text-transform: uppercase; font-size: clamp(18px, 1.8vw, 24px); line-height: 1.2;
}
body.v3 .awards__highlight-desc { margin: 0; font-size: 15px; line-height: 1.55; }
@media (max-width: 780px) {
  body.v3 .awards__highlight { grid-template-columns: 1fr; }
}

/* =========================================================
   Pages intérieures - harmonisation charte V3 claire
   ========================================================= */
body.v3 h1, body.v3 h2, body.v3 h3, body.v3 h4 { font-family: var(--font-display); }
body.v3 p, body.v3 li, body.v3 label, body.v3 input, body.v3 textarea,
body.v3 select, body.v3 .btn, body.v3 .filter-btn { font-family: var(--font-friendly); }
body.v3 .hero-banner__title {
  font-family: var(--font-display);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: -0.02em;
  line-height: 1.02;
  font-size: clamp(34px, 5vw, 66px);
}
body.v3 .hero-banner { min-height: 530px; }
body.v3 .hero-banner__inner { padding-top: 150px; }
body.v3 .section-title, body.v3 .culture-block .section-title {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.08;
}
body.v3 .team-card__name { font-family: var(--font-display); text-transform: none; }

/* =========================================================
   V3 - RETOURS CLIENT (août, 2e vague)
   ========================================================= */

/* --- 1. Hero home : le slogan reste largement dégagé sous le menu fixe --- */
body.v3[data-page="home-v3"] .hero__inner { padding-top: 170px; }
body.v3[data-page="home-v3"] .vision { padding-bottom: 64px; }
@media (max-width: 640px) {
  body.v3[data-page="home-v3"] .hero__inner { padding-top: 150px; }
  body.v3[data-page="home-v3"] .vision { padding-bottom: 64px; }
}

/* --- 2. Rythme vertical unifié sur tout le site --- */
body.v3 { --v3-section-y: clamp(72px, 8vw, 104px); }
body.v3 .section,
body.v3 .section--vision,
body.v3 .section--awards,
body.v3 .section--bureaux {
  padding-top: var(--v3-section-y);
  padding-bottom: var(--v3-section-y);
}
body.v3 .contact-section { padding-top: var(--v3-section-y); padding-bottom: 24px; }
body.v3 .join-section { padding-top: 24px; padding-bottom: var(--v3-section-y); }
body.v3 .section--dark { padding-top: var(--v3-section-y); padding-bottom: 32px; }
body.v3 .section-group--texture .section--dark { padding-bottom: 0; }
body.v3 .section-group--texture .section--dark + .section--awards { padding-top: var(--v3-section-y); }
body.v3 .linkedin-feed { margin-bottom: 0; }
/* Pages de profil membre : pas de hero, on allonge la marge sous le header */
body.v3[data-page="equipe"] main > .section--vision:first-child {
  padding-top: clamp(150px, 18vh, 210px);
}
body.v3 .section--vision { position: relative; }

/* --- 3. Menu : les liens principaux deviennent des boutons encadrés --- */
body.v3 .v3-menu__primary { gap: 12px; }
body.v3 .v3-menu__primary::before {
  content: "Navigation";
  font-family: var(--font-friendly);
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 4px;
}
body.v3 .v3-menu__primary a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: clamp(17px, 1.5vw, 21px);
  letter-spacing: 0.04em;
  padding: 16px 22px;
  border: 1px solid rgba(9, 47, 78, 0.22);
  border-radius: 999px;
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
body.v3 .v3-menu__primary a::after {
  content: "→";
  font-family: var(--font-friendly);
  font-size: 15px;
  opacity: 0.55;
  transition: transform 0.25s ease;
}
body.v3 .v3-menu__primary a:hover {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
}
body.v3 .v3-menu__primary a:hover::after { transform: translateX(4px); opacity: 1; }
body.v3:not(.v3-light) .v3-menu__primary a { border-color: rgba(244, 241, 234, 0.28); }

/* --- 4. Hero des pages intérieures : dégradé Pledge seul, titre "design" --- */
body.v3 .hero-banner--gradient {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background-color: transparent;
  background-image: none;
  min-height: 530px;
  display: flex;
  align-items: flex-end;
}
body.v3 .hero-banner--gradient::after { display: none; }
body.v3 .hero-banner--gradient .hero-banner__inner {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-top: 170px;
  padding-bottom: 76px;
  display: block;
}
body.v3 .hero-banner--gradient .hero-banner__title {
  font-family: var(--font-display);
  font-weight: 900;
  font-style: normal;
  text-transform: uppercase;
  letter-spacing: -0.035em;
  line-height: 0.98;
  font-size: clamp(38px, 5.6vw, 78px);
  color: var(--v3-on-surface);
  max-width: 18ch;
}
body.v3 .hero-banner--gradient .hero-banner__title::after {
  content: "";
  display: block;
  width: 96px;
  height: 3px;
  margin-top: 26px;
  background: var(--color-accent);
}
body.v3 .hero-banner--gradient .vision-intro {
  margin-top: 22px;
  max-width: 70ch;
  color: var(--color-accent);
}
@media (max-width: 860px) {
  body.v3 .hero-banner--gradient { min-height: 340px; }
  body.v3 .hero-banner--gradient .hero-banner__inner { padding-top: 130px; padding-bottom: 48px; }
}

/* --- 5. Logo Pledge : bleu nuit partout (heros clairs) --- */
body.v3.v3-light .brand__logo--main {
  filter: brightness(0) saturate(100%) invert(13%) sepia(38%) saturate(1500%) hue-rotate(172deg) brightness(92%) contrast(95%);
}

/* --- 6. Fiches équipe sur les pages expertises --- */
body.v3 .team-grid--experts { grid-template-columns: repeat(4, 1fr); gap: 28px 20px; }
@media (max-width: 900px) { body.v3 .team-grid--experts { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { body.v3 .team-grid--experts { grid-template-columns: 1fr; } }
body.v3 .team-card__name {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.01em;
  color: var(--v3-on-surface);
}
body.v3 .team-card__role {
  font-family: var(--font-friendly);
  font-size: 13px;
  letter-spacing: 0.02em;
  color: rgba(9, 47, 78, 0.6);
}
body.v3 .team-card__link { display: block; text-decoration: none; }
body.v3 .team-card__photo { transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1); overflow: hidden; }
body.v3 .team-card__link:hover .team-card__name { color: var(--color-accent); }
body.v3 .team-card__link:hover .team-card__photo img { transform: scale(1.04); }
body.v3 .team-card__photo img { transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1); }

/* --- 7. Harmonisation typo/couleurs des pages intérieures (référentiel home) --- */
body.v3 .section--vision,
body.v3 .contact-section,
body.v3 .join-section { color: var(--v3-on-surface); }
body.v3 .vision-intro {
  font-family: var(--font-friendly);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
}
body.v3 .vision-intro strong { font-weight: 400; }
body.v3 li { font-size: 1.05rem; line-height: 1.65; }
body.v3 h3 { font-weight: 500; letter-spacing: -0.005em; }
body.v3 .btn,
body.v3 .contact-form button[type="submit"] {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 14px;
  border-radius: 999px;
  padding: 15px 32px;
  border: 1px solid var(--color-accent);
  background: transparent;
  color: var(--v3-on-surface);
  cursor: pointer;
  transition: background 0.25s ease, color 0.25s ease;
}
body.v3 .btn:hover,
body.v3 .contact-form button[type="submit"]:hover { background: var(--color-accent); color: #fff; }
body.v3 .contact-form label {
  font-family: var(--font-friendly);
  font-size: 12.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.7);
}
body.v3 .contact-form input,
body.v3 .contact-form textarea {
  font-family: var(--font-friendly);
  font-size: 16px;
  color: var(--v3-on-surface);
}
body.v3 .contact-rgpd { font-family: var(--font-friendly); font-size: 15px; line-height: 1.65; }
body.v3 .contact-rgpd small { font-family: var(--font-friendly); font-size: 14px; line-height: 1.6; display: block; margin-bottom: 8px; }
body.v3 .join-section h2 {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  font-size: clamp(26px, 3vw, 40px);
}
body.v3 .join-block strong { font-family: var(--font-display); font-weight: 500; }
body.v3 .join-block a { color: var(--color-accent); }
/* Filtres équipe : réutilisent le composant .nx-tab de "Nos actualités"
   (défini une seule fois plus bas). Ici uniquement la mise en ligne + sous-menu. */
body.v3 .team-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  grid-template-columns: none;
  column-gap: 6px;
}
body.v3 .team-filter__group.is-open > .nx-tab {
  background: #092f4e;
  border-color: #092f4e;
  color: #f4f1ea;
}
body.v3 .team-filter__chevron {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  opacity: 1;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-top: -2px;
}
body.v3 .team-filter__chevron::before,
body.v3 .team-filter__chevron::after { display: none; }
body.v3 .team-filter__group.is-open .team-filter__chevron { transform: rotate(-135deg); margin-top: 2px; }
body.v3 .team-filter__select { top: calc(100% + 8px); }



/* Popups carte : coordonnées de chaque bureau */
.pledge-popup__contact { list-style: none; margin: 10px 0 0; padding: 10px 0 0; border-top: 1px solid rgba(255, 166, 43, 0.35); }
.pledge-popup__contact li { margin: 0 0 4px; font-size: 13px; line-height: 1.5; }
.pledge-popup__contact a,
.leaflet-popup-content .pledge-popup__contact a { color: #000 !important; text-decoration: none; }
.pledge-popup__contact a:hover,
.leaflet-popup-content .pledge-popup__contact a:hover { text-decoration: underline; }

/* Menu ouvert (fond blanc) : le logo repasse en bleu nuit pour rester lisible */
body.v3.v3-light.v3-menu-open .brand__logo--main {
  filter: brightness(0) saturate(100%) invert(13%) sepia(38%) saturate(1500%) hue-rotate(172deg) brightness(92%) contrast(95%);
}

/* Hero intérieure : alignement du titre sur la grille du contenu */
body.v3 .hero-banner--gradient .hero-banner__inner {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 48px;
  padding-right: 48px;
}
@media (max-width: 860px) {
  body.v3 .hero-banner--gradient .hero-banner__inner { padding-left: 24px; padding-right: 24px; }
}
/* Titres de section : une seule couleur de référence */
body.v3 .join-section h2,
body.v3 .section-title { color: var(--v3-on-surface); }

/* --- Hero intérieure : plus de motif "chevron" en fond, biseaux animés à la souris --- */
body.v3 .hero-banner--gradient::before,
body.v3 .hero-banner--gradient::after { display: none !important; }

body.v3 .hero-banner__shapes {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 1;
}
body.v3 .hero-banner__shapes .hero__shape {
  position: absolute;
  width: 15%;
  border: 1px solid rgba(255, 166, 43, 0.55);
  background: transparent;
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: transform;
}
body.v3 .hero-banner__shapes .hero__shape--1 {
  left: 58%; top: -18%; height: 78%;
  transform: translate3d(calc(var(--v2-mx, 0) * 22px), calc(var(--v2-my, 0) * 22px), 0) skewX(-22deg);
}
body.v3 .hero-banner__shapes .hero__shape--2 {
  left: 78%; top: -18%; height: 66%;
  transform: translate3d(calc(var(--v2-mx, 0) * 36px), calc(var(--v2-my, 0) * 36px), 0) skewX(-22deg);
}
body.v3 .hero-banner__shapes .hero__shape--3 {
  left: 98%; top: -18%; height: 88%;
  transform: translate3d(calc(var(--v2-mx, 0) * 52px), calc(var(--v2-my, 0) * 52px), 0) skewX(-22deg);
}
@media (prefers-reduced-motion: reduce) {
  body.v3 .hero-banner__shapes .hero__shape { transition: none !important; }
}

/* ============================================================
   9. Lisibilité : plancher de taille de typo sur tout le site
   ============================================================ */

/* Corps de texte */
body.v3 { font-size: 17px; }
body.v3 p,
body.v3 li,
body.v3 .vision__text,
body.v3 .section-text { font-size: 17px; line-height: 1.68; }
body.v3 small { font-size: 14px; }

/* Menu principal (overlay) */
body.v3 .v3-menu__eyebrow,
body.v3 .v3-menu__primary::before { font-size: 13px; }
body.v3 .v3-menu__cols h4 { font-size: 17px; }
body.v3 .v3-menu__cols a { font-size: 16px; }
body.v3 .v3-menu__primary a { font-size: clamp(17px, 1.5vw, 21px); }

/* Header : boutons Contact / FR / burger */
body.v3 .pill-btn,
body.v3 .round-btn { font-size: 15px; }

/* Boutons & CTA */
body.v3 .btn,
body.v3 .vision__cta .btn,
body.v3 .contact-form button[type="submit"] { font-size: 15px; }

/* Hero */
body.v3 .hero__scroll { font-size: 14px; }
body.v3 .hero__pillar-index { font-size: 13px; }
body.v3 .hero__pillar-tag { font-size: 14px; }

/* Sur-titres / eyebrows */
body.v3 .vision-intro,
body.v3 .awards__highlight-tag { font-size: 13.5px; }

/* Cartes équipe */
body.v3 .team-card__name { font-size: 19px; }
body.v3 .team-card__role { font-size: 15px; }

/* Formulaires */
body.v3 .contact-form label { font-size: 13.5px; }
body.v3 .contact-form input,
body.v3 .contact-form textarea,
body.v3 .contact-form select { font-size: 16px; }
body.v3 .contact-rgpd small { font-size: 14px; }

/* Footer */
body.v3 .site-footer p,
body.v3 .site-footer a { font-size: 16px; }
body.v3 .site-footer .footer__bottom,
body.v3 .site-footer .footer__bottom a { font-size: 14.5px; }
body.v3 .footer__title,
body.v3 .site-footer h4 { font-size: 15px; }

/* Cartes actualités / listes / divers petits textes */
body.v3 .news-card__body,
body.v3 .news-card__meta,
body.v3 .card__text,
body.v3 .expertise-card__text,
body.v3 .member-profile__social a { font-size: 15.5px; }
body.v3 .member-profile__meta strong,
body.v3 .card__eyebrow,
body.v3 .expertise-card__eyebrow { font-size: 13px; }

/* Carte interactive : popups */
.pledge-popup__type { font-size: 12.5px; }
.pledge-popup__addr,
.pledge-popup__contact li,
.pledge-popup__contact a { font-size: 15px; }
.pledge-popup__name { font-size: 20px; }

/* Mobile : rien sous 15px pour le texte courant */
@media (max-width: 640px) {
  body.v3,
  body.v3 p,
  body.v3 li { font-size: 16.5px; }
  body.v3 .v3-menu__cols a { font-size: 16.5px; }
  body.v3 .site-footer p,
  body.v3 .site-footer a { font-size: 16px; }
}

/* ===========================================================
   COOKIE NOTICE + RECHERCHE DE SITE
   =========================================================== */
.cookie-notice {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 1200;
  background: #092f4e;
  color: #f4f1ea;
  border: 1px solid rgba(255, 166, 43, 0.55);
  border-radius: 2px;
  box-shadow: 0 18px 48px rgba(9, 30, 46, 0.28);
  transform: translateY(24px);
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.cookie-notice.is-visible { transform: none; opacity: 1; }
.cookie-notice__inner {
  display: flex;
  align-items: center;
  gap: 28px;
  flex-wrap: wrap;
  padding: 18px 24px;
  max-width: 1280px;
  margin: 0 auto;
}
.cookie-notice__text {
  flex: 1 1 420px;
  margin: 0;
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  line-height: 1.55;
  color: rgba(244, 241, 234, 0.92);
}
.cookie-notice__text a { color: #ffa62b; text-decoration: underline; }
.cookie-notice__actions { display: flex; gap: 12px; flex-shrink: 0; }
.cookie-notice__btn {
  font-family: 'Archivo', 'Roboto', sans-serif;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 11px 22px;
  border-radius: 2px;
  border: 1px solid #ffa62b;
  background: #ffa62b;
  color: #092f4e;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}
.cookie-notice__btn:hover { background: #ffbd5e; }
.cookie-notice__btn--ghost { background: transparent; color: #ffa62b; }
.cookie-notice__btn--ghost:hover { background: rgba(255, 166, 43, 0.16); color: #f4f1ea; }
@media (max-width: 640px) {
  .cookie-notice { left: 12px; right: 12px; bottom: 12px; }
  .cookie-notice__inner { padding: 16px; gap: 16px; }
  .cookie-notice__actions { width: 100%; }
  .cookie-notice__btn { flex: 1; }
}

.site-search {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12vh 24px 24px;
  background: rgba(9, 30, 46, 0.72);
  backdrop-filter: blur(6px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
.site-search.is-open { opacity: 1; visibility: visible; }
body.site-search-open { overflow: hidden; }
.site-search__panel {
  position: relative;
  width: min(760px, 100%);
  background: #f7f5f0;
  color: #092f4e;
  border: 1px solid rgba(9, 47, 78, 0.12);
  border-radius: 2px;
  padding: 32px 32px 24px;
  box-shadow: 0 30px 70px rgba(9, 30, 46, 0.35);
}
.site-search__close {
  position: absolute;
  top: 10px;
  right: 14px;
  border: 0;
  background: none;
  font-size: 30px;
  line-height: 1;
  color: #092f4e;
  cursor: pointer;
}
.site-search__label {
  display: block;
  font-family: 'Archivo', sans-serif;
  font-size: 14px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #b3701a;
  margin-bottom: 10px;
}
.site-search__input {
  width: 100%;
  font-family: 'Frank Ruhl Libre', serif;
  font-size: 22px;
  color: #092f4e;
  background: transparent;
  border: 0;
  border-bottom: 2px solid rgba(9, 47, 78, 0.25);
  padding: 8px 0 12px;
  outline: none;
}
.site-search__input:focus { border-bottom-color: #ffa62b; }
.site-search__hint {
  margin: 12px 0 0;
  font-family: 'Roboto', sans-serif;
  font-size: 14px;
  color: rgba(9, 47, 78, 0.6);
}
.site-search__results { list-style: none; margin: 18px 0 0; padding: 0; max-height: 46vh; overflow-y: auto; }
.site-search__results li + li { border-top: 1px solid rgba(9, 47, 78, 0.1); }
.site-search__results a {
  display: block;
  padding: 14px 6px;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease;
}
.site-search__results a:hover { background: rgba(255, 166, 43, 0.14); }
.site-search__result-title {
  display: block;
  font-family: 'Frank Ruhl Libre', serif;
  font-size: 17px;
  font-weight: 500;
  color: #092f4e;
}
.site-search__result-text {
  display: block;
  margin-top: 5px;
  font-family: 'Roboto', sans-serif;
  font-size: 14.5px;
  line-height: 1.5;
  color: rgba(9, 47, 78, 0.72);
}
.site-search__empty {
  padding: 16px 6px;
  font-family: 'Roboto', sans-serif;
  font-size: 15px;
  color: rgba(9, 47, 78, 0.7);
}


/* ============ ACTUALITES : cartes LinkedIn (flux RSS.app) ============ */
.nx-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  align-items: stretch;
}
@media (max-width: 1100px) { .nx-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .nx-grid { grid-template-columns: 1fr; } }

.nx-card { display: flex; }
.nx-card__link {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  padding: 28px 26px 26px;
  background: #ffffff;
  border: 1px solid rgba(9, 47, 78, 0.08);
  border-radius: 6px;
  color: #092f4e;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(9, 47, 78, 0.06);
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}
.nx-card__link:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 44px rgba(9, 47, 78, 0.14);
  border-color: rgba(255, 166, 43, 0.55);
}
.nx-card__tag {
  align-self: flex-start;
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #b3701a;
  background: rgba(255, 166, 43, 0.16);
  padding: 6px 12px;
  border-radius: 3px;
}
.nx-card__title {
  margin: 0;
  font-family: "Frank Ruhl Libre", serif;
  font-weight: 500;
  font-size: 19px;
  line-height: 1.35;
  color: #092f4e;
}
.nx-card__date {
  margin: 0;
  font-family: "Roboto", sans-serif;
  font-size: 14.5px;
  color: rgba(9, 47, 78, 0.6);
}
.nx-card__more {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #b3701a;
}
.nx-card__more svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.nx-card__link:hover .nx-card__more svg { transform: translateX(5px); }

.nx-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 40px;
}
.nx-all {
  font-family: "Roboto", sans-serif;
  font-size: 15px;
  color: inherit;
  opacity: 0.75;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.nx-all:hover { opacity: 1; color: #b3701a; }
.nx-error { font-family: "Roboto", sans-serif; font-size: 16px; text-align: center; }

body.v3 .nx-card__title { font-size: 19px; }
.section--dark .nx-all,
.section--dark .nx-error { color: #ffffff; }

/* Actualités : mise en page "articles" pleine largeur */
.nx-list { display: flex; flex-direction: column; gap: 32px; }
.nx-post {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid rgba(9, 47, 78, 0.08);
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(9, 47, 78, 0.06);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
}
.nx-post:hover { box-shadow: 0 18px 44px rgba(9, 47, 78, 0.12); transform: translateY(-3px); }
.nx-post__media {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 26px 26px 0;
  background: #ffffff;
}
.nx-post__media img {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 460px;
  object-fit: contain;
  border-radius: 3px;
}
.nx-post__body { padding: 36px 40px 34px; display: flex; flex-direction: column; gap: 16px; }
.nx-post__head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.nx-post__date {
  font-family: "Roboto", sans-serif;
  font-size: 14.5px;
  color: rgba(9, 47, 78, 0.6);
}
.nx-post__title {
  margin: 0;
  font-family: "Frank Ruhl Libre", serif !important;
  font-weight: 500 !important;
  font-size: clamp(22px, 2vw, 26px);
  line-height: 1.3;
  letter-spacing: 0;
  text-transform: none;
  font-style: normal;
  color: #092f4e;
}
.nx-post__text { display: flex; flex-direction: column; gap: 12px; }
.nx-post__text p {
  margin: 0;
  font-family: "Roboto", sans-serif;
  font-size: 16.5px;
  line-height: 1.75;
  color: rgba(9, 47, 78, 0.86);
  white-space: pre-line;
}
.nx-post__link {
  margin-top: 6px;
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 8px;
  font-family: "Roboto", sans-serif;
  font-size: 15.5px; font-weight: 500;
  color: #b3701a; text-decoration: none;
}
.nx-post__link svg { width: 16px; height: 16px; transition: transform 0.3s ease; }
.nx-post__link:hover svg { transform: translateX(5px); }
@media (max-width: 900px) {
  .nx-post { grid-template-columns: 1fr; }
  .nx-post__media { padding: 20px; }
  .nx-post__media img { max-height: 260px; }
  .nx-post__body { padding: 28px 24px; }
}
.nx-actions .nx-all { text-decoration: none; opacity: 1; }

/* ============================================================
   V3 - RETOURS CLIENT (août, 3e vague)
   Charte : Écorce d'orange #ffa62b / Bleu de Prusse #092f4e /
   Gris de Cuirassé #7e8d85
   ============================================================ */

/* --- 1. Fond texturé éclairci (voile blanc léger par-dessus la texture) --- */
body.v3.v3-light .section-group--texture,
body.v3 .section--bureaux:not(.section--bureaux-dark),
body.v3 .section--awards {
  background-image: linear-gradient(var(--v3-veil), var(--v3-veil)), var(--v3-texture);
  background-blend-mode: normal;
}

/* --- 2. Home : "Notre Vision" hors de la fenêtre avant scroll --- */
body.v3[data-page="home-v3"] .hero__inner { min-height: calc(100dvh - 130px); }
body.v3[data-page="home-v3"] .hero__scroll { margin-bottom: clamp(90px, 13vh, 170px); }
@media (max-width: 640px) {
  body.v3[data-page="home-v3"] .hero__inner { min-height: calc(100dvh - 150px); }
  body.v3[data-page="home-v3"] .hero__scroll { margin-bottom: 72px; }
}

/* --- 3. Texte "Notre Vision" sur toute la largeur de la section --- */
body.v3 .vision__text { max-width: none; }
body.v3 .vision__text p { max-width: none; }

/* --- 4. Plus de logo (ni favicon) au scroll --- */
body.v3 .brand__favicon { display: none !important; }
body.v3.is-scrolled .brand { pointer-events: none; }

/* --- 5. Menu : plus de mention "Navigation", colonnes alignées --- */
body.v3 .v3-menu__primary::before { content: none; display: none; }
body.v3 .v3-menu__primary { padding-top: 82px; }
body.v3 .v3-menu__cols { padding-top: 40px; }
@media (max-width: 900px) {
  body.v3 .v3-menu__primary { padding-top: 8px; }
  body.v3 .v3-menu__cols { padding-top: 8px; }
}

/* --- 6. Menu : liens lisibles au survol (plus de texte blanc) --- */
body.v3 .v3-menu__primary a:hover,
body.v3 .v3-menu__primary a:focus-visible {
  background: rgba(255, 166, 43, 0.12);
  border-color: var(--color-accent);
  color: var(--color-accent);
}
body.v3 .v3-menu__primary a:hover::after { color: var(--color-accent); opacity: 1; }

/* --- 7. Actualités : 2 articles par ligne, présentation allégée --- */
.nx-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: start;
}
.nx-post__media { padding: 20px 20px 0; }
.nx-post__media img { max-height: 300px; }
.nx-post__body { padding: 26px 28px 28px; gap: 12px; }
.nx-post__title { font-size: clamp(19px, 1.5vw, 22px); }
.nx-post__text p { font-size: 16px; line-height: 1.7; }
@media (max-width: 900px) {
  .nx-list { grid-template-columns: 1fr; }
}

/* --- 8. Carte des bureaux : fond clair --- */
body.v3 .bureaux-map { background: #f7f5f0; }
.pledge-pin__dot { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.9); }

/* ============================================================
   V3 - RETOURS CLIENT (4e vague)
   ============================================================ */

/* --- 1. Menu : jamais de texte blanc au survol (override .v3-light) --- */
body.v3.v3-light .v3-menu__primary a:hover,
body.v3.v3-light .v3-menu__primary a:focus-visible,
body.v3.v3-light .v3-menu__cols a:hover,
body.v3.v3-light .v3-menu__cols a:focus-visible,
body.v3 .v3-menu__cols a:hover,
body.v3 .v3-menu__cols a:focus-visible {
  color: var(--color-accent);
}
body.v3.v3-light .v3-menu__primary a:hover,
body.v3.v3-light .v3-menu__primary a:focus-visible {
  background: rgba(255, 166, 43, 0.12);
  border-color: var(--color-accent);
}

/* --- 2. Menu : haut des boutons aligné sur les filets des 3 colonnes --- */
body.v3 .v3-menu__primary { padding-top: 40px; }
@media (max-width: 900px) {
  body.v3 .v3-menu__primary { padding-top: 8px; }
}

/* --- 3. Actualités : grille masonry (hauteurs variables) --- */
@media (min-width: 901px) {
  .nx-list {
    display: block;
    column-count: 2;
    column-gap: 28px;
  }
  .nx-list > * {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    margin: 0 0 28px;
    display: block;
  }
  .nx-list .nx-more,
  .nx-list .nx-empty { column-span: all; margin-top: 0; }
}

/* ============================================================
   Texture continue - pages intérieures uniquement (hors home)
   ============================================================ */
body.v3.v3-light:not([data-page="home-v3"]) {
  background-attachment: fixed;
}
body.v3.v3-light:not([data-page="home-v3"]) .hero,
body.v3.v3-light:not([data-page="home-v3"]) .section-group--texture,
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner,
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner--image,
body.v3.v3-light:not([data-page="home-v3"]) .section,
body.v3.v3-light:not([data-page="home-v3"]) .section--bureaux:not(.section--bureaux-dark),
body.v3.v3-light:not([data-page="home-v3"]) .section--awards,
body.v3.v3-light:not([data-page="home-v3"]) .section--pledge,
body.v3.v3-light:not([data-page="home-v3"]) .section--actualites {
  background-color: transparent !important;
  background-image: none !important;
  color: #092f4e;
}
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner::before,
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner::after,
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner--image::before,
body.v3.v3-light:not([data-page="home-v3"]) .hero-banner--image::after { display: none !important; }

/* =========================================================
   V3 - RETOURS CLIENT (3e vague) : ancre vision, police des
   piliers, titres plus fins, respiration hero/pages, largeur
   ========================================================= */

/* --- Ancre "Notre vision" : décalage sous le header --- */
html { scroll-behavior: smooth; scrollbar-gutter: stable; }
body.v3 #vision,
body.v3 [id] { scroll-margin-top: clamp(110px, 14vh, 170px); }

/* --- Piliers d'expertise : police lisible (plus de glyphes tordus) --- */
body.v3 .hero__pillar-label {
  font-family: var(--font-friendly);
  font-weight: 500;
  letter-spacing: 0.035em;
  font-size: clamp(14px, 1.15vw, 17px);
  line-height: 1.4;
}
body.v3 .hero__pillar-index { font-family: var(--font-friendly); }

/* --- Titres des pages intérieures : plus fins --- */
body.v3 .hero-banner__title,
body.v3 .hero-banner--gradient .hero-banner__title {
  font-weight: 400;
  letter-spacing: -0.015em;
}

/* --- Moins d'espace entre le header de page et le texte --- */
body.v3 .hero-banner--gradient .hero-banner__inner {
  padding-bottom: clamp(36px, 4vw, 52px);
}
body.v3 .hero-banner + .section,
body.v3 .hero-banner + .section--vision {
  padding-top: clamp(32px, 3.4vw, 48px);
}

/* --- Alignement du contenu sur le logo Pledge (header : min(1320px, 100% - 32px)) --- */
body.v3:not([data-page="home-v3"]) { --v3-page-max: 1320px; }
body.v3:not([data-page="home-v3"]) main .container,
body.v3:not([data-page="home-v3"]) .site-footer .container,
body.v3:not([data-page="home-v3"]) .section--vision .container,
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__inner {
  width: min(var(--v3-page-max), calc(100% - 32px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}

body.v3[data-page="expertises"] .hero-banner--gradient .hero-banner__title { max-width: none; }
body.v3[data-page="expertises"] .hero-banner--gradient .vision-intro { max-width: none; }
body.v3 .culture-block p,
body.v3 .culture-block ul,
body.v3 .vision-intro { max-width: none; }
body.v3 .culture-block,
body.v3 .detail-intro { max-width: none; }
body.v3 .hero-banner--gradient { min-height: 380px; }
body.v3 .hero-banner--gradient .hero-banner__inner {
  min-height: 0;
  padding-top: clamp(120px, 13vh, 150px);
}
body.v3 .hero-banner--gradient .vision-intro { margin-bottom: 0; }

/* ============================================================
   11. Pages intérieures : mise en page harmonisée (hors home)
   ============================================================ */
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__inner {
  padding-top: clamp(150px, 17vh, 190px);
}
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title {
  font-size: clamp(34px, 4.4vw, 54px);
  font-weight: 400;
  letter-spacing: -0.015em;
  line-height: 1.06;
  max-width: none;
}
/* Pages intérieures (y compris Expertises) : le texte occupe toute la largeur de section */
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title,
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .vision-intro,
body.v3:not([data-page="home-v3"]) .culture-block,
body.v3:not([data-page="home-v3"]) .culture-block p,
body.v3:not([data-page="home-v3"]) .culture-block ul,
body.v3:not([data-page="home-v3"]) .detail-intro,
body.v3:not([data-page="home-v3"]) .detail-intro p,
body.v3:not([data-page="home-v3"]) .vision__text,
body.v3:not([data-page="home-v3"]) .vision__text p,
body.v3:not([data-page="home-v3"]) .section p,
body.v3:not([data-page="home-v3"]) .section ul,
body.v3:not([data-page="home-v3"]) .section__intro {
  max-width: none;
}

/* ============================================================
   12. Harmonisation de la hauteur des headers (pages intérieures)
   ============================================================ */
body.v3:not([data-page="home-v3"]) .hero-banner--gradient {
  min-height: 380px;
  align-items: flex-start;
}
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__inner {
  padding-top: 172px;
  padding-bottom: clamp(36px, 4vw, 52px);
}
@media (max-width: 720px) {
  body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__inner {
    padding-top: 118px;
  }
}

/* Récompenses (home) : texte sur toute la largeur */
body.v3 .section--awards .awards p,
body.v3 .awards p { max-width: none; }

/* ============================================================
   13. Cartes d'expertises cliquables (grille multi-lignes)
   ============================================================ */
body.v3 .expertise-rail { margin: 28px 0 6px; overflow: visible; }
body.v3 .expertise-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 16px;
  width: auto;
  padding: 2px;
}
body.v3 .expertise-card {
  position: relative;
  min-height: 158px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 20px;
  background: rgba(255, 255, 255, 0.62);
  border: 1px solid rgba(9, 47, 78, 0.16);
  color: #092f4e;
  text-decoration: none;
  transition: transform 0.35s ease, border-color 0.35s ease, background 0.35s ease, box-shadow 0.35s ease;
}
body.v3 .expertise-card__num {
  font-family: var(--font-friendly);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: #ffa62b;
}
body.v3 .expertise-card__label {
  font-family: var(--font-display);
  font-size: 17px;
  line-height: 1.25;
  font-weight: 400;
  letter-spacing: -0.005em;
}
body.v3 .expertise-card__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Archivo', 'Roboto', sans-serif;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #092f4e;
}
body.v3 .expertise-card__go {
  display: block;
  width: 22px;
  height: 7px;
  background: #ffa62b;
  transform: skewX(-22deg);
  transition: width 0.35s ease;
}
body.v3 .expertise-card:hover,
body.v3 .expertise-card:focus-visible {
  transform: translateY(-4px);
  border-color: #ffa62b;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 30px -18px rgba(9, 47, 78, 0.45);
}
body.v3 .expertise-card:hover .expertise-card__go { width: 40px; }
@media (max-width: 720px) {
  body.v3 .expertise-cards { grid-template-columns: 1fr; }
  body.v3 .expertise-card { min-height: 0; }
}

/* ============================================================
   14. Harmonisation de la police des libellés courts
   (bureaux, noms de l'équipe, sous-menu) : Archivo comme les piliers
   ============================================================ */
body.v3 .bureaux-list__item strong,
body.v3 .team-card__name,
body.v3 .team-card__role,
body.v3 .v3-menu__col h4,
body.v3 .v3-menu__col ul a,
body.v3 .v3-menu__eyebrow,
body.v3 .expertise-card__label,
body.v3 .awards__highlight-title,
body.v3 .pledge-popup__name {
  font-family: 'Archivo', 'Roboto', sans-serif;
  font-weight: 500;
}
body.v3 .v3-menu__col ul a,
body.v3 .team-card__role { font-weight: 400; }

/* ============================================================
   15. Home : biseaux Pledge à gauche du bloc "Notre Vision"
   ============================================================ */
body.v3[data-page="home-v3"] .vision {
  position: relative;
  display: block;
  z-index: 1;
  overflow: visible;
}
body.v3[data-page="home-v3"] .vision__text {
  max-width: none;
  width: 100%;
  padding-left: clamp(300px, 30vw, 440px);
}
/* Biseaux posés en absolu, débordant à gauche jusqu'au bord de page,
   base coupée au bas de la section : ils semblent sortir de la section grise */
body.v3 .vision__deco {
  --bw: clamp(76px, 6.4vw, 112px); /* largeur d'un biseau */
  --bgap: 0.40; /* écart entre biseaux, en multiple de --bw */
  --bover: 220px; /* débord sous la section, toujours masqué */
  position: absolute;
  top: -16px;

  bottom: calc(-1 * var(--bover));
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 20px + var(--bw) * 0.55));
  width: calc(var(--bw) * (3 + var(--bgap) * 2));

  pointer-events: none;
  z-index: 0;
}
body.v3 .vision__deco span {
  position: absolute;
  bottom: 0;
  display: block;
  width: var(--bw);
  background: #092f4e;
  /* parallaxe horizontale uniquement : la base reste collée à la section suivante */
  transform: translate3d(calc(var(--v2-mx, 0) * var(--v2-parallax, 22px)), 0, 0) skewX(-22deg);

  transform-origin: bottom center;
  transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
  will-change: transform;
}
body.v3 .vision__deco span:nth-child(1) {
  left: 0;
  height: 100%;
  --v2-parallax: 22px;
}
body.v3 .vision__deco span:nth-child(2) {
  left: calc(var(--bw) * (1 + var(--bgap)));
  height: 78%;
  --v2-parallax: 36px;
}
body.v3 .vision__deco span:nth-child(3) {
  left: calc(var(--bw) * (2 + var(--bgap) * 2));
  height: 58%;
  --v2-parallax: 52px;
}



/* Trame de fines lignes diagonales (angle Pledge) en fond de la zone gauche */
body.v3[data-page="home-v3"] .vision::before {
  content: "";
  position: absolute;
  top: -200px;
  bottom: -220px;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(360px, 34vw, 520px);
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.13) 0 1px,
    rgba(9, 47, 78, 0) 1px 14px
  );
  mask-image:
    linear-gradient(to right, #000 0%, #000 55%, transparent 100%),
    linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.45) 18%, #000 34%, #000 72%, transparent 100%);
  mask-composite: intersect;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}


@media (prefers-reduced-motion: reduce) {
  body.v3 .vision__deco span { transition: none !important; transform: skewX(-22deg) !important; }
}

body.v3[data-page="home-v3"] .vision__text { position: relative; z-index: 2; }
/* la section grise passe au-dessus : les biseaux semblent en sortir */
body.v3[data-page="home-v3"] .section--bureaux {
  position: relative;
  z-index: 5;
  overflow: hidden;
  background-color: #eef0ed;
  background-image: linear-gradient(rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), var(--v3-texture);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
}
@media (max-width: 900px) {
  body.v3[data-page="home-v3"] .vision__text { padding-left: 0; }
  body.v3 .vision__deco { display: none; }
  body.v3[data-page="home-v3"] .vision::before { display: none; }
  body.v3 .vision__cta { justify-content: center; }
}

/* Home : espace entre "Notre Vision" et "Nos bureaux"
   (même respiration que les autres sections de la home) */
body.v3[data-page="home-v3"] .section--bureaux { padding-top: 114px; margin-top: 0; }
body.v3[data-page="home-v3"] .vision { padding-bottom: 40px; }
@media (max-width: 900px) {
  body.v3[data-page="home-v3"] .section--bureaux { margin-top: 0; padding-top: 64px; }
}

/* ============================================================
   16. Biseaux "Notre Vision" : le bas reste masqué par la section grise
   ============================================================ */
body.v3[data-page="home-v3"] .vision__deco {
  --bover: 220px;
  bottom: calc(-1 * var(--bover));
  z-index: 0;
}

body.v3[data-page="home-v3"] .section--bureaux { z-index: 5; }

/* ============================================================
   17. Pages Équipe / Actualité / Contact : mise en page condensée
   ============================================================ */

body.v3[data-page="equipe"] .hero-banner + .section,
body.v3[data-page="actualite"] .hero-banner + .section,
body.v3[data-page="contact"] .hero-banner + .section { padding-top: clamp(22px, 2.2vw, 32px); }
body.v3[data-page="equipe"] .section,
body.v3[data-page="actualite"] .section,
body.v3[data-page="contact"] .section { padding-bottom: clamp(32px, 3.4vw, 52px); }
body.v3[data-page="equipe"] .team-filters { margin-bottom: 22px; }
body.v3[data-page="equipe"] .team-grid { gap: 14px 12px; }
body.v3[data-page="contact"] .contact-grid,
body.v3[data-page="contact"] .contact-layout { gap: clamp(24px, 3vw, 44px); }
body.v3[data-page="contact"] .form-row,
body.v3[data-page="contact"] .form-field { margin-bottom: 14px; }
body.v3[data-page="contact"] .section-title,
body.v3[data-page="actualite"] .section-title,
body.v3[data-page="equipe"] .section-title { margin-bottom: 10px; }
body.v3[data-page="contact"] .title-rule,
body.v3[data-page="actualite"] .title-rule,
body.v3[data-page="equipe"] .title-rule { margin-bottom: 22px; }
body.v3[data-page="actualite"] .news-grid { gap: 18px; }

/* ============================================================
   18. Équipe / Experts : les noms apparaissent au survol de la photo
   ============================================================ */
body.v3 .team-grid--reveal .team-card__link {
  position: relative;
  display: block;
  overflow: hidden;
}
body.v3 .team-grid--reveal .team-card__photo { margin-bottom: 0; }
body.v3 .team-grid--reveal .team-card__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 62%;
  background: linear-gradient(to bottom, rgba(9, 47, 78, 0) 0%, rgba(9, 47, 78, 0.9) 78%);
  opacity: 0;
  transition: opacity 0.35s ease;
  z-index: 1;
}
body.v3 .team-grid--reveal .team-card__name,
body.v3 .team-grid--reveal .team-card__role {
  position: absolute;
  left: 18px;
  right: 18px;
  text-align: left;
  color: #fff;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1);
  z-index: 2;
  margin: 0;
}
body.v3 .team-grid--reveal .team-card__name,
body.v3 .team-grid--reveal .team-card__link:hover .team-card__name,
body.v3 .team-grid--reveal .team-card__link:focus-visible .team-card__name {
  color: #ffffff !important;
}
body.v3 .team-grid--reveal .team-card__name { bottom: 40px; }
body.v3 .team-grid--reveal .team-card__role {
  bottom: 18px;
  color: #ffa62b;
  font-size: 14px;
}
body.v3 .team-grid--reveal .team-card__link:hover::after,
body.v3 .team-grid--reveal .team-card__link:focus-visible::after { opacity: 1; }
body.v3 .team-grid--reveal .team-card__link:hover .team-card__name,
body.v3 .team-grid--reveal .team-card__link:hover .team-card__role,
body.v3 .team-grid--reveal .team-card__link:focus-visible .team-card__name,
body.v3 .team-grid--reveal .team-card__link:focus-visible .team-card__role {
  opacity: 1;
  transform: translateY(0);
  color: #fff;
}
body.v3 .team-grid--reveal .team-card__link:hover .team-card__role,
body.v3 .team-grid--reveal .team-card__link:focus-visible .team-card__role { color: #ffa62b; }
@media (hover: none) {
  body.v3 .team-grid--reveal .team-card__link::after { opacity: 1; }
  body.v3 .team-grid--reveal .team-card__name,
  body.v3 .team-grid--reveal .team-card__role { opacity: 1; transform: none; }
}

/* ============================================================
   19. Page Vision : onglets avec piliers Pledge
   ============================================================ */
/* ============================================================
   Page Vision : les 3 piliers en pile verticale (mécanique
   identique à « Des outils sur-mesure » de l'accueil, version claire)
   ============================================================ */
/* Section pleine largeur, contenu aligné à la marge du titre */
body.v3.pillars-page .section--vision {
  display: block;
  padding-top: clamp(8px, 1vw, 16px);
}
body.v3.pillars-page .hero-banner + .section--vision { margin-top: 0; }
body.v3.pillars-page .hero-banner .vision-intro { margin-bottom: 4px; }
body.v3.pillars-page .hero-banner__inner { padding-bottom: 18px !important; }
body.v3.pillars-page .section--vision > .section__inner {
  width: min(var(--v3-page-max, 1320px), calc(100% - 32px));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-left: 20px;
  padding-right: 20px;
}
@media (max-width: 1023px) {
  body.v3.pillars-page .section--vision > .section__inner {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* ---- Accordéon horizontal + carte navy flottante ---- */
body.v3.pillars-page .section--vision { position: relative; overflow: hidden; }
body.v3.pillars-page .section--vision::before {
  content: "";
  position: absolute;
  inset: -40px 0 0;
  background-image:
    repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.25) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(202deg, rgba(9, 47, 78, 0.25) 0 1px, transparent 1px 80px);
  opacity: 0.02;
  -webkit-mask-image: radial-gradient(120% 100% at 80% 20%, #000 0%, rgba(0, 0, 0, 0.35) 55%, transparent 85%);
  mask-image: radial-gradient(120% 100% at 80% 20%, #000 0%, rgba(0, 0, 0, 0.35) 55%, transparent 85%);
  pointer-events: none;
  z-index: 0;
}
body.v3.pillars-page .section--vision > .section__inner { position: relative; z-index: 1; }

body.v3.pillars-page .vision-tabs {
  --pb-skew: 22deg;
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: none;
  min-height: clamp(360px, 34vw, 520px);
  border-top: 1px solid rgba(9, 47, 78, 0.2);
  position: relative;
}
/* la nav disparaît en tant que boîte : ses 3 têtes deviennent des colonnes */
body.v3.pillars-page .pillar-bevels { display: contents; }

/* --- Têtes de colonne (piliers fermés) --- */
body.v3.pillars-page .pillar-bevel {
  flex: 0 0 clamp(66px, 6vw, 86px);
  order: 1;
  position: relative;
  display: block;
  padding: clamp(18px, 2vw, 26px) 0;
  border: 0;
  border-right: 1px solid rgba(9, 47, 78, 0.2);
  border-radius: 0;
  background: transparent;
  cursor: pointer;
  transition: background 0.45s ease, opacity 0.45s ease;
}
body.v3.pillars-page .pillar-bevel:nth-of-type(2) { order: 3; }
body.v3.pillars-page .pillar-bevel:nth-of-type(3) { order: 5; border-right: 0; }
body.v3.pillars-page .pillar-bevel:hover { background: rgba(255, 255, 255, 0.4); }
body.v3.pillars-page .pillar-bevel.is-active { display: none; }
body.v3.pillars-page .pillar-bevel:focus-visible {
  outline: 2px solid var(--color-accent, #ffa62b);
  outline-offset: -4px;
}
body.v3.pillars-page .pillar-bevel__text {
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  transform: none;
}
body.v3.pillars-page .pillar-bevel::before {
  content: attr(data-index);
  display: block;
  font-family: "Source Serif 4", Georgia, serif;
  font-style: italic;
  font-size: clamp(18px, 1.6vw, 24px);
  color: rgba(9, 47, 78, 0.32);
  line-height: 1;
  text-align: center;
  margin-bottom: 18px;
}
body.v3.pillars-page .pillar-bevel::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: clamp(18px, 2vw, 26px);
  width: 7px;
  height: 7px;
  transform: translateX(-50%) skewX(calc(-1 * var(--pb-skew)));
  background: rgba(9, 47, 78, 0.22);
  transition: background 0.35s ease;
}
body.v3.pillars-page .pillar-bevel:hover::after { background: var(--color-accent, #ffa62b); }
body.v3.pillars-page .pillar-bevel .vision-tab__label {
  font-family: "Source Serif 4", Georgia, serif !important;
  font-weight: 500 !important;
  font-size: clamp(15px, 1.15vw, 19px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.72);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
  transition: color 0.35s ease;
}
body.v3.pillars-page .pillar-bevel:hover .vision-tab__label { color: #092f4e; }
body.v3.pillars-page .pillar-bevel .vision-tab__index,
body.v3.pillars-page .pillar-bevel .vision-tab__more { display: none; }

/* --- Carte navy du pilier ouvert --- */
body.v3.pillars-page .vision-tabs__panels {
  flex: 1 1 auto;
  min-width: 0;
  order: 2;
  position: relative;
  background: #092f4e;
  border-radius: 2px;
  box-shadow: 40px 40px 0 -10px rgba(9, 47, 78, 0.05);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 60px), calc(100% - 150px) 100%, 0 100%);
}
body.v3.pillars-page.pillars-2 .vision-tabs__panels { order: 4; }
body.v3.pillars-page.pillars-3 .vision-tabs__panels { order: 6; }
/* Pilier 1 actif : la carte navy file jusqu'au bord gauche de l'écran */
body.v3.pillars-page.pillars-1 .vision-tabs__panels {
  --v3-bleed-l: calc((100vw - min(var(--v3-page-max, 1320px), 100vw - 32px)) / 2 + 20px);
  margin-left: calc(-1 * var(--v3-bleed-l));
  border-radius: 0;
}
body.v3.pillars-page.pillars-1 .pillar-panel {
  padding-left: calc(var(--v3-bleed-l) + clamp(28px, 3.4vw, 60px));
}

body.v3.pillars-page .vision-panel { display: none; }
body.v3.pillars-page .vision-panel.is-active {
  display: block;
  animation: visionPanelIn 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
@keyframes visionPanelIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
body.v3.pillars-page .pillar-panel {
  position: relative;
  display: grid;
  grid-template-columns: 5fr 7fr;
  align-items: start;
  gap: clamp(24px, 3vw, 56px);
  padding: clamp(30px, 3.6vw, 64px) clamp(28px, 3.4vw, 60px) clamp(56px, 5vw, 88px);
  overflow: hidden;
  background-image: radial-gradient(
    120% 90% at 6% 0%,
    rgba(253, 252, 248, 0.09) 0%,
    rgba(253, 252, 248, 0.03) 42%,
    rgba(253, 252, 248, 0) 72%
  );
}
/* trame diagonale signature très discrète à l'intérieur de la carte */
body.v3.pillars-page .pillar-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(253, 252, 248, 0.025) 0px,
    rgba(253, 252, 248, 0.025) 1px,
    transparent 1px,
    transparent 13px
  );
  -webkit-mask-image: linear-gradient(160deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.45) 48%, rgba(0, 0, 0, 0) 82%);
  mask-image: linear-gradient(160deg, rgba(0, 0, 0, 0.95) 0%, rgba(0, 0, 0, 0.45) 48%, rgba(0, 0, 0, 0) 82%);
}

/* filigrane numérique */
body.v3.pillars-page .vision-panel.is-active .pillar-panel::before {
  content: attr(data-index);
  position: absolute;
  top: -14px;
  right: clamp(20px, 3vw, 56px);
  font-family: "Source Serif 4", Georgia, serif;
  font-style: italic;
  font-weight: 700;
  font-size: clamp(120px, 15vw, 220px);
  line-height: 1;
  color: rgba(253, 252, 248, 0.06);
  pointer-events: none;
  user-select: none;
  z-index: 1;
}

body.v3.pillars-page .pillar-panel__aside {
  position: relative;
  z-index: 1;
  background: transparent;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
body.v3.pillars-page .pillar-panel__aside .section-title,
body.v3.pillars-page .pillar-panel__title {
  font-family: "Source Serif 4", Georgia, serif !important;
  font-style: italic;
  font-weight: 400 !important;
  font-size: clamp(26px, 2.6vw, 42px);
  line-height: 1.16;
  color: #fdfcf8 !important;
  margin: 0;
}
body.v3.pillars-page .pillar-panel__aside .title-rule {
  width: 56px;
  height: 2px;
  margin: 0;
  background: #6b8295;
  transform: skewX(calc(-1 * var(--pb-skew)));
}
body.v3.pillars-page .pillar-panel__lead {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif) !important;
  font-size: clamp(15px, 1.1vw, 17px);
  font-weight: 500;
  line-height: 1.68;
  color: rgba(253, 252, 248, 0.82);
  margin: 0;
}
body.v3.pillars-page .pillar-panel__lead strong { color: #fdfcf8; font-weight: 600; }
body.v3.pillars-page .pillar-panel__body {
  position: relative;
  z-index: 1;
  padding: 0;
  margin: 0;
  max-width: none;
}
body.v3.pillars-page .pillar-panel__body > * + * { margin-top: 16px; }
body.v3.pillars-page .pillar-panel__body p,
body.v3.pillars-page .pillar-panel__body li {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif) !important;
  font-size: clamp(14px, 1vw, 15.5px);
  line-height: 1.78;
  color: rgba(253, 252, 248, 0.68);
}
body.v3.pillars-page .pillar-panel__body strong { color: #fdfcf8; }
body.v3.pillars-page .pillar-panel__body em { color: rgba(255, 166, 43, 0.9); }
body.v3.pillars-page .pillar-panel__body ul {
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
  display: grid;
  gap: 18px;
}
body.v3.pillars-page .pillar-panel__body li {
  position: relative;
  padding-left: 18px;
  margin: 0;
}


/* Filet or décoratif en bas de section */
body.v3.pillars-page .section--vision .section__inner::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -10px;
  width: 46%;
  height: 1px;
  background: linear-gradient(to left, rgba(255, 166, 43, 0.45), transparent);
  pointer-events: none;
}

@media (max-width: 1023px) {
  body.v3.pillars-page .vision-tabs {
    display: block;
    min-height: 0;
    border-top: 0;
  }
  body.v3.pillars-page .pillar-bevels { display: block; }
  body.v3.pillars-page .pillar-bevel {
    width: 100%;
    padding: 16px 4px;
    border-right: 0;
    border-top: 1px solid rgba(9, 47, 78, 0.2);
  }
  body.v3.pillars-page .pillar-bevel__text {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
  }
  body.v3.pillars-page .pillar-bevel::before { margin: 0; }
  body.v3.pillars-page .pillar-bevel::after { display: none; }
  body.v3.pillars-page .pillar-bevel .vision-tab__label {
    writing-mode: horizontal-tb;
    transform: none;
  }
  body.v3.pillars-page .vision-tabs__panels {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 80px) 100%, 0 100%);
    box-shadow: none;
    /* la carte navy descend un peu sous le dernier pilier (ex. « Une responsabilité ») */
    margin-top: 28px;
  }
  body.v3.pillars-page .pillar-panel {
    grid-template-columns: 1fr;
    padding: 26px 20px 46px;
  }
}






/* ============================================================
   20. Pages Expertises : resserrer l'espace sous le header
   ============================================================ */
body.v3[data-page="expertises"] .hero-banner--gradient { min-height: 0; }
body.v3[data-page="expertises"] .hero-banner--gradient .hero-banner__inner {
  padding-bottom: clamp(20px, 2.2vw, 30px);
}
body.v3[data-page="expertises"] .hero-banner + .section,
body.v3[data-page="expertises"] .hero-banner + .section--vision {
  padding-top: clamp(16px, 1.8vw, 26px);
}
body.v3[data-page="expertises"] .detail-intro,
body.v3[data-page="expertises"] .section__inner > *:first-child { margin-top: 0; }

/* ============================================================
   21. Formulaire de contact global en pied de page
   ============================================================ */
body.v3 .footer-united {
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, 400px) minmax(0, 1fr);
  gap: clamp(28px, 3.4vw, 56px);
  align-items: start;
}
body.v3 .footer-united__left .footer__grid {
  grid-template-columns: 1fr;
  gap: 30px;
  padding-left: 0;
  max-width: none;
}

body.v3 .footer-contact {
  position: relative;
  z-index: 1;
  scroll-margin-top: 120px;
}
body.v3 .footer-contact__title {
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  line-height: 1.06;
  font-size: clamp(24px, 2.2vw, 34px);
  color: #ffffff;
  margin: 0 0 26px;
}
body.v3 .site-footer .footer-contact__title {
  color: #ffffff !important;
}
body.v3 .footer-contact__title::after {
  content: "";
  display: block;
  width: 80px;
  height: 3px;
  margin-top: 18px;
  background: var(--color-accent);
}
body.v3 .footer-contact__form { margin: 0; }
body.v3 .footer-contact__form label {
  color: rgba(244, 241, 234, 0.78);
  font-size: 13px;
}
body.v3 .footer-contact__form input,
body.v3 .footer-contact__form textarea {
  background: rgba(244, 241, 234, 0.06);
  border: 1px solid rgba(244, 241, 234, 0.24);
  color: #f4f1ea;
  border-radius: 2px;
  font-size: 14px;
  padding: 9px 12px;
}
body.v3 .footer-contact__form textarea { min-height: 110px; }
body.v3 .footer-contact__form input:focus,
body.v3 .footer-contact__form textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  background: rgba(244, 241, 234, 0.1);
}
body.v3 .footer-contact__form .contact-rgpd,
body.v3 .footer-contact__form .contact-rgpd small {
  color: rgba(244, 241, 234, 0.6);
  font-size: 11.5px;
  line-height: 1.55;
}
body.v3 .footer-contact__form .btn {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #092f4e;
}
body.v3 .footer-contact__form .btn:hover { filter: brightness(1.06); }
@media (max-width: 900px) {
  body.v3 .footer-united { grid-template-columns: 1fr; }
  body.v3 .footer-united__left .footer__grid { max-width: none; }
}


/* ============================================================
   22. Actualités : cartes compactes, onglets et recherche
   ============================================================ */
body.v3 .nx-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  margin-bottom: 26px;
  border-bottom: 1px solid rgba(9, 47, 78, 0.16);
}
body.v3 .nx-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
/* Composant partagé : filtres "Nos actualités" ET "Notre Équipe" */
body.v3 .nx-tab {
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 9px 16px;
  border: 1px solid rgba(9, 47, 78, 0.2);
  border-radius: 2px;
  background: transparent;
  color: #092f4e;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

body.v3 .nx-tab:hover { border-color: var(--color-accent); }
body.v3 .nx-tab.is-active {
  background: #092f4e;
  border-color: #092f4e;
  color: #f4f1ea;
}
body.v3 .nx-search {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(9, 47, 78, 0.2);
  border-radius: 2px;
  padding: 8px 14px;
  min-width: 260px;
  background: rgba(255, 255, 255, 0.6);
}
body.v3 .nx-search svg { width: 16px; height: 16px; color: #092f4e; flex: 0 0 auto; }
body.v3 .nx-search input {
  border: 0;
  background: transparent;
  font-family: var(--font-body);
  font-size: 14px;
  color: #092f4e;
  width: 100%;
  outline: none;
}
body.v3 .nx-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
  gap: 16px;
}
body.v3 .nx-card { position: relative; }
body.v3 .nx-card__link {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 20px 22px 22px;
  background: rgba(255, 255, 255, 0.66);
  border: 1px solid rgba(9, 47, 78, 0.14);
  border-radius: 2px;
  text-decoration: none;
  color: #092f4e;
  overflow: hidden;
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
body.v3 .nx-card__link:hover {
  transform: translateY(-4px);
  border-color: var(--color-accent);
  background: #fff;
}
body.v3 .nx-card__date {
  font-family: var(--font-body);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.6);
}
body.v3 .nx-card__title {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 19px;
  line-height: 1.24;
  letter-spacing: -0.01em;
  margin: 12px 0 0;
  padding-top: 12px;
  border-top: 1px solid rgba(9, 47, 78, 0.14);
}
body.v3 .nx-card__excerpt {
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(9, 47, 78, 0.76);
  margin: 10px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
body.v3 .nx-card__foot {
  margin-top: auto;
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
body.v3 .nx-card__cat {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--color-accent);
}
body.v3 .nx-card__place {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: rgba(9, 47, 78, 0.62);
}
body.v3 .nx-card__plus {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  font-size: 18px;
  line-height: 1;
  color: #f4f1ea;
  background: #092f4e;
  transition: background 0.25s ease, color 0.25s ease;
}
body.v3 .nx-card__link:hover .nx-card__plus { background: var(--color-accent); color: #092f4e; }
body.v3 .nx-empty { grid-column: 1 / -1; color: rgba(9, 47, 78, 0.7); }

/* Article d'actualité */
body.v3[data-page="actualite-article"] .article-body { 
  max-width: none;
  color: #f4f1ea;
}
body.v3[data-page="actualite-article"] .article-body p,
body.v3[data-page="actualite-article"] .article-body h2,
body.v3[data-page="actualite-article"] .article-body h3,
body.v3[data-page="actualite-article"] .article-body h4,
body.v3[data-page="actualite-article"] .article-body li,
body.v3[data-page="actualite-article"] .article-body strong { color: rgba(244, 241, 234, 0.92); }
body.v3[data-page="actualite-article"] .article-body a { color: #ffa62b; }
body.v3[data-page="actualite-article"] .article-body a:hover { color: #f4f1ea; }
body.v3 .article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  align-items: baseline;
  font-size: 12.5px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.62);
  margin-bottom: 6px;
}
body.v3 .article-meta .is-cat { color: var(--color-accent); font-weight: 600; }
body.v3 .article-body p { margin: 0 0 18px; }
body.v3 .article-back {
  display: inline-block;
  margin-top: 18px;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #092f4e;
}
body.v3[data-page="actualite-article"] .article-back { color: #f4f1ea; }
body.v3[data-page="actualite-article"] .article-back:hover { color: #ffa62b; }
body.v3 .news-cta { margin-top: 28px; text-align: center; }

/* Pages intérieures : plus de vide résiduel sous le titre de header */
body.v3:not([data-page="home-v3"]) .hero-banner--gradient { min-height: 0; }
/* Bouton du formulaire de pied de page : contraste garanti */
body.v3 .footer-contact .btn {
  background: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #092f4e !important;
}
/* Article d'actualité : header resserré */
body.v3[data-page="actualite-article"] .hero-banner--gradient .hero-banner__inner { padding-bottom: clamp(20px, 2.2vw, 28px); }
body.v3[data-page="actualite-article"] .hero-banner + .section { padding-top: clamp(16px, 1.8vw, 24px); }

/* Article d'actualité : zone de titre élargie pour les longs titres */
body.v3[data-page="actualite-article"] .hero-banner--gradient .hero-banner__title { max-width: none !important; }

/* Article d'actualité : suppression de l'espace vide sous le corps de texte */
body.v3[data-page="actualite-article"] .hero-banner + .section--vision { padding-bottom: 0; }
body.v3[data-page="actualite-article"] .contact-section { padding-top: 0; }

/* ============================================================
   V3 - RETOURS CLIENT (retour au design validé)
   ============================================================ */

/* 1. Biseaux Pledge : contour orange uniquement, jamais de remplissage,
      et toujours en arrière-plan du texte. */
body.v3 .hero__shape,
body.v3 .section__shape,
body.v3 .hero-banner__shapes .hero__shape {
  background: transparent !important;
  background-color: transparent !important;
  border: 1px solid rgba(255, 166, 43, 0.08) !important;
}
body.v3 .hero__shapes,
body.v3 .section__shapes { z-index: 0 !important; }
body.v3 .hero__inner,
body.v3 .section__inner { position: relative; z-index: 3; }

/* Accueil : les biseaux animés restent discrets mais suffisamment présents
   sur le fond clair. */
body.v3[data-page="home-v3"] .hero__shape,
body.v3[data-page="home-v3"] .section__shape {
  border-color: rgba(255, 166, 43, 0.28) !important;
}

/* 2. Section "Nos Actualités" : titre blanc sur le fond navy, dates en bleu nuit. */
body.v3 .section--news.section--dark .section-title,
body.v3.v3-light .section--news.section--dark .section-title { color: #f4f1ea !important; }

body.v3 .section--news.section--dark .nx-card__date,
body.v3 .section--news.section--dark .nx-empty { color: #092f4e !important; }

/* Sur mobile, le titre reste blanc sur le fond navy. */
@media (max-width: 768px) {
  body.v3 .section--news.section--dark .section-title,
  body.v3.v3-light .section--news.section--dark .section-title { color: #f4f1ea !important; }

  body.v3 .section--news.section--dark .nx-card__date { color: #092f4e !important; }
}



/* 3. Bouton "Toutes nos actualités" : orange + bordure orange,
      blanc au survol. */
body.v3 .section--dark .news-cta .btn,
body.v3 .news-cta .btn--ghost {
  background: transparent !important;
  color: var(--color-accent, #ffa62b) !important;
  border: 1px solid var(--color-accent, #ffa62b) !important;
}
body.v3 .section--dark .news-cta .btn:hover,
body.v3 .news-cta .btn--ghost:hover {
  background: transparent !important;
  color: #ffffff !important;
  border-color: #ffffff !important;
}

/* 4. Footer : plus de bloc bleu derrière le bouton "Envoyer". */
body.v3 .site-footer .contact-submit,
body.v3 .footer-contact .contact-submit,
body.v3 .footer-contact__form .contact-submit {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

/* ============================================================
   24. Encarts prix répétables (back-office)
   ============================================================ */
body.v3 .awards__highlights {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 32px 0 44px;
}
body.v3 .awards__highlights .awards__highlight { margin: 0; }

/* ============================================================
   25. Option back-office : en-tête sur le dégradé bleu Pledge
   ============================================================ */
body.v3.cms-hero-dark .hero-banner,
body.v3.cms-hero-dark .hero-banner--gradient {
  background-image: linear-gradient(160deg, #092f4e 0%, #0b3a5f 55%, #7e8d85 165%) !important;
  background-color: #092f4e !important;
}
body.v3.cms-hero-dark .hero-banner::before,
body.v3.cms-hero-dark .hero-banner::after { opacity: 0.18; }
body.v3.cms-hero-dark .hero-banner *,
body.v3.cms-hero-dark .hero-banner__title,
body.v3.cms-hero-dark .hero-banner__subtitle,
body.v3.cms-hero-dark .hero-banner .vision-intro,
body.v3.cms-hero-dark .hero-banner p,
body.v3.cms-hero-dark .hero-banner strong {
  color: #f4f1ea !important;
}
body.v3.cms-hero-dark .hero-banner .title-rule,
body.v3.cms-hero-dark .hero-banner__rule { background: #6b8295 !important; }
body.v3.cms-hero-dark .hero-banner .hero__shape {
  border-color: rgba(255, 166, 43, 0.10) !important;
  background: transparent !important;
}

/* ============================================================
   26. Option back-office (correctif) : en-tête sur le dégradé
   bleu Pledge — doit primer sur la texture des pages claires,
   et le logo du menu passe en blanc sur ces pages.
   ============================================================ */
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner--gradient,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner--image {
  background-image: linear-gradient(160deg, #092f4e 0%, #0b3a5f 55%, #7e8d85 165%) !important;
  background-color: #092f4e !important;
  color: #f4f1ea !important;
}
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner *,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__title,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__subtitle,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner .vision-intro,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner p,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner strong,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner em,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner span {
  color: #f4f1ea !important;
}
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner .title-rule,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__title::after,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__rule {
  background: #6b8295 !important;
}
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner .hero__shape {
  border-color: rgba(255, 166, 43, 0.8) !important;
  background: transparent !important;
}
/* Logo du menu en blanc (sauf quand le menu déroulé passe sur fond blanc) */
body.v3.v3-light.cms-hero-dark:not(.v3-menu-open) .brand__logo,
body.v3.v3-light.cms-hero-dark:not(.v3-menu-open) .brand__logo--main {
  filter: brightness(0) invert(1) !important;
}

/* ---------- Puce "Plateforme Contentieuse" (header) ---------- */
/* Toujours dans la barre du haut, à gauche de "Contact", menu ouvert ou fermé */
body.v3 .pill-btn--platform,
body.v3.v3-menu-open .pill-btn--platform {
  display: inline-flex;
  white-space: nowrap;
  padding-left: 24px;
  padding-right: 24px;
}
@media (max-width: 900px) {
  body.v3 .pill-btn--platform,
  body.v3.v3-menu-open .pill-btn--platform {
    font-size: 10px;
    letter-spacing: 0.04em;
    padding: 10px 12px;
  }
}
@media (max-width: 520px) {
  body.v3 .pill-btn--platform,
  body.v3.v3-menu-open .pill-btn--platform {
    font-size: 8px;
    letter-spacing: 0.01em;
    padding: 8px 7px;
  }
}
/* Jamais dans la liste de liens du menu latéral */
body.v3 .v3-menu__primary a[data-nav="plateforme"] { display: none; }



/* ---------- Section plateforme (home) ---------- */
body.v3 .section--platform { position: relative; }
body.v3 .platform-lead {
  max-width: none;
  width: 100%;
  margin: 0 0 44px;
}
body.v3 .platform-carousel {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr 48px;
  align-items: center;
  gap: 20px;
  margin: 0 auto;
  max-width: 1000px;
}
body.v3 .platform-carousel__viewport { overflow: hidden; }
body.v3 .platform-carousel__track {
  display: flex;
  transition: transform 0.6s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform;
}
body.v3 .platform-slide {
  flex: 0 0 100%;
  min-width: 100%;
  box-sizing: border-box;
  background: linear-gradient(120deg, #092f4e 0%, #0b3a5f 100%);
  color: #f4f1ea;
  padding: 54px 60px;
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  border-radius: 2px;
}
body.v3 .platform-slide__kpi {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  margin: 0;
  color: #fff;
}
body.v3 .platform-slide__label {
  margin: 0;
  font-size: 17px;
  line-height: 1.6;
  color: rgba(244, 241, 234, 0.85);
  max-width: 46ch;
}
body.v3 .platform-carousel__arrow {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  border: 1px solid rgba(9, 47, 78, 0.25);
  background: transparent;
  color: #092f4e;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
body.v3 .platform-carousel__arrow svg { width: 20px; height: 20px; }
body.v3 .platform-carousel__arrow:hover {
  border-color: var(--color-accent);
  color: var(--color-accent);
}
body.v3 .platform-carousel__dots {
  grid-column: 2;
  display: flex;
  justify-content: center;
  gap: 9px;
  margin-top: 22px;
}
body.v3 .platform-carousel__dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  border: 0;
  padding: 0;
  background: rgba(9, 47, 78, 0.22);
  cursor: pointer;
  transition: background 0.25s ease, transform 0.25s ease;
}
body.v3 .platform-carousel__dot.is-active {
  background: #092f4e;
  transform: scale(1.25);
}
body.v3 .platform-cta {
  text-align: center;
  margin: 44px 0 0;
}
@media (max-width: 720px) {
  body.v3 .platform-carousel { grid-template-columns: 40px 1fr 40px; gap: 10px; }
  body.v3 .platform-carousel__arrow { width: 40px; height: 40px; }
  body.v3 .platform-slide { padding: 36px 28px; }
}

/* ---------- Page "Plateforme" (bientôt disponible) ---------- */
body.v3 .platform-soon__inner { max-width: 820px; }
body.v3 .platform-soon__eyebrow {
  font-family: var(--font-display);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 13.5px;
  color: var(--color-accent);
  margin: 0 0 14px;
}
body.v3 .platform-soon__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 36px;
}
/* CTA de section plateforme : contour, comme les autres CTA du site */
body.v3 .platform-cta .btn {
  background: transparent;
  border: 1px solid var(--color-accent);
  color: var(--color-accent);
}
body.v3 .platform-cta .btn:hover {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
}
body.v3 .platform-soon { padding-top: 172px; padding-bottom: 120px; }
@media (max-width: 900px) { body.v3 .platform-soon { padding-top: 118px; padding-bottom: 80px; } }
body.v3 .platform-cta .btn {
  background: transparent !important;
  border-color: var(--color-accent) !important;
  color: var(--color-accent) !important;
}
body.v3 .platform-cta .btn:hover {
  background: var(--color-accent) !important;
  border-color: var(--color-accent) !important;
  color: #fff !important;
}

/* ---------- Section plateforme sur fond bleu (biseaux, style Actualités) ---------- */
body.v3 .section--platform-dark {
  position: relative;
  overflow: hidden;
  padding-top: var(--v3-section-y, 104px);
  padding-bottom: var(--v3-section-y, 104px);
}
body.v3 .section--platform-dark .section-title { color: #ffffff !important; }
body.v3 .section--platform-dark .title-rule { background: #6b8295; }

/* Accueil FR : règles de titre en orange */
html[lang="fr"] body.v3[data-page="home-v3"] .title-rule { background: #ffa62b !important; }

body.v3 .section--platform-dark .platform-lead {
  color: rgba(255, 255, 255, 0.82);
  max-width: none;
  width: 100%;
}

/* Cartes du carrousel : même design que les tuiles d'actualité */
body.v3 .section--platform-dark .platform-slide {
  position: relative;
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.66);
  border: 1px solid rgba(9, 47, 78, 0.14);
  border-radius: 2px;
  color: #092f4e;
  padding: 26px 28px 34px;
  min-height: 190px;
  gap: 0;
  box-shadow: none;
  transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
body.v3 .section--platform-dark .platform-slide:hover { background: #fff; border-color: var(--color-accent, #ffa62b); transform: translateY(-4px); }
body.v3 .section--platform-dark .platform-slide__kpi {
  font-family: var(--font-display);
  font-weight: 400;
  color: #092f4e;
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-transform: none;
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(9, 47, 78, 0.14);
}
body.v3 .section--platform-dark .platform-slide__label {
  font-size: 14.5px;
  line-height: 1.55;
  color: rgba(9, 47, 78, 0.76);
  margin: 14px 0 0;
  max-width: 60ch;
}
body.v3 .section--platform-dark .platform-slide::after { content: none; }


/* Flèches, pagination et CTA sur fond bleu */
body.v3 .section--platform-dark .platform-carousel__arrow {
  border-color: rgba(255, 255, 255, 0.4);
  color: #ffffff;
}
body.v3 .section--platform-dark .platform-carousel__arrow:hover {
  background: var(--color-accent, #ffa62b);
  border-color: var(--color-accent, #ffa62b);
  color: #092f4e;
}
body.v3 .section--platform-dark .platform-carousel__dot { background: rgba(255, 255, 255, 0.35); }
body.v3 .section--platform-dark .platform-carousel__dot.is-active { background: var(--color-accent, #ffa62b); }
body.v3 .section--platform-dark .platform-cta { text-align: center; }
body.v3 .section--platform-dark .platform-cta .btn {
  background: transparent !important;
  border: 1px solid var(--color-accent, #ffa62b) !important;
  color: var(--color-accent, #ffa62b) !important;
}
body.v3 .section--platform-dark .platform-cta .btn:hover {
  background: transparent !important;
  border-color: #ffffff !important;
  color: #ffffff !important;
}
@media (max-width: 720px) {
  body.v3 .section--platform-dark { padding-top: 72px; padding-bottom: 72px; }
  body.v3 .section--platform-dark .platform-slide { padding: 24px 22px 34px; }
}

/* Puce Plateforme dans le menu déroulé (mobile) */
body.v3 .v3-menu__primary a[data-nav="plateforme"] { white-space: nowrap; }

/* Carrousel plateforme : 3 tuiles visibles (comme la grille d'actualités) */
body.v3 .section--platform-dark .platform-carousel__track { gap: 16px; }
body.v3 .section--platform-dark .platform-slide { flex: 0 0 calc((100% - 32px) / 3); }
@media (max-width: 980px) {
  body.v3 .section--platform-dark .platform-slide { flex: 0 0 calc((100% - 16px) / 2); }
}
@media (max-width: 620px) {
  body.v3 .section--platform-dark .platform-slide { flex: 0 0 100%; }
}
body.v3 .section--platform-dark .platform-slide { min-width: 0; }
body.v3 .section--platform-dark .platform-carousel { max-width: 1320px; }


/* ==========================================================================
   HEADER V4 — barre pleine largeur, MENU à gauche, liens texte à droite
   Transparent/clair en haut de page, blanc opaque dès le scroll.
   ========================================================================== */
body.v3 .site-header,
body.v3 .site-header.is-scrolled {
  top: 0;
  left: 0;
  right: 0;
  transform: none;
  width: 100%;
  height: auto;
  min-height: 0;
  padding: 43px clamp(20px, 4vw, 48px) 24px;
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 0.35s ease, box-shadow 0.35s ease, border-color 0.35s ease, padding 0.35s ease;
}
body.v3 .site-header > .container {
  max-width: 1320px;
  width: 100%;
  margin: 0 auto;
  padding: 0;
  display: flex;
  align-items: center;
  gap: clamp(16px, 2vw, 32px);
}

/* Etat scrollé : fond blanc opaque, textes navy */
body.v3.is-scrolled .site-header {
  background: #ffffff;
  height: auto;
  min-height: 0;
   padding-top: 43px;
   padding-bottom: 24px;

  border-bottom-color: rgba(9, 47, 78, 0.1);
  box-shadow: 0 6px 24px rgba(9, 47, 78, 0.1);
}

/* Le logo principal reste toujours visible (plus de swap favicon) */
body.v3 .brand__logo--main,
body.v3.is-scrolled .brand__logo--main { opacity: 1 !important; }
body.v3 .brand__favicon,
body.v3.is-scrolled .brand__favicon { opacity: 0 !important; pointer-events: none; }
body.v3 .brand,
body.v3.is-scrolled .brand {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  line-height: 0;
  align-self: center;
}
body.v3 .brand__logo {
  height: 46px;
  display: block;
  margin: 0;
  transition: height 0.3s ease, filter 0.3s ease;
}
body.v3.is-scrolled .brand__logo { height: 40px; }

/* --- Bloc MENU (à droite, en dernier) --- */
body.v3 .header-menu {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  height: 52px;
  margin: 0 0 0 clamp(4px, 1vw, 12px);
  padding: 0;
  line-height: 1;
  align-self: center;
  transition: height 0.3s ease;
}

body.v3.is-scrolled .header-menu { height: 44px; }

body.v3 .burger--square,
body.v3:not(.v3-light) .burger--square,
body.v3.v3-light .burger--square,
body.v3 .round-btn,
body.v3:not(.v3-light) .round-btn,
body.v3.v3-light .round-btn--solid {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: var(--hd-fg);
  width: auto;
  min-width: 0;
  height: auto;
  padding: 4px 2px;
  overflow: visible;
}
body.v3 .burger--square,
body.v3:not(.v3-light) .burger--square,
body.v3.v3-light .burger--square {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 52px;
  height: 52px;
  padding: 0 !important;
  border: 1px solid var(--hd-fg) !important;
  border-radius: 10px !important;
  background: transparent !important;
  transition: width 0.3s ease, height 0.3s ease, border-color 0.3s ease, background 0.25s ease;
}
body.v3.is-scrolled .burger--square,
body.v3.v3-light.is-scrolled .burger--square { width: 44px !important; height: 44px !important; }
body.v3 .burger--square:hover { background: rgba(255, 166, 43, 0.12) !important; }
body.v3 .burger--square span { width: 24px; height: 1.5px; background: currentColor; }
body.v3 .burger--square span:nth-child(1),
body.v3 .burger--square span:nth-child(2),
body.v3 .burger--square span:nth-child(3) { display: block; width: 24px; }
body.v3 .burger--square[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.75px) rotate(45deg) !important; }
body.v3 .burger--square[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.75px) rotate(-45deg) !important; }
body.v3 .header-menu__label {
  font-family: var(--font-display);
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--hd-fg);
  transition: color 0.3s ease;
}


/* --- Actions à droite --- */
body.v3 .nav-actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: clamp(24px, 3vw, 48px);
}

/* Liens texte simples (plus de pilules) */
body.v3 .pill-btn,
body.v3 .pill-btn--platform,
body.v3.v3-menu-open .pill-btn--platform,
body.v3:not(.v3-light) .pill-btn,
body.v3.nav-over-dark .pill-btn {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  padding: 4px 0 !important;
  color: var(--hd-link);
  font-family: var(--font-display);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.3s ease, opacity 0.25s ease;
}
body.v3 .pill-btn:hover,
body.v3 .pill-btn:focus-visible,
body.v3.nav-over-dark .pill-btn:hover {
  background: transparent !important;
  box-shadow: none !important;
  color: var(--hd-link-hover) !important;
  opacity: 1;
}

/* Séparateur vertical */
body.v3 .nav-sep {
  display: inline-block;
  width: 1px;
  height: 28px;
  background: currentColor;
  opacity: 0.45;
  color: var(--hd-fg);
}

/* Loupe + sélecteur de langue */
body.v3 .round-btn svg { width: 22px; height: 22px; }
body.v3 .round-btn--ghost {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  letter-spacing: 0.12em;
}
body.v3 .round-btn:hover,
body.v3 .round-btn:focus-visible {
  background: transparent !important;
  box-shadow: none !important;
  opacity: 0.7;
}
body.v3 .lang-caret { width: 9px; height: 9px; flex: none; }

/* --- Palette adaptative --- */
body.v3 { --hd-fg: #ffffff; --hd-link: #ffffff; --hd-link-hover: #ffa62b; }
body.v3.v3-light:not(.nav-over-dark):not(.is-scrolled) { --hd-fg: #092f4e; --hd-link: #092f4e; --hd-link-hover: #c9843a; }
body.v3.is-scrolled { --hd-fg: #092f4e; --hd-link: #092f4e; --hd-link-hover: #c9843a; }
/* Header blanc (scroll) : forcer le thème clair sur les puces, EN et la recherche,
   même si la page est en thème sombre (sinon texte or/fond navy glass illisible). */
body.v3.is-scrolled .pill-btn,
body.v3.is-scrolled .round-btn:not(.round-btn--solid) {
  --nav-action-bg: rgba(255, 255, 255, 0.62);
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #8f4703;
  backdrop-filter: blur(18px) saturate(160%);
  box-shadow: 0 7px 20px rgba(9, 47, 78, 0.16), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
}
body.v3.is-scrolled .round-btn--solid,
body.v3.is-scrolled .burger--square {
  --nav-action-bg: #092f4e;
  --nav-action-border: var(--color-accent);
  --nav-action-fg: #ffb457;
}
body.v3.is-scrolled .pill-btn:hover,
body.v3.is-scrolled .pill-btn:focus-visible,
body.v3.is-scrolled .round-btn:not(.round-btn--solid):hover,
body.v3.is-scrolled .round-btn:not(.round-btn--solid):focus-visible {
  --nav-action-bg: var(--color-accent);
  --nav-action-fg: #092f4e;
}
body.v3:not(.is-scrolled):not(.v3-light) .brand__logo,
body.v3:not(.is-scrolled).nav-over-dark .brand__logo { filter: brightness(0) invert(1); }
body.v3.is-scrolled .brand__logo,
body.v3.is-scrolled .brand__logo--main {
  filter: brightness(0) saturate(100%) invert(13%) sepia(38%) saturate(1500%) hue-rotate(172deg) brightness(92%) contrast(95%) !important;
}

@media (max-width: 900px) {
  body.v3 .header-menu__label { display: none; }
  body.v3 .pill-btn,
  body.v3 .pill-btn--platform,
  body.v3.v3-menu-open .pill-btn--platform { font-size: 10px !important; letter-spacing: 0.06em; }
}
@media (max-width: 640px) {
  body.v3 .site-header > .container { flex-wrap: nowrap; }
  body.v3 .nav-actions { gap: 10px; }
  body.v3 .pill-btn,
  body.v3 .pill-btn--platform { font-size: 9px !important; }
  body.v3 .nav-sep { display: none; }
}

/* Petite flèche du sélecteur de langue (résiste au textContent du script i18n) */
body.v3 .round-btn--ghost::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  display: inline-block;
}

/* ============================================================
   Formulaire de contact du FOOTER (bas de page, global) — compact
   Ne concerne pas la page /contact.html (formulaire pleine page).
   ============================================================ */
body.v3 .footer-contact__form {
  gap: 14px 18px;
}
body.v3 .footer-contact__form .field { gap: 5px; }
body.v3 .footer-contact__form label {
  font-size: 12.5px;
  margin: 0;
}
body.v3 .footer-contact__form input {
  padding: 7px 11px;
  min-height: 38px;
  line-height: 1.25;
}
body.v3 .footer-contact__form textarea {
  padding: 8px 11px;
  min-height: 74px;
  height: 74px;
  line-height: 1.4;
  resize: vertical;
}
body.v3 .footer-contact__form .contact-submit {
  margin-top: 2px !important;
}
body.v3 .footer-contact__form .btn {
  padding: 10px 26px;
  min-height: 42px;
}
body.v3 .footer-contact__title { margin-bottom: 20px; }
body.v3 .footer-contact__title::after { margin-top: 14px; }

/* ============================================================
   Footer compact : hauteur globale réduite
   ============================================================ */
body.v3 .site-footer { padding: 44px 0 20px; }
body.v3 .footer__mono img { width: 120px; }
body.v3 .footer-united__left .footer__grid { gap: 18px; }
body.v3 .site-footer h3 { margin: 0 0 10px; }
body.v3 .site-footer p,
body.v3 .site-footer a { margin: 2px 0; line-height: 1.55; }
body.v3 .footer__social { margin-top: 8px; }
body.v3 .footer__social a { width: 32px; height: 32px; }
body.v3 .footer__social svg { width: 22px; height: 22px; }
body.v3 .site-footer .footer__bottom { margin-top: 28px; padding-top: 12px; }
body.v3 .footer-contact__title { margin: 0 0 18px; }
body.v3 .footer-contact__title::after { margin-top: 12px; }

/* =========================================================
   HARMONISATION DES TRANSITIONS DE SECTION (rythme unique)
   Règle unique appliquée à toutes les sections, quel que soit
   le fond (navy ou clair) :
     - padding-top    : 96px desktop / 64px mobile
     - padding-bottom : 96px desktop / 64px mobile
   ========================================================= */
body.v3 {
  --sec-y: 64px;
}
@media (max-width: 860px) {
  body.v3 { --sec-y: 44px; }
}

body.v3 .section--platform,
body.v3 .section--platform-dark,
body.v3 .section--bureaux,
body.v3 .section--dark,
body.v3 .section--awards,
body.v3 .section-group--texture .section--dark,
body.v3 .section-group--texture .section--dark + .section--awards {
  padding-top: var(--sec-y) !important;
  padding-bottom: var(--sec-y) !important;
}

/* Fin de la section Vision (dans le hero) : même respiration avant la
   section suivante que toutes les autres transitions. */
body.v3[data-page="home-v3"] .vision { padding-bottom: var(--sec-y, 64px) !important; }
body.v3[data-page="home-v3"] .hero { padding-bottom: 0 !important; }

/* Bloc contact / nous rejoindre du footer : haut standard, la moitié
   interne reste soudée (contact -> join = même bloc). */
body.v3 .contact-section { padding-top: var(--sec-y) !important; }
body.v3 .join-section { padding-bottom: var(--sec-y) !important; }

/* Pages intérieures : même règle pour les sections de contenu qui se
   suivent (hors sections collées à une bannière hero). */
body.v3:not([data-page="home-v3"]) .section + .section {
  padding-top: var(--sec-y);
  padding-bottom: var(--sec-y);
}

/* =========================================================
   CTA sous une grille de cartes : centrage vertical dans
   l'espace restant (distance au-dessus = padding-bottom de
   la section, soit --sec-y).
   ========================================================= */
body.v3 .news-cta {
  margin-top: var(--sec-y) !important;
  margin-bottom: 0 !important;
}
body.v3 .section--platform-dark .platform-cta,
body.v3 .section--platform .platform-cta {
  margin-top: calc(var(--sec-y) * 0.5) !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   Harmonisation du fond clair : les surfaces "legacy" opaques
   (#f0eee8) laissent passer le fond texturé éclairci du body
   ============================================================ */
body.v3.v3-light main,
body.v3.v3-light[data-page="contact"] main,
body.v3.v3-light .section--light {
  background-color: transparent;
  background-image: none;
}
body.v3.v3-light[data-page="contact"] main::before,
body.v3.v3-light .section--light::before {
  display: none;
}

/* ============================================================
   Contact - bandeau "Rejoignez le cabinet"
   ============================================================ */
body.v3 .join-section .section__inner { width: 100%; }
body.v3 .join-banner {
  display: flex;
  align-items: stretch;
  background: #ffa62b;
  color: #092f4e;
  border-radius: 2px;
  overflow: hidden;
}
body.v3 .join-banner__main {
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 48px);
  flex: 1 1 auto;
  padding: clamp(26px, 3vw, 40px) clamp(24px, 3.2vw, 48px);
}
body.v3 .join-banner__title {
  margin: 0;
  font-family: var(--font-display, "Frank Ruhl Libre", serif);
  font-weight: 500;
  font-size: clamp(26px, 3vw, 40px);
  line-height: 1.1;
  color: #092f4e;
  text-transform: none;
  letter-spacing: 0;
}
body.v3 .join-banner__slash {
  flex: 0 0 auto;
  width: 3px;
  height: clamp(52px, 5vw, 72px);
  background: #092f4e;
  transform: skewX(-16deg);
}
body.v3 .join-banner__lead {
  margin: 0 0 14px;
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.45;
  color: #092f4e;
}
body.v3 .join-banner__links {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 15px;
}
body.v3 .join-banner__links span { font-weight: 600; }
body.v3 .join-banner__links a {
  color: #092f4e;
  text-decoration: underline;
  text-underline-offset: 3px;
}
body.v3 .join-banner__links a:hover { color: #fff; }
body.v3 .join-banner__arrow {
  flex: 0 0 clamp(90px, 11vw, 150px);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(9, 47, 78, 0.08);
  color: #092f4e;
  transition: background 0.25s ease, color 0.25s ease;
}
body.v3 .join-banner__arrow:hover { background: #092f4e; color: #ffa62b; }
@media (max-width: 760px) {
  body.v3 .join-banner { flex-direction: column; }
  body.v3 .join-banner__main { flex-direction: column; align-items: flex-start; gap: 16px; }
  body.v3 .join-banner__slash { width: clamp(40px, 18vw, 70px); height: 3px; transform: skewY(-16deg); }
  body.v3 .join-banner__arrow { flex: 0 0 auto; padding: 16px 0; }
}

/* ==========================================================================
   Libellés des actions du header en serif italique (Source Serif 4)
   Forme, couleurs et effets des boutons inchangés — typographie uniquement.
   ========================================================================== */
body.v3 { --font-nav-serif: "Source Serif 4", "Serif4 Fallback", Georgia, "Times New Roman", serif; }
body.v3 .pill-btn,
body.v3 .pill-btn--platform,
body.v3.v3-menu-open .pill-btn--platform,
body.v3:not(.v3-light) .pill-btn,
body.v3.nav-over-dark .pill-btn,
body.v3 .round-btn--ghost {
  font-family: var(--font-nav-serif) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.01em !important;
  font-size: 15.5px !important;
}
body.v3 .pill-btn:hover,
body.v3 .pill-btn:focus-visible,
body.v3 .round-btn--ghost:hover,
body.v3 .round-btn--ghost:focus-visible {
  font-weight: 600 !important;
}
@media (max-width: 900px) {
  body.v3 .pill-btn,
  body.v3 .pill-btn--platform,
  body.v3.v3-menu-open .pill-btn--platform,
  body.v3 .round-btn--ghost { font-size: 12.5px !important; letter-spacing: 0.01em !important; }
}
@media (max-width: 640px) {
  body.v3 .pill-btn,
  body.v3 .pill-btn--platform,
  body.v3 .round-btn--ghost { font-size: 11.5px !important; }
}

/* ============================================================
   SLOGAN HERO MIXTE — serif italique + sans gras (style Fidal)
   ============================================================ */
body.v3 .hero__title--mixed {
  text-transform: none;
  letter-spacing: -0.01em;
  font-weight: 400;
  line-height: 1.02;
}
body.v3 .hero__title--mixed .hero__title-line {
  display: block;
  letter-spacing: -0.01em;
  font-style: normal;
  font-weight: 400;
}
body.v3 .hero__title--mixed .hero__serif {
  font-family: var(--font-nav-serif);
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.005em;
  font-size: 1.06em;
}
body.v3 .hero__title--mixed .hero__sans {
  font-family: "Archivo", var(--font-body), sans-serif;
  font-style: normal;
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.02em;
}
/* Ligne 1 : or — Ligne 2 : bleu nuit */
body.v3 .hero__title--mixed .hero__title-line.line-accent,
body.v3 .hero__title--mixed .hero__title-line.line-accent .hero__serif,
body.v3 .hero__title--mixed .hero__title-line.line-accent .hero__sans,
body.v3.v3-light .hero__title--mixed .hero__title-line.line-accent .hero__sans { color: #ffa62b; }
body.v3 .hero__title--mixed .hero__title-line:not(.line-accent),
body.v3 .hero__title--mixed .hero__title-line:not(.line-accent) .hero__serif,
body.v3 .hero__title--mixed .hero__title-line:not(.line-accent) .hero__sans { color: #092f4e; }

/* ============================================================
   TYPOGRAPHIE DES SECTIONS DE CONTENU — cohérence avec la hero
   Titres : serif (Source Serif 4) romain, bleu nuit, casse naturelle.
   Paragraphes : sans-serif (lisibilité). Labels techniques inchangés.
   ============================================================ */
body.v3 .section-title,
body.v3 .culture-block .section-title,
body.v3 .vision__title {
  font-family: var(--font-nav-serif) !important;
  font-style: normal !important;
  font-weight: 600;
  text-transform: none !important;
  letter-spacing: -0.01em;
  color: #092f4e;
}
body.v3 .section--dark .section-title,
body.v3 .section--platform-dark .section-title,
body.v3 .section--bureaux-dark .section-title {
  color: #ffffff;
}
body.v3 .section p,
body.v3 .culture-block p,
body.v3 .culture-block li,
body.v3 .vision-panel p {
  font-family: var(--font-body), "Roboto", sans-serif;
  font-style: normal;
}
/* Fil visuel avec la hero : mots-clés en serif italique or */
body.v3 .accent-serif {
  font-family: var(--font-nav-serif);
  font-style: italic;
  font-weight: 400;
  color: #ffa62b;
  letter-spacing: -0.005em;
}

/* ============================================================
   HARMONISATION TYPOGRAPHIQUE GLOBALE — tout le site
   Titres : Source Serif 4 romain, casse naturelle, bleu nuit.
   Textes : Archivo / Roboto (sans-serif).
   Labels techniques, boutons, filtres et index : sans-serif
   majuscule espacé (inchangés).
   ============================================================ */
body.v3 {
  --font-display: "Source Serif 4", "Serif4 Fallback", Georgia, "Times New Roman", serif;
  --font-serif: "Source Serif 4", "Serif4 Fallback", Georgia, "Times New Roman", serif;
}

body.v3 h1,
body.v3 h2,
body.v3 h3,
body.v3 h4,
body.v3 h5,
body.v3 .hero-banner__title,
body.v3 .footer__title,
body.v3 .footer-contact__title,
body.v3 .join-banner__title,
body.v3 .awards__highlight-title,
body.v3 .nx-card__title,
body.v3 .nx-post__title,
body.v3 .site-search__result-title,
body.v3 .team-card__name,
body.v3 .pledge-popup__name,
body.v3 .expertise-card__title,
body.v3 .platform-card__title,
body.v3 .vision-tab__label,
body.v3 .bureaux-list__item strong,
body.v3 .join-block strong {
  font-family: var(--font-serif) !important;
  font-style: normal;
  text-transform: none !important;
  letter-spacing: -0.01em;
}

/* Graisses : titres majeurs semi-gras, titres secondaires normaux */
body.v3 h1,
body.v3 h2,
body.v3 .hero-banner__title,
body.v3 .join-banner__title { font-weight: 600; }
body.v3 h3,
body.v3 h4,
body.v3 h5,
body.v3 .nx-card__title,
body.v3 .nx-post__title,
body.v3 .team-card__name,
body.v3 .footer__title,
body.v3 .footer-contact__title,
body.v3 .site-search__result-title,
body.v3 .expertise-card__title,
body.v3 .platform-card__title,
body.v3 .vision-tab__label,
body.v3 .bureaux-list__item strong { font-weight: 500; }

/* Corps de texte : sans-serif partout */
body.v3,
body.v3 p,
body.v3 li,
body.v3 label,
body.v3 input,
body.v3 textarea,
body.v3 select,
body.v3 .hero-banner__subtitle,
body.v3 .platform-lead,
body.v3 .contact-rgpd,
body.v3 .nx-card__excerpt,
body.v3 .nx-post__excerpt {
  font-family: var(--font-friendly);
  font-style: normal;
}

/* Labels techniques, index et actions : sans-serif majuscule espacé */
body.v3 .btn,
body.v3 .filter-btn,
body.v3 .nx-tab,
body.v3 .team-filter__select,
body.v3 .hero__pillar-index,
body.v3 .vision-tab__index,
body.v3 .eyebrow,
body.v3 .hero__scroll {
  font-family: var(--font-friendly) !important;
  font-style: normal !important;
}

/* Le slogan mixte de la hero garde son traitement dédié */
body.v3 .hero__title--mixed .hero__sans {
  font-family: var(--font-friendly);
}

/* ==========================================================================
   Menu plein écran : items principaux en serif italique, casse naturelle
   (même famille que les actions du header). Pastilles, flèche et hover inchangés.
   ========================================================================== */
body.v3 .v3-menu__primary a {
  font-family: var(--font-nav-serif) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.01em;
  font-size: clamp(20px, 1.9vw, 26px);
}
body.v3 .v3-menu__primary a::first-letter { text-transform: capitalize; }


/* ==========================================================================
   Section plateforme — défilement vertical "Vos enjeux" (remplace le carrousel)
   ========================================================================== */
body.v3 .platform-stack {
  position: relative;
  margin: 8px auto 0;
  padding-left: 0;
  min-height: 530px;
  width: 100%;
  max-width: 1180px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(28px, 3.6vw, 64px);
  isolation: isolate;
}

/* Cercle blanc de navigation, dans le flux à gauche du texte */
body.v3 .platform-stack__control {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  flex: 0 0 auto;
  width: clamp(230px, 19vw, 300px);
  height: clamp(230px, 19vw, 300px);
  border-radius: 50%;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding-left: 0;
  box-shadow: 0 30px 80px -34px rgba(0, 0, 0, 0.45);
  z-index: 2;
}

/* Anneau extérieur bleu-gris transparent autour du cercle */
body.v3 .platform-stack__control::after {
  content: "";
  position: absolute;
  inset: clamp(-26px, -2vw, -14px);
  border-radius: 50%;
  border: 1px solid rgba(126, 141, 133, 0.45);
  pointer-events: none;
}
@media (max-width: 900px) {
  body.v3 .platform-stack__control::after { display: none; }
}

body.v3 .platform-stack__label {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif);
  font-size: 14px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #092f4e;
  white-space: nowrap;
}
body.v3 .platform-stack__arrow {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  width: 44px;
  height: 28px;
  color: #092f4e;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
}
body.v3 .platform-stack__arrow svg { width: 26px; height: 26px; }
body.v3 .platform-stack__arrow:hover:not(:disabled) { color: var(--color-accent, #ffa62b); transform: scale(1.12); }
body.v3 .platform-stack__arrow:disabled { opacity: 0.28; cursor: default; }

/* Point repère entre le cercle et le texte */
body.v3 .platform-stack__marker {
  position: relative;
  top: auto;
  left: auto;
  transform: none;
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--color-accent, #ffa62b);
  z-index: 2;
}

/* Zone de défilement interne */
body.v3 .platform-stack__viewport {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  height: clamp(440px, 38vw, 520px);
  overflow: hidden;
}
body.v3 .platform-stack__list { position: absolute; inset: 0; }


body.v3 .section--platform-dark .platform-item {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  row-gap: 10px;
  transform-origin: left center;

  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  min-height: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-50%) translateX(0) scale(0.6);
  transition: opacity 0.55s cubic-bezier(0.22, 0.61, 0.36, 1),
    transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: transform, opacity;
}
body.v3 .section--platform-dark .platform-item:hover { background: none; border-color: transparent; }

/* Item actif décalé vers la droite pour éviter tout chevauchement avec les voisins */
body.v3 .section--platform-dark .platform-item.is-active {
  opacity: 1;
  transform: translateY(-50%) translateX(clamp(28px, 3.2vw, 64px)) scale(1);
  pointer-events: auto;
}
body.v3 .section--platform-dark .platform-item.is-active:hover { transform: translateY(-50%) translateX(clamp(28px, 3.2vw, 64px)) scale(1); }
body.v3 .section--platform-dark .platform-item.is-prev {
  opacity: 0.38;
  transform: translateY(calc(-50% - clamp(158px, 13.5vw, 196px))) translateX(0) scale(0.66);
  pointer-events: auto;
  cursor: pointer;
}
body.v3 .section--platform-dark .platform-item.is-prev:hover {
  opacity: 0.6;
  transform: translateY(calc(-50% - clamp(158px, 13.5vw, 196px))) translateX(0) scale(0.66);
}
body.v3 .section--platform-dark .platform-item.is-next {
  opacity: 0.38;
  transform: translateY(calc(-50% + clamp(158px, 13.5vw, 196px))) translateX(0) scale(0.66);
  pointer-events: auto;
  cursor: pointer;
}
body.v3 .section--platform-dark .platform-item.is-next:hover {
  opacity: 0.6;
  transform: translateY(calc(-50% + clamp(158px, 13.5vw, 196px))) translateX(0) scale(0.66);
}

/* Typographie des éléments */
body.v3 .section--platform-dark .platform-item__kpi {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif);
  font-weight: 700;
  font-size: clamp(40px, 4.8vw, 66px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: #ffffff;
  text-transform: none;
  margin: 0;
  padding: 0;
  border: 0;
}
body.v3 .section--platform-dark .platform-item__label {
  font-family: var(--font-serif, "Source Serif 4", Georgia, serif);
  font-style: italic;
  font-size: clamp(18px, 1.7vw, 25px);
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
  max-width: 40ch;
}

body.v3 .section--platform-dark .platform-item.is-prev .platform-item__kpi,
body.v3 .section--platform-dark .platform-item.is-next .platform-item__kpi { color: #93a7bb; }
body.v3 .section--platform-dark .platform-item.is-prev .platform-item__label,
body.v3 .section--platform-dark .platform-item.is-next .platform-item__label { color: rgba(147, 167, 187, 0.75); }

@media (max-width: 900px) {
  body.v3 .platform-stack { padding-left: 0; flex-direction: column; gap: 24px; min-height: 0; }
  body.v3 .platform-stack__control {
    position: relative;
    top: auto;
    left: auto;
    transform: none;
    width: auto;
    height: auto;
    border-radius: 999px;
    flex-direction: row;
    gap: 18px;
    padding: 12px 24px;
    box-shadow: none;
  }
  body.v3 .platform-stack__marker { display: none; }
  body.v3 .platform-stack__viewport { height: 340px; width: 100%; align-self: stretch; flex: 0 0 auto; }
  body.v3 .section--platform-dark .platform-item { max-width: none; grid-template-columns: minmax(0, 1fr); align-items: start; row-gap: 10px; text-align: center; justify-items: center; transform-origin: center center; }
  body.v3 .section--platform-dark .platform-item__kpi { font-size: clamp(30px, 8vw, 42px); }
  body.v3 .section--platform-dark .platform-item__label { font-size: clamp(16px, 4.2vw, 19px); max-width: 34ch; }
  body.v3 .section--platform-dark .platform-item.is-active,
  body.v3 .section--platform-dark .platform-item.is-active:hover { transform: translateY(-50%) translateX(0) scale(1); }
  body.v3 .section--platform-dark .platform-item.is-prev,
  body.v3 .section--platform-dark .platform-item.is-prev:hover { transform: translateY(calc(-50% - 122px)) translateX(0) scale(0.7); }
  body.v3 .section--platform-dark .platform-item.is-next,
  body.v3 .section--platform-dark .platform-item.is-next:hover { transform: translateY(calc(-50% + 122px)) translateX(0) scale(0.7); }
}

@media (prefers-reduced-motion: reduce) {
  body.v3 .section--platform-dark .platform-item { transition: opacity 0.2s ease; }
}

/* ============================================================
   Carrousel de distinctions — cartes complètes (logo + détail)
   ============================================================ */
body.v3 .awards-carousel {
  position: relative;
  margin-top: -18px;
}
body.v3 .awards-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(9, 47, 78, 0.25);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.7);
  color: var(--color-primary);
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
body.v3 .awards-nav:hover {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: #fff;
}
body.v3 .awards-nav--prev { left: 0; }
body.v3 .awards-nav--next { right: 0; }
body.v3 .awards-marquee {
  --award-w: 620px;
  --award-gap: 40px;
  margin: 0;
  width: 100%;
  overflow: hidden;
  position: relative;
}
body.v3 .awards-marquee__track {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: var(--award-gap);
  column-gap: var(--award-gap);
  padding-left: calc(50% - var(--award-w) / 2);
  will-change: transform;
  transition: transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
body.v3 .award-card {
  flex: 0 0 var(--award-w);
  width: var(--award-w);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  padding: 0 24px 4px;
  opacity: 0;
  visibility: hidden;
  transform: none;
  transition: opacity 0.25s ease;
}
body.v3 .award-card.is-active {
  opacity: 1;
  visibility: visible;
  transform: none;
}
body.v3 .award-card__logo {
  height: 215px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 6px;
}
body.v3 .award-card__logo img {
  max-height: 215px;
  max-width: 520px;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.9;
  mix-blend-mode: multiply;
  background: transparent;
}
body.v3 .award-card__label {
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--color-accent);
}
body.v3 .award-card__title {
  margin: 0 0 12px;
  font-family: var(--font-display);
  text-transform: uppercase;
  font-size: 22px;
  line-height: 1.25;
  font-weight: 500;
  color: var(--color-primary);
}
body.v3 .award-card__desc {
  margin: 0;
  max-width: 560px;
  margin-left: 0;
  margin-right: auto;
  font-size: 1rem;
  line-height: 1.7;
}
@media (max-width: 900px) {
  body.v3 .awards-marquee { --award-w: 420px; --award-gap: 24px; }
  body.v3 .award-card__logo { height: 120px; }
  body.v3 .award-card__logo img { max-height: 120px; max-width: 280px; }
}
@media (max-width: 620px) {
  body.v3 .awards-marquee { --award-w: 260px; --award-gap: 12px; }
  body.v3 .awards-nav { width: 38px; height: 38px; font-size: 22px; }
  body.v3 .award-card { padding: 8px 8px 16px; }
}

/* ============================================================
   Carte des implantations — illustration navy fixe
   ============================================================ */
body.v3 .bureaux-map--static {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 0;
  height: auto;
  border: 0;
  background: transparent;
}
body.v3 .pmap {
  position: relative;
  width: 100%;
  max-width: 560px;
  height: auto;
  min-height: 0;
  overflow: visible;
}
body.v3 .pmap__svg {
  position: static;
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}
body.v3 .pmap-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-direction: row-reverse;
  white-space: nowrap;
  pointer-events: none;
}
body.v3 .pmap-pin--right { flex-direction: row; }
body.v3 .pmap-pin--down b { transform: translateY(14px); }
body.v3 .pmap-pin i {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: var(--color-accent);
  box-shadow: 0 0 0 7px rgba(255, 166, 43, 0.16);
}
body.v3 .pmap-pin--partner i {
  background: transparent;
  border: 1.5px solid var(--color-accent);
  box-shadow: 0 0 0 5px rgba(255, 166, 43, 0.12);
}

body.v3 .pmap-pin b {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #f4f1ea;
}
body.v3 .pmap-pin--partner b { color: rgba(244, 241, 234, 0.7); }
body.v3 .pmap-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  padding: 0 18px 16px;
  margin: 0;
}
body.v3 .pmap-legend__item {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(244, 241, 234, 0.66);
}
body.v3 .pmap-legend__item::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--color-accent);
}
body.v3 .pmap-legend__item--partner::before { background: transparent; border: 1px solid var(--color-accent); }
body.v3 .pmap-legend__item { color: rgba(9, 47, 78, 0.75); }
@media (max-width: 900px) {
  body.v3 .bureaux-map--static { min-height: 0; }
  body.v3 .pmap-pin b { font-size: 11.5px; letter-spacing: 0.1em; }
}
@media (max-width: 620px) {
  body.v3 .pmap-pin b { display: none; }
}

/* ============================================================
   Section "Nos implantations" : trame diagonale en haut à droite
   ============================================================ */
body.v3[data-page="home-v3"] .section--bureaux { position: relative; overflow: hidden; }
body.v3[data-page="home-v3"] .section--bureaux > * { position: relative; z-index: 1; }
body.v3[data-page="home-v3"] .section--bureaux::before {
  content: "";
  position: absolute;
  top: 0;
  right: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(380px, 52vw, 780px);
  height: 70%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.16) 0 1px,
    rgba(9, 47, 78, 0) 1px 14px
  );
  mask-image:
    linear-gradient(to left, #000 0%, #000 52%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 48%, transparent 100%);
  mask-composite: intersect;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
@media (max-width: 900px) {
  body.v3[data-page="home-v3"] .section--bureaux::before { display: none; }
}

/* ============================================================
   Actualités (home) : biseaux Pledge pivotés 180° -> bas gauche
   ============================================================ */
body.v3[data-page="home-v3"] .section-group--texture .section--dark .section__shapes {
  transform: rotate(180deg);
}

/* ============================================================
   "Nos implantations" : harmonisation typographique du bloc texte
   (navy Pledge, villes en Source Serif, adresses en italique)
   ============================================================ */
body.v3[data-page="home-v3"] .section--bureaux .bureaux-text {
  color: #092f4e;
  font-family: var(--font-friendly) !important;
  font-size: 1.05rem;
  line-height: 1.7;
}
body.v3[data-page="home-v3"] .section--bureaux .bureaux-text strong {
  color: #092f4e;
  font-family: var(--font-serif) !important;
  font-weight: 500;
}
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item {
  color: #092f4e;
  font-family: var(--font-serif) !important;
  font-style: italic;
  font-size: 15px;
  border-top-color: rgba(9, 47, 78, 0.14);
}
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item:last-child {
  border-bottom-color: rgba(9, 47, 78, 0.14);
}
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item:hover { color: var(--color-accent); }
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item strong {
  display: block;
  color: #092f4e;
  font-family: var(--font-serif) !important;
  font-style: normal;
  font-weight: 500;
  font-size: 19px;
  letter-spacing: -0.01em;
  margin-bottom: 2px;
}

/* Adresses : interligne quasi supprimé sous le nom de ville */
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item { line-height: 1.05; }
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item strong { margin-bottom: 0; line-height: 1.05; }
body.v3[data-page="home-v3"] .section--bureaux .bureaux-list__item span { line-height: 1.05; }

/* ============================================================
   Footer : harmonisation typographique des blocs contact/coordonnées
   avec le titre "Prenez contact avec nous"
   ============================================================ */
body.v3 .site-footer .footer__grid h3 {
  font-family: var(--font-display) !important;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.015em;
  line-height: 1.06;
  font-size: clamp(20px, 1.5vw, 24px);
  margin: 0 0 18px;
}
body.v3 .site-footer .footer__grid p,
body.v3 .site-footer .footer__grid a {
  font-family: var(--font-friendly) !important;
  font-size: 15px;
  line-height: 1.5;
  letter-spacing: 0.005em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
body.v3 .site-footer .footer__bottom,
body.v3 .site-footer .footer__bottom a {
  font-family: var(--font-friendly) !important;
  font-size: 13.5px;
  line-height: 1.5;
  letter-spacing: 0.005em;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ============================================================
   Section "Distinctions" : trame diagonale en bas à gauche
   (alternance avec Vision / Implantations)
   ============================================================ */
body.v3[data-page="home-v3"] .section--awards { position: relative; overflow: hidden; }
body.v3[data-page="home-v3"] .section--awards > * { position: relative; z-index: 1; }
body.v3[data-page="home-v3"] .section--awards::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(380px, 52vw, 780px);
  height: 72%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.17) 0 1px,
    rgba(9, 47, 78, 0) 1px 14px
  );
  mask-image:
    linear-gradient(to right, #000 0%, #000 52%, transparent 100%),
    linear-gradient(to top, #000 0%, #000 46%, transparent 100%);
  mask-composite: intersect;
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
  -webkit-mask-image:
    linear-gradient(to right, #000 0%, #000 52%, transparent 100%),
    linear-gradient(to top, #000 0%, #000 46%, transparent 100%);
  -webkit-mask-composite: source-in;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
}
@media (max-width: 900px) {
  body.v3[data-page="home-v3"] .section--awards::before { display: none; }
}

/* ============================================================
   Footer : rythme identique aux autres sections
   ============================================================ */
body.v3 .site-footer { padding: var(--v3-section-y, 64px) 0 24px; }
body.v3 .footer-united { gap: 48px 64px; }
body.v3 .footer__mono img { width: 130px; }
body.v3 .footer-united__left .footer__grid { gap: 22px; }
body.v3 .site-footer h3 { margin: 0 0 12px; }
body.v3 .site-footer p,
body.v3 .site-footer a { margin: 3px 0; line-height: 1.6; }
body.v3 .footer__social { margin-top: 10px; }
body.v3 .footer__social a { width: 34px; height: 34px; }
body.v3 .footer__social svg { width: 23px; height: 23px; }
body.v3 .footer-contact__title { margin: 0 0 20px; }
body.v3 .footer-contact__title::after { margin-top: 14px; }
body.v3 .footer-contact__form { gap: 16px 20px; }
body.v3 .footer-contact__form .field { gap: 6px; }
body.v3 .footer-contact__form label { font-size: 12.5px; }
body.v3 .footer-contact__form input { padding: 9px 12px; min-height: 42px; }
body.v3 .footer-contact__form textarea { padding: 10px 12px; min-height: 96px; height: 96px; }
body.v3 .footer-contact__form .btn { padding: 12px 28px; min-height: 46px; }
body.v3 .site-footer .footer__bottom { margin-top: 32px; padding-top: 14px; }

/* Formulaire de contact du footer : encadrement gris + colonne élargie */
body.v3 .footer-united { grid-template-columns: minmax(220px, 285px) minmax(0, 1.75fr); }
body.v3 .footer-contact__form {
  border: 1px solid rgba(126, 141, 133, 0.45);
  border-radius: 2px;
  padding: clamp(20px, 2.2vw, 32px);
}
@media (max-width: 900px) {
  body.v3 .footer-united { grid-template-columns: 1fr; }
  body.v3 .footer-contact__form { padding: 18px; }
}

/* ============================================================
   Harmonisation typographique finale — page d'accueil
   Corps de texte : Archivo, navy. Titres : Source Serif 4, navy.
   ============================================================ */
body.v3 .award-card__desc,
body.v3 .nx-card__excerpt,
body.v3 .news-cta,
body.v3 .awards-intro,
body.v3 .section__intro,
body.v3 .section__lead,
body.v3 .nx-card__excerpt,
body.v3 .nx-post__excerpt,
body.v3 .bureaux-text,
body.v3 .awards p,
body.v3 p {
  font-family: "Archivo", "Archivo Fallback", system-ui, -apple-system, sans-serif !important;
}
body.v3 .award-card__desc {
  font-family: "Archivo", "Archivo Fallback", system-ui, sans-serif !important;
  font-size: 15.5px !important;
  line-height: 1.65;
  color: rgba(9, 47, 78, 0.76);
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
body.v3 .award-card__title {
  color: var(--color-primary, #092f4e);
}
body.v3 .nx-card__excerpt { color: rgba(9, 47, 78, 0.76); }
body.v3 .section--dark .nx-card__excerpt { color: rgba(9, 47, 78, 0.76); }

/* --- Derniers écarts typographiques / colorimétriques (home) --- */
body.v3 .nx-card__date,
body.v3 .nx-post__date,
body.v3 .site-search__label,
body.v3 .platform-item__label {
  font-family: "Archivo", "Archivo Fallback", system-ui, -apple-system, sans-serif !important;
}
body.v3 .site-search__label { color: var(--color-primary, #092f4e); }
body.v3 p:not([class]) { color: rgba(9, 47, 78, 0.82); font-size: 16.5px; }
body.v3 .site-footer p,
body.v3 .site-footer p:not([class]) { color: #ffffff; }
body.v3 { color: #092f4e; }

/* ============================================================
   Titres de pages intérieures : grand serif italique bleu gris
   translucide (style éditorial filigrane)
   ============================================================ */
body.v3:not([data-page="home-v3"]) .hero-banner__title,
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title,
body.v3:not([data-page="home-v3"]) .hero-banner--image .hero-banner__title {
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  font-size: clamp(44px, 6.4vw, 92px) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.02em !important;
  color: rgba(9, 47, 78, 0.48) !important;
  max-width: 18ch;
}
body.v3:not([data-page="home-v3"]) .hero-banner__title::after,
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title::after {
  opacity: 0.9;
}
/* Variante sur en-tête sombre */
body.v3.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__title,
body.v3.v3-light.cms-hero-dark:not([data-page="home-v3"]) .hero-banner__title {
  color: rgba(255, 255, 255, 0.52) !important;
}
@media (max-width: 768px) {
  body.v3:not([data-page="home-v3"]) .hero-banner__title,
  body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title {
    font-size: clamp(34px, 10vw, 48px) !important;
    max-width: none;
  }
}

/* ---- Chapeau des héros de pages intérieures : sans-serif (contraste avec le H1 serif) ---- */
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .vision-intro {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0.005em !important;
  font-size: clamp(15.5px, 1.25vw, 18px) !important;
  line-height: 1.65 !important;
  color: rgba(9, 47, 78, 0.78) !important;
  max-width: min(100%, 120ch);
  margin-top: 26px;
}
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .vision-intro strong {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif) !important;
  font-weight: 400 !important;
  color: rgba(9, 47, 78, 0.9) !important;
}

body.v3.cms-hero-dark:not([data-page="home-v3"]) .hero-banner--gradient .vision-intro {
  color: rgba(255, 255, 255, 0.8) !important;
}
@media (max-width: 768px) {
  body.v3:not([data-page="home-v3"]) .hero-banner--gradient .vision-intro {
    font-size: 16.5px !important;
  }
}

/* ============================================================
   Page Expertises : sous-expertises en cartes sombres à
   l'intérieur du panneau navy (module « piliers » partagé)
   ============================================================ */
body.v3.pillars-page[data-page="expertises"] .pillar-panel,
body.v3.pillars-page[data-page="expertise"] .pillar-panel {
  grid-template-columns: 4fr 8fr;
}
body.v3.pillars-page .pillar-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 26px;
}
body.v3.pillars-page .pillar-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 18px 14px;
  border: 1px solid rgba(240, 238, 232, 0.16);
  background: rgba(240, 238, 232, 0.04);
  text-decoration: none;
  border-radius: 2px;
  transition: border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}
body.v3.pillars-page .pillar-card:hover,
body.v3.pillars-page .pillar-card:focus-visible {
  border-color: var(--color-accent, #ffa62b);
  background: rgba(255, 166, 43, 0.08);
  transform: translateY(-2px);
}
body.v3.pillars-page .pillar-card__num {
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--color-accent, #ffa62b);
}
body.v3.pillars-page .pillar-card__label {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.28;
  color: #fdfcf8;
}
body.v3.pillars-page .pillar-card__more {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans, "Archivo", Roboto, sans-serif);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(240, 238, 232, 0.66);
  transition: color 0.25s ease;
}
body.v3.pillars-page .pillar-card__more::after {
  content: "\2192";
  font-size: 13px;
  transition: transform 0.25s ease;
}
body.v3.pillars-page .pillar-card:hover .pillar-card__more { color: var(--color-accent, #ffa62b); }
body.v3.pillars-page .pillar-card:hover .pillar-card__more::after { transform: translateX(3px); }
@media (max-width: 1100px) {
  body.v3.pillars-page .pillar-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  body.v3.pillars-page .pillar-cards { grid-template-columns: 1fr; }
}

/* ============================================================
   26. Page Équipe : grille claire unifiée
   ============================================================ */


/* Grille claire */
body.v3[data-page="equipe"] .section--team { position: relative; overflow: hidden; }
body.v3[data-page="equipe"] .section--team::before {
  content: "";
  position: absolute;
  top: -80px;
  right: 0;
  left: 0;
  bottom: 0;
  background: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.14) 0 1px, transparent 1px 13px);
  -webkit-mask-image: linear-gradient(135deg, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.5) 14%, rgba(0,0,0,0.15) 32%, transparent 55%);
  mask-image: linear-gradient(135deg, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.5) 14%, rgba(0,0,0,0.15) 32%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}
body.v3[data-page="equipe"] .section--team .section__inner { position: relative; z-index: 1; }
body.v3[data-page="equipe"] .team-card { text-align: left; }
body.v3[data-page="equipe"] .section--team .section-title {
  font-family: "Source Serif 4", serif;
  font-weight: 400;
  font-style: normal;
  color: #092f4e;
  font-size: clamp(22px, 2vw, 30px);
  text-transform: none;
  margin: 0;
}
body.v3[data-page="equipe"] .section--team .title-rule { margin: 16px 0 24px; }
body.v3[data-page="equipe"] .team-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px 20px;
}

/* Cartes : noms toujours visibles, portraits N&B -> couleur au survol */
body.v3[data-page="equipe"] .team-card__link { display: block; text-decoration: none; }
body.v3[data-page="equipe"] .team-card__photo {
  margin-bottom: 12px;
  overflow: hidden;
  filter: contrast(1.03);
  transition: filter 0.45s ease;
}
body.v3[data-page="equipe"] .team-card__link:hover .team-card__photo { filter: none; }
body.v3[data-page="equipe"] .team-card__photo--empty {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(130deg, rgba(9, 47, 78, 0.12), rgba(9, 47, 78, 0.04));
  filter: none;
}
body.v3[data-page="equipe"] .team-card__photo--empty span {
  font-family: "Source Serif 4", serif;
  font-size: 34px;
  letter-spacing: 0.08em;
  color: rgba(9, 47, 78, 0.42);
}
body.v3[data-page="equipe"] .team-card__name {
  font-family: "Source Serif 4", serif;
  font-weight: 500;
  font-style: normal;
  font-size: 18px;
  line-height: 1.25;
  color: #092f4e;
  text-transform: none;
  margin: 0 0 4px;
}
body.v3[data-page="equipe"] .team-card__role {
  font-family: "Archivo", sans-serif;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.6);
  margin: 0;
}
body.v3[data-page="equipe"] .team-grid--reveal .team-card__name { color: #fff; margin: 0; }
body.v3[data-page="equipe"] .team-grid--reveal .team-card__role { color: #ffa62b; margin: 0; }
body.v3[data-page="equipe"] .team-grid--reveal .team-card__photo { margin-bottom: 0; }

@media (max-width: 1024px) {
  body.v3[data-page="equipe"] .team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  body.v3[data-page="equipe"] .team-grid { grid-template-columns: 1fr; }
}

/* ---- Puces de filtre Équipe : même style que "Nos actualités" ---- */
body.v3[data-page="equipe"] .team-filters { gap: 14px; }
body.v3[data-page="equipe"] .team-filter {
  /* reprend le fond transparent, la police et les proportions de .nx-tab */
  border-radius: 0 !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
body.v3[data-page="equipe"] .team-filter.is-active,
body.v3[data-page="equipe"] .team-filter__group.is-open > .team-filter {
  background: #092f4e;
  border-color: #092f4e;
  color: #f4f1ea;
}
body.v3[data-page="equipe"] .team-filter__chevron { display: none !important; }
body.v3[data-page="equipe"] .team-filter__select { top: calc(100% + 8px); }
@media (max-width: 560px) {
  body.v3[data-page="equipe"] .team-filters { gap: 8px; }
}

/* --- Équipe : espace réduit sous le header de page --- */
body.v3[data-page="equipe"] .hero-banner--gradient { min-height: 0; }
body.v3[data-page="equipe"] .hero-banner--gradient .hero-banner__inner {
  padding-bottom: clamp(18px, 2vw, 26px);
}
body.v3[data-page="equipe"] .hero-banner + .section--team {
  padding-top: clamp(16px, 1.8vw, 24px);
}

/* Équipe : trame diagonale remontée dans le hero (coin haut-gauche) */
body.v3[data-page="equipe"] .hero-banner--gradient::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 0;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(320px, 38vw, 520px);
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.14) 0 1px,
    transparent 1px 13px
  );

  -webkit-mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mask-repeat: no-repeat;
}
@media (max-width: 900px) {
  body.v3[data-page="equipe"] .hero-banner--gradient::before {
    width: 240px;
  }
}



/* ============================================================
   27. Page « Notre Actualité » — fond clair texturé + style
   signature (trame de lignes diagonales descendantes, biseaux,
   trait orange, puces biseautées, cartes à coin biseauté).
   ============================================================ */
/* Titre + trait + chapeau */
body.v3[data-page="actualite"] .vision-intro { margin-top: 20px; }

/* Puces biseautées 22° (même style que la page Équipe) */
body.v3[data-page="actualite"] .nx-tab {
  border-radius: 0 !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}

/* Cartes : coin biseauté à 22° au lieu du « + » */
body.v3[data-page="actualite"] .nx-card__link {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%);
  transition: transform 0.3s ease, border-color 0.3s ease;
}
body.v3[data-page="actualite"] .nx-card__link:hover {
  border-color: var(--color-accent, #ffa62b) !important;
  transform: translateY(-4px);
}
body.v3[data-page="actualite"] .nx-card__plus { display: none !important; }

/* Actualité : resserrer l'espace entre le header de page et le feed */
body.v3[data-page="actualite"] .hero-banner--gradient { min-height: 0; }
body.v3[data-page="actualite"] .hero-banner--gradient .hero-banner__inner {
  padding-bottom: clamp(14px, 1.6vw, 22px);
}
body.v3[data-page="actualite"] .hero-banner + .section--vision {
  padding-top: clamp(12px, 1.4vw, 20px);
}

/* Actualité : trame diagonale dans le feed + remontée dans le hero (coin haut-gauche) */
body.v3[data-page="actualite"] .section--vision { position: relative; overflow: hidden; }
body.v3[data-page="actualite"] .section--vision::before {
  content: "";
  position: absolute;
  top: -60px;
  right: 0;
  left: 0;
  bottom: 0;
  background: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.14) 0 1px, transparent 1px 13px);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 20%, #000 70%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 20%, #000 70%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}
body.v3[data-page="actualite"] .section--vision .section__inner { position: relative; z-index: 1; }

body.v3[data-page="actualite"] .hero-banner--gradient::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 0;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(320px, 38vw, 520px);
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.14) 0 1px,
    transparent 1px 13px
  );
  -webkit-mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mask-repeat: no-repeat;
}
@media (max-width: 900px) {
  body.v3[data-page="actualite"] .hero-banner--gradient::before { width: 240px; }
}

/* ============================================================
   28. Page « Contactez-nous » — mise en page condensée + cadre
   ============================================================ */
body.v3[data-page="contact"] .hero-banner--gradient { min-height: 0; }
body.v3[data-page="contact"] .hero-banner--gradient .hero-banner__inner {
  padding-bottom: clamp(12px, 1.4vw, 20px);
}
body.v3[data-page="contact"] .hero-banner + .section { padding-top: clamp(10px, 1.2vw, 18px) !important; }
body.v3[data-page="contact"] .contact-section { padding-bottom: clamp(20px, 2.2vw, 32px) !important; }
body.v3[data-page="contact"] .join-section { padding-top: 0 !important; }

/* Interlignes resserrés */
body.v3[data-page="contact"] .vision-intro,
body.v3[data-page="contact"] .contact-rgpd,
body.v3[data-page="contact"] .contact-rgpd small,
body.v3[data-page="contact"] .join-banner__links li,
body.v3[data-page="contact"] .join-banner__body p { line-height: 1.35 !important; }
body.v3[data-page="contact"] .join-banner__title { line-height: 1.02 !important; }
body.v3[data-page="contact"] .contact-rgpd { font-size: 13.5px; }
body.v3[data-page="contact"] .contact-rgpd small { margin-bottom: 4px; }

/* Formulaire encadré en gris — fond masque la trame derrière */
body.v3[data-page="contact"] .contact-form {
  border: 1px solid rgba(9, 47, 78, 0.16);
  background: rgba(251, 250, 247, 0.92);
  padding: clamp(16px, 1.8vw, 26px) clamp(18px, 2.2vw, 32px);
  gap: 10px 20px;
  max-width: 100%;
  width: 100%;
  margin: 0;
  position: relative;
  z-index: 1;
}
body.v3[data-page="contact"] .contact-form .field { gap: 3px; }
body.v3[data-page="contact"] .contact-form label { margin-bottom: 0; line-height: 1.15; font-size: 12.5px; }
body.v3[data-page="contact"] .contact-form input { padding-top: 6px; padding-bottom: 6px; }
body.v3[data-page="contact"] .contact-form textarea { min-height: 84px; }
body.v3[data-page="contact"] .contact-submit { margin-top: 0; }

/* Contact — trame diagonale derrière la section (comme Équipe / Actualités) */
body.v3[data-page="contact"] .contact-section { position: relative; overflow: hidden; }
body.v3[data-page="contact"] .contact-section::before {
  content: "";
  position: absolute;
  top: -40px;
  right: 0;
  left: 0;
  bottom: 0;
  background: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.14) 0 1px, transparent 1px 13px);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 15%, #000 85%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}
body.v3[data-page="contact"] .contact-section .section__inner { position: relative; z-index: 1; }

/* Contact — trame remontée dans le hero (coin haut-gauche) */
body.v3[data-page="contact"] .hero-banner--gradient::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 0;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(320px, 38vw, 520px);
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(
    112deg,
    rgba(9, 47, 78, 0.14) 0 1px,
    transparent 1px 13px
  );
  -webkit-mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mask-repeat: no-repeat;
}
@media (max-width: 900px) {
  body.v3[data-page="contact"] .hero-banner--gradient::before { width: 240px; }
}

/* ============================================================
   29. Pages de détail d'expertise — thème inversé navy
       (direction « Midnight prestige »)
   ============================================================ */
body.v3.v3-dark {
  --v3-surface: #092f4e;
  --v3-on-surface: #f4f1ea;
  background: #092f4e !important;
  background-image: none !important;
  color: #f4f1ea;
}
body.v3.v3-dark main { background: #092f4e; position: relative; }
body.v3.v3-dark .section,
body.v3.v3-dark .section--vision { background: transparent; color: #f4f1ea; }

/* Menu plein écran sur fond navy : textes crème/or (évite le bleu sur bleu).
   !important requis : les tokens CMS injectent .v3-menu a { color } en !important. */
body.v3.v3-dark .v3-menu { color: #f4f1ea; }
body.v3.v3-dark .v3-menu a,
body.v3.v3-dark .v3-menu__primary a,
body.v3.v3-dark .v3-menu__cols a { color: #f4f1ea !important; }
body.v3.v3-dark .v3-menu a:hover,
body.v3.v3-dark .v3-menu__primary a:hover,
body.v3.v3-dark .v3-menu__cols a:hover { color: #ffa62b !important; }
body.v3.v3-dark .v3-menu__cols h4 { color: #ffc978; }

/* Logo crème sur le navy ; navy lorsque le menu blanc est ouvert */
body.v3.v3-dark .brand__logo--main { filter: brightness(0) invert(1); opacity: 0.95; }
body.v3.v3-dark.v3-menu-open .brand__logo--main {
  filter: brightness(0) saturate(100%) invert(13%) sepia(38%) saturate(1500%) hue-rotate(172deg) brightness(92%) contrast(95%);
  opacity: 1;
}
/* Liens texte du header : crème lisible sur navy */
body.v3.v3-dark:not(.is-scrolled) .nav-actions .pill-btn,
body.v3.v3-dark:not(.is-scrolled) .nav-actions .round-btn { color: #f4f1ea; }
body.v3.v3-dark:not(.is-scrolled) .nav-actions .pill-btn:hover,
body.v3.v3-dark:not(.is-scrolled) .nav-actions .round-btn:hover { color: #ffa62b; }
body.v3.v3-dark.is-scrolled .nav-actions .pill-btn,
body.v3.v3-dark.is-scrolled .nav-actions .round-btn:not(.round-btn--solid) { color: #092f4e; }
body.v3.v3-dark.is-scrolled .nav-actions .pill-btn:hover,
body.v3.v3-dark.is-scrolled .nav-actions .round-btn:not(.round-btn--solid):hover { color: #092f4e; }

/* ---- Hero navy : fond uni, sans trame ni halo ---- */
body.v3.v3-dark .hero-banner--gradient {
  background: #092f4e !important;
  background-image: none !important;
  position: relative;
  overflow: hidden;
  min-height: 0;
}
body.v3.v3-dark .hero-banner--gradient::before,
body.v3.v3-dark .hero-banner--gradient::after {
  content: none !important;
  display: none !important;
}
body.v3.v3-dark .hero-banner__shapes { display: none !important; }
body.v3.v3-dark .hero-banner__inner { position: relative; z-index: 1; }

/* Chapeau de pôle : trait or + petites capitales or */
body.v3.v3-dark .xp-eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 20px;
  font-family: var(--font-friendly) !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: #ffa62b !important;
  line-height: 1.4 !important;
  max-width: none;
}
body.v3.v3-dark .xp-eyebrow::before {
  content: "";
  flex: 0 0 48px;
  height: 1px;
  background: #ffa62b;
}
body.v3.v3-dark .xp-eyebrow strong { font-weight: 600; }

/* Titre : serif crème, seconde ligne en or décalée vers la droite */
body.v3.v3-dark:not([data-page="home-v3"]) .hero-banner__title,
body.v3.v3-dark:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title {
  color: #f4f1ea !important;
  max-width: 22ch;
  text-align: left;
}
body.v3.v3-dark:not([data-page="home-v3"]) .hero-banner__title .xp-h1-accent { color: #ffa62b !important; }
body.v3.v3-dark .hero-banner__title .xp-h1-accent {
  display: block;
  color: #ffa62b;
  margin-left: 1.35em;
}
body.v3.v3-dark .hero-banner--gradient .hero-banner__title::after { display: none; }
body.v3.v3-dark .hero-banner--gradient .hero-banner__inner { padding-bottom: clamp(28px, 3vw, 44px); }

/* --- Page Structuration : titre h1 plus large pour un seul ligne --- */
body.v3:not([data-page="home-v3"]) .hero-banner--wide-title.hero-banner--gradient .hero-banner__title {
  max-width: none;
}


/* ---- Corps de texte : intro sur deux colonnes, tuiles en pleine largeur ---- */
body.v3.v3-dark .culture-block[data-cms-html] { position: relative; }
body.v3.v3-dark .culture-block[data-cms-html] > p { max-width: 1280px; padding-right: 20px; box-sizing: border-box; }
body.v3.v3-dark .culture-block p {
  color: rgba(244, 241, 234, 0.88);
  font-weight: 300;
  font-size: 17.5px;
  line-height: 1.7;
}
body.v3.v3-dark .culture-block strong { color: #f4f1ea; font-weight: 600; }
body.v3.v3-dark .culture-block a { color: #ffa62b; }

/* Domaines d'intervention : tuiles bordées, biseau or au survol */
body.v3.v3-dark .culture-block ul {
  list-style: none;
  margin: clamp(26px, 3vw, 40px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 16px;
}
body.v3.v3-dark .culture-block ul li {
  position: relative;
  overflow: hidden;
  list-style: none;
  margin: 0;
  padding: 22px 22px 46px;
  border: 1px solid rgba(244, 241, 234, 0.2);
  font-family: var(--font-friendly);
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1.5;
  color: rgba(244, 241, 234, 0.92);
  transition: border-color 0.3s ease, color 0.3s ease, background 0.3s ease;
}
body.v3.v3-dark .culture-block ul li::marker { content: none; }
body.v3.v3-dark .culture-block ul li::before {
  content: "";
  position: absolute;
  left: 22px;
  bottom: 22px;
  width: 24px;
  height: 2px;
  background: #ffa62b;
  transition: width 0.3s ease;
}
body.v3.v3-dark .culture-block ul li::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  width: 48px;
  height: 48px;
  background: #ffa62b;
  transform: translate(100%, 100%);
  transition: transform 0.35s ease;
  pointer-events: none;
}
body.v3.v3-dark .culture-block ul li:hover {
  border-color: #ffa62b;
  background: rgba(255, 166, 43, 0.05);
}
body.v3.v3-dark .culture-block ul li:hover::before { width: 44px; }
body.v3.v3-dark .culture-block ul li:hover::after { transform: translate(30%, 30%); }

/* ---- Bloc « Experts du cabinet » : bandeau crème pleine largeur ---- */
body.v3.v3-dark .xp-experts {
  position: relative;
  margin: clamp(48px, 6vw, 84px) 0 0;
  padding: clamp(44px, 5vw, 76px) 0 clamp(40px, 4.6vw, 68px);
  background: #f4f1ea;
  color: #092f4e;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
body.v3.v3-dark .xp-experts {
  padding-left: calc((100vw - min(var(--v3-page-max, 1320px), 100vw - 32px)) / 2 + 20px);
  padding-right: calc((100vw - min(var(--v3-page-max, 1320px), 100vw - 32px)) / 2 + 20px);
}
body.v3.v3-dark .xp-experts .title-rule { margin-left: 0; }
body.v3.v3-dark .xp-experts .section-title {
  color: #092f4e !important;
  font-family: var(--font-serif) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  text-transform: none !important;
  font-size: clamp(28px, 3.2vw, 42px) !important;
  letter-spacing: -0.01em;
  margin: 0 0 10px;
}
body.v3.v3-dark .xp-experts .title-rule {
  background: #092f4e;
  opacity: 0.25;
  width: 130px;
  height: 1px;
  margin-bottom: clamp(28px, 3vw, 44px);
}
body.v3.v3-dark .xp-experts .team-card__photo {
  overflow: hidden;
  position: relative;
}
body.v3.v3-dark .xp-experts .team-card__photo img {
  filter: none;
  transition: filter 0.5s ease, transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1);
}
body.v3.v3-dark .xp-experts .team-card__link:hover .team-card__photo img { filter: grayscale(0); }
body.v3.v3-dark .xp-experts .team-card__link { position: relative; }
body.v3.v3-dark .xp-experts .team-card,
body.v3.v3-dark .xp-experts .team-card__name,
body.v3.v3-dark .xp-experts .team-card__role { text-align: left; }
body.v3.v3-dark .xp-experts .team-card__name {
  font-family: var(--font-serif) !important;
  color: #092f4e !important;
  font-size: 19px;
}
body.v3.v3-dark .xp-experts .team-card__role {
  font-family: var(--font-friendly) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #b3701a !important;
}

/* ---- Filet or incliné en signature de bas de page ---- */
body.v3.v3-dark .xp-bevel-rule { display: none !important; }
body.v3.v3-dark main > .section--vision:last-of-type { padding-bottom: 0 !important; }

/* ---- Navigation transversale ---- */
body.v3.v3-dark .xp-crosslinks {
  display: flex;
  flex-wrap: wrap;
  gap: 14px 28px;
  align-items: center;
  margin: clamp(30px, 3.4vw, 48px) 0 clamp(34px, 4vw, 56px);
}
body.v3.v3-dark .xp-crosslinks a {
  font-family: var(--font-friendly);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #ffa62b;
  text-decoration: none;
  border: 1px solid rgba(255, 166, 43, 0.5);
  padding: 12px 22px;
  transition: background 0.25s ease, color 0.25s ease;
}
body.v3.v3-dark .xp-crosslinks a:hover { background: #ffa62b; color: #092f4e; }

/* ---- Domaines d'intervention : carrousel horizontal « Midnight Prestige » ---- */
body.v3.v3-dark .xp-carousel { position: relative; margin: clamp(26px, 3vw, 40px) 0 0; }
body.v3.v3-dark .culture-block ul.xp-carousel__track {
  display: flex;
  grid-template-columns: none;
  align-items: stretch;
  margin: 0;
  gap: 16px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  padding: 6px 0;
}
/* Fondu aux extrémités quand le défilement auto est actif */
body.v3.v3-dark .xp-carousel--auto ul.xp-carousel__track {
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
  mask-image: linear-gradient(to right, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);
}
body.v3.v3-dark .culture-block ul.xp-carousel__track::-webkit-scrollbar { display: none; }
body.v3.v3-dark .culture-block ul.xp-carousel__track > li {
  flex: 0 0 clamp(240px, 24vw, 300px);
  display: flex;
  flex-direction: column;
  padding: 20px 22px 40px;
  cursor: pointer;
  background: #0d2f49;
}
/* Tiret or ancré en bas (hauteur ajustée au contenu) */
body.v3.v3-dark .culture-block ul.xp-carousel__track > li::before {
  left: 22px;
  bottom: 20px;
  width: 24px;
  background: #d8a761;
}
/* Pas de carré or au survol sur le carrousel (l'animation de souligné/bordure est conservée) */
body.v3.v3-dark .culture-block ul.xp-carousel__track > li::after { content: none; }
body.v3.v3-dark .culture-block ul.xp-carousel__track > li:hover::after { transform: none; }
body.v3.v3-dark .culture-block ul.xp-carousel__track > li:hover {
  border-color: rgba(216, 167, 97, 0.55);
  background: #10344f;
}
body.v3.v3-dark .culture-block ul.xp-carousel__track > li.is-active {
  border-color: #d8a761;
  background: rgba(216, 167, 97, 0.07);
}
body.v3.v3-dark .culture-block ul.xp-carousel__track > li.is-active::before { width: 56px; }
body.v3.v3-dark .xp-carousel__nav { display: flex; gap: 10px; margin-top: 22px; }
body.v3.v3-dark .xp-carousel__btn {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(216, 167, 97, 0.35);
  background: transparent;
  color: #d8a761;
  font-size: 16px;
  cursor: pointer;
  transition: border-color 0.3s ease, color 0.3s ease, background 0.3s ease, opacity 0.3s ease;
}
body.v3.v3-dark .xp-carousel__btn:hover:not(:disabled) { background: #d8a761; border-color: #d8a761; color: #092f4e; }
body.v3.v3-dark .xp-carousel__btn:disabled { opacity: 0.3; cursor: default; }

/* ---- Domaines d'intervention : accordéon « Nos interventions » ---- */
body.v3 .xp-acc {
  display: grid;
  grid-template-columns: minmax(220px, 340px) 1fr;
  gap: clamp(24px, 5vw, 80px);
  margin: clamp(32px, 4vw, 56px) 0 0;
  align-items: start;
}
body.v3 .xp-acc__title {
  font-family: "Source Serif 4", Georgia, serif;
  font-weight: 400;
  font-style: normal;
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.08;
  margin: 0;
  color: #092f4e;
}
body.v3.v3-dark .xp-acc__title { color: #f5f1e8; }
body.v3 .xp-acc__list { display: block; }
body.v3 .xp-acc__item { border-bottom: 1px solid rgba(9, 47, 78, 0.22); }
body.v3.v3-dark .xp-acc__item { border-bottom-color: rgba(245, 241, 232, 0.22); }
body.v3 .xp-acc__trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 4px;
  background: none;
  border: 0;
  text-align: left;
  cursor: pointer;
  color: inherit;
  transition: color 0.3s ease;
}
body.v3 .xp-acc__trigger.is-static { cursor: default; }
body.v3 .xp-acc__label {
  font-family: "Source Serif 4", Georgia, serif;
  font-size: clamp(17px, 1.45vw, 21px);
  line-height: 1.3;
  color: #092f4e;
}
body.v3.v3-dark .xp-acc__label { color: #f5f1e8; }
body.v3 .xp-acc__trigger:hover .xp-acc__label { color: #d8a761; }
body.v3 .xp-acc__icon {
  position: relative;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
}
body.v3 .xp-acc__icon::before,
body.v3 .xp-acc__icon::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  background: #092f4e;
  transition: transform 0.35s ease, opacity 0.3s ease, background 0.3s ease;
}
body.v3 .xp-acc__icon::before { width: 20px; height: 1.5px; }
body.v3 .xp-acc__icon::after { width: 1.5px; height: 20px; }
body.v3.v3-dark .xp-acc__icon::before,
body.v3.v3-dark .xp-acc__icon::after { background: #f5f1e8; }
body.v3 .xp-acc__trigger:hover .xp-acc__icon::before,
body.v3 .xp-acc__trigger:hover .xp-acc__icon::after { background: #d8a761; }
body.v3 .xp-acc__item.is-open .xp-acc__icon::after { transform: rotate(90deg); opacity: 0; }
body.v3 .xp-acc__panel {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.45s ease, opacity 0.35s ease, padding 0.35s ease;
}
body.v3 .xp-acc__item.is-open .xp-acc__panel {
  max-height: 460px;
  opacity: 1;
  padding: 0 4px 24px;
}
body.v3 .xp-acc__panel p {
  margin: 0;
  max-width: 78ch;
  font-family: "Archivo", "Roboto", sans-serif;
  font-size: 15.5px;
  line-height: 1.65;
  color: rgba(9, 47, 78, 0.78);
}
body.v3.v3-dark .xp-acc__panel p { color: rgba(245, 241, 232, 0.76); }
@media (max-width: 860px) {
  body.v3 .xp-acc { grid-template-columns: 1fr; gap: 20px; }
  body.v3 .xp-acc__title br { display: none; }
}
body.v3.v3-dark .culture-block .xp-acc__title,
body.v3.v3-dark .section .xp-acc__title { color: #f5f1e8; }
body.v3.v3-dark .xp-acc__title { color: #f5f1e8 !important; }

/* ===== Logo blanc dédié (header transparent sur fond foncé) ===== */
body.v3 .brand { position: relative; display: inline-flex; align-items: center; }
body.v3 .brand__logo--white { display: none; filter: none !important; }
/* header transparent au-dessus d'un fond foncé, ou menu plein écran navy ouvert -> logo blanc vectoriel */
body.v3:not(.is-scrolled):not(.v3-light):not(.v3-menu-open) .brand__logo--white,
body.v3:not(.is-scrolled).nav-over-dark:not(.v3-menu-open) .brand__logo--white,
body.v3.v3-dark:not(.is-scrolled):not(.v3-menu-open) .brand__logo--white,
body.v3.v3-light.cms-hero-dark:not(.is-scrolled):not(.v3-menu-open) .brand__logo--white,
body.v3:not(.v3-light).v3-menu-open .brand__logo--white {
  display: block;
}
body.v3:not(.is-scrolled):not(.v3-light):not(.v3-menu-open) .brand__logo:not(.brand__logo--white),
body.v3:not(.is-scrolled).nav-over-dark:not(.v3-menu-open) .brand__logo:not(.brand__logo--white),
body.v3.v3-dark:not(.is-scrolled):not(.v3-menu-open) .brand__logo:not(.brand__logo--white),
body.v3.v3-light.cms-hero-dark:not(.is-scrolled):not(.v3-menu-open) .brand__logo:not(.brand__logo--white),
body.v3:not(.v3-light).v3-menu-open .brand__logo:not(.brand__logo--white) {
  display: none;
}

/* ============================================================
   FICHES MEMBRES — "Gold & Navy architectural" (flip 3D)
   ============================================================ */

/* Fond habillé : trame diagonale + coins d'encadrement */
body.v3 .section:has(.member-profile--flip) {
  position: relative;
  background-color: #fbfaf7;
  background-image: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.045) 0 1px, transparent 1px 24px);
}
body.v3 .section:has(.member-profile--flip)::before,
body.v3 .section:has(.member-profile--flip)::after {
  content: "";
  position: absolute;
  width: 190px;
  height: 190px;
  pointer-events: none;
}
body.v3 .section:has(.member-profile--flip)::before {
  top: 40px; right: 40px;
  border-top: 1px solid rgba(216, 167, 97, 0.35);
  border-right: 1px solid rgba(216, 167, 97, 0.35);
}
body.v3 .section:has(.member-profile--flip)::after {
  bottom: 40px; left: 40px;
  border-bottom: 1px solid rgba(9, 47, 78, 0.18);
  border-left: 1px solid rgba(9, 47, 78, 0.18);
}

/* Grille principale */
body.v3 .member-profile--flip {
  display: grid;
  grid-template-columns: minmax(0, 3.4fr) minmax(0, 8.6fr);
  gap: 52px;
  align-items: start;
  position: relative;
  z-index: 1;
}
body.v3 .member-profile--flip aside { display: flex; flex-direction: column; gap: 30px; }

/* --- Carte flip --- */
body.v3 .mp-flip {
  perspective: 2000px;
  width: 100%;
  aspect-ratio: 4 / 5;
  cursor: pointer;
  outline: none;
}
body.v3 .mp-flip__inner {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  transition: transform 0.8s cubic-bezier(0.22, 0.8, 0.3, 1);
}
body.v3 .mp-flip:hover .mp-flip__inner,
body.v3 .mp-flip:focus-visible .mp-flip__inner,
body.v3 .mp-flip.is-flipped .mp-flip__inner { transform: rotateY(180deg); }

body.v3 .mp-flip__front,
body.v3 .mp-flip__back {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  overflow: hidden;
}
body.v3 .mp-flip__front {
  background: #092f4e;
  box-shadow: 0 24px 48px -18px rgba(9, 47, 78, 0.45);
}
body.v3 .mp-flip__front img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: none;
  transition: filter 0.7s ease;
}
body.v3 .mp-flip:hover .mp-flip__front img { filter: grayscale(0%); }
body.v3 .mp-flip__bevel {
  position: absolute;
  bottom: 0; right: 0;
  width: 92px; height: 92px;
  background: #d8a761;
  opacity: 0.32;
  clip-path: polygon(100% 0, 100% 100%, 0 100%);
  pointer-events: none;
}
body.v3 .mp-flip__hint {
  position: absolute;
  bottom: 16px; left: 16px;
  background: rgba(9, 47, 78, 0.85);
  color: #fbfaf7;
  font-family: 'Archivo', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  padding: 8px 14px;
  pointer-events: none;
}

/* Verso : coordonnées — « Architectural Prestige » */
body.v3 .mp-flip__back {
  transform: rotateY(180deg);
  background:
    radial-gradient(circle at 100% 0%, #0d3a5e 0%, #092f4e 42%, #062338 100%);
  border-right: 3px solid transparent;
  border-image: linear-gradient(180deg, rgba(216,167,97,0.4), #d8a761 50%, rgba(216,167,97,0.4)) 1;
  box-shadow: 0 24px 48px -18px rgba(9, 47, 78, 0.45);
  padding: 38px 32px 32px;
  display: flex;
  flex-direction: column;
  color: #fbfaf7;
}
/* Monogramme filigrane */
body.v3 .mp-flip__back::before {
  content: 'P';
  position: absolute;
  left: -0.16em;
  bottom: -0.34em;
  font-family: 'Source Serif 4', serif;
  font-weight: 400;
  font-size: 340px;
  line-height: 0.8;
  color: #d8a761;
  opacity: 0.055;
  pointer-events: none;
  user-select: none;
}
/* Voile lumineux + équerre d'angle */
body.v3 .mp-flip__back::after {
  content: '';
  position: absolute;
  right: 20px;
  bottom: 20px;
  width: 54px;
  height: 54px;
  border-right: 1px solid rgba(216, 167, 97, 0.28);
  border-bottom: 1px solid rgba(216, 167, 97, 0.28);
  pointer-events: none;
}
body.v3 .mp-flip__back h4 {
  position: relative;
  font-family: 'Source Serif 4', serif;
  font-style: italic;
  font-weight: 400;
  font-size: 30px;
  color: #d8a761;
  margin: 0 0 8px;
  letter-spacing: -0.01em;
  text-transform: none;
}
body.v3 .mp-flip__back h4::after {
  content: '';
  display: block;
  width: 44px;
  height: 1px;
  margin-top: 14px;
  background: #d8a761;
  opacity: 0.6;
}
body.v3 .mp-flip__back .mp-flip__fields,
body.v3 .mp-flip__back > .mp-flip__field:first-of-type { margin-top: auto; }
body.v3 .mp-flip__field {
  position: relative;
  margin-bottom: 0;
  padding: 18px 0;
}
body.v3 .mp-flip__field + .mp-flip__field {
  border-top: 1px solid rgba(216, 167, 97, 0.16);
}
body.v3 .mp-flip__field:last-child { padding-bottom: 4px; }
body.v3 .mp-flip__field > span {
  display: block;
  font-family: 'Archivo', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(216, 167, 97, 0.78);
  margin-bottom: 9px;
}
body.v3 .mp-flip__field p { margin: 0; }
body.v3 .mp-flip__field a {
  font-family: 'Archivo', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #fbfaf7;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  padding-bottom: 2px;
  transition: color 0.25s ease, border-color 0.25s ease;
  word-break: break-word;
}
body.v3 .mp-flip__field a:hover { color: #ffc978; border-bottom-color: #d8a761; }

body.v3 .mp-flip__back .member-profile__social { margin: 0; }
body.v3 .mp-flip__back .member-profile__social a {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Archivo', sans-serif;
  font-size: 15px;
  color: #fbfaf7;
  text-decoration: none;
  transition: color 0.25s ease;
}
body.v3 .mp-flip__back .member-profile__social a:hover { color: #ffa62b; }
body.v3 .mp-flip__back .member-profile__social svg { width: 18px; height: 18px; }

/* --- Méta (Bureau / Pôle / Langues) --- */
body.v3 .member-profile--flip .member-profile__meta { margin-top: 0; font-size: inherit; line-height: inherit; }
body.v3 .member-profile--flip .mp-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  padding: 0 0 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid rgba(9, 47, 78, 0.12);
}
body.v3 .member-profile--flip .mp-meta-row strong {
  font-family: 'Archivo', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(9, 47, 78, 0.42);
  margin: 0;
  display: inline;
}
body.v3 .member-profile--flip .mp-meta-row p {
  margin: 0;
  font-family: 'Archivo', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #092f4e;
  text-align: right;
}

/* --- Colonne droite --- */
body.v3 .member-profile--flip .mp-role-pill {
  display: inline-block;
  font-family: 'Archivo', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #d8a761;
  background: rgba(216, 167, 97, 0.12);
  padding: 8px 16px;
  margin: 0 0 24px;
}
body.v3 .member-profile--flip h2.section-title {
  font-family: 'Source Serif 4', serif;
  font-weight: 800;
  font-size: clamp(32px, 3.8vw, 52px);
  line-height: 1.05;
  color: #092f4e;
  text-transform: none;
  letter-spacing: -0.01em;
  margin: 0 0 20px;
  white-space: nowrap;
}
@media (max-width: 1200px) {
  body.v3 .member-profile--flip h2.section-title { white-space: normal; }
}
body.v3 .member-profile--flip .title-rule {
  width: 110px;
  height: 3px;
  background: #6b8295;
  position: relative;
  margin-bottom: 36px;
}
body.v3 .member-profile--flip .title-rule::after {
  content: "";
  position: absolute;
  top: 0; right: 0;
  width: 10px; height: 100%;
  background: #092f4e;
  transform: skewX(-22deg);
  transform-origin: top right;
}

/* Bio + expertises : grille parente pour aligner l'encart sur la photo */
body.v3 .member-profile--flip .member-profile__body {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
  gap: 0 40px;
  align-items: start;
}
body.v3 .member-profile--flip .mp-grid { display: contents; }
body.v3 .member-profile--flip .mp-role-pill,
body.v3 .member-profile--flip h2.section-title,
body.v3 .member-profile--flip .title-rule,
body.v3 .member-profile--flip .mp-bio { grid-column: 1; }
body.v3 .member-profile--flip .member-profile__expertises {
  grid-column: 2;
  grid-row: 1 / span 4;
  align-self: start;
}
body.v3 .member-profile--flip .member-profile__back {
  grid-column: 1 / -1;
  margin-top: 44px;
}
body.v3 .member-profile--flip .member-profile__body > p,
body.v3 .member-profile--flip .mp-bio p {
  font-family: 'Archivo', sans-serif;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(9, 47, 78, 0.85);
  margin: 0 0 16px;
}
body.v3 .member-profile--flip .mp-bio p strong { font-weight: 600; }
body.v3 .member-profile--flip .mp-serment {
  display: inline-flex;
  align-items: baseline;
  gap: 16px;
  padding: 10px 0;
  border-top: 1px solid rgba(9, 47, 78, 0.08);
  border-bottom: 1px solid rgba(9, 47, 78, 0.08);
}

/* Encart expertises navy */
body.v3 .member-profile--flip .member-profile__expertises {
  margin: 0;
  background:
    repeating-linear-gradient(112deg, rgba(251, 250, 247, 0.03) 0 1px, transparent 1px 18px),
    linear-gradient(160deg, #0d3a5e 0%, #092f4e 55%, #062338 100%);
  padding: 28px 26px;
  position: relative;
  overflow: hidden;
  align-self: start;
  border-left: 3px solid #d8a761;
  box-shadow: 0 16px 32px -18px rgba(9, 47, 78, 0.35);
}
body.v3 .member-profile--flip .member-profile__expertises::before {
  content: "";
  position: absolute;
  top: -18px; right: -18px;
  width: 40px; height: 80px;
  background: #ffa62b;
  opacity: 0.14;
  transform: rotate(22deg);
  pointer-events: none;
}
body.v3 .member-profile--flip .member-profile__expertises h3 {
  font-family: 'Archivo', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: #d8a761;
  margin: 0 0 20px;
}
body.v3 .member-profile--flip .member-profile__expertises h3:empty {
  display: none;
  margin: 0;
}

body.v3 .member-profile--flip .member-profile__expertises ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 13px;
}
body.v3 .member-profile--flip .member-profile__expertises li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: inherit;
  line-height: inherit;
}
body.v3 .member-profile--flip .member-profile__expertises li::before {
  content: "";
  flex: none;
  width: 8px; height: 8px;
  margin-top: 7px;
  background: #ffa62b;
  transform: rotate(45deg);
  transition: transform 0.5s ease;
}
body.v3 .member-profile--flip .member-profile__expertises li:hover::before { transform: rotate(225deg); }
body.v3 .member-profile--flip .member-profile__expertises li a {
  font-family: 'Archivo', sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: #fbfaf7;
  text-decoration: none;
  border: none;
  transition: color 0.25s ease;
}
body.v3 .member-profile--flip .member-profile__expertises li a:hover { color: #ffa62b; border: none; }

/* Bouton retour : navy + remplissage or biseauté */
body.v3 .member-profile--flip .member-profile__back { margin-top: 8px; }
@media (max-width: 1023px) {
  body.v3 .member-profile--flip .member-profile__back { margin-top: 64px; text-align: center; }
}
body.v3 .member-profile--flip .member-profile__back .btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 36px;
  background: #092f4e;
  color: #fbfaf7;
  font-family: 'Archivo', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 18px 36px -16px rgba(9, 47, 78, 0.5);
  transition: color 0.4s ease;
}
body.v3 .member-profile--flip .member-profile__back .btn::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #d8a761;
  clip-path: polygon(0 0, 88% 0, 100% 100%, 0 100%);
  transform: translateX(-101%);
  transition: transform 0.5s cubic-bezier(0.22, 0.8, 0.3, 1);
}
body.v3 .member-profile--flip .member-profile__back .btn:hover::before { transform: translateX(0); }
body.v3 .member-profile--flip .member-profile__back .btn:hover { color: #092f4e; }
body.v3 .member-profile--flip .member-profile__back .btn span { position: relative; z-index: 1; }

/* Responsive */
@media (max-width: 1023px) {
  body.v3 .member-profile--flip { grid-template-columns: 1fr; gap: 48px; }
  body.v3 .mp-flip { max-width: 420px; }
  body.v3 .member-profile--flip .member-profile__body { display: block; }
  body.v3 .member-profile--flip .mp-grid { display: grid; grid-template-columns: 1fr; gap: 40px; }
  body.v3 .member-profile--flip .member-profile__expertises { grid-column: auto; grid-row: auto; }
  body.v3 .member-profile--flip .member-profile__back { grid-column: auto; margin-top: 0; }
}
@media (max-width: 640px) {
  body.v3 .member-profile--flip h2.section-title { font-size: 34px; }
  body.v3 .mp-flip__back { padding: 28px 24px; }
}

/* Conteneur photo CMS dans la carte flip */
body.v3 .mp-flip__photo {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  background: transparent;
  overflow: visible;
  margin: 0;
}
body.v3 .mp-flip__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: none;
  transition: filter 0.7s ease;
}
body.v3 .mp-flip:hover .mp-flip__photo img { filter: grayscale(0%); }
body.v3 .mp-flip__photo--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0d3a5e;
}
body.v3 .mp-flip__photo--empty span {
  font-family: 'Source Serif 4', serif;
  font-style: italic;
  font-size: 96px;
  color: rgba(216, 167, 97, 0.5);
}

/* ============================================================
   Fonds bleu-gris doux pour les pages intérieures
   (Équipe, Actualité, Contact — FR + EN via data-page)
   ============================================================ */
body.v3.v3-light:not([data-page="home-v3"]) main .section--team,
body.v3.v3-light:not([data-page="home-v3"]):not([data-page="vision"]):not([data-page="expertises"]) main .section--vision,
body.v3.v3-light:not([data-page="home-v3"]) main .contact-section,
body.v3.v3-light:not([data-page="home-v3"]) main .join-section {
  position: relative;
  background: #092f4e !important;
  color: #f4f1ea !important;
}

/* Texture : fines diagonales crème très discrètes */
body.v3.v3-light:not([data-page="home-v3"]) main .section--team::before,
body.v3.v3-light:not([data-page="home-v3"]):not([data-page="vision"]):not([data-page="expertises"]) main .section--vision::before,
body.v3.v3-light:not([data-page="home-v3"]) main .contact-section::before,
body.v3.v3-light:not([data-page="home-v3"]) main .join-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(112deg, rgba(244, 241, 234, 0.06) 0 1px, transparent 1px 13px);
  -webkit-mask-image: none;
  mask-image: none;
  pointer-events: none;
  z-index: 0;
}

body.v3.v3-light:not([data-page="home-v3"]) main .section--team .section__inner,
body.v3.v3-light:not([data-page="home-v3"]) main .section--vision .section__inner,
body.v3.v3-light:not([data-page="home-v3"]) main .contact-section .section__inner,
body.v3.v3-light:not([data-page="home-v3"]) main .join-section .section__inner {
  position: relative;
  z-index: 1;
}

/* Titres de section et trait */
body.v3[data-page="equipe"] .section--team .section-title,
body.v3[data-page="actualite"] .section--vision .section-title,
body.v3[data-page="contact"] .contact-section .section-title,
body.v3[data-page="contact"] .join-section .join-banner__title {
  color: #f4f1ea !important;
}
body.v3[data-page="equipe"] .section--team .title-rule,
body.v3[data-page="actualite"] .section--vision .title-rule,
body.v3[data-page="contact"] .contact-section .title-rule,
body.v3[data-page="contact"] .join-section .title-rule {
  background-color: #ffa62b !important;
}

/* Équipe : cartes et noms sur fond bleu-gris */
body.v3[data-page="equipe"] .section--team .team-card__name {
  color: #f4f1ea !important;
}
body.v3[data-page="equipe"] .section--team .team-card__role {
  color: rgba(244, 241, 234, 0.65) !important;
}
body.v3[data-page="equipe"] .section--team .team-card__photo--empty {
  background: linear-gradient(130deg, rgba(244, 241, 234, 0.12), rgba(244, 241, 234, 0.04));
}
body.v3[data-page="equipe"] .section--team .team-card__photo--empty span {
  color: rgba(244, 241, 234, 0.42);
}

/* Filtres : mode clair sur fond bleu-gris */
body.v3[data-page="equipe"] .team-filters,
body.v3[data-page="actualite"] .nx-toolbar,
body.v3[data-page="contact"] .nx-toolbar {
  border-bottom-color: rgba(244, 241, 234, 0.18);
}
body.v3[data-page="equipe"] .team-filter,
body.v3[data-page="equipe"] .team-filter.nx-tab,
body.v3[data-page="actualite"] .nx-tab,
body.v3[data-page="contact"] .nx-tab {
  background: transparent !important;
  border-color: rgba(244, 241, 234, 0.25) !important;
  color: #f4f1ea !important;
}
body.v3[data-page="equipe"] .team-filter:hover,
body.v3[data-page="actualite"] .nx-tab:hover,
body.v3[data-page="contact"] .nx-tab:hover {
  border-color: #ffa62b !important;
  color: #ffa62b !important;
}
body.v3[data-page="equipe"] .team-filter.is-active,
body.v3[data-page="equipe"] .team-filter__group.is-open > .team-filter,
body.v3[data-page="actualite"] .nx-tab.is-active,
body.v3[data-page="contact"] .nx-tab.is-active {
  background: #ffa62b !important;
  border-color: #ffa62b !important;
  color: #092f4e !important;
}
body.v3[data-page="equipe"] .team-filter__chevron {
  border-right-color: currentColor;
  border-bottom-color: currentColor;
}
body.v3[data-page="equipe"] .team-filter__select {
  background: #092f4e;
  border-color: rgba(244, 241, 234, 0.16);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.25);
}
body.v3[data-page="equipe"] .team-filter__select button {
  color: #f4f1ea;
}
body.v3[data-page="equipe"] .team-filter__select button:hover {
  background: rgba(255, 166, 43, 0.12);
  color: #ffa62b;
}

/* Recherche */
body.v3[data-page="actualite"] .nx-search,
body.v3[data-page="contact"] .nx-search {
  background: rgba(244, 241, 234, 0.07) !important;
  border-color: rgba(244, 241, 234, 0.25) !important;
}
body.v3[data-page="actualite"] .nx-search svg,
body.v3[data-page="contact"] .nx-search svg {
  color: #f4f1ea;
}
body.v3[data-page="actualite"] .nx-search input,
body.v3[data-page="contact"] .nx-search input,
body.v3[data-page="actualite"] .nx-search input::placeholder,
body.v3[data-page="contact"] .nx-search input::placeholder {
  color: #f4f1ea;
}

/* Actualités : cartes sur fond clair avec texte foncé */
body.v3[data-page="actualite"] .nx-card__link {
  background: #f4f1ea !important;
  border-color: rgba(9, 47, 78, 0.12) !important;
  color: #092f4e !important;
}
body.v3[data-page="actualite"] .nx-card__link:hover {
  background: #ffffff !important;
  border-color: #ffa62b !important;
}
body.v3[data-page="actualite"] .nx-card__date,
body.v3[data-page="actualite"] .nx-card__place {
  color: rgba(9, 47, 78, 0.55);
}
body.v3[data-page="actualite"] .nx-card__title {
  color: #092f4e !important;
  border-top-color: rgba(9, 47, 78, 0.12);
}
body.v3[data-page="actualite"] .nx-card__excerpt {
  color: rgba(9, 47, 78, 0.72);
}
body.v3[data-page="actualite"] .nx-card__cat {
  color: #092f4e;
}
body.v3[data-page="actualite"] .nx-card__plus {
  background: #092f4e !important;
  color: #f4f1ea !important;
}
body.v3[data-page="actualite"] .nx-card__link:hover .nx-card__plus {
  background: #ffa62b !important;
  color: #092f4e !important;
}
body.v3[data-page="actualite"] .nx-empty {
  color: rgba(244, 241, 234, 0.7);
}

/* Contact : formulaire encadré sur fond bleu-gris (sans trame interne) */
body.v3[data-page="contact"] .contact-form {
  background: #092f4e !important;
  border-color: rgba(244, 241, 234, 0.22) !important;
  position: relative;
}
body.v3[data-page="contact"] .contact-form .field,
body.v3[data-page="contact"] .contact-form .contact-submit,
body.v3[data-page="contact"] .contact-form .contact-rgpd {
  position: relative;
  z-index: 1;
}
body.v3[data-page="contact"] .contact-form label {
  color: rgba(244, 241, 234, 0.85) !important;
}
body.v3[data-page="contact"] .contact-form input,
body.v3[data-page="contact"] .contact-form textarea {
  color: #f4f1ea !important;
  border-bottom-color: rgba(244, 241, 234, 0.35) !important;
}
body.v3[data-page="contact"] .contact-form input::placeholder,
body.v3[data-page="contact"] .contact-form textarea::placeholder {
  color: rgba(244, 241, 234, 0.45) !important;
}
body.v3[data-page="contact"] .contact-form input:focus,
body.v3[data-page="contact"] .contact-form textarea:focus {
  border-bottom-color: #ffa62b !important;
}
body.v3[data-page="contact"] .contact-form .btn {
  color: #f4f1ea !important;
  border-color: #ffa62b !important;
  background: transparent !important;
}
body.v3[data-page="contact"] .contact-form .btn:hover {
  background: #ffa62b !important;
  color: #fff !important;
}
body.v3[data-page="contact"] .contact-rgpd,
body.v3[data-page="contact"] .contact-rgpd small {
  color: rgba(244, 241, 234, 0.75) !important;
  line-height: 1.35 !important;
}

/* ============================================================
   Fiches avocat : conserver le fond clair d'origine
   (les pages membres utilisent data-page="equipe")
   ============================================================ */
body.v3.v3-light main .section.section--vision:has(.member-profile--flip):has(.mp-flip):has(.member-profile__body),
body.v3.v3-light main .section.section--team:has(.member-profile--flip):has(.mp-flip):has(.member-profile__body) {
  background-color: #fbfaf7 !important;
  background-image: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.045) 0 1px, transparent 1px 24px) !important;
  color: #092f4e !important;
}
body.v3.v3-light main .section.section--vision:has(.member-profile--flip)::before,
body.v3.v3-light main .section.section--team:has(.member-profile--flip)::before {
  background: none !important;
  inset: auto !important;
  top: 40px !important;
  right: 40px !important;
}
body.v3 .member-profile--flip .mp-role-pill,
body.v3 .member-profile--flip .mp-bio p,
body.v3 .member-profile--flip .mp-serment,
body.v3 .member-profile--flip .member-profile__body > p {
  color: rgba(9, 47, 78, 0.85) !important;
}
body.v3 .member-profile--flip h2.section-title,
body.v3 .member-profile--flip .mp-meta-row p {
  color: #092f4e !important;
}
body.v3 .member-profile--flip .mp-meta-row strong {
  color: rgba(9, 47, 78, 0.45) !important;
}

/* ============================================================
   Bande claire (fond texturé du hero) sous les sections navy
   Équipe / Actualité / Contact — FR + EN
   ============================================================ */
body.v3[data-page="equipe"] main:has(> .section--team)::after,
body.v3[data-page="actualite"] main::after,
body.v3[data-page="contact"] main::after {
  content: "";
  display: block;
  width: 100%;
  height: 48px;
  background: transparent;
}
@media (max-width: 768px) {
  body.v3[data-page="equipe"] main:has(> .section--team)::after,
  body.v3[data-page="actualite"] main::after,
  body.v3[data-page="contact"] main::after { height: 32px; }
}

/* ============================================================
   Page Plateforme Contentieuse — DA Pledge
   ============================================================ */
body.v3[data-page="plateforme"] main::after {
  content: "";
  display: block;
  width: 100%;
  height: 48px;
  background: transparent;
}
body.v3[data-page="plateforme"] .hero-banner--gradient::before {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 0;
  left: calc(-1 * ((100vw - min(100vw, 1320px)) / 2 + 24px));
  width: clamp(320px, 38vw, 520px);
  height: 100%;
  pointer-events: none;
  z-index: 0;
  background-image: repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.14) 0 1px, transparent 1px 13px);
  -webkit-mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  mask-image:
    linear-gradient(to right, #000 0%, #000 42%, transparent 100%),
    linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-composite: intersect;
  mask-repeat: no-repeat;
}

body.v3[data-page="plateforme"] .ps-panel { position: relative; z-index: 1; max-width: 980px; }
body.v3[data-page="plateforme"] .ps-status {
  display: inline-block;
  margin: 0 0 22px;
  padding: 9px 26px 9px 20px;
  background: #ffa62b;
  color: #092f4e;
  font: 500 11px/1 'Archivo', sans-serif;
  letter-spacing: .18em;
  text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, calc(100% - 12px) 100%, 0 100%);
}
body.v3[data-page="plateforme"] .ps-panel .section-title { color: #f4f1ea !important; }
body.v3[data-page="plateforme"] .ps-panel .title-rule { background: #ffa62b; }
body.v3[data-page="plateforme"] .ps-lede {
  max-width: 780px;
  margin: 0 0 44px;
  color: rgba(244, 241, 234, .82) !important;
  font: 400 17px/1.65 'Archivo', sans-serif;
}
body.v3[data-page="plateforme"] .ps-features {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0 0 44px;
  padding: 0;
  list-style: none;
}
body.v3[data-page="plateforme"] .ps-features li {
  position: relative;
  padding: 26px 24px 28px;
  background: rgba(244, 241, 234, .05);
  border: 1px solid rgba(244, 241, 234, .16);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
body.v3[data-page="plateforme"] .ps-features__num {
  display: block;
  margin-bottom: 14px;
  color: #ffa62b;
  font: 500 12px/1 'Archivo', sans-serif;
  letter-spacing: .2em;
}
body.v3[data-page="plateforme"] .ps-features h3 {
  margin: 0 0 10px;
  color: #f4f1ea;
  font: 400 21px/1.25 'Source Serif 4', serif;
}
body.v3[data-page="plateforme"] .ps-features p {
  margin: 0;
  color: rgba(244, 241, 234, .72) !important;
  font: 400 15px/1.55 'Archivo', sans-serif;
}
body.v3[data-page="plateforme"] .ps-cta { margin: 0; }
body.v3[data-page="plateforme"] .ps-cta .btn {
  background: #ffa62b;
  border: 1px solid #ffa62b;
  color: #092f4e;
}
body.v3[data-page="plateforme"] .ps-cta .btn:hover {
  background: transparent;
  color: #ffa62b;
}
@media (max-width: 900px) {
  body.v3[data-page="plateforme"] .ps-features { grid-template-columns: 1fr; }
  body.v3[data-page="plateforme"] main::after { height: 32px; }
}

body.v3[data-page="plateforme"] .ps-panel .ps-features li h3 { color: #f4f1ea !important; }
body.v3[data-page="plateforme"] .ps-panel .title-rule { background: #ffa62b !important; }
body.v3[data-page="plateforme"] .ps-panel .ps-cta a.btn {
  background: #ffa62b !important;
  border: 1px solid #ffa62b !important;
  color: #092f4e !important;
}
body.v3[data-page="plateforme"] .ps-panel .ps-cta a.btn:hover {
  background: transparent !important;
  color: #ffa62b !important;
}
body.v3[data-page="plateforme"] main .section--vision { padding-bottom: 72px !important; }

/* ============================================================
   Harmonisation finale : réduction légère de la taille des titres
   (FR + EN, toutes pages)
   ============================================================ */
body.v3 .hero__title { font-size: clamp(34px, 5.0vw, 68px); }
body.v3 .hero__title--mixed { font-size: clamp(34px, 5.0vw, 68px); }

/* Titres de pages intérieures (grand serif italique) */
body.v3:not([data-page="home-v3"]) .hero-banner__title,
body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title,
body.v3:not([data-page="home-v3"]) .hero-banner--image .hero-banner__title {
  font-size: clamp(38px, 5.4vw, 76px) !important;
}
@media (max-width: 768px) {
  body.v3:not([data-page="home-v3"]) .hero-banner__title,
  body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title,
  body.v3:not([data-page="home-v3"]) .hero-banner--image .hero-banner__title {
    font-size: clamp(30px, 8.6vw, 42px) !important;
  }
}

/* Titres de section */
body.v3 .section-title,
body.v3 .culture-block .section-title,
body.v3 .join-section h2,
body.v3 .vision__title,
body.v3 .section h2 { font-size: clamp(23px, 2.7vw, 35px); }
body.v3 .section h3 { font-size: clamp(17px, 1.6vw, 21px); }
body.v3 .member-profile--flip h2.section-title { font-size: clamp(28px, 3.4vw, 46px); }

/* ============================================================
   HARMONISATION GLOBALE (audit FR + EN, desktop + mobile)
   1. Aucun gras visible dans le contenu éditorial
   2. Échelle de titres unique
   3. Alignement des H1 sur la gouttière du logo
   ============================================================ */

/* --- 1. Suppression du gras --- */
body.v3 main strong,
body.v3 main b,
body.v3 .hero-banner strong,
body.v3 .vision-intro strong,
body.v3 .pillar-panel__lead strong,
body.v3 .pillar-panel__body strong,
body.v3 .culture-block strong,
body.v3 .article-body strong,
body.v3 .member-profile--flip .mp-bio p strong,
body.v3 .legal-body strong,
body.v3 .xp-eyebrow strong {
  font-weight: 400 !important;
}
/* Emphase maison : italique or discret à la place du gras */
body.v3 .pillar-panel__body strong,
body.v3 .pillar-panel__lead strong,
body.v3 .culture-block p strong {
  font-style: italic;
}
/* Libellés de métadonnées (fiches avocats, listes bureaux) : graisse normale, distinction par la casse */
body.v3 .member-profile__meta strong,
body.v3 .member-profile--flip .mp-meta-row strong,
body.v3 .bureaux-list__item strong,
body.v3 .join-block strong {
  font-weight: 400 !important;
}
/* Pages légales : libellés de définitions légèrement distincts (500 max) */
body.v3[data-page="mentions-legales"] main strong,
body.v3[data-page="legal-notice"] main strong,
body.v3[data-page="politique-confidentialite"] main strong,
body.v3[data-page="privacy-policy"] main strong {
  font-weight: 500 !important;
}

/* --- 2. Échelle de titres unique --- */
body.v3 .section-title,
body.v3 .culture-block .section-title,
body.v3 .join-section h2,
body.v3 .vision__title,
body.v3 .section h2,
body.v3 main section h2 {
  font-size: clamp(23px, 2.6vw, 33px) !important;
  font-weight: 400 !important;
}
body.v3 .member-profile--flip h2.section-title,
body.v3 .member-profile h2.section-title {
  font-size: clamp(26px, 3vw, 38px) !important;
  font-weight: 400 !important;
}
@media (max-width: 768px) {
  body.v3 .section-title,
  body.v3 .section h2,
  body.v3 main section h2 { font-size: 25px !important; }
}
/* Trait or sous les titres des pages légales */
body.v3[data-page="mentions-legales"] main section h2::after,
body.v3[data-page="legal-notice"] main section h2::after,
body.v3[data-page="politique-confidentialite"] main section h2::after,
body.v3[data-page="privacy-policy"] main section h2::after {
  content: "";
  display: block;
  width: 84px;
  height: 3px;
  margin-top: 14px;
  background: #ffa62b;
}

/* --- 3. Alignement des H1 sur la gouttière du logo --- */
body.v3 .hero-banner__inner,
body.v3 .hero__inner { padding-left: 36px; padding-right: 36px; }
@media (max-width: 768px) {
  body.v3 .hero-banner__inner,
  body.v3 .hero__inner { padding-left: 24px; padding-right: 24px; }
  body.v3:not([data-page="home-v3"]) .hero-banner__title,
  body.v3:not([data-page="home-v3"]) .hero-banner--gradient .hero-banner__title,
  body.v3:not([data-page="home-v3"]) .hero-banner--image .hero-banner__title {
    font-size: 34px !important;
  }
}

/* --- 4. Titres de pages sur une seule ligne (zone de texte élargie) --- */
body.v3[data-page="plateforme"] .hero-banner--gradient .hero-banner__title,
body.v3[data-page="platform"] .hero-banner--gradient .hero-banner__title {
  max-width: none !important;
  white-space: nowrap;
}
@media (max-width: 900px) {
  body.v3[data-page="plateforme"] .hero-banner--gradient .hero-banner__title,
  body.v3[data-page="platform"] .hero-banner--gradient .hero-banner__title {
    white-space: normal;
  }
}

/* Alignement mobile : même retrait que la home (24px) sur les pages intérieures */
@media (max-width: 768px) {
  body.v3 .hero-banner .hero-banner__inner,
  body.v3 .hero-banner .hero-banner__inner.container {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
}
@media (max-width: 768px) {
  body.v3 .hero-banner .hero-banner__inner,
  body.v3 .hero-banner .hero-banner__inner.container { margin-left: 0 !important; margin-right: 0 !important; }
}

/* Pages légales : alignement du contenu sur la gouttière du titre + espacement resserré */
body.v3[data-page="mentions-legales"] .section,
body.v3[data-page="legal-notice"] .section,
body.v3[data-page="politique-confidentialite"] .section,
body.v3[data-page="privacy-policy"] .section { padding-top: 24px !important; }
body.v3[data-page="mentions-legales"] .legal-content,
body.v3[data-page="legal-notice"] .legal-content,
body.v3[data-page="politique-confidentialite"] .legal-content,
body.v3[data-page="privacy-policy"] .legal-content {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 900px;
}
body.v3[data-page="mentions-legales"] .section__inner,
body.v3[data-page="legal-notice"] .section__inner,
body.v3[data-page="politique-confidentialite"] .section__inner,
body.v3[data-page="privacy-policy"] .section__inner {
  padding-left: 36px !important;
  padding-right: 36px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: none !important;
}
@media (max-width: 768px) {
  body.v3[data-page="mentions-legales"] .section__inner,
  body.v3[data-page="legal-notice"] .section__inner,
  body.v3[data-page="politique-confidentialite"] .section__inner,
  body.v3[data-page="privacy-policy"] .section__inner { padding-left: 24px !important; padding-right: 24px !important; }
}

/* Bandeau recrutement : pas de gras */
body.v3 .join-banner__links li span,
body.v3 .join-banner__links strong,
body.v3 .join-banner__body strong { font-weight: 400 !important; }

/* ============================================================
   ÉQUIPE — voile dégradé permanent sous les noms (lisibilité)
   ============================================================ */
body.v3 .team-grid--reveal .team-card__link::after {
  opacity: 1 !important;
  height: 58% !important;
  background: linear-gradient(to bottom, rgba(9, 47, 78, 0) 0%, rgba(9, 47, 78, 0.88) 82%) !important;
}
body.v3 .team-grid--reveal .team-card__link:hover::after,
body.v3 .team-grid--reveal .team-card__link:focus-visible::after {
  background: linear-gradient(to bottom, rgba(9, 47, 78, 0) 0%, rgba(9, 47, 78, 0.95) 78%) !important;
}
body.v3 .team-grid--reveal .team-card__name,
body.v3 .team-grid--reveal .team-card__role {
  opacity: 1 !important;
  transform: none !important;
  text-shadow: 0 1px 6px rgba(9, 47, 78, 0.55);
}

/* ============================================================
   TRAMES DIAGONALES — respiration d'opacité (option B)
   Les traits restent fixes, leur intensité oscille lentement.
   Désactivée si l'utilisateur préfère un mouvement réduit.
   ============================================================ */
@keyframes pledge-grid-breathe {
  0%, 100% { opacity: 0.55; }
  50%      { opacity: 1; }
}

body.v3[data-page="equipe"] .section--team::before,
body.v3[data-page="equipe"] .hero-banner--gradient::before,
body.v3[data-page="actualite"] .section--vision::before,
body.v3[data-page="actualite"] .hero-banner--gradient::before,
body.v3[data-page="contact"] .contact-section::before,
body.v3[data-page="contact"] .hero-banner--gradient::before,
body.v3[data-page="plateforme"] .hero-banner--gradient::before,
body.v3.pillars-page .pillar-panel::after,
body.v3.pillars-page .section--vision::before,
body.v3.v3-light:not([data-page="home-v3"]) main .section--team::before,
body.v3.v3-light:not([data-page="home-v3"]):not([data-page="vision"]):not([data-page="expertises"]) main .section--vision::before,
body.v3.v3-light:not([data-page="home-v3"]) main .contact-section::before,
body.v3.v3-light:not([data-page="home-v3"]) main .join-section::before,
body.v3[data-page="home-v3"] .vision::before,
body.v3[data-page="home-v3"] .section--bureaux::before,
body.v3[data-page="home-v3"] .section--awards::before,
body.v3 .hero-banner::after {
  animation: pledge-grid-breathe 20s ease-in-out infinite;
  will-change: opacity;
}

@media (prefers-reduced-motion: reduce) {
  body.v3[data-page="equipe"] .section--team::before,
  body.v3[data-page="equipe"] .hero-banner--gradient::before,
  body.v3[data-page="actualite"] .section--vision::before,
  body.v3[data-page="actualite"] .hero-banner--gradient::before,
  body.v3[data-page="contact"] .contact-section::before,
  body.v3[data-page="contact"] .hero-banner--gradient::before,
  body.v3[data-page="plateforme"] .hero-banner--gradient::before,
  body.v3.pillars-page .pillar-panel::after,
  body.v3.pillars-page .section--vision::before,
  body.v3.v3-light:not([data-page="home-v3"]) main .section--team::before,
  body.v3.v3-light:not([data-page="home-v3"]):not([data-page="vision"]):not([data-page="expertises"]) main .section--vision::before,
  body.v3.v3-light:not([data-page="home-v3"]) main .contact-section::before,
  body.v3.v3-light:not([data-page="home-v3"]) main .join-section::before,
  body.v3[data-page="home-v3"] .vision::before,
  body.v3[data-page="home-v3"] .section--bureaux::before,
  body.v3[data-page="home-v3"] .section--awards::before,
  body.v3 .section:has(.member-profile--flip),
  body.v3 .member-profile--flip .member-profile__expertises,
  body.v3 .hero-banner::after {
    animation: none !important;
  }
}

/* ============================================================
   MOBILE — audit & harmonisation (header, hero, accordéons)
   Ce bloc est volontairement en fin de fichier pour primer
   sur les règles desktop réécrites plus haut.
   ============================================================ */
@media (max-width: 900px) {
  /* --- Header : le logo reste visible et ne se comprime jamais --- */
  body.v3 .site-header > .container {
    justify-content: space-between;
    gap: 10px;
    flex-wrap: nowrap;
  }
  body.v3 .brand,
  body.v3.is-scrolled .brand {
    display: inline-flex !important;
    flex: 0 0 auto;
    min-width: 0;
  }
  body.v3 .brand__logo,
  body.v3.is-scrolled .brand__logo { height: 38px; width: auto; flex: 0 0 auto; }
  body.v3 .nav-actions {
    flex: 0 1 auto;
    width: auto;
    justify-content: flex-end;
    gap: 8px;
    min-width: 0;
  }
  body.v3 .round-btn,
  body.v3 .burger--square { flex: 0 0 auto; width: 40px; min-width: 40px; height: 40px; }
  body.v3 .header-menu { flex: 0 0 auto; }
}
@media (max-width: 720px) {
  /* Les liens texte passent dans le menu plein écran : on garde
     loupe + langue + burger pour éviter l'écrasement du logo. */
  body.v3 .nav-actions .pill-btn,
  body.v3 .nav-actions .pill-btn--platform { display: none !important; }
  body.v3 .brand__logo,
  body.v3.is-scrolled .brand__logo { height: 34px; }
}

/* --- Hero home : moins de vide au-dessus du slogan sur mobile --- */
@media (max-width: 640px) {
  body.v3[data-page="home-v3"] .hero__inner {
    padding-top: 118px !important;
    min-height: 0 !important;
    padding-bottom: 12px;
  }
  body.v3 .hero__pillar-label br { display: inline; }
  body.v3 .hero__scroll { margin-top: 20px; }
}

/* --- Hero intérieurs : hauteur et respirations resserrées --- */
@media (max-width: 640px) {
  body.v3 .hero-banner,
  body.v3 .hero-banner--gradient { min-height: 0; }
  body.v3 .hero-banner__inner,
  body.v3 .hero-banner--gradient .hero-banner__inner {
    padding-top: 112px;
    padding-bottom: 32px;
  }
}

/* --- Accordéons piliers / expertises : empilement propre --- */
@media (max-width: 860px) {
  body.v3.pillars-page .pillar-panel,
  body.v3.pillars-page[data-page="expertises"] .pillar-panel,
  body.v3.pillars-page[data-page="expertise"] .pillar-panel {
    grid-template-columns: 1fr !important;
    padding: 26px 20px 40px !important;
    gap: 20px;
  }
  body.v3.pillars-page.pillars-1 .vision-tabs__panels { margin-left: 0; }
  body.v3.pillars-page .pillar-cards { grid-template-columns: 1fr !important; }
  body.v3.pillars-page .pillar-panel__aside,
  body.v3.pillars-page .pillar-panel__body { min-width: 0; }
}

/* --- Piliers/Expertises : têtes d'accordéon lisibles en mobile --- */
@media (max-width: 1023px) {
  body.v3.pillars-page .pillar-bevel {
    display: flex !important;
    align-items: center;
    gap: 12px;
    padding: 14px 8px;
    text-align: left;
  }
  body.v3.pillars-page .pillar-bevel::before {
    margin: 0;
    flex: 0 0 auto;
    font-size: 16px;
  }
  body.v3.pillars-page .pillar-bevel__text { flex: 1 1 auto; min-width: 0; }
  body.v3.pillars-page .pillar-bevel .vision-tab__label {
    white-space: normal;
    font-size: 14px;
    letter-spacing: 0.12em;
  }
  /* la tête active reste visible et signalée (accordéon vertical) */
  body.v3.pillars-page .pillar-bevel.is-active {
    background: rgba(9, 47, 78, 0.06);
    border-left: 3px solid var(--color-accent, #ffa62b);
  }
  body.v3.pillars-page .pillar-bevel.is-active::before { color: var(--color-accent, #ffa62b); }
  body.v3.pillars-page .pillar-bevel.is-active .vision-tab__label { color: #092f4e; }
  /* le panneau ouvert suit toujours la liste des têtes */
  body.v3.pillars-page .vision-tabs__panels,
  body.v3.pillars-page.pillars-1 .vision-tabs__panels,
  body.v3.pillars-page.pillars-2 .vision-tabs__panels,
  body.v3.pillars-page.pillars-3 .vision-tabs__panels { order: 9; margin-left: 0; }
}

/* --- Fiches membres : moins de vide sous le header en mobile --- */
@media (max-width: 640px) {
  body.v3 .section--vision:has(.member-profile) { padding-top: 108px !important; }
}

/* Trame piliers/vision quasi invisible : on supprime la respiration
   qui forçait l'opacité à 0.55-1, et on fixe une opacité très faible. */
body.v3.pillars-page .section--vision::before {
  background-image:
    repeating-linear-gradient(112deg, rgba(9, 47, 78, 0.12) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(202deg, rgba(9, 47, 78, 0.12) 0 1px, transparent 1px 80px);
}
body.v3.pillars-page .pillar-panel::after {
  background-image: repeating-linear-gradient(
    112deg,
    rgba(253, 252, 248, 0.02) 0px,
    rgba(253, 252, 248, 0.02) 1px,
    transparent 1px,
    transparent 13px
  );
}
body.v3.pillars-page .section--vision::before,
body.v3.pillars-page .pillar-panel::after {
  animation: none;
  opacity: 0.005;
}
