/* Homepage interaction polish: restrained, fast, and limited to transform/opacity. */
body.page-home {
  --home-ease-out: cubic-bezier(.23, 1, .32, 1);
  --home-ease-soft: cubic-bezier(.22, .61, .36, 1);
}

body.page-home .nav,
body.page-home .nav__inner {
  transition: background-color 180ms var(--home-ease-out), border-color 180ms var(--home-ease-out), box-shadow 180ms var(--home-ease-out);
}

body.page-home .brand__logo,
body.page-home .nav__links a:not(.nav__cta)::after {
  transition: transform 160ms var(--home-ease-out), width 180ms var(--home-ease-out), background-color 180ms ease;
}

body.page-home .btn,
body.page-home .nav__cta {
  transition: transform 160ms var(--home-ease-out), box-shadow 180ms var(--home-ease-out), background-color 180ms ease, border-color 180ms ease, color 180ms ease;
  will-change: transform;
}

body.page-home .btn--primary:hover,
body.page-home .nav__cta:hover {
  transform: translateY(-2px);
}

body.page-home .btn:active,
body.page-home .nav__cta:active {
  transform: translateY(1px) scale(.975);
}

body.page-home .btn:focus-visible,
body.page-home .nav__links a:focus-visible,
body.page-home .nav__toggle:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

body.page-home .hero__scroll span {
  animation-duration: 2.4s;
}

@media (hover:hover) and (pointer:fine) {
  body.page-home .svc,
  body.page-home .case,
  body.page-home .qual-logo {
    transition: transform 200ms var(--home-ease-out), box-shadow 200ms var(--home-ease-out), border-color 180ms ease, background-color 180ms ease;
  }

  body.page-home .svc:hover,
  body.page-home .case:hover {
    transform: translateY(-4px);
  }

  body.page-home .qual-logo:hover {
    transform: translateY(-3px);
  }

  body.page-home .qual-logo img {
    transition: transform 200ms var(--home-ease-out);
  }

  body.page-home .qual-logo:hover img {
    transform: scale(1.31);
  }

  body.page-home .stat__num {
    transition: transform 180ms var(--home-ease-out);
  }

  body.page-home .stat:hover .stat__num {
    transform: scale(1.03);
  }

  body.page-home .brands__item .imgs img {
    transition: opacity 180ms ease, transform 260ms var(--home-ease-out);
  }
}

@media (prefers-reduced-motion:no-preference) {
  body.page-home .slide.is-active .slide__inner > .slide__title,
  body.page-home .slide.is-active .slide__inner > .slide__sub,
  body.page-home .slide.is-active .slide__inner > .slide__actions {
    animation: home-hero-enter 520ms var(--home-ease-out) both;
  }

  body.page-home .slide.is-active .slide__inner > .slide__sub { animation-delay: 70ms; }
  body.page-home .slide.is-active .slide__inner > .slide__actions { animation-delay: 130ms; }
}

@keyframes home-hero-enter {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  body.page-home .hero__scroll span,
  body.page-home .float-card,
  body.page-home .brands__row {
    animation: none !important;
  }
  body.page-home .reveal,
  body.page-home .reveal.in {
    opacity: 1;
    transform: none;
    transition: none;
  }
  body.page-home .btn,
  body.page-home .nav__cta,
  body.page-home .svc,
  body.page-home .case,
  body.page-home .qual-logo {
    transition-duration: 0ms;
  }
}
