/*
Theme Name: Néologis
Description: Thème enfant de Hello Elementor pour le site Néologis (intégration Logia). Les couleurs, typos et boutons viennent des globaux Elementor (Kit) ; ce fichier ne gère que ce qui ne se règle pas proprement dans Elementor. Ne pas modifier assets/css/socle.css (socle de l'agence) : surcharger ici.
Author: Logia
Template: hello-elementor
Version: 1.0.0
Text Domain: neologis
*/

:root {
	--nav-height: 120px;
	--nav-gap: 10px;
}

html {
	overflow-x: hidden;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* ==========================================================================
   Variables du socle branchées sur le Kit
   ========================================================================== */
:root {
	--pb-accent: var(--e-global-color-primary, #D5B15F);
	--pb-accent-survol: var(--e-global-color-accent, #B8862C);
	--pb-texte: var(--e-global-color-text, #352D11);
	--pb-pastille-survol: #F7EFDF;
	--pb-pastille-active: #F7EFDF;
	--nl-or: var(--e-global-color-primary, #D5B15F);
	--nl-brun: var(--e-global-color-secondary, #352D11);
	--nl-or-fonce: var(--e-global-color-accent, #B8862C);
	--nl-header-h: 157px;
}
html { scroll-padding-top: calc(var(--nav-height) + var(--nav-gap)); }
p.elementor-heading-title { margin: 0; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.nl-blanc { color: #fff; }
.nl-or { color: var(--nl-or); }

/* ==========================================================================
   Header : barre blanche opaque collée en haut, plus fine au scroll (.scrollHeader posée par site.js)
   ========================================================================== */
.elementor-location-header {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 999;
}
.nl-header.e-con {
	--min-height: var(--nl-header-h);
	min-height: var(--nl-header-h);
	padding-left: 450px !important;
	transition: min-height .3s ease, padding .3s ease;
	box-shadow: 0 0 0 rgba(0, 0, 0, 0);
}
.nl-header.scrollHeader.e-con {
	--nl-header-h: 104px;
	box-shadow: 0 6px 24px rgba(53, 45, 17, .08);
}
/* Logo rond : déborde sous la barre (disque blanc de la maquette). */
.nl-header .nl-header-logo {
	position: absolute !important;
	left: 75px;
	top: 29px;
	width: 210px;
	z-index: 3;
	transition: width .3s ease, top .3s ease;
}
.nl-header .nl-header-logo.elementor-widget-theme-site-logo img, .nl-header .nl-header-logo img { width: 100% !important; max-width: none !important; height: auto !important; display: block; }
.nl-header.scrollHeader .nl-header-logo { width: 128px; top: 10px; }
/* Ligne haute : réseaux + téléphone, au-dessus du menu, à droite. */
.nl-header .nl-header-haut {
	position: absolute !important;
	right: 170px;
	top: 19px;
	transition: top .3s ease, opacity .3s ease;
}
.nl-header.scrollHeader .nl-header-haut { top: 8px; }
.nl-header-tel .elementor-icon-list-item { padding: 0 !important; white-space: nowrap; }
.pb-reseaux.e-con, .nl-header-haut.e-con { width: auto !important; flex: 0 0 auto; --width: auto; }
.nl-header-tel .elementor-icon-list-icon { display: none; }
/* Menu + onglet : hauteur de l'onglet (73 px). */
.nl-header .nl-header-menu.e-con { --min-height: 73px; min-height: 73px; padding: 0 !important; }
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li { position: relative; }
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li + li::before {
	content: "";
	position: absolute;
	left: -1px;
	top: 50%;
	width: 2px;
	height: 29.6px;
	margin-top: -14.8px;
	background: var(--nl-or);
}
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li.nl-menu-contact,
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li.pb-menu-action { display: none !important; }
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.elementor-item-active,
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li:has(.current-menu-item > a:not(.elementor-item-anchor)) > a.elementor-item {
	font-weight: 500 !important;
	letter-spacing: .004em;
}
/* Flèche de « Nos prestations » : chevron fin vers la droite, or. */
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a .sub-arrow {
	margin-inline-start: 15px;
	color: var(--nl-or);
	fill: var(--nl-or);
	font-size: 0;
}
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a .sub-arrow::after {
	content: "";
	display: block;
	width: 10px;
	height: 21px;
	background: var(--nl-or);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 21'%3E%3Cpath d='M1.2 1.2 8.6 10.5 1.2 19.8' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 21'%3E%3Cpath d='M1.2 1.2 8.6 10.5 1.2 19.8' fill='none' stroke='%23000' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .3s ease;
}
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a .sub-arrow svg { display: none; }
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a.highlighted .sub-arrow::after { transform: rotate(90deg); }
.nl-nav .elementor-nav-menu--dropdown { min-width: 280px; }
/* Onglet doré « Nous contacter » : forme de la maquette (courbe en S à gauche), collée au bord droit. */
.nl-onglet { align-self: stretch; }
.nl-onglet .elementor-button {
	position: relative;
	isolation: isolate;
	width: 401px;
	height: 73px;
	padding: 0 0 0 105px !important;
	justify-content: flex-start;
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	color: #fff !important;
	font-family: "REM", sans-serif;
	font-weight: 400;
	font-style: italic;
	font-size: 1.8125rem;
	line-height: 1.28;
	letter-spacing: .002em;
}
.nl-onglet .elementor-button::before {
	content: "";
	position: absolute;
	inset: 0 -110px 0 0;
	z-index: -1;
	background: var(--nl-or);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 511.6 73.6' preserveAspectRatio='none'%3E%3Cpath d='M0 73.6C24 66 45 52 60 30 75 10 110 0 153 0H511.6V73.6Z'/%3E%3C/svg%3E") left center / 100% 100% no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 511.6 73.6' preserveAspectRatio='none'%3E%3Cpath d='M0 73.6C24 66 45 52 60 30 75 10 110 0 153 0H511.6V73.6Z'/%3E%3C/svg%3E") left center / 100% 100% no-repeat;
	transition: background-color .3s ease;
}
.nl-onglet .elementor-button:hover::before,
.nl-onglet .elementor-button:focus-visible::before { background: var(--nl-brun); }
.nl-onglet .elementor-button-icon { display: none; }
.nl-header.e-con { overflow: visible !important; }
.nl-header .nl-header-menu { align-self: flex-end; }
/* Burger (tablette, mobile) */
.nl-burger .elementor-menu-toggle { border-radius: 0; }

/* Laptop (1025-1599) : la maquette à environ 75 %. */
@media (max-width: 1599px) {
	.nl-header.e-con { --nl-header-h: 118px; padding-left: 300px !important; }
	.nl-header.scrollHeader.e-con { --nl-header-h: 88px; }
	.nl-header .nl-header-logo { left: 48px; top: 20px; width: 158px; }
	.nl-header.scrollHeader .nl-header-logo { width: 104px; top: 8px; }
	.nl-header .nl-header-haut { right: 110px; top: 12px; }
	.nl-header.scrollHeader .nl-header-haut { top: 5px; }
	.nl-header .nl-header-menu.e-con { min-height: 55px; }
	.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li + li::before { height: 22px; margin-top: -11px; }
	.nl-nav .elementor-nav-menu--main > .elementor-nav-menu > li > a .sub-arrow::after { width: 8px; height: 16px; }
	.nl-onglet .elementor-button { width: 300px; height: 55px; padding-left: 100px !important; font-size: 1.375rem; }
	.nl-header .pb-reseaux .elementor-icon { font-size: 1.375rem; }
	.nl-header .pb-reseaux .elementor-icon svg { width: 22px; height: 22px; }
}
@media (max-width: 1280px) {
	.nl-header.e-con { padding-left: 230px !important; }
	.nl-header .nl-header-logo { left: 32px; width: 140px; }
	.nl-nav { --e-nav-menu-horizontal-menu-item-margin: 28px; }
	.nl-nav .elementor-nav-menu--main .elementor-item { font-size: 1.1875rem !important; }
	.nl-onglet .elementor-button { width: 250px; padding-left: 78px !important; font-size: 1.25rem; }
}
/* Tablette et mobile : barre avec logo, onglet et burger. */
@media (max-width: 1024px) {
	.nl-header.e-con { --nl-header-h: 96px; padding-left: 150px !important; padding-right: 20px !important; gap: 16px; }
	.nl-header.scrollHeader.e-con { --nl-header-h: 76px; }
	.nl-header .nl-header-logo { left: 24px; top: 12px; width: 112px; }
	.nl-header.scrollHeader .nl-header-logo { width: 84px; top: 6px; }
	.nl-header .nl-header-haut { display: none; }
	.nl-header .nl-header-menu.e-con { min-height: 96px; justify-content: flex-end; width: auto; flex-grow: 1; }
	.nl-header.scrollHeader .nl-header-menu.e-con { min-height: 76px; }
	.nl-onglet { align-self: center; }
	.nl-onglet .elementor-button { width: auto; height: 52px; padding: 0 28px 0 64px !important; font-size: 1.25rem; }
	.nl-onglet .elementor-button::before { inset: 0 0 0 0; }
	.nl-burger { align-self: center; }
	.nl-header.e-con { align-items: center; }
}
@media (max-width: 767px) {
	.nl-header.e-con { --nl-header-h: 76px; padding-left: 100px !important; padding-right: 16px !important; gap: 10px; }
	.nl-header.scrollHeader.e-con { --nl-header-h: 64px; }
	.nl-header .nl-header-logo { left: 14px; top: 8px; width: 84px; }
	.nl-header.scrollHeader .nl-header-logo { width: 60px; top: 4px; }
	.nl-header .nl-header-menu.e-con { min-height: 76px; }
	.nl-header.scrollHeader .nl-header-menu.e-con { min-height: 64px; }
	.nl-onglet .elementor-button { height: 46px; padding: 0 14px 0 36px !important; }
	.nl-onglet .elementor-button-icon { display: inline-flex; font-size: 1.25rem; }
}

/* Hero plein écran : --qa-ecran (recette, ?__qa_ecran=1080) simule la hauteur d'écran pendant les captures pleine page. */
.e-con.pb-hero--ecran {
	min-height: calc(var(--qa-ecran, 100vh) - var(--pb-hero-retrait, var(--wp-admin--admin-bar--height, 0px)));
	min-height: calc(var(--qa-ecran, 100svh) - var(--pb-hero-retrait, var(--wp-admin--admin-bar--height, 0px)));
}

/* ==========================================================================
   Composants
   ========================================================================== */
.nl-flex-fixe.e-con { flex: 0 0 auto !important; width: auto !important; --width: auto; }
.nl-flex-reste.e-con { flex: 1 1 0% !important; min-width: 0; width: auto !important; --width: auto; }

/* Surtitre « I Texte » : la barre « I » dorée (blanche sur une bande dorée). */
.nl-surtitre .elementor-heading-title::before {
	content: "I";
	margin-right: .3em;
	color: var(--nl-or);
}
.nl-surtitre--i-blanc .elementor-heading-title::before { color: #fff; }

/* Hero de l'accueil : cadrage de chaque photo du diaporama, points de pagination. */
.nl-hero { overflow: hidden; }
.nl-hero--accueil .elementor-background-slideshow__slide[data-swiper-slide-index="0"] .elementor-background-slideshow__slide__image { background-position: 5.6% 85%; }
.nl-hero--accueil .elementor-background-slideshow__slide[data-swiper-slide-index="3"] .elementor-background-slideshow__slide__image { background-position: 50% 83%; }
.nl-hero-points {
	position: absolute;
	left: 50%;
	bottom: 63px;
	z-index: 3;
	display: flex;
	gap: 30px;
	transform: translateX(-50%);
}
.nl-hero-points button {
	width: 23px;
	height: 23px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	cursor: pointer;
	transition: background-color .3s ease, transform .3s ease;
}
.nl-hero-points button:hover { transform: scale(1.15); }
.nl-hero-points button[aria-current="true"] { background: var(--nl-or); }
@media (max-width: 1599px) {
	.nl-hero-points { bottom: 44px; gap: 22px; }
	.nl-hero-points button { width: 17px; height: 17px; }
}
@media (max-width: 767px) {
	.nl-hero-points { bottom: 28px; gap: 16px; }
	.nl-hero-points button { width: 14px; height: 14px; }
}

/* Labels : logos à leur taille de maquette (≈ 180 px de haut au plus). */
.nl-carte-label .nl-label-img img { width: auto !important; max-width: 100%; max-height: 180px; height: auto; }
.nl-carte-label .nl-label-logo.e-con { justify-content: flex-end; }
@media (max-width: 1599px) { .nl-carte-label .nl-label-img img { max-height: 135px; } }
@media (max-width: 767px) { .nl-carte-label .nl-label-img img { max-height: 110px; } }

/* Carrousel d'avis : flèches en chevrons de part et d'autre des cartes (maquette), points dessous. */
.nl-carrousel-cotes { --arrow-size: 37px; }
@media (min-width: 1025px) {
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button {
		position: absolute !important;
		top: calc(50% - 30px) !important;
		bottom: auto !important;
		width: 37px !important;
		height: 127px !important;
		margin: 0 !important;
		padding: 0 !important;
		transform: translateY(-50%) !important;
		background: transparent !important;
		border: 0 !important;
		color: var(--nl-or) !important;
	}
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button-prev { left: -94px !important; right: auto !important; }
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button-next { right: -94px !important; left: auto !important; }
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button svg { width: 37px !important; height: 127px !important; fill: none !important; }
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button:hover { color: var(--nl-brun) !important; }
	.nl-carrousel-cotes .swiper-pagination { justify-content: center; }
}
@media (min-width: 1025px) and (max-width: 1599px) {
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button-prev { left: -64px !important; }
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button-next { right: -64px !important; }
	.nl-carrousel-cotes.elementor-widget-loop-carousel .elementor-swiper-button svg { width: 28px !important; height: 96px !important; }
}
.nl-carte-avis .nl-avis-texte { width: 100%; }

/* Bloc CTA : point médian entre téléphone et e-mail. */
.nl-coordonnees .elementor-icon-list-item + .elementor-icon-list-item::before {
	content: "•";
	margin-right: .3em;
	color: var(--nl-or);
}
.nl-coordonnees .elementor-icon-list-icon { display: none; }

/* Pied de page */
.nl-footer-ligne .elementor-icon-list-icon,
.nl-footer-adresse .elementor-icon-list-icon,
.nl-footer-contact .elementor-icon-list-icon,
.nl-adresse-lignes .elementor-icon-list-icon { display: none; }
.nl-footer-bas .pb-copyright .pb-footer-lien + .pb-footer-lien::before {
	content: "-";
	margin: 0 .3em;
	color: var(--nl-or);
}
.nl-footer-bas .nl-copyright { margin-left: .3em; }
.nl-credits a { color: inherit; text-decoration: none; }
.nl-credits a:hover { color: var(--nl-or); }
.nl-credits .nl-or a:hover { color: #fff; }
.nl-footer-bas .pb-copyright .elementor-heading-title { white-space: nowrap; }
@media (max-width: 767px) { .nl-footer-bas .pb-copyright .elementor-heading-title { white-space: normal; } }
.nl-footer-menu .elementor-nav-menu--dropdown .elementor-item { line-height: 1.38 !important; }

/* ==========================================================================
   Prestations
   ========================================================================== */
/* Fil d'Ariane du hero (Rank Math) : or, page courante en blanc. */
.nl-ariane, .nl-ariane .rank-math-breadcrumb p {
	margin: 0;
	font-family: "REM", sans-serif;
	font-weight: 300;
	font-size: 1.8125rem;
	line-height: 1.28;
	color: var(--nl-or);
}
.nl-ariane a { color: var(--nl-or); text-decoration: none; }
.nl-ariane a:hover { color: #fff; }
.nl-ariane .last { color: #fff; }
.nl-ariane .separator { margin: 0 .15em; }
@media (max-width: 1599px) { .nl-ariane, .nl-ariane .rank-math-breadcrumb p { font-size: 1.375rem; } }
@media (max-width: 1024px) { .nl-ariane, .nl-ariane .rank-math-breadcrumb p { font-size: 1.125rem; } }
@media (max-width: 767px) { .nl-ariane, .nl-ariane .rank-math-breadcrumb p { font-size: 1rem; } }

/* Liste numérotée des atouts : numéro REM ExtraBold blanc, texte en capitales. */
.nl-liste-num {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: nl-num;
	display: grid;
	gap: 17px;
}
.nl-liste-num li {
	counter-increment: nl-num;
	display: grid;
	grid-template-columns: 40px 1fr;
	column-gap: 12px;
	align-items: start;
	font-family: "REM", sans-serif;
	font-weight: 500;
	font-size: 1.875rem;
	line-height: 1.2;
	letter-spacing: .03em;
	text-transform: uppercase;
	color: #13100D;
	padding-top: 9px;
}
.nl-liste-num li::before {
	content: counter(nl-num) ".";
	margin-top: -9px;
	text-align: right;
	font-weight: 800;
	font-size: 2.5rem;
	line-height: 1.25;
	letter-spacing: 0;
	color: #fff;
}
@media (max-width: 1599px) {
	.nl-liste-num { gap: 13px; }
	.nl-liste-num li { font-size: 1.375rem; grid-template-columns: 32px 1fr; }
	.nl-liste-num li::before { font-size: 1.875rem; }
}
@media (max-width: 767px) {
	.nl-liste-num li { font-size: 1.125rem; grid-template-columns: 28px 1fr; }
	.nl-liste-num li::before { font-size: 1.5rem; }
}

/* Étapes : 5 colonnes, numéro or au-dessus du libellé. */
.nl-etapes {
	list-style: none;
	margin: 0;
	padding: 0 0 0 55px;
	counter-reset: nl-etape;
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 40px;
	width: 100%;
}
.nl-etapes li {
	counter-increment: nl-etape;
	font-family: "REM", sans-serif;
	font-weight: 500;
	font-size: 1.875rem;
	line-height: 1.12;
	text-transform: uppercase;
	color: #13100D;
}
.nl-etapes li::before {
	content: counter(nl-etape) ".";
	display: block;
	margin-bottom: 7px;
	font-weight: 800;
	font-size: 2.5rem;
	line-height: 1.25;
	color: var(--nl-or);
}
@media (max-width: 1599px) {
	.nl-etapes { padding-left: 0; gap: 28px; }
	.nl-etapes li { font-size: 1.375rem; }
	.nl-etapes li::before { font-size: 1.875rem; }
}
@media (max-width: 1024px) {
	.nl-etapes { grid-template-columns: repeat(3, 1fr); row-gap: 40px; }
	.nl-etapes li br { display: none; }
}
@media (max-width: 767px) {
	.nl-etapes { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.nl-etapes li { font-size: 1.125rem; }
	.nl-etapes li::before { font-size: 1.5rem; }
}

/* Carrousel des projets : carte centrale de 932 px, voisines visibles jusqu'aux bords de l'écran (coupe franche
   de la maquette), flèches en chevrons près des bords de l'écran, points en anneaux blancs. */
.nl-carrousel-projets .swiper { overflow: visible; }
.nl-carrousel-projets .nl-real-img img {
	box-shadow: 1px 3px 50px rgba(0, 0, 0, .4);
}
.nl-carrousel-projets .swiper-slide { transition: opacity .4s ease; }
@media (min-width: 1025px) {
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button {
		position: absolute !important;
		top: 310px !important;
		bottom: auto !important;
		width: 37px !important;
		height: 127px !important;
		margin: 0 !important;
		padding: 0 !important;
		transform: translateY(-50%) !important;
		background: transparent !important;
		border: 0 !important;
		color: var(--nl-or) !important;
		z-index: 5;
	}
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button-prev { left: calc(50% - 50vw + 50px) !important; right: auto !important; }
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button-next { right: calc(50% - 50vw + 53px) !important; left: auto !important; }
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button svg { width: 37px !important; height: 127px !important; fill: none !important; }
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button:hover { color: #fff !important; }
}
@media (min-width: 1025px) and (max-width: 1599px) {
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button { top: 240px !important; }
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button svg { width: 28px !important; height: 96px !important; }
}
.nl-carrousel-projets .swiper-pagination { justify-content: center; margin-top: 73px; }
.nl-carrousel-projets .swiper-pagination-bullet {
	width: 23px !important;
	height: 23px !important;
	margin: 0 15px !important;
	border: 1px solid #fff;
	background: transparent !important;
	opacity: 1 !important;
	border-radius: 50% !important;
}
.nl-carrousel-projets .swiper-pagination-bullet-active { background: #fff !important; }
@media (max-width: 1599px) {
	.nl-carrousel-projets .swiper-pagination { margin-top: 52px; }
	.nl-carrousel-projets .swiper-pagination-bullet { width: 17px !important; height: 17px !important; margin: 0 10px !important; }
}

/* Bande de photos pleine largeur posée sur le bas de la bande dorée */
.nl-bande-photos.e-con { position: relative; }
/* Titres plus larges que leur colonne dans la maquette (boîtes Figma qui débordent) : la largeur max du widget l'emporte en 1920. */
@media (min-width: 1600px) {
	.nl-entete .elementor-widget-heading.elementor-widget__width-initial { max-width: none !important; min-width: var(--container-widget-width); }
}

/* Pages légales et plan du site */
.nl-texte-legal h2 { margin: 2.2em 0 .6em; font-family: "Mevac", serif; font-weight: 400; font-size: 2.5rem; line-height: 1; color: var(--nl-or); }
.nl-texte-legal h2:first-child { margin-top: 0; }
.nl-texte-legal p { margin: 0 0 1em; }
.nl-plan-liste ul { margin: 0; padding-left: 1.2em; }
.nl-plan-liste li { margin: .35em 0; font-size: 1.3125rem; }
.nl-plan-liste a { color: var(--nl-brun); }
.nl-plan-liste a:hover { color: var(--nl-or); }
@media (max-width: 1599px) { .nl-texte-legal h2 { font-size: 2rem; } .nl-plan-liste li { font-size: 1.125rem; } }
/* Page 404 : sous le coin arrondi du hero, la couleur du pied de page (pas de bloc CTA). */
body.error404 { background: var(--nl-or); }
body.error404 .elementor-location-header + * , body.error404 main { background: transparent; }

/* Liste numérotée de 10 points ou plus : colonne des numéros élargie (« 10. »). */
.nl-liste-num:has(li:nth-child(10)) li { grid-template-columns: 60px 1fr; }
@media (max-width: 1599px) { .nl-liste-num:has(li:nth-child(10)) li { grid-template-columns: 46px 1fr; } }
.pb-insecable { white-space: nowrap; }
.nl-footer-bas .pb-copyright .pb-footer-lien { display: flex; align-items: baseline; }
/* Ligne du bas du pied de page en desktop étroit : elle passe sur deux lignes plutôt que de sortir de l'écran. */
@media (max-width: 1440px) {
	.nl-footer-bas.e-con { flex-direction: column !important; align-items: center !important; }
	.nl-footer-bas .nl-credits.e-con { align-items: center !important; }
	.nl-footer-bas .nl-credits .elementor-heading-title { text-align: center; }
}
/* Onglet « Nous contacter » : page courante (texte sombre, maquette de la page Contact). */
.nl-page-nous-contacter .nl-onglet .elementor-button { color: #13100D !important; }
.nl-page-nous-contacter .nl-onglet .elementor-button:hover { color: #fff !important; }

/* Header de 1025 à 1280 px : « Nous contacter » en icône seule dans l'onglet (le texte reste lu), menu sur une ligne. */
.nl-nav .elementor-nav-menu--main > .elementor-nav-menu { flex-wrap: nowrap; }
.nl-nav .elementor-nav-menu--main .elementor-item { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1280px) {
	.nl-onglet .elementor-button { width: 150px; padding: 0 0 0 64px !important; }
	.nl-onglet .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.nl-onglet .elementor-button-icon { display: inline-flex; font-size: 1.5rem; }
	.nl-onglet .elementor-button-content-wrapper { gap: 0; }
	.nl-header .nl-header-haut { right: 40px; }
}
/* Hero de l'accueil sur un écran bas (portable 1366 × 695) : le contenu reste dans l'écran. */
@media (min-width: 1025px) and (max-height: 780px) {
	.nl-hero--accueil.e-con { --padding-bottom: 96px !important; --padding-top: 40px !important; }
}
/* Vignettes d'essence : le cadre coupe l'image avec le même rayon (règle des images arrondies). */
.nl-essence-img { overflow: hidden; isolation: isolate; }
.nl-qui-grille-essences .e-loop-item:nth-of-type(1) .nl-essence-img { border-top-left-radius: 110px; }
.nl-qui-grille-essences .e-loop-item:nth-of-type(6) .nl-essence-img { border-bottom-right-radius: 110px; }
@media (max-width: 1599px) {
	.nl-qui-grille-essences .e-loop-item:nth-of-type(1) .nl-essence-img { border-top-left-radius: 82px; }
	.nl-qui-grille-essences .e-loop-item:nth-of-type(6) .nl-essence-img { border-bottom-right-radius: 82px; }
}
.nl-essence-img img { border-radius: inherit !important; }
@media (min-width: 1025px) and (max-width: 1150px) {
	.nl-header.e-con { padding-left: 200px !important; }
	.nl-header .nl-header-logo { width: 128px; }
	.nl-nav { --e-nav-menu-horizontal-menu-item-margin: 22px; }
	.nl-nav .elementor-nav-menu--main .elementor-item { font-size: 1.125rem !important; }
}
/* Carrousel des projets : fondu des bords (choix du client), du bord de l'écran au bord de la carte centrale. */
.nl-carrousel-projets { --pb-demi-contenu: 466px; }
@media (max-width: 1599px) { .nl-carrousel-projets { --pb-demi-contenu: 350px; } }
/* Projets : flèches blanches (posées sur des photos qui s'effacent dans l'or), points centrés sous la carte. */
@media (min-width: 1025px) {
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button { color: #fff !important; filter: drop-shadow(0 1px 6px rgba(0, 0, 0, .35)); }
	.nl-carrousel-projets.elementor-widget-loop-carousel .elementor-swiper-button:hover { color: var(--nl-brun) !important; }
}
.nl-carrousel-projets .swiper-pagination,
.nl-carrousel-cotes .swiper-pagination { left: 0 !important; right: 0 !important; width: 100% !important; justify-content: center !important; }
.nl-carrousel-projets.pb-carrousel-nav.elementor-widget .swiper-pagination,
.nl-carrousel-cotes.pb-carrousel-nav.elementor-widget .swiper-pagination { left: 0 !important; right: 0 !important; width: 100% !important; justify-content: center !important; }
/* Tablette et mobile : les photos posées en absolu en desktop (fustier des labels, portrait de la citation, intérieur
   de « Notre différence ») reviennent dans le flux, au-dessus ou au-dessous du texte, sans le recouvrir. */
@media (max-width: 1024px) {
	.nl-labels .nl-photo-fustier.elementor-absolute,
	.nl-citation .nl-portrait.elementor-absolute,
	.nl-bloc-fonce .nl-photo-interieur.elementor-absolute {
		position: relative !important;
		inset: auto !important;
		left: auto !important; right: auto !important; top: auto !important; bottom: auto !important;
		width: 100% !important;
		max-width: 100% !important;
		transform: none !important;
	}
	.nl-labels .nl-photo-fustier { order: -1; margin: 0 0 48px !important; }
	.nl-citation .nl-portrait { order: 2; margin: 40px 0 0 !important; }
	.nl-citation.e-con { flex-direction: column !important; padding-bottom: 0 !important; }
	.nl-citation .nl-portrait img { height: 560px !important; object-position: 50% 30%; }
}
@media (max-width: 767px) {
	.nl-labels .nl-photo-fustier { margin-bottom: 32px !important; }
	.nl-citation .nl-portrait img { height: 420px !important; }
}

/* ---- Passe 1 des inspecteurs ---- */
/* Carte d'Europe : calée sur le bord gauche du contenu (maquette x 130-131), pas sur le bord de la section. */
@media (min-width: 1600px) { .nl-europe .nl-carte-europe { left: calc(max(20px, 50% - 815px) - 14px) !important; top: var(--nl-carte-y, 110px) !important; } }
@media (min-width: 1025px) and (max-width: 1599px) { .nl-europe .nl-carte-europe { left: calc(max(40px, 50% - 640px) - 10px) !important; top: var(--nl-carte-y-laptop, 82px) !important; } }
/* Hero des pages en tablette et mobile : voile renforcé et fil d'Ariane blanc lisible sur une photo claire. */
@media (max-width: 1024px) {
	.nl-hero-page .nl-ariane, .nl-hero-page .nl-ariane a, .nl-hero-page .nl-ariane .rank-math-breadcrumb p { color: #fff !important; text-shadow: 0 1px 4px rgba(0, 0, 0, .55); }
	.nl-hero-page h1, .nl-hero-page .nl-surtitre .elementor-heading-title { text-shadow: 0 1px 10px rgba(0, 0, 0, .35); }
	.nl-hero-page.e-con::before { background-image: linear-gradient(90deg, rgba(19,16,13,.5) 0%, rgba(19,16,13,.25) 70%, rgba(19,16,13,.15) 100%) !important; }
	.nl-hero-page.e-con::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(0deg, rgba(19,16,13,.55), transparent); pointer-events: none; z-index: 1; }
	.nl-hero-page.e-con > .e-con-inner { position: relative; z-index: 2; }
	.nl-hero-page .nl-ariane { z-index: 3 !important; }
}
/* Points du diaporama : liseré sombre pour rester visibles sur une photo claire. */
.nl-hero-points button { box-shadow: 0 0 0 2px rgba(0, 0, 0, .22), 0 1px 4px rgba(0, 0, 0, .3); }
/* Flèches rondes des avis (tablette, mobile) : fond or, picto blanc ; au survol, inversion. */
.nl-carrousel-avis { --pb-nav-fond: var(--nl-or); --pb-nav-couleur: #fff; --pb-nav-texte-survol: var(--nl-or); }
@media (max-width: 1024px) { .nl-carrousel-avis.pb-carrousel-nav .elementor-swiper-button:is(:hover, :focus-visible) { background: #fff !important; box-shadow: inset 0 0 0 1px var(--nl-or); } }
/* Ombre des photos du carrousel des projets : place sous les photos dans la zone masquée (fondu). */
.nl-carrousel-projets.pb-carrousel-fondu .swiper { padding-bottom: 60px !important; margin-bottom: -52px !important; }
/* Pied de page mobile : liens de la ligne du bas empilés, sans séparateur. */
@media (max-width: 767px) {
	.nl-footer-bas .pb-copyright.e-con { flex-direction: column !important; gap: 6px !important; }
	.nl-footer-bas .pb-copyright .pb-footer-lien + .pb-footer-lien::before { content: none; }
	.nl-footer-bas .nl-copyright { margin-left: 0; }
}
@media (max-width: 1024px) { .nl-europe .nl-carte-europe { display: none !important; } }

/* ---- Passe 1 des inspecteurs (suite) ---- */
/* Fil d'Ariane du hero : ombre portée discrète à toutes les tailles (or sur photo claire). */
.nl-ariane { text-shadow: 0 1px 4px rgba(0, 0, 0, .55); }
/* Bloc CTA en mobile : téléphone et e-mail empilés, sans puce en début de ligne. */
@media (max-width: 767px) {
	.nl-coordonnees .elementor-icon-list-items { flex-direction: column; align-items: center; gap: 6px; }
	.nl-coordonnees .elementor-icon-list-item + .elementor-icon-list-item::before { content: none; }
}
/* Bloc CTA, variante « fond blanc » (champ cta_variante) : poche blanche découpée dans l'or, textes foncés. */
.nl-cta--blanc .nl-cta.e-con { background-image: none !important; background-color: #fff !important; }
.nl-cta--blanc .nl-cta.e-con::before { display: none !important; }
.nl-cta--blanc .nl-cta .nl-surtitre .elementor-heading-title,
.nl-cta--blanc .nl-cta .elementor-widget-text-editor,
.nl-cta--blanc .nl-cta .nl-cta-bloc2 .elementor-heading-title { color: #13100D !important; }
.nl-cta--blanc .nl-cta .nl-blanc { color: #13100D; }
.nl-cta--blanc .nl-coordonnees .elementor-icon-list-text { color: var(--nl-or) !important; }
.nl-cta--blanc .nl-coordonnees .elementor-icon-list-item:hover .elementor-icon-list-text { color: var(--nl-brun) !important; }
/* Accueil : intro et filigrane en tablette et mobile, sceau au-dessus de la photo, voile du hero, carte d'Europe. */
@media (max-width: 1024px) {
	.nl-intro br { display: none; }
	.nl-sceau { z-index: 5 !important; }
	.nl-hero--accueil.e-con::before { background-image: linear-gradient(90deg, rgba(18,16,13,.5), rgba(18,16,13,.15) 80%) !important; }
	.nl-hero--accueil h1, .nl-hero--accueil .nl-surtitre .elementor-heading-title { text-shadow: 0 1px 10px rgba(0, 0, 0, .35); }
	.nl-univers .nl-symbole { width: 300px !important; max-width: 300px !important; opacity: .55; }
}
@media (max-width: 900px) { .nl-univers .nl-symbole { display: none !important; } }
@media (max-width: 767px) {
	.nl-hero--accueil .elementor-background-slideshow__slide[data-swiper-slide-index="0"] .elementor-background-slideshow__slide__image { background-position: 58% 85%; }
}
body.home .nl-europe { --nl-carte-y: 76px; --nl-carte-y-laptop: 57px; }
/* Navigation des carrousels en tablette et mobile : flèches de part et d'autre des points, centrées, contrastées. */
@media (max-width: 1024px) {
	.nl-carrousel-projets.pb-carrousel-nav, .nl-carrousel-avis.pb-carrousel-nav { --pb-nav-fond: #fff; --pb-nav-couleur: var(--nl-brun); --pb-nav-texte-survol: #fff; }
	.nl-carrousel-avis.pb-carrousel-nav { --pb-nav-fond: var(--nl-or); --pb-nav-couleur: #fff; --pb-nav-texte-survol: var(--nl-or); }
	.nl-carrousel-projets.pb-carrousel-nav.elementor-widget .elementor-swiper-button-prev,
	.nl-carrousel-avis.pb-carrousel-nav.elementor-widget .elementor-swiper-button-prev { left: calc(50% - var(--pb-nav-taille) - 64px) !important; }
	.nl-carrousel-projets.pb-carrousel-nav.elementor-widget .elementor-swiper-button-next,
	.nl-carrousel-avis.pb-carrousel-nav.elementor-widget .elementor-swiper-button-next { left: calc(50% + 64px) !important; }
	.nl-carrousel-projets .elementor-swiper-button svg, .nl-carrousel-avis .elementor-swiper-button svg { width: 14px !important; height: 30px !important; fill: none !important; }
	.nl-carrousel-projets.pb-carrousel-nav .elementor-swiper-button { background: #fff !important; color: var(--nl-brun) !important; }
	.nl-carte-avis.e-con { min-height: 420px !important; }
}
/* Points des avis : inactifs plus visibles ; points des projets plus bas sous les photos (desktop). */
.nl-carrousel-avis { --pb-nav-point: rgba(213, 177, 95, .45); }
@media (min-width: 1025px) { .nl-carrousel-projets.pb-carrousel-nav.elementor-widget { padding-bottom: 118px !important; } }
.nl-google.e-con { --padding-top: 24px !important; }
/* ---- Passe 1 (géobiologie, contact) ---- */
/* Hero en tablette et mobile : tout le contenu au-dessus du dégradé bas (hero en largeur pleine compris). */
@media (max-width: 1024px) {
	.nl-hero-page.e-con > .e-con, .nl-hero-page.e-con > .elementor-element { position: relative; z-index: 2; }
	.nl-hero-page.e-con-full .nl-ariane { left: 40px !important; }
}
@media (max-width: 767px) { .nl-hero-page.e-con-full .nl-ariane { left: 20px !important; } }
/* Coordonnées du CTA : puce de taille normale, centrée entre les deux ; empilées dès la tablette portrait. */
.nl-coordonnees .elementor-icon-list-item + .elementor-icon-list-item::before { font-size: 1em; margin: 0 .45em 0 0; }
.nl-coordonnees .elementor-icon-list-items { column-gap: 0 !important; }
@media (max-width: 1024px) {
	.nl-coordonnees .elementor-icon-list-items { flex-direction: column; align-items: center; gap: 6px; }
	.nl-coordonnees .elementor-icon-list-item + .elementor-icon-list-item::before { content: none; }
}
/* ---- Passe 2 ---- */
/* Points des avis : actif or, inactifs or à 60 % (les flèches blanches ne doivent pas les effacer). */
.nl-carrousel-avis { --pb-nav-point: rgba(213, 177, 95, .6); }
.nl-carrousel-avis .swiper-pagination-bullet-active { background: var(--nl-or) !important; }
/* Fil d'Ariane du hero : ombre plus marquée au-dessus de 1024 px (or sur photo claire). */
@media (min-width: 1025px) { .nl-ariane { text-shadow: 0 1px 6px rgba(19, 16, 13, .75); } }
/* Hero des pages en mobile : voile plus dense sous le titre. */
@media (max-width: 767px) {
	.nl-hero-page.e-con::before { background-image: linear-gradient(180deg, rgba(19,16,13,.55) 15%, rgba(19,16,13,.25) 65%, rgba(19,16,13,.2) 100%) !important; }
	.nl-hero-page h1 { text-shadow: 0 2px 14px rgba(0, 0, 0, .5); }
}
/* Photo du bloc canadien : coin haut-droit arrondi en tablette et mobile. */
@media (max-width: 1024px) { .nl-canadiens .nl-photo img { border-top-right-radius: 80px !important; } }
@media (max-width: 767px) { .nl-canadiens .nl-photo img { border-top-right-radius: 56px !important; } }
/* Cartes d'avis en mobile : texte sous les étoiles, sans grand vide. */
@media (max-width: 767px) { .nl-carte-avis.e-con { min-height: 0 !important; } .nl-carte-avis > .e-con { justify-content: flex-start !important; } }
/* Étapes en mobile : un nombre impair d'étapes, la dernière sur toute la largeur. */
@media (max-width: 767px) { .nl-etapes li:last-child:nth-child(odd) { grid-column: 1 / -1; } }
