/*
Theme Name: Hapi Digital
Theme URI: https://hapiagency.fr
Author: Hapi Digital
Author URI: https://hapiagency.fr
Description: Thème FSE sur-mesure pour l'agence digitale Hapi — design éditorial, IA-first, haute performance.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: proprietary
License URI: https://hapiagency.fr/mentions-legales
Text Domain: hapi
*/

/* ===========================
   WORDPRESS BLOCK OVERRIDES
   =========================== */
.wp-block-group.is-layout-flow > * + * { margin-block-start: 0; }
.wp-block-group.is-layout-flow { gap: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.wp-site-blocks { padding-top: 0; overflow: visible !important; }
body .is-layout-flow > * { margin-block-start: 0; margin-block-end: 0; }
body .is-layout-constrained > * { margin-block-start: 0; margin-block-end: 0; }
body .is-layout-flex { gap: 0; }

/* Partner logo zone — fixed height box, images sized via PHP inline style */

/* Kill WordPress default block spacing — but NOT on named sections */
.wp-site-blocks .wp-block-group { margin: 0 !important; }
.wp-site-blocks .wp-block-heading { margin: 0 !important; }
.wp-site-blocks .wp-block-paragraph { margin: 0 !important; }
.wp-site-blocks .wp-block-buttons { margin: 0 !important; }
body .wp-block-group:where(.is-layout-flow) > * { margin-block-start: 0 !important; margin-block-end: 0 !important; }

/* ===========================
   GLOBAL — cursor + body overrides
   =========================== */
body:not(.wp-admin):not(.block-editor-page) { cursor: none !important; }
body.poc-open { cursor: auto !important; }
body:not(.wp-admin):not(.block-editor-page) a,
body:not(.wp-admin):not(.block-editor-page) button,
body:not(.wp-admin):not(.block-editor-page) input,
body:not(.wp-admin):not(.block-editor-page) textarea,
body:not(.wp-admin):not(.block-editor-page) select { cursor: none !important; }
body.poc-open a, body.poc-open button, body.poc-open input, body.poc-open textarea, body.poc-open select { cursor: auto !important; }
body:not(.wp-admin):not(.block-editor-page).poc-open a,
body:not(.wp-admin):not(.block-editor-page).poc-open button,
body:not(.wp-admin):not(.block-editor-page).poc-open input,
body:not(.wp-admin):not(.block-editor-page).poc-open textarea,
body:not(.wp-admin):not(.block-editor-page).poc-open select { cursor: auto !important; }
body:not(.wp-admin):not(.block-editor-page).poc-open .poc-close-btn { cursor: pointer !important; }
body.poc-open .cursor, body.poc-open .cursor-follower { display: none !important; }

/* ===========================
   HEADER — Floating pill nav (Lonestone style, white variant)
   =========================== */
.wp-block-group.site-header {
  position: fixed !important;
  top: 20px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  z-index: 1000 !important;
  height: 68px !important;
  width: 940px !important;
  max-width: calc(100% - 48px) !important;
  margin: 0 !important;
  background: rgba(255,255,255,0.55) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  border: 1px solid rgba(13,13,13,0.06) !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 24px rgba(13,13,13,0.08) !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 8px 0 24px !important;
  overflow: visible !important;
  transition: top 0.3s ease, height 0.4s ease, box-shadow 0.3s ease, background 0.3s ease !important;
}
.wp-block-group.site-header.header-scrolled {
  top: 12px !important;
  height: 52px !important;
  box-shadow: 0 8px 32px rgba(13,13,13,0.12) !important;
  background: rgba(255,255,255,0.75) !important;
}
.wp-block-group.site-header[style*="sticky"] {
  position: fixed !important;
}
/* Container — 3 columns: logo | links | CTA */
.wp-block-group.nav-container {
  width: 100% !important;
  min-height: auto !important;
  border: none !important;
  box-shadow: none !important;
  display: grid !important;
  grid-template-columns: 1fr auto 1fr !important;
  align-items: center !important;
  gap: 0 !important;
}
/* Kill all borders inside header */
.wp-block-group.site-header *,
.wp-block-group.site-header *::before,
.wp-block-group.site-header *::after {
  border-bottom: none !important;
}
/* Reset inner nav — spans all 3 grid columns, uses subgrid-like layout */
.wp-block-group.site-header .wp-block-navigation,
.wp-block-group.site-header nav {
  all: unset !important;
  display: contents !important;
}
/* Nav link list — centered in middle column */
.wp-block-group.site-header .wp-block-navigation > .wp-block-navigation__container,
.wp-block-group.site-header .wp-block-navigation > ul {
  display: flex !important;
  align-items: center !important;
  gap: 32px !important;
  justify-content: center !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 60px 0 0 !important;
}
/* Nav links */
.wp-block-group.site-header .wp-block-navigation .wp-block-navigation-item a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  opacity: 0.55 !important;
  transition: opacity 0.2s, background 0.2s !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  padding: 6px 14px !important;
  border-radius: 8px !important;
}
.wp-block-group.site-header .wp-block-navigation .wp-block-navigation-item a:hover {
  opacity: 1 !important;
  background: rgba(247,42,33,0.07) !important;
}
/* Exclure le CTA du hover rouge clair des liens */
/* Nav CTA — bouton rouge */
.wp-block-navigation-item.nav-cta {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
}
.wp-block-navigation-item.nav-cta > a,
.wp-block-navigation-item.nav-cta .wp-block-navigation-item__content,
.wp-block-group.site-header .wp-block-navigation .wp-block-navigation-item.nav-cta a {
  background: var(--red) !important;
  color: #fff !important;
  opacity: 1 !important;
  padding: 10px 22px !important;
  border-radius: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.3s, padding 0.3s, font-size 0.3s !important;
}
.wp-block-navigation-item.nav-cta > a:hover,
.wp-block-navigation-item.nav-cta .wp-block-navigation-item__content:hover,
.wp-block-group.site-header .wp-block-navigation .wp-block-navigation-item.nav-cta a:hover {
  background: var(--black) !important;
  color: #fff !important;
}
.wp-block-navigation-item.nav-cta::after {
  display: none !important;
  content: none !important;
}
.header-scrolled .wp-block-navigation-item.nav-cta > a,
.header-scrolled .wp-block-navigation-item.nav-cta .wp-block-navigation-item__content {
  padding: 8px 18px !important;
  font-size: 12px !important;
}
.wp-block-navigation-item.nav-cta > a::after {
  display: none !important;
  content: none !important;
}
/* Logo — large, shrinks on scroll */
.wp-block-group.site-header .wp-block-image.nav-logo-img {
  margin: 0 !important;
  line-height: 0 !important;
  justify-self: start !important;
}
.wp-block-group.site-header .wp-block-image.nav-logo-img figure,
.wp-block-group.site-header .wp-block-image.nav-logo-img img {
  margin: 0 !important;
}
.wp-block-group.site-header .wp-block-image.nav-logo-img a {
  display: block !important;
}
.wp-block-group.site-header .wp-block-image.nav-logo-img img {
  height: 48px !important;
  width: auto !important;
  object-fit: contain !important;
  transition: height 0.4s cubic-bezier(0.4,0,0.2,1) !important;
}
.wp-block-group.site-header.header-scrolled .wp-block-image.nav-logo-img img {
  height: 30px !important;
}
/* Services dropdown */
.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
  background: var(--white) !important;
  border: 1px solid var(--beige-dark) !important;
  border-radius: 0 !important;
  padding: 8px !important;
  min-width: 180px !important;
  box-shadow: 0 12px 40px rgba(13,13,13,0.1) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(-8px) !important;
  top: calc(100% + 12px) !important;
  transition: all 0.2s ease !important;
}
.wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container,
.wp-block-navigation .has-child:focus-within > .wp-block-navigation__submenu-container {
  transform: translateX(-50%) translateY(0) !important;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  border-radius: 0 !important;
  font-size: 14px !important;
  color: var(--black) !important;
  opacity: 0.7 !important;
  transition: background 0.15s !important;
}
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:hover {
  background: var(--beige) !important;
  opacity: 1 !important;
}
/* Remove underlines on nav links */
.wp-block-group.site-header .wp-block-navigation .wp-block-navigation-item a::after {
  display: none !important;
}
/* Dropdown toggle arrow */
.wp-block-navigation .has-child > .wp-block-navigation__submenu-icon svg {
  transition: transform 0.2s !important;
}
.wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-icon svg {
  transform: rotate(180deg) !important;
}

/* ===========================
   MARQUEE — WordPress overrides
   =========================== */
.wp-block-group.marquee-section {
  background: var(--black) !important;
  padding: 18px 0 !important;
  overflow: hidden !important;
  position: relative !important;
}
.wp-block-group.marquee-track {
  display: flex !important;
  gap: 0 !important;
  animation: marquee 40s linear infinite !important;
  white-space: nowrap !important;
  width: max-content !important;
}
.wp-block-group.marquee-track p.marquee-item {
  display: inline !important;
  padding: 0 32px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: none !important;
  color: rgba(255,255,255,0.4) !important;
  white-space: nowrap !important;
  margin: 0 !important;
}
p.marquee-item strong {
  color: var(--red) !important;
  font-weight: 600 !important;
}
/* ===========================
   PSEUDO-ELEMENTS (replacing wp:html)
   =========================== */

/* Hero tag dot — CSS ::before replaces .hero-tag-dot span */
.wp-block-group.hero-tag::before {
  content: '';
  width: 6px;
  height: 6px;
  background: var(--red);
  border-radius: 50%;
  animation: pulse 2s infinite;
  flex-shrink: 0;
}

/* Hero bg word — ensure p.hero-bg-word works like div */
p.hero-bg-word {
  position: absolute !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(120px, 18vw, 280px) !important;
  color: var(--beige-dark) !important;
  letter-spacing: -0.05em !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  white-space: nowrap !important;
  user-select: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
  opacity: 0.5 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Hero scroll — p.hero-scroll replaces div.hero-scroll */
p.hero-scroll {
  display: none !important;
}
p.hero-scroll::after {
  content: '';
  width: 1px;
  height: 60px;
  background: var(--gray-light);
  display: block;
}

/* Marquee separator — CSS ::after on each marquee-item */
.marquee-track p.marquee-item::after {
  content: '✦';
  margin-left: 32px;
  color: var(--red);
  font-size: 10px;
}

/* Expertise arrow removed */

/* Realisation placeholder + overlay — CSS pseudo-elements */
.wp-block-group.realisation-card {
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.realisation-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--beige) 0%, var(--beige-dark) 100%);
  z-index: 0;
}
.wp-block-group.realisation-card::after {
  display: none !important;
}
/* Badge type Lab/Agence */
.card-type-badge {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  z-index: 6 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  line-height: 1 !important;
  pointer-events: none !important;
}
.card-type-badge--agence {
  background: rgba(13,13,13,0.7) !important;
  color: #FAFAF9 !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}
.card-type-badge--lab {
  background: rgba(247,42,33,0.85) !important;
  color: #ffffff !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}
.proj-visual .card-type-badge {
  left: auto !important;
  right: 12px !important;
}
/* Overlay — red transparent on hover */
.wp-block-group.realisation-card .wp-block-group.realisation-overlay,
.wp-block-group.realisation-card .wp-block-group.realisation-overlay.is-layout-flow {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(247,42,33,0.72) !important;
  z-index: 1 !important;
  opacity: 0 !important;
  transition: opacity 0.35s ease !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
.wp-block-group.realisation-card:hover .wp-block-group.realisation-overlay,
.wp-block-group.realisation-card:hover .wp-block-group.realisation-overlay.is-layout-flow {
  opacity: 1 !important;
}
/* Info — centered on red overlay via flexbox */
.wp-block-group.realisation-info,
.wp-block-group.realisation-info.is-layout-flow {
  position: absolute !important;
  inset: 0 !important;
  padding: 24px 28px !important;
  z-index: 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  background: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  opacity: 0 !important;
  transform: translateY(10px) !important;
  transition: opacity 0.35s ease, transform 0.35s ease !important;
}
.wp-block-group.realisation-card:hover .wp-block-group.realisation-info,
.wp-block-group.realisation-card:hover .wp-block-group.realisation-info.is-layout-flow {
  opacity: 1 !important;
  transform: translateY(0) !important;
}
/* Description text on overlay */
.wp-block-group.realisation-info .realisation-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: rgba(255,255,255,0.85) !important;
  margin: 4px 0 0 0 !important;
  font-weight: 300 !important;
}
/* Realisation tags — white pill badges on red overlay */
.wp-block-group.realisation-tags,
.wp-block-group.realisation-tags.is-layout-flow {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin: 0 0 6px 0 !important;
}
.realisation-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  background: rgba(255,255,255,0.2) !important;
  padding: 4px 12px !important;
  border-radius: 100px !important;
  display: inline-block !important;
}
.wp-block-group.realisation-info .realisation-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(18px, 1.6vw, 24px) !important;
  font-weight: 700 !important;
  color: var(--white) !important;
  margin: 0 !important;
}
/* Delivery badge — top right */
.wp-block-group.realisation-card p.delivery-badge,
p.delivery-badge {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  background: rgba(13,13,13,0.55) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  padding: 5px 14px !important;
  border-radius: 100px !important;
  z-index: 3 !important;
  margin: 0 !important;
  pointer-events: none !important;
}
/* Full-card clickable link */
.wp-block-group.realisation-card .realisation-card-link {
  position: static !important;
  margin: 0 !important;
  padding: 0 !important;
}
.wp-block-group.realisation-card .realisation-card-link a {
  position: absolute !important;
  inset: 0 !important;
  z-index: 5 !important;
  display: block !important;
  text-decoration: none !important;
}
/* Realisation card image (homepage dynamic cards) */
.wp-block-group.realisation-card .wp-block-image.realisation-card-img,
.wp-block-group.realisation-card figure.realisation-card-img {
  position: absolute !important;
  inset: 0 !important;
  margin: 0 !important;
  z-index: 0 !important;
}
.wp-block-group.realisation-card .wp-block-image.realisation-card-img img,
.wp-block-group.realisation-card figure.realisation-card-img img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.wp-block-group.realisation-card:hover .wp-block-image.realisation-card-img img,
.wp-block-group.realisation-card:hover figure.realisation-card-img img {
  transform: scale(1.04) !important;
}

/* Vision grid background — CSS on vision-section */
.wp-block-group.vision-section {
  position: relative !important;
}
.wp-block-group.vision-section::before {
  display: none;
}
.wp-block-group.vision-inner {
  position: relative !important;
  z-index: 1 !important;
}

/* Associe avatar — p.associe-avatar replaces div */
p.associe-avatar {
  width: 80px !important;
  height: 80px !important;
  border-radius: 50% !important;
  background: var(--beige-dark) !important;
  color: var(--red) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 28px !important;
  flex-shrink: 0 !important;
  margin-bottom: 0 !important;
  position: relative !important;
  overflow: hidden !important;
}
p.associe-avatar::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  border: 2px solid var(--red) !important;
  border-radius: 50% !important;
  opacity: 0.3 !important;
}

/* ===========================
   HERO — WordPress overrides
   =========================== */
.wp-block-group.hero,
.wp-block-group.hero.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  min-height: calc(100vh - 60px) !important;
  padding: 72px clamp(20px, 4vw, 48px) 0 !important;
  position: relative !important;
  overflow: hidden !important;
  background: var(--white) !important;
}
.wp-block-group.hero-inner,
.wp-block-group.hero-inner.is-layout-flow {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  width: 100% !important;
  padding: 0 !important;
  overflow: visible !important;
}
.wp-block-group.hero-tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--beige) !important;
  border: 1px solid var(--beige-dark) !important;
  padding: 6px 14px !important;
  border-radius: 100px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  margin-bottom: 40px !important;
}
.wp-block-group.hero .wp-block-heading,
h1.hero-title,
.wp-block-heading.hero-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(44px, 6.5vw, 96px) !important;
  line-height: 1.1 !important;
  letter-spacing: -0.03em !important;
  color: var(--black) !important;
  margin-bottom: 32px !important;
}
.wp-block-heading.hero-title em,
h1.hero-title em {
  font-style: italic !important;
  font-family: 'Space Grotesk', sans-serif !important;
  color: var(--red) !important;
}
.wp-block-heading.hero-title mark.red,
h1.hero-title mark.red {
  background: none !important;
  color: var(--red) !important;
}
.wp-block-group.hero-typewriter-wrap,
.wp-block-group.hero-typewriter-wrap.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 48px !important;
}
p.hero-typewriter-label {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--gray) !important;
}
p.hero-typewriter-label strong {
  color: var(--red) !important;
  font-weight: 600 !important;
}
.wp-block-group.hero-bottom,
.wp-block-group.hero-bottom.is-layout-flow {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  gap: 40px !important;
}
p.hero-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: clamp(18px, 1.4vw, 22px) !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  max-width: 520px !important;
  font-weight: 700 !important;
  flex: 1 1 auto !important;
  min-width: 200px !important;
}
p.hero-desc:empty {
  display: none !important;
}
.wp-block-group.hero-actions,
.wp-block-buttons.hero-actions {
  display: flex !important;
  gap: 20px !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

/* Neural sphere canvas — homepage hero */
#neural-sphere {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 55vw !important;
  height: 100% !important;
  z-index: 0 !important;
  pointer-events: none !important;
}
.has-neural-sphere .wp-block-group.hero-inner,
.has-neural-sphere .wp-block-group.hero-inner.is-layout-flow,
.has-neural-sphere.wp-block-group.hero-inner,
.has-neural-sphere.wp-block-group.hero-inner.is-layout-flow {
  position: relative !important;
  z-index: 2 !important;
  max-width: 1200px !important;
  width: 100% !important;
  margin: 0 auto !important;
}
.has-neural-sphere p.hero-scroll {
  z-index: 2 !important;
}

/* ===========================
   BUTTONS — WordPress overrides
   =========================== */
.wp-block-button.btn-primary,
.wp-block-button.btn-secondary {
  width: auto !important;
  display: inline-block !important;
}
.wp-block-button.btn-primary .wp-block-button__link,
a.btn-primary {
  background: var(--red) !important;
  color: white !important;
  border: none !important;
  padding: 14px 28px !important;
  border-radius: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.04em !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: background 0.3s, color 0.3s !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.wp-block-button.btn-primary .wp-block-button__link::after {
  content: '→' !important;
  display: inline-block !important;
  font-size: 15px !important;
  background: none !important;
  width: auto !important;
  height: auto !important;
  transition: transform 0.3s !important;
}
.wp-block-button.btn-primary .wp-block-button__link:hover {
  background: var(--black) !important;
  transform: none !important;
  box-shadow: none !important;
}
.wp-block-button.btn-primary .wp-block-button__link:hover::after {
  transform: translateX(4px) !important;
}
.wp-block-button.btn-secondary .wp-block-button__link,
a.btn-secondary {
  background: transparent !important;
  color: var(--black) !important;
  border: none !important;
  padding: 10px 0 !important;
  font-family: 'DM Sans', sans-serif !important;
  font-weight: 400 !important;
  font-size: 13px !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  opacity: 0.6 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}
.wp-block-button.btn-secondary .wp-block-button__link::after {
  content: none !important;
}
.wp-block-button.btn-secondary .wp-block-button__link:hover {
  opacity: 1 !important;
  color: var(--red) !important;
}
.wp-block-button.btn-secondary .wp-block-button__link:hover::after {
  transform: translateX(4px) !important;
}

/* ===========================
   POURQUOI — WordPress overrides
   =========================== */
.wp-block-group.pourquoi-section {
  display: block !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.pourquoi-inner,
.wp-block-group.pourquoi-inner.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.pourquoi-left .wp-block-heading.section-title {
  margin-bottom: 24px !important;
}
p.pourquoi-statement {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(22px, 2.5vw, 32px) !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  color: var(--black) !important;
  margin-top: 32px !important;
  margin-bottom: 24px !important;
  letter-spacing: -0.01em !important;
}
p.pourquoi-statement strong {
  font-weight: 700 !important;
}
.wp-block-group.pourquoi-left p:not([class]) {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: var(--gray) !important;
  margin-bottom: 16px !important;
}
.wp-block-group.pourquoi-left p:not([class]):last-child {
  margin-bottom: 0 !important;
}
.wp-block-group.pourquoi-left p:not([class]) strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
.wp-block-group.pourquoi-blocks,
.wp-block-group.pourquoi-blocks.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wp-block-group.pourquoi-block,
.wp-block-group.pourquoi-block.is-layout-flow {
  padding: 28px 32px !important;
  background: var(--beige) !important;
  border-radius: 0 !important;
  transition: background 0.2s !important;
  cursor: pointer !important;
  border-bottom: 1px solid var(--beige-dark) !important;
  position: relative !important;
}
.wp-block-group.pourquoi-block:first-child { border-radius: 12px 12px 0 0 !important; }
.wp-block-group.pourquoi-block:last-child { border-radius: 0 0 12px 12px !important; border-bottom: none !important; }
.wp-block-group.pourquoi-block::after {
  content: '+' !important;
  position: absolute !important;
  right: 32px !important;
  top: 32px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  color: var(--gray) !important;
  transition: transform 0.3s ease, color 0.3s !important;
  line-height: 1 !important;
}
.wp-block-group.pourquoi-block.pourquoi-open::after {
  content: '−' !important;
  color: var(--red) !important;
}
.wp-block-group.pourquoi-block.pourquoi-open {
  background: var(--white) !important;
}
p.pourquoi-block-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  letter-spacing: 0.02em !important;
  color: var(--red) !important;
  margin: 0 !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
}
.wp-block-heading.pourquoi-block-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  color: var(--black) !important;
  margin: 0 !important;
  padding-right: 40px !important;
  line-height: 1.4 !important;
}
/* Num + title on same line */
.wp-block-group.pourquoi-block .pourquoi-block-header {
  display: flex !important;
  align-items: baseline !important;
  gap: 12px !important;
}
p.pourquoi-block-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease !important;
  margin-top: 0 !important;
}
.wp-block-group.pourquoi-block.pourquoi-open p.pourquoi-block-text {
  max-height: 300px !important;
  opacity: 1 !important;
  margin-top: 12px !important;
}
/* Hide all non-header paragraphs in pourquoi-block by default */
.wp-block-group.pourquoi-block > p:not(.pourquoi-block-num) {
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  margin: 0 !important;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease !important;
}
.wp-block-group.pourquoi-block.pourquoi-open > p:not(.pourquoi-block-num) {
  max-height: 300px !important;
  opacity: 1 !important;
  margin-top: 12px !important;
}

/* ===========================
   SECTION HEADERS — WordPress overrides
   =========================== */
p.section-tag,
.wp-block-group .section-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.wp-block-heading.section-title,
h2.section-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
  color: var(--black) !important;
  margin-top: 0 !important;
  margin-bottom: 24px !important;
  margin-block-end: 24px !important;
  white-space: normal !important;
}
.wp-block-heading.section-title em,
h2.section-title em {
  font-style: italic !important;
  color: var(--red) !important;
}
/* section-desc — see p.section-desc below (realisation detail section) */

/* ===========================
   VISION IA CARDS — WordPress overrides
   =========================== */
.wp-block-group.vision-ia-section {
  display: block !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
}
.wp-block-group.vision-ia-inner,
.wp-block-group.vision-ia-inner.is-layout-flow {
  display: block !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.vision-ia-header,
.wp-block-group.vision-ia-header.is-layout-flow {
  display: block !important;
}
.wp-block-group.vision-ia-header .section-title {
  margin-bottom: 24px !important;
}
.wp-block-group.vision-ia-header p:not(.section-tag) {
  max-width: 100% !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.vision-ia-header p:not(.section-tag) strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
p.vision-ia-claim {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
p.vision-ia-claim strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
.wp-block-group.vision-ia-cards,
.wp-block-group.vision-ia-cards.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2px !important;
  background: var(--beige-dark) !important;
  margin-top: 48px !important;
}
.wp-block-group.vision-ia-card,
.wp-block-group.vision-ia-card.is-layout-flow {
  background: var(--beige) !important;
  padding: 40px 32px !important;
  border-radius: 0 !important;
  transition: background 0.3s !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.vision-ia-card:hover { background: var(--white) !important; }
p.vision-ia-card-icon {
  font-size: 32px !important;
  line-height: 1 !important;
  margin-bottom: 20px !important;
  display: flex !important;
  align-items: center !important;
  color: var(--red) !important;
}
p.vision-ia-card-icon svg {
  width: 28px !important;
  height: 28px !important;
  transition: transform 0.3s ease !important;
}
.wp-block-group.vision-ia-card:hover p.vision-ia-card-icon svg {
  transform: scale(1.15) !important;
}
h3.vision-ia-card-title,
.wp-block-heading.vision-ia-card-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  color: var(--black) !important;
  margin-bottom: 12px !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
}
p.vision-ia-card-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--gray) !important;
  line-height: 1.6 !important;
  font-weight: 300 !important;
}
p.vision-ia-card-line {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 0 !important;
  height: 2px !important;
  background: var(--red) !important;
  transition: width 0.4s !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
.wp-block-group.vision-ia-card:hover p.vision-ia-card-line { width: 100% !important; }

/* Vision IA cards — 3 columns variant (homepage identity) */
.wp-block-group.vision-ia-cards-3,
.wp-block-group.vision-ia-cards-3.is-layout-flow {
  grid-template-columns: repeat(3, 1fr) !important;
}

/* ===========================
   ARTICLES HOME — latest articles section
   =========================== */
.articles-home-section {
  background: var(--beige) !important;
  padding: clamp(40px, 4.5vw, 56px) var(--section-pad-x-desktop) !important;
  position: relative !important;
}
.articles-home-section::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 480px !important;
  height: 3px !important;
  background: var(--red) !important;
  border-radius: 2px !important;
}
.articles-home-section .next-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.articles-home-section .section-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  margin-bottom: 0 !important;
}
.articles-home-section .section-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 12px !important;
}
.articles-home-section .section-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  margin: 0 0 24px 0 !important;
}
.articles-home-section .section-link a {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: color 0.2s, gap 0.2s !important;
}
.articles-home-section .section-link a:hover {
  color: var(--red) !important;
  gap: 10px !important;
}
.articles-home-section .next-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 20px !important;
  margin-top: 40px !important;
}
.articles-home-section .next-card {
  position: relative !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  display: block !important;
  text-decoration: none !important;
  color: inherit !important;
  min-height: 280px !important;
}
.articles-home-section .next-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 20px 56px rgba(13,13,13,0.09) !important;
}
.articles-home-section .next-card-image {
  position: absolute !important;
  inset: 0 !important;
}
.articles-home-section .next-card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.articles-home-section .next-card:hover .next-card-image img {
  transform: scale(1.04) !important;
}
.articles-home-section .next-card-content {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  padding: 14px 20px !important;
  background: rgba(240,237,232,0.92) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}
.articles-home-section .next-card-meta {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 6px !important;
}
.articles-home-section .meta-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  color: var(--gray) !important;
}
.articles-home-section .meta-dot {
  width: 3px !important;
  height: 3px !important;
  border-radius: 50% !important;
  background: var(--gray-light) !important;
  flex-shrink: 0 !important;
}
.articles-home-section .article-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
}
.articles-home-section .next-card-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.3 !important;
  margin: 0 0 6px 0 !important;
}
.articles-home-section .next-card-link {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: gap 0.2s !important;
}
.articles-home-section .next-card:hover .next-card-link { gap: 10px !important; }

/* ===========================
   ECOSYSTEM — carousel
   =========================== */
.ecosystem-section,
.wp-block-group.ecosystem-section,
.wp-block-group.ecosystem-section.is-layout-flow {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  overflow: hidden !important;
}
.ecosystem-inner,
.wp-block-group.ecosystem-inner,
.wp-block-group.ecosystem-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.ecosystem-header,
.wp-block-group.ecosystem-header,
.wp-block-group.ecosystem-header.is-layout-flow {
  text-align: left !important;
  margin-bottom: clamp(32px, 4vw, 56px) !important;
}
.eco-carousel,
.wp-block-group.eco-carousel,
.wp-block-group.eco-carousel.is-layout-flow {
  position: relative !important;
  width: 100vw !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  overflow: hidden !important;
  mask-image: linear-gradient(90deg, transparent, black 3%, black 97%, transparent) !important;
  -webkit-mask-image: linear-gradient(90deg, transparent, black 3%, black 97%, transparent) !important;
  cursor: grab !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}
.eco-carousel.is-dragging { cursor: grabbing !important; }
.eco-track,
.eco-track-1, .eco-track-2,
.wp-block-group.eco-track,
.wp-block-group.eco-track-1,
.wp-block-group.eco-track-2,
.wp-block-group.eco-track.is-layout-flow,
.wp-block-group.eco-track-1.is-layout-flow,
.wp-block-group.eco-track-2.is-layout-flow {
  display: flex !important;
  gap: 20px !important;
  width: max-content !important;
  will-change: transform !important;
}
.eco-card,
.wp-block-group.eco-card,
.wp-block-group.eco-card.is-layout-flow,
div.eco-card {
  all: unset !important;
  flex-shrink: 0 !important;
  width: auto !important;
  height: auto !important;
  background: var(--white) !important;
  border-radius: 12px !important;
  padding: 14px 22px !important;
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 12px !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  cursor: default !important;
  box-sizing: border-box !important;
}
/* Eco card logo */
.eco-card-logo,
.wp-block-group.eco-card-logo,
.wp-block-group.eco-card-logo.is-layout-flow,
div.eco-card-logo {
  all: unset !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 40px !important;
  height: 40px !important;
  min-width: 40px !important;
  flex-shrink: 0 !important;
}
.eco-card-logo figure,
.eco-card-logo .wp-block-image {
  all: unset !important;
  display: block !important;
  width: 40px !important;
  height: 40px !important;
  line-height: 0 !important;
}
.eco-card-logo img,
.eco-card figure img,
.eco-card img {
  all: unset !important;
  width: 40px !important;
  height: 40px !important;
  max-width: 40px !important;
  max-height: 40px !important;
  object-fit: contain !important;
  border-radius: 8px !important;
  display: block !important;
}
.eco-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(13,13,13,0.06) !important;
}
.eco-card-accent,
p.eco-card-accent {
  display: none !important;
}
.eco-card *,
.eco-card figure,
.eco-card .wp-block-image {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
}
.eco-card figure.wp-block-image,
.eco-card .wp-block-image {
  width: 40px !important;
  height: 40px !important;
  max-width: 40px !important;
  display: block !important;
  line-height: 0 !important;
}
.eco-card figure.wp-block-image img,
.eco-card .wp-block-image img,
.eco-card .eco-card-logo img {
  width: 40px !important;
  height: 40px !important;
  max-width: 40px !important;
  max-height: 40px !important;
  object-fit: contain !important;
  border-radius: 8px !important;
}
.eco-card-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin: 0 !important;
  white-space: nowrap !important;
  line-height: 1 !important;
}
.eco-card-desc {
  display: none !important;
}
/* eco-scroll animation handled by JS (main.js) for drag support */

/* ===========================
   DIFFERENCIATEURS — WordPress overrides
   =========================== */
.wp-block-group.diff-section,
.wp-block-group.diff-section.is-layout-flow {
  display: block !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.diff-section::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(247,42,33,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(247,42,33,0.06) 1px, transparent 1px);
  background-size: 80px 80px;
  z-index: 0;
  pointer-events: none;
}
.wp-block-group.diff-inner,
.wp-block-group.diff-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative !important;
  z-index: 1 !important;
}
.wp-block-group.diff-list,
.wp-block-group.diff-list.is-layout-flow {
  display: grid !important;
  grid-auto-rows: 1fr !important;
  gap: 0 !important;
  border-top: 1px solid var(--beige-dark) !important;
}
.wp-block-group.diff-item,
.wp-block-group.diff-item.is-layout-flow {
  display: grid !important;
  grid-template-columns: 40px 1fr 1fr !important;
  gap: 20px !important;
  padding: 40px 0 !important;
  border-bottom: 1px solid var(--beige-dark) !important;
  align-items: start !important;
  transition: background 0.3s !important;
  cursor: default !important;
  min-height: 120px !important;
}
.wp-block-group.diff-item:hover {
  background: rgba(255,255,255,0.6) !important;
}

/* ===========================
   METHODOLOGIE — WordPress overrides
   =========================== */
.wp-block-group.methodo-section,
.wp-block-group.methodo-section.is-layout-flow {
  display: block !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.methodo-inner,
.wp-block-group.methodo-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.methodo-header,
.wp-block-group.methodo-header.is-layout-flow {
  display: block !important;
  margin-bottom: 64px !important;
}
.wp-block-group.methodo-header .section-title {
  margin-bottom: 24px !important;
}
.wp-block-group.methodo-header p:not(.section-tag) {
  max-width: 100% !important;
  font-size: 16px !important;
  line-height: 1.8 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.methodo-header p:not(.section-tag) strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
p.methodo-intro {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.methodo-steps,
.wp-block-group.methodo-steps.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(5, 1fr) !important;
  gap: 0 !important;
  position: relative !important;
}
.wp-block-group.methodo-steps::before {
  content: '';
  position: absolute;
  top: 32px;
  left: 10%;
  width: 80%;
  height: 1px;
  background: var(--beige-dark);
  z-index: 0;
}
.wp-block-group.methodo-step,
.wp-block-group.methodo-step.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  padding: 0 16px !important;
  position: relative !important;
  z-index: 1 !important;
}
p.methodo-step-dot {
  width: 64px !important;
  height: 64px !important;
  border-radius: 50% !important;
  background: var(--beige) !important;
  border: 2px solid var(--beige-dark) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 22px !important;
  margin-bottom: 20px !important;
  transition: background 0.3s, border-color 0.3s, color 0.3s !important;
  cursor: default !important;
  line-height: 64px !important;
  color: var(--red) !important;
}
p.methodo-step-dot::before {
  content: '' !important;
  display: block !important;
  width: 24px !important;
  height: 24px !important;
  background: currentColor !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  transition: transform 0.3s ease !important;
}
/* Step icons via CSS masks */
.wp-block-group.methodo-step:nth-child(1) p.methodo-step-dot::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") !important;
}
.wp-block-group.methodo-step:nth-child(2) p.methodo-step-dot::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E") !important;
}
.wp-block-group.methodo-step:nth-child(3) p.methodo-step-dot::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='16 18 22 12 16 6'/%3E%3Cpolyline points='8 6 2 12 8 18'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='16 18 22 12 16 6'/%3E%3Cpolyline points='8 6 2 12 8 18'/%3E%3C/svg%3E") !important;
}
.wp-block-group.methodo-step:nth-child(4) p.methodo-step-dot::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6v7l5 8H4l5-8V3z'/%3E%3Cline x1='9' y1='3' x2='15' y2='3'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3h6v7l5 8H4l5-8V3z'/%3E%3Cline x1='9' y1='3' x2='15' y2='3'/%3E%3C/svg%3E") !important;
}
.wp-block-group.methodo-step:nth-child(5) p.methodo-step-dot::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z'/%3E%3Cpath d='M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z'/%3E%3Cpath d='M12 15l-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z'/%3E%3C/svg%3E") !important;
}
p.methodo-step-dot svg { display: none !important; }
.wp-block-group.methodo-step:hover p.methodo-step-dot {
  background: var(--red) !important;
  border-color: var(--red) !important;
  color: var(--white) !important;
}
.wp-block-group.methodo-step:hover p.methodo-step-dot::before {
  transform: scale(1.1) !important;
}
p.methodo-step-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  color: var(--red) !important;
  margin-bottom: 8px !important;
  opacity: 0.6 !important;
}
.wp-block-heading.methodo-step-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin-bottom: 8px !important;
  letter-spacing: -0.01em !important;
}
p.methodo-step-text {
  font-size: 14px !important;
  color: var(--gray) !important;
  line-height: 1.55 !important;
}

/* ===========================
   LAB — WordPress overrides
   =========================== */
/* Headers — tarifs only (concept/diff now use intervention-card layout) */
.lab-tarifs-section .wp-block-group.section-header, .lab-tarifs-section .wp-block-group.section-header.is-layout-flow {
  display: block !important; max-width: 1200px !important; margin: 0 auto 48px !important;
}
/* Concept — uses interventions-offre-section classes, override background */
.wp-block-group.lab-concept-section { background: var(--white) !important; }
/* Équipe section */
.wp-block-group.lab-equipe-section, .wp-block-group.lab-equipe-section.is-layout-flow {
  display: block !important; padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important; background: var(--beige) !important;
}
.lab-equipe-section .wp-block-group.section-header, .lab-equipe-section .wp-block-group.section-header.is-layout-flow {
  display: block !important; max-width: 1200px !important; margin: 0 auto 48px !important;
}
.wp-block-group.lab-equipe-inner, .wp-block-group.lab-equipe-inner.is-layout-flow {
  max-width: 1200px !important; margin: 0 auto !important; display: block !important;
}
.wp-block-group.lab-roles, .wp-block-group.lab-roles.is-layout-flow {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 24px !important;
}
.wp-block-group.lab-role, .wp-block-group.lab-role.is-layout-flow {
  display: block !important; padding: 40px 32px !important; background: var(--white) !important; border-radius: 16px !important;
  border: 1px solid var(--beige-dark) !important; transition: border-color 0.3s, box-shadow 0.3s !important;
}
.wp-block-group.lab-role:hover {
  border-color: var(--red) !important; box-shadow: 0 12px 40px rgba(247,42,33,0.08) !important;
}
.wp-block-group.lab-livrables-band, .wp-block-group.lab-livrables-band.is-layout-flow {
  display: block !important;
}
.wp-block-group.lab-livrables-tags, .wp-block-group.lab-livrables-tags.is-layout-flex {
  display: flex !important; flex-wrap: wrap !important; gap: 10px !important;
}
/* Tarifs */
/* Lab page: methodo overrides */
.page-id-936,
.page-id-958 .wp-block-group.methodo-section,
.page-id-936,
.page-id-958 .wp-block-group.methodo-section.is-layout-flow {
  background: var(--beige) !important;
}
/* CTA beige on Lab */
.page-id-936,
.page-id-958 .wp-block-group.cta-section,
.page-id-936,
.page-id-958 .wp-block-group.cta-section.is-layout-flow {
  background: var(--beige) !important;
}
/* Red connecting line on Lab methodo */
/* Lab methodo — use the same 2-col header as /vision/ (no override needed) */
.page-id-936,
.page-id-958 .wp-block-group.methodo-steps::before {
  background: var(--red) !important; opacity: 0.3 !important;
}
/* Lab methodo — red line + centered steps */
.page-id-936,
.page-id-958 .wp-block-group.methodo-steps::before,
.page-id-936,
.page-id-958 .methodo-steps::before {
  left: 0 !important; width: 100% !important; background: var(--red) !important; opacity: 0.3 !important;
}
/* Lab = 4 steps, not 5 like /vision/ */
.page-id-936,
.page-id-958 .wp-block-group.methodo-steps,
.page-id-936,
.page-id-958 .wp-block-group.methodo-steps.is-layout-flow,
.page-id-936,
.page-id-958 .methodo-steps {
  grid-template-columns: repeat(4, 1fr) !important;
}
.wp-block-group.lab-tarifs-section, .wp-block-group.lab-tarifs-section.is-layout-flow {
  display: block !important; padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important; background: var(--white) !important;
}
.wp-block-group.lab-tarifs-inner, .wp-block-group.lab-tarifs-inner.is-layout-flow {
  max-width: 1200px !important; margin: 0 auto !important; display: block !important;
}
.wp-block-group.lab-tarifs-grid, .wp-block-group.lab-tarifs-grid.is-layout-flow {
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 24px !important; align-items: stretch !important;
}
.wp-block-group.lab-tarif-card, .wp-block-group.lab-tarif-card.is-layout-flow {
  display: block !important; padding: 40px 32px !important; background: var(--white) !important; border-radius: 16px !important;
  border: 1px solid var(--beige-dark) !important; transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s !important;
}
.wp-block-group.lab-tarif-card:hover {
  transform: scale(1.03) !important; border-color: var(--red) !important; box-shadow: 0 16px 48px rgba(247,42,33,0.12) !important; z-index: 2 !important; position: relative !important;
}
.wp-block-group.lab-tarif-features, .wp-block-group.lab-tarif-features.is-layout-flow { display: block !important; }
/* Badge positionné en absolu pour ne pas décaler le contenu */
.wp-block-group.lab-tarif-card { position: relative !important; }
p.lab-tarif-badge { display: inline-block !important; width: auto !important; max-width: fit-content !important; position: absolute !important; top: -12px !important; left: 32px !important; }
/* (old diff/equipe overrides removed) */

/* ===========================
   VALEURS — WordPress overrides
   =========================== */
.wp-block-group.valeurs-section,
.wp-block-group.valeurs-section.is-layout-flow {
  display: block !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
}
.wp-block-group.valeurs-inner,
.wp-block-group.valeurs-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.valeurs-grid,
.wp-block-group.valeurs-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 16px !important;
  margin-top: 40px !important;
}
.wp-block-group.valeur-card,
.wp-block-group.valeur-card.is-layout-flow {
  background: var(--white) !important;
  padding: 28px 28px !important;
  border-radius: 10px !important;
  transition: transform 0.3s !important;
  cursor: default !important;
}
.wp-block-group.valeur-card:hover {
  transform: translateY(-4px) !important;
}
.wp-block-group.valeur-card h3.valeur-title,
.wp-block-group.valeur-card .wp-block-heading.valeur-title {
  margin-bottom: 12px !important;
}
p.valeur-icon {
  width: 40px !important;
  height: 40px !important;
  background: var(--beige) !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 18px !important;
  margin-bottom: 16px !important;
  line-height: 40px !important;
  color: var(--red) !important;
  transition: background 0.3s, color 0.3s !important;
}
p.valeur-icon::before {
  content: '' !important;
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  background: currentColor !important;
  -webkit-mask-size: contain !important;
  mask-size: contain !important;
  -webkit-mask-repeat: no-repeat !important;
  mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  mask-position: center !important;
  transition: transform 0.3s ease !important;
}
p.valeur-icon svg { display: none !important; }
/* Valeur icons — lightning, target, eye, leaf */
.wp-block-group.valeur-card:nth-child(1) p.valeur-icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E") !important;
}
.wp-block-group.valeur-card:nth-child(2) p.valeur-icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E") !important;
}
.wp-block-group.valeur-card:nth-child(3) p.valeur-icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") !important;
}
.wp-block-group.valeur-card:nth-child(4) p.valeur-icon::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 22c1.25-1.25 2.5-3 4-4.5C8 15.5 12 14 16 14c1 0 2 .1 3 .3'/%3E%3Cpath d='M22 2s-4 2-8 6c-2 2-3.5 4.5-4 7'/%3E%3Cpath d='M9 9c-1.5 1.5-3 4-3 4'/%3E%3C/svg%3E") !important;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 22c1.25-1.25 2.5-3 4-4.5C8 15.5 12 14 16 14c1 0 2 .1 3 .3'/%3E%3Cpath d='M22 2s-4 2-8 6c-2 2-3.5 4.5-4 7'/%3E%3Cpath d='M9 9c-1.5 1.5-3 4-3 4'/%3E%3C/svg%3E") !important;
}
.wp-block-group.valeur-card:hover p.valeur-icon {
  background: var(--red) !important;
  color: var(--white) !important;
}
.wp-block-group.valeur-card:hover p.valeur-icon::before {
  transform: scale(1.1) !important;
}
.wp-block-heading.valeur-card-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 18px !important;
  color: var(--black) !important;
  margin-bottom: 12px !important;
}
p.valeur-card-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
}

/* ===========================
   CTA — WordPress overrides
   =========================== */
/* Eco section on /agence/ */
.wp-block-group.eco-section-agence,
.wp-block-group.eco-section-agence.is-layout-flow {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  margin-bottom: 0 !important;
}
.wp-block-group.eco-section-agence .wp-block-group.section-inner,
.wp-block-group.eco-section-agence .wp-block-group.section-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
/* Force white CTA after eco section */
.wp-block-group.eco-section-agence + .wp-block-group.cta-section,
.wp-block-group.eco-section-agence + .wp-block-group.cta-section.is-layout-flow,
.wp-block-group.cta-section.cta-section--white,
.wp-block-group.cta-section.cta-section--white.is-layout-flow {
  background: var(--white) !important;
}
.wp-block-group.cta-section,
.wp-block-group.cta-section.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 60vh !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
  position: relative !important;
  text-align: center !important;
  overflow: hidden !important;
}
/* Band CTA (associés, partenaires) — no GO, no min-height */
.wp-block-group.cta-section:has(.cta-band-inner),
.wp-block-group.cta-section:has(.cta-inner-band),
.wp-block-group.cta-section.cta-section--band {
  min-height: auto !important;
  text-align: left !important;
  padding: clamp(60px, 8vw, 100px) clamp(20px, 4vw, 48px) !important;
}
.wp-block-group.cta-section:has(.cta-band-inner)::before,
.wp-block-group.cta-section:has(.cta-inner-band)::before,
.wp-block-group.cta-section.cta-section--band::before {
  content: none !important;
}
.wp-block-group.cta-section::before {
  content: none !important;
}
/* Réalisations CTA variant — beige bg */
.cta-section.cta-section--next,
.wp-block-group.cta-section.cta-section--next {
  background: var(--beige) !important;
}
.cta-section.cta-section--next::before,
.wp-block-group.cta-section.cta-section--next::before {
  content: none !important;
}
/* CTA Band (expertises) — beige bg + GO */
.wp-block-group.cta-band,
section.wp-block-group.cta-band {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  text-align: center !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.cta-band::before {
  content: none !important;
  position: absolute !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 28vw !important;
  color: var(--beige-dark) !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  letter-spacing: -0.05em !important;
  pointer-events: none !important;
  user-select: none !important;
  line-height: 1 !important;
}
.wp-block-group.cta-inner {
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  max-width: 800px !important;
  margin: 0 auto !important;
}
.wp-block-heading.cta-title,
h2.cta-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(36px, 5.5vw, 72px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  color: var(--black) !important;
  margin-bottom: 24px !important;
}
.wp-block-heading.cta-title em,
h2.cta-title em {
  font-style: normal !important;
  color: var(--red) !important;
}
p.cta-tag {
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 24px !important;
}
p.cta-sub {
  font-size: 17px !important;
  color: var(--gray) !important;
  margin-bottom: 48px !important;
  font-weight: 300 !important;
  line-height: 1.6 !important;
}
.wp-block-group.cta-section .wp-block-buttons {
  justify-content: center !important;
  gap: 24px !important;
}
p.cta-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: var(--gray-light) !important;
  margin-bottom: 40px !important;
}

/* ===========================
   STATS — WordPress overrides
   =========================== */
.wp-block-group.stats-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
}
.wp-block-group.stats-header,
.wp-block-group.stats-header.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto clamp(32px, 4vw, 48px) !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
}
.wp-block-group.interventions-header-row,
.wp-block-group.interventions-header-row.is-layout-flow {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
  margin-bottom: 40px !important;
}
h2.stats-title,
.wp-block-heading.stats-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(28px, 3.5vw, 48px) !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 0 !important;
}
.wp-block-group.stats-inner,
.wp-block-group.stats-inner.is-layout-flow,
.wp-block-group.stats-inner.wp-block-group-is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2px !important;
  background: var(--beige-dark) !important;
}
.wp-block-group.stat-item {
  background: var(--white) !important;
  padding: 40px 24px !important;
  position: relative !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 12px !important;
}
.wp-block-group.stat-item::before { display: none !important; }
.wp-block-group.stat-item { cursor: pointer !important; transition: transform 0.3s ease, box-shadow 0.3s ease !important; }
.wp-block-group.stat-item:hover { transform: translateY(-4px) !important; box-shadow: 0 12px 32px rgba(13,13,13,0.08) !important; }
p.stat-item-link { position: absolute !important; inset: 0 !important; margin: 0 !important; z-index: 5 !important; }
p.stat-item-link a { display: block !important; width: 100% !important; height: 100% !important; }
/* Stat icons — SVG pictos */
p.stat-icon {
  width: 48px !important;
  height: 48px !important;
  margin: 0 0 4px !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}
p.stat-icon-vitrine {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23F72A21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='6' width='40' height='28' rx='3'/%3E%3Cline x1='4' y1='14' x2='44' y2='14'/%3E%3Ccircle cx='8' cy='10' r='1.2' fill='%23F72A21' stroke='none'/%3E%3Ccircle cx='12.5' cy='10' r='1.2' fill='%23F72A21' stroke='none'/%3E%3Ccircle cx='17' cy='10' r='1.2' fill='%23F72A21' stroke='none'/%3E%3Cline x1='18' y1='42' x2='30' y2='42'/%3E%3Cline x1='24' y1='34' x2='24' y2='42'/%3E%3C/svg%3E") !important;
}
p.stat-icon-ecommerce {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23F72A21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h6l6 24h18l5-16H16'/%3E%3Ccircle cx='20' cy='38' r='3'/%3E%3Ccircle cx='34' cy='38' r='3'/%3E%3C/svg%3E") !important;
}
p.stat-icon-mobile {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23F72A21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='12' y='4' width='24' height='40' rx='4'/%3E%3Cline x1='12' y1='12' x2='36' y2='12'/%3E%3Cline x1='12' y1='36' x2='36' y2='36'/%3E%3Ccircle cx='24' cy='40' r='1.5' fill='%23F72A21' stroke='none'/%3E%3C/svg%3E") !important;
}
p.stat-icon-platformes {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23F72A21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='6' width='40' height='36' rx='3'/%3E%3Cline x1='4' y1='14' x2='44' y2='14'/%3E%3Cline x1='18' y1='14' x2='18' y2='42'/%3E%3Crect x='22' y='18' width='8' height='6' rx='1'/%3E%3Crect x='34' y='18' width='6' height='6' rx='1'/%3E%3Crect x='22' y='28' width='18' height='4' rx='1'/%3E%3Crect x='22' y='35' width='12' height='4' rx='1'/%3E%3Ccircle cx='11' cy='10' r='1.2' fill='%23F72A21' stroke='none'/%3E%3C/svg%3E") !important;
}
h3.stat-number,
.wp-block-heading.stat-number {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 23px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.02em !important;
  text-transform: uppercase !important;
  color: var(--black) !important;
  margin-bottom: 0 !important;
  display: block !important;
  text-align: center !important;
  white-space: normal !important;
  word-break: keep-all !important;
}
mark.stat-suffix,
.stat-number mark {
  display: none !important;
}
p.stat-label {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  text-align: center !important;
}

/* ===========================
   INTERVENTIONS HOME — WordPress overrides
   =========================== */
.wp-block-group.interventions-section,
.wp-block-group.interventions-section.is-layout-flow {
  background: var(--white) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
}
.wp-block-group.interventions-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
h2.interventions-title,
.wp-block-heading.interventions-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  margin-bottom: 0 !important;
  line-height: 1.12 !important;
  letter-spacing: -0.01em !important;
}
.wp-block-group.interventions-accordion {
  border-top: 1px solid var(--beige-dark) !important;
  max-width: 800px !important;
  margin: 0 auto !important;
}
.wp-block-group.intervention-item,
.wp-block-group.intervention-item.is-layout-flow {
  border-bottom: 1px solid var(--beige-dark) !important;
  padding: 0 !important;
  cursor: pointer !important;
}
h3.intervention-header,
.wp-block-heading.intervention-header {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(20px, 2.2vw, 23px) !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  padding: 24px 48px 24px 0 !important;
  padding-left: 36px !important;
  margin: 0 !important;
  position: relative !important;
  cursor: pointer !important;
  transition: color 0.3s !important;
  line-height: 1.3 !important;
}
h3.intervention-header::before,
.wp-block-heading.intervention-header::before {
  content: '✦' !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 14px !important;
  color: var(--red) !important;
  line-height: 1 !important;
}
h3.intervention-header::after,
.wp-block-heading.intervention-header::after {
  content: '+' !important;
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  font-size: 24px !important;
  font-weight: 300 !important;
  color: var(--gray) !important;
  transition: transform 0.3s, color 0.3s !important;
}
.wp-block-group.intervention-item.active h3.intervention-header::after,
.wp-block-group.intervention-item.active .wp-block-heading.intervention-header::after {
  content: '−' !important;
  color: var(--red) !important;
}
.wp-block-group.intervention-item:hover h3.intervention-header,
.wp-block-group.intervention-item:hover .wp-block-heading.intervention-header {
  color: var(--red) !important;
}
.wp-block-group.intervention-body,
.wp-block-group.intervention-body.is-layout-flow {
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height 0.4s ease, padding 0.4s ease !important;
  padding: 0 !important;
}
.wp-block-group.intervention-item.active .wp-block-group.intervention-body,
.wp-block-group.intervention-item.active .wp-block-group.intervention-body.is-layout-flow {
  max-height: 500px !important;
  padding-bottom: 28px !important;
}
p.intervention-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
  max-width: 700px !important;
}

/* ===========================
   EXPERTISES HOME — WordPress overrides
   =========================== */
.wp-block-group.expertises-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.expertises-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.expertises-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 2px !important;
  background: var(--beige-dark) !important;
  margin-top: 48px !important;
}
.wp-block-group.expertise-card {
  background: var(--beige) !important;
  border-radius: 0 !important;
  padding: 44px 40px !important;
  transition: background 0.3s, box-shadow 0.3s !important;
  position: relative !important;
  overflow: hidden !important;
  cursor: pointer !important;
  text-align: center !important;
}
.wp-block-group.expertise-card:hover {
  background: var(--white) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.08) !important;
  z-index: 2 !important;
}
.wp-block-group.expertise-card.active {
  background: var(--white) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.06) !important;
}
p.expertise-num,
p.expertise-num.has-lg-font-size {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 48px !important;
  letter-spacing: -0.02em !important;
  color: var(--red) !important;
  margin-bottom: 16px !important;
  opacity: 0.2 !important;
  line-height: 1 !important;
  text-align: center !important;
}
.wp-block-group.expertise-card.active p.expertise-num,
.wp-block-group.expertise-card.active p.expertise-num.has-lg-font-size {
  opacity: 0.35 !important;
}
p.expertise-icon {
  font-size: 0 !important;
  line-height: 1 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--red) !important;
}
p.expertise-icon svg {
  width: 24px !important;
  height: 24px !important;
  transition: transform 0.3s ease !important;
}
.wp-block-group.expertise-header:hover p.expertise-icon svg,
.wp-block-group.expertise-item.open p.expertise-icon svg {
  transform: scale(1.15) !important;
}
.wp-block-heading.expertise-title,
.wp-block-group.expertise-card p.expertise-title,
.wp-block-group.expertise-card .expertise-title,
p.expertise-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 600 !important;
  font-size: 23px !important;
  letter-spacing: 0 !important;
  color: var(--black) !important;
  margin-bottom: 0 !important;
  line-height: 1.3 !important;
  text-align: center !important;
}
/* Expand indicator */
.wp-block-group.expertise-card::after {
  content: '+' !important;
  display: block !important;
  margin-top: 16px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  color: var(--gray) !important;
  transition: color 0.3s, transform 0.3s !important;
  text-align: center !important;
  line-height: 1 !important;
}
.wp-block-group.expertise-card:hover::after {
  color: var(--red) !important;
}
.wp-block-group.expertise-card.active::after {
  content: '−' !important;
  color: var(--red) !important;
}
p.expertise-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  text-align: center !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.4s ease !important;
}
p.expertise-desc strong { color: var(--black) !important; font-weight: 700 !important; }
.wp-block-group.expertise-card.active p.expertise-desc {
  max-height: 300px !important;
  opacity: 1 !important;
  margin-top: 14px !important;
}

/* Section header shared */
.wp-block-group.section-header,
.wp-block-group.section-header.is-layout-flow {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  margin-bottom: 64px !important;
  flex-wrap: wrap !important;
  gap: 20px !important;
}
.wp-block-group.section-header p.section-link,
.wp-block-group.section-header.is-layout-flow p.section-link {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}

/* ===========================
   REALISATIONS HOME — WordPress overrides
   =========================== */
.wp-block-group.realisations-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.realisations-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.realisations-grid {
  display: grid !important;
  grid-template-columns: 1.5fr 1fr !important;
  grid-template-rows: 1fr 1fr !important;
  gap: 16px !important;
  margin-top: 48px !important;
  min-height: 500px !important;
}
.wp-block-group.realisation-card {
  background: var(--beige) !important;
  border-radius: 12px !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 240px !important;
  transition: all 0.3s !important;
}
.wp-block-group.realisation-card.large {
  grid-row: 1 / 3 !important;
}
.wp-block-group.realisation-card:hover {
  transform: translateY(-4px) !important;
}

/* ===========================
   VISION IA HOME — WordPress overrides
   =========================== */
.wp-block-group.vision-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--black) !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.vision-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative !important;
  z-index: 1 !important;
}
p.vision-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.wp-block-heading.vision-title,
h2.vision-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(32px, 4vw, 48px) !important;
  line-height: 1.12 !important;
  color: var(--white) !important;
  margin-bottom: 24px !important;
  margin-block-end: 24px !important;
}
.wp-block-heading.vision-title em {
  color: var(--red) !important;
  font-style: italic !important;
}
.wp-block-group.vision-split,
.wp-block-group.vision-split.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 60px !important;
  align-items: stretch !important;
}
.wp-block-group.vision-left,
.wp-block-group.vision-left.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wp-block-group.vision-right,
.wp-block-group.vision-right.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: stretch !important;
}
/* DNA 3D Animation */
.dna-helix {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 24px;
  position: relative;
  position: relative;
  perspective: 800px;
}
.dna-strand {
  position: relative;
  width: 200px;
  min-height: 500px;
  flex-shrink: 0;
  animation: dna-rotate 8s linear infinite;
  transform-style: preserve-3d;
}
.dna-pair {
  position: absolute;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transform-style: preserve-3d;
}
.dna-pair::before,
.dna-pair::after {
  content: '';
  width: 14px;
  height: 14px;
  border-radius: 50%;
  flex-shrink: 0;
}
.dna-pair::before {
  background: var(--red);
  box-shadow: 0 0 12px rgba(247, 42, 33, 0.4);
}
.dna-pair::after {
  background: var(--white);
  box-shadow: 0 0 12px rgba(250, 250, 249, 0.3);
}
.dna-pair .dna-bridge {
  flex: 1;
  height: 2px;
  background: linear-gradient(90deg, rgba(247,42,33,0.3), rgba(250,250,249,0.15), rgba(250,250,249,0.3));
  margin: 0 4px;
}
@keyframes dna-rotate {
  from { transform: rotateY(0deg); }
  to { transform: rotateY(360deg); }
}
/* DNA Legend — vertical, right side */
.dna-legend {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex-shrink: 0;
  z-index: 2;
}
.dna-legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.45);
  transition: all 0.3s;
  padding: 8px 14px;
  border-radius: 8px;
  cursor: default;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.06);
  margin-bottom: 4px;
}
.dna-legend-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.3s;
}
.dna-legend-dot--human { background: var(--red); }
.dna-legend-dot--ia { background: white; opacity: 0.6; }
.dna-legend-dot--liaison { background: rgba(200,200,200,0.3); }
.dna-legend-sep {
  display: none;
}
/* Legend states on hover */
.vision-section.dna-show-human .dna-legend-item { color: rgba(255,255,255,0.15); }
.vision-section.dna-show-human #dna-leg-human { color: rgba(247,42,33,0.95); }
.vision-section.dna-show-human #dna-leg-human .dna-legend-dot { opacity: 1; }
.vision-section.dna-show-human #dna-leg-ia .dna-legend-dot { opacity: 0.12; }

.vision-section.dna-show-ia .dna-legend-item { color: rgba(255,255,255,0.15); }
.vision-section.dna-show-ia #dna-leg-ia { color: rgba(255,255,255,0.85); }
.vision-section.dna-show-ia #dna-leg-ia .dna-legend-dot { opacity: 1; }
.vision-section.dna-show-ia #dna-leg-human .dna-legend-dot { opacity: 0.12; }

.vision-section.dna-show-both .dna-legend-item { color: rgba(255,255,255,0.7); }
.vision-section.dna-show-both #dna-leg-human { color: rgba(255,255,255,0.85); }
.vision-section.dna-show-both #dna-leg-ia { color: rgba(247,42,33,0.95); }
.vision-section.dna-show-both #dna-leg-liaison { color: rgba(247,42,33,0.85); }
.vision-section.dna-show-both .dna-legend-dot { opacity: 1; }
/* DNA strand hover isolation */
.dna-pair::before,
.dna-pair::after,
.dna-pair .dna-bridge {
  transition: opacity 0.5s ease;
}
/* Hover brin humain: only red dots */
.vision-section.dna-show-human .dna-pair::after {
  opacity: 0 !important;
}
.vision-section.dna-show-human .dna-pair .dna-bridge {
  opacity: 0.15 !important;
}
/* Hover brin IA: only white dots */
.vision-section.dna-show-ia .dna-pair::before {
  opacity: 0 !important;
}
.vision-section.dna-show-ia .dna-pair .dna-bridge {
  opacity: 0.15 !important;
}
/* Hover symbiose: everything visible (default, but reinforce) */
.vision-section.dna-show-both .dna-pair::before,
.vision-section.dna-show-both .dna-pair::after,
.vision-section.dna-show-both .dna-pair .dna-bridge {
  opacity: 1 !important;
}
p.vision-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  line-height: 1.8 !important;
  color: rgba(255,255,255,0.45) !important;
  max-width: 100% !important;
  margin-bottom: 24px !important;
}
p.vision-text strong {
  color: rgba(255,255,255,0.8) !important;
  font-weight: 500 !important;
}
/* ── BRINS (ADN strands) ── */
.wp-block-group.vision-brins,
.wp-block-group.vision-brins.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wp-block-group.vision-brin,
.wp-block-group.vision-brin.is-layout-flow {
  display: block !important;
  padding: 22px 16px 22px 0 !important;
  border-top: 1px solid rgba(255,255,255,0.05) !important;
  cursor: pointer !important;
  border-radius: 0 10px 10px 0 !important;
  transition: all 0.25s !important;
  position: relative !important;
  background: transparent !important;
}
.wp-block-group.vision-brin:last-child {
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
}
.wp-block-group.vision-brin:hover {
  padding-left: 16px !important;
  background: rgba(255,255,255,0.03) !important;
}
.wp-block-group.vision-brin-result:hover {
  background: rgba(247,42,33,0.05) !important;
}
/* Trait coloré gauche au hover */
.wp-block-group.vision-brin::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 2px !important;
  border-radius: 0 2px 2px 0 !important;
  transform: scaleY(0) !important;
  transform-origin: center !important;
  transition: transform 0.3s cubic-bezier(0.77,0,0.18,1) !important;
}
.wp-block-group.vision-brin:hover::before {
  transform: scaleY(1) !important;
}
.wp-block-group.vision-brin-human::before {
  background: rgba(255,255,255,0.45) !important;
}
.wp-block-group.vision-brin-ia::before {
  background: var(--red) !important;
}
.wp-block-group.vision-brin-result::before {
  background: var(--red) !important;
  box-shadow: 0 0 8px rgba(247,42,33,0.5) !important;
}
/* Brin numéro */
p.brin-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 4px !important;
  text-transform: uppercase !important;
}
.wp-block-group.vision-brin-human p.brin-num { color: rgba(247,42,33,0.45) !important; }
.wp-block-group.vision-brin-ia p.brin-num { color: rgba(255,255,255,0.2) !important; }
.wp-block-group.vision-brin-result p.brin-num { color: rgba(247,42,33,0.75) !important; }
/* Brin titre */
p.brin-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 14px !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 5px !important;
}
.wp-block-group.vision-brin-human p.brin-title { color: rgba(247,42,33,0.85) !important; }
.wp-block-group.vision-brin-ia p.brin-title { color: rgba(255,255,255,0.8) !important; }
.wp-block-group.vision-brin-result p.brin-title { color: var(--red) !important; }
/* Brin texte */
p.brin-text {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  color: rgba(255,255,255,0.3) !important;
  line-height: 1.65 !important;
  margin: 0 !important;
}

/* ===========================
   ASSOCIES HOME — WordPress overrides
   =========================== */
.wp-block-group.associes-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
}
.wp-block-group.associes-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.associes-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
  margin-top: 48px !important;
}
.wp-block-group.associe-card {
  background: var(--white) !important;
  border-radius: 12px !important;
  padding: 48px !important;
  display: flex !important;
  gap: 24px !important;
  align-items: flex-start !important;
  transition: transform 0.3s !important;
}
.wp-block-group.associe-card:hover {
  transform: translateY(-4px) !important;
}
p.associe-name {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: clamp(18px, 2vw, 22px) !important;
  letter-spacing: -0.01em !important;
  color: var(--black) !important;
  margin-bottom: 4px !important;
}
p.associe-role {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  color: var(--red) !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 16px !important;
}
p.associe-bio {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
}

/* ===========================
   VISION SECTION — Beige variant (light background override)
   =========================== */
.wp-block-group.vision-section.vision-section--beige {
  background: var(--beige) !important;
}
.vision-section--beige .wp-block-heading.vision-title,
.vision-section--beige h2.vision-title {
  color: var(--black) !important;
}
.vision-section--beige p.vision-text {
  color: var(--gray) !important;
}
.vision-section--beige p.vision-text strong {
  color: var(--black) !important;
}
/* Brins borders */
.vision-section--beige .wp-block-group.vision-brin,
.vision-section--beige .wp-block-group.vision-brin.is-layout-flow {
  border-top-color: var(--beige-dark) !important;
}
.vision-section--beige .wp-block-group.vision-brin:last-child {
  border-bottom-color: var(--beige-dark) !important;
}
.vision-section--beige .wp-block-group.vision-brin:hover {
  background: rgba(13,13,13,0.03) !important;
}
.vision-section--beige .wp-block-group.vision-brin-result:hover {
  background: rgba(247,42,33,0.05) !important;
}
/* Brin nums */
.vision-section--beige .wp-block-group.vision-brin-human p.brin-num { color: rgba(247,42,33,0.6) !important; }
.vision-section--beige .wp-block-group.vision-brin-ia p.brin-num { color: var(--gray-light) !important; }
.vision-section--beige .wp-block-group.vision-brin-result p.brin-num { color: rgba(247,42,33,0.75) !important; }
/* Brin titles */
.vision-section--beige .wp-block-group.vision-brin-human p.brin-title { color: var(--red) !important; }
.vision-section--beige .wp-block-group.vision-brin-ia p.brin-title { color: var(--black) !important; }
.vision-section--beige .wp-block-group.vision-brin-result p.brin-title { color: var(--red) !important; }
/* Brin texts */
.vision-section--beige p.brin-text {
  color: var(--gray) !important;
}
/* Brin left bar */
.vision-section--beige .wp-block-group.vision-brin-human::before {
  background: var(--gray-light) !important;
}
/* DNA helix — adapt for light bg */
.vision-section--beige .dna-pair::after {
  background: var(--black) !important;
  box-shadow: 0 0 12px rgba(13,13,13,0.2) !important;
}
.vision-section--beige .dna-pair .dna-bridge {
  background: linear-gradient(90deg, rgba(247,42,33,0.3), rgba(13,13,13,0.1), rgba(13,13,13,0.3)) !important;
}
/* DNA legend */
.vision-section--beige .dna-legend-item {
  color: var(--gray) !important;
  background: rgba(13,13,13,0.03) !important;
  border-color: var(--beige-dark) !important;
}
.vision-section--beige .dna-legend-dot--ia { background: var(--black) !important; opacity: 0.6 !important; }
/* Grid bg */
.vision-section--beige .wp-block-group.vision-grid-bg {
  background: none !important;
}

/* ===========================
   SECTION LINK
   =========================== */
a.section-link,
.wp-block-group .section-link a {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--black) !important;
  text-decoration: none !important;
  opacity: 0.6 !important;
  transition: all 0.2s !important;
}
a.section-link:hover {
  opacity: 1 !important;
  color: var(--red) !important;
}

/* ===========================
   EXPERTISES PAGE — WordPress overrides
   =========================== */
section.wp-block-group.expertises-section.is-layout-flow,
section.wp-block-group.expertises-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
div.wp-block-group.expertises-section.is-layout-flow,
div.wp-block-group.expertises-section {
  background: var(--white) !important;
}
.wp-block-group.expertises-inner.is-layout-flow,
.expertises-section > .wp-block-group.section-header,
.expertises-section > .wp-block-group.section-header.is-layout-flow,
.expertises-inner > .wp-block-group.section-header,
.expertises-inner > .wp-block-group.section-header.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto 40px !important;
  display: block !important;
}
.wp-block-group.expertise-list.is-layout-flow,
.wp-block-group.expertise-list {
  border-top: 1px solid var(--beige-dark) !important;
}
.wp-block-group.expertise-item.is-layout-flow,
.wp-block-group.expertise-item {
  border-bottom: 1px solid var(--beige-dark) !important;
  overflow: hidden !important;
}
.wp-block-group.expertise-header.is-layout-flow,
.wp-block-group.expertise-header {
  display: grid !important;
  grid-template-columns: 64px 1fr auto !important;
  gap: 32px !important;
  align-items: center !important;
  padding: 36px 0 !important;
  cursor: pointer !important;
  transition: padding 0.3s !important;
  user-select: none !important;
}
.wp-block-group.expertise-item.open .wp-block-group.expertise-header {
  padding-bottom: 24px !important;
}
.wp-block-group.expertise-item p.expertise-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  color: var(--red) !important;
  opacity: 0.4 !important;
  transition: opacity 0.2s !important;
}
.wp-block-group.expertise-item.open p.expertise-num,
.wp-block-group.expertise-header:hover p.expertise-num { opacity: 1 !important; }
.wp-block-group.expertise-header-center.is-layout-flow,
.wp-block-group.expertise-header-center {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
.wp-block-heading.expertise-title-text,
h3.expertise-title-text {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(20px, 2.5vw, 28px) !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
  transition: color 0.2s !important;
}
.wp-block-group.expertise-header:hover .wp-block-heading.expertise-title-text,
.wp-block-group.expertise-header:hover h3.expertise-title-text { color: var(--red) !important; }
p.expertise-subtitle {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.expertise-header-right.is-layout-flow,
.wp-block-group.expertise-header-right {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
}
p.expertise-icon {
  font-size: 0 !important;
  opacity: 0.6 !important;
  transition: opacity 0.2s !important;
  line-height: 1 !important;
  color: var(--red) !important;
}
.wp-block-group.expertise-item.open p.expertise-icon,
.wp-block-group.expertise-header:hover p.expertise-icon { opacity: 1 !important; }
p.expertise-toggle {
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: var(--beige) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  transition: background 0.2s, transform 0.3s !important;
  position: relative !important;
}
p.expertise-toggle::before {
  content: '+' !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 20px !important;
  font-weight: 300 !important;
  color: var(--black) !important;
  line-height: 1 !important;
  transition: color 0.2s !important;
}
.wp-block-group.expertise-item.open p.expertise-toggle {
  background: var(--red) !important;
  transform: rotate(45deg) !important;
}
.wp-block-group.expertise-item.open p.expertise-toggle::before {
  color: white !important;
}
.wp-block-group.expertise-detail.is-layout-flow,
.wp-block-group.expertise-detail {
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.wp-block-group.expertise-item.open .wp-block-group.expertise-detail {
  max-height: 600px !important;
}
.wp-block-group.expertise-detail-inner.is-layout-flow,
.wp-block-group.expertise-detail-inner {
  padding: 0 0 48px 96px !important;
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: 64px !important;
  align-items: start !important;
}
p.expertise-detail-text {
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 24px !important;
}
p.expertise-detail-text strong { color: var(--black) !important; font-weight: 700 !important; }
p.expertise-detail-link,
p.expertise-detail-link a {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  color: var(--red) !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
}
.wp-block-group.expertise-detail-features.is-layout-flow,
.wp-block-group.expertise-detail-features {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
p.expertise-feature {
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  padding: 14px 16px !important;
  background: var(--beige) !important;
  border-radius: 6px !important;
  font-size: 14px !important;
  color: #4A4845 !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}
p.expertise-feature strong { color: var(--black) !important; font-weight: 700 !important; }
p.expertise-feature--has-desc {
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}
p.expertise-feature--has-desc::after {
  content: '+' !important;
  margin-left: auto !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  flex-shrink: 0 !important;
  transition: transform 0.3s ease, color 0.3s ease !important;
  line-height: 1 !important;
}
p.expertise-feature--open::after {
  transform: rotate(45deg) !important;
  color: var(--red) !important;
}
p.expertise-feature--open {
  background: var(--beige-dark) !important;
  border-radius: 6px 6px 0 0 !important;
}
.expertise-feature-desc,
p.expertise-feature-desc {
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height 0.35s ease, padding 0.35s ease !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  background: var(--beige-dark) !important;
  padding: 0 16px !important;
  border-radius: 0 0 6px 6px !important;
  margin: 0 !important;
  margin-top: -2px !important;
}
.expertise-feature-desc.open,
p.expertise-feature-desc.open {
  max-height: 200px !important;
  padding: 0 16px 14px 16px !important;
}
p.expertise-feature::before {
  content: '\2726' !important;
  color: var(--red) !important;
  font-size: 10px !important;
  flex-shrink: 0 !important;
  margin-top: 2px !important;
  opacity: 0.6 !important;
}

/* ===========================
   DOMAINES PAGE — WordPress overrides
   =========================== */
/* ===========================
   DOMAINES — Tabs layout
   =========================== */
.wp-block-group.domaines-section.is-layout-flow,
.wp-block-group.domaines-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
  overflow: hidden !important;
}
.wp-block-group.domaines-inner,
.wp-block-group.domaines-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: block !important;
}
.wp-block-group.domaines-header,
.wp-block-group.domaines-header.is-layout-flow {
  margin-bottom: 32px !important;
  display: block !important;
}
/* Tabs nav */
.wp-block-group.domaines-tabs-nav,
.wp-block-group.domaines-tabs-nav.is-layout-flex {
  display: flex !important;
  gap: 8px !important;
  margin-bottom: 40px !important;
}
p.domaines-tab-btn {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  padding: 12px 28px !important;
  border-radius: 8px !important;
  background: var(--beige) !important;
  color: var(--black) !important;
  cursor: pointer !important;
  transition: background .25s, color .25s, box-shadow .25s !important;
  user-select: none !important;
}
p.domaines-tab-btn:hover {
  background: var(--beige-dark) !important;
}
p.domaines-tab-btn.active {
  background: var(--black) !important;
  color: var(--white) !important;
}
/* Tab panels */
.wp-block-group.domaines-tab-panel,
.wp-block-group.domaines-tab-panel.is-layout-flow {
  display: none !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  min-height: 360px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  background: var(--beige) !important;
  align-items: stretch !important;
  grid-auto-rows: auto !important;
}
.wp-block-group.domaines-tab-panel.active,
.wp-block-group.domaines-tab-panel.active.is-layout-flow {
  display: grid !important;
}
/* Reset margins on direct grid children */
.wp-block-group.domaines-tab-panel > .wp-block-group,
.wp-block-group.domaines-tab-panel > .wp-block-group.is-layout-flow {
  margin: 0 !important;
}
/* Panel text */
.wp-block-group.domaine-panel-text,
.wp-block-group.domaine-panel-text.is-layout-flow {
  padding: 40px 44px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
.wp-block-heading.domaine-panel-title,
h3.domaine-panel-title {
  font-family: 'Space Grotesk', serif !important;
  font-weight: 700 !important;
  font-size: clamp(24px, 2.5vw, 32px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.15 !important;
  color: var(--black) !important;
  margin-bottom: 16px !important;
}
.wp-block-heading.domaine-panel-title em,
h3.domaine-panel-title em { font-style: italic !important; color: var(--red) !important; }
p.domaine-panel-desc {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 20px !important;
}
p.domaine-panel-desc strong { color: var(--black) !important; font-weight: 500 !important; }
/* Panel features */
.wp-block-group.domaine-panel-features,
.wp-block-group.domaine-panel-features.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
p.domaine-panel-feature {
  display: block !important;
  padding-left: 16px !important;
  position: relative !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
}
p.domaine-panel-feature strong {
  color: inherit !important;
  font-weight: inherit !important;
}
p.domaine-panel-feature::before,
.wp-block-group.domaine-panel-features > p::before {
  content: '' !important;
  width: 6px !important;
  height: 6px !important;
  background: var(--red) !important;
  border-radius: 50% !important;
  opacity: 0.6 !important;
  position: absolute !important;
  left: 0 !important;
  top: 7px !important;
}
/* Style all paragraphs inside features block like feature items */
.wp-block-group.domaine-panel-features > p,
.wp-block-group.domaine-panel-features.is-layout-flow > p {
  display: block !important;
  padding-left: 16px !important;
  position: relative !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
}
.wp-block-group.domaine-panel-features > p strong,
.wp-block-group.domaine-panel-features.is-layout-flow > p strong {
  color: var(--black) !important;
  font-weight: 600 !important;
}
/* Toggle link — hidden on desktop */
.domaine-panel-more { display: none; }
.domaine-panel-features p:last-child {
  margin-bottom: 0 !important;
}
/* 3D visual in panel */
.domaines-tab-panel .wp-block-group.domaine-visual,
.domaines-tab-panel .wp-block-group.domaine-visual.is-layout-flow {
  background: var(--beige-dark) !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  min-height: 360px !important;
  margin: 0 !important;
  border-radius: 0 !important;
}
/* 3D canvas */
canvas.domaine-3d-canvas {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
  pointer-events: auto !important;
  cursor: grab !important;
}

/* ===========================
   INTERVENTIONS OFFRE — Expandable cards
   =========================== */
.wp-block-group.interventions-offre-section,
.wp-block-group.interventions-offre-section.is-layout-flow {
  background: var(--white) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  display: block !important;
}
.wp-block-group.interventions-offre-inner,
.wp-block-group.interventions-offre-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: block !important;
}
.wp-block-group.interventions-offre-header,
.wp-block-group.interventions-offre-header.is-layout-flow {
  margin-bottom: 40px !important;
  display: block !important;
}
.wp-block-group.interventions-offre-grid,
.wp-block-group.interventions-offre-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}
.wp-block-group.intervention-card,
.wp-block-group.intervention-card.is-layout-flow {
  background: var(--beige) !important;
  border-radius: 16px !important;
  padding: 32px !important;
  display: flex !important;
  flex-direction: column !important;
  cursor: pointer !important;
  transition: box-shadow .25s !important;
  overflow: hidden !important;
}
.wp-block-group.intervention-card:hover {
  box-shadow: 0 12px 40px rgba(13,13,13,.06) !important;
}
/* Lab + Agence: same hover style on intervention cards (desktop only) */
.page-id-936,
.page-id-958 .wp-block-group.intervention-card,
.page-id-14 .wp-block-group.intervention-card {
  transition: transform 0.3s, border-color 0.3s, box-shadow 0.3s !important;
  border: 1px solid transparent !important;
}
@media (hover: hover) {
  .page-id-936 .wp-block-group.intervention-card:hover,
  .page-id-958 .wp-block-group.intervention-card:hover,
  .page-id-14 .wp-block-group.intervention-card:hover {
    transform: scale(1.02) !important; border-color: var(--red) !important;
    box-shadow: 0 16px 48px rgba(247,42,33,0.1) !important;
  }
  .page-id-936 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-936 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-958 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-958 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-14 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-14 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow {
    max-height: 300px !important; opacity: 1 !important; margin-top: 20px !important;
  }
}
.wp-block-group.intervention-card-header,
.wp-block-group.intervention-card-header.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}
p.intervention-card-num {
  font-size: 0 !important;
  line-height: 1 !important;
  flex-shrink: 0 !important;
  width: 24px !important;
  height: 24px !important;
  opacity: .4 !important;
  transition: opacity .25s !important;
}
p.intervention-card-num::before {
  content: '★' !important;
  font-size: 22px !important;
  color: var(--red) !important;
  line-height: 1 !important;
}
.wp-block-group.intervention-card.open p.intervention-card-num {
  opacity: 1 !important;
}
h3.intervention-card-title,
.wp-block-heading.intervention-card-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 23px !important;
  color: var(--black) !important;
  flex: 1 !important;
  margin: 0 !important;
}
p.intervention-card-toggle {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1.5px solid var(--beige-dark) !important;
  flex-shrink: 0 !important;
  position: relative !important;
  transition: border-color .25s, transform .3s !important;
}
p.intervention-card-toggle::before,
p.intervention-card-toggle::after {
  content: '' !important;
  position: absolute !important;
  background: var(--gray) !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  transition: background .25s, transform .3s !important;
}
p.intervention-card-toggle::before {
  width: 12px !important;
  height: 1.5px !important;
}
p.intervention-card-toggle::after {
  width: 1.5px !important;
  height: 12px !important;
}
.wp-block-group.intervention-card.open p.intervention-card-toggle {
  border-color: var(--red) !important;
}
.wp-block-group.intervention-card.open p.intervention-card-toggle::after {
  transform: translate(-50%, -50%) rotate(90deg) !important;
  opacity: 0 !important;
}
.wp-block-group.intervention-card.open p.intervention-card-toggle::before {
  background: var(--red) !important;
}
.wp-block-group.intervention-card-body,
.wp-block-group.intervention-card-body.is-layout-flow {
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transition: max-height .4s ease, opacity .3s, margin .3s !important;
  margin-top: 0 !important;
}
.wp-block-group.intervention-card.open .wp-block-group.intervention-card-body,
.wp-block-group.intervention-card.open .wp-block-group.intervention-card-body.is-layout-flow {
  max-height: 300px !important;
  opacity: 1 !important;
  margin-top: 20px !important;
}
p.intervention-card-text {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
p.intervention-card-text strong {
  color: var(--black) !important;
  font-weight: 600 !important;
}

/* Smooth scroll offset for anchor links */
.wp-block-group[id],
section.wp-block-group[id],
[id="expertises"],
[id="domaines"],
[id="interventions"] {
  scroll-margin-top: 100px !important;
}


/* ===========================
   ASSOCIES PAGE — WordPress overrides
   =========================== */
section.wp-block-group.associes-section.is-layout-flow,
section.wp-block-group.associes-section {
  background: var(--white) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
}
.wp-block-group.associe-block.is-layout-flow,
.wp-block-group.associe-block {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  min-height: 640px !important;
  position: relative !important;
}
.wp-block-group.associe-block.reverse.is-layout-flow,
.wp-block-group.associe-block.reverse { direction: rtl !important; }
.wp-block-group.associe-block.reverse.is-layout-flow > *,
.wp-block-group.associe-block.reverse > * { direction: ltr !important; }
.wp-block-group.associe-visual.is-layout-flow,
.wp-block-group.associe-visual {
  position: relative !important;
  background: transparent !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 0 !important;
}
.wp-block-group.associe-visual img {
  max-width: 500px !important;
  max-height: 500px !important;
  width: auto !important;
  height: auto !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  border: 3px solid var(--red) !important;
}
.wp-block-group.associe-visual .wp-block-image,
.wp-block-group.associe-visual figure {
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
}
.wp-block-group.associe-block.reverse .wp-block-group.associe-visual,
.wp-block-group.associe-block:nth-child(2) .wp-block-group.associe-visual { background: transparent !important; }
.wp-block-group.associe-avatar-large.is-layout-flow,
.wp-block-group.associe-avatar-large {
  width: 180px !important;
  height: 180px !important;
  background: transparent !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}
.wp-block-group.associe-avatar-large img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}
.wp-block-group.associe-avatar-large .wp-block-image {
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.wp-block-group.associe-avatar-large figure {
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.wp-block-group.associe-block.reverse .wp-block-group.associe-avatar-large,
.wp-block-group.associe-block:nth-child(2) .wp-block-group.associe-avatar-large { background: transparent !important; }
p.associe-avatar-initials {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 80px !important;
  color: var(--red) !important;
  opacity: 0.2 !important;
  letter-spacing: -0.04em !important;
  user-select: none !important;
}
p.associe-visual-tag {
  position: absolute !important;
  top: 32px !important;
  left: 32px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  background: rgba(247,42,33,0.1) !important;
  padding: 6px 14px !important;
  border-radius: 100px !important;
}
.wp-block-group.associe-content.is-layout-flow,
.wp-block-group.associe-content {
  padding: 72px 64px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: var(--white) !important;
}
.wp-block-group.associe-block.reverse .wp-block-group.associe-content,
.wp-block-group.associe-block:nth-child(2) .wp-block-group.associe-content { background: var(--beige) !important; }
p.associe-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  opacity: 0.5 !important;
  margin-bottom: 20px !important;
}
.wp-block-heading.associe-name,
h2.associe-name {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(32px, 4vw, 52px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.05 !important;
  color: var(--black) !important;
  margin-bottom: 6px !important;
}
p.associe-role {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 32px !important;
}
.wp-block-group.associe-quote.is-layout-flow,
.wp-block-group.associe-quote {
  border-left: 3px solid var(--red) !important;
  padding: 16px 24px !important;
  margin-bottom: 32px !important;
  background: var(--beige) !important;
  border-radius: 0 8px 8px 0 !important;
}
.wp-block-group.associe-block.reverse .wp-block-group.associe-quote,
.wp-block-group.associe-block:nth-child(2) .wp-block-group.associe-quote { background: var(--white) !important; }
p.associe-quote-text {
  font-family: 'Playfair Display', serif !important;
  font-size: 16px !important;
  font-style: italic !important;
  font-weight: 500 !important;
  color: var(--black) !important;
  line-height: 1.6 !important;
  letter-spacing: -0.01em !important;
}
p.associe-parcours {
  font-size: 14px !important;
  line-height: 1.75 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 32px !important;
}
p.associe-parcours strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.associe-apport.is-layout-flow,
.wp-block-group.associe-apport {
  padding: 20px 0 !important;
  border-top: 1px solid var(--beige-dark) !important;
  margin-bottom: 28px !important;
}
p.associe-apport-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  margin-bottom: 10px !important;
}
p.associe-apport-text {
  font-size: 14px !important;
  color: var(--gray) !important;
  line-height: 1.65 !important;
  font-weight: 300 !important;
}
p.associe-apport-text strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.associe-competences.is-layout-flow,
.wp-block-group.associe-competences {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 32px !important;
}
p.competence-pill {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 12px !important;
  font-weight: 400 !important;
  padding: 6px 14px !important;
  background: var(--beige-dark) !important;
  border-radius: 100px !important;
  color: var(--black) !important;
  transition: background 0.2s !important;
  cursor: default !important;
}
.wp-block-group.associe-block.reverse p.competence-pill,
.wp-block-group.associe-block:nth-child(2) p.competence-pill { background: var(--white) !important; }
p.competence-pill:hover { background: rgba(247,42,33,0.1) !important; color: var(--red) !important; }
p.associe-linkedin,
p.associe-linkedin a {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--black) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--beige-dark) !important;
  padding-bottom: 4px !important;
  width: fit-content !important;
  transition: color 0.2s, border-color 0.2s !important;
}
p.associe-linkedin:hover,
p.associe-linkedin a:hover { color: var(--red) !important; border-color: var(--red) !important; }

/* Ensemble section */
.wp-block-group.ensemble-section.is-layout-flow,
section.wp-block-group.ensemble-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--beige) !important;
  position: relative !important;
  overflow: hidden !important;
}
p.ensemble-bg {
  position: absolute !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 16vw !important;
  color: var(--beige-dark) !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  letter-spacing: -0.05em !important;
  pointer-events: none !important;
  user-select: none !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
.wp-block-group.ensemble-inner.is-layout-flow,
.wp-block-group.ensemble-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 48px !important;
  align-items: center !important;
}
p.ensemble-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 16px !important;
}
.wp-block-heading.ensemble-title,
h2.ensemble-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(26px, 3vw, 40px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.15 !important;
  color: var(--black) !important;
}
.wp-block-heading.ensemble-title em,
h2.ensemble-title em { font-style: italic !important; color: var(--red) !important; }
p.ensemble-text {
  font-size: 15px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 24px !important;
}
p.ensemble-text strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.ensemble-values.is-layout-flow,
.wp-block-group.ensemble-values {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}
.wp-block-group.ensemble-value.is-layout-flow,
.wp-block-group.ensemble-value {
  padding: 14px 18px !important;
  background: var(--white) !important;
  border-radius: 8px !important;
  transition: transform 0.2s !important;
  cursor: default !important;
}
.wp-block-group.ensemble-value:hover { transform: translateY(-2px) !important; }
p.ensemble-value-icon {
  font-size: 16px !important;
  margin-bottom: 4px !important;
  display: block !important;
  line-height: 1 !important;
}
.wp-block-heading.ensemble-value-title,
h3.ensemble-value-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin-bottom: 4px !important;
  letter-spacing: -0.01em !important;
}
p.ensemble-value-text {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
}
/* CTA band associes/partenaires */
section.wp-block-group.cta-section .wp-block-group.cta-band-inner.is-layout-flow,
.wp-block-group.cta-band-inner.is-layout-flow,
.wp-block-group.cta-band-inner,
section.wp-block-group.cta-section .wp-block-group.cta-inner-band.is-layout-flow,
.wp-block-group.cta-inner-band.is-layout-flow,
.wp-block-group.cta-inner-band {
  max-width: 1200px !important;
  margin: 0 auto !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 40px !important;
}
p.cta-band-text {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(24px, 3.5vw, 40px) !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.2 !important;
}
p.cta-band-text em { font-style: italic !important; color: var(--red) !important; }

/* ===========================
   PARTENAIRES PAGE — WordPress overrides
   =========================== */
.wp-block-group.partenaires-section.is-layout-flow,
section.wp-block-group.partenaires-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.partenaires-inner.is-layout-flow,
.wp-block-group.partenaires-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.categorie-block.is-layout-flow,
.wp-block-group.categorie-block {
  margin-bottom: 80px !important;
}
.wp-block-group.categorie-block.is-layout-flow > *,
.wp-block-group.categorie-block > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.wp-block-group.categorie-block:last-child { margin-bottom: 0 !important; }
.wp-block-group.categorie-header.is-layout-flow,
.wp-block-group.categorie-header {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  margin-bottom: 32px !important;
  padding-bottom: 20px !important;
  border-bottom: 1px solid var(--beige-dark) !important;
}
p.categorie-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
}
.wp-block-heading.categorie-title,
h2.categorie-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(20px, 2.5vw, 28px) !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
}
p.categorie-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
  margin-top: 8px !important;
  max-width: 100% !important;
}
.wp-block-group.logos-grid.is-layout-flow.wp-block-group-is-layout-flow,
.wp-block-group.logos-grid.is-layout-flow,
.wp-block-group.logos-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  grid-auto-rows: 1fr !important;
  gap: 16px !important;
  align-items: stretch !important;
  margin-top: 24px !important;
}
.wp-block-group.partner-card.is-layout-flow,
.wp-block-group.partner-card {
  background: var(--beige) !important;
  border-radius: 12px !important;
  padding: 32px 24px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease !important;
  cursor: default !important;
  min-height: 140px !important;
  text-align: center !important;
}
.wp-block-group.partner-card.is-layout-flow > *,
.wp-block-group.partner-card > * {
  margin: 0 !important;
  margin-block-start: 0 !important;
}
.wp-block-group.partner-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 48px rgba(13,13,13,0.08) !important;
  background: var(--white) !important;
}
.wp-block-group.partner-logo-wrap.is-layout-flow,
.wp-block-group.partner-logo-wrap {
  width: 120px !important;
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}
.wp-block-group.partner-logo-wrap figure,
.wp-block-group.partner-logo-wrap .wp-block-image {
  margin: 0 !important;
  width: 120px !important;
  height: 40px !important;
}
a.become-partner-link {
  text-decoration: none !important;
  color: inherit !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  height: 100% !important;
}
p.partner-name {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
  text-align: center !important;
}
p.partner-type {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  text-align: center !important;
  flex: 1 !important;
}
p.partner-link {
  margin-top: auto !important;
  text-align: center !important;
}
p.partner-link a {
  display: inline-flex !important;
  align-items: center !important;
  min-height: 44px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  color: var(--black) !important;
  text-decoration: none !important;
  padding: 6px 14px !important;
  border: 1px solid var(--gray-light) !important;
  border-radius: 20px !important;
  transition: all 0.2s ease !important;
  position: relative !important;
  z-index: 2 !important;
}
p.partner-link a:hover {
  background: var(--black) !important;
  color: var(--white) !important;
  border-color: var(--black) !important;
}
.wp-block-group.partner-card::after,
.partner-card::after {
  pointer-events: none !important;
}
/* Become-partner button in categorie-header */
p.become-partner-btn {
  margin-left: auto !important;
  flex-shrink: 0 !important;
}
p.become-partner-btn a {
  display: inline-block !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  color: var(--white) !important;
  background: var(--red) !important;
  padding: 8px 18px !important;
  border-radius: 20px !important;
  text-decoration: none !important;
  transition: background 0.2s ease, transform 0.2s ease !important;
  white-space: nowrap !important;
}
p.become-partner-btn a:hover {
  background: var(--black) !important;
  transform: translateY(-1px) !important;
}
/* Rejoindre section */
.wp-block-group.rejoindre-section.is-layout-flow,
section.wp-block-group.rejoindre-section {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
}
.wp-block-group.rejoindre-inner.is-layout-flow,
.wp-block-group.rejoindre-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.section-header.is-layout-flow,
.wp-block-group.section-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-end !important;
  gap: 20px !important;
  margin-bottom: 64px !important;
  flex-wrap: wrap !important;
}
p.section-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
p.section-label::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--red);
}
p.section-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.75 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  max-width: 600px !important;
}
p.section-desc strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.avantages-grid.is-layout-flow,
.wp-block-group.avantages-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
}
.wp-block-group.avantage-card.is-layout-flow,
.wp-block-group.avantage-card {
  background: var(--white) !important;
  border-radius: 12px !important;
  padding: 32px 28px !important;
  transition: transform 0.2s !important;
}
.wp-block-group.avantage-card:hover { transform: translateY(-3px) !important; }
.wp-block-heading.avantage-title,
h3.avantage-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin-bottom: 10px !important;
  letter-spacing: -0.01em !important;
}
p.avantage-text {
  font-size: 14px !important;
  color: var(--gray) !important;
  line-height: 1.65 !important;
  font-weight: 300 !important;
}
.wp-block-group.cta-inner-band.is-layout-flow,
.wp-block-group.cta-inner-band {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 40px !important;
}

/* ===========================
   CONTACT PAGE — WordPress overrides
   =========================== */
main.wp-block-group.contact-page.is-layout-flow,
.wp-block-group.contact-page {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  padding-top: 72px !important;
}
.wp-block-group.contact-left.is-layout-flow,
.wp-block-group.contact-left {
  background: var(--beige) !important;
  padding: clamp(48px, 6vw, 80px) clamp(24px, 4vw, 64px) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}
.wp-block-group.contact-left-inner.is-layout-flow,
.wp-block-group.contact-left-inner {
  position: relative !important;
  z-index: 1 !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}
p.contact-breadcrumb {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 32px !important;
}
p.contact-breadcrumb::before {
  content: '' !important;
  display: inline-block !important;
  width: 20px !important;
  height: 1px !important;
  background: var(--red) !important;
  margin-right: 8px !important;
  vertical-align: middle !important;
}
.wp-block-heading.contact-title,
h1.contact-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(48px, 5vw, 80px) !important;
  letter-spacing: -0.03em !important;
  line-height: 0.95 !important;
  color: var(--black) !important;
  margin-bottom: 28px !important;
}
.wp-block-heading.contact-title em,
h1.contact-title em { font-style: normal !important; color: var(--red) !important; }
p.contact-desc {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  max-width: 380px !important;
}
p.contact-desc strong { color: var(--black) !important; font-weight: 500 !important; }
p.contact-phone { margin-top: 16px !important; }
p.contact-phone a { font-family: 'Space Grotesk', sans-serif !important; font-size: 18px !important; font-weight: 600 !important; color: var(--red) !important; text-decoration: none !important; letter-spacing: 0.02em !important; }
p.contact-phone a:hover { color: var(--black) !important; }
/* Contact toggle */
.wp-block-group.contact-toggle.is-layout-flow,
.wp-block-group.contact-toggle {
  display: flex !important;
  gap: 8px !important;
  margin-bottom: 40px !important;
  background: var(--beige) !important;
  border-radius: 100px !important;
  padding: 4px !important;
}
p.contact-toggle-btn {
  flex: 1 !important;
  text-align: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  padding: 12px 20px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  transition: background 0.3s, color 0.3s !important;
  color: var(--gray) !important;
  background: transparent !important;
  user-select: none !important;
}
p.contact-toggle-btn.contact-toggle-btn--active {
  background: var(--black) !important;
  color: var(--white) !important;
}
p.contact-toggle-btn:hover:not(.contact-toggle-btn--active) {
  color: var(--black) !important;
}
/* Contact panels */
.wp-block-group.contact-panel.is-layout-flow,
.wp-block-group.contact-panel {
  display: none !important;
}
.wp-block-group.contact-panel.contact-panel--active.is-layout-flow,
.wp-block-group.contact-panel.contact-panel--active {
  display: block !important;
}
/* Partner contacts */
.wp-block-group.partner-contacts.is-layout-flow,
.wp-block-group.partner-contacts {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
  margin-top: 32px !important;
}
.wp-block-group.partner-contact-card.is-layout-flow,
.wp-block-group.partner-contact-card {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  background: var(--beige) !important;
  border-radius: 16px !important;
  padding: 24px !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
}
.wp-block-group.partner-contact-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(13,13,13,0.06) !important;
}
p.partner-contact-avatar {
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  background: var(--white) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--red) !important;
  flex-shrink: 0 !important;
  line-height: 52px !important;
  text-align: center !important;
}
.wp-block-group.partner-contact-info.is-layout-flow,
.wp-block-group.partner-contact-info {
  flex: 1 !important;
}
h3.partner-contact-name,
.wp-block-heading.partner-contact-name {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  margin-bottom: 2px !important;
}
p.partner-contact-role {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.partner-contact-btn .wp-block-button__link {
  background: var(--black) !important;
  color: var(--white) !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 10px 20px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  transition: background 0.2s !important;
  white-space: nowrap !important;
}
.partner-contact-btn .wp-block-button__link:hover {
  background: var(--black) !important;
  color: white !important;
}
p.partner-contact-note {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  text-align: center !important;
  margin-top: 24px !important;
}
p.contact-assocs-label {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 12px !important;
}
.wp-block-group.contact-assocs.is-layout-flow,
.wp-block-group.contact-assocs {
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
}
.wp-block-group.assoc-chip.is-layout-flow,
.wp-block-group.assoc-chip {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: var(--white) !important;
  border-radius: 100px !important;
  padding: 8px 16px 8px 8px !important;
}
p.assoc-chip-avatar {
  width: 32px !important;
  height: 32px !important;
  border-radius: 50% !important;
  background: var(--beige-dark) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--red) !important;
  flex-shrink: 0 !important;
  line-height: 32px !important;
  text-align: center !important;
}
p.assoc-chip-name {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--black) !important;
}
p.assoc-chip-role,
span.assoc-chip-role {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
a.assoc-chip-link { text-decoration: none !important; color: inherit !important; cursor: pointer !important; pointer-events: auto !important; }
a.assoc-chip-link:hover .assoc-chip { background: var(--beige-dark) !important; }
a.assoc-chip-link .assoc-chip-name,
a.assoc-chip-link .assoc-chip-role { display: block; }
span.assoc-chip-avatar {
  width: 32px !important; height: 32px !important; border-radius: 50% !important;
  background: var(--beige-dark) !important; display: flex !important; align-items: center !important;
  justify-content: center !important; font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important; font-weight: 700 !important; color: var(--red) !important;
  flex-shrink: 0 !important; line-height: 32px !important; text-align: center !important;
}
span.assoc-chip-name {
  font-size: 13px !important; font-weight: 500 !important; color: var(--black) !important;
}
/* Right column - form */
.wp-block-group.contact-right.is-layout-flow,
.wp-block-group.contact-right {
  background: var(--white) !important;
  padding: clamp(48px, 6vw, 80px) clamp(24px, 4vw, 64px) !important;
}
.wp-block-heading.form-title,
h2.form-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(22px, 3vw, 28px) !important;
  letter-spacing: -0.02em !important;
  color: var(--black) !important;
  margin-bottom: 8px !important;
}
p.form-subtitle {
  font-size: 15px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 40px !important;
  line-height: 1.6 !important;
}
.wp-block-group.form-group.is-layout-flow,
.wp-block-group.form-group {
  margin-bottom: 28px !important;
}
p.form-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--black) !important;
  margin-bottom: 12px !important;
}
.wp-block-group.project-types.is-layout-flow,
.wp-block-group.project-types {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
p.project-type-btn {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  padding: 8px 16px !important;
  border-radius: 8px !important;
  border: 1.5px solid var(--beige-dark) !important;
  background: transparent !important;
  color: var(--gray) !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  font-weight: 300 !important;
}
p.project-type-btn:hover { border-color: var(--black) !important; color: var(--black) !important; }
p.project-type-btn.selected { background: var(--black) !important; border-color: var(--black) !important; color: var(--white) !important; }
.wp-block-group.budget-options.is-layout-flow,
.wp-block-group.budget-options {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 8px !important;
}
.wp-block-group.budget-option.is-layout-flow,
.wp-block-group.budget-option {
  padding: 14px 16px !important;
  border-radius: 10px !important;
  border: 1.5px solid var(--beige-dark) !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  background: transparent !important;
}
.wp-block-group.budget-option:hover { border-color: var(--black) !important; }
.wp-block-group.budget-option.selected { border-color: var(--red) !important; background: rgba(247,42,33,0.04) !important; }
p.budget-option-amount {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  margin-bottom: 2px !important;
}
p.budget-option-label {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.form-row.is-layout-flow,
.wp-block-group.form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}
p.form-input-placeholder,
p.form-select-placeholder,
p.form-textarea-placeholder {
  width: 100% !important;
  padding: 14px 18px !important;
  border-radius: 10px !important;
  border: 1.5px solid var(--beige-dark) !important;
  background: var(--white) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--gray-light) !important;
  font-weight: 300 !important;
}
p.form-textarea-placeholder {
  min-height: 120px !important;
}
.wp-block-group.form-submit.is-layout-flow,
.wp-block-group.form-submit {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 32px !important;
  padding-top: 32px !important;
  border-top: 1px solid var(--beige-dark) !important;
}
p.form-note {
  font-size: 12px !important;
  color: var(--gray-light) !important;
  font-weight: 300 !important;
  max-width: 200px !important;
  line-height: 1.5 !important;
}

/* ===========================
   MENTIONS LEGALES — WordPress overrides
   =========================== */
.wp-block-group.page-hero--narrow .wp-block-group.page-hero-inner.is-layout-flow,
.wp-block-group.page-hero--narrow .wp-block-group.page-hero-inner {
  max-width: 800px !important;
  display: block !important;
}
p.page-hero-date {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.legal-content.is-layout-flow,
.wp-block-group.legal-content {
  max-width: 800px !important;
  margin: 0 auto !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
}
.wp-block-group.legal-section.is-layout-flow,
.wp-block-group.legal-section {
  margin-bottom: 56px !important;
  padding-bottom: 56px !important;
  border-bottom: 1px solid var(--beige-dark) !important;
}
.wp-block-group.legal-section:last-child {
  border-bottom: none !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
p.legal-section-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  opacity: 0.6 !important;
  margin-bottom: 12px !important;
}
.wp-block-heading.legal-section-title,
h2.legal-section-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: clamp(20px, 2.5vw, 28px) !important;
  letter-spacing: -0.01em !important;
  color: var(--black) !important;
  margin-bottom: 20px !important;
  line-height: 1.2 !important;
}
.wp-block-heading.legal-subsection-title,
h3.legal-subsection-title {
  font-size: 18px !important;
  margin-top: 24px !important;
  margin-bottom: 12px !important;
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  color: var(--black) !important;
}
.wp-block-group.legal-section p {
  font-size: 15px !important;
  line-height: 1.8 !important;
  color: #4A4845 !important;
  font-weight: 300 !important;
  margin-bottom: 16px !important;
}
.wp-block-group.legal-section p:last-child { margin-bottom: 0 !important; }
.wp-block-group.legal-section strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.legal-section a { color: var(--red) !important; text-decoration: none !important; border-bottom: 1px solid rgba(247,42,33,0.3) !important; }
.wp-block-group.legal-section a:hover { border-color: var(--red) !important; }

/* ===========================
   404 ERROR PAGE
   =========================== */
.wp-block-group.error-404-section,
.wp-block-group.error-404-section.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 70vh !important;
  padding: 80px 24px !important;
  text-align: center !important;
  background: var(--white) !important;
}
p.error-404-code {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(100px, 20vw, 200px) !important;
  font-weight: 700 !important;
  color: var(--beige-dark) !important;
  line-height: 1 !important;
  margin: 0 0 -10px !important;
  letter-spacing: -0.03em !important;
}
h1.error-404-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: clamp(28px, 4vw, 48px) !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin: 0 0 16px !important;
  line-height: 1.2 !important;
}
p.error-404-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: clamp(16px, 2vw, 20px) !important;
  color: var(--gray) !important;
  font-weight: 400 !important;
  margin: 0 0 40px !important;
  max-width: 480px !important;
}
p.error-404-desc strong {
  color: var(--red) !important;
  font-weight: 600 !important;
}
.wp-block-group.legal-info-grid.is-layout-flow,
.wp-block-group.legal-info-grid {
  width: 100% !important;
  margin: 20px 0 !important;
  border-collapse: collapse !important;
}
.wp-block-group.legal-info-row.is-layout-flow,
.wp-block-group.legal-info-row {
  display: grid !important;
  grid-template-columns: 1fr 2fr !important;
  border-bottom: 1px solid var(--beige-dark) !important;
}
.wp-block-group.legal-info-row:last-child { border-bottom: none !important; }
p.legal-info-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  padding: 12px 16px !important;
  background: var(--beige) !important;
}
p.legal-info-value {
  font-size: 14px !important;
  color: #4A4845 !important;
  font-weight: 300 !important;
  padding: 12px 16px !important;
  line-height: 1.5 !important;
}
.wp-block-group.legal-info-grid--cookies .wp-block-group.legal-info-row {
  grid-template-columns: 1fr 2fr 1fr !important;
}
.wp-block-group.legal-info-row--header {
  background: var(--beige) !important;
}
.wp-block-group.legal-highlight.is-layout-flow,
.wp-block-group.legal-highlight {
  background: var(--beige) !important;
  border-radius: 10px !important;
  padding: 20px 24px !important;
  margin: 20px 0 !important;
}
.wp-block-group.legal-highlight p { margin: 0 !important; font-size: 14px !important; }

/* ===========================
   BLOG NEWSLETTER — centering fix
   =========================== */
/* ===========================
   BLOG PAGE — WordPress overrides
   =========================== */
.wp-block-group.filters-bar.is-layout-flow,
.wp-block-group.filters-bar {
  background: var(--beige) !important;
  padding: 0 48px 32px !important;
  border-bottom: 1px solid var(--beige-dark) !important;
}
.wp-block-group.featured-section.is-layout-flow,
.wp-block-group.featured-section,
.featured-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.featured-inner.is-layout-flow,
.wp-block-group.featured-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.featured-card.is-layout-flow,
.wp-block-group.featured-card {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  background: var(--beige) !important;
  min-height: 440px !important;
  position: relative !important;
  cursor: pointer !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
.wp-block-group.featured-card:hover { transform: translateY(-4px) !important; box-shadow: 0 24px 64px rgba(13,13,13,0.1) !important; }
.wp-block-group.featured-image.is-layout-flow,
.wp-block-group.featured-image,
.featured-image {
  background: var(--beige-dark) !important;
  position: relative !important;
  overflow: hidden !important;
  min-height: 440px !important;
}
.wp-block-group.featured-image img,
.featured-image img {
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
  object-fit: cover !important;
}
.wp-block-group.featured-content.is-layout-flow,
.wp-block-group.featured-content {
  padding: 48px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}
.wp-block-group.featured-meta.is-layout-flow,
.wp-block-group.featured-meta {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-bottom: 20px !important;
  flex-wrap: wrap !important;
}
.wp-block-group.featured-author.is-layout-flow,
.wp-block-group.featured-author {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}
.wp-block-group.blog-grid-section.is-layout-flow,
.wp-block-group.blog-grid-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.blog-grid-inner.is-layout-flow,
.wp-block-group.blog-grid-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.blog-grid.is-layout-flow,
.wp-block-group.blog-grid {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  gap: 20px !important;
}
.wp-block-group.article-card.is-layout-flow,
.wp-block-group.article-card {
  border-radius: 12px !important;
  overflow: hidden !important;
  background: var(--beige) !important;
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  cursor: pointer !important;
  transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
.wp-block-group.article-card:hover { transform: translateY(-4px) !important; box-shadow: 0 20px 56px rgba(13,13,13,0.09) !important; }
.wp-block-group.article-card.article-card-1 { grid-column: span 7 !important; }
.wp-block-group.article-card.article-card-2 { grid-column: span 5 !important; }
.wp-block-group.article-card.article-card-3 { grid-column: span 4 !important; }
.wp-block-group.article-card.article-card-4 { grid-column: span 4 !important; }
.wp-block-group.article-card.article-card-5 { grid-column: span 4 !important; }
.wp-block-group.article-card.article-card-6 { grid-column: span 6 !important; }
.wp-block-group.article-card.article-card-7 { grid-column: span 6 !important; }
.wp-block-group.card-image.is-layout-flow,
.wp-block-group.card-image,
.card-image {
  background: var(--beige-dark) !important;
  aspect-ratio: 16/9 !important;
  position: relative !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}
.wp-block-group.card-image img,
.card-image img {
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
  object-fit: cover !important;
}
.wp-block-group.article-card.article-card-1 .wp-block-group.card-image,
.wp-block-group.article-card.article-card-2 .wp-block-group.card-image { aspect-ratio: 4/3 !important; }
.wp-block-group.card-content.is-layout-flow,
.wp-block-group.card-content {
  padding: 24px !important;
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
}
.wp-block-group.card-meta.is-layout-flow,
.wp-block-group.card-meta {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
  flex-wrap: wrap !important;
}
.wp-block-group.card-footer.is-layout-flow,
.wp-block-group.card-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: auto !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--beige-dark) !important;
}
.wp-block-group.card-author.is-layout-flow,
.wp-block-group.card-author {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.wp-block-group.featured-content-top.is-layout-flow,
.wp-block-group.featured-content-top {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wp-block-group.author-details.is-layout-flow,
.wp-block-group.author-details {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.wp-block-group.featured-arrow.is-layout-flow,
.wp-block-group.featured-arrow {
  margin-left: auto !important;
  width: 40px !important;
  height: 40px !important;
  border-radius: 50% !important;
  background: var(--red) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  transition: background 0.2s, transform 0.2s !important;
}
.wp-block-group.featured-arrow::after {
  content: '\2197' !important;
  color: white !important;
  font-size: 16px !important;
}
.featured-arrow svg path { stroke: white !important; }
.wp-block-group.featured-card:hover .wp-block-group.featured-arrow {
  background: var(--red) !important;
  transform: rotate(45deg) !important;
}
.wp-block-group.card-arrow.is-layout-flow,
.wp-block-group.card-arrow {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: var(--white) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  transition: background 0.2s !important;
}
.wp-block-group.card-arrow::after {
  content: '\2197' !important;
  color: var(--gray) !important;
  font-size: 12px !important;
}
.wp-block-group.article-card:hover .wp-block-group.card-arrow {
  background: var(--red) !important;
}
.wp-block-group.article-card:hover .wp-block-group.card-arrow::after {
  color: white !important;
}
.wp-block-group.newsletter-section.is-layout-flow,
.wp-block-group.newsletter-section {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  text-align: center !important;
}
.wp-block-group.newsletter-inner.is-layout-flow,
.wp-block-group.newsletter-inner {
  max-width: 600px !important;
  margin: 0 auto !important;
  text-align: center !important;
}
.wp-block-group.newsletter-form.is-layout-flow,
.wp-block-group.newsletter-form {
  display: flex !important;
  gap: 10px !important;
  max-width: 440px !important;
  margin: 0 auto !important;
}
p.newsletter-input,
.wp-block-group.newsletter-form p.newsletter-input {
  flex: 1 !important;
  padding: 14px 20px !important;
  border-radius: 100px !important;
  border: 1.5px solid var(--beige-dark) !important;
  background: var(--white) !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--gray-light) !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}
.wp-block-group.newsletter-form .wp-block-buttons {
  flex-shrink: 0 !important;
}

/* Meta dots — separators between tag · date · read-time */
.wp-block-group.featured-meta p.article-date::before,
.wp-block-group.featured-meta p.article-read-time::before,
.wp-block-group.card-meta p.article-date::before,
.wp-block-group.card-meta p.article-read-time::before {
  content: '·' !important;
  margin-right: 8px !important;
  color: var(--gray-light) !important;
  font-weight: 700 !important;
  font-size: 14px !important;
}

/* Blog spacing — titles & text */
h2.featured-title,
.wp-block-heading.featured-title {
  margin-bottom: 16px !important;
}
p.featured-excerpt {
  margin-bottom: 32px !important;
}
h3.card-title,
.wp-block-heading.card-title {
  margin-bottom: 10px !important;
}
p.card-excerpt {
  margin-bottom: 16px !important;
}
p.section-label {
  margin-bottom: 24px !important;
}

/* Newsletter spacing */
h2.newsletter-title,
.wp-block-heading.newsletter-title {
  margin-bottom: 16px !important;
}
p.newsletter-desc {
  margin-bottom: 32px !important;
}
p.newsletter-note {
  margin-top: 12px !important;
}

/* ===========================
   RESET
   =========================== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

/* ===========================
   CUSTOM PROPERTIES
   =========================== */
:root {
  --red: #F72A21;
  --red-light: #FF6347;
  --black: #0D0D0D;
  --white: #FAFAF9;
  --beige: #F9F7F4;
  --beige-dark: #F3F0EB;
  --gray: #736E69;
  --gray-light: #D2CEC8;

  /* --- Paddings de lame uniformisés --- */
  --section-pad-y-desktop: clamp(80px, 9vw, 112px);
  --section-pad-x-desktop: clamp(20px, 4vw, 48px);
  --section-pad-y-tablet: clamp(60px, 7vw, 80px);
  --section-pad-x-tablet: clamp(20px, 3vw, 32px);
  --section-pad-y-mobile: 48px;
  --section-pad-x-mobile: 20px;
  --section-pad-y-small: 40px;
  --section-pad-x-small: 16px;
  --section-pad-y-compact-desktop: clamp(32px, 4vw, 48px);
}

/* ===========================
   BASE ELEMENTS
   =========================== */
html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', sans-serif;
  background: var(--white);
  color: var(--black);
  overflow-x: hidden;
}

/* ===========================
   CUSTOM CURSOR
   =========================== */
.cursor {
  position: fixed;
  top: 0; left: 0;
  width: 8px; height: 8px;
  margin-left: -4px;
  margin-top: -4px;
  background: #F72A21;
  border-radius: 50%;
  pointer-events: none;
  z-index: 999999;
  transition: width 0.3s, height 0.3s, background 0.3s, margin 0.3s;
}
.cursor-follower {
  position: fixed;
  top: 0; left: 0;
  width: 40px; height: 40px;
  margin-left: -20px;
  margin-top: -20px;
  border: 1.5px solid #F72A21;
  border-radius: 50%;
  pointer-events: none;
  z-index: 999998;
  opacity: 0.5;
}

/* ===========================
   NOISE OVERLAY
   =========================== */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  opacity: 0.025;
  pointer-events: none;
  z-index: 9990;
}

/* ===========================
   PROGRESS BARS
   =========================== */
.progress-bar {
  position: fixed;
  top: 0; left: 0;
  height: 3px;
  background: var(--red);
  z-index: 200;
  width: 0%;
  transition: width 0.1s linear;
}
.reading-progress {
  position: fixed;
  top: 72px; left: 0;
  height: 2px;
  background: var(--red);
  z-index: 99;
  width: 0%;
  transition: width 0.1s linear;
}

/* ===========================
   NAV
   =========================== */
nav {
  position: fixed;
  top: 16px; left: 50%; right: auto;
  transform: translateX(-50%);
  z-index: 100;
  padding: 10px 12px 10px 24px;
  width: calc(100% - 48px);
  max-width: 1200px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255,255,255,0.85);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(13,13,13,0.06);
  border-radius: 100px;
  box-shadow: 0 4px 24px rgba(13,13,13,0.08);
  transition: all 0.3s;
}
.nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
}
.nav-logo img {
  height: 32px;
  width: auto;
}
.nav-logo-text {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 17px;
  color: var(--black);
  letter-spacing: -0.3px;
}
.nav-logo-text span { color: var(--red); }

.nav-links {
  display: flex;
  align-items: center;
  gap: 36px;
  list-style: none;
}
.nav-links a {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--black);
  text-decoration: none;
  letter-spacing: 0.01em;
  opacity: 0.65;
  transition: opacity 0.2s;
  position: relative;
}
.nav-links a::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 0; height: 1px;
  background: var(--red);
  transition: width 0.3s;
}
.nav-links a:hover { opacity: 1; }
.nav-links a:hover::after { width: 100%; }
.nav-links a.active { opacity: 1; }
.nav-links a.active::after { width: 100%; }

/* NAV DROPDOWN */
.nav-dropdown { position: relative; }
.nav-dropdown-toggle {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--black);
  text-decoration: none;
  opacity: 0.65;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 5px;
  position: relative;
  background: none;
  border: none;
  padding: 0;
}
.nav-dropdown-toggle::after {
  content: '';
  position: absolute;
  bottom: -3px; left: 0;
  width: 100%; height: 1px;
  background: var(--red);
}
.nav-dropdown-toggle svg { transition: transform 0.2s; }
.nav-dropdown:hover .nav-dropdown-toggle { opacity: 1; }
.nav-dropdown:hover .nav-dropdown-toggle svg { transform: rotate(180deg); }
.nav-dropdown-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  background: var(--white);
  border: 1px solid var(--beige-dark);
  border-radius: 10px;
  padding: 8px;
  min-width: 180px;
  box-shadow: 0 12px 40px rgba(13,13,13,0.1);
  opacity: 0;
  pointer-events: none;
  transition: all 0.2s ease;
}
.nav-dropdown:hover .nav-dropdown-menu {
  opacity: 1;
  pointer-events: all;
  transform: translateX(-50%) translateY(0);
}
.nav-dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 6px;
  text-decoration: none;
  font-size: 14px;
  color: var(--black);
  transition: background 0.15s;
  opacity: 0.7;
}
.nav-dropdown-item:hover { background: var(--beige); opacity: 1; }
.nav-dropdown-item.active { opacity: 1; color: var(--red); }
.nav-dropdown-item-icon { font-size: 16px; }

/* nav-cta styles consolidated in HEADER section above */

/* ===========================
   BUTTONS
   =========================== */
/* btn-primary base — consolidated into .wp-block-button.btn-primary above */

.btn-secondary {
  font-size: 14px;
  color: var(--black);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 400;
  opacity: 0.6;
  transition: opacity 0.2s;
}
.btn-secondary:hover { opacity: 1; }

.btn-submit {
  background: var(--red);
  color: white;
  padding: 16px 32px;
  border-radius: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.btn-submit:hover {
  background: var(--black);
  color: white;
}

/* Contact page — no gap below header */
main.wp-block-group.contact-page.is-layout-flow,
.wp-block-group.contact-page.is-layout-flow {
  margin-top: 0 !important;
}

/* Contact form — cursor fix for inputs & buttons */
#hapi-contact-form input,
#hapi-contact-form textarea,
#hapi-contact-form select { cursor: text !important; }
#hapi-contact-form select { cursor: pointer !important; }
#hapi-contact-form .project-type-btn,
#hapi-contact-form .budget-option { cursor: pointer !important; pointer-events: auto !important; position: relative !important; z-index: 1 !important; }
#hapi-contact-form .btn-submit { cursor: pointer !important; pointer-events: auto !important; }

/* Contact form — real form elements */
form.contact-form { margin: 0; padding: 0; }
form.contact-form .form-group { margin-bottom: 28px; }
form.contact-form .form-label { font-family: 'Space Grotesk', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--black); margin-bottom: 12px; display: block; }
form.contact-form .form-label span { color: var(--red); }
form.contact-form .project-types { display: flex; flex-wrap: wrap; gap: 8px; }
form.contact-form .budget-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
form.contact-form .budget-option { text-align: left; display: flex; flex-direction: column; }
form.contact-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
form.contact-form .form-submit { display: flex; align-items: center; justify-content: space-between; margin-top: 32px; }
/* Hide heading & subtitle when success message is shown */
.wp-block-group.contact-right:has(.contact-form-success) .form-title,
.wp-block-group.contact-right:has(.contact-form-success) .form-subtitle { display: none !important; }
.contact-form-success { text-align: center; padding: 80px 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 60vh; }
.contact-form-success .success-icon { font-size: 48px; color: var(--red); margin-bottom: 16px; }
.contact-form-success .success-title { font-family: 'Space Grotesk', sans-serif; font-size: clamp(22px, 2.8vw, 28px); font-weight: 700; color: var(--black); margin-bottom: 12px; }
.contact-form-success .success-text { font-size: 15px; color: var(--gray); font-weight: 300; line-height: 1.6; }
.contact-form-error { background: rgba(247,42,33,0.06); border: 1px solid rgba(247,42,33,0.2); border-radius: 10px; padding: 14px 20px; margin-bottom: 24px; }
.contact-form-error p { font-size: 13px; color: var(--red); font-weight: 500; margin: 0; }

/* ===========================
   SECTION UTILITIES
   =========================== */
.section-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 64px;
  gap: 40px;
}
/* section-tag base — consolidated into p.section-tag above */
.section-tag::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--red);
}
/* section-title base — consolidated into .wp-block-heading.section-title above */
.section-link {
  font-size: 14px;
  color: var(--black);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 500;
  opacity: 0.5;
  transition: opacity 0.2s;
  flex-shrink: 0;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
}
.section-link:hover { opacity: 1; color: var(--red); }

/* section-label / section-desc base — consolidated into p.section-label / p.section-desc above */

/* ===========================
   HOMEPAGE HERO
   =========================== */
.hero {
  min-height: calc(100vh - 60px);
  padding: 72px 48px 0;
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.hero-bg-word {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: clamp(120px, 18vw, 280px);
  color: var(--beige-dark);
  letter-spacing: -0.05em;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  user-select: none;
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
}
.hero-inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  padding: 120px 0 80px;
}
.has-neural-sphere .hero-inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
}
.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--beige);
  border: 1px solid var(--beige-dark);
  padding: 6px 14px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 40px;
  opacity: 0;
}
.hero-tag-dot {
  width: 6px; height: 6px;
  background: var(--red);
  border-radius: 50%;
  animation: pulse 2s infinite;
}
.hero-title {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: clamp(44px, 6.5vw, 96px);
  line-height: 1.1;
  letter-spacing: -0.03em;
  color: var(--black);
  margin-bottom: 32px;
}
.hero-title em {
  font-style: normal;
  color: var(--red);
  position: relative;
}
.hero-typewriter-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 48px;
  opacity: 0;
}
.hero-typewriter-label {
  font-size: 14px;
  color: var(--gray);
  font-weight: 300;
}
.hero-typewriter {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--red);
  letter-spacing: 0.02em;
  min-width: 220px;
}
.typewriter-cursor {
  display: inline-block;
  width: 2px; height: 16px;
  background: var(--red);
  margin-left: 2px;
  animation: blink 0.8s infinite;
  vertical-align: middle;
}
.hero-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  opacity: 0;
}
.hero-desc {
  max-width: 520px;
  font-size: clamp(18px, 1.4vw, 22px);
  line-height: 1.65;
  color: var(--gray);
  font-weight: 700;
}
.hero-actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
}

/* HERO SCROLL INDICATOR */
.hero-scroll {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  opacity: 0;
}
.hero-scroll span {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray);
  writing-mode: horizontal-tb;
}
.scroll-line {
  width: 1px;
  height: 40px;
  background: linear-gradient(to bottom, var(--gray-light), transparent);
  animation: scrollDown 1.5s ease-in-out infinite;
}

/* ===========================
   MARQUEE
   =========================== */
.marquee-section {
  background: var(--black);
  padding: 18px 0;
  overflow: hidden;
  position: relative;
}
.marquee-track {
  display: flex;
  gap: 0;
  animation: marquee 40s linear infinite;
  white-space: nowrap;
}
.marquee-item {
  display: inline-flex;
  align-items: center;
  gap: 24px;
  padding: 0 32px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: none;
  color: rgba(255,255,255,0.4);
  flex-shrink: 0;
}
.marquee-sep {
  color: var(--red);
  font-size: 18px;
}

/* ===========================
   STATS
   =========================== */
.stats-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
}
.stats-inner,
.stats-inner.is-layout-flow {
  max-width: 1200px;
  margin: 0 auto;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 2px;
  background: var(--beige-dark);
}
.stat-item {
  background: var(--white);
  padding: 32px 24px;
  position: relative;
  overflow: hidden;
  transition: background 0.3s;
}
.stat-item::before { display: none; }
.stat-number {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--black);
  margin-bottom: 8px;
  display: flex;
  align-items: baseline;
  gap: 4px;
}
.stat-suffix {
  font-size: 28px;
  color: var(--red);
}
.stat-label {
  font-size: 13px;
  color: var(--gray);
  font-weight: 400;
  letter-spacing: 0.02em;
}

/* ===========================
   HOMEPAGE EXPERTISES (cards)
   =========================== */
.expertises-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.expertises-inner { max-width: 1200px; margin: 0 auto; }
.expertises-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--beige-dark);
}
.expertise-card {
  background: var(--beige);
  padding: 44px 40px;
  cursor: default;
  transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94), background 0.3s, box-shadow 0.3s;
  position: relative;
  overflow: hidden;
}
.expertise-card:hover { background: var(--white); transform: scale(1.04); box-shadow: 0 12px 40px rgba(0,0,0,0.08); z-index: 2; }
.expertise-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 48px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--red);
  margin-bottom: 16px;
  opacity: 0.15;
  line-height: 1;
}
.expertise-icon {
  font-size: 28px;
  margin-bottom: 20px;
  display: block;
}
.expertise-title {
  font-family: 'Playfair Display', serif;
  font-size: 23px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 14px;
  line-height: 1.25;
}
.expertise-desc {
  font-size: 15px;
  color: var(--gray);
  line-height: 1.6;
  font-weight: 300;
}
/* expertise-arrow removed */

/* ===========================
   HOMEPAGE REALISATIONS (cards)
   =========================== */
.realisations-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.realisations-inner { max-width: 1200px; margin: 0 auto; }
.realisations-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  grid-template-rows: auto auto;
  gap: 16px;
}
.realisation-card {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: var(--beige);
  cursor: pointer;
  group: true;
}
.realisation-card.large { grid-row: 1 / 3; min-height: 580px; }
.realisation-card.small { min-height: 272px; }
.realisation-img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  position: absolute;
  inset: 0;
}
.realisation-card:hover .realisation-img { transform: scale(1.04); }
.realisation-overlay {
  position: absolute; inset: 0;
  background: rgba(247,42,33,0.72);
  z-index: 1; opacity: 0;
  transition: opacity 0.35s ease;
}
.realisation-card:hover .realisation-overlay { opacity: 1; }
.realisation-info {
  position: absolute;
  inset: 0;
  padding: 24px 28px;
  background: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  transform: translateY(10px);
  opacity: 0;
  transition: opacity 0.35s ease, transform 0.35s ease;
  z-index: 2;
}
.realisation-card:hover .realisation-info {
  transform: translateY(0);
  opacity: 1;
}
.realisation-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,0.85);
  margin: 4px 0 0 0;
  font-weight: 300;
}
.realisation-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
/* realisation-tag base — consolidated into .realisation-tag above */
.realisation-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(18px, 1.6vw, 24px);
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.02em;
}
.realisation-placeholder {
  width: 100%; height: 100%;
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.realisation-placeholder-icon {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(48px, 8vw, 96px);
  font-weight: 800;
  color: var(--beige-dark);
  letter-spacing: -0.05em;
  user-select: none;
}

/* ===========================
   HOMEPAGE VISION (dark section)
   =========================== */
.vision-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--black);
  overflow: hidden;
  position: relative;
}
.vision-grid-bg {
  display: none;
}
.vision-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
/* vision-label base — consolidated into p.vision-label above */
.vision-label::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--red);
}
/* vision-title base — consolidated into .wp-block-heading.vision-title above */
.vision-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  margin-top: 80px;
  align-items: start;
}
.vision-text {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(250,250,249,0.55);
  font-weight: 300;
}
.vision-text strong {
  color: var(--white);
  font-weight: 500;
}
.vision-features {
  display: flex;
  flex-direction: column;
  gap: 0;
  border-left: none;
  padding-left: 0;
  margin-top: 24px;
  position: relative;
}
.vision-features::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 2px;
  background: var(--red);
  height: calc(100% - 80px);
}
.vision-feature {
  padding: 16px 0 16px 24px;
  background: transparent;
  border: none;
  border-radius: 0;
  cursor: default;
  position: relative;
}
.vision-feature:hover {
  background: transparent;
}
.vision-feature-symbiose {
  margin-top: 40px;
  padding: 20px 24px;
  background: rgba(247, 42, 33, 0.06);
  border: 1px solid rgba(247, 42, 33, 0.2);
  border-radius: 10px;
}
.vision-feature-symbiose:hover {
  background: rgba(247, 42, 33, 0.1);
  border-color: rgba(247, 42, 33, 0.35);
}
.vision-feature-title {
  font-family: 'DM Sans', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--white);
  margin-bottom: 6px;
  display: block;
}
.vision-feature-title::before {
  content: '';
  width: 10px; height: 10px;
  background: var(--red);
  border-radius: 50%;
  flex-shrink: 0;
  position: absolute;
  left: -6px;
  top: 22px;
}
.vision-feature-symbiose .vision-feature-title::before {
  position: relative;
  left: auto;
  top: auto;
  width: 8px;
  height: 8px;
  display: inline-block;
  vertical-align: middle;
  margin-right: 8px;
}
.vision-feature-desc {
  font-size: 13px;
  color: rgba(250,250,249,0.4);
  line-height: 1.5;
  padding-left: 0;
}

/* ===========================
   HOMEPAGE ASSOCIES (cards)
   =========================== */
.associes-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
}
.associes-inner { max-width: 1200px; margin: 0 auto; }
.associes-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 64px;
}
.associe-card {
  background: var(--white);
  padding: 48px;
  border-radius: 12px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 32px;
  align-items: start;
  transition: transform 0.3s;
}
.associe-card:hover { transform: translateY(-4px); }
.associe-avatar {
  width: 80px; height: 80px;
  border-radius: 50%;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 28px;
  font-weight: 800;
  color: var(--red);
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.associe-avatar::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 2px solid var(--red);
  border-radius: 50%;
  opacity: 0.3;
}
.associe-name {
  font-family: 'Playfair Display', serif;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 4px;
}
.associe-role {
  font-size: 13px;
  color: var(--red);
  font-weight: 500;
  letter-spacing: 0.04em;
  margin-bottom: 16px;
}
.associe-bio {
  font-size: 15px;
  color: var(--gray);
  line-height: 1.65;
  font-weight: 300;
}

/* ===========================
   CTA SECTION (index / vision / domaines / realisations)
   =========================== */
.cta-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-section::before { content: none; }
.cta-inner {
  position: relative;
  z-index: 1;
  max-width: 800px;
  margin: 0 auto;
}
.cta-tag {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 24px;
  display: block;
}
.cta-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(36px, 5.5vw, 72px);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--black);
  margin-bottom: 24px;
}
.cta-title em {
  font-style: normal;
  color: var(--red);
}
.cta-sub {
  font-size: 17px;
  color: var(--gray);
  margin-bottom: 48px;
  font-weight: 300;
  line-height: 1.6;
}
.cta-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

/* CTA BG WORD (realisations) */
.cta-bg-word {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 30vw;
  color: var(--beige-dark);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
}

/* CTA BG (domaines) */
.cta-bg {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 28vw;
  color: var(--beige-dark);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
}

/* CTA BAND (expertises / realisation-single) */
.cta-band {
  background: var(--black);
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-band-bg {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 28vw;
  color: var(--beige-dark);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
}
.cta-band-inner {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}
.cta-band-text {
  font-family: 'Playfair Display', serif;
  font-size: clamp(22px, 3vw, 36px);
  font-weight: 600;
  color: var(--white);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.cta-band-text em { font-style: italic; color: var(--red); }

/* CTA INNER BAND (partenaires) */
.cta-inner-band {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

/* ===========================
   PAGE HERO (shared across pages)
   =========================== */
.page-hero {
  padding: 0 48px 0;
  min-height: 38vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  background: var(--beige);
}
.page-hero-grid {
  display: none;
}
.page-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  padding: 100px 0 80px;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
}
.page-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 28px;
}
.page-breadcrumb::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--red);
}
.page-hero-title {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: clamp(36px, 4.5vw, 64px);
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--black);
}
.page-hero-title em {
  font-style: normal;
  color: var(--red);
}
.page-hero-right {
  padding-bottom: 8px;
}
.page-hero-desc {
  font-size: 16px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 40px;
}
.page-hero-desc strong {
  color: var(--black);
  font-weight: 500;
}
.page-hero-date {
  font-size: 13px;
  color: var(--gray);
  font-weight: 300;
}

/* ===========================
   PAGE HERO — WordPress overrides
   =========================== */
.wp-block-group.page-hero,
.wp-block-group.page-hero.is-layout-flow {
  padding: 0 clamp(20px, 4vw, 48px) 0 !important;
  min-height: 38vh !important;
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  overflow: hidden !important;
  background: var(--beige) !important;
}
.wp-block-group.page-hero-inner,
.wp-block-group.page-hero-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  width: 100% !important;
  padding: 160px 0 80px !important;
  position: relative !important;
  z-index: 1 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  align-items: end !important;
}
.wp-block-group.page-hero-left,
.wp-block-group.page-hero-left.is-layout-flow {
  display: block !important;
}
p.page-breadcrumb {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: #888 !important;
  margin-bottom: 28px !important;
}
p.page-breadcrumb::before {
  content: 'Accueil ›' !important;
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  background: none !important;
  color: #888 !important;
  font-weight: 500 !important;
}
h1.page-hero-title,
.wp-block-heading.page-hero-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(36px, 4.5vw, 64px) !important;
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  color: var(--black) !important;
}
.wp-block-heading.page-hero-title em {
  font-style: normal !important;
  color: var(--red) !important;
}
.wp-block-group.page-hero-right,
.wp-block-group.page-hero-right.is-layout-flow {
  padding-bottom: 0 !important;
  display: block !important;
}
p.page-hero-desc {
  font-size: 16px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 24px !important;
}
.wp-block-group.page-hero-right > *:last-child {
  margin-bottom: 0 !important;
}
p.page-hero-desc strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}

/* Hero stats (partenaires page) */
.wp-block-group.hero-stats.is-layout-flow,
.wp-block-group.hero-stats {
  display: flex !important;
  gap: 40px !important;
  margin-top: 40px !important;
  padding-top: 40px !important;
  border-top: 1px solid var(--beige-dark) !important;
}
.wp-block-group.hero-stat.is-layout-flow,
.wp-block-group.hero-stat {
  display: block !important;
}
p.hero-stat-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 36px !important;
  letter-spacing: -0.03em !important;
  color: var(--black) !important;
  line-height: 1 !important;
}
p.hero-stat-num mark.stat-suffix {
  display: inline !important;
  color: var(--red) !important;
  background: none !important;
  font-size: 0.6em !important;
}
p.hero-stat-label {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-top: 4px !important;
}

/* Services switch buttons (expertises/domaines) */
.wp-block-group.services-switch,
.wp-block-group.services-switch.is-layout-flex {
  display: inline-flex !important;
  background: var(--beige-dark) !important;
  border-radius: 100px !important;
  padding: 4px !important;
  gap: 2px !important;
}
p.services-switch-btn {
  margin: 0 !important;
}
p.services-switch-btn a {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.05em !important;
  padding: 8px 20px !important;
  border-radius: 8px !important;
  text-decoration: none !important;
  color: var(--gray) !important;
  transition: all 0.2s !important;
  display: block !important;
}
p.services-switch-btn.active a {
  background: var(--white) !important;
  color: var(--black) !important;
  box-shadow: 0 2px 8px rgba(13,13,13,0.08) !important;
}

/* Page hero counter (realisations) */
p.page-hero-counter {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
p.page-hero-counter strong {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: var(--black) !important;
  margin-right: 4px !important;
}

/* Hero scroll indicator (vision page) */
.hero-scroll-indicator {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray-light);
}
.hero-scroll-line {
  width: 40px; height: 1px;
  background: var(--beige-dark);
}

/* Hero count (realisations page) */
.hero-count {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray);
  letter-spacing: 0.04em;
}
.hero-count-num {
  font-size: 32px;
  font-weight: 800;
  color: var(--black);
  letter-spacing: -0.03em;
  line-height: 1;
}

/* Hero stats (partenaires page) */
.hero-stats {
  display: flex;
  gap: 40px;
  margin-top: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--beige-dark);
}
.hero-stat-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 36px;
  letter-spacing: -0.03em;
  color: var(--black);
  line-height: 1;
}
.hero-stat-num span { color: var(--red); }
.hero-stat-label {
  font-size: 13px;
  color: var(--gray);
  font-weight: 300;
  margin-top: 4px;
}

/* Services switch (expertises / domaines) */
.services-switch {
  display: inline-flex;
  background: var(--beige-dark);
  border-radius: 100px;
  padding: 4px;
  gap: 2px;
}
.services-switch a {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  padding: 8px 20px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--gray);
  transition: all 0.2s;
}
.services-switch a.active {
  background: var(--white);
  color: var(--black);
  box-shadow: 0 2px 8px rgba(13,13,13,0.08);
}

/* ===========================
   VISION PAGE — pourquoi
   =========================== */
.pourquoi-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.pourquoi-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 100px;
  align-items: start;
}
.pourquoi-statement {
  font-family: 'Playfair Display', serif;
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 600;
  line-height: 1.4;
  color: var(--black);
  margin-top: 32px;
  letter-spacing: -0.01em;
}
.pourquoi-statement em {
  font-style: italic;
  color: var(--red);
}
.pourquoi-right {
  padding-top: 8px;
}
.pourquoi-blocks {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.pourquoi-block {
  padding: 32px 36px;
  background: var(--beige);
  border-left: 3px solid transparent;
  transition: border-color 0.3s, background 0.3s;
  cursor: default;
}
.pourquoi-block:hover {
  border-left-color: var(--red);
  background: var(--beige-dark);
}
.pourquoi-block-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--red);
  opacity: 0.5;
  margin-bottom: 10px;
}
.pourquoi-block-title {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.pourquoi-block-text {
  font-size: 15px;
  color: var(--gray);
  line-height: 1.65;
  font-weight: 300;
}

/* ===========================
   VISION PAGE — vision IA
   =========================== */
.vision-ia-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
  overflow: hidden;
  position: relative;
}
.vision-ia-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.vision-ia-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 80px;
}
.vision-ia-claim {
  font-size: 16px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
  padding-top: 8px;
}
.vision-ia-claim strong {
  color: var(--black);
  font-weight: 500;
}
.vision-ia-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--beige-dark);
}
.vision-ia-card {
  background: var(--beige);
  padding: 40px 32px;
  transition: background 0.3s;
  position: relative;
  overflow: hidden;
}
.vision-ia-card:hover { background: var(--white); }
.vision-ia-card-icon {
  font-size: 32px;
  margin-bottom: 20px;
  display: block;
}
.vision-ia-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.vision-ia-card-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.6;
  font-weight: 300;
}
.vision-ia-card-line {
  position: absolute;
  bottom: 0; left: 0;
  width: 0; height: 2px;
  background: var(--red);
  transition: width 0.4s;
}
.vision-ia-card:hover .vision-ia-card-line { width: 100%; }

/* ===========================
   VISION PAGE — differenciateurs
   =========================== */
.diff-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
  position: relative;
  overflow: hidden;
}
.diff-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(247,42,33,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(247,42,33,0.06) 1px, transparent 1px);
  background-size: 80px 80px;
}
.diff-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
.diff-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.diff-label::before {
  content: '';
  display: inline-block;
  width: 20px; height: 1px;
  background: var(--red);
}
.diff-title {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(32px, 4vw, 54px);
  letter-spacing: -0.01em;
  line-height: 1.12;
  color: var(--black);
  margin-bottom: 64px;
  max-width: 500px;
}
.diff-title em { font-style: italic; color: var(--red); }
.diff-list {
  display: grid;
  grid-auto-rows: 1fr;
  gap: 0;
  border-top: 1px solid var(--beige-dark);
}
.diff-item {
  display: grid;
  grid-template-columns: 40px 1fr 1fr;
  gap: 20px;
  align-items: start;
  padding: 40px 0;
  border-bottom: 1px solid var(--beige-dark);
  transition: background 0.3s;
  cursor: default;
  min-height: 120px;
}
.diff-item:hover { background: rgba(255,255,255,0.6); }
.diff-item-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--red);
  opacity: 0.5;
  padding-top: 2px;
}
.diff-item-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 600;
  color: var(--black);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.diff-item-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.7;
  font-weight: 300;
}

/* ===========================
   VISION PAGE — methodo
   =========================== */
.methodo-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.methodo-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.methodo-header {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
  margin-bottom: 80px;
}
.methodo-intro {
  font-size: 16px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
}
.methodo-steps {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  position: relative;
}
.methodo-steps::before {
  content: '';
  position: absolute;
  top: 32px;
  left: 10%;
  width: 80%;
  height: 1px;
  background: var(--beige-dark);
  z-index: 0;
}
.methodo-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 16px;
  position: relative;
  z-index: 1;
}
.methodo-step-dot {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--beige);
  border: 2px solid var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-bottom: 20px;
  transition: background 0.3s, border-color 0.3s, color 0.3s;
  cursor: default;
  color: var(--red);
}
.methodo-step-dot svg { width: 24px; height: 24px; transition: transform 0.3s ease; }
.methodo-step:hover .methodo-step-dot {
  background: var(--red);
  border-color: var(--red);
  color: var(--white);
}
.methodo-step:hover .methodo-step-dot svg { transform: scale(1.1); }
.methodo-step-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--red);
  margin-bottom: 8px;
  opacity: 0.6;
}
.methodo-step-title {
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.methodo-step-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.55;
  font-weight: 300;
}

/* ===========================
   LAB PAGE — all visual styles
   =========================== */
/* Concept — uses intervention-card classes */
/* Lab Équipe — 3-column role cards */
p.lab-role-icon { margin-bottom: 20px; color: var(--red); }
p.lab-role-icon svg { width: 28px; height: 28px; }
.lab-role-title { font-family: 'Playfair Display', serif; font-size: clamp(20px, 2vw, 24px); font-weight: 600; color: var(--black); letter-spacing: -0.01em; margin-bottom: 8px; }
p.lab-role-subtitle { font-family: 'Space Grotesk', sans-serif; font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; color: var(--red); margin-bottom: 16px; }
p.lab-role-text { font-size: 14px; line-height: 1.7; color: var(--gray); font-weight: 300; }
/* Lab champ d'action — card carousel */
.wp-block-group.lab-champ-section,
.wp-block-group.lab-champ-section.is-layout-flow {
  display: block !important;
  padding: var(--section-pad-y-desktop) 0 !important;
  background: var(--white) !important;
  overflow: hidden !important;
}
.wp-block-group.lab-champ-inner,
.wp-block-group.lab-champ-inner.is-layout-flow {
  max-width: 1200px !important; margin: 0 auto !important; padding: 0 var(--section-pad-x-desktop) !important; display: block !important;
}
p.lab-champ-eyebrow {
  font-family: 'Space Grotesk', sans-serif; font-size: 12px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); margin-bottom: 12px;
  display: flex; align-items: center; gap: 8px;
}
p.lab-champ-eyebrow::before {
  content: ''; display: inline-block; width: 20px; height: 1px; background: var(--red);
}
.lab-champ-heading {
  font-family: 'Playfair Display', serif; font-weight: 700; font-size: clamp(32px, 4vw, 48px);
  letter-spacing: -0.01em; line-height: 1.12; color: var(--black); margin-bottom: 40px;
}
.lab-champ-heading em { font-style: italic; color: var(--red); }
.lab-champ-section .wp-block-group.lab-champ-inner,
.lab-champ-section .wp-block-group.lab-champ-inner.is-layout-flow {
  padding-bottom: 56px !important;
}
.wp-block-group.lab-champ-carousel,
.wp-block-group.lab-champ-carousel.is-layout-flow {
  overflow: hidden !important;
  mask-image: linear-gradient(90deg, transparent, black 3%, black 97%, transparent) !important;
  -webkit-mask-image: linear-gradient(90deg, transparent, black 3%, black 97%, transparent) !important;
}
.wp-block-group.lab-champ-track,
.wp-block-group.lab-champ-track.is-layout-flow {
  display: flex !important; gap: 12px !important; width: max-content !important;
  animation: lab-champ-scroll 30s linear infinite !important;
}
@keyframes lab-champ-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
p.lab-champ-card {
  flex-shrink: 0; font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 500;
  color: var(--black); background: rgba(247, 42, 33, 0.06); padding: 12px 24px; border-radius: 10px;
  border: 1px solid rgba(247, 42, 33, 0.12); white-space: nowrap;
  transition: background 0.2s, border-color 0.2s;
}
p.lab-champ-card:hover { background: rgba(247, 42, 33, 0.12); border-color: var(--red); }
/* Sprint — now uses methodo-section/methodo-step directly, no lab-sprint-* needed */
/* Tarifs */
p.lab-tarif-badge { font-family: 'Space Grotesk', sans-serif; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: var(--white); background: var(--red); padding: 4px 12px; border-radius: 100px; margin-bottom: 16px; }
p.lab-tarif-name { font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gray); margin-bottom: 8px; }
.lab-tarif-price { font-family: 'Space Grotesk', sans-serif; font-size: clamp(32px, 3.5vw, 40px); font-weight: 700; color: var(--black); line-height: 1.1; }
p.lab-tarif-period { font-size: 14px; color: var(--gray); font-weight: 300; margin-bottom: 4px; }
p.lab-tarif-days { font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 500; color: var(--black); margin-bottom: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--beige-dark); }
p.lab-tarif-feature { font-size: 14px; color: var(--gray); padding: 6px 0 6px 20px; position: relative; line-height: 1.55; font-weight: 300; }
p.lab-tarif-feature::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
p.lab-tarif-ideal { font-size: 13px; font-weight: 500; color: var(--gray); margin-bottom: 24px; }
.lab-tarif-cta .wp-block-button__link { width: 100%; text-align: center; justify-content: center; }
p.lab-tarifs-options { text-align: center; font-size: 14px; color: var(--gray); margin-top: 40px; font-weight: 300; }
/* Breadcrumb link */
p.page-breadcrumb a { color: var(--gray); text-decoration: none; transition: color 0.2s; }
p.page-breadcrumb a:hover { color: var(--red); }

/* Agence page — alternating backgrounds: white / beige / white / beige */
body.page-id-14 section.wp-block-group.expertises-section,
body.page-id-14 div.wp-block-group.expertises-section,
body.page-id-14 section.wp-block-group.expertises-section.is-layout-flow,
body.page-id-14 div.wp-block-group.expertises-section.is-layout-flow { background: var(--beige) !important; }
/* Agence: expertises all open, toggle hidden */
body.page-id-14 .wp-block-group.expertise-detail,
body.page-id-14 .wp-block-group.expertise-detail.is-layout-flow {
  max-height: 600px !important;
}
body.page-id-14 p.expertise-toggle { display: none !important; }
body.page-id-14 p.expertise-feature { background: var(--white) !important; }
body.page-id-14 p.expertise-feature-desc { background: var(--white) !important; }
/* Feature descriptions deploy on hover (desktop only) */
@media (hover: hover) {
  body.page-id-14 p.expertise-feature:hover + p.expertise-feature-desc,
  body.page-id-14 p.expertise-feature-desc:hover {
    max-height: 200px !important; padding: 0 16px 14px 16px !important;
  }
}
body.page-id-14 .wp-block-group.cta-section,
body.page-id-14 .wp-block-group.cta-section.is-layout-flow { background: var(--beige) !important; }

/* ===========================
   HOME — Piliers diptyque
   =========================== */
.wp-block-group.home-piliers-section, .wp-block-group.home-piliers-section.is-layout-flow {
  display: block !important; padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important; background: var(--white) !important;
}
.wp-block-group.home-piliers-inner, .wp-block-group.home-piliers-inner.is-layout-flow {
  max-width: 1200px !important; margin: 0 auto !important; display: block !important;
}
.wp-block-group.home-piliers-header, .wp-block-group.home-piliers-header.is-layout-flow {
  display: block !important; margin-bottom: 48px !important;
}
.wp-block-group.home-piliers-grid, .wp-block-group.home-piliers-grid.is-layout-flow {
  display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 24px !important;
}
/* Cards — asymmetric hover with overlap */
.wp-block-group.home-pilier-card, .wp-block-group.home-pilier-card.is-layout-flow {
  display: block !important; padding: 48px 40px !important; border-radius: 20px !important;
  background: var(--white) !important; border: 1px solid var(--beige-dark) !important;
  transition: transform 0.5s cubic-bezier(0.25,0.46,0.45,0.94), box-shadow 0.5s, background 0.4s, border-color 0.4s, opacity 0.4s !important;
  position: relative !important; z-index: 1 !important;
}
/* Hover: only on devices with a pointer (not touch) */
@media (hover: hover) {
  .wp-block-group.home-pilier-card:hover {
    background: rgba(247, 42, 33, 0.04) !important;
    border-color: var(--red) !important;
    box-shadow: 0 32px 80px rgba(247,42,33,0.15) !important;
    z-index: 3 !important;
  }
  .wp-block-group.home-pilier-card--agence:hover {
    transform: scale(1.06) translateX(24px) !important;
  }
  .wp-block-group.home-pilier-card--lab:hover {
    transform: scale(1.06) translateX(-24px) !important;
  }
  .home-piliers-grid .wp-block-group.home-pilier-card--agence:hover ~ .wp-block-group.home-pilier-card--lab {
    transform: scale(0.94) translateX(12px) !important; opacity: 0.5 !important;
  }
  .home-piliers-grid .wp-block-group.home-pilier-card--lab:hover,
  .home-piliers-grid:has(.home-pilier-card--lab:hover) .wp-block-group.home-pilier-card--agence {
    opacity: 0.5 !important; transform: scale(0.94) translateX(-12px) !important;
  }
  .home-piliers-grid .wp-block-group.home-pilier-card--lab:hover {
    opacity: 1 !important; transform: scale(1.06) translateX(-24px) !important;
  }
}
/* Typography */
.home-pilier-title { font-family: 'Playfair Display', serif; font-size: clamp(24px, 2.5vw, 32px); font-weight: 700; color: var(--black); letter-spacing: -0.01em; line-height: 1.15; margin-bottom: 20px; }
.home-pilier-title .home-pilier-accent { color: var(--red); }
p.home-pilier-text { font-size: 15px; line-height: 1.7; color: var(--gray); font-weight: 300; margin-bottom: 24px; }
/* Intro text under section header */
p.home-piliers-intro { font-size: 17px; line-height: 1.7; color: var(--gray); font-weight: 300; margin-top: 0; max-width: 100%; }
/* Carousel dots — hidden on desktop */
.home-piliers-dots { display: none; }
/* Make entire card clickable */
.wp-block-group.home-pilier-card { cursor: pointer !important; }
p.home-pilier-link { margin-top: auto; }
p.home-pilier-link a { pointer-events: all; }
/* Categories — hidden, reveal on hover */
.wp-block-group.home-pilier-categories, .wp-block-group.home-pilier-categories.is-layout-flow {
  max-height: 0 !important; overflow: hidden !important; opacity: 0 !important;
  transition: max-height 0.5s ease, opacity 0.4s, margin 0.3s !important; margin: 0 !important;
}
@media (hover: hover) {
  .wp-block-group.home-pilier-card:hover .wp-block-group.home-pilier-categories {
    max-height: 500px !important; opacity: 1 !important; margin-top: 16px !important; margin-bottom: 16px !important;
  }
}
.wp-block-group.home-pilier-cat, .wp-block-group.home-pilier-cat.is-layout-flow { display: block !important; margin-bottom: 12px !important; }
p.home-pilier-cat-label { font-family: 'Space Grotesk', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gray); margin-bottom: 8px; }
.wp-block-group.home-pilier-cat-tags, .wp-block-group.home-pilier-cat-tags.is-layout-flex {
  display: flex !important; flex-wrap: wrap !important; gap: 6px !important;
}
p.home-pilier-tag { font-family: 'Space Grotesk', sans-serif; font-size: 12px; font-weight: 500; color: var(--black); background: rgba(247,42,33,0.06); padding: 6px 14px; border-radius: 100px; border: 1px solid rgba(247,42,33,0.12); white-space: nowrap; flex-shrink: 0; }
/* Link */
p.home-pilier-link a { font-family: 'DM Sans', sans-serif; font-size: 14px; font-weight: 500; color: var(--black); text-decoration: none; transition: color 0.2s; }
p.home-pilier-link a:hover { color: var(--red); }

/* Hide "ensemble" section + Thomas block on À propos */
.page-id-12 .wp-block-group.ensemble-section,
.page-id-767 .wp-block-group.ensemble-section { display: none !important; }
.page-id-12 .wp-block-group.associe-block.reverse,
.page-id-767 .wp-block-group.associe-block.reverse { display: none !important; }
.page-id-12 .wp-block-group.cta-section,
.page-id-12 .wp-block-group.cta-section.is-layout-flow,
.page-id-767 .wp-block-group.cta-section,
.page-id-767 .wp-block-group.cta-section.is-layout-flow { background: var(--beige) !important; }

/* ===========================
   VISION PAGE — valeurs
   =========================== */
.valeurs-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
}
.valeurs-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.valeurs-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 40px;
}
.valeur-card {
  background: var(--white);
  padding: 28px 28px;
  border-radius: 10px;
  transition: transform 0.3s;
  cursor: default;
}
.valeur-card:hover { transform: translateY(-4px); }
.valeur-icon {
  width: 40px; height: 40px;
  background: var(--beige);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 16px;
  color: var(--red);
  transition: background 0.3s, color 0.3s;
}
.valeur-icon svg { width: 20px; height: 20px; transition: transform 0.3s ease; }
.valeur-card:hover .valeur-icon { background: var(--red); color: var(--white); }
.valeur-card:hover .valeur-icon svg { transform: scale(1.1); }
.valeur-title {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}
.valeur-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.65;
  font-weight: 300;
}

/* ===========================
   EXPERTISES PAGE — accordion
   =========================== */
.expertise-list {
  border-top: 1px solid var(--beige-dark);
}
.expertise-item {
  border-bottom: 1px solid var(--beige-dark);
  overflow: hidden;
}
.expertise-header {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 36px 0;
  cursor: pointer;
  transition: padding 0.3s;
  user-select: none;
}
.expertise-item.open .expertise-header {
  padding-bottom: 24px;
}
.expertise-header:hover .expertise-title-text { color: var(--red); }
.expertise-item.open .expertise-num,
.expertise-header:hover .expertise-num { opacity: 1; }

.expertise-header-center {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.expertise-title-text {
  font-family: 'Playfair Display', serif;
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 600;
  color: var(--black);
  letter-spacing: -0.01em;
  line-height: 1.2;
  transition: color 0.2s;
}
.expertise-subtitle {
  font-size: 13px;
  color: var(--gray);
  font-weight: 300;
}

.expertise-header-right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.expertise-item.open .expertise-icon,
.expertise-header:hover .expertise-icon { opacity: 1; }

.expertise-toggle {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--beige);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s, transform 0.3s;
}
.expertise-item.open .expertise-toggle {
  background: var(--red);
  transform: rotate(45deg);
}
.expertise-item.open .expertise-toggle svg path { stroke: white; }

.expertise-detail {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.expertise-item.open .expertise-detail {
  max-height: 600px;
}
.expertise-detail-inner {
  padding: 0 0 48px 96px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: start;
}
.expertise-detail-text {
  font-size: 16px;
  line-height: 1.75;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 24px;
}
.expertise-detail-text strong { color: var(--black); font-weight: 700; }
.expertise-detail-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--red);
  text-decoration: none;
  text-transform: uppercase;
  transition: gap 0.2s;
}
.expertise-detail-link:hover { gap: 12px; }

.expertise-detail-features {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.expertise-feature {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--beige);
  border-radius: 6px;
  font-size: 14px;
  color: var(--gray);
  font-weight: 300;
  line-height: 1.4;
}
.expertise-feature::before {
  content: '\2726';
  color: var(--red);
  font-size: 10px;
  flex-shrink: 0;
  margin-top: 2px;
  opacity: 0.6;
}

/* ===========================
   DOMAINES PAGE
   =========================== */
.domaines-section,
.wp-block-group.domaines-section,
.wp-block-group.domaines-section.is-layout-flow {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.domaine-block,
.wp-block-group.domaine-block,
.wp-block-group.domaine-block.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  min-height: 320px !important;
  position: relative !important;
  overflow: hidden !important;
  align-items: stretch !important;
  border-radius: 20px !important;
}
.domaine-block:nth-child(even) { direction: rtl; }
.domaine-block:nth-child(even) > * { direction: ltr; }

.domaine-visual,
.wp-block-group.domaine-visual,
.wp-block-group.domaine-visual.is-layout-flow {
  background: var(--beige) !important;
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  min-height: 320px !important;
}
.domaine-block:nth-child(1) .domaine-visual { background: #F3EFEA; }
.domaine-block:nth-child(2) .domaine-visual { background: #EFEBE5; }
.domaine-block:nth-child(3) .domaine-visual { background: #F5F1EC; }
.domaine-block:nth-child(4) .domaine-visual { background: #EDE9E3; }

.domaine-visual-num {
  display: none;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: clamp(100px, 16vw, 200px);
  color: rgba(13,13,13,0.06);
  letter-spacing: -0.05em;
  user-select: none;
  line-height: 1;
}
.domaine-visual-icon {
  position: absolute;
  font-size: 64px;
  bottom: 40px;
  left: 40px;
}
.domaine-visual-tag {
  position: absolute;
  top: 32px; right: 32px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  background: rgba(247,42,33,0.1);
  padding: 6px 14px;
  border-radius: 100px;
}

.domaine-content,
.wp-block-group.domaine-content,
.wp-block-group.domaine-content.is-layout-flow {
  padding: 48px 48px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: var(--white) !important;
  position: relative !important;
}
.domaine-block:nth-child(even) .domaine-content { background: var(--beige); }

.domaine-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  opacity: 0.5;
  margin-bottom: 20px;
}
.domaine-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--black);
  margin-bottom: 20px;
}
.domaine-title em { font-style: italic; color: var(--red); }
.domaine-desc {
  font-size: 16px;
  line-height: 1.75;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 36px;
}
.domaine-desc strong { color: var(--black); font-weight: 500; }

.domaine-features {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 40px;
}
.domaine-feature {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--gray);
  font-weight: 300;
}
.domaine-feature::before {
  content: '';
  width: 6px; height: 6px;
  background: var(--red);
  border-radius: 50%;
  flex-shrink: 0;
  opacity: 0.6;
}

.domaine-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--black);
  text-decoration: none;
  border-bottom: 1px solid var(--beige-dark);
  padding-bottom: 4px;
  transition: color 0.2s, border-color 0.2s, gap 0.2s;
  width: fit-content;
}
.domaine-link:hover { color: var(--red); border-color: var(--red); gap: 14px; }

.domaine-stats {
  display: flex;
  gap: 32px;
  margin-bottom: 36px;
  padding: 24px 0;
  border-top: 1px solid var(--beige-dark);
  border-bottom: 1px solid var(--beige-dark);
}
.domaine-stat-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -0.03em;
  color: var(--black);
  display: flex;
  align-items: baseline;
  gap: 2px;
  line-height: 1;
  margin-bottom: 4px;
}
.domaine-stat-suffix { font-size: 16px; color: var(--red); }
.domaine-stat-label {
  font-size: 12px;
  color: var(--gray);
  font-weight: 300;
}

/* ===========================
   REALISATIONS PAGE — portfolio grid
   =========================== */
/* ===========================
   RÉALISATIONS PAGE — WordPress overrides
   =========================== */
.wp-block-group.filters-section.is-layout-flow,
.wp-block-group.filters-section {
  padding: 20px var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
  border-bottom: 1px solid var(--beige-dark) !important;
  position: static !important;
}
.wp-block-group.filters-inner.is-layout-flow,
.wp-block-group.filters-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
}
.wp-block-group.portfolio-section.is-layout-flow,
section.wp-block-group.portfolio-section,
.wp-block-group.portfolio-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  background: var(--white) !important;
}
.wp-block-group.portfolio-inner.is-layout-flow,
.wp-block-group.portfolio-inner {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
/* Portfolio grid — 12-column magazine layout */
.wp-block-group.portfolio-grid.is-layout-flow,
.wp-block-group.portfolio-grid {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  grid-auto-rows: 60px !important;
  gap: 16px !important;
}
.wp-block-group.proj-card {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 12px !important;
  background: var(--beige) !important;
  cursor: pointer !important;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.wp-block-group.proj-card:hover { transform: translateY(-4px) !important; }
/* Grid placement — magazine layout */
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(1) { grid-column: 1 / 8 !important; grid-row: 1 / 9 !important; }
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(2) { grid-column: 8 / 13 !important; grid-row: 1 / 6 !important; }
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(3) { grid-column: 8 / 13 !important; grid-row: 6 / 9 !important; }
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(4) { grid-column: 1 / 5 !important; grid-row: 9 / 14 !important; }
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(5) { grid-column: 5 / 10 !important; grid-row: 9 / 14 !important; }
.wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(6) { grid-column: 10 / 13 !important; grid-row: 9 / 14 !important; }
.wp-block-group.proj-visual.is-layout-flow,
.wp-block-group.proj-visual {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}
.wp-block-group.proj-overlay.is-layout-flow,
.wp-block-group.proj-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(247,42,33,0.72) !important;
  z-index: 1 !important;
  opacity: 0 !important;
  transition: opacity 0.35s ease !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
}
.wp-block-group.proj-card:hover .wp-block-group.proj-overlay.is-layout-flow,
.wp-block-group.proj-card:hover .wp-block-group.proj-overlay {
  opacity: 1 !important;
}
/* Proj card with image */
.wp-block-group.proj-visual .wp-block-image.proj-visual-img,
.wp-block-group.proj-visual .wp-block-image.proj-visual-img img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  margin: 0 !important;
  padding: 0 !important;
}
.wp-block-group.proj-visual .wp-block-image.proj-visual-img { overflow: hidden !important; }
/* Proj card clickable link overlay */
.wp-block-group.proj-card p.proj-card-link { position: absolute !important; inset: 0 !important; z-index: 5 !important; margin: 0 !important; }
.wp-block-group.proj-card p.proj-card-link a {
  position: absolute !important;
  inset: 0 !important;
  font-size: 0 !important;
  color: transparent !important;
  text-decoration: none !important;
  z-index: 5 !important;
}
/* Delivery badge on proj cards */
.proj-card p.delivery-badge,
.proj-card .delivery-badge {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  background: rgba(13,13,13,0.55) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  padding: 5px 14px !important;
  border-radius: 100px !important;
  z-index: 3 !important;
  margin: 0 !important;
  pointer-events: none !important;
}
/* Proj label (always visible, hides on hover) */
.wp-block-group.proj-card p.proj-label {
  position: absolute !important;
  top: 20px !important;
  left: 20px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  background: rgba(250,250,249,0.85) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  padding: 5px 12px !important;
  border-radius: 100px !important;
  transition: opacity 0.3s !important;
  z-index: 3 !important;
}
.wp-block-group.proj-card:hover p.proj-label { opacity: 0 !important; }

.wp-block-group.proj-info.is-layout-flow,
.wp-block-group.proj-info {
  position: absolute !important;
  inset: 0 !important;
  padding: 24px 28px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  transform: translateY(10px) !important;
  opacity: 0 !important;
  transition: opacity 0.35s ease, transform 0.35s ease !important;
  z-index: 2 !important;
  background: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.wp-block-group.proj-card:hover .wp-block-group.proj-info {
  transform: translateY(0) !important;
  opacity: 1 !important;
}
/* Description text on proj overlay */
.wp-block-group.proj-info .proj-desc,
p.proj-desc {
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
  color: rgba(255,255,255,0.85) !important;
  margin: 4px 0 0 0 !important;
  font-weight: 300 !important;
}
.wp-block-group.proj-tags.is-layout-flow,
.wp-block-group.proj-tags {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  margin-bottom: 10px !important;
}
.wp-block-group.proj-meta.is-layout-flow,
.wp-block-group.proj-meta {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
}
.wp-block-group.proj-card p.proj-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: var(--white) !important;
  background: rgba(255,255,255,0.2) !important;
  padding: 3px 10px !important;
  border-radius: 100px !important;
}
.wp-block-group.proj-card p.proj-title {
  font-family: 'Playfair Display', serif !important;
  font-size: clamp(16px, 2vw, 22px) !important;
  font-weight: 600 !important;
  color: var(--white) !important;
  letter-spacing: -0.01em !important;
  margin-bottom: 8px !important;
  line-height: 1.2 !important;
}
.wp-block-group.proj-card p.proj-sector {
  font-size: 12px !important;
  color: rgba(255,255,255,0.7) !important;
  font-weight: 300 !important;
}
.wp-block-group.proj-card p.proj-year {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: rgba(255,255,255,0.7) !important;
  letter-spacing: 0.06em !important;
}
/* Visual number placeholder */
.wp-block-group.proj-card p.proj-visual-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(48px, 8vw, 96px) !important;
  color: var(--beige-dark) !important;
  letter-spacing: -0.05em !important;
  user-select: none !important;
  transition: color 0.3s !important;
}
.wp-block-group.proj-card:hover p.proj-visual-num { color: rgba(247,42,33,0.15) !important; }

.filters-section {
  padding: 20px var(--section-pad-x-desktop);
  background: var(--white);
  border-bottom: 1px solid var(--beige-dark);
  position: static;
}
.filters-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.filter-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
  margin-right: 8px;
}
.filter-btn {
  padding: 8px 18px;
  border-radius: 100px;
  border: 1.5px solid var(--beige-dark);
  background: transparent;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 400;
  color: var(--gray);
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}
.filter-btn:hover {
  border-color: var(--black);
  color: var(--black);
}
.filter-btn.active {
  background: var(--black);
  border-color: var(--black);
  color: var(--white);
  font-weight: 500;
}

/* Filter buttons — WordPress overrides */
.wp-block-button.filter-btn {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}
.wp-block-button.filter-btn .wp-block-button__link {
  background: transparent !important;
  color: var(--gray) !important;
  border: 1.5px solid var(--beige-dark) !important;
  border-radius: 8px !important;
  padding: 8px 18px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
  transition: all 0.2s !important;
  white-space: nowrap !important;
}
.wp-block-button.filter-btn .wp-block-button__link:hover {
  border-color: var(--black) !important;
  color: var(--black) !important;
  background: transparent !important;
}
.wp-block-button.filter-btn.active .wp-block-button__link {
  background: var(--black) !important;
  border-color: var(--black) !important;
  color: var(--white) !important;
  font-weight: 500 !important;
}

/* Blog filters bar */
.filters-bar {
  background: var(--beige);
  padding: 0 48px 32px;
  border-bottom: 1px solid var(--beige-dark);
}

.portfolio-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.portfolio-inner {
  max-width: 1200px;
  margin: 0 auto;
}
/* Portfolio grid — 12-column magazine layout (pure selectors) */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 60px;
  gap: 16px;
}
.proj-card {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: var(--beige);
  cursor: pointer;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.proj-card:hover { transform: translateY(-4px); }
.proj-card:nth-child(1) { grid-column: 1 / 8; grid-row: 1 / 9; }
.proj-card:nth-child(2) { grid-column: 8 / 13; grid-row: 1 / 6; }
.proj-card:nth-child(3) { grid-column: 8 / 13; grid-row: 6 / 9; }
.proj-card:nth-child(4) { grid-column: 1 / 5; grid-row: 9 / 14; }
.proj-card:nth-child(5) { grid-column: 5 / 10; grid-row: 9 / 14; }
.proj-card:nth-child(6) { grid-column: 10 / 13; grid-row: 9 / 14; }

.proj-visual {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.proj-card:hover .proj-visual { transform: scale(1.04); }
.proj-visual-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: clamp(48px, 8vw, 96px);
  color: var(--beige-dark);
  letter-spacing: -0.05em;
  user-select: none;
  transition: color 0.3s;
}
.proj-card:hover .proj-visual-num { color: rgba(247,42,33,0.15); }
/* Proj card image & clickable link (pure) */
.proj-visual .proj-visual-img,
.proj-visual .proj-visual-img img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; margin: 0; padding: 0;
}
.proj-visual .proj-visual-img { overflow: hidden; }
.proj-card p.proj-card-link { position: absolute; inset: 0; z-index: 5; margin: 0; }
.proj-card p.proj-card-link a { position: absolute; inset: 0; font-size: 0; color: transparent; text-decoration: none; z-index: 5; }

.proj-overlay {
  position: absolute; inset: 0;
  background: rgba(247,42,33,0.72);
  z-index: 1; opacity: 0;
  transition: opacity 0.35s ease;
}
.proj-card:hover .proj-overlay { opacity: 1; }
.proj-info {
  position: absolute;
  inset: 0;
  padding: 24px 28px;
  background: none;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  transform: translateY(10px);
  opacity: 0;
  transition: opacity 0.35s ease, transform 0.35s ease;
  z-index: 2;
}
.proj-card:hover .proj-info {
  transform: translateY(0);
  opacity: 1;
}
.proj-desc {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  line-height: 1.55;
  color: rgba(255,255,255,0.85);
  margin: 4px 0 0 0;
  font-weight: 300;
}
.proj-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.proj-tag {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  background: rgba(255,255,255,0.2);
  padding: 3px 10px;
  border-radius: 100px;
  backdrop-filter: blur(8px);
}
.proj-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(16px, 2vw, 22px);
  font-weight: 600;
  color: var(--white);
  letter-spacing: -0.01em;
  margin-bottom: 8px;
  line-height: 1.2;
}
.proj-meta {
  display: none;
}
.proj-desc {
  display: none;
}
.proj-sector {
  font-size: 12px;
  color: var(--gray);
  font-weight: 300;
}
.proj-year {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-light);
  letter-spacing: 0.06em;
}
.proj-link {
  position: absolute;
  top: 20px; right: 20px;
  width: 36px; height: 36px;
  background: rgba(255,255,255,0.12);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.3s;
  text-decoration: none;
}
.proj-card:hover .proj-link {
  opacity: 1;
  transform: scale(1);
}
.proj-link:hover { background: var(--red) !important; }

.proj-label {
  position: absolute;
  top: 20px; left: 20px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray);
  background: rgba(250,250,249,0.85);
  backdrop-filter: blur(8px);
  padding: 5px 12px;
  border-radius: 100px;
  transition: opacity 0.3s;
}
.proj-card:hover .proj-label { opacity: 0; }

.empty-state {
  display: none;
  grid-column: 1 / -1;
  padding: 80px 0;
  text-align: center;
}
.empty-state.visible { display: block; }
.empty-state p {
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  color: var(--gray-light);
  font-style: italic;
}

/* ===========================
   REALISATION SINGLE PAGE
   =========================== */
.project-hero {
  padding-top: 72px;
  min-height: 85vh;
  display: grid;
  grid-template-rows: 1fr auto;
  background: var(--beige);
  position: relative;
  overflow: hidden;
}
.project-hero-main {
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
  padding: 80px 48px 60px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
}
.project-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray);
  text-decoration: none;
  margin-bottom: 32px;
  transition: color 0.2s;
}
.project-back:hover { color: var(--red); }
.project-back svg { transition: transform 0.2s; }
.project-back:hover svg { transform: translateX(-3px); }

.project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.project-tag {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  background: rgba(247,42,33,0.1);
  padding: 5px 14px;
  border-radius: 100px;
}
.project-title {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: clamp(40px, 6vw, 80px);
  letter-spacing: -0.02em;
  line-height: 1.0;
  color: var(--black);
}
.project-title em {
  font-style: normal;
  color: var(--red);
}

.project-meta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--beige-dark);
  margin-bottom: 32px;
}
.project-meta-item {
  background: var(--beige);
  padding: 20px 24px;
}
.project-meta-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
  margin-bottom: 6px;
}
.project-meta-value {
  font-size: 14px;
  font-weight: 500;
  color: var(--black);
}
.project-intro {
  font-size: 16px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
}
.project-intro strong {
  color: var(--black);
  font-weight: 500;
}

.project-hero-visual {
  background: var(--beige-dark);
  min-height: 320px;
  border-radius: 12px 12px 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
  align-self: end;
}
.project-hero-visual-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 120px;
  color: var(--beige);
  letter-spacing: -0.05em;
  user-select: none;
}

.content-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
}
.content-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* Contexte */
.contexte-section { background: var(--white); }
.contexte-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: start;
}
.contexte-challenge {
  background: var(--beige);
  border-left: 3px solid var(--red);
  padding: 28px 32px;
  border-radius: 0 8px 8px 0;
  margin-top: 32px;
}
.contexte-challenge-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 10px;
}
.contexte-challenge-text {
  font-family: 'Playfair Display', serif;
  font-size: 17px;
  font-style: italic;
  color: var(--black);
  line-height: 1.6;
  font-weight: 500;
}
.contexte-text {
  font-size: 16px;
  line-height: 1.8;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 24px;
}
.contexte-text strong { color: var(--black); font-weight: 500; }

/* Visuals */
.visuals-section { background: var(--beige); padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); }
.visuals-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  grid-template-rows: auto auto;
  gap: 12px;
}
.visual-item {
  background: var(--beige-dark);
  border-radius: 10px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.visual-item.large { grid-row: 1 / 3; min-height: 480px; }
.visual-item.small { min-height: 230px; }
.visual-item-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 64px;
  color: var(--beige);
  letter-spacing: -0.04em;
  user-select: none;
}
.visual-item-label {
  position: absolute;
  bottom: 16px; left: 16px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray);
  background: rgba(250,250,249,0.85);
  padding: 5px 12px;
  border-radius: 100px;
}

/* Approche */
.approche-section { background: var(--white); }
.approche-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2px;
}
.approche-step {
  display: grid;
  grid-template-columns: 60px 1fr 1fr;
  gap: 48px;
  padding: 40px 0;
  border-bottom: 1px solid var(--beige-dark);
  align-items: start;
  transition: background 0.2s;
  cursor: default;
}
.approche-step:first-child { border-top: 1px solid var(--beige-dark); }
.approche-step:hover { background: var(--beige); padding-left: 20px; padding-right: 20px; margin: 0 -20px; }
.approche-step-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--red);
  opacity: 0.5;
  padding-top: 4px;
}
.approche-step-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(17px, 1.8vw, 20px);
  font-weight: 600;
  color: var(--black);
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.approche-step-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.7;
  font-weight: 300;
}

/* Techno */
.techno-section { background: var(--beige); }
.techno-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.techno-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: var(--white);
  border: 1px solid var(--beige-dark);
  border-radius: 100px;
  font-size: 14px;
  font-weight: 400;
  color: var(--black);
  transition: border-color 0.2s, background 0.2s;
  cursor: default;
}
.techno-pill:hover {
  border-color: var(--red);
  background: rgba(247,42,33,0.04);
}
.techno-pill-dot {
  width: 6px; height: 6px;
  background: var(--red);
  border-radius: 50%;
  flex-shrink: 0;
}

/* Temoignage */
.temoignage-section {
  background: var(--white);
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
}
.temoignage-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.temoignage-quote-mark {
  font-family: 'Playfair Display', serif;
  font-size: 96px;
  line-height: 0.5;
  color: var(--red);
  opacity: 0.2;
  margin-bottom: 32px;
  display: block;
}
.temoignage-text {
  font-family: 'Playfair Display', serif;
  font-size: clamp(20px, 2.5vw, 28px);
  font-style: italic;
  font-weight: 500;
  color: var(--black);
  line-height: 1.55;
  margin-bottom: 40px;
  letter-spacing: -0.01em;
}
.temoignage-author {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.temoignage-avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 16px;
  color: var(--red);
  flex-shrink: 0;
}
.temoignage-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--black);
  letter-spacing: -0.01em;
}
.temoignage-role {
  font-size: 12px;
  color: var(--gray);
  font-weight: 300;
}

/* Next projects (realisation-single) */
.next-projects {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
  border-top: 1px solid var(--beige-dark);
}
.next-projects-inner {
  max-width: 1200px;
  margin: 0 auto;
}
.next-projects-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 40px;
}
.next-projects-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gray);
}
.next-projects-link {
  font-size: 13px;
  color: var(--black);
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 6px;
  opacity: 0.5;
  transition: opacity 0.2s;
}
.next-projects-link:hover { opacity: 1; color: var(--red); }
.next-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.next-card {
  background: var(--beige-dark);
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.3s;
}
.next-card:hover { transform: translateY(-4px); }
.next-card-num {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 48px;
  color: var(--beige);
  letter-spacing: -0.04em;
  user-select: none;
  transition: color 0.3s;
}
.next-card:hover .next-card-num { color: rgba(247,42,33,0.2); }
.next-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(13,13,13,0.75) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s;
}
.next-card:hover .next-card-overlay { opacity: 1; }
.next-card-info {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 20px;
  transform: translateY(8px);
  opacity: 0;
  transition: all 0.3s;
}
.next-card:hover .next-card-info { transform: translateY(0); opacity: 1; }
.next-card-cat {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 4px;
}
.next-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 600;
  color: white;
  letter-spacing: -0.01em;
}

/* ===========================
   ASSOCIES PAGE (full blocks)
   =========================== */
.associe-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 640px;
  position: relative;
}
.associe-block.reverse { direction: rtl; }
.associe-block.reverse > * { direction: ltr; }

.associe-visual {
  position: relative;
  background: transparent;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  overflow: hidden;
  padding: 0;
}
.associe-visual img {
  max-width: 500px;
  max-height: 500px;
  width: auto;
  height: auto;
  object-fit: cover;
  border-radius: 12px;
  border: 3px solid var(--red);
}
.associe-visual .wp-block-image,
.associe-visual figure {
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.associe-block:nth-child(2) .associe-visual { background: transparent; }

.associe-avatar-large {
  width: 180px;
  height: 180px;
  background: transparent;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.associe-avatar-large img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.associe-avatar-large .wp-block-image,
.associe-avatar-large figure {
  margin: 0;
  width: 100%;
  height: 100%;
}
.associe-block:nth-child(2) .associe-avatar-large { background: transparent; }

.associe-avatar-initials {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 80px;
  color: var(--red);
  opacity: 0.2;
  letter-spacing: -0.04em;
  user-select: none;
}

.associe-visual-tag {
  position: absolute;
  top: 32px; left: 32px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--red);
  background: rgba(247,42,33,0.1);
  padding: 6px 14px;
  border-radius: 100px;
}

.associe-content {
  padding: 72px 64px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--white);
}
.associe-block:nth-child(2) .associe-content { background: var(--beige); }

.associe-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  opacity: 0.5;
  margin-bottom: 20px;
}

.associe-quote {
  border-left: 3px solid var(--red);
  padding: 16px 24px;
  margin-bottom: 32px;
  background: var(--beige);
  border-radius: 0 8px 8px 0;
}
.associe-block:nth-child(2) .associe-quote { background: var(--white); }
.associe-quote-text {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-style: italic;
  font-weight: 500;
  color: var(--black);
  line-height: 1.6;
  letter-spacing: -0.01em;
}

.associe-parcours {
  font-size: 14px;
  line-height: 1.75;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 32px;
}
.associe-parcours strong { color: var(--black); font-weight: 500; }

.associe-competences {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
.competence-pill {
  font-family: 'DM Sans', sans-serif;
  font-size: 12px;
  font-weight: 400;
  padding: 6px 14px;
  background: var(--beige-dark);
  border-radius: 100px;
  color: var(--black);
  transition: background 0.2s;
  cursor: default;
}
.associe-block:nth-child(2) .competence-pill { background: var(--white); }
.competence-pill:hover { background: rgba(247,42,33,0.1); color: var(--red); }

.associe-apport {
  padding: 20px 0;
  border-top: 1px solid var(--beige-dark);
  margin-bottom: 28px;
}
.associe-apport-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
  margin-bottom: 10px;
}
.associe-apport-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.65;
  font-weight: 300;
}
.associe-apport-text strong { color: var(--black); font-weight: 500; }

.associe-linkedin {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--black);
  text-decoration: none;
  border-bottom: 1px solid var(--beige-dark);
  padding-bottom: 4px;
  transition: color 0.2s, border-color 0.2s, gap 0.2s;
  width: fit-content;
}
.associe-linkedin:hover { color: var(--red); border-color: var(--red); gap: 16px; }

/* Ensemble section */
.ensemble-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--beige);
  position: relative;
  overflow: hidden;
}
.ensemble-bg {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 16vw;
  color: var(--beige-dark);
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  line-height: 1;
  white-space: nowrap;
}
.ensemble-inner {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.ensemble-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.ensemble-label::before { content: ''; display: inline-block; width: 20px; height: 1px; background: var(--red); }
.ensemble-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(26px, 3vw, 40px);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--black);
}
.ensemble-title em { font-style: italic; color: var(--red); }
.ensemble-text {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 24px;
}
.ensemble-text strong { color: var(--black); font-weight: 500; }
.ensemble-values {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ensemble-value {
  padding: 14px 18px;
  background: var(--white);
  border-radius: 8px;
  transition: transform 0.2s;
  cursor: default;
}
.ensemble-value:hover { transform: translateY(-2px); }
.ensemble-value-icon { font-size: 16px; margin-bottom: 4px; display: block; }
.ensemble-value-title {
  font-family: 'Playfair Display', serif;
  font-size: 16px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 4px;
  letter-spacing: -0.01em;
}
.ensemble-value-text {
  font-size: 12px;
  color: var(--gray);
  font-weight: 300;
  line-height: 1.5;
}

/* ===========================
   PARTENAIRES PAGE
   =========================== */
.partenaires-section {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
  background: var(--white);
}
.partenaires-inner { max-width: 1200px; margin: 0 auto; }

.categorie-block {
  margin-bottom: 80px;
}
.categorie-block:last-child { margin-bottom: 0; }
.categorie-header {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--beige-dark);
}
.categorie-tag {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  display: flex;
  align-items: center;
  gap: 8px;
}
.categorie-tag::before { content: ''; display: inline-block; width: 20px; height: 1px; background: var(--red); }
.categorie-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(20px, 2.5vw, 28px);
  font-weight: 600;
  color: var(--black);
  letter-spacing: -0.01em;
}
.logos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 1fr;
  gap: 16px;
  align-items: stretch;
}
.partner-card {
  background: var(--beige);
  border-radius: 12px;
  padding: 32px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
  cursor: default;
  min-height: 140px;
  position: relative;
  overflow: hidden;
}
.partner-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border: 1.5px solid transparent;
  border-radius: 12px;
  transition: border-color 0.25s;
}
.partner-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(13,13,13,0.08);
  background: var(--white);
}
.partner-card:hover::after { border-color: var(--beige-dark); }

.partner-logo-wrap {
  width: 120px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 12px;
  overflow: hidden;
}
.partner-logo-wrap figure,
.partner-logo-wrap .wp-block-image {
  margin: 0;
  width: 120px;
  height: 40px;
}
a.become-partner-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  width: 100%;
  height: 100%;
}

.partner-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--black);
  letter-spacing: -0.01em;
  text-align: center;
}
.partner-type {
  font-size: 12px;
  color: var(--gray);
  font-weight: 300;
  text-align: center;
  letter-spacing: 0.02em;
}

/* become-partner-btn (pure CSS) */
.become-partner-btn {
  margin-left: auto;
  flex-shrink: 0;
}
.become-partner-btn a {
  display: inline-block;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--white);
  background: var(--red);
  padding: 8px 18px;
  border-radius: 20px;
  text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
  white-space: nowrap;
}
.become-partner-btn a:hover {
  background: var(--black);
  transform: translateY(-1px);
}

/* Rejoindre section */
.rejoindre-section {
  background: var(--beige);
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop);
}
.rejoindre-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.avantages-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.avantage-card {
  background: var(--white);
  border-radius: 12px;
  padding: 32px 28px;
  transition: transform 0.2s;
}
.avantage-card:hover { transform: translateY(-3px); }
.avantage-icon { font-size: 28px; margin-bottom: 16px; display: block; }
.avantage-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--black);
  margin-bottom: 10px;
  letter-spacing: -0.01em;
}
.avantage-text {
  font-size: 14px;
  color: var(--gray);
  line-height: 1.65;
  font-weight: 300;
}

/* ===========================
   BLOG PAGE
   =========================== */
.featured-section { padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); background: var(--white); }
.featured-inner { max-width: 1200px; margin: 0 auto; }

.featured-card {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 0;
  border-radius: 16px;
  overflow: hidden;
  background: var(--beige);
  text-decoration: none;
  color: inherit;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  min-height: 440px;
}
.featured-card { position: relative; cursor: pointer; }
.featured-card:hover { transform: translateY(-4px); box-shadow: 0 24px 64px rgba(13,13,13,0.1); }
.featured-title a { color: inherit; text-decoration: none; }
.featured-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.featured-image {
  background: var(--beige-dark);
  position: relative;
  overflow: hidden;
  min-height: 440px;
}
.featured-image img {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  object-fit: cover;
}
.featured-image-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
}
.featured-image-label {
  position: absolute;
  top: 20px; left: 20px;
  background: var(--red);
  color: white;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 100px;
}
.featured-content {
  padding: 48px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.featured-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.article-tag {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--red);
  background: rgba(247,42,33,0.1);
  padding: 4px 10px;
  border-radius: 100px;
}
.article-date { font-size: 12px; color: var(--gray); font-weight: 300; }
.article-read-time { font-size: 12px; color: var(--gray); font-weight: 300; }
.meta-dot { width: 3px; height: 3px; background: var(--gray-light); border-radius: 50%; }
.meta-text { font-size: 13px; color: var(--gray); font-weight: 300; }
.featured-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(24px, 2.5vw, 36px);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--black);
  margin-bottom: 16px;
}
.featured-excerpt {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 32px;
}
.featured-author { display: flex; align-items: center; gap: 12px; }
.author-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  flex-shrink: 0;
}
.author-name { font-size: 13px; font-weight: 500; color: var(--black); }
.author-role { font-size: 12px; color: var(--gray); font-weight: 300; }
.featured-arrow {
  margin-left: auto;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--red);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.2s;
  flex-shrink: 0;
}
.featured-arrow svg { width: 14px; height: 14px; }
.featured-arrow svg path { stroke: white; }
.featured-card:hover .featured-arrow { background: var(--red); transform: rotate(45deg); }

/* Blog grid */
.blog-grid-section { padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); background: var(--white); }
.blog-grid-inner { max-width: 1200px; margin: 0 auto; }
.blog-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: auto;
  gap: 20px;
}
.article-card {
  text-decoration: none;
  color: inherit;
  border-radius: 12px;
  overflow: hidden;
  background: var(--beige);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.article-card { position: relative; cursor: pointer; }
.article-card:hover { transform: translateY(-4px); box-shadow: 0 20px 56px rgba(13,13,13,0.09); }
.card-title a { color: inherit; text-decoration: none; }
.card-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.article-card:nth-child(1) { grid-column: span 7; }
.article-card:nth-child(2) { grid-column: span 5; }
.article-card:nth-child(3) { grid-column: span 4; }
.article-card:nth-child(4) { grid-column: span 4; }
.article-card:nth-child(5) { grid-column: span 4; }
.article-card:nth-child(6) { grid-column: span 6; }
.article-card:nth-child(7) { grid-column: span 6; }

.card-image {
  background: var(--beige-dark);
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
}
.article-card:nth-child(1) .card-image,
.article-card:nth-child(2) .card-image { aspect-ratio: 4/3; }
.card-image-placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
}
.card-image-inner {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, transparent 40%, rgba(13,13,13,0.03) 100%);
}

.card-content { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.card-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.card-title {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(15px, 1.6vw, 20px);
  letter-spacing: -0.01em;
  line-height: 1.3;
  color: var(--black);
  margin-bottom: 10px;
  flex: 1;
}
.card-excerpt {
  font-size: 13px;
  line-height: 1.65;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 16px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-card:nth-child(1) .card-excerpt,
.article-card:nth-child(2) .card-excerpt { -webkit-line-clamp: 3; }
.card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid var(--beige-dark);
}
.card-author { display: flex; align-items: center; gap: 8px; }
.card-author-avatar {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  flex-shrink: 0;
}
.card-author-name { font-size: 12px; font-weight: 400; color: var(--gray); }
.card-arrow {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  flex-shrink: 0;
}
.article-card:hover .card-arrow { background: var(--red); }
.article-card:hover .card-arrow svg path { stroke: white; }

/* Newsletter */
.newsletter-section { background: var(--beige); padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); }
.newsletter-inner { max-width: 600px; margin: 0 auto; text-align: center; }
.newsletter-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 16px;
  display: block;
}
.newsletter-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--black);
  margin-bottom: 16px;
}
.newsletter-title em { font-style: italic; color: var(--red); }
.newsletter-desc {
  font-size: 15px;
  color: var(--gray);
  font-weight: 300;
  line-height: 1.65;
  margin-bottom: 32px;
}
.newsletter-form { display: flex; gap: 10px; max-width: clamp(280px, 90vw, 440px); margin: 0 auto; }
.newsletter-input {
  flex: 1;
  padding: 14px 20px;
  border-radius: 100px;
  border: 1.5px solid var(--beige-dark);
  background: var(--white);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--black);
  outline: none;
  transition: border-color 0.2s;
}
.newsletter-input:focus { border-color: var(--red); }
.newsletter-input::placeholder { color: var(--gray-light); }
.newsletter-note { font-size: 12px; color: var(--gray-light); margin-top: 12px; }

/* ===========================
   ARTICLE PAGE
   =========================== */
/* ===========================
   ARTICLE PAGE — WordPress overrides
   =========================== */
.wp-block-group.article-hero,
.wp-block-group.article-hero.is-layout-flow,
section.wp-block-group.article-hero,
section.article-hero,
.article-hero {
  padding: 72px clamp(20px, 4vw, 48px) 0 !important;
  background: var(--beige) !important;
  display: block !important;
}
.wp-block-group.article-hero-inner,
.wp-block-group.article-hero-inner.is-layout-flow,
.article-hero-inner {
  max-width: 800px !important;
  margin: 0 auto !important;
  padding: 80px 0 64px !important;
}
p.article-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  margin-bottom: 32px !important;
}
p.article-back a { color: var(--gray) !important; text-decoration: none !important; }
p.article-back a:hover { color: var(--red) !important; }
.wp-block-group.article-meta,
.wp-block-group.article-meta.is-layout-flow,
.article-meta {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 24px !important;
  flex-wrap: wrap !important;
}
p.article-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  background: rgba(247,42,33,0.1) !important;
  padding: 5px 12px !important;
  border-radius: 100px !important;
  margin: 0 !important;
}
p.meta-text {
  font-size: 13px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin: 0 !important;
}
h1.article-title,
.wp-block-heading.article-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(32px, 5vw, 60px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
  color: var(--black) !important;
  margin-bottom: 24px !important;
}
p.article-intro {
  font-size: 20px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 40px !important;
}
p.article-intro strong { color: var(--black) !important; font-weight: 500 !important; }
.wp-block-group.article-author-bar,
.wp-block-group.article-author-bar.is-layout-flow,
.article-author-bar {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  padding: 20px 0 !important;
  border-top: 1px solid var(--beige-dark) !important;
  border-bottom: 1px solid var(--beige-dark) !important;
}
p.author-avatar-lg {
  width: 48px !important; height: 48px !important;
  border-radius: 50% !important;
  background: var(--beige-dark) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--red) !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
}
.wp-block-group.author-info,
.wp-block-group.author-info.is-layout-flow,
.author-info {
  flex: 1 !important;
  display: block !important;
}
p.author-name-lg { font-size: 15px !important; font-weight: 500 !important; color: var(--black) !important; margin: 0 !important; }
p.author-role-lg { font-size: 13px !important; color: var(--gray) !important; font-weight: 300 !important; margin: 0 !important; }
.wp-block-group.share-btns,
.wp-block-group.share-btns.is-layout-flow {
  display: flex !important;
  gap: 8px !important;
}
p.share-btn {
  width: 36px !important; height: 36px !important;
  border-radius: 50% !important;
  background: var(--white) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  margin: 0 !important;
  cursor: pointer !important;
}
.wp-block-group.article-cover,
.wp-block-group.article-cover.is-layout-flow,
.article-cover {
  padding: 0 !important;
  background: var(--beige-dark) !important;
  max-width: 1200px !important;
  margin: 0 auto !important;
  height: 480px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  border-radius: 8px !important;
}
.article-cover img,
.article-cover .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
.article-cover .wp-block-image,
.article-cover figure.wp-block-image {
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
.wp-block-group.article-cover .wp-block-image,
.wp-block-group.article-cover figure.wp-block-image {
  margin: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
p.article-cover-placeholder {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
}
.wp-block-group.article-layout,
.wp-block-group.article-layout.is-layout-flow,
.article-layout {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 80px clamp(20px, 4vw, 48px) 120px !important;
  display: grid !important;
  grid-template-columns: 1fr 280px !important;
  gap: 80px !important;
  align-items: start !important;
}
article.wp-block-group.article-body,
article.wp-block-group.article-body.is-layout-flow,
.wp-block-group.article-body,
.wp-block-group.article-body.is-layout-flow,
article.article-body,
.article-body {
  display: block !important;
}
.wp-block-group.article-body .wp-block-heading:where(h2),
.article-body h2 {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(22px, 2.5vw, 32px) !important;
  letter-spacing: -0.02em !important;
  line-height: 1.2 !important;
  color: var(--black) !important;
  margin: 48px 0 20px !important;
}
.wp-block-group.article-body .wp-block-heading:where(h3),
.article-body h3 {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 19px !important;
  letter-spacing: 0.01em !important;
  color: var(--black) !important;
  margin: 36px 0 16px !important;
}
.wp-block-group.article-body p {
  font-size: 17px !important;
  line-height: 1.8 !important;
  color: #3D3B38 !important;
  font-weight: 400 !important;
  margin-bottom: 24px !important;
}
.wp-block-group.article-body strong { color: var(--black) !important; font-weight: 600 !important; }
.wp-block-group.article-body a {
  color: var(--red) !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(247, 42, 33, 0.3) !important;
  text-underline-offset: 3px !important;
  transition: text-decoration-color 0.2s !important;
}
.wp-block-group.article-body a:hover {
  text-decoration-color: var(--red) !important;
}
.wp-block-group.article-body .wp-block-list {
  list-style: none !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.wp-block-group.article-body .wp-block-list li {
  position: relative !important;
  padding-left: 22px !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #3D3B38 !important;
  font-weight: 400 !important;
}
.wp-block-group.article-body .wp-block-list li::before {
  content: '\2726' !important;
  color: var(--red) !important;
  font-size: 10px !important;
  position: absolute !important;
  left: 0 !important;
  top: 7px !important;
  opacity: 0.7 !important;
}
.wp-block-group.article-body ol.wp-block-list {
  list-style: none !important;
  counter-reset: article-ol !important;
  margin: 0 0 24px !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}
.wp-block-group.article-body ol.wp-block-list li {
  counter-increment: article-ol !important;
  position: relative !important;
  padding-left: 26px !important;
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: #3D3B38 !important;
  font-weight: 400 !important;
}
.wp-block-group.article-body ol.wp-block-list li::before {
  content: counter(article-ol) '.' !important;
  color: var(--red) !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  position: absolute !important;
  left: 0 !important;
  top: 1px !important;
}
.wp-block-group.article-body .wp-block-quote {
  border-left: 3px solid var(--red) !important;
  padding: 20px 28px !important;
  background: var(--beige) !important;
  border-radius: 0 10px 10px 0 !important;
  margin: 32px 0 !important;
}
.wp-block-group.article-body .wp-block-quote p {
  font-family: 'Playfair Display', serif !important;
  font-size: 20px !important;
  font-style: italic !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  margin: 0 !important;
  line-height: 1.5 !important;
}
.wp-block-group.article-body .wp-block-group.highlight-box,
.wp-block-group.article-body .wp-block-group.highlight-box.is-layout-flow {
  background: var(--beige) !important;
  border-radius: 0 12px 12px 0 !important;
  border-left: 3px solid var(--red) !important;
  padding: 28px 32px !important;
  margin: 32px 0 !important;
  display: block !important;
}
.wp-block-group.article-body .highlight-box p.box-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 12px !important;
}
aside.wp-block-group.article-sidebar,
.wp-block-group.article-sidebar,
.wp-block-group.article-sidebar.is-layout-flow,
aside.article-sidebar,
.article-sidebar {
  position: sticky !important;
  top: 92px !important;
  display: block !important;
}
.wp-block-group.sidebar-toc,
.wp-block-group.sidebar-toc.is-layout-flow,
.sidebar-toc {
  background: var(--beige) !important;
  border-radius: 12px !important;
  padding: 28px !important;
  margin-bottom: 20px !important;
}
p.sidebar-toc-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  margin-bottom: 16px !important;
}
.wp-block-group.sidebar-cta,
.wp-block-group.sidebar-cta.is-layout-flow,
.sidebar-cta {
  background: var(--black) !important;
  border-radius: 12px !important;
  padding: 28px !important;
  text-align: center !important;
}
h3.sidebar-cta-title,
.wp-block-heading.sidebar-cta-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--white) !important;
  line-height: 1.3 !important;
  margin-bottom: 12px !important;
}
.wp-block-heading.sidebar-cta-title em { font-style: italic !important; color: var(--red) !important; }
p.sidebar-cta-text {
  font-size: 13px !important;
  color: rgba(255,255,255,0.5) !important;
  font-weight: 300 !important;
  line-height: 1.55 !important;
  margin-bottom: 20px !important;
}
.wp-block-button.sidebar-cta-btn .wp-block-button__link {
  background: var(--red) !important;
  color: white !important;
  padding: 12px 20px !important;
  border-radius: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
}
section.wp-block-group.next-articles,
.wp-block-group.next-articles,
.wp-block-group.next-articles.is-layout-flow {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
}
.wp-block-group.next-inner,
.wp-block-group.next-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
}
.wp-block-group.next-grid,
.wp-block-group.next-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  margin-top: 32px !important;
}
.wp-block-group.next-card {
  background: var(--white) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  transition: transform 0.25s, box-shadow 0.25s !important;
  display: flex !important;
  flex-direction: column !important;
}
.wp-block-group.next-card:hover { transform: translateY(-4px) !important; box-shadow: 0 20px 56px rgba(13,13,13,0.09) !important; }
.wp-block-group.next-card-image,
.wp-block-group.next-card-image.is-layout-flow {
  height: 180px !important;
  background: var(--beige-dark) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.wp-block-group.next-card-content,
.wp-block-group.next-card-content.is-layout-flow {
  padding: 24px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
.wp-block-group.next-card-meta,
.wp-block-group.next-card-meta.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 12px !important;
}
h3.next-card-title,
.wp-block-heading.next-card-title {
  font-family: 'Playfair Display', serif !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  color: var(--black) !important;
  letter-spacing: -0.01em !important;
  line-height: 1.3 !important;
  margin-bottom: 16px !important;
}
p.next-card-link {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  margin-top: auto !important;
}
p.next-card-link a { color: var(--red) !important; text-decoration: none !important; }

/* TOC list WordPress overrides */
.wp-block-list.toc-list {
  list-style: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 0 !important;
  margin: 0 !important;
}
li.toc-item { list-style: none !important; margin: 0 !important; padding: 0 !important; }
li.toc-item::before { content: none !important; display: none !important; }
li.toc-item a {
  font-size: 13px !important;
  color: var(--gray) !important;
  text-decoration: none !important;
  line-height: 1.5 !important;
  display: block !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  transition: background 0.15s, color 0.15s !important;
  font-weight: 300 !important;
}
li.toc-item a:hover,
li.toc-item.active a { background: var(--white) !important; color: var(--red) !important; }

/* Section label (next-articles) */
p.section-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 32px !important;
}

/* Card image placeholders */
p.next-card-image-placeholder {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  margin: 0 !important;
}

/* Sidebar CTA button wrapper fix */
.wp-block-buttons.sidebar-cta-actions {
  display: block !important;
}
.wp-block-button.sidebar-cta-btn {
  margin: 0 !important;
}

.article-hero { padding: 72px 48px 0; background: var(--beige); }
.article-hero-inner { max-width: 800px; margin: 0 auto; padding: 80px 0 64px; }
.article-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray);
  text-decoration: none;
  margin-bottom: 32px;
  transition: color 0.2s;
}
.article-back:hover { color: var(--red); }
.article-back svg { transition: transform 0.2s; }
.article-back:hover svg { transform: translateX(-3px); }
.article-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.article-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(32px, 5vw, 60px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--black);
  margin-bottom: 24px;
}
.article-intro {
  font-size: 20px;
  line-height: 1.65;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 40px;
}
.article-intro strong { color: var(--black); font-weight: 500; }
.article-author-bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--beige-dark);
  border-bottom: 1px solid var(--beige-dark);
}
.author-avatar-lg {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--red);
  flex-shrink: 0;
}
.author-info { flex: 1; }
.author-name-lg { font-size: 15px; font-weight: 500; color: var(--black); }
.author-role-lg { font-size: 13px; color: var(--gray); font-weight: 300; }
.share-btns { display: flex; gap: 8px; }
.share-btn {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--white);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  transition: background 0.2s;
}
.share-btn:hover { background: var(--beige-dark); }

.article-cover {
  padding: 0;
  background: var(--beige-dark);
  height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
}

.article-layout {
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 48px 120px;
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 80px;
  align-items: start;
}

/* Article body */
.article-body h2 {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(22px, 2.5vw, 32px);
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--black);
  margin: 48px 0 20px;
}
.article-body h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 19px;
  letter-spacing: 0.01em;
  color: var(--black);
  margin: 36px 0 16px;
}
.article-body p {
  font-size: 17px;
  line-height: 1.8;
  color: #3D3B38;
  font-weight: 400;
  margin-bottom: 24px;
}
.article-body strong { color: var(--black); font-weight: 600; }
.article-body a {
  color: var(--red);
  text-decoration: underline;
  text-decoration-color: rgba(247, 42, 33, 0.3);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.2s;
}
.article-body a:hover {
  text-decoration-color: var(--red);
}
.article-body ul {
  list-style: none;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.article-body ul li {
  position: relative;
  padding-left: 22px;
  font-size: 17px;
  line-height: 1.7;
  color: #3D3B38;
  font-weight: 400;
}
.article-body ul li::before {
  content: '\2726';
  color: var(--red);
  font-size: 10px;
  position: absolute;
  left: 0;
  top: 7px;
  opacity: 0.7;
}
.article-body ol {
  list-style: none;
  counter-reset: article-ol;
  margin: 0 0 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.article-body ol li {
  counter-increment: article-ol;
  position: relative;
  padding-left: 26px;
  font-size: 17px;
  line-height: 1.7;
  color: #3D3B38;
  font-weight: 400;
}
.article-body ol li::before {
  content: counter(article-ol) '.';
  color: var(--red);
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 15px;
  position: absolute;
  left: 0;
  top: 1px;
}
.article-body blockquote {
  border-left: 3px solid var(--red);
  padding: 20px 28px;
  background: var(--beige);
  border-radius: 0 10px 10px 0;
  margin: 32px 0;
}
.article-body blockquote p {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-style: italic;
  font-weight: 600;
  color: var(--black);
  margin: 0;
  line-height: 1.5;
}
.article-body .highlight-box {
  background: var(--beige);
  border-radius: 0 12px 12px 0;
  border-left: 3px solid var(--red);
  padding: 28px 32px;
  margin: 32px 0;
}
.article-body .highlight-box .box-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 12px;
}
.article-body .highlight-box p { font-size: 15px; margin: 0; }

/* Sidebar */
.article-sidebar { position: sticky; top: 92px; }
.sidebar-toc {
  background: var(--beige);
  border-radius: 12px;
  padding: 28px;
  margin-bottom: 20px;
}
.sidebar-toc-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray);
  margin-bottom: 16px;
}
.toc-list { list-style: none; display: flex; flex-direction: column; gap: 4px; }
.toc-item a {
  font-size: 13px;
  color: var(--gray);
  text-decoration: none;
  line-height: 1.5;
  display: block;
  padding: 6px 10px;
  border-radius: 6px;
  transition: background 0.15s, color 0.15s;
  font-weight: 300;
}
.toc-item a:hover, .toc-item.active a { background: var(--white); color: var(--red); }
.sidebar-cta {
  background: var(--black);
  border-radius: 12px;
  padding: 28px;
  text-align: center;
}
.sidebar-cta-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--white);
  line-height: 1.3;
  margin-bottom: 12px;
}
.sidebar-cta-title em { font-style: italic; color: var(--red); }
.sidebar-cta-text {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  font-weight: 300;
  line-height: 1.55;
  margin-bottom: 20px;
}
.sidebar-cta-btn {
  display: block;
  background: var(--red);
  color: white;
  padding: 12px 20px;
  border-radius: 100px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}
.sidebar-cta-btn:hover { background: var(--black); color: white; }

/* Next articles (article page) */
.next-articles { background: var(--beige); padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); }
.next-inner { max-width: 1200px; margin: 0 auto; }
.next-card-image {
  height: 180px;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gray-light);
}
.next-card-content { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.next-card-meta { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.next-card-title {
  font-family: 'Playfair Display', serif;
  font-size: 18px;
  font-weight: 600;
  color: var(--black);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin-bottom: 16px;
  flex: 1;
}
.next-card-link {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--red);
  margin-top: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: gap 0.2s;
}
.next-card:hover .next-card-link { gap: 10px; }

/* ===========================
   CONTACT PAGE
   =========================== */
.contact-page {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding-top: 72px;
}
.contact-left {
  background: var(--beige);
  padding: clamp(48px, 6vw, 80px) clamp(24px, 4vw, 64px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.contact-left-bg {
  position: absolute;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  font-size: 18vw;
  color: var(--beige-dark);
  bottom: -4vw; right: -4vw;
  letter-spacing: -0.05em;
  pointer-events: none;
  user-select: none;
  line-height: 1;
}
.contact-left-inner {
  position: relative;
  z-index: 1;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.contact-breadcrumb {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  margin-bottom: 32px;
}
.contact-breadcrumb::before { content: ''; display: inline-block; width: 20px; height: 1px; background: var(--red); }
.contact-title {
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: clamp(48px, 5vw, 80px);
  letter-spacing: -0.03em;
  line-height: 0.95;
  color: var(--black);
  margin-bottom: 28px;
}
.contact-title em { font-style: normal; color: var(--red); }
.contact-desc {
  font-size: 16px;
  line-height: 1.7;
  color: var(--gray);
  font-weight: 300;
  max-width: 380px;
}
.contact-desc strong { color: var(--black); font-weight: 500; }

/* Contact toggle (pure) */
.contact-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 40px;
  background: var(--beige);
  border-radius: 100px;
  padding: 4px;
}
.contact-toggle-btn {
  flex: 1;
  text-align: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  padding: 12px 20px;
  border-radius: 100px;
  cursor: pointer;
  transition: background 0.3s, color 0.3s;
  color: var(--gray);
  background: transparent;
  user-select: none;
}
.contact-toggle-btn.contact-toggle-btn--active {
  background: var(--black);
  color: var(--white);
}
.contact-toggle-btn:hover:not(.contact-toggle-btn--active) { color: var(--black); }
.contact-panel { display: none; }
.contact-panel.contact-panel--active { display: block; }
/* Partner contacts (pure) */
.partner-contacts {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 32px;
}
.partner-contact-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: var(--beige);
  border-radius: 16px;
  padding: 24px;
  transition: transform 0.2s, box-shadow 0.2s;
}
.partner-contact-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(13,13,13,0.06);
}
.partner-contact-avatar {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--white);
  display: flex; align-items: center; justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px; font-weight: 700;
  color: var(--red);
  flex-shrink: 0;
  line-height: 52px;
  text-align: center;
}
.partner-contact-info { flex: 1; }
.partner-contact-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px; font-weight: 700;
  color: var(--black);
  margin-bottom: 2px;
}
.partner-contact-role {
  font-size: 13px; color: var(--gray); font-weight: 300;
}
.partner-contact-btn .wp-block-button__link,
.partner-contact-btn a {
  background: var(--black);
  color: var(--white);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px; font-weight: 600;
  padding: 10px 20px;
  border-radius: 100px;
  text-decoration: none;
  transition: background 0.2s;
  white-space: nowrap;
}
.partner-contact-btn .wp-block-button__link:hover,
.partner-contact-btn a:hover { background: var(--black); color: white; }
.partner-contact-note {
  font-size: 13px;
  color: var(--gray);
  font-weight: 300;
  text-align: center;
  margin-top: 24px;
}

.contact-assocs { display: flex; gap: 12px; align-items: center; }
.assoc-chip {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--white);
  border-radius: 100px;
  padding: 8px 16px 8px 8px;
}
.assoc-chip-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--beige-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--red);
  flex-shrink: 0;
}
.assoc-chip-name { font-size: 13px; font-weight: 500; color: var(--black); }
.assoc-chip-role { font-size: 12px; color: var(--gray); font-weight: 300; }
.contact-assocs-label { font-size: 12px; color: var(--gray); font-weight: 300; margin-bottom: 12px; }

.contact-right { background: var(--white); padding: clamp(48px, 6vw, 80px) clamp(24px, 4vw, 64px); }
.form-title {
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: -0.02em;
  color: var(--black);
  margin-bottom: 8px;
}
.form-subtitle {
  font-size: 15px;
  color: var(--gray);
  font-weight: 300;
  margin-bottom: 40px;
  line-height: 1.6;
}

.form-group { margin-bottom: 28px; }
.form-label {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--black);
  margin-bottom: 12px;
  display: block;
}
.form-label span { color: var(--red); }

.project-types { display: flex; flex-wrap: wrap; gap: 8px; }
.project-type-btn {
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  padding: 8px 16px;
  border-radius: 100px;
  border: 1.5px solid var(--beige-dark);
  background: transparent;
  color: var(--gray);
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 300;
}
.project-type-btn:hover { border-color: var(--black); color: var(--black); }
.project-type-btn.selected { background: var(--black); border-color: var(--black); color: var(--white); }

.budget-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.budget-option {
  padding: 14px 16px;
  border-radius: 10px;
  border: 1.5px solid var(--beige-dark);
  cursor: pointer;
  transition: all 0.2s;
  text-align: left;
  background: transparent;
}
.budget-option:hover { border-color: var(--black); }
.budget-option.selected { border-color: var(--red); background: rgba(247,42,33,0.04); }
.budget-option-amount {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--black);
  display: block;
  margin-bottom: 2px;
}
.budget-option.selected .budget-option-amount { color: var(--red); }
.budget-option-label { font-size: 12px; color: var(--gray); font-weight: 300; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-input, .form-textarea, .form-select {
  width: 100%;
  padding: 14px 18px;
  border-radius: 10px;
  border: 1.5px solid var(--beige-dark);
  background: var(--white);
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--black);
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
  font-weight: 300;
}
.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color: var(--red);
  box-shadow: 0 0 0 3px rgba(247,42,33,0.08);
}
.form-input::placeholder, .form-textarea::placeholder { color: var(--gray-light); }
.form-textarea { resize: vertical; min-height: 120px; line-height: 1.6; }
.form-select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%238A8680' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  cursor: pointer;
}

.form-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--beige-dark);
}
.form-note {
  font-size: 12px;
  color: var(--gray-light);
  font-weight: 300;
  max-width: 200px;
  line-height: 1.5;
}

.form-success {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 48px;
  min-height: 300px;
}
.form-success.show { display: flex; }
.success-icon { font-size: 48px; margin-bottom: 20px; }
.success-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(22px, 2.8vw, 28px);
  font-weight: 700;
  color: var(--black);
  margin-bottom: 12px;
  letter-spacing: -0.02em;
}
.success-title em { font-style: italic; color: var(--red); }
.success-text {
  font-size: 15px;
  color: var(--gray);
  font-weight: 300;
  line-height: 1.65;
  max-width: 360px;
}

/* ===========================
   MENTIONS LEGALES PAGE
   =========================== */
.legal-content { max-width: 800px; margin: 0 auto; padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop); }
.legal-section {
  margin-bottom: 56px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--beige-dark);
}
.legal-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.legal-section-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--red);
  opacity: 0.6;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.legal-section-num::before {
  content: '';
  display: inline-block;
  width: 16px; height: 1px;
  background: var(--red);
  opacity: 0.6;
}
.legal-section h2 {
  font-family: 'Playfair Display', serif;
  font-weight: 600;
  font-size: clamp(20px, 2.5vw, 28px);
  letter-spacing: -0.01em;
  color: var(--black);
  margin-bottom: 20px;
  line-height: 1.2;
}
.legal-section p {
  font-size: 15px;
  line-height: 1.8;
  color: #4A4845;
  font-weight: 300;
  margin-bottom: 16px;
}
.legal-section p:last-child { margin-bottom: 0; }
.legal-section strong { color: var(--black); font-weight: 500; }
.legal-section a {
  color: var(--red);
  text-decoration: none;
  border-bottom: 1px solid rgba(247,42,33,0.3);
  transition: border-color 0.2s;
}
.legal-section a:hover { border-color: var(--red); }

.legal-table { width: 100%; border-collapse: collapse; margin: 20px 0; }
.legal-table th {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gray);
  padding: 10px 16px;
  background: var(--beige);
  text-align: left;
  border-bottom: 1px solid var(--beige-dark);
}
.legal-table td {
  font-size: 14px;
  color: #4A4845;
  font-weight: 300;
  padding: 12px 16px;
  border-bottom: 1px solid var(--beige-dark);
  line-height: 1.5;
  vertical-align: top;
}
.legal-table tr:last-child td { border-bottom: none; }

.legal-highlight {
  background: var(--beige);
  border-radius: 10px;
  padding: 20px 24px;
  margin: 20px 0;
}
.legal-highlight p { margin: 0; font-size: 14px; }

/* ===========================
   FOOTER
   =========================== */
footer {
  background: var(--black);
  padding: clamp(40px, 5vw, 64px) clamp(20px, 4vw, 48px) clamp(24px, 3vw, 40px);
  color: var(--white);
}
.footer-inner,
.wp-block-group.footer-inner,
.wp-block-group.footer-inner.is-layout-constrained {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding-left: clamp(20px, 4vw, 48px) !important;
  padding-right: clamp(20px, 4vw, 48px) !important;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  margin-bottom: 40px;
}
.footer-brand p {
  font-size: 14px;
  color: rgba(255,255,255,0.35);
  line-height: 1.65;
  margin-top: 16px;
  font-weight: 300;
  max-width: 260px;
}
.footer-col-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.25);
  margin-bottom: 14px;
}
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 6px; padding: 0; margin: 0; }
.footer-links li { margin: 0; padding: 0; line-height: 1.6; }
.footer-links a {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  text-decoration: none;
  transition: color 0.25s;
  font-weight: 400;
  letter-spacing: 0.01em;
}
.footer-links a:hover { color: var(--white); }
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(255,255,255,0.25);
}
.footer-logo-img { margin-bottom: 16px; }
.footer-logo-img img { width: 100px; height: auto; }
/* WP overrides for footer lists */
.site-footer ul.footer-links,
.wp-block-group.site-footer ul.footer-links {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  line-height: 1.6 !important;
}
.site-footer ul.footer-links li { margin: 0 !important; padding: 0 !important; }
.site-footer .footer-col-title,
.wp-block-heading.footer-col-title { margin-bottom: 14px !important; }
.site-footer .footer-brand p { margin-top: 12px !important; }

/* ===========================
   RESPONSIVE — TABLET (max-width: 1024px)
   =========================== */
@media (max-width: 1024px) {
  /* Header */
  .wp-block-group.site-header { height: 64px !important; }

  /* Homepage hero — reduce height */
  .wp-block-group.hero,
  .wp-block-group.hero.is-layout-flow {
    min-height: auto !important;
    padding: 80px 32px 40px !important;
  }
  /* Neural sphere — tablet */
  #neural-sphere {
    width: 100vw !important;
    opacity: 0.2 !important;
  }
  .has-neural-sphere .wp-block-group.hero-inner,
  .has-neural-sphere .wp-block-group.hero-inner.is-layout-flow {
    max-width: 90% !important;
    margin: 0 auto !important;
  }

  /* Page hero — stack columns */
  .wp-block-group.page-hero-inner,
  .wp-block-group.page-hero-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    padding: 80px 0 60px !important;
  }

  /* Homepage hero bottom */
  .wp-block-group.hero-bottom,
  .wp-block-group.hero-bottom.is-layout-flow {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 24px !important;
  }

  /* Stats — keep 4 columns on tablet, smaller padding */
  .wp-block-group.stats-inner.is-layout-flow,
  .wp-block-group.stats-inner { grid-template-columns: repeat(4, 1fr) !important; }
  .wp-block-group.stat-item { padding: 28px 16px !important; }
  .stats-inner { grid-template-columns: 1fr 1fr; }

  /* Expertises home — 2 columns */
  .wp-block-group.expertises-grid.is-layout-flow,
  .wp-block-group.expertises-grid { grid-template-columns: 1fr 1fr !important; }
  .expertises-grid { grid-template-columns: 1fr 1fr; }

  /* Realisations home — stack */
  .wp-block-group.realisations-grid.is-layout-flow,
  .wp-block-group.realisations-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    min-height: auto !important;
  }
  .wp-block-group.realisation-card.large { grid-row: auto !important; }
  .realisations-grid { grid-template-columns: 1fr; }

  /* Vision split — stack */
  .wp-block-group.vision-split.is-layout-flow,
  .wp-block-group.vision-split { grid-template-columns: 1fr !important; gap: 40px !important; }
  .vision-split { grid-template-columns: 1fr; gap: 40px; }

  /* Articles home — 2 then 1 columns */
  .articles-home-section .next-grid { grid-template-columns: 1fr 1fr !important; }

  /* Ecosystem carousel — tablet */
  .eco-card,
  .wp-block-group.eco-card,
  .wp-block-group.eco-card.is-layout-flow { width: auto !important; }

  /* Logo — tablet: shrink default state */
  .wp-block-group.site-header .wp-block-image.nav-logo-img { top: 6px !important; }
  .wp-block-group.site-header .wp-block-image.nav-logo-img img { height: 64px !important; }

  /* Marquee — tablet */
  .wp-block-group.marquee-track p.marquee-item { padding: 0 24px !important; font-size: 15px !important; gap: 18px !important; }
  .marquee-track p.marquee-item::after { margin-left: 24px !important; }

  /* Hero scroll — tablet */
  p.hero-scroll { right: 32px !important; font-size: 12px !important; }

  /* Services switch — tablet */
  .wp-block-group.services-switch.is-layout-flow,
  .wp-block-group.services-switch,
  .services-switch { gap: 8px !important; }
  .services-switch a,
  .services-switch p { font-size: 15px !important; padding: 8px 24px !important; }

  /* Newsletter form — tablet */
  .newsletter-form { max-width: clamp(280px, 90vw, 440px) !important; }

  /* Domaine stats — column on tablet */
  .wp-block-group.domaine-stats.is-layout-flow,
  .wp-block-group.domaine-stats { flex-direction: column !important; gap: 24px !important; }

  /* 3D canvas — reduced on tablet */
  canvas.domaine-3d-canvas { opacity: 0.8 !important; }

  /* Domaine content — tablet padding */
  .wp-block-group.domaine-content.is-layout-flow,
  .wp-block-group.domaine-content { padding: 48px 32px !important; }

  /* Realisation card — tablet */
  .wp-block-group.realisation-card { min-height: 260px !important; }

  /* Blog featured image */
  .featured-image { min-height: 320px !important; }

  /* Associe avatar — tablet */
  .wp-block-group.associe-avatar-large.is-layout-flow,
  .wp-block-group.associe-avatar-large,
  .associe-avatar-large { width: 160px !important; height: 160px !important; }

  /* CTA band text — tablet */
  p.cta-band-text { font-size: clamp(28px, 5vw, 40px) !important; }

  /* Vision IA — 2 columns */
  .wp-block-group.vision-ia-header,
  .wp-block-group.vision-ia-header.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .wp-block-group.vision-ia-cards,
  .wp-block-group.vision-ia-cards.is-layout-flow {
    grid-template-columns: 1fr 1fr !important;
  }
  .wp-block-group.vision-ia-cards-3,
  .wp-block-group.vision-ia-cards-3.is-layout-flow {
    grid-template-columns: 1fr 1fr 1fr !important;
  }
  .vision-ia-header { grid-template-columns: 1fr; gap: 24px; }
  .vision-ia-cards { grid-template-columns: 1fr 1fr; }

  /* Pourquoi — stack */
  .wp-block-group.pourquoi-inner.is-layout-flow,
  .wp-block-group.pourquoi-inner { grid-template-columns: 1fr !important; gap: 40px !important; }
  .pourquoi-inner { grid-template-columns: 1fr; gap: 40px; }

  /* Differenciateurs — simplify grid */
  .wp-block-group.diff-item.is-layout-flow,
  .wp-block-group.diff-item { grid-template-columns: 48px 1fr !important; gap: 24px !important; }
  .diff-item { grid-template-columns: 48px 1fr; gap: 24px; }
  .wp-block-group.diff-item.is-layout-flow > *:last-child,
  .wp-block-group.diff-item > *:last-child { grid-column: 2 !important; }

  /* Methodologie — 3 columns */
  .wp-block-group.methodo-steps.is-layout-flow,
  .wp-block-group.methodo-steps { grid-template-columns: repeat(3, 1fr) !important; }
  .methodo-steps { grid-template-columns: repeat(3, 1fr); }

  /* Valeurs — 2 columns */
  .wp-block-group.valeurs-grid.is-layout-flow,
  .wp-block-group.valeurs-grid { grid-template-columns: 1fr 1fr !important; }
  .valeurs-grid { grid-template-columns: 1fr 1fr; }

  /* Associes home — stack */
  .wp-block-group.associes-grid.is-layout-flow,
  .wp-block-group.associes-grid { grid-template-columns: 1fr !important; }
  .associes-grid { grid-template-columns: 1fr; }

  /* Section title — allow wrap */
  .wp-block-heading.section-title,
  h2.section-title { white-space: normal !important; }

  /* Section header — stack */
  .wp-block-group.section-header.is-layout-flow,
  .wp-block-group.section-header { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; grid-template-columns: 1fr !important; }

  /* Partenaires section — tablet padding (specificity kept equal to mobile block) */
  .wp-block-group.partenaires-section.is-layout-flow,
  .wp-block-group.partenaires-section { padding: var(--section-pad-y-tablet) var(--section-pad-x-tablet) !important; }
  .wp-block-group.rejoindre-section.is-layout-flow,
  .wp-block-group.rejoindre-section { padding: var(--section-pad-y-tablet) var(--section-pad-x-tablet) !important; }
  .wp-block-group.categorie-block.is-layout-flow,
  .wp-block-group.categorie-block { margin-bottom: 48px !important; }

  /* Expertises page — accordion detail */
  .wp-block-group.expertise-detail-inner.is-layout-flow,
  .wp-block-group.expertise-detail-inner,
  .expertise-detail-inner { grid-template-columns: 1fr !important; padding-left: 64px !important; gap: 32px !important; }
  .wp-block-group.expertise-header.is-layout-flow,
  .wp-block-group.expertise-header { grid-template-columns: 48px 1fr auto !important; }

  /* Domaines page — stack */
  .wp-block-group.domaine-block.is-layout-flow,
  .wp-block-group.domaine-block,
  .domaine-block { grid-template-columns: 1fr !important; }
  .wp-block-group.domaine-visual.is-layout-flow,
  .wp-block-group.domaine-visual,
  .domaine-visual { min-height: 360px !important; }
  .wp-block-group.domaine-block-2.is-layout-flow,
  .wp-block-group.domaine-block-2,
  .domaine-block:nth-child(even) { direction: ltr !important; }
  /* Associe block — stack on tablet */
  .wp-block-group.associe-block.is-layout-flow,
  .wp-block-group.associe-block,
  .associe-block { grid-template-columns: 1fr !important; }
  .wp-block-group.associe-block.reverse.is-layout-flow,
  .wp-block-group.associe-block.reverse { direction: ltr !important; }
  .wp-block-group.associe-visual.is-layout-flow,
  .wp-block-group.associe-visual,
  .associe-visual { min-height: 360px !important; }

  /* Ensemble — stack */
  .wp-block-group.ensemble-inner.is-layout-flow,
  .wp-block-group.ensemble-inner,
  .ensemble-inner { grid-template-columns: 1fr !important; gap: 40px !important; }

  /* Partenaires — logos 3 col */
  .wp-block-group.logos-grid.is-layout-flow,
  .wp-block-group.logos-grid,
  .logos-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .wp-block-group.avantages-grid.is-layout-flow,
  .wp-block-group.avantages-grid,
  .avantages-grid { grid-template-columns: 1fr 1fr !important; }
  .wp-block-group.rejoindre-header.is-layout-flow,
  .wp-block-group.rejoindre-header { grid-template-columns: 1fr !important; }

  /* Contact page — stack */
  main.wp-block-group.contact-page.is-layout-flow,
  .wp-block-group.contact-page.is-layout-flow,
  .wp-block-group.contact-page,
  .contact-page { grid-template-columns: 1fr !important; min-height: auto !important; }
  .wp-block-group.contact-left.is-layout-flow,
  .wp-block-group.contact-left {
    position: static !important;
    height: auto !important;
    overflow: visible !important;
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important;
  }
  .wp-block-group.contact-right.is-layout-flow,
  .wp-block-group.contact-right { padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important; }

  /* Mentions legales — info grid stack */
  .wp-block-group.legal-info-grid.is-layout-flow,
  .wp-block-group.legal-info-grid,
  .legal-info-grid { grid-template-columns: 1fr !important; }

  /* Blog — featured card */
  .wp-block-group.featured-card.is-layout-flow,
  .wp-block-group.featured-card { grid-template-columns: 1fr !important; min-height: auto !important; }

  /* Newsletter — center */
  .wp-block-group.newsletter-inner.is-layout-flow,
  .wp-block-group.newsletter-inner { max-width: 100% !important; }

  /* Portfolio — tablet: switch to 2-column simple grid */
  .wp-block-group.portfolio-grid.is-layout-flow,
  .wp-block-group.portfolio-grid,
  .portfolio-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    grid-auto-rows: 280px !important;
  }
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(1),
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(2),
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(3),
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(4),
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(5),
  .wp-block-group.portfolio-grid > .wp-block-group.proj-card:nth-child(6),
  .portfolio-grid > .proj-card:nth-child(1),
  .portfolio-grid > .proj-card:nth-child(2),
  .portfolio-grid > .proj-card:nth-child(3),
  .portfolio-grid > .proj-card:nth-child(4),
  .portfolio-grid > .proj-card:nth-child(5),
  .portfolio-grid > .proj-card:nth-child(6) {
    grid-column: auto !important;
    grid-row: auto !important;
  }
  .wp-block-group.portfolio-section.is-layout-flow,
  .wp-block-group.portfolio-section,
  .portfolio-section { padding: var(--section-pad-y-tablet) var(--section-pad-x-tablet) !important; }
  .wp-block-group.filters-section.is-layout-flow,
  .wp-block-group.filters-section,
  .filters-section { padding: var(--section-pad-y-tablet) var(--section-pad-x-tablet) !important; }
  /* Ensemble section responsive */
  .wp-block-group.ensemble-section.is-layout-flow,
  .wp-block-group.ensemble-section { padding: var(--section-pad-y-tablet) var(--section-pad-x-tablet) !important; }
  .wp-block-group.ensemble-inner.is-layout-flow,
  .wp-block-group.ensemble-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
  /* CTA band responsive */
  .wp-block-group.cta-band-inner.is-layout-flow,
  .wp-block-group.cta-band-inner { gap: 30px !important; }

  /* Realisation single */
  .project-hero-main { grid-template-columns: 1fr !important; gap: 40px !important; padding: 80px 32px 40px !important; }
  .contexte-grid { grid-template-columns: 1fr !important; }
  .visuals-grid { grid-template-columns: 1fr !important; }
  .approche-step { grid-template-columns: 48px 1fr !important; }
  .approche-step > *:last-child { grid-column: 2; }

  /* Associes page — full blocks */
  .associe-block { grid-template-columns: 1fr !important; }
  .associe-block.reverse { direction: ltr; }
  .associe-visual { min-height: 360px; }

  /* Partenaires — ensemble */
  .ensemble-inner { grid-template-columns: 1fr !important; gap: 40px !important; }

  /* Blog featured card — stack */
  .featured-card { grid-template-columns: 1fr !important; min-height: auto !important; }
  .featured-image { min-height: 280px !important; }

  /* Blog grid — simplified */
  .blog-grid { grid-template-columns: 1fr 1fr !important; }
  .article-card:nth-child(1) { grid-column: 1 / 3 !important; }
  .article-card:nth-child(2) { grid-column: auto !important; }
  .article-card:nth-child(3) { grid-column: auto !important; }
  .article-card:nth-child(4) { grid-column: auto !important; }
  .article-card:nth-child(5) { grid-column: auto !important; }
  .article-card:nth-child(6) { grid-column: 1 / 3 !important; }
  .article-card:nth-child(7) { grid-column: 1 / 3 !important; }

  /* Article page — sidebar below */
  .wp-block-group.article-layout.is-layout-flow,
  .wp-block-group.article-layout { grid-template-columns: 1fr !important; gap: 48px !important; }
  .article-layout { grid-template-columns: 1fr !important; }
  aside.wp-block-group.article-sidebar,
  .wp-block-group.article-sidebar.is-layout-flow,
  .wp-block-group.article-sidebar { position: static !important; }
  .wp-block-group.next-grid.is-layout-flow,
  .wp-block-group.next-grid { grid-template-columns: 1fr 1fr !important; }
  .next-grid { grid-template-columns: 1fr 1fr !important; }

  /* Contact page — stack */
  .contact-page { grid-template-columns: 1fr !important; }
  .contact-left {
    position: static !important;
    height: auto !important;
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important;
  }
  .contact-right { padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important; }

  /* Footer */
  .footer-top { grid-template-columns: 1fr 1fr !important; gap: 40px !important; }
  .wp-block-columns.footer-top { flex-wrap: wrap !important; }
  .wp-block-columns.footer-top > .wp-block-column { flex-basis: 45% !important; }
  .wp-block-columns.footer-top > .wp-block-column.footer-brand { flex-basis: 100% !important; }

  /* Next projects */
  .next-grid { grid-template-columns: 1fr 1fr !important; }

  /* Logos grid */
  .logos-grid { grid-template-columns: repeat(3, 1fr) !important; }

  /* Avantages */
  .avantages-grid { grid-template-columns: 1fr 1fr !important; }

  /* Filters bar */
  .filters-bar { padding: 0 32px 24px !important; }

  /* Hero scroll hide */
  p.hero-scroll { display: none !important; }
}

/* ===========================
   RESPONSIVE — MOBILE (max-width: 768px)
   =========================== */
@media (max-width: 768px) {
  /* ---- GLOBAL RESETS ---- */
  .cursor, .cursor-follower { display: none !important; }
  body { cursor: auto !important; overflow-x: clip !important; margin: 0 !important; padding: 0 !important; }
  html { overflow-x: clip !important; margin: 0 !important; padding: 0 !important; }
  a, button, input, textarea, select { cursor: auto !important; }
  .wp-site-blocks { overflow-x: hidden !important; max-width: 100vw !important; }

  /* ---- DESKTOP HEADER — hidden on mobile (handled by mobile-menu.css) ---- */
  .wp-block-group.site-header { display: none !important; }

  /* ---- HERO SECTIONS — better hierarchy ---- */
  .wp-block-group.hero,
  .wp-block-group.hero.is-layout-flow {
    min-height: auto !important;
    padding: 80px 20px 40px !important;
  }
  .wp-block-heading.hero-title,
  h1.hero-title {
    font-size: clamp(32px, 9vw, 44px) !important;
    line-height: 1.1 !important;
    margin-bottom: 16px !important;
  }
  .wp-block-group.hero-typewriter-wrap,
  .wp-block-group.hero-typewriter-wrap.is-layout-flow {
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    gap: 8px !important;
  }
  /* Hero CTAs — on same line, compact */
  .wp-block-group.hero-bottom .wp-block-buttons.hero-actions,
  .wp-block-group.hero-bottom .wp-block-buttons.hero-actions.is-layout-flex,
  .hero-bottom .hero-actions,
  .wp-block-buttons.hero-actions,
  .wp-block-buttons.hero-actions.is-layout-flex,
  .wp-block-group.hero-actions,
  .wp-block-group.hero-actions.is-layout-flow {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
  }
  .hero-actions .wp-block-button,
  .wp-block-buttons.hero-actions .wp-block-button {
    width: auto !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
  }
  .hero-actions .wp-block-button .wp-block-button__link,
  .wp-block-buttons.hero-actions .wp-block-button .wp-block-button__link,
  .wp-block-group.hero-actions .wp-block-button .wp-block-button__link {
    width: auto !important;
    padding: 10px 18px !important;
    font-size: 12px !important;
    letter-spacing: 0.03em !important;
    display: inline-block !important;
  }
  /* Secondary button — no background, just underline */
  .hero-actions .wp-block-button.btn-secondary .wp-block-button__link,
  .wp-block-buttons.hero-actions .wp-block-button.btn-secondary .wp-block-button__link {
    background: none !important;
    color: #0D0D0D !important;
    padding: 10px 4px !important;
    font-size: 12px !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
  }
  #neural-sphere {
    width: 100vw !important;
    opacity: 0.15 !important;
  }
  .has-neural-sphere .wp-block-group.hero-inner,
  .has-neural-sphere .wp-block-group.hero-inner.is-layout-flow {
    max-width: 100% !important;
    margin: 0 auto !important;
  }

  /* Page heroes — single column, compact, more impactful */
  .wp-block-group.page-hero,
  .wp-block-group.page-hero.is-layout-flow {
    padding-bottom: 40px !important;
    border-bottom: 1px solid rgba(13,13,13,0.08) !important;
    margin-bottom: 0 !important;
  }
  .wp-block-group.page-hero-inner.is-layout-flow,
  .wp-block-group.page-hero-inner {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 80px 20px 32px !important;
  }
  .wp-block-heading.page-hero-title,
  h1.page-hero-title {
    font-size: clamp(32px, 9vw, 44px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
  }
  p.page-hero-desc {
    font-size: 15px !important;
    color: #555 !important;
    line-height: 1.6 !important;
    max-width: 480px !important;
  }
  /* Show hero-right text but hide services-switch tabs */
  .wp-block-group.page-hero-right {
    display: block !important;
    overflow: hidden !important;
    max-width: 100% !important;
  }
  .wp-block-group.page-hero-right .wp-block-group.services-switch,
  .wp-block-group.page-hero-right .wp-block-group.services-switch.is-layout-flex {
    display: none !important;
  }

  /* ---- SECTION GENERAL PADDING ---- */
  /* Kill any margin-top on direct children of sections that could push eyebrow down */
  body .wp-block-group.pourquoi-section > *,
  body .wp-block-group.vision-ia-section > *,
  body .wp-block-group.methodo-section > *,
  body .wp-block-group.valeurs-section > *,
  body .wp-block-group.vision-section > *,
  body .wp-block-group.stats-section > *,
  body .wp-block-group.realisations-section > *,
  body .wp-block-group.articles-home-section > *,
  body section.articles-home-section > *,
  body section.next-articles > *,
  body .wp-block-group.ecosystem-section > *,
  body .wp-block-group.domaines-section > *,
  body .wp-block-group.cta-section > *,
  body .wp-block-group.cta-band > *,
  body .wp-block-group.associes-section > *,
  body .wp-block-group.partenaires-section > *,
  body .wp-block-group.ensemble-section > *,
  body .wp-block-group.featured-section > *,
  body .wp-block-group.blog-grid-section > *,
  body .wp-block-group.portfolio-section > *,
  body .wp-block-group.interventions-section > *,
  body .wp-block-group.interventions-offre-section > *,
  body .wp-block-group.expertises-section > * {
    margin-top: 0 !important;
  }

  /* ALL standard sections — uniform mobile padding (single source of truth).
     Prefix "html body" + .is-layout-flow variant boosts specificity to 0,3,2
     to override even base rules like `section.wp-block-group.X.is-layout-flow` (0,3,1). */
  html body .wp-block-group.pourquoi-section,          html body .wp-block-group.pourquoi-section.is-layout-flow,
  html body .wp-block-group.vision-ia-section,         html body .wp-block-group.vision-ia-section.is-layout-flow,
  html body .wp-block-group.methodo-section,           html body .wp-block-group.methodo-section.is-layout-flow,
  html body .wp-block-group.valeurs-section,           html body .wp-block-group.valeurs-section.is-layout-flow,
  html body .wp-block-group.interventions-offre-section, html body .wp-block-group.interventions-offre-section.is-layout-flow,
  html body .wp-block-group.expertises-section,        html body .wp-block-group.expertises-section.is-layout-flow,
  html body .wp-block-group.vision-section,            html body .wp-block-group.vision-section.is-layout-flow,
  html body .wp-block-group.stats-section,             html body .wp-block-group.stats-section.is-layout-flow,
  html body .wp-block-group.realisations-section,      html body .wp-block-group.realisations-section.is-layout-flow,
  html body .wp-block-group.articles-home-section,     html body .wp-block-group.articles-home-section.is-layout-flow,
  html body .wp-block-group.ecosystem-section,         html body .wp-block-group.ecosystem-section.is-layout-flow,
  html body .wp-block-group.domaines-section,          html body .wp-block-group.domaines-section.is-layout-flow,
  html body .wp-block-group.cta-section,               html body .wp-block-group.cta-section.is-layout-flow,
  html body .wp-block-group.cta-band,                  html body .wp-block-group.cta-band.is-layout-flow,
  html body .wp-block-group.associes-section,          html body .wp-block-group.associes-section.is-layout-flow,
  html body .wp-block-group.partenaires-section,       html body .wp-block-group.partenaires-section.is-layout-flow,
  html body .wp-block-group.rejoindre-section,         html body .wp-block-group.rejoindre-section.is-layout-flow,
  html body .wp-block-group.ensemble-section,          html body .wp-block-group.ensemble-section.is-layout-flow,
  html body .wp-block-group.featured-section,          html body .wp-block-group.featured-section.is-layout-flow,
  html body .wp-block-group.blog-grid-section,         html body .wp-block-group.blog-grid-section.is-layout-flow,
  html body .wp-block-group.newsletter-section,        html body .wp-block-group.newsletter-section.is-layout-flow,
  html body .wp-block-group.portfolio-section,         html body .wp-block-group.portfolio-section.is-layout-flow,
  html body .wp-block-group.filters-section,           html body .wp-block-group.filters-section.is-layout-flow,
  html body .wp-block-group.interventions-section,     html body .wp-block-group.interventions-section.is-layout-flow,
  html body .wp-block-group.diff-section,              html body .wp-block-group.diff-section.is-layout-flow,
  html body .wp-block-group.next-projects,             html body .wp-block-group.next-projects.is-layout-flow,
  html body .wp-block-group.visuals-section,           html body .wp-block-group.visuals-section.is-layout-flow,
  html body .wp-block-group.temoignage-section,        html body .wp-block-group.temoignage-section.is-layout-flow,
  html body .wp-block-group.testimonial-section,       html body .wp-block-group.testimonial-section.is-layout-flow,
  html body .wp-block-group.content-section,           html body .wp-block-group.content-section.is-layout-flow,
  html body .wp-block-group.alternance-section,        html body .wp-block-group.alternance-section.is-layout-flow,
  html body .wp-block-group.approche-section,          html body .wp-block-group.approche-section.is-layout-flow,
  html body .wp-block-group.mockups-section,           html body .wp-block-group.mockups-section.is-layout-flow,
  html body .wp-block-group.tech-section,              html body .wp-block-group.tech-section.is-layout-flow,
  html body .wp-block-group.next-section,              html body .wp-block-group.next-section.is-layout-flow,
  html body .wp-block-group.kpi-band,                  html body .wp-block-group.kpi-band.is-layout-flow,
  html body .wp-block-group.section-pad,               html body .wp-block-group.section-pad.is-layout-flow,
  html body section.articles-home-section,             html body section.next-articles,
  html body .wp-block-group.lab-concept-section,       html body .wp-block-group.lab-concept-section.is-layout-flow,
  html body .wp-block-group.lab-tarifs-section,        html body .wp-block-group.lab-tarifs-section.is-layout-flow,
  html body .wp-block-group.lab-equipe-section,        html body .wp-block-group.lab-equipe-section.is-layout-flow {
    padding: var(--section-pad-y-mobile) var(--section-pad-x-mobile) !important;
  }

  /* Blog home — reduced padding (half of standard) */
  html body section.articles-home-section,
  html body .wp-block-group.articles-home-section,
  html body .wp-block-group.articles-home-section.is-layout-flow {
    padding-top: calc(var(--section-pad-y-mobile) / 2) !important;
    padding-bottom: calc(var(--section-pad-y-mobile) / 2) !important;
  }

  /* Interventions inner — reset wrapper padding (content handled by outer section) */
  .wp-block-group.interventions-inner {
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Section headers — arrow aligned with eyebrow (top right), title below */
  .wp-block-group.stats-header,
  .wp-block-group.stats-header.is-layout-flow,
  .wp-block-group.interventions-header-row,
  .wp-block-group.interventions-header-row.is-layout-flow,
  .wp-block-group.section-header,
  .wp-block-group.section-header.is-layout-flow {
    max-width: 100% !important;
    margin: 0 0 20px !important;
    display: block !important;
    position: relative !important;
  }
  .wp-block-group.stats-header > div:first-child,
  .wp-block-group.interventions-header-row > div:first-child,
  .wp-block-group.section-header > div:first-child {
    width: 100% !important;
  }
  /* Arrow positioned absolutely at top right, aligned with eyebrow */
  .wp-block-group.stats-header p.section-link,
  .wp-block-group.interventions-header-row p.section-link,
  .wp-block-group.section-header p.section-link {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    margin: 0 !important;
  }

  /* Eyebrow → title spacing — uniform 8px */
  p.section-tag,
  .wp-block-group .section-tag,
  .articles-home-section .section-tag {
    margin-bottom: 8px !important;
    margin-top: 0 !important;
  }

  /* Page hero eyebrow — transform into breadcrumb "Accueil › PageName" */
  p.page-breadcrumb {
    margin-bottom: 16px !important;
    letter-spacing: 0.06em !important;
    font-size: 11px !important;
    color: #888 !important;
    gap: 6px !important;
  }
  p.page-breadcrumb::before {
    content: 'Accueil ›' !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    color: #888 !important;
    font-weight: 500 !important;
    letter-spacing: 0.06em !important;
  }
  /* ADN section — tighter spacing */
  p.vision-label {
    margin-bottom: 8px !important;
    margin-top: 0 !important;
  }
  .wp-block-group.vision-left,
  .wp-block-group.vision-left.is-layout-flow {
    gap: 0 !important;
  }
  .wp-block-group.vision-left .wp-block-heading.vision-title,
  .wp-block-group.vision-left h2.vision-title {
    margin-bottom: 16px !important;
    margin-block-end: 16px !important;
  }
  .wp-block-group.vision-left p.vision-text {
    margin-bottom: 16px !important;
  }

  /* Section titles — uniformized across homepage */
  .wp-block-heading.section-title,
  h2.section-title,
  .wp-block-heading.stats-title,
  h2.stats-title,
  .wp-block-heading.interventions-title,
  h2.interventions-title,
  .wp-block-heading.vision-title,
  h2.vision-title,
  .wp-block-group.vision-ia-header .section-title,
  .articles-home-section .section-title,
  .wp-block-group.methodo-header .section-title,
  .wp-block-group.pourquoi-left .wp-block-heading.section-title {
    font-size: clamp(24px, 7vw, 32px) !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    letter-spacing: -0.01em !important;
    margin-top: 0 !important;
    margin-bottom: 16px !important;
    margin-block-end: 16px !important;
  }

  /* Eyebrows spacing handled below with tight gap */

  /* Section links — replace text with just a red arrow on mobile */
  .wp-block-group p.section-link,
  .wp-block-group .section-link,
  p.section-link {
    font-size: 0 !important;
    line-height: 0 !important;
    overflow: hidden !important;
  }
  .wp-block-group .section-link a,
  .articles-home-section .section-link a,
  .wp-block-group.section-header p.section-link a,
  p.section-link a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0 !important;
    padding: 4px !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    text-decoration: none !important;
    color: transparent !important;
    gap: 0 !important;
    opacity: 1 !important;
  }
  .wp-block-group .section-link a svg,
  .articles-home-section .section-link a svg,
  p.section-link a svg {
    display: none !important;
  }
  .wp-block-group .section-link a::after,
  .articles-home-section .section-link a::after,
  .wp-block-group.section-header p.section-link a::after,
  p.section-link a::after {
    content: '' !important;
    width: 18px !important;
    height: 18px !important;
    display: inline-block !important;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M2 12L12 2M12 2H5M12 2V9' stroke='%23F72A21' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: contain !important;
    opacity: 1 !important;
  }

  /* Section header — articles spacing */
  .articles-home-section .section-header,
  section.next-articles .section-header,
  .next-articles .next-inner > .section-header {
    margin-bottom: 20px !important;
  }

  /* ---- HOMEPAGE — MARQUEE ---- */
  .wp-block-group.marquee-section { padding: 14px 0 !important; }

  /* ---- HOMEPAGE — IDENTITY SECTION ---- */
  .wp-block-group.vision-split,
  .wp-block-group.vision-split.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    margin-top: 24px !important;
  }
  /* Vision DNA — show 3D centered, legend BELOW the model */
  .wp-block-group.vision-right,
  .wp-block-group.vision-right.is-layout-flow {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 24px auto 0 !important;
  }
  .wp-block-group.vision-brins {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 16px !important;
  }
  .dna-helix {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
  }
  .dna-strand {
    width: 160px !important;
    min-height: 300px !important;
    margin: 0 auto !important;
  }
  .dna-legend {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    margin-top: 20px !important;
    position: static !important;
    width: 100% !important;
  }

  /* ---- HOMEPAGE — REALISATIONS CAROUSEL ---- */
  .wp-block-group.realisations-grid,
  .wp-block-group.realisations-grid.is-layout-flow,
  .realisations-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding-bottom: 8px !important;
    grid-template-columns: none !important;
    grid-auto-rows: auto !important;
    margin: 0 -20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    scroll-padding-left: 20px !important;
  }
  .wp-block-group.realisations-grid > .wp-block-group,
  .realisations-grid > .realisation-card,
  .realisations-grid > .proj-card {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    grid-column: auto !important;
    grid-row: auto !important;
    height: auto !important;
  }

  /* ---- HOMEPAGE — ARTICLES CAROUSEL ---- */
  .articles-home-section .next-grid,
  .next-articles .next-grid,
  section.next-articles .next-grid,
  .next-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    grid-template-columns: none !important;
    scrollbar-width: none !important;
    margin: 0 -20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    scroll-padding-left: 20px !important;
  }
  .next-grid::-webkit-scrollbar {
    display: none !important;
  }
  .articles-home-section .next-grid > a,
  .next-articles .next-grid > a,
  .next-grid > .next-card,
  .next-grid > a.next-card,
  .next-grid > a {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }

  /* ---- HIDE SCROLLBARS ON ALL CAROUSELS ---- */
  .realisations-grid,
  .next-grid,
  .vision-ia-cards,
  .methodo-steps,
  .valeurs-grid,
  .stats-inner,
  .filters-inner,
  .domaines-tabs {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }
  .realisations-grid::-webkit-scrollbar,
  .next-grid::-webkit-scrollbar,
  .vision-ia-cards::-webkit-scrollbar,
  .methodo-steps::-webkit-scrollbar,
  .valeurs-grid::-webkit-scrollbar,
  .stats-inner::-webkit-scrollbar,
  .filters-inner::-webkit-scrollbar,
  .domaines-tabs::-webkit-scrollbar {
    display: none !important;
  }

  /* ---- CAROUSEL DOTS ---- */
  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 12px 20px 0;
  }
  .carousel-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ddd;
    transition: background 0.2s;
  }
  .carousel-dot.active {
    background: #F72A21;
  }

  /* ---- VISION PAGE ---- */

  /* Pourquoi Hapi — accordions */
  .wp-block-group.pourquoi-inner,
  .wp-block-group.pourquoi-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .wp-block-group.pourquoi-block {
    padding: 16px 20px !important;
    border-radius: 12px !important;
  }
  .wp-block-heading.pourquoi-block-title {
    padding-right: 32px !important;
    font-size: 15px !important;
  }
  .wp-block-group.pourquoi-block::after {
    right: 20px !important;
    top: 16px !important;
    font-size: 18px !important;
  }

  /* Vision IA header — stack */
  .wp-block-group.vision-ia-header,
  .wp-block-group.vision-ia-header.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-bottom: 24px !important;
  }

  /* Vision IA cards — CAROUSEL */
  .wp-block-group.vision-ia-cards,
  .wp-block-group.vision-ia-cards.is-layout-flow {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
    padding: 0 20px !important;
  }
  .wp-block-group.vision-ia-card,
  .wp-block-group.vision-ia-card.is-layout-flow {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    padding: 24px 20px !important;
  }

  /* Methodo header — stack */
  .wp-block-group.methodo-header,
  .wp-block-group.methodo-header.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    margin-bottom: 24px !important;
  }

  /* Methodo steps — CAROUSEL */
  .wp-block-group.methodo-steps,
  .wp-block-group.methodo-steps.is-layout-flow {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
    padding: 0 20px !important;
  }
  .wp-block-group.methodo-steps::before { display: none !important; }
  .wp-block-group.methodo-step,
  .wp-block-group.methodo-step.is-layout-flow {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    text-align: center !important;
  }
  p.methodo-step-dot {
    width: 40px !important;
    height: 40px !important;
    font-size: 16px !important;
    line-height: 40px !important;
    margin: 0 auto 12px !important;
  }

  /* Valeurs grid — CAROUSEL */
  .wp-block-group.valeurs-grid,
  .wp-block-group.valeurs-grid.is-layout-flow {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    margin-left: -20px !important;
    margin-right: -20px !important;
    padding: 0 20px !important;
  }
  .wp-block-group.valeur-card,
  .wp-block-group.valeur-card.is-layout-flow {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }

  /* ---- OFFRE PAGE ---- */

  /* Services switch tabs — horizontal scroll pills */
  .wp-block-group.services-switch,
  .wp-block-group.services-switch.is-layout-flex,
  .wp-block-group.services-switch.is-nowrap.is-layout-flex {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0 !important;
    background: #F9F7F4 !important;
    border-radius: 100px !important;
    padding: 4px !important;
    margin: 0 0 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  .wp-block-group.services-switch p.services-switch-btn {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }
  .wp-block-group.services-switch p.services-switch-btn a {
    font-size: 11px !important;
    padding: 10px 6px !important;
    white-space: nowrap !important;
    border-radius: 100px !important;
    min-height: auto !important;
    display: block !important;
    text-align: center !important;
  }
  .wp-block-group.services-switch p.services-switch-btn.active a {
    background: white !important;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
  }

  /* Interventions — accordions (click, no hover) */
  .wp-block-group.interventions-offre-grid,
  .wp-block-group.interventions-offre-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  .wp-block-group.intervention-card {
    padding: 20px !important;
    border-radius: 16px !important;
  }
  /* Disable hover on mobile */
  .wp-block-group.intervention-card:hover,
  .page-id-936 .wp-block-group.intervention-card:hover,
  .page-id-958 .wp-block-group.intervention-card:hover,
  .page-id-14 .wp-block-group.intervention-card:hover {
    transform: none !important;
    box-shadow: none !important;
    border-color: transparent !important;
  }
  .page-id-936 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-936 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-958 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-958 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-14 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body,
  .page-id-14 .wp-block-group.intervention-card:hover .wp-block-group.intervention-card-body.is-layout-flow {
    max-height: 0 !important;
    opacity: 0 !important;
    margin-top: 0 !important;
  }
  /* Open on click via .open class */
  h3.intervention-card-title,
  .wp-block-heading.intervention-card-title {
    font-size: 16px !important;
  }
  .wp-block-group.intervention-card.open .wp-block-group.intervention-card-body,
  .wp-block-group.intervention-card.open .wp-block-group.intervention-card-body.is-layout-flow,
  .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body,
  .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-958 .wp-block-group.intervention-card.open .wp-block-group.intervention-card-body,
  .page-id-958 .wp-block-group.intervention-card.open .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-958 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body,
  .page-id-958 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-936 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body,
  .page-id-936 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body.is-layout-flow,
  .page-id-14 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body,
  .page-id-14 .wp-block-group.intervention-card.open:hover .wp-block-group.intervention-card-body.is-layout-flow {
    max-height: 800px !important;
    opacity: 1 !important;
    margin-top: 20px !important;
  }

  /* Domaines — features hidden, toggle on click */
  .wp-block-group.domaine-panel-features,
  .wp-block-group.domaine-panel-features.is-layout-flow {
    max-height: 0 !important;
    overflow: hidden !important;
    opacity: 0 !important;
    transition: max-height 0.4s ease, opacity 0.3s !important;
  }
  .wp-block-group.domaine-panel-text.open .wp-block-group.domaine-panel-features,
  .wp-block-group.domaine-panel-text.open .wp-block-group.domaine-panel-features.is-layout-flow {
    max-height: 2000px !important;
    opacity: 1 !important;
  }
  .domaine-panel-more {
    display: inline-block !important;
    font-family: 'DM Sans', sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--red) !important;
    margin-top: 12px !important;
    cursor: pointer !important;
  }

  /* Expertises — accordions (click, no hover) */
  .wp-block-group.expertise-header,
  .wp-block-group.expertise-header.is-layout-flow {
    grid-template-columns: 40px 1fr auto !important;
    gap: 12px !important;
    padding: 20px 0 !important;
  }
  /* Disable hover on mobile */
  .wp-block-group.expertise-header:hover p.expertise-num,
  .wp-block-group.expertise-header:hover .wp-block-heading.expertise-title-text,
  .wp-block-group.expertise-header:hover h3.expertise-title-text,
  .wp-block-group.expertise-header:hover p.expertise-icon {
    color: inherit !important;
    opacity: inherit !important;
  }
  .wp-block-group.expertise-card:hover {
    transform: none !important;
    box-shadow: none !important;
  }
  /* Agence page: force expertises closed on mobile (override page-id-14 desktop rule) */
  body.page-id-14 .wp-block-group.expertise-detail,
  body.page-id-14 .wp-block-group.expertise-detail.is-layout-flow {
    max-height: 0 !important;
    overflow: hidden !important;
  }
  body.page-id-14 p.expertise-toggle {
    display: block !important;
  }
  body.page-id-14 p.expertise-feature:hover + p.expertise-feature-desc,
  body.page-id-14 p.expertise-feature-desc:hover {
    max-height: 0 !important;
    padding: 0 !important;
  }
  .wp-block-group.expertise-detail-inner,
  .wp-block-group.expertise-detail-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    gap: 24px !important;
  }
  .wp-block-group.expertise-item.open .wp-block-group.expertise-detail,
  .wp-block-group.expertise-item.open .expertise-detail,
  body.page-id-14 .wp-block-group.expertise-item.open .wp-block-group.expertise-detail,
  body.page-id-14 .wp-block-group.expertise-item.open .wp-block-group.expertise-detail.is-layout-flow {
    max-height: 2000px !important;
  }
  p.expertise-feature-desc.open,
  .wp-block-group.expertise-feature.open p.expertise-feature-desc {
    max-height: 500px !important;
  }
  .wp-block-heading.expertise-title-text,
  h3.expertise-title-text { font-size: clamp(16px, 4vw, 22px) !important; }
  p.expertise-subtitle { font-size: 12px !important; }
  p.expertise-num { font-size: 13px !important; min-width: 32px !important; }
  p.expertise-toggle { width: 36px !important; height: 36px !important; font-size: 18px !important; }
  .wp-block-group.expertise-detail-left,
  .expertise-detail-left { padding-right: 0 !important; }
  .wp-block-group.expertise-header-center.is-layout-flow,
  .wp-block-group.expertise-header-center { min-width: 0 !important; }
  p.expertise-icon { font-size: 20px !important; }

  /* ---- OFFRE — DOMAINES CAROUSEL ---- */
  .wp-block-group.domaines-header {
    margin-bottom: 16px !important;
  }
  /* Hide tab buttons — JS creates carousel wrapper */
  .wp-block-group.domaines-tabs-nav,
  .wp-block-group.domaines-tabs-nav.is-layout-flex {
    display: none !important;
  }
  /* Panels carousel wrapper (created by JS) */
  .domaines-panels-carousel {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    scrollbar-width: none !important;
    margin: 0 -20px !important;
    padding: 0 20px !important;
    scroll-padding-left: 20px !important;
  }
  .domaines-panels-carousel::-webkit-scrollbar {
    display: none !important;
  }
  /* Each panel = one carousel slide */
  .wp-block-group.domaines-tab-panel,
  .wp-block-group.domaines-tab-panel.is-layout-flow {
    display: block !important;
    grid-template-columns: 1fr !important;
    min-height: auto !important;
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #F9F7F4 !important;
  }
  .wp-block-group.domaine-panel-text,
  .wp-block-group.domaine-panel-text.is-layout-flow {
    padding: 24px 20px !important;
  }
  .domaines-tab-panel .wp-block-group.domaine-visual,
  .domaines-tab-panel .wp-block-group.domaine-visual.is-layout-flow {
    min-height: 200px !important;
  }
  .domaines-panel-1 .wp-block-group.domaine-visual::after { content: '🛒' !important; font-size: 64px !important; opacity: 0.5 !important; }
  .domaines-panel-2 .wp-block-group.domaine-visual::after { content: '📱' !important; font-size: 64px !important; opacity: 0.5 !important; }
  .domaines-panel-3 .wp-block-group.domaine-visual::after { content: '🖥' !important; font-size: 64px !important; opacity: 0.5 !important; }
  .domaines-panel-4 .wp-block-group.domaine-visual::after { content: '⚙️' !important; font-size: 64px !important; opacity: 0.5 !important; }
  h3.domaine-panel-title,
  .wp-block-heading.domaine-panel-title {
    font-size: clamp(20px, 5vw, 28px) !important;
  }

  /* ---- BLOG PAGE ---- */
  .wp-block-group.filters-bar,
  .filters-section {
    padding: 16px 20px !important;
  }
  .wp-block-group.filters-inner,
  .filters-bar .filters-inner,
  .filters-inner {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    gap: 6px !important;
    padding: 0 !important;
    align-items: center !important;
  }
  .filter-buttons {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .filter-btn {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    font-size: 12px !important;
    padding: 6px 14px !important;
    border-radius: 100px !important;
  }
  .filter-label {
    flex-shrink: 0 !important;
    margin-right: 4px !important;
  }
  .wp-block-group.blog-grid,
  .blog-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    padding: 0 20px !important;
  }
  .blog-grid .article-card,
  .blog-grid .article-card:nth-child(1),
  .blog-grid .article-card:nth-child(2),
  .blog-grid .article-card:nth-child(3),
  .blog-grid .article-card:nth-child(4),
  .blog-grid .article-card:nth-child(5),
  .blog-grid .article-card:nth-child(6),
  .blog-grid .article-card:nth-child(7) {
    grid-column: span 1 !important;
  }
  .article-card .card-content {
    flex: 0 1 auto !important;
    padding: 20px !important;
  }
  .article-card .card-title {
    flex: 0 0 auto !important;
  }
  .article-card .card-footer {
    margin-top: 12px !important;
  }
  .article-card .card-image {
    aspect-ratio: 16/9 !important;
  }
  .wp-block-group.featured-card,
  .featured-card {
    grid-template-columns: 1fr !important;
  }
  /* ---- REALISATIONS PAGE ---- */
  .wp-block-group.portfolio-grid,
  .portfolio-grid {
    grid-template-columns: 1fr !important;
    grid-auto-rows: 260px !important;
    gap: 12px !important;
    padding: 0 20px !important;
  }
  .portfolio-grid > .proj-card {
    grid-column: auto !important;
    grid-row: auto !important;
  }

  /* ---- REALISATION DETAIL — hero align with mobile padding-x ---- */
  .project-hero-main {
    padding: 80px 20px 40px !important;
  }

  /* ---- CONTACT PAGE ---- */
  .wp-block-group.contact-page,
  .contact-page {
    grid-template-columns: 1fr !important;
  }
  .wp-block-group.contact-left {
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important;
  }
  .wp-block-group.contact-right {
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important;
  }
  .wp-block-group.contact-toggle {
    flex-direction: row !important;
    gap: 4px !important;
  }
  form.contact-form .form-row {
    grid-template-columns: 1fr !important;
  }

  /* ---- CTA SECTIONS — all pages ---- */
  .wp-block-group.cta-section {
    min-height: auto !important;
  }
  .wp-block-heading.cta-title,
  h2.cta-title {
    font-size: clamp(24px, 7vw, 32px) !important;
    line-height: 1.15 !important;
  }
  p.cta-sub {
    font-size: 14px !important;
    margin-bottom: 24px !important;
  }
  .wp-block-group.cta-section .wp-block-buttons {
    flex-direction: column !important;
    gap: 12px !important;
  }
  .wp-block-group.cta-section .wp-block-button .wp-block-button__link {
    width: 100% !important;
    text-align: center !important;
  }
  .wp-block-group.cta-band::before,
  section.wp-block-group.cta-band::before { font-size: 50vw !important; }

  /* ---- FOOTER ---- */
  .wp-block-group.site-footer {
    overflow: visible !important;
  }
  .wp-block-group.footer-inner,
  .wp-block-group.footer-inner.is-layout-flow,
  .wp-block-group.footer-inner.is-layout-constrained {
    padding: 32px 20px !important;
    max-width: 100% !important;
  }
  .wp-block-group.footer-inner > * {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .wp-block-columns.footer-top,
  .wp-block-columns.footer-top.is-layout-flex {
    flex-direction: column !important;
    gap: 32px !important;
  }
  .wp-block-columns.footer-cols {
    flex-direction: column !important;
    gap: 24px !important;
  }
  .wp-block-column.footer-brand {
    margin-bottom: 16px !important;
  }
  .footer-links.wp-block-list {
    padding-left: 0 !important;
  }

  /* ---- ASSOCIES ---- */
  .wp-block-group.associe-block,
  .wp-block-group.associe-block.is-layout-flow {
    grid-template-columns: 1fr !important;
  }
  .wp-block-group.associe-block.reverse.is-layout-flow,
  .wp-block-group.associe-block.reverse { direction: ltr !important; }
  .wp-block-group.associe-content,
  .wp-block-group.associe-content.is-layout-flow {
    padding: 40px 20px !important;
  }
  .wp-block-group.associe-avatar-large,
  .wp-block-group.associe-avatar-large.is-layout-flow {
    width: 140px !important;
    height: 140px !important;
  }
  .wp-block-heading.associe-name,
  h2.associe-name { font-size: clamp(28px, 7vw, 40px) !important; }
  .wp-block-group.associe-competences,
  .wp-block-group.associe-competences.is-layout-flow {
    flex-wrap: wrap !important;
    gap: 8px !important;
  }

  /* ---- DIFF SECTION ---- */
  .wp-block-group.diff-grid,
  .wp-block-group.diff-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .wp-block-group.diff-item,
  .wp-block-group.diff-item.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  /* ---- HOME PILIERS — MOBILE CAROUSEL ---- */
  html body .wp-block-group.home-piliers-section,
  html body .wp-block-group.home-piliers-section.is-layout-flow {
    padding: var(--section-pad-y-mobile) var(--section-pad-x-mobile) !important;
  }
  .wp-block-group.home-piliers-grid, .wp-block-group.home-piliers-grid.is-layout-flow {
    display: flex !important;
    grid-template-columns: none !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    margin: 0 -16px !important;
    padding: 0 16px !important;
    scroll-padding-left: 16px !important;
    scrollbar-width: none !important;
  }
  .wp-block-group.home-piliers-grid::-webkit-scrollbar { display: none !important; }
  .wp-block-group.home-pilier-card,
  .wp-block-group.home-pilier-card.is-layout-flow,
  .wp-block-group.home-pilier-card:hover,
  .wp-block-group.home-pilier-card.is-layout-flow:hover {
    min-width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    padding: 32px 24px !important;
    background: rgba(247, 42, 33, 0.03) !important;
    border-color: rgba(247, 42, 33, 0.08) !important;
    transform: none !important;
    box-shadow: none !important;
    z-index: 1 !important;
    opacity: 1 !important;
  }
  /* Carousel dots */
  .home-piliers-dots {
    display: flex !important;
    justify-content: center !important;
    gap: 8px !important;
    padding-top: 24px !important;
    padding-bottom: 8px !important;
    position: relative !important;
    z-index: 2 !important;
  }
  .home-piliers-dot {
    width: 8px !important;
    height: 8px !important;
    border-radius: 50% !important;
    background: rgba(13,13,13,0.15) !important;
    transition: background 0.3s !important;
  }
  .home-piliers-dot.active {
    background: var(--red) !important;
  }
  /* Categories open by default on mobile */
  .wp-block-group.home-pilier-categories,
  .wp-block-group.home-pilier-categories.is-layout-flow,
  .wp-block-group.home-pilier-card:hover .wp-block-group.home-pilier-categories,
  .wp-block-group.home-pilier-card:hover .wp-block-group.home-pilier-categories.is-layout-flow {
    max-height: none !important;
    opacity: 1 !important;
    overflow: visible !important;
    margin-top: 16px !important;
    margin-bottom: 16px !important;
  }
  /* Chips plus compacts sur mobile */
  p.home-pilier-tag {
    font-size: 11px !important;
    padding: 4px 10px !important;
  }
  .wp-block-group.home-pilier-cat-tags,
  .wp-block-group.home-pilier-cat-tags.is-layout-flex {
    gap: 5px !important;
  }
  .wp-block-group.home-pilier-cat {
    margin-bottom: 8px !important;
  }
  p.home-pilier-cat-label {
    font-size: 10px !important;
    margin-bottom: 5px !important;
  }
  .home-pilier-title { font-size: clamp(20px, 5vw, 26px) !important; }
  .home-pilier-title .home-pilier-accent { font-size: inherit !important; }
  p.home-piliers-intro { font-size: 15px !important; line-height: 1.65 !important; }

  /* ---- LAB — MOBILE ---- */
  .wp-block-group.lab-roles, .wp-block-group.lab-roles.is-layout-flow {
    grid-template-columns: 1fr !important; gap: 16px !important;
  }
  .wp-block-group.lab-tarifs-grid,
  .wp-block-group.lab-tarifs-grid.is-layout-flow {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    padding: 16px 16px 0 !important;
    scrollbar-width: none !important;
  }
  .wp-block-group.lab-tarifs-grid::-webkit-scrollbar { display: none !important; }
  .wp-block-group.lab-tarif-card,
  .wp-block-group.lab-tarif-card.is-layout-flow {
    min-width: calc(100vw - 48px) !important;
    max-width: calc(100vw - 48px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }
  .wp-block-group.lab-tarif-card:hover { transform: none !important; }

  /* ---- EXPERTISES HOME — stacked (not carousel, only 3 items) ---- */
  .wp-block-group.expertises-grid,
  .wp-block-group.expertises-grid.is-layout-flow {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    grid-template-columns: none !important;
    overflow-x: visible !important;
  }
  .wp-block-group.expertise-card {
    min-width: unset !important;
    max-width: none !important;
    flex-shrink: 1 !important;
    width: 100% !important;
  }

  /* ---- STATS / DOMAINES HOME — CAROUSEL ---- */
  .wp-block-group.stats-inner,
  .wp-block-group.stats-inner.is-layout-flow {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    gap: 16px !important;
    grid-template-columns: none !important;
    margin: 0 -20px !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    scroll-padding-left: 20px !important;
    scrollbar-width: none !important;
  }
  .wp-block-group.stats-inner::-webkit-scrollbar {
    display: none !important;
  }
  .wp-block-group.stats-inner > .wp-block-group,
  .wp-block-group.stat-item {
    min-width: calc(100vw - 56px) !important;
    max-width: calc(100vw - 56px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }

  /* ---- DOMAINE DETAIL PAGE ---- */
  .wp-block-group.domaine-content-full,
  .wp-block-group.domaine-content-full.is-layout-flow {
    padding: 40px 20px !important;
  }

  /* ---- BUTTONS ---- */
  .wp-block-button.btn-primary .wp-block-button__link {
    padding: 14px 28px !important;
    font-size: 13px !important;
  }

  /* ---- ECO CARDS — smaller logos on mobile ---- */
  .wp-block-group.eco-track,
  .eco-track {
    gap: 12px !important;
  }
  .eco-carousel,
  .wp-block-group.eco-carousel {
    gap: 10px !important;
  }
  .eco-track-1, .eco-track-2,
  .wp-block-group.eco-track-1, .wp-block-group.eco-track-2 {
    gap: 10px !important;
  }
  .eco-card,
  .wp-block-group.eco-card,
  .wp-block-group.eco-card.is-layout-flow {
    padding: 8px 14px !important;
    gap: 8px !important;
    border-radius: 8px !important;
  }
  .eco-card-logo,
  .wp-block-group.eco-card-logo {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
  }
  .eco-card figure.wp-block-image,
  .eco-card .wp-block-image {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
  }
  .eco-card figure.wp-block-image img,
  .eco-card .wp-block-image img,
  .eco-card .eco-card-logo img {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    border-radius: 4px !important;
  }
  .eco-card-title {
    font-size: 13px !important;
  }

  /* ---- COOKIES ---- */
  .cookies-table { overflow-x: auto !important; }

  /* Hero stats */
  .hero-stats { flex-direction: column; gap: 20px; }
  .domaine-stats { flex-direction: column; gap: 16px; }

  /* ---- NAV RESET (mobile) ---- */
  nav,
  nav.wp-block-navigation,
  .wp-block-group.site-header nav {
    border-bottom: none !important;
    border: none !important;
    box-shadow: none !important;
    position: static !important;
    height: auto !important;
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    padding: 0 !important;
  }
  /* ---- CONTACT FORM — additional mobile rules ---- */
  form.contact-form .budget-options { grid-template-columns: 1fr; }
  form.contact-form .form-submit { flex-direction: column; gap: 16px; }
  /* ---- GSAP REVEAL — disabled on mobile ---- */
  .reveal { opacity: 1 !important; transform: none !important; }
  .hero-tag, .hero-typewriter-wrap, .hero-bottom, .hero-scroll,
  .hero-line, .hero-line-wrap { opacity: 1 !important; transform: none !important; }
  /* ---- POC POPUP — mobile: stacked with smaller badge ---- */
  body .poc-overlay .poc-popup,
  html body .poc-popup {
    grid-template-columns: 1fr !important;
    max-width: 92vw !important;
    max-height: 85vh !important;
    overflow-y: auto !important;
  }
  body .poc-overlay .poc-left {
    min-height: 160px !important;
    max-height: 180px !important;
    padding: 20px !important;
    position: relative !important;
  }
  /* Shift the 3D visual to the right */
  body .poc-overlay .poc-left::after,
  body .poc-overlay .poc-left canvas {
    right: -40px !important;
    left: auto !important;
    transform: translateX(20%) !important;
  }
  body .poc-overlay .poc-right {
    padding: 24px 20px !important;
  }
  body .poc-overlay .poc-h2 {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }
  /* Smaller "EN COURS DE CONSTRUCTION" badge */
  body .poc-overlay .poc-badge {
    font-size: 8px !important;
    padding: 3px 8px !important;
    letter-spacing: 0.04em !important;
    position: absolute !important;
    top: 12px !important;
    left: 12px !important;
    z-index: 2 !important;
  }

}


/* ===========================
   RESPONSIVE — SMALL MOBILE (max-width: 480px)
   =========================== */
@media (max-width: 480px) {
  /* Hero — even more compact */
  .wp-block-heading.hero-title,
  h1.hero-title {
    font-size: clamp(28px, 8vw, 36px) !important;
  }
  .wp-block-heading.page-hero-title,
  h1.page-hero-title {
    font-size: clamp(24px, 7vw, 32px) !important;
  }

  /* Carousel cards — slightly narrower */
  .wp-block-group.vision-ia-card { min-width: 200px !important; }
  .wp-block-group.methodo-step { min-width: 140px !important; }
  .wp-block-group.valeur-card { min-width: 160px !important; }
  .realisations-grid > .realisation-card,
  .realisations-grid > .proj-card { min-width: 240px !important; }
  .next-grid > .next-card { min-width: 220px !important; }

  /* Eco cards — compact on small mobile */
  .eco-card,
  .wp-block-group.eco-card,
  .wp-block-group.eco-card.is-layout-flow,
  div.eco-card { width: auto !important; min-height: 0 !important; }

  /* Section padding tighter — uniform small-mobile padding (single source of truth).
     Prefix "html body" + .is-layout-flow variant for specificity 0,3,2. */
  html body .wp-block-group.pourquoi-section,          html body .wp-block-group.pourquoi-section.is-layout-flow,
  html body .wp-block-group.vision-ia-section,         html body .wp-block-group.vision-ia-section.is-layout-flow,
  html body .wp-block-group.methodo-section,           html body .wp-block-group.methodo-section.is-layout-flow,
  html body .wp-block-group.valeurs-section,           html body .wp-block-group.valeurs-section.is-layout-flow,
  html body .wp-block-group.interventions-offre-section, html body .wp-block-group.interventions-offre-section.is-layout-flow,
  html body .wp-block-group.expertises-section,        html body .wp-block-group.expertises-section.is-layout-flow,
  html body .wp-block-group.vision-section,            html body .wp-block-group.vision-section.is-layout-flow,
  html body .wp-block-group.stats-section,             html body .wp-block-group.stats-section.is-layout-flow,
  html body .wp-block-group.realisations-section,      html body .wp-block-group.realisations-section.is-layout-flow,
  html body .wp-block-group.articles-home-section,     html body .wp-block-group.articles-home-section.is-layout-flow,
  html body .wp-block-group.ecosystem-section,         html body .wp-block-group.ecosystem-section.is-layout-flow,
  html body .wp-block-group.domaines-section,          html body .wp-block-group.domaines-section.is-layout-flow,
  html body .wp-block-group.cta-section,               html body .wp-block-group.cta-section.is-layout-flow,
  html body .wp-block-group.cta-band,                  html body .wp-block-group.cta-band.is-layout-flow,
  html body .wp-block-group.associes-section,          html body .wp-block-group.associes-section.is-layout-flow,
  html body .wp-block-group.partenaires-section,       html body .wp-block-group.partenaires-section.is-layout-flow,
  html body .wp-block-group.rejoindre-section,         html body .wp-block-group.rejoindre-section.is-layout-flow,
  html body .wp-block-group.ensemble-section,          html body .wp-block-group.ensemble-section.is-layout-flow,
  html body .wp-block-group.featured-section,          html body .wp-block-group.featured-section.is-layout-flow,
  html body .wp-block-group.blog-grid-section,         html body .wp-block-group.blog-grid-section.is-layout-flow,
  html body .wp-block-group.newsletter-section,        html body .wp-block-group.newsletter-section.is-layout-flow,
  html body .wp-block-group.portfolio-section,         html body .wp-block-group.portfolio-section.is-layout-flow,
  html body .wp-block-group.filters-section,           html body .wp-block-group.filters-section.is-layout-flow,
  html body .wp-block-group.interventions-section,     html body .wp-block-group.interventions-section.is-layout-flow,
  html body .wp-block-group.diff-section,              html body .wp-block-group.diff-section.is-layout-flow,
  html body .wp-block-group.next-projects,             html body .wp-block-group.next-projects.is-layout-flow,
  html body .wp-block-group.visuals-section,           html body .wp-block-group.visuals-section.is-layout-flow,
  html body .wp-block-group.temoignage-section,        html body .wp-block-group.temoignage-section.is-layout-flow,
  html body .wp-block-group.testimonial-section,       html body .wp-block-group.testimonial-section.is-layout-flow,
  html body .wp-block-group.content-section,           html body .wp-block-group.content-section.is-layout-flow,
  html body .wp-block-group.alternance-section,        html body .wp-block-group.alternance-section.is-layout-flow,
  html body .wp-block-group.approche-section,          html body .wp-block-group.approche-section.is-layout-flow,
  html body .wp-block-group.mockups-section,           html body .wp-block-group.mockups-section.is-layout-flow,
  html body .wp-block-group.tech-section,              html body .wp-block-group.tech-section.is-layout-flow,
  html body .wp-block-group.next-section,              html body .wp-block-group.next-section.is-layout-flow,
  html body .wp-block-group.kpi-band,                  html body .wp-block-group.kpi-band.is-layout-flow,
  html body .wp-block-group.section-pad,               html body .wp-block-group.section-pad.is-layout-flow,
  html body section.articles-home-section,             html body section.next-articles,
  html body .wp-block-group.home-piliers-section,      html body .wp-block-group.home-piliers-section.is-layout-flow,
  html body .wp-block-group.lab-concept-section,       html body .wp-block-group.lab-concept-section.is-layout-flow,
  html body .wp-block-group.lab-tarifs-section,        html body .wp-block-group.lab-tarifs-section.is-layout-flow,
  html body .wp-block-group.lab-equipe-section,        html body .wp-block-group.lab-equipe-section.is-layout-flow {
    padding: var(--section-pad-y-small) var(--section-pad-x-small) !important;
  }

  /* Hero project detail — align with small-mobile x */
  .project-hero-main {
    padding: 72px 16px 32px !important;
  }
  .wp-block-group.contact-left,
  .wp-block-group.contact-right {
    padding: clamp(40px, 5vw, 60px) clamp(20px, 3vw, 48px) !important;
  }

  /* CTA title smaller */
  .wp-block-heading.cta-title,
  h2.cta-title {
    font-size: clamp(22px, 6vw, 28px) !important;
  }
}

/* ===========================
   KEYFRAMES
   =========================== */
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.8); }
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}
@keyframes scrollDown {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  50% { transform: scaleY(1); transform-origin: top; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ===========================
   SCROLL REVEAL
   =========================== */
.reveal { opacity: 0; transform: translateY(40px); }

/* ===========================
   REALISATION DETAIL PAGE — WordPress overrides
   =========================== */

/* --- Global mobile protection --- */
.wp-block-group.realisation-detail,
.wp-block-group.realisation-detail.is-layout-flow {
  overflow-x: hidden !important;
}
.realisation-detail img {
  max-width: 100% !important;
  height: auto !important;
}

/* --- HERO --- */
.wp-block-group.project-hero,
.wp-block-group.project-hero.is-layout-flow {
  padding-top: 72px !important;
  background: var(--beige) !important;
  overflow: hidden !important;
  position: relative !important;
  display: block !important;
}
.realisation-detail .wp-block-group.hero-inner,
.realisation-detail .wp-block-group.hero-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  padding: 80px 48px 0 !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 64px !important;
  align-items: end !important;
}
.realisation-detail .wp-block-group.hero-left,
.realisation-detail .wp-block-group.hero-left.is-layout-flow {
  padding-bottom: 64px !important;
  display: block !important;
}
p.hero-back {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray) !important;
  margin-bottom: 32px !important;
}
p.hero-back a {
  color: var(--gray) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: color .2s !important;
}
p.hero-back a:hover {
  color: var(--red) !important;
}
p.hero-back a:hover svg {
  transform: translateX(-3px) !important;
}
p.hero-back svg {
  transition: transform .2s !important;
}
p.project-tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  background: transparent !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
}
p.project-tag::before {
  content: '' !important;
  display: inline-block !important;
  width: 20px !important;
  height: 1px !important;
  background: var(--red) !important;
}
h1.project-title,
.wp-block-heading.project-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(40px, 5.5vw, 76px) !important;
  letter-spacing: -.03em !important;
  line-height: .95 !important;
  color: var(--black) !important;
  margin-bottom: 24px !important;
}
h1.project-title em,
.wp-block-heading.project-title em {
  font-style: normal !important;
  color: var(--red) !important;
}
p.project-summary {
  font-size: 17px !important;
  line-height: 1.7 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  max-width: 420px !important;
  margin-bottom: 40px !important;
}
p.project-summary strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
.wp-block-group.hero-meta-grid,
.wp-block-group.hero-meta-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 1px !important;
  background: var(--beige-dark) !important;
  border: 1px solid var(--beige-dark) !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}
.wp-block-group.meta-item,
.wp-block-group.meta-item.is-layout-flow {
  background: var(--beige) !important;
  padding: 16px 20px !important;
  display: block !important;
}
p.meta-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  margin-bottom: 4px !important;
}
p.meta-value {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--black) !important;
}
.wp-block-group.hero-right,
.wp-block-group.hero-right.is-layout-flow {
  position: relative !important;
  align-self: stretch !important;
  display: flex !important;
  align-items: flex-end !important;
}
.wp-block-group.hero-mockup-wrap,
.wp-block-group.hero-mockup-wrap.is-layout-flow {
  width: 100% !important;
  min-height: 480px !important;
  position: relative !important;
  display: block !important;
}
.wp-block-group.hero-mockup-main,
.wp-block-group.hero-mockup-main.is-layout-flow {
  position: absolute !important;
  bottom: 0 !important;
  right: 0 !important;
  width: 90% !important;
  max-height: 500px !important;
  border-radius: 16px 16px 0 0 !important;
  overflow: hidden !important;
  box-shadow: 0 -20px 60px rgba(13,13,13,.08) !important;
  display: block !important;
}
.wp-block-group.hero-mockup-main .wp-block-image,
.wp-block-group.hero-mockup-main .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
.wp-block-group.hero-mockup-float,
.wp-block-group.hero-mockup-float.is-layout-flow {
  position: absolute !important;
  top: 40px !important;
  left: 0 !important;
  width: 48% !important;
  background: var(--white) !important;
  border-radius: 12px !important;
  border: 1px solid var(--beige-dark) !important;
  box-shadow: 0 16px 48px rgba(13,13,13,.1) !important;
  z-index: 2 !important;
  overflow: hidden !important;
  display: block !important;
}
.wp-block-group.hero-mockup-float .wp-block-image,
.wp-block-group.hero-mockup-float .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}
p.hero-number {
  position: absolute !important;
  bottom: 48px !important;
  left: 0 !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 120px !important;
  color: var(--beige-dark) !important;
  letter-spacing: -.05em !important;
  line-height: 1 !important;
  user-select: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

/* --- KPIs --- */
.wp-block-group.kpi-band,
.wp-block-group.kpi-band.is-layout-flow {
  background: var(--black) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  display: block !important;
}
.wp-block-group.kpi-inner,
.wp-block-group.kpi-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
}
.wp-block-group.kpi-item,
.wp-block-group.kpi-item.is-layout-flow {
  background: var(--black) !important;
  padding: 40px 32px !important;
  border-right: 1px solid rgba(255,255,255,.06) !important;
  text-align: center !important;
  display: block !important;
}
.wp-block-group.kpi-item:last-child {
  border-right: none !important;
}
p.kpi-number {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(36px, 4vw, 60px) !important;
  letter-spacing: -.03em !important;
  line-height: 1 !important;
  color: var(--white) !important;
  margin-bottom: 8px !important;
}
p.kpi-number span {
  color: var(--red) !important;
}
p.kpi-number mark.kpi-suffix {
  color: var(--red) !important;
  background: none !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
}
p.kpi-label {
  font-size: 13px !important;
  color: rgba(255,255,255,.4) !important;
  font-weight: 300 !important;
  line-height: 1.5 !important;
}

/* --- SECTIONS (scoped under .realisation-detail) --- */
.realisation-detail .wp-block-group.section-pad {
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  display: block !important;
}
.realisation-detail .wp-block-group.section-inner,
.realisation-detail .wp-block-group.section-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: block !important;
}
.realisation-detail .wp-block-group.hero-tag {
  background: transparent !important;
  border-color: transparent !important;
}
.realisation-detail p.section-tag {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  margin-bottom: 28px !important;
}
.realisation-detail p.section-tag::before {
  content: '' !important;
  display: inline-block !important;
  width: 20px !important;
  height: 1px !important;
  background: var(--red) !important;
}
.realisation-detail h2.section-title,
.realisation-detail .wp-block-heading.section-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(28px, 3.5vw, 48px) !important;
  letter-spacing: -.02em !important;
  line-height: 1.15 !important;
  color: var(--black) !important;
  margin-bottom: 24px !important;
}
.realisation-detail h2.section-title em,
.realisation-detail .wp-block-heading.section-title em {
  font-style: italic !important;
  color: var(--red) !important;
}

/* --- CONTEXTE --- */
.wp-block-group.context-grid,
.wp-block-group.context-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1.2fr 1fr !important;
  gap: 80px !important;
  align-items: start !important;
}
.wp-block-group.context-text,
.wp-block-group.context-text.is-layout-flow {
  display: block !important;
}
.wp-block-group.context-text p {
  font-size: 17px !important;
  line-height: 1.8 !important;
  color: #4A4845 !important;
  font-weight: 300 !important;
  margin-bottom: 20px !important;
}
.wp-block-group.context-text p:last-child {
  margin-bottom: 0 !important;
}
.wp-block-group.context-text strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}
.wp-block-group.context-aside,
.wp-block-group.context-aside.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  position: sticky !important;
  top: 92px !important;
}
.wp-block-group.insight-card,
.wp-block-group.insight-card.is-layout-flow {
  background: var(--beige) !important;
  border-radius: 12px !important;
  padding: 24px !important;
  position: relative !important;
  overflow: hidden !important;
  display: block !important;
}
.wp-block-group.insight-card::before {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 3px !important;
  height: 100% !important;
  background: var(--red) !important;
}
p.insight-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 8px !important;
}
p.insight-text {
  font-size: 14px !important;
  line-height: 1.6 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
p.insight-text strong {
  color: var(--black) !important;
  font-weight: 500 !important;
}

/* --- FULL IMAGE --- */
.wp-block-group.visual-fullwidth,
.wp-block-group.visual-fullwidth.is-layout-flow {
  background: var(--beige-dark) !important;
  display: block !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.visual-fullwidth .wp-block-image {
  width: 100% !important;
}
.wp-block-group.visual-fullwidth .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}
p.visual-fullwidth-label {
  display: none !important;
  position: absolute !important;
  bottom: 24px !important;
  right: 32px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.5) !important;
  background: rgba(13,13,13,.3) !important;
  padding: 6px 12px !important;
  border-radius: 100px !important;
  backdrop-filter: blur(8px) !important;
  z-index: 2 !important;
}

/* --- APPROCHE --- */
.wp-block-group.approche-section,
.wp-block-group.approche-section.is-layout-flow {
  background: var(--beige) !important;
  display: block !important;
}
.wp-block-group.approche-grid,
.wp-block-group.approche-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 80px !important;
  align-items: center !important;
}
.wp-block-group.approche-steps,
.wp-block-group.approche-steps.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.wp-block-group.step-item,
.wp-block-group.step-item.is-layout-flow {
  display: flex !important;
  gap: 24px !important;
  padding: 28px 0 !important;
  border-bottom: 1px solid var(--beige-dark) !important;
  cursor: pointer !important;
  transition: all .25s !important;
}
.wp-block-group.step-item:first-child {
  padding-top: 0 !important;
}
.wp-block-group.step-item:last-child {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}
p.step-num {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 12px !important;
  color: var(--gray-light) !important;
  letter-spacing: .1em !important;
  flex-shrink: 0 !important;
  padding-top: 3px !important;
  width: 28px !important;
  transition: color .25s !important;
}
.wp-block-group.step-item.active p.step-num {
  color: var(--red) !important;
}
h3.step-content-title,
.wp-block-heading.step-content-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  color: var(--black) !important;
  margin-bottom: 8px !important;
  transition: color .25s !important;
}
.wp-block-group.step-item.active h3.step-content-title,
.wp-block-group.step-item.active .wp-block-heading.step-content-title {
  color: var(--red) !important;
}
p.step-content-text {
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  transition: max-height .4s ease, opacity .3s !important;
  opacity: 0 !important;
}
.wp-block-group.step-item.active p.step-content-text {
  max-height: 200px !important;
  opacity: 1 !important;
}
.wp-block-group.approche-visual,
.wp-block-group.approche-visual.is-layout-flow {
  position: relative !important;
  min-height: 300px !important;
  display: block !important;
}
.wp-block-group.approche-img-main,
.wp-block-group.approche-img-main.is-layout-flow {
  position: relative !important;
  background: var(--beige-dark) !important;
  border-radius: 16px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  overflow: hidden !important;
}
.wp-block-group.approche-img-main .wp-block-image {
  width: 100% !important;
}
.wp-block-group.approche-img-main .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}
.wp-block-group.approche-img-float,
.wp-block-group.approche-img-float.is-layout-flow {
  position: absolute !important;
  bottom: -20px !important;
  right: -20px !important;
  width: 200px !important;
  height: 160px !important;
  background: var(--white) !important;
  border-radius: 12px !important;
  border: 1px solid var(--beige-dark) !important;
  box-shadow: 0 20px 56px rgba(13,13,13,.12) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  overflow: hidden !important;
  z-index: 2 !important;
}
.wp-block-group.approche-img-float .wp-block-image {
  width: 100% !important;
}
.wp-block-group.approche-img-float .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* --- MOCKUPS --- */
.wp-block-group.mockups-section,
.wp-block-group.mockups-section.is-layout-flow {
  background: var(--white) !important;
  display: block !important;
}
.wp-block-group.mockups-grid,
.wp-block-group.mockups-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(12, 1fr) !important;
  grid-template-rows: auto auto !important;
  gap: 16px !important;
}
.wp-block-group.mockup-item,
.wp-block-group.mockup-item.is-layout-flow {
  background: var(--beige-dark) !important;
  border-radius: 12px !important;
  display: block !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  overflow: hidden !important;
  position: relative !important;
  padding: 16px !important;
}
.wp-block-group.mockup-item .wp-block-image {
  width: 100% !important;
}
.wp-block-group.mockup-item .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 8px !important;
}
.wp-block-group.mockup-item:nth-child(1) {
  grid-column: span 7 !important;
}
.wp-block-group.mockup-item:nth-child(2) {
  grid-column: span 5 !important;
}
.wp-block-group.mockup-item:nth-child(3) {
  grid-column: span 4 !important;
}
.wp-block-group.mockup-item:nth-child(4) {
  grid-column: span 3 !important;
}
p.mockup-item-label {
  position: absolute !important;
  bottom: 12px !important;
  left: 12px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  background: rgba(13,13,13,.06) !important;
  padding: 4px 8px !important;
  border-radius: 4px !important;
  z-index: 2 !important;
}

/* --- ALTERNANCE --- */
.wp-block-group.alternance-section,
.wp-block-group.alternance-section.is-layout-flow {
  background: var(--white) !important;
  padding-top: 0 !important;
  display: block !important;
}
.wp-block-group.alternance-block,
.wp-block-group.alternance-block.is-layout-flow {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
  margin-bottom: 2px !important;
}
.wp-block-group.alternance-block:last-child {
  margin-bottom: 0 !important;
}
.wp-block-group.alternance-block.reverse,
.wp-block-group.alternance-block.reverse.is-layout-flow {
  direction: rtl !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
}
.wp-block-group.alternance-block.reverse > * {
  direction: ltr !important;
}
.wp-block-group.alternance-content,
.wp-block-group.alternance-content.is-layout-flow {
  padding: 80px 64px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  background: var(--beige) !important;
}
.wp-block-group.alternance-block.reverse .wp-block-group.alternance-content,
.wp-block-group.alternance-block.reverse .wp-block-group.alternance-content.is-layout-flow {
  background: var(--black) !important;
}
p.alternance-step {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
p.alternance-step::before {
  content: '' !important;
  display: inline-block !important;
  width: 16px !important;
  height: 1px !important;
  background: var(--red) !important;
}
.wp-block-group.alternance-block.reverse p.alternance-step {
  color: rgba(255,255,255,.2) !important;
}
h2.alternance-title,
.wp-block-heading.alternance-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(22px, 2.5vw, 32px) !important;
  letter-spacing: -.02em !important;
  line-height: 1.2 !important;
  color: var(--black) !important;
  margin-bottom: 16px !important;
}
.wp-block-group.alternance-block.reverse h2.alternance-title,
.wp-block-group.alternance-block.reverse .wp-block-heading.alternance-title {
  color: var(--white) !important;
}
p.alternance-text {
  font-size: 15px !important;
  line-height: 1.75 !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
}
.wp-block-group.alternance-block.reverse p.alternance-text {
  color: rgba(255,255,255,.5) !important;
}
.wp-block-group.alternance-image,
.wp-block-group.alternance-image.is-layout-flow {
  background: var(--beige-dark) !important;
  min-height: 400px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  overflow: hidden !important;
}
.wp-block-group.alternance-image .wp-block-image {
  width: 100% !important;
}
.wp-block-group.alternance-image .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* --- TECH --- */
.wp-block-group.tech-section,
.wp-block-group.tech-section.is-layout-flow {
  background: var(--beige) !important;
  display: block !important;
}
.wp-block-group.tech-inner,
.wp-block-group.tech-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 1fr 2fr !important;
  gap: 80px !important;
  align-items: start !important;
}
.wp-block-group.tech-title-col,
.wp-block-group.tech-title-col.is-layout-flow {
  display: block !important;
}
.wp-block-group.tech-title-col p {
  font-size: 15px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
}
.wp-block-group.tech-categories,
.wp-block-group.tech-categories.is-layout-flow {
  display: flex !important;
  flex-direction: column !important;
  gap: 32px !important;
}
p.tech-category-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  margin-bottom: 12px !important;
}
p.tech-pills {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
p.tech-pills mark.tech-pill {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 8px 16px !important;
  border-radius: 100px !important;
  background: var(--white) !important;
  border: 1.5px solid var(--beige-dark) !important;
  color: var(--black) !important;
  letter-spacing: .02em !important;
  transition: all .2s !important;
  display: inline-flex !important;
}
p.tech-pills mark.tech-pill:hover {
  border-color: var(--red) !important;
  color: var(--red) !important;
}
p.tech-pills mark.tech-pill.highlight {
  background: var(--black) !important;
  border-color: var(--black) !important;
  color: var(--white) !important;
}

/* --- TESTIMONIAL --- */
.wp-block-group.testimonial-section,
.wp-block-group.testimonial-section.is-layout-flow {
  background: var(--black) !important;
  padding: 100px 48px !important;
  display: block !important;
}
.wp-block-group.testimonial-inner,
.wp-block-group.testimonial-inner.is-layout-flow {
  max-width: 900px !important;
  margin: 0 auto !important;
  text-align: center !important;
  display: block !important;
}
p.quote-mark {
  font-family: 'Playfair Display', serif !important;
  font-size: 80px !important;
  color: var(--red) !important;
  line-height: .6 !important;
  margin-bottom: 32px !important;
  display: block !important;
  opacity: .6 !important;
}
p.testimonial-text {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: clamp(20px, 2.8vw, 34px) !important;
  font-style: italic !important;
  letter-spacing: -.01em !important;
  line-height: 1.4 !important;
  color: var(--white) !important;
  margin-bottom: 40px !important;
}
.wp-block-group.testimonial-author,
.wp-block-group.testimonial-author.is-layout-flow {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
}
.wp-block-group.testimonial-avatar,
.wp-block-group.testimonial-avatar.is-layout-flow {
  display: none !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: var(--red) !important;
  flex-shrink: 0 !important;
  overflow: hidden !important;
}
.wp-block-group.testimonial-avatar .wp-block-image,
.wp-block-group.testimonial-avatar .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}
p.testimonial-name {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--white) !important;
}
p.testimonial-role {
  font-size: 13px !important;
  color: rgba(255,255,255,.4) !important;
  font-weight: 300 !important;
}
.wp-block-group.testimonial-divider {
  display: none !important;
}
p.testimonial-logo {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important;
  font-size: 18px !important;
  color: rgba(255,255,255,.25) !important;
  letter-spacing: -.02em !important;
}

/* --- NEXT PROJECTS --- */
.wp-block-group.next-section,
.wp-block-group.next-section.is-layout-flow {
  background: var(--white) !important;
  padding: 80px 48px !important;
  display: block !important;
}
.wp-block-group.next-inner,
.wp-block-group.next-inner.is-layout-flow {
  max-width: 1200px !important;
  margin: 0 auto !important;
  display: block !important;
}
.wp-block-group.next-header,
.wp-block-group.next-header.is-layout-flow {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: space-between !important;
  margin-bottom: 40px !important;
}
.wp-block-group.next-header .wp-block-heading.section-title,
.wp-block-group.next-header h2.section-title {
  margin-bottom: 0 !important;
}
p.next-all-link {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  margin-bottom: 0 !important;
}
p.next-all-link a {
  color: var(--red) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: gap .2s !important;
}
p.next-all-link a:hover {
  gap: 10px !important;
}
.wp-block-group.next-grid,
.wp-block-group.next-grid.is-layout-flow {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
}
.wp-block-group.proj-next-card,
.wp-block-group.proj-next-card.is-layout-flow {
  border-radius: 12px !important;
  overflow: hidden !important;
  background: var(--beige) !important;
  display: flex !important;
  flex-direction: column !important;
  transition: transform .25s, box-shadow .25s !important;
  text-decoration: none !important;
  color: inherit !important;
}
.wp-block-group.proj-next-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 20px 56px rgba(13,13,13,.09) !important;
}
.wp-block-group.proj-next-card-image,
.wp-block-group.proj-next-card-image.is-layout-flow {
  height: 200px !important;
  background: var(--beige-dark) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: var(--gray-light) !important;
  position: relative !important;
  overflow: hidden !important;
}
.wp-block-group.proj-next-card-image .wp-block-image,
.wp-block-group.proj-next-card-image .wp-block-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  position: absolute !important;
  inset: 0 !important;
}
p.proj-next-card-tag {
  position: absolute !important;
  top: 12px !important;
  left: 12px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  background: rgba(247,42,33,.1) !important;
  padding: 4px 10px !important;
  border-radius: 100px !important;
  z-index: 2 !important;
}
.wp-block-group.proj-next-card-content,
.wp-block-group.proj-next-card-content.is-layout-flow {
  padding: 24px !important;
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
}
p.proj-next-card-client {
  font-size: 12px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  margin-bottom: 6px !important;
}
h3.proj-next-card-title,
.wp-block-heading.proj-next-card-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 600 !important;
  font-size: 18px !important;
  letter-spacing: -.01em !important;
  line-height: 1.3 !important;
  color: var(--black) !important;
  margin-bottom: 16px !important;
  flex: 1 !important;
}
p.proj-next-card-link {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
p.proj-next-card-link a {
  color: var(--red) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: gap .2s !important;
}
.wp-block-group.proj-next-card:hover p.proj-next-card-link a {
  gap: 10px !important;
}

/* --- CTA (scoped to realisation detail only) --- */
.realisation-detail .wp-block-group.cta-section {
  background: var(--beige) !important;
  padding: var(--section-pad-y-desktop) var(--section-pad-x-desktop) !important;
  text-align: center !important;
  display: block !important;
}
.realisation-detail .wp-block-group.cta-inner,
.realisation-detail .wp-block-group.cta-inner.is-layout-flow {
  max-width: 600px !important;
  margin: 0 auto !important;
  display: block !important;
}
p.cta-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .15em !important;
  text-transform: uppercase !important;
  color: var(--red) !important;
  margin-bottom: 16px !important;
  display: block !important;
}
h2.cta-title,
.wp-block-heading.cta-title {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: clamp(28px, 4vw, 48px) !important;
  letter-spacing: -.02em !important;
  line-height: 1.15 !important;
  color: var(--black) !important;
  margin-bottom: 16px !important;
}
h2.cta-title em,
.wp-block-heading.cta-title em {
  font-style: italic !important;
  color: var(--red) !important;
}
p.cta-text {
  font-size: 16px !important;
  color: var(--gray) !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
  margin-bottom: 32px !important;
}
.wp-block-group.cta-inner .wp-block-buttons {
  justify-content: center !important;
}
.wp-block-group.cta-inner .wp-block-button .wp-block-button__link {
  background: var(--red) !important;
  color: white !important;
  padding: 16px 36px !important;
  border-radius: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  border: none !important;
  cursor: pointer !important;
  transition: transform .2s, box-shadow .2s !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.wp-block-group.cta-inner .wp-block-button .wp-block-button__link:hover {
  background: var(--black) !important;
  color: white !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ===========================
   GRID FIX — Override WordPress .is-layout-flow max-width constraints
   that break CSS grid and flex layouts
   =========================== */

/* --- Top-level wrapper --- */
.wp-block-group.realisation-detail.is-layout-flow > *,
.wp-block-group.realisation-detail > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Section containers --- */
.realisation-detail .wp-block-group.section-pad.is-layout-flow > *,
.realisation-detail .wp-block-group.section-inner.is-layout-flow > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Hero inner (grid 2 cols) --- */
.wp-block-group.hero-inner.is-layout-flow > *,
.wp-block-group.hero-inner > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  text-align: left !important;
}

/* --- Hero meta grid (grid 2x2) --- */
.wp-block-group.hero-meta-grid.is-layout-flow > *,
.wp-block-group.hero-meta-grid > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Hero mockup wrap (positioned children) --- */
.wp-block-group.hero-mockup-wrap.is-layout-flow > *,
.wp-block-group.hero-mockup-wrap > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- KPI inner (grid 4 cols) --- */
.wp-block-group.kpi-inner.is-layout-flow > *,
.wp-block-group.kpi-inner > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Context grid (grid 1.2fr 1fr) --- */
.wp-block-group.context-grid.is-layout-flow > *,
.wp-block-group.context-grid > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Approche grid (grid 2 cols) --- */
.wp-block-group.approche-grid.is-layout-flow > *,
.wp-block-group.approche-grid > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Mockups grid (grid 12 cols) --- */
.wp-block-group.mockups-grid.is-layout-flow > *,
.wp-block-group.mockups-grid > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Alternance block (grid 2 cols) --- */
.wp-block-group.alternance-block.is-layout-flow > *,
.wp-block-group.alternance-block > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Tech inner (grid 1fr 2fr) --- */
.wp-block-group.tech-inner.is-layout-flow > *,
.wp-block-group.tech-inner > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Testimonial author (flex row) --- */
.wp-block-group.testimonial-author.is-layout-flow > *,
.wp-block-group.testimonial-author > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Next header (flex row) --- */
.wp-block-group.next-header.is-layout-flow > *,
.wp-block-group.next-header > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* --- Next grid (grid 3 cols) — scoped --- */
.realisation-detail .wp-block-group.next-grid.is-layout-flow > *,
.realisation-detail .wp-block-group.next-grid > * {
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* === REALISATION DETAIL — FIXES === */
/* ===========================
   REALISATION DETAIL — WordPress Corrective Fixes
   Appended after style.css + gridfix.css
   =========================== */

/* =============================================
   1. CONTEXT GRID — Force proportions in WP
   ============================================= */
.wp-block-group.context-grid,

/* Ensure context children don't have WordPress max-width constraints */
.wp-block-group.context-grid > .wp-block-group,
.wp-block-group.context-grid.is-layout-flow > .wp-block-group {
  max-width: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* =============================================
   2. CONTEXT TEXT — Paragraph styles override
   ============================================= */
.wp-block-group.context-text p,
.wp-block-group.context-text.is-layout-flow p {
  font-size: 17px !important;
  line-height: 1.8 !important;
  color: #4A4845 !important;
  font-weight: 300 !important;
  margin-bottom: 20px !important;
}
.wp-block-group.context-text p:last-child,
.wp-block-group.context-text.is-layout-flow p:last-child {
  margin-bottom: 0 !important;
}

/* =============================================
   3. INSIGHT CARDS — Red left border + styling
   ============================================= */
.wp-block-group.insight-card,

/* =============================================
   4. APPROCHE — Grid, visual overflow fix
   ============================================= */
.wp-block-group.approche-grid,

/* Approche grid children — no WP constraints */
.wp-block-group.approche-grid > .wp-block-group,
.wp-block-group.approche-grid.is-layout-flow > .wp-block-group {
  max-width: none !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

/* Approche visual container */
.wp-block-group.approche-visual,

/* Main image container */
.wp-block-group.approche-img-main,
.wp-block-group.approche-img-main.is-layout-flow {
  position: relative !important;
  background: var(--beige-dark) !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  display: block !important;
}

/* Floating image */
.wp-block-group.approche-img-float,
.wp-block-group.approche-img-float.is-layout-flow {
  position: absolute !important;
  bottom: -20px !important;
  right: -20px !important;
  width: 200px !important;
  background: var(--white) !important;
  border-radius: 12px !important;
  border: 1px solid var(--beige-dark) !important;
  box-shadow: 0 20px 56px rgba(13,13,13,.12) !important;
  overflow: hidden !important;
  display: block !important;
  z-index: 2 !important;
}

/* Images inside approche containers — show full */
.wp-block-group.approche-img-main .wp-block-image,
.wp-block-group.approche-img-float .wp-block-image,
.wp-block-group.approche-img-main .wp-block-image img,
.wp-block-group.approche-img-float .wp-block-image img,

/* =============================================
   5. STEP ITEMS — Active/inactive states
   ============================================= */
p.step-num {
  color: var(--gray-light) !important;
  transition: color .25s !important;
}

p.step-content-text {
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transition: max-height .4s ease, opacity .3s !important;
}

/* =============================================
   6. ALTERNANCE IMAGE — Show full images
   ============================================= */
.wp-block-group.alternance-image,
.wp-block-group.alternance-image.is-layout-flow {
  position: relative !important;
  overflow: hidden !important;
}

/* =============================================
   7. MOCKUP ITEMS — Show full images
   ============================================= */
.wp-block-group.mockup-item .wp-block-image img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
}

/* =============================================
   8. GENERAL WP OVERRIDES — Prevent layout breaks
   ============================================= */
/* WordPress .is-layout-flow adds max-width and auto margins to children;
   override for all grid/flex containers used on this page */
.wp-block-group.context-aside > .wp-block-group,
.wp-block-group.context-aside.is-layout-flow > .wp-block-group,
.wp-block-group.approche-steps > .wp-block-group,
.wp-block-group.approche-steps.is-layout-flow > .wp-block-group,
.wp-block-group.step-item > .wp-block-group,
.wp-block-group.step-item.is-layout-flow > .wp-block-group,
.wp-block-group.tech-categories > .wp-block-group,
.wp-block-group.tech-categories.is-layout-flow > .wp-block-group,
.wp-block-group.proj-next-card > .wp-block-group,
.wp-block-group.proj-next-card.is-layout-flow > .wp-block-group {
  max-width: none !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Step item step-content wrapper */
.wp-block-group.step-content,
.wp-block-group.step-content.is-layout-flow {
  display: block !important;
  flex: 1 !important;
  min-width: 0 !important;
}

/* =============================================
   RESPONSIVE — Realisation-detail Tablet (max-width: 1024px)
   Scoped strictly to .realisation-detail to avoid leaks to other pages.
   Section paddings are handled by the main 1024/768/480 breakpoints.
   ============================================= */
@media (max-width: 1024px) {

  /* --- Realisation hero: stack to single column --- */
  .realisation-detail .wp-block-group.hero-inner,
  .realisation-detail .wp-block-group.hero-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
    padding: 60px 24px 0 !important;
  }
  .realisation-detail .wp-block-group.hero-left,
  .realisation-detail .wp-block-group.hero-left.is-layout-flow {
    padding-bottom: 0 !important;
  }
  .realisation-detail .wp-block-group.hero-right {
    display: none !important;
  }

  /* --- KPI inner layout: 2 cols --- */
  .realisation-detail .wp-block-group.kpi-inner,
  .realisation-detail .wp-block-group.kpi-inner.is-layout-flow {
    grid-template-columns: 1fr 1fr !important;
  }
  .realisation-detail .wp-block-group.kpi-item,
  .realisation-detail .wp-block-group.kpi-item.is-layout-flow {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding: 24px 16px !important;
  }

  /* --- Context: stack --- */
  .realisation-detail .wp-block-group.context-grid,
  .realisation-detail .wp-block-group.context-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .realisation-detail .wp-block-group.context-aside,
  .realisation-detail .wp-block-group.context-aside.is-layout-flow {
    position: static !important;
  }

  /* --- Approche: stack --- */
  .realisation-detail .wp-block-group.approche-grid,
  .realisation-detail .wp-block-group.approche-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }
  .realisation-detail .wp-block-group.approche-visual,
  .realisation-detail .wp-block-group.approche-visual.is-layout-flow {
    min-height: 200px !important;
  }

  /* --- Mockups: simpler grid --- */
  .realisation-detail .wp-block-group.mockups-grid,
  .realisation-detail .wp-block-group.mockups-grid.is-layout-flow {
    grid-template-columns: 1fr 1fr !important;
  }
  .realisation-detail .wp-block-group.mockup-item:nth-child(1),
  .realisation-detail .wp-block-group.mockup-item:nth-child(2),
  .realisation-detail .wp-block-group.mockup-item:nth-child(3),
  .realisation-detail .wp-block-group.mockup-item:nth-child(4) {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
    aspect-ratio: 4/3 !important;
  }

  /* --- Alternance: stack --- */
  .realisation-detail .wp-block-group.alternance-block,
  .realisation-detail .wp-block-group.alternance-block.is-layout-flow {
    grid-template-columns: 1fr !important;
  }
  .realisation-detail .wp-block-group.alternance-block.reverse {
    direction: ltr !important;
  }
  .realisation-detail .wp-block-group.alternance-image,
  .realisation-detail .wp-block-group.alternance-image.is-layout-flow {
    min-height: 280px !important;
  }
  .realisation-detail .wp-block-group.alternance-content,
  .realisation-detail .wp-block-group.alternance-content.is-layout-flow {
    padding: 48px 24px !important;
  }

  /* --- Tech: stack --- */
  .realisation-detail .wp-block-group.tech-inner,
  .realisation-detail .wp-block-group.tech-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* --- Testimonial author --- */
  .realisation-detail .wp-block-group.testimonial-author,
  .realisation-detail .wp-block-group.testimonial-author.is-layout-flow {
    flex-wrap: wrap !important;
    gap: 12px !important;
  }

  /* --- Next projects: 1 col --- */
  .realisation-detail .wp-block-group.next-grid,
  .realisation-detail .wp-block-group.next-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
  }
  .realisation-detail .wp-block-group.next-header,
  .realisation-detail .wp-block-group.next-header.is-layout-flow {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }

  /* --- Visual fullwidth --- */
  .realisation-detail .wp-block-group.visual-fullwidth,
  .realisation-detail .wp-block-group.visual-fullwidth.is-layout-flow {
    height: 320px !important;
  }
}

/* =============================================
   RESPONSIVE — Realisation-detail Mobile (max-width: 480px)
   Scoped strictly to .realisation-detail. Section paddings are
   handled by the main uniform 768/480 blocks.
   ============================================= */
@media (max-width: 480px) {

  /* --- Realisation KPI: single column --- */
  .realisation-detail .wp-block-group.kpi-inner,
  .realisation-detail .wp-block-group.kpi-inner.is-layout-flow {
    grid-template-columns: 1fr !important;
  }

  /* --- Mockups: single column --- */
  .realisation-detail .wp-block-group.mockups-grid,
  .realisation-detail .wp-block-group.mockups-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
  }

  /* --- Title clamp --- */
  .realisation-detail h1.project-title,
  .realisation-detail .wp-block-heading.project-title {
    font-size: clamp(32px, 8vw, 50px) !important;
  }

  /* --- Section titles --- */
  .realisation-detail h2.section-title,
  .realisation-detail .wp-block-heading.section-title {
    font-size: clamp(24px, 6vw, 36px) !important;
  }

  /* --- Hero meta grid: single column --- */
  .realisation-detail .wp-block-group.hero-meta-grid,
  .realisation-detail .wp-block-group.hero-meta-grid.is-layout-flow {
    grid-template-columns: 1fr !important;
  }

  /* --- Approche visual smaller --- */
  .realisation-detail .wp-block-group.approche-visual,
  .realisation-detail .wp-block-group.approche-visual.is-layout-flow {
    min-height: 150px !important;
  }

  /* --- Approche float image --- */
  .realisation-detail .wp-block-group.approche-img-float,
  .realisation-detail .wp-block-group.approche-img-float.is-layout-flow {
    width: 140px !important;
    height: 110px !important;
    bottom: -10px !important;
    right: -10px !important;
  }

  /* --- Visual fullwidth even shorter --- */
  .realisation-detail .wp-block-group.visual-fullwidth,
  .realisation-detail .wp-block-group.visual-fullwidth.is-layout-flow {
    height: 220px !important;
  }

  /* --- Step items tighter --- */
  .realisation-detail .wp-block-group.step-item,
  .realisation-detail .wp-block-group.step-item.is-layout-flow {
    gap: 16px !important;
    padding: 20px 0 !important;
  }

  /* --- Testimonial text smaller --- */
  .realisation-detail p.testimonial-text {
    font-size: clamp(18px, 5vw, 24px) !important;
  }

  /* --- Next card image shorter --- */
  .realisation-detail .wp-block-group.proj-next-card-image,
  .realisation-detail .wp-block-group.proj-next-card-image.is-layout-flow {
    height: 160px !important;
  }

  /* --- Realisation hero inner padding (scoped) --- */
  .realisation-detail .wp-block-group.hero-inner,
  .realisation-detail .wp-block-group.hero-inner.is-layout-flow {
    padding: 48px 16px 0 !important;
  }

  /* --- KPI number clamp --- */
  .realisation-detail .wp-block-group.kpi-item .wp-block-heading,
  .realisation-detail .wp-block-group.kpi-item h3 {
    font-size: clamp(28px, 8vw, 42px) !important;
  }

  /* --- Alternance image shorter --- */
  .realisation-detail .wp-block-group.alternance-image,
  .realisation-detail .wp-block-group.alternance-image.is-layout-flow {
    min-height: 220px !important;
  }
  .realisation-detail .wp-block-group.alternance-content,
  .realisation-detail .wp-block-group.alternance-content.is-layout-flow {
    padding: 32px 16px !important;
  }
}


/* ── Cookie Banner ── */
#hapi-cookie-banner {
  position: fixed !important;
  bottom: 24px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 99999 !important;
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  background: var(--black) !important;
  color: var(--white) !important;
  padding: 16px 28px !important;
  border-radius: 14px !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 14px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.25) !important;
  max-width: calc(100vw - 32px) !important;
}
#hapi-cookie-banner p {
  margin: 0 !important;
  line-height: 1.4 !important;
}
#hapi-cookie-banner a {
  color: var(--red) !important;
  text-decoration: underline !important;
}
#hapi-cookie-accept {
  flex-shrink: 0 !important;
  background: var(--red) !important;
  color: var(--white) !important;
  border: none !important;
  padding: 10px 24px !important;
  border-radius: 8px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
}
#hapi-cookie-accept:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(247,42,33,0.4) !important;
}
@media (max-width: 600px) {
  #hapi-cookie-banner {
    flex-direction: column !important;
    text-align: center !important;
    bottom: 16px !important;
    padding: 14px 20px !important;
    gap: 12px !important;
  }
}

/* Cookie banner clickability fix */
#hapi-cookie-banner,
#hapi-cookie-banner * {
  pointer-events: auto !important;
}
#hapi-cookie-accept {
  position: relative !important;
  z-index: 999999 !important;
}

#hapi-cookie-banner.hapi-cookie-hidden {
  display: none !important;
}

/* ===========================
   POPUP POC FLASH
   =========================== */

/* Overlay */
.poc-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 100000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  opacity: 0 !important;
  transition: opacity .4s ease !important;
  pointer-events: none !important;
}
.poc-overlay.poc-visible {
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: auto !important;
}
.poc-overlay.poc-visible * {
  cursor: auto !important;
}
.poc-overlay.poc-visible a,
.poc-overlay.poc-visible button {
  cursor: pointer !important;
}
.poc-overlay.poc-closing {
  opacity: 0 !important;
  pointer-events: none !important;
}
.poc-overlay-bg {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(13,13,13,.45) !important;
  backdrop-filter: blur(4px) !important;
  -webkit-backdrop-filter: blur(4px) !important;
}

/* Popup container */
.poc-popup {
  position: relative !important;
  z-index: 1 !important;
  background: #FAFAF9 !important;
  border-radius: 24px !important;
  width: 100% !important;
  max-width: 840px !important;
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  overflow: hidden !important;
  box-shadow: 0 40px 100px rgba(13,13,13,.22), 0 0 0 1px rgba(13,13,13,.05) !important;
  animation: pocPopIn .5s cubic-bezier(.22,1,.36,1) both !important;
}
@keyframes pocPopIn {
  from { transform: scale(.93) translateY(16px); opacity: 0; }
  to   { transform: scale(1) translateY(0); opacity: 1; }
}
.poc-closing .poc-popup {
  animation: pocPopOut .35s ease both !important;
}
@keyframes pocPopOut {
  to { transform: scale(.95) translateY(10px); opacity: 0; }
}

/* Left — WebGL canvas */
.poc-left {
  position: relative !important;
  background: #0D0D0D !important;
  overflow: hidden !important;
  min-height: 520px !important;
}
.poc-left::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") !important;
  opacity: .04 !important;
  pointer-events: none !important;
  z-index: 2 !important;
}
#pocGl {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  position: absolute !important;
  inset: 0 !important;
}

/* Badge */
.poc-badge {
  position: absolute !important;
  top: 16px !important;
  left: 16px !important;
  z-index: 4 !important;
  background: rgba(232,69,42,.12) !important;
  border: 1px solid rgba(232,69,42,.25) !important;
  border-radius: 100px !important;
  padding: 5px 12px !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .1em !important;
  text-transform: uppercase !important;
  color: rgba(232,69,42,.9) !important;
}
.poc-badge-pulse {
  width: 5px !important;
  height: 5px !important;
  border-radius: 50% !important;
  background: #E8452A !important;
  animation: pocBlink 1.6s ease-in-out infinite !important;
}
@keyframes pocBlink {
  0%, 100% { opacity: 1; }
  50% { opacity: .2; }
}

/* Timeline */
.poc-timeline {
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 3 !important;
  padding: 20px !important;
  background: linear-gradient(to top, rgba(13,13,13,.9) 0%, transparent 100%) !important;
}
.poc-tl-label {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.35) !important;
  margin-bottom: 10px !important;
}
.poc-tl-steps {
  display: flex !important;
  gap: 6px !important;
  align-items: center !important;
}
.poc-tl-step {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 5px !important;
  flex: 1 !important;
}
.poc-tl-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.15) !important;
  border: 1px solid rgba(255,255,255,.2) !important;
  transition: all .4s !important;
  position: relative !important;
}
.poc-tl-dot.done {
  background: #E8452A !important;
  border-color: #E8452A !important;
  box-shadow: 0 0 8px rgba(232,69,42,.5) !important;
}
.poc-tl-dot.active {
  background: transparent !important;
  border-color: #E8452A !important;
  box-shadow: 0 0 0 3px rgba(232,69,42,.2) !important;
}
.poc-tl-dot.active::after {
  content: '' !important;
  position: absolute !important;
  inset: 2px !important;
  border-radius: 50% !important;
  background: #E8452A !important;
  animation: pocDotPulse 1s ease-in-out infinite !important;
}
@keyframes pocDotPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: .5; transform: scale(.6); }
}
.poc-tl-line {
  flex: 1 !important;
  height: 1px !important;
  background: rgba(255,255,255,.1) !important;
  position: relative !important;
  overflow: hidden !important;
}
.poc-tl-line-fill {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  height: 100% !important;
  background: #E8452A !important;
  width: 0 !important;
  transition: width 1s ease !important;
}
.poc-tl-name {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.3) !important;
  white-space: nowrap !important;
  transition: color .4s !important;
}
.poc-tl-step.done .poc-tl-name,
.poc-tl-step.active .poc-tl-name {
  color: rgba(232,69,42,.7) !important;
}

/* Right — Text */
.poc-right {
  padding: 44px 40px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  position: relative !important;
  background: #FAFAF9 !important;
}
.poc-right-top {
  flex: 1 !important;
}
.poc-logo {
  margin-bottom: 28px !important;
}
.poc-kicker {
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: #E8452A !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  margin-bottom: 14px !important;
}
.poc-kicker::before {
  content: '' !important;
  width: 16px !important;
  height: 1px !important;
  background: #E8452A !important;
}
.poc-h2 {
  font-family: 'Playfair Display', serif !important;
  font-weight: 700 !important;
  font-size: 28px !important;
  letter-spacing: -.025em !important;
  line-height: 1.15 !important;
  color: #0D0D0D !important;
  margin-bottom: 14px !important;
}
.poc-h2 em {
  font-style: italic !important;
  color: #E8452A !important;
}
.poc-tagline {
  font-size: 14px !important;
  font-weight: 300 !important;
  color: #8A8680 !important;
  line-height: 1.7 !important;
  margin-bottom: 20px !important;
  font-style: italic !important;
  border-left: 2px solid rgba(232,69,42,.25) !important;
  padding-left: 12px !important;
}

/* Proof points */
.poc-proofs {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin-bottom: 28px !important;
}
.poc-proof {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
  padding: 12px 14px !important;
  border-radius: 10px !important;
  background: #F0EDE8 !important;
  border: 1px solid #E8E3DC !important;
  transition: border-color .2s !important;
}
.poc-proof:hover {
  border-color: rgba(232,69,42,.2) !important;
}
.poc-proof-ico {
  width: 28px !important;
  height: 28px !important;
  border-radius: 8px !important;
  background: rgba(232,69,42,.1) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  flex-shrink: 0 !important;
}
.poc-proof-title {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: -.01em !important;
  color: #0D0D0D !important;
  margin-bottom: 1px !important;
}
.poc-proof-sub {
  font-size: 11px !important;
  font-weight: 300 !important;
  color: #8A8680 !important;
  line-height: 1.4 !important;
}

/* CTA */
.poc-cta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  background: #E8452A !important;
  color: white !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 14px 20px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
  cursor: pointer !important;
  transition: all .22s !important;
  text-decoration: none !important;
}
.poc-cta:hover {
  background: #c73520 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 10px 28px rgba(232,69,42,.3) !important;
  color: white !important;
}

/* Close button */
.poc-close-btn {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 10 !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: #F0EDE8 !important;
  border: none !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  color: #8A8680 !important;
  transition: all .2s !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.poc-close-btn:hover {
  background: #0D0D0D !important;
  color: white !important;
}
