/* How It Works section — circular zigzag step design (matches reference). */

.how-it-works {
	padding-top: 92px;
	padding-bottom: 92px;
}

.how-it-works .reveal {
	opacity: 0;
	transform: translateY(26px);
	transition: opacity .7s var(--ease), transform .7s var(--ease);
}

.how-it-works .reveal.in {
	opacity: 1;
	transform: translateY(0);
}

.steps-zigzag { position: relative; margin-top: 50px; padding-bottom: 10px; }
.steps-zigzag-inner { position: relative; width: 870px; max-width: 100%; height: 380px; margin: 0 auto; }

.step-connector { position: absolute; top: 0; left: 0; width: 870px; height: 380px; pointer-events: none; z-index: 0; }

.step-connector path {
	fill: none;
	stroke: var(--plum-600);
	stroke-width: 6;
	stroke-linecap: round;
	opacity: .8;
	stroke-dasharray: 100;
	stroke-dashoffset: 100;
	transition: stroke-dashoffset 1s var(--ease);
}

.steps-zigzag.reveal.in .step-connector path { stroke-dashoffset: 0; }
.steps-zigzag.reveal.in .step-connector path:nth-child(1) { transition-delay: .3s; }
.steps-zigzag.reveal.in .step-connector path:nth-child(2) { transition-delay: .55s; }
.steps-zigzag.reveal.in .step-connector path:nth-child(3) { transition-delay: .8s; }
.steps-zigzag.reveal.in .step-connector path:nth-child(4) { transition-delay: 1.05s; }

.step-node {
	position: absolute;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	z-index: 1;
	opacity: 0;
	transform: translateY(24px) scale(.92);
	transition: opacity .6s var(--ease), transform .6s var(--ease);
}

.steps-zigzag.reveal.in .step-node { opacity: 1; transform: translateY(0) scale(1); }
.steps-zigzag.reveal.in .step-pos-1 { transition-delay: .05s; }
.steps-zigzag.reveal.in .step-pos-2 { transition-delay: .2s; }
.steps-zigzag.reveal.in .step-pos-3 { transition-delay: .35s; }
.steps-zigzag.reveal.in .step-pos-4 { transition-delay: .5s; }
.steps-zigzag.reveal.in .step-pos-5 { transition-delay: .65s; }

.step-circle {
	width: 150px;
	height: 150px;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 10px;
	background: radial-gradient(circle at 32% 28%, var(--sage-400) 0%, var(--sage-500) 45%, var(--sage-600) 100%);
	border: 5px solid var(--plum-600);
	box-shadow: 0 14px 26px rgba(45, 80, 72, .28), 0 3px 8px rgba(45, 80, 72, .18), inset 0 2px 5px rgba(255, 255, 255, .45), inset 0 -8px 14px rgba(0, 0, 0, .14);
	transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
	position: relative;
}

.step-circle .step-num {
	font-family: var(--body);
	font-weight: 800;
	font-size: 19px;
	line-height: 1;
	color: #fff;
	margin-bottom: 3px;
	text-shadow: 0 2px 4px rgba(0, 0, 0, .2);
}

.step-circle h4 { font-family: var(--body); font-size: 12.5px; font-weight: 700; margin: 1px 0 5px; color: var(--plum-950); }
.step-circle p { font-size: 9px; line-height: 1.5; color: var(--plum-900); max-width: 104px; margin: 0; }
.step-node.step-last .step-circle h4 { font-size: 13px; margin: 0; }

.step-node:hover .step-circle { transform: translateY(-8px) scale(1.07) rotate(-2deg); }

.step-pos-1 { left: 0; top: 0; }
.step-pos-2 { left: 178px; top: 217px; }
.step-pos-3 { left: 356px; top: 0; }
.step-pos-4 { left: 534px; top: 217px; }
.step-pos-5 { left: 712px; top: 0; }

@media (max-width: 930px) {
	.how-it-works { padding-top: 56px; padding-bottom: 56px; }
	.steps-zigzag-inner { height: auto; width: 100%; display: flex; flex-direction: column; align-items: center; gap: 28px; }
	.steps-zigzag-inner .step-connector { display: none; }
	.step-node { position: static !important; transform: translateY(24px) scale(.96); }
	.steps-zigzag.reveal.in .step-node { transform: translateY(0) scale(1); }
	.step-circle { width: 160px; height: 160px; }
}

@media (max-width: 520px) {
	.step-circle { width: 150px; height: 150px; padding: 10px; }
	.step-circle p { font-size: 10px; max-width: 110px; }
}
