/* NTPC V10 — polish photographique, navigation et hiérarchie visuelle. */

:root {
	--ntpc-header-height: 5.1rem;
	--ntpc-v10-gold: #d6a84f;
	--ntpc-v10-gold-light: #f2d58e;
	--ntpc-v10-gold-soft: rgba(226, 181, 89, 0.28);
	--ntpc-v10-ink: #060708;
	--ntpc-v10-panel: rgba(8, 9, 11, 0.82);
	--ntpc-v10-edge: rgba(238, 197, 108, 0.34);
	--ntpc-v10-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

html {
	scroll-padding-top: calc(var(--ntpc-header-height) + 1.25rem);
}

/* En-tête stable : le mouvement vient de la lumière, jamais d'un saut de hauteur. */
.ntpc-site-header {
	--ntpc-header-progress: 0.12;
	--ntpc-brand-scale: 1;
	grid-template-columns: minmax(7.75rem, 1fr) minmax(34rem, 59rem) minmax(11rem, 1fr);
	height: var(--ntpc-header-height);
	min-height: var(--ntpc-header-height);
	padding-inline: clamp(1rem, 3vw, 3rem);
	background:
		linear-gradient(90deg, rgba(5, 6, 7, 0.96), rgba(15, 14, 12, 0.76) 48%, rgba(6, 7, 8, 0.94));
	border-bottom-color: rgba(231, 187, 96, 0.24);
	box-shadow: 0 0.65rem 2.4rem rgba(0, 0, 0, 0.2);
	transform: translate3d(0, 0, 0);
	transition: background-color 260ms ease, border-color 260ms ease, box-shadow 260ms ease;
}

.ntpc-site-header.is-scrolled,
.ntpc-site-header.is-over-realisations {
	height: var(--ntpc-header-height);
	min-height: var(--ntpc-header-height);
	background: rgba(6, 7, 8, 0.9);
	border-bottom-color: rgba(242, 213, 142, 0.46);
	box-shadow: 0 1.1rem 3.2rem rgba(0, 0, 0, 0.42), 0 0 1.8rem rgba(214, 168, 79, 0.08);
}

.ntpc-site-header::after {
	right: 3%;
	left: 3%;
	height: 1px;
	background: linear-gradient(90deg, var(--ntpc-v10-gold), var(--ntpc-v10-gold-light) 48%, transparent 94%);
	box-shadow: 0 0 1rem rgba(242, 213, 142, 0.34);
	opacity: 0.86;
	transform: scaleX(var(--ntpc-header-progress));
	transform-origin: left center;
	transition: transform 90ms linear;
}

.ntpc-brand {
	top: 0.58rem;
	left: clamp(1.2rem, 4.4vw, 4.5rem);
	width: clamp(6.2rem, 7.15vw, 7.1rem);
	filter: drop-shadow(0 0.65rem 1.1rem rgba(214, 168, 79, 0.25));
	transform: scale(var(--ntpc-brand-scale));
	transform-origin: left top;
	transition: filter 280ms ease, transform 280ms var(--ntpc-v10-ease);
}

.ntpc-site-header.is-scrolled .ntpc-brand {
	filter: drop-shadow(0 0.45rem 0.8rem rgba(214, 168, 79, 0.18));
	transform: scale(var(--ntpc-brand-scale));
}

.ntpc-site-header.is-over-realisations .ntpc-brand {
	transform: scale(var(--ntpc-brand-scale));
}

.ntpc-desktop-navigation {
	gap: 0.18rem;
	height: 3.45rem;
	padding: 0.28rem;
	border: 1px solid rgba(242, 213, 142, 0.18);
	border-radius: 999px;
	background: linear-gradient(130deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.018));
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.07), 0 0.7rem 2rem rgba(0, 0, 0, 0.17);
	font-size: clamp(0.9rem, 0.79rem + 0.14vw, 1.02rem);
}

.ntpc-desktop-navigation > a,
.ntpc-services-menu > summary {
	height: 2.82rem;
	min-height: 2.82rem;
	padding-inline: clamp(0.72rem, 1vw, 1rem);
	border: 1px solid transparent;
	border-radius: 999px;
	transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.ntpc-desktop-navigation > a:hover,
.ntpc-desktop-navigation > a:focus-visible,
.ntpc-desktop-navigation > a.is-current,
.ntpc-services-menu > summary:hover,
.ntpc-services-menu > summary:focus-visible,
.ntpc-services-menu.has-current-service > summary {
	color: #fff;
	border-color: rgba(242, 213, 142, 0.31);
	background: rgba(214, 168, 79, 0.1);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.07), 0 0 1rem rgba(214, 168, 79, 0.08);
}

