/**
 * News Scope Daily — Custom CSS pour Divi Child Theme
 *
 * Ce fichier est la SEULE source de vérité pour les surcharges CSS NSD.
 * Il cible les classes Divi (.et_pb_*, .et_*) ou les classes NSD ajoutées
 * via les champs CSS ID/class des modules Divi.
 *
 * Organisation :
 *  1. Tokens CSS (variables globales NSD)
 *  2. Reset / surcharges globales Divi
 *  3. Top bar
 *  4. Header principal
 *  5. Navbar
 *  6. Ticker Breaking News
 *  7. Héro
 *  8. Cartes articles
 *  9. Sections éditoriales
 * 10. Sidebar
 * 11. Vidéos
 * 12. Newsletter
 * 13. Footer
 * 14. Article single
 * 15. Lang switcher
 * 16. Barre de progression lecture
 * 17. Partage social (single)
 * 18. Placeholder image indisponible
 * 19. Grille magazine & emplacements publicitaires
 * 20. Responsive
 */

/* ─────────────────────────────────────────────────────
 * 1. Tokens CSS
 * ───────────────────────────────────────────────────── */
:root {
	/* Couleurs */
	--nsd-ink:          #121212;
	--nsd-charcoal:     #333333;
	--nsd-muted:        #6B6B6B;
	--nsd-border:       #CCCCCC;
	--nsd-surface:      #F5F5F4;
	--nsd-white:        #FFFFFF;
	--nsd-accent:       #C62828;
	--nsd-accent-light: #FFEBEE;
	--nsd-ad-bg:        #F0EDE8;

	/* Typographie */
	--nsd-font-display: 'Playfair Display', Georgia, serif;
	--nsd-font-ui:      'Source Sans 3', 'Arial Narrow', Arial, sans-serif;
	--nsd-font-body:    Lora, Georgia, serif;

	/* Tailles */
	--nsd-fs-xs:   0.75rem;
	--nsd-fs-sm:   0.875rem;
	--nsd-fs-base: 1rem;
	--nsd-fs-md:   1.25rem;
	--nsd-fs-lg:   1.75rem;
	--nsd-fs-xl:   2.5rem;
	--nsd-fs-2xl:  3.5rem;

	/* Layout */
	--nsd-content-width: 1280px;
	--nsd-wide-width:    1440px;

	/* Interlignage */
	--nsd-lh-body:    1.6;
	--nsd-lh-heading: 1.2;

	/* Transitions */
	--nsd-transition-fast:   150ms;
	--nsd-transition-base:   200ms;
	--nsd-transition-slow:   300ms;
	--nsd-ease-out:   cubic-bezier(0.0, 0.0, 0.2, 1);
	--nsd-ease-in:    cubic-bezier(0.4, 0.0, 1.0, 1);
	--nsd-ease-inout: cubic-bezier(0.4, 0.0, 0.2, 1);

	/* Z-index */
	--nsd-z-ticker:      40;
	--nsd-z-nav:         50;
	--nsd-z-drawer:      70;
	--nsd-z-modal:       90;
	--nsd-z-reading-bar: 9999;

	/* Focus ring */
	--nsd-focus-ring:       #1A56DB;
	--nsd-focus-ring-width: 3px;
}

/* ─────────────────────────────────────────────────────
 * 2. Reset / surcharges globales Divi
 * ───────────────────────────────────────────────────── */

/* Scrollbar toujours visible → évite le gap blanc de 15px sur les sections pleine largeur */
html {
	overflow-y: scroll;
	scrollbar-gutter: stable;
}

/* Box-model universel (hérité du legacy theme.css) */
*,
*::before,
*::after {
	box-sizing: border-box;
}

/* Images */
img {
	max-width: 100%;
	height: auto;
	display: block;
}

body,
.et_pb_text,
.et_pb_module {
	font-family: var(--nsd-font-body);
	font-size: var(--nsd-fs-base);
	line-height: var(--nsd-lh-body);
	color: var(--nsd-ink);
}

h1, h2, h3, h4, h5, h6,
.et_pb_module h1,
.et_pb_module h2,
.et_pb_module h3 {
	font-family: var(--nsd-font-display);
	line-height: var(--nsd-lh-heading);
	letter-spacing: -0.02em;
	color: var(--nsd-ink);
}

h4, h5, h6,
.et_pb_module h4 {
	letter-spacing: 0;
	line-height: 1.3;
}

/* Largeur max du contenu Divi — seul .et_pb_row est contraint.
 * .et_builder_inner_content doit rester pleine largeur pour que
 * les fonds de sections (topbar, navbar, footer…) atteignent les bords. */
.et_pb_row {
	max-width: var(--nsd-content-width) !important;
}

/* Liens */
a {
	color: var(--nsd-ink);
	transition: color var(--nsd-transition-fast) var(--nsd-ease-out);
}
a:hover { color: var(--nsd-accent); }

/* Focus ring accessibilité */
a:focus-visible,
button:focus-visible,
input:focus-visible {
	outline: var(--nsd-focus-ring-width) solid var(--nsd-focus-ring);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ─────────────────────────────────────────────────────
 * 3. Top Bar
 * ───────────────────────────────────────────────────── */
#nsd-topbar {
	background-color: var(--nsd-ink);
	padding: 6px 0;
}
#nsd-topbar .et_pb_text,
#nsd-topbar p,
#nsd-topbar a {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-white);
}
#nsd-topbar a:hover { color: var(--nsd-border); }
#nsd-topbar .nsd-topbar__slogan { font-style: italic; }

/* Topbar layout : slogan à gauche, FR/EN à droite */
#nsd-topbar .et_pb_row {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
}
/* Colonne de droite (FR/EN) : aligner à droite */
#nsd-topbar .et-last-child {
	align-items: flex-end !important;
}
#nsd-topbar .et-last-child .et_pb_module {
	text-align: right !important;
}

/* ─────────────────────────────────────────────────────
 * 4. Header Principal
 * ───────────────────────────────────────────────────── */
#nsd-header-main {
	background-color: var(--nsd-white);
	padding: 16px 0;
}
#nsd-header-main .et_pb_image img {
	max-height: 52px;
	width: auto;
}
/* Titre du site */
#nsd-header-main .et_pb_text h2 {
	font-family: var(--nsd-font-display);
	font-size: 1.4rem;
	font-weight: 700;
	margin: 0;
	color: var(--nsd-ink);
}
/* Tagline */
#nsd-header-main .et_pb_text p.nsd-tagline {
	font-size: 0.72rem;
	color: var(--nsd-muted);
	margin: 0;
}

/* ─────────────────────────────────────────────────────
 * 5. Navbar
 * ───────────────────────────────────────────────────── */
#nsd-navbar {
	background-color: var(--nsd-ink);
}
#nsd-navbar .et_pb_menu .nav li a,
#nsd-navbar .et_pb_menu .et_mobile_menu li a {
	font-family: var(--nsd-font-ui);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nsd-white);
	padding: 10px 10px;
	white-space: nowrap;
}
#nsd-navbar .et_pb_menu .nav li a:hover,
#nsd-navbar .et_pb_menu .nav li.current-menu-item > a {
	color: var(--nsd-border);
	background: transparent;
}
/* Supprime la bordure Divi par défaut sur le menu */
#nsd-navbar .et_pb_menu .nav {
	border: none;
}
/* Force la navbar en ligne unique (menu a 14+ items sinon 2 lignes) */
/* overflow: visible — obligatoire pour que les dropdowns ne soient pas clippés par le BFC */
#nsd-navbar .et_pb_menu .nav.et-menu,
#nsd-navbar ul.et-menu {
	flex-wrap: nowrap !important;
	overflow: visible !important;
}

/* ─────────────────────────────────────────────────────
 * 5b. Navbar — menu mobile (hamburger + dropdown)
 * ───────────────────────────────────────────────────── */

/* Hamburger : Divi applique bg_layout_light → barres sombres invisibles sur fond noir.
 * On force blanc pour toutes les barres (l'icône est faite via ::before/::after). */
#nsd-navbar .mobile_menu_bar,
#nsd-navbar .mobile_menu_bar::before,
#nsd-navbar .mobile_menu_bar::after {
	background-color: var(--nsd-white) !important;
}
/* Dropdown mobile : Divi hérite un fond blanc — on impose le fond sombre de la navbar */
#nsd-navbar .et_mobile_menu {
	background-color: var(--nsd-ink) !important;
	border-top: 1px solid rgba(255,255,255,0.12) !important;
}
#nsd-navbar .et_mobile_menu li a {
	color: var(--nsd-white) !important;
	border-bottom: 1px solid rgba(255,255,255,0.08) !important;
	font-family: var(--nsd-font-ui);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
