/* Requested refinements. Original Webflow CSS and interaction targets stay intact. */
.footer-bottom {
  gap: 1rem 2rem;
}

.footer-bottom .subnav {
  row-gap: .75rem;
}

.footer-bottom .subnav-item.inverse {
  padding-right: 0;
}

.footer-bottom .subnav-item-line.inverse {
  background-color: currentColor;
}

.fm-hero-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
}

.fm-contact-cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

.fm-hero-cta .button-inner-text,
.fm-contact-cta .button-inner-text {
  white-space: nowrap;
}

.fm-hero-cta .button.primary:hover,
.fm-contact-cta .button.primary:hover {
  background-color: #fff;
}

@media (max-width: 479px) {
  .section-home-hero h1.home-hero-subheading {
    font-size: max(16px, 1rem);
    line-height: 1.2;
    text-wrap: balance;
  }

  .fm-hero-cta {
    flex-direction: column;
    align-items: stretch;
  }

  .fm-hero-cta .button {
    width: 100%;
  }

  .fm-contact-cta {
    flex-direction: column;
    align-items: stretch;
    max-width: 24rem;
    margin-inline: auto;
  }

  .fm-contact-cta .button {
    width: 100%;
  }

  /* Keep the live-production scene visible without pushing the company intro
     below a tall portrait on phones. Tablet and desktop retain the full image. */
  .about-image-wrapper {
    height: clamp(14rem, 70vw, 18rem);
    overflow: hidden;
  }

  .about-image-wrapper .about-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 63%;
  }
}

.fm-field-label {
  display: block;
  color: var(--white);
}

@media (max-width: 991px) {
  .mobile-menu .mobile-menu-nav-link {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  /* Enlarge the target while retaining the original icon's position and size. */
  .mobile-menu-toggle {
    /* Keep the focus outline unfiltered; invert only the original icon lines. */
    filter: none;
    width: 44px;
    height: 44px;
    margin: -12px -7px;
    flex: 0 0 44px;
    touch-action: manipulation;
  }

  .mobile-menu-toggle-line {
    filter: invert(1);
    right: 7px;
    /* Webflow animates the middle line to 100% of its enlarged parent. */
    max-width: 30px;
  }

  .mobile-menu-toggle-line._01 {
    top: 12px;
  }

  .mobile-menu-toggle-line._03 {
    bottom: 12px;
  }
}

@media (max-width: 767px) {
  .section-home-services:not(.hide) .home-services-grid._3x {
    gap: 1.25rem;
  }

  .section-home-services:not(.hide) .home-services-grid._3x .home-services-card-wrapper {
    border-top-width: 0;
  }

  .section-home-services:not(.hide) .home-services-grid._3x .card-padding {
    padding: clamp(1rem, 4vw, 1.5rem);
  }

  .section-home-services:not(.hide) .home-services-grid._3x .home-services-item-heading.stacked {
    gap: .75rem;
  }

  .section-home-services:not(.hide) .home-services-grid._3x .heading-h3 {
    font-size: 1.5rem;
    line-height: 1.2;
  }

  .section-home-services:not(.hide) .home-services-grid._3x .text-size-medium {
    padding-top: .25rem;
    font-size: 1rem;
    line-height: 1.6;
  }
}
