/* NTPC V19 — catalogue Services unifié avec l'expérience Réalisations. */

.ntpc-services-showcase {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background:
		radial-gradient(circle at 86% 22%, rgba(206, 158, 62, 0.12), transparent 30rem),
		linear-gradient(180deg, #090a0a, #0d0e0e);
}

.ntpc-services-showcase .ntpc-services-heading {
	width: min(100%, 94rem);
	margin-inline: auto;
}

.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured {
	display: flex;
	width: calc(100% + (2 * var(--ntpc-layout-gutter)));
	max-width: none;
	gap: clamp(0.85rem, 1.4vw, 1.2rem);
	margin-inline: calc(-1 * var(--ntpc-layout-gutter));
	padding: 0 max(var(--ntpc-layout-gutter), calc((100vw - 94rem) / 2)) 1rem;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-padding-inline: max(var(--ntpc-layout-gutter), calc((100vw - 94rem) / 2));
	scroll-snap-type: x mandatory;
	overscroll-behavior-inline: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.ntpc-services-showcase .ntpc-services-grid::-webkit-scrollbar {
	display: none;
}

.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child,
body.home .ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
body.home .ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child {
	flex: 0 0 clamp(19rem, 27vw, 25rem);
	width: clamp(19rem, 27vw, 25rem);
	height: clamp(28rem, 39vw, 36rem);
	min-height: 0;
	margin: 0;
	scroll-snap-align: center;
	scroll-snap-stop: always;
}

.ntpc-service-discover {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	margin-top: 0.85rem;
	color: var(--ntpc-v14-gold-light, #f5dc99);
	font-size: 0.78rem;
	font-weight: 760;
}

.ntpc-service-rail-nav,
.ntpc-services-showcase .ntpc-service-rail-nav {
	display: grid;
	grid-template-columns: 2.75rem minmax(5rem, 1fr) auto 2.75rem;
	align-items: center;
	gap: 0.2rem;
	width: min(calc(100% - 2rem), 34rem);
	min-height: 3.2rem;
	margin: 0.4rem auto 0;
	padding: 0.18rem 0.28rem;
	border: 1px solid rgba(245, 220, 153, 0.3);
	border-radius: 999px;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(7, 8, 9, 0.48));
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.13), 0 0.9rem 2.5rem rgba(0, 0, 0, 0.28);
	-webkit-backdrop-filter: blur(20px) saturate(145%);
	backdrop-filter: blur(20px) saturate(145%);
}

.ntpc-service-rail-nav > button {
	display: grid;
	place-items: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0;
	color: #fff;
	font-size: 1rem;
	border: 0;
	border-radius: 50%;
	background: transparent;
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

.ntpc-service-rail-nav .ntpc-project-rail-dots {
	display: flex;
	min-width: 0;
	align-items: center;
	justify-content: center;
	gap: 0.28rem;
	overflow: hidden;
}

.ntpc-service-rail-nav .ntpc-project-rail-dots button {
	width: 0.34rem;
	height: 0.34rem;
	min-width: 0.34rem;
	min-height: 0.34rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.4);
}

.ntpc-service-rail-nav .ntpc-project-rail-dots button.is-active {
	width: 1.15rem;
	background: var(--ntpc-v14-gold-light, #f5dc99);
	box-shadow: 0 0 0.7rem rgba(245, 220, 153, 0.52);
}

.ntpc-service-rail-nav .ntpc-project-rail-count {
	padding-inline: 0.35rem;
	color: rgba(255, 255, 255, 0.64);
	font-size: 0.72rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.ntpc-services-showcase .ntpc-section-action {
	margin-top: 1.1rem;
}

.ntpc-services-showcase--page {
	padding-top: clamp(4.5rem, 8vw, 7rem);
	padding-bottom: clamp(4.5rem, 8vw, 7rem);
}

.ntpc-service-viewer-use {
	padding-top: 0.8rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ntpc-service-viewer-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.65rem;
}

.ntpc-service-viewer-actions a {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.75rem;
	padding: 0.62rem 0.95rem;
	color: var(--ntpc-v14-gold-light, #f5dc99);
	font-weight: 760;
	text-decoration: none;
	border: 1px solid rgba(245, 220, 153, 0.32);
	border-radius: 999px;
	background: rgba(217, 170, 78, 0.08);
}

@media (hover: hover) and (pointer: fine) {
	.ntpc-service-rail-nav > button:hover,
	.ntpc-service-rail-nav > button:focus-visible {
		color: #101111;
		background: var(--ntpc-gradient-gold);
	}
}

@media (max-width: 47.99rem) {
	.ntpc-services-showcase,
	body.home .ntpc-services-showcase.ntpc-content-section {
		box-sizing: border-box;
		min-height: 100svh;
		min-height: 100dvh;
		padding-right: 0;
		padding-left: 0;
	}

	.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured {
		width: 100%;
		gap: 0.78rem;
		margin-inline: 0;
		padding: 0 max(7vw, env(safe-area-inset-right)) 0.75rem max(7vw, env(safe-area-inset-left));
		scroll-padding-inline: 7vw;
	}

	.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
	.ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child,
	body.home .ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
	body.home .ntpc-services-showcase .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child {
		flex-basis: min(84vw, 25rem);
		width: min(84vw, 25rem);
		height: clamp(25rem, 112vw, 32rem);
		opacity: 0.68;
		transform: scale(0.95);
		transform-origin: center;
	}

	.ntpc-services-showcase .ntpc-service-showcase-card.is-active,
	.ntpc-services-showcase .ntpc-service-showcase-card:first-child {
		opacity: 1;
		transform: scale(1);
	}

	.ntpc-services-showcase--page {
		padding-top: 3.25rem;
	}

	.ntpc-services-showcase .ntpc-services-heading {
		margin-right: max(1rem, env(safe-area-inset-right));
		margin-left: max(1rem, env(safe-area-inset-left));
	}

	.ntpc-service-discover {
		margin-top: 0.55rem;
	}

	.ntpc-service-rail-nav,
	.ntpc-services-showcase .ntpc-service-rail-nav {
		width: min(calc(100% - 1.5rem), 27rem);
		margin-bottom: calc(0.5rem + env(safe-area-inset-bottom));
	}

	.ntpc-service-viewer-copy {
		max-height: min(62dvh, 35rem);
		padding-bottom: calc(1.05rem + env(safe-area-inset-bottom));
	}

	.ntpc-service-viewer-actions {
		display: grid;
		grid-template-columns: 1fr;
	}
}

@supports not ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.ntpc-service-rail-nav,
	.ntpc-service-viewer-actions a {
		background: #111313;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ntpc-services-showcase .ntpc-service-showcase-card,
	.ntpc-service-rail-nav .ntpc-project-rail-dots button {
		transition: none !important;
	}
}

/* V20 — cadrages plus lisibles et camion NTPC mis en valeur. */
.ntpc-page-hero-services {
	background: #080909;
}

.ntpc-page-hero-services::before {
	z-index: -2;
	background:
		url("../images/generated/contact-camion-ntpc-v1.webp") 64% center / cover no-repeat;
	filter: saturate(0.92) contrast(1.04);
	mask-image: none;
}

.ntpc-page-hero-services::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(4, 5, 6, 0.98) 0%, rgba(4, 5, 6, 0.9) 37%, rgba(4, 5, 6, 0.42) 68%, rgba(4, 5, 6, 0.16) 100%),
		linear-gradient(180deg, rgba(4, 5, 6, 0.4), transparent 35%, rgba(4, 5, 6, 0.65));
	content: "";
	pointer-events: none;
}

.ntpc-page-hero-services .ntpc-page-hero-emblem {
	opacity: 0;
	pointer-events: none;
}

@media (min-width: 64rem) {
	/* Les chantiers restent au premier plan : trois cartes plus compactes et panoramiques. */
	body.home .ntpc-realisations-featured .ntpc-realisations-grid-featured {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(0.8rem, 1.25vw, 1.15rem);
	}

	body.home .ntpc-realisations-featured .ntpc-realisations-grid-featured[data-count] > .ntpc-realisation-card,
	body.home .ntpc-realisations-featured .ntpc-realisations-grid-featured[data-count="3"] > .ntpc-realisation-card:first-child {
		grid-column: auto;
		grid-row: auto;
		height: clamp(20rem, 27vw, 25.5rem);
		min-height: 0;
	}

	body.home .ntpc-realisations-featured .ntpc-realisation-copy {
		width: calc(100% - 1rem);
		max-height: 46%;
		margin: 0.5rem;
		padding: 0.85rem 0.95rem;
	}

	body.home .ntpc-realisations-featured .ntpc-realisation-title {
		font-size: clamp(1.15rem, 1.55vw, 1.55rem) !important;
	}

	/* Catalogue : davantage de projets visibles et aucune carte géante. */
	.ntpc-realisations-grid-catalogue {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		grid-auto-rows: clamp(19rem, 23vw, 25rem);
		gap: clamp(0.75rem, 1.1vw, 1rem);
	}

	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card,
	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card:first-child,
	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card:nth-child(2),
	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card:nth-child(3) {
		grid-column: auto;
		grid-row: auto;
		min-height: 0;
	}

	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card:first-child .ntpc-realisation-title {
		font-size: clamp(1.2rem, 1.55vw, 1.55rem);
	}

	.ntpc-realisations-grid-catalogue .ntpc-realisation-copy {
		max-height: 50%;
		padding: 0.8rem 0.9rem;
	}

	/* Galerie d'une fiche : vignettes homogènes, image entière et grille plus dense. */
	body.single-ntpc_realisation .ntpc-project-gallery {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		width: min(100%, 72rem);
		margin-inline: auto;
		gap: 0.85rem;
	}

	body.single-ntpc_realisation .ntpc-project-gallery__item,
	body.single-ntpc_realisation .ntpc-project-gallery > a,
	body.single-ntpc_realisation .ntpc-project-gallery > a:first-child {
		grid-column: auto;
		grid-row: auto;
		aspect-ratio: 4 / 3;
		min-height: 0;
		background: #060707;
	}

	body.single-ntpc_realisation .ntpc-project-gallery__media,
	body.single-ntpc_realisation .ntpc-project-gallery img {
		object-fit: contain;
		object-position: center;
	}
}

@media (min-width: 48rem) and (max-width: 63.99rem) {
	.ntpc-realisations-grid-catalogue {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-auto-rows: 22rem;
	}
}

@media (max-width: 47.99rem) {
	.ntpc-page-hero-services::before {
		background-position: 70% center;
	}

	.ntpc-page-hero-services::after {
		background: linear-gradient(180deg, rgba(4, 5, 6, 0.45), rgba(4, 5, 6, 0.88) 68%, #080909 100%);
	}

	.ntpc-services-showcase .ntpc-service-showcase-copy,
	body.home .ntpc-services-showcase .ntpc-service-showcase-copy {
		max-height: 50%;
		overflow: visible;
		padding: 0.85rem 0.9rem 0.95rem;
	}

	.ntpc-services-showcase .ntpc-realisation-title {
		font-size: clamp(1.18rem, 5.7vw, 1.55rem) !important;
		line-height: 1.04;
	}

	.ntpc-services-showcase .ntpc-realisation-summary {
		display: -webkit-box !important;
		overflow: hidden;
		font-size: 0.83rem;
		line-height: 1.38;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3 !important;
	}

	.ntpc-services-showcase .ntpc-service-discover {
		display: inline-flex;
		margin-top: 0.5rem;
		font-size: 0.72rem;
	}
}

/* V21 — visuels métiers dédiés, carte locale et navigation inter-sections. */
.ntpc-services-showcase {
	background-image:
		linear-gradient(90deg, rgba(6, 8, 8, 0.97) 0%, rgba(6, 8, 8, 0.86) 48%, rgba(6, 8, 8, 0.68) 100%),
		radial-gradient(circle at 80% 34%, rgba(221, 177, 83, 0.17), transparent 34rem),
		url("../images/generated/service-reseaux-ntpc-v21.webp");
	background-position: center, center, 82% 52%;
	background-size: cover, cover, min(54rem, 66vw) auto;
	background-repeat: no-repeat;
}

.ntpc-realisations-featured,
.ntpc-realisations-catalogue {
	background-image:
		linear-gradient(90deg, rgba(6, 8, 8, 0.97), rgba(6, 8, 8, 0.83) 52%, rgba(6, 8, 8, 0.9)),
		url("../images/generated/service-salle-de-bains-ntpc-v21.webp");
	background-position: center, 88% 45%;
	background-size: cover, min(58rem, 65vw) auto;
	background-repeat: no-repeat;
}

.ntpc-menu-utilities {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.65rem;
	margin-top: auto;
	margin-bottom: 0.65rem;
}

.ntpc-menu-utility {
	position: relative;
	display: grid;
	grid-template-columns: 2.55rem minmax(0, 1fr);
	align-items: center;
	gap: 0.62rem;
	min-height: 3.55rem;
	padding: 0.48rem 0.72rem;
	overflow: hidden;
	color: rgba(255, 255, 255, 0.9);
	font-family: var(--ntpc-font-display);
	font-size: 0.78rem;
	font-weight: 720;
	line-height: 1.1;
	text-decoration: none;
	border: 1px solid rgba(242, 213, 142, 0.32);
	border-radius: 1.15rem;
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.11), rgba(214, 168, 79, 0.055));
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.13), 0 0.7rem 1.7rem rgba(0, 0, 0, 0.22);
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

.ntpc-menu-utility::before {
	position: absolute;
	top: 0;
	left: 12%;
	width: 55%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255, 240, 193, 0.82), transparent);
	content: "";
}

