.gsr-services {
	--gsr-accent: #8ea166;
	--gsr-overlay: #07120b;
	--gsr-overlay-strength: 82%;
	--gsr-image-zoom: 1.07;
	position: relative;
	isolation: isolate;
	background: #f4f4ef;
	color: #152018;
	overflow: clip;
}

.gsr-services *,
.gsr-services *::before,
.gsr-services *::after {
	box-sizing: border-box;
}

.gsr-services::before {
	content: "";
	position: absolute;
	width: min(38vw, 620px);
	aspect-ratio: 1;
	right: -14%;
	top: -24%;
	border: 1px solid color-mix(in srgb, var(--gsr-accent) 24%, transparent);
	border-radius: 50%;
	pointer-events: none;
	z-index: -1;
}

.gsr-services::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(circle at 1px 1px, rgba(15, 29, 19, .07) 1px, transparent 0);
	background-size: 24px 24px;
	mask-image: linear-gradient(to bottom, rgba(0,0,0,.32), transparent 34%);
	pointer-events: none;
	z-index: -2;
}

.gsr-services__inner {
	width: 100%;
	margin-inline: auto;
}

.gsr-services__header {
	display: grid;
	gap: clamp(26px, 4vw, 72px);
	align-items: end;
}

.gsr-services--header-split .gsr-services__header {
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr);
}

.gsr-services--header-stacked .gsr-services__header {
	grid-template-columns: minmax(0, 900px);
}

.gsr-services__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .18em;
	line-height: 1.2;
}

.gsr-services__eyebrow::before {
	content: "";
	width: 34px;
	height: 2px;
	background: var(--gsr-accent);
}

.gsr-services__heading {
	max-width: 880px;
	margin: 0;
	font-size: clamp(38px, 5vw, 78px);
	font-weight: 520;
	letter-spacing: -.045em;
	line-height: .98;
	text-wrap: balance;
}

.gsr-services__intro-group {
	display: grid;
	gap: 24px;
	padding-bottom: 4px;
}

.gsr-services__intro {
	max-width: 590px;
	font-size: clamp(15px, 1.25vw, 18px);
	line-height: 1.72;
}

.gsr-services__intro p,
.gsr-service-card__description p {
	margin: 0;
}

.gsr-services__note {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.gsr-services__note-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gsr-accent);
	box-shadow: 0 0 0 6px color-mix(in srgb, var(--gsr-accent) 18%, transparent);
}

.gsr-services__grid {
	display: grid;
	grid-auto-flow: dense;
	align-items: stretch;
}

.gsr-service-card {
	--gsr-card-height: 430px;
	position: relative;
	min-width: 0;
	min-height: var(--gsr-card-height);
	background: #162219;
	overflow: hidden;
	transform: translateZ(0);
	transition: transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}

.gsr-service-card__link {
	position: absolute;
	inset: 0;
	display: block;
	color: inherit;
	text-decoration: none;
	outline: none;
}

.gsr-service-card__link:focus-visible {
	box-shadow: inset 0 0 0 4px var(--gsr-accent);
}

.gsr-service-card__media,
.gsr-service-card__overlay {
	position: absolute;
	inset: 0;
}

.gsr-service-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.001);
	transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .55s ease;
}

.gsr-service-card__overlay {
	background: linear-gradient(180deg, rgba(7,18,11,.08) 0%, transparent 30%), linear-gradient(0deg, rgba(7,18,11,.82) 0%, rgba(7,18,11,.18) 70%);
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--gsr-overlay) 15%, transparent) 0%, transparent 30%),
		linear-gradient(0deg, color-mix(in srgb, var(--gsr-overlay) var(--gsr-overlay-strength), transparent) 0%, color-mix(in srgb, var(--gsr-overlay) 18%, transparent) 70%);
	transition: opacity .45s ease;
}

.gsr-service-card__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	min-height: var(--gsr-card-height);
	color: #fff;
	pointer-events: none;
}

.gsr-service-card__topline {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 20px;
}

.gsr-service-card__kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 10px;
	font-weight: 760;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.gsr-service-card__kicker::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--gsr-accent);
}

.gsr-service-card__number {
	font-size: 12px;
	font-weight: 680;
	letter-spacing: .12em;
}

.gsr-service-card__body {
	max-width: 520px;
	margin-top: auto;
}

.gsr-service-card__title {
	margin: 0;
	font-size: clamp(29px, 3vw, 50px);
	font-weight: 560;
	letter-spacing: -.035em;
	line-height: 1.02;
	text-wrap: balance;
}

