/* ═══════════════════════════════════════════════════════════════════
   GAME POINT — DESIGN SYSTEM V2 (Awwwards-grade refinement)
   Direction artistique :
   - Discipline typographique : 1 display (Bulevar Poster) + 1 sans (GeneralSans/Barlow)
   - Palette stricte : ink #0A0A0A · paper #F7F5EF · accent #FF5E00 · hairline rgba(10,10,10,.10)
   - Grille fluide 12 colonnes, clamp() partout pour scale propre
   - Rythme vertical éditorial : section padding clamp(140px → 240px)
   - Animations sobres : reveal-up + parallax léger + magnetic CTAs
   - Pas d'ombres lourdes, pas de cartes superflues, pas de gradients gratuits
   ═══════════════════════════════════════════════════════════════════ */

/* ─────────────── TOKENS ─────────────── */
:root {
  --ink:        #0A0A0A;
  --ink-72:     rgba(10, 10, 10, 0.72);
  --ink-56:     rgba(10, 10, 10, 0.56);
  --ink-40:     rgba(10, 10, 10, 0.40);
  --ink-24:     rgba(10, 10, 10, 0.24);
  --ink-12:     rgba(10, 10, 10, 0.12);
  --ink-06:     rgba(10, 10, 10, 0.06);
  --paper:      #F7F5EF;        /* warm off-white — moins clinique que #FFF */
  --paper-pure: #FFFFFF;
  --accent:     #FF5E00;
  --accent-deep:#D34F00;
  --hairline:   rgba(10, 10, 10, 0.10);

  /* Type scale — basée sur ratio 1.333 (perfect fourth) */
  --t-eyebrow:  11px;
  --t-micro:    13px;
  --t-body:     clamp(15px, 1.05vw, 17px);
  --t-lede:     clamp(18px, 1.4vw, 22px);
  --t-h4:       clamp(20px, 1.6vw, 26px);
  --t-h3:       clamp(28px, 2.4vw, 40px);
  --t-h2:       clamp(40px, 4.2vw, 72px);
  --t-h1:       clamp(64px, 8.6vw, 152px);
  --t-mega:     clamp(72px, 13vw, 240px);

  /* Spacing — basé sur 4px */
  --sp-4:  4px;
  --sp-8:  8px;
  --sp-12: 12px;
  --sp-16: 16px;
  --sp-24: 24px;
  --sp-32: 32px;
  --sp-48: 48px;
  --sp-64: 64px;
  --sp-96: clamp(64px, 7vw, 96px);
  --sp-128: clamp(80px, 9vw, 128px);
  --sp-section: clamp(120px, 14vw, 220px);   /* padding vertical de section */

  /* Grille */
  --grid-max: 1480px;
  --grid-pad: clamp(20px, 4vw, 80px);

  /* Easing premium */
  --ease-out:    cubic-bezier(.16, 1, .3, 1);
  --ease-inout:  cubic-bezier(.83, 0, .17, 1);
  --ease-soft:   cubic-bezier(.22, 1, .36, 1);
}

/* ─────────────── BASE TYPOGRAPHIC RESET ─────────────── */
main[data-barba-namespace="home"] body,
main[data-barba-namespace="home"] {
  font-family: 'GeneralSans', 'Barlow', system-ui, sans-serif;
  color: var(--ink);
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Helper grid container que toutes les nouvelles sections utilisent */
.gpv2-wrap {
  max-width: var(--grid-max);
  margin: 0 auto;
  padding: 0 var(--grid-pad);
  position: relative;
}

/* ═══════════════════════════════════════════════════════════════════
   HERO — Refonte sobre, typo dominante
   ═══════════════════════════════════════════════════════════════════ */
.gp-light-hero {
  padding: clamp(110px, 13vw, 180px) 0 var(--sp-section) !important;
  background-color: var(--paper) !important;
  background-image: none !important;
  position: relative;
  overflow: hidden;
}
.gp-light-hero::before {
  /* Texture papier discrète — remplace l'image architecturale lourde */
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 18% 12%, rgba(255, 94, 0, 0.04) 0, transparent 35%),
    radial-gradient(circle at 92% 88%, rgba(10, 10, 10, 0.025) 0, transparent 40%);
  pointer-events: none;
  z-index: 0;
}
.gp-light-hero .gp-container {
  max-width: var(--grid-max);
  padding: 0 var(--grid-pad);
  position: relative;
  z-index: 2;
}
.gp-light-hero__grid {
  display: grid !important;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr) !important;
  gap: var(--sp-64) !important;
  align-items: end !important;
  min-height: clamp(560px, 70vh, 820px);
}

