/*
 * Site5 – service detail page (Figma "Service — Mise en relation · Desktop", node 594:6028).
 * 1280 px grid with 80 px side margins at 1440 px.
 */

.service-container {
	width: min(1280px, 100% - 2 * var(--gutter-wide));
	margin-inline: auto;
}

.service-kicker {
	color: var(--red-bright);
	font-size: 13px;
	font-weight: 500;
	line-height: 18px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* Hero (split hero variant) --------------------------------------------- */

.split-hero--service .breadcrumb li {
	text-transform: uppercase;
}

.split-hero--service .split-hero__inner {
	padding-bottom: 48px;
}

.split-hero--service .split-hero__body {
	padding-top: 53px;
}

.split-hero--service .split-hero__title {
	margin-top: 7px;
	font-size: 64px;
	line-height: 72px;
}

.split-hero__hook {
	max-width: 610px;
	margin-top: 20px;
	color: var(--ink);
	font-size: 27px;
	font-weight: 600;
	line-height: 38px;
}

.split-hero--service .split-hero__text {
	margin-top: 24px;
	font-size: 16px;
	line-height: 27px;
}

.split-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 43px;
}

.split-hero--service .split-hero__button {
	min-width: 220px;
	margin-top: 0;
}

/* Two classes: the shared stylesheet (loaded after) sets the red background. */
.split-hero__button.split-hero__button--light {
	min-width: 230px;
	border: 1px solid #e3e5e8;
	background: var(--white);
	color: #0b1421;
}

.split-hero__button.split-hero__button--light:hover {
	border-color: #0b1421;
	background: var(--white);
}

/* Image keeps its rounded corners; the media box shows the red accent outside it. */
.split-hero--service .split-hero__media {
	position: relative;
	overflow: visible;
	box-shadow: none;
}

.split-hero--service .split-hero__image {
	border-radius: 24px;
	box-shadow: 0 18px 36px rgba(0, 0, 0, 0.12);
}

.split-hero--service .split-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 24px;
	background: rgba(11, 20, 33, 0.18);
	pointer-events: none;
}

.split-hero--service .split-hero__media::before {
	content: "";
	position: absolute;
	top: 50%;
	left: -30px;
	width: 4px;
	height: 150px;
	border-radius: 2px;
	background: var(--red-bright);
	transform: translateY(-50%);
}

.split-hero__caption {
	position: absolute;
	right: 35px;
	bottom: 30px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 3px;
	width: 315px;
	max-width: calc(100% - 40px);
	padding: 12px 18px;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.94);
	color: #0b1421;
	font-size: 13px;
	line-height: 18px;
}

.split-hero__caption strong {
	color: var(--red-bright);
	font-size: 11px;
	font-weight: 700;
	line-height: 16px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* About ----------------------------------------------------------------- */

.service-about {
	padding: 72px 0 52px;
}

.service-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 625px) minmax(0, 548px);
	align-items: end;
	gap: 85px;
}

.service-about__title {
	margin-top: 18px;
	color: #0b1421;
	font-family: var(--font-serif);
	font-size: 48px;
	font-weight: 700;
	line-height: 58px;
}

.service-about__text {
	color: #3d454f;
	font-size: 17px;
	line-height: 29px;
	text-align: justify;
}

.service-quote {
	display: flex;
	align-items: center;
	gap: 15px;
	min-height: 119px;
	margin-top: 43px;
	padding: 24px 55px;
	border-radius: 12px;
	background: #f8f8f7;
	color: #0b1421;
	font-family: var(--font-serif);
	font-size: 24px;
	font-weight: 700;
	line-height: 34px;
}

.service-quote::before {
	content: "“";
	flex: none;
	width: 45px;
	color: var(--red-bright);
	font-size: 52px;
	line-height: 58px;
}

/* What we do ------------------------------------------------------------ */

.service-actions {
	padding: 66px 0 59px;
	background: #f8f8f7;
}

.service-actions__title {
	margin-top: 16px;
	color: #0b1421;
	font-family: var(--font-serif);
	font-size: 46px;
	font-weight: 700;
	line-height: 56px;
}

.service-actions__grid {
	display: grid;
	grid-template-columns: minmax(0, 609px) minmax(0, 578px);
	align-items: center;
	gap: 72px;
	margin-top: 56px;
}

.service-actions__media {
	position: relative;
	height: 548px;
}

.service-actions__image {
	width: 100%;
	height: 100%;
	border-radius: 20px;
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.1);
	object-fit: cover;
}

.service-actions__tag {
	position: absolute;
	bottom: 17px;
	left: 32px;
	width: 300px;
	max-width: calc(100% - 64px);
	padding: 17px 18px;
	border-radius: 8px;
	background: rgba(11, 20, 33, 0.94);
	color: var(--white);
	font-size: 12px;
	font-weight: 600;
	line-height: 20px;
}

.service-action {
	display: flex;
	gap: 18px;
	padding-bottom: 36px;
	border-bottom: 1px solid #e3e5e8;
}

.service-action + .service-action {
	padding-top: 36px;
}

.service-action:last-child {
	padding-bottom: 0;
	border-bottom: 0;
}

.service-action__number {
	flex: none;
	width: 60px;
	color: var(--red-bright);
	font-family: var(--font-serif);
	font-size: 26px;
	font-weight: 700;
	line-height: 34px;
}

.service-action__title {
	color: #0b1421;
	font-size: 20px;
	font-weight: 600;
	line-height: 28px;
}

.service-action__text {
	margin-top: 12px;
	color: #3d454f;
	font-size: 16px;
	line-height: 22px;
}

/* Needs ----------------------------------------------------------------- */

