/* Dark process band (§3) */

.process-band {
	background: var(--navy);
	padding-block: var(--section-pad-dark);
	color: var(--paper);
}

.process-band__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 48px;
	flex-wrap: wrap;
	margin-bottom: 56px;
}

.process-band__header h2 {
	color: var(--paper);
}

.process-band__intro {
	max-width: 30em;
	color: rgba(255, 255, 255, 0.65);
	margin: 0;
}

.process-band__steps {
	display: flex;
	align-items: flex-start;
}

/* The connector sits on the same 2px rail as each step's top border (the
   step's margin-top: -1px centres that border on y=0), so the rail reads as
   one continuous line running through the steps. */
.process-band__arrow {
	flex: 0 0 32px;
	align-self: flex-start;
	height: 2px;
	margin-top: -1px;
	background: rgba(255, 255, 255, 0.2);
	position: relative;
}

.process-band__arrow::after {
	content: '';
	position: absolute;
	right: 1px;
	top: 50%;
	width: 8px;
	height: 8px;
	border-right: 2px solid rgba(255, 255, 255, 0.5);
	border-top: 2px solid rgba(255, 255, 255, 0.5);
	transform: translateY(-50%) rotate(45deg);
	transform-origin: center;
}

/* Glint that travels along the connector — the project moving to the next step. */
.process-band__arrow::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 14px;
	height: 100%;
	border-radius: 2px;
	background: var(--cyan);
	opacity: 0;
}

@media (prefers-reduced-motion: no-preference) {
	.process-band__arrow::before {
		animation: unlock-process-glint 3.2s ease-in-out infinite;
		animation-delay: var(--arrow-delay, 0s);
	}

	.process-band__arrow::after {
		animation: unlock-process-chevron 3.2s ease-in-out infinite;
		animation-delay: var(--arrow-delay, 0s);
	}

	/* Staggered so the motion travels left to right across the steps. */
	.process-band__arrow:nth-of-type(1) { --arrow-delay: 0s; }
	.process-band__arrow:nth-of-type(2) { --arrow-delay: 0.6s; }
	.process-band__arrow:nth-of-type(3) { --arrow-delay: 1.2s; }
	.process-band__arrow:nth-of-type(4) { --arrow-delay: 1.8s; }
}

@keyframes unlock-process-glint {
	0%   { left: 0;                opacity: 0; }
	6%   { opacity: 1; }
	22%  { left: calc(100% - 14px); opacity: 1; }
	28%  { left: calc(100% - 14px); opacity: 0; }
	100% { left: calc(100% - 14px); opacity: 0; }
}

@keyframes unlock-process-chevron {
	0%, 18%, 40%, 100% { border-color: rgba(255, 255, 255, 0.5); transform: translateY(-50%) rotate(45deg); }
	24%                { border-color: var(--cyan); transform: translate(3px, -50%) rotate(45deg); }
}

.process-band__step {
	flex: 1;
	padding-top: 24px;
	padding-right: 16px;
	border-top: 2px solid rgba(255, 255, 255, 0.2);
	margin-top: -1px;
}

.process-band__number {
	display: block;
	font-family: var(--font-heading);
	font-weight: 500;
	color: var(--cyan);
	font-size: 1.375rem;
	margin-bottom: 12px;
}

.process-band__step h3 {
	color: var(--paper);
	font-size: 1.1875rem;
	margin-bottom: 0.5em;
}

.process-band__step p {
	margin: 0;
	color: rgba(255, 255, 255, 0.65);
	font-size: 0.9375rem;
}

/* ---- Responsive (§6) ---------------------------------------------------
   Horizontal steps stack vertically; the connecting line becomes a
   vertical rule to the left of each step instead of a horizontal arrow. */
@media (max-width: 900px) {
	.process-band__steps {
		flex-direction: column;
		gap: 32px;
	}

	.process-band__arrow {
		display: none;
	}

	.process-band__step {
		border-top: none;
		border-left: 2px solid rgba(255, 255, 255, 0.2);
		padding-top: 0;
		padding-right: 0;
		padding-left: 24px;
	}
}
