/**
 * Process Steps widget.
 *
 * Mobile-first vertical timeline (icon badge + line on the left); from
 * 1025px the "horizontal" layout lays the steps out in a row with a dashed
 * line running between the icon badges.
 *
 * @package ManVan
 */

.manvan-process-steps__list {
	--manvan-ps-marker: 3.5rem;
	--manvan-ps-line: var(--manvan-border-strong);
	--manvan-ps-gap: 2.25rem;
	display: grid;
	gap: var(--manvan-ps-gap);
	max-width: 42rem;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.manvan-process-steps__step {
	position: relative;
	display: grid;
	grid-template-columns: var(--manvan-ps-marker) minmax(0, 1fr);
	gap: 0 1.25rem;
	align-items: start;
	align-content: start;
	min-width: 0;
	margin: 0;
	padding: 0;
}

.manvan-process-steps__step::before {
	content: none;
}

/* ---- Marker: icon badge + number bubble -------------------------------- */

.manvan-process-steps__marker {
	position: relative;
	z-index: 1;
	width: var(--manvan-ps-marker);
	height: var(--manvan-ps-marker);
}

.manvan-process-steps__icon {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	border: 1px solid var(--manvan-border);
	border-radius: var(--manvan-radius);
	background-color: var(--manvan-surface);
	box-shadow: var(--manvan-shadow);
	color: var(--manvan-brand);
}

.manvan-process-steps__icon svg,
.manvan-process-steps__icon i {
	width: 1.5rem;
	height: 1.5rem;
	font-size: 1.5rem;
	line-height: 1;
}

.manvan-process-steps__icon--number {
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.manvan-process-steps__number {
	position: absolute;
	top: -0.55rem;
	right: -0.55rem;
	display: grid;
	place-items: center;
	min-width: 1.75rem;
	height: 1.75rem;
	padding: 0 0.35rem;
	border-radius: var(--manvan-radius-pill);
	background-color: var(--manvan-ink);
	box-shadow: 0 6px 14px -6px rgba(15, 27, 45, 0.6);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}

.manvan-scheme-dark .manvan-process-steps__number,
.manvan-block--dark .manvan-process-steps__number {
	background-color: var(--manvan-brand);
}

/* ---- Text ------------------------------------------------------------- */

.manvan-process-steps__body {
	min-width: 0;
	padding-top: 0.6rem;
}

.manvan-block .manvan-process-steps__kicker {
	margin: 0 0 0.35rem;
	font-size: var(--manvan-fs-xs);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--manvan-brand);
}

.manvan-block .manvan-process-steps__title {
	margin: 0 0 0.5rem;
	font-family: var(--manvan-font-heading);
	font-size: var(--manvan-fs-h3);
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.012em;
	color: var(--manvan-heading);
	text-wrap: balance;
}

.manvan-block .manvan-process-steps__desc {
	margin: 0;
	font-size: 0.9875rem;
	line-height: 1.65;
	color: var(--manvan-muted);
	text-wrap: pretty;
}

/* ---- Connecting line (vertical) --------------------------------------- */

.manvan-process-steps--connected .manvan-process-steps__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: calc(var(--manvan-ps-marker) + 0.5rem);
	bottom: calc(-1 * var(--manvan-ps-gap) + 0.5rem);
	left: calc(var(--manvan-ps-marker) / 2 - 1px);
	width: 2px;
	border-radius: 2px;
	background-color: var(--manvan-ps-line);
}

.manvan-ps-dashed-yes .manvan-process-steps--connected .manvan-process-steps__step:not(:last-child)::after {
	background-color: transparent;
	background-image: repeating-linear-gradient(180deg, var(--manvan-ps-line) 0 6px, transparent 6px 12px);
}

/* ---- Horizontal (desktop) --------------------------------------------- */

@media (min-width: 1025px) {
	.manvan-process-steps--horizontal .manvan-process-steps__list {
		--manvan-ps-marker: 4rem;
		--manvan-ps-gap: clamp(1.5rem, 0.5rem + 2vw, 3rem);
		grid-template-columns: repeat(var(--manvan-steps, 3), minmax(0, 1fr));
		max-width: none;
	}

	.manvan-process-steps--horizontal .manvan-process-steps__step {
		grid-template-columns: minmax(0, 1fr);
		gap: 1.5rem;
	}

	.manvan-process-steps--horizontal .manvan-process-steps__body {
		padding-top: 0;
		padding-right: 0.5rem;
	}

	.manvan-process-steps--horizontal.manvan-process-steps--connected .manvan-process-steps__step:not(:last-child)::after {
		top: calc(var(--manvan-ps-marker) / 2 - 1px);
		right: calc(-1 * var(--manvan-ps-gap) + 1rem);
		bottom: auto;
		left: calc(var(--manvan-ps-marker) + 1.25rem);
		width: auto;
		height: 2px;
	}

	.manvan-ps-dashed-yes .manvan-process-steps--horizontal.manvan-process-steps--connected .manvan-process-steps__step:not(:last-child)::after {
		background-image: repeating-linear-gradient(90deg, var(--manvan-ps-line) 0 6px, transparent 6px 12px);
	}
}
