/* Process Steps block */

.process-steps {
	background: #ffffff;
	padding-top:    var( --ps-pt, 3rem );
	padding-bottom: var( --ps-pb, 3rem );
	margin-top:     var( --ps-mt, 0rem );
	margin-bottom:  var( --ps-mb, 0rem );
}
.process-steps__inner {
	max-width: 60rem;
	margin: 0 auto;
	padding: 0 1.5rem;
}

.process-steps__head { margin-bottom: 3rem; }
.process-steps__eyebrow {
	font-family: 'Jost', system-ui, sans-serif;
	font-size: 1rem; font-weight: 500; letter-spacing: 0.25rem;
	text-transform: uppercase; color: rgba( 0, 13, 38, 0.7 ); margin: 0 0 0.75rem;
}
.process-steps__heading {
	font-family: 'Quincy', Georgia, serif;
	font-size: clamp( 2.25rem, 4vw, 3.25rem );
	font-weight: 400; line-height: clamp( 2.475rem, 4.4vw, 3.575rem ); color: #000d26; margin: 0;
}
.process-steps__intro {
	font-family: 'Source Sans 3', system-ui, sans-serif;
	font-size: 1.125rem; line-height: 1.6; color: #34415a; margin: 1.25rem 0 0;
}

.process-steps__list { list-style: none; margin: 0; padding: 0; }

.process-steps__step {
	position: relative;
	display: flex;
	gap: 1.75rem;
	padding-bottom: 2.75rem;
}
.process-steps__step:last-child { padding-bottom: 0; }

/* connecting vertical line through the number badges */
.process-steps.is-numbered .process-steps__step:not(:last-child)::before {
	content: "";
	position: absolute;
	left: 1.5rem;               /* centre of the 3rem badge */
	top: 3.25rem;
	bottom: 0.25rem;
	width: 0.125rem;
	background: #d7deec;
	transform: translateX(-50%);
}

.process-steps__num {
	flex: 0 0 auto;
	width: 3rem; height: 3rem;
	border-radius: 50%;
	background: #000d26;
	color: #fff;
	font-family: 'Jost', system-ui, sans-serif;
	font-weight: 600; font-size: 1.25rem;
	display: flex; align-items: center; justify-content: center;
	position: relative; z-index: 1;
}
.process-steps__content { flex: 1 1 auto; padding-top: 0.15rem; min-width: 0; }
.process-steps__title {
	font-family: 'Quincy', Georgia, serif;
	font-size: clamp( 1.5rem, 2.5vw, 2rem );
	font-weight: 400; line-height: clamp( 1.725rem, 2.875vw, 2.3rem ); color: #000d26;
	margin: 0 0 0.85rem;
}
.process-steps__text {
	font-family: 'Source Sans 3', system-ui, sans-serif;
	font-size: 1.0625rem; line-height: 1.6; color: #34415a;
	margin: 0 0 1rem;
}
.process-steps__text:last-child { margin-bottom: 0; }
.process-steps__cta {
	display: inline-block;
	margin-top: 0.5rem;
	background: #0b5cff; color: #fff;
	font-family: 'Jost', system-ui, sans-serif; font-weight: 600;
	text-decoration: none;
	padding: 0.85rem 1.75rem; border-radius: 0.5rem;
	transition: filter 0.15s;
}
.process-steps__cta:hover { filter: brightness( 0.94 ); }

@media ( max-width: 768px ) {
	.process-steps__inner { padding: 0 1rem; }
	.process-steps__step { gap: 1rem; padding-bottom: 2rem; }
	.process-steps__num { width: 2.5rem; height: 2.5rem; font-size: 1.0625rem; }
	.process-steps.is-numbered .process-steps__step:not(:last-child)::before { left: 1.25rem; top: 2.75rem; }
}
/* Section PADDING stays desktop until 600px (site-wide standard: desktop = tablet). */
@media ( max-width: 600px ) {
	.process-steps {
		padding-top:    var( --ps-pt-m, var( --ps-pt, 2rem ) );
		padding-bottom: var( --ps-pb-m, var( --ps-pb, 2rem ) );
		margin-top:     var( --ps-mt-m, var( --ps-mt, 0rem ) );
		margin-bottom:  var( --ps-mb-m, var( --ps-mb, 0rem ) );
	}
}
