.section.process-intro {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	align-items: start;
	gap: 5vw;
	padding-top: 160px;
	padding-bottom: 80px;
}

.process-heading h2 {
	max-width: 1100px;
	overflow-wrap: break-word;
}

.process-diagram {
	margin: 0;
	padding: clamp(24px, 3vw, 44px);
	border-radius: 32px;
	background: var(--forest);
	color: var(--white);
	box-shadow: 0 24px 60px rgba(13, 38, 33, .12);
}

.process-diagram figcaption {
	max-width: 320px;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -.025em;
}

.process-path {
	list-style: none;
	margin: 32px 0;
	padding: 0;
}

.process-path li {
	position: relative;
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 20px;
	padding-bottom: 32px;
}

.process-path li:last-child {
	padding-bottom: 0;
}

.process-path li:not(:last-child)::before {
	content: "";
	position: absolute;
	top: 44px;
	bottom: 0;
	left: 21px;
	width: 2px;
	background: rgba(185, 244, 216, .35);
}

.process-path li:not(:last-child)::after {
	content: "";
	position: absolute;
	left: 18px;
	bottom: 13px;
	width: 6px;
	height: 6px;
	border-right: 2px solid var(--mint);
	border-bottom: 2px solid var(--mint);
	transform: rotate(45deg);
}

.process-node {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border: 1px solid rgba(185, 244, 216, .45);
	border-radius: 50%;
	font: 14px monospace;
	color: var(--lime);
}

.process-path li:first-child .process-node,
.process-path li:last-child .process-node {
	background: var(--lime);
	border-color: var(--lime);
	color: var(--forest);
}

.process-path h3 {
	margin: 2px 0 7px;
	font-size: clamp(20px, 2vw, 25px);
	line-height: 1.2;
}

.process-path p {
	margin: 0;
	color: var(--mint);
	font-size: 15px;
	line-height: 1.5;
}

.process-diagram-note {
	margin: 0;
	padding-top: 20px;
	border-top: 1px solid rgba(185, 244, 216, .2);
	color: var(--mint);
	font-size: 14px;
	line-height: 1.6;
}

.process-heading .section-lead {
	max-width: 850px;
}

.process-services .service-group-label:first-child {
	margin-top: 0;
}

/* Match the light green services section on the home page. */
.process-services {
	background: #dfeee5;
	color: var(--ink);
}

.process-services .service-list,
.process-services .service-option {
	border-color: var(--line);
}

.process-services .service-list p,
.process-services .section-lead {
	color: #40534a;
}

.process-services .service-group-label,
.process-services .service-number,
.process-services .service-content h4,
.process-services small,
.process-services .eyebrow {
	color: #2c685a;
}

.process-services .service-option > summary:hover,
.process-services .service-option[open] > summary {
	color: var(--forest);
	background: rgba(255, 254, 250, .45);
}

.process-services .service-option > summary:focus-visible {
	outline-color: var(--forest);
}

.service-group-title {
	max-width: 900px;
	margin: 0;
	color: var(--forest);
	font-size: clamp(34px, 4.5vw, 64px);
	font-weight: 600;
	line-height: 1.08;
	letter-spacing: -.04em;
}

.service-group-title::before {
	content: "";
	display: block;
	width: 64px;
	height: 4px;
	margin-bottom: 24px;
	border-radius: 2px;
	background: #2c685a;
}

@media (max-width: 900px) {
	.section.process-intro {
		grid-template-columns: 1fr;
		gap: 36px;
		padding-top: 180px;
		padding-bottom: 60px;
	}
}