/* On efface la barre orange + le padding gauche template */
.gp-light-hero__text {
  padding-left: 0 !important;
}
.gp-light-hero__text::before {
  display: none !important;
}

.gp-light-hero__social {
  margin: 0 0 var(--sp-48) !important;
  gap: var(--sp-24) !important;
  display: flex !important;
  align-items: center;
}
.gp-light-hero__social::before {
  content: '';
  display: inline-block;
  width: 48px;
  height: 1px;
  background: var(--ink-40);
  margin-right: var(--sp-12);
}
.gp-light-hero__social a {
  width: 22px !important;
  height: 22px !important;
  opacity: 0.55 !important;
  transition: opacity .4s var(--ease-out), transform .4s var(--ease-out) !important;
}
.gp-light-hero__social a:hover {
  opacity: 1 !important;
  transform: translateY(-2px) !important;
}

.gp-light-hero__title {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-h1) !important;
  line-height: 0.84 !important;
  letter-spacing: -0.014em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 0 var(--sp-32) !important;
}
.gp-light-hero__title em {
  color: var(--accent);
  font-style: normal;
}
.gp-light-hero__title span {
  display: block !important;
  overflow: hidden;
}
.gp-light-hero__title .gpv2-word {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  transition:
    transform 1s var(--ease-out),
    opacity 1s var(--ease-out);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.gpv2-hero-loaded .gp-light-hero__title .gpv2-word {
  transform: translateY(0);
  opacity: 1;
}

.gp-light-hero__lede {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 400 !important;
  font-size: var(--t-lede) !important;
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--ink-72) !important;
  max-width: 460px !important;
  margin: 0 0 var(--sp-48) !important;
}

.gp-light-hero__ctas {
  display: flex !important;
  flex-wrap: wrap;
  gap: var(--sp-16) !important;
  align-items: center;
}

/* CTA primaire (filled accent) — flat, ronde, mais discrète */
.gp-light-hero__btn--solid {
  background: var(--ink) !important;
  border-color: var(--ink) !important;
  color: var(--paper-pure) !important;
  padding: 18px 28px !important;
  border-radius: 999px !important;
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
  transition: background .35s var(--ease-out), transform .35s var(--ease-out) !important;
}
.gp-light-hero__btn--solid:hover {
  background: var(--accent) !important;
  border-color: var(--accent) !important;
  transform: translateY(-2px) !important;
  box-shadow: none !important;
}

.gp-light-hero__btn--outline {
  background: transparent !important;
  border: 1px solid var(--ink) !important;
  color: var(--ink) !important;
  padding: 18px 28px !important;
  border-radius: 999px !important;
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  transition: background .35s var(--ease-out), color .35s var(--ease-out) !important;
}
.gp-light-hero__btn--outline:hover {
  background: var(--ink) !important;
  color: var(--paper-pure) !important;
  transform: translateY(-2px) !important;
}

/* Visual hero — image en colonne droite, minimaliste */
.gp-light-hero__visual {
  position: relative;
  max-width: none !important;
  width: 100% !important;
  aspect-ratio: auto !important;
  align-self: stretch;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.gp-light-hero__dots {
  display: none !important;   /* on retire le pattern de points : trop chargé */
}
.gp-light-hero__photo {
  width: 100% !important;
  aspect-ratio: auto !important;
  overflow: visible !important;
  background: transparent !important;
}
.gp-light-hero__photo img {
  width: 100% !important;
  height: auto !important;
  max-height: clamp(520px, 75vh, 880px) !important;
  object-fit: contain !important;
  object-position: bottom center !important;
  filter: contrast(1.02);
  /* léger parallax assigné par JS */
  will-change: transform;
}

/* Scroll indicator subtil en bas du hero */
.gp-light-hero__grid::after {
  content: '— scroll';
  position: absolute;
  bottom: calc(var(--sp-section) * -0.5);
  left: 0;
  font-family: 'GeneralSans', 'Barlow', sans-serif;
  font-size: var(--t-micro);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--ink-40);
  display: none;
}