#nsd-navbar .et_mobile_menu li a:hover {
	color: var(--nsd-border) !important;
	background-color: rgba(255,255,255,0.05) !important;
}
#nsd-navbar .et_mobile_menu .sub-menu {
	background-color: rgba(255,255,255,0.04) !important;
}

/* ─────────────────────────────────────────────────────
 * 5c. Navbar — sous-menus dropdown
 * ───────────────────────────────────────────────────── */

/* Reset : Divi met les li en inline-block avec padding latéral hérité du .nav */
#nsd-navbar .et_pb_menu .nav .sub-menu > li {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
	float: none !important;
}

/* Panel dropdown — filet rouge signature NSD + ombre légère */
#nsd-navbar .et_pb_menu .nav .sub-menu {
	background-color: var(--nsd-white) !important;
	border-top: 2px solid var(--nsd-accent) !important;
	box-shadow: 0 4px 16px rgba(0,0,0,0.18) !important;
	padding: 0 !important;
	min-width: 200px !important;
	border-radius: 0 0 3px 3px !important;
	margin-top: 0 !important;
}

/* Liens du sous-menu */
#nsd-navbar .et_pb_menu .nav .sub-menu li a {
	color: var(--nsd-ink) !important;
	background: transparent !important;
	font-family: var(--nsd-font-ui) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	padding: 10px 16px !important;
	display: block !important;
	border-bottom: 1px solid var(--nsd-border) !important;
	white-space: nowrap !important;
	transition: color var(--nsd-transition-fast), background var(--nsd-transition-fast), padding-left var(--nsd-transition-fast) !important;
}
#nsd-navbar .et_pb_menu .nav .sub-menu li:last-child a {
	border-bottom: none !important;
}
#nsd-navbar .et_pb_menu .nav .sub-menu li a:hover {
	color: var(--nsd-accent) !important;
	background: var(--nsd-accent-light) !important;
	padding-left: 22px !important;
}

/* ─────────────────────────────────────────────────────
 * 6. Ticker Breaking News
 * ───────────────────────────────────────────────────── */
#nsd-ticker {
	background-color: var(--nsd-accent);
	overflow: hidden;
	padding: 8px 0;
}
#nsd-ticker .nsd-ticker__label {
	background-color: #a01010;
	padding: 4px 12px;
	white-space: nowrap;
	flex-shrink: 0;
}
#nsd-ticker .nsd-ticker__label .et_pb_text,
#nsd-ticker .nsd-ticker__label p {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	color: var(--nsd-white);
	margin: 0;
}
.nsd-ticker__track {
	display: flex;
	gap: 2.5rem;
	animation: nsd-scroll 35s linear infinite;
	white-space: nowrap;
	align-items: center;
}
.nsd-ticker__track:hover {
	animation-play-state: paused;
}
.nsd-ticker__track a,
.nsd-ticker__track .et_pb_post_title a {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 500;
	color: var(--nsd-white) !important;
	text-decoration: none;
}
@keyframes nsd-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

/* ─────────────────────────────────────────────────────
 * 7. Section Héro
 * ───────────────────────────────────────────────────── */
#nsd-hero {
	padding: 32px 0 24px;
}
/* Article vedette */
.nsd-hero__featured .et_pb_image img,
.nsd-hero__featured .et_pb_post_main_image img {
	aspect-ratio: 16/9;
	object-fit: cover;
	width: 100%;
	border-radius: 0;
}
.nsd-hero__featured .et_pb_post_title h2,
.nsd-hero__featured .et_pb_post_title h1 {
	font-size: var(--nsd-fs-lg);
	font-weight: 700;
	line-height: 1.3;
	margin-top: 12px;
}
/* Colonne droite : 4 articles secondaires (utiliser .nsd-card-compact sur le module) */
.nsd-hero__sidebar {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* ─────────────────────────────────────────────────────
 * 8. Cartes Articles (Loop Builder)
 * ───────────────────────────────────────────────────── */

/* Carte Feature */
.nsd-card-feature .et_pb_post_main_image img {
	aspect-ratio: 16/9;
	object-fit: cover;
	border-radius: 0;
}
.nsd-card-feature .et_pb_post_main_image,
.nsd-card-feature .et_pb_image {
	margin-bottom: 10px;
}
.nsd-card-feature .et_pb_post_title a {
	font-family: var(--nsd-font-display);
	font-size: var(--nsd-fs-md);
	font-weight: 700;
	line-height: 1.3;
	color: var(--nsd-ink);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.nsd-card-feature .nsd-card__category {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-muted);
	margin-bottom: 6px;
}
.nsd-card-feature .et_pb_post_meta {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
}

/* Hover state carte feature */
.nsd-card-feature {
	transition: transform var(--nsd-transition-base) var(--nsd-ease-out);
}
.nsd-card-feature:hover {
	transform: translateY(-2px);
}
.nsd-card-feature:hover .et_pb_post_title a {
	color: var(--nsd-accent);
	transition: color var(--nsd-transition-fast) var(--nsd-ease-out);
}

/* Carte Compacte */
.nsd-card-compact .et_pb_row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.nsd-card-compact .et_pb_post_main_image img {
	width: 105px;
	height: 72px;
	object-fit: cover;
	flex-shrink: 0;
	border-radius: 0;
}
.nsd-card-compact .et_pb_post_title a {
	font-family: var(--nsd-font-ui);
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--nsd-ink);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ─────────────────────────────────────────────────────
 * 9. Sections Éditoriales
 * ───────────────────────────────────────────────────── */
.nsd-section {
	padding: 40px 0;
	border-top: 3px solid var(--nsd-ink);
}
.nsd-section .nsd-section-label {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-ink);
	margin-bottom: 4px;
	display: block;
}
/* Section secondaire (séparateur mineur) */
.nsd-section--minor {
	border-top: 1px solid var(--nsd-border);
	padding-top: 24px;
}

/* ─────────────────────────────────────────────────────
 * 10. Sidebar
 * ───────────────────────────────────────────────────── */
.nsd-sidebar-col {
	position: sticky;
	top: 24px;
	align-self: start;
	background-color: var(--nsd-surface);
	border: 1px solid var(--nsd-border);
	padding: 16px;
}
.nsd-sidebar-col h4,
.nsd-sidebar-col .et_pb_widget_title {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-bottom: 2px solid var(--nsd-ink);
	padding-bottom: 8px;
	margin-bottom: 12px;
}

/* ─────────────────────────────────────────────────────
 * 11. Section Vidéos
 * ───────────────────────────────────────────────────── */
#nsd-videos {
	background-color: var(--nsd-ink);
	padding: 40px 0;
}
#nsd-videos .et_pb_text,
#nsd-videos h2,
#nsd-videos h3,
#nsd-videos p,
#nsd-videos .et_pb_module,
#nsd-videos a {
	color: var(--nsd-white);
}
#nsd-videos .nsd-section-label {
	color: var(--nsd-border);
}
/* Ratio vidéo 16:9 */
#nsd-videos .et_pb_video .et_pb_video_box {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	overflow: hidden;
}
#nsd-videos .et_pb_video .et_pb_video_box iframe {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
}

/* ─────────────────────────────────────────────────────
 * 12. Newsletter
 * ───────────────────────────────────────────────────── */

/* Section : fond sombre, bien délimitée */
#nsd-newsletter {
	background-color: var(--nsd-ink) !important;
	padding: 64px 0 !important;
	text-align: center;
}

/* Masquer le module text redondant (doublon avec le h3 du formulaire) */
#nsd-newsletter .et_pb_text_8_tb_body {
	display: none !important;
}

