.lagb-amis {
  --lagb-ink: #062c3d;
  --lagb-deep: #031b25;
  --lagb-deep-2: #082f3e;
  --lagb-paper: #f4f1e9;
  --lagb-paper-2: #ece7db;
  --lagb-sun: #ffe77d;
  --lagb-sky: #bcecff;
  --lagb-mint: #c7f0dc;
  --lagb-coral: #ff9d88;
  --lagb-white: #fffef9;
  --lagb-muted: #6d797d;
  --lagb-line: rgba(6, 44, 61, .17);
  --lagb-content: 1240px;
  --lagb-section-y: 130px;
  --lagb-header-offset: 76px;
  --lagb-radius: 28px;
  --lagb-radius-lg: 44px;
  --lagb-reveal-distance: 32px;
  --lagb-duration: 800ms;
  --lagb-ease: cubic-bezier(.2, .75, .2, 1);
  position: relative;
  isolation: isolate;
  overflow: clip;
  color: var(--lagb-ink);
  background: var(--lagb-paper);
  font-family: "Figtree", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.lagb-amis--fullbleed {
  left: 50%;
  width: 100vw;
  max-width: 100vw;
  margin-left: -50vw;
}

.lagb-amis *,
.lagb-amis *::before,
.lagb-amis *::after { box-sizing: border-box; }
.lagb-amis a { color: inherit; text-decoration: none; }
.lagb-amis button,
.lagb-amis input { font: inherit; }
.lagb-amis button,
.lagb-amis a { -webkit-tap-highlight-color: transparent; }
.lagb-amis img { display: block; max-width: 100%; }
.lagb-amis ::selection { color: var(--lagb-ink); background: var(--lagb-sun); }

.lagb-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.lagb-section { position: relative; padding: var(--lagb-section-y) 0; }
.lagb-section-inner,
.lagb-hero-inner,
.lagb-subnav-inner,
.lagb-evening-inner {
  width: min(var(--lagb-content), calc(100% - 64px));
  margin-inline: auto;
}

.lagb-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 26px;
  color: currentColor;
  font-size: 12px;
  font-weight: 820;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.lagb-eyebrow::before { content: attr(data-number); opacity: .44; }
.lagb-eyebrow::after { content: ""; width: 46px; height: 1px; background: currentColor; opacity: .38; }

.lagb-display {
  max-width: 1060px;
  margin: 0;
  font-size: clamp(48px, 7.1vw, 108px);
  font-weight: 820;
  line-height: .95;
  letter-spacing: -.062em;
}
.lagb-display em { font-weight: 340; }
.lagb-lead {
  max-width: 800px;
  margin: 34px 0 0;
  font-size: clamp(20px, 2.1vw, 30px);
  line-height: 1.42;
  letter-spacing: -.025em;
}
.lagb-body-copy {
  max-width: 740px;
  margin-top: 32px;
  color: #30454d;
  font-size: clamp(17px, 1.45vw, 21px);
  line-height: 1.65;
}
.lagb-body-copy p { margin: 0 0 1.15em; }
.lagb-body-copy p:last-child { margin-bottom: 0; }

.lagb-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.lagb-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  min-height: 54px;
  padding: 0 24px;
  overflow: hidden;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 780;
  line-height: 1;
  transition: transform .25s var(--lagb-ease), color .25s, background-color .25s, border-color .25s;
}
.lagb-button::after { content: "↗"; font-size: 18px; transition: transform .25s; }
.lagb-button:hover { transform: translateY(-2px); }
.lagb-button:hover::after { transform: translate(3px, -3px); }
.lagb-button--no-arrow::after { display: none; }
.lagb-button--sun { color: var(--lagb-ink) !important; background: var(--lagb-sun); }
.lagb-button--sun:hover { background: #ffdc3f; }
.lagb-button--ink { color: var(--lagb-white) !important; background: var(--lagb-ink); }
.lagb-button--ink:hover { background: #0a3b50; }
.lagb-button--ghost { color: var(--lagb-white) !important; border-color: rgba(255,255,255,.42); background: rgba(255,255,255,.07); backdrop-filter: blur(12px); }
.lagb-button--ghost:hover { border-color: var(--lagb-white); background: rgba(255,255,255,.14); }
.lagb-button--line { color: var(--lagb-ink) !important; border-color: rgba(6,44,61,.32); background: transparent; }
.lagb-button--line:hover { border-color: var(--lagb-ink); }

/* Premier écran : il commence sous le header WordPress, sans créer de second header. */
.lagb-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: end center;
  overflow: hidden;
  color: var(--lagb-white);
  background:
    radial-gradient(circle at 70% 20%, rgba(188,236,255,.22), transparent 32%),
    linear-gradient(145deg, var(--lagb-deep-2), var(--lagb-deep));
}
.lagb-hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .56;
  filter: saturate(.75) contrast(1.05);
}
.lagb-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(3,27,37,.18), rgba(3,27,37,.15) 40%, rgba(3,27,37,.96) 100%),
    linear-gradient(90deg, rgba(3,27,37,.58), transparent 65%);
}
.lagb-hero::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 46%;
  width: min(72vw, 950px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  box-shadow: 0 0 0 11vw rgba(255,255,255,.018);
  pointer-events: none;
}
.lagb-hero-inner { position: relative; z-index: 3; padding: clamp(115px, 15vh, 170px) 0 clamp(48px, 8vh, 92px); }
.lagb-hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 20px;
  font-size: clamp(11px, 1.1vw, 14px);
  font-weight: 780;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lagb-hero-kicker::before { content: ""; width: 42px; height: 2px; background: var(--lagb-sun); }
.lagb-hero-title {
  display: grid;
  max-width: 1090px;
  margin: 0;
  font-size: clamp(66px, 11.2vw, 170px);
  font-weight: 880;
  line-height: .79;
  letter-spacing: -.075em;
  text-transform: uppercase;
}
.lagb-hero-title .is-outline {
  color: transparent;
  -webkit-text-stroke: 1.25px rgba(255,255,255,.88);
  padding-left: .38em;
}
.lagb-hero-bottom { display: grid; grid-template-columns: minmax(0, 1.3fr) auto; gap: 48px; align-items: end; margin-top: clamp(42px, 7vh, 78px); }
.lagb-hero-copy { max-width: 720px; margin: 0; font-size: clamp(20px, 2vw, 29px); line-height: 1.28; letter-spacing: -.025em; }
.lagb-hero-bottom .lagb-actions { justify-content: flex-end; margin: 0; }
.lagb-hero-logo {
  position: absolute;
  z-index: 3;
  top: clamp(26px, 5vh, 58px);
  right: clamp(24px, 4vw, 70px);
  aspect-ratio: 1;
  margin: 0;
  padding: clamp(10px, 1.4vw, 20px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  background: rgba(255,254,249,.92);
  box-shadow: 0 22px 70px rgba(3,27,37,.25);
  backdrop-filter: blur(16px);
}
.lagb-hero-logo img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }

/* Navigation contextuelle, collée sous le header réel du site. */
.lagb-subnav {
  position: sticky;
  z-index: 35;
  top: var(--lagb-header-offset);
  color: var(--lagb-ink);
  background: rgba(244,241,233,.9);
  border-bottom: 1px solid var(--lagb-line);
  backdrop-filter: blur(18px) saturate(140%);
}
.lagb-subnav-inner { display: flex; justify-content: center; align-items: center; gap: clamp(18px, 4vw, 54px); min-height: 60px; }
.lagb-subnav a { position: relative; padding: 19px 0; font-size: 12px; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.lagb-subnav a::after { content: ""; position: absolute; right: 0; bottom: 13px; left: 0; height: 1px; transform: scaleX(0); transform-origin: left; background: currentColor; transition: transform .35s var(--lagb-ease); }
.lagb-subnav a:hover::after { transform: scaleX(1); }
.lagb-subnav .is-cta { padding: 11px 18px; border-radius: 999px; color: var(--lagb-white); background: var(--lagb-ink); }
.lagb-subnav .is-cta::after { display: none; }

.lagb-progress {
  position: fixed;
  z-index: 45;
  left: 22px;
  top: 50%;
  display: grid;
  gap: 10px;
  padding: 14px 9px;
  transform: translateY(-50%);
  border: 1px solid rgba(6,44,61,.12);
  border-radius: 999px;
  opacity: 0;
  pointer-events: none;
  background: rgba(255,255,255,.68);
  backdrop-filter: blur(16px);
  transition: opacity .3s;
}
.lagb-progress.is-visible { opacity: 1; pointer-events: auto; }
.lagb-progress-dot {
  width: 7px;
  height: 7px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(6,44,61,.24);
  cursor: pointer;
  transition: transform .25s, background-color .25s;
}
.lagb-progress-dot:hover { transform: scale(1.5); }
.lagb-progress-dot.is-active { transform: scale(1.55); background: var(--lagb-ink); }
.elementor-editor-active .lagb-progress { display: none; }

/* Réseau */
.lagb-intro { overflow: hidden; background: var(--lagb-sun); }
.lagb-intro::after {
  content: "1000+";
  position: absolute;
  right: -2vw;
  bottom: -8vw;
  color: rgba(6,44,61,.07);
  font-size: min(31vw, 490px);
  font-weight: 900;
  line-height: .72;
  letter-spacing: -.08em;
  pointer-events: none;
}
.lagb-intro-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(54px, 10vw, 150px); align-items: end; }
.lagb-intro.is-reverse .lagb-intro-grid { grid-template-columns: .82fr 1.18fr; }
.lagb-intro.is-reverse .lagb-intro-grid > :first-child { order: 2; }
.lagb-stat { display: grid; align-content: end; min-height: 360px; padding-left: clamp(28px, 4vw, 62px); border-left: 1px solid rgba(6,44,61,.32); }
.lagb-stat-number { font-size: clamp(100px, 14vw, 206px); font-weight: 850; line-height: .76; letter-spacing: -.085em; }
.lagb-stat-label { max-width: 300px; margin-top: 34px; font-size: 16px; line-height: 1.45; font-weight: 650; }