/* ═══════════════════════════════════════════════════════════════════
   3 features cards → version éditoriale (sans cartes flottantes)
   On garde les classes mais on retire les ombres et l'overlap
   ═══════════════════════════════════════════════════════════════════ */
.gp-light-features {
  padding: 0 0 var(--sp-section) !important;
  margin: 0 !important;
  background: var(--paper) !important;
  background-image: none !important;
}
.gp-light-features__grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0 !important;
  border-top: 1px solid var(--hairline);
  margin: 0 var(--grid-pad);
  max-width: var(--grid-max);
  margin-left: auto !important;
  margin-right: auto !important;
}
.gp-light-features__card {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: var(--sp-48) var(--sp-32) !important;
  align-items: flex-start !important;
  gap: var(--sp-24) !important;
  position: relative;
  transition: background .4s var(--ease-out);
}
.gp-light-features__card:not(:last-child) {
  border-right: 1px solid var(--hairline);
}
.gp-light-features__card:hover {
  transform: none !important;
  box-shadow: none !important;
  background: rgba(255, 94, 0, 0.03) !important;
}
.gp-light-features__icon {
  width: 22px !important;
  height: 22px !important;
  margin-top: 0 !important;
}
.gp-light-features__text {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-body) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  line-height: 1.45 !important;
  color: var(--ink) !important;
}

/* ═══════════════════════════════════════════════════════════════════
   PILIERS — version éditoriale stricte
   Grille 12 cols : numéro (2 col) | contenu (8 col)
   ═══════════════════════════════════════════════════════════════════ */
.gp-light-pillars {
  padding: var(--sp-section) 0 !important;
  background: var(--paper) !important;
  background-image: none !important;
}
.gp-light-pillars .gp-container {
  max-width: var(--grid-max);
  padding: 0 var(--grid-pad);
}
.gp-light-pillars__item {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 10fr);
  gap: var(--sp-48);
  padding: var(--sp-96) 0 !important;
  border-top: 1px solid var(--hairline);
  align-items: start;
}
.gp-light-pillars__item:last-child {
  border-bottom: 1px solid var(--hairline);
}
.gp-light-pillars__head {
  display: contents !important;
}
.gp-light-pillars__num {
  font-family: 'Bulevar', sans-serif !important;
  font-weight: 800;
  font-size: clamp(48px, 6vw, 96px) !important;
  letter-spacing: -0.02em !important;
  color: var(--accent) !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0;
  line-height: 0.9;
  align-self: start;
  grid-column: 1;
}
.gp-light-pillars__emoji {
  display: none !important;   /* on retire les emoji : trop "social media" */
}
.gp-light-pillars__title {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-h2) !important;
  line-height: 0.92 !important;
  letter-spacing: -0.012em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 0 var(--sp-32) !important;
  grid-column: 2;
}
.gp-light-pillars__lead {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 400 !important;
  font-size: var(--t-lede) !important;
  line-height: 1.45 !important;
  color: var(--ink-72) !important;
  max-width: 760px !important;
  margin: 0 0 var(--sp-32) !important;
  grid-column: 2;
}
.gp-light-pillars__list {
  grid-column: 2;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
  gap: var(--sp-16) var(--sp-48) !important;
  margin: 0 0 var(--sp-24) !important;
  max-width: 760px !important;
}
.gp-light-pillars__list li {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-body) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  color: var(--ink) !important;
  padding-left: 20px !important;
  line-height: 1.45 !important;
}
.gp-light-pillars__list li::before {
  width: 6px !important;
  height: 6px !important;
  background: var(--accent) !important;
  transform: none !important;
  border-radius: 0 !important;
  top: 0.6em !important;
}
.gp-light-pillars__tagline {
  grid-column: 2;
  font-family: 'GeneralSans', sans-serif !important;
  font-size: var(--t-body) !important;
  color: var(--ink-56) !important;
  font-style: normal !important;
  border-top: none !important;
  padding-top: 0 !important;
  margin: 0 !important;
}
.gp-light-pillars__divider {
  display: none !important;   /* la border-top des items joue ce rôle, plus propre */
}
.gp-light-pillars__triplet span {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-size: clamp(20px, 1.8vw, 28px) !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  border-bottom: 2px solid var(--accent) !important;
  padding-bottom: 2px !important;
}