/* Centrer le wrapper interne du formulaire */
.nsd-newsletter-wrap {
	text-align: center;
	max-width: 560px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Titre h3 */
.nsd-newsletter-wrap h3 {
	font-family: var(--nsd-font-display) !important;
	font-size: 1.9rem !important;
	color: var(--nsd-white) !important;
	margin-bottom: 10px !important;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: var(--nsd-lh-heading);
}

/* Description */
.nsd-newsletter-wrap > p {
	color: rgba(255,255,255,0.65) !important;
	font-size: 0.95rem !important;
	margin-bottom: 28px !important;
	font-family: var(--nsd-font-ui);
}

/* Formulaire : flex centré, wrappable */
form.nsd-newsletter-form {
	display: flex !important;
	justify-content: center !important;
	align-items: stretch !important;
	gap: 0 !important;
	flex-wrap: wrap !important;
	max-width: 480px;
	margin: 0 auto !important;
}

/* Input email */
form.nsd-newsletter-form input[type="email"] {
	flex: 1 1 220px !important;
	padding: 12px 16px !important;
	background: rgba(255,255,255,0.08) !important;
	border: 1px solid rgba(255,255,255,0.2) !important;
	border-right: none !important;
	border-radius: 4px 0 0 4px !important;
	color: var(--nsd-white) !important;
	font-size: 0.9rem !important;
	font-family: var(--nsd-font-ui) !important;
	outline: none !important;
	min-width: 0 !important;
}
form.nsd-newsletter-form input[type="email"]::placeholder {
	color: rgba(255,255,255,0.4) !important;
}
form.nsd-newsletter-form input[type="email"]:focus {
	background: rgba(255,255,255,0.12) !important;
	border-color: rgba(255,255,255,0.4) !important;
}

/* Bouton S'abonner */
form.nsd-newsletter-form input[type="submit"],
form.nsd-newsletter-form button[type="submit"],
form.nsd-newsletter-form button {
	flex: 0 0 auto !important;
	padding: 12px 26px !important;
	background: var(--nsd-accent) !important;
	color: var(--nsd-white) !important;
	border: 1px solid var(--nsd-accent) !important;
	border-radius: 0 4px 4px 0 !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	font-family: var(--nsd-font-ui) !important;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	transition: background var(--nsd-transition-base) !important;
}
form.nsd-newsletter-form input[type="submit"]:hover,
form.nsd-newsletter-form button[type="submit"]:hover,
form.nsd-newsletter-form button:hover {
	background: #a01010 !important;
	border-color: #a01010 !important;
}

/* Mobile : formulaire vertical */
@media (max-width: 480px) {
	form.nsd-newsletter-form input[type="email"] {
		border-right: 1px solid rgba(255,255,255,0.2) !important;
		border-bottom: none !important;
		border-radius: 4px 4px 0 0 !important;
	}
	form.nsd-newsletter-form input[type="submit"],
	form.nsd-newsletter-form button[type="submit"],
	form.nsd-newsletter-form button {
		border-radius: 0 0 4px 4px !important;
		width: 100% !important;
	}
}

/* Variante sidebar (fond clair --nsd-surface) : le style ci-dessus est conçu pour la
 * section sombre #nsd-newsletter — illisible tel quel sur fond clair (texte blanc translucide). */
.nsd-sidebar-col .nsd-newsletter-wrap {
	text-align: left;
	max-width: none;
	margin: 0;
	padding: 0;
}
/* Titre + description du shortcode masqués : doublon avec le H4/texte du widget sidebar au-dessus */
.nsd-sidebar-col .nsd-newsletter-wrap h3,
.nsd-sidebar-col .nsd-newsletter-wrap > p {
	display: none !important;
}
.nsd-sidebar-col form.nsd-newsletter-form {
	flex-direction: column !important;
	max-width: none;
	margin: 0 !important;
}
.nsd-sidebar-col form.nsd-newsletter-form input[type="email"] {
	flex: 0 0 auto !important;
	height: auto !important;
	background: var(--nsd-white) !important;
	border: 1px solid var(--nsd-border) !important;
	border-radius: 4px 4px 0 0 !important;
	color: var(--nsd-ink) !important;
}
.nsd-sidebar-col form.nsd-newsletter-form input[type="email"]::placeholder {
	color: var(--nsd-muted) !important;
}
.nsd-sidebar-col form.nsd-newsletter-form input[type="email"]:focus {
	background: var(--nsd-white) !important;
	border-color: var(--nsd-ink) !important;
}
.nsd-sidebar-col form.nsd-newsletter-form input[type="submit"],
.nsd-sidebar-col form.nsd-newsletter-form button[type="submit"],
.nsd-sidebar-col form.nsd-newsletter-form button {
	border-radius: 0 0 4px 4px !important;
	width: 100% !important;
}


/* ─────────────────────────────────────────────────────
 * 13. Footer
 * ───────────────────────────────────────────────────── */
#nsd-footer {
	background-color: var(--nsd-ink);
	color: var(--nsd-white);
}
#nsd-footer .et_pb_text,
#nsd-footer p,
#nsd-footer li,
#nsd-footer a {
	color: var(--nsd-border);
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
}
#nsd-footer a:hover { color: var(--nsd-white); }
#nsd-footer h3, #nsd-footer h4 {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-white);
	border-bottom: 1px solid rgba(255,255,255,0.15);
	padding-bottom: 8px;
	margin-bottom: 12px;
}
/* Barre copyright */
.nsd-footer-bar {
	border-top: 1px solid rgba(255,255,255,0.1);
	padding-top: 16px;
	margin-top: 0 !important; /* supprime le margin Divi par défaut qui expose le fond de page */
}
.nsd-footer-bar p {
	font-size: var(--nsd-fs-xs) !important;
	color: var(--nsd-muted) !important;
}

/* ─────────────────────────────────────────────────────
 * 14. Article Single
 * ───────────────────────────────────────────────────── */
.single .et_pb_post_content {
	font-family: var(--nsd-font-body);
	font-size: 1.125rem;
	line-height: 1.7;
	color: var(--nsd-charcoal);
	max-width: 680px;
	margin-inline: auto;
}
.single .et_pb_post_content p:first-child::first-letter {
	font-family: var(--nsd-font-display);
	font-size: 4em;
	font-weight: 700;
	float: left;
	line-height: 0.8;
	margin: 0.1em 0.1em 0 0;
	color: var(--nsd-ink);
}
/* Citation tirée */
.single blockquote,
.single .et_pb_blockquote {
	border-left: 3px solid var(--nsd-accent);
	padding-left: 1.5rem;
	font-family: var(--nsd-font-display);
	font-style: italic;
	font-size: var(--nsd-fs-lg);
	color: var(--nsd-charcoal);
	margin-inline: 0;
}

/* ─────────────────────────────────────────────────────
 * 15. Lang switcher
 * ───────────────────────────────────────────────────── */
.nsd-lang-switcher a {
	font-weight: 700;
	letter-spacing: 0.05em;
	padding: 0 0.3rem;
	border-right: 1px solid #444;
	opacity: 0.55;
	transition: opacity var(--nsd-transition-fast);
}
.nsd-lang-switcher a:last-child {
	border-right: none;
}
.nsd-lang-switcher a[aria-current="true"],
.nsd-lang-switcher a:hover {
	opacity: 1;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* ─────────────────────────────────────────────────────
 * 16. Barre de progression lecture
 * ───────────────────────────────────────────────────── */
.nsd-reading-progress {
	position: fixed;
	top: 0;
	left: 0;
	width: 0%;
	height: 3px;
	background: var(--nsd-accent);
	z-index: 9999;
	transition: width 0.1s linear;
	border-radius: 0 2px 2px 0;
	pointer-events: none;
}

/* ─────────────────────────────────────────────────────
 * 17. Partage social (single)
 * ───────────────────────────────────────────────────── */
.nsd-share-bar {
	display: flex;
	align-items: center;
	gap: 0.45rem;
}
.nsd-share-bar__label {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nsd-muted);
	margin-right: 0.25rem;
}
.nsd-share-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	color: var(--nsd-white);
	text-decoration: none;
	transition: transform 0.15s ease, opacity 0.15s;
}
.nsd-share-btn:hover {
	transform: translateY(-2px);
	opacity: 0.85;
	color: var(--nsd-white);
}
.nsd-share-btn--x  { background: #000000; }
.nsd-share-btn--fb { background: #1877f2; }
.nsd-share-btn--li { background: #0a66c2; }
.nsd-share-btn--wa { background: #25d366; }

/* ─────────────────────────────────────────────────────
 * 18. Placeholder image indisponible
 * ───────────────────────────────────────────────────── */
.nsd-img--failed {
	visibility: hidden;
}
.nsd-media--failed {
	position: relative;
	display: block;
	background:
		linear-gradient(135deg, rgba(18,18,18,0.05), rgba(198,40,40,0.08)),
		var(--nsd-surface);
}
.nsd-media--failed::after {
	content: "Image indisponible";
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
	text-align: center;
}
.nsd-media--failed .nsd-img--failed {
	display: none;
}

/* ─────────────────────────────────────────────────────
 * 19. Grille magazine & emplacements publicitaires
 * ───────────────────────────────────────────────────── */
#nsd-magazine-grid {
	padding: 28px 0 40px;
	background-color: var(--nsd-white);
}
/* Bannière leaderboard 728×90 (home) — masqué jusqu'à activation régie pub */
#nsd-ad-leaderboard {
	display: none;
}
#nsd-ad-leaderboard .et_pb_text,
#nsd-ad-leaderboard p {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	color: var(--nsd-muted);
	margin: 0;
}
/* Emplacement pub générique 300×250 (sidebar / single) */
.nsd-ad-slot {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 250px;
	background-color: var(--nsd-ad-bg);
	border: 1px dashed var(--nsd-border);
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-muted);
}

/* ─────────────────────────────────────────────────────
 * 20. Responsive
 * ───────────────────────────────────────────────────── */

/* Grand écran 1440px+ */
@media (min-width: 1440px) {
	.et_pb_row {
		max-width: 1380px !important;
	}
}