/* Apparition du logo au scroll */
.lagb-brand-bridge {
  position: relative;
  min-height: 76vh;
  min-height: 76svh;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--lagb-white);
  background:
    radial-gradient(circle at 50% 45%, rgba(188,236,255,.12), transparent 34%),
    var(--lagb-deep);
}
.lagb-brand-disc {
  position: relative;
  z-index: 2;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  margin: 0;
  padding: clamp(24px, 4vw, 64px);
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
  background: var(--lagb-white);
  box-shadow: 0 0 0 10vw rgba(255,255,255,.018), 0 40px 120px rgba(0,0,0,.3);
}
.lagb-brand-disc::before { content: ""; position: absolute; inset: -30px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; }
.lagb-brand-disc img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }
.lagb-brand-word {
  position: absolute;
  z-index: 1;
  margin: 0;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,.2);
  font-size: clamp(76px, 13vw, 210px);
  font-weight: 890;
  line-height: .78;
  letter-spacing: -.075em;
  text-transform: uppercase;
  white-space: nowrap;
}
.lagb-brand-word--left { left: -3vw; top: 12%; }
.lagb-brand-word--right { right: -7vw; bottom: 10%; }
.lagb-brand-caption { position: absolute; z-index: 3; bottom: 38px; margin: 0; color: var(--lagb-sun); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

/* Raison d'être */
.lagb-purpose { overflow: visible; color: var(--lagb-white); background: var(--lagb-deep); }
.lagb-purpose-grid { display: grid; grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr); gap: clamp(60px, 10vw, 160px); align-items: start; }
.lagb-purpose.is-reverse .lagb-purpose-grid { grid-template-columns: minmax(0, 1.22fr) minmax(300px, .78fr); }
.lagb-purpose.is-reverse .lagb-purpose-copy { order: 2; }
.lagb-purpose-copy { position: sticky; top: calc(var(--lagb-header-offset) + 90px); }
.lagb-purpose .lagb-body-copy { color: rgba(255,255,255,.7); }
.lagb-verbs { display: grid; border-top: 1px solid rgba(255,255,255,.18); }
.lagb-verb { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; min-height: 156px; overflow: hidden; border-bottom: 1px solid rgba(255,255,255,.18); }
.lagb-verb::before { content: ""; position: absolute; inset: 0; transform: translateX(-101%); background: var(--lagb-sun); transition: transform .6s var(--lagb-ease); }
.lagb-verb:hover::before { transform: translateX(0); }
.lagb-verb span,
.lagb-verb strong { position: relative; z-index: 1; }
.lagb-verb span { font-size: 12px; opacity: .5; }
.lagb-verb strong { font-size: clamp(50px, 6.2vw, 90px); font-weight: 780; line-height: .9; letter-spacing: -.055em; transition: color .4s; }
.lagb-verb:hover { color: var(--lagb-ink); }
.lagb-manifesto { margin: clamp(66px, 9vw, 120px) 0 30px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.18); font-size: clamp(24px, 3vw, 42px); font-weight: 650; line-height: 1.2; letter-spacing: -.035em; }
.lagb-manifesto em { color: var(--lagb-sun); font-style: normal; }

/* Équipe */
.lagb-team { overflow: hidden; background: var(--lagb-white); }
.lagb-section-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 440px); gap: 60px; align-items: end; }
.lagb-section-head .lagb-body-copy { margin: 0; }
.lagb-team-controls { display: flex; justify-content: flex-end; gap: 8px; margin-top: 32px; }
.lagb-team-controls button { display: grid; place-items: center; width: 50px; height: 50px; padding: 0; border: 1px solid var(--lagb-line); border-radius: 50%; color: var(--lagb-ink); background: transparent; cursor: pointer; transition: color .25s, background .25s, transform .25s; }
.lagb-team-controls button:hover { color: var(--lagb-white); background: var(--lagb-ink); transform: scale(1.05); }
.lagb-team-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(310px, 30vw);
  gap: 18px;
  width: 100%;
  margin-top: 70px;
  padding: 0 max(32px, calc((100vw - min(var(--lagb-content), calc(100vw - 64px))) / 2)) 22px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: none;
}
.lagb-team-track::-webkit-scrollbar { display: none; }
.lagb-person {
  position: relative;
  min-height: 470px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 30px;
  overflow: hidden;
  border-radius: var(--lagb-radius);
  color: var(--lagb-ink);
  background: var(--lagb-person-accent, var(--lagb-paper-2));
  scroll-snap-align: start;
}
.lagb-person-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lagb-person.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,27,37,.15), rgba(3,27,37,.82)); }
.lagb-person-role { position: relative; z-index: 2; align-self: flex-start; padding: 9px 13px; border: 1px solid rgba(6,44,61,.28); border-radius: 999px; font-size: 11px; font-weight: 820; letter-spacing: .1em; text-transform: uppercase; }
.lagb-person h3 { position: relative; z-index: 2; max-width: 90%; margin: 0; font-size: clamp(38px, 4vw, 62px); line-height: .97; letter-spacing: -.055em; }
.lagb-person p { position: relative; z-index: 2; max-width: 280px; margin: 20px 0 0; color: rgba(6,44,61,.66); font-size: 14px; line-height: 1.45; }
.lagb-person-initials { position: absolute; z-index: 1; right: -14px; bottom: -34px; font-size: 180px; font-weight: 880; line-height: 1; letter-spacing: -.11em; opacity: .08; }
.lagb-person.has-photo { color: var(--lagb-white); }
.lagb-person.has-photo .lagb-person-role { border-color: rgba(255,255,255,.48); background: rgba(3,27,37,.18); backdrop-filter: blur(12px); }
.lagb-person.has-photo p { color: rgba(255,255,255,.72); }
.lagb-person.has-photo .lagb-person-initials { display: none; }
.lagb-bureau,
.lagb-relations { display: grid; grid-template-columns: .55fr 1.45fr; gap: 60px; width: min(var(--lagb-content), calc(100% - 64px)); margin: 60px auto 0; padding-top: 36px; border-top: 1px solid var(--lagb-line); }
.lagb-bureau h3,
.lagb-relations h3 { margin: 0; font-size: 15px; letter-spacing: .12em; text-transform: uppercase; }
.lagb-name-cloud { display: flex; flex-wrap: wrap; gap: 10px; }
.lagb-name-cloud span { padding: 11px 15px; border: 1px solid var(--lagb-line); border-radius: 999px; font-size: 14px; font-weight: 650; }
.lagb-relations p { max-width: 760px; margin: 0; font-size: 18px; line-height: 1.6; }