/* ═══════════════════════════════════════════════════════════════════
   SERVICES — Galerie 6 mini-vidéos, plus grandes et plus respirées
   ═══════════════════════════════════════════════════════════════════ */
.gp-light-services {
  padding: var(--sp-section) 0 !important;
  background: var(--paper) !important;
  background-image: none !important;
}
.gp-light-services .gp-container {
  max-width: var(--grid-max);
  padding: 0 var(--grid-pad);
}
.gp-light-services__head {
  text-align: left !important;
  margin: 0 0 clamp(48px, 6vw, 80px) !important;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 10fr);
  gap: var(--sp-48);
  align-items: end;
  padding-bottom: var(--sp-48);
  border-bottom: 1px solid var(--hairline);
}
.gp-light-services__eyebrow {
  grid-column: 1;
  font-family: 'GeneralSans', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-micro) !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--ink-56) !important;
  margin: 0 !important;
}
.gp-light-services__eyebrow::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--ink-40);
  margin-right: 12px;
  vertical-align: middle;
}
.gp-light-services__title {
  grid-column: 2;
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-h1) !important;
  line-height: 0.84 !important;
  letter-spacing: -0.014em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 !important;
}
.gp-light-services__title em {
  color: var(--accent);
}
.gp-light-services__grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: var(--sp-24) !important;
}
.gp-light-services__card {
  background: var(--ink) !important;
  border-radius: 4px !important;
  aspect-ratio: 3 / 4 !important;
  box-shadow: none !important;
  overflow: hidden;
  position: relative;
  transition: transform .6s var(--ease-out) !important;
}
.gp-light-services__card:hover {
  transform: translateY(-4px) !important;
  box-shadow: none !important;
}
.gp-light-services__overlay {
  background: linear-gradient(180deg, rgba(10,10,10,0) 30%, rgba(10,10,10,0.85) 100%) !important;
}
.gp-light-services__info {
  padding: var(--sp-32) !important;
}
.gp-light-services__num {
  font-family: 'GeneralSans', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-micro) !important;
  letter-spacing: 0.3em !important;
  color: var(--paper-pure) !important;
  opacity: 0.6;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 0 var(--sp-12) !important;
}
.gp-light-services__name {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-h3) !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}

/* ═══════════════════════════════════════════════════════════════════
   POURQUOI (dans SELECTED CASES slot) — Mise en page éditoriale
   ═══════════════════════════════════════════════════════════════════ */
