/* =============================================================
   FMEDS — Brand Guidelines Override
   Loaded AFTER the Webflow CSS to remap colors, fonts & components
   ============================================================= */

/* --- CSS VARIABLE OVERRIDES --- */
:root {
  /* Colors */
  --light: #F8F7F4;          /* Warm White */
  --dark: #1A2744;            /* Navy Deep */
  --accent: #D4A017;          /* Gold */
  --bg: #EDF3F9;              /* Lightest navy wash */
  --border-dark: rgba(26,39,68,0.15);
  --border-light: rgba(255,255,255,0.15);
  --semi-transparent-dark: #1A2744;

  /* Fonts */
  --font--body: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
  --font--serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-heading: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  /* Titres : Montserrat ExtraLight */
  --font-title: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}

/* --- GLOBAL TYPOGRAPHY --- */
body {
  font-family: var(--font--body);
  color: var(--dark);
  line-height: 1.7;
}

h1, h2, h3, h4, h5, h6,
.text-h0, .text-h1, .text-h2, .text-h3, .text-h4, .text-h5, .text-h6 {
  font-family: var(--font-heading) !important;
  font-weight: 200 !important;
  color: inherit;
  line-height: 1.25;
}

/* Section / category titles: same font, size & weight everywhere
   (plain <h2> matches .text-h2 so they are identical) */
h2:not(.text-h0):not(.text-h1):not(.text-h3) {
  font-weight: 200 !important;
}

.text-body, .text-big, p {
  font-family: var(--font--body);
  font-size: 20px !important;
  line-height: 1.7;
}
.text-small {
  font-size: var(--text--text-small);
}
.text-semi-dark {
  color: #1A2744 !important;
}

