/**
 * Ugett Store — motion: reveal-on-scroll, keyframes, micro-interactions.
 * Loaded last so entrance states cleanly win the cascade.
 */

/* Reveal on scroll (JS toggles .is-visible) */
.ug-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity var(--ug-dur-slow) var(--ug-ease-out), transform var(--ug-dur-slow) var(--ug-ease-out);
	will-change: opacity, transform;
}
.ug-reveal.is-visible { opacity: 1; transform: none; }
.ug-reveal--delay-1 { transition-delay: 0.08s; }
.ug-reveal--delay-2 { transition-delay: 0.16s; }
.ug-reveal--delay-3 { transition-delay: 0.24s; }

/* Staggered children within product grids */
.ug-product-grid.is-visible .ug-product-card { animation: ug-fade-up 0.55s var(--ug-ease-out) backwards; }
.ug-product-grid.is-visible .ug-product-card:nth-child(2) { animation-delay: 0.05s; }
.ug-product-grid.is-visible .ug-product-card:nth-child(3) { animation-delay: 0.1s; }
.ug-product-grid.is-visible .ug-product-card:nth-child(4) { animation-delay: 0.15s; }
.ug-product-grid.is-visible .ug-product-card:nth-child(5) { animation-delay: 0.2s; }
.ug-product-grid.is-visible .ug-product-card:nth-child(6) { animation-delay: 0.25s; }

@keyframes ug-fade-up {
	from { opacity: 0; transform: translateY(18px); }
	to { opacity: 1; transform: none; }
}
@keyframes ug-shimmer {
	100% { transform: translateX(100%); }
}
@keyframes ug-bump {
	0% { transform: scale(1); }
	40% { transform: scale(1.18); }
	100% { transform: scale(1); }
}
@keyframes ug-spin {
	to { transform: rotate(360deg); }
}
@keyframes ug-pulse-beam {
	0%, 100% { opacity: 0.4; }
	50% { opacity: 0.62; }
}

/* Hero beams gentle pulse */
.ug-hero__beam--1 { animation: ug-pulse-beam 7s var(--ug-ease) infinite; }

/* Button spinner state (JS adds .is-loading) */
.ug-btn.is-loading { color: transparent !important; pointer-events: none; position: relative; }
.ug-btn.is-loading::after {
	content: "";
	position: absolute;
	width: 16px; height: 16px;
	border: 2px solid rgba(255, 255, 255, 0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: ug-spin 0.7s linear infinite;
}

/* Add-to-cart WC loading */
body.ug-store .woocommerce a.button.loading::after,
body.ug-store .single_add_to_cart_button.loading::after { animation: ug-spin 0.7s linear infinite; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	body.ug-store *,
	body.ug-store *::before,
	body.ug-store *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	.ug-reveal { opacity: 1; transform: none; }
}
