/* Avoid a visible frame before GSAP prepares the entrance styles. */
@media screen and (prefers-reduced-motion: no-preference) {
	html.usa-tile-reveal-pending [data-reveal],
	html.usa-tile-reveal-pending .single-product [data-page-motion] .summary.entry-summary > *,
	html.usa-tile-reveal-pending .single-product [data-page-motion] .woocommerce-tabs.wc-tabs-wrapper,
	html.usa-tile-reveal-pending [data-homepage-motion] .hero-content > *,
	html.usa-tile-reveal-pending [data-homepage-motion] .hero-swiper .swiper-slide > img {
		visibility: hidden;
	}
}

/* GSAP prepares entrance styles after DOM ready; avoid CSS transition conflicts. */
[data-reveal-pending] {
	transition: none !important;
}

/* Horizontal dragging must leave vertical touch scrolling to the browser. */
.testimonial-marquee-wrapper {
	touch-action: pan-y;
}

/* Shared image timing follows the page reveal rhythm. */
[data-homepage-motion] .category-section .group > img,
[data-homepage-motion] .product-card .image-upper img,
[data-page-motion] article.group img,
[data-page-motion] .post-navigation-grid img {
	transition-duration: 700ms;
	transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
}

@media (hover: hover) and (pointer: fine) {
	[data-homepage-motion] .category-section .group:hover > img {
		scale: 1.03;
	}

	[data-homepage-motion] .product-card:hover .image-upper img,
	[data-page-motion] article.group:hover img,
	[data-page-motion] .post-navigation-grid .group:hover img {
		scale: 1.035;
	}
}

@media (prefers-reduced-motion: reduce), print {
	[data-reveal-pending],
	[data-reveal="stagger"][data-reveal-pending] > *,
	[data-hero-motion-pending] .hero-content > *,
	[data-hero-motion-pending] .swiper-slide-active > img {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
	}

	[data-homepage-motion] .category-section .group *,
	[data-homepage-motion] .product-card .image-upper img,
	[data-homepage-motion] .product-card .image-lower,
	[data-page-motion] article.group img,
	[data-page-motion] article.group svg,
	[data-page-motion] .widget-area .group span,
	[data-page-motion] .post-navigation-grid img {
		transition: none !important;
		scale: 1 !important;
		translate: none !important;
	}

	.swiper-wrapper,
	.swiper-slide {
		transition-duration: 0ms !important;
	}
}
