/* Framer-lite: instant SSR visibility + local interactions only. */
.framer-133ntjc-container {
  transform: translateX(-50%) !important;
}

/* Unhide all Framer SSR placeholders immediately (no JS, no delays). */
[data-framer-appear-id],
[style*="opacity:0"]:not(.framer-133ntjc-container):not(.framer-133ntjc-container *),
[style*="opacity: 0"]:not(.framer-133ntjc-container):not(.framer-133ntjc-container *),
[style*="opacity:0.001"]:not(.framer-133ntjc-container):not(.framer-133ntjc-container *) {
  opacity: 1 !important;
}

/* Reset SSR slide-in offsets only — never touch perspective / rotate layout. */
[data-framer-appear-id][style*="translateY"],
[data-framer-appear-id][style*="scale("],
[style*="opacity:0"][style*="translateY"]:not(.framer-133ntjc-container),
[style*="opacity:0"][style*="scale("]:not(.framer-133ntjc-container),
[style*="opacity: 0"][style*="translateY"]:not(.framer-133ntjc-container),
[style*="opacity: 0"][style*="scale("]:not(.framer-133ntjc-container) {
  transform: none !important;
}

.framer-text[data-text-fill="true"],
span[data-text-fill="true"] {
  -webkit-text-fill-color: transparent !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  display: inline-block;
}

canvas,
.framer-1l6dcv4-container {
  display: none !important;
}

/*
 * Hero dashboard border beam.
 * The Framer "Stroke" layer sits behind an opaque image frame (overflow:hidden),
 * so a moving radial only ever peeks out at the top. Put a real perimeter beam
 * on the visible Outer Stroke instead.
 */
@property --hih-beam-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Hide the static/clipped Framer stroke hotspot. */
.framer-15kt1y9[data-framer-name="Stroke"],
.framer-RADRW .framer-15kt1y9 {
  background: none !important;
  animation: none !important;
}

.framer-a5l0a[data-framer-name="Outer Stroke"] {
  isolation: isolate;
}

.framer-a5l0a[data-framer-name="Outer Stroke"]::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 3;
  background: conic-gradient(
    from var(--hih-beam-angle),
    transparent 0deg,
    transparent 320deg,
    rgba(173, 208, 21, 0.2) 335deg,
    var(--token-39139dc2-5826-48d3-90f9-4b466d460b8b, rgb(173, 208, 21)) 348deg,
    rgb(220, 245, 120) 354deg,
    transparent 360deg
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  animation: hihBeamSpin 7s linear infinite;
}

@keyframes hihBeamSpin {
  to { --hih-beam-angle: 360deg; }
}

@media (prefers-reduced-motion: reduce) {
  .framer-a5l0a[data-framer-name="Outer Stroke"]::before {
    animation: none !important;
    background: none !important;
  }
}

.framer-MHyaH .framer-QXBTI.framer-wb4i0e {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 32px !important;
  width: auto !important;
  min-width: min-content !important;
}