/* Pourquoi adhérer */
.lagb-join { overflow: visible; background: var(--lagb-paper); }
.lagb-join-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(60px, 9vw, 138px); align-items: start; }
.lagb-join.is-reverse .lagb-join-grid { grid-template-columns: 1.22fr .78fr; }
.lagb-join.is-reverse .lagb-join-intro { order: 2; }
.lagb-join-intro { position: sticky; top: calc(var(--lagb-header-offset) + 90px); }
.lagb-benefits { border-top: 1px solid var(--lagb-line); }
.lagb-benefit { display: grid; grid-template-columns: 70px 1fr; gap: 24px; padding: 34px 0; border-bottom: 1px solid var(--lagb-line); }
.lagb-benefit > span { padding-top: 7px; font-size: 12px; font-weight: 800; opacity: .45; }
.lagb-benefit h3 { margin: 0 0 10px; font-size: clamp(25px, 2.3vw, 34px); line-height: 1.1; letter-spacing: -.035em; }
.lagb-benefit p { max-width: 580px; margin: 0; color: #4b5d63; font-size: 17px; line-height: 1.55; }
.lagb-join-action { margin-top: 38px; }
.lagb-microcopy { margin: 13px 0 0; color: var(--lagb-muted); font-size: 13px; }

/* Vie de l'association */
.lagb-life { padding-bottom: 0; overflow: hidden; color: var(--lagb-white); background: var(--lagb-deep-2); }
.lagb-life .lagb-body-copy { color: rgba(255,255,255,.7); }
.lagb-life-stage { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); min-height: 590px; margin-top: 72px; border-top: 1px solid rgba(255,255,255,.18); }
.lagb-life-card { position: relative; min-height: 590px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(25px, 3vw, 44px); overflow: hidden; isolation: isolate; border-right: 1px solid rgba(255,255,255,.18); }
.lagb-life-card:last-child { border-right: 0; }
.lagb-life-card::before { content: ""; position: absolute; inset: 0; z-index: -2; opacity: .2; background: radial-gradient(circle at 20% 20%, var(--lagb-sun), transparent 30%), linear-gradient(150deg, transparent 20%, var(--lagb-sky)); transition: opacity .6s, transform .8s var(--lagb-ease); }
.lagb-life-card:nth-child(2)::before { background: radial-gradient(circle at 80% 15%, var(--lagb-coral), transparent 35%), linear-gradient(160deg, transparent 25%, #8868ff); }
.lagb-life-card:nth-child(3)::before { background: radial-gradient(circle at 20% 70%, var(--lagb-mint), transparent 35%), linear-gradient(150deg, transparent 25%, #2b7e91); }
.lagb-life-card:nth-child(4)::before { background: radial-gradient(circle at 80% 25%, var(--lagb-sun), transparent 35%), linear-gradient(160deg, transparent 25%, #ea7e65); }
.lagb-life-card.has-image::before { z-index: -1; background: linear-gradient(180deg, rgba(3,27,37,.1), rgba(3,27,37,.88)); opacity: 1; }
.lagb-life-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--lagb-ease); }
.lagb-life-card:hover .lagb-life-photo { transform: scale(1.06); }
.lagb-life-card:hover::before { opacity: .58; transform: scale(1.06); }
.lagb-life-card > span { position: absolute; top: 32px; left: clamp(25px, 3vw, 44px); font-size: 13px; font-weight: 800; opacity: .55; }
.lagb-life-card h3 { margin: 0 0 18px; font-size: clamp(28px, 2.7vw, 42px); line-height: 1; letter-spacing: -.04em; }
.lagb-life-card p { margin: 0; color: rgba(255,255,255,.7); font-size: 15px; line-height: 1.55; }
.lagb-life-cta { display: flex; justify-content: center; padding: 40px 20px 54px; }

/* Événement */
.lagb-event { background: var(--lagb-white); }
.lagb-event-wrap { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(54px, 8vw, 120px); align-items: start; }
.lagb-event.is-reverse .lagb-event-wrap { grid-template-columns: 1.28fr .72fr; }
.lagb-event.is-reverse .lagb-event-intro { order: 2; }
.lagb-event-intro { position: sticky; top: calc(var(--lagb-header-offset) + 90px); }
.lagb-event-ticket { overflow: hidden; border: 1px solid var(--lagb-line); border-radius: var(--lagb-radius-lg); background: var(--lagb-paper); box-shadow: 0 30px 90px rgba(6,44,61,.1); }
.lagb-ticket-visual { position: relative; min-height: 330px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 20% 30%, var(--lagb-sun) 0 13%, transparent 13.5%), radial-gradient(circle at 79% 45%, var(--lagb-sky) 0 18%, transparent 18.5%), radial-gradient(circle at 56% 90%, var(--lagb-coral) 0 14%, transparent 14.5%), var(--lagb-ink); }
.lagb-ticket-visual.has-image { background: var(--lagb-ink); }
.lagb-ticket-visual.has-image::after { z-index: 0; width: 100%; height: 100%; transform: none; background: linear-gradient(rgba(3,27,37,.18), rgba(3,27,37,.62)); }
.lagb-ticket-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lagb-ticket-visual::before,
.lagb-ticket-visual::after { content: ""; position: absolute; width: 140%; height: 1px; transform: rotate(-16deg); background: rgba(255,255,255,.2); }
.lagb-ticket-visual::after { transform: rotate(17deg); }
.lagb-ticket-date { position: relative; z-index: 1; width: 145px; aspect-ratio: 1; display: grid; place-items: center; padding: 20px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: var(--lagb-white); text-align: center; font-size: 13px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(10px); }
.lagb-ticket-body { padding: clamp(30px, 5vw, 62px); }
.lagb-ticket-label { margin: 0 0 22px; font-size: 12px; font-weight: 820; letter-spacing: .14em; text-transform: uppercase; }
.lagb-ticket-body h3 { margin: 0; font-size: clamp(40px, 5vw, 72px); line-height: .95; letter-spacing: -.055em; }
.lagb-ticket-meta { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 28px 0 0; color: var(--lagb-muted); font-size: 15px; }
.lagb-ticket-text { max-width: 620px; margin: 30px 0 0; color: #41545b; font-size: 17px; line-height: 1.6; }
.lagb-invite { margin-top: 28px; padding: 34px; border-radius: var(--lagb-radius); color: var(--lagb-white); background: var(--lagb-deep); }
.lagb-invite h3 { margin: 0 0 10px; font-size: 24px; letter-spacing: -.03em; }
.lagb-invite p { max-width: 600px; margin: 0; color: rgba(255,255,255,.68); line-height: 1.55; }

/* Thèmes */
.lagb-themes { overflow: visible; background: var(--lagb-sun); }
.lagb-themes-layout { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(62px, 9vw, 140px); align-items: start; }
.lagb-themes.is-reverse .lagb-themes-layout { grid-template-columns: 1.22fr .78fr; }
.lagb-themes.is-reverse .lagb-themes-copy { order: 2; }
.lagb-themes-copy { position: sticky; top: calc(var(--lagb-header-offset) + 90px); }
.lagb-themes-list { display: grid; }
.lagb-theme-button { width: 100%; display: grid; grid-template-columns: 46px 1fr auto; align-items: center; gap: 14px; padding: 20px 2px; border: 0; border-bottom: 1px solid rgba(6,44,61,.28); color: var(--lagb-ink); background: transparent; text-align: left; cursor: pointer; }
.lagb-theme-button > span { font-size: 11px; font-weight: 820; opacity: .45; }
.lagb-theme-button strong { font-size: clamp(24px, 2.3vw, 34px); font-weight: 720; line-height: 1.05; letter-spacing: -.032em; }
.lagb-theme-button i { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(6,44,61,.3); border-radius: 50%; font-style: normal; font-size: 18px; transition: transform .25s, color .25s, background .25s; }
.lagb-theme-button:hover i,
.lagb-theme-button.is-selected i { color: var(--lagb-sun); background: var(--lagb-ink); transform: rotate(45deg); }
.lagb-theme-response { max-height: 0; margin-top: 0; padding: 0 26px; overflow: hidden; border-radius: var(--lagb-radius); opacity: 0; background: rgba(255,255,255,.52); transition: max-height .5s var(--lagb-ease), opacity .35s, margin .4s, padding .4s; }
.lagb-theme-response.is-open { max-height: 380px; margin-top: 28px; padding: 26px; opacity: 1; }
.lagb-theme-response p { margin: 0; line-height: 1.55; }
.lagb-theme-response strong { font-size: 20px; }

/* Grandes soirées */
.lagb-evening { position: relative; min-height: 860px; display: grid; align-items: end; overflow: hidden; color: var(--lagb-white); background: var(--lagb-deep); }
.lagb-lights { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.lagb-lights span { position: absolute; top: -16%; width: 24vw; height: 130%; opacity: .4; transform-origin: top; filter: blur(7px); clip-path: polygon(46% 0, 54% 0, 100% 100%, 0 100%); background: linear-gradient(to bottom, rgba(255,231,125,.75), transparent 75%); animation: lagb-sway 9s ease-in-out infinite alternate; }
.lagb-lights span:nth-child(1) { left: 10%; transform: rotate(18deg); }
.lagb-lights span:nth-child(2) { left: 48%; transform: rotate(-15deg); animation-delay: -3s; background: linear-gradient(to bottom, rgba(188,236,255,.65), transparent 75%); }
.lagb-lights span:nth-child(3) { right: -2%; transform: rotate(9deg); animation-delay: -6s; background: linear-gradient(to bottom, rgba(255,157,136,.55), transparent 75%); }
@keyframes lagb-sway { to { transform: rotate(-7deg) translateX(4vw); } }
.lagb-evening-inner { position: relative; z-index: 1; padding: 140px 0 90px; }
.lagb-evening-title { display: grid; max-width: 1050px; margin: 0; font-size: clamp(64px, 10vw, 150px); font-weight: 820; line-height: .82; letter-spacing: -.072em; text-transform: uppercase; }
.lagb-evening-title em { color: transparent; font-style: normal; -webkit-text-stroke: 1.2px rgba(255,255,255,.85); padding-left: .36em; }
.lagb-evening-bottom { display: grid; grid-template-columns: 1fr minmax(300px, 450px); gap: 70px; align-items: end; margin-top: 86px; }
.lagb-evening-event { padding-top: 26px; border-top: 1px solid rgba(255,255,255,.3); }
.lagb-evening-meta { margin: 0 0 14px; color: var(--lagb-sun); font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.lagb-evening-event h3 { margin: 0; font-size: 28px; }
.lagb-evening-event > p:not(.lagb-evening-meta) { margin: 14px 0 0; color: rgba(255,255,255,.66); line-height: 1.55; }
.lagb-evening-copy { color: rgba(255,255,255,.74); font-size: 18px; line-height: 1.6; }
.lagb-evening-copy p { margin: 0 0 1em; }

/* Idées */
.lagb-ideas { background: var(--lagb-paper); }
.lagb-ideas-wrap { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; border: 1px solid var(--lagb-line); border-radius: var(--lagb-radius-lg); background: var(--lagb-white); box-shadow: 0 24px 80px rgba(6,44,61,.08); }
.lagb-ideas-wrap.is-reverse .lagb-ideas-copy { order: 2; }
.lagb-ideas-copy { padding: clamp(40px, 7vw, 100px); }
.lagb-ideas-copy h2 { margin: 0; font-size: clamp(45px, 6vw, 82px); line-height: .95; letter-spacing: -.058em; }
.lagb-ideas-copy > div:not(.lagb-actions) { margin-top: 28px; color: #3d5158; font-size: 18px; line-height: 1.65; }
.lagb-ideas-copy > div p { margin: 0 0 1em; }
.lagb-ideas-visual { min-height: 660px; display: grid; place-items: center; padding: 42px; color: var(--lagb-white); background: linear-gradient(rgba(3,27,37,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(3,27,37,.05) 1px, transparent 1px), var(--lagb-sky); background-size: 42px 42px; }
.lagb-idea-orbit { position: relative; width: min(420px, 86%); aspect-ratio: 1; display: grid; place-items: center; padding: 40px; border-radius: 50%; background: var(--lagb-deep); box-shadow: 0 0 0 24px rgba(6,44,61,.08), 0 0 0 62px rgba(6,44,61,.045); }
.lagb-idea-orbit::before,
.lagb-idea-orbit::after { content: ""; position: absolute; width: 42px; height: 42px; border-radius: 50%; background: var(--lagb-sun); animation: lagb-orbit 7s linear infinite; transform: translateX(210px); }
.lagb-idea-orbit::after { width: 24px; height: 24px; background: var(--lagb-coral); animation-duration: 11s; animation-direction: reverse; transform: translateX(185px); }
@keyframes lagb-orbit { to { rotate: 360deg; } }
.lagb-idea-orbit strong { max-width: 270px; text-align: center; font-size: clamp(27px, 3.5vw, 44px); line-height: 1.06; letter-spacing: -.045em; }

/* Soutien */
.lagb-support { overflow: hidden; color: var(--lagb-white); background: var(--lagb-deep-2); }
.lagb-support .lagb-display { max-width: 930px; }
.lagb-support-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin: 72px 0 38px; border-top: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.lagb-support-grid article { min-height: 330px; padding: 34px; border-right: 1px solid rgba(255,255,255,.2); }
.lagb-support-grid article:last-child { border-right: 0; }
.lagb-support-grid article > span { color: var(--lagb-sun); font-size: 12px; font-weight: 800; }
.lagb-support-grid h3 { margin: 88px 0 18px; font-size: clamp(30px, 3vw, 45px); line-height: 1; letter-spacing: -.045em; }
.lagb-support-grid p { margin: 0; color: rgba(255,255,255,.65); line-height: 1.55; }

/* Adhésion ou don */
.lagb-choice { background: var(--lagb-white); }
.lagb-choice-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 720px; }
.lagb-choice-panel { position: relative; min-height: 720px; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(46px, 7vw, 104px); overflow: hidden; }
.lagb-choice-panel:first-child { background: var(--lagb-sun); }
.lagb-choice-panel:nth-child(2) { color: var(--lagb-white); background: var(--lagb-ink); }
.lagb-choice-panel::before { content: attr(data-word); position: absolute; top: 28px; right: -20px; font-size: clamp(120px, 17vw, 280px); font-weight: 900; line-height: .8; letter-spacing: -.09em; opacity: .06; pointer-events: none; }
.lagb-choice-panel h3 { position: relative; margin: 0; max-width: 580px; font-size: clamp(50px, 6vw, 88px); line-height: .92; letter-spacing: -.06em; }
.lagb-choice-panel > p:not(.lagb-eyebrow) { position: relative; max-width: 540px; margin: 27px 0 0; font-size: 18px; line-height: 1.6; opacity: .72; }
.lagb-choice-panel .lagb-button { align-self: flex-start; margin-top: 34px; }
.lagb-choice-note { grid-column: 1 / -1; margin: 0; padding: 24px; color: var(--lagb-muted); background: var(--lagb-paper); text-align: center; font-size: 14px; }

/* Fiscalité */
.lagb-tax { background: var(--lagb-paper); }
.lagb-tax-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(60px, 9vw, 130px); align-items: center; }
.lagb-tax.is-reverse .lagb-tax-grid { grid-template-columns: 1.18fr .82fr; }
.lagb-tax.is-reverse .lagb-tax-copy { order: 2; }
.lagb-tax-copy .lagb-body-copy { margin-top: 30px; }
.lagb-calculator { padding: clamp(32px, 5vw, 66px); border-radius: var(--lagb-radius-lg); color: var(--lagb-white); background: var(--lagb-deep); box-shadow: 0 30px 90px rgba(6,44,61,.14); }
.lagb-calculator-label { margin: 0; color: rgba(255,255,255,.62); font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.lagb-amount-row { display: flex; align-items: flex-end; gap: 12px; margin: 10px 0 28px; }
.lagb-amount-row strong { font-size: clamp(72px, 9vw, 130px); line-height: .8; letter-spacing: -.07em; }
.lagb-amount-row span { color: var(--lagb-sun); font-size: 34px; font-weight: 700; }
.lagb-calculator input[type="range"] { width: 100%; height: 6px; border: 0; border-radius: 999px; accent-color: var(--lagb-sun); background: rgba(255,255,255,.2); cursor: pointer; }
.lagb-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.lagb-presets button { padding: 9px 13px; border: 1px solid rgba(255,255,255,.24); border-radius: 999px; color: var(--lagb-white); background: transparent; cursor: pointer; }
.lagb-presets button:hover,
.lagb-presets button.is-active { color: var(--lagb-ink); background: var(--lagb-sun); border-color: var(--lagb-sun); }
.lagb-tax-result { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; margin-top: 42px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.22); }
.lagb-tax-result span { max-width: 210px; color: rgba(255,255,255,.62); font-size: 14px; line-height: 1.45; }
.lagb-tax-result strong { color: var(--lagb-sun); font-size: clamp(44px, 5vw, 68px); line-height: .9; letter-spacing: -.05em; }
.lagb-tax-note { margin: 28px 0 0; color: rgba(255,255,255,.48); font-size: 12px; line-height: 1.5; }

/* Final */
.lagb-finale { position: relative; min-height: 860px; display: grid; place-items: center; padding: 120px 32px; overflow: hidden; color: var(--lagb-white); background: radial-gradient(circle at 50% 30%, rgba(188,236,255,.16), transparent 34%), var(--lagb-deep); text-align: center; }
.lagb-finale::before { content: ""; position: absolute; width: min(76vw, 960px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 10vw rgba(255,255,255,.015); }
.lagb-finale-logo { position: absolute; z-index: 0; width: min(52vw, 620px); aspect-ratio: 1; padding: clamp(40px, 7vw, 90px); border-radius: 50%; opacity: .065; background: var(--lagb-white); object-fit: contain; }
.lagb-finale-inner { position: relative; z-index: 1; max-width: 1000px; }
.lagb-finale-kicker { margin: 0 0 24px; color: var(--lagb-sun); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.lagb-finale h2 { margin: 0; font-size: clamp(62px, 10vw, 150px); line-height: .82; letter-spacing: -.075em; text-transform: uppercase; }
.lagb-finale-inner > p:not(.lagb-finale-kicker) { max-width: 670px; margin: 34px auto 0; color: rgba(255,255,255,.7); font-size: 19px; line-height: 1.55; }
.lagb-finale .lagb-actions { justify-content: center; margin-top: 38px; }

/* Apparitions */
.lagb-amis.lagb-ready:not(.lagb-amis--static) .lagb-reveal { opacity: 0; transform: translateY(var(--lagb-reveal-distance)); transition: opacity var(--lagb-duration) var(--lagb-ease), transform var(--lagb-duration) var(--lagb-ease); }
.lagb-amis.lagb-ready:not(.lagb-amis--static) .lagb-reveal.is-in { opacity: 1; transform: none; }
.lagb-amis.lagb-ready:not(.lagb-amis--static) .lagb-brand-disc.lagb-reveal { transform: translateY(var(--lagb-reveal-distance)) scale(.72) rotate(-5deg); }
.lagb-amis.lagb-ready:not(.lagb-amis--static) .lagb-brand-disc.lagb-reveal.is-in { transform: scale(1) rotate(0); }

@media (max-width: 1100px) {
  .lagb-hero-bottom,
  .lagb-intro-grid,
  .lagb-purpose-grid,
  .lagb-purpose.is-reverse .lagb-purpose-grid,
  .lagb-join-grid,
  .lagb-join.is-reverse .lagb-join-grid,
  .lagb-event-wrap,
  .lagb-event.is-reverse .lagb-event-wrap,
  .lagb-themes-layout,
  .lagb-themes.is-reverse .lagb-themes-layout,
  .lagb-tax-grid,
  .lagb-tax.is-reverse .lagb-tax-grid { grid-template-columns: 1fr; }
  .lagb-purpose.is-reverse .lagb-purpose-copy,
  .lagb-join.is-reverse .lagb-join-intro,
  .lagb-event.is-reverse .lagb-event-intro,
  .lagb-themes.is-reverse .lagb-themes-copy,
  .lagb-tax.is-reverse .lagb-tax-copy { order: initial; }
  .lagb-purpose-copy,
  .lagb-join-intro,
  .lagb-event-intro,
  .lagb-themes-copy { position: relative; top: auto; }
  .lagb-hero-bottom .lagb-actions { justify-content: flex-start; }
  .lagb-section-head { grid-template-columns: 1fr; }
  .lagb-team-controls { justify-content: flex-start; }
  .lagb-life-stage { grid-template-columns: repeat(2, 1fr); }
  .lagb-life-card:nth-child(2) { border-right: 0; }
  .lagb-life-card:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.18); }
  .lagb-evening-bottom { grid-template-columns: 1fr; }
  .lagb-ideas-wrap { grid-template-columns: 1fr; }
  .lagb-ideas-wrap.is-reverse .lagb-ideas-copy { order: 2; }
  .lagb-ideas-visual { min-height: 520px; }
}

@media (max-width: 760px) {
  .lagb-section-inner,
  .lagb-hero-inner,
  .lagb-subnav-inner,
  .lagb-evening-inner,
  .lagb-bureau,
  .lagb-relations { width: min(var(--lagb-content), calc(100% - 36px)); }
  .lagb-section { padding: var(--lagb-section-y) 0; }
  .lagb-display { font-size: clamp(43px, 14vw, 70px); }
  .lagb-hero { min-height: 760px; }
  .lagb-hero-inner { padding: 145px 0 48px; }
  .lagb-hero-title { font-size: clamp(58px, 20vw, 94px); line-height: .82; }
  .lagb-hero-title .is-outline { padding-left: .1em; }
  .lagb-hero-bottom { gap: 30px; margin-top: 42px; }
  .lagb-hero-bottom .lagb-actions,
  .lagb-actions { display: grid; }
  .lagb-button { width: 100%; }
  .lagb-hero-logo { top: 22px; right: 18px; }
  .lagb-subnav { overflow-x: auto; scrollbar-width: none; }
  .lagb-subnav::-webkit-scrollbar { display: none; }
  .lagb-subnav-inner { width: max-content; justify-content: flex-start; gap: 24px; padding: 0 18px; }
  .lagb-progress { display: none; }
  .lagb-stat { min-height: 250px; padding-left: 20px; }
  .lagb-stat-number { font-size: 110px; }
  .lagb-brand-bridge { min-height: 620px; }
  .lagb-brand-word { font-size: 82px; }
  .lagb-brand-caption { bottom: 28px; width: calc(100% - 36px); text-align: center; }
  .lagb-verb { min-height: 120px; }
  .lagb-verb strong { font-size: 48px; }
  .lagb-team-track { grid-auto-columns: minmax(280px, 85vw); margin-top: 48px; padding-inline: 18px; }
  .lagb-person { min-height: 420px; }
  .lagb-bureau,
  .lagb-relations { grid-template-columns: 1fr; gap: 24px; }
  .lagb-benefit { grid-template-columns: 42px 1fr; gap: 10px; }
  .lagb-life-stage { grid-template-columns: 1fr; min-height: auto; }
  .lagb-life-card { min-height: 430px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.18); }
  .lagb-ticket-visual { min-height: 250px; }
  .lagb-ticket-body { padding: 34px 24px; }
  .lagb-ticket-body h3 { font-size: 42px; }
  .lagb-theme-button { grid-template-columns: 32px 1fr auto; }
  .lagb-theme-button strong { font-size: 22px; }
  .lagb-evening { min-height: 760px; }
  .lagb-evening-inner { padding: 100px 0 70px; }
  .lagb-evening-title { font-size: clamp(54px, 17vw, 88px); }
  .lagb-evening-title em { padding-left: 0; }
  .lagb-evening-bottom { gap: 36px; margin-top: 58px; }
  .lagb-ideas-copy { padding: 42px 26px; }
  .lagb-ideas-visual { min-height: 410px; padding: 24px; }
  .lagb-idea-orbit::before { transform: translateX(155px); }
  .lagb-idea-orbit::after { transform: translateX(135px); }
  .lagb-support-grid { grid-template-columns: 1fr; }
  .lagb-support-grid article { min-height: 250px; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.2); }
  .lagb-support-grid h3 { margin-top: 52px; }
  .lagb-choice-grid { grid-template-columns: 1fr; }
  .lagb-choice-panel { min-height: 560px; padding: 56px 26px; }
  .lagb-choice-note { grid-column: auto; }
  .lagb-calculator { padding: 34px 22px; }
  .lagb-amount-row strong { font-size: 74px; }
  .lagb-tax-result { grid-template-columns: 1fr; }
  .lagb-tax-result strong { font-size: 56px; }
  .lagb-finale { min-height: 800px; padding-inline: 18px; }
  .lagb-finale h2 { font-size: clamp(58px, 18vw, 92px); }
}

@media (prefers-reduced-motion: reduce) {
  .lagb-amis *,
  .lagb-amis *::before,
  .lagb-amis *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .lagb-amis .lagb-hero-video { display: none; }
  .lagb-amis .lagb-reveal { opacity: 1 !important; transform: none !important; }
}

/*
 * Cohérence geoffroyboulard.fr — v1.1
 * Cette couche remplace les codes trop démonstratifs de la première version
 * par la grammaire du site : Figtree, bleu profond, jaune, titres encadrés et
 * survols en balayage horizontal.
 */
.lagb-amis {
  --lagb-paper: #f8f7f2;
  --lagb-paper-2: #f0eee6;
  --lagb-sun: #ffe889;
  --lagb-white: #fff;
  --lagb-radius: 2px;
  --lagb-radius-lg: 2px;
  font-family: "Figtree", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight: 400;
}

.lagb-display {
  max-width: 940px;
  font-size: clamp(44px, 5.7vw, 84px);
  font-weight: 720;
  line-height: 1.01;
  letter-spacing: -.045em;
}

.lagb-display mark,
.lagb-manifesto mark,
.lagb-evening-title mark {
  display: inline;
  padding: .01em .14em .07em;
  color: var(--lagb-ink);
  background: var(--lagb-sun);
  border: 1px solid var(--lagb-sun);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
  font: inherit;
}

.lagb-lead {
  margin-top: 30px;
  font-size: clamp(19px, 1.8vw, 27px);
  line-height: 1.45;
  letter-spacing: -.018em;
}

.lagb-body-copy {
  margin-top: 28px;
  color: #354a53;
  font-size: clamp(16px, 1.25vw, 19px);
  line-height: 1.7;
}

/* Boutons identitaires : angle net et balayage gauche → droite. */
.lagb-button {
  min-height: 52px;
  padding: 0 23px;
  border-radius: 2px;
  font-size: 13px;
  font-weight: 720;
  letter-spacing: .025em;
  transform: none !important;
  isolation: isolate;
  transition: color .32s var(--lagb-ease), border-color .32s var(--lagb-ease);
}

.lagb-button::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left center;
  background: var(--lagb-ink);
  transition: transform .38s var(--lagb-ease);
}

.lagb-button > span,
.lagb-button::after { position: relative; z-index: 1; }
.lagb-button::after { content: "→"; font-size: 17px; transform: none; }
.lagb-button:hover::before,
.lagb-button:focus-visible::before { transform: scaleX(1); }
.lagb-button:hover::after,
.lagb-button:focus-visible::after { transform: translateX(4px); }
.lagb-button:focus-visible { outline: 3px solid rgba(255,232,137,.55); outline-offset: 3px; }

.lagb-button--sun {
  color: var(--lagb-ink) !important;
  border-color: var(--lagb-sun);
  background: var(--lagb-sun);
}
.lagb-button--sun:hover,
.lagb-button--sun:focus-visible { color: var(--lagb-white) !important; background: var(--lagb-sun); }

.lagb-button--ink {
  color: var(--lagb-white) !important;
  border-color: var(--lagb-ink);
  background: var(--lagb-ink);
}
.lagb-button--ink::before { background: var(--lagb-sun); }
.lagb-button--ink:hover,
.lagb-button--ink:focus-visible { color: var(--lagb-ink) !important; background: var(--lagb-ink); }

.lagb-button--line {
  color: var(--lagb-ink) !important;
  border-color: var(--lagb-ink);
  background: transparent;
}
.lagb-button--line:hover,
.lagb-button--line:focus-visible { color: var(--lagb-white) !important; border-color: var(--lagb-ink); }

.lagb-button--ghost {
  color: var(--lagb-white) !important;
  border-color: rgba(255,255,255,.72);
  border-radius: 2px;
  background: transparent;
  backdrop-filter: none;
}
.lagb-button--ghost::before { background: var(--lagb-sun); }
.lagb-button--ghost:hover,
.lagb-button--ghost:focus-visible { color: var(--lagb-ink) !important; border-color: var(--lagb-sun); background: transparent; }

/* Premier écran : spectaculaire, mais avec les codes typographiques du site. */
.lagb-hero-title {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .07em;
  max-width: 980px;
  font-size: clamp(60px, 9vw, 136px);
  font-weight: 760;
  line-height: .9;
  letter-spacing: -.058em;
  text-transform: none;
}

.lagb-hero-title .is-highlight {
  width: max-content;
  max-width: 100%;
  padding: .01em .12em .07em;
  color: var(--lagb-ink);
  background: var(--lagb-sun);
  border: 1px solid var(--lagb-sun);
}

.lagb-hero-title .is-outline { color: inherit; -webkit-text-stroke: 0; padding-left: 0; }
.lagb-hero-copy { max-width: 690px; font-size: clamp(19px, 1.75vw, 26px); line-height: 1.38; }
.lagb-hero::after { opacity: .42; }
.lagb-hero-logo { border-radius: 50%; }

.lagb-subnav .is-cta {
  padding: 11px 18px;
  border: 1px solid var(--lagb-ink);
  border-radius: 2px;
  transition: color .3s, background-color .3s;
}
.lagb-subnav .is-cta:hover { color: var(--lagb-ink); background: var(--lagb-sun); }

/* Le texte validé ouvre directement la page : aucune micro-rubrique numérotée. */
.lagb-intro::after { display: none; }
.lagb-intro-grid { align-items: center; }
.lagb-intro .lagb-lead:first-child { margin-top: 0; }
.lagb-stat { min-height: 310px; }
.lagb-stat-number { font-size: clamp(92px, 12vw, 176px); font-weight: 760; }

.lagb-brand-word { font-weight: 720; letter-spacing: -.055em; }
.lagb-brand-caption { color: var(--lagb-sun); }

.lagb-purpose-grid { grid-template-columns: minmax(320px, .92fr) minmax(0, 1.08fr); gap: clamp(54px, 8vw, 120px); }
.lagb-purpose .lagb-body-copy { color: rgba(255,255,255,.74); }
.lagb-verbs { border-color: rgba(255,255,255,.28); }
.lagb-verb {
  grid-template-columns: 1fr;
  min-height: 128px;
  padding: 18px 0;
  border-color: rgba(255,255,255,.28);
}
.lagb-verb strong { font-size: clamp(42px, 4.9vw, 70px); font-weight: 680; }
.lagb-manifesto { font-weight: 520; line-height: 1.35; }
.lagb-manifesto mark { font-weight: 680; }

/* Équipe : quatre fonctions, un traitement volontairement sobre. */
.lagb-team { background: var(--lagb-white); }
.lagb-team-track { grid-auto-columns: minmax(300px, 27vw); gap: 14px; }
.lagb-person {
  min-height: 420px;
  padding: 28px;
  border: 1px solid var(--lagb-line);
  border-radius: 2px;
  background: var(--lagb-person-accent, var(--lagb-paper));
}
.lagb-person-role { padding: 8px 11px; border-radius: 2px; font-size: 10px; }
.lagb-person h3 { font-size: clamp(34px, 3vw, 50px); font-weight: 690; line-height: 1.03; }
.lagb-person-initials { font-size: 150px; font-weight: 740; }
.lagb-relations { margin-top: 52px; }
.lagb-team-controls button { border-radius: 2px; }

/* Bénéfices : repères graphiques, jamais de 01/02/03. */
.lagb-benefit {
  position: relative;
  grid-template-columns: 1fr;
  padding: 30px 0 30px 28px;
}
.lagb-benefit::before {
  content: "";
  position: absolute;
  top: 36px;
  left: 0;
  width: 11px;
  height: 11px;
  border: 2px solid var(--lagb-sun);
  background: transparent;
}
.lagb-benefit h3 { font-size: clamp(24px, 2vw, 31px); font-weight: 680; }

/* Vie associative : photographie si elle existe, bleu du site sinon. */
.lagb-life-stage { min-height: 520px; }
.lagb-life-card { min-height: 520px; background: var(--lagb-deep-2); }
.lagb-life-card::before,
.lagb-life-card:nth-child(2)::before,
.lagb-life-card:nth-child(3)::before,
.lagb-life-card:nth-child(4)::before {
  opacity: 1;
  transform: none;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(3,27,37,.44));
}
.lagb-life-card:nth-child(even) { background: #0b3848; }
.lagb-life-card:hover::before { opacity: 1; transform: none; }
.lagb-life-card h3 { font-weight: 680; }

/* Billet événement : formes nettes et une seule couleur d'accent. */
.lagb-event-ticket { border-radius: 2px; box-shadow: 0 20px 55px rgba(6,44,61,.08); }
.lagb-ticket-visual {
  background: linear-gradient(135deg, transparent 0 48%, rgba(255,232,137,.95) 48% 49%, transparent 49%), var(--lagb-ink);
}
.lagb-ticket-visual::before,
.lagb-ticket-visual::after { display: none; }
.lagb-ticket-date {
  width: 150px;
  aspect-ratio: auto;
  min-height: 110px;
  border: 1px solid var(--lagb-sun);
  border-radius: 2px;
  color: var(--lagb-ink);
  background: var(--lagb-sun);
  backdrop-filter: none;
}
.lagb-ticket-body h3 { font-size: clamp(36px, 4.3vw, 62px); font-weight: 700; line-height: 1.02; }
.lagb-invite { border-radius: 2px; }
.lagb-event-label,
.lagb-ticket-label {
  margin: 0 0 20px;
  color: currentColor;
  font-size: 12px;
  font-weight: 720;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.lagb-event-label { color: var(--lagb-ink); }

/* Les thèmes sont une liste éditoriale statique, sans fausse interaction. */
.lagb-themes { background: var(--lagb-sun); }
.lagb-themes-layout { grid-template-columns: .92fr 1.08fr; gap: clamp(54px, 8vw, 120px); }
.lagb-themes-list { grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; border-top: 1px solid rgba(6,44,61,.28); }
.lagb-theme-item {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 82px;
  padding: 19px 18px 19px 28px;
  border-bottom: 1px solid rgba(6,44,61,.28);
  font-size: clamp(17px, 1.55vw, 22px);
  font-weight: 650;
  line-height: 1.2;
}
.lagb-theme-item:nth-child(odd) { border-right: 1px solid rgba(6,44,61,.28); }
.lagb-theme-item::before { content: ""; position: absolute; left: 0; width: 11px; height: 2px; background: var(--lagb-ink); }

/* Grandes soirées : on conserve l'immersion, sans contour typographique artificiel. */
.lagb-lights span:nth-child(3) { background: linear-gradient(to bottom, rgba(255,232,137,.42), transparent 75%); }
.lagb-evening-title { max-width: 980px; font-size: clamp(58px, 8vw, 118px); font-weight: 720; line-height: .93; letter-spacing: -.055em; text-transform: none; }
.lagb-evening-title mark { width: max-content; max-width: 100%; margin-left: .16em; }

/* Idées : un vrai passage vers la page Je propose, pas une animation décorative. */
.lagb-ideas-wrap { border-radius: 2px; box-shadow: 0 18px 55px rgba(6,44,61,.07); }
.lagb-ideas-copy h2 { font-size: clamp(42px, 5.2vw, 72px); font-weight: 700; line-height: 1.02; }
.lagb-ideas-visual {
  min-height: 620px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding: clamp(42px, 6vw, 86px);
  color: var(--lagb-ink);
  background: var(--lagb-sun);
}
.lagb-ideas-visual::before {
  content: "JE PROPOSE";
  color: transparent;
  -webkit-text-stroke: 1px rgba(6,44,61,.28);
  font-size: clamp(72px, 9vw, 132px);
  font-weight: 740;
  line-height: .82;
  letter-spacing: -.065em;
}
.lagb-ideas-visual > strong { max-width: 520px; font-size: clamp(27px, 3vw, 42px); font-weight: 620; line-height: 1.15; letter-spacing: -.035em; }
.lagb-ideas-link {
  position: relative;
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 18px 0;
  border-top: 1px solid rgba(6,44,61,.4);
  border-bottom: 1px solid rgba(6,44,61,.4);
  font-size: 17px;
  font-weight: 720;
}
.lagb-ideas-link span { transition: transform .3s var(--lagb-ease); }
.lagb-ideas-link:hover span { transform: translateX(6px); }

/* Soutien et choix : mise en page éditoriale, sans index ni mots géants fantômes. */
.lagb-support-grid article { min-height: 270px; padding: 32px; }
.lagb-support-grid h3 { margin: 78px 0 16px; font-size: clamp(28px, 2.5vw, 38px); font-weight: 680; }
.lagb-choice-head { padding: clamp(70px, 8vw, 120px) max(32px, calc((100vw - min(var(--lagb-content), calc(100vw - 64px))) / 2)); background: var(--lagb-white); }
.lagb-choice-head h2 { max-width: 900px; margin: 0; font-size: clamp(44px, 5.7vw, 84px); font-weight: 720; line-height: 1.01; letter-spacing: -.045em; }
.lagb-choice-grid { min-height: 620px; }
.lagb-choice-panel { min-height: 620px; }
.lagb-choice-panel::before { display: none; }
.lagb-choice-panel h3 { font-size: clamp(44px, 5vw, 72px); font-weight: 700; line-height: 1; }

.lagb-calculator { border-radius: 2px; box-shadow: 0 20px 55px rgba(6,44,61,.1); }
.lagb-presets button { border-radius: 2px; }

.lagb-finale { min-height: 780px; }
.lagb-finale h2 { font-size: clamp(58px, 8vw, 116px); font-weight: 720; line-height: .9; letter-spacing: -.055em; text-transform: none; }
.lagb-site-links {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 68px;
  border-top: 1px solid rgba(255,255,255,.28);
  text-align: left;
}
.lagb-site-links a {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 18px 14px;
  border-bottom: 1px solid rgba(255,255,255,.28);
  color: rgba(255,255,255,.78);
  font-size: 13px;
  font-weight: 620;
  transition: color .25s, background-color .25s;
}
.lagb-site-links a + a { border-left: 1px solid rgba(255,255,255,.28); }
.lagb-site-links a:hover { color: var(--lagb-ink); background: var(--lagb-sun); }
.lagb-site-links a span { transition: transform .25s; }
.lagb-site-links a:hover span { transform: translateX(4px); }

@media (max-width: 1100px) {
  .lagb-themes-layout { grid-template-columns: 1fr; }
  .lagb-site-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lagb-site-links a + a { border-left: 0; }
  .lagb-site-links a:nth-child(even) { border-left: 1px solid rgba(255,255,255,.28); }
}

@media (max-width: 760px) {
  .lagb-display { font-size: clamp(39px, 12vw, 58px); }
  .lagb-hero-title { gap: .1em; font-size: clamp(51px, 17vw, 78px); line-height: .94; }
  .lagb-hero-title .is-highlight { width: auto; }
  .lagb-button { min-height: 50px; }
  .lagb-purpose-grid { gap: 48px; }
  .lagb-team-track { grid-auto-columns: minmax(278px, 84vw); }
  .lagb-benefit { padding-left: 25px; }
  .lagb-life-stage,
  .lagb-life-card { min-height: auto; }
  .lagb-life-card { min-height: 390px; }
  .lagb-themes-list { grid-template-columns: 1fr; }
  .lagb-theme-item:nth-child(odd) { border-right: 0; }
  .lagb-evening-title { font-size: clamp(49px, 15vw, 76px); }
  .lagb-evening-title mark { margin-left: 0; }
  .lagb-ideas-visual { min-height: 430px; }
  .lagb-ideas-visual::before { font-size: clamp(64px, 20vw, 92px); }
  .lagb-support-grid article { min-height: 220px; }
  .lagb-support-grid h3 { margin-top: 42px; }
  .lagb-choice-head { padding-inline: 18px; }
  .lagb-choice-head h2 { font-size: clamp(40px, 12vw, 58px); }
  .lagb-choice-grid,
  .lagb-choice-panel { min-height: auto; }
  .lagb-choice-panel { padding: 72px 26px; }
  .lagb-finale h2 { font-size: clamp(52px, 16vw, 80px); }
  .lagb-site-links { grid-template-columns: 1fr; margin-top: 50px; }
  .lagb-site-links a:nth-child(even) { border-left: 0; }
}

/*
 * Ajustements v1.2
 * Composants arrondis du site, rythme mobile dédié et respirations photo.
 */
.lagb-amis {
  --lagb-radius: 22px;
  --lagb-radius-lg: 34px;
}

.lagb-actions {
  gap: 12px;
  margin-top: 32px;
}

/* Bouton du site : Figtree 800, forme capsule et remplissage horizontal. */
.lagb-button,
.lagb-button--ghost {
  min-height: 0;
  padding: 15px 45px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0;
}

.lagb-button::before { border-radius: inherit; }
.lagb-button::after { flex: 0 0 auto; font-size: 19px; }
.lagb-invite > .lagb-button { margin-top: 28px; }
.lagb-purpose .lagb-button { margin-top: 2px; }
.lagb-team-footer { width: min(var(--lagb-content), calc(100% - 64px)); margin: 42px auto 0; }

.lagb-hero-mobile-poster {
  position: absolute;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: .56;
  filter: saturate(.75) contrast(1.05);
}

/* Le compteur retrouve une présence forte sans devenir une carte générique. */
.lagb-stat {
  position: relative;
  min-height: 340px;
  align-content: center;
  padding: clamp(34px, 5vw, 66px);
  overflow: hidden;
  border: 0;
  border-radius: var(--lagb-radius-lg);
  color: var(--lagb-ink);
  background: var(--lagb-sun);
  box-shadow: 0 24px 70px rgba(6,44,61,.10);
}

.lagb-stat::before {
  content: "";
  position: absolute;
  inset: -60% auto -60% -35%;
  width: 32%;
  transform: skewX(-16deg) translateX(-280%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.58), transparent);
  pointer-events: none;
}

.lagb-stat::after {
  content: "";
  position: absolute;
  right: -72px;
  bottom: -92px;
  width: 250px;
  aspect-ratio: 1;
  border: 1px solid rgba(6,44,61,.16);
  border-radius: 50%;
  box-shadow: 0 0 0 36px rgba(6,44,61,.035);
}

.lagb-stat.is-in::before { animation: lagb-stat-sheen 1.15s .35s var(--lagb-ease) both; }
.lagb-stat-number,
.lagb-stat-label { position: relative; z-index: 1; }
.lagb-stat-number { font-size: clamp(92px, 11.5vw, 166px); line-height: .82; }
.lagb-stat-label { max-width: 350px; margin-top: 28px; font-size: 17px; }

@keyframes lagb-stat-sheen {
  to { transform: skewX(-16deg) translateX(720%); }
}

/* Révélation du logo : une découverte, sans mots géants en arrière-plan. */
.lagb-brand-bridge {
  min-height: 94vh;
  min-height: 94svh;
  grid-template-rows: 1fr auto 1fr;
  gap: clamp(28px, 5vh, 58px);
  padding: clamp(80px, 10vh, 120px) 24px;
  color: var(--lagb-ink);
  background:
    radial-gradient(circle at 50% 50%, rgba(255,232,137,.34), transparent 34%),
    var(--lagb-paper);
}

.lagb-brand-intro {
  align-self: end;
  text-align: center;
}

.lagb-brand-intro h2 {
  max-width: 760px;
  margin: 0 auto;
  font-size: clamp(38px, 5.3vw, 78px);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -.045em;
}

.lagb-brand-disc {
  width: min(32vw, 390px);
  padding: clamp(28px, 4vw, 54px);
  border-color: rgba(6,44,61,.16);
  background: var(--lagb-white);
  box-shadow: 0 28px 90px rgba(6,44,61,.14);
}

.lagb-brand-disc::before { inset: -24px; border-color: rgba(6,44,61,.14); }
.lagb-brand-orbit {
  position: absolute;
  inset: -48px;
  border: 1px solid rgba(6,44,61,.10);
  border-radius: 50%;
  animation: lagb-logo-orbit 12s linear infinite;
}
.lagb-brand-orbit::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -6px;
  width: 12px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--lagb-sun);
  box-shadow: 0 0 0 7px var(--lagb-paper);
  transform: translateY(-50%);
}

.lagb-brand-caption {
  position: static;
  align-self: start;
  max-width: 620px;
  margin: 0 auto;
  color: #43565e;
  font-size: clamp(15px, 1.4vw, 18px);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: 0;
  text-align: center;
  text-transform: none;
}

.lagb-brand-word { display: none; }
@keyframes lagb-logo-orbit { to { rotate: 360deg; } }

/* Cartes de l'équipe, proches des modules éditoriaux de la page d'accueil. */
.lagb-person {
  min-height: 430px;
  border-radius: var(--lagb-radius);
  box-shadow: 0 14px 38px rgba(6,44,61,.06);
  transition: transform .4s var(--lagb-ease), box-shadow .4s var(--lagb-ease), border-color .4s;
}
.lagb-person-role { border-radius: 999px; }
.lagb-team-controls button { border-radius: 50%; }

@media (hover: hover) {
  .lagb-person:hover {
    transform: translateY(-7px);
    border-color: rgba(6,44,61,.3);
    box-shadow: 0 24px 58px rgba(6,44,61,.11);
  }
}

/* Les formats du mouvement deviennent de vraies cartes photo arrondies. */
.lagb-life-stage {
  width: min(var(--lagb-content), calc(100% - 64px));
  min-height: 520px;
  gap: 16px;
  margin: 72px auto 0;
  border: 0;
}
.lagb-life-card {
  min-height: 520px;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: var(--lagb-radius);
  box-shadow: 0 18px 52px rgba(0,0,0,.12);
  transition: transform .45s var(--lagb-ease), box-shadow .45s var(--lagb-ease);
}
@media (hover: hover) {
  .lagb-life-card:hover { transform: translateY(-7px); box-shadow: 0 28px 64px rgba(0,0,0,.18); }
}

/* Respiration photo plein écran, sticky sur ordinateur et simple sur mobile. */
.lagb-photo-story { position: relative; min-height: 145vh; background: var(--lagb-deep); }
.lagb-photo-story-frame {
  position: sticky;
  top: var(--lagb-header-offset);
  height: calc(100svh - var(--lagb-header-offset));
  min-height: 620px;
  overflow: hidden;
}
.lagb-amis--has-subnav .lagb-photo-story-frame {
  top: calc(var(--lagb-header-offset) + 60px);
  height: calc(100svh - var(--lagb-header-offset) - 60px);
}
.lagb-photo-story-main { width: 100%; height: 100%; object-fit: cover; }
.lagb-photo-story-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,27,37,.05), rgba(3,27,37,.48)); }
.lagb-photo-story-secondary {
  position: absolute;
  right: max(32px, calc((100vw - min(var(--lagb-content), calc(100vw - 64px))) / 2));
  bottom: clamp(38px, 7vh, 82px);
  width: min(31vw, 430px);
  height: min(46vh, 520px);
  margin: 0;
  overflow: hidden;
  border: 8px solid var(--lagb-paper);
  border-radius: var(--lagb-radius-lg);
  box-shadow: 0 28px 80px rgba(0,0,0,.3);
}
.lagb-photo-story-secondary img { width: 100%; height: 100%; object-fit: cover; }
.lagb-photo-story-caption {
  position: absolute;
  left: max(32px, calc((100vw - min(var(--lagb-content), calc(100vw - 64px))) / 2));
  bottom: clamp(42px, 8vh, 92px);
  max-width: min(560px, 45vw);
  margin: 0;
  color: var(--lagb-white);
  font-size: clamp(22px, 2.8vw, 40px);
  font-weight: 650;
  line-height: 1.14;
  letter-spacing: -.035em;
}