/* Tablette large / petit desktop → 981 - 1199px : 2 colonnes */
@media (max-width: 1199px) {
	.nsd-card-feature .et_pb_blog_posts {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}


/* Mobile paysage + tablette portrait 481 - 767px */
@media (max-width: 767px) {
	.nsd-ticker__label { display: none; }
	.nsd-fs-2xl-heading { font-size: var(--nsd-fs-xl) !important; }
	/* Magazine blog : 1 colonne */
	.nsd-card-feature .et_pb_blog_posts {
		grid-template-columns: 1fr !important;
	}
	/* Footer : colonnes empilées */
	#nsd-footer .et_pb_row { flex-wrap: wrap !important; }
	#nsd-footer .et_pb_row > .et_pb_column {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-bottom: 24px;
	}
}

/* Mobile portrait max 480px */
@media (max-width: 480px) {
	.nsd-topbar__slogan { display: none; }
	body { font-size: 0.9375rem; }
	/* Ticker compact */
	#nsd-ticker { padding: 4px 0; }
	/* Navbar : réduire font-size */
	#nsd-navbar .et_pb_menu .nav li a { font-size: 11px; padding: 8px 6px; }
	/* Hero : image plus petite */
	.nsd-hero__featured .et_pb_image img { max-height: 200px; object-fit: cover; }
}

/* ─────────────────────────────────────────────────────
 * 21. Modules Blog Divi 5 — markup réel (.entry-title, .et_pb_image_container, .post-meta)
 *     (le module Blog D5 n'utilise PAS .et_pb_post_title)
 * ───────────────────────────────────────────────────── */

/* Ticker : transformer la grille Blog Divi 5 en bandeau défilant de titres */
/* Divi 5 utilise display:grid via .et_grid_module — on doit overrider avec !important + specificity ID */
#nsd-ticker .et_pb_ajax_pagination_container {
	overflow: visible !important;
	height: auto !important;
}
#nsd-ticker .et_pb_blog_posts {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 2.5rem !important;
	width: max-content !important;
	align-items: center !important;
	height: auto !important;
	grid-template-columns: none !important;
	animation: nsd-ticker-run 55s linear infinite !important;
}
#nsd-ticker .et_pb_blog_posts:hover { animation-play-state: paused !important; }
@keyframes nsd-ticker-run {
	from { transform: translateX(0); }
	to   { transform: translateX(-100%); }
}
#nsd-ticker article.et_pb_post {
	position: static !important;
	float: none !important;
	left: auto !important;
	top: auto !important;
	flex: 0 0 auto;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
}
#nsd-ticker .et_pb_image_container,
#nsd-ticker .post-meta,
#nsd-ticker .post-content,
#nsd-ticker .pagination { display: none !important; }
#nsd-ticker .entry-title {
	margin: 0;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 500;
	white-space: nowrap;
}
#nsd-ticker .entry-title a { color: var(--nsd-white) !important; }

/* Cartes magazine / héro : cibler le markup Blog Divi 5 réel */
.nsd-card-feature article.et_pb_post,
.nsd-hero__featured article.et_pb_post,
.nsd-hero__sidebar article.et_pb_post {
	background: var(--nsd-white);
	border: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
	margin-bottom: 20px;
}
.nsd-card-feature .et_pb_image_container img,
.nsd-hero__featured .et_pb_image_container img,
.nsd-hero__sidebar .et_pb_image_container img {
	aspect-ratio: 16/9;
	object-fit: cover;
	width: 100%;
	display: block;
}
.nsd-card-feature .entry-title {
	font-family: var(--nsd-font-display);
	font-size: var(--nsd-fs-md);
	line-height: 1.3;
	margin: 10px 0 6px;
}
.nsd-card-feature .entry-title a,
.nsd-hero__featured .entry-title a,
.nsd-hero__sidebar .entry-title a { color: var(--nsd-ink); }
.nsd-card-feature .entry-title a:hover { color: var(--nsd-accent); }
.nsd-card-feature .post-meta,
.nsd-card-feature .post-meta a,
.nsd-hero__featured .post-meta,
.nsd-hero__sidebar .post-meta {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
}
/* Héro : article vedette plus grand */
.nsd-hero__featured .entry-title {
	font-family: var(--nsd-font-display);
	font-size: var(--nsd-fs-lg);
	line-height: 1.25;
	margin: 12px 0 6px;
}
/* Cacher les excerpts longs dans les cartes compactes (héro sidebar + ticker) */
.nsd-hero__sidebar .post-content,
.nsd-hero__sidebar .et_pb_image_container { display: none; }

/* ─────────────────────────────────────────────────────
 * 22. Affinage magazine / héro / sidebars (round 1)
 * ───────────────────────────────────────────────────── */

/* Grille magazine : 3 cartes par section catégorie — Divi 5 CSS Grid (déjà grid, on fixe les colonnes) */
/* Fix colonnes: Divi 5 ne respecte pas columnStructure=2_3,1_3 au rendu — on corrige via CSS */
#nsd-magazine-grid .et_pb_row > .et_pb_column:not(.nsd-sidebar-col) {
	flex: 0 0 calc(63% - 12px) !important;
	width: calc(63% - 12px) !important;
	max-width: calc(63% - 12px) !important;
}
#nsd-magazine-grid .et_pb_row > .nsd-sidebar-col {
	flex: 0 0 calc(37% - 12px) !important;
	width: calc(37% - 12px) !important;
	max-width: calc(37% - 12px) !important;
}
#nsd-magazine-grid .nsd-card-feature .et_pb_ajax_pagination_container { overflow: visible !important; }
#nsd-magazine-grid .nsd-card-feature .et_pb_blog_posts {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	height: auto !important;
}
#nsd-magazine-grid .nsd-card-feature article.et_pb_post {
	position: static !important;
	float: none !important;
	left: auto !important;
	top: auto !important;
	width: auto !important;
	margin: 0 !important;
}
/* Titres de section catégorie (h3) façon label éditorial.
 * Filet affiné 2px + accent rouge court (signature éditoriale).
 * margin-top retiré : la colonne flex Divi 5 (gap:30px) sépare déjà les modules,
 * le margin-top:28px créait un double comptage (écart 58px → 30px). */
#nsd-magazine-grid .et_pb_text h3 {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-top: 2px solid var(--nsd-ink);
	padding-top: 12px;
	margin: 0 0 16px;
	position: relative;
}
/* Accent rouge chevauchant le filet — autorisé par le design system sur les
 * filets de sections principales (couleur ailleurs réservée à la photo). */
#nsd-magazine-grid .et_pb_text h3::before {
	content: "";
	position: absolute;
	top: -2px;
	left: 0;
	width: 56px;
	height: 2px;
	background: var(--nsd-accent);
}

/* Héro · brèves : liste compacte avec séparateurs — Divi 5 grid override */
.nsd-hero__sidebar .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
.nsd-hero__sidebar .et_pb_blog_posts { display: block !important; height: auto !important; grid-template-columns: 1fr !important; }

/* Héro · article vedette : 1 seul article mais Divi crée 3 colonnes grid — forcer 1 colonne */
.nsd-hero__featured .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
.nsd-hero__featured .et_pb_blog_posts { display: block !important; height: auto !important; grid-template-columns: 1fr !important; }

/* Fix colonnes hero : featured 60% + sidebar 40% */
#nsd-hero .et_pb_row > .nsd-hero__featured {
	flex: 0 0 calc(60% - 12px) !important;
	width: calc(60% - 12px) !important;
	max-width: calc(60% - 12px) !important;
}
#nsd-hero .et_pb_row > .nsd-hero__sidebar {
	flex: 0 0 calc(40% - 12px) !important;
	width: calc(40% - 12px) !important;
	max-width: calc(40% - 12px) !important;
}
.nsd-hero__sidebar article.et_pb_post {
	position: static !important;
	width: auto !important;
	margin: 0 !important;
	padding: 12px 0 !important;
	border-bottom: 1px solid var(--nsd-border);
	box-shadow: none !important;
	background: none !important;
}
.nsd-hero__sidebar .entry-title { font-size: var(--nsd-fs-sm) !important; line-height: 1.3; margin: 0; }

/* Sidebar « Les plus lus » : liste compacte titres seuls — Divi 5 grid override */
.nsd-sidebar-col .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
.nsd-sidebar-col .et_pb_blog_posts { display: block !important; height: auto !important; grid-template-columns: 1fr !important; }
.nsd-sidebar-col article.et_pb_post {
	position: static !important;
	width: auto !important;
	margin: 0 !important;
	padding: 8px 0 !important;
	border-bottom: 1px solid var(--nsd-border);
	background: none !important;
	box-shadow: none !important;
}
.nsd-sidebar-col .et_pb_image_container,
.nsd-sidebar-col .post-meta,
.nsd-sidebar-col .post-content { display: none !important; }
.nsd-sidebar-col .entry-title { font-size: var(--nsd-fs-sm) !important; margin: 0; }