.section-home-work-intro {
  padding: var(--sp-section) 0 !important;
  background: var(--paper) !important;
  background-image: none !important;
  color: var(--ink) !important;
}
.section-home-work-intro .container {
  max-width: var(--grid-max);
  margin: 0 auto;
  padding: 0 var(--grid-pad);
}
.section-home-work-intro .row.split {
  display: grid !important;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--sp-64);
  align-items: end;
}
.section-home-work-intro .row.split:nth-child(1) {
  margin-bottom: var(--sp-48);
}
.section-home-work-intro .row.split:nth-child(2) {
  align-items: start;
}
.section-home-work-intro .row.split:nth-child(2) > .col {
  grid-column: 1;
}
.section-home-work-intro .row.split:nth-child(1) > .col {
  grid-column: 2;
}
.section-home-work-intro h3 {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-mega) !important;
  line-height: 0.82 !important;
  letter-spacing: -0.014em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  margin: 0 !important;
  text-align: right;
}
.section-home-work-intro p {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-size: var(--t-lede) !important;
  line-height: 1.5 !important;
  color: var(--ink-72) !important;
  max-width: 520px;
  margin: 0 0 var(--sp-24) !important;
}
.section-home-work-intro .gp-pourquoi-note {
  font-size: var(--t-body) !important;
  color: var(--ink-56) !important;
  border-top: 1px solid var(--hairline);
  padding-top: var(--sp-16);
  margin-top: var(--sp-32) !important;
  margin-bottom: var(--sp-32) !important;
  opacity: 1 !important;
}
.section-home-work-intro .gp-pourquoi-note a {
  color: var(--ink) !important;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.section-home-work-intro .gp-pourquoi-note a:hover { color: var(--accent) !important; }

.section-home-work-intro .btn.btn-primary {
  margin-top: var(--sp-24);
}

/* ═══════════════════════════════════════════════════════════════════
   PARTENAIRES — Marquee minimaliste, sans cartes
   ═══════════════════════════════════════════════════════════════════ */
.gp-light-partners {
  padding: var(--sp-section) 0 !important;
  background: var(--paper) !important;
  background-image: none !important;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.gp-light-partners__head {
  text-align: left !important;
  margin: 0 0 var(--sp-64) !important;
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 10fr);
  gap: var(--sp-48);
  align-items: end;
}
.gp-light-partners__eyebrow {
  grid-column: 1;
  font-family: 'GeneralSans', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-micro) !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase !important;
  color: var(--ink-56) !important;
  margin: 0 !important;
}
.gp-light-partners__eyebrow::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background: var(--ink-40);
  margin-right: 12px;
  vertical-align: middle;
}
.gp-light-partners__title {
  grid-column: 2;
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: var(--t-h1) !important;
  line-height: 0.84 !important;
  letter-spacing: -0.014em !important;
  text-transform: uppercase !important;
  margin: 0 !important;
}
.gp-light-partners__title em { color: var(--accent); }

.gp-light-partners__track {
  gap: 0 !important;
  padding: 0 !important;
}
.gp-light-partners__group {
  gap: 0 !important;
}
.gp-light-partners__card {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  width: clamp(220px, 22vw, 320px) !important;
  height: clamp(120px, 12vw, 160px) !important;
  border-right: 1px solid var(--hairline);
  padding: var(--sp-32) !important;
  filter: none !important;
  opacity: 1 !important;
  transition: background .4s var(--ease-out) !important;
}
.gp-light-partners__card:hover {
  transform: none !important;
  box-shadow: none !important;
  background: var(--ink-06) !important;
}
.gp-light-partners__card::after { display: none !important; }
.gp-light-partners__card img {
  max-height: 48px !important;
  width: auto !important;
  height: auto !important;
  filter: none !important;
  transition: transform .4s var(--ease-out) !important;
}
.gp-light-partners__card:hover img {
  transform: scale(1.04) !important;
}
.gp-light-partners__card--p8 img { max-height: 32px !important; }
.gp-light-partners__card--gestev img { max-height: 56px !important; width: 56px !important; border-radius: 8px !important; }

/* ═══════════════════════════════════════════════════════════════════
   FINAL CTA — Nouvelle section avant le newsletter
   "Pleine page, accent fort" — fait office de clôture éditoriale
   ═══════════════════════════════════════════════════════════════════ */
