/* ============================================================
   EliteMed — Enhancements v2.3
   ============================================================ */

/* ── HTML/BODY — allow natural document height (Lenis compat) ── */
html {
  height: auto !important;
}
body {
  min-height: 100vh;
  overflow-x: hidden;
}



/* ── INTRO CURTAIN ─────────────────────────────────────────── */
#em-intro {
  position: fixed; inset: 0; background: #0a0a0a;
  z-index: 9999; pointer-events: none; transform-origin: top;
}

/* ── SCROLL PROGRESS ───────────────────────────────────────── */
#em-progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0%;
  background: linear-gradient(90deg, #C8A96E, #E8C98A);
  z-index: 10001; pointer-events: none;
}

/* ── CUSTOM CURSOR ─────────────────────────────────────────── */
@media (hover: hover) and (pointer: fine) {
  * { cursor: none !important; }
  #em-cursor-dot {
    position: fixed; top: 0; left: 0; width: 6px; height: 6px;
    background: #fff; border-radius: 50%; pointer-events: none;
    z-index: 10000; transform: translate(-50%,-50%); mix-blend-mode: difference;
  }
  #em-cursor-ring {
    position: fixed; top: 0; left: 0; width: 36px; height: 36px;
    border: 1px solid rgba(255,255,255,0.5); border-radius: 50%;
    pointer-events: none; z-index: 9999; transform: translate(-50%,-50%);
    transition: width .25s, height .25s, border-color .25s; mix-blend-mode: difference;
  }
  body.cursor-link #em-cursor-ring { width: 56px; height: 56px; border-color: #C8A96E; }
  body.cursor-link #em-cursor-dot  { background: #C8A96E; }
}

/* ── NAVBAR GLASS ──────────────────────────────────────────── */
.nav-bar {
  transition: background .4s, backdrop-filter .4s, box-shadow .4s;
  position: relative; z-index: 100;
}
.nav-scrolled {
  background: rgba(10,10,10,.82) !important;
  backdrop-filter: blur(16px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(16px) saturate(160%) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,.06) !important;
}

/* ── TEXT REVEAL ───────────────────────────────────────────── */
.word-wrap { overflow: hidden; display: inline-block; vertical-align: bottom; }
.word      { display: inline-block; transform: translateY(110%); opacity: 0; }
.word-scrub{ display: inline-block; opacity: 0.08; }

/* ── GRADIENT BORDER BUTTONS ───────────────────────────────── */
@property --em-angle {
  syntax: "<angle>"; inherits: false; initial-value: 0deg;
}
@keyframes em-border-spin { to { --em-angle: 360deg; } }

/* WHITE background CTAs — keep white fill, dark text visible */
.link-block,
.link-block-3,
.link-block-4,
.link-block-6,
.link-block-9,
.link-block-12 {
  position: relative;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    conic-gradient(from var(--em-angle),
      rgba(200,169,110,0) 0%, #C8A96E 25%, rgba(200,169,110,0) 50%
    ) border-box !important;
  border: 2px solid transparent !important;
  animation: em-border-spin 3s linear infinite paused;
}
.link-block:hover,
.link-block-3:hover,
.link-block-4:hover,
.link-block-6:hover,
.link-block-9:hover,
.link-block-12:hover { animation-play-state: running; }