.framer-QXBTI,
.framer-fICgs,
.framer-sc94c {
  transition: transform .18s ease, background-color .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.framer-QXBTI.hover,
.framer-fICgs.hover {
  transform: translateY(-1px) !important;
}

.framer-QXBTI .framer-gwkq25:has(div[style="display:contents"]) {
  display: none !important;
}

.framer-lite-mobile-menu {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
  padding-top: 24px;
}
.framer-lite-menu-link {
  display: block;
  border-radius: 12px;
  background: var(--token-478605a9-7d53-48cf-b49e-fa520e13d8b5, #5425b0);
  color: var(--token-64f5bd03-6b7a-43e3-ba7b-3a0b2b8b7a5e, #f2f9fe);
  text-decoration: none;
  text-align: center;
  padding: 14px 18px;
  font: 500 16px/1.4 "Plus Jakarta Sans", system-ui, sans-serif;
}

.framer-lite-answer {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  color: var(--token-d2bc7a45-11e0-468d-8e86-da93ff072b7c, #afafaf);
  font: 400 16px/1.6 Manrope, system-ui, sans-serif;
  transition: max-height .28s ease, opacity .22s ease, margin-top .22s ease !important;
}
.framer-lite-open .framer-lite-answer {
  max-height: 220px;
  opacity: 1;
  margin-top: 16px;
}

.framer-lite-tab-pulse {
  animation: framerLitePulse .28s ease;
}
@keyframes framerLitePulse {
  from { opacity: .72; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}

.framer-dirmum-container video,
.framer-dirmum-container img.framer-lite-tab-visual {
  width: 100%;
  height: 100%;
  border-radius: 22px;
  display: block;
  background-color: rgb(9, 9, 11);
}
.framer-dirmum-container img.framer-lite-tab-visual {
  object-fit: fill;
  object-position: center center;
}

/* Infinite tickers — match live Framer Ticker motion (CSS only). */
.framer-360itd-container section,
.framer-p7mmju-container section,
.framer-11m5e16-container section {
  opacity: 1 !important;
  overflow: hidden !important;
}

.framer-360itd-container section ul,
.framer-p7mmju-container section ul,
.framer-11m5e16-container section ul {
  width: max-content !important;
  max-width: none !important;
  will-change: transform;
  flex-wrap: nowrap !important;
}

.framer-360itd-container section ul {
  animation: hihMarqueeRight 60s linear infinite;
}

.framer-p7mmju-container section ul {
  animation: hihMarqueeLeft 118s linear infinite;
}

.framer-11m5e16-container section ul {
  animation: hihMarqueeRight 110s linear infinite;
}

@keyframes hihMarqueeLeft {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* Start at -50% so a rightward shift loops seamlessly over duplicated items. */
@keyframes hihMarqueeRight {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}

@media (max-width: 809.98px) {
  .framer-360itd-container section ul {
    animation-duration: 45s;
  }
  .framer-p7mmju-container section ul,
  .framer-11m5e16-container section ul {
    animation-duration: 80s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .framer-360itd-container section ul,
  .framer-p7mmju-container section ul,
  .framer-11m5e16-container section ul {
    animation: none !important;
    transform: none !important;
  }
}

/* Book A Demo section: compact mailto CTA instead of tall Calendly embed. */
.framer-isz82d-container,
.framer-qcCxP .framer-isz82d-container {
  width: 100% !important;
  max-width: 420px !important;
  height: auto !important;
  min-height: 0 !important;
  margin-inline: auto;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

/* Kill Framer's leftover Calendly-sized section height / padding on mobile. */
.framer-7sp3g3,
.framer-qcCxP .framer-7sp3g3 {
  height: auto !important;
  min-height: 0 !important;
  gap: 28px !important;
  padding: 48px 20px !important;
}

@media (max-width: 809.98px) {
  .framer-7sp3g3,
  .framer-qcCxP .framer-7sp3g3 {
    gap: 20px !important;
    padding: 32px 20px !important;
  }
}

.framer-lite-demo-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 36px !important;
  width: auto !important;
  min-width: min-content !important;
  text-decoration: none;
  background-color: var(--token-478605a9-7d53-48cf-b49e-fa520e13d8b5, rgb(84, 37, 176)) !important;
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(84, 37, 176, 0.35);
}

.framer-lite-demo-cta p {
  margin: 0;
  color: var(--token-64f5bd03-6b7a-43e3-ba7b-3a0b2b8b7a5e, rgb(242, 249, 254)) !important;
  --framer-text-color: var(--token-64f5bd03-6b7a-43e3-ba7b-3a0b2b8b7a5e, rgb(242, 249, 254)) !important;
  font: 600 16px/1.3 "Plus Jakarta Sans", system-ui, sans-serif !important;
}

/*
 * FAQ accordion titles: Framer left a 94% content width + 40px gap before the
 * chevron, which forced early wraps. Use full width and keep titles on one line.
 */
.framer-u53yf6-container,
.framer-u53yf6-container .framer-Vuh9T,
.framer-u53yf6-container .framer-mek02q,
.framer-u53yf6-container .framer-sc94c,
.framer-u53yf6-container .framer-1fuva7n {
  width: 100% !important;
  max-width: 853px !important;
}

.framer-u53yf6-container .framer-ly7958 {
  width: 100% !important;
}

.framer-u53yf6-container .framer-1ywcw29 {
  gap: 12px !important;
  width: 100% !important;
  align-items: center !important;
}

.framer-u53yf6-container .framer-1ywcw29 > * {
  margin: 0 !important;
}

.framer-u53yf6-container .framer-ltcikd {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  word-break: normal !important;
  word-wrap: normal !important;
  overflow: visible !important;
}

.framer-u53yf6-container .framer-ltcikd h3,
.framer-u53yf6-container .framer-ltcikd .framer-text {
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.framer-u53yf6-container .framer-62oit9-container {
  flex: 0 0 24px !important;
  margin-left: auto !important;
}

@media (max-width: 809.98px) {
  .framer-19mqiup {
    display: none !important;
  }

  /* Give FAQ titles the full phone width so they stay on one line at 19px. */
  .framer-qjes2t {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .framer-u53yf6-container .framer-sc94c,
  .framer-u53yf6-container .framer-1fuva7n {
    padding-left: 8px !important;
    padding-right: 8px !important;
    overflow: visible !important;
  }

  .framer-u53yf6-container .framer-1ywcw29 {
    position: relative !important;
    gap: 0 !important;
  }

  .framer-u53yf6-container .framer-62oit9-container {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    flex: none !important;
    margin: 0 !important;
  }

  .framer-u53yf6-container .framer-ltcikd {
    width: 100% !important;
    max-width: 100% !important;
    padding-right: 28px !important;
    box-sizing: border-box !important;
  }

  /*
   * Footer tagline only (.framer-17jwnxx). Keep one line on small screens
   * without touching shared text presets used elsewhere.
   */
  .framer-z8QzU .framer-17jwnxx {
    width: 100% !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    word-break: normal !important;
    word-wrap: normal !important;
    overflow: visible !important;
  }

  .framer-z8QzU .framer-17jwnxx p,
  .framer-z8QzU .framer-17jwnxx .framer-text {
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    font-size: clamp(14px, 4.7vw, 22px) !important;
    --framer-font-size: clamp(14px, 4.7vw, 22px) !important;
  }
}
