@font-face {
  font-family: Sentient;
  src: url('/assets/fonts/Sentient-300.woff2') format('woff2');
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Pricing tablet corrections from the paired live comparison. */
}

/* Final precedence pass for the product fluid canvas. These declarations
   intentionally outrank the earlier 1024px snapshots while retaining their
   exact source fractions at the measured breakpoint bands. */

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

/* Framer's entrance motion uses a short, slightly overdamped spring from
   translateY(16px) with an opacity floor of .001. Keep the static geometry
   untouched while reproducing that first-viewport behavior on mount. */
@keyframes rituance-hero-rise {
  0% { opacity: .001; transform: translateY(16px); }
  10% { opacity: .1057; transform: translateY(14.3237px); }
  20% { opacity: .4653; transform: translateY(8.563px); }
  40% { opacity: .8322; transform: translateY(2.6881px); }
  70% { opacity: .9657; transform: translateY(.5496px); }
  100% { opacity: 1; transform: none; }
}

@keyframes rituance-ticker-intro {
  0% { opacity: 0; transform: translateX(-100px); }
  100% { opacity: 1; transform: none; }
}

body .reveal {
  opacity: .001;
  transform: translateY(10px);
  transition: opacity 1s cubic-bezier(.12, .23, .17, .99) var(--reveal-delay, 0ms),
    transform 1s cubic-bezier(.12, .23, .17, .99) var(--reveal-delay, 0ms);
}

body .reveal.is-visible { opacity: 1; transform: none; }

body .home-hero .hero-pill,
body .home-hero .hero-content h1,
body .home-hero .hero-content > p,
body .home-hero .hero-content > .button {
  animation: rituance-hero-rise 1s cubic-bezier(.12, .23, .17, .99) both;
}

body .home-hero .hero-pill { animation-delay: 0ms; }
body .home-hero .hero-content h1 { animation-delay: 100ms; }
body .home-hero .hero-content > p { animation-delay: 200ms; }
body .home-hero .hero-content > .button { animation-delay: 300ms; }
body .home-hero .ticker,
body .pricing-plans > .ticker {
  opacity: .9;
}

body .ticker {
  mask: linear-gradient(90deg, rgba(0, 0, 0, 0) 2%, rgb(0, 0, 0) 10%, rgba(0, 0, 0, 0.72) 90%, rgba(0, 0, 0, 0) 98%);
  -webkit-mask: linear-gradient(90deg, rgba(0, 0, 0, 0) 2%, rgb(0, 0, 0) 10%, rgba(0, 0, 0, 0.72) 90%, rgba(0, 0, 0, 0) 98%);
}

body .ticker-entry {
  display: flex;
  width: max-content;
  height: 100%;
  align-items: center;
  opacity: 0;
  transform: translateX(-100px);
  animation: none;
}

body .ticker-entry .ticker-track {
  animation-play-state: paused;
}

body .ticker.is-ticker-visible .ticker-entry {
  animation: rituance-ticker-intro .1s linear both;
}

body .ticker.is-ticker-visible .ticker-entry .ticker-track {
  animation-play-state: running;
}

@media (prefers-reduced-motion: reduce) {
  body .reveal,
  body .ticker-entry,
  body .home-hero .hero-pill,
  body .home-hero .hero-content h1,
  body .home-hero .hero-content > p,
  body .home-hero .hero-content > .button,
  body .home-hero .ticker {
    animation: none !important;
    transition: none !important;
  }
  body .ticker-entry .ticker-track {
    animation: none !important;
    transform: none !important;
  }
  body .ticker:not(.is-ticker-visible) .ticker-entry {
    opacity: 0 !important;
    transform: translateX(-100px) !important;
  }
}

/* Framer's mobile canvas keeps the same structural guide rails as desktop.
   They belong to each section's inner canvas, so they begin after the
   section breathing room and stop before the next section instead of running
   as one global rule down the page. */
@media (max-width: 1199.98px) {
  html body .home-intro,
  html body .home-product,
  html body .home-solutions,
  html body .home-customer {
    position: relative;
  }

  html body .home-intro::after,
  html body .home-solutions::after {
    position: absolute;
    top: 112px;
    left: 16px;
    width: calc(100% - 32px);
    height: calc(100% - 224px);
    border-left: 1px solid rgb(230, 227, 227);
    content: '';
    pointer-events: none;
  }

  html body .home-product::after,
  html body .home-customer::after {
    position: absolute;
    top: 112px;
    left: 16px;
    width: calc(100% - 32px);
    height: calc(100% - 224px);
    border-left: 1px solid rgba(230, 227, 227, .16);
    content: '';
    pointer-events: none;
  }

  html body .home-product::after {
    height: calc(100% - 246px);
  }

  /* The tablet hero variant removes the source's text-rail border while
     widening the copy; restore the rail without changing that composition. */
  html body .home-hero .hero-content {
    border-left: 1px solid rgba(230, 227, 227, .25);
  }

  /* FAQ's mobile section has a shorter outer canvas than its inner Framer
     container, so the line follows the inner container directly. */
  html body .home-faq .pricing-faq-inner {
    position: relative;
  }

  html body .home-faq .pricing-faq-inner::after {
    position: absolute;
    inset: 0;
    border-left: 1px solid rgb(230, 227, 227);
    content: '';
    pointer-events: none;
  }
}

/* Framer's reduced-motion ticker still performs its short viewport-entry
   reveal, then holds the marquee at its initial logo rhythm. Keep offscreen
   tickers deferred to their observer just as the source runtime does. */
@media (prefers-reduced-motion: reduce) {
  body .ticker.is-ticker-visible .ticker-entry {
    opacity: 1 !important;
    transform: none !important;
    animation: rituance-ticker-intro 100ms linear both !important;
  }

  body .ticker.is-ticker-visible .ticker-entry .ticker-track {
    animation: none !important;
    transform: none !important;
  }
}

@media (max-width: 809px) {
  /* Framer's ticker keeps its desktop logo rhythm on the mobile variant. */
  body .home-hero .hero-content { margin-bottom: 253.117px; }

  body .ticker-track {
    gap: 100px;
    padding: 0;
    animation-duration: 78.5s;
  }
}

/* The source swaps the listing hero heading element by breakpoint: h2 on
   phone/tablet, h1 on desktop. Keep the inactive variant out of layout and
   accessibility trees while preserving the source's responsive semantics. */
body .button { font-variation-settings: "wght" 500; }
body .hero-pill {
  width: 211.1953px;
  box-sizing: border-box;
  overflow: hidden;
  position: relative;
  background: rgba(59, 59, 59, .4);
}
body .hero-pill .pill-label {
  font-family: 'BDO Grotesk Variable', sans-serif;
  font-variation-settings: "wght" 500;
  font-size: 12px;
  line-height: 15.6px;
  opacity: .8;
}
body .hero-pill .pill-arrow {
  display: inline-flex;
  width: 15px;
  height: 22px;
  flex: 0 0 15px;
  align-items: center;
  justify-content: center;
  color: var(--white);
  opacity: .9;
}
body .hero-pill .pill-arrow svg {
  display: inline-block;
  width: 100%;
  height: 19px;
  align-self: flex-start;
  flex-shrink: 0;
  fill: currentColor;
}

/* Page-level Framer appears use the same one-second rise, with the hero image
   fading independently. Direct children keep their measured layout boxes. */

@font-face {
  font-family: 'Sentient Placeholder';
  src: local('Times New Roman');
  ascent-override: 80.70%;
  descent-override: 26.90%;
  line-gap-override: 6.73%;
  size-adjust: 118.96%;
}

/* Final cascade for the measured pricing composition. The earlier responsive
   base rules remain useful for the other routes, but Pricing needs these
   explicit section paddings after the shared rules have loaded. */

@media (max-width: 390px) {
  /* The source's phone hero uses a 32px eyebrow-to-heading gap on Product
     and Contact; the shared mobile fallback is one pixel taller. */
}

/* Open Roles mirrors Framer's four flex wrappers so each title, metadata
   block, and action keeps the same intrinsic metrics while retaining the
   source's separate title and View Job links. */

/* The two floating attribution badges are part of the Framer canvas, not the
   page footer. Keep their fixed stack and measured boxes stable on every
   route and viewport. */

/* Blog listing: Framer keeps the editorial hero and featured story on one
   measured desktop rhythm, then starts a six-card grid below it. */

@media (max-width: 809px) {
  /* The Blog mobile canvas keeps the header over the hero. Its measured
     section starts at the viewport origin, so the header must not consume a
     separate 64px flow row. */
}

/* Contact uses a single Framer canvas: a measured editorial header, a
   ticker, then the form floating over the same full-bleed image at both
   breakpoints. */

/* Legal pages use a deliberately quiet, single-column text canvas. The
   source keeps section labels as body-sized text and nests bullet lists
   between 20px flow gaps rather than using the generic article treatment. */

/* Company is a distinct Framer composition. Keep its measured geometry
   scoped to the standalone route so the other pages retain their own source
   layouts while this page can be tuned against the reference at both widths. */

/* Final visual corrections captured from the source interaction states. */
@media (min-width: 810px) {
  body .home-product-testimonial {
    background: #e5e5e3;
  }

  body .home-product-testimonial blockquote,
  body .home-product-testimonial .home-product-testimonial-quote {
    color: var(--ink);
  }

  body .home-product-testimonial-author {
    border-left-color: rgba(8, 8, 8, .18);
  }

  body .home-product-testimonial-author strong {
    color: var(--ink);
  }

  body .home-product-testimonial-author span {
    color: var(--muted);
  }
}

@media (min-width: 810px) {
  body .home-solution-card:not(.active) {
    display: none;
  }

  body .home-solution-card.active {
    display: block;
    animation: home-solution-enter .45s cubic-bezier(.22, .61, .36, 1) both;
  }

  body .home-solution-tabs button {
    border-bottom: 1px solid rgb(230, 227, 227);
    border-radius: 45px;
  }

  body .home-solution-tabs button.active {
    border-bottom: 1px solid rgb(230, 227, 227);
  }

  body .home-solution-tabs button:focus {
    border-radius: 45px;
  }
}

/* Framer's dark/secondary CTA surface is #030303; the ink token is used for
   text and light-section backgrounds elsewhere, so keep this correction local
   to the button surface. */
body .button:not(.button-light):not(.button-contrast) {
  background: rgb(3, 3, 3);
}

/* At the 1200px composition Framer lets each Blog card take its natural
   content height; the shared tablet/desktop rule must not shrink the image
   while the long titles and excerpts are laying out. */

/* Pricing is its own measured composition. The source template keeps the
   switch, plan cards, annual comparison and proof quote in one continuous
   rhythm, so these rules intentionally use the source breakpoints and boxes. */
@media (min-width: 810px) {

  .pricing-faq {
    height: 569.5px;
    padding: 112px 0;
    box-sizing: border-box;
  }

  .pricing-faq-inner {
    display: grid;
    grid-template-columns: 520px 520px;
    gap: 96px;
    width: 1200px;
    height: 345.5px;
    margin: 0 auto;
    padding-left: 32px;
    box-sizing: border-box;
  }

  .pricing-faq-copy {
    display: flex;
    width: 520px;
    height: 326.9px;
    flex-direction: column;
    align-items: flex-start;
  }

  .pricing-faq-copy .eyebrow { height: 17.5px; }
  .pricing-faq-copy h2 { width: 520px; margin-top: 32px; }
  .pricing-faq-copy > p { width: 480px; margin-top: 32px; color: var(--muted); line-height: 22.4px; }
  .pricing-faq-copy .button { margin-top: 32px; }

  .pricing-faq-list {
    width: 520px;
    height: 345.5px;
    padding-top: 48px;
    box-sizing: border-box;
  }

  .pricing-faq-list details {
    width: 520px;
    height: 59.5px;
    border-bottom: 1px solid var(--light-line);
  }

  .pricing-faq-list summary {
    display: flex;
    width: 520px;
    height: 59.5px;
    align-items: center;
    justify-content: space-between;
    padding: 20px 34px 20px 0;
    box-sizing: border-box;
    color: var(--ink);
    font: 400 14px/19.5px var(--body);
  }

  .pricing-faq-list summary span { font-size: 20px; line-height: 19.5px; }
  .pricing-faq-list details > p { padding: 0 34px 20px 0; color: var(--muted); font: 400 14px/18.2px var(--body); }
}

@media (max-width: 809px) {

  .pricing-faq {
    height: 1001.79px;
    padding: 112px 0;
    box-sizing: border-box;
  }

  .pricing-faq-inner {
    display: block;
    width: 358px;
    height: 777.79px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 24px;
    box-sizing: border-box;
  }

  .pricing-faq-copy {
    display: flex;
    width: 310px;
    height: 297.29px;
    flex-direction: column;
    align-items: flex-start;
  }

  .pricing-faq-copy .eyebrow { width: fit-content; height: 17.5px; justify-content: flex-start; }
  .pricing-faq-copy h2 { width: 310px; margin-top: 32px; font-size: 36px; line-height: 41.4px; text-align: left; }
  .pricing-faq-copy > p { width: 310px; margin-top: 32px; color: var(--muted); line-height: 20.8px; text-align: left; }
  .pricing-faq-copy .button { margin-top: 32px; }

  .pricing-faq-list {
    width: 310px;
    height: 384.5px;
    margin-top: 48px;
    padding-top: 48px;
    box-sizing: border-box;
  }

  .pricing-faq-list details { width: 310px; height: 59.5px; border-bottom: 1px solid var(--light-line); }
  .pricing-faq-list details:nth-child(2),
  .pricing-faq-list details:nth-child(5) { height: 79px; }
  .pricing-faq-list summary { display: flex; width: 310px; height: 59.5px; min-height: 59.5px; align-items: center; justify-content: space-between; padding: 20px 0; box-sizing: border-box; color: var(--ink); font: 400 14px/19.5px var(--body); }
  .pricing-faq-list details:nth-child(2) summary,
  .pricing-faq-list details:nth-child(5) summary { height: 79px; }
  .pricing-faq-list summary span { font-size: 20px; line-height: 19.5px; }
  .pricing-faq-list details > p { padding: 0 0 20px; color: var(--muted); font: 400 14px/18.2px var(--body); }
}

/* Customer case-study pages mirror the Framer case template: one measured
   container, a media break, then a two-column editorial body. */

@font-face {
  font-family: BDO Grotesk;
  src: url('/assets/fonts/BDO-Grotesk.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: 'BDO Grotesk Variable';
  src: url('/assets/fonts/BDO-Grotesk.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Geist Mono';
  src: url('/assets/fonts/Geist-Mono.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --black: #030303;
  --ink: #080808;
  --white: #fff;
  --paper: #f9f9f9;
  --muted: #636363;
  --dark-muted: rgba(255, 255, 255, .6);
  --line: #e6e3e329;
  --light-line: #0808081c;
  --accent: #d8f9b8;
  --gutter: 72px;
  --display: Sentient, "Sentient Placeholder", serif;
  --body: 'BDO Grotesk', Arial, sans-serif;
}

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--black); }

body {
  margin: 0;
  min-width: 320px;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  text-rendering: auto;
}

body.menu-open { overflow: hidden; }

a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, h4, h5, p, blockquote, ul { margin: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: balance; }

.site { min-height: 100vh; overflow: clip; }
.theme-dark { background: var(--black); color: var(--white); }
.dark-section { background: var(--black); color: var(--white); }
.light-section { background: var(--paper); color: var(--ink); }

.site-header {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  width: 100%;
  height: 72px;
  padding: 0 40px;
}

.site-header.header-light::after {
  position: absolute;
  inset: 0;
  border-bottom: 1px solid rgb(230, 227, 227);
  content: '';
  pointer-events: none;
}

.header-overlay { position: absolute; top: 0; left: 0; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.desktop-nav { position: absolute; left: 50%; display: flex; align-items: center; gap: 32px; transform: translateX(-50%); font-size: 14px; letter-spacing: -.12px; }
.desktop-nav a, .login-link { transition: all 0s ease 0s; }
.desktop-nav a:hover, .login-link:hover { opacity: 1; }
.desktop-actions { display: flex; align-items: center; gap: 24px; margin-left: auto; font-size: 14px; }
.login-link { white-space: nowrap; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 38.6px;
  padding: 10px 20px 9px;
  border: 0;
  border-radius: 45px;
  background: var(--ink);
  color: var(--white);
  font-size: 14px;
  line-height: 19.6px;
  letter-spacing: -.14px;
  font-variation-settings: "wght" 500;
  transition: all 0s ease 0s;
}

.button-label { display: block; opacity: 1; }
.button:hover { transform: none; }
.button-light { border-color: var(--white); background: var(--white); color: var(--ink); }
.button-light:hover, .button-contrast:hover { border-color: var(--white); background: var(--white); color: var(--ink); }
.button-contrast { border-color: var(--white); background: var(--white); color: var(--ink); }
.text-button:hover { transform: none; opacity: .6; }

.menu-trigger { position: relative; display: none; width: 28px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.menu-trigger span { position: absolute; left: 0; display: block; width: 24px; height: 2px; border-radius: 4px; background: currentColor; }
.menu-trigger span:first-child { top: 6px; }
.menu-trigger span:nth-child(2) { top: 16px; }
.mobile-menu { display: none; }

.eyebrow {
  display: flex;
  width: fit-content;
  height: 17.5px;
  align-items: center;
  gap: 8px;
  padding: 1px 0 0;
  box-sizing: border-box;
  position: relative;
  color: #969290;
  font-family: 'Geist Mono', monospace;
  font-size: 11px;
  font-weight: 400;
  line-height: 16.5px;
  letter-spacing: .55px;
  text-transform: uppercase;
}

.eyebrow-dot {
  position: relative;
  display: flex;
  width: 6px;
  height: 8px;
  flex: 0 0 6px;
  align-items: center;
  justify-content: center;
  padding-bottom: 2px;
  box-sizing: border-box;
  border-radius: 0;
  background: transparent;
}
.eyebrow-dot::before { width: 6px; height: 6px; background: #969290; content: ''; }
.theme-dark .eyebrow, .dark-section .eyebrow,
.theme-light .eyebrow, .light-section .eyebrow { color: #969290; }

h1, h2, h3 { font-family: var(--display); font-weight: 300; letter-spacing: -.05em; }
h1 { font-size: 62px; line-height: 1.15; }
h2 { font-size: 62px; line-height: 1.15; }
h3 { font-size: 38px; line-height: 1.24; }
p { letter-spacing: -.01em; }

.hero-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 3, 3, .22) 0%, rgba(3, 3, 3, .08) 40%, rgba(3, 3, 3, .6) 100%); }
body .home-hero .hero-overlay {
  background: transparent;
  mix-blend-mode: normal;
  z-index: 1;
}

body .home-hero .hero-background {
  z-index: 1;
}

body .home-hero .hero-overlay::before,
body .home-hero .hero-overlay::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

body .home-hero .hero-overlay::before {
  background: rgb(8, 8, 8);
  opacity: .33;
  mix-blend-mode: darken;
}

body .home-hero .hero-overlay::after {
  background: linear-gradient(90deg, rgba(0, 0, 0, .88) 7%, rgba(18, 18, 18, 0) 66%);
  opacity: .23;
  mix-blend-mode: darken;
}

@media (min-width: 810px) {
  /* Framer's desktop hero keeps the solid darken layer at zero opacity. */
  body .home-hero .hero-overlay::before { opacity: 0; }
}
.home-hero { position: relative; display: flex; min-height: 100svh; flex-direction: column; justify-content: flex-end; overflow: hidden; }
.hero-content { position: relative; z-index: 1; display: flex; width: 752px; flex-direction: column; align-items: flex-start; margin: 0 0 calc(50svh - 136.1875px) 40px; padding: 0 40px 0 31px; border-left: 1px solid rgba(255,255,255,.45); }
.hero-content .hero-pill { margin-bottom: 24px; }
.hero-pill { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 4px 10px 2px 12px; border-radius: 45px; background: rgba(61, 61, 61, .72); color: var(--white); font-size: 12px; line-height: 16px; }
.hero-pill .pill-label { white-space: nowrap; }
.hero-pill .pill-arrow { font-size: 17px; line-height: 1; }
.hero-content h1 { width: 100%; max-width: 680px; color: var(--white); }
.hero-content h1 span { color: rgba(255, 255, 255, .62); }
.hero-content p { max-width: 350.4px; margin: 24px 0 30px; color: var(--white); font-size: 16px; line-height: 1.4; }
.home-hero .ticker { position: absolute; right: 0; bottom: 40px; left: 0; z-index: 2; }

.ticker { width: 100%; overflow: hidden; }
.ticker-track { display: flex; width: max-content; align-items: center; gap: 100px; padding: 0; animation: ticker 78.5s linear infinite; }
@keyframes ticker { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-1186px, 0, 0); } }
.customer-card:not(.customer-card-featured):hover img, .article-card:hover img { transform: scale(1.02); }
.customer-card-featured:hover img, .featured-article:hover img { transform: none; }

/* Framer's CTA component uses a compact system face and never wraps its
   label, including the narrow Join Us and View Job variants. */
.button { font: 400 14px/19.6px 'BDO Grotesk Variable', sans-serif; white-space: nowrap; }
input:focus, textarea:focus { border-color: var(--ink); }
.form-submit:disabled { cursor: default; opacity: .5; }

.final-cta { padding: 130px 0 135px; }
.final-cta-inner { width: min(836px, calc(100% - (var(--gutter) * 2))); margin: 0 auto; }
.final-cta h3 { max-width: 550px; margin-top: 20px; }
.final-cta p { margin-top: 17px; color: var(--muted); }
.final-cta .button { margin-top: 27px; }
.site-footer { position: relative; padding: 45px 40px 34px; }
.footer-top { display: flex; align-items: center; gap: 36px; padding-bottom: 48px; border-bottom: 1px solid var(--line); }
.footer-links { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 560px; gap: 50px; margin: 52px 0 58px auto; }
.footer-links > div { display: flex; flex-direction: column; gap: 11px; font-size: 13px; }
.footer-links span { margin-bottom: 4px; color: var(--dark-muted); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.footer-links a { transition: opacity .25s ease; }
.footer-links a:hover { opacity: .55; }
.footer-bottom { display: flex; justify-content: space-between; padding-top: 20px; border-top: 1px solid var(--line); color: var(--dark-muted); font-size: 11px; }

.reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease var(--reveal-delay, 0ms), transform .75s cubic-bezier(.22, .61, .36, 1) var(--reveal-delay, 0ms); }
.reveal.is-visible { opacity: 1; transform: none; }

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

@media (max-width: 1100px) and (min-width: 810px) {
  :root { --gutter: 48px; }
  .desktop-nav { gap: 20px; }
  h1, h2 { font-size: 54px; }
}

