/* Ordinary sections remain readable without a scroll-driven waiting period. */
.launch {
  height: auto;
  min-height: 0;
}
.launch .launch-inner {
  position: relative;
  top: auto;
  display: block;
  height: auto;
  min-height: 0;
  padding-block: clamp(3rem, 5vw, 5rem);
}
.launch .steps {
  height: auto;
  min-height: 0;
  grid-template-rows: none;
  grid-auto-rows: auto;
}
.launch .step-content,
.launch .launch-ending {
  will-change: auto;
}
.launch .launch-ending {
  margin-top: 2rem;
}

/* Compact ordinary sections without changing the spacing tokens used by
   the pain/control scenes or the stacked case cards. */
:root {
  --content-section-padding: calc(var(--site-container-padding-xl) * 7 / 9);
}
:root :is(
  .home-metrics,
  .examples-inner,
  .home-platform,
  .solution--spacious,
  .company-story,
  .contacts-section,
  .faq,
  .integration,
  .demo
) {
  padding-block: var(--content-section-padding);
}
:root .integration {
  height: auto;
  min-height: 0;
}
:root .demo {
  min-height: 0;
}
:root .capabilities-section {
  padding-block: clamp(4.6667rem, 7vw, 8.75rem);
}
:root .capabilities-section--compact {
  padding-block: var(--content-section-padding);
}
@media (min-width: 90rem) {
  :root .demo {
    padding-block: 7.5rem;
  }
}
@media (min-width: 48rem) and (max-width: 79.999rem) {
  :root .capabilities-section {
    padding-block: 3.75rem;
  }
}
@media (max-width: 47.999rem) {
  :root {
    --content-section-padding: 3rem;
  }
  :root .capabilities-section {
    padding-block: 4.5rem;
  }
}

/* The call banner stays a moving link; its cursor orb fits within the band. */
:root .call-marquee {
  height: 20rem;
  min-height: 0;
  padding-block: 0;
}
.call-marquee .marquee-track {
  --marquee-gap: clamp(3rem, 5vw, 5rem);
}
.call-marquee .marquee-copy small {
  display: none;
}
.call-marquee .marquee-title {
  font-size: clamp(2rem, 3.0556vw, 2.75rem);
  line-height: 1.15;
}
.call-marquee .voice-orb {
  width: clamp(10.5rem, 15vw, 13rem);
}
.call-marquee .voice-orb__label {
  font-size: clamp(1.375rem, 2vw, 1.75rem);
  line-height: 1.2;
}
@media (max-width: 47.999rem) {
  :root .call-marquee {
    height: 16rem;
  }
  .call-marquee .marquee-track {
    --marquee-item-width: min(18rem, calc(100vw - 4rem));
    --marquee-gap: 4rem;
  }
  .call-marquee .marquee-item {
    gap: .75rem;
  }
  .call-marquee .marquee-icon {
    width: 3rem;
    height: 3rem;
    flex-basis: 3rem;
  }
  .call-marquee .marquee-title {
    font-size: 1.5rem;
    line-height: 1.75rem;
  }
}

.header-phone-icon,
.mobile-nav-actions,
.mobile-menu-backdrop {
  display: none;
}

@media (max-width: 79.999rem) {
  html.mobile-menu-open .header {
    z-index: 1001;
    position: fixed;
    opacity: 1;
    transform: none;
  }
  .mobile-menu-backdrop {
    position: fixed;
    z-index: 1000;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    background: rgb(24 21 61 / 48%);
    cursor: pointer;
  }
  .mobile-menu-backdrop[hidden] {
    display: none;
  }
  .header .menu-toggle[aria-expanded="true"] svg {
    display: none;
  }
  .header .menu-toggle[aria-expanded="true"]::before,
  .header .menu-toggle[aria-expanded="true"]::after {
    grid-area: 1 / 1;
    display: block;
    width: 1.125rem;
    height: 1.5px;
    border-radius: 1px;
    background: currentColor;
    content: "";
    transform: rotate(45deg);
  }
  .header .menu-toggle[aria-expanded="true"]::after {
    transform: rotate(-45deg);
  }
  .header.header--menu-open nav {
    max-height: calc(100dvh - 7rem - env(safe-area-inset-bottom));
    touch-action: pan-y;
  }
  .mobile-nav-actions {
    display: grid;
    flex: 0 0 auto;
    gap: .75rem;
    margin-top: .75rem;
    border-top: 1px solid var(--border-default);
    padding: 1rem .25rem .25rem;
  }
  .mobile-nav-phone {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    justify-content: center;
    color: var(--text-accent);
    font-weight: 500;
  }
  .mobile-nav-demo {
    width: 100%;
    min-height: 2.75rem;
  }
  .mobile-nav-socials {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .25rem .75rem;
  }
  .mobile-nav-social {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: .375rem;
    color: var(--text-default);
    font-size: .875rem;
  }
  .mobile-nav-social img {
    width: 1.125rem;
    height: 1.125rem;
  }
}

@media (max-width: 47.999rem) {
  .header {
    column-gap: .375rem;
  }
  .header .wordmark,
  .incoming-page > .header .wordmark {
    width: clamp(6rem, 28vw, 8.9375rem);
    min-width: 0;
  }
  .header .header-actions {
    gap: .25rem;
  }
  .header .header-actions .phone {
    display: inline-flex;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .75rem;
    background: var(--color-lilac-100);
    color: var(--color-lilac-800);
    font-size: 0;
  }
  .header .header-actions .login {
    padding-inline: .75rem;
  }
  .header-phone-label {
    display: none;
  }
  .header-phone-icon {
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
  }
  .header.header--menu-open .nav-menu__group,
  .header.header--menu-open .nav-item--solutions .nav-menu__group--solutions-1,
  .header.header--menu-open .nav-item--solutions .nav-menu__group--solutions-2 {
    min-width: 0;
    max-width: none;
    flex: 1 1 100%;
  }
  .header.header--menu-open .nav-item--solutions .nav-menu__group--solutions-2 .nav-menu__links {
    grid-template-columns: 1fr;
  }
  .header.header--menu-open .nav-menu__link {
    height: auto;
    min-height: 2.75rem;
    white-space: normal;
  }
}

/* Footer headings remain readable against the white panel. */
.footer-navigation .footer-group-title {
  color: var(--text-default);
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
}

/* Keep the entire portrait, including its baked-in caption, at its native ratio. */
.company-story__portrait[data-astro-cid-sjnh3lzz] {
  align-self: start;
  min-height: 0;
  aspect-ratio: 532 / 490;
}
.company-story__portrait[data-astro-cid-sjnh3lzz] img[data-astro-cid-sjnh3lzz] {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 532 / 490;
  object-fit: contain;
}

@media (max-width: 47.999rem) {
  #site-footer .footer-group-title {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
  }
  #site-footer .footer-text-link,
  #site-footer .footer-certification-link,
  #site-footer .footer-phone {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    line-height: 1.5;
  }
  #site-footer .footer-text-link {
    font-size: 1rem;
  }
  #site-footer .footer-navigation .footer-text-link,
  #site-footer .footer-legal .footer-text-link {
    width: 100%;
  }
}