/* Billet, invitation et autres grands modules. */
.lagb-event-ticket,
.lagb-invite,
.lagb-ideas-wrap,
.lagb-calculator { border-radius: var(--lagb-radius-lg); }
.lagb-ticket-date { border-radius: var(--lagb-radius); }
.lagb-invite { padding: clamp(30px, 4vw, 44px); }
.lagb-invite p { margin-top: 14px; }

/* Thématiques : plus de grille collée aux tirets, chaque ligne réagit au survol. */
.lagb-themes-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  border: 0;
}
.lagb-theme-item,
.lagb-theme-item:nth-child(odd) {
  isolation: isolate;
  min-height: 94px;
  padding: 22px 22px 22px 48px;
  overflow: hidden;
  border: 1px solid rgba(6,44,61,.16);
  border-radius: 18px;
  background: rgba(255,255,255,.16);
  transition: transform .3s var(--lagb-ease), border-color .3s, box-shadow .3s;
}
.lagb-theme-item::before {
  left: 22px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--lagb-ink);
  transition: transform .35s var(--lagb-ease), background-color .35s;
}
.lagb-theme-item::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  transform: scaleX(0);
  transform-origin: left center;
  background: var(--lagb-white);
  transition: transform .42s var(--lagb-ease);
}
@media (hover: hover) {
  .lagb-theme-item:hover { transform: translateY(-4px); border-color: rgba(6,44,61,.28); box-shadow: 0 14px 34px rgba(6,44,61,.09); }
  .lagb-theme-item:hover::after { transform: scaleX(1); }
  .lagb-theme-item:hover::before { transform: scale(1.45); background: var(--lagb-sun); box-shadow: 0 0 0 4px var(--lagb-ink); }
}