/* ─────────────────────────────────────────────────────
 * 23. Liens "Voir tout →" dans les titres de sections magazine
 * ───────────────────────────────────────────────────── */
.nsd-see-all {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	color: var(--nsd-muted);
	text-decoration: none;
	transition: color var(--nsd-transition-fast) var(--nsd-ease-out);
}
.nsd-see-all:hover { color: var(--nsd-accent); }

/* ─────────────────────────────────────────────────────
 * 24. Footer — Réseaux sociaux & Derniers articles
 * ───────────────────────────────────────────────────── */
.nsd-footer-social {
	display: flex;
	gap: 12px;
	margin-top: 12px;
}
.nsd-footer-social a {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	color: var(--nsd-border) !important;
	text-decoration: none;
	letter-spacing: 0.02em;
	transition: color var(--nsd-transition-fast) var(--nsd-ease-out);
}
.nsd-footer-social a:hover { color: var(--nsd-white) !important; }

/* Footer — Blog "Derniers articles" : titres seuls, pas d'images */
/* Divi 5 : .et_pb_ajax_pagination_container wraps the grid — overflow visible */
.nsd-footer__latest .et_pb_ajax_pagination_container {
	overflow: visible !important;
	height: auto !important;
}
.nsd-footer__latest .et_pb_blog_posts {
	display: block !important;
	height: auto !important;
	grid-template-columns: 1fr !important;
}
.nsd-footer__latest article.et_pb_post {
	position: static !important;
	width: auto !important;
	margin: 0 !important;
	padding: 6px 0 !important;
	border-bottom: 1px solid rgba(255,255,255,0.1);
	background: none !important;
	box-shadow: none !important;
}
.nsd-footer__latest .et_pb_image_container,
.nsd-footer__latest .post-meta,
.nsd-footer__latest .post-content { display: none !important; }
.nsd-footer__latest .entry-title {
	font-size: var(--nsd-fs-xs) !important;
	font-family: var(--nsd-font-ui);
	font-weight: 500;
	margin: 0;
	line-height: 1.3;
}
.nsd-footer__latest .entry-title a { color: var(--nsd-border) !important; }
.nsd-footer__latest .entry-title a:hover { color: var(--nsd-white) !important; }

/* Variante sidebar « Les plus lus » (fond clair --nsd-surface) : ce module Loop a hérité de la
 * classe .nsd-footer__latest (copiée du widget footer "Derniers articles") — couleurs conçues
 * pour fond sombre #121212, illisibles ici (gris clair/blanc sur fond clair, contraste 1.47:1). */
.nsd-sidebar-col .nsd-footer__latest article.et_pb_post {
	border-bottom: 1px solid var(--nsd-border);
}
.nsd-sidebar-col .nsd-footer__latest .entry-title {
	font-size: var(--nsd-fs-sm) !important;
}
.nsd-sidebar-col .nsd-footer__latest .entry-title a { color: var(--nsd-ink) !important; }
.nsd-sidebar-col .nsd-footer__latest .entry-title a:hover { color: var(--nsd-accent) !important; }

/* ─────────────────────────────────────────────────────
 * 25. Section Vidéos — légende sous les vidéos
 * ───────────────────────────────────────────────────── */
.nsd-video-caption {
	text-align: center;
	margin-top: 10px;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-border);
}

/* ─────────────────────────────────────────────────────
 * 26. Corrections finales Divi 5 — polish
 * ───────────────────────────────────────────────────── */

/* Empêcher le débordement horizontal (ticker animation width: max-content) */
/* html { overflow-y: scroll; scrollbar-gutter: stable; } ← déplacé en section 2 */
body { overflow-x: hidden; }

/* Section Vidéos masquée tant qu'aucune vidéo n'est configurée */
#nsd-videos { display: none !important; }

/* Cacher la pagination "Entrées Plus Anciennes" dans les modules blog de la home */
#nsd-hero .pagination,
#nsd-magazine-grid .pagination,
.nsd-sidebar-col .pagination,
.nsd-footer__latest .pagination {
	display: none !important;
}

/* Bordure subtile sur les cartes magazine pour les délimiter */
#nsd-magazine-grid .nsd-card-feature article.et_pb_post {
	border: 1px solid var(--nsd-border);
	border-radius: 3px;
	padding: 16px !important;
	margin-bottom: 0 !important;
}
#nsd-magazine-grid .nsd-card-feature article.et_pb_post:hover {
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

/* Bordure bas sur articles du héro sidebar (plus de border-bottom conflictuel) */
.nsd-hero__sidebar article.et_pb_post:last-child { border-bottom: none; }

/* Navbar : réduire la hauteur de section en supprimant le padding Divi par défaut */
/* max-width reste à 1280px (règle globale) pour aligner le menu avec le reste du contenu */
#nsd-navbar.et_pb_section { padding-top: 0 !important; padding-bottom: 0 !important; }
#nsd-navbar .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; margin: 0 auto !important; }

/* Ticker : forcer le row en 100% largeur sans padding vertical */
#nsd-ticker.et_pb_section { padding-top: 0 !important; padding-bottom: 0 !important; }
#nsd-ticker .et_pb_row { padding-top: 0 !important; padding-bottom: 0 !important; }
#nsd-ticker .et_pb_column { padding: 0 !important; }

/* ─────────────────────────────────────────────────────
 * 27. Responsive overrides finaux (après sections 22-25)
 *     Ces règles DOIVENT être en dernier pour primer sur
 *     les overrides de colonnes !important des sections 22-23.
 * ───────────────────────────────────────────────────── */

/* Titre du site : éviter le retour à la ligne sur petits écrans */
@media (max-width: 767px) {
	#nsd-header-main .et_pb_text h2 {
		font-size: 1.1rem !important;
		white-space: nowrap;
	}
	#nsd-header-main {
		padding: 10px 0 !important;
	}
	/* Masquer la search sur tablette/mobile pour compacter le header */
	#nsd-header-main .et_pb_search {
		display: none !important;
	}
	/* Masquer le slogan sous le titre — trop verbeux sur mobile */
	.nsd-tagline {
		display: none !important;
	}
}

/* Tablette + mobile < 980px : colonnes empilées (hero + magazine) */
@media (max-width: 980px) {
	/* Hero : colonnes empilées */
	#nsd-hero .et_pb_row { flex-wrap: wrap !important; }
	/* Hero featured + sidebar → 1 colonne */
	#nsd-hero .et_pb_row > .nsd-hero__featured,
	#nsd-hero .et_pb_row > .nsd-hero__sidebar {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Magazine row : wrapping pour empiler les colonnes */
	#nsd-magazine-grid .et_pb_row {
		flex-wrap: wrap !important;
	}
	/* Magazine main col → 1 colonne (même spécificité que la règle 63% en section 22) */
	#nsd-magazine-grid .et_pb_row > .et_pb_column:not(.nsd-sidebar-col) {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Magazine sidebar col → 1 colonne */
	#nsd-magazine-grid .et_pb_row > .et_pb_column {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Magazine : cartes en 1 colonne (spécificité = section 22 qui a #nsd-magazine-grid) */
	#nsd-magazine-grid .nsd-card-feature .et_pb_blog_posts,
	.nsd-card-feature .et_pb_blog_posts {
		grid-template-columns: 1fr !important;
	}
	/* Sidebar : position statique */
	.nsd-sidebar-col { position: static !important; }
}

/* Mobile < 480px : ultra compact */
@media (max-width: 480px) {
	/* Header title encore plus petit */
	#nsd-header-main .et_pb_text h2 {
		font-size: 1rem !important;
	}
	/* Footer : empiler les colonnes */
	#nsd-footer .et_pb_row > .et_pb_column {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
}


/* =============================================================
 * SEMAINES 1-4 — Modules complémentaires
 * Ajouts 2026-06-05 : Single Post, Home, Archive, 404,
 *                     À propos, Contact, Vidéos
 * ============================================================= */

/* ─────────────────────────────────────────────────────
 * 28. Article Header (Single Post)
 * ───────────────────────────────────────────────────── */
