/* Animations complexes SaaS (Float, Glow pulse, etc) */
.animate-on-scroll {
	opacity: 0;
	visibility: hidden;
}

.animate-on-scroll.is-visible {
	opacity: 1;
	visibility: visible;
}

/* Keyframes Smooth & Premium */
@keyframes fadeInUp {
	from { opacity: 0; transform: translateY(60px) scale(0.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes fadeInLeft {
	from { opacity: 0; transform: translateX(-60px); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
	from { opacity: 0; transform: translateX(60px); }
	to { opacity: 1; transform: translateX(0); }
}

@keyframes scaleIn {
	from { opacity: 0; transform: scale(0.9); border-radius: 40px; }
	to { opacity: 1; transform: scale(1); border-radius: var(--border-radius-lg); }
}

@keyframes pulseGlow {
	0% { box-shadow: 0 0 0 0 rgba(255, 214, 0, 0.4); }
	70% { box-shadow: 0 0 0 20px rgba(255, 214, 0, 0); }
	100% { box-shadow: 0 0 0 0 rgba(255, 214, 0, 0); }
}

/* Application des animations (is-visible via JS) */
.is-visible[data-animate="fadeInUp"] {
	animation: fadeInUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.is-visible[data-animate="fadeInLeft"] {
	animation: fadeInLeft 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.is-visible[data-animate="fadeInRight"] {
	animation: fadeInRight 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.is-visible[data-animate="scaleIn"] {
	animation: scaleIn 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Pulsation sur le bouton principal du hero */
.hero-actions .btn-primary {
	animation: pulseGlow 3s infinite;
}

/* Délai de cascade pour enfants (Stagger effect) */
.is-visible .service-card:nth-child(1),
.is-visible .product-item:nth-child(1),
.is-visible .stat-item:nth-child(1) { animation-delay: 0.1s; animation: fadeInUp 0.8s forwards; opacity: 0;}

.is-visible .service-card:nth-child(2),
.is-visible .product-item:nth-child(2),
.is-visible .stat-item:nth-child(2) { animation-delay: 0.2s; animation: fadeInUp 0.8s forwards; opacity: 0;}

.is-visible .service-card:nth-child(3),
.is-visible .product-item:nth-child(3),
.is-visible .stat-item:nth-child(3) { animation-delay: 0.3s; animation: fadeInUp 0.8s forwards; opacity: 0;}

.is-visible .service-card:nth-child(4) { animation-delay: 0.4s; animation: fadeInUp 0.8s forwards; opacity: 0;}
