.edge-lr,
.edge-lr * {
  box-sizing: border-box;
}

.edge-lr {
  --edge-lr-bg: #eaf0ea;
  --edge-lr-max-width: 1120px;
  --edge-lr-gap: 34px;
  --edge-lr-image-ratio: 56.25%;
  --edge-lr-image-radius: 28px;
  --edge-lr-eyebrow-color: #6e8b6f;
  --edge-lr-heading-color: #080a08;
  --edge-lr-intro-color: #59645b;
  --edge-lr-body-color: #343a35;
  --edge-lr-proof-bg: #ffffff;
  --edge-lr-proof-radius: 22px;
  --edge-lr-proof-columns: 3;
  --edge-lr-btn-bg: #6e8b6f;
  --edge-lr-btn-color: #ffffff;
  --edge-lr-btn-hover-bg: #58745d;
  --edge-lr-btn-hover-color: #ffffff;
  --edge-lr-image-position: center center;
  --edge-lr-btn-radius: 999px;
  background-color: var(--edge-lr-bg) !important;
  background-image: none !important;
  color: var(--edge-lr-body-color);
  width: 100%;
  position: relative;
  isolation: isolate;
  overflow: visible;
}

.edge-lr__inner {
  width: min(100%, var(--edge-lr-max-width));
  margin-inline: auto;
  position: relative;
}

.edge-lr__lead-stage,
.edge-lr__editorial,
.edge-lr__split,
.edge-lr__sticky-layout {
  position: relative;
}

.edge-lr__lead-stage {
  margin-bottom: clamp(2rem, 7vw, 6rem);
}

.edge-lr__flip-box,
.edge-lr__split-media,
.edge-lr__sticky-media {
  position: relative;
  border-radius: var(--edge-lr-image-radius);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.35);
  transform: translateZ(0);
}

.edge-lr__flip-box--start {
  width: 100%;
  margin-inline: auto;
}

.edge-lr__flip-box--end {
  width: min(100%, 760px);
  margin: 0 auto var(--edge-lr-gap);
}

.edge-lr__ratio {
  display: block;
  width: 100%;
  padding-top: var(--edge-lr-image-ratio);
}

.edge-lr__flip-wrapper {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.edge-lr__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.35);
  will-change: transform, width, height;
  transform: translateX(0) rotate(0.001deg);
  z-index: 3;
}

.edge-lr__media img,
.edge-lr__media-img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: var(--edge-lr-image-position) !important;
  border-radius: inherit;
  position: absolute;
  inset: 0;
}

.edge-lr__media-img--start {
  opacity: 1;
  z-index: 1;
}

.edge-lr__media-img--final {
  opacity: 0;
  z-index: 2;
}

.edge-lr__editorial {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.edge-lr__copy {
  position: relative;
  width: 100%;
}

.edge-lr__copy--center {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}

.edge-lr__header {
  max-width: 820px;
  margin-inline: auto;
}

.edge-lr__eyebrow {
  margin-bottom: 0.75rem;
  color: var(--edge-lr-eyebrow-color);
  text-transform: uppercase;
  letter-spacing: 0.28em;
  font-size: 0.78rem;
  line-height: 1.2;
  font-weight: 700;
}

.edge-lr__heading {
  color: var(--edge-lr-heading-color);
  margin: 0;
  font-size: clamp(2.25rem, 5vw, 4.75rem);
  line-height: 0.92;
  letter-spacing: -0.045em;
  font-weight: 700;
}

.edge-lr__intro {
  color: var(--edge-lr-intro-color);
  margin-top: clamp(1.25rem, 2vw, 1.75rem);
  font-size: clamp(1.05rem, 1.6vw, 1.42rem);
  line-height: 1.55;
}

.edge-lr__intro p,
.edge-lr__body p {
  margin: 0;
}

.edge-lr__proof-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(var(--edge-lr-proof-columns), minmax(0, 1fr));
  gap: clamp(0.875rem, 1.5vw, 1.25rem);
  margin-top: clamp(1.5rem, 3vw, 2.4rem);
}

.edge-lr__proof-card {
  text-align: left;
  background: var(--edge-lr-proof-bg);
  border: 1px solid rgba(8, 10, 8, 0.055);
  border-radius: var(--edge-lr-proof-radius);
  padding: clamp(1.1rem, 2vw, 1.55rem);
}

