/* Floating animation */
@keyframes floating {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-12px); }
}
.floating { animation: floating 3s ease-in-out infinite; }
.delay-1 { animation-delay: 0.5s; }
.delay-2 { animation-delay: 1s; }

/* Bounce */
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-20px); }
}

/* Shimmer skeleton */
@keyframes shimmer {
    0% { background-position: -200% 0; }
    100% { background-position: 200% 0; }
}

/* Scroll Reveal */
.reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-right { opacity: 0; transform: translateX(30px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal-right.visible { opacity: 1; transform: translateX(0); }

/* Staggered reveals */
.reveal:nth-child(2) { transition-delay: 0.1s; }
.reveal:nth-child(3) { transition-delay: 0.2s; }
.reveal:nth-child(4) { transition-delay: 0.3s; }
.reveal:nth-child(5) { transition-delay: 0.4s; }
.reveal:nth-child(6) { transition-delay: 0.5s; }
.reveal:nth-child(7) { transition-delay: 0.6s; }
.reveal:nth-child(8) { transition-delay: 0.7s; }

/* Fade in */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.fade-in { animation: fadeIn 0.4s ease forwards; }

/* Scale in */
@keyframes scaleIn { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.scale-in { animation: scaleIn 0.3s ease forwards; }

/* Pulse */
@keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
.pulse { animation: pulse 2s ease-in-out infinite; }

/* ========== PREMIUM ANIMATION ENHANCEMENTS ========== */

/* Slide Up */
@keyframes vs-slide-up {
    from { opacity: 0; transform: translateY(40px); }
    to { opacity: 1; transform: translateY(0); }
}
.vs-slide-up { animation: vs-slide-up 0.6s cubic-bezier(0.4,0,0.2,1) both; }

/* Zoom In */
@keyframes vs-zoom-in {
    from { opacity: 0; transform: scale(0.88); }
    to { opacity: 1; transform: scale(1); }
}
.vs-zoom-in { animation: vs-zoom-in 0.45s cubic-bezier(0.34,1.56,0.64,1) both; }

/* Stagger children */
.stagger-children > *:nth-child(1) { animation-delay: 0.05s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.12s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.19s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.26s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.33s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.40s; }
.stagger-children > *:nth-child(7) { animation-delay: 0.47s; }
.stagger-children > *:nth-child(8) { animation-delay: 0.54s; }

/* Hero content entrance */
@keyframes vs-hero-enter {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}
.hero-content { animation: vs-hero-enter 0.8s cubic-bezier(0.4,0,0.2,1) 0.3s both; }
.hero-visual { animation: vs-hero-enter 0.8s cubic-bezier(0.4,0,0.2,1) 0.5s both; }
.hero-search { animation: vs-hero-enter 0.7s cubic-bezier(0.4,0,0.2,1) 0.65s both; }

/* Card shimmer hover */
@keyframes vs-shimmer-slide {
    from { left: -100%; }
    to { left: 120%; }
}
.product-card { position: relative; overflow: hidden; }
.product-card::before {
    content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
    transform: skewX(-20deg); z-index: 1; pointer-events: none;
    transition: none;
}
.product-card:hover::before { animation: vs-shimmer-slide 0.7s ease; }

/* Floating food cards enhanced */
.hero-food-card { animation: floating 3s ease-in-out infinite !important; }
.hero-food-card.delay-1 { animation-delay: 0.6s !important; }
.hero-food-card.delay-2 { animation-delay: 1.2s !important; }

/* Trust item entrance */
.vs-trust-item {
    opacity: 0; transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}
.vs-trust-item.visible { opacity: 1; transform: translateY(0); }
.vs-trust-item:nth-child(1) { transition-delay: 0.1s; }
.vs-trust-item:nth-child(2) { transition-delay: 0.2s; }
.vs-trust-item:nth-child(3) { transition-delay: 0.3s; }
.vs-trust-item:nth-child(4) { transition-delay: 0.4s; }

/* Navbar link underline animation */
.nav-link {
    position: relative;
}
.nav-link::after {
    content: ''; position: absolute; bottom: 0; left: 50%; right: 50%;
    height: 2px; background: #E8471A; border-radius: 2px;
    transition: left 0.3s ease, right 0.3s ease;
}
.nav-link:hover::after, .nav-link.active::after { left: 8px; right: 8px; }

/* Micro animation for cart badge */
@keyframes vs-badge-pop {
    0% { transform: scale(1); }
    50% { transform: scale(1.4); }
    100% { transform: scale(1); }
}
.cart-badge.pop { animation: vs-badge-pop 0.3s ease; }

/* Offer code box pulse */
@keyframes vs-offer-pulse {
    0%, 100% { border-color: rgba(255,255,255,0.6); }
    50% { border-color: rgba(255,255,255,1); box-shadow: 0 0 16px rgba(255,255,255,0.25); }
}
.offer-code-box { animation: vs-offer-pulse 2s ease-in-out infinite; }

/* Search tags bounce */
.hero-search-tags span {
    transition: all 0.25s cubic-bezier(0.34,1.56,0.64,1) !important;
}
.hero-search-tags span:hover {
    transform: translateY(-3px) scale(1.05) !important;
}

/* Footer social icon hover */
.footer-social a {
    transition: transform 0.3s cubic-bezier(0.34,1.56,0.64,1), filter 0.2s !important;
}
.footer-social a:hover {
    transform: scale(1.3) rotate(8deg) !important;
}

/* Star rating shimmer */
.stars {
    background: linear-gradient(90deg, #F59E0B, #FBBF24, #F59E0B);
    background-size: 200%;
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: vs-star-shimmer 3s linear infinite;
}
@keyframes vs-star-shimmer {
    0% { background-position: 0%; }
    100% { background-position: 200%; }
}