#nsd-article-header {
	background-color: var(--nsd-white);
	padding: 32px 0 0;
	border-bottom: 1px solid var(--nsd-border);
}
.nsd-article-category {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nsd-accent);
	display: block;
	margin-bottom: 10px;
}
.nsd-article-category a { color: var(--nsd-accent); }
.nsd-article-category a:hover { color: #a01010; }
.nsd-article-title {
	font-family: var(--nsd-font-display);
	font-size: clamp(1.6rem, 3vw, 2.5rem);
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.02em;
	color: var(--nsd-ink);
	margin: 0 0 14px;
}
.nsd-article-subtitle {
	font-family: var(--nsd-font-body);
	font-size: 1.1rem;
	font-style: italic;
	color: var(--nsd-charcoal);
	line-height: 1.5;
	margin-bottom: 14px;
}
.nsd-article-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 16px;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
	padding: 14px 0;
	border-top: 1px solid var(--nsd-border);
}
.nsd-article-meta strong { color: var(--nsd-charcoal); font-weight: 600; }
.nsd-article-meta a { color: var(--nsd-charcoal); }
.nsd-article-meta__sep { color: var(--nsd-border); font-size: 0.85em; }
.nsd-reading-time { display: inline-flex; align-items: center; gap: 4px; }
.nsd-reading-time::before { content: "⏱"; font-style: normal; }

/* ─────────────────────────────────────────────────────
 * 29. Featured Image (Single Post)
 * ───────────────────────────────────────────────────── */
#nsd-article-image {
	padding: 0;
	background: var(--nsd-ink);
	max-height: 520px;
	overflow: hidden;
}
#nsd-article-image img { width: 100%; max-height: 520px; object-fit: cover; display: block; }
.nsd-article-image-caption {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
	text-align: right;
	padding: 6px 0 0;
	font-style: italic;
}

/* ─────────────────────────────────────────────────────
 * 30. Key Points Box (Single Post)
 * ───────────────────────────────────────────────────── */
.nsd-key-points {
	background-color: var(--nsd-accent-light);
	border-left: 4px solid var(--nsd-accent);
	border-radius: 0 4px 4px 0;
	padding: 20px 24px;
	margin-bottom: 28px;
}
.nsd-key-points__title {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-accent);
	margin-bottom: 12px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.nsd-key-points__title::before { content: "▶"; font-size: 0.65em; }
.nsd-key-points ul { margin: 0; padding-left: 20px; }
.nsd-key-points ul li {
	font-family: var(--nsd-font-body);
	font-size: var(--nsd-fs-sm);
	color: var(--nsd-charcoal);
	line-height: 1.6;
	margin-bottom: 6px;
}

/* ─────────────────────────────────────────────────────
 * 31. Author Box (Single Post)
 * ───────────────────────────────────────────────────── */
.nsd-author-box {
	display: flex;
	gap: 20px;
	align-items: flex-start;
	background-color: var(--nsd-surface);
	border: 1px solid var(--nsd-border);
	border-radius: 4px;
	padding: 24px;
	margin-top: 40px;
}
.nsd-author-box__avatar img {
	width: 64px; height: 64px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid var(--nsd-border);
}
.nsd-author-box__body { flex: 1; }
.nsd-author-box__label {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nsd-muted);
	display: block;
	margin-bottom: 4px;
}
.nsd-author-box__name {
	font-family: var(--nsd-font-display);
	font-size: var(--nsd-fs-md);
	font-weight: 700;
	color: var(--nsd-ink);
	margin: 0 0 8px;
}
.nsd-author-box__bio {
	font-family: var(--nsd-font-body);
	font-size: var(--nsd-fs-sm);
	color: var(--nsd-charcoal);
	line-height: 1.6;
	margin: 0;
}
@media (max-width: 480px) { .nsd-author-box { flex-direction: column; } }

/* ─────────────────────────────────────────────────────
 * 32. Post Navigation (précédent / suivant)
 * ───────────────────────────────────────────────────── */
.nsd-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 40px;
	padding-top: 24px;
	border-top: 1px solid var(--nsd-border);
}
.nsd-post-nav__item { flex: 0 1 48%; display: flex; flex-direction: column; gap: 4px; }
.nsd-post-nav__item--next { text-align: right; }
.nsd-post-nav__direction {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nsd-muted);
}
.nsd-post-nav__title {
	font-family: var(--nsd-font-display);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	color: var(--nsd-ink);
	line-height: 1.3;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.nsd-post-nav a:hover .nsd-post-nav__title { color: var(--nsd-accent); }
@media (max-width: 480px) {
	.nsd-post-nav { flex-direction: column; }
	.nsd-post-nav__item--next { text-align: left; }
}

/* ─────────────────────────────────────────────────────
 * 33. Tags de l'article
 * ───────────────────────────────────────────────────── */
.nsd-article-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 28px 0 24px;
}
.nsd-article-tags__label {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-muted);
	align-self: center;
}
.nsd-tag {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 600;
	color: var(--nsd-charcoal);
	background: var(--nsd-surface);
	border: 1px solid var(--nsd-border);
	border-radius: 2px;
	padding: 3px 10px;
	text-decoration: none;
	transition: background var(--nsd-transition-fast), color var(--nsd-transition-fast);
}
.nsd-tag:hover { background: var(--nsd-ink); color: var(--nsd-white); }

/* ─────────────────────────────────────────────────────
 * 34. Articles connexes (Single Post)
 * ───────────────────────────────────────────────────── */
#nsd-related {
	background-color: var(--nsd-surface);
	padding: 48px 0;
	border-top: 3px solid var(--nsd-ink);
}
#nsd-related .nsd-section-heading {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-ink);
	margin-bottom: 24px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--nsd-border);
}
#nsd-related .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
#nsd-related .et_pb_blog_posts {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 20px !important;
	height: auto !important;
}
#nsd-related article.et_pb_post {
	position: static !important;
	width: auto !important;
	margin: 0 !important;
	background: var(--nsd-white);
	border: 1px solid var(--nsd-border);
	border-radius: 3px;
	padding: 16px !important;
}
#nsd-related .et_pb_image_container img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
#nsd-related .entry-title { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-base); margin: 10px 0 4px; }
#nsd-related .entry-title a { color: var(--nsd-ink); }
#nsd-related .entry-title a:hover { color: var(--nsd-accent); }
#nsd-related .pagination { display: none !important; }
@media (max-width: 768px) {
	#nsd-related .et_pb_blog_posts { grid-template-columns: 1fr !important; }
}

/* ─────────────────────────────────────────────────────
 * 35. Breadcrumb (Archive + Single)
 * ───────────────────────────────────────────────────── */
.nsd-breadcrumb {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: var(--nsd-muted);
	margin-bottom: 12px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	align-items: center;
}
.nsd-breadcrumb a { color: var(--nsd-muted); text-decoration: none; }
.nsd-breadcrumb a:hover { color: var(--nsd-accent); }
.nsd-breadcrumb__sep { color: var(--nsd-border); }
.nsd-breadcrumb__current { color: var(--nsd-charcoal); font-weight: 600; }

/* ─────────────────────────────────────────────────────
 * 36. Archive Header (Archives catégorie)
 * ───────────────────────────────────────────────────── */
#nsd-archive-header {
	background-color: var(--nsd-ink);
	padding: 40px 0 32px;
}
#nsd-archive-header * { color: var(--nsd-white) !important; }
.nsd-archive-header__eyebrow {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nsd-muted) !important;
	display: block;
	margin-bottom: 8px;
}
.nsd-archive-header__title {
	font-family: var(--nsd-font-display);
	font-size: clamp(1.8rem, 4vw, 3rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
}
.nsd-archive-header__desc {
	font-family: var(--nsd-font-body);
	font-size: var(--nsd-fs-base);
	color: rgba(255,255,255,0.75) !important;
	line-height: 1.6;
	max-width: 680px;
	margin-bottom: 16px;
}
.nsd-archive-header__count {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	color: rgba(255,255,255,0.5) !important;
	border-top: 1px solid rgba(255,255,255,0.15);
	padding-top: 14px;
	display: block;
}

/* ─────────────────────────────────────────────────────
 * 37. Stats animées (Home + À propos)
 * ───────────────────────────────────────────────────── */
#nsd-stats {
	background-color: var(--nsd-ink);
	padding: 40px 0;
}
#nsd-stats .et_pb_number_counter { text-align: center; padding: 16px; }
#nsd-stats .et_pb_number_counter .et_pb_counter_title {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nsd-border);
	display: block;
	margin-top: 6px;
}
#nsd-stats .et_pb_number_counter .et_pb_counter_amount {
	font-family: var(--nsd-font-display);
	font-size: clamp(2rem, 4vw, 3rem);
	font-weight: 700;
	color: var(--nsd-white);
}
@media (max-width: 767px) {
	#nsd-stats .et_pb_row { flex-wrap: wrap !important; }
	#nsd-stats .et_pb_number_counter { flex: 0 0 50%; }
}

/* ─────────────────────────────────────────────────────
 * 38. Sections Tech + Analyse & Opinion (Home)
 * ───────────────────────────────────────────────────── */
