/* ===================== ANIMATIONS ===================== */

/* Cart counter pop */
@keyframes cartPop {
	0% { transform: scale(1); }
	50% { transform: scale(1.4); }
	100% { transform: scale(1); }
}

/* Hero fade up */
@keyframes heroFadeUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Promo badge pulse */
@keyframes promoPulse {
	0%, 100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.4);
	}
	50% {
		transform: scale(1.05);
		box-shadow: 0 0 0 12px rgba(231, 76, 60, 0);
	}
}

/* Fade in */
@keyframes fadeIn {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: translateY(0); }
}

/* Toast in/out */
@keyframes toastIn {
	from { opacity: 0; transform: translateX(40px); }
	to { opacity: 1; transform: translateX(0); }
}

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

/* Toast notifications */
.toast-container {
	position: fixed;
	bottom: 28px;
	right: 28px;
	z-index: 9999;
	display: flex;
	flex-direction: column-reverse;
	gap: 10px;
}

.toast {
	background: var(--dark);
	color: #fff;
	padding: 14px 20px;
	border-radius: var(--radius-md);
	font-size: 14px;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 10px;
	box-shadow: var(--shadow-lg);
	animation: toastIn 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	min-width: 260px;
	max-width: 360px;
}

.toast.toast-out {
	animation: toastOut 0.3s ease forwards;
}

.toast i {
	font-size: 18px;
	color: var(--accent);
}

/* Fade in on scroll */
.fade-in-section {
	opacity: 0;
	transform: translateY(30px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.fade-in-section.visible {
	opacity: 1;
	transform: translateY(0);
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}

	.fade-in-section {
		opacity: 1;
		transform: none;
	}

	.hero-slide {
		transition: opacity 0.3s ease;
	}
}

/* Loading spinner */
.enaya-loading {
	display: inline-block;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, 0.3);
	border-top-color: #fff;
	border-radius: 50%;
	animation: spin 0.6s linear infinite;
}

.enaya-loading.dark {
	border-color: rgba(0, 0, 0, 0.1);
	border-top-color: var(--accent);
}

@keyframes spin {
	to { transform: rotate(360deg); }
}
