/* ========================================
   BLOOMIFY SOURCING - PREMIUM ANIMATIONS
   ======================================== */

/* ===== MOUSE SPOTLIGHT (Glowing cursor follower) ===== */
.mouse-spotlight {
    position: fixed;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    background: radial-gradient(
        circle, 
        rgba(108, 99, 255, 0.15) 0%, 
        rgba(0, 212, 255, 0.08) 30%, 
        transparent 70%
    );
    pointer-events: none;
    z-index: 1;
    margin-left: -300px;
    margin-top: -300px;
    filter: blur(40px);
    mix-blend-mode: screen;
    transition: opacity 0.3s ease;
}

/* ===== SCROLL PROGRESS BAR ===== */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    height: 3px;
    width: 0%;
    background: linear-gradient(90deg, #6c63ff, #00d4ff, #6c63ff);
    background-size: 200% 100%;
    z-index: 9999;
    transition: width 0.1s ease;
    box-shadow: 0 0 15px rgba(108, 99, 255, 0.6);
    animation: gradientShift 3s linear infinite;
}

@keyframes gradientShift {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
}

/* ===== SCROLL REVEAL ANIMATIONS ===== */
[data-aos] {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.8s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.8s ease;
    filter: blur(10px);
}

[data-aos].aos-animated {
    opacity: 1 !important;
    transform: translateY(0) !important;
    filter: blur(0) !important;
}

[data-aos="fade-right"] {
    opacity: 0;
    transform: translateX(-50px);
}

[data-aos="fade-right"].aos-animated {
    opacity: 1 !important;
    transform: translateX(0) !important;
}

[data-aos="fade-left"] {
    opacity: 0;
    transform: translateX(50px);
}

[data-aos="fade-left"].aos-animated {
    opacity: 1 !important;
    transform: translateX(0) !important;
}

[data-aos="zoom-in"] {
    opacity: 0;
    transform: scale(0.85);
}

[data-aos="zoom-in"].aos-animated {
    opacity: 1 !important;
    transform: scale(1) !important;
}

[data-delay="100"] { transition-delay: 0.1s; }
[data-delay="200"] { transition-delay: 0.2s; }
[data-delay="300"] { transition-delay: 0.3s; }
[data-delay="400"] { transition-delay: 0.4s; }
[data-delay="500"] { transition-delay: 0.5s; }
[data-delay="600"] { transition-delay: 0.6s; }
[data-delay="700"] { transition-delay: 0.7s; }

/* ===== KEYFRAME ANIMATIONS ===== */

/* Floating animation */
@keyframes float {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-15px) rotate(2deg); }
}

/* Smooth glow pulse */
@keyframes glowPulse {
    0%, 100% { 
        box-shadow: 0 0 20px rgba(108, 99, 255, 0.3), 
                    0 0 40px rgba(108, 99, 255, 0.1); 
    }
    50% { 
        box-shadow: 0 0 40px rgba(108, 99, 255, 0.6), 
                    0 0 80px rgba(0, 212, 255, 0.3); 
    }
}

/* Border color glow */
@keyframes borderGlow {
    0%, 100% { border-color: rgba(108, 99, 255, 0.3); }
    50% { border-color: rgba(0, 212, 255, 0.7); }
}

