/* Reveal on scroll — transform ONLY, never opacity:0 at rest, so a
   headless/no-JS render still shows full content (see project rules). */
[data-reveal] {
	transform: translateY(28px);
	transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
	transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-visible {
	transform: translateY(0);
}
[data-reveal="scale"] {
	transform: translateY(20px) scale(0.97);
}
[data-reveal="scale"].is-visible {
	transform: translateY(0) scale(1);
}

/* Hero: gentle entrance on load, same transform-only rule */
.hero__text > * {
	transform: translateY(16px);
	opacity: 1;
	animation: sowa-hero-in 0.6s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.hero__text > *:nth-child(1) { animation-delay: 0.05s; }
.hero__text > *:nth-child(2) { animation-delay: 0.12s; }
.hero__text > *:nth-child(3) { animation-delay: 0.19s; }
.hero__text > *:nth-child(4) { animation-delay: 0.26s; }
.hero__text > *:nth-child(5) { animation-delay: 0.33s; }
@keyframes sowa-hero-in {
	from { transform: translateY(16px); }
	to { transform: translateY(0); }
}

/* Process steps */
.steps {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	grid-template-columns: 1fr;
	counter-reset: sowa-step;
}
@media (min-width: 760px) {
	.steps { grid-template-columns: repeat(3, 1fr); }
}
.step {
	position: relative;
	padding-top: 1rem;
	border-top: 1px solid var(--line);
}
.step__num {
	font-family: var(--font-display);
	font-size: clamp(2.25rem, 4vw, 3rem);
	color: var(--accent);
	display: block;
	margin-bottom: 0.75rem;
	font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
	[data-reveal], [data-reveal="scale"], .hero__text > * {
		transform: none !important;
		animation: none !important;
		transition: none !important;
	}
}