.ntpc-menu-utility-icon {
	display: grid;
	width: 2.55rem;
	height: 2.55rem;
	place-items: center;
	color: #17130a;
	border: 1px solid rgba(255, 240, 193, 0.7);
	border-radius: 50%;
	background: var(--ntpc-gradient-gold, linear-gradient(135deg, #f2d58e, #bb8d35));
	box-shadow: 0 0 1.2rem rgba(214, 168, 79, 0.2);
}

.ntpc-menu-utility-icon svg {
	width: 1.28rem;
	height: 1.28rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.65;
}

.ntpc-menu-utility:hover,
.ntpc-menu-utility:focus-visible {
	color: #fff;
	border-color: rgba(255, 231, 161, 0.75);
	background: linear-gradient(145deg, rgba(255, 255, 255, 0.15), rgba(214, 168, 79, 0.11));
}

.ntpc-zone-map {
	position: relative;
	justify-self: end;
	width: min(100%, 39rem);
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--ntpc-v18-edge, rgba(229, 195, 102, 0.3));
	border-radius: clamp(1.5rem, 3vw, 2.6rem);
	background: #080a0a;
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.14), 0 2rem 6rem rgba(0, 0, 0, 0.42);
}

.ntpc-zone-map img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 11;
	object-fit: cover;
}