/* Scale in */
@keyframes scaleIn {
    from { transform: scale(0.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

/* Ripple effect */
@keyframes rippleEffect {
    to { transform: scale(4); opacity: 0; }
}

/* WhatsApp button pulse */
@keyframes whatsappPulse {
    0%, 100% { 
        box-shadow: 0 4px 20px rgba(37, 211, 102, 0.4),
                    0 0 0 0 rgba(37, 211, 102, 0.7); 
    }
    50% { 
        box-shadow: 0 4px 40px rgba(37, 211, 102, 0.7),
                    0 0 0 20px rgba(37, 211, 102, 0); 
    }
}

/* Aurora background flow */
@keyframes aurora {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(50px, -50px) scale(1.1); }
    66% { transform: translate(-30px, 30px) scale(0.95); }
}

/* Slow rotation */
@keyframes slowRotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* Shine sweep */
@keyframes shine {
    0% { transform: translateX(-100%) skewX(-15deg); }
    100% { transform: translateX(200%) skewX(-15deg); }
}

/* Text gradient flow */
@keyframes textGradient {
    0%, 100% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
}

/* Slide up fade */
@keyframes slideUpFade {
    from { 
        opacity: 0; 
        transform: translateY(30px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

/* Bounce in */
@keyframes bounceIn {
    0% { transform: scale(0.3); opacity: 0; }
    50% { transform: scale(1.05); }
    70% { transform: scale(0.9); }
    100% { transform: scale(1); opacity: 1; }
}

/* Heartbeat */
@keyframes heartbeat {
    0%, 100% { transform: scale(1); }
    25% { transform: scale(1.1); }
    50% { transform: scale(1); }
    75% { transform: scale(1.05); }
}

/* Wobble */
@keyframes wobble {
    0%, 100% { transform: translateX(0); }
    15% { transform: translateX(-5px) rotate(-2deg); }
    30% { transform: translateX(4px) rotate(2deg); }
    45% { transform: translateX(-3px) rotate(-1deg); }
    60% { transform: translateX(2px) rotate(1deg); }
    75% { transform: translateX(-1px); }
}

/* ===== APPLIED ANIMATIONS ===== */
.whatsapp-float {
    animation: none;
}

.whatsapp-float:hover {
    animation: heartbeat 1s ease infinite;
}

/* Orbs with aurora animation */
.orb {
    animation: aurora 20s ease-in-out infinite;
}

.orb-1 { animation-delay: 0s; }
.orb-2 { animation-delay: 5s; }
.orb-3 { animation-delay: 10s; }

/* Industry card hover */
.industry-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.industry-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(108, 99, 255, 0.1),
        transparent
    );
    transition: left 0.6s ease;
}

.industry-card:hover::before {
    left: 100%;
}

.industry-card:hover .industry-icon {
    animation: heartbeat 1.2s ease infinite;
    color: #00d4ff;
}

/* Service card premium hover */
.service-card {
    position: relative;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.service-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.05),
        transparent
    );
    transition: left 0.8s ease;
    pointer-events: none;
}

.service-card:hover::after {
    left: 100%;
}

.service-card:hover {
    border-color: rgba(108, 99, 255, 0.5) !important;
    box-shadow: 0 20px 60px rgba(108, 99, 255, 0.15),
                0 0 0 1px rgba(108, 99, 255, 0.2);
}

/* Service icon animation */
.service-card:hover .service-icon {
    animation: heartbeat 1s ease;
    background: linear-gradient(135deg, #6c63ff, #00d4ff);
    color: white;
    box-shadow: 0 10px 30px rgba(108, 99, 255, 0.4);
}

.service-icon {
    transition: all 0.4s ease;
}

/* Navbar smooth transitions */
.navbar {
    transition:
        transform 0.4s cubic-bezier(0.16, 1, 0.3, 1),
        background 0.4s ease,
        padding 0.4s ease,
        backdrop-filter 0.4s ease,
        box-shadow 0.4s ease;
}

.navbar.scrolled {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

/* Premium button effects */
.btn-primary, .btn-secondary, .nav-cta {
    position: relative;
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.3),
        transparent
    );
    transition: left 0.6s ease;
    pointer-events: none;
}

.btn-primary:hover::before {
    left: 100%;
}

.btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(108, 99, 255, 0.4);
}

/* Gradient text animation */
.gradient-text {
    background-size: 200% auto;
    animation: textGradient 4s ease infinite;
}

/* Section tag glow */
.section-tag {
    position: relative;
    overflow: hidden;
}

.section-tag::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(108, 99, 255, 0.3),
        transparent
    );
    animation: shine 3s ease infinite;
}

/* Pain card hover */
.pain-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.pain-card:hover {
    transform: translateX(10px);
    border-color: rgba(255, 99, 99, 0.4);
}

.pain-card:hover .pain-icon {
    animation: wobble 0.6s ease;
    color: #ff6363;
}