/* WHITE-LB variant (dark-on-white card on services page) */
.link-block-8.white-lb {
  position: relative;
  background:
    linear-gradient(#ffffff, #ffffff) padding-box,
    conic-gradient(from var(--em-angle),
      rgba(200,169,110,0) 0%, #C8A96E 25%, rgba(200,169,110,0) 50%
    ) border-box !important;
  border: 2px solid transparent !important;
  animation: em-border-spin 3s linear infinite paused;
}
.link-block-8.white-lb:hover { animation-play-state: running; }

/* DARK background CTAs — keep dark fill, white text visible */
.link-block-2,
.link-block-5,
.link-block-7,
.link-block-8:not(.white-lb),
.link-block-10 {
  position: relative;
  background:
    linear-gradient(#212121, #212121) padding-box,
    conic-gradient(from var(--em-angle),
      rgba(200,169,110,0) 0%, #C8A96E 25%, rgba(200,169,110,0) 50%
    ) border-box !important;
  border: 2px solid transparent !important;
  animation: em-border-spin 3s linear infinite paused;
}
.link-block-2:hover,
.link-block-5:hover,
.link-block-7:hover,
.link-block-8:not(.white-lb):hover,
.link-block-10:hover { animation-play-state: running; }

/* Ensure text colors are never overridden */
.text-block   { color: #212121 !important; }
.text-block-3 { color: #fff !important; }
.text-block-4 { color: #212121 !important; }
.text-block-10{ color: #212121 !important; }
.text-block-11{ color: #fff !important; }
.text-block-12{ color: #212121 !important; }
.text-block-13{ color: #212121 !important; }
.text-block-21{ color: #fff !important; }
.text-block-24{ color: #fff !important; }
.text-block-26{ color: #212121 !important; }

/* ── PRESS HOVER IMAGES ─────────────────────────────────────── */
.article-2 { position: relative; overflow: visible; }
.article-2::before {
  content: ''; position: absolute; left: 0; bottom: 0;
  width: 0; height: 1px; background: #C8A96E;
  transition: width .4s cubic-bezier(.4,0,.2,1);
}
.article-2:hover::before { width: 100%; }
.article-2 .text-block-34 { transition: color .3s, letter-spacing .3s; }
.article-2:hover .text-block-34 { color: #C8A96E; letter-spacing: .04em; }

.em-press-img {
  position: fixed; width: 260px; height: 180px; object-fit: cover;
  pointer-events: none; z-index: 500;
  opacity: 0; transform: scale(.88) rotate(-2deg);
  transition: opacity .25s ease, transform .25s cubic-bezier(.34,1.4,.64,1);
  border: 1px solid rgba(200,169,110,.3);
  box-shadow: 0 20px 60px rgba(0,0,0,.25);
}
.em-press-img.visible { opacity: 1; transform: scale(1) rotate(0deg); }

/* ── LOGO MARQUEE — no fade edges ───────────────────────────── */
.logo-section .div-block-19 { overflow: hidden; }
.logo-section .div-block-18 { overflow: hidden; display: flex; }
.em-marquee-track {
  display: flex; align-items: center; gap: 60px;
  animation: em-marquee 22s linear infinite;
  white-space: nowrap; width: max-content; flex-shrink: 0;
}
@keyframes em-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── TESTIMONIALS MARQUEE ───────────────────────────────────── */
.em-testimonials-viewport {
  overflow: hidden;
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
  position: relative;
  display: block;
}
.em-testimonials-track {
  display: flex; gap: 24px; width: max-content;
  animation: em-testimonials-scroll 35s linear infinite; padding: 16px 0;
}
.em-testimonials-track.paused { animation-play-state: paused; }
@keyframes em-testimonials-scroll {
  from { transform: translateX(0); } to { transform: translateX(-50%); }
}
.em-t-card {
  background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: 8px;
  padding: 28px; width: 320px; flex-shrink: 0;
  display: flex; flex-direction: column; gap: 20px;
  box-shadow: 0 2px 20px rgba(0,0,0,.05);
  transition: box-shadow .3s, transform .3s cubic-bezier(.34,1.4,.64,1);
}
.em-t-card:hover { box-shadow: 0 10px 40px rgba(0,0,0,.10); transform: translateY(-4px); }
.em-t-card-stars { height: 16px; opacity: .8; }
.em-t-card-quote { font-family: Helvetica,Arial,sans-serif; font-size: 13.5px; line-height: 1.65; color: #444; margin: 0; }
.em-t-card-author { display: flex; align-items: center; gap: 12px; }
.em-t-card-avatar {
  width: 38px; height: 38px; border-radius: 50%; background: #212121;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.em-t-card-initials { color: #fff; font-size: 12px; font-family: Helvetica,Arial,sans-serif; font-weight: 600; letter-spacing: .05em; }
.em-t-card-name { font-family: Helvetica,Arial,sans-serif; font-size: 13px; font-weight: 600; color: #212121; margin: 0; }
.em-t-card-role { font-family: Helvetica,Arial,sans-serif; font-size: 12px; color: #888; margin: 0; }
.testimonials { background: #fff !important; }

/* ── BURGER MENU ────────────────────────────────────────────── */
.nav-bar .navigation { display: none !important; }

/* FIX: Burger must float above the overlay regardless of nav z-index stacking context */
.em-burger {
  position: fixed !important;   /* breaks out of nav stacking context */
  top: 16px;
  right: 24px;
  background: none; border: none; cursor: none; padding: 10px;
  display: flex; flex-direction: column; gap: 5px;
  z-index: 9998;                /* above overlay z-index:150 */
}
.em-burger span {
  display: block; width: 26px; height: 1.5px; background: #fff;
  transition: background .3s, transform .35s cubic-bezier(.4,0,.2,1), opacity .3s;
  transform-origin: center;
}

/* Dark burger — used on white-bg pages (services page, or after scroll) */
.em-burger.dark span { background: #212121 !important; }

/* Open state — always white X on dark overlay */
.em-burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); background: #fff !important; }
.em-burger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.em-burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); background: #fff !important; }

/* Overlay */
.em-menu-overlay {
  position: fixed; inset: 0; background: #212121; z-index: 150;
  display: flex; flex-direction: column; padding: 0 40px 40px;
  clip-path: inset(0 0 100% 0);
  transition: clip-path .65s cubic-bezier(.76,0,.24,1);
  pointer-events: none;
}
.em-menu-overlay.open { clip-path: inset(0 0 0% 0); pointer-events: all; }

.em-menu-top {
  height: 80px; display: flex; align-items: center;
  justify-content: space-between; flex-shrink: 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.em-menu-logo { height: 28px; filter: brightness(0) invert(1); }

.em-menu-items {
  flex: 1; display: flex; flex-direction: column;
  justify-content: center; gap: 4px;
}
.em-menu-item {
  display: flex; align-items: center;
  text-decoration: none; padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  transform: translateY(30px); opacity: 0;
  transition: transform .5s cubic-bezier(.22,1,.36,1), opacity .4s ease;
  overflow: hidden;
}
.em-menu-overlay.open .em-menu-item { transform: translateY(0); opacity: 1; }
.em-menu-overlay.open .em-menu-item:nth-child(1) { transition-delay: .20s; }
.em-menu-overlay.open .em-menu-item:nth-child(2) { transition-delay: .28s; }
.em-menu-overlay.open .em-menu-item:nth-child(3) { transition-delay: .36s; }

.em-menu-arrow {
  display: flex; align-items: center;
  width: 0; opacity: 0; overflow: hidden; flex-shrink: 0;
  transition: width .3s cubic-bezier(.34,1,.64,1), opacity .25s ease;
}
.em-menu-arrow svg { width: 44px; height: 44px; stroke: #C8A96E; flex-shrink: 0; }
.em-menu-item:hover .em-menu-arrow { width: 54px; opacity: 1; }

.em-menu-label {
  font-family: Helvetica,Arial,sans-serif;
  font-size: clamp(32px,5vw,52px); font-weight: 400;
  color: rgba(255,255,255,.85); letter-spacing: -.02em; line-height: 1.1;
  transition: color .25s ease, transform .3s cubic-bezier(.34,1,.64,1);
}
.em-menu-item:hover .em-menu-label { color: #C8A96E; transform: translateX(4px); }

.em-menu-footer {
  display: flex; justify-content: space-between; align-items: flex-end;
  padding-top: 24px; border-top: 1px solid rgba(255,255,255,.08);
}
.em-menu-tagline {
  font-family: Helvetica,Arial,sans-serif; font-size: 11px;
  color: rgba(255,255,255,.3); letter-spacing: .1em; text-transform: uppercase;
}

/* ── GOLD ACCENT LINES ──────────────────────────────────────── */
.heading-3::after, .heading-4::after, .heading-16::after, .heading-17::after {
  content: ''; display: block; width: 40px; height: 2px;
  background: #C8A96E; margin-top: 16px;
  transform: scaleX(0); transform-origin: left;
  transition: transform .6s .4s cubic-bezier(.4,0,.2,1);
}
.heading-3.em-line-visible::after, .heading-4.em-line-visible::after,
.heading-16.em-line-visible::after, .heading-17.em-line-visible::after { transform: scaleX(1); }

/* ── NAV LINK UNDERLINE ─────────────────────────────────────── */
.link { position: relative; }
.link::after {
  content: ''; position: absolute; bottom: -2px; left: 0;
  width: 0; height: 1px; background: #C8A96E; transition: width .3s ease;
}
.link:hover::after, .link.w--current::after { width: 100%; }

/* ── REVEAL INITIAL STATE ───────────────────────────────────── */
.em-reveal { opacity: 0; transform: translateY(40px); }

/* ── FOOTER SHIMMER ─────────────────────────────────────────── */
.footer > .div-block-29 { position: relative; overflow: visible; }
.footer > .div-block-29::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(200,169,110,.04) 50%, transparent 70%);
  background-size: 200% 100%; animation: em-shimmer 4s ease infinite;
}
@keyframes em-shimmer { 0% { background-position: 200% center; } 100% { background-position: -200% center; } }

/* ── KEY FIGURES ────────────────────────────────────────────── */
.text-block-6 { display: inline-block; transition: transform .3s cubic-bezier(.34,1.56,.64,1); }
.div-block-16:hover .text-block-6 { transform: scale(1.06); }

/* ── MAGNETIC WILL-CHANGE ───────────────────────────────────── */
.link-block-2,.link-block-3,.link-block-4,.link-block-5,
.link-block-6,.link-block-7,.link-block-8,.link-block-9,
.link-block-10,.link-block-12 { will-change: translate; }

/* ── CONTACT HERO — overlay + content layering ─────────────── */
.contact-bg .nav-bar,
.contact-bg .bloc-text { position: relative; z-index: 2; }


/* ── FOOTER ACCESSIBILITY FIX ───────────────────────────────── */
/* Services: sticky cards need explicit scroll context */
.section-2 {
  position: relative;
  z-index: 0;
}
.card1 {
  position: sticky !important;
  top: 30px;
  z-index: 1;
}
/* Ensure footer always renders above sticky context */

/* About-us: individual-profiles must not trap layout */
.individual-profiles {
  overflow: visible !important;
  display: flex !important;
}
.div-block-77 {
  overflow: visible !important;
}

/* em-reveal: never use transform on section-level containers */
.individual-profiles .em-reveal,
.section-2 .em-reveal,
.key-datas .em-reveal {
  transform: none !important;
  opacity: 1 !important;
}

/* ── SERVICES CARDS — image same height as text column ─────── */
/* div-block-45 is the 2-col grid: image left (2fr), text right (1fr) */
.div-block-45 {
  align-items: stretch !important; /* stretch both columns to equal height */
}
.div-block-45 > div:first-child {
  display: flex;
  align-items: stretch;
  min-height: 400px;
}
.div-block-45 > div:first-child img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── NAVBAR LOGO — larger on all pages ─────────────────────── */
.logo-nav img,
.image-7,
.image-8 {
  width: auto !important;
  height: 44px !important;  /* up from ~28px default */
}

/* Override the responsive 100px rule too */


/* ── FOOTER SOCIAL NETWORK — accessible scrolling ──────────── */
section.footer {
  position: relative;
  z-index: 10;
  isolation: isolate;
  overflow: visible !important;
}

/* Ensure social network row is always on top within footer */
.social-network {
  position: relative;
  z-index: 1;
}

/* Add bottom breathing room so last elements aren't cut off */
.div-block-32 {
  padding-bottom: env(safe-area-inset-bottom, 16px);
}

/* ── SERVICES sticky cards — properly close stacking context ── */
.section-stack {
  position: relative;
  z-index: 0;
  isolation: isolate;
}


/* ================================================================
   RESPONSIVE CONSOLIDÉ — EliteMed (toutes plages, source unique)
   1440px = référence, non modifié.
   Ordre: mobile-first, puis desktop.
   ================================================================ */

/* ── ≤ 320px — iPhone SE / très petits écrans ──────────────── */
@media screen and (max-width: 320px) {
  .paragraph,.paragraph-4,.paragraph-5,
  .paragraph-6,.paragraph-8   { width: 100% !important; }
  .heading-2, .heading-3      { width: 100% !important; }
  .heading   { font-size: 22px !important; line-height: 28px !important; }
  .heading-2 { font-size: 18px !important; line-height: 23px !important; }
  .bloc-text { padding: 16px !important; }
  .div-block-2  { gap: 10px !important; }
  .div-block-7  { grid-template-columns: 1fr !important; margin-top: 30px !important; }
  .div-block-16 { gap: 24px !important; padding: 14px !important; }
  .div-block-77 { grid-template-columns: 1fr !important; }
  .div-block-81 > img { height: 260px !important; }
  .logo-nav img,.image-7,.image-8 { height: 28px !important; }
  .em-press-img { display: none !important; }
}

/* ── ≤ 440px — base mobile (inclut 320, 375, 393, 430, 440) ── */
@media screen and (max-width: 440px) {
  .em-burger { top: 14px; right: 16px; }
  .em-burger span { width: 22px; }
  .em-menu-overlay { padding: 0 24px 32px; }
  .em-menu-top { height: 68px; }
  .em-menu-label { font-size: clamp(26px, 8vw, 36px); }
  .logo-nav img,.image-7,.image-8 { height: 32px !important; }
  .heading   { font-size: 26px !important; line-height: 33px !important; }
  .heading-2 { font-size: 20px !important; line-height: 25px !important; }
  .heading-7 { font-size: 22px !important; line-height: 28px !important; }
  .paragraph { width: 100% !important; font-size: 13px !important; }
  .paragraph-4 { width: 100% !important; }
  .div-block-7  { grid-template-columns: 1fr !important; margin-top: 40px !important; }
  .div-block-45 { grid-template-columns: 1fr !important; gap: 0 !important; }
  .div-block-45 > div:first-child { min-height: 220px !important; max-height: 260px; }
  .div-block-47 { padding: 20px 0 0 !important; }
  .heading-11 { font-size: 20px !important; line-height: 26px !important; }
  .text-block-23,.text-white-card2 { font-size: 12.5px !important; line-height: 1.6 !important; }
  .div-block-15 { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .div-block-16 { min-width: 240px !important; }
  .em-t-card { width: 270px !important; padding: 20px !important; }
  .em-t-card-quote { font-size: 12px !important; }
  .heading-17 { font-size: 26px !important; }
  .text-block-34 { font-size: 13px !important; }
  .logo-section .div-block-18 img { height: 22px !important; }
  .footer { height: auto !important; }
  .div-block-29 { flex-direction: column !important; gap: 24px !important; }
  .div-block-30 { margin-bottom: 20px !important; }
  .social-network { flex-direction: column !important; gap: 20px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr !important; gap: 16px !important; }
  .div-block-81 > img { height: 320px !important; }


  /* merged additions */
/* Hero section 2: force single column */
  .div-block-6 {
    flex-direction: column !important;
    gap: 24px !important;
  }
  .div-block-5 {
    width: 100% !important;
    justify-content: flex-start !important;
  }
  .div-block-3 { width: 100% !important; }

  /* heading-2: prevent overflow, single column */
  .heading-2 {
    font-size: 20px !important;
    line-height: 26px !important;
    width: 100% !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* KPI section: horizontal scroll, show all 3 cards */
  .key-figures { overflow: hidden !important; }
  .div-block-14 { flex-direction: column !important; gap: 16px !important; }
  .div-block-15 {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 12px !important;
    padding-bottom: 16px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .div-block-15 .div-block-16 {
    min-width: 260px !important;
    max-width: 80vw !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    gap: 16px !important;
  }

  /* Press section: single column */
  .press-section { padding: 40px 20px !important; }
  .article-1, .article-2 {
    flex-direction: column !important;
    gap: 8px !important;
    padding: 16px 0 !important;
  }
  .text-block-31, .text-block-32, .text-block-33 { font-size: 11px !important; }
  .text-block-34 { font-size: 14px !important; }
  .text-block-35 { font-size: 12px !important; }

  /* Back-to-top square */
  .div-block-64 {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
  }

  /* Team section: horizontal scroll */
  .individual-profiles { overflow: hidden !important; }
  .div-block-77 {
    display: flex !important;
    flex-direction: row !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 14px !important;
    padding-bottom: 16px !important;
  }
  .div-block-81 {
    min-width: 260px !important;
    max-width: 75vw !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }
  .div-block-81 > img { height: 340px !important; }

  /* Contact: align everything left */
  .bloc-text.bloc-contact {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 24px !important;
    flex-direction: column !important;
  }
  .bloc-contact .div-block-2 { width: 100% !important; }
  .bloc-contact .div-block-61 { width: 100% !important; }
  .bloc-contact .form-block { width: 100% !important; }

  /* Consultation section: single column */
  .div-block-65 {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
}

/* ── ≤ 393px — iPhone 15 Pro (override subset du bloc 440) ─── */
@media screen and (max-width: 393px) {
  .heading   { font-size: 24px !important; line-height: 30px !important; }
  .heading-2 { font-size: 19px !important; line-height: 24px !important; }
  .bloc-text { padding: 20px !important; }
  .div-block-45 > div:first-child { min-height: 180px !important; }
  .div-block-77 { grid-template-columns: 1fr !important; }
  .text-block-6 { font-size: 32px !important; }
  .heading-13   { font-size: 28px !important; }
  .em-press-img { display: none !important; }
  .em-t-card { width: 250px !important; }
}

/* ── 394–440px — iPhone 15 Plus / grands Android ─────────────── */
@media screen and (min-width: 394px) and (max-width: 440px) {
  .heading { font-size: 27px !important; line-height: 34px !important; }
  .div-block-45 > div:first-child { min-height: 240px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr !important; }
  .text-block-6 { font-size: 36px !important; }
}

/* ── 441–767px — grand téléphone paysage + petite tablette ──── */
@media screen and (min-width: 441px) and (max-width: 767px) {
  .paragraph,.paragraph-4,
  .paragraph-5,.paragraph-6  { width: 100% !important; }
  .heading-2 { width: 100% !important; font-size: 26px !important; line-height: 32px !important; }
  .heading-3,.heading-4 { font-size: 28px !important; line-height: 34px !important; }
  .heading-7 { font-size: 26px !important; line-height: 32px !important; }
  .bloc-text { padding: 24px !important; }
  .bloc-text.bloc-home,.bloc-text.bloc-contact { flex-direction: column !important; }
  .div-block-7  { grid-template-columns: 1fr !important; }
  .div-block-21 { grid-template-columns: 1fr !important; }
  .div-block-45 { grid-template-columns: 1fr !important; }
  .div-block-45 > div:first-child { min-height: 260px !important; }
  .div-block-47 { padding: 16px 0 0 !important; }
  .div-block-15 { grid-template-columns: 1fr 1fr !important; }
  .div-block-16 { gap: 40px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr !important; }
  .div-block-81 > img { height: 320px !important; }
  .text-field { width: 100% !important; box-sizing: border-box !important; }
  .logo-nav img,.image-7,.image-8 { height: 30px !important; }
  .em-burger { top: 14px; right: 14px; }


  /* merged additions */
/* heading-2 overflow fix */
  .heading-2 {
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* KPI: horizontal scroll */
  .div-block-15 {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: flex !important;
    gap: 12px !important;
    padding-bottom: 12px !important;
  }
  .div-block-15 .div-block-16 {
    min-width: 280px !important;
    flex-shrink: 0 !important;
  }

  /* Back-to-top square */
  .div-block-64 {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    flex-shrink: 0 !important;
  }

  /* Team: 2-col or scroll */
  .div-block-65 { grid-template-columns: 1fr !important; }
}

/* ── 768–1023px — iPad portrait / grand tablet ──────────────── */
@media screen and (min-width: 768px) and (max-width: 1023px) {
  .paragraph,.paragraph-4    { width: 100% !important; }
  .heading-2 { width: 100% !important; font-size: 30px !important; line-height: 38px !important; }
  .heading-3,.heading-4 { font-size: 32px !important; line-height: 40px !important; }
  .heading-7 { font-size: 30px !important; line-height: 38px !important; }
  .heading-5,.heading-6 { font-size: 24px !important; }
  .bloc-text { padding: 32px !important; }
  .div-block-45 { grid-template-columns: 1fr 1fr !important; gap: 30px !important; }
  .div-block-45 > div:first-child { min-height: auto !important; }
  .div-block-21 { grid-template-columns: 1fr 1fr !important; }
  .div-block-15 { grid-template-columns: 1fr 1fr 1fr !important; }
  .div-block-16 { gap: 50px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr !important; }
  .div-block-81 > img { height: 400px !important; }
  .text-field { width: 100% !important; }
  .nav-bar { padding: 20px 32px !important; }
  .logo-nav img,.image-7,.image-8 { height: 36px !important; }
}

/* ── 1024–1279px — iPad paysage / petit laptop ──────────────── */
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  .paragraph   { width: auto !important; max-width: 360px; }
  .paragraph-4 { width: auto !important; max-width: 420px; }
  .heading-2 { width: 600px !important; font-size: 34px !important; line-height: 42px !important; }
  .heading-3,.heading-4 { font-size: 34px !important; line-height: 42px !important; }
  .heading-7 { font-size: 34px !important; }
  .nav-bar { padding: 20px 48px !important; }
  .key-figures,.service-section,
  .logo-section,.press-section { padding: 50px 48px !important; }
  .div-block-45 { gap: 32px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr 1fr 1fr !important; }
  .div-block-81 > img { height: 440px !important; }
  .logo-nav img,.image-7,.image-8 { height: 38px !important; }
}

/* ── 1280–1439px — laptop standard ─────────────────────────── */
@media screen and (min-width: 1280px) and (max-width: 1439px) {
  .logo-nav img,.image-7,.image-8 { height: 40px !important; width: auto !important; }
  .heading   { font-size: 50px !important; line-height: 62px !important; }
  .heading-2 { font-size: 38px !important; line-height: 46px !important; width: 680px !important; }
  .heading-3,.heading-4 { font-size: 38px !important; line-height: 46px !important; }
  .heading-7 { font-size: 38px !important; line-height: 46px !important; }
  .paragraph   { width: auto !important; max-width: 400px; }
  .paragraph-4 { width: auto !important; max-width: 480px; }
  .paragraph-6 { width: auto !important; }
  .div-block-45 { gap: 40px !important; }
  .footer { height: auto !important; padding: 50px !important; }
  .div-block-77 { grid-template-columns: 1fr 1fr 1fr 1fr !important; }
  .div-block-81 > img { height: 480px !important; }
  .em-menu-label { font-size: clamp(36px, 3.5vw, 48px); }
}

/* ── 1440–1919px — correction footer uniquement (référence ok) */
@media screen and (min-width: 1440px) and (max-width: 1919px) {
  .footer { height: auto !important; }
}

/* ── 1920–2559px — grand desktop ────────────────────────────── */
@media screen and (min-width: 1920px) and (max-width: 2559px) {
  .nav-bar { padding: 28px 80px !important; }
  .logo-nav img,.image-7,.image-8 { height: 52px !important; }
  .em-burger { top: 24px; right: 40px; }
  .heading   { font-size: 72px !important; line-height: 86px !important; }
  .heading-2 { font-size: 54px !important; line-height: 64px !important; width: auto !important; }
  .heading-3,.heading-4 { font-size: 54px !important; line-height: 64px !important; width: auto !important; }
  .heading-7 { font-size: 54px !important; line-height: 64px !important; }
  .heading-5,.heading-6 { font-size: 40px !important; }
  .paragraph { font-size: 18px !important; width: auto !important; max-width: 520px; }
  .bloc-text.bloc-home,.bloc-text.bloc-contact,.bloc-text.bloc-about { padding: 80px !important; }
  .key-figures,.service-section,.logo-section,.press-section,
  .testimonials,.consultation,.adn,.individual-profiles,
  .key-datas,.section-2,.hero-section-2 {
    max-width: 1800px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .section-2 { padding: 80px !important; }
  .heading-11 { font-size: 36px !important; line-height: 44px !important; }
  .heading-12 { font-size: 56px !important; }
  .heading-13 { font-size: 72px !important; }
  .text-block-23,.text-white-card2 { font-size: 16px !important; line-height: 1.7 !important; }
  .key-datas { padding: 80px !important; }
  .em-t-card { width: 380px !important; padding: 36px !important; }
  .em-t-card-quote { font-size: 15px !important; }
  .article-1,.article-2 { padding: 48px 0 !important; }
  .text-block-34 { font-size: 18px !important; }
  .footer { height: auto !important; padding: 80px !important; }
  .logo-section .div-block-18 img { height: 40px !important; }
  .logo-section { padding: 80px !important; }
  .em-menu-label { font-size: clamp(48px, 4vw, 64px); }
  .individual-profiles { padding: 100px 80px !important; }
  .text-block-36 { font-size: 16px !important; }
  .div-block-81 > img { height: 600px !important; }
}

/* ── 2560px+ — 4K / Ultra-wide ─────────────────────────────── */
@media screen and (min-width: 2560px) {
  .hero-section-2,.key-figures,.service-section,
  .logo-section,.press-section,.testimonials,
  .consultation,.adn,.individual-profiles,
  .key-datas,.section-2 {
    max-width: 2200px !important;
    margin: 0 auto !important;
  }
  .heading   { font-size: 88px !important; line-height: 104px !important; }
  .heading-2 { font-size: 64px !important; width: auto !important; line-height: 76px !important; }
  .heading-3,.heading-4,.heading-7 { font-size: 64px !important; line-height: 76px !important; }
  .heading-5,.heading-6  { font-size: 48px !important; }
  .heading-11 { font-size: 44px !important; line-height: 52px !important; }
  .heading-12 { font-size: 64px !important; }
  .heading-13 { font-size: 88px !important; }
  .text-block-6 { font-size: 72px !important; }
  .text-block-7 { font-size: 22px !important; }
  .logo-nav img,.image-7,.image-8 { height: 64px !important; }
  .em-burger { top: 28px !important; right: 48px !important; }
  .em-burger span { width: 32px !important; }
  .div-block-81 > img { height: 720px !important; }
  .individual-profiles { padding: 120px 80px !important; }
  .footer { height: auto !important; max-width: 2200px; margin: 0 auto; }
  .nav-bar { padding: 32px 80px !important; }
}

/* ── MOBILE TARGETED FIXES ─────────────────────────────────── */

/* 1. heading-2 word overflow — prevent any word from breaking viewport */
.heading-2 {
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

/* 2. Back-to-top button — always square */
.div-block-64 {
  width: 40px !important;
  height: 40px !important;
  flex-shrink: 0 !important;
  border-radius: 8px !important;
  padding: 0 !important;
}
.link-block-11 {
  width: 100%;
  height: 100%;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 10px !important;
}

/* 3. Services page: burger is white on white — fix dark-nav */
.dark-nav ~ .em-burger span,
body .em-burger.dark span {
  background: #212121 !important;
}

/* 4. Footer: ensure full scroll access */
.footer {
  overflow: visible !important;
}

/* 5. Fix sticky section stopping scroll — critical */
.section-2, .section-stack, .padding-global, .container-large, .stack_wrapper {
  overflow: visible !important;
}
.card1 {
  overflow: visible !important;
}

/* ── ≤440px ADDITIONAL MOBILE FIXES ────────────────────────── */


/* ── 441–767px ADDITIONS ────────────────────────────────────── */


/* ── TARGETED FIXES BATCH 2 ────────────────────────────────── */

/* Phone number: prevent iOS blue auto-link color */
a[href^="tel"] { color: inherit !important; -webkit-text-fill-color: inherit !important; }

/* Testimonials header: stack on mobile */
@media screen and (max-width: 767px) {
  .div-block-68 {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .div-block-69 { justify-content: flex-start !important; }

  /* Testimonials CTA: fix text overflow and arrow padding */
  .div-block-26 {
    gap: 8px !important;
    padding: 8px 14px !important;
    white-space: nowrap;
  }
  .text-block-11 { font-size: 12px !important; white-space: nowrap; }

  /* Press section: single column */
  .press-section > div:first-child {
    flex-direction: column !important;
    gap: 20px !important;
  }
  .article-1, .article-2 {
    flex-direction: column !important;
    gap: 6px !important;
  }
}

/* ── DESKTOP FOOTER — comprehensive scroll fix ──────────────── */
/* Remove ALL overflow constraints that could cap scroll height */
.hero-section, .hero-section-2, .consultation, .key-figures,
.press-section, .logo-section, .service-section, .testimonials,
.adn, .individual-profiles, .section-2, .key-datas {
  overflow: visible !important;
}

/* Sticky cards: ensure they don't trap layout height */
.section-stack, .padding-global, .container-large, .stack_wrapper {
  overflow: visible !important;
  contain: none !important;
}

/* Remove height constraint from footer completely */
.footer, section.footer {
  height: auto !important;
  overflow: visible !important;
  min-height: unset !important;
}

/* The shimmer animation parent must not clip */
.footer > .div-block-29 {
  overflow: visible !important;
}
.footer > .div-block-29::after {
  overflow: hidden !important;
  border-radius: inherit;
}