/* Une photo peut désormais prendre le relais des faisceaux de la grande soirée. */
.lagb-evening-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lagb-evening.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,27,37,.32), rgba(3,27,37,.94)); }
.lagb-evening.has-image .lagb-lights { opacity: .24; }
.lagb-evening-inner { position: relative; z-index: 2; }

/* Les modules de soutien et d'engagement gagnent des volumes plus doux. */
.lagb-support-grid {
  gap: 14px;
  border: 0;
}
.lagb-support-grid article {
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: var(--lagb-radius);
  background: rgba(255,255,255,.035);
  transition: transform .35s var(--lagb-ease), background-color .35s;
}
@media (hover: hover) {
  .lagb-support-grid article:hover { transform: translateY(-6px); background: rgba(255,255,255,.075); }
}

.lagb-choice { padding-bottom: clamp(76px, 10vw, 140px); }
.lagb-choice-grid {
  width: min(var(--lagb-content), calc(100% - 64px));
  min-height: 0;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin: 0 auto;
}
.lagb-choice-panel {
  min-height: 590px;
  border-radius: var(--lagb-radius-lg);
  box-shadow: 0 22px 62px rgba(6,44,61,.10);
  transition: transform .42s var(--lagb-ease), box-shadow .42s var(--lagb-ease);
}
.lagb-choice-panel:nth-child(2) { transition-delay: 90ms; }
.lagb-choice-panel .lagb-button { margin-top: 36px; }
.lagb-choice-note { margin-top: 2px; border-radius: var(--lagb-radius); }
@media (hover: hover) {
  .lagb-choice-panel:hover { transform: translateY(-7px); box-shadow: 0 32px 78px rgba(6,44,61,.15); }
}

