/**
 * Vapesline — calm motion (Apple-like)
 * Soft fade/rise · restrained hover · reduced-motion safe
 */

@media (prefers-reduced-motion: no-preference) {
	html.vl-anim-ready .vl-reveal:not(.vl-in-view) {
		opacity: 0;
		transform: translateY(16px);
	}

	html.vl-anim-ready .vl-reveal {
		transition:
			opacity 0.55s cubic-bezier(0.25, 0.1, 0.25, 1),
			transform 0.55s cubic-bezier(0.25, 0.1, 0.25, 1);
		will-change: opacity, transform;
	}

	html.vl-anim-ready .vl-reveal.vl-in-view {
		opacity: 1;
		transform: translateY(0);
		will-change: auto;
	}

	.vl-reveal-stagger:nth-child(1) { transition-delay: 0ms; }
	.vl-reveal-stagger:nth-child(2) { transition-delay: 60ms; }
	.vl-reveal-stagger:nth-child(3) { transition-delay: 120ms; }
	.vl-reveal-stagger:nth-child(4) { transition-delay: 180ms; }
	.vl-reveal-stagger:nth-child(5) { transition-delay: 240ms; }
	.vl-reveal-stagger:nth-child(n + 6) { transition-delay: 280ms; }

	@media (max-width: 768px) {
		html.vl-anim-ready .vl-reveal:not(.vl-in-view) {
			transform: translateY(10px);
		}

		html.vl-anim-ready .vl-reveal {
			transition-duration: 0.4s;
		}

		.vl-reveal-stagger:nth-child(n + 5) { transition-delay: 200ms; }
	}

	@keyframes vlHeroRise {
		from {
			opacity: 0;
			transform: translateY(12px);
		}
		to {
			opacity: 1;
			transform: translateY(0);
		}
	}

	.vl-hero-content h1,
	.vl-hero-geekbar__title {
		animation: none;
	}

	.vl-hero-content p,
	.vl-hero-geekbar__copy {
		animation: none;
	}

	.vl-hero-content .vl-btn-shop,
	.vl-hero-geekbar__link,
	.vl-hero-geekbar__cta,
	.vl-hero-geekbar__badge {
		animation: none;
	}

	/* WhatsApp — very subtle pulse */
	@keyframes vlWaPulse {
		0%, 100% { transform: scale(1); }
		50% { transform: scale(1.03); }
	}

	.vl-whatsapp-float {
		animation: vlWaPulse 2.4s ease-in-out infinite;
	}

	.vl-whatsapp-float::before {
		display: none;
	}

	@media (max-width: 768px) {
		@keyframes vlWaPulseMobile {
			0%, 100% { transform: scale(1); }
			50% { transform: scale(1.02); }
		}

		.vl-whatsapp-float {
			animation-name: vlWaPulseMobile;
		}
	}

	@media (hover: hover) and (pointer: fine) {
		.vl-cat-card,
		.vl-product-card,
		.vl-lines-slide {
			transition: transform 0.8s ease, box-shadow 0.8s ease, border-color 0.8s ease;
		}

		.vl-cat-card:hover,
		.vl-product-card:hover,
		.vl-lines-slide:hover {
			transform: translateY(-4px) scale(1.01);
			box-shadow: var(--vl-shadow-hover);
			border-color: rgba(17, 17, 19, 0.12);
		}

		.vl-cat-card {
			overflow: hidden;
		}

		.vl-cat-card img,
		.vl-product-card .vl-product-img--primary {
			transition: transform 0.85s ease;
		}

		.vl-cat-card:hover img,
		.vl-product-card:hover .vl-product-img--primary {
			transform: scale(1.05);
		}

		.bi-arrow-right {
			display: inline-block;
			transition: transform 0.7s ease;
		}

		.vl-cat-card:hover .bi-arrow-right,
		.vl-btn-mipod:hover .bi-arrow-right,
		.vl-section-cta a:hover .bi-arrow-right {
			transform: translateX(3px);
		}

		.vl-btn-shop:hover,
		.vl-btn-orange:hover,
		.vl-btn-mipod:hover,
		.vl-cta-btn:hover {
			transform: scale(1.02);
		}

		.vl-hero-geekbar__cta:hover,
		.vl-hero-geekbar__link:hover {
			transform: none;
		}

		.vl-feature-icon {
			transition: border-color 0.25s ease, color 0.25s ease;
		}

		.vl-feature:hover .vl-feature-icon {
			border-color: rgba(17, 17, 19, 0.22);
			box-shadow: none;
		}
	}

	@media (hover: none), (pointer: coarse) {
		.vl-cat-card:hover,
		.vl-product-card:hover,
		.vl-lines-slide:hover {
			transform: none;
			box-shadow: none;
		}

		.vl-cat-card:active,
		.vl-product-card:active,
		.vl-btn-mipod:active,
		.vl-hero-geekbar__link:active {
			transform: scale(0.98);
			opacity: 0.92;
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	.vl-reveal,
	.vl-reveal.vl-in-view {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.vl-hero-content h1,
	.vl-hero-content p,
	.vl-hero-content .vl-btn-shop,
	.vl-hero-geekbar__title,
	.vl-hero-geekbar__copy,
	.vl-hero-geekbar__link,
	.vl-hero-geekbar__cta,
	.vl-hero-geekbar__badge,
	.vl-whatsapp-float {
		animation: none !important;
		opacity: 1;
		transform: none;
	}
}
