/**
 * Services page — scroll / load reveals (pairs with js/services-page-reveal.js).
 */
html.services-page-reveal-init {
  --svc-reveal-ease: cubic-bezier(0.33, 1, 0.68, 1);
  --svc-reveal-ease-soft: cubic-bezier(0.22, 1, 0.42, 1);
  --svc-reveal-dur-in: 0.95s;
  --svc-reveal-dur-out: 0.72s;
}

html.services-page-reveal-init .svc-main .svc-reveal-prep:not(.svc-reveal-visible) {
  opacity: 0;
  transform: translate3d(0, 1.35rem, 0);
  will-change: opacity, transform;
  transition:
    opacity var(--svc-reveal-dur-out) var(--svc-reveal-ease),
    transform calc(var(--svc-reveal-dur-out) + 0.06s) var(--svc-reveal-ease-soft);
  transition-delay: 0ms;
}

html.services-page-reveal-init .svc-main .svc-reveal-prep.svc-reveal-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  will-change: auto;
  transition:
    opacity var(--svc-reveal-dur-in) var(--svc-reveal-ease),
    transform calc(var(--svc-reveal-dur-in) + 0.08s) var(--svc-reveal-ease-soft);
  transition-delay: var(--svc-d, 0ms);
}

html.services-page-reveal-init .svc-row__media.svc-reveal-prep:not(.svc-reveal-visible) {
  transform: translate3d(0, 1.5rem, 0) scale(0.985);
}

html.services-page-reveal-init .svc-row__media.svc-reveal-prep.svc-reveal-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

html.services-page-reveal-init .svc-row__media img {
  transition: transform 0.65s var(--svc-reveal-ease-soft);
}

html.services-page-reveal-init .svc-row:hover .svc-row__media img {
  transform: scale(1.03);
}

@media (prefers-reduced-motion: reduce) {
  html.services-page-reveal-init .svc-main .svc-reveal-prep,
  html.services-page-reveal-init .svc-row__media img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    will-change: auto !important;
  }
}