/* --- TYPOGRAPHY UTILITIES --- */
/* Main hero heading (index, mission) */
.hero-h1 {
  font-size: clamp(2rem, 4.5vw, 4.5rem);
  line-height: 1.1;
  margin: 0;
  max-width: 820px;
}
/* Sub-page hero heading (about, services) */
.hero-h1-sub {
  font-size: clamp(2.5rem, 3.5vw, 4rem);
  line-height: 1.15;
  margin: 0;
  max-width: 820px;
}
/* Hero description paragraph */
.hero-subtext {
  max-width: 580px;
  margin-top: 1.5rem;
  line-height: 1.7;
  opacity: 0.8;
}
/* CTA section description paragraph */
.cta-description {
  font-family: var(--font--body);
  font-size: 1rem;
  color: rgba(255, 255, 255, 0.65);
  max-width: 560px;
  margin-top: 1.25rem;
  line-height: 1.7;
}
/* Muted text helper */
.text-muted { opacity: 1; color: #1A2744; }
/* Spacing helpers */
.mt-xs { margin-top: 0.25rem; }
.mt-sm { margin-top: 0.5rem; }
.mt-md { margin-top: 1rem; }
.mt-lg { margin-top: 1.5rem; }
.mt-xl { margin-top: 2rem; }

.label {
  font-family: var(--font--body);
  font-weight: 500;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  font-size: 16px;
}

/* --- LOGO --- */
.fmeds-logo {
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: 8px;
  text-transform: uppercase;
}
.fmeds-logo .logo-f {
  color: #D4A017;
}
.fmeds-logo .logo-meds {
  color: #1A2744;
}
/* Logo on dark backgrounds (navbar, dark sections) */
.navbar .fmeds-logo .logo-meds,
.section.cta-section .fmeds-logo .logo-meds,
.section.features-section .fmeds-logo .logo-meds {
  color: #FFFFFF;
}
/* Footer now on white background → navy logo */
.footer .fmeds-logo .logo-meds {
  color: #1A2744;
}

/* --- NAVBAR --- */
.navbar-master.sticky-navbar {
  background-color: transparent !important;
  top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}
.navbar-master {
  top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
.navbar.navbar-sticky {
  background-color: #FFFFFF !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  max-width: 100% !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}
.nav-container {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}
.brand-link-navbar {
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  background-color: transparent !important;
  border-radius: 0 !important;
  padding: 4px 10px;
}
/* Le logo garde toujours son ratio (jamais déformé en responsive). */
.brand-link-navbar img {
  height: 72px;
  width: auto !important;
  max-width: none !important;
  object-fit: contain;
}
/* Switcher de langue dans le menu : caché sauf dans le burger mobile. */
.fmeds-mobile-lang {
  display: none;
}

@media screen and (max-width: 991px) {
  /* Layout navbar mobile fiable : burger | logo ......... FR/EN  Contact */
  .navbar.navbar-sticky {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .nav-container {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: nowrap !important;
    column-gap: 8px !important;
  }
  .nav-left {
    flex: 0 1 auto !important;
    min-width: 0 !important;
  }
  /* Annule le centrage Webflow qui cassait la barre. */
  .brand-link-navbar {
    margin-left: 0 !important;
    margin-right: 0 !important;
    height: auto !important;
    padding: 4px 6px;
  }
  .brand-link-navbar img {
    height: 48px;
  }
  /* Burger visible et à gauche. */
  .navbar .menu-button.w-nav-button {
    display: flex !important;
    align-items: center;
    order: -1;
    flex: 0 0 auto;
  }
  .nav-right {
    flex: 0 0 auto !important;
    column-gap: 10px !important;
  }
  /* Icônes burger / croix */
  .menu-button .menu-close-icon {
    display: none;
  }
  .navbar.fmeds-nav-open .menu-button .menu-hamburger-icon {
    display: none;
  }
  .navbar.fmeds-nav-open .menu-button .menu-close-icon {
    display: block;
  }
  /* Panneau du menu mobile — styles repris du projet front-end (website_2) */
  .navbar.navbar-sticky {
    position: relative;
  }
  /* nav-left en statique pour que le panneau s'ancre à la navbar (pleine largeur). */
  .nav-left {
    position: static !important;
  }
  /* La barre (logo, burger, FR/EN, Contact) reste AU-DESSUS du panneau. */
  .menu-button.w-nav-button,
  .brand-menu-wrap,
  .nav-divider,
  .nav-right {
    position: relative;
    z-index: 20;
  }
  .navbar .nav-menu-wrap .w-nav-menu {
    display: none;
  }
  .navbar.fmeds-nav-open .nav-menu-wrap .w-nav-menu {
    display: flex !important;
    flex-direction: column;
    align-items: stretch;
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    position: absolute;
    top: 100%;
    left: -16px;
    right: -16px;
    z-index: 11;
    margin-top: 0;
    padding: 16px 32px 18px;
    max-height: 82vh;
    overflow: auto;
    background-color: var(--light);
    box-shadow: 0 14px 28px rgba(0,0,0,0.08);
    animation: fmedsNavIn 0.32s ease both;
  }
  /* Séparateurs pleine largeur entre les liens (comme le front-end). */
  .navbar.fmeds-nav-open .nav-menu-wrap .w-nav-menu .menu-divider {
    display: block;
    width: 100%;
    height: 1px;
    background-color: rgba(26,39,68,0.14);
    margin: 12px 0;
  }
  .navbar.fmeds-nav-open .nav-menu-wrap .w-nav-menu .navigation-link-hover-wrap {
    width: 100%;
  }
  .navbar.fmeds-nav-open .nav-menu-wrap .w-nav-menu .nav-link {
    display: inline-block !important;
    width: auto !important;
    padding: 0 0 2px !important;
    font-size: 16px !important;
    letter-spacing: 2px !important;
  }
  /* On évite le doublon FR/EN en haut sur mobile. */
  .nav-right .fmeds-lang-switcher {
    display: none;
  }
  /* Langues à la fin du burger. */
  .navbar.fmeds-nav-open .nav-menu-wrap .fmeds-mobile-lang {
    display: block;
    width: 100%;
    margin-top: 2px;
  }
  .navbar.fmeds-nav-open .nav-menu-wrap .fmeds-mobile-lang .fmeds-lang-switcher {
    display: flex;
    align-items: center;
    column-gap: 14px;
  }
  .navbar.fmeds-nav-open .nav-menu-wrap .fmeds-mobile-lang .fmeds-lang-link {
    font-family: var(--font-heading);
    font-size: 14px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
  }
}

/* Animation d'ouverture du menu mobile. */
@keyframes fmedsNavIn {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media screen and (max-width: 767px) {
  .brand-link-navbar img {
    height: 48px;
  }
}
@media screen and (max-width: 479px) {
  .brand-link-navbar img {
    height: 42px;
  }
}

/* --- HERO FULL SCREEN --- */
.section.hero-home-a {
  padding: 0 !important;
  margin: 0 !important;
  width: 100vw !important;
  max-width: 100% !important;
}
.home-a-video {
  min-height: 100vh !important;
  height: 100vh !important;
  width: 100% !important;
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .hero-home-img {
    width: 100% !important;
    height: 100vh !important;
    object-fit: cover !important;
    object-position: 60% center;
  }
}

.nav-link {
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: 16px;
  text-transform: uppercase;
  letter-spacing: 2.5px;
  color: #1A2744 !important;
  opacity: 0.75;
  transition: opacity 0.3s ease;
}
.nav-menu {
  grid-column-gap: 18px;
  column-gap: 18px;
}
.nav-link:hover, .nav-link:focus {
  opacity: 1;
  color: #1A2744 !important;
}
.navigation-link-hover-wrap:hover .nav-link {
  color: #1A2744 !important;
  opacity: 1;
}
.nav-link.w--current,
.w-nav-link.w--current {
  color: #1A2744 !important;
  opacity: 1;
  border-bottom: 2px solid #D4A017;
  padding-bottom: 2px;
}
.nav-divider {
  background-color: rgba(26,39,68,0.15);
}
.menu-hamburger-icon,
.menu-close-icon {
  filter: none;
}
.cart-button {
  color: #1A2744;
}

/* --- NAV MISSION BUTTON (gold accent) --- */
.cta-small.cta-mission {
  background-color: #D4A017;
  color: #FFFFFF;
  border-radius: 32px;
  margin-right: 8px;
}
.cta-small.cta-mission:hover {
  background-color: #E4BE55;
}

/* --- BUTTONS / CTA --- */
.cta-main {
  font-family: var(--font--body);
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.5px;
  border-radius: 4px;
  background-color: #1A2744;
  color: #FFFFFF;
  transition: background-color 0.3s ease;
}
.cta-main:hover {
  background-color: #2A3F63;
}
.cta-main.accent {
  background-color: #D4A017;
  color: #FFFFFF;
}
.cta-main.accent:hover {
  background-color: #E4BE55;
  color: #FFFFFF;
}
.cta-main.light {
  background-color: #F8F7F4;
  color: #1A2744;
}
.cta-main.transparent {
  background-color: transparent;
  color: #1A2744;
  border: 1.5px solid #1A2744;
}
.cta-main.transparent:hover {
  background-color: #1A2744;
  color: #FFFFFF;
}

/* --- FOOTER (same background as header → white) --- */
.footer {
  background-color: #FFFFFF;
  color: var(--dark);
  padding-top: 40px !important;
}
.footer h1, .footer h2, .footer h3,
.footer .text-h1, .footer .text-h2, .footer .text-h3,
.footer .text-h4, .footer .text-h5, .footer .text-h6 {
  color: var(--dark);
}
.footer .label {
  color: var(--dark);
  opacity: 0.6;
}
.footer .label.opacity-50 {
  color: var(--dark);
  opacity: 0.5;
}
.footer .footer-link {
  font-family: var(--font-heading);
  font-weight: 200;
  color: var(--dark);
  opacity: 0.7;
  transition: opacity 0.2s ease;
}
.footer .label,
.footer .label.opacity-50 {
  font-family: var(--font-heading);
  font-weight: 200;
}
.footer .footer-link:hover {
  opacity: 1;
  color: var(--dark);
}
.footer-legal-link {
  color: inherit;
  text-decoration: none;
  opacity: 0.8;
  transition: opacity 0.2s ease;
}
.footer-legal-link:hover {
  opacity: 1;
  text-decoration: underline;
}
.footer .text-small {
  color: var(--dark);
  opacity: 0.5;
  font-size: 12px;
}
.footer .social-link {
  color: var(--dark);
  opacity: 0.7;
}
.footer .social-link:hover {
  color: var(--dark);
  opacity: 1;
}
.footer .newsletter-form .text-field {
  background-color: #F8F7F4;
  border-color: rgba(26,39,68,0.15);
  color: var(--dark);
}
.footer .newsletter-form .text-field::placeholder {
  color: #1A2744;
}
.footer .footer-bottom-tile {
  border-top: 1px solid rgba(26,39,68,0.12);
}
/* Footer mobile : aérer le logo des colonnes en dessous */
@media screen and (max-width: 991px) {
  .footer .footer-left {
    margin-bottom: 40px;
  }
}

/* --- LINKS --- */
a.text-underline,
.footer a:not(.footer-link):not(.brand-link):not(.social-link) {
  color: inherit;
}

/* --- DARK SECTIONS (features, CTA, etc.) --- */
.section.features-section,
.section.cta-section,
.section.team-section,
.section.about-a-story-section,
.section.about-a-features-section,
.section.home-a-features-section,
.section.feature-slider-home-b {
  background-color: #1A2744;
  color: #FFFFFF;
}
.section.features-section .label,
.section.cta-section .label,
.section.home-a-features-section .label {
  color: #FFFFFF;
  opacity: 0.6;
}

/* --- SECTION PADDING HARMONISATION ---
   Each section: 80px top, 0 bottom.
   Space between sections = 80px (only from next section's top).
   Last section before CTA/footer gets 80px bottom too. */
.section,
.section.home-a-story-section,
.section.about-a-services-section,
.section.about-a-story-section,
.section.about-a-features-section,
.section.home-b-cases-section,
.section.home-a-about-section,
.section.services-home-a,
.section.engager-section,
.section.faq-section,
.section.home-b-about-template,
.section.about-a-faq,
.section.features-about-c,
.section.benefits-careers,
.section.services-expertise {
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}
.section + .section.cta-section {
  margin-top: 0;
}
.footer {
  margin-top: 0;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}
.section.hero-contact-a {
  padding-top: 120px !important;
  padding-bottom: 80px !important;
}
.section.hero-blog {
  padding-top: 160px !important;
  padding-bottom: 0 !important;
}
.section.hero-blog .headline-blog {
  margin-bottom: 0;
}
.section.hero-blog + .section {
  padding-top: 40px;
}
.section.hero-home-a {
  padding: 0 !important;
}
.section.stats-band-section {
  padding: 0 !important;
}
.section.hero-service-c {
  padding: 0 !important;
}
/* Reset large internal margins from webflow CSS */
.headline-cases-home-b,
.headline-story,
.headline-home-c-features,
.headline-services-about-a,
.headline-service-c {
  margin-bottom: 2rem !important;
  margin-top: 0 !important;
}
.story-halves,
.about-a-services-halves,
.case-halves-home-b {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

/* --- ACCENT-BG SECTIONS --- */
.section.home-b-about-template,
.section.sales-features-section {
  background-color: #EDF3F9;
}

/* --- FEATURE CARDS --- */
.feature-card-side {
  background-color: #F8F7F4;
  border: 1px solid rgba(26,39,68,0.1);
}
.feature-icon-wrap {
  color: #1A2744;
}

/* --- CTA SECTION circles --- */
.cta-video {
  background-color: #1A2744;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
}

/* --- HERO --- */
.section.hero-home-a {
  color: #FFFFFF;
  position: relative !important;
  margin-bottom: 0 !important;
  background-color: #1A2744 !important;
}
.section.hero-home-a .home-a-video {
  min-height: 100vh;
}

/* --- SECTION DIVIDERS --- */
.section-divider {
  border-bottom-color: rgba(26,39,68,0.15);
}

/* --- SERVICE LIST (about-a style) --- */
.text-blured {
  color: #1A2744;
  transition: opacity 0.3s ease, filter 0.3s ease, color 0.3s ease;
}

/* Quand on survole le conteneur : les autres items s'estompent légèrement */
.service-list-about-a:hover .text-blured {
  opacity: 0.5;
}

/* L'item survolé : net, texte doré, pas de flou */
.service-list-about-a .text-blured:hover {
  opacity: 1;
  filter: none;
  color: #D4A017;
}

.service-list-about-a {
  display: flex;
  flex-direction: column;
  gap: 1.75rem;
}

.service-list-about-a .text-h0 {
  font-size: clamp(2rem, 4.5vw, 4rem);
  line-height: 1.05;
}

/* --- FORM FIELDS --- */
.text-field {
  border-color: rgba(26,39,68,0.2);
  background-color: #FFFFFF;
}
.text-field:focus {
  border-color: #1A2744;
  box-shadow: none;
}

/* --- MISC --- */
.feature-moving-card {
  border-color: rgba(26,39,68,0.1);
}
.faq-horizontal, .faq-vertical {
  background-color: #1A2744;
}

/* --- FORCE SQUARE CORNERS EVERYWHERE --- */
*,
*::before,
*::after {
  border-radius: 0 !important;
}

/* ============================================================
   NOUVEAUX COMPOSANTS — Modifications FMEDS_Modifications.md
   ============================================================ */

/* --- FAQ ACCORDION --- */
.expandable-bottom {
  display: none !important;
  overflow: hidden;
  padding-top: 0;
  padding-bottom: 0;
}
.expandable-single.is-open .expandable-bottom {
  display: flex !important;
  padding-bottom: 12px;
}
.expandable-single.is-open .faq-vertical {
  opacity: 0;
  transition: opacity 0.2s ease;
}
.faq-section {
  background-color: #F8F7F4;
}
.faq-left {
  padding-top: 0.5rem;
}
.faq-heading {
  margin-top: 1rem;
}
.expandable-single {
  cursor: pointer;
}

/* --- STATS BAND (chiffres-clés après hero) --- */
.stats-band {
  background-color: #1A2744;
  color: #FFFFFF;
  padding: 40px 0;
}
.section.stats-band-section + .section {
  padding-top: 40px !important;
}
.stats-band-section {
  padding: 0 !important;
}
.stats-band-grid {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.stats-band-item {
  text-align: center;
  flex: 1;
  padding: 0.5rem 1rem;
}
.stats-band-number {
  color: #D4A017;
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4vw, 4rem);
  font-weight: 600;
  line-height: 1;
  display: block;
}
.stats-band-label {
  font-family: var(--font--body);
  font-size: 12px;
  opacity: 0.7;
  margin-top: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  display: block;
}
.stats-band-divider {
  width: 1px;
  height: 48px;
  background-color: rgba(255,255,255,0.2);
  flex-shrink: 0;
}

/* --- REASSURANCE BAR --- */
.reassurance-bar {
  background-color: #EDF3F9;
  padding: 1.25rem 0;
  border-top: 1px solid rgba(26,39,68,0.08);
  border-bottom: 1px solid rgba(26,39,68,0.08);
}
.reassurance-bar-text {
  text-align: center;
  font-family: var(--font--body);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2.5px;
  text-transform: uppercase;
  color: #1A2744;
  opacity: 1;
}

/* --- PRÉSENTATION FMEDS COURTE --- */
.fmeds-short-desc {
  max-width: 680px;
}
.fmeds-short-desc p {
  font-family: var(--font-heading);
  font-size: clamp(1rem, 1.5vw, 1.2rem);
  line-height: 1.8;
  color: #1A2744;
  font-style: italic;
}

/* --- PROCESS STEPS (4 étapes mission) --- */
.process-steps-intro {
  max-width: 620px;
  margin-bottom: 2.5rem;
}
.process-steps-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 2rem;
  margin-top: 1rem;
}
.process-step-card {
  border-top: 2px solid #D4A017;
  padding-top: 1.5rem;
  padding-right: 1rem;
}
.process-step-number {
  font-family: var(--font-heading);
  font-size: 3rem;
  font-weight: 600;
  color: #D4A017;
  line-height: 1;
  margin-bottom: 0.75rem;
}
.process-step-title {
  font-family: var(--font--body);
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 0.6rem;
  color: #1A2744;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.process-step-text {
  font-family: var(--font--body);
  font-size: 14px;
  color: #1A2744;
  line-height: 1.65;
}

/* --- POUR QUI (4 cartes audiences) --- */
.pour-qui-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 2.5rem;
}
.pour-qui-card {
  padding: 2rem;
  background-color: #F8F7F4;
  border-top: 2px solid rgba(26,39,68,0.15);
}
.pour-qui-card-title {
  font-family: var(--font--body);
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 0.6rem;
  color: #1A2744;
}
.pour-qui-card-text {
  font-family: var(--font--body);
  font-size: 14px;
  color: #1A2744;
  line-height: 1.65;
}

/* --- BOOK SHOWCASE (Le livre) --- */
.book-showcase {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 3rem;
  align-items: start;
  background-color: #EDF3F9;
  padding: 3rem;
}
.book-cover-placeholder {
  width: 160px;
  height: 230px;
  background-color: #1A2744;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
  flex-shrink: 0;
}
.book-cover-placeholder span {
  color: #D4A017;
  font-family: var(--font-heading);
  font-size: 0.75rem;
  letter-spacing: 2px;
  text-transform: uppercase;
  text-align: center;
  padding: 0 1rem;
}
.book-info {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.book-title {
  font-family: var(--font-heading);
  font-size: 1.75rem;
  font-weight: 600;
  color: #1A2744;
  margin: 0;
  line-height: 1.3;
}
.book-author {
  font-family: var(--font--body);
  font-size: 13px;
  opacity: 1;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.book-summary {
  font-family: var(--font--body);
  font-size: 15px;
  line-height: 1.7;
  color: #1A2744;
  max-width: 540px;
}

/* --- "VOIR TOUTES LES PUBLICATIONS" — bouton sous les articles sur mobile --- */
.publications-all-btn-mobile {
  display: none;
  background-color: #D4A017 !important;
  color: #FFFFFF !important;
}
.publications-all-btn-mobile:hover {
  background-color: #E4BE55 !important;
}
@media screen and (max-width: 767px) {
  .headline-cases-home-b .cta-booking {
    display: none;
  }
  .publications-all-btn-mobile {
    display: inline-flex;
    margin-top: 1.5rem;
    margin-bottom: 0;
  }
  .section.home-b-cases-section {
    padding-bottom: 40px;
  }
}

/* --- DERNIERS ARTICLES --- */
.articles-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}
.articles-section-heading {
  margin-top: 0.5rem;
  margin-bottom: 1.75rem;
}
.articles-section-divider {
  border-bottom: 1px solid rgba(26,39,68,0.12);
  margin-bottom: 2rem;
}
.article-excerpt {
  font-family: var(--font--body);
  font-size: 14px;
  color: #1A2744;
  margin-top: 0.5rem;
  line-height: 1.6;
}

/* --- ENGAGER FMEDS — Light card style --- */
.section.engager-section {
  background-color: var(--light);
}
.engager-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  background-color: #E4E2DD;
  min-height: 540px;
  overflow: hidden;
}
.engager-card-left {
  padding: 3.5rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.5rem;
}
.engager-card-right {
  overflow: hidden;
  position: relative;
}
.engager-card-right img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.engager-card-intro {
  margin-top: 0.75rem;
  color: #1A2744;
  max-width: 460px;
  line-height: 1.65;
  font-size: 16px;
}
.engager-features-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.75rem 2rem;
}
.engager-feature {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.engager-feature-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: #1A2744;
  margin-top: 3px;
}
.engager-feature-label {
  font-family: var(--font--body);
  font-size: 16px;
  font-weight: 600;
  color: #1A2744;
  line-height: 1.3;
}
.engager-feature-desc {
  font-family: var(--font--body);
  font-size: 14px;
  color: #1A2744;
  margin-top: 0.25rem;
  line-height: 1.5;
}
@media (max-width: 991px) {
  .engager-card {
    grid-template-columns: 1fr;
  }
  .engager-card-right {
    height: 300px;
    position: relative;
  }
}
@media (max-width: 767px) {
  .engager-card-left {
    padding: 2rem;
  }
  .engager-features-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --- FOOTER CTA STRIP FUSIONNÉ --- */
.footer-cta-strip {
  background-color: #1E2E55;
  padding: 3.5rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.footer-cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}
.footer-cta-headline {
  font-family: var(--font-heading);
  font-size: clamp(1.75rem, 3vw, 2.5rem);
  font-weight: 600;
  color: #FFFFFF;
  margin: 0;
  line-height: 1.2;
}
.footer-cta-sub {
  font-family: var(--font--body);
  font-size: 15px;
  color: rgba(255,255,255,0.65);
  margin-top: 0.5rem;
  max-width: 500px;
}

/* --- PAGE FAUX MÉDICAMENTS — GRILLE CHIFFRES (4 + 3 pleine largeur) --- */
.chiffres-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.chiffres-grid .home-number-feature {
  background-color: #FFFFFF;
  border: 1px solid rgba(26, 39, 68, 0.10);
}
@media screen and (max-width: 991px) {
  .chiffres-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media screen and (max-width: 600px) {
  .chiffres-grid {
    grid-template-columns: 1fr;
  }
}

/* --- BLOCS IMAGE + TEXTE : image = exactement 50% --- */
.story-halves {
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.about-a-services-halves {
  grid-template-columns: 1fr 1fr;
  align-items: center;
}
.about-a-services-image {
  max-width: none;
}
/* Bloc services : image à DROITE, texte à GAUCHE */
.about-a-services-halves .about-a-services-image {
  grid-column: 2;
  grid-row: 1;
}
.about-a-services-halves .about-a-services-right {
  grid-column: 1;
  grid-row: 1;
}
@media screen and (max-width: 991px) {
  .about-a-services-halves {
    grid-template-columns: 1fr;
  }
  .about-a-services-halves .about-a-services-image,
  .about-a-services-halves .about-a-services-right {
    grid-column: auto;
    grid-row: auto;
  }
}

/* --- PAGE PUBLICATIONS — FILTRES (logique gérée plus tard via WordPress) --- */
.publications-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.75rem;
}
.pub-filter {
  font-family: var(--font--body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.3px;
  padding: 8px 18px;
  border: 1px solid rgba(26, 39, 68, 0.25);
  background: transparent;
  color: #1A2744;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
.pub-filter:hover {
  border-color: #1A2744;
}
.pub-filter.is-active {
  background-color: #1A2744;
  color: #FFFFFF;
  border-color: #1A2744;
}

/* --- Blog grid & article cards (same style as homepage blocks) --- */
.blog-grid {
  grid-template-columns: 1fr 1fr !important;
  grid-row-gap: 32px !important;
  grid-column-gap: 32px !important;
}
.article-card-blog {
  position: relative;
  overflow: hidden;
  min-height: 220px;
  transition: background-color 0.3s ease;
}
.article-card-blog:not(.has-image):not(.long):hover {
  background-color: #E8F0F8;
}
.article-card-blog.has-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(80, 130, 200, 0.55), rgba(80, 130, 200, 0.75));
  transition: background 0.3s ease;
  z-index: 1;
}
.article-card-blog.has-image:hover::after {
  background: linear-gradient(180deg, rgba(80, 130, 200, 0.45), rgba(80, 130, 200, 0.65));
}
.home-article-card {
  background-color: #EDF3F9;
  padding: 2rem;
  text-decoration: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  transition: background-color 0.3s ease;
}
.home-article-card:hover {
  background-color: #E8F0F8;
}
.article-card-blog.long {
  min-height: 220px;
}
.blog-pinned-wrap {
  margin-bottom: 32px;
  width: 50%;
  max-width: 50%;
  box-sizing: border-box;
  padding-right: 12px;
}
.article-card-blog.has-image {
  background-color: var(--dark);
  color: var(--light);
}
.article-card-blog.has-image .case-card-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.article-card-blog.has-image .case-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-card-blog.has-image .case-home-b-bottom-tile {
  position: relative;
  z-index: 2;
}
.article-card-blog:not(.has-image):not(.long) {
  background-color: var(--bg);
  color: var(--dark);
}
.article-card-blog.long:not(.has-image) {
  background-color: var(--dark);
  color: var(--light);
}
.article-cta {
  margin-top: auto;
  display: inline-block;
  padding: 10px 22px;
  font-size: 14px;
  border-radius: 4px;
}

@media screen and (max-width: 991px) {
  .blog-pinned-wrap {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 0;
  }
  .blog-grid {
    grid-template-columns: 1fr !important;
  }
  .blog-grid .article-card-blog {
    grid-area: auto !important;
  }
  .article-card-blog.long {
    min-height: 280px;
  }
}

/* "Voir toutes les publications" button — gold accent */
.headline-cases-home-b .cta-booking {
  background-color: #D4A017;
  border-color: #D4A017;
  color: #FFFFFF;
  border-radius: 4px;
  padding: 10px 22px;
  font-weight: 500;
}
.headline-cases-home-b .cta-booking:hover {
  background-color: #E4BE55;
  border-color: #E4BE55;
  color: #FFFFFF;
}

/* --- Pagination blog --- */
.fmeds-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 3rem;
}
.fmeds-pagination .page-numbers {
  font-family: var(--font--body);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.3px;
  padding: 8px 18px;
  border: 1px solid rgba(26, 39, 68, 0.25);
  background: transparent;
  color: #1A2744;
  text-decoration: none;
  transition: background-color .2s, color .2s, border-color .2s;
}
.fmeds-pagination .page-numbers:hover {
  border-color: #1A2744;
}
.fmeds-pagination .page-numbers.current {
  background-color: #1A2744;
  color: #FFFFFF;
  border-color: #1A2744;
}

/* --- CTA UNIFIÉ (toutes les pages, contenu image) --- */
.section.cta-section.cta-unified {
  position: relative;
  padding: 0 !important;
  margin-top: 80px;
  overflow: hidden;
}
.cta-unified .cta-bg-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.cta-unified .cta-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(80, 130, 200, 0.60), rgba(80, 130, 200, 0.80));
  z-index: 1;
}
.cta-unified-inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding-top: 160px;
  padding-bottom: 160px;
}
.cta-icon {
  width: 64px;
  height: 64px;
  border: 2px solid #D4A017;
  border-radius: 50% !important;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #D4A017;
  margin-bottom: 1.75rem;
}
.cta-icon svg {
  width: 30px;
  height: 30px;
}
.cta-unified-title {
  color: #FFFFFF;
  margin: 0;
}
.cta-unified-divider {
  width: 56px;
  height: 2px;
  background-color: #D4A017;
  margin: 1.5rem 0;
}
.cta-unified-sub {
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--font--body);
  font-size: 1.1rem;
  max-width: 520px;
  margin: 0 0 2.25rem;
  line-height: 1.6;
}
.cta-unified-buttons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  justify-content: center;
}
.cta-unified-btn {
  padding: 14px 28px !important;
  font-size: 15px !important;
  font-weight: 500;
}
.cta-main.transparent-light {
  background-color: transparent;
  color: #FFFFFF;
  border: 1.5px solid rgba(255, 255, 255, 0.5);
}
.cta-main.transparent-light:hover {
  background-color: #FFFFFF;
  color: #1A2744;
}