.gpv2-final {
  padding: var(--sp-section) 0;
  background: var(--ink);
  color: var(--paper-pure);
  position: relative;
  overflow: hidden;
}
.gpv2-final__wrap {
  max-width: var(--grid-max);
  margin: 0 auto;
  padding: 0 var(--grid-pad);
  position: relative;
  z-index: 2;
}
.gpv2-final__eyebrow {
  font-family: 'GeneralSans', sans-serif;
  font-weight: 500;
  font-size: var(--t-micro);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin: 0 0 var(--sp-48);
}
.gpv2-final__eyebrow::before {
  content: '';
  display: inline-block;
  width: 32px;
  height: 1px;
  background: rgba(255,255,255,0.5);
  margin-right: 12px;
  vertical-align: middle;
}
.gpv2-final__title {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif;
  font-weight: 800;
  font-size: var(--t-mega);
  line-height: 0.82;
  letter-spacing: -0.014em;
  text-transform: uppercase;
  margin: 0 0 var(--sp-64);
  max-width: 14ch;
}
.gpv2-final__title em {
  font-style: normal;
  color: var(--accent);
}
.gpv2-final__row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: var(--sp-48);
  flex-wrap: wrap;
  padding-top: var(--sp-48);
  border-top: 1px solid rgba(255,255,255,0.12);
}
.gpv2-final__col {
  font-family: 'GeneralSans', sans-serif;
  font-size: var(--t-body);
  color: rgba(255,255,255,0.65);
  line-height: 1.5;
  max-width: 360px;
}
.gpv2-final__cta {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-16);
  padding: 22px 36px;
  background: var(--accent);
  color: var(--paper-pure);
  text-decoration: none;
  border-radius: 999px;
  font-family: 'GeneralSans', sans-serif;
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background .4s var(--ease-out), transform .4s var(--ease-out);
}
.gpv2-final__cta:hover {
  background: var(--accent-deep);
  transform: translateY(-3px);
}
.gpv2-final__cta svg {
  transition: transform .4s var(--ease-out);
}
.gpv2-final__cta:hover svg { transform: translateX(4px); }

/* ═══════════════════════════════════════════════════════════════════
   REVEAL ON SCROLL — Système universel
   Ajouté par JS, animé via CSS pour rester GPU-friendly
   ═══════════════════════════════════════════════════════════════════ */
.gpv2-reveal {
  opacity: 0;
  transform: translateY(32px);
  transition:
    opacity 1.2s var(--ease-out),
    transform 1.2s var(--ease-out);
  transition-delay: calc(var(--reveal-delay, 0) * 1ms);
  will-change: opacity, transform;
}
.gpv2-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .gpv2-reveal,
  .gp-light-hero__title .gpv2-word {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 1024px) {
  .gp-light-hero__grid {
    grid-template-columns: 1fr !important;
    gap: var(--sp-48) !important;
    align-items: stretch !important;
  }
  .gp-light-pillars__item {
    grid-template-columns: 1fr;
    gap: var(--sp-16);
    padding: var(--sp-64) 0 !important;
  }
  .gp-light-pillars__num,
  .gp-light-pillars__title,
  .gp-light-pillars__lead,
  .gp-light-pillars__list,
  .gp-light-pillars__tagline {
    grid-column: 1 !important;
  }
  .gp-light-services__head {
    grid-template-columns: 1fr;
    gap: var(--sp-24);
  }
  .gp-light-services__title,
  .gp-light-services__eyebrow {
    grid-column: 1 !important;
  }
  .gp-light-services__grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .section-home-work-intro .row.split {
    grid-template-columns: 1fr;
    gap: var(--sp-32);
  }
  .section-home-work-intro .row.split:nth-child(1) > .col,
  .section-home-work-intro .row.split:nth-child(2) > .col {
    grid-column: 1;
  }
  .section-home-work-intro h3 {
    text-align: left;
  }
  .gp-light-partners__head {
    grid-template-columns: 1fr;
    gap: var(--sp-16);
  }
  .gp-light-partners__title,
  .gp-light-partners__eyebrow {
    grid-column: 1 !important;
  }
  .gp-light-features__grid {
    grid-template-columns: 1fr !important;
  }
  .gp-light-features__card {
    border-right: 0 !important;
    border-bottom: 1px solid var(--hairline);
  }
  .gp-light-features__card:last-child {
    border-bottom: 0;
  }
}

