@keyframes page-enter {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes rise-in {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slide-in {
    from {
        opacity: 0;
        transform: translateX(-24px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

body {
    animation: page-enter .55s ease both;
}

.topbar {
    animation: slide-in .65s cubic-bezier(.22, 1, .36, 1) both;
}

.navbar {
    animation: slide-in .7s .08s cubic-bezier(.22, 1, .36, 1) both;
}

.hero-copy,
.service-page-copy {
    animation: rise-in .8s .18s cubic-bezier(.22, 1, .36, 1) both;
}

.service-strip,
.section>.container {
    animation: rise-in .75s .2s cubic-bezier(.22, 1, .36, 1) both;
}

.strip-card,
.service-card,
.service-info-card {
    transition: transform .25s cubic-bezier(.22, 1, .36, 1), box-shadow .25s cubic-bezier(.22, 1, .36, 1);
}

.strip-card:hover,
.service-card:hover,
.service-info-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 42px oklch(.1 .03 250/.28);
}

.strip-card img,
.card-image img,
.service-page-image img {
    transition: transform .6s cubic-bezier(.22, 1, .36, 1);
}

.strip-card:hover img,
.service-card:hover .card-image img,
.service-page-image:hover img {
    transform: scale(1.05);
}

.footer-column {
    animation: rise-in .6s .2s cubic-bezier(.22, 1, .36, 1) both;
}

.floating.call {
    animation: rise-in .6s .6s cubic-bezier(.22, 1, .36, 1) both;
}

.floating.whatsapp {
    animation: rise-in .6s .7s cubic-bezier(.22, 1, .36, 1) both;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}