/* --- SERVICES PAGE — HERO INTRO (repris de A propos, contenu image 2) --- */
.services-hero-intro .accent-dot {
  color: #D4A017;
}
.services-hero-intro .hero-h1-sub {
  max-width: 820px;
}
.services-hero-text {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.25rem;
}
.services-hero-divider {
  width: 64px;
  height: 2px;
  background-color: #D4A017;
}
.services-hero-accent-line {
  display: none;
}

/* --- SERVICES PAGE — GRILLE EXPERTISES (3 + 2 cartes, fond navy) --- */
.section.services-expertise {
  background-color: var(--light);
  color: #1A2744;
}
.section.services-expertise .text-h0 {
  color: #1A2744;
}
.services-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.5rem;
}
.services-grid .service-card {
  grid-column: span 2;
  background-color: #FFFFFF;
  border: 1px solid rgba(26, 39, 68, 0.12);
  width: auto;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  height: auto;
  scroll-margin-top: 100px;
}
.services-grid .service-card:nth-child(4) {
  grid-column: 2 / span 2;
}
.services-grid .service-card:nth-child(5) {
  grid-column: 4 / span 2;
}
.service-card-text {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex: 1 1 auto;
}
.service-card-text .text-h3 {
  color: #1A2744;
  margin: 0;
}
.service-card-text p {
  color: #1A2744;
  font-size: 15px;
  line-height: 1.65;
  margin: 0;
}
.service-card-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.service-card-list li {
  position: relative;
  padding-left: 1.25rem;
  color: #1A2744;
  font-size: 20px;
  line-height: 1.7;
}
.service-card-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 6px;
  height: 6px;
  background-color: #D4A017;
}
.service-card-img {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 0;
  height: 200px;
  overflow: hidden;
}
.service-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.service-card-btn {
  align-self: center;
  padding: 12px 24px !important;
  font-size: 14px !important;
  font-weight: 500;
}
.service-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-self: center;
  margin-top: 1.5rem;
  justify-content: center;
}
.service-card-btn-secondary {
  background-color: transparent !important;
  color: var(--dark) !important;
  border: 1px solid var(--border-dark) !important;
}
.service-card-btn-secondary:hover {
  background-color: var(--dark) !important;
  color: #fff !important;
}

