.njcms-anim-fade-up {
	opacity: 0;
	transform: translateY(20px);
}

.njcms-anim-fade-in {
	opacity: 0;
}

.njcms-anim-fade-up.is-visible,
.njcms-anim-fade-in.is-visible {
	opacity: 1;
	transform: none;
	transition: opacity var(--njcms-transition-slow), transform var(--njcms-transition-slow);
}

.njcms-anim-stagger > * {
	opacity: 0;
	transform: translateY(18px);
}

.njcms-anim-stagger > *.is-visible {
	opacity: 1;
	transform: none;
	transition: opacity var(--njcms-transition-slow), transform var(--njcms-transition-slow);
}

.njcms-hover-lift:hover { transform: translateY(-4px); }
.njcms-hover-image-zoom img { transition: transform var(--njcms-transition-slow); }
.njcms-hover-image-zoom:hover img { transform: scale(1.04); }
.njcms-hover-arrow:hover::after { transform: translateX(3px); }
.njcms-pill-fill { position: relative; overflow: hidden; }
.njcms-pill-fill::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(255,255,255,0.1), rgba(255,255,255,0.2));
	opacity: 0;
	transition: opacity var(--njcms-transition-normal);
}
.njcms-pill-fill:hover::before { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
	.njcms-anim-fade-up,
	.njcms-anim-fade-in,
	.njcms-anim-stagger > * {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}

	.njcms-hover-lift:hover,
	.njcms-hover-image-zoom:hover img,
	.njcms-hover-arrow:hover::after {
		transform: none !important;
	}

	.njcms-hover-image-zoom img {
		transition: none !important;
	}

	.njcms-pill-fill::before {
		transition: none !important;
	}
}