@media (max-width: 809px) {
  :root { --gutter: 16px; }
  .site-header { height: 64px; padding: 0 16px; }
  .desktop-nav, .desktop-actions { display: none; }
  .menu-trigger { display: block; margin-left: auto; }
  .mobile-menu { position: fixed; inset: 0; z-index: 50; display: flex; visibility: hidden; min-height: 100svh; flex-direction: column; padding: 0 16px 28px; background: var(--black); color: var(--white); opacity: 0; transform: translateY(-12px); transition: opacity .3s ease, transform .3s ease, visibility .3s ease; }
  .mobile-menu.open { visibility: visible; opacity: 1; transform: none; }
  .mobile-menu-head { display: flex; align-items: center; justify-content: space-between; height: 64px; }
  .menu-close { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; color: var(--white); font-size: 34px; font-weight: 200; line-height: 24px; cursor: pointer; }
  .mobile-menu nav { margin-top: 65px; border-top: 1px solid var(--line); }
  .mobile-menu nav a { display: flex; align-items: center; justify-content: space-between; min-height: 56px; border-bottom: 1px solid var(--line); font-family: var(--display); font-size: 28px; font-weight: 300; letter-spacing: -.055em; }
  .mobile-menu-actions { display: flex; align-items: center; gap: 24px; margin-top: auto; }
  .mobile-menu-actions .button { flex: 1; }
  .mobile-menu-actions .login-link { padding-right: 10px; }

  h1 { font-size: 48px; line-height: 1.1; }
  h2 { font-size: 46px; line-height: 1.1; }
  h3 { font-size: 32px; line-height: 1.2; }
  .eyebrow { font-size: 11px; letter-spacing: .05em; }
  .section-grid, .stat-grid, .process-tabs, .feature-row, .industry-tabs, .industry-panel, .workflow-cards, .speed-grid, .integration-art, .solution-grid, .security-art, .security-points, .customer-featured, .customer-grid, .plans-grid, .compare-table, .investor-grid, .people-grid, .jobs, .featured-article, .article-grid, .contact-form-wrap, .legal-hero > div, .legal-content, .all-posts, .article-heading, .article-cover, .article-body, .case-impact, .final-cta-inner { width: calc(100% - 32px); }

  .home-hero { min-height: 100svh; }
  .hero-background { object-position: 59.6% 31.5%; }
  .hero-content { width: calc(100% - 32px); margin: 0 0 253px 16px; padding: 0 0 0 23px; }
  .hero-content .hero-pill { width: 211.2px; margin-bottom: 24px; }
  .hero-content h1 { max-width: 334px; }
  .hero-content p { max-width: 334px; margin: 24px 0 30px; font-size: 16px; line-height: 1.3; }
  .hero-content .button { min-height: 38.6px; }
  .home-hero .ticker { bottom: 40px; }
  .ticker-track { gap: 47px; padding: 0 16px; }

  .final-cta { padding: 88px 0 92px; }
  .final-cta h3 { font-size: 32px; }
  .site-footer { padding: 31px 16px 22px; }
  .footer-top { flex-wrap: wrap; gap: 25px; padding-bottom: 33px; }
  .footer-top .button { margin-left: auto; }
  .footer-links { grid-template-columns: repeat(2, 1fr); gap: 35px 25px; margin: 35px 0 42px; }
  .footer-bottom { gap: 12px; font-size: 10px; }
}

@media (max-width: 390px) {
  .hero-content { padding-bottom: 0; }
  .hero-content h1 { font-size: 48px; }
  .mobile-menu nav { margin-top: 57px; }
  .mobile-menu nav a { font-size: 26px; }
}

@media (min-width: 810px) {

  /* Customers' desktop ticker is clipped by the page canvas, not the viewport. */

  /* Framer keeps the global header over the page canvas on desktop. */
  .site-header { position: absolute; top: 0; left: 0; }

  h2 { font-size: 52px; line-height: 65px; }
}

/* Product page parity pass: section geometry follows the 1280px Framer canvas. */

@media (min-width: 810px) {

  .final-cta { padding: 48px 0 112px; }
  .final-cta-inner { display: grid; width: 1200px; max-width: calc(100% - 80px); height: 390.52px; grid-template-columns: 514.4px 651.6px; gap: 10px; margin: 0 auto; padding: 12px; background: rgb(25, 25, 25); }
  .final-cta-copy { display: flex; width: 514.4px; height: 366.52px; flex-direction: column; padding: 40px; }
  .final-cta-content { display: flex; width: 434.4px; height: 164.7px; flex-direction: column; gap: 24px; }
  .final-cta-content .eyebrow { height: 16.5px; }
  .final-cta h3 { width: 400px; max-width: 100%; margin: 0; font-size: 32px; line-height: 38.4px; }
  .final-cta-content p { width: 434.4px; max-width: 100%; margin: 0; line-height: 22.4px; }
  .final-cta-copy > .button { align-self: flex-start; margin-top: 83.23px; }
  .final-cta-image { width: 651.6px; height: 366.52px; overflow: hidden; }
  .final-cta-image img { width: 651.6px; height: 366.52px; object-fit: cover; }

  .site-footer { height: 653.84px; padding: 0; overflow: hidden; }
  .footer-top { display: flex; width: 1280px; height: 166.6px; align-items: center; margin: 0; padding: 64px 40px; border-bottom: 1px solid rgba(230, 227, 227, .16); }
  .footer-top h3 { width: 836px; height: 38.4px; font-family: var(--display); font-size: 32px; font-weight: 300; line-height: 38.4px; letter-spacing: -.05em; }
  .footer-top .button { width: 140.95px; height: 38.6px; margin-left: auto; }
  .footer-links { display: grid; width: 1280px; max-width: none; height: 264.59px; grid-template-columns: 396px repeat(3, 268px); gap: 0; margin: 0; padding: 48px 40px 64px; }
  .site-footer.dark-section .footer-top .button { background: var(--white); color: var(--ink); }
  .footer-mark { display: flex; width: 396px; height: 26px; align-items: flex-start; }
  .footer-links > div { display: flex; width: 268px; height: 152.59px; flex-direction: column; gap: 16px; }
  .footer-links > div > span { display: block; height: 27px; color: var(--dark-muted); font-size: 12px; line-height: 15.6px; letter-spacing: 0; text-transform: none; }
  .footer-links > div > a { display: block; height: 15.4px; color: var(--muted); font-size: 12px; line-height: 15.4px; }
  .footer-bottom { position: relative; display: block; width: 1280px; height: 222.64px; margin: 0; padding: 0; border-top: 0; }
  .footer-legal { position: absolute; bottom: 20px; left: 40px; display: flex; height: 24px; align-items: flex-start; gap: 18px; }
  .footer-legal span { height: 18px; color: var(--white); font-size: 12px; line-height: 18px; }
  .footer-legal span + span { color: var(--dark-muted); }
  .footer-watermark { position: absolute; top: 0; left: 436px; width: 804px; height: 222.64px; object-fit: fill; opacity: .1; }
}