.edge-lr__proof-title {
  color: var(--edge-lr-heading-color);
  margin: 0 0 0.55rem;
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 800;
}

.edge-lr__proof-text {
  color: var(--edge-lr-body-color);
  margin: 0;
  font-size: 0.94rem;
  line-height: 1.55;
}

.edge-lr__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-top: clamp(1.5rem, 2.4vw, 2.2rem);
  background: var(--edge-lr-btn-bg) !important;
  color: var(--edge-lr-btn-color) !important;
  text-decoration: none !important;
  border: 0 !important;
  border-radius: var(--edge-lr-btn-radius);
  box-shadow: none !important;
  line-height: 1;
  transition: background-color 180ms ease, color 180ms ease, transform 240ms ease;
}

.edge-lr__cta:hover,
.edge-lr__cta:focus {
  background: var(--edge-lr-btn-hover-bg) !important;
  color: var(--edge-lr-btn-hover-color) !important;
  transform: translateY(-1px);
}

.edge-lr__annotation {
  display: block;
  position: absolute;
  top: -3.5rem;
  right: 8%;
  width: min(13rem, 22vw);
  max-width: 220px;
  pointer-events: none;
  z-index: 2;
}

/* Mode B: split reveal */
.edge-lr--split_reveal .edge-lr__split {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.edge-lr--split_reveal .edge-lr__header {
  margin-left: 0;
}

.edge-lr--split_reveal .edge-lr__split-media {
  min-height: 420px;
}

.edge-lr--split_reveal .edge-lr__proof-grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

/* Mode C: sticky story */
.edge-lr--sticky_story .edge-lr__sticky-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.88fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

.edge-lr--sticky_story .edge-lr__sticky-media {
  position: sticky;
  top: 12vh;
}

.edge-lr--sticky_story .edge-lr__header {
  margin-left: 0;
}

.edge-lr--sticky_story .edge-lr__proof-grid {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}

.edge-lr--sticky_story .edge-lr__proof-card {
  min-height: 150px;
}

/* JS animation states */
.edge-lr[data-edge-lr-scroll="true"] [data-edge-lr-reveal] {
  will-change: transform, opacity;
}

.edge-lr.is-edge-lr-ready .edge-lr__media {
  will-change: transform;
}

@media (max-width: 1024px) {
  .edge-lr__inner {
    width: min(100%, calc(var(--edge-lr-max-width) + 0px));
  }

  .edge-lr--split_reveal .edge-lr__split,
  .edge-lr--sticky_story .edge-lr__sticky-layout {
    grid-template-columns: 1fr;
  }

  .edge-lr--sticky_story .edge-lr__sticky-media {
    position: relative;
    top: auto;
  }

  .edge-lr__proof-grid,
  .edge-lr--split_reveal .edge-lr__proof-grid,
  .edge-lr--sticky_story .edge-lr__proof-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .edge-lr {
    overflow: hidden;
  }

  .edge-lr__lead-stage {
    margin-bottom: clamp(1.5rem, 8vw, 2.5rem);
  }

  .edge-lr--large_to_card .edge-lr__lead-stage { display: none; }
  .edge-lr--large_to_card .edge-lr__flip-box--end { display: block; }
  .edge-lr--large_to_card .edge-lr__static-media { display: block; }

  .edge-lr__copy--center {
    text-align: left;
  }

  .edge-lr__heading {
    font-size: clamp(2.4rem, 12vw, 3.5rem);
  }

  .edge-lr__proof-grid,
  .edge-lr--split_reveal .edge-lr__proof-grid,
  .edge-lr--sticky_story .edge-lr__proof-grid {
    grid-template-columns: 1fr;
  }

  .edge-lr__annotation {
    position: relative;
    top: auto;
    right: auto;
    width: 10rem;
    margin: 0 0 1rem auto;
  }
}

/* v1.0.2 — faithful GSAP Flip structure for Option A
   The visible media target lives inside the first absolute flip wrapper.
   The destination wrapper is an empty measurement frame, just like the Osmo pattern. */
.edge-lr--large_to_card .edge-lr__inner,
.edge-lr--large_to_card .edge-lr__lead-stage,
.edge-lr--large_to_card .edge-lr__editorial,
.edge-lr--large_to_card .edge-lr__flip-box,
.edge-lr--large_to_card .edge-lr__flip-wrapper {
  overflow: visible;
}

.edge-lr--large_to_card .edge-lr__flip-box {
  background: transparent !important;
  isolation: isolate;
}

.edge-lr--large_to_card .edge-lr__flip-box--start,
.edge-lr--large_to_card .edge-lr__flip-box--end {
  position: relative;
}

.edge-lr--large_to_card .edge-lr__flip-box--end {
  pointer-events: none;
  z-index: 1;
  border: 0 !important;
  box-shadow: none !important;
}

.edge-lr--large_to_card .edge-lr__flip-box--end .edge-lr__flip-wrapper {
  background: transparent !important;
}

.edge-lr--large_to_card .edge-lr__static-media {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  z-index: 2;
}

.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__static-media {
  display: none;
}

/* Static Option A is the complete editorial end state: header, image card,
   proof points and CTA. It never leaves an empty Flip destination in the DOM. */
.edge-lr--large_to_card[data-edge-lr-scroll="false"] .edge-lr__lead-stage,
.edge-lr--large_to_card.is-edge-lr-static-layout .edge-lr__lead-stage,
.edge-lr--large_to_card.is-edge-lr-static-fallback .edge-lr__lead-stage {
  display: none;
}

.edge-lr--large_to_card[data-edge-lr-scroll="false"] .edge-lr__static-media,
.edge-lr--large_to_card.is-edge-lr-static-layout .edge-lr__static-media,
.edge-lr--large_to_card.is-edge-lr-static-fallback .edge-lr__static-media {
  display: block;
}

.edge-lr--large_to_card .edge-lr__media[data-edge-lr-flip-target],
.edge-lr--large_to_card [data-edge-lr-flip-target] {
  overflow: hidden;
  border-radius: var(--edge-lr-image-radius);
  transform-origin: center center;
  z-index: 3;
}

.edge-lr--large_to_card .edge-lr__copy {
  position: relative;
  z-index: 4;
}

.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__copy [data-edge-lr-reveal],
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__proof-card,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__cta {
  will-change: transform, opacity;
}

/* v1.3.0 — the moving media and editorial copy are deliberately sequenced.
   Copy keeps its layout position, but only becomes visible after the image has
   fully cleared the header and settled beneath it. */
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__annotation,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__eyebrow,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__heading,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__intro,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__proof-card,
.edge-lr--large_to_card.is-edge-lr-flip-active .edge-lr__cta {
  will-change: transform, opacity;
}

@media (max-width: 767px) {
  .edge-lr--large_to_card .edge-lr__lead-stage { display: none; }
  .edge-lr--large_to_card .edge-lr__flip-box--end { display: block; }
  .edge-lr--large_to_card .edge-lr__static-media { display: block; }

  .edge-lr--large_to_card .edge-lr__flip-box,
  .edge-lr--large_to_card .edge-lr__lead-stage,
  .edge-lr--large_to_card .edge-lr__editorial,
  .edge-lr--large_to_card .edge-lr__inner {
    overflow: visible;
  }
}

@media (prefers-reduced-motion: reduce) {
  .edge-lr--large_to_card .edge-lr__lead-stage { display: none; }
  .edge-lr--large_to_card .edge-lr__static-media { display: block; }
}


/* v1.0.3 — Option A: end frame lives inside the copy block, below the heading/intro.
   It is only a measurement slot for GSAP Flip; the moving target remains the only visible media. */
.edge-lr--large_to_card .edge-lr__copy .edge-lr__flip-box--end {
  margin-top: clamp(1.5rem, 3vw, 2.4rem);
  margin-bottom: clamp(1.6rem, 3.2vw, 2.6rem);
  width: min(100%, 640px);
  background: transparent !important;
}

.edge-lr--large_to_card .edge-lr__copy .edge-lr__flip-box--end .edge-lr__ratio {
  padding-top: var(--edge-lr-image-ratio);
}

.edge-lr--large_to_card .edge-lr__header,
.edge-lr--large_to_card .edge-lr__proof-grid,
.edge-lr--large_to_card .edge-lr__cta {
  position: relative;
  z-index: 5;
}

.edge-lr--large_to_card .edge-lr__annotation {
  z-index: 6;
}

.edge-lr--large_to_card .edge-lr__media-img--final {
  transition: none;
}