/* --- HEADER CONTACT BUTTON — gold accent (POINTS 08/06) --- */
.menu-cta-wrap .cta-small {
  background-color: var(--accent);
  color: #FFFFFF;
  border-radius: 32px;
}
.menu-cta-wrap .cta-small:hover {
  background-color: #E4BE55;
  color: #FFFFFF;
}
@media screen and (max-width: 991px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .services-grid .service-card,
  .services-grid .service-card:nth-child(4),
  .services-grid .service-card:nth-child(5) {
    grid-column: span 1;
  }
}
@media screen and (max-width: 767px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
  .service-card-img {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    height: 220px;
    overflow: hidden;
  }
  .service-card-img img {
    height: 100%;
    object-fit: cover;
  }
}

/* --- SERVICE PHARMA INTRO BLOCK --- */
.svc-pharma-intro-section {
  padding-top: 60px !important;
  padding-bottom: 0 !important;
}
.svc-pharma-intro {
  max-width: 70%;
}
.svc-pharma-intro p {
  font-size: 17px;
  line-height: 1.75;
  color: #1A2744;
  margin: 0 0 1.25rem;
}
.svc-pharma-intro p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 767px) {
  .svc-pharma-intro {
    max-width: 100%;
  }
}

/* --- MENTIONS LÉGALES --- */
.page-legal .section {
  padding-top: 140px !important;
  padding-bottom: 80px !important;
}
.page-legal .text-h1 {
  margin-bottom: 2.5rem;
}
.page-legal .post-body h2 {
  margin-top: 2.5rem;
  margin-bottom: 0.5rem;
}
.page-legal .post-body p {
  margin-bottom: 0.75rem;
  line-height: 1.7;
  font-size: 15px;
}
.page-legal .post-body a {
  color: #1A2744;
  text-decoration: underline;
}