.gsr-service-card__description {
	max-width: 44ch;
	margin-top: 16px;
	font-size: 14px;
	line-height: 1.65;
	opacity: .92;
}

.gsr-service-card__button {
	display: inline-flex;
	align-items: center;
	gap: 13px;
	margin-top: 24px;
	font-size: 12px;
	font-weight: 750;
	letter-spacing: .06em;
	line-height: 1;
	text-transform: uppercase;
}

.gsr-service-card__button-icon {
	display: inline-grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	transition: transform .35s ease, background .35s ease;
}

.gsr-service-card__button-icon svg,
.gsr-service-card__button-icon i {
	width: 13px;
	height: 13px;
	font-size: 13px;
	fill: currentColor;
}

.gsr-service-card:hover {
	transform: translateY(-5px);
}

.gsr-service-card:hover .gsr-service-card__media img {
	transform: scale(var(--gsr-image-zoom));
	filter: saturate(1.05) contrast(1.02);
}

.gsr-service-card:hover .gsr-service-card__button-icon {
	transform: translateX(4px);
}

.gsr-services--editorial .gsr-service-card--wide {
	grid-column: span 2;
}

.gsr-services--editorial .gsr-service-card--tall {
	grid-row: span 2;
	min-height: calc((var(--gsr-card-height) * 2) + 22px);
}

.gsr-services--editorial .gsr-service-card--feature {
	grid-column: span 2;
	grid-row: span 2;
	min-height: calc((var(--gsr-card-height) * 2) + 22px);
}

.gsr-services--grid .gsr-service-card,
.gsr-services--grid .gsr-service-card--wide,
.gsr-services--grid .gsr-service-card--tall,
.gsr-services--grid .gsr-service-card--feature {
	grid-column: auto;
	grid-row: auto;
	min-height: var(--gsr-card-height);
}

.gsr-services--minimal .gsr-service-card {
	background: #fff;
}

.gsr-services--minimal .gsr-service-card__overlay {
	background: linear-gradient(0deg, color-mix(in srgb, var(--gsr-overlay) 70%, transparent) 0%, transparent 75%);
}

.gsr-services--minimal .gsr-service-card__description {
	display: none;
}

.gsr-services--minimal .gsr-service-card__body {
	max-width: 100%;
}

.gsr-services.is-observed .gsr-service-card {
	opacity: 0;
	transform: translateY(22px);
}

.gsr-services.is-observed .gsr-service-card.is-visible {
	opacity: 1;
	transform: translateY(0);
	transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease;
}

.gsr-services.is-observed .gsr-service-card:nth-child(2) { transition-delay: .05s; }
.gsr-services.is-observed .gsr-service-card:nth-child(3) { transition-delay: .1s; }
.gsr-services.is-observed .gsr-service-card:nth-child(4) { transition-delay: .15s; }
.gsr-services.is-observed .gsr-service-card:nth-child(5) { transition-delay: .2s; }
.gsr-services.is-observed .gsr-service-card:nth-child(6) { transition-delay: .25s; }

@media (max-width: 1024px) {
	.gsr-services--header-split .gsr-services__header {
		grid-template-columns: 1fr;
	}

	.gsr-services__intro-group {
		max-width: 690px;
	}

	.gsr-services--editorial .gsr-service-card--feature,
	.gsr-services--editorial .gsr-service-card--wide {
		grid-column: span 2;
	}

	.gsr-services--editorial .gsr-service-card--tall,
	.gsr-services--editorial .gsr-service-card--feature {
		grid-row: auto;
		min-height: var(--gsr-card-height);
	}
}

@media (max-width: 767px) {
	.gsr-services::before {
		right: -40%;
		top: -7%;
		width: 85vw;
	}

	.gsr-services__header {
		gap: 22px;
	}

	.gsr-services__eyebrow {
		margin-bottom: 14px;
	}

	.gsr-services__heading {
		font-size: clamp(36px, 11vw, 52px);
	}

	.gsr-services--editorial .gsr-service-card--feature,
	.gsr-services--editorial .gsr-service-card--wide,
	.gsr-services--editorial .gsr-service-card--tall {
		grid-column: auto;
		grid-row: auto;
		min-height: var(--gsr-card-height);
	}

	.gsr-service-card__title {
		font-size: clamp(30px, 9vw, 42px);
	}

	.gsr-service-card:hover {
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gsr-service-card,
	.gsr-service-card__media img,
	.gsr-service-card__button-icon,
	.gsr-services.is-observed .gsr-service-card,
	.gsr-services.is-observed .gsr-service-card.is-visible {
		transition: none !important;
		transform: none !important;
		opacity: 1 !important;
	}
}