@media (max-width: 640px) {
  .gp-light-services__grid {
    grid-template-columns: 1fr !important;
  }
  .gpv2-final__row {
    flex-direction: column;
    align-items: flex-start;
  }
  .gpv2-final__cta {
    width: 100%;
    justify-content: center;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   v2.1 — REFINEMENTS : background restauré + typo premium + piliers
   ═══════════════════════════════════════════════════════════════════ */

/* ─── 1) BACKGROUND ARCHITECTURAL RESTAURÉ (mais très subtil) ─── */
.gp-light-hero,
.gp-light-features,
.gp-light-pillars,
.gp-light-services,
.section-home-work-intro,
.gp-light-partners {
  background-color: var(--paper) !important;
  background-image:
    linear-gradient(rgba(247, 245, 239, 0.94), rgba(247, 245, 239, 0.94)),
    url('../img/gp-real/white-architectural-bg.jpg') !important;
  background-size: cover !important;
  background-position: center !important;
  background-attachment: fixed !important;   /* effet "papier qui défile" */
}
.section-home-work-intro {
  /* legacy template — force theme light pour cohérence */
  color: var(--ink) !important;
}
.gp-light-hero::before {
  /* on garde les radial accents discrets en plus de la texture */
  opacity: 0.7;
}

@media (max-width: 1024px) {
  .gp-light-hero,
  .gp-light-features,
  .gp-light-pillars,
  .gp-light-services,
  .section-home-work-intro,
  .gp-light-partners {
    background-attachment: scroll !important;  /* fixed pète sur mobile */
  }
}

/* ─── 2) UPGRADE TYPOGRAPHIQUE PREMIUM ─── */

/* Tous les titres Bulevar — micro-ajustements pour gagner en présence */
.gp-light-hero__title,
.gp-light-services__title,
.gp-light-partners__title,
.section-home-work-intro h3,
.gpv2-final__title {
  font-feature-settings: "ss01" 1, "kern" 1;   /* ligatures stylistiques si dispo */
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

/* Les lede (paragraphes d'intro) — tracking serré, plus premium */
.gp-light-hero__lede,
.gp-light-pillars__lead,
.section-home-work-intro p {
  letter-spacing: -0.005em !important;
  font-weight: 400 !important;
  color: var(--ink-72) !important;
}

/* Bonification des italiques — italique vrai (oblique) si dispo */
em {
  font-style: italic;
}

/* Eyebrows partout — uniformisation premium */
.gp-light-services__eyebrow,
.gp-light-partners__eyebrow {
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: 12px !important;
  letter-spacing: 0.32em !important;
  color: var(--ink-56) !important;
  text-transform: uppercase !important;
}

/* ─── 3) REFONTE 5 PILIERS — Numéros géants outline + édito asymétrique ─── */
.gp-light-pillars {
  padding: clamp(60px, 8vw, 100px) 0 var(--sp-section) !important;
}
.gp-light-pillars .gp-container {
  max-width: var(--grid-max);
  padding: 0 var(--grid-pad);
}

/* Header de section avec eyebrow + grand titre (cohérent avec Services) */
.gp-light-pillars::before {
  content: '— Notre méthode';
  display: block;
  max-width: var(--grid-max);
  margin: 0 auto clamp(48px, 6vw, 80px);
  padding: 0 var(--grid-pad);
  font-family: 'GeneralSans', sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--ink-56);
  text-transform: uppercase;
}

/* Chaque pilier — nouveau layout dramatique */
.gp-light-pillars__item {
  display: grid !important;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr) !important;
  gap: clamp(32px, 4vw, 80px) !important;
  padding: clamp(80px, 10vw, 140px) 0 !important;
  align-items: center !important;
  border-top: 1px solid var(--ink-12) !important;
  position: relative;
  overflow: hidden;
}
.gp-light-pillars__item:last-child {
  border-bottom: 1px solid var(--ink-12);
}

/* Alternance — pilier pair = numéro à droite */
.gp-light-pillars__item:nth-child(even) {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr) !important;
}
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__num {
  order: 2;
  text-align: right;
  grid-column: 2 !important;
}
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__title,
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__lead,
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__list,
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__tagline,
.gp-light-pillars__item:nth-child(even) .gp-light-pillars__triplet {
  order: 1;
  grid-column: 1 !important;
}

