/* MN Effects - Listing Animation */

/* Base: hide items before animation */
.mn-listing-animate .mn-listing-item {
	opacity: 0;
	will-change: transform, opacity;
}

/* Slide Up */
.mn-listing-animate[data-mn-listing-effect="slide_up"] .mn-listing-item {
	transform: translateY(40px);
}

.mn-listing-animate[data-mn-listing-effect="slide_up"] .mn-listing-item.mn-listing-animated {
	opacity: 1;
	transform: translateY(0);
}

/* Slide Down */
.mn-listing-animate[data-mn-listing-effect="slide_down"] .mn-listing-item {
	transform: translateY(-40px);
}

.mn-listing-animate[data-mn-listing-effect="slide_down"] .mn-listing-item.mn-listing-animated {
	opacity: 1;
	transform: translateY(0);
}

/* Fade Up */
.mn-listing-animate[data-mn-listing-effect="fade_up"] .mn-listing-item {
	transform: translateY(30px);
}

.mn-listing-animate[data-mn-listing-effect="fade_up"] .mn-listing-item.mn-listing-animated {
	opacity: 1;
	transform: translateY(0);
}

/* Fade Down */
.mn-listing-animate[data-mn-listing-effect="fade_down"] .mn-listing-item {
	transform: translateY(-30px);
}

.mn-listing-animate[data-mn-listing-effect="fade_down"] .mn-listing-item.mn-listing-animated {
	opacity: 1;
	transform: translateY(0);
}

/* Transition applied via JS with CSS custom properties */
.mn-listing-animate .mn-listing-item {
	transition-property: opacity, transform;
	transition-duration: var(--mn-listing-duration, 500ms);
	transition-timing-function: var(--mn-listing-easing, ease);
}

/* Stagger delay applied via inline style --mn-listing-delay */
.mn-listing-animate .mn-listing-item {
	transition-delay: var(--mn-listing-delay, 0ms);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.mn-listing-animate .mn-listing-item {
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
	}
}
