.section-service-grid {
	position: relative;
	overflow: clip;
}

/* Outer gap — light space framing the inset dark box */
.section-service-grid > .container {
	position: relative;
	z-index: 1;
	padding-block: 0;
}

/* Inset dark container — rounded bg replaces full-bleed dark section */
.sg-inset {
	position: relative;
	border-radius: var(--radius-section-inset);
	overflow: hidden;
	padding-block-start: var(--size-v-pad-lg);
	padding-block-end: var(--size-global-padding-h);
}

/* Gradient mirror — logo-marquee yellow flipped, behind the inset */
.section-service-grid .sg-gradient {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	pointer-events: none;
	z-index: 0;
	line-height: 0;
	transform: scaleY(-1);
}

.section-service-grid .sg-gradient svg {
	display: block;
	width: 100%;
	height: auto;
}

/* Lift content above .bg-texture-dark::before overlay */
.sg-inner {
	position: relative;
	z-index: 1;
	overflow-x: clip;
}

.section-service-grid .title {
	color: var(--color-text-pri-light);
	max-width: var(--size-max-heading-center);
	margin-inline: auto;
}

.section-service-grid .service-grid-cards {
	display: flex;
	flex-direction: column;
	gap: var(--size-gap-cards);
	margin-top: var(--size-section-title-mb);
}

.section-service-grid .service-grid-card {
	align-items: stretch;
	position: relative;
	min-height: 20.625rem;
}

.section-service-grid .service-card-cta .btn::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.section-service-grid .service-grid-card .col-text {
	transition: var(--transition-base);
}

@media (hover: hover) {
    .section-service-grid .service-grid-card:hover .col-text {
        background-color: var(--color-bg-dark-200);
    }
}

/* Visual column: image fills full height */
.section-service-grid .col-visual {
	line-height: 0;
	min-height: 15rem;
	border-radius: var(--radius-media);
	border: var(--size-border-card-border) solid var(--color-border-dark-100);
	overflow: hidden;
}

.section-service-grid .col-visual .img-cover {
	height: 100%;
}

.section-service-grid .col-visual .img-cover img {
	height: 20.625rem;
	object-fit: cover;
}

/* Text column — extends .card-dark (base.css) */
.section-service-grid .col-text {
	padding: 2.5rem;
	display: flex;
	flex-direction: column;
}

.section-service-grid .service-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2rem;
}

.section-service-grid .service-card-title {
	color: var(--color-text-pri-light);
	margin: 0;
}

.section-service-grid .service-card-icon {
	width: 3.375rem;
	height: 3.375rem;
	flex-shrink: 0;
	opacity: 0.5;
	margin-top: 0;
}

.section-service-grid .service-card-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.section-service-grid .service-card-footer {
	margin-top: auto;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
}

.section-service-grid .service-card-desc {
	color: var(--color-text-sec-light);
	max-width: 65%;
}

.section-service-grid .service-card-cta {
	flex-shrink: 0;
}


.service-grid-cta {
	margin-top: var(--size-section-cta-mt);
	text-align: center;
}


@media only screen and (max-width: 991.98px) {
	.section-service-grid > .container {
		padding-block: 0;
	}

	.sg-inset {
		padding-block-start: var(--size-v-pad-md);
		padding-block-end: var(--size-global-padding-h);
	}

	.section-service-grid .service-grid-cards {
		margin-top: var(--size-section-title-mb);
	}

	.section-service-grid .col-text {
		padding: var(--size-pad-2xs);
	}

	.section-service-grid .service-grid-card {
		height: auto;
		gap: var(--size-gap-cards);
		min-height: auto;
	}

	.section-service-grid .col-visual {
		display: none;
	}

	.section-service-grid .service-card-header {
		gap: 1rem;
	}

	.section-service-grid .service-card-footer {
		margin-top: 1rem;
		gap: 1.5rem;
		flex-direction: column;
		align-items: flex-start;
	}

	.section-service-grid .service-card-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 1.5rem;
	}

	.section-service-grid .service-card-icon {
		order: -1;
		width: 3rem;
		height: 3rem;
		transform: translateX(-0.4rem);
	}

	.section-service-grid .service-card-desc {
		max-width: 100%;
	}
}