.ntpc-zone-map figcaption {
	position: absolute;
	right: 0.8rem;
	bottom: 0.8rem;
	left: 0.8rem;
	display: flex;
	align-items: center;
	gap: 0.72rem;
	padding: 0.72rem 0.85rem;
	color: #fff;
	border: 1px solid rgba(245, 220, 153, 0.3);
	border-radius: 1rem;
	background: rgba(7, 9, 9, 0.72);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.12);
	-webkit-backdrop-filter: blur(18px) saturate(135%);
	backdrop-filter: blur(18px) saturate(135%);
}

.ntpc-zone-map figcaption > span {
	display: grid;
	flex: 0 0 2.55rem;
	width: 2.55rem;
	height: 2.55rem;
	place-items: center;
	color: #17130a;
	border-radius: 50%;
	background: var(--ntpc-gradient-gold, linear-gradient(135deg, #f2d58e, #bb8d35));
}

.ntpc-zone-map figcaption svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.8;
}

.ntpc-zone-map figcaption div {
	display: grid;
	gap: 0.15rem;
}

.ntpc-zone-map figcaption strong {
	font-size: 0.95rem;
}

.ntpc-zone-map figcaption small {
	color: rgba(255, 255, 255, 0.66);
}

.ntpc-scroll-cue,
.ntpc-section-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.62rem;
	min-height: 3rem;
	padding: 0.55rem 0.78rem 0.55rem 1rem;
	color: rgba(255, 255, 255, 0.88);
	font-size: 0.78rem;
	font-weight: 720;
	text-decoration: none;
	border: 1px solid rgba(245, 220, 153, 0.3);
	border-radius: 999px;
	background: rgba(10, 12, 12, 0.6);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.12), 0 0.8rem 2rem rgba(0, 0, 0, 0.26);
	-webkit-backdrop-filter: blur(18px) saturate(135%);
	backdrop-filter: blur(18px) saturate(135%);
}