.ntpc-desktop-navigation > a::after,
.ntpc-services-menu > summary::after {
	right: 22%;
	bottom: 0.22rem;
	left: 22%;
	transform-origin: center;
}

.ntpc-services-popover {
	top: calc(100% + 0.75rem);
	width: min(20rem, 82vw);
	padding: 0.55rem;
	border-color: rgba(242, 213, 142, 0.3);
	background: rgba(7, 8, 10, 0.96);
	box-shadow: 0 1.6rem 4.5rem rgba(0, 0, 0, 0.55), 0 0 2rem rgba(214, 168, 79, 0.08);
	transform: translateX(-50%) translateY(0.35rem);
	animation: ntpc-v10-popover-in 240ms var(--ntpc-v10-ease) both;
}

.ntpc-services-popover a::after {
	display: none !important;
}

.ntpc-services-popover a {
	height: auto;
	min-height: 3rem;
	padding-inline: 0.85rem;
	border: 1px solid transparent;
	border-radius: 0.85rem;
}

.ntpc-services-popover a:hover,
.ntpc-services-popover a:focus-visible,
.ntpc-services-popover a.is-current {
	border-color: rgba(242, 213, 142, 0.22);
	background: rgba(214, 168, 79, 0.1);
}

.ntpc-header-actions {
	gap: 0.65rem;
}

.ntpc-header-emergency,
.ntpc-round-control {
	position: relative;
	overflow: hidden;
	border-color: rgba(242, 213, 142, 0.38);
	background: linear-gradient(145deg, rgba(214, 168, 79, 0.1), rgba(255, 255, 255, 0.025));
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 0.65rem 1.5rem rgba(0, 0, 0, 0.16);
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms var(--ntpc-v10-ease);
}

.ntpc-header-emergency:hover,
.ntpc-header-emergency:focus-visible,
.ntpc-round-control:hover,
.ntpc-round-control:focus-visible {
	border-color: var(--ntpc-v10-gold-light);
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 0 1.7rem rgba(214, 168, 79, 0.18);
	transform: translateY(-1px);
}

.ntpc-round-control .ntpc-control-icon,
.ntpc-menu-lines {
	transform: none;
}

.ntpc-menu-toggle,
.ntpc-menu-close,
.ntpc-hero-stage .ntpc-carousel-arrow,
.ntpc-hero-stage .ntpc-carousel-dots button {
	touch-action: manipulation;
	-webkit-tap-highlight-color: transparent;
}

html.ntpc-menu-is-open,
body.ntpc-menu-is-open {
	overscroll-behavior: none;
}

.ntpc-menu-panel:focus,
.ntpc-menu-sidebar:focus,
.ntpc-menu-focus-anchor:focus {
	outline: none;
}

/* Slider : navigation manuelle dans une micro-capsule liquid glass. */
.ntpc-hero-stage .ntpc-carousel-rail {
	right: clamp(1.5rem, 3.25vw, 3.5rem);
	bottom: clamp(2.2rem, 4.2vh, 3.4rem);
	left: auto;
	width: auto;
	min-height: 0;
	padding: 0;
	background: transparent;
	border: 0;
	box-shadow: none;
}

.ntpc-hero-stage .ntpc-carousel-controls.ntpc-glass {
	grid-template-columns: 2.75rem auto 2.75rem;
	gap: 0;
	min-height: 2.9rem;
	padding: 0.08rem 0.18rem;
	overflow: hidden;
	border-color: rgba(242, 213, 142, 0.24);
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.075), rgba(8, 9, 10, 0.22) 48%, rgba(214, 168, 79, 0.055));
	box-shadow: inset 0 1px rgba(255, 255, 255, 0.13), 0 0.6rem 1.7rem rgba(0, 0, 0, 0.2);
	-webkit-backdrop-filter: blur(18px) saturate(145%);
	backdrop-filter: blur(18px) saturate(145%);
}

.ntpc-hero-stage .ntpc-carousel-arrow {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 44px;
	min-height: 44px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 1rem;
	transition: color 180ms ease, background-color 180ms ease, transform 180ms var(--ntpc-v10-ease);
}

