/* NTPC V15 — cadrage plein viewport des sections principales. */

@media (min-width: 48rem) {
	body.home .ntpc-home-services,
	body.home .ntpc-realisations-featured,
	body.home .ntpc-home-contact {
		box-sizing: border-box;
		min-height: calc(100svh - var(--ntpc-header-height, 5.1rem));
		min-height: calc(100dvh - var(--ntpc-header-height, 5.1rem));
	}

	body.home .ntpc-home-services,
	body.home .ntpc-home-services.ntpc-content-section {
		display: grid;
		align-content: center;
		padding: clamp(3.15rem, 5.6vh, 4.8rem) var(--ntpc-layout-gutter) clamp(0.8rem, 1.5vh, 1.25rem);
	}

	body.home .ntpc-home-contact,
	body.home .ntpc-home-contact.ntpc-content-section {
		position: relative;
		isolation: isolate;
		display: grid;
		place-items: center;
		overflow: hidden;
		background: #080909;
	}

	body.home .ntpc-home-contact::before,
	body.home .ntpc-home-contact::after {
		position: absolute;
		inset: 0;
		content: "";
		pointer-events: none;
	}

	body.home .ntpc-home-contact::before {
		z-index: 0;
		background-image: url("../images/generated/contact-camion-ntpc-v1.webp");
		background-position: center;
		background-size: cover;
		filter: saturate(0.88) contrast(1.04);
	}

	body.home .ntpc-home-contact::after {
		z-index: 0;
		background:
			linear-gradient(90deg, rgba(5, 6, 6, 0.97) 0%, rgba(5, 6, 6, 0.84) 36%, rgba(5, 6, 6, 0.46) 68%, rgba(5, 6, 6, 0.18) 100%),
			linear-gradient(180deg, rgba(5, 6, 6, 0.45), transparent 24%, transparent 76%, rgba(5, 6, 6, 0.72)),
			radial-gradient(circle at 78% 50%, transparent 0, rgba(5, 6, 6, 0.16) 45%, rgba(5, 6, 6, 0.58) 100%);
	}

	body.home .ntpc-home-contact > * {
		position: relative;
		z-index: 1;
	}

	body.home .ntpc-services-heading {
		width: min(100%, 94rem);
		margin-bottom: clamp(1rem, 2vh, 1.55rem);
	}

	body.home .ntpc-services-heading h2 {
		font-size: clamp(3.2rem, 5vw, 5.15rem);
	}

	body.home .ntpc-services-grid.ntpc-realisations-grid-featured {
		width: min(100%, 94rem);
		max-width: 94rem;
	}

	body.home .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
	body.home .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child {
		height: clamp(25rem, calc(100dvh - var(--ntpc-header-height, 5.1rem) - 11.5rem), 35rem);
		min-height: 0;
	}

	body.home .ntpc-realisations-featured,
	body.home .ntpc-realisations-featured.ntpc-realisations {
		display: grid;
		align-content: center;
		padding: clamp(1.65rem, 3.2vh, 2.8rem) var(--ntpc-layout-gutter);
	}

	body.home .ntpc-realisations-featured .ntpc-realisations-heading {
		width: min(100%, 94rem);
		max-width: 94rem;
		margin-bottom: clamp(0.8rem, 1.5vh, 1.2rem);
	}

	body.home .ntpc-realisations-featured .ntpc-section-title {
		font-size: clamp(3.15rem, 5vw, 5.1rem);
	}

	body.home .ntpc-realisations-featured .ntpc-realisations-controls {
		width: min(100%, 94rem);
		max-width: 94rem;
		min-height: 2.8rem;
		margin-bottom: clamp(0.8rem, 1.5vh, 1.15rem);
	}

	body.home .ntpc-realisations-featured .ntpc-realisations-grid-featured {
		width: min(100%, 94rem);
		max-width: 94rem;
	}

	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 {
		height: clamp(24rem, calc(100dvh - var(--ntpc-header-height, 5.1rem) - 15.5rem), 32rem);
		min-height: 0;
	}
}

