/* ==========================================================================
   NEOVENTIS — Univers & composants
   Accent piloté par variables CSS : pétrole par défaut, orange si
   body.universe-chantier.
   ========================================================================== */

:root {
	--nv-accent: #108294;
	--nv-accent-hover: #0d6d7d;
	--nv-accent-ring: rgba(16, 130, 148, 0.3);
	--nv-accent-soft: rgba(16, 130, 148, 0.1);

	--nv-bg: #070913;
	--nv-card: #0e1220;
	--nv-border: rgba(255, 255, 255, 0.08);
	--nv-text: #f3f4f6;
	--nv-muted: #9ca3af;
}

.universe-chantier {
	--nv-accent: #FA6B0C;
	--nv-accent-hover: #e05c00;
	--nv-accent-ring: rgba(250, 107, 12, 0.3);
	--nv-accent-soft: rgba(250, 107, 12, 0.1);
}

/* Transition douce des éléments colorés lors du changement d'univers */
.universe-transition,
.universe-transition * {
	transition:
		background-color 0.5s cubic-bezier(0.16, 1, 0.3, 1),
		border-color 0.5s cubic-bezier(0.16, 1, 0.3, 1),
		color 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* ==========================================================================
   Effet "shutter" au basculement d'univers (desktop)
   ========================================================================== */
.shutter-overlay {
	position: fixed;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: #108294;
	z-index: 9999;
	transform: skewX(-5deg);
	transition: left 0.5s cubic-bezier(0.76, 0, 0.24, 1);
	pointer-events: none;
}
.shutter-overlay.active-orange { background: #FA6B0C; }
.shutter-overlay.run { left: 100%; }
@media (max-width: 1023px) {
	.shutter-overlay { display: none; }
}

/* ==========================================================================
   Composants réutilisables (utilisés dans templates & compositions)
   ========================================================================== */

/* Label mono en petites capitales */
.nv-label {
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--nv-accent);
}

.nv-label::before {
	content: "// ";
	opacity: 0.7;
}

/* Carte sombre avec bordure et survol accent */
.nv-card {
	background-color: var(--nv-card);
	border: 1px solid var(--nv-border);
	border-radius: 6px;
	transition:
		border-color 0.25s ease,
		transform 0.25s ease,
		box-shadow 0.25s ease,
		background-color 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}
.nv-card:hover {
	border-color: var(--nv-accent);
	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.45);
	transform: translateY(-3px);
}
.nv-card.nv-pad {
	padding: var(--wp--preset--spacing--40, 2rem);
}

/* Force l'accent orange dans une branche (carte Chantier) */
.nv-univers-chantier-force {
	--nv-accent: #FA6B0C;
	--nv-accent-hover: #e05c00;
	--nv-accent-ring: rgba(250, 107, 12, 0.3);
	--nv-accent-soft: rgba(250, 107, 12, 0.1);
}

/* Lien fléché dans les cartes */
.nv-card-link a {
	color: var(--nv-accent);
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-decoration: none;
}
.nv-card-link a:hover {
	color: var(--nv-accent-hover);
}

/* Liseré gauche accent */
.nv-edge {
	border-left: 2px solid var(--nv-accent);
}

/* Bouton accent plein (pour liens stylés boutons hors core/button) */
.nv-btn,
.nv-btn-outline {
	display: inline-block;
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-size: 0.85rem;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	padding: 0.9rem 1.75rem;
	border-radius: 0;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.nv-btn {
	background: var(--nv-accent);
	color: #fff;
}
.nv-btn:hover {
	background: var(--nv-accent-hover);
	color: #fff;
}
.nv-btn-outline {
	border: 1px solid rgba(255, 255, 255, 0.25);
	color: var(--nv-text);
	background: transparent;
}
.nv-btn-outline:hover {
	border-color: var(--nv-accent);
	color: var(--nv-accent);
}

/* Soulignement animé des liens de navigation */
.nv-nav-link {
	position: relative;
	text-decoration: none;
	padding-bottom: 2px;
}
.nv-nav-link::after {
	content: "";
	position: absolute;
	bottom: -2px;
	left: 0;
	right: 0;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transition: transform 0.2s ease;
}
.nv-nav-link:hover::after,
.nv-nav-link.is-active::after {
	transform: scaleX(1);
}

/* Élément de menu actif (page courante) */
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current_page_item > a {
	color: var(--nv-menu-active, var(--nv-accent));
}

/* ==========================================================================
   Sélecteur d'univers (toggle ING | CHA)
   ========================================================================== */
.nv-univers-toggle {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 999px;
	padding: 3px;
	background: rgba(255, 255, 255, 0.04);
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	user-select: none;
}
.nv-univers-toggle button {
	appearance: none;
	background: transparent;
	border: 0;
	color: rgba(255, 255, 255, 0.55);
	cursor: pointer;
	padding: 0.45rem 0.8rem;
	border-radius: 999px;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.nv-univers-toggle button:hover {
	color: #fff;
}
.nv-univers-toggle button[aria-pressed="true"] {
	background: var(--nv-accent);
	color: #fff;
}
.nv-univers-sep {
	width: 1px;
	height: 1rem;
	background: rgba(255, 255, 255, 0.15);
	margin: 0 0.15rem;
	align-self: center;
}

/* ==========================================================================
   Bandeau stats
   ========================================================================== */
.nv-stats-band {
	background: linear-gradient(90deg, var(--nv-accent-soft), transparent 70%);
	border-top: 1px solid var(--nv-border);
	border-bottom: 1px solid var(--nv-border);
}
.nv-stat-value {
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-weight: 800;
	font-size: clamp(2rem, 4.5vw, 3.25rem);
	line-height: 1;
	color: #fff;
}
.nv-stat-value em {
	font-style: normal;
	color: var(--nv-accent);
}
.nv-stat-label {
	font-family: var(--wp--preset--font-family--mono), monospace;
	font-size: 0.78rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nv-muted);
}

/* ==========================================================================
   Contenu éditorial
   ========================================================================== */
.entry-content h2,
.entry-content h3 {
	scroll-margin-top: 6rem;
}

.entry-content a:not(.nv-btn):not(.nv-btn-outline) {
	color: var(--nv-accent);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.entry-content a:not(.nv-btn):not(.nv-btn-outline):hover {
	color: var(--nv-accent-hover);
}

/* Tableaux WPForms / éditoriaux */
.entry-content table {
	width: 100%;
	border-collapse: collapse;
}
.entry-content th {
	font-family: var(--wp--preset--font-family--mono), monospace;
	text-transform: uppercase;
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	color: var(--nv-muted);
	border-bottom: 2px solid var(--nv-accent);
	text-align: left;
}
.entry-content td {
	padding: 0.65rem 0.75rem;
	border-bottom: 1px solid var(--nv-border);
}

/* ==========================================================================
   Navigation pied de page (sans overlay, liste discrète)
   ========================================================================== */
.nv-footer-nav ul.wp-block-navigation__container {
	list-style: none;
	margin: 0;
	padding: 0;
	display: block;
}
.nv-footer-nav .wp-block-navigation-item {
	display: block;
	padding: 0.3rem 0;
}
.nv-footer-nav .wp-block-navigation-item__content,
.nv-footer-nav a {
	color: #9ca3af;
	font-size: 0.9rem;
	text-decoration: none;
}
.nv-footer-nav a:hover {
	color: var(--nv-accent);
}

/* Header sticky léger */
.nv-site-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: rgba(7, 9, 19, 0.88);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