.ntpc-hero-stage .ntpc-carousel-arrow:hover,
.ntpc-hero-stage .ntpc-carousel-arrow:focus-visible {
	color: var(--ntpc-v10-gold-light);
	background: rgba(214, 168, 79, 0.08);
}

.ntpc-hero-stage .ntpc-carousel-dots {
	gap: 0;
	min-width: 0;
}

.ntpc-hero-stage .ntpc-carousel-dots button {
	width: 1.5rem;
	height: 2.75rem;
}

.ntpc-hero-stage .ntpc-carousel-dots button::before {
	width: 0.36rem;
	height: 0.36rem;
	background: rgba(255, 255, 255, 0.58);
	border: 0;
	transform: none;
	transition: width 240ms var(--ntpc-v10-ease), background-color 180ms ease, box-shadow 180ms ease;
}

.ntpc-hero-stage .ntpc-carousel-dots button.is-active::before {
	width: 1.05rem;
	background: var(--ntpc-v10-gold-light);
	box-shadow: 0 0 0.55rem rgba(242, 213, 142, 0.42);
}

/* Heroes de page : image plein cadre, aucune forme circulaire héritée. */
.wp-site-blocks > main:has(> .ntpc-page-hero),
.wp-site-blocks > main:has(> .ntpc-realisation-hero) {
	padding-top: 0;
}

.ntpc-page-hero {
	--ntpc-page-hero-position: center center;
	--ntpc-page-hero-mobile-position: var(--ntpc-page-hero-position);
	position: relative;
	min-height: clamp(39rem, 80svh, 54rem);
	padding: calc(var(--ntpc-header-height) + clamp(2.5rem, 5vw, 5rem)) var(--ntpc-layout-gutter) clamp(3rem, 7vw, 6rem);
	background: #08090a;
	background-image: none;
}

.ntpc-page-hero::before {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: auto;
	height: auto;
	aspect-ratio: auto;
	border: 0;
	border-radius: 0;
	background-color: #0a0b0d;
	background-image: var(--ntpc-page-hero-image, none);
	background-position: var(--ntpc-page-hero-position);
	background-repeat: no-repeat;
	background-size: cover;
	box-shadow: none;
	transform: translate3d(0, var(--ntpc-page-depth, 0), 0) scale(1.045);
	transform-origin: center;
}