@media (max-width: 809px) {

  .final-cta { padding: 48px 0 112px; }
  .final-cta-inner {
    display: flex;
    width: 358px;
    max-width: calc(100% - 32px);
    height: 509.3px;
    flex-direction: column;
    gap: 32px;
    margin: 0 auto;
    padding: 8px;
    background: rgb(25,25,25);
  }
  .final-cta-image {
    order: 1;
    width: 342px;
    height: 192.4px;
    flex: 0 0 192.4px;
    overflow: hidden;
  }
  .final-cta-image img { width: 342px; height: 192.4px; object-fit: cover; }
  .final-cta-copy {
    order: 2;
    display: flex;
    width: 342px;
    height: 268.9px;
    flex: 0 0 268.9px;
    flex-direction: column;
    padding: 12px;
  }
  .final-cta-content {
    display: flex;
    width: 318px;
    height: 158.3px;
    flex-direction: column;
    gap: 24px;
  }
  .final-cta-content .eyebrow { height: 17.5px; }
  .final-cta h3 {
    width: 318px;
    margin: 0;
    font-size: 30px;
    line-height: 36px;
  }
  .final-cta-content p {
    width: 318px;
    margin: 0;
    font-size: 16px;
    line-height: 20.8px;
  }
  .final-cta-copy > .button { align-self: flex-start; margin-top: 48px; }

  .site-footer {
    width: 390px;
    height: 1209.5px;
    padding: 0;
    overflow: hidden;
  }
  .footer-top {
    display: flex;
    width: 390px;
    height: 282.6px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 54px 16px;
  }
  .footer-top h3 {
    width: 340.1px;
    height: 72px;
    flex: 0 0 72px;
    font-family: var(--display);
    font-size: 30px;
    font-weight: 300;
    line-height: 36px;
    letter-spacing: -.05em;
  }
  .footer-top .button {
    width: 140.95px;
    height: 38.6px;
    flex: 0 0 38.6px;
    margin-top: 64px;
    margin-left: 0;
  }
  .footer-links {
    display: grid;
    width: 390px;
    height: 715.8px;
    grid-template-columns: 1fr;
    grid-template-rows: 26px repeat(3, 152.6px);
    row-gap: 40px;
    margin: 0;
    padding: 48px 16px 64px;
  }
  .footer-mark { width: 358px; height: 26px; }
  .footer-links > div {
    display: flex;
    width: 358px;
    height: 152.6px;
    flex-direction: column;
    gap: 16px;
  }
  .footer-links > div > span {
    display: block;
    width: 358px;
    height: 27px;
    color: var(--dark-muted);
    font-size: 12px;
    line-height: 15.6px;
    letter-spacing: 0;
    text-transform: none;
  }
  .footer-links > div > a {
    display: block;
    width: 358px;
    height: 15.4px;
    color: var(--muted);
    font-size: 14px;
    line-height: 15.4px;
  }
  .footer-bottom {
    position: relative;
    display: block;
    width: 390px;
    height: 211.1px;
    margin: 0;
    padding: 0 16px;
    border-top: 0;
  }
  .footer-legal {
    position: static;
    display: flex;
    width: 250px;
    height: 64px;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
  .footer-legal span { height: 18px; color: var(--white); font-size: 12px; line-height: 18px; }
  .footer-legal span + span { color: var(--dark-muted); }
  .footer-watermark {
    position: absolute;
    top: 112px;
    left: 16px;
    width: 358px;
    height: 99.1px;
    object-fit: fill;
    opacity: .1;
  }
}

@media (min-width: 391px) and (max-width: 809px) {
  /* At the tablet breakpoint Framer centers a wide hero composition instead
     of using the narrow phone copy column. */
  html body .home-hero .hero-content {
    position: absolute;
    top: calc(50% - 165.3046875px);
    left: 16px;
    width: 736px;
    height: auto;
    margin: 0;
    padding: 0 0 0 24px;
    border-left: 0;
    box-sizing: border-box;
  }

  html body .home-hero .hero-content h1 {
    width: 680px;
    max-width: 680px;
  }

  html body .home-hero .hero-content p {
    width: 712px;
    max-width: 712px;
  }
}

/* Pricing renders the two source headings as separate Framer text layers. */

@media (prefers-reduced-motion: reduce) {
  body .reveal,
  body .product-page-hero .page-hero-copy > *,
  body .customers-page-hero .page-hero-copy > *,
  body .blog-page-hero .page-hero-copy > *,
  body .contact-page-hero .page-hero-copy > *,
  body .pricing-hero > div > *,
  body .company-hero .company-hero-copy > *,
  body .product-page-hero .page-hero-image,
  body .company-hero .company-hero-image,
  body .article-hero .article-top,
  body .article-hero .article-cover,
  body .customer-case-hero .customer-case-header,
  body .customer-case-hero .customer-case-cover {
    animation: none !important;
    transition: none !important;
  }

  body .reveal {
    transform: none !important;
  }
}

/* The Framer navigation remains pinned while the desktop canvas scrolls. */
@media (min-width: 810px) {
  html body .site-header {
    position: fixed;
    top: 0;
    left: 0;
    height: 71.3984375px;
  }
}

html body .site-header {
  --nav-bg-ease: cubic-bezier(.4, 0, .2, 1);
  --nav-ink-ease: ease-in-out;
  transition: transform .9s cubic-bezier(.22, .61, .36, 1) .25s, background-color .25s var(--nav-bg-ease), color .25s var(--nav-ink-ease);
}

html body .site-header.header-dark {
  --nav-bg-ease: ease-in-out;
  --nav-ink-ease: cubic-bezier(.4, 0, .2, 1);
  background: rgb(3, 3, 3);
  color: rgb(255, 255, 255);
  border-bottom: 0;
}

html body .site-header.header-light {
  --nav-bg-ease: cubic-bezier(.4, 0, .2, 1);
  --nav-ink-ease: ease-in-out;
  background: rgb(249, 249, 249);
  color: rgb(8, 8, 8);
  border-bottom: 0;
}

html body .site-header.header-hidden {
  transform: translateY(-90px);
}

@media (max-width: 809px) {
  html body .site-header,
  html body .site.site .site-header {
    position: fixed;
    top: 0;
    left: 0;
  }

  html body .site-header.header-dark,
  html body .site-header.header-light,
  html body .site.site .site-header.header-dark,
  html body .site.site .site-header.header-light { border-bottom: 0; }
}

@media (min-width: 810px) {
  html body .site-header.header-dark { border-bottom: 1px solid rgba(230, 227, 227, .16); }
  html body .site-header.header-light { border-bottom: 1px solid rgba(8, 8, 8, .11); }
}

@media (min-width: 810px) {
  html body .site.site .site-header {
    position: fixed;
    top: 0;
    left: 0;
    height: 71.3984375px;
  }
}

/* Last cascade: source uses a text-only billing state and a light desktop testimonial. */

body .billing-toggle button:focus {
  outline: none;
}

@media (min-width: 810px) {
  body .site-header {
    position: fixed;
    top: 0;
    left: 0;
    height: 71.3984375px;
  }
}

@media (min-width: 810px) {
  body .home-product-testimonial {
    background: #e5e5e3;
  }

  body .home-product-testimonial blockquote,
  body .home-product-testimonial .home-product-testimonial-quote {
    color: var(--ink);
  }

  body .home-product-testimonial-author {
    border-left-color: rgba(8, 8, 8, .18);
  }

  body .home-product-testimonial-author strong {
    color: var(--ink);
  }

  body .home-product-testimonial-author span {
    color: var(--muted);
  }
}

/* Interaction parity: the source uses a compact, full-viewport mobile menu,
   sticky product tabs, and a single animated industry panel on desktop. */

@media (min-width: 810px) {
  .home-product-tabs {
    position: sticky;
    top: 100px;
    align-self: start;
    z-index: 4;
    height: fit-content;
    gap: 10px;
  }

  .home-product-tabs > a {
    position: relative;
    display: grid;
    width: 100%;
    min-height: 38.1px;
    grid-template-columns: 14.3px minmax(0, 1fr);
    column-gap: 14px;
    align-content: start;
    padding: 8px 0;
    color: rgba(255, 255, 255, .6);
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
  }

  .home-product-tabs > a.active { height: 84.51px; }
  .home-product-tabs > a > span { grid-column: 1; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }
  .home-product-tabs > a > strong { grid-column: 2; color: var(--white); font: 400 17px/22.1px 'BDO Grotesk Variable', sans-serif; font-variation-settings: "wght" 550; letter-spacing: -.34px; }
  .home-product-tabs > a > small { grid-column: 2; width: 300px; margin-top: 10px; color: var(--dark-muted); font: 400 14px/18.2px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-product-tabs > a:not(.active) > small { display: none; }
  .home-product-tabs > a.active::before { position: absolute; display: block; width: 60%; height: 1px; margin-top: -9px; background: var(--white); content: ''; }
  .home-product-tabs > a:focus-visible { outline: 1px auto rgb(0, 95, 204); outline-offset: 1px; border-radius: 0; }

  .home-solution-card:not(.active) { display: none; }
  .home-solution-card.active { display: block; animation: home-solution-enter .45s cubic-bezier(.22, .61, .36, 1) both; }
  .home-solution-tabs button:focus { outline: 2px solid rgb(67, 128, 224); outline-offset: -1px; border-radius: 24px; }
}

@keyframes home-solution-enter {
  from { opacity: .001; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 809px) {
  .mobile-menu-head { height: 64px; }
  .menu-close {
    position: relative;
    display: block;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--white);
    cursor: pointer;
  }

  .menu-close span {
    position: absolute;
    top: 15px;
    left: 6px;
    width: 20px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--white);
  }

  .menu-close span:first-child { transform: rotate(45deg); }
  .menu-close span:last-child { transform: rotate(-45deg); }
  .menu-close:focus { outline: 1px auto rgb(0, 95, 204); outline-offset: 0; border-radius: 0; }

  .mobile-menu nav {
    margin-top: 64px;
    border-top: 0;
  }

  .mobile-menu nav a {
    display: flex;
    width: 100%;
    height: 54.8px;
    min-height: 54.8px;
    align-items: center;
    justify-content: flex-start;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    border-bottom: 0;
    color: var(--white);
    font: 400 22px/30.8px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.22px;
    box-sizing: border-box;
  }

  .mobile-menu nav a:last-child { border-bottom: 0; }
  .mobile-menu-actions {
    display: flex;
    width: 215.97px;
    height: 39.4px;
    align-items: center;
    gap: 2px;
    margin-top: 30px;
  }

  .mobile-menu-actions .button {
    display: inline-flex;
    width: 140.945px;
    height: 38.6px;
    min-height: 38.6px;
    flex: 0 0 140.945px;
    align-items: center;
    justify-content: center;
    padding: 10px 20px 9px;
    border-radius: 45px;
    background: var(--white);
    color: var(--ink);
    font: 400 14px/19.6px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.14px;
    box-sizing: border-box;
  }

  .mobile-menu-actions .login-link {
    display: inline-flex;
    width: 73.023px;
    height: 39.4px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: var(--white);
    font: 400 14px/15.4px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.14px;
    box-sizing: border-box;
  }

  .mobile-menu {
    min-height: calc(100svh + 16px);
    padding-bottom: 28px;
  }
}

@media (max-width: 390px) {
  .mobile-menu nav { margin-top: 64px; }
  .mobile-menu nav a { font-size: 22px; }
}

/* The mobile menu's light CTA is a source-level exception to the shared
   dark button surface. Match the source fill even when the dark CTA rule has
   higher specificity. */
@media (max-width: 809px) {
  html body .mobile-menu-actions .button {
    background: var(--white) !important;
    color: var(--ink) !important;
  }

  /* Framer's speed cards use explicit, unbalanced text metrics. The global
     editorial balance rule otherwise changes the phone line breaks. */
}

/* Two source breakpoint constraints that are easy to lose in the shared
   section rules: Framer keeps the desktop Workflow heading at 680px, and the
   narrow Contact hero uses the viewport-minus-80 text column. */

/* Home is a separate editorial composition in the source template. These
   measured blocks keep the standalone implementation independent of the
   generic route layouts above. */
@media (min-width: 810px) {
  .home-intro {
    height: 878.9px;
    padding: 112px 0 0;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-intro-inner {
    width: 1200px;
    height: 654.9px;
    margin: 0 auto;
    padding: 32px 0 0 32px;
    box-sizing: border-box;
  }

  .home-intro-copy {
    display: flex;
    width: 740px;
    height: 326.9px;
    flex-direction: column;
    gap: 32px;
  }

  .home-intro-copy .eyebrow { height: 16.5px; }
  .home-intro-copy h2 { width: 740px; font: 300 52px/65px var(--display); letter-spacing: -2.6px; }
  .home-intro-copy p { width: 480px; color: var(--muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-intro-copy .button { align-self: flex-start; margin: 0; }

  .home-metrics {
    display: grid;
    width: 1168px;
    height: 200px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 36px;
    margin-top: 96px;
    padding-top: 30px;
    box-sizing: content-box;
  }

  .home-metric {
    display: flex;
    height: 200px;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 24px 28px 0;
    box-sizing: border-box;
  }

  .home-metric-index { display: none; }
  .home-metric strong { height: 72px; color: var(--ink); font: 300 72px/72px var(--display); letter-spacing: -2.88px; }
  .home-metric > span:last-child { height: 16.5px; color: #969290; font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  .home-product {
    height: 3254.4px;
    padding: 112px 0 134px;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-product-shell {
    width: 1200px;
    height: 3008.4px;
    margin: 0 auto;
    padding-left: 32px;
    box-sizing: border-box;
  }

  .home-product-heading,
  .home-solutions-heading,
  .home-customer-heading {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .home-product-heading {
    width: 1168px;
    height: 304.5px;
    gap: 32px;
  }

  .home-product-heading .eyebrow { height: 16.5px; }
  .home-product-heading h2 { width: 560px; color: var(--white); font: 300 52px/65px var(--display); letter-spacing: -2.6px; }
  .home-product-heading p { width: 480px; color: var(--dark-muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-product-heading .button { margin: 0; }

  .home-product-body {
    display: grid;
    width: 1168px;
    height: 2607.9px;
    grid-template-columns: 385.44px 722.56px;
    gap: 60px;
    margin-top: 96px;
  }

  .home-product-tabs {
    display: flex;
    width: 385.44px;
    flex-direction: column;
    align-items: stretch;
  }

  .home-product-cards {
    display: flex;
    width: 722.56px;
    height: 2607.9px;
    flex-direction: column;
    gap: 120px;
    box-sizing: border-box;
  }

  .home-product-card {
    width: 722.56px;
    flex: 0 0 auto;
  }

  .home-product-card-1,
  .home-product-card-3 { height: 730.13px; }
  .home-product-card-2 { height: 907.63px; }

  .home-product-card-image {
    width: 722.56px;
    height: 406.44px;
    object-fit: cover;
  }

  .home-product-card-content {
    width: 722.56px;
    box-sizing: border-box;
  }

  .home-product-card-1 .home-product-card-content,
  .home-product-card-3 .home-product-card-content { height: 323.7px; }
  .home-product-card-2 .home-product-card-content { height: 501.2px; }

  .home-product-card-head {
    display: flex;
    width: 722.56px;
    height: 97.2px;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 32px;
    box-sizing: border-box;
  }

  .home-product-card-head > div { width: 545.63px; }
  .home-product-card-head h3 { width: 545.63px; color: var(--white); font: 300 32px/38.4px var(--display); letter-spacing: -1.6px; }
  .home-product-card-head p { width: 545.63px; margin-top: 14px; color: var(--dark-muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-product-card-head .button { width: 116.31px; height: 38.6px; min-height: 38.6px; margin: 0; padding: 10px 20px 9px; }

  .home-product-stats {
    display: grid;
    width: 722.56px;
    height: 130.5px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 10px;
    margin-top: 40px;
  }

  .home-product-stat {
    position: relative;
    height: 130.5px;
    padding-top: 28px;
    box-sizing: border-box;
  }

  .home-product-stat-index { position: absolute; top: 28px; left: 20px; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }
  .home-product-stat strong { display: block; height: 64px; margin-left: 64.3px; color: var(--white); font: 300 64px/64px var(--display); letter-spacing: -2.56px; }
  .home-product-stat > span:last-child { display: block; height: 16.5px; margin: 32px 0 0 64.3px; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  .home-product-testimonial {
    position: relative;
    width: 722.56px;
    height: 300px;
    margin-top: 48px;
    padding: 40px;
    box-sizing: border-box;
  }

  .home-product-testimonial-logo { width: 121.68px; height: auto; }
  .home-product-testimonial blockquote,
  .home-product-testimonial .home-product-testimonial-quote { width: 382.56px; margin-top: 38.65625px; color: var(--white); font: 300 19px/22.8px var(--display); letter-spacing: -.76px; text-wrap: balance; }
  .home-product-testimonial-author { width: 244px; height: 34.5px; margin: 38.65625px 0 0 18px; padding-left: 18px; border-left: 1px solid rgba(230,227,227,.15); box-sizing: border-box; }
  .home-product-testimonial-author strong { display: block; height: 18px; color: var(--white); font: 400 14px/18px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-product-testimonial-author span { display: block; height: 16.5px; color: var(--dark-muted); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }
  .home-product-testimonial-avatar { position: absolute; top: 40px; right: 40px; width: 220px; height: 220px; object-fit: cover; }

  .home-product-card-content {
    display: flex;
    flex-direction: column;
    gap: 48px;
    padding: 32px 0 24px;
  }

  .home-product-card-head {
    height: 97.1953125px;
    flex: 0 0 97.1953125px;
    padding-top: 0;
  }

  .home-product-card-1 .home-product-stats,
  .home-product-card-3 .home-product-stats {
    margin-top: 0;
  }

  .home-product-stats {
    height: 122.5px;
    flex: 0 0 122.5px;
  }

  .home-product-stat {
    height: 122.5px;
    padding: 0;
  }

  .home-product-stat-index {
    top: 0;
    left: 20px;
  }

  .home-product-stat strong {
    position: absolute;
    top: 0;
    left: 64.3px;
    width: 271.98px;
    margin-left: 0;
  }

  .home-product-stat > span:last-child {
    position: absolute;
    top: 96px;
    left: 64.3px;
    width: 271.98px;
    margin: 0;
  }

  .home-product-testimonial {
    margin-top: 0;
    flex: 0 0 300px;
  }

  .home-solutions {
    height: 1097.28px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-solutions-shell {
    width: 1200px;
    height: 873.28px;
    margin: 0 auto;
    padding-left: 32px;
    box-sizing: border-box;
  }

  .home-solutions-heading {
    width: 1168px;
    height: 261.9px;
    align-items: flex-start;
    gap: 32px;
    text-align: left;
  }

  .home-solutions-heading .eyebrow { height: 16.5px; }
  .home-solutions-heading h2 { width: 740px; font: 300 52px/65px var(--display); letter-spacing: -2.6px; }
  .home-solutions-heading p { width: 480px; color: var(--muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-solutions-heading .button { margin: 0; }

  .home-solutions-body {
    width: 1168px;
    height: 515.38px;
    margin-top: 96px;
  }

  .home-solution-tabs {
    display: grid;
    width: 1168px;
    height: 49px;
    grid-template-columns: repeat(4, 277px);
    gap: 20px;
    padding-top: 4px;
    box-sizing: border-box;
  }

  .home-solution-tabs button {
    height: 49px;
    padding: 14px 0;
    border: 0;
    border-bottom: 1px solid var(--light-line);
    background: transparent;
    color: var(--muted);
    font: 400 15px/21px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -0.15px;
    font-variation-settings: "wght" 500;
    text-align: left;
    cursor: pointer;
  }

  .home-solution-tabs button.active { color: rgb(3, 3, 3); border-bottom: 1px solid var(--light-line); }

  .home-solution-cards { position: relative; width: 1168px; height: 427.38px; margin-top: 35px; }
  .home-solution-card { display: none; width: 1168px; height: 427.38px; padding: 12px; background: #e5e5e3; box-sizing: border-box; }
  .home-solution-card:first-child { display: block; }
  .home-solution-card-inner { display: grid; width: 1144px; height: 403.38px; grid-template-columns: 572px 552px; gap: 20px; }
  .home-solution-copy { width: 572px; height: 403.38px; padding: 93.28px 48px 48px 24px; box-sizing: border-box; }
  .home-solution-copy h3 { width: 476px; color: var(--ink); font: 300 26px/31.2px var(--display); letter-spacing: -1.3px; }
  .home-solution-copy p { width: 380.8px; margin-top: 16px; color: var(--muted); font: 400 14px/18.2px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-solution-copy .button { margin-top: 40px; }

  .home-solution-media { position: relative; width: 552px; height: 403.38px; overflow: hidden; }
  .home-solution-media > img { width: 100%; height: 100%; object-fit: cover; }
  .home-solution-media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, #0d0d0d 100%); content: ''; }
  .home-solution-metric { position: absolute; z-index: 1; inset: 0; }
  .home-solution-metric > img,
  .home-solution-metric > .home-solution-logo { position: absolute; top: 42px; left: 32px; width: 110px; height: auto; object-fit: contain; object-position: left center; }
  .home-solution-metric strong { position: absolute; top: 280.9px; left: 50px; height: 64px; color: var(--white); font: 300 64px/64px var(--display); letter-spacing: -2.56px; }
  .home-solution-metric span { position: absolute; top: 354.9px; left: 50px; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  .home-customer {
    height: 1186.9px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-customer-shell {
    width: 1200px;
    height: 962.9px;
    margin: 0 auto;
    padding-left: 32px;
    box-sizing: border-box;
  }

  .home-customer-heading {
    width: 1168px;
    height: 326.9px;
    gap: 32px;
  }

  .home-customer-heading .eyebrow { height: 16.5px; }
  .home-customer-heading h2 { width: 560px; color: var(--white); font: 300 52px/65px var(--display); letter-spacing: -2.6px; }
  .home-customer-heading p { width: 480px; color: var(--dark-muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-customer-heading .button { margin: 0; }

  .home-testimonials {
    display: grid;
    width: 1168px;
    height: 540px;
    grid-template-columns: 574px 287px 287px;
    gap: 10px;
    margin-top: 96px;
  }

  .home-testimonial-card { position: relative; width: 287px; height: 540px; overflow: hidden; border-radius: 4px; }
  .home-testimonial-card.featured { width: 574px; }
  .home-testimonial-background, .home-testimonial-overlay, .home-testimonial-gradient { position: absolute; inset: 0; width: 100%; height: 100%; }
  .home-testimonial-background { object-fit: cover; object-position: center; }
  .home-testimonial-card[data-testimonial="1"] .home-testimonial-background { object-position: 45.2% 59.6%; }
  .home-testimonial-overlay { background: rgba(0,0,0,.1); }
  .home-testimonial-gradient { background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
  .home-testimonial-content { position: relative; z-index: 1; width: calc(100% - 72px); height: 468px; margin: 36px; }
  .home-testimonial-logo { position: absolute; top: 2px; left: 0; width: 100px; height: auto; object-fit: contain; object-position: left center; }
  .home-testimonial-content blockquote,
  .home-testimonial-content .home-testimonial-quote { position: absolute; top: 149.75px; left: 0; width: 350px; color: var(--white); font: 300 24px/28.8px var(--display); letter-spacing: -.96px; }
  .home-testimonial-author { position: absolute; bottom: 0; left: 18px; width: calc(100% - 18px); height: 34.5px; padding-left: 18px; border-left: 1px solid rgba(230,227,227,.15); box-sizing: border-box; }
  .home-testimonial-author strong { display: block; height: 18px; color: var(--white); font: 400 14px/18px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-testimonial-author span { display: block; height: 16.5px; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; text-transform: uppercase; }
  .home-testimonial-card:not(.featured) .home-testimonial-content { opacity: 0; transition: opacity .35s ease; }
  .home-testimonial-card:not(.featured):hover .home-testimonial-content { opacity: 1; }
  .home-testimonial-plus { position: absolute; z-index: 2; top: 50%; left: 50%; display: grid; width: 40px; height: 40px; place-items: center; transform: translate(-50%, -50%); border-radius: 2px; background: rgba(59,59,59,.4); color: #e9e9e8; font: 300 30px/38px var(--body); backdrop-filter: blur(5px); }

  .home-faq { height: 569.5px; }
}

@media (max-width: 809px) {
  .home-intro {
    height: 1420.09px;
    padding: 112px 0 0;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-intro-inner {
    width: 358px;
    height: 1196.09px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 24px;
    box-sizing: border-box;
  }

  .home-intro-copy {
    display: flex;
    width: 310px;
    height: 380.09px;
    flex-direction: column;
    gap: 32px;
  }

  .home-intro-copy .eyebrow { height: 16.5px; }
  .home-intro-copy h2 { width: 310px; font: 300 36px/41.4px var(--display); letter-spacing: -1.8px; }
  .home-intro-copy p { width: 310px; color: var(--muted); font: 400 16px/20.8px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-intro-copy .button { align-self: flex-start; margin: 0; }

  .home-metrics {
    display: grid;
    width: 310px;
    height: 672px;
    grid-template-columns: 1fr;
    gap: 36px;
    margin-top: 96px;
    padding-top: 30px;
    box-sizing: content-box;
  }

  .home-metric { height: 200px; padding: 28px 24px 28px 0; }
  .home-metric strong { height: 72px; font: 300 72px/72px var(--display); letter-spacing: -2.88px; }
  .home-metric > span:last-child { height: 16.5px; font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  .home-product {
    height: 3485.47px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }

  .home-product-shell {
    width: 358px;
    height: 3239.47px;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
  }

  .home-product-heading,
  .home-solutions-heading,
  .home-customer-heading { align-items: center; text-align: center; }

  .home-product-heading { width: 310px; height: 317.89px; gap: 32px; }
  .home-product-heading .eyebrow { height: 16.5px; }
  .home-product-heading h2 { width: 310px; color: var(--white); font: 300 36px/41.4px var(--display); letter-spacing: -1.8px; }
  .home-product-heading p { width: 310px; color: var(--dark-muted); font: 400 16px/20.8px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-product-heading .button { margin: 0; }

  .home-product-body { display: block; width: 310px; height: 2825.58px; margin-top: 96px; }
  .home-product-tabs { display: none; }
  .home-product-cards { display: flex; width: 310px; height: 2825.58px; flex-direction: column; gap: 120px; box-sizing: border-box; }
  .home-product-card { width: 310px; flex: 0 0 auto; }
  .home-product-card-1 { height: 791.96px; }
  .home-product-card-2 { height: 980.86px; }
  .home-product-card-3 { height: 812.76px; }
  .home-product-card-image { width: 310px; height: 174.375px; object-fit: cover; }
  .home-product-card-content { width: 310px; padding: 0; }
  .home-product-card-1 .home-product-card-content { height: 617.585px; }
  .home-product-card-2 .home-product-card-content { height: 806.48px; }
  .home-product-card-3 .home-product-card-content { height: 638.38px; }
  .home-product-card-head { display: flex; width: 310px; height: auto; flex-direction: column; align-items: flex-start; justify-content: flex-start; padding-top: 32px; }
  .home-product-card-head > div { width: 279px; }
  .home-product-card-head h3 { width: 279px; color: var(--white); font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  .home-product-card-head p { width: 279px; margin-top: 14px; color: var(--dark-muted); font: 400 16px/20.8px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-product-card-head .button { width: 116.31px; height: 38.6px; min-height: 38.6px; margin-top: 32px; padding: 10px 20px 9px; }
  .home-product-card-1 .home-product-card-head { height: 182.99px; }
  .home-product-card-2 .home-product-card-head { height: 218.99px; }
  .home-product-card-3 .home-product-card-head { height: 203.79px; }

  .home-product-stats { display: grid; width: 310px; height: 310.59px; grid-template-columns: 1fr; gap: 48px; margin-top: 68px; padding-top: 20px; box-sizing: border-box; }
  .home-product-stat { position: relative; width: 310px; height: 131.3px; padding: 0 20px 10px 0; box-sizing: border-box; }
  .home-product-stat-index { position: absolute; top: 0; left: 0; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }
  .home-product-stat strong { display: block; width: 265.7px; height: 72.8px; margin-left: 24.3px; color: var(--white); font: 300 56px/72.8px var(--display); letter-spacing: -2.24px; }
  .home-product-stat > span:last-child { display: block; width: 265.7px; height: 16.5px; margin: 32px 0 0 24.3px; color: rgba(255,255,255,.6); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  .home-product-testimonial { width: 310px; height: 463.49px; margin-top: 68px; padding: 24px; background: #e5e5e3; box-sizing: border-box; }
  .home-product-testimonial-logo { width: 121.68px; height: auto; }
  .home-product-testimonial blockquote,
  .home-product-testimonial .home-product-testimonial-quote { width: 262px; margin-top: 32px; color: var(--ink); font: 300 17px/20.4px var(--display); letter-spacing: -.68px; }
  .home-product-testimonial-author { width: 244px; height: 34.5px; margin: 32px 0 0 18px; padding-left: 18px; border-left: 1px solid rgba(8,8,8,.18); box-sizing: border-box; }
  .home-product-testimonial-author strong { display: block; height: 18px; color: var(--ink); font: 400 14px/18px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-product-testimonial-author span { display: block; height: 16.5px; color: var(--muted); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }
  .home-product-testimonial-avatar { position: static; width: 150px; height: 150px; margin-top: 48px; object-fit: cover; }

  .home-solutions { height: 3184.98px; padding: 112px 0; box-sizing: border-box; overflow: visible; }
  .home-solutions-shell { width: 358px; height: 2960.98px; max-width: calc(100% - 32px); margin: 0 auto; padding: 24px; box-sizing: border-box; }
  .home-solutions-heading { display: flex; width: 310px; height: 297.29px; flex-direction: column; align-items: flex-start; gap: 32px; text-align: left; }
  .home-solutions-heading .eyebrow { width: fit-content; height: 16.5px; justify-content: flex-start; }
  .home-solutions-heading h2 { width: 310px; font: 300 36px/41.4px var(--display); letter-spacing: -1.8px; }
  .home-solutions-heading p { width: 310px; color: var(--muted); font: 400 16px/20.8px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-solutions-heading .button { margin: 0; }
  .home-solutions-body { width: 310px; height: 2519.69px; margin-top: 96px; }
  .home-solution-tabs { display: none; }
  .home-solution-cards { display: flex; width: 310px; height: 2519.69px; flex-direction: column; gap: 84px; margin: 0; }
  .home-solution-card { display: block; width: 310px; height: auto; padding: 12px; background: #e5e5e3; box-sizing: border-box; }
  .home-solution-card-1 { height: 603.02px; }
  .home-solution-card-2 { height: 548.82px; }
  .home-solution-card-3 { height: 567.02px; }
  .home-solution-card-4 { height: 548.82px; }
  .home-solution-card-inner { display: flex; width: 286px; height: auto; flex-direction: column; gap: 40px; }
  .home-solution-copy { width: 286px; height: auto; padding: 18px; box-sizing: border-box; }
  .home-solution-card-1 .home-solution-copy { height: 330.02px; }
  .home-solution-card-2 .home-solution-copy,
  .home-solution-card-4 .home-solution-copy { height: 275.82px; }
  .home-solution-card-3 .home-solution-copy { height: 294.02px; }
  .home-solution-copy h3 { width: 250px; color: var(--ink); font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  .home-solution-copy p { width: 250px; margin-top: 16px; color: var(--muted); font: 400 14px/18.2px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  .home-solution-copy .button { margin-top: 40px; }
  .home-solution-media { position: relative; width: 286px; height: 209px; overflow: hidden; }
  .home-solution-media > img { width: 286px; height: 209px; object-fit: cover; }
  .home-solution-media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, #0d0d0d 100%); content: ''; }
  .home-solution-metric { position: absolute; z-index: 1; inset: 0; }
  .home-solution-metric > img,
  .home-solution-metric > .home-solution-logo { position: absolute; top: 26px; left: 16px; width: 100px; height: auto; object-fit: contain; object-position: left center; }
  .home-solution-metric strong { position: absolute; top: 93.7px; left: 34px; height: 72.8px; color: var(--white); font: 300 56px/72.8px var(--display); letter-spacing: -2.8px; }
  .home-solution-metric span { position: absolute; top: 176.5px; left: 34px; color: var(--white); font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; text-transform: uppercase; opacity: .49; }

  .home-customer { height: 1981.89px; padding: 112px 0; box-sizing: border-box; overflow: visible; }
  .home-customer-shell { width: 358px; height: 1757.89px; max-width: calc(100% - 32px); margin: 0 auto; padding: 24px; box-sizing: border-box; }
  .home-customer-heading { width: 310px; height: 317.89px; gap: 32px; }
  .home-customer-heading .eyebrow { width: fit-content; height: 16.5px; justify-content: center; }
  .home-customer-heading h2 { width: 310px; color: var(--white); font: 300 36px/41.4px var(--display); letter-spacing: -1.8px; }
  .home-customer-heading p { width: 310px; color: var(--dark-muted); font: 400 16px/20.8px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  .home-customer-heading .button { margin: 0; }
  .home-testimonials { display: grid; width: 310px; height: 1344px; grid-template-columns: 1fr; gap: 48px; margin-top: 96px; }
  .home-testimonial-card,
  .home-testimonial-card.featured { width: 310px; height: 416px; }
  .home-testimonial-content { width: 254px; height: 360px; margin: 28px; }
  .home-testimonial-logo { top: 0; left: 0; width: 110px; }
  .home-testimonial-content blockquote,
  .home-testimonial-content .home-testimonial-quote { top: 67px; left: 0; width: 254px; color: var(--white); font: 300 24px/28.8px var(--display); letter-spacing: -.96px; }
  .home-testimonial-card[data-testimonial="1"] .home-testimonial-content blockquote,
  .home-testimonial-card[data-testimonial="1"] .home-testimonial-content .home-testimonial-quote { top: 95.76px; }
  .home-testimonial-author { bottom: 0; left: 18px; width: 236px; }
  .home-testimonial-card:not(.featured) .home-testimonial-content { opacity: 1; }
  .home-testimonial-plus { display: none; }

  .home-faq { height: 982.29px; }
  .home-faq .pricing-faq-list { height: 365px; }
  .home-faq .pricing-faq-list details:nth-child(5),
  .home-faq .pricing-faq-list details:nth-child(5) summary { height: 59.5px; }
}

/* Home's mobile FAQ uses the full closed-state canvas from Framer. The
   stronger selector keeps the shared pricing baseline from collapsing it
   before setupFaqSectionHeights captures the closed height. */
@media (min-width: 376px) and (max-width: 809px) {
  body .home-faq { height: 982.29px; }
}

/* Pricing cascade after shared route rules. */

/* Framer's editorial BDO face keeps <strong> at the same variable weight. */

/* Tablet fidelity layer (391px–810px).
   Framer uses its phone composition as a fluid tablet canvas in this range:
   16px outer gutters, 24px inner padding, and full-width stacked media. The
   390px composition above remains intentionally untouched. */
@media (min-width: 391px) and (max-width: 809px) {
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    height: 64px;
    padding: 0 16px;
  }

  .menu-trigger {
    width: 32px;
    height: 32px;
  }

  .menu-trigger span {
    left: 4px;
    width: 24px;
  }

  .menu-trigger span:first-child { top: 10px; }
  .menu-trigger span:nth-child(2) { top: 20px; }

  /* Shared tablet CTA: image first, then the copy block. */
  .final-cta {
    height: 881.9px;
    padding: 48px 0 112px;
    box-sizing: border-box;
  }

  .final-cta-inner {
    display: flex;
    width: calc(100% - 32px);
    max-width: none;
    height: 721.9px;
    flex-direction: column;
    gap: 32px;
    margin: 0 auto;
    padding: 8px;
    box-sizing: border-box;
  }

  .final-cta-image {
    order: 1;
    width: 100%;
    height: 405px;
    flex: 0 0 405px;
  }

  .final-cta-image img {
    width: 100%;
    height: 405px;
    object-fit: cover;
  }

  .final-cta-copy {
    order: 2;
    width: 100%;
    height: 268.9px;
    flex: 0 0 268.9px;
    padding: 12px;
    box-sizing: border-box;
  }

  .final-cta-content {
    width: 100%;
    height: 158.3px;
  }

  .final-cta h3,
  .final-cta-content p {
    width: 100%;
  }

  .final-cta h3 { max-width: 400px; }

  /* The source footer keeps the phone vertical rhythm but expands every
     canvas to the viewport width at tablet sizes. */
  .site-footer {
    width: 100%;
    height: 1278.2px;
    padding: 0;
    overflow: hidden;
  }

  .footer-top {
    display: flex;
    width: 100%;
    height: 246.6px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    margin: 0;
    padding: 54px 16px;
    box-sizing: border-box;
  }

  .footer-top h3 {
    width: calc(100% - 36.8px);
    height: 36px;
    flex: 0 0 36px;
    font: 300 30px/36px var(--display);
    letter-spacing: -1.5px;
  }

  .footer-top .button {
    width: 140.95px;
    height: 38.6px;
    flex: 0 0 38.6px;
    margin-top: 64px;
    margin-left: 0;
  }

  .footer-links {
    display: grid;
    width: 100%;
    height: 715.8px;
    grid-template-columns: 1fr;
    grid-template-rows: 26px repeat(3, 152.6px);
    row-gap: 40px;
    margin: 0;
    padding: 48px 16px 64px;
    box-sizing: border-box;
  }

  .footer-mark,
  .footer-links > div {
    width: 100%;
  }

  .footer-mark { height: 26px; }

  .footer-links > div {
    display: flex;
    height: 152.6px;
    flex-direction: column;
    gap: 16px;
  }

  .footer-links > div > span {
    display: block;
    width: 100%;
    height: 27px;
    color: var(--dark-muted);
    font-size: 12px;
    line-height: 15.6px;
    letter-spacing: 0;
    text-transform: none;
  }

  .footer-links > div > a {
    display: block;
    width: 100%;
    height: 15.4px;
    color: var(--muted);
    font-size: 14px;
    line-height: 15.4px;
  }

  .footer-bottom {
    position: relative;
    display: block;
    width: 100%;
    height: 315.8px;
    margin: 0;
    padding: 0 16px;
    border-top: 0;
    box-sizing: border-box;
  }

  .footer-legal {
    position: static;
    display: flex;
    width: 250px;
    height: 64px;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }

  .footer-legal span { height: 18px; color: var(--white); font-size: 12px; line-height: 18px; }
  .footer-legal span + span { color: var(--dark-muted); }

  .footer-watermark {
    position: absolute;
    top: 112px;
    left: 16px;
    width: calc(100% - 32px);
    height: 203.81px;
    object-fit: fill;
    opacity: .1;
  }

  /* Fluid article/case canvases. Their typography and vertical gaps already
     match the source; expanding the content width restores its line breaks. */

  /* Legal copy is a 688px source column at 768px, not the 310px phone
     column. */
  /* Framer keeps the phone legal-title variant through the tablet canvas. */

  /* Contact source uses the same wide text column and six full-width fields
     at this breakpoint. */

  /* Listings use the source's fluid, one-column card geometry. */
}

@media (max-width: 390px) {
  /* Phone Framer headings use a 17.5px eyebrow box and a flex column with
     32px gaps. The wider mobile composition already has these dimensions. */
  body .home-intro-copy .eyebrow,
  body .home-product-heading .eyebrow,
  body .home-solutions-heading .eyebrow,
  body .home-customer-heading .eyebrow {
    height: 17.5px;
  }

  body .home-product-heading,
  body .home-customer-heading {
    display: flex;
    flex-direction: column;
  }

  body .home-customer-shell {
    padding: 0;
  }

  body .home-customer-heading,
  body .home-testimonials {
    margin-left: 24px;
  }

  html body .home-testimonial-background {
    width: 310px;
    height: 416px;
    object-fit: cover;
  }
}

/* Header anchors use Framer's padded hit areas; the text itself sits in a
   15.4px line box centered inside each 39.398px desktop link. */
html body .site-header.header-overlay {
  background: transparent;
}

@media (max-width: 809px) {
  html body .site-header .menu-trigger {
    width: 32px;
    height: 32px;
  }

  html body .site-header .menu-trigger span {
    left: 4px;
    width: 24px;
  }

  html body .site-header .menu-trigger span:first-child { top: 10px; }
  html body .site-header .menu-trigger span:nth-child(2) { top: 20px; }
}

@media (min-width: 810px) {
  html body .desktop-nav {
    top: 16px;
    height: 39.3984375px;
    gap: 0;
    font-family: 'BDO Grotesk Variable', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
    letter-spacing: -.14px;
    font-variation-settings: "wght" 450;
    white-space: pre;
  }

  html body .desktop-nav a {
    display: flex;
    height: 39.3984375px;
    align-items: center;
    padding: 12px 16px;
    box-sizing: border-box;
    font-family: 'BDO Grotesk Variable', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
    letter-spacing: -.14px;
    font-variation-settings: "wght" 450;
    white-space: pre;
  }

  html body .desktop-actions {
    height: 39.3984375px;
    gap: 2px;
    font-family: 'BDO Grotesk Variable', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
  }

  html body .desktop-actions .login-link {
    display: flex;
    height: 39.3984375px;
    align-items: center;
    padding: 12px 16px;
    box-sizing: border-box;
    font-family: 'BDO Grotesk Variable', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
    letter-spacing: -.14px;
    font-variation-settings: "wght" 450;
    white-space: pre;
  }
}

/* Pricing quote parity: Framer switches this card to a 310px column at the
   phone breakpoint, with source typography and title-case metadata. */

@media (min-width: 810px) {
  /* Framer's desktop quote card begins 38.016px into this section. */

  html body .site-header.header-dark,
  html body .site-header.header-light {
    border-bottom: 0;
  }
}

@media (min-width: 810px) {
  /* Preserve Framer's measured desktop section heights through the long Product flow. */
}

/* The ticker entry wrapper mirrors Framer's masked parent around the moving
   list. Keep the fade on the visible canvas after adding the intro wrapper. */

@media (min-width: 810px) {
  /* Product uses the logo ticker only in the tablet composition. */
}

/* Second tablet pass: the source switches several routes to a 688px content
   column at 768px. Keep this isolated from both the 390px phone composition
   and the desktop canvas. */
@media (min-width: 391px) and (max-width: 809px) {
  /* Company */

  /* Pricing */

  body .pricing-faq {
    height: 900.59px;
    padding: 112px 0;
    box-sizing: border-box;
  }

  body .pricing-faq-inner {
    display: block;
    width: calc(100% - 32px);
    height: 676.59px;
    max-width: none;
    padding: 24px;
    box-sizing: border-box;
  }

  body .pricing-faq-copy {
    width: 688px;
    max-width: 100%;
    height: 235.09px;
    align-items: flex-start;
  }

  body .pricing-faq-copy .eyebrow { width: 688px; max-width: 100%; }
  body .pricing-faq-copy h2 { width: 688px; max-width: 100%; text-align: left; }
  body .pricing-faq-copy > p { width: 480px; max-width: 100%; text-align: left; line-height: 20.8px; }

  body .pricing-faq-list {
    width: 688px;
    max-width: 100%;
    height: 345.5px;
    margin-top: 48px;
    padding-top: 48px;
  }

  body .pricing-faq-list details,
  body .pricing-faq-list summary { width: 688px; max-width: 100%; }
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Measured tablet composition for Product. It is isolated from both the
     phone and desktop passes so the source canvas stays stable at 768px. */
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Company tablet composition measured against the live Framer route. */
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Blog tablet composition measured against the live Framer route. */
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Contact tablet composition measured against the live Framer route. */
}

@media (min-width: 810px) {
  /* Match the source's one-pixel eyebrow box and its absolute card layers. */
  body .home-intro-copy .eyebrow,
  body .home-product-heading .eyebrow,
  body .home-solutions-heading .eyebrow,
  body .home-customer-heading .eyebrow {
    height: 17.5px;
  }

  body .home-product-cards {
    position: relative;
    top: 0;
  }

  body .home-solution-cards {
    margin-top: 39px;
  }

  body .home-testimonial-background {
    top: -123.633px;
    left: 50%;
    width: 730px;
    height: 788px;
    max-width: none;
    transform: translateX(-50%);
  }

  body .home-testimonial-author {
    left: 0;
    width: 350px;
    border-left: 0;
  }

  body .final-cta-content .eyebrow { height: 17.5px; }

  /* Framer centers the desktop footer's two top-row children on a 38.6016px line. */
  body .footer-top h3 { position: relative; top: .4140625px; }
  body .footer-top .button { position: relative; top: .515625px; }
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Measured tablet composition for Home. */
  body .home-intro {
    position: relative;
    height: 1316.49px;
    padding: 112px 0;
    box-sizing: border-box;
  }

  body .home-intro-inner {
    position: relative;
    width: calc(100% - 32px);
    height: 1092.49px;
    max-width: none;
    margin: 0 auto;
    padding: 0 24px;
    box-sizing: border-box;
  }

  body .home-intro-copy {
    position: absolute;
    top: 24px;
    left: 24px;
    display: flex;
    width: 688px;
    height: 276.49px;
    flex-direction: column;
    gap: 32px;
  }

  body .home-intro-copy .eyebrow { height: 17.5px; }
  body .home-intro-copy h2 { width: 688px; font-size: 36px; line-height: 41.4px; }
  body .home-intro-copy p { width: 480px; font-size: 16px; line-height: 20.8px; }
  body .home-intro-copy .button { margin: 0; }

  body .home-metrics {
    position: absolute;
    top: 396.49px;
    left: 24px;
    display: flex;
    width: 688px;
    height: 672px;
    flex-direction: column;
    gap: 36px;
    margin: 0;
    padding: 30px 0 0;
    box-sizing: border-box;
  }

  body .home-metric {
    display: flex;
    width: 500px;
    height: 200px;
    flex: 0 0 200px;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 24px 28px 0;
    box-sizing: border-box;
  }

  body .home-metric-index { display: none; }
  body .home-metric strong { height: 72px; font-size: 72px; line-height: 72px; }
  body .home-metric > span:last-child { height: 16.5px; }

  body .home-product {
    position: relative;
    height: 3880.77px;
    padding: 0;
    box-sizing: border-box;
  }

  body .home-product-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 3634.77px;
    max-width: none;
    top: 112px;
    left: 50%;
    margin: 0;
    transform: translateX(-50%);
    padding: 0 24px;
    box-sizing: border-box;
  }

  body .home-product-heading {
    position: absolute;
    top: 0;
    left: 24px;
    display: flex;
    width: 688px;
    height: 255.7px;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }

  body .home-product-heading .eyebrow { height: 17.5px; }
  body .home-product-heading h2 { width: 560px; font-size: 36px; line-height: 41.4px; }
  body .home-product-heading p { width: 480px; font-size: 16px; line-height: 20.8px; }
  body .home-product-heading .button { margin: 0; }

  body .home-product-body {
    position: absolute;
    top: 351.7px;
    left: 24px;
    display: block;
    width: 688px;
    height: 3283.07px;
    margin: 0;
  }

  body .home-product-tabs { display: none; }

  body .home-product-cards {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 688px;
    height: 3283.07px;
    margin: 0;
  }

  body .home-product-card {
    position: absolute;
    left: 0;
    width: 688px;
    padding: 0;
  }

  body .home-product-card-1 { top: 0; height: 983.79px; }
  body .home-product-card-2 { top: 1103.79px; height: 1075.49px; }
  body .home-product-card-3 { top: 2299.28px; height: 983.79px; }

  body .home-product-card-image {
    display: block;
    width: 688px;
    height: 387px;
    object-fit: cover;
  }

  body .home-product-card-content {
    position: relative;
    display: block;
    width: 688px;
    height: 596.79px;
    min-height: 0;
    padding: 0;
  }

  body .home-product-card-1 .home-product-card-content,
  body .home-product-card-3 .home-product-card-content { height: 596.79px; }
  body .home-product-card-2 .home-product-card-content { height: 688.49px; }

  body .home-product-card-head {
    position: absolute;
    top: 32px;
    left: 0;
    display: block;
    width: 688px;
    height: 162.2px;
    padding: 0;
  }

  body .home-product-card-head > div { width: 619.2px; }
  body .home-product-card-head h3 { width: 619.2px; font-size: 30px; line-height: 36px; }
  body .home-product-card-head p { width: 619.2px; margin-top: 14px; font-size: 16px; line-height: 20.8px; }
  body .home-product-card-head .button { width: 116.31px; height: 38.6px; margin-top: 32px; }

  body .home-product-stats {
    position: absolute;
    top: 282.19px;
    left: 0;
    display: flex;
    width: 688px;
    height: 310.6px;
    flex-direction: column;
    gap: 48px;
    margin: 0;
    padding: 0;
  }

  body .home-product-stat {
    position: relative;
    width: 688px;
    height: 131.3px;
    flex: 0 0 131.3px;
    padding: 0 20px 10px 0;
    box-sizing: border-box;
  }

  body .home-product-stat-index { top: 0; left: 0; }
  body .home-product-stat strong { position: absolute; top: 0; left: 24.3px; width: 643.7px; height: 72.8px; margin: 0; font-size: 56px; line-height: 72.8px; }
  body .home-product-stat > span:last-child { position: absolute; top: 104.8px; left: 24.3px; width: 643.7px; height: 16.5px; margin: 0; }

  body .home-product-testimonial {
    position: absolute;
    top: 262.19px;
    left: 0;
    width: 688px;
    height: 402.3px;
    margin: 0;
    padding: 24px;
    box-sizing: border-box;
  }

  body .home-product-testimonial-logo { width: 121.68px; height: auto; }
  body .home-product-testimonial blockquote,
  body .home-product-testimonial .home-product-testimonial-quote { width: 640px; margin-top: 32px; font-size: 17px; line-height: 20.4px; }
  body .home-product-testimonial-author { width: 244px; height: 34.5px; margin: 32px 0 0; padding-left: 18px; }
  body .home-product-testimonial-avatar { position: static; width: 150px; height: 150px; margin-top: 48px; object-fit: cover; }

  body .home-solutions {
    position: relative;
    height: 3936.84px;
    padding: 0;
    box-sizing: border-box;
  }

  body .home-solutions-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 3712.84px;
    max-width: none;
    top: 112px;
    left: 50%;
    margin: 0;
    transform: translateX(-50%);
    padding: 0;
    box-sizing: border-box;
  }

  body .home-solutions-heading {
    position: absolute;
    top: 24px;
    left: 24px;
    display: flex;
    width: 688px;
    height: 235.09px;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    text-align: left;
  }

  body .home-solutions-heading .eyebrow { height: 17.5px; }
  body .home-solutions-heading h2 { width: 688px; font-size: 36px; line-height: 41.4px; }
  body .home-solutions-heading p { width: 480px; font-size: 16px; line-height: 20.8px; }
  body .home-solutions-heading .button { margin: 0; }

  body .home-solutions-body {
    position: absolute;
    top: 355.09px;
    left: 24px;
    width: 688px;
    height: 3333.75px;
    margin: 0;
  }

  body .home-solution-tabs { display: none; }

  body .home-solution-cards {
    display: flex;
    width: 688px;
    height: 3333.75px;
    flex-direction: column;
    gap: 84px;
    margin: 0;
  }

  body .home-solution-card {
    display: block;
    width: 688px;
    height: 770.44px;
    flex: 0 0 770.44px;
    padding: 12px;
    background: #e5e5e3;
    box-sizing: border-box;
  }

  body .home-solution-card-inner {
    display: flex;
    width: 664px;
    height: 746.44px;
    flex: 0 0 746.44px;
    flex-direction: column;
    gap: 40px;
  }

  body .home-solution-copy {
    width: 664px;
    height: 221.21px;
    min-height: 0;
    flex: 0 0 221.21px;
    padding: 18px;
    box-sizing: border-box;
  }

  body .home-solution-copy h3 { width: 600px; font-size: 30px; line-height: 36px; }
  body .home-solution-copy p { width: 600px; margin-top: 16px; font-size: 14px; line-height: 18.2px; }
  body .home-solution-copy .button { margin-top: 40px; }
  body .home-solution-media { width: 664px; height: 485.23px; min-height: 0; flex: 0 0 485.23px; }
  body .home-solution-media > img { width: 664px; height: 485.23px; }
  body .home-solution-metric > img,
  body .home-solution-metric > .home-solution-logo { top: 26px; left: 16px; width: 100px; }

  body .home-customer {
    position: relative;
    height: 1940.49px;
    padding: 0;
    box-sizing: border-box;
  }

  body .home-customer-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 1716.49px;
    max-width: none;
    top: 112px;
    left: 50%;
    margin: 0;
    transform: translateX(-50%);
    padding: 0;
    box-sizing: border-box;
  }

  body .home-customer-heading {
    position: absolute;
    top: 0;
    left: 24px;
    display: flex;
    width: 688px;
    height: 276.49px;
    flex-direction: column;
    align-items: center;
    gap: 32px;
  }

  body .home-customer-heading .eyebrow { height: 17.5px; }
  body .home-customer-heading h2 { width: 560px; font-size: 36px; line-height: 41.4px; }
  body .home-customer-heading p { width: 480px; font-size: 16px; line-height: 20.8px; }
  body .home-customer-heading .button { margin: 0; }

  body .home-testimonials {
    position: absolute;
    top: 372.49px;
    left: 24px;
    display: flex;
    width: 688px;
    height: 1344px;
    flex-direction: column;
    gap: 48px;
    margin: 0;
  }

  body .home-testimonial-card,
  body .home-testimonial-card.featured {
    position: relative;
    width: 688px;
    height: 416px;
    flex: 0 0 416px;
    border-radius: 4px;
  }

  body .home-testimonial-background,
  body .home-testimonial-overlay,
  body .home-testimonial-gradient { width: 688px; height: 416px; }
  body .home-testimonial-background,
  body .home-testimonial-overlay,
  body .home-testimonial-gradient { position: absolute; inset: 0; }
  body .home-testimonial-content { width: 632px; height: 360px; margin: 28px; }
  body .home-testimonial-content { position: relative; z-index: 1; }
  body .home-testimonial-logo,
  body .home-testimonial-content blockquote,
  body .home-testimonial-author,
  body .home-testimonial-content .home-testimonial-quote { position: absolute; }
  body .home-testimonial-logo { top: 0; left: 0; width: 110px; }
  body .home-testimonial-content blockquote,
  body .home-testimonial-content .home-testimonial-quote { top: 124.56px; left: 0; width: 632px; font-size: 24px; line-height: 28.8px; }
  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content blockquote,
  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content .home-testimonial-quote { top: 138.96px; }
  body .home-testimonial-author {
    bottom: 0;
    left: 0;
    width: 632px;
    height: 34.5px;
    padding-left: 18px;
    border-left: 1px solid rgba(230,227,227,.15);
    box-sizing: border-box;
  }
  body .home-testimonial-card:not(.featured) .home-testimonial-content { opacity: 1; }
  body .home-testimonial-plus { display: none; }
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Workflow's source inner container has horizontal padding only. */
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Customers tablet: Framer's headline keeps the one-pixel eyebrow box and
     starts the featured card at the measured 543.5078px anchor. */
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Contact tablet: the source form wrapper begins 0.8594px above the
     section flow and stays 656px wide inside the 688px canvas. */
}

@media (min-width: 810px) {
  /* The desktop testimonial row is a Framer layout group: one card owns the
     expanded 574px slot and the hovered card takes that slot on demand. */
  body .home-testimonials {
    display: flex;
    grid-template-columns: none;
  }

  body .home-testimonial-card {
    display: flex;
    flex: 0 0 287px;
    width: 287px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 10px;
    padding: 36px;
    box-sizing: border-box;
    transition: none !important;
  }

  body .home-testimonial-card.featured {
    flex-basis: 574px;
    width: 574px;
  }

  body .home-testimonial-content {
    position: absolute;
    top: 36px;
    left: 36px;
    width: 350px;
    height: 468px;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transform-origin: 50% 50%;
    transition: none !important;
    will-change: transform, opacity;
  }

  body .home-testimonial-card:not(.featured) .home-testimonial-content {
    top: 240px;
    height: 360px;
  }

  body .home-testimonial-gradient {
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .5) 100%);
  }

  body .home-testimonial-logo {
    position: absolute;
    top: 38px;
    left: 36px;
    width: 100px;
    height: auto;
    z-index: 1;
  }

  body .home-testimonial-spacer {
    display: block;
    order: 0;
    width: 350px;
    height: 10px;
    flex: 0 0 10px;
  }

  body .home-testimonial-content blockquote,
  body .home-testimonial-content .home-testimonial-quote {
    position: relative;
    top: auto;
    left: auto;
    order: 1;
    width: 350px;
    margin: 0;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
  }

  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content blockquote,
  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content .home-testimonial-quote {
    top: auto;
  }

  body .home-testimonial-author {
    position: relative;
    right: auto;
    bottom: auto;
    left: auto;
    order: 2;
    width: 350px;
    padding: 0 0 0 18px;
    border-left: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    flex: 0 0 34.5px;
  }

  body .home-testimonial-author::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 1px;
    background: rgba(230, 227, 227, .15);
    content: '';
  }

  body .home-testimonial-author strong {
    display: flex;
    width: 332px;
    height: 18px;
  }

  body .home-testimonial-author span {
    display: flex;
    height: 16.5px;
    opacity: .8;
  }

  body .home-testimonial-plus {
    top: auto;
    right: auto;
    bottom: 36px;
    left: 36px;
    display: flex;
    width: 36px;
    height: 36px;
    padding: 6px;
    align-items: center;
    justify-content: center;
    transform: none;
    border-radius: 2px;
    font-size: 0;
    line-height: 0;
    box-sizing: border-box;
  }

  body .home-testimonial-plus svg {
    display: block;
    width: 100%;
    height: 100%;
    flex-shrink: 0;
    fill: currentColor;
  }
}

/* Framer keeps the navigation pinned to the viewport on desktop as well as
   on the phone/tablet variants. */
@media (min-width: 1200px) {
  html body .site-header,
  html body .site.site .site-header {
    position: fixed;
    top: 0;
    left: 0;
    height: 71.3984375px;
  }

  html body .site-header.header-hidden {
    transform: translateY(-90px);
  }

  /* Framer's desktop section containers carry a single inset divider down
     their inner canvas. Keep the line out of the content flow. */
  body .workflow,
  body .speed-section,
  body .solutions-product,
  body .security,
  body .faq-section,
  body .pricing-faq,
  body .home-intro,
  body .home-product,
  body .home-solutions,
  body .home-customer,
  body .company-mission,
  body .company-investors,
  body .company-leadership,
  body .company-careers,
  body .company-quote,
  body .legal-shell,
  body .contact-page-hero,
  body .contact-section,
  body .article-hero,
  body .customer-case-hero {
    position: relative;
  }

  body .workflow::after,
  body .solutions-product::after,
  body .faq-section::after,
  body .pricing-faq::after,
  body .home-intro::after,
  body .home-solutions::after,
  body .company-mission::after,
  body .company-careers::after {
    position: absolute;
    top: 112px;
    left: 40px;
    width: calc(100% - 80px);
    height: calc(100% - 224px);
    border-left: 1px solid rgb(230, 227, 227);
    content: '';
    pointer-events: none;
  }

  body .speed-section::after,
  body .security::after,
  body .home-product::after,
  body .home-customer::after,
  body .company-investors::after,
  body .company-leadership::after {
    position: absolute;
    top: 112px;
    left: 40px;
    width: calc(100% - 80px);
    height: calc(100% - 224px);
    border-left: 1px solid rgba(230, 227, 227, .16);
    content: '';
    pointer-events: none;
  }

  body .home-product::after {
    height: calc(100% - 246px);
  }
}

@media (max-width: 809px) {
  body .home-testimonial-card {
    position: relative;
    overflow: hidden;
    border-radius: 4px;
  }

  body .home-testimonial-background,
  body .home-testimonial-overlay,
  body .home-testimonial-gradient {
    position: absolute;
    inset: 0;
    display: block;
    width: 310px;
    height: 416px;
  }

  body .home-testimonial-gradient {
    background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .5) 100%);
  }

  body .home-testimonial-logo {
    position: absolute;
    top: 28px;
    left: 28px;
    width: 110px;
    height: auto;
    z-index: 1;
  }

  body .home-testimonial-content {
    position: relative;
    top: auto;
    left: auto;
    z-index: 1;
    width: 254px;
    height: 360px;
    margin: 28px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  body .home-testimonial-spacer {
    display: block;
    order: 0;
    width: 254px;
    height: 10px;
    flex: 0 0 10px;
  }

  body .home-testimonial-content blockquote,
  body .home-testimonial-content .home-testimonial-quote {
    position: relative;
    top: auto;
    left: auto;
    order: 1;
    width: 254px;
    margin: 0;
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 24px;
  }

  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content blockquote,
  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-content .home-testimonial-quote {
    top: auto;
  }

  body .home-testimonial-author {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    order: 2;
    width: 254px;
    height: 34.5px;
    margin: 0;
    padding: 0 0 0 18px;
    border-left: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    flex: 0 0 34.5px;
    box-sizing: border-box;
  }

  body .home-testimonial-author::before {
    position: absolute;
    inset: 0 auto 0 0;
    width: 1px;
    background: rgba(230, 227, 227, .15);
    content: '';
  }

  body .home-testimonial-author strong {
    display: flex;
    width: 236px;
    height: 18px;
    color: var(--white);
    font: 400 14px/18px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.14px;
  }

  body .home-testimonial-author span {
    display: flex;
    height: 16.5px;
    color: rgba(255, 255, 255, .6);
    font: 400 11px/16.5px 'Geist Mono', monospace;
    letter-spacing: .55px;
    text-transform: uppercase;
    opacity: .8;
  }
}

@media (min-width: 391px) and (max-width: 809px) {
  /* Tablet cards keep the source's 40px page inset and expand to the full
     inner canvas; the 310px geometry belongs only to the phone variant. */
  body .home-testimonial-background,
  body .home-testimonial-overlay,
  body .home-testimonial-gradient {
    width: 100%;
  }

  body .home-testimonial-background {
    object-fit: cover;
    object-position: center;
  }

  body .home-testimonial-card[data-testimonial="1"] .home-testimonial-background {
    object-position: 45.2% 59.6%;
  }

  body .home-testimonial-content {
    width: calc(100% - 56px);
  }

  body .home-testimonial-spacer,
  body .home-testimonial-content blockquote,
  body .home-testimonial-author,
  body .home-testimonial-content .home-testimonial-quote {
    width: 100%;
  }

  body .home-testimonial-author strong {
    width: calc(100% - 18px);
  }
}

@media (min-width: 810px) {
  /* Open Framer FAQ rows grow below their 59.5px question band. */
  body .pricing-faq-list details[open] {
    height: auto;
    padding-bottom: 20px;
    border-bottom: 0;
  }

  body .pricing-faq-list details[open] > p {
    width: 416px;
    height: auto;
    margin: 0;
    padding: 0;
  }
}

@media (min-width: 810px) {
  /* The textarea owns the 12px inset; its Framer wrapper only draws the
     rounded border. */
}

@media (max-width: 809px) {
  /* Mobile Framer FAQ answers use a 248px text column and expand the row
     instead of overflowing the fixed question band. */
  body .pricing-faq-list details[open] {
    height: auto;
    padding-bottom: 20px;
    border-bottom: 0;
  }

  body .pricing-faq-list details[open] > p {
    width: 248px;
    height: auto;
    margin: 0;
    padding: 0;
  }
}

/* Tablet parity: Lateral switches to its phone-style navigation and a wider
   single-column editorial composition from 810px through 1199.98px.  This
   range is intentionally separate from both the measured phone rules and the
   1200px desktop composition. */
@media (min-width: 810px) and (max-width: 1199.98px) {
  :root { --gutter: 16px; }

  body .site-header,
  body .site-header.header-dark,
  body .site-header.header-light {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 64px;
    padding: 0 16px;
    background: transparent !important;
    border-bottom: 0 !important;
  }
  html body .site.site .site-header,
  html body .site.site .site-header.header-dark,
  html body .site.site .site-header.header-light { height: 64px !important; padding: 0 16px !important; }
  body .site-header .desktop-nav,
  body .site-header .desktop-actions { display: none; }
  body .site-header .menu-trigger {
    display: block;
    width: 32px;
    height: 32px;
    margin-left: auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--white);
  }
  body .site-header .menu-trigger span {
    display: block;
    width: 24px;
    height: 1px;
    margin: 5px 4px;
    background: currentColor;
  }

  body .mobile-menu {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: flex;
    visibility: hidden;
    min-height: 100svh;
    flex-direction: column;
    padding: 0 16px 28px;
    background: var(--black);
    color: var(--white);
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity .3s ease, transform .3s ease, visibility .3s ease;
  }
  body .mobile-menu.open { visibility: visible; opacity: 1; transform: none; }
  body .mobile-menu-head { display: flex; height: 64px; align-items: center; justify-content: space-between; }
  body .mobile-menu .menu-close {
    position: relative;
    display: block;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--white);
  }
  body .mobile-menu .menu-close span {
    position: absolute;
    top: 15px;
    left: 6px;
    width: 20px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--white);
  }
  body .mobile-menu .menu-close span:first-child { transform: rotate(45deg); }
  body .mobile-menu .menu-close span:last-child { transform: rotate(-45deg); }
  body .mobile-menu nav { margin-top: 64px; border-top: 0; }
  body .mobile-menu nav a {
    display: flex;
    width: 100%;
    height: 54.8px;
    min-height: 54.8px;
    align-items: center;
    justify-content: flex-start;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    border-bottom: 0;
    color: var(--white);
    font: 400 22px/30.8px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.22px;
    box-sizing: border-box;
  }
  body .mobile-menu-actions { display: flex; width: 215.97px; height: 39.4px; align-items: center; gap: 2px; margin-top: 30px; }
  body .mobile-menu-actions .button { width: 140.945px; height: 38.6px; min-height: 38.6px; flex: 0 0 140.945px; }
  body .mobile-menu-actions .login-link { width: 73.023px; height: 39.4px; padding: 0; }

  body .home-hero {
    position: relative;
    height: 800px;
    min-height: 0;
    padding: 0 0 40px;
    justify-content: flex-start;
    box-sizing: border-box;
  }
  body .home-hero .hero-background { object-position: 52% 51.7%; }
  body .home-hero .hero-content {
    position: absolute;
    top: 207.289px;
    left: 16px;
    width: calc(100% - 32px);
    height: 325.805px;
    margin: 0;
    padding: 0 24px 0 23px;
    border-left: 1px solid rgba(255,255,255,.45);
    box-sizing: border-box;
  }
  body .home-hero .hero-content .hero-pill { width: 211.195px; height: 28px; margin-bottom: 24px; }
  body .home-hero .hero-content h1 { width: 680px; max-width: none; font: 300 62px/68.2px var(--display); letter-spacing: -3.1px; }
  body .home-hero .hero-content p { width: 472px; max-width: none; margin: 24px 0 30px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-hero .hero-content > .button { min-height: 38.602px; }
  body .home-hero .ticker { right: 0; bottom: 40px; left: 0; }

  body .home-intro {
    position: relative;
    height: 853.898px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }
  body .home-intro-inner {
    position: relative;
    width: calc(100% - 32px);
    height: 629.898px;
    margin: 0 auto;
    padding: 32px;
    box-sizing: border-box;
  }
  body .home-intro-copy {
    display: flex;
    width: 960px;
    height: 301.898px;
    flex-direction: column;
    gap: 32px;
  }
  body .home-intro-copy .eyebrow { height: 17.5px; }
  body .home-intro-copy h2 { width: 740px; height: 105px; font: 300 42px/52.5px var(--display); letter-spacing: -2.1px; }
  body .home-intro-copy p { width: 480px; height: 44.797px; color: var(--muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-intro-copy .button { margin: 0; }
  body .home-metrics {
    display: grid;
    width: 960px;
    height: 200px;
    grid-template-columns: repeat(3, 296px);
    gap: 36px;
    margin-top: 96px;
    padding-top: 30px;
    box-sizing: border-box;
  }
  body .home-metric {
    display: flex;
    width: 296px;
    height: 200px;
    flex-direction: column;
    justify-content: space-between;
    padding: 28px 24px 28px 0;
    box-sizing: border-box;
  }
  body .home-metric strong { height: 72px; font: 300 72px/72px var(--display); letter-spacing: -2.88px; }
  body .home-metric > span:last-child { height: 16.5px; color: #969290; font: 400 11px/16.5px 'Geist Mono', monospace; letter-spacing: .55px; }

  body .home-product {
    position: relative;
    height: 3508.773px;
    padding: 112px 0 134px;
    box-sizing: border-box;
    overflow: visible;
  }
  body .home-product-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 3262.773px;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }
  body .home-product-heading {
    display: flex;
    width: 928px;
    height: 279.5px;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    text-align: center;
  }
  body .home-product-heading .eyebrow { height: 17.5px; }
  body .home-product-heading h2 { width: 560px; height: 105px; font: 300 42px/52.5px var(--display); letter-spacing: -2.1px; }
  body .home-product-heading p { width: 480px; height: 22.398px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-product-heading .button { margin: 0; }
  body .home-product-body {
    display: grid;
    width: 928px;
    height: 2815.273px;
    grid-template-columns: 306.234px 584.766px;
    gap: 37px;
    margin-top: 96px;
  }
  body .home-product-tabs {
    display: flex;
    width: 306.234px;
    height: 180.711px;
    flex-direction: column;
    gap: 10px;
    position: sticky;
    top: 100px;
    align-self: start;
  }
  body .home-product-tabs > a {
    position: relative;
    display: grid;
    width: 306.234px;
    min-height: 38.102px;
    grid-template-columns: 14.3px minmax(0, 1fr);
    column-gap: 14px;
    align-content: start;
    padding: 8px 0;
    box-sizing: border-box;
  }
  body .home-product-tabs > a.active { height: 84.508px; }
  body .home-product-tabs > a > span { grid-column: 1; }
  body .home-product-tabs > a > strong { grid-column: 2; }
  body .home-product-tabs > a > small { grid-column: 2; }
  body .home-product-tabs > a:not(.active) > small { display: none; }
  body .home-product-cards {
    position: relative;
    display: block;
    width: 584.766px;
    height: 2815.273px;
    margin: 0;
  }
  body .home-product-card {
    position: absolute;
    left: 0;
    width: 584.766px;
    padding: 0;
  }
  body .home-product-card-1 { top: 16px; height: 729.625px; }
  body .home-product-card-2 { top: 865.625px; height: 1116.023px; }
  body .home-product-card-3 { top: 2101.648px; height: 729.625px; }
  body .home-product-card-image { display: block; width: 584.766px; height: 328.93px; object-fit: cover; }
  body .home-product-card-content { position: relative; display: block; width: 584.766px; padding: 32px 0 24px; box-sizing: border-box; }
  body .home-product-card-1 .home-product-card-content,
  body .home-product-card-3 .home-product-card-content { height: 400.695px; }
  body .home-product-card-2 .home-product-card-content { height: 787.094px; }
  body .home-product-card-head {
    display: flex;
    width: 584.766px;
    height: 165.398px;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: 0;
  }
  body .home-product-card-head > div { width: 526.289px; }
  body .home-product-card-head h3 { width: 526.289px; height: 36px; font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  body .home-product-card-head p { width: 526.289px; height: 44.797px; margin-top: 14px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-product-card-head .button { width: 116.313px; height: 38.602px; min-height: 38.602px; margin-top: 32px; padding: 10px 20px 9px; }
  body .home-product-stats {
    display: grid;
    width: 584.766px;
    height: 131.297px;
    grid-template-columns: repeat(2, 287.383px);
    gap: 10px;
    margin-top: 68px;
    padding: 0;
  }
  body .home-product-stat { position: relative; width: 287.383px; height: 131.297px; padding: 0; }
  body .home-product-stat-index { top: 28px; left: 20px; }
  body .home-product-stat strong { top: 28px; left: 64.3px; width: 223.083px; height: 64px; margin: 0; font: 300 64px/64px var(--display); letter-spacing: -2.56px; }
  body .home-product-stat > span:last-child { top: 104.797px; left: 64.3px; width: 223.083px; height: 16.5px; margin: 0; }
  body .home-product-testimonial {
    position: relative;
    width: 584.766px;
    height: 517.695px;
    margin-top: 48px;
    padding: 40px;
    box-sizing: border-box;
  }
  body .home-product-testimonial-logo { width: 128.836px; }
  body .home-product-testimonial blockquote,
  body .home-product-testimonial .home-product-testimonial-quote { width: 504.766px; margin-top: 32px; color: var(--ink); font: 300 19px/22.8px var(--display); letter-spacing: -.76px; }
  body .home-product-testimonial-author { width: 244px; height: 34.5px; margin: 32px 0 0; padding-left: 18px; border-left-color: rgba(8,8,8,.18); }
  body .home-product-testimonial-author strong { color: var(--ink); }
  body .home-product-testimonial-author span { color: var(--muted); }
  body .home-product-testimonial-avatar { position: absolute; top: 257.695px; left: 40px; right: auto; width: 220px; height: 220px; margin: 0; object-fit: cover; }

  body .home-solutions {
    position: relative;
    height: 4703.289px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }
  body .home-solutions-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 4479.289px;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }
  body .home-solutions-heading {
    display: flex;
    width: 928px;
    height: 249.398px;
    flex-direction: column;
    align-items: flex-start;
    gap: 32px;
    text-align: left;
  }
  body .home-solutions-heading .eyebrow { height: 17.5px; }
  body .home-solutions-heading h2 { width: 740px; height: 52.5px; font: 300 42px/52.5px var(--display); letter-spacing: -2.1px; }
  body .home-solutions-heading p { width: 480px; height: 44.797px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-solutions-heading .button { margin: 0; }
  body .home-solutions-body { width: 928px; height: 4137.891px; margin-top: 92px; }
  body .home-solution-tabs { display: none; }
  body .home-solution-cards {
    display: flex;
    width: 928px;
    height: 4137.891px;
    flex-direction: column;
    gap: 84px;
    margin: 0;
  }
  body .home-solution-card {
    display: block !important;
    width: 928px;
    height: 976.023px;
    flex: 0 0 976.023px;
    padding: 12px;
    background: #e5e5e3;
    box-sizing: border-box;
  }
  body .home-solution-card-4 { height: 957.82px; flex-basis: 957.82px; }
  body .home-solution-card-inner { display: flex; width: 904px; height: 952.023px; flex-direction: column; gap: 40px; }
  body .home-solution-card-4 .home-solution-card-inner { height: 933.82px; }
  body .home-solution-copy { width: 904px; height: 251.414px; flex: 0 0 251.414px; padding: 24px; box-sizing: border-box; }
  body .home-solution-card-4 .home-solution-copy { height: 233.211px; flex-basis: 233.211px; }
  body .home-solution-copy h3 { width: 600px; height: 36px; font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  body .home-solution-copy p { width: 480px; height: 72.813px; margin-top: 16px; font: 400 14px/18.2px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.14px; }
  body .home-solution-card-4 .home-solution-copy p { height: 54.609px; }
  body .home-solution-copy .button { margin-top: 40px; }
  body .home-solution-media { position: relative; width: 904px; height: 660.609px; flex: 0 0 660.609px; overflow: hidden; }
  body .home-solution-media > img { width: 904px; height: 660.609px; object-fit: cover; }
  body .home-solution-metric > img,
  body .home-solution-metric > .home-solution-logo { top: 42px; left: 32px; width: 110px; }
  body .home-solution-metric strong { top: 515.313px; left: 50px; height: 72.797px; font: 300 64px/72.797px var(--display); letter-spacing: -2.56px; }
  body .home-solution-metric span { top: 611.61px; left: 50px; }

  body .home-customer {
    position: relative;
    height: 1965.898px;
    padding: 112px 0;
    box-sizing: border-box;
    overflow: visible;
  }
  body .home-customer-shell {
    position: relative;
    width: calc(100% - 32px);
    height: 1741.898px;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }
  body .home-customer-heading { display: flex; width: 928px; height: 301.898px; flex-direction: column; align-items: center; gap: 32px; text-align: center; }
  body .home-customer-heading .eyebrow { height: 17.5px; }
  body .home-customer-heading h2 { width: 560px; height: 105px; font: 300 42px/52.5px var(--display); letter-spacing: -2.1px; }
  body .home-customer-heading p { width: 480px; height: 44.797px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; letter-spacing: -.16px; }
  body .home-customer-heading .button { margin: 0; }
  body .home-testimonials { display: flex; width: 928px; height: 1344px; flex-direction: column; gap: 48px; margin-top: 96px; }
  body .home-testimonial-card,
  body .home-testimonial-card.featured { position: relative; width: 928px; height: 416px; flex: 0 0 416px; border-radius: 4px; }
  body .home-testimonial-background,
  body .home-testimonial-overlay,
  body .home-testimonial-gradient { width: 928px; height: 416px; }
  body .home-testimonial-background { top: 0; left: 0; transform: none; object-fit: cover; object-position: center; }
  body .home-testimonial-logo { top: 28px; left: 28px; width: 110px; }
  body .home-testimonial-content { position: relative; width: 872px; height: 360px; margin: 28px; }
  body .home-testimonial-content blockquote,
  body .home-testimonial-content .home-testimonial-quote { top: 138.954px; left: 0; width: 872px; font: 300 24px/28.8px var(--display); letter-spacing: -.96px; }
  body .home-testimonial-author { bottom: 0; left: 0; width: 872px; }
  body .home-testimonial-card:not(.featured) .home-testimonial-content { opacity: 1; }
  body .home-testimonial-plus { display: none; }

  body .home-faq {
    position: relative;
    height: 866.898px;
    padding: 112px 0;
    box-sizing: border-box;
  }
  body .home-faq .pricing-faq-inner {
    position: relative;
    display: block;
    width: calc(100% - 32px);
    height: 642.898px;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }
  body .home-faq .pricing-faq-copy { position: absolute; top: 0; left: 32px; width: 928px; height: 249.398px; }
  body .home-faq .pricing-faq-copy .eyebrow { height: 17.5px; }
  body .home-faq .pricing-faq-copy h2 { width: 740px; height: 52.5px; margin-top: 32px; font: 300 42px/52.5px var(--display); letter-spacing: -2.1px; }
  body .home-faq .pricing-faq-copy > p { width: 480px; height: 44.797px; margin-top: 32px; font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; }
  body .home-faq .pricing-faq-copy .button { margin-top: 32px; }
  body .home-faq .pricing-faq-list {
    position: absolute;
    top: 297.398px;
    left: 32px;
    width: 800px;
    height: 345.5px;
    margin: 0;
    padding: 48px 0 0;
    box-sizing: border-box;
  }
  body .home-faq .pricing-faq-list details,
  body .home-faq .pricing-faq-list summary { width: 800px; height: 59.5px; min-height: 59.5px; }
  body .home-faq .pricing-faq-list summary { padding: 20px 0; font: 400 14px/19.5px var(--body); }
  body .home-faq .pricing-faq-list details > p { width: 640px; }

  body .final-cta { height: 477.93px; padding: 48px 0 112px; box-sizing: border-box; }
  body .final-cta-inner {
    display: grid;
    width: calc(100% - 32px);
    max-width: none;
    height: 317.93px;
    grid-template-columns: 435.453px 522.547px;
    gap: 10px;
    margin: 0 auto;
    padding: 12px;
    background: rgb(25,25,25);
    box-sizing: border-box;
  }
  body .final-cta-copy { display: flex; width: 435.453px; height: 293.93px; flex-direction: column; padding: 16px; box-sizing: border-box; }
  body .final-cta-content { display: flex; width: 403.453px; height: 139.898px; flex-direction: column; gap: 16px; }
  body .final-cta-content .eyebrow { height: 17.5px; }
  body .final-cta h3 { width: 400px; height: 72px; margin: 0; font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  body .final-cta-content p { width: 403.453px; height: 22.398px; margin: 0; color: var(--dark-muted); font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif; }
  body .final-cta-copy > .button { align-self: flex-start; width: 140.945px; height: 38.602px; min-height: 38.602px; margin-top: 83.43px; }
  body .final-cta-image { width: 522.547px; height: 293.93px; overflow: hidden; }
  body .final-cta-image img { width: 522.547px; height: 293.93px; object-fit: cover; }

  body .site-footer { height: 595.242px; padding: 0 16px; overflow: hidden; box-sizing: border-box; }
  body .site-footer .footer-top { width: 992px; height: 146.602px; padding: 54px 0; box-sizing: border-box; }
  body .site-footer .footer-top { align-items: flex-start; }
  body .site-footer .footer-top h3 { top: 0 !important; }
  body .site-footer .footer-top h3 { width: 712px; height: 36px; margin: 0; font: 300 30px/36px var(--display); letter-spacing: -1.5px; }
  body .site-footer .footer-top .button { width: 140.945px; height: 38.602px; min-height: 38.602px; margin-left: auto; }
  body .site-footer .footer-links { display: grid; width: 992px; max-width: none; height: 264.594px; grid-template-columns: 327.359px 221.547px 221.547px 221.547px; gap: 0; margin: 0; padding: 48px 0 64px; box-sizing: border-box; }
  body .site-footer .footer-mark { width: 26px; height: 26px; }
  body .site-footer .footer-links > div { width: 221.547px; height: 152.594px; gap: 11px; }
  body .site-footer .footer-bottom { width: 992px; height: 184.047px; padding-top: 140.047px; box-sizing: border-box; }
  body .site-footer .footer-legal { left: 0; width: 327.359px; height: 24px; }
  body .site-footer .footer-watermark { left: 327.359px; right: auto; width: 664.641px; height: 184.047px; object-fit: contain; object-position: left bottom; }
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Pricing tablet route. */
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Customers tablet route. */
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  /* Product tablet route. */
}
/* True 375px source geometry. Keep the 390px phone composition unchanged. */
@media (max-width: 375px) {
  body .home-intro-copy,
  body .home-intro-copy h2,
  body .home-intro-copy p,
  body .home-metrics,
  body .home-metric,
  body .home-product-heading,
  body .home-product-heading h2,
  body .home-product-heading p,
  body .home-product-body,
  body .home-product-cards,
  body .home-product-card,
  body .home-product-card-image,
  body .home-product-card-content,
  body .home-product-card-head,
  body .home-product-card-head > div,
  body .home-product-card-head h3,
  body .home-product-card-head p,
  body .home-product-stats,
  body .home-product-stat,
  body .home-product-testimonial,
  body .home-solutions-heading,
  body .home-solutions-heading h2,
  body .home-solutions-heading p,
  body .home-solutions-body,
  body .home-solution-cards,
  body .home-solution-card,
  body .home-customer-heading,
  body .home-customer-heading h2,
  body .home-customer-heading p,
  body .home-testimonials,
  body .home-testimonial-card,
  body .home-testimonial-card.featured,
  body .pricing-faq-copy,
  body .pricing-faq-copy h2,
  body .pricing-faq-copy > p,
  body .pricing-faq-list,
  body .pricing-faq-list details,
  body .pricing-faq-list summary { width: 295px; }

  body .home-intro-copy,
  body .home-product-heading,
  body .home-solutions-heading,
  body .home-customer-heading,
  body .home-product-body,
  body .home-product-cards,
  body .home-solutions-body,
  body .home-solution-cards,
  body .home-testimonials,
  body .pricing-faq-list { max-width: none; }

  body .home-metrics { height: 672px; padding-top: 0; box-sizing: border-box; grid-template-rows: none; }
  body .home-metric { width: 295px; transform: translateY(30px); }

  body .home-product { height: 3480.953px; }
  body .home-product-shell { height: 3234.953px; }
  body .home-product-cards { height: 2821.063px; }
  body .home-product-card-1,
  body .home-product-card-3 { height: 804.32px; }
  body .home-product-card-2 { height: 972.422px; }
  body .home-product-card-image { width: 295px; height: 165.938px; }
  body .home-product-card-1 .home-product-card-content,
  body .home-product-card-3 .home-product-card-content { height: 638.383px; }
  body .home-product-card-2 .home-product-card-content { height: 806.484px; }
  body .home-product-card-head > div,
  body .home-product-card-head h3,
  body .home-product-card-head p { width: 265.5px; }
  body .home-product-stat { width: 295px; }
  body .home-product-stat strong,
  body .home-product-stat > span:last-child { width: 250.695px; }
  body .home-product-testimonial blockquote,
  body .home-product-testimonial .home-product-testimonial-quote { width: 247px; }

  body .home-solutions { height: 3195.711px; }
  body .home-solutions-shell { height: 2971.711px; }
  body .home-solutions-body,
  body .home-solution-cards { height: 2530.422px; }
  body .home-solution-card-1 { height: 610.258px; }
  body .home-solution-card-2 { height: 556.055px; }
  body .home-solution-card-3 { height: 574.258px; }
  body .home-solution-card-4 { height: 537.852px; }
  body .home-solution-card-inner { width: 271px; }
  body .home-solution-card-1 .home-solution-card-inner { height: 586.258px; }
  body .home-solution-card-2 .home-solution-card-inner { height: 532.055px; }
  body .home-solution-card-3 .home-solution-card-inner { height: 550.258px; }
  body .home-solution-card-4 .home-solution-card-inner { height: 513.852px; }
  body .home-solution-copy { width: 271px; }
  body .home-solution-card-1 .home-solution-copy { height: 348.227px; }
  body .home-solution-card-2 .home-solution-copy { height: 294.023px; }
  body .home-solution-card-3 .home-solution-copy { height: 312.227px; }
  body .home-solution-card-4 .home-solution-copy { height: 275.82px; }
  body .home-solution-copy h3,
  body .home-solution-copy p { width: 235px; }
  body .home-solution-media,
  body .home-solution-media > img { width: 271px; height: 198.031px; }
  body .home-solution-metric strong { top: 82.734px; }
  body .home-solution-metric span { top: 165.531px; }

  body .home-faq { height: 1001.789px; }
  body .home-faq .pricing-faq-list { height: 384.5px; }

  body .final-cta { height: 660.836px; }
  body .final-cta-inner { width: 343px; height: 500.836px; }
  body .final-cta-image,
  body .final-cta-image img { width: 327px; height: 183.938px; }
  body .final-cta-copy { width: 327px; height: 268.898px; }
  body .final-cta-content,
  body .final-cta h3,
  body .final-cta-content p { width: 303px; }

  body .site-footer,
  body .site-footer .footer-top,
  body .site-footer .footer-links,
  body .site-footer .footer-bottom { width: 375px; }
  body .site-footer { height: 1205.367px; }
  body .site-footer .footer-top { flex-wrap: nowrap; }
  body .site-footer .footer-top h3 { width: 325.844px; }
  body .site-footer .footer-links { height: 715.797px; }
  body .site-footer .footer-mark,
  body .site-footer .footer-links > div,
  body .site-footer .footer-links > div > span,
  body .site-footer .footer-links > div > a { width: 343px; }
  body .site-footer .footer-bottom { height: 206.969px; }
  body .site-footer .footer-watermark { width: 343px; height: 94.984px; }
}

/* Product FAQ icon/text pairing at the 390px phone breakpoint. */

/* Product 375px source geometry. Keep the 390px phone composition unchanged. */

@media (max-width: 375px) {

  body .home-product-body { height: 2821.063px; }
  body .home-faq .pricing-faq-list summary {
    display: grid;
    grid-template-columns: 260px 16px;
    column-gap: 13px;
    align-items: center;
    padding: 20px 6px 20px 0;
    box-sizing: border-box;
  }
  body .home-faq .pricing-faq-list summary span { grid-column: 2; width: 16px; }
  body .home-faq .pricing-faq-list details:first-child,
  body .home-faq .pricing-faq-list details:first-child summary,
  body .home-faq .pricing-faq-list details:nth-child(2),
  body .home-faq .pricing-faq-list details:nth-child(2) summary { height: 79px; min-height: 79px; }
  body .home-faq .pricing-faq-list summary {
    font: 400 15px/19.5px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.3px;
  }
  body .final-cta-image { flex-basis: 183.938px; }
}

/* Pricing at the 375px source breakpoint: Framer keeps the header, billing
   control, plan stack, and ticker inside one measured dark composition. */

@media (min-width: 376px) and (max-width: 809px) {
  /* At 390px Framer keeps the logo ticker in the dark pricing composition. */

  /* The light quote card is inset by the section padding plus 24px. */
}

@media (max-width: 809px) {
  /* The Open Roles description is a 310px, 20.8px-leading text block in
     Framer; the local flex gap supplies the 32px separation from the title. */
}

/* Company phone composition at the source's 375px breakpoint. The live
   Framer layout narrows the content rail to 295px and reflows each stacked
   section; keep this override route-scoped so the 390px composition remains
   independently measurable. */

/* Company shared mobile internals. Framer uses the same stacked typography,
   vacancy rhythm, logo sizing, and quote-author treatment from 390px through
   the wider phone/tablet variant. */

/* The 390px Company route has source values just above the CSS pixel
   rounding thresholds; these values preserve its exact section rhythm. */

@media (min-width: 1200px) {
  body .home-solutions {
    height: 1097.285px;
  }

  body .final-cta {
    height: 550.525px;
  }

  /* Shared desktop footer: match Framer's nested text rhythm and variable font. */
  body .site-footer .footer-top { height: 166.602px; }
  body .site-footer .footer-links { height: 264.594px; }
  body .site-footer .footer-bottom { height: 222.641px; }
  body .site-footer .footer-links > div > span {
    height: 27px;
    margin: 0;
    padding-top: 5.703px;
    box-sizing: border-box;
    flex-shrink: 0;
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-variation-settings: "wght" 500;
  }
  body .site-footer .footer-links > div > a {
    height: 15.4px;
    flex-shrink: 0;
    color: var(--white);
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
    letter-spacing: -.14px;
    font-variation-settings: "wght" 450;
  }
  body .site-footer .footer-legal {
    width: 396px;
    align-items: center;
  }
  body .site-footer .footer-legal span {
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    letter-spacing: -.12px;
    font-variation-settings: "wght" 400;
  }
  body .site-footer .footer-legal span:last-child { width: 246.609px; }
  body .site-footer .footer-watermark { height: 222.641px; }
  body .site-footer .footer-top h3 { top: .3984375px; }
  body .site-footer .footer-top .button { height: 38.602px; top: .504px; }
}

/* The 375px source uses the tall phone composition for Company. */
@media (max-width: 375px) {

  /* Framer keeps the featured article visually in the hero while the six
     remaining cards live in a fixed-height, one-column grid below it. */
}

/* Match the source Pricing mobile controls: the savings chip is a white
   text-only pill, and comparison tabs use the larger tracked label style. */

/* Framer's desktop canvas grows again above 1280px.  Keep the measured
   1280px composition intact and reproduce the 1440px fluid columns here. */
@media (min-width: 1281px) {
  body .home-intro-inner,
  body .home-product-shell,
  body .home-solutions-shell,
  body .home-customer-shell { width: calc(100% - 80px); }

  body .home-intro-copy,
  body .home-product-heading,
  body .home-solutions-heading,
  body .home-customer-heading { width: calc(100% - 112px); }

  body .home-metrics,
  body .home-product-body,
  body .home-solutions-body,
  body .home-solution-cards,
  body .home-testimonials { width: calc(100% - 112px); }

  /* These elements sit inside a 32px left-padded shell, so their containing
     block is already the source's 1328px content canvas. */
  body .home-intro-copy,
  body .home-product-heading,
  body .home-solutions-heading,
  body .home-customer-heading,
  body .home-metrics,
  body .home-product-body,
  body .home-solutions-body,
  body .home-solution-cards,
  body .home-testimonials { width: 100%; }

  body .home-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  body .home-product { height: 3435.3125px; }
  body .home-product-shell { height: 3189.3125px; }
  body .home-product-body {
    height: 2788.8125px;
    grid-template-columns: 33% 1fr;
  }
  body .home-product-tabs { width: 100%; }
  body .home-product-cards {
    width: 100%;
    height: 2788.8125px;
    padding-top: 0;
  }
  body .home-product-card,
  body .home-product-card-image,
  body .home-product-card-content,
  body .home-product-card-head { width: 100%; }
  body .home-product-card-1,
  body .home-product-card-3 { height: 790.4375px; }
  body .home-product-card-2 { height: 967.9375px; }
  body .home-product-card-image { height: 466.7421875px; }
  body .home-product-card-head > div,
  body .home-product-card-head h3,
  body .home-product-card-head p { width: 642.1015625px; }

  body .home-solutions { height: 1155.7421875px; }
  body .home-solutions-shell { height: 931.7421875px; }
  body .home-solutions-body { height: 573.7421875px; }
  body .home-solution-cards { height: 485.84375px; }
  body .home-solution-card { width: 100%; height: 485.84375px; }
  body .home-solution-card-inner {
    width: 100%;
    height: 461.84375px;
    grid-template-columns: 652px 632px;
  }
  body .home-solution-copy { width: 652px; height: 461.84375px; }
  body .home-solution-copy { padding-top: 131.609375px; }
  body .home-solution-copy h3 { width: 556px; }
  body .home-solution-copy p { width: 444.796875px; }
  body .home-solution-media,
  body .home-solution-media > img { width: 632px; height: 461.84375px; }
  body .home-solution-tabs {
    width: 100%;
    grid-template-columns: repeat(4, 317px);
  }

  body .home-testimonials { grid-template-columns: 654px 327px 327px; }
  body .home-testimonial-card { width: 327px; }
  body .home-testimonial-card.featured { width: 654px; }

  body .home-faq .pricing-faq-inner {
    width: calc(100% - 80px);
    grid-template-columns: 600px 600px;
  }
  body .home-faq .pricing-faq-copy { width: 600px; }
  body .home-faq .pricing-faq-copy h2 { width: 600px; }
  body .home-faq .pricing-faq-list,
  body .home-faq .pricing-faq-list details,
  body .home-faq .pricing-faq-list summary { width: 600px; }
  body .home-faq .pricing-faq-list details > p { width: 566px; }

  body .final-cta { height: 604.5234375px; }
  body .final-cta-inner {
    width: calc(100% - 80px);
    max-width: none;
    height: 444.5234375px;
    grid-template-columns: 578.3984375px 747.6015625px;
  }
  body .final-cta-copy { width: 578.3984375px; height: 420.5234375px; }
  body .final-cta-content { width: 498.3984375px; }
  body .final-cta-image,
  body .final-cta-image img { width: 747.6015625px; height: 420.5234375px; }

  body .site-footer { height: 683.5234375px; }
  body .site-footer .footer-top,
  body .site-footer .footer-links,
  body .site-footer .footer-bottom { width: 100vw; }
  body .site-footer .footer-top h3 { width: 956px; }
  body .site-footer .footer-links {
    grid-template-columns: 448.796875px repeat(3, 303.734375px);
  }
  body .site-footer .footer-mark { width: 448.796875px; }
  body .site-footer .footer-links > div { width: 303.734375px; }
  body .site-footer .footer-bottom { height: 252.328125px; }
  body .site-footer .footer-legal { width: 448.796875px; }
  body .site-footer .footer-watermark {
    left: 488.796875px;
    width: 911.203125px;
    height: 252.328125px;
  }
}

/* Mobile Pricing comparison: keep Framer's centered copy column and selected
   Core action treatment. */

/* The final CTA copy sits on Framer's dark media panel. */
body .final-cta h3 {
  color: var(--white);
}

body .final-cta-content p {
  color: rgba(255, 255, 255, .6);
}

@media (min-width: 1281px) {
  body .final-cta-content p {
    width: 498.3984375px;
  }

  body .final-cta-copy > .button {
    margin-top: 137.2265625px;
  }
}

/* Company desktop canvas: the 1440px source uses a 1360px frame, while the
   narrower desktop composition intentionally stays on the 1200px frame above. */

/* The phone source uses the viewport height for Company's hero. */

/* Editorial detail pages expand to the same 1360px desktop canvas as the
   source above 1280px. */

/* Product workflow overlays match Framer's wide notification compositions. */
@media (min-width:1281px) {
  body .home-hero .hero-content > p {
    width: 398.3984375px;
    max-width: none;
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-variation-settings: "wght" 400;
  }
}

/* Recreate Framer's fixed attribution mark with the same vector silhouettes. */

/* Home metric cards are a flex row in Framer. Their wrappers appear 30px
   lower while entering the viewport, but the measured settled canvas itself
   is exactly 200px tall. */
@media (min-width: 810px) {
  body .home-metrics {
    display: grid;
    height: 200px;
    padding-top: 0;
    box-sizing: border-box;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body .home-metric {
    width: auto;
    flex: initial;
  }

  body .home-metric strong {
    width: max-content;
    align-self: flex-start;
  }

  body .home-metrics > .home-metric:nth-child(2),
  body .home-metrics > .home-metric:nth-child(3) {
    padding-left: 24px;
  }
}

@media (min-width: 1281px) {
  body .home-metrics {
    grid-template-columns: 418.6640625px 418.671875px 418.6640625px;
  }
}

/* FAQ controls use Framer's 16px stroked plus, rather than a text glyph. */
body .pricing-faq-list summary {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  padding-right: 6px;
  list-style: none;
}

body .pricing-faq-list .faq-question {
  display: block;
  width: auto;
  height: 19.5px;
  min-width: 0;
  flex: 1 1 auto;
  color: var(--ink);
  font: 400 15px/19.5px 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
  font-variation-settings: "wght" 500;
  letter-spacing: -.3px;
  white-space: pre-wrap;
}

body .pricing-faq-list .faq-icon {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  color: var(--ink);
  overflow: visible;
  transition: transform .25s ease;
}

body .pricing-faq-list details[open] .faq-icon {
  transform: rotate(45deg);
}

@media (max-width: 809px) {
  body .home-metric {
    display: flex;
    flex-direction: column;
    align-items: normal;
    justify-content: space-between;
    padding: 28px 24px 28px 0;
    box-sizing: border-box;
  }

  body .home-metric-index {
    display: none;
  }

  body .home-metric strong {
    display: block;
    width: max-content;
    height: 72px;
    align-self: flex-start;
    font: 300 72px/72px var(--display);
    letter-spacing: -2.88px;
  }

  body .home-metric > span:last-child {
    display: block;
    width: auto;
    height: 16.5px;
    color: #969290;
    font: 400 11px/16.5px 'Geist Mono', monospace;
    letter-spacing: .55px;
  }
}

@media (max-width: 375px) {

  body .pricing-faq-list details[open] > p {
    width: 236px;
    font: 400 14px/18.2px 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-variation-settings: "wght" 400;
    white-space: pre-wrap;
  }

  body .home-faq .pricing-faq-list summary,
  body .pricing-faq-list summary {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    padding: 20px 6px 20px 0;
    box-sizing: border-box;
  }

  body .home-faq .pricing-faq-list summary .faq-question,
  body .pricing-faq-list summary .faq-question {
    display: block;
    width: auto;
    height: auto;
    min-width: 0;
    flex: 1 1 auto;
    grid-column: auto;
  }

  body .home-faq .pricing-faq-list summary .faq-icon,
  body .pricing-faq-list summary .faq-icon {
    display: block;
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    grid-column: auto;
  }

  body .home-faq .pricing-faq-list summary span {
    grid-column: auto;
    width: auto;
  }
}

@media (max-width: 809px) {
  body .pricing-faq-list details[open] > p {
    font: 400 14px/18.2px 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-variation-settings: "wght" 400;
    white-space: pre-wrap;
  }
}

/* Pricing text and comparison marks use the source's explicit variable-font
   axes and inline SVG symbols. */

/* Product desktop quote/metrics use the wider Framer text columns. */

/* Product interior typography and controls match Framer's desktop canvas. */

/* Product Workflow text enters from Framer's below-fold state. */

/* Pricing comparison keeps its plan actions pinned to the viewport once the
   table scrolls beneath them, matching Framer's translucent sticky header. */

/* Pricing's mobile FAQ body copy uses the variable BDO face from Framer. */

/* The CTA description uses the same variable body face on every viewport. */
html body .final-cta-content > p {
  font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
  font-variation-settings: "wght" 400;
}

/* Mobile footer: Framer stacks the logo and three link groups in one flex
   column, with centered 27px headings and white variable-face links. */
@media (max-width: 809px) {
  html body .site-footer .footer-links {
    display: flex;
    height: 715.78125px;
    flex-direction: column;
    gap: 40px;
    padding: 48px 16px 64px;
    box-sizing: border-box;
  }

  html body .site-footer .footer-mark {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
  }

  html body .site-footer .footer-links > div {
    display: flex;
    width: 343px;
    height: 152.59375px;
    flex: 0 0 152.59375px;
    flex-direction: column;
    gap: 16px;
  }

  html body .site-footer .footer-links > div > span {
    display: flex;
    width: 343px;
    height: 27px;
    flex: 0 0 27px;
    align-items: center;
    margin: 0;
    padding: 0;
    color: rgba(255, 255, 255, .6);
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-size: 12px;
    line-height: 15.6px;
    letter-spacing: 0;
    font-variation-settings: "wght" 500;
    text-transform: none;
  }

  html body .site-footer .footer-links > div > a {
    display: flex;
    width: 343px;
    height: 15.3984375px;
    flex: 0 0 15.3984375px;
    align-items: center;
    color: var(--white);
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-size: 14px;
    line-height: 15.4px;
    letter-spacing: -.14px;
    font-variation-settings: "wght" 450;
  }

  html body .site-footer .footer-bottom {
    height: 206.984375px;
  }

  html body .site-footer .footer-legal {
    width: 250px;
    height: 64px;
    gap: 0;
    padding-bottom: 20px;
    box-sizing: border-box;
  }

  html body .site-footer .footer-legal > span {
    width: 250px;
    height: 18px;
    flex: 0 0 18px;
    margin: 0;
    color: var(--white);
    font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif;
    font-size: 12px;
    line-height: 18px;
    letter-spacing: -.12px;
    font-variation-settings: "wght" 400;
  }

  html body .site-footer .footer-legal > span:first-child {
    height: 24px;
    flex-basis: 24px;
    align-items: center;
    display: flex;
  }

  html body .site-footer .footer-legal > span + span {
    margin-top: 2px;
    color: rgba(255, 255, 255, .6);
  }
}

/* Fractional mobile section heights keep the long Pricing canvas on the same
   pixel grid as Framer, including the final footer boundary. */
@media (max-width: 809px) {

  html body .site-footer {
    height: 1205.3671875px;
  }

  html body .site-footer .footer-top {
    height: 282.6015625px;
    flex-basis: 282.6015625px;
  }
}

/* At 390px Framer expands the mobile footer rail to the full 358px content
   width and its watermark/footer-bottom gain the resulting fractional height. */
@media (min-width: 376px) and (max-width: 809px) {
  html body .site-footer .footer-links > div,
  html body .site-footer .footer-links > div > span,
  html body .site-footer .footer-links > div > a {
    width: 358px;
  }

  html body .site-footer .footer-bottom {
    height: 211.1328125px;
  }

  html body .site-footer .footer-watermark {
    height: 99.1328125px;
  }

  html body .site-footer {
    height: 1209.515625px;
  }
}

/* The featured excerpt already sits in a 10px flex gap on the phone source;
   its generic card-copy margin must not add a second 10px. */

/* The 390px Blog source lands its hero copy and final CTA on a fractional
   layout grid; preserve those exact anchors at that viewport. */

/* Below 390px the source narrows the hero copy to 90% of its content rail
   and lets the featured description track the 311px card column. */

/* Framer's tablet breakpoint keeps the Blog hero and cards in a 736px rail
   while retaining the mobile header. */
@media (min-width: 601px) and (max-width: 809px) {

  html body .site-footer {
    height: 1278.1953125px;
  }

  html body .site-footer .footer-top {
    height: 246.6015625px;
    flex-basis: 246.6015625px;
  }

  html body .site-footer .footer-top .button {
    height: 38.6015625px;
    min-height: 38.6015625px;
  }

  html body .site-footer .footer-links {
    width: 768px;
    max-width: none;
  }

  html body .site-footer .footer-links > div,
  html body .site-footer .footer-links > div > span,
  html body .site-footer .footer-links > div > a {
    width: 736px;
  }

  html body .site-footer .footer-bottom {
    height: 315.8125px;
  }

  html body .site-footer .footer-watermark {
    height: 203.8125px;
  }
}

/* The desktop source keeps the hero copy on a wider 40px guide rail while
   its text starts at x72; the rail is a separate one-pixel left rule. */

/* Company quote uses the source's tighter Spectral tracking at desktop. */

/* At the 390px source breakpoint the pricing plans wrapper ends 42px closer
   to the ticker than it does at the 375px breakpoint. */
@media (min-width: 376px) and (max-width: 390px) {
  html body .final-cta {
    height: 669.2734375px;
  }

  html body .final-cta-inner {
    height: 509.2734375px;
  }

  html body .home-customer {
    height: 1981.890625px;
  }

  html body .home-customer-shell {
    height: 1757.890625px;
  }

  html body .home-customer-heading {
    height: 317.890625px;
  }
}

/* The 375px source layout lands on a separate fractional grid. */
@media (min-width: 375px) and (max-width: 375px) {
  html body .home-product {
    height: 3480.953125px;
  }

  html body .home-product-shell {
    height: 3234.953125px;
  }

  html body .home-product-heading,
  html body .home-customer-heading {
    height: 317.890625px;
  }

  html body .home-customer {
    height: 1981.890625px;
  }

  html body .home-customer-shell {
    height: 1757.890625px;
  }

  html body .home-faq {
    height: 1001.7890625px;
  }
}

/* The 768px source layout uses a distinct fractional grid for the long pages. */
@media (min-width: 768px) and (max-width: 768px) {
  html body .home-intro {
    height: 1316.4921875px;
  }

  html body .home-solutions {
    height: 3936.84375px;
  }

  html body .home-customer {
    height: 1940.4921875px;
  }

  html body .home-faq {
    height: 900.59375px;
  }
}

/* Pricing's 768px composition is a hybrid: stacked plan cards, a wide
   two-column comparison table, then the stacked proof card. */

/* Company uses a 1000px hero at the 768px source breakpoint. */

/* At 768x1024 Framer keeps the Company hero at the full viewport height;
   the 24px difference propagates through every following section. */

/* Contact's 768px form card is one fractional step taller than the phone
   rules, including its inner field surface. */

/* Framer expands the phone navigation from the 64px header and contracts it
   back to that same rail on close. Keep the panel mounted during the exit so
   the black field does not disappear before the motion has finished. */
@media (max-width: 1199.98px) {
  html body .mobile-menu {
    clip-path: inset(0 0 calc(100% - 64px) 0);
    opacity: 1;
    transform: none;
    visibility: hidden;
    pointer-events: none;
    will-change: clip-path;
    transition: clip-path .36s cubic-bezier(.22, .61, .36, 1);
  }

  html body .mobile-menu.open,
  html body .mobile-menu.closing {
    visibility: visible;
    pointer-events: auto;
  }

  html body .mobile-menu.open {
    clip-path: inset(0);
  }

  html body .mobile-menu.closing {
    clip-path: inset(0 0 calc(100% - 64px) 0);
    pointer-events: none;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1199.98px) {
  html body .mobile-menu {
    clip-path: none;
    transition: none;
  }
}

/* The source morphs the same two bars into the close mark while the panel
   expands. Keep the header trigger above the panel so the morph is continuous
   in both directions instead of swapping in a second close control. */
@media (max-width: 1199.98px) {
  html body.menu-open .site-header {
    z-index: 60;
  }

  html body.menu-open .site-header .brand {
    opacity: 1;
    pointer-events: none;
  }

  html body.menu-open .site-header .menu-trigger {
    position: relative;
    z-index: 61;
  }

  html body .site-header .menu-trigger span {
    position: absolute;
    left: 4px;
    width: 24px;
    height: 2px;
    margin: 0;
    transform-origin: 50% 50%;
    transition: top .36s cubic-bezier(.22, .61, .36, 1), transform .36s cubic-bezier(.22, .61, .36, 1), background-color .25s var(--nav-ink-ease);
  }

  html body .site-header .menu-trigger span:first-child {
    top: 10px;
    transform: none;
  }

  html body .site-header .menu-trigger span:nth-child(2) {
    top: 20px;
    transform: none;
  }

  html body.menu-open .site-header .menu-trigger span:first-child {
    top: 15px;
    transform: rotate(45deg);
  }

  html body.menu-open .site-header .menu-trigger span:nth-child(2) {
    top: 15px;
    transform: rotate(-45deg);
  }

  html body .mobile-menu .menu-close {
    visibility: hidden;
    pointer-events: none;
  }

  html body .mobile-menu-actions .button {
    background: var(--white) !important;
    color: var(--ink) !important;
  }
}

@media (prefers-reduced-motion: reduce) and (max-width: 1199.98px) {
  html body .site-header .menu-trigger span {
    transition: none;
  }
}

/* Industry panels keep one fixed Framer canvas while their inner layers are
   animated by syncHomeSolution(). */
@media (min-width: 810px) {
  html body .home-solution-card.active {
    opacity: 1;
    transform: none;
    animation: none;
  }

  html body .home-solution-metric span {
    opacity: .49;
  }

  html body .home-testimonial-card[data-testimonial="0"] .home-testimonial-logo { height: 13.96875px; }
  html body .home-testimonial-card[data-testimonial="1"] .home-testimonial-logo { height: 23.875px; }
  html body .home-testimonial-card[data-testimonial="2"] .home-testimonial-logo { height: 14.96875px; }
}

/* Desktop case-study heroes retain one fractional pixel of source bottom
   padding across both the 1280px and 1440px canvases. */

/* The 1280px-class Framer desktop composition tracks the viewport height.
   Its text stack stays centered on the same 326px rhythm as the hero grows. */

/* Framer's desktop navigation draws its one-pixel bottom guide inside the
   nav box; reproduce it without changing document flow. */
@media (min-width: 1200px) {
  html body .site-header::after {
    content: '';
    position: absolute;
    inset: 0;
    border-bottom: 1px solid rgba(230, 227, 227, .16);
    pointer-events: none;
  }
}

/* Home metric wrappers already carry Framer's 30px entering transform. Keep
   that offset out of the mobile grid's settled layout. */
@media (max-width: 809px) {
  html body .home-metrics {
    padding-top: 0;
    box-sizing: border-box;
  }
}

/* Product mobile cards use Framer's padded column as the content wrapper.
   Keep the header, inter-card gap, metrics, and testimonial on the same
   layout anchors instead of folding the wrapper padding into the header. */
@media (max-width: 390px) {
  html body .home-product-heading { height: 317.890625px; }

  html body .home-product-card-content {
    display: flex;
    flex-direction: column;
    gap: 68px;
    padding: 32px 0 24px;
    box-sizing: border-box;
  }

  html body .home-product-card-head {
    padding-top: 0;
  }

  html body .home-product-stats {
    margin-top: 0;
    padding-top: 0;
  }

  html body .home-product-testimonial {
    margin-top: 0;
  }

  html body .home-product-card-1 { height: 791.9609375px; }
  html body .home-product-card-2 { height: 980.859375px; }
  html body .home-product-card-3 { height: 812.7578125px; }

  html body .home-product-card-1 .home-product-card-content { height: 617.5859375px; }
  html body .home-product-card-2 .home-product-card-content { height: 806.484375px; }
  html body .home-product-card-3 .home-product-card-content { height: 638.3828125px; }

  html body .home-product-card-1 .home-product-card-head { height: 182.9921875px; }
  html body .home-product-card-2 .home-product-card-head { height: 218.9921875px; }
  html body .home-product-card-3 .home-product-card-head { height: 203.7890625px; }

  html body .home-product-stats { height: 310.59375px; }
  html body .home-product-testimonial { height: 463.4921875px; }
}

/* Tablet Product cards retain the source's padded flex content while the
   three cards themselves remain on Framer's absolute canvas. */
@media (min-width: 391px) and (max-width: 809px) {
  html body .home-product-card-1 { height: 983.7890625px; }
  html body .home-product-card-2 { height: 1075.4921875px; }
  html body .home-product-card-3 { height: 983.7890625px; }
  html body .home-product-card-3 { top: 2299.28125px; }

  html body .home-product-card-content {
    display: flex;
    flex-direction: column;
    gap: 68px;
    padding: 32px 0 24px;
    box-sizing: border-box;
  }

  html body .home-product-card-1 .home-product-card-content,
  html body .home-product-card-3 .home-product-card-content { height: 596.7890625px; }
  html body .home-product-card-2 .home-product-card-content { height: 688.4921875px; }

  html body .home-product-card-head {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 0;
  }

  html body .home-product-card-1 .home-product-card-head,
  html body .home-product-card-2 .home-product-card-head,
  html body .home-product-card-3 .home-product-card-head {
    height: 162.1953125px;
  }

  html body .home-product-card-head .button {
    height: 38.6015625px;
    min-height: 38.6015625px;
    margin-top: 0;
  }

  html body .home-product-stats {
    top: 262.1953125px;
    height: 310.59375px;
  }

  html body .home-product-testimonial {
    top: 262.1953125px;
  }
}

/* Framer renders the desktop solution-tab divider one pixel below the 49px
   text variant, with a dark progress fill only on the active variant. */
@media (min-width: 810px) {
  html body .home-solution-tabs button {
    position: relative;
    border-bottom: 0;
    overflow: visible;
  }

  html body .home-solution-tabs button.active {
    border-bottom: 0;
  }

  html body .home-solution-progress {
    position: absolute;
    z-index: 1;
    top: 49px;
    left: 0;
    display: block;
    width: 100%;
    height: 1px;
    overflow: hidden;
    background: rgb(230, 227, 227);
    pointer-events: none;
  }

  html body .home-solution-progress-fill {
    display: block;
    width: 0;
    height: 1px;
    background: rgb(99, 99, 99);
    transition: width 50ms linear;
  }
}

/* Final Company row metrics: the source fixes the 86.6015625px desktop row
   canvas while its border remains an overlay on that canvas. */

@media (max-width: 390px) {

  html body .site-footer .footer-top {
    position: relative;
  }

  html body .site-footer .footer-top .button {
    position: absolute;
    top: 190px;
    left: 16px;
    margin: 0;
  }
}

@media (min-width: 810px) and (max-width: 1199.98px) {
  html body .home-hero {
    height: 900px;
  }

  html body .home-hero .hero-content {
    top: 257.289px;
    transform: translateY(0.0078125px);
  }

  /* The tablet export keeps these section canvases at their own fractional
     Framer heights; letting the rebuilt content round them independently
     accumulates a visible eighth-pixel drift by the footer. */
  html body .home-intro { height: 853.8984375px; }
  html body .home-product { height: 3508.7734375px; }
  html body .home-customer { height: 1965.8984375px; }
  html body .home-faq { height: 866.8984375px; }

  /* On the 1024px source the CTA shares the footer-top baseline with its
     title; the desktop fractional nudge is not present in this variant. */
  html body .site-footer .footer-top .button {
    top: 0;
  }

  html body .site-footer {
    height: 595.2421875px;
  }

  html body .site-footer .footer-links > div {
    gap: 16px;
  }

  html body .site-footer .footer-links > div > span {
    margin-bottom: 0;
  }

  /* Product's translated Framer container carries the complete 16px entry
     offset; the card tracks themselves begin at the container origin. */
  html body .home-product-card-1 { top: 0; }
  html body .home-product-card-2 { top: 849.625px; }
  html body .home-product-card-3 { top: 2085.648px; }

  /* Product route section canvases retain the source's full tablet
     fractions, rather than the three-decimal values rounded by the first
     responsive pass. */

  /* The 1024px Customers export grows its hero by one fractional layout
     step before the stories canvas begins. */

  /* Pricing's first, comparison, and FAQ canvases use the same precise
     tablet fractions as the live route. */

  /* Company switches to the 900px tablet composition at 1024px. */

  /* Legal's 1024px shell is seven pixels shorter than its 768px-derived
     fallback because the section heading uses the wide tablet variant. */

  /* Contact's wide form canvas carries two independent fractional steps. */

  html body .home-solution-card {
    display: block !important;
  }
}

/* Tablet widths between the phone and the desktop canvas keep the Framer
   layout fluid. The 1024px measurements above are the same composition at
   one point on that fluid grid; let the actual card widths, copy wrapping,
   and aspect-ratio media determine the intermediate heights. */
@media (min-width: 810px) and (max-width: 1199.98px) {
  html body .home-product {
    height: auto;
  }

  html body .home-product-shell {
    width: calc(100% - 32px);
    height: auto;
    margin: 0 auto;
    padding: 0 32px 72px;
    box-sizing: border-box;
  }

  html body .home-product-heading {
    width: 100%;
    height: auto;
    min-height: 279.5px;
  }

  html body .home-product-body {
    display: grid;
    width: 100%;
    height: auto;
    grid-template-columns: 33% minmax(0, 1fr);
    gap: 37px;
    margin-top: 96px;
  }

  html body .home-product-tabs {
    width: 100%;
    height: 180.7109375px;
  }

  html body .home-product-cards {
    position: relative;
    display: flex;
    width: 100%;
    height: auto;
    flex-direction: column;
    gap: 120px;
    margin: 0;
  }

  html body .home-product-card {
    position: relative;
    top: auto !important;
    left: auto;
    width: 100%;
    height: auto !important;
    flex: 0 0 auto;
  }

  html body .home-product-card-image {
    display: block;
    width: 100%;
    height: auto !important;
    aspect-ratio: 1280 / 720;
    object-fit: cover;
  }

  html body .home-product-card-content {
    display: flex;
    width: 100%;
    height: auto !important;
    min-height: 0;
    flex-direction: column;
    gap: 48px;
    padding: 32px 0 24px;
    box-sizing: border-box;
  }

  html body .home-product-card-head {
    display: flex;
    width: 100%;
    height: auto !important;
    min-height: 0;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 0;
    padding: 0;
  }

  html body .home-product-card-head > div {
    width: 90%;
    max-width: none;
  }

  html body .home-product-card-head h3,
  html body .home-product-card-head p {
    width: 100%;
    max-width: none;
  }

  html body .home-product-card-head h3 {
    height: 36px;
    font: 300 30px/36px var(--display);
    letter-spacing: -1.5px;
  }

  html body .home-product-card-head p {
    height: auto;
    margin-top: 14px;
    font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.16px;
  }

  html body .home-product-card-head .button {
    width: 116.3125px;
    height: 38.6015625px;
    min-height: 38.6015625px;
    margin-top: 32px;
    padding: 10px 20px 9px;
  }

  html body .home-product-stats {
    display: grid;
    width: 100%;
    height: auto;
    min-height: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
  }

  html body .home-product-stat {
    position: relative;
    display: grid;
    width: 100%;
    height: auto;
    min-height: 0;
    grid-template-columns: 14.3046875px minmax(0, 1fr);
    grid-template-rows: 72.796875px auto;
    column-gap: 10px;
    align-content: start;
    padding: 0 20px 10px;
    box-sizing: border-box;
  }

  html body .home-product-stat-index {
    position: static;
    grid-column: 1;
    grid-row: 1;
    width: auto;
    height: 16.5px;
    margin: 0;
  }

  html body .home-product-stat strong {
    position: static;
    grid-column: 2;
    grid-row: 1;
    width: auto;
    height: 72.796875px;
    margin: 0;
    font: 300 56px/72.796875px var(--display);
    letter-spacing: -2.24px;
  }

  html body .home-product-stat > span:last-child {
    position: static;
    grid-column: 2;
    grid-row: 2;
    width: auto;
    height: auto;
    margin: 32px 0 0;
    font: 400 11px/16.5px 'Geist Mono', monospace;
    letter-spacing: .55px;
  }

  html body .home-product-testimonial {
    position: relative;
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    margin: 0;
    flex: 0 0 auto;
    flex-direction: column;
    padding: 40px;
    box-sizing: border-box;
  }

  html body .home-product-testimonial-logo {
    width: 128.8359375px;
    height: 18px;
    flex: 0 0 auto;
    object-fit: contain;
  }

  html body .home-product-testimonial blockquote,
  html body .home-product-testimonial .home-product-testimonial-quote {
    width: 100%;
    height: auto;
    margin-top: 32px;
    font: 300 17px/20.4px var(--display);
    letter-spacing: -.68px;
  }

  html body .home-product-testimonial-author {
    width: 244px;
    height: 34.5px;
    margin: 32px 0 0;
    padding-left: 18px;
  }

  html body .home-product-testimonial-avatar {
    position: static;
    width: 220px;
    height: 220px;
    margin: 40px 0 0;
    object-fit: cover;
  }

  html body .home-solutions {
    height: auto;
  }

  html body .home-solutions-shell {
    width: calc(100% - 32px);
    height: auto;
    margin: 0 auto;
    padding: 0 32px;
    box-sizing: border-box;
  }

  html body .home-solutions-heading {
    width: 100%;
    height: auto;
    min-height: 249.3984375px;
  }

  html body .home-solutions-body {
    width: 100%;
    height: auto;
    margin-top: 92px;
  }

  html body .home-solution-cards {
    display: flex;
    width: 100%;
    height: auto;
    flex-direction: column;
    gap: 84px;
    margin: 0;
  }

  html body .home-solution-card {
    display: block !important;
    width: 100%;
    height: auto !important;
    min-height: 0;
    flex: 0 0 auto;
    padding: 12px;
    box-sizing: border-box;
  }

  html body .home-solution-card-inner {
    display: flex;
    width: 100%;
    height: auto !important;
    min-height: 0;
    flex-direction: column;
    gap: 40px;
  }

  html body .home-solution-copy {
    width: 100%;
    height: auto !important;
    min-height: 0;
    flex: 0 0 auto;
    padding: 24px;
    box-sizing: border-box;
  }

  html body .home-solution-copy h3 {
    width: min(600px, 100%);
    height: 36px;
    font: 300 30px/36px var(--display);
    letter-spacing: -1.5px;
  }

  html body .home-solution-copy p {
    width: min(480px, 100%);
    height: auto;
    margin-top: 16px;
    font: 400 14px/18.2px 'BDO Grotesk Variable', sans-serif;
    letter-spacing: -.14px;
  }

  html body .home-solution-copy .button {
    margin-top: 40px;
  }

  html body .home-solution-media,
  html body .home-solution-media > img {
    width: 100%;
    height: auto;
    aspect-ratio: 1.36842 / 1;
  }

  html body .home-solution-media {
    min-height: 0;
    flex: 0 0 auto;
  }

  html body .home-solution-media > img {
    display: block;
    object-fit: cover;
  }

  html body .home-solution-metric strong {
    top: calc(100% - 145.296875px);
  }

  html body .home-solution-metric span {
    top: calc(100% - 48.5px);
  }

  /* The tablet CTA is a two-column Framer card. Its image keeps the source
     asset ratio while the copy column uses the remaining flex width. */
  html body .final-cta {
    height: auto;
    padding: 48px 0 112px;
    box-sizing: border-box;
  }

  html body .final-cta-inner {
    display: flex;
    width: calc(100% - 32px);
    max-width: none;
    height: auto;
    min-height: 0;
    flex-direction: row;
    gap: 10px;
    margin: 0 auto;
    padding: 12px;
    box-sizing: border-box;
  }

  html body .final-cta-copy {
    display: flex;
    width: auto;
    height: auto;
    min-height: 0;
    min-width: 0;
    flex: 0 0 calc((100% - 10px) / 2.2);
    flex-direction: column;
    padding: 16px;
    box-sizing: border-box;
  }

  html body .final-cta-content {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 14px;
  }

  html body .final-cta-content .eyebrow {
    height: 17.5px;
  }

  html body .final-cta h3 {
    width: 100%;
    height: 72px;
    max-width: none;
    margin: 0;
    font: 300 30px/36px var(--display);
    letter-spacing: -1.5px;
  }

  html body .final-cta-content p {
    width: 100%;
    height: 22.3984375px;
    margin: 0;
    font: 400 16px/22.4px 'BDO Grotesk Variable', sans-serif;
  }

  html body .final-cta-copy > .button {
    align-self: flex-start;
    width: 140.9453125px;
    height: 38.6015625px;
    min-height: 38.6015625px;
    margin-top: auto;
  }

  html body .final-cta-image {
    width: auto;
    height: auto;
    min-height: 0;
    min-width: 0;
    aspect-ratio: 1280 / 720;
    flex: 0 0 calc((100% - 10px) * 1.2 / 2.2 + 0.0078125px);
    overflow: hidden;
  }

  html body .final-cta-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* Framer's tablet footer is a three-row fluid canvas: 54px top padding,
     48/64px around the link grid, then a 144.53125px bottom watermark row. */
  html body .site-footer {
    width: 100%;
    height: auto;
    padding: 0;
    overflow: hidden;
    box-sizing: border-box;
  }

  html body .site-footer .footer-top {
    display: flex;
    width: 100%;
    height: auto;
    align-items: flex-start;
    gap: 32px;
    margin: 0;
    padding: 54px 16px;
    border-bottom: 0;
    box-sizing: border-box;
  }

  html body .site-footer .footer-top h3 {
    width: calc(75% - 32px);
    height: 36px;
    flex: 0 0 calc(75% - 32px);
    margin: 0;
    font: 300 30px/36px var(--display);
    letter-spacing: -1.5px;
  }

  html body .site-footer .footer-top .button {
    width: 140.9453125px;
    height: 38.6015625px;
    min-height: 38.6015625px;
    margin-left: auto;
  }

  html body .site-footer .footer-links {
    display: grid;
    width: 100%;
    height: auto;
    max-width: none;
    grid-template-columns: 33% repeat(3, minmax(0, 1fr));
    gap: 0;
    margin: 0;
    padding: 48px 16px 64px;
    box-sizing: border-box;
  }

  html body .site-footer .footer-mark {
    width: 100%;
    height: 26px;
  }

  html body .site-footer .footer-links > div {
    width: 100%;
    height: auto;
    min-height: 152.59375px;
    gap: 16px;
  }

  html body .site-footer .footer-links > div > span {
    height: 27px;
    margin: 0;
    padding-top: 5.703125px;
    box-sizing: border-box;
    flex-shrink: 0;
  }

  html body .site-footer .footer-links > div > a {
    height: 15.3984375px;
    flex-shrink: 0;
  }

  html body .site-footer .footer-bottom {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    align-items: stretch;
    justify-content: space-between;
    margin: 0;
    padding: 0 16px;
    border-top: 0;
    box-sizing: border-box;
  }

  html body .site-footer .footer-legal {
    position: static;
    display: flex;
    width: 33%;
    height: auto;
    align-items: flex-end;
    gap: 18px;
    padding-bottom: 20px;
    box-sizing: border-box;
  }

  html body .site-footer .footer-watermark {
    position: static;
    width: calc(67% + 0.0078125px);
    height: auto;
    aspect-ratio: 130 / 36;
    object-fit: fill;
    object-position: left bottom;
  }
}

/* Product's source canvas is fluid between the phone and desktop breakpoints.
   The earlier tablet pass intentionally captured the 1024px composition; this
   pass preserves that point while letting the same Framer geometry breathe at
   the intermediate widths instead of carrying a 1024px canvas into an 811px
   or 900px viewport. */
@media (min-width: 810px) and (max-width: 1199.98px) {

  /* The 1024px capture has more specific nth-card offsets; clear those
     absolute leftovers before the fluid grid places the three items. */
}

/* Product fluid section heights must come after the legacy 1024px snapshot
   rules, whose html body selectors intentionally have higher specificity. */

/* Solutions cards follow the source's text-wrap thresholds while their
   image column remains continuously fluid. */

/* Product tablet interior parity: keep Framer's natural text flow instead of
   carrying the fixed 1024px snapshot into every intermediate canvas. */
@media (min-width: 810px) and (max-width: 1199.98px) {

  /* Quote content is 80% of the inner copy frame and then flows into the
     author and metrics, so line wrapping controls their vertical anchors. */

  /* FAQ is centered in the viewport: at 811px it expands to viewport-96,
     then caps at 800px as in the Framer canvas. */
}

/* Workflow tab content is static in layout and only its opacity state changes
   when a user selects a step. Framer does not render progress bars here. */

/* Customers uses the same tablet canvas at every width between the phone and
   desktop breakpoints. The earlier 1024px snapshot fixed the featured image
   and story cards to that canvas, which leaves excess height at 811/900px and
   clips the fluid image at 1100/1199px. */

/* Pricing's tablet canvas is fluid too. Keep the 1024px values as the
   center point, while allowing the plan cards, comparison columns, and proof
   card to use the live viewport width. */

/* Let the tablet pricing canvas follow the same natural card stack as
   Framer. The ticker is part of that flow, so section height tracks the
   tallest plan at every intermediate width. */

/* Framer retains the narrow annual-header spacing through the 1024px
   variant, then drops it by exactly 18px at the wide tablet variant. */

/* Company tablet parity: Framer keeps a 32px content rail inside the
   viewport-32 shell, then lets the two-column grids and media breathe with
   the available width. */

/* Blog tablet parity: the reference keeps the featured story in the light
   canvas above the two-column article grid. Let the content widths and
   natural text wrapping determine each row at every fluid tablet width. */

/* Framer's footer link rows keep a full-height 15.398px flex slot, while the
   inline anchor itself hugs the rendered text and sits 0.5px lower. Preserve
   that hitbox and rhythm on every non-phone footer layout. */
@media (min-width: 810px) {
  html body .site-footer .footer-links > div > a {
    width: max-content !important;
    height: 13.5px !important;
    flex: 0 0 13.5px !important;
    margin: 0 0 1.8984375px 0 !important;
    position: relative !important;
    top: .5px !important;
    line-height: 15.4px !important;
  }
}

/* Case-study desktop header: Framer gives the title the remaining row width,
   aligns the actions to the row's bottom edge, and leaves no auto margin on
   the action itself. */

/* The phone footer uses the same full-height flex slots as Framer, but keeps
   each link's actual interactive box at the rendered text width. */
@media (max-width: 809px) {
  html body .site-footer .footer-links > div > a {
    width: max-content !important;
    height: 13.5px !important;
    flex: 0 0 13.5px !important;
    margin: 0 0 1.8984375px 0 !important;
    position: relative !important;
    top: .5px !important;
    line-height: 15.4px !important;
  }
}

/* Article desktop Read Next uses a slightly narrower action than case
   studies; keep the title's remaining width and bottom alignment identical
   to the reference row. */

/* Final source-typography corrections. These rules close computed-style
   differences found by the paired Framer oracle after layout parity was
   already established. Keep them late so the many responsive snapshot
   overrides above cannot reintroduce the drift. */
html body .home-hero .hero-content h1 > span {
  color: rgba(255, 255, 255, .6) !important;
}

html body .home-testimonial-author strong {
  color: var(--white) !important;
  font-family: 'BDO Grotesk Variable', 'BDO Grotesk Variable Placeholder', sans-serif !important;
  font-size: 12px !important;
  line-height: 18px !important;
  letter-spacing: -.12px !important;
}

html body .home-testimonial-author span {
  color: var(--white) !important;
}

html body .home-metric-index,
html body .home-product-tabs > a > span,
html body .home-product-stat-index {
  text-transform: uppercase !important;
}

html body .site-footer .footer-top .button {
  background: var(--white) !important;
  color: var(--ink) !important;
}

html body .site-footer .footer-top .button-label {
  color: var(--ink) !important;
}

/* Billing values are two Framer-style layers: a static, non-interactive
   target value and an absolutely positioned visible value that counts between
   plans during the toggle transition. */

/* The intermediate desktop Framer variant lets the home hero follow the
   available small-viewport height; the fixed 900px tablet snapshot only
   matches a 900px-tall canvas and otherwise shifts every later section. */
@media (min-width: 810px) and (max-width: 1199.98px) {
  html body .home-hero {
    height: 100svh !important;
  }

  html body .home-hero .hero-content {
    top: calc(50svh - 192.7109375px) !important;
  }

  /* Below the wide desktop canvas Framer switches Customer Success to its
     stacked card variant: three full-width 416px cards, not the expanded
     574px/287px hover row used at desktop. */
  html body .home-customer-heading,
  html body .home-testimonials {
    width: 100% !important;
  }

  html body .home-testimonials {
    display: flex !important;
    flex-direction: column !important;
    gap: 48px !important;
  }

  html body .home-testimonial-card,
  html body .home-testimonial-card.featured {
    width: 100% !important;
    height: 416px !important;
    flex: 0 0 416px !important;
    padding: 28px !important;
    box-sizing: border-box !important;
  }

  html body .home-testimonial-background,
  html body .home-testimonial-overlay,
  html body .home-testimonial-gradient {
    width: 100% !important;
    height: 416px !important;
  }

  html body .home-testimonial-content {
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 100% !important;
    height: 360px !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    overflow: hidden !important;
  }

  html body .home-testimonial-content blockquote,
  html body .home-testimonial-content .home-testimonial-quote {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    order: 1 !important;
    width: 100% !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 24px !important;
    overflow: hidden !important;
  }

  html body .home-testimonial-author {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    order: 2 !important;
    width: 100% !important;
    height: 34.5px !important;
    margin: 0 !important;
    padding: 0 0 0 18px !important;
    border-left: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    flex: 0 0 34.5px !important;
    box-sizing: border-box !important;
  }

  html body .home-testimonial-author::before {
    position: absolute !important;
    inset: 0 auto 0 0 !important;
    width: 1px !important;
    background: rgba(230, 227, 227, .15) !important;
    content: '' !important;
  }

  html body .home-testimonial-author strong {
    width: 100% !important;
  }

  html body .home-testimonial-logo {
    top: 28px !important;
    left: 28px !important;
    width: 110px !important;
    object-fit: cover !important;
    height: auto !important;
  }

  html body .home-testimonial-card[data-testimonial="0"] .home-testimonial-logo {
    height: 15.3671875px !important;
  }

  html body .home-testimonial-card[data-testimonial="1"] .home-testimonial-logo {
    height: 26.265625px !important;
  }

  html body .home-testimonial-card[data-testimonial="2"] .home-testimonial-logo {
    height: 16.4609375px !important;
  }

  html body .home-testimonial-spacer {
    order: 0 !important;
    width: 100% !important;
    height: 10px !important;
    flex: 0 0 10px !important;
  }

  html body .home-testimonial-plus { display: none !important; }
}

/* Between the source's 1200px desktop variant and its 1280px snapshot,
   Framer keeps the same composition but narrows the centered canvas by the
   fixed 40px side gutters on each side. Let the desktop columns and image
   canvases follow that available width instead of retaining the 1280px sizes. */

/* Route-level guide rails follow the same selective Framer pattern on the
   mobile and intermediate canvases. Sections that do not carry a source
   border are intentionally left untouched. */

/* In the intermediate light navigation, Framer uses an opaque paper layer.
   Without it, a section rail underneath the fixed header bleeds through the
   nav and crosses its horizontal rule. Keep the dark hero variant transparent
   as in the source. */
@media (max-width: 1199.98px) {
  html body .site-header.header-light,
  html body .site.site .site-header.header-light {
    background: rgb(249, 249, 249) !important;
    color: rgb(8, 8, 8) !important;
  }
}

@media (max-width: 809px) {
  /* The mobile Solutions canvas leaves a 96px bottom breathing space after
     its inner bordered block; this is the one route rail that does not use
     the generic section-minus-224 rule. */
}

/* Article detail metadata: Framer mutes the section label but uses the darker
   body gray for the publication date. Keep the two inline values distinct. */

/* Match the Framer breadcrumb typography and spacing on case/article detail. */

/* The source keeps the Lattice breadcrumb variant in its phone composition,
   while the desktop composition uses the current case name. */

/* Detail-page tablet variant: Framer moves the editorial canvas to a 48px
   rail, uses the 48px title scale, and switches related cards to two columns
   before the phone breakpoint. */
@media (min-width: 810px) and (max-width: 1199.98px) {

  /* Article read-next keeps all three cards at tablet width; the third card
     flows onto a second row. Customer case studies intentionally show two. */
}

/* Legal pages use Framer's fluid tablet canvas from 810px through the
   desktop breakpoint: a fixed 72px text rail, a capped 800px column, and
   natural section height when the narrower column adds a line. */

/* At the 1200px desktop edge the source keeps the legal text rail at 72px;
   the wider desktop canvas reaches that same rail by centering its 1200px
   layout. Interpolate the local layout margin so the exact boundary does too. */

/* Framer scales the tablet footer mark with its 130:36 source aspect ratio;
   the phone-width snapshot is only one point on that fluid track. */
@media (min-width: 391px) and (max-width: 809px) {
  html body .site-footer {
    height: calc(((100vw - 32px) * 36 / 130) + 1074.3828125px);
  }

  html body .site-footer .footer-bottom {
    height: calc(((100vw - 32px) * 36 / 130) + 112px);
  }

  html body .site-footer .footer-watermark {
    height: auto;
    aspect-ratio: 130 / 36;
    object-fit: cover;
  }
}

/* Home's tablet export stays on the 768px composition through 799px, then
   follows the available viewport width. The fixed 688px canvas above is the
   exact 768px snapshot; these overrides preserve that point while matching
   Framer's 720px/729px product canvases at 800px/809px. */
@media (min-width: 768px) and (max-width: 809px) {
  html body .home-product {
    height: calc(168.75vw + 2584.765625px);
  }

  html body .home-product-shell {
    height: calc(168.75vw + 2338.765625px);
  }

  html body .home-product-heading,
  html body .home-product-body {
    width: calc(100% - 48px);
  }

  html body .home-product-body {
    height: calc(168.75vw + 1987.0703125px);
  }

  html body .home-product-cards {
    width: 100%;
    height: calc(168.75vw + 1987.0703125px);
  }

  html body .home-product-card {
    width: 100%;
  }

  html body .home-product-card-1,
  html body .home-product-card-3 {
    height: calc(56.25vw + 551.7890625px);
  }

  html body .home-product-card-2 {
    top: calc(56.25vw + 671.7890625px);
    height: calc(56.25vw + 643.4921875px);
  }

  html body .home-product-card-3 {
    top: calc(112.5vw + 1435.28125px);
  }

  html body .home-product-card-image,
  html body .home-product-card-content,
  html body .home-product-card-head,
  html body .home-product-stats,
  html body .home-product-testimonial {
    width: 100%;
  }

  html body .home-product-card-image {
    height: auto;
    aspect-ratio: 16 / 9;
  }

  html body .home-product-card-head > div {
    width: 90%;
  }

  html body .home-product-card-head h3,
  html body .home-product-card-head p {
    width: 100%;
  }

  html body .home-product-stat strong,
  html body .home-product-stat > span:last-child {
    width: calc(100% - 44.3px);
  }

  html body .home-product-testimonial blockquote,
  html body .home-product-testimonial .home-product-testimonial-quote {
    width: calc(100% - 48px);
  }
}

/* Company uses the same viewport-height tablet hero at the exact 768px
   source width; the height-specific source variant then follows naturally. */

/* Solutions uses the same fluid 80px outer rail as Product. Its four stacked
   cards grow only through the media column; the copy canvas and 84px gaps
   remain fixed. */
@media (min-width: 768px) and (max-width: 799px) {
  html body .home-solutions {
    height: calc(292.28515625vw + 1692.09375px);
  }

  html body .home-solutions-shell {
    height: calc(292.28515625vw + 1468.09375px);
  }
}

@media (min-width: 768px) and (max-width: 809px) {
  html body .home-solutions-heading,
  html body .home-solutions-body {
    width: calc(100% - 48px);
  }

  html body .home-solutions-body {
    height: auto;
  }

  html body .home-solution-cards {
    width: 100%;
    height: auto;
  }

  html body .home-solution-card {
    width: 100%;
    height: auto;
    flex-basis: auto;
  }

  html body .home-solution-card-inner {
    width: 100%;
    height: auto;
    flex-basis: auto;
  }

  html body .home-solution-copy {
    width: 100%;
    height: 221.2109375px;
    flex-basis: 221.2109375px;
  }

  html body .home-solution-media,
  html body .home-solution-media > img {
    width: 100%;
    height: auto;
    aspect-ratio: 1.36842 / 1;
  }

  html body .home-solution-media {
    flex-basis: auto;
  }

  html body .home-solution-media > img {
    height: 100%;
    object-fit: cover;
  }
}

/* The tablet Final CTA keeps its 16:9 image fluid. The original 768px rule
   is exact at that anchor, but the 800px/809px exports add the image growth
   to both the inner card and the outer section canvas. */
@media (min-width: 768px) and (max-width: 809px) {
  html body .final-cta {
    height: calc(56.25vw + 449.8984375px);
  }

  html body .final-cta-inner {
    height: calc(56.25vw + 289.8984375px);
  }

  html body .final-cta-image {
    height: auto;
    flex: 0 0 auto;
    aspect-ratio: 16 / 9;
  }

  html body .final-cta-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

/* Product's 800–809px canvas stays in the tablet composition, but its media
   columns are fluid in the source. Keep the existing 768px snapshot intact
   and let the source's 16:9 / 4:3 / security-card ratios drive this narrow
   band instead of the older fixed 1024px measurements. */

/* Customers keeps the tablet composition in this narrow band, but the
   Framer export already expands its cards to the 16:9 viewport column. Let
   the media ratio and the card's natural flex tracks carry the extra height
   instead of the phone-width snapshot used by the older tablet rules. */

/* Pricing's narrow tablet export keeps the card rows at the same width as
   the 800px canvas; only the section canvases and quote/footer flow change
   at the viewport edge. */

/* Blog's tablet layout is a single fluid column. The featured story and all
   six article cards use the same full-width 16:9 media track as the source;
   their natural flex heights then determine the Blog canvas. */

/* Company uses the full tablet rail for its stacked cards. The previous
   phone snapshot kept narrower children and fixed media heights, which made
   Investors, Leadership, Careers, and Quote progressively short as the
   viewport widened. */

/* Article detail headings keep the source's 42px tablet scale. At 44px the
   short Hidden Cost title wraps unnecessarily and adds one full line to the
   article canvas. */

/* At the narrow tablet breakpoint Framer keeps the text rails fluid even
   where the surrounding card rail is still measured at 688px. */
@media (min-width: 800px) and (max-width: 809px) {

  /* Company follows the viewport-height hero variant in this tablet band. */

  /* The featured Customers card keeps a 16px inner rail and a full-width
     title/stats row at this breakpoint. */
}

/* Exact 1200px desktop snapshot parity. The source switches from the
   centered wide-tablet composition to measured 1120px shells at this edge;
   preserve those source measurements without changing the neighboring fluid
   desktop variants. */
@media (min-width: 1200px) and (max-width: 1200px) {
  /* Product: the 1200px source shortens three dark sections by measured
     amounts, which keeps every later anchor on the same pixel row. */

  /* Customers: Framer uses a 533.3359375px copy column and three 361.328px
     story cards at this viewport. */

  /* Blog: the featured story and article grid use the same 1120px shell,
     with 361.33px cards and 383.65625px row tracks. */

  /* Company: the source's investors, leadership, and quote sections are
     shorter than the inherited 1280px desktop measurements by exact values. */

  /* Pricing: measured plan, comparison, quote, and FAQ shells at the exact
     1200px source edge. */
}

/* Product workflow overlays sit on top of the phone card imagery in Framer;
   the desktop-only Review affordance is omitted from the phone composition. */

/* Framer's phone Product variant keeps the speed-card visual sequence
   Learns, Handles, Scales while its responsive DOM sequence is Scales,
   Handles, Learns. The data-keyed placement preserves both contracts after
   syncProductSpeedOrder() changes the DOM order for assistive text and probes. */

/* Tablet Product speed cards remain on the same absolute visual canvas after
   the semantic DOM reorder above. */

/* The phone footer's Framer link columns use 15.40625px wrapper slots. The
   local anchors are the interactive row itself, so keep the same slot rhythm
   and let the rendered text sit one pixel below the slot origin. This also
   preserves the exact footer boundary at 375px and 390px. */
@media (max-width: 809px) {
  html body .site-footer .footer-links {
    height: 715.875px;
  }

  html body .site-footer .footer-links > div {
    height: 152.625px;
    min-height: 152.625px;
    flex-basis: 152.625px;
  }

  html body .site-footer .footer-links > div > a {
    height: 13px !important;
    flex-basis: 13px !important;
    margin-bottom: 2.40625px !important;
    top: 1px !important;
  }

}

@media (max-width: 375px) {
  html body .site-footer {
    height: 1205.453125px;
  }
}

@media (min-width: 376px) and (max-width: 390px) {
  html body .site-footer {
    height: 1209.59375px;
  }
}

@media (min-width: 391px) and (max-width: 809px) {
  html body .site-footer {
    height: calc(((100vw - 32px) * 36 / 130) + 1074.4765625px);
  }
}

/* Framer's responsive header eases out of view over roughly one second after
   a short scroll-direction settling delay. Match that path instead of the
   faster generic shell transition used by the static layout. */
@media (max-width: 1199.98px) {
  html body .site-header {
    transition: transform .9s cubic-bezier(.22, .61, .36, 1) .25s, background-color .25s var(--nav-bg-ease), color .25s var(--nav-ink-ease);
  }
}

@media (prefers-reduced-motion: reduce) {
  html body .site-header {
    transition: none !important;
  }
}

/* At the intermediate phone/tablet breakpoint the source footer keeps the
   CTA title and button in one narrow column. Prevent fractional flex-wrap
   rounding from creating a second column and preserve the 64px source gap. */
@media (min-width: 601px) and (max-width: 809px) {
  html body .site-footer .footer-top {
    flex-wrap: nowrap;
  }

  html body .site-footer .footer-top .button {
    align-self: flex-start;
    margin-left: 0;
  }
}

/* The same footer canvas becomes fluid immediately after the 390px phone
   breakpoint. Let the title's actual line count determine the top-row height
   and use Framer's 95% content rail instead of a fixed 36.8px subtraction. */
@media (min-width: 391px) and (max-width: 809px) {

  html body .site-footer .footer-top {
    height: auto;
    flex-basis: auto;
    flex-wrap: nowrap;
    border-bottom: 0;
  }

  html body .site-footer .footer-top h3 {
    width: 95%;
    max-width: 95%;
    height: auto;
    flex: 0 0 auto;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: break-word;
  }

  html body .site-footer .footer-top .button {
    align-self: flex-start;
    margin-left: 0;
  }

  html body .site-footer .footer-links {
    width: 100%;
    max-width: none;
  }

  html body .site-footer .footer-links > div,
  html body .site-footer .footer-links > div > span,
  html body .site-footer .footer-links > div > a {
    width: 100%;
  }
}

/* Pricing keeps the source's intermediate phone/tablet flow between the
   390px phone export and the dedicated 768px composition. The source changes
   the hero/toggle stack at 410px and 545px, while the plan rail itself stays
   340px wide once the viewport can hold it. */

/* The proof card is a natural vertical stack in the source at this width
   band. Keeping the image square and releasing the copied desktop heights
   lets the quote's balanced wrapping determine the exact canvas height. */

/* Between the 390px phone export and the exact 768px tablet export the
   comparison table remains a fluid two-column rail. The broader tablet pass
   above supplies a 688px canvas for the 768px composition; release those
   fixed widths here so intermediate phone/tablet widths do not overflow. */

/* The final CTA also remains a simple source stack here: a 16:9 image, a
   32px gap, and the fixed copy block inside the padded card. */

/* Product's intermediate source variant is a natural single-column stack.
   The exact 768px canvas above remains untouched; between the phone export and
   that tablet edge, let the same text and aspect-ratio rules determine each
   section's height so wrapping does not inherit the 768px snapshot. */

/* Product FAQ answers expand the owning row, matching the source accordion
   instead of spilling through the fixed closed-state question bands. */

/* The base FAQ rule targets every summary span; only the icon wrapper should
   rotate when a product answer is open. */

/* Let the 391-767px source variant derive wrapped question rows from their
   content; the fixed 59.5px canvas is only valid when the question is one line. */

/* The Product phone/tablet overlay keeps its figures on one Framer-style row
   at every width above the 375px export. */

/* The wide home canvas is fluid between Framer's 1280px and 1440px
   desktop variants. The 1440px snapshot above is intentionally preserved;
   this range restores the source's interpolated card, solutions, CTA, and
   footer geometry at intermediate viewport widths. */

/* The 1440px endpoint keeps the same fluid internals as the intermediate
   canvas even though its outer section snapshots remain fixed above. */
@media (min-width: 1281px) and (max-width: 1440px) {
  html body .home-product-stats,
  html body .home-product-testimonial {
    width: 100% !important;
    min-width: 0 !important;
  }

  html body .home-product-stat strong,
  html body .home-product-stat > span:last-child {
    left: 64.3046875px !important;
    width: calc(100% - 84.3046875px) !important;
  }

  html body .home-solution-copy {
    display: flex !important;
    align-items: center !important;
    padding: 48px 48px 48px 0 !important;
    box-sizing: border-box !important;
  }

  html body .home-solution-copy-group {
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 40px !important;
    padding: 24px !important;
    box-sizing: border-box !important;
  }

  html body .home-solution-copy-text {
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }

  html body .home-solution-copy h3 {
    width: 100% !important;
  }

  html body .home-solution-copy p {
    width: calc(40vw - 131.203125px) !important;
    margin-top: 0 !important;
  }

  html body .home-solution-copy .button {
    margin-top: 0 !important;
  }

  html body .home-solution-metric strong {
    top: calc(100% - 122.5px) !important;
  }

  html body .home-solution-metric span {
    top: calc(100% - 48.5px) !important;
  }
}

/* The 1280px desktop export retains the source's fractional track values.
   Keep the parent sections on their measured composition while preserving
   the final 1/128px child-box rounding in the card and CTA tracks. */
@media (min-width: 1280px) and (max-width: 1280px) {
  html body .home-product-body {
    grid-template-columns: 385.4375px 722.5625px !important;
  }

  html body .home-product-tabs {
    width: 385.4375px !important;
  }

  html body .home-product-cards,
  html body .home-product-card,
  html body .home-product-card-image,
  html body .home-product-card-content,
  html body .home-product-card-head,
  html body .home-product-stats,
  html body .home-product-testimonial {
    width: 722.5625px !important;
  }

  html body .home-product-card-1,
  html body .home-product-card-3 {
    height: 730.1328125px !important;
  }

  html body .home-product-card-2 {
    height: 907.6328125px !important;
  }

  html body .home-product-card-image {
    height: 406.4375px !important;
  }

  html body .home-product-card-content,
  html body .home-product-card-head,
  html body .home-product-stats,
  html body .home-product-testimonial {
    max-width: 722.5625px !important;
  }

  html body .home-solution-cards,
  html body .home-solution-card {
    height: 427.3828125px !important;
  }

  html body .home-solution-card-inner,
  html body .home-solution-copy,
  html body .home-solution-media,
  html body .home-solution-media > img {
    height: 403.3828125px !important;
  }

  html body .home-solutions-body {
    height: 515.3828125px !important;
  }

  html body .final-cta-inner {
    height: 390.5234375px !important;
    grid-template-columns: 514.3984375px 651.6015625px !important;
  }

  html body .final-cta-copy,
  html body .final-cta-image,
  html body .final-cta-image img {
    height: 366.5234375px !important;
  }

  html body .final-cta-image,
  html body .final-cta-image img {
    width: 651.6015625px !important;
  }
}

/* Preserve the source's measured desktop control widths after layout
   centering has been resolved to the browser's fractional pixel grid. */
@media (min-width: 1200px) {
  html body .desktop-nav {
    transform: translateX(calc(-50% + 0.00390625px)) !important;
  }

  html body .hero-pill {
    width: 211.1953125px !important;
  }

  html body .home-product-card-head .button {
    width: 116.3125px !important;
    height: 38.6015625px !important;
    min-height: 38.6015625px !important;
  }
}

/* Final interaction parity pass: keep Framer's measured desktop columns in
   the fluid canvas and let the stateful controls morph instead of swapping
   their content in a single frame. */
@media (min-width: 1200px) {
  html body .home-faq {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: clip;
  }

  html body .home-faq .pricing-faq-inner {
    padding-right: 32px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  html body .home-faq .pricing-faq-copy,
  html body .home-faq .pricing-faq-list,
  html body .home-faq .pricing-faq-list details,
  html body .home-faq .pricing-faq-list summary {
    width: 100%;
  }

  html body .home-faq .pricing-faq-copy h2 {
    width: 100%;
  }

  html body .home-faq .pricing-faq-list details > p {
    width: 80%;
    max-width: none;
  }
}

@media (min-width: 810px) {
  html body .home-product-tabs > a {
    height: 38.1015625px;
    transition: height 0.52s cubic-bezier(.17, .67, .31, 1), color 0.32s ease;
  }

  html body .home-product-tabs > a.active { height: 84.5078125px; }
  html body .home-product-tabs > a.active::before { display: none; content: none; }

  html body .home-product-tabs > a > span,
  html body .home-product-tabs > a > strong {
    transition: opacity 0.52s cubic-bezier(.17, .67, .31, 1), transform 0.52s cubic-bezier(.17, .67, .31, 1);
  }

  html body .home-product-tabs > a > span { align-self: start; opacity: .35; }
  html body .home-product-tabs > a > strong { opacity: .35; }
  html body .home-product-tabs > a.active > span,
  html body .home-product-tabs > a.active > strong { opacity: .9; }

  html body .home-product-tabs > a > small,
  html body .home-product-tabs > a:not(.active) > small {
    display: block !important;
    height: 0;
    max-height: 0;
    margin-top: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-6px) scale(.98);
    transform-origin: 50% 0;
    transition: height 0.52s cubic-bezier(.17, .67, .31, 1), max-height 0.52s cubic-bezier(.17, .67, .31, 1), margin-top 0.52s cubic-bezier(.17, .67, .31, 1), opacity 0.52s cubic-bezier(.17, .67, .31, 1), transform 0.52s cubic-bezier(.17, .67, .31, 1);
  }

  html body .home-product-tabs > a.active > small {
    height: 36.40625px;
    max-height: 36.40625px;
    margin-top: 10px;
    opacity: 1;
    transform: none;
  }

  html body .home-solution-tabs button:focus {
    outline: none;
    border-radius: 0;
  }

  html body .home-solution-tabs button:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 0;
  }

  html body .pricing-faq-list details {
    overflow: hidden;
  }

  html body .pricing-faq-list details > p {
    will-change: opacity, transform;
  }
}

html body .button {
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

html body .button .button-label {
  transition: color 0.18s ease, opacity 0.18s ease;
}

html body .button:hover .button-label {
  opacity: .8;
}

/* Framer fades the oversized footer wordmark into the dark canvas at its
   lower edge. Keep the spatial contract of the existing local SVG and apply
   the same mask to the reusable image across breakpoints. */
html body .footer-watermark {
  -webkit-mask-image: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 79%);
  mask-image: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, rgb(0, 0, 0) 79%);
}

@media (max-width: 809px) {
  html body .mobile-menu .menu-close span {
    top: 15px;
    left: 4px;
    width: 24px;
    height: 2px;
    border-radius: 4px;
  }
}

/* Product fidelity pass: keep the source's already-running Product marquee,
   glass workflow notifications, and quiet focus treatment. */

/* Product FAQ and security cards: preserve the source's mobile baselines and
   hairline card edges without changing the content box geometry. */

html body .product-page-hero ~ .faq-section .faq-list details,
html body .product-page-hero ~ .faq-section .faq-list summary,
html body .product-page-hero ~ .faq-section .faq-list summary:focus,
html body .product-page-hero ~ .faq-section .faq-list summary:focus-visible {
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent;
}

/* Pricing parity pass: Framer's pricing marquee is a wrapper-width track that
   enters at -100px, then recycles one logo sequence at 15px/s. The other
   tickers keep their existing page-specific treatment. */

/* Keep the hero rail and the small metric rails aligned with Framer's
   mobile/tablet containers without changing their existing content widths. */
@media (max-width: 1199.98px) {
  html body .home-hero {
    position: relative;
  }

  html body .home-hero .hero-content {
    border-left: 0;
  }

  html body .home-hero::after {
    position: absolute;
    top: calc(50% - 202.1015625px);
    left: 16px;
    width: calc(100% - 32px);
    height: 344.5859375px;
    border-left: 1px solid rgba(230, 227, 227, .25);
    content: '';
    pointer-events: none;
  }

  html body .home-solution-metric::after {
    position: absolute;
    top: 26px;
    left: 16px;
    width: calc(100% - 32px);
    height: 99.296875px;
    border-left: 1px solid rgba(230, 227, 227, .16);
    content: '';
    pointer-events: none;
  }

  html body .home-testimonial-author {
    border-left: 0;
  }

  html body .home-testimonial-author::before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 1px;
    background: rgba(230, 227, 227, .16);
    content: '';
    pointer-events: none;
  }
}

/* Framer changes the phone-style menu bars with the header theme: black on
   paper, white over the dark hero. The tablet base rule above sets white as
   its default, so keep the final color state tied to the active header. */
@media (max-width: 1199.98px) {
  html body .site-header.header-light {
    --menu-ink: rgb(8, 8, 8);
  }

  html body .site-header.header-dark {
    --menu-ink: rgb(255, 255, 255);
  }

  html body .site-header.header-light .menu-trigger {
    color: rgb(8, 8, 8) !important;
  }

  html body .site-header.header-dark .menu-trigger {
    color: rgb(255, 255, 255) !important;
  }

  html body .site-header.header-dark:not(.header-overlay),
  html body .site.site .site-header.header-dark:not(.header-overlay) {
    background: rgb(3, 3, 3) !important;
  }

  html body .site-header .menu-trigger span {
    background-color: var(--menu-ink) !important;
    transition: top .36s cubic-bezier(.22, .61, .36, 1), transform .36s cubic-bezier(.22, .61, .36, 1), background-color .25s var(--nav-ink-ease);
  }
}

/* Rituance copy pass (Home only). The wordmarks and symbols take the place of
   the former Lateral logo images and keep the same boxes. */
html body .site-header .brand .wordmark,
html body .mobile-menu-head .brand .wordmark,
html body .site-footer .footer-mark .wordmark {
  display: block;
  font: 300 21px/20.39px var(--display);
  letter-spacing: -.01em;
  text-transform: none;
  white-space: nowrap;
  color: inherit;
}
html body .site-header .brand .wordmark { width: 90px; }
html body .mobile-menu-head .brand .wordmark { width: 90px; color: var(--white); }
html body .site-footer .footer-mark .wordmark { color: var(--white); }
html body .site-footer .footer-watermark { color: var(--white); }

html body .home-hero .ticker .ticker-track > span {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  height: auto;
  color: var(--white);
  white-space: nowrap;
}
html body .home-hero .ticker .ticker-track > span > svg { flex: 0 0 auto; width: 16px; height: 16px; }
html body .home-hero .ticker .ticker-track > span > span { font: 400 15px/1 var(--body); letter-spacing: -.01em; }

html body .home-product-testimonial-logo { color: var(--ink); }
html body .home-product-testimonial-avatar { border-radius: 50%; background: #d6d6d3; color: #080808; }
html body .home-solution-metric > .home-solution-logo { color: var(--white); }

html body .home-faq .pricing-faq-list p a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* The mobile menu action row was sized for "Request Demo"; the approved labels
   are longer, so the row sizes to its content and wraps if it must. */
html body .mobile-menu-actions { width: auto; height: auto; flex-wrap: wrap; gap: 14px 22px; }
html body .mobile-menu-actions .button { width: auto; flex: 0 0 auto; }
html body .mobile-menu-actions .login-link { width: auto; height: auto; padding: 0; }

/* ═══ Rituance: accessibility and fit, applied after the Lateral fidelity passes ═══ */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
}

/* Small labels on paper reach 4.5:1. */
html body .light-section .eyebrow,
html body .theme-light .eyebrow,
html body .light-section .home-metric > span:last-child {
  color: #6f6b68;
}

/* The runner sits at the right of the frame; keep him in view on a phone. */
@media (max-width: 809.98px) {
  html body .home-hero .hero-background { object-position: 50% 0%; }
  html body .home-product-card .home-product-stats { margin-top: 36px; }
  html body .site-footer .footer-created-by { white-space: nowrap; }
}

/* "Explore the app" needs its own width. */
html body .home-product-card-head .button {
  width: auto;
  padding-inline: 16px;
  white-space: nowrap;
}

/* Agent cards open on keyboard focus; show where focus is. */
html body .home-testimonial-card:focus-visible {
  outline: 2px solid #f3f0e8;
  outline-offset: 3px;
}

/* Our answers are longer than Lateral's: let the FAQ grid hold its open rows. */
html body .pricing-faq.home-faq .pricing-faq-inner {
  height: auto !important;
}
