/**
 * RF Reveal — shared fade-in-up for the custom widgets' repeating items.
 *
 * The classes are added by rf-reveal.js only, so with JS off or blocked the
 * cards render finished and readable. The stagger is an inline
 * transition-delay the script sets per item — no per-widget index needed.
 * The script strips both again once the run finishes, so nothing here ever
 * competes with a card's own hover transition.
 *
 * Widgets with their own reveal (rf-blog, rf-steps, theme-accordion) and the
 * testimonial carousel are deliberately left alone.
 */
.rf-rv {
	opacity: 0;
	transform: translateY(24px);
}
.rf-rv-in .rf-rv {
	opacity: 1;
	transform: none;
	transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (max-width: 767px) {
	.rf-rv {
		transform: translateY(16px);
	}
	.rf-rv-in .rf-rv {
		transition: opacity 0.4s ease, transform 0.4s ease;
	}
}
@media (prefers-reduced-motion: reduce) {
	.rf-rv,
	.rf-rv-in .rf-rv {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
