.fade-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
}
.fade-up.visible {
    opacity: 1;
    transform: translateY(0);
}
.fade-up.delay-1 { transition-delay: 0.15s; }
.fade-up.delay-2 { transition-delay: 0.3s; }
.fade-up.delay-3 { transition-delay: 0.45s; }

.card-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.4);
}

.cta-glow {
    position: relative;
    overflow: hidden;
}
.cta-glow::after {
    content: '';
    position: absolute;
    inset: -2px;
    background: linear-gradient(135deg, #00a8e8, #007cb0, #00a8e8);
    border-radius: inherit;
    z-index: -1;
    opacity: 0;
    transition: opacity 0.3s ease;
    filter: blur(12px);
}
.cta-glow:hover::after {
    opacity: 0.6;
}

.hero-img {
    animation: subtle-zoom 20s ease-in-out infinite alternate;
}
@keyframes subtle-zoom {
    from { transform: scale(1); }
    to { transform: scale(1.05); }
}

.gradient-text {
    background: linear-gradient(135deg, #ffffff 0%, #00a8e8 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