.ntpc-scroll-cue {
	position: absolute;
	z-index: 3;
	right: var(--ntpc-layout-gutter);
	bottom: 1.35rem;
}

.ntpc-scroll-cue svg,
.ntpc-section-next svg {
	width: 2rem;
	height: 2rem;
	padding: 0.46rem;
	fill: none;
	stroke: #17130a;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	border-radius: 50%;
	background: var(--ntpc-gradient-gold, linear-gradient(135deg, #f2d58e, #bb8d35));
	box-shadow: 0 0 1.1rem rgba(214, 168, 79, 0.2);
}

.ntpc-section-next {
	width: max-content;
	margin: 1.2rem auto 0;
}

.ntpc-scroll-cue:hover,
.ntpc-scroll-cue:focus-visible,
.ntpc-section-next:hover,
.ntpc-section-next:focus-visible {
	color: #fff;
	border-color: rgba(255, 231, 161, 0.72);
	transform: translateY(-2px);
}

@media (max-width: 47.99rem) {
	.ntpc-services-showcase {
		background-image:
			linear-gradient(180deg, rgba(6, 8, 8, 0.92), rgba(6, 8, 8, 0.78) 58%, rgba(6, 8, 8, 0.96)),
			url("../images/generated/service-reseaux-ntpc-v21.webp");
		background-position: center, 64% 36%;
		background-size: cover, auto 78%;
	}

	.ntpc-realisations-featured,
	.ntpc-realisations-catalogue {
		background-position: center, 68% 40%;
		background-size: cover, auto 58rem;
	}

	.ntpc-menu-utilities {
		margin-bottom: 0.5rem;
	}

	.ntpc-menu-utility {
		grid-template-columns: 2.35rem minmax(0, 1fr);
		gap: 0.52rem;
		min-height: 3.2rem;
		padding: 0.4rem 0.55rem;
		font-size: 0.7rem;
	}

	.ntpc-menu-utility-icon {
		width: 2.35rem;
		height: 2.35rem;
	}

	.ntpc-public-page-hero-zone {
		padding-bottom: 5.8rem;
	}

	.ntpc-zone-map {
		justify-self: stretch;
		width: 100%;
	}

	.ntpc-zone-map figcaption {
		right: 0.55rem;
		bottom: 0.55rem;
		left: 0.55rem;
	}

	.ntpc-scroll-cue {
		right: 50%;
		bottom: max(0.85rem, env(safe-area-inset-bottom));
		transform: translateX(50%);
		white-space: nowrap;
	}

	.ntpc-scroll-cue:hover,
	.ntpc-scroll-cue:focus-visible {
		transform: translateX(50%) translateY(-2px);
	}
}

@media (max-width: 47.99rem) and (max-height: 45rem) {
	.ntpc-menu-utilities {
		gap: 0.45rem;
	}

	.ntpc-menu-utility {
		min-height: 2.9rem;
	}
}

@supports not ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.ntpc-menu-utility,
	.ntpc-zone-map figcaption,
	.ntpc-scroll-cue,
	.ntpc-section-next {
		background: #131514;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ntpc-scroll-cue,
	.ntpc-section-next {
		transition: none !important;
	}
}

/* V22 — cartes Services pleinement opaques. */
.ntpc-services-showcase .ntpc-service-showcase-card,
.ntpc-services-showcase .ntpc-service-showcase-card:first-child,
.ntpc-services-showcase .ntpc-service-showcase-card.is-active {
	opacity: 1;
	background: #0b0c0c;
}

.ntpc-services-showcase .ntpc-service-showcase-copy,
body.home .ntpc-services-showcase .ntpc-service-showcase-copy {
	background: #0b0c0c;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

@media (max-width: 47.99rem) {
	.ntpc-services-showcase .ntpc-service-showcase-card,
	.ntpc-services-showcase .ntpc-service-showcase-card:first-child,
	.ntpc-services-showcase .ntpc-service-showcase-card.is-active {
		opacity: 1;
	}
}

/* V23 — repères factuels des réalisations, hors premier écran. */
.ntpc-realisation-project-facts {
	background: linear-gradient(135deg, #0b0d0f 0%, #15150f 100%);
	border-top: 1px solid rgba(232, 191, 91, .28);
	border-bottom: 1px solid rgba(232, 191, 91, .18);
	padding: clamp(3.5rem, 8vw, 7rem) max(1.25rem, calc((100vw - 74rem) / 2));
	scroll-margin-top: 6rem;
}

.ntpc-realisation-project-facts__inner { max-width: 72rem; margin: 0 auto; }

.ntpc-realisation-project-facts h2 {
	max-width: 34rem;
	margin: .35rem 0 2rem;
	font-size: clamp(2rem, 4vw, 3.8rem);
	line-height: 1.04;
}

.ntpc-realisation-project-facts dl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
}

.ntpc-realisation-project-facts dl > div {
	min-height: 10.5rem;
	padding: 1.35rem;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 1.45rem;
	background: #101213;
	box-shadow: inset 0 1px rgba(255, 255, 255, .05), 0 1.5rem 3rem rgba(0, 0, 0, .2);
}

.ntpc-realisation-project-facts dt {
	margin-bottom: .85rem;
	color: #efcb67;
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .15em;
	text-transform: uppercase;
}

.ntpc-realisation-project-facts dd { margin: 0; color: rgba(255, 255, 255, .84); font-size: 1rem; line-height: 1.55; }

.ntpc-realisation-project-facts__links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }

.ntpc-realisation-project-facts__links a {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 2.75rem;
	padding: .55rem 1rem;
	border: 1px solid rgba(232, 191, 91, .45);
	border-radius: 99rem;
	background: #131510;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.ntpc-realisation-project-facts__links a:hover,
.ntpc-realisation-project-facts__links a:focus-visible { border-color: #f3d479; background: #232113; }

@media (max-width: 47.99rem) {
	.ntpc-realisation-project-facts { padding: 3rem 1.2rem; }
	.ntpc-realisation-project-facts dl { grid-template-columns: 1fr; }
	.ntpc-realisation-project-facts dl > div { min-height: 0; }
}

/* V24 — différer le rendu des sections situées sous le hero sans modifier leur apparence. */
@supports (content-visibility: auto) {
	body.home .ntpc-home-services,
	body.home .ntpc-realisations-featured,
	body.home .ntpc-home-trust,
	body.home .ntpc-google-reviews,
	body.home .ntpc-contact-band,
	body.home .ntpc-advice-featured {
		content-visibility: auto;
		contain-intrinsic-size: auto 56rem;
	}
}
