/* Hide Framer template promo popup */
.framer-19yg4z7 {
  display: none !important;
}

/* Brand logo: the new wordmark is a wide SVG. Force it to display fully
   (contain, not cover) at a consistent height regardless of the React render. */
a[data-framer-name="Logo"] img,
a[data-framer-name="Logo"] [data-framer-background-image-wrapper] img {
  object-fit: contain !important;
  height: 28px !important;
  width: auto !important;
  position: relative !important;
}

/* Logo-green theme: filled accent CTAs (data-framer-name="Orange") sit on the
   bright #00ff8b brand green, so their label text is forced dark for contrast. */
[data-framer-name="Orange"] .framer-text,
[data-framer-name="Orange"] .framer-text * {
  --framer-text-color: #111111 !important;
  --extracted-r6o4lv: #111111 !important;
  --extracted-tcooor: #111111 !important;
  color: #111111 !important;
}

/* Lenis Smooth Scroll Overrides */
html.lenis {
  height: auto;
}

.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}

.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}

.lenis.lenis-stopped {
  overflow: hidden;
}

.lenis.lenis-scrolling iframe {
  pointer-events: none;
}

/* Default Body Backgrounds & Root Font Sizes */
:root body {
  background: var(
    --token-40208326-af3d-4f81-9e39-72b907a0574e,
    rgb(255, 255, 255)
  );
}

:root {
  font-size: 100%;
}

html body {
  background: rgb(255, 255, 255);
}

html {
  font-size: 112.5%;
}

@media (max-width: 809.98px) {
  html {
    font-size: 100%;
  }
}

/* --- Refresh-bug safety net: appear-animation content must never stay hidden ---
   Framer marks animated elements with inline opacity:0.001 and reveals them via
   JS. If that JS is slow or fails (e.g. on a hard refresh), sections could stay
   invisible. These rules guarantee visibility without touching transforms (some
   elements rely on translateX(-50%) for centering). */

/* Last-resort class applied by the JS guard in index.html if an element is
   still effectively invisible after the animations should have run. */
[data-framer-appear-id].nce-appear-revealed {
  opacity: 1 !important;
}

/* Visitors who prefer reduced motion get the content immediately. */
@media (prefers-reduced-motion: reduce) {
  [data-framer-appear-id] {
    opacity: 1 !important;
  }
}

/* Force overflow: hidden on the main Framer header CTA button to prevent
   secondary hover text from overflowing and creating duplicate layout lines. */
.framer-wn59h {
  overflow: hidden !important;
}

/* Hide secondary label text on Framer CTA unless button is hovered */
.framer-wn59h .framer-1g6aqoz {
  opacity: 0 !important;
  transition: opacity 0.2s ease, transform 0.2s ease !important;
}
.framer-wn59h:hover .framer-1g6aqoz {
  opacity: 1 !important;
}

/* Shift main content down to clear the fixed 64px mobile top bar */
@media (max-width: 809.98px) {
  body.pf main {
    margin-top: 64px !important;
  }
}