/* Numéro géant — outline élégant, ratio démesuré */
.gp-light-pillars__num {
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(140px, 22vw, 380px) !important;
  line-height: 0.78 !important;
  letter-spacing: -0.04em !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  /* Trick outline avec -webkit-text-stroke + color transparent */
  color: transparent !important;
  -webkit-text-stroke: 1.5px var(--ink);
  text-stroke: 1.5px var(--ink);
  transition: -webkit-text-stroke 0.6s var(--ease-out),
              color 0.6s var(--ease-out);
  grid-column: 1;
  align-self: center;
  user-select: none;
}
.gp-light-pillars__item:hover .gp-light-pillars__num {
  color: var(--accent) !important;
  -webkit-text-stroke: 1.5px var(--accent);
}

/* Contenu droite (ou gauche en alterné) — typo refined */
.gp-light-pillars__title {
  font-size: clamp(32px, 3.4vw, 56px) !important;
  line-height: 0.96 !important;
  letter-spacing: -0.014em !important;
  margin: 0 0 var(--sp-24) !important;
  grid-column: 2;
}
.gp-light-pillars__title em {
  color: var(--accent) !important;
}
.gp-light-pillars__lead {
  font-size: clamp(16px, 1.25vw, 19px) !important;
  line-height: 1.55 !important;
  max-width: 560px !important;
  margin: 0 0 var(--sp-32) !important;
  grid-column: 2;
}
.gp-light-pillars__lead strong {
  color: var(--ink) !important;
  font-weight: 600 !important;
}

/* Liste — bullets minimalistes "—" horizontaux */
.gp-light-pillars__list {
  list-style: none !important;
  margin: 0 0 var(--sp-24) !important;
  padding: 0 !important;
  grid-column: 2;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px clamp(20px, 2.5vw, 48px) !important;
  max-width: 560px !important;
}
.gp-light-pillars__list li {
  position: relative;
  padding-left: 28px !important;
  font-family: 'GeneralSans', 'Barlow', sans-serif !important;
  font-weight: 500 !important;
  font-size: var(--t-body) !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--ink) !important;
  line-height: 1.45 !important;
}
.gp-light-pillars__list li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.65em !important;
  width: 16px !important;
  height: 1px !important;
  background: var(--accent) !important;
  transform: none !important;
  border-radius: 0 !important;
}

/* Tagline italique en fin de pilier — devient sobre */
.gp-light-pillars__tagline {
  font-family: 'GeneralSans', sans-serif !important;
  font-style: italic !important;
  font-size: var(--t-body) !important;
  color: var(--ink-56) !important;
  margin: var(--sp-16) 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  grid-column: 2;
}

/* Pilier 5 (closing) — triplet refait */
.gp-light-pillars__triplet {
  grid-column: 2;
  margin-top: var(--sp-32) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: var(--sp-16) !important;
}
.gp-light-pillars__triplet span {
  display: inline-block !important;
  font-family: 'Bulevar', 'Barlow Condensed', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(20px, 2vw, 32px) !important;
  line-height: 1 !important;
  letter-spacing: -0.01em !important;
  text-transform: uppercase !important;
  color: var(--ink) !important;
  padding-bottom: 6px !important;
  border-bottom: 2px solid var(--accent) !important;
  width: fit-content;
  transition: color 0.4s var(--ease-out), padding-left 0.4s var(--ease-out);
}
.gp-light-pillars__triplet span:hover {
  color: var(--accent) !important;
  padding-left: 12px !important;
}

/* Responsive — piliers stack sur tablette/mobile */
@media (max-width: 1024px) {
  .gp-light-pillars__item,
  .gp-light-pillars__item:nth-child(even) {
    grid-template-columns: 1fr !important;
    gap: var(--sp-32) !important;
    padding: var(--sp-64) 0 !important;
  }
  .gp-light-pillars__num,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__num {
    font-size: clamp(96px, 18vw, 160px) !important;
    grid-column: 1 !important;
    text-align: left !important;
    order: 0 !important;
  }
  .gp-light-pillars__title,
  .gp-light-pillars__lead,
  .gp-light-pillars__list,
  .gp-light-pillars__tagline,
  .gp-light-pillars__triplet,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__title,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__lead,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__list,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__tagline,
  .gp-light-pillars__item:nth-child(even) .gp-light-pillars__triplet {
    grid-column: 1 !important;
    order: 1 !important;
  }
  .gp-light-pillars__list {
    grid-template-columns: 1fr !important;
  }
}
