/**
 * Site-wide scroll & load animations (home + inner pages).
 */

body.has-page-motion .motion-on-scroll:not(.motion-visible),
body.has-page-motion .reveal:not(.motion-visible):not(.is-visible),
body.has-page-motion .reveal-from-top:not(.motion-visible):not(.is-visible) {
    opacity: 0;
    transform: translate3d(0, 36px, 0);
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--motion-delay, 0ms);
    will-change: opacity, transform;
}

body.has-page-motion .motion-on-scroll.motion-visible,
body.has-page-motion .reveal.motion-visible,
body.has-page-motion .reveal-from-top.motion-visible,
body.has-page-motion .reveal.is-visible,
body.has-page-motion .reveal-from-top.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0);
}

body.has-page-motion .reveal-from-top:not(.motion-visible) {
    transform: translate3d(0, -16px, 0);
}

body.has-page-motion .motion-fade-left {
    transform: translate3d(-32px, 0, 0);
}

body.has-page-motion .motion-fade-left.motion-visible {
    transform: translate3d(0, 0, 0);
}

body.has-page-motion .motion-fade-right {
    transform: translate3d(32px, 0, 0);
}

body.has-page-motion .motion-fade-right.motion-visible {
    transform: translate3d(0, 0, 0);
}

body.has-page-motion .motion-scale-in {
    opacity: 0;
    transform: scale(0.94);
    transition:
        opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--motion-delay, 0ms);
}

body.has-page-motion .motion-scale-in.motion-visible {
    opacity: 1;
    transform: scale(1);
}

/* Homepage hero media + lines */
body.has-page-motion .page-home .home-hero--showcase .hero-media-slides img,
body.has-page-motion .page-home .home-hero--showcase .hero-media-slides video,
body.has-page-motion .page-home .home-hero--showcase .hero-media-slides iframe {
    animation: page-hero-media-in 1s cubic-bezier(0.22, 1, 0.36, 1) 0.06s both;
}

@keyframes page-hero-media-in {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

body.has-page-motion .page-home .hero-copy.motion-hero-line {
    opacity: 0;
    transform: translate3d(0, 24px, 0);
    transition:
        opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: var(--motion-delay, 0ms);
}

body.has-page-motion .page-home .hero-copy.motion-hero-line.motion-visible {
    opacity: 1;
    transform: none;
}

/* Card images */
body.has-page-motion .motion-on-scroll .h-card-media img,
body.has-page-motion .motion-on-scroll .doctor-card-photo-wrap img,
body.has-page-motion .inner-feature-media img,
body.has-page-motion .inner-side-media img {
    transform: scale(1.06);
    transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--motion-delay, 0ms) + 100ms);
}

body.has-page-motion .motion-on-scroll.motion-visible .h-card-media img,
body.has-page-motion .motion-on-scroll.motion-visible .doctor-card-photo-wrap img,
body.has-page-motion img.motion-scale-in.motion-visible {
    transform: scale(1);
}

/* Stats: subtle shift so band does not sink into next section */
body.has-page-motion .home-stats .stat-card.motion-on-scroll {
    transform: translate3d(0, 10px, 0);
}

body.has-page-motion .page-home .choose-us-steps li.motion-on-scroll {
    transform: translate3d(-16px, 0, 0);
}

body.has-page-motion .section-head-home.motion-on-scroll:not(.motion-visible),
body.has-page-motion .page-inner .section-head.motion-on-scroll:not(.motion-visible) {
    transform: translate3d(0, 20px, 0);
}

/* Cards: stronger entrance than plain text blocks */
body.has-page-motion .h-card.motion-on-scroll:not(.motion-visible),
body.has-page-motion .department-card.motion-on-scroll:not(.motion-visible),
body.has-page-motion .news-card.motion-on-scroll:not(.motion-visible),
body.has-page-motion .testimonial-card.motion-on-scroll:not(.motion-visible),
body.has-page-motion .doctor-card--showcase.motion-on-scroll:not(.motion-visible),
body.has-page-motion .stat-card.motion-on-scroll:not(.motion-visible) {
    transform: translate3d(0, 44px, 0) scale(0.97);
}

body.has-page-motion .h-card.motion-on-scroll.motion-visible,
body.has-page-motion .department-card.motion-on-scroll.motion-visible,
body.has-page-motion .news-card.motion-on-scroll.motion-visible,
body.has-page-motion .testimonial-card.motion-on-scroll.motion-visible,
body.has-page-motion .doctor-card--showcase.motion-on-scroll.motion-visible {
    transition:
        opacity 0.85s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.85s cubic-bezier(0.22, 1, 0.36, 1),
        box-shadow 0.3s ease;
}

body.has-page-motion .department-card.motion-visible:hover,
body.has-page-motion .news-card.motion-visible:hover,
body.has-page-motion .h-card.motion-visible:hover {
    transform: translateY(-5px);
    box-shadow: 0 18px 36px rgba(15, 23, 42, 0.12);
}

@media (prefers-reduced-motion: reduce) {
    body.has-page-motion .motion-on-scroll,
    body.has-page-motion .motion-scale-in,
    body.has-page-motion .reveal,
    body.has-page-motion .reveal-from-top,
    body.has-page-motion .page-home .hero-copy.motion-hero-line {
        opacity: 1;
        transform: none;
        transition: none;
    }

    body.has-page-motion .page-home .hero-media-slides img,
    body.has-page-motion .page-home .hero-media-slides video {
        animation: none;
    }
}
