/**
 * SCBL — Entrance Motion
 *
 * Frontend-only reveal utilities. JS opts elements in after load, so content
 * remains visible if scripts fail. Footer intentionally has no reveal rules.
 */

:root {
	--scbl-ease-out: cubic-bezier(0.23, 1, 0.32, 1);
	--scbl-reveal-duration: 920ms;
	--scbl-reveal-distance: 0.5rem;
}

.scbl-motion-ready .scbl-reveal {
	opacity: 0;
	transform: translate3d(0, var(--scbl-reveal-distance), 0) scale(0.985);
	will-change: opacity, transform;
	transition:
		opacity var(--scbl-reveal-duration) var(--scbl-ease-out),
		transform var(--scbl-reveal-duration) var(--scbl-ease-out);
	transition-delay: var(--scbl-reveal-delay, 0ms);
}

.scbl-motion-ready .scbl-reveal.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0) scale(1);
	will-change: auto;
}

.scbl-motion-ready .scbl-reveal--image {
	--scbl-reveal-distance: 0;
	transform: scale(0.985);
}

.scbl-motion-ready .scbl-reveal--image.is-visible {
	transform: scale(1);
}

@media (prefers-reduced-motion: reduce) {
	.scbl-motion-ready .scbl-reveal,
	.scbl-motion-ready .scbl-reveal--image {
		opacity: 1;
		transform: none;
		transition: opacity 180ms ease;
		transition-delay: 0ms;
		will-change: auto;
	}
}

/* ─── Interaction polish, footer intentionally excluded. ─────────────── */
.hero__btn,
.growth-band__btn,
.cta-band__btn,
.cta-form__button,
.cta-form__wpforms div.wpforms-container-full .wpforms-form button[type="submit"],
.cta-form__wpforms div.wpforms-container-full .wpforms-form .wpforms-submit {
	transition:
		transform 320ms var(--scbl-ease-out),
		box-shadow 320ms var(--scbl-ease-out),
		background-color 320ms var(--scbl-ease-out),
		border-color 320ms var(--scbl-ease-out),
		color 320ms var(--scbl-ease-out);
}

.hero__btn:active,
.growth-band__btn:active,
.cta-band__btn:active,
.cta-form__button:active,
.cta-form__wpforms div.wpforms-container-full .wpforms-form button[type="submit"]:active,
.cta-form__wpforms div.wpforms-container-full .wpforms-form .wpforms-submit:active {
	transform: scale(0.975);
}

.features-card,
.growth-band__stat {
	transition:
		transform 380ms var(--scbl-ease-out),
		box-shadow 380ms var(--scbl-ease-out),
		background-color 380ms var(--scbl-ease-out);
}

@media (hover: hover) and (pointer: fine) {
	.features-card:hover {
		transform: translateY(-0.25rem);
		box-shadow:
			0 0.875rem 1.5rem rgba(16, 17, 20, 0.06),
			0.75rem 1.25rem 2rem rgba(16, 17, 20, 0.08);
	}

	.growth-band__stat:hover {
		transform: translateY(-0.125rem);
		background: var(--color-orange-400);
	}

	.growth-band__btn:hover {
		transform: translateY(-1px);
	}

	.cta-band__btn:hover {
		transform: translateY(-1px);
	}

	.cta-form__wpforms div.wpforms-container-full .wpforms-form button[type="submit"]:hover,
	.cta-form__wpforms div.wpforms-container-full .wpforms-form .wpforms-submit:hover {
		transform: translateY(-1px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.hero__btn,
	.growth-band__btn,
	.cta-band__btn,
	.cta-form__button,
	.cta-form__wpforms div.wpforms-container-full .wpforms-form button[type="submit"],
	.cta-form__wpforms div.wpforms-container-full .wpforms-form .wpforms-submit,
	.features-card,
	.growth-band__stat {
		transition:
			background-color 160ms ease,
			border-color 160ms ease,
			color 160ms ease,
			box-shadow 160ms ease;
	}

	.hero__btn:active,
	.growth-band__btn:active,
	.cta-band__btn:active,
	.cta-form__button:active,
	.cta-form__wpforms div.wpforms-container-full .wpforms-form button[type="submit"]:active,
	.cta-form__wpforms div.wpforms-container-full .wpforms-form .wpforms-submit:active,
	.features-card:hover,
	.growth-band__stat:hover {
		transform: none;
	}
}