@media (max-width: 47.99rem) {
	body.home .ntpc-home-services .ntpc-services-heading {
		margin-bottom: 0.9rem;
	}

	body.home .ntpc-home-services .ntpc-services-heading h2 {
		font-size: clamp(1.85rem, 8vw, 2.35rem);
	}
}

@supports not (height: 100dvh) {
	@media (min-width: 48rem) {
		body.home .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card,
		body.home .ntpc-services-grid.ntpc-realisations-grid-featured > .ntpc-service-showcase-card:first-child,
		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 {
			height: clamp(24rem, 54vw, 35rem);
		}
	}
}

/* Repères factuels : une source lisible commune aux visiteurs et aux moteurs. */
.ntpc-local-facts {
	position: relative;
	isolation: isolate;
	padding-block: clamp(2.5rem, 6vw, 5.5rem);
	background:
		radial-gradient(circle at 12% 18%, rgba(229, 195, 102, 0.1), transparent 28rem),
		#090a0a;
}

.ntpc-local-facts-panel {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 5vw, 5rem);
	width: min(100%, 88rem);
	margin-inline: auto;
	padding: clamp(1.5rem, 4vw, 3.5rem);
	border: 1px solid rgba(229, 195, 102, 0.28);
	border-radius: clamp(1.5rem, 3vw, 2.5rem);
	background: rgba(16, 17, 17, 0.92);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 1.5rem 4rem rgba(0, 0, 0, 0.28);
}

.ntpc-local-facts-copy h2 {
	max-width: 15ch;
	margin: 0.45rem 0 1rem;
	font-family: var(--ntpc-font-display);
	font-size: clamp(2rem, 4vw, 4rem);
	letter-spacing: -0.055em;
	line-height: 0.98;
}

.ntpc-local-facts-copy > p:last-child {
	max-width: 58ch;
	margin: 0;
	color: var(--ntpc-color-muted);
	font-size: clamp(1rem, 1.4vw, 1.16rem);
	line-height: 1.55;
}

.ntpc-local-facts-list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 1.5rem;
	overflow: hidden;
}

.ntpc-local-facts-list > div {
	min-height: 8rem;
	padding: 1.35rem;
	background: rgba(255, 255, 255, 0.025);
}

.ntpc-local-facts-list > div:nth-child(even) {
	border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.ntpc-local-facts-list > div:nth-child(n + 3) {
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.ntpc-local-facts-list dt {
	margin-bottom: 0.65rem;
	color: var(--ntpc-color-gold-light);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.ntpc-local-facts-list dd {
	margin: 0;
	color: #f5f3ed;
	line-height: 1.45;
}

.ntpc-local-facts-contact {
	display: flex;
	align-items: flex-start;
	flex-direction: column;
	gap: 0.4rem;
}

.ntpc-local-facts-contact a {
	text-decoration-color: rgba(229, 195, 102, 0.45);
	text-underline-offset: 0.22em;
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.ntpc-local-facts-panel {
		background: rgba(16, 17, 17, 0.72);
		-webkit-backdrop-filter: blur(22px) saturate(130%);
		backdrop-filter: blur(22px) saturate(130%);
	}
}

@media (max-width: 47.99rem) {
	.ntpc-local-facts {
		padding-block: 2rem;
	}

	.ntpc-local-facts-panel {
		grid-template-columns: 1fr;
		gap: 1.5rem;
		padding: 1.25rem;
		border-radius: 1.65rem;
	}

	.ntpc-local-facts-copy h2 {
		font-size: clamp(1.85rem, 9vw, 2.7rem);
	}

	.ntpc-local-facts-list {
		grid-template-columns: 1fr;
	}

	.ntpc-local-facts-list > div {
		min-height: 0;
	}

	.ntpc-local-facts-list > div:nth-child(even) {
		border-left: 0;
	}

	.ntpc-local-facts-list > div:nth-child(n + 2) {
		border-top: 1px solid rgba(255, 255, 255, 0.1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ntpc-local-facts,
	.ntpc-local-facts-panel {
		scroll-behavior: auto;
	}
}