#nsd-cat-tech .et_pb_text h3,
#nsd-cat-opinion .et_pb_text h3 {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-md);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	border-top: 2px solid var(--nsd-ink);
	padding-top: 12px;
	margin: 0 0 16px;
	position: relative;
}
/* Accent rouge (cohérence avec le magazine grid §22) */
#nsd-cat-tech .et_pb_text h3::before,
#nsd-cat-opinion .et_pb_text h3::before {
	content: "";
	position: absolute;
	top: -2px;
	left: 0;
	width: 56px;
	height: 2px;
	background: var(--nsd-accent);
}
#nsd-cat-opinion .nsd-card-opinion .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
#nsd-cat-opinion .nsd-card-opinion .et_pb_blog_posts {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 16px !important;
	height: auto !important;
}
#nsd-cat-opinion .nsd-card-opinion article.et_pb_post {
	position: static !important;
	width: auto !important;
	margin: 0 !important;
	border-left: 3px solid var(--nsd-accent);
	padding: 12px 14px !important;
	background: var(--nsd-surface) !important;
}
#nsd-cat-opinion .nsd-card-opinion .et_pb_image_container { display: none !important; }
#nsd-cat-opinion .nsd-card-opinion .entry-title { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-sm); line-height: 1.35; margin: 0 0 6px; }
#nsd-cat-opinion .nsd-card-opinion .pagination { display: none !important; }
@media (max-width: 980px) {
	#nsd-cat-opinion .nsd-card-opinion .et_pb_blog_posts { grid-template-columns: repeat(2, 1fr) !important; }
}

/* ─────────────────────────────────────────────────────
 * 39. À Propos — Layout page dédiée
 * ───────────────────────────────────────────────────── */
#nsd-about-hero { background-color: var(--nsd-ink); padding: 80px 0 64px; text-align: center; }
#nsd-about-hero h1 {
	font-family: var(--nsd-font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-weight: 700;
	color: var(--nsd-white);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 20px;
}
#nsd-about-hero p { font-family: var(--nsd-font-body); font-size: 1.15rem; color: rgba(255,255,255,0.75); line-height: 1.7; max-width: 680px; margin: 0 auto; }
#nsd-about-values { background-color: var(--nsd-white); padding: 64px 0; border-top: 3px solid var(--nsd-ink); }
.nsd-value-card { text-align: center; padding: 24px; }
.nsd-value-card__icon { font-size: 2rem; margin-bottom: 16px; display: block; }
.nsd-value-card h3 { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-md); font-weight: 700; color: var(--nsd-ink); margin: 0 0 10px; }
.nsd-value-card p { font-family: var(--nsd-font-body); font-size: var(--nsd-fs-sm); color: var(--nsd-charcoal); line-height: 1.6; }
#nsd-about-stats { background-color: var(--nsd-surface); padding: 56px 0; }
#nsd-about-stats .et_pb_counter_amount { font-family: var(--nsd-font-display); font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 700; color: var(--nsd-accent); }
#nsd-about-stats .et_pb_counter_title { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-sm); text-transform: uppercase; letter-spacing: 0.08em; color: var(--nsd-muted); display: block; margin-top: 6px; }
#nsd-about-team { background-color: var(--nsd-white); padding: 64px 0; border-top: 3px solid var(--nsd-ink); }
.nsd-team-card { text-align: center; padding: 20px; }
.nsd-team-card img { width: 100px; height: 100px; border-radius: 50%; object-fit: cover; margin: 0 auto 14px; border: 3px solid var(--nsd-border); }
.nsd-team-card__name { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-md); font-weight: 700; color: var(--nsd-ink); margin: 0 0 4px; }
.nsd-team-card__role { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-xs); font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--nsd-muted); }
#nsd-about-cta { background-color: var(--nsd-ink); padding: 56px 0; text-align: center; }
#nsd-about-cta h2 { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-lg); color: var(--nsd-white); margin-bottom: 16px; }
#nsd-about-cta p { font-family: var(--nsd-font-body); color: rgba(255,255,255,0.7); margin-bottom: 28px; }
.nsd-btn-primary {
	display: inline-block;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nsd-white);
	background: var(--nsd-accent);
	border: 2px solid var(--nsd-accent);
	padding: 12px 32px;
	border-radius: 3px;
	text-decoration: none;
	transition: background var(--nsd-transition-base), transform var(--nsd-transition-fast);
}
.nsd-btn-primary:hover { background: #a01010; border-color: #a01010; color: var(--nsd-white); transform: translateY(-1px); }

/* ─────────────────────────────────────────────────────
 * 40. Contact — Formulaire + Info
 * ───────────────────────────────────────────────────── */
#nsd-contact-hero { background-color: var(--nsd-ink); padding: 56px 0 40px; text-align: center; }
#nsd-contact-hero h1 { font-family: var(--nsd-font-display); font-size: clamp(2rem, 4vw, 3rem); color: var(--nsd-white); letter-spacing: -0.02em; margin: 0 0 12px; }
#nsd-contact-hero p { font-family: var(--nsd-font-body); color: rgba(255,255,255,0.7); }
#nsd-contact-body { padding: 56px 0; background: var(--nsd-white); }
#nsd-contact-body .et_pb_contact_form_container { background: var(--nsd-surface); border: 1px solid var(--nsd-border); border-radius: 4px; padding: 32px; }
#nsd-contact-body .et_pb_contact_field input,
#nsd-contact-body .et_pb_contact_field textarea {
	background: var(--nsd-white);
	border: 1px solid var(--nsd-border);
	border-radius: 3px;
	padding: 10px 14px;
	font-family: var(--nsd-font-body);
	font-size: var(--nsd-fs-sm);
	color: var(--nsd-ink);
	width: 100%;
	transition: border-color var(--nsd-transition-fast);
}
#nsd-contact-body .et_pb_contact_field input:focus,
#nsd-contact-body .et_pb_contact_field textarea:focus { border-color: var(--nsd-accent); outline: none; box-shadow: 0 0 0 3px rgba(198,40,40,0.1); }
#nsd-contact-body .et_pb_contact_form_submit {
	background: var(--nsd-accent) !important;
	color: var(--nsd-white) !important;
	font-family: var(--nsd-font-ui) !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.06em !important;
	border: none !important;
	padding: 12px 28px !important;
	border-radius: 3px !important;
	cursor: pointer !important;
}
.nsd-contact-info-block { padding: 24px; background: var(--nsd-surface); border: 1px solid var(--nsd-border); border-radius: 4px; margin-bottom: 16px; }
.nsd-contact-info-block h4 { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--nsd-ink); margin: 0 0 6px; }
.nsd-contact-info-block p { font-family: var(--nsd-font-body); font-size: var(--nsd-fs-sm); color: var(--nsd-charcoal); margin: 0; }
#nsd-contact-faq { background: var(--nsd-surface); padding: 56px 0; border-top: 1px solid var(--nsd-border); }
#nsd-contact-faq .et_pb_toggle_title { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-md); font-weight: 700; color: var(--nsd-ink); }
#nsd-contact-faq .et_pb_toggle_content { font-family: var(--nsd-font-body); font-size: var(--nsd-fs-sm); color: var(--nsd-charcoal); line-height: 1.7; }

/* ─────────────────────────────────────────────────────
 * 41. Vidéos — Page dédiée
 * ───────────────────────────────────────────────────── */
#nsd-video-hero { background-color: var(--nsd-ink); padding: 48px 0 32px; }
#nsd-video-hero h1 { font-family: var(--nsd-font-display); font-size: clamp(1.8rem, 4vw, 2.8rem); color: var(--nsd-white); letter-spacing: -0.02em; margin: 0 0 16px; }
#nsd-video-hero p { font-family: var(--nsd-font-body); color: rgba(255,255,255,0.7); }
#nsd-video-featured { background: var(--nsd-ink); padding: 0 0 48px; }
#nsd-video-featured .et_pb_video .et_pb_video_box { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: 4px; }
#nsd-video-featured .et_pb_video .et_pb_video_box iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
#nsd-video-featured h2.nsd-video-title { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-lg); color: var(--nsd-white); margin: 16px 0 8px; }
#nsd-video-featured p.nsd-video-desc { font-family: var(--nsd-font-body); font-size: var(--nsd-fs-sm); color: rgba(255,255,255,0.65); line-height: 1.6; }
#nsd-video-grid { background: var(--nsd-surface); padding: 48px 0; }
.nsd-video-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.nsd-video-filter {
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nsd-charcoal);
	background: var(--nsd-white);
	border: 1px solid var(--nsd-border);
	border-radius: 20px;
	padding: 5px 14px;
	text-decoration: none;
	transition: all var(--nsd-transition-fast);
}
.nsd-video-filter:hover, .nsd-video-filter--active { background: var(--nsd-ink); color: var(--nsd-white); border-color: var(--nsd-ink); }
.nsd-video-card { background: var(--nsd-white); border: 1px solid var(--nsd-border); border-radius: 3px; overflow: hidden; transition: box-shadow var(--nsd-transition-base); }
.nsd-video-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
.nsd-video-card__body { padding: 14px; }
.nsd-video-card__title { font-family: var(--nsd-font-display); font-size: var(--nsd-fs-sm); font-weight: 700; color: var(--nsd-ink); line-height: 1.3; margin: 0 0 6px; }
.nsd-video-card__meta { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-xs); color: var(--nsd-muted); }

