/*
Theme Name:   Nexient Child
Theme URI:    https://nexient.fr
Description:  Thème enfant de Hello Elementor pour la refonte Nexient V2.
              Le système de design vit dans les Variables et Classes Elementor v4 ;
              ce fichier porte ce qu'Elementor ne sait pas exprimer, plus l'en-tête et le pied de page.
Author:       SE Technology
Template:     hello-elementor
Version:      2.0.0
Text Domain:  nexient-child
*/

/* Charte : NEXIENT BRAND BOARD V1 (17/02/2026) — Poppins, #EF7E01, noir, blanc, coins 4 px.
   Univers : publications du client — nuit bleutée, halo, verre liquide orange.
   Elementor rend une Classe globale sous son libellé (.nx-h2), pas sous son identifiant (g-nx-h2). */

/* ── 1. Poppins auto-hébergée (RGPD). Licence OFL : assets/fonts/OFL.txt ─────── */
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/poppins-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 500; font-display: swap; src: url("assets/fonts/poppins-latin-500-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/poppins-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Poppins"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/poppins-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Polices des éditeurs partenaires, téléchargées seulement sur leurs pages. */
@font-face { font-family: "Barlow"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/barlow-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/barlow-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow Semi Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("assets/fonts/barlow-semi-condensed-latin-600-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/inter-latin-400-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/inter-latin-700-normal.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* ── 2. Socle ─────────────────────────────────────────────────────────────── */
html {
	background: var(--nx-night);
	-webkit-text-size-adjust: 100%;
	scroll-padding-top: 6rem;
}
body {
	background: var(--nx-night);
	color: var(--nx-on-dark-muted);
	font-family: var(--nx-font-sans);
	font-size: var(--nx-type-body);
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
::selection { background: var(--nx-orange); color: var(--nx-black); }

.skip-link.screen-reader-text:focus {
	clip: auto;
	clip-path: none;
	width: auto;
	height: auto;
	top: 1rem;
	left: 1rem;
	z-index: 1000;
	padding: 0.75rem 1.25rem;
	background: var(--nx-orange);
	color: var(--nx-black);
	font-weight: 700;
	border-radius: var(--nx-radius);
}

/* ── 3. Typographie : ce que les Classes v4 n'exposent pas ────────────────── */
:is(.nx-display, .nx-h1, .nx-h2, .nx-h3) { text-wrap: balance; }
:is(.nx-lead, .nx-body, .nx-small, .nx-check) { text-wrap: pretty; }
:is(.nx-token, .nx-index) { font-variant-numeric: tabular-nums; }

/* Mot clé en orange dans un titre, comme « WMS » dans les publications. */
:is(.nx-display, .nx-h1, .nx-h2, .nx-h3) em {
	font-style: normal;
	color: var(--nx-orange);
}

/* Sur-titre : trait orange en tête, repris des titres soulignés de la charte. */
.elementor .nx-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 0.875rem;
}
.elementor .nx-eyebrow::before {
	content: "";
	width: 1.75rem;
	height: 2px;
	background: currentColor;
	flex: none;
}

.elementor .nx-check { position: relative; }
.elementor .nx-check::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.72em;
	width: 0.875rem;
	height: 2px;
	background: var(--nx-orange);
}

.elementor .nx-link::after {
	content: "→";
	transition: transform var(--nx-dur-2) var(--nx-ease-out);
}
.elementor :is(.nx-link, .nx-card, .nx-row-link):hover .nx-link::after,
.elementor .nx-link:hover::after { transform: translateX(4px); }

/* Tout conteneur Elementor impose width: 100 % : dans une rangée, il doit garder sa largeur propre.
   Spécificité (0,2,0) : bat .e-con, mais cède aux styles locaux d'Elementor chargés après. */
.nx-row > .e-con { width: auto; }

/* ── 4. Univers visuel : halo, trame, reflets ─────────────────────────────── */
.elementor .e-con.nx-section-glow {
	background:
		radial-gradient(60rem 38rem at 0% 0%, color-mix(in srgb, var(--nx-navy) 95%, transparent), transparent 70%),
		radial-gradient(40rem 30rem at 100% 60%, color-mix(in srgb, var(--nx-orange) 14%, transparent), transparent 70%),
		var(--nx-night);
}
/* Aucune section sombre n'est d'un aplat noir : la surface surélevée descend en dégradé vers la nuit. */
.elementor .e-con.nx-section-abyss:not(.nx-section-glow) {
	background: linear-gradient(180deg, var(--nx-abyss) 0%, var(--nx-night) 100%);
}
.elementor .e-con.nx-section-grid::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(to right, color-mix(in srgb, var(--nx-white) 5%, transparent) 1px, transparent 1px),
		linear-gradient(to bottom, color-mix(in srgb, var(--nx-white) 5%, transparent) 1px, transparent 1px);
	background-size: 4.5rem 4.5rem;
	mask-image: radial-gradient(ellipse at 30% 20%, #000 20%, transparent 75%);
}

/* Carte « verre » : reflet haut et filet, l'orange s'allume au survol. */
.elementor .nx-card {
	background-image: linear-gradient(180deg, color-mix(in srgb, var(--nx-white) 5%, transparent), transparent 60%);
	transition:
		border-color var(--nx-dur-2) var(--nx-ease-out),
		transform var(--nx-dur-2) var(--nx-ease-out),
		background-color var(--nx-dur-2) var(--nx-ease-out);
}
.elementor a.nx-card:hover {
	border-color: color-mix(in srgb, var(--nx-orange) 60%, transparent);
	transform: translateY(-2px);
}

.elementor .nx-row-link { transition: border-color var(--nx-dur-2) var(--nx-ease-out); }
.elementor .nx-row-link:hover { border-color: var(--nx-orange); }

/* ── 5. Contexte clair ────────────────────────────────────────────────────────
   Le site est sombre par défaut ; une section blanche ou brume recolore ce qu'elle
   contient, et une section sombre imbriquée rétablit le sombre. */
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-display, .nx-h1, .nx-h2, .nx-h3, .nx-h4, .nx-accent, .nx-token) { color: var(--nx-black); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-lead, .nx-body, .nx-small, .nx-check, .nx-tech) { color: var(--nx-black-80); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-eyebrow, .nx-link, .nx-index) { color: var(--nx-orange-ink); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-badge { color: var(--nx-orange-ink); border-color: var(--nx-orange-ink); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-display, .nx-h1, .nx-h2, .nx-h3) em { color: var(--nx-orange-ink); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-card { background-color: var(--nx-white); border-color: var(--nx-line); background-image: none; }
.elementor .nx-section-white .nx-card { background-color: var(--nx-mist); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-divider) { background-color: var(--nx-line); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-row-link, .nx-faq-item, .nx-specimen) { border-color: var(--nx-line); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-btn-secondary { color: var(--nx-black); border-color: var(--nx-black); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-btn-secondary:hover { color: var(--nx-white); background-color: var(--nx-black); }

.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark :is(.nx-display, .nx-h1, .nx-h2, .nx-h3, .nx-h4, .nx-accent, .nx-token) { color: var(--nx-white); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark :is(.nx-lead, .nx-body, .nx-small, .nx-check) { color: var(--nx-on-dark-muted); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark :is(.nx-eyebrow, .nx-link, .nx-index) { color: var(--nx-orange); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark .nx-btn-secondary { color: var(--nx-white); border-color: var(--nx-outline-dark); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark .nx-btn-secondary:hover { color: var(--nx-black); background-color: var(--nx-white); border-color: var(--nx-white); }

/* Contexte « accent » : section sur la couleur principale de la marque (ouverture rouge Boltrics).
   Tout le texte passe dans la couleur sombre de la marque ; les pages éditeurs affinent. */
.elementor .nx-section-accent :is(.nx-display, .nx-h1, .nx-h2, .nx-h3, .nx-h4, .nx-accent, .nx-token, .nx-lead, .nx-body, .nx-small, .nx-check, .nx-eyebrow, .nx-link, .nx-index) { color: var(--nx-black); }
.elementor .nx-section-accent :is(.nx-display, .nx-h1, .nx-h2, .nx-h3) em { color: inherit; }
.elementor .nx-section-accent .nx-check::before { background: var(--nx-black); }
.elementor .nx-section-accent .nx-btn-primary { background-color: var(--nx-black); border-color: var(--nx-black); color: var(--nx-white); }
.elementor .nx-section-accent .nx-btn-primary:hover { background-color: var(--nx-white); border-color: var(--nx-white); color: var(--nx-black); }
.elementor .nx-section-accent .nx-btn-secondary { background-color: var(--nx-white); border-color: var(--nx-white); color: var(--nx-black); }
.elementor .nx-section-accent .nx-btn-secondary:hover { background-color: var(--nx-black); border-color: var(--nx-black); color: var(--nx-white); }
.elementor .nx-section-accent .nx-card { background-color: var(--nx-white); background-image: none; border-color: transparent; }
.elementor .nx-section-accent .nx-card :is(.nx-h3, .nx-h4, .nx-accent, .nx-small, .nx-body) { color: var(--nx-black); }

/* ── 5 bis. Pages éditeurs partenaires ─────────────────────────────────────────
   Les Classes du système référencent des jetons (var(--nx-…)). Une section marquée
   .nx-brand-boltrics ou .nx-brand-aptean redéfinit ces jetons pour son contenu : la page
   suit la charte de l'éditeur, l'en-tête et le pied de page restent Nexient. */

/* Boltrics — Brand Guidelines v10-2025 : rouge #FD3700 et bleu #011156, « do not alter the
   transparency or colours » : uniquement ces deux couleurs, à plat, avec blanc et gris neutres.
   Aucun halo, dégradé ni bleu dérivé. Barlow + Barlow Semi Condensed SemiBold, logo blanc sur fond
   coloré. Ouverture rouge comme la page Boltrics actuelle ; bleu uni pour les sections sombres. */
.elementor .nx-brand-boltrics {
	--nx-night: #011156;
	--nx-abyss: #011156;
	--nx-navy: #011156;
	--nx-orange: #FD3700;
	--nx-orange-80: #FD3700;
	--nx-orange-ink: #011156;
	--nx-black: #011156;
	--nx-black-80: #011156;
	--nx-white: #FFFFFF;
	--nx-mist: #F4F4F4;
	--nx-line: #E5E5E5;
	--nx-line-dark: rgb(255 255 255 / 22%);
	--nx-outline-dark: rgb(255 255 255 / 70%);
	--nx-on-dark-muted: #FFFFFF;
	--nx-font-sans: Barlow, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}
.elementor .e-con.nx-brand-boltrics:is(.nx-section-glow, .nx-section-abyss) { background: var(--nx-night); }
.elementor .e-con.nx-brand-boltrics.nx-section-accent { background: #FD3700; }
.elementor .e-con.nx-brand-boltrics.nx-section-grid::before { content: none; }
.elementor .nx-brand-boltrics .nx-card { background-image: none; }
/* Survol : permutation entre les deux couleurs officielles plutôt qu'une teinte dérivée. */
.elementor .nx-brand-boltrics .nx-btn-primary { color: #011156; }
.elementor .nx-brand-boltrics .nx-btn-primary:hover { background-color: #011156; border-color: #011156; color: #FFFFFF; }
.elementor .nx-brand-boltrics:not(.nx-section-white):not(.nx-section-mist):not(.nx-section-accent) .nx-btn-primary:hover { background-color: #FFFFFF; border-color: #FFFFFF; color: #011156; }
.elementor .nx-brand-boltrics.nx-section-accent :is(.nx-display, .nx-h1, .nx-h2) { color: #FFFFFF; }
.elementor .nx-brand-boltrics.nx-section-accent :is(.nx-display, .nx-h1, .nx-h2) em { color: #011156; }
.elementor .nx-brand-boltrics.nx-section-accent .nx-btn-primary { background-color: #011156; border-color: #011156; color: #FFFFFF; }
.elementor .nx-brand-boltrics.nx-section-accent .nx-btn-primary:hover { background-color: #FFFFFF; border-color: #FFFFFF; color: #011156; }
.elementor .nx-brand-boltrics.nx-section-accent .nx-eyebrow::before { background: #011156; }
/* Sur blanc, le rouge Boltrics (3,67:1) reste lisible en très grand : mot clé des grands titres. */
.elementor .nx-brand-boltrics:is(.nx-section-white, .nx-section-mist) :is(.nx-display, .nx-h1, .nx-h2) em { color: #FD3700; }
.elementor .nx-brand-boltrics :is(.nx-display, .nx-h1, .nx-h2, .nx-h3, .nx-h4, .nx-accent) {
	font-family: "Barlow Semi Condensed", Barlow, system-ui, sans-serif;
	font-weight: 600;
	letter-spacing: -0.01em;
}
.elementor .nx-brand-boltrics :is(.nx-display, .nx-h1) { line-height: 1em; }
.elementor .nx-brand-boltrics .nx-btn { border-radius: 999px; }
.elementor .nx-brand-boltrics .nx-card { border-radius: 12px; }
.elementor .nx-brand-boltrics .nx-section-white .nx-card,
.elementor .nx-brand-boltrics.nx-section-white .nx-card,
.elementor .nx-brand-boltrics.nx-section-mist .nx-card { background-color: var(--nx-white); border-color: var(--nx-line); box-shadow: 0 1px 2px rgb(1 17 86 / 6%), 0 12px 32px rgb(1 17 86 / 8%); }
.elementor .nx-brand-boltrics .nx-badge-img img,
.elementor .nx-brand-boltrics img.nx-badge-img { width: 4.5rem; height: 4.5rem; object-fit: contain; }

/* Aptean — Light Brand Evolution (mai 2026) : gris clair #EAEAEA, blanc, gris foncé #262626,
   texte noir, Inter Bold / Regular, encadrés 17 px, boutons en capsule, ni flèches ni jaune,
   imagerie lumineuse (jamais sombre). Aucune couleur Nexient dans le contenu. */
.elementor .nx-brand-aptean {
	--nx-white: #FFFFFF;
	--nx-mist: #EAEAEA;
	--nx-black: #000000;
	--nx-black-80: #262626;
	--nx-orange: #262626;
	--nx-orange-80: #3A3A3A;
	--nx-orange-ink: #262626;
	--nx-line: #D9D9D9;
	--nx-font-sans: Inter, system-ui, -apple-system, Segoe UI, Arial, sans-serif;
}
.elementor .nx-brand-aptean :is(.nx-display, .nx-h1, .nx-h2, .nx-h3) { letter-spacing: -0.02em; }
.elementor .nx-brand-aptean :is(.nx-display, .nx-h1, .nx-h2, .nx-h3) em { color: inherit; }
.elementor .nx-brand-aptean .nx-eyebrow::before,
.elementor .nx-brand-aptean .nx-link::after { content: none; }
.elementor .nx-brand-aptean .nx-eyebrow { letter-spacing: 0.08em; }
.elementor .nx-brand-aptean .nx-btn { border-radius: 999px; }
.elementor .nx-brand-aptean .nx-btn-primary { background-color: #262626; border-color: #262626; color: #FFFFFF; }
.elementor .nx-brand-aptean .nx-btn-primary:hover { background-color: #000000; border-color: #000000; color: #FFFFFF; }
.elementor .nx-brand-aptean .nx-btn-secondary { background-color: #FFFFFF; border-color: transparent; color: #000000; box-shadow: 0 0 5px rgb(0 0 0 / 15%); }
.elementor .nx-brand-aptean .nx-btn-secondary:hover { background-color: #EAEAEA; border-color: transparent; color: #000000; }
.elementor .nx-brand-aptean .nx-card { border-radius: 17px; border-color: transparent; background-image: none; transform: none; }
.elementor .nx-brand-aptean.nx-section-white .nx-card { background-color: #EAEAEA; }
.elementor .nx-brand-aptean.nx-section-mist .nx-card { background-color: #FFFFFF; box-shadow: 0 0 5px rgb(0 0 0 / 15%); }
.elementor .nx-brand-aptean .nx-card.nx-section-dark { background-color: #262626; }
.elementor .nx-brand-aptean .nx-card.nx-section-dark :is(.nx-h2, .nx-h3, .nx-h4, .nx-body, .nx-lead, .nx-eyebrow) { color: #FFFFFF; }
.elementor .nx-brand-aptean .nx-card.nx-section-dark .nx-btn-primary { background-color: #FFFFFF; border-color: #FFFFFF; color: #000000; }
.elementor .nx-brand-aptean a.nx-card:hover { border-color: transparent; box-shadow: 0 0 0 2px #262626; }
.elementor .nx-brand-aptean .nx-check::before { background: #262626; }
.elementor .nx-brand-aptean .nx-panel { border-radius: 17px; }
.elementor .nx-brand-aptean .nx-badge { border-radius: 999px; }

/* Aptean, sections sombres : gris foncé #262626 de la charte (boîtes « Callout » sombres), à plat. */
.elementor .nx-brand-aptean {
	--nx-night: #262626;
	--nx-abyss: #262626;
	--nx-navy: #262626;
	--nx-on-dark-muted: #EAEAEA;
	--nx-line-dark: rgb(255 255 255 / 18%);
	--nx-outline-dark: rgb(255 255 255 / 55%);
}
.elementor .e-con.nx-brand-aptean:is(.nx-section-glow, .nx-section-abyss) { background: #262626; }
.elementor .e-con.nx-brand-aptean.nx-section-grid::before { content: none; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) :is(.nx-eyebrow, .nx-link, .nx-index) { color: #FFFFFF; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-badge { color: #FFFFFF; border-color: #FFFFFF; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-check::before { background: #FFFFFF; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-btn-primary { background-color: #FFFFFF; border-color: #FFFFFF; color: #000000; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-btn-primary:hover { background-color: #EAEAEA; border-color: #EAEAEA; color: #000000; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-btn-secondary { background-color: transparent; border-color: #FFFFFF; color: #FFFFFF; box-shadow: none; }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-card { background-color: rgb(255 255 255 / 6%); border-color: rgb(255 255 255 / 12%); box-shadow: none; }

/* ── 6. Mouvement ───────────────────────────────────────────────────────────
   Courbe sortante, 150–400 ms, jamais de rebond. Les Interactions Elementor gratuites
   n'offrent que « easeIn » : l'apparition au scroll est en CSS, sans JavaScript. */
.elementor .nx-btn {
	transition:
		background-color var(--nx-dur-2) var(--nx-ease-out),
		border-color var(--nx-dur-2) var(--nx-ease-out),
		color var(--nx-dur-2) var(--nx-ease-out),
		transform var(--nx-dur-1) var(--nx-ease-out);
}
.elementor .nx-btn:active { transform: translateY(1px); }

@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.elementor .nx-reveal {
			animation: nx-reveal linear both;
			animation-timeline: view();
			animation-range: entry 0% entry 40%;
		}
		@keyframes nx-reveal {
			from { opacity: 0; transform: translateY(1.5rem); }
			to { opacity: 1; transform: none; }
		}
	}
}

/* ── 7. Focus clavier ───────────────────────────────────────────────────────── */
:where(a, button, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--nx-orange);
	outline-offset: 3px;
	border-radius: 2px;
}
.elementor :is(.nx-section-white, .nx-section-mist) :focus-visible { outline-color: var(--nx-orange-ink); }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ── 8. Symbole 3D : hauteur fixée ici pour qu'aucun décalage ne survienne au chargement ── */
[data-nexient-3d] {
	display: block;
	width: 100%;
	height: clamp(18rem, 12rem + 24vw, 34rem);
	position: relative;
	pointer-events: none;
}

/* ── 9. En-tête ─────────────────────────────────────────────────────────────── */
.nx-header {
	position: sticky;
	top: 0;
	z-index: 100;
	transition: background-color var(--nx-dur-3) var(--nx-ease-out), border-color var(--nx-dur-3) var(--nx-ease-out);
	border-bottom: 1px solid transparent;
}
.admin-bar .nx-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .nx-header { top: 46px; } }

.nx-header.is-scrolled,
.nx-header:has(.nx-nav__panel:not([hidden])),
.nx-header.is-open {
	background-color: color-mix(in srgb, var(--nx-night) 88%, transparent);
	backdrop-filter: saturate(140%) blur(14px);
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	border-bottom-color: var(--nx-line-dark);
}
.nx-header__bar {
	display: flex;
	align-items: center;
	gap: var(--nx-space-5);
	max-width: var(--nx-container);
	margin: 0 auto;
	padding: var(--nx-space-3) var(--nx-gutter);
	min-height: 4.75rem;
}
.nx-header__logo { display: block; flex: none; line-height: 0; }
.nx-header__logo img { width: 9.5rem; height: auto; }

.nx-nav { flex: 1; }
.nx-nav__list {
	display: flex;
	align-items: center;
	gap: var(--nx-space-1);
	margin: 0;
	padding: 0;
	list-style: none;
}
.nx-nav__link,
.nx-nav__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	padding: 0.625rem 0.875rem;
	border: 0;
	border-radius: var(--nx-radius);
	background: none;
	color: var(--nx-white);
	font: 500 0.9375rem/1.2 var(--nx-font-sans);
	text-decoration: none;
	cursor: pointer;
	transition: color var(--nx-dur-2) var(--nx-ease-out), background-color var(--nx-dur-2) var(--nx-ease-out);
}
.nx-nav__link:hover,
.nx-nav__toggle:hover,
.nx-nav__toggle[aria-expanded="true"] { color: var(--nx-orange); }
/* Le reset de Hello Elementor colore les boutons en #c36 au survol et au focus. */
.nx-nav__toggle:is(:hover, :focus, :active),
.nx-burger:is(:hover, :focus, :active) { background: none; }
.nx-nav__link[aria-current="page"] { color: var(--nx-orange); }
.nx-nav__toggle::after {
	content: "";
	width: 0.45rem;
	height: 0.45rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-2px) rotate(45deg);
	transition: transform var(--nx-dur-2) var(--nx-ease-out);
}
.nx-nav__toggle[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }

.nx-nav__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--nx-abyss);
	box-shadow: 0 1.5rem 3rem color-mix(in srgb, var(--nx-black) 60%, transparent);
	border-top: 1px solid var(--nx-line-dark);
	border-bottom: 1px solid var(--nx-line-dark);
	animation: nx-panel var(--nx-dur-2) var(--nx-ease-out);
}
@keyframes nx-panel { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.nx-nav__panel[hidden] { display: none; }
.nx-nav__panel-inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
	gap: var(--nx-space-5);
	max-width: var(--nx-container);
	margin: 0 auto;
	padding: var(--nx-space-5) var(--nx-gutter);
}
.nx-nav__col-title {
	margin: 0 0 var(--nx-space-2);
	color: var(--nx-orange);
	font: 500 0.75rem/1.2 var(--nx-font-sans);
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.nx-nav__sublist { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.125rem; }
.nx-nav__sublink {
	display: block;
	padding: 0.5rem 0;
	color: var(--nx-on-dark-muted);
	font: 400 0.9375rem/1.4 var(--nx-font-sans);
	text-decoration: none;
	transition: color var(--nx-dur-2) var(--nx-ease-out);
}
.nx-nav__sublink:hover { color: var(--nx-white); }
.nx-nav__cta-card {
	display: flex;
	flex-direction: column;
	gap: var(--nx-space-3);
	padding: var(--nx-space-4);
	border: 1px solid var(--nx-line-dark);
	border-radius: var(--nx-radius);
	background: linear-gradient(160deg, color-mix(in srgb, var(--nx-navy) 80%, transparent), transparent);
}
.nx-nav__cta-card p { margin: 0; color: var(--nx-white); font: 600 1.0625rem/1.4 var(--nx-font-sans); }

.nx-header__actions { display: flex; align-items: center; gap: var(--nx-space-2); margin-left: auto; }

.nx-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--nx-space-2);
	min-height: 2.75rem;
	padding: 0.625rem 1.25rem;
	border: 1px solid var(--nx-orange);
	border-radius: var(--nx-radius);
	background: var(--nx-orange);
	color: var(--nx-black);
	font: 700 0.9375rem/1.2 var(--nx-font-sans);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--nx-dur-2) var(--nx-ease-out), border-color var(--nx-dur-2) var(--nx-ease-out);
}
.nx-button:hover { background: var(--nx-orange-80); border-color: var(--nx-orange-80); color: var(--nx-black); }

.nx-burger {
	display: none;
	width: 2.75rem;
	height: 2.75rem;
	border: 1px solid var(--nx-outline-dark);
	border-radius: var(--nx-radius);
	background: none;
	color: var(--nx-white);
	cursor: pointer;
	position: relative;
}
.nx-burger span,
.nx-burger span::before,
.nx-burger span::after {
	position: absolute;
	left: 50%;
	width: 1.125rem;
	height: 1.5px;
	background: currentColor;
	transform: translateX(-50%);
	transition: transform var(--nx-dur-2) var(--nx-ease-out), opacity var(--nx-dur-1) var(--nx-ease-out);
	content: "";
}
.nx-burger span { top: 50%; }
.nx-burger span::before { top: -6px; }
.nx-burger span::after { top: 6px; }
.nx-burger[aria-expanded="true"] span { background: transparent; }
.nx-burger[aria-expanded="true"] span::before { transform: translate(-50%, 6px) rotate(45deg); background: var(--nx-white); }
.nx-burger[aria-expanded="true"] span::after { transform: translate(-50%, -6px) rotate(-45deg); background: var(--nx-white); }

@media (max-width: 1080px) {
	/* backdrop-filter ferait de l'en-tête le bloc conteneur du menu plein écran (position: fixed). */
	.nx-header.is-scrolled,
	.nx-header.is-open,
	.nx-header:has(.nx-nav__panel:not([hidden])) {
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		background-color: var(--nx-night);
	}
	.nx-burger { display: inline-block; }
	.nx-header__actions .nx-button { display: none; }
	.nx-nav {
		position: fixed;
		inset: 4.75rem 0 0 0;
		overflow-y: auto;
		background: var(--nx-night);
		padding: var(--nx-space-4) var(--nx-gutter) var(--nx-space-6);
	}
	.admin-bar .nx-nav { top: calc(4.75rem + 46px); }
	.nx-nav[data-open="false"] { display: none; }
	.nx-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.nx-nav__item { border-bottom: 1px solid var(--nx-line-dark); }
	.nx-nav__link,
	.nx-nav__toggle { width: 100%; justify-content: space-between; padding: 1rem 0; font-size: 1.125rem; }
	.nx-nav__panel { position: static; background: none; backdrop-filter: none; border: 0; animation: none; }
	.nx-nav__panel-inner { padding: 0 0 var(--nx-space-4); gap: var(--nx-space-4); }
	.nx-nav__mobile-cta { display: flex; margin-top: var(--nx-space-5); }
}
@media (min-width: 1081px) { .nx-nav__mobile-cta { display: none; } }

/* ── 10 bis. Formulaire de contact ──────────────────────────────────────────── */
.nx-form { display: grid; gap: var(--nx-space-4); }
.nx-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--nx-space-3) var(--nx-space-4); }
.nx-form__field { display: grid; gap: 0.5rem; margin: 0; }
.nx-form__field--wide { grid-column: 1 / -1; }
.nx-form label { color: var(--nx-white); font: 500 0.875rem/1.3 var(--nx-font-sans); }
.nx-form label span { color: var(--nx-orange); }
.nx-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
	width: 100%;
	padding: 0.8rem 1rem;
	border: 1px solid var(--nx-outline-dark);
	border-radius: var(--nx-radius);
	background: var(--nx-night);
	color: var(--nx-white);
	font: 400 1rem/1.5 var(--nx-font-sans);
	transition: border-color var(--nx-dur-2) var(--nx-ease-out), box-shadow var(--nx-dur-2) var(--nx-ease-out);
}
.nx-form :is(input, textarea):focus { outline: none; border-color: var(--nx-orange); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nx-orange) 25%, transparent); }
.nx-form__consent { display: flex; gap: 0.75rem; align-items: flex-start; margin: 0; }
.nx-form__consent input { width: 1.125rem; height: 1.125rem; margin-top: 0.15rem; accent-color: var(--nx-orange); flex: none; }
.nx-form__consent label { font-weight: 400; color: var(--nx-on-dark-muted); }
.nx-form__legal { margin: 0; color: var(--nx-on-dark-muted); font-size: 0.8125rem; line-height: 1.6; }
.nx-form__legal a { color: var(--nx-orange); }
.nx-form .nx-button { justify-self: start; }
.nx-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.nx-form__notice { margin: 0 0 var(--nx-space-4); padding: var(--nx-space-3) var(--nx-space-4); border-radius: var(--nx-radius); border: 1px solid; font-size: 0.9375rem; }
.nx-form__notice--ok { border-color: var(--nx-orange); color: var(--nx-white); background: color-mix(in srgb, var(--nx-orange) 10%, transparent); }
.nx-form__notice--error { border-color: #FF6B6B; color: var(--nx-white); background: color-mix(in srgb, #FF6B6B 12%, transparent); }

/* Formulaire dans une section claire */
.elementor :is(.nx-section-white, .nx-section-mist) .nx-form label { color: var(--nx-black); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) { background: var(--nx-white); border-color: var(--nx-black-40); color: var(--nx-black); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-form :is(.nx-form__consent label, .nx-form__legal) { color: var(--nx-black-80); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-form :is(.nx-form__legal a, label span) { color: var(--nx-orange-ink); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-form__notice { color: var(--nx-black); }

/* ── 10 ter. Carrousel de logos ─────────────────────────────────────────────────
   Défilement continu et linéaire (pas de rebond), en pause au survol et au focus, arrêté et
   replié en grille si le visiteur demande moins de mouvement. La piste contient la liste deux fois. */
.nx-logos { position: relative; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.nx-logos__track { display: flex; gap: var(--nx-space-4); width: max-content; margin: 0; padding: 0; list-style: none; animation: nx-logos 42s linear infinite; }
.nx-logos:is(:hover, :focus-within) .nx-logos__track { animation-play-state: paused; }
@keyframes nx-logos { to { transform: translateX(calc(-50% - var(--nx-space-4) / 2)); } }
.nx-logos__item {
	display: grid;
	place-items: center;
	width: 14.5rem;
	height: 6.5rem;
	padding: var(--nx-space-2);
	border: 1px solid var(--nx-line-dark);
	border-radius: var(--nx-radius);
	background: color-mix(in srgb, var(--nx-white) 4%, transparent);
}
.nx-logos__item img { width: auto; height: auto; object-fit: contain; }
/* Signature en un mot : posée sur la ligne. Badge en carte : plus haut, mais moins large. */
.nx-logos__img.is-signature { max-width: 80%; max-height: 2.5rem; }
.nx-logos__img.is-badge { max-width: 68%; max-height: 4.5rem; }
.nx-logos__name { color: var(--nx-white); font: 600 1.125rem/1.2 var(--nx-font-sans); letter-spacing: -0.01em; text-align: center; }
@media (prefers-reduced-motion: reduce) {
	.nx-logos { mask-image: none; }
	.nx-logos__track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
	.nx-logos__item[aria-hidden="true"] { display: none; }
}

/* ── 10 quater. Publications LinkedIn et documents ──────────────────────────── */
.nx-feed { display: grid; gap: var(--nx-space-5); }
.nx-feed__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 20rem), 1fr)); gap: var(--nx-space-4); margin: 0; padding: 0; list-style: none; }
.nx-post {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--nx-line-dark);
	border-radius: var(--nx-radius);
	background: var(--nx-abyss);
	color: var(--nx-on-dark-muted);
	text-decoration: none;
	transition: border-color var(--nx-dur-2) var(--nx-ease-out), transform var(--nx-dur-2) var(--nx-ease-out);
}
a.nx-post:hover { border-color: color-mix(in srgb, var(--nx-orange) 60%, transparent); transform: translateY(-2px); }
.nx-post__media { aspect-ratio: 16 / 10; background: var(--nx-night); }
.nx-post__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-post__body { display: flex; flex-direction: column; gap: var(--nx-space-2); flex: 1; padding: var(--nx-space-4); }
.nx-post__meta { color: var(--nx-orange); font: 500 0.75rem/1.2 var(--nx-font-sans); letter-spacing: 0.16em; text-transform: uppercase; }
.nx-post__title { margin: 0; color: var(--nx-white); font: 600 1.125rem/1.35 var(--nx-font-sans); }
.nx-post__excerpt { margin: 0; font-size: 0.9375rem; line-height: 1.6; flex: 1; }
.nx-post__cta { color: var(--nx-orange); font: 600 0.9375rem/1.4 var(--nx-font-sans); }
.nx-feed__more { justify-self: start; }
/* Publication LinkedIn intégrée : LinkedIn ne redimensionne pas son cadre, la hauteur est fixée. */
.nx-embed { border: 1px solid var(--nx-line); border-radius: var(--nx-radius); overflow: hidden; background: var(--nx-white); }
.nx-embed iframe { display: block; width: 100%; min-width: 100%; height: 44rem; border: 0; }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-post { background: var(--nx-white); border-color: var(--nx-line); color: var(--nx-black-80); }
.elementor .nx-section-white .nx-post { background: var(--nx-mist); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-post__title) { color: var(--nx-black); }
.elementor :is(.nx-section-white, .nx-section-mist) :is(.nx-post__meta, .nx-post__cta) { color: var(--nx-orange-ink); }

/* Ancre de section (fil de navigation vers les vignettes « À propos ») */
.nx-anchor { display: block; position: relative; top: -6rem; visibility: hidden; }

/* ── 10. Pied de page ───────────────────────────────────────────────────────── */
.nx-footer {
	position: relative;
	background: linear-gradient(180deg, var(--nx-abyss) 0%, var(--nx-night) 70%);
	color: var(--nx-on-dark-muted);
	border-top: 1px solid var(--nx-line-dark);
	overflow: hidden;
}
.nx-footer::before {
	content: "";
	position: absolute;
	right: -12rem;
	bottom: -18rem;
	width: 44rem;
	height: 44rem;
	background: radial-gradient(closest-side, color-mix(in srgb, var(--nx-orange) 16%, transparent), transparent);
	pointer-events: none;
}
.nx-footer__inner {
	position: relative;
	max-width: var(--nx-container);
	margin: 0 auto;
	padding: var(--nx-space-7) var(--nx-gutter) var(--nx-space-5);
	display: grid;
	gap: var(--nx-space-6);
}
.nx-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
	gap: var(--nx-space-5);
}
@media (max-width: 900px) { .nx-footer__top { grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); } }
.nx-footer__brand img { width: 11rem; height: auto; }
.nx-footer__baseline { margin: var(--nx-space-3) 0 0; max-width: 24rem; font-size: 0.9375rem; line-height: 1.6; }
.nx-footer__title {
	margin: 0 0 var(--nx-space-3);
	color: var(--nx-white);
	font: 500 0.75rem/1.2 var(--nx-font-sans);
	letter-spacing: 0.24em;
	text-transform: uppercase;
}
.nx-footer__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.5rem; }
.nx-footer a { color: var(--nx-on-dark-muted); text-decoration: none; transition: color var(--nx-dur-2) var(--nx-ease-out); }
.nx-footer a:hover { color: var(--nx-orange); }
.nx-footer__contact { font-style: normal; display: grid; gap: 0.5rem; font-size: 0.9375rem; }
.nx-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--nx-space-3);
	padding-top: var(--nx-space-4);
	border-top: 1px solid var(--nx-line-dark);
	font-size: 0.875rem;
}
.nx-footer__legal { display: flex; flex-wrap: wrap; gap: var(--nx-space-4); margin: 0; padding: 0; list-style: none; }
.nx-footer__copyright { margin: 0; }

/* ── 10 quinquies. FAQ en accordéon (details/summary natif) ─────────────────── */
.elementor-widget-html:has(> .elementor-widget-container > .nx-faq, > .nx-faq) { width: 100%; }
.nx-faq {
	--faq-line: var(--nx-line-dark);
	--faq-q: var(--nx-white);
	--faq-a: var(--nx-on-dark-muted);
	--faq-accent: var(--nx-orange);
	border-bottom: 1px solid var(--faq-line);
}
.elementor :is(.nx-section-white, .nx-section-mist) .nx-faq { --faq-line: var(--nx-line); --faq-q: var(--nx-black); --faq-a: var(--nx-black-80); --faq-accent: var(--nx-orange-ink); }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-section-dark .nx-faq { --faq-line: var(--nx-line-dark); --faq-q: var(--nx-white); --faq-a: var(--nx-on-dark-muted); --faq-accent: var(--nx-orange); }
.elementor .nx-brand-aptean:not(.nx-section-white):not(.nx-section-mist) .nx-faq { --faq-accent: #FFFFFF; }
.nx-faq__item { border-top: 1px solid var(--faq-line); }
.nx-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--nx-space-3);
	padding: var(--nx-space-3) 0;
	cursor: pointer;
	list-style: none;
}
.nx-faq__question::-webkit-details-marker { display: none; }
.nx-faq__question h3 { margin: 0; color: var(--faq-q); font: 600 1.125rem/1.4 var(--nx-font-sans); letter-spacing: -0.01em; transition: color 200ms var(--nx-ease-out); }
.nx-faq__question:hover h3 { color: var(--faq-accent); }
.nx-faq__question:focus-visible { outline: 2px solid var(--faq-accent); outline-offset: 4px; border-radius: var(--nx-radius); }
.nx-faq__icon { position: relative; flex: none; width: 2rem; height: 2rem; border: 1px solid var(--faq-line); border-radius: 50%; transition: border-color 200ms var(--nx-ease-out), transform 250ms var(--nx-ease-out); }
.nx-faq__icon::before, .nx-faq__icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 0.75rem; height: 1.5px; background: var(--faq-accent); transform: translate(-50%, -50%); transition: transform 250ms var(--nx-ease-out); }
.nx-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.nx-faq__item[open] .nx-faq__icon { border-color: var(--faq-accent); }
.nx-faq__item[open] .nx-faq__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.nx-faq__answer { padding: 0 calc(2rem + var(--nx-space-3)) var(--nx-space-4) 0; }
.nx-faq__answer p { margin: 0; max-width: 65ch; color: var(--faq-a); font: 400 1rem/1.7 var(--nx-font-sans); }
@media (prefers-reduced-motion: no-preference) {
	.nx-faq__item[open] .nx-faq__answer { animation: nx-faq-open 250ms var(--nx-ease-out); }
}
@keyframes nx-faq-open { from { opacity: 0; transform: translateY(-4px); } }
@media (max-width: 767px) { .nx-faq__answer { padding-right: 0; } .nx-faq__question h3 { font-size: 1rem; } }

/* ── 10 sexies. Briques d'un pilier : liens discrets, soulignés au survol ───── */
.elementor .nx-small .e-paragraph-link-base { color: inherit; text-decoration: none; }
.elementor .nx-small .e-paragraph-link-base:hover { color: var(--nx-orange); text-decoration: underline; text-underline-offset: 0.25em; }
.elementor :is(.nx-section-white, .nx-section-mist) .nx-small .e-paragraph-link-base:hover { color: var(--nx-orange-ink); }

/* ── 11. Extension Client Feedback : ses couleurs et sa police suivent les jetons Nexient ───── */
:root {
	--cfb-ink: var(--nx-black);
	--cfb-bg: var(--nx-white);
	--cfb-accent: var(--nx-orange-ink);
	--cfb-accent-2: var(--nx-black-80);
	--cfb-muted: var(--nx-black-80);
	--cfb-soft: var(--nx-mist);
	--cfb-font-display: var(--nx-font-sans);
	--cfb-font-script: var(--nx-font-sans);
	--cfb-font-text: var(--nx-font-sans);
}

/* ── 12. Page d'une ressource (livre blanc, webinaire, événement) ───────────── */
.nx-res__wrap { width: min(100% - 2.5rem, 72rem); margin-inline: auto; }
.nx-res__hero {
	padding: var(--nx-space-7) 0 var(--nx-space-6);
	background: linear-gradient(160deg, var(--nx-abyss) 0%, var(--nx-night) 55%, var(--nx-night) 100%);
	color: var(--nx-on-dark-muted);
}
.nx-res__fil { margin: 0 0 var(--nx-space-4); font-size: 0.875rem; color: var(--nx-on-dark-muted); display: flex; gap: 0.6em; flex-wrap: wrap; }
.nx-res__fil a { color: inherit; text-decoration: none; }
.nx-res__fil a:hover { color: var(--nx-orange); }
.nx-res__eyebrow { margin: 0 0 var(--nx-space-2); color: var(--nx-orange); font: 500 0.75rem/1.2 var(--nx-font-sans); letter-spacing: 0.16em; text-transform: uppercase; }
.nx-res__titre { margin: 0 0 var(--nx-space-3); max-width: 24ch; color: var(--nx-white); font: 600 clamp(2rem, 1.2rem + 3vw, 3.5rem)/1.08 var(--nx-font-sans); letter-spacing: -0.02em; }
.nx-res__lead { margin: 0; max-width: 60ch; font: 400 1.125rem/1.6 var(--nx-font-sans); color: var(--nx-on-dark-muted); }
.nx-res__corps { padding: var(--nx-space-7) 0; background: var(--nx-white); color: var(--nx-black-80); }
.nx-res__corps .nx-res__wrap { display: grid; gap: var(--nx-space-5); max-width: 58rem; }
.nx-res__visuel { margin: 0; border-radius: var(--nx-radius); overflow: hidden; }
.nx-res__visuel img { display: block; width: 100%; height: auto; }
.nx-res__texte { font: 400 1rem/1.7 var(--nx-font-sans); max-width: 65ch; }
.nx-res__texte > * + * { margin-top: var(--nx-space-3); }
.nx-res__texte h2 { color: var(--nx-black); font: 600 1.75rem/1.2 var(--nx-font-sans); letter-spacing: -0.01em; }
.nx-res__texte h3 { color: var(--nx-black); font: 600 1.25rem/1.3 var(--nx-font-sans); }
.nx-res__texte ul, .nx-res__texte ol { padding-left: 1.25rem; }
.nx-res__texte a { color: var(--nx-orange-ink); }
.nx-res__actions { display: flex; flex-wrap: wrap; gap: var(--nx-space-3); margin: var(--nx-space-4) 0 0; }
.nx-res__btn {
	display: inline-flex;
	align-items: center;
	min-height: 3rem;
	padding: 0 var(--nx-space-4);
	border: 1px solid currentColor;
	border-radius: var(--nx-radius);
	font: 600 0.9375rem/1 var(--nx-font-sans);
	text-decoration: none;
	transition: background-color var(--nx-dur-2) var(--nx-ease-out), color var(--nx-dur-2) var(--nx-ease-out);
}
.nx-res__hero .nx-res__btn { color: var(--nx-white); }
.nx-res__corps .nx-res__btn { color: var(--nx-black); }
.nx-res__btn--primaire { background: var(--nx-orange); border-color: var(--nx-orange); color: var(--nx-black) !important; }
.nx-res__btn--primaire:hover { background: var(--nx-orange-80); border-color: var(--nx-orange-80); }
.nx-res__btn:not(.nx-res__btn--primaire):hover { background: currentColor; }
.nx-res__hero .nx-res__btn:not(.nx-res__btn--primaire):hover { color: var(--nx-night) !important; background: var(--nx-white); }
.nx-res__corps .nx-res__btn:not(.nx-res__btn--primaire):hover { color: var(--nx-white) !important; background: var(--nx-black); }
