/* Scroll animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Animation classes */
.animate-on-scroll {
    opacity: 0;
    transition: all 0.6s ease;
}

.animate-on-scroll.animate {
    animation: fadeInUp 0.6s ease forwards;
}

.animate-fade-down {
    opacity: 0;
    transition: all 0.6s ease;
}

.animate-fade-down.animate {
    animation: fadeInDown 0.6s ease forwards;
}

/* Apply to common elements */
/* NOTE: เอา `section` ออก — เดิมดันทุก <section> ลง 30px (hero ไม่ได้ .visible เลยค้าง = ช่องว่างทุกหน้า) */
.card, .promo-card, .ir-card {
    /* opacity: 0; */
    transform: translateY(30px);
    transition: all 0.6s ease;
}

.card.visible, .promo-card.visible, .ir-card.visible {
    opacity: 1;
    transform: translateY(0);
}