.lagb-calculator {
  position: relative;
  overflow: hidden;
  box-shadow: 0 28px 78px rgba(6,44,61,.15);
}
.lagb-calculator::before {
  content: "";
  position: absolute;
  right: -110px;
  top: -120px;
  width: 300px;
  aspect-ratio: 1;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 50%;
  box-shadow: 0 0 0 42px rgba(255,255,255,.02);
}
.lagb-calculator > * { position: relative; z-index: 1; }
.lagb-presets button { border-radius: 999px; transition: transform .25s, color .25s, background-color .25s; }
.lagb-presets button:hover { transform: translateY(-2px); }
.lagb-calculator input[type="range"] {
  background: linear-gradient(90deg, var(--lagb-sun) 0 var(--lagb-range-progress, 18%), rgba(255,255,255,.2) var(--lagb-range-progress, 18%) 100%);
}
.lagb-tax-result strong { transition: transform .24s var(--lagb-ease), opacity .24s; transform-origin: right bottom; }
.lagb-tax-result strong.is-updating { transform: translateY(-3px) scale(1.035); opacity: .78; }

@media (max-width: 1100px) {
  .lagb-brand-disc { width: min(44vw, 380px); }
  .lagb-life-stage { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lagb-choice-panel { min-height: 520px; padding: clamp(40px, 7vw, 70px); }
}

@media (max-width: 760px) {
  .lagb-amis { --lagb-radius: 18px; --lagb-radius-lg: 24px; }
  .lagb-section-inner,
  .lagb-hero-inner,
  .lagb-evening-inner { width: calc(100% - 36px); }

  .lagb-section { padding-block: clamp(64px, 18vw, 82px); }
  .lagb-section-head { gap: 28px; }
  .lagb-display { font-size: clamp(38px, 11.8vw, 54px); line-height: 1.03; letter-spacing: -.04em; }
  .lagb-lead { margin-top: 24px; font-size: 19px; line-height: 1.48; }
  .lagb-body-copy { margin-top: 22px; font-size: 16px; line-height: 1.65; }
  .lagb-actions { grid-template-columns: 1fr; gap: 10px; margin-top: 28px; }
  .lagb-button,
  .lagb-button--ghost { width: auto; max-width: 100%; min-height: 50px; padding: 14px 26px; white-space: normal; }
  .lagb-actions .lagb-button { width: 100%; }

  .lagb-hero { min-height: max(700px, 100svh); }
  .lagb-hero-inner { padding: 116px 0 42px; }
  .lagb-hero-title { gap: .08em; font-size: clamp(46px, 15.5vw, 68px); line-height: .98; letter-spacing: -.052em; }
  .lagb-hero-bottom { gap: 28px; margin-top: 36px; }
  .lagb-hero-copy { font-size: 18px; line-height: 1.42; }
  .lagb-hero-logo { width: 78px !important; top: 20px; right: 18px; padding: 10px; }
  .lagb-hero.has-mobile-poster .lagb-hero-video { display: none; }
  .lagb-hero.has-mobile-poster .lagb-hero-mobile-poster { display: block; }

  .lagb-subnav { top: var(--lagb-header-offset); }
  .lagb-subnav-inner { width: 100%; min-height: 54px; justify-content: space-around; gap: 12px; padding-inline: 16px; }
  .lagb-subnav a { padding: 17px 0; font-size: 10px; letter-spacing: .055em; }

  .lagb-intro-grid { gap: 36px; }
  .lagb-stat { min-height: 250px; padding: 30px 26px; }
  .lagb-stat-number { font-size: clamp(78px, 25vw, 108px); }
  .lagb-stat-label { max-width: 270px; margin-top: 22px; font-size: 15px; }

  .lagb-brand-bridge { min-height: 720px; gap: 34px; padding: 74px 18px; }
  .lagb-brand-intro h2 { font-size: clamp(38px, 12vw, 54px); }
  .lagb-brand-disc { width: min(68vw, 300px) !important; }
  .lagb-brand-orbit { inset: -30px; }
  .lagb-brand-caption { width: min(100%, 420px); font-size: 15px; }

  .lagb-purpose-grid,
  .lagb-join-grid,
  .lagb-event-wrap,
  .lagb-tax-grid { gap: 44px; }
  .lagb-verb { min-height: 96px; }
  .lagb-verb strong { font-size: clamp(37px, 12vw, 48px); }

  .lagb-team-controls { margin-top: 22px; }
  .lagb-team-track { grid-auto-columns: calc(100vw - 54px); gap: 12px; margin-top: 38px; padding-inline: 18px; }
  .lagb-person { min-height: 360px; padding: 24px; }
  .lagb-person h3 { font-size: clamp(33px, 10vw, 44px); }
  .lagb-team-footer { width: calc(100% - 36px); margin-top: 34px; }

  .lagb-benefit { padding: 26px 0 26px 24px; }
  .lagb-benefit::before { top: 33px; width: 9px; height: 9px; }
  .lagb-join-action { margin-top: 30px; }

  .lagb-life { padding-bottom: 18px; }
  .lagb-life-stage { width: calc(100% - 36px); grid-template-columns: 1fr; gap: 12px; margin-top: 44px; }
  .lagb-life-card { min-height: 390px; padding: 28px 24px; }
  .lagb-life-cta { padding: 34px 18px 46px; }

  .lagb-photo-story { min-height: 0; padding: 18px; }
  .lagb-photo-story-frame { position: relative; top: auto; height: auto; min-height: 0; display: grid; gap: 14px; overflow: visible; }
  .lagb-amis--has-subnav .lagb-photo-story-frame { top: auto; height: auto; }
  .lagb-photo-story-main { aspect-ratio: 4 / 5; height: auto; border-radius: var(--lagb-radius-lg); }
  .lagb-photo-story-shade { inset: 0 0 auto; aspect-ratio: 4 / 5; border-radius: var(--lagb-radius-lg); }
  .lagb-photo-story-secondary { position: relative; right: auto; bottom: auto; width: 72%; height: auto; aspect-ratio: 4 / 3; justify-self: end; border-width: 5px; }
  .lagb-photo-story-caption { position: relative; left: auto; bottom: auto; max-width: none; padding: 8px 4px 28px; font-size: 24px; }

  .lagb-ticket-visual { min-height: 230px; }
  .lagb-ticket-body { padding: 30px 22px; }
  .lagb-ticket-body h3 { font-size: clamp(34px, 10.5vw, 46px); }
  .lagb-ticket-meta { gap: 7px 15px; margin-top: 22px; }
  .lagb-ticket-text { margin-top: 24px; font-size: 16px; }
  .lagb-invite { margin-top: 18px; padding: 28px 22px; }

  .lagb-themes-layout { gap: 42px; }
  .lagb-themes-list { grid-template-columns: 1fr; gap: 9px; }
  .lagb-theme-item,
  .lagb-theme-item:nth-child(odd) { min-height: 74px; padding: 18px 18px 18px 42px; border-right: 1px solid rgba(6,44,61,.16); font-size: 18px; }
  .lagb-theme-item::before { left: 18px; width: 7px; height: 7px; }

  .lagb-evening { min-height: 720px; }
  .lagb-evening-inner { padding-block: 86px 62px; }
  .lagb-evening-title { font-size: clamp(46px, 14vw, 64px); }
  .lagb-evening-event h3 { font-size: 30px; }

  .lagb-ideas-wrap { overflow: hidden; }
  .lagb-ideas-copy { padding: 38px 22px; }
  .lagb-ideas-visual { min-height: 360px; padding: 30px 22px; }
  .lagb-ideas-visual::before { font-size: clamp(54px, 18vw, 78px); }

  .lagb-support-grid { gap: 10px; margin-top: 46px; }
  .lagb-support-grid article { min-height: 210px; padding: 26px 24px; }
  .lagb-support-grid h3 { margin-top: 36px; }

  .lagb-choice { padding-bottom: 78px; }
  .lagb-choice-head { padding: 68px 18px 42px; }
  .lagb-choice-head h2 { font-size: clamp(38px, 11.5vw, 52px); }
  .lagb-choice-grid { width: calc(100% - 36px); grid-template-columns: 1fr; gap: 14px; }
  .lagb-choice-panel { min-height: 430px; padding: 38px 24px; }
  .lagb-choice-panel h3 { font-size: clamp(39px, 12vw, 54px); }
  .lagb-choice-panel > p:not(.lagb-eyebrow) { margin-top: 22px; font-size: 16px; }
  .lagb-choice-panel .lagb-button { margin-top: 30px; }
  .lagb-choice-note { margin-top: 0; padding: 20px; }

  .lagb-calculator { padding: 32px 22px; }
  .lagb-amount-row strong { font-size: clamp(66px, 22vw, 88px); }
  .lagb-tax-result { gap: 16px; margin-top: 34px; padding-top: 25px; }
  .lagb-tax-result strong { font-size: 52px; transform-origin: left bottom; }

  .lagb-finale { min-height: 720px; padding: 90px 18px; }
  .lagb-finale h2 { font-size: clamp(48px, 14.5vw, 68px); line-height: .94; }
  .lagb-finale-inner > p:not(.lagb-finale-kicker) { margin-top: 26px; font-size: 17px; }
}