.ntpc-page-hero::after {
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	width: auto;
	height: auto;
	aspect-ratio: auto;
	border: 0;
	border-radius: 0;
	background:
		linear-gradient(90deg, rgba(3, 4, 6, 0.94) 0%, rgba(3, 4, 6, 0.72) 35%, rgba(3, 4, 6, 0.18) 72%, rgba(3, 4, 6, 0.28) 100%),
		linear-gradient(0deg, #08090b 0%, rgba(8, 9, 11, 0.72) 9%, transparent 43%),
		linear-gradient(180deg, rgba(3, 4, 5, 0.36), transparent 28%);
	box-shadow: inset 0 -1px rgba(242, 213, 142, 0.28);
}

.ntpc-page-hero-plomberie {
	--ntpc-page-hero-image: url("../images/generated/realisation-reseau-plomberie-v2.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/realisation-reseau-plomberie-mobile-v2.webp");
	--ntpc-page-hero-position: 58% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-depannage {
	--ntpc-page-hero-image: url("../images/generated/hero-depannage-v4.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/hero-depannage-mobile-v4.webp");
	--ntpc-page-hero-position: 57% center;
	--ntpc-page-hero-mobile-position: 54% center;
}

.ntpc-page-hero-chauffage {
	--ntpc-page-hero-image: url("../images/generated/hero-chauffage-v4.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/hero-chauffage-mobile-v4.webp");
	--ntpc-page-hero-position: 58% center;
	--ntpc-page-hero-mobile-position: 57% center;
}

.ntpc-page-hero-entretien {
	--ntpc-page-hero-image: url("../images/generated/realisation-chauffage-circuit-v2.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/realisation-chauffage-circuit-mobile-v2.webp");
	--ntpc-page-hero-position: 58% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-salle-de-bains {
	--ntpc-page-hero-image: url("../images/generated/hero-salle-de-bains-v4.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/hero-salle-de-bains-mobile-v4.webp");
	--ntpc-page-hero-position: 56% center;
	--ntpc-page-hero-mobile-position: 60% center;
}

.ntpc-page-hero-entreprise {
	--ntpc-page-hero-image: url("../images/generated/entreprise-savoir-faire-v1.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/entreprise-savoir-faire-mobile-v1.webp");
	--ntpc-page-hero-position: 62% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-contact {
	--ntpc-page-hero-image: url("../images/generated/realisation-depannage-vasque-v2.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/realisation-depannage-vasque-mobile-v2.webp");
	--ntpc-page-hero-position: 64% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-avis {
	--ntpc-page-hero-image: url("../images/generated/realisation-salle-de-bains-complete-v1.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/realisation-salle-de-bains-complete-mobile-v1.webp");
	--ntpc-page-hero-position: 58% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-zones {
	--ntpc-page-hero-image: url("../images/generated/realisation-chauffe-eau-v2.webp");
	--ntpc-page-hero-mobile-image: url("../images/generated/realisation-chauffe-eau-mobile-v2.webp");
	--ntpc-page-hero-position: 58% center;
	--ntpc-page-hero-mobile-position: center;
}

.ntpc-page-hero-orbit,
.ntpc-page-hero-emblem {
	display: none !important;
}

.ntpc-page-hero .ntpc-page-hero-grid {
	display: flex;
	align-items: flex-end;
	width: min(100%, 94rem);
	min-height: clamp(26rem, 56svh, 38rem);
	margin-inline: auto;
}

.ntpc-page-hero .ntpc-page-hero-copy {
	position: relative;
	width: min(100%, 40rem);
	max-width: 40rem;
	margin: 0;
	padding: clamp(1.3rem, 3vw, 2.3rem) clamp(1.25rem, 3.4vw, 2.65rem);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.13);
	border-left-color: rgba(242, 213, 142, 0.72);
	border-radius: 0.25rem 1.65rem 1.65rem 0.25rem;
	background: linear-gradient(115deg, rgba(6, 7, 9, 0.86), rgba(9, 10, 12, 0.57));
	box-shadow: inset 1px 0 rgba(242, 213, 142, 0.18), 0 1.7rem 4.5rem rgba(0, 0, 0, 0.28);
}

.ntpc-page-hero .ntpc-page-hero-copy::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 1px;
	height: 100%;
	background: linear-gradient(180deg, transparent, var(--ntpc-v10-gold-light) 26%, var(--ntpc-v10-gold) 72%, transparent);
	box-shadow: 0 0 1rem rgba(242, 213, 142, 0.42);
	content: "";
}

.ntpc-page-hero h1,
.ntpc-seeded-page > h1,
.ntpc-realisation-hero-copy h1 {
	max-width: 14ch;
	font-size: clamp(2.55rem, 4.5vw, 4.9rem) !important;
	line-height: 0.99;
	letter-spacing: -0.052em;
	text-wrap: balance;
}

.ntpc-page-hero .ntpc-page-lead {
	max-width: 38rem;
	font-size: clamp(1rem, 1.1vw, 1.13rem);
	line-height: 1.6;
}

.ntpc-page-hero-photo {
	display: none !important;
}

@supports ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.ntpc-page-hero .ntpc-page-hero-copy {
		background: linear-gradient(115deg, rgba(6, 7, 9, 0.76), rgba(9, 10, 12, 0.42));
		-webkit-backdrop-filter: blur(1rem) saturate(112%);
		backdrop-filter: blur(1rem) saturate(112%);
	}
}

/* Cartes métier et entreprise : profondeur localisée, proportions plus éditoriales. */
.ntpc-service-card,
.ntpc-service-orbit-card,
.ntpc-company-card {
	--ntpc-pointer-x: 50%;
	--ntpc-pointer-y: 50%;
	transition: transform 300ms var(--ntpc-v10-ease), border-color 220ms ease, box-shadow 300ms ease;
}

.ntpc-service-card::before,
.ntpc-company-card::before {
	position: absolute;
	z-index: 0;
	inset: 0;
	background: radial-gradient(23rem circle at var(--ntpc-pointer-x) var(--ntpc-pointer-y), rgba(242, 213, 142, 0.105), transparent 58%);
	content: "";
	opacity: 0;
	pointer-events: none;
	transition: opacity 260ms ease;
}

.ntpc-service-card:hover::before,
.ntpc-service-card:focus-within::before,
.ntpc-company-card:hover::before,
.ntpc-company-card:focus-within::before {
	opacity: 1;
}

.ntpc-service-card > *,
.ntpc-company-card > * {
	position: relative;
	z-index: 1;
}

.ntpc-home-company {
	max-width: none;
}

.ntpc-home-company .ntpc-company-card {
	grid-template-columns: minmax(0, 1.65fr) minmax(20rem, 0.85fr);
	max-width: 100rem;
	margin-inline: auto;
	padding: clamp(0.65rem, 1.4vw, 1rem);
	gap: clamp(1.4rem, 4vw, 4rem);
	border-radius: clamp(1.25rem, 2.6vw, 2.4rem);
}

.ntpc-home-company .ntpc-company-media {
	height: 100%;
	min-height: clamp(25rem, 42vw, 38rem);
	border: 0;
	border-radius: clamp(0.9rem, 2vw, 1.8rem);
}

.ntpc-home-company .ntpc-company-media img {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	object-fit: cover;
	object-position: center;
}

.ntpc-home-company .ntpc-company-card > div:last-child {
	padding: clamp(1.2rem, 2.4vw, 2.5rem) clamp(0.6rem, 2vw, 1.7rem) clamp(1.2rem, 2.4vw, 2.5rem) 0;
}

/* Le catalogue montre d'abord la photo ; le texte dispose de sa propre surface. */
.ntpc-realisations-grid-catalogue > .ntpc-realisation-card {
	min-height: 0;
	aspect-ratio: auto;
	background: linear-gradient(155deg, #151411, #090a0b);
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-card-link {
	display: grid;
	grid-template: auto 1fr / 1fr;
	height: 100%;
	min-height: 0;
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-media {
	grid-area: 1 / 1;
	min-height: 0;
	aspect-ratio: 16 / 10;
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-media::after {
	background: linear-gradient(180deg, transparent 52%, rgba(7, 8, 9, 0.52) 100%);
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-media picture {
	inset: -0.55rem;
	width: calc(100% + 1.1rem);
	height: calc(100% + 1.1rem);
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-copy {
	position: relative;
	display: flex;
	flex-direction: column;
	grid-area: 2 / 1;
	align-self: stretch;
	min-height: 14rem;
	margin: 0;
	padding: 1.25rem 1.25rem 1.45rem;
	border: 0;
	border-top: 1px solid rgba(242, 213, 142, 0.18);
	border-radius: 0;
	background: linear-gradient(145deg, rgba(21, 20, 17, 0.98), rgba(8, 9, 10, 0.98));
	box-shadow: none;
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-title {
	font-size: clamp(1.22rem, 1.7vw, 1.6rem);
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-summary {
	padding-right: 2rem;
}

.ntpc-realisations-grid-catalogue .ntpc-realisation-card-arrow {
	right: 1.15rem;
	bottom: 1.2rem;
}

.ntpc-project-experience {
	width: min(100% - 2rem, 90rem);
}

.ntpc-realisation-story {
	width: min(100% - 2rem, 76rem);
}

/* Boutons : les pages restent respirantes, les actions finales gardent leur force. */
.ntpc-page-hero .ntpc-button-row {
	display: flex;
	width: auto;
	flex-wrap: wrap;
}

.ntpc-page-hero .ntpc-button {
	width: auto;
	max-width: 100%;
}

@media (max-width: 78rem) {
	.ntpc-site-header,
	.ntpc-site-header.is-scrolled,
	.ntpc-site-header.is-over-realisations {
		grid-template-columns: 1fr auto;
		height: var(--ntpc-header-height);
		min-height: var(--ntpc-header-height);
	}

	.ntpc-brand {
		left: max(1rem, env(safe-area-inset-left));
	}

	.ntpc-menu-panel {
		inset: 0;
		width: 100%;
		height: 100%;
		overflow: hidden;
		overflow: clip;
		transition: none;
	}

	.ntpc-menu-backdrop {
		background: rgba(2, 3, 4, 0.48);
		opacity: 0;
		touch-action: none;
		transition: opacity 220ms ease;
		-webkit-backdrop-filter: blur(10px) saturate(88%);
		backdrop-filter: blur(10px) saturate(88%);
	}

	.ntpc-menu-sidebar {
		top: max(0.625rem, env(safe-area-inset-top));
		right: max(0.625rem, env(safe-area-inset-right));
		bottom: max(0.625rem, env(safe-area-inset-bottom));
		left: auto;
		width: min(22.5rem, calc(100vw - 1.25rem - env(safe-area-inset-left) - env(safe-area-inset-right)));
		height: auto;
		max-height: none;
		padding: 0.85rem;
		overflow-x: hidden;
		overflow-x: clip;
		overflow-y: auto;
		border: 1px solid rgba(242, 213, 142, 0.42);
		border-radius: 1.75rem;
		background:
			radial-gradient(circle at 12% 6%, rgba(242, 213, 142, 0.14), transparent 14rem),
			linear-gradient(145deg, rgba(29, 26, 21, 0.76), rgba(7, 8, 9, 0.82) 56%, rgba(5, 6, 7, 0.9));
		box-shadow:
			inset 0 1px rgba(255, 255, 255, 0.15),
			inset 0 0 0 1px rgba(255, 255, 255, 0.025),
			-1rem 1.4rem 4rem rgba(0, 0, 0, 0.5),
			0 0 2.3rem rgba(214, 168, 79, 0.1);
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translate3d(1.25rem, 0, 0) scale(0.985);
		transform-origin: right center;
		transition:
			opacity 240ms ease,
			transform 340ms var(--ntpc-v10-ease),
			visibility 0s linear 340ms;
		will-change: transform, opacity;
		-webkit-backdrop-filter: blur(24px) saturate(145%);
		backdrop-filter: blur(24px) saturate(145%);
	}

	.ntpc-menu-sidebar::before {
		top: 0;
		right: 1.75rem;
		bottom: auto;
		left: 1.75rem;
		width: auto;
		height: 1px;
		background: linear-gradient(90deg, transparent, rgba(255, 238, 190, 0.9), transparent);
		box-shadow: 0 0 1.2rem rgba(242, 213, 142, 0.38);
		opacity: 0.8;
		transform: scaleX(0.5);
		transform-origin: center;
		transition: transform 340ms var(--ntpc-v10-ease);
	}

	.ntpc-menu-panel[open].is-open .ntpc-menu-sidebar {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translate3d(0, 0, 0) scale(1);
		transition-delay: 0s;
	}

	.ntpc-menu-panel[open].is-open .ntpc-menu-sidebar::before {
		transform: scaleX(1);
	}

	.ntpc-menu-panel[open]:not(.is-open) .ntpc-menu-backdrop {
		opacity: 0;
	}

	.ntpc-menu-panel[open].is-open .ntpc-menu-backdrop {
		opacity: 1;
	}

	.ntpc-menu-panel:not(.is-open) .ntpc-menu-sidebar nav a {
		opacity: 1;
		transform: none;
		transition-delay: 0ms;
	}

	.ntpc-menu-sidebar-heading {
		flex: 0 0 auto;
		padding: 0.05rem 0.05rem 0.75rem;
		border-bottom-color: rgba(242, 213, 142, 0.16);
	}

	.ntpc-menu-sidebar-heading p {
		display: flex;
		align-items: center;
		gap: 0.55rem;
		color: rgba(255, 255, 255, 0.84);
		font-size: 0.72rem;
		letter-spacing: 0.17em;
	}

	.ntpc-menu-sidebar-heading p::before {
		width: 0.42rem;
		height: 0.42rem;
		background: var(--ntpc-v10-gold-light);
		border-radius: 50%;
		box-shadow: 0 0 0.8rem rgba(242, 213, 142, 0.62);
		content: "";
	}

	.ntpc-menu-close {
		width: 2.75rem;
		height: 2.75rem;
		min-width: 44px;
		min-height: 44px;
		font-size: 1.65rem;
		background: linear-gradient(145deg, rgba(255, 255, 255, 0.075), rgba(214, 168, 79, 0.055));
		border-color: rgba(242, 213, 142, 0.3);
		box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 0.5rem 1.4rem rgba(0, 0, 0, 0.2);
	}

	.ntpc-menu-sidebar nav {
		gap: 0.22rem;
		margin-top: 0.72rem;
		padding-bottom: 0.72rem;
	}

	.ntpc-menu-sidebar nav a {
		min-height: 3rem;
		padding: 0.58rem 0.9rem;
		border-color: rgba(255, 255, 255, 0.065);
		border-radius: 0.92rem;
		background: linear-gradient(105deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
		opacity: 1;
		transform: none;
		transition: color 180ms ease, border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
		transition-delay: 0ms;
	}

	.ntpc-menu-sidebar nav a:hover,
	.ntpc-menu-sidebar nav a:focus-visible,
	.ntpc-menu-sidebar nav a.is-current {
		border-color: rgba(242, 213, 142, 0.5);
		background: linear-gradient(100deg, rgba(214, 168, 79, 0.14), rgba(214, 168, 79, 0.025));
	}

	.ntpc-menu-call {
		min-height: 3.15rem;
		margin-top: auto;
		border: 1px solid rgba(255, 239, 193, 0.5);
		box-shadow: inset 0 1px rgba(255, 255, 255, 0.34), 0 0.8rem 2rem rgba(214, 168, 79, 0.18);
	}

	.ntpc-realisations-grid-catalogue {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 47.99rem) and (max-height: 47rem) {
	.ntpc-menu-sidebar {
		padding: 0.68rem;
	}

	.ntpc-menu-sidebar nav {
		gap: 0.12rem;
		margin-top: 0.5rem;
		padding-bottom: 0.5rem;
	}

	.ntpc-menu-sidebar nav a {
		min-height: 2.65rem;
		padding-block: 0.42rem;
	}

	.ntpc-menu-call {
		min-height: 2.85rem;
	}
}

@media (max-width: 62rem) {
	.ntpc-home-company .ntpc-company-card {
		grid-template-columns: 1fr;
		padding: 0.65rem;
		gap: 0;
	}

	.ntpc-home-company .ntpc-company-media {
		min-height: clamp(22rem, 62vw, 34rem);
	}

	.ntpc-home-company .ntpc-company-card > div:last-child {
		padding: clamp(1.35rem, 4vw, 2.4rem);
	}
}

@media (max-width: 47.99rem) {
	:root {
		--ntpc-header-height: calc(4.75rem + env(safe-area-inset-top));
	}

	.ntpc-site-header {
		padding-top: env(safe-area-inset-top);
		padding-right: max(0.8rem, env(safe-area-inset-right));
		padding-left: max(0.8rem, env(safe-area-inset-left));
	}

	.ntpc-brand {
		top: calc(0.48rem + env(safe-area-inset-top));
		width: clamp(5.6rem, 25vw, 6.45rem);
	}

	.ntpc-round-control {
		width: 2.9rem;
		height: 2.9rem;
	}

	.ntpc-hero-stage .ntpc-carousel-rail {
		right: 50%;
		bottom: calc(9.65rem + env(safe-area-inset-bottom));
		transform: translateX(50%);
	}

	.ntpc-hero-stage .ntpc-carousel-controls.ntpc-glass {
		grid-template-columns: 2.75rem auto 2.75rem;
		max-width: calc(100vw - 4rem);
	}

	.ntpc-hero-actions {
		width: min(calc(100% - 1.5rem), 26rem);
		margin-inline: auto;
	}

	.ntpc-primary-cta {
		width: 100%;
		min-height: 3.65rem;
		padding-inline: 1rem;
	}

	.ntpc-page-hero {
		min-height: max(42rem, 88svh);
		padding: calc(var(--ntpc-header-height) + 2rem) max(1rem, env(safe-area-inset-right)) calc(2.2rem + env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
	}

	.ntpc-page-hero::before {
		background-image: var(--ntpc-page-hero-mobile-image, var(--ntpc-page-hero-image, none));
		background-position: var(--ntpc-page-hero-mobile-position);
		transform: translate3d(0, var(--ntpc-page-depth, 0), 0) scale(1.055);
	}

	.ntpc-page-hero::after {
		background:
			linear-gradient(0deg, rgba(4, 5, 7, 0.98) 3%, rgba(4, 5, 7, 0.78) 36%, rgba(4, 5, 7, 0.2) 72%),
			linear-gradient(90deg, rgba(3, 4, 6, 0.44), transparent 68%),
			linear-gradient(180deg, rgba(3, 4, 5, 0.38), transparent 24%);
	}

	.ntpc-page-hero .ntpc-page-hero-grid {
		min-height: calc(max(42rem, 88svh) - var(--ntpc-header-height) - 4.2rem);
	}

	.ntpc-page-hero .ntpc-page-hero-copy {
		width: 100%;
		max-width: 34rem;
		margin-top: auto;
		padding: 1.15rem;
		border-radius: 0.2rem 1.25rem 1.25rem 0.2rem;
	}

	.ntpc-page-hero h1,
	.ntpc-seeded-page > h1,
	.ntpc-realisation-hero-copy h1 {
		font-size: clamp(2.25rem, 10.5vw, 3.55rem) !important;
	}

	.ntpc-page-hero .ntpc-button-row {
		gap: 0.65rem;
	}

	.ntpc-page-hero .ntpc-button {
		width: auto;
		min-height: 3.1rem;
		padding-inline: 1rem;
	}

	.ntpc-page-hero .ntpc-button-primary {
		width: min(100%, 22rem);
	}

	.ntpc-home-company .ntpc-company-card {
		grid-template-columns: 1fr;
		padding: 0.55rem;
		gap: 0;
	}

	.ntpc-home-company .ntpc-company-media {
		min-height: 22rem;
		border-radius: 1rem;
	}

	.ntpc-home-company .ntpc-company-card > div:last-child {
		padding: 1.35rem 0.8rem 1.55rem;
	}

	.ntpc-realisations-grid-catalogue {
		grid-template-columns: 1fr;
	}

	.ntpc-realisations-grid-catalogue > .ntpc-realisation-card {
		min-height: 0;
		aspect-ratio: auto;
	}

	.ntpc-realisations-grid-catalogue .ntpc-realisation-media {
		aspect-ratio: 16 / 10;
	}

	.ntpc-realisations-grid-catalogue .ntpc-realisation-copy {
		min-height: 12.5rem;
	}
}

@media (hover: none) and (pointer: coarse) {
	.ntpc-hero-stage .ntpc-hero-slide img,
	.ntpc-hero-stage .ntpc-hero-slide.is-active img {
		transform: scale(1.01);
		transition: none;
	}
}

@supports not ((-webkit-backdrop-filter: blur(1rem)) or (backdrop-filter: blur(1rem))) {
	.ntpc-site-header,
	.ntpc-menu-sidebar,
	.ntpc-page-hero .ntpc-page-hero-copy {
		background: #090a0b;
	}

	.ntpc-hero-stage .ntpc-carousel-controls.ntpc-glass {
		background: rgba(9, 10, 11, 0.92);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.ntpc-menu-backdrop {
		background: rgba(2, 3, 4, 0.88);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ntpc-site-header::after,
	.ntpc-brand,
	.ntpc-services-popover,
	.ntpc-menu-panel,
	.ntpc-menu-sidebar,
	.ntpc-menu-sidebar nav a,
	.ntpc-page-hero::before,
	.ntpc-service-card,
	.ntpc-company-card,
	.ntpc-realisation-card,
	.ntpc-realisation-media img,
	.ntpc-hero-stage .ntpc-carousel-arrow,
	.ntpc-hero-stage .ntpc-carousel-dots button::before {
		animation: none !important;
		transition: none !important;
		transform: none !important;
	}
}

.ntpc-save-data .ntpc-page-hero::before,
.ntpc-save-data .ntpc-service-card,
.ntpc-save-data .ntpc-company-card,
.ntpc-save-data .ntpc-realisation-media img {
	transform: none !important;
	transition: none !important;
}

.ntpc-save-data .ntpc-site-header::after,
.ntpc-save-data .ntpc-brand {
	animation: none !important;
	transition: none !important;
	transform: none !important;
}

.ntpc-save-data .ntpc-menu-backdrop {
	background: rgba(2, 3, 4, 0.88);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

.ntpc-save-data .ntpc-menu-sidebar nav a {
	animation: none !important;
	transition: none !important;
}

.ntpc-save-data .ntpc-hero-stage .ntpc-carousel-controls.ntpc-glass {
	background: rgba(9, 10, 11, 0.86);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}

@media (forced-colors: active) {
	.ntpc-site-header,
	.ntpc-desktop-navigation,
	.ntpc-page-hero .ntpc-page-hero-copy,
	.ntpc-realisation-card,
	.ntpc-company-card,
	.ntpc-menu-sidebar {
		border: 2px solid CanvasText;
	}

	.ntpc-hero-stage .ntpc-carousel-dots button::before {
		background: CanvasText;
	}

	.ntpc-hero-stage .ntpc-carousel-dots button.is-active::before {
		background: Highlight;
		box-shadow: none;
	}

	.ntpc-site-header::after,
	.ntpc-page-hero .ntpc-page-hero-copy::before,
	.ntpc-service-card::before,
	.ntpc-company-card::before {
		display: none;
	}
}

@keyframes ntpc-v10-popover-in {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(0.7rem) scale(0.98);
	}

	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0.35rem) scale(1);
	}
}
