/**
 * RSF front — animations, visibility, hover colors.
 */

.rsm-rsf-animate,
section.rsm-rsf-animate,
.rsm-cw.rsm-rsf-animate {
	opacity: 0;
	transition-property: opacity, transform;
	transition-timing-function: ease-out;
	will-change: opacity, transform;
}

.rsm-rsf-animate--fade {
	transform: none;
}

.rsm-rsf-animate--slide-up {
	transform: translateY(24px);
}

.rsm-rsf-animate--slide-down {
	transform: translateY(-24px);
}

.rsm-rsf-animate--slide-left {
	transform: translateX(24px);
}

.rsm-rsf-animate--slide-right {
	transform: translateX(-24px);
}

.rsm-rsf-animate--zoom-in {
	transform: scale(0.92);
}

.rsm-rsf-animate--zoom-out {
	transform: scale(1.08);
}

.rsm-rsf-animate--fade-left {
	transform: translateX(20px);
}

.rsm-rsf-animate--fade-right {
	transform: translateX(-20px);
}

.rsm-rsf-animate.is-rsm-rsf-visible,
section.rsm-rsf-animate.is-rsm-rsf-visible,
.rsm-cw.rsm-rsf-animate.is-rsm-rsf-visible {
	opacity: 1;
	transform: none;
}

.rsm-rsf-stagger-host {
	/* Container only — children animate via JS. */
}

/* Button hover */
.rsm-rsf-hover .wp-block-button__link:hover,
.rsm-rsf-hover .wp-block-button__link:focus-visible {
	color: var(--rsm-hover-text) !important;
	background-color: var(--rsm-hover-bg) !important;
	border-color: var(--rsm-hover-border) !important;
}

/* Navigation hover */
.rsm-rsf-hover .wp-block-navigation-item__content:hover,
.rsm-rsf-hover .wp-block-navigation-item__content:focus-visible,
.rsm-rsf-hover a.wp-block-navigation-item__content:hover {
	color: var(--rsm-hover-text) !important;
	background-color: var(--rsm-hover-bg) !important;
}

.rsm-rsf-hover .wp-block-navigation-item__content:hover,
.rsm-rsf-hover a.wp-block-navigation-item__content:hover {
	box-shadow: inset 0 0 0 1px var(--rsm-hover-border, transparent);
}

/* Responsive visibility + text-align bands are injected via wp_add_inline_style (RSMSPARK_RSF_Settings::build_responsive_css). */

@media (prefers-reduced-motion: reduce) {
	.rsm-rsf-animate {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
}