/* ─────────────────────────────────────────────────────
 * 42. Page 404
 * ───────────────────────────────────────────────────── */
#nsd-404-hero { background-color: var(--nsd-ink); padding: 80px 0 64px; text-align: center; }
.nsd-404-number { font-family: var(--nsd-font-display); font-size: clamp(5rem, 15vw, 10rem); font-weight: 700; color: var(--nsd-accent); line-height: 1; letter-spacing: -0.05em; margin: 0 0 8px; display: block; }
.nsd-404-title { font-family: var(--nsd-font-display); font-size: clamp(1.4rem, 3vw, 2rem); color: var(--nsd-white); margin: 0 0 12px; }
.nsd-404-text { font-family: var(--nsd-font-body); font-size: var(--nsd-fs-base); color: rgba(255,255,255,0.65); max-width: 480px; margin: 0 auto 28px; line-height: 1.7; }
.nsd-btn-secondary {
	display: inline-block;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nsd-ink);
	background: var(--nsd-white);
	border: 2px solid var(--nsd-white);
	padding: 12px 32px;
	border-radius: 3px;
	text-decoration: none;
	transition: background var(--nsd-transition-base), color var(--nsd-transition-base);
}
.nsd-btn-secondary:hover { background: transparent; color: var(--nsd-white); }
#nsd-404-search { background: var(--nsd-surface); padding: 48px 0; text-align: center; }
#nsd-404-search .nsd-search-label { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--nsd-muted); margin-bottom: 16px; display: block; }
#nsd-404-search .et_pb_search { max-width: 560px; margin: 0 auto; }
#nsd-404-suggestions { padding: 48px 0; background: var(--nsd-white); }
#nsd-404-suggestions h3 { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-sm); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--nsd-muted); margin-bottom: 24px; border-top: 3px solid var(--nsd-ink); padding-top: 12px; }
#nsd-404-suggestions .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
#nsd-404-suggestions .et_pb_blog_posts { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 20px !important; height: auto !important; }
#nsd-404-suggestions article.et_pb_post { position: static !important; width: auto !important; margin: 0 !important; border: 1px solid var(--nsd-border); border-radius: 3px; padding: 14px !important; }
#nsd-404-suggestions .pagination { display: none !important; }
#nsd-404-cats { background: var(--nsd-surface); padding: 40px 0; border-top: 1px solid var(--nsd-border); }
.nsd-404-cat-link {
	display: block;
	text-align: center;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-sm);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nsd-ink);
	border: 2px solid var(--nsd-border);
	border-radius: 3px;
	padding: 14px 8px;
	text-decoration: none;
	transition: border-color var(--nsd-transition-fast), background var(--nsd-transition-fast);
}
.nsd-404-cat-link:hover { border-color: var(--nsd-accent); background: var(--nsd-accent-light); color: var(--nsd-accent); }
@media (max-width: 768px) {
	#nsd-404-suggestions .et_pb_blog_posts { grid-template-columns: 1fr !important; }
}

/* ─────────────────────────────────────────────────────
 * 43. Footer — Newsletter inline + Légal + RSS
 * ───────────────────────────────────────────────────── */
.nsd-footer-newsletter-inline form { display: flex; gap: 0; margin-top: 12px; }
.nsd-footer-newsletter-inline input[type="email"] {
	flex: 1;
	padding: 9px 12px;
	background: rgba(255,255,255,0.07);
	border: 1px solid rgba(255,255,255,0.2);
	border-right: none;
	border-radius: 3px 0 0 3px;
	color: var(--nsd-white);
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	min-width: 0;
}
.nsd-footer-newsletter-inline input[type="submit"] {
	background: var(--nsd-accent);
	color: var(--nsd-white);
	border: 1px solid var(--nsd-accent);
	border-radius: 0 3px 3px 0;
	padding: 9px 14px;
	font-family: var(--nsd-font-ui);
	font-size: var(--nsd-fs-xs);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	cursor: pointer;
}
.nsd-footer-rss a { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-xs); color: var(--nsd-muted) !important; display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; }
.nsd-footer-rss a:hover { color: var(--nsd-white) !important; }
.nsd-footer-legal { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: center; margin-top: 10px; }
.nsd-footer-legal a { font-family: var(--nsd-font-ui) !important; font-size: var(--nsd-fs-xs) !important; color: var(--nsd-muted) !important; }
.nsd-footer-legal a:hover { color: var(--nsd-white) !important; }

/* ─────────────────────────────────────────────────────
 * 43b. Single Post — fix colonnes 66%/34% (Divi 5 ignore columnStructure)
 * ───────────────────────────────────────────────────── */
#nsd-article-body .et_pb_row {
	flex-wrap: nowrap !important;
}
#nsd-article-body .et_pb_row > .nsd-article-content {
	flex: 0 0 calc(66% - 12px) !important;
	width: calc(66% - 12px) !important;
	max-width: calc(66% - 12px) !important;
}
#nsd-article-body .et_pb_row > .nsd-sidebar-col {
	flex: 0 0 calc(34% - 12px) !important;
	width: calc(34% - 12px) !important;
	max-width: calc(34% - 12px) !important;
}
@media (max-width: 980px) {
	#nsd-article-body .et_pb_row { flex-wrap: wrap !important; }
	#nsd-article-body .et_pb_row > .nsd-article-content,
	#nsd-article-body .et_pb_row > .nsd-sidebar-col {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	#nsd-article-body .nsd-sidebar-col { position: static !important; }
}

/* ─────────────────────────────────────────────────────
 * 44. Archive — grille + pagination visible
 * ───────────────────────────────────────────────────── */
#nsd-archive-content { padding: 40px 0; }
#nsd-archive-content .et_pb_ajax_pagination_container { overflow: visible !important; height: auto !important; }
#nsd-archive-content .et_pb_blog_posts {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 24px !important;
	height: auto !important;
}
#nsd-archive-content article.et_pb_post { position: static !important; width: auto !important; margin: 0 !important; border: 1px solid var(--nsd-border); border-radius: 3px; padding: 16px !important; }
#nsd-archive-content .et_pb_image_container img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
#nsd-archive-content .entry-title { font-size: var(--nsd-fs-md); margin: 10px 0 6px; }
#nsd-archive-content .pagination { display: flex !important; justify-content: center; gap: 8px; margin-top: 32px; }
#nsd-archive-content .pagination a,
#nsd-archive-content .pagination span { font-family: var(--nsd-font-ui); font-size: var(--nsd-fs-sm); padding: 7px 12px; border: 1px solid var(--nsd-border); border-radius: 3px; color: var(--nsd-ink); }
#nsd-archive-content .pagination .current { background: var(--nsd-ink); color: var(--nsd-white); border-color: var(--nsd-ink); }
@media (max-width: 768px) {
	#nsd-archive-content .et_pb_blog_posts { grid-template-columns: 1fr !important; }
}

/* ─────────────────────────────────────────────────────
 * 45. Responsive overrides finaux (semaines 1-4)
 * ───────────────────────────────────────────────────── */
@media (max-width: 980px) {
	#nsd-related .et_pb_blog_posts { grid-template-columns: repeat(2, 1fr) !important; }
	#nsd-cat-opinion .nsd-card-opinion .et_pb_blog_posts { grid-template-columns: repeat(2, 1fr) !important; }
	#nsd-404-suggestions .et_pb_blog_posts { grid-template-columns: repeat(2, 1fr) !important; }
	#nsd-archive-content .et_pb_blog_posts { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 767px) {
	.nsd-author-box { gap: 14px; padding: 16px; }
	.nsd-author-box__avatar img { width: 50px; height: 50px; }
	#nsd-about-hero, #nsd-about-cta { padding: 48px 0; }
	#nsd-contact-hero { padding: 40px 0 28px; }
	.nsd-post-nav { flex-direction: column; }
	.nsd-post-nav__item--next { text-align: left; }
}

/* ─────────────────────────────────────────────────────
 * 46. Design Level C — Filets verticaux entre cartes magazine
 * ───────────────────────────────────────────────────── */

/* Filets verticaux 1px entre cartes magazine (signature Guardian) */
#nsd-magazine-grid .et_pb_blog_posts .et_pb_post {
	border-right: 1px solid var(--nsd-border);
}
#nsd-magazine-grid .et_pb_blog_posts .et_pb_post:nth-child(3n),
#nsd-magazine-grid .et_pb_blog_posts .et_pb_post:last-child {
	border-right: none;
}