/* --- MISSION PAGE SPECIFICS --- */
.section.mission-stats-section {
  background-color: #0E1628;
  color: #FFFFFF;
  padding: 4rem 0;
}
.mission-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 2rem;
  text-align: center;
}
.mission-stat-number {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 5vw, 4.5rem);
  font-weight: 600;
  color: #D4A017;
  line-height: 1;
  display: block;
}
.mission-stat-label {
  font-family: var(--font--body);
  font-size: 13px;
  opacity: 0.7;
  margin-top: 0.75rem;
  line-height: 1.5;
  display: block;
}

.section.aline-statement-section {
  background-color: #F8F7F4;
}
.aline-statement-inner {
  max-width: 740px;
  margin: 0 auto;
}
.aline-statement-inner p {
  font-family: var(--font-heading);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.9;
  color: #1A2744;
  font-style: italic;
  margin-bottom: 1.25rem;
}
.aline-statement-inner p:last-of-type {
  margin-bottom: 0;
}
.aline-signature {
  margin-top: 2rem;
  font-family: var(--font--body);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #1A2744;
}

.section.mission-actions-section {
  background-color: #1A2744;
  color: #FFFFFF;
}
.section.mission-actions-section .label {
  color: #FFFFFF;
  opacity: 0.6;
}
.mission-action-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  margin-top: 2.5rem;
}
.mission-action-card {
  padding: 2rem;
  border-top: 2px solid #D4A017;
  background-color: rgba(255,255,255,0.04);
}
.mission-action-number {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  font-weight: 600;
  color: #D4A017;
  line-height: 1;
  margin-bottom: 0.75rem;
}
.mission-action-title {
  font-family: var(--font--body);
  font-weight: 600;
  font-size: 14px;
  color: #FFFFFF;
  margin-bottom: 0.6rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.mission-action-text {
  font-family: var(--font--body);
  font-size: 14px;
  color: rgba(255,255,255,0.65);
  line-height: 1.65;
  margin-bottom: 1rem;
}

.section.mission-form-section {
  background-color: var(--light);
  color: var(--dark);
}
.section.mission-form-section .label,
.section.mission-form-section h2,
.section.mission-form-section p {
  color: var(--dark);
}
.section.mission-form-section p {
  opacity: 0.75;
}
.section.mission-form-section .text-field {
  background-color: #FFFFFF;
  border-color: rgba(0,0,0,0.15);
  color: var(--dark);
}
.section.mission-form-section .text-field::placeholder {
  color: rgba(0,0,0,0.35);
}

/* --- RESPONSIVE FIXES --- */
@media screen and (max-width: 991px) {
  .process-steps-grid {
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (max-width: 767px) {
  .stats-band-grid {
    flex-wrap: wrap;
    justify-content: center;
  }
  .stats-band-item {
    min-width: 45%;
  }
  .stats-band-divider {
    display: none;
  }
  .pour-qui-grid {
    grid-template-columns: 1fr;
  }
  .book-showcase {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 2rem;
  }
  .book-cover-placeholder {
    margin: 0 auto;
  }
  .footer-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .mission-stats-grid {
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
  }
  .mission-action-grid {
    grid-template-columns: 1fr;
  }
}
@media screen and (max-width: 479px) {
  .process-steps-grid {
    grid-template-columns: 1fr;
  }
  .articles-section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem;
  }
}

/* ============================================================
   RESPONSIVE — HOME & À PROPOS
   ============================================================ */

/* 991px — tablette */
@media screen and (max-width: 991px) {
  /* Héros (services / didier / about) : compenser le navbar fixe (~95px) */
  .service-c-master {
    padding-top: 175px !important;
  }
  /* La fondatrice : image + texte en colonne */
  .story-halves {
    grid-template-columns: 1fr !important;
  }
  /* Engager card : déjà géré mais on s'assure que le 3-col inline passe en 2-col */
  .engager-features-grid {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* 767px — mobile */
@media screen and (max-width: 767px) {
  /* About / Services / Didier : héro mobile — garder l'espace sous le navbar fixe */
  .service-c-master {
    padding-bottom: 80px !important;
  }
  /* Méthode FMEDS : grille inline 3-col → 1-col */
  .home-a-grid {
    grid-template-columns: 1fr !important;
  }
  /* Formation & distinctions : 2-col → 1-col */
  .home-a-features-grid {
    grid-template-columns: 1fr !important;
  }
  /* "Pour qui" : label + grille en colonne */
  .numbers-halves {
    grid-template-columns: 1fr !important;
  }
  .number-features-grid {
    grid-template-columns: 1fr !important;
  }
  /* Derniers articles : reset grid-area inline pour mobile */
  .case-card-home-b {
    grid-area: auto !important;
  }
  /* Engager features : inline repeat(3,1fr) → 1-col */
  .engager-features-grid {
    grid-template-columns: 1fr !important;
  }
  /* Liste services : espacement réduit */
  .service-list-about-a {
    gap: 1rem;
  }
  /* Footer CTA */
  .footer-cta-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* 479px — petit mobile */
@media screen and (max-width: 479px) {
  /* About : padding héro mobile */
  .service-c-master {
    padding-bottom: 60px !important;
  }
  /* Stats band : items pleine largeur, colonne */
  .stats-band-grid {
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
  }
  .stats-band-item {
    min-width: 100% !important;
  }
  /* Titres sur mobile très petit */
  .service-list-about-a .text-h0 {
    font-size: clamp(1.75rem, 8vw, 2.5rem);
  }
}

/* --- MOBILE NAV FIXES --- */
.mobile-only-nav-item {
  display: none;
}

@media screen and (max-width: 991px) {
  /* Dropdown : suppression bordure + espace vide en haut */
  .nav-menu {
    border: none !important;
    box-shadow: none !important;
    margin-top: 0 !important;
    padding-top: 24px !important;
  }
  /* Links visible: white text on light dropdown background */
  .nav-link,
  .nav-link:hover,
  .nav-link:focus {
    color: #1A2744 !important;
    opacity: 0.85;
  }
  .nav-link.w--current,
  .w-nav-link.w--current {
    color: #1A2744 !important;
    opacity: 1;
    border-bottom-color: #D4A017;
  }
  .navigation-link-hover-wrap:hover .nav-link {
    color: #1A2744 !important;
    opacity: 1;
  }
  /* Show La Mission in mobile dropdown only */
  .mobile-only-nav-item {
    display: block;
  }
  /* Hide La Mission CTA button next to Contact on mobile */
  .cta-small.cta-mission {
    display: none;
  }
}

/* --- MODALE PARCOURS FONDATRICE --- */
.parcours-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
}
.parcours-modal.is-open {
  display: block;
}
.parcours-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 39, 68, 0.6);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.parcours-modal-dialog {
  position: relative;
  max-width: 760px;
  margin: 6vh auto;
  background: var(--light);
  border-radius: 10px;
  max-height: 88vh;
  overflow-y: auto;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
  animation: parcoursIn 0.25s ease;
}
@keyframes parcoursIn {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: none; }
}
.parcours-modal-close {
  position: absolute;
  top: 12px;
  right: 16px;
  background: none;
  border: none;
  font-size: 2rem;
  line-height: 1;
  color: var(--dark);
  cursor: pointer;
  opacity: 0.55;
  transition: opacity 0.2s ease;
}
.parcours-modal-close:hover {
  opacity: 1;
}
.parcours-modal-body {
  padding: 48px clamp(24px, 5vw, 56px);
}
.parcours-modal-body p {
  margin-top: 1rem;
  line-height: 1.7;
}
.parcours-modal-points {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 32px;
  margin-top: 32px;
  padding-top: 28px;
  border-top: 1px solid var(--border-dark);
}
.parcours-point {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.parcours-point-icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(212, 160, 23, 0.12);
  color: var(--accent);
}
.parcours-point-icon svg {
  width: 24px;
  height: 24px;
}
.parcours-point-title {
  font-weight: 600;
  color: var(--dark);
  line-height: 1.3;
}
.parcours-point-sub {
  opacity: 0.7;
  font-size: 0.95rem;
  margin-top: 3px;
}
body.parcours-open {
  overflow: hidden;
}
@media screen and (max-width: 640px) {
  .parcours-modal-points {
    grid-template-columns: 1fr;
  }
}

/* --- LANGUAGE SWITCHER (FR/EN) --- */
.fmeds-lang-switcher {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.fmeds-lang-header {
  margin-right: 16px;
}
.fmeds-lang-link {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  font-weight: 500;
  color: var(--dark);
  opacity: 0.55;
  text-decoration: none;
  transition: opacity 0.2s ease, color 0.2s ease;
}
.fmeds-lang-link:hover {
  opacity: 1;
}
.fmeds-lang-link.is-active {
  opacity: 1;
  color: var(--accent);
}
.fmeds-lang-sep {
  opacity: 0.3;
  font-size: 0.82rem;
}
/* Footer variant inherits footer-link color (light on dark) */
.fmeds-lang-footer .fmeds-lang-link {
  color: inherit;
}
.fmeds-lang-footer .fmeds-lang-link.is-active {
  color: var(--accent);
}

/* --- HIDE BUTTON ARROWS EVERYWHERE --- */
.button-arrow,
.cta-arrow {
  display: none !important;
}

/* --- SINGLE SERVICE: hero intro paragraphs (matches didier.html) --- */
.service-hero-intro-text {
  margin-top: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  max-width: 760px;
  color: #fff;
}
.service-hero-intro-text p {
  margin: 0;
  opacity: 0.78;
}
.service-hero-intro-text p:first-child {
  font-size: 1.35rem;
  line-height: 1.5;
  opacity: 0.9;
}

/* ===== IMAGE OVERLAYS — bleu clair (POINTS 08/06) =====
   Voile bleu clair sur les photos de contenu + conversion des
   overlays noirs hérités (.overlay-20) en bleu marine de marque. */
.overlay-20 {
  background-color: rgba(80, 130, 200, 0.45) !important;
}
.story-image-wrap,
.about-a-services-image,
.image-wrap-blog,
.case-card-image,
.service-card-img {
  position: relative;
}
.section.home-a-story-section {
  margin-top: 80px;
}
.story-right {
  gap: 20px !important;
}
.story-image-wrap {
  height: auto !important;
  aspect-ratio: 3 / 4;
  max-width: 560px;
  margin: 0 auto;
}
.story-image-wrap.no-overlay::after {
  content: none;
}
.story-image-wrap::after,
.about-a-services-image::after,
.image-wrap-blog::after,
.case-card-image::after,
.service-card-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(80, 130, 200, 0.45);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

/* --- ARTICLE : liens dorés dans le corps --- */
.post-body a {
  color: #D4A017;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s;
}
.post-body a:hover {
  color: #E4BE55;
}

/* --- ARTICLE HERO BLOCK (aligned with navbar) --- */
.article-hero-wrap {
  max-width: 1800px;
  margin: 0 auto;
  padding: 0 24px;
  margin-top: 120px;
}
.article-hero-block {
  position: relative;
  overflow: hidden;
  background-color: #EDF3F9;
  color: var(--dark);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 400px;
  padding: 60px 48px;
  border-radius: var(--radius--small);
}
.article-hero-block .article-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
.article-hero-block.has-image::after {
  content: "";
  position: absolute;
  inset: 0;
  background-color: rgba(80, 130, 200, 0.45);
  z-index: 1;
}
.article-hero-block.has-image {
  color: var(--light);
}
.article-hero-block .article-hero-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  max-width: 800px;
}
.article-hero-block .article-category-wrap {
  opacity: 0.7;
}
.article-hero-block .text-h1 {
  color: inherit;
}
.section.body-article {
  padding-top: 40px !important;
}
@media screen and (max-width: 767px) {
  .article-hero-block {
    min-height: 280px;
    padding: 40px 24px;
  }
  .main-container.article-container {
    max-width: 100%;
    padding-left: 16px;
    padding-right: 16px;
  }
}

/* --- CONTACT & ARTICLE : mêmes marges latérales --- */
.hero-contact-a .main-container,
.body-article .main-container {
  max-width: 1320px;
  padding-left: 32px;
  padding-right: 32px;
}

/* --- CONTACT : colonnes égales, la droite remplit jusqu'au bord --- */
.hero-contact-a .contact-a-halves {
  display: grid !important;
  grid-template-columns: 2fr 1fr !important;
  align-items: stretch !important;
  gap: 48px !important;
}
@media screen and (max-width: 991px) {
  .hero-contact-a .contact-a-halves {
    grid-template-columns: 1fr !important;
  }
}

.contact-info-stack {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 16px;
  width: 100%;
  height: 100%;
}
.contact-info-card {
  padding: 1.25rem;
}

/* --- CONTACT : bloc rendez-vous vertical (à la place de l'image) --- */
.contact-a-right {
  display: flex;
  max-width: none !important;
  width: 100%;
  height: 100%;
}
.contact-cta-vertical {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  min-height: 480px;
  border-radius: 14px;
}
.contact-cta-vertical .cta-unified-inner {
  height: 100%;
  justify-content: center;
  padding: 56px 40px;
}
.contact-cta-vertical .cta-unified-title {
  font-size: clamp(1.6rem, 2.4vw, 2.2rem) !important;
}
.contact-cta-vertical .cta-unified-sub {
  font-size: 1rem;
  margin-bottom: 1.75rem;
}
@media screen and (max-width: 991px) {
  .contact-cta-vertical {
    height: auto;
    min-height: 0;
  }
  .contact-cta-vertical .cta-unified-inner {
    height: auto;
    padding: 48px 28px;
  }
}

/* ===== GLOBAL HEADING DOWNSCALE (POINTS 08/06) =====
   Titres plus petits sur tout le site. On réduit l'échelle Webflow
   (variables) + les surcharges responsives + les titres hero (clamp). */
:root {
  --heading--h0: 96px;
  --heading--h1: 72px;
  --heading--h2: 52px;
  --heading--h3: 42px;
  --heading--h4: 28px;
  --heading--h5: 22px;
  --heading--h6: 18px;
}
.service-list-about-a .text-h0 {
  font-size: clamp(1.6rem, 3.4vw, 2.8rem) !important;
}
@media screen and (max-width: 991px) {
  h1:not(.hero-h1-sub):not(.hero-h1), .text-h1 { font-size: 60px !important; }
  h2, .text-h2 { font-size: 44px !important; }
  h3, .text-h3 { font-size: 36px !important; }
  h4, .text-h4 { font-size: 24px !important; }
  h5, .text-h5 { font-size: 20px !important; }
  .text-h0 { font-size: 72px !important; }
}
@media screen and (max-width: 767px) {
  h1:not(.hero-h1-sub):not(.hero-h1), .text-h1 { font-size: 48px !important; }
  h2, .text-h2 { font-size: 36px !important; }
  h3, .text-h3 { font-size: 30px !important; }
  h4, .text-h4 { font-size: 28px !important; }
  h5, .text-h5 { font-size: 18px !important; }
  .text-h0 { font-size: 56px !important; }
}

/* --- PUBLICATIONS GRID (accueil) --- */
.home-publications-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media screen and (max-width: 767px) {
  .home-publications-grid {
    grid-template-columns: 1fr;
  }
}

/* --- FOUNDER CREDENTIALS — 3 columns (POINTS 08/06) --- */
.founder-creds-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  grid-template-rows: auto !important;
  row-gap: 2rem !important;
  margin-top: 0.5rem !important; /* première rangée plus près du texte au-dessus */
}
/* Espace icône → texte de chaque crédential. */
.founder-creds-grid .home-a-about-card {
  gap: 0.25rem !important;
}
.founder-creds-grid .icon-home-a-feature {
  margin-bottom: 0.15rem !important;
}
.founder-creds-grid .home-a-feature-bottom-tile .text-body {
  font-size: 17px !important;
}
@media screen and (max-width: 991px) {
  .founder-creds-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }
}
@media screen and (max-width: 767px) {
  .founder-creds-grid {
    grid-template-columns: 1fr 1fr !important;
    column-gap: 1rem !important;
    row-gap: 1.25rem !important;
    margin-top: 0.75rem !important;
  }
}
@media screen and (max-width: 479px) {
  .founder-creds-grid {
    grid-template-columns: 1fr 1fr !important;
    column-gap: 0.75rem !important;
    row-gap: 1rem !important;
  }
}