.service-needs {
	padding: 71px 0 70px;
	background: #0b1421;
	color: var(--white);
}

.service-needs__inner {
	display: grid;
	grid-template-columns: minmax(0, 360px) minmax(0, 782px);
	align-items: center;
	justify-content: space-between;
	gap: 48px;
	width: min(1236px, 100% - 2 * var(--gutter-wide));
	margin-inline: auto;
}

.service-needs__kicker {
	color: var(--red-bright);
	font-size: 11px;
	font-weight: 700;
	line-height: 13px;
	text-transform: uppercase;
}

.service-needs__title {
	margin-top: 12px;
	font-family: var(--font-serif);
	font-size: 34px;
	font-weight: 700;
	line-height: 42px;
}

.service-needs__text {
	max-width: 340px;
	margin-top: 28px;
	color: #b8c1cd;
	font-size: 16px;
	line-height: 21px;
}

.service-needs__cue {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 54px;
	margin-top: 27px;
	padding: 0 16px 0 12px;
	border: 1px solid #2a3543;
	border-radius: 10px;
	background: #0f1926;
	font-size: 12px;
	font-weight: 600;
	line-height: 16px;
}

.service-needs__cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.need-card {
	min-height: 168px;
	padding: 16px 18px 14px;
	border: 1px solid rgba(156, 163, 175, 0.19);
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.1);
	transition: background-color 0.2s, border-color 0.2s;
}

.need-card:hover {
	border-color: rgba(227, 6, 19, 0.6);
	background: rgba(255, 255, 255, 0.13);
}

.need-card__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.need-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: var(--red-bright);
}

.need-card__accent {
	width: 34px;
	height: 3px;
	border-radius: 2px;
	background: var(--red-bright);
}

.need-card__title {
	margin-top: 15px;
	font-size: 16px;
	font-weight: 700;
	line-height: 17px;
}

.need-card__text {
	margin-top: 15px;
	color: #b8c1cd;
	font-size: 15px;
	line-height: 19px;
}

/* Approach -------------------------------------------------------------- */

.service-approach {
	padding: 78px 0 63px;
}

.service-approach__head {
	display: grid;
	grid-template-columns: minmax(0, 720px) minmax(0, 500px);
	justify-content: space-between;
	gap: 40px;
}

.service-approach__title {
	margin-top: 16px;
	color: #0b1421;
	font-family: var(--font-serif);
	font-size: 46px;
	font-weight: 700;
	line-height: 56px;
}

.service-approach__text {
	padding-top: 44px;
	color: #3d454f;
	font-size: 18px;
	line-height: 26px;
}

.service-note {
	display: flex;
	align-items: center;
	gap: 16px;
	min-height: 74px;
	margin-top: 51px;
	padding: 16px 24px;
	border-radius: 10px;
	background: #f8f8f7;
	color: #0b1421;
	font-size: 16px;
	line-height: 22px;
}

.service-note strong {
	flex: none;
	width: 183px;
	color: var(--red-bright);
	font-weight: 700;
	line-height: 16px;
	letter-spacing: 1px;
	text-transform: uppercase;
}

/* Responsive ------------------------------------------------------------ */

@media (max-width: 1279px) {
	/* Justified text leaves wide gaps in a narrow column. */
	.service-about__text {
		text-align: left;
	}

	.service-about__grid,
	.service-actions__grid,
	.service-approach__head {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 48px;
	}

	.service-needs__inner {
		grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
	}

	.process-steps {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 32px;
		padding-left: 0;
	}

	.process-steps::before {
		right: 0;
		left: 25px;
	}
}

@media (max-width: 1023px) {
	.split-hero--service .split-hero__body {
		padding-top: 0;
	}

	.split-hero--service .split-hero__media::before {
		display: none;
	}

	.service-about__grid,
	.service-actions__grid,
	.service-approach__head,
	.service-needs__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.service-about__grid {
		align-items: start;
	}

	.service-actions__media {
		height: 420px;
	}

	.service-approach__text {
		padding-top: 0;
	}

	.process-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 40px;
	}

	.process-steps::before {
		display: none;
	}
}

@media (max-width: 767px) {
	.split-hero--service .split-hero__title {
		font-size: 42px;
		line-height: 48px;
	}

	.split-hero__hook {
		font-size: 21px;
		line-height: 30px;
	}

	.split-hero__actions {
		flex-direction: column;
		margin-top: 28px;
	}

	.split-hero--service .split-hero__button {
		width: 100%;
	}

	.split-hero__caption {
		right: 16px;
		bottom: 16px;
	}

	.service-about,
	.service-actions,
	.service-approach {
		padding: 48px 0;
	}

	.service-needs {
		padding: 48px 0;
	}

	.service-about__title,
	.service-actions__title,
	.service-approach__title {
		font-size: 32px;
		line-height: 40px;
	}

	.service-about__text {
		font-size: 16px;
		line-height: 27px;
	}

	.service-quote {
		padding: 20px;
		font-size: 19px;
		line-height: 28px;
	}

	.service-quote::before {
		width: 28px;
		font-size: 40px;
	}

	.service-actions__grid {
		margin-top: 32px;
	}

	.service-actions__media {
		height: 300px;
	}

	.service-action {
		gap: 12px;
		padding-bottom: 24px;
	}

	.service-action + .service-action {
		padding-top: 24px;
	}

	.service-action__number {
		width: 40px;
		font-size: 22px;
	}

	.service-needs__cards,
	.process-steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.need-card {
		min-height: 0;
	}

	.process-steps {
		margin-top: 40px;
	}

	.process-step__title {
		margin-top: 20px;
	}

	.service-note {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}
}

/* Optional button under the "what we do" list. */
.service-actions__more {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}
