/* Animations for blocks */

/* Base state for all animated elements */
.animate {
    opacity: 0;
    /* If animation duration is missing fall back to this */
    transition: opacity var(--anim-duration, 0.3s) ease, transform var(--anim-duration, 0.3s) ease;
    transition-delay: var(--anim-delay, 0s)
}

/* Visible state for all */
.animate.is-visible {
    opacity: 1;
    transform: none;
}

/* Exception for the reference cards since adding transform: none removes hover animations from this block */
a.reference-card.animate.is-visible:hover {
    transform: translateY(-3px);
}

.service-card.animate.is-visible:hover {
    transform: translateY(-3px);
}

.service-card.animate.is-visible {
    transition: box-shadow 0.3s ease-out, transform 0.3s ease-out, border-color 0.3s ease-out;
    transition-delay: 0s !important;
}

a.reference-card.animate.is-visible {
    transition: border-color 0.2s ease-out, transform 0.2s ease-out, box-shadow 0.4s ease-out;
    transition-delay: 0s !important;
}

/* Variants */
.fade-up {
    transform: translateY(30px);
}

.fade-down {
    transform: translateY(-30px);
}

.fade-left {
    transform: translateX(-30px);
}

.fade-right {
    transform: translateX(30px);
}

.fade-in {
    transform: none;
}

.scale-up {
    transform: scale(0.9);
}