/* Process step hover */
.process-step {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.process-step:hover {
    transform: translateY(-8px);
}

.process-step:hover .step-number {
    background: linear-gradient(135deg, #6c63ff, #00d4ff);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    transform: scale(1.2);
}

.step-number {
    transition: all 0.4s ease;
}

.step-icon {
    transition: all 0.4s ease;
}

.process-step:hover .step-icon {
    animation: heartbeat 1s ease;
    background: linear-gradient(135deg, #6c63ff, #00d4ff);
    color: white;
}

/* Testimonial card hover */
.testimonial-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.testimonial-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 20px 50px rgba(108, 99, 255, 0.15);
}

/* Stats counter glow */
.stat-number {
    transition: all 0.4s ease;
}

.stat-item:hover .stat-number {
    transform: scale(1.1);
    text-shadow: 0 0 30px rgba(108, 99, 255, 0.6);
}

/* Footer social links */
.social-link {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
    position: relative;
    overflow: hidden;
}

.social-link:hover {
    transform: translateY(-5px) rotate(360deg);
    background: linear-gradient(135deg, #6c63ff, #00d4ff) !important;
    color: white !important;
    box-shadow: 0 10px 25px rgba(108, 99, 255, 0.4);
}

/* Nav link underline animation */
.nav-link {
    position: relative;
    transition: color 0.3s ease;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 50%;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, #6c63ff, #00d4ff);
    transition: all 0.3s ease;
    transform: translateX(-50%);
    border-radius: 2px;
    box-shadow: 0 0 10px rgba(108, 99, 255, 0.5);
}

.nav-link:hover::after,
.nav-link.active::after {
    width: 100%;
}

/* Card glow effect */
.card-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(108, 99, 255, 0.3) 0%, transparent 70%);
    border-radius: 50%;
    transform: translate(-50%, -50%) scale(0);
    transition: transform 0.5s ease;
    pointer-events: none;
    z-index: 0;
}

.service-card:hover .card-glow {
    transform: translate(-50%, -50%) scale(1);
}

/* Back to top button */
.back-to-top {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.back-to-top:hover {
    transform: translateY(-5px) scale(1.1);
    box-shadow: 0 10px 30px rgba(108, 99, 255, 0.5);
}

/* Hero title entrance */
.hero-title .title-line {
    display: block;
    opacity: 0;
    transform: translateY(50px);
    animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.hero-title .title-line:nth-child(1) { animation-delay: 0.3s; }
.hero-title .title-line:nth-child(2) { animation-delay: 0.5s; }
.hero-title .title-line:nth-child(3) { animation-delay: 0.7s; }

.hero-subtitle {
    opacity: 0;
    animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) 0.9s forwards;
}

.hero-buttons {
    opacity: 0;
    animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) 1.1s forwards;
}

.hero-trust {
    opacity: 0;
    animation: slideUpFade 0.8s cubic-bezier(0.16, 1, 0.3, 1) 1.3s forwards;
}

.hero-badge {
    animation: bounceIn 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Country item hover */
.country-item {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.country-item:hover {
    transform: translateX(8px);
    border-color: rgba(108, 99, 255, 0.4);
}

.country-item:hover .country-flag {
    animation: wobble 0.6s ease;
}

/* Comparison table animation */
.comparison-row {
    transition: all 0.3s ease;
}

.comparison-row:hover {
    background: rgba(108, 99, 255, 0.05);
    transform: translateX(5px);
}

/* Why point hover */
.why-point {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.why-point:hover {
    transform: translateX(10px);
}

.why-point:hover .point-icon {
    animation: heartbeat 1s ease;
    background: linear-gradient(135deg, #6c63ff, #00d4ff);
    color: white;
}

/* Form input glow on focus */
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: #6c63ff !important;
    box-shadow: 0 0 0 4px rgba(108, 99, 255, 0.15),
                0 0 30px rgba(108, 99, 255, 0.1) !important;
    transform: translateY(-2px);
}

/* Info card hover */
.info-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.info-card:hover {
    transform: translateX(8px) translateY(-3px);
    box-shadow: 0 15px 35px rgba(108, 99, 255, 0.1);
}

/* WhatsApp banner hover */
.whatsapp-banner:hover .whatsapp-banner-icon {
    animation: heartbeat 1s ease infinite;
}

/* Team card hover */
.team-card {
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.team-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 25px 60px rgba(108, 99, 255, 0.2);
}

.team-card:hover .team-avatar {
    transform: scale(1.1) rotate(5deg);
    box-shadow: 0 10px 30px rgba(108, 99, 255, 0.4);
}

.team-avatar {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Review card hover */
.review-card {
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.review-card:hover {
    transform: translateY(-5px);
    border-color: rgba(108, 99, 255, 0.4);
    box-shadow: 0 20px 50px rgba(108, 99, 255, 0.15);
}

.review-stars i {
    transition: all 0.3s ease;
}

.review-card:hover .review-stars i {
    animation: heartbeat 0.6s ease;
}

.review-card:hover .review-stars i:nth-child(1) { animation-delay: 0s; }
.review-card:hover .review-stars i:nth-child(2) { animation-delay: 0.1s; }
.review-card:hover .review-stars i:nth-child(3) { animation-delay: 0.2s; }
.review-card:hover .review-stars i:nth-child(4) { animation-delay: 0.3s; }
.review-card:hover .review-stars i:nth-child(5) { animation-delay: 0.4s; }

/* Value card hover */
.value-card {
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.value-card:hover {
    transform: translateY(-8px);
}

.value-card:hover .value-icon {
    animation: heartbeat 1s ease;
    background: linear-gradient(135deg, #6c63ff, #00d4ff);
    color: white;
    transform: rotate(360deg);
}

.value-icon {
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Image hover effects */
.real-work-image img,
.global-image img,
.founder-real-photo {
    transition: all 0.6s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.real-work-card:hover .real-work-image img,
.global-image-wrapper:hover img {
    transform: scale(1.08);
}

/* Loader fade out */
#loader {
    transition: opacity 0.6s ease, visibility 0.6s ease;
}

#loader.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Smooth scroll behavior */
html {
    scroll-behavior: smooth;
}

/* Cursor styles */
.cursor-glow,
.cursor-dot {
    transition: transform 0.15s ease, opacity 0.3s ease;
}

.cursor-glow {
    mix-blend-mode: screen;
}

/* Selection color */
::selection {
    background: rgba(108, 99, 255, 0.3);
    color: #fff;
}

/* Disable on mobile for performance */
@media (max-width: 768px) {
    .mouse-spotlight {
        display: none;
    }
    
    [data-aos] {
        filter: none !important;
    }
    
    .service-card,
    .real-work-card,
    .industry-card,
    .team-card,
    .value-card,
    .review-card {
        transform: none !important;
    }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}