/**
 * Darb Race — châssis : bandeau d'annonce, en-tête, bandeau de page, pied de
 * page, barre d'inscription mobile.
 *
 * Les couleurs et paddings de base sont désormais posés dans les réglages Porto
 * (CSS recompilé) et dans les modèles Porto Builder 1005 / 1028 : ce fichier
 * n'a plus à lutter contre le thème, il ne fait que dessiner ce que la maquette
 * dessine. Aucun !important n'est nécessaire ici.
 */

:root {
	/* Une seule grille pour tout le site : celle du conteneur Porto (1240 px,
	   960 px entre 992 et 1269 px), avec ses gouttières (15 / 30 / 20 px). */
	--darb-largeur: 1240px;
	--darb-gouttiere: 15px;
}

@media (min-width: 992px) and (max-width: 1269px) { :root { --darb-largeur: 960px; } }
@media (max-width: 991px) { :root { --darb-gouttiere: 30px; } }
@media (max-width: 575px) { :root { --darb-gouttiere: 20px; } }

.darb-conteneur {
	max-width: var(--darb-largeur);
	margin-inline: auto;
	padding-inline: var(--darb-gouttiere);
	box-sizing: border-box;
}

/* -------------------------------------------------------------------------
 * 0. Éléments partagés : sections à fond perdu, boutons, sur-titres.
 * ---------------------------------------------------------------------- */
/* Sections à fond perdu. Le recentrage passe par une translation plutôt que
   par une marge négative : une marge raccourcie posée par la classe voisine
   (.darb-frise, .darb-cartouche-reperes) remettait la compensation à zéro et
   décalait toute la bande vers la droite sur mobile. */
.darb-bleed {
	position: relative;
	left: 50%;
	width: 100vw;
	max-width: 100vw;
	transform: translateX(-50%);
}

/* ---- boutons de la maquette ---- */
.darb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	min-height: var(--darb-touch);
	padding: 0 26px;
	border-radius: var(--darb-rayon-pastille);
	background: var(--darb-corail);
	color: var(--darb-creme);
	font-family: var(--darb-font-text);
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	border: 1.5px solid transparent;
	transition: background 140ms ease-out, color 140ms ease-out;
}

.darb-btn:hover,
.darb-btn:focus-visible { background: var(--darb-vert); color: #fff; }

.darb-btn--fantome { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.55); color: #fff; }
.darb-btn--fantome:hover { background: #fff; color: var(--darb-vert); }

.darb-btn--fantome-vert { background: none; border-color: var(--darb-vert); color: var(--darb-vert); font-size: 0.875rem; min-height: 40px; padding: 0 20px; }
.darb-btn--fantome-vert:hover { background: var(--darb-vert); color: #fff; }

.darb-btn--vert { background: var(--darb-vert); color: #fff; }
.darb-btn--vert:hover { background: var(--darb-vert-2); }

.darb-btn--ambre { background: none; border-color: var(--darb-ambre); color: var(--darb-ambre); }
.darb-btn--ambre:hover { background: var(--darb-ambre); color: var(--darb-ink); }

.darb-btn--blanc { background: #fff; color: #0B1F3F; font-size: 0.85rem; min-height: 40px; }
.darb-btn--blanc:hover { background: var(--darb-ambre); color: #0B1F3F; }

.darb-lien { color: var(--darb-vert); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* ---- sur-titres et têtes de section ---- */
.darb-sur {
	font-family: var(--darb-font-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: var(--darb-micro);
	text-transform: uppercase;
	margin: 0 0 10px;
}

.darb-sur--corail { color: var(--darb-ambre-fonce, #B8431F); }
.darb-sur--ambre { color: var(--darb-ambre); }
.darb-sur--gris { color: var(--darb-muted); text-align: center; margin-bottom: 22px; }
.darb-sur--bleu { color: #7FA6FF; }

.darb-section-tete {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 24px;
	margin: 0 0 22px;
}

.darb-section-tete h2 { margin: 0 0 4px; font-size: clamp(1.6rem, 1.3rem + 1vw, 2rem); }
.darb-sous { color: var(--darb-muted); font-size: 0.95rem; margin: 0; }


/* -------------------------------------------------------------------------
 * 1. Bandeau d'annonce (au-dessus de l'en-tête).
 * ---------------------------------------------------------------------- */
#header .darb-bandeau-widget .elementor-widget-container { padding: 0; }
#header .darb-bandeau-widget p { margin: 0; }

.darb-bandeau {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 6px 14px;
	padding: 7px var(--darb-gouttiere);
	color: var(--darb-creme);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
}

.darb-bandeau .darb-statut {
	font: inherit;
	text-transform: none;
	letter-spacing: 0;
	color: inherit;
}

.darb-bandeau__btn,
#header .darb-bandeau__btn {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 0 14px;
	border-radius: var(--darb-rayon-pastille);
	background: var(--darb-vert);
	color: #fff;
	font-family: var(--darb-font-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: var(--darb-caps);
	text-transform: uppercase;
	text-decoration: none;
}

#header .darb-bandeau__btn:hover,
#header .darb-bandeau__btn:focus-visible {
	background: var(--darb-vert-2);
	color: #fff;
}

@media (max-width: 640px) {
	.darb-bandeau__date { display: none; }
}

/* -------------------------------------------------------------------------
 * 2. En-tête.
 * ---------------------------------------------------------------------- */
#header {
	background: var(--darb-vert);
	box-shadow: none;
}

#header .header-main > .elementor-container {
	margin-inline: auto;
	width: 100%;
	max-width: var(--darb-largeur);
}

#header .header-main .elementor-widget-wrap,
#header .header-main .elementor-column > .elementor-widget-wrap { padding: 0 var(--darb-gouttiere); }

#header .darb-entete__logo { margin: 0; }

/* Le logo est un bitmap : aucun arrondi, aucune pastille ajoutée, la même
   largeur partout (en-tête, en-tête collant, pied de page). */
#header .logo img,
#header.sticky-header .logo img,
.darb-pied__logo img {
	border-radius: 0;
	max-width: 132px;
}

#header .main-menu > li.menu-item > a {
	color: var(--darb-creme);
}

#header .main-menu > li.menu-item:hover > a,
#header .main-menu > li.menu-item > a:focus-visible {
	color: #fff;
}

#header .main-menu > li.menu-item.active > a,
#header .main-menu > li.menu-item.current-menu-ancestor > a {
	color: var(--darb-ambre);
}

/* Flèche des entrées à sous-menu, comme la maquette. */
#header .main-menu > li.has-sub > a::after {
	content: "\25BE";
	font-size: 0.75em;
	margin-left: 0.35em;
	opacity: 0.85;
}

/* Le bouton d'inscription : pastille corail de 38 px, indépendante du padding
   des autres entrées de menu. */
#header .main-menu > li.darb-menu-cta { margin-left: 10px; }

#header .main-menu > li.darb-menu-cta > a,
#header.sticky-header .main-menu > li.darb-menu-cta > a,
#header .main-menu-wrap .main-menu > li.darb-menu-cta > a {
	background: var(--darb-corail);
	color: var(--darb-creme);
	border-radius: var(--darb-rayon-pastille);
	padding: 0 18px;
	height: 38px;
	line-height: 38px;
	margin: 9px 0;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
}

#header .main-menu > li.darb-menu-cta:hover > a,
#header .main-menu > li.darb-menu-cta > a:focus-visible {
	background: var(--darb-creme);
	color: var(--darb-vert);
}

/* Sous-menus : panneau blanc arrondi, ombre douce, entrées en casse normale. */
#header .main-menu .narrow .popup { padding-top: 10px; }

#header .main-menu .narrow .popup > .inner {
	background: #fff;
	border-radius: 10px;
	box-shadow: 0 14px 34px rgba(6, 50, 63, 0.22);
	padding: 6px 0;
	min-width: 235px;
	border: 0;
}

#header .main-menu .narrow ul.sub-menu > li.menu-item > a {
	padding: 11px 18px;
	font-family: var(--darb-font-text);
	font-size: 0.9rem;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--darb-vert);
	border: 0;
}

#header .main-menu .narrow ul.sub-menu > li.menu-item:hover > a,
#header .main-menu .narrow ul.sub-menu > li.menu-item > a:focus-visible {
	background: var(--darb-sable);
	color: var(--darb-corail);
}

/* En-tête collant : même vert, ombre légère. */
#header.sticky-header .header-main,
#header.sticky-header .main-menu-wrap {
	background: var(--darb-vert);
}

#header.sticky-header { box-shadow: 0 6px 24px rgba(6, 50, 63, 0.25); }

/* Bouton du menu mobile. */
#header .mobile-toggle {
	width: var(--darb-touch);
	height: var(--darb-touch);
	border-radius: var(--darb-rayon-petit);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	margin: 0;
}

/* Panneau du menu mobile. */
#nav-panel {
	background: var(--darb-vert-2);
	color: var(--darb-creme);
}

#nav-panel .mobile-sidebar .menu-item > a,
#nav-panel .mobile-nav-wrap a {
	color: var(--darb-creme);
	font-family: var(--darb-font-display);
	text-transform: uppercase;
	letter-spacing: var(--darb-caps);
	font-weight: 700;
	min-height: var(--darb-touch);
	display: flex;
	align-items: center;
}

#nav-panel .mobile-nav-wrap .sub-menu a {
	font-family: var(--darb-font-text);
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
	opacity: 0.9;
}

/* -------------------------------------------------------------------------
 * 3. Bandeau de page (remplace le « page-top » de Porto).
 * ---------------------------------------------------------------------- */
.darb-page-hero {
	background: var(--darb-vert);
	color: #fff;
	padding: 40px 0 30px;
}

.darb-page-hero__sur {
	font-family: var(--darb-font-display);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: var(--darb-micro);
	text-transform: uppercase;
	color: var(--darb-ambre);
	margin: 0 0 8px;
}

.darb-page-hero h1 {
	color: #fff;
	margin: 0 0 8px;
	font-size: clamp(2rem, 1.4rem + 2vw, 2.6rem);
	line-height: 1.05;
}

.darb-page-hero__chapo {
	color: var(--darb-menthe);
	font-size: 1.0625rem;
	max-width: 60ch;
	margin: 0;
}

/* Le contenu des pages retrouve son air sans le padding posé par l'ancien CSS Porto. */
body:not(.home) .main-content {
	padding-top: 2.25rem;
	padding-bottom: 3.5rem;
}

/* Porto imprime encore un titre caché pour les extraits enrichis : il ne doit
   jamais prendre de place. */
.page-content > h2.entry-title,
article.page > h2.entry-title { display: none; }

/* -------------------------------------------------------------------------
 * 4. Pied de page.
 * ---------------------------------------------------------------------- */
#footer {
	background: var(--darb-vert);
	color: var(--darb-menthe);
	font-size: 0.875rem;
}

#footer .elementor-widget-text-editor .elementor-widget-container { padding: 0; }
#footer .darb-pied-section > .elementor-container { max-width: none; }
#footer .darb-pied-section .elementor-widget-wrap { padding: 0; }

.darb-pied {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1fr;
	gap: 24px 32px;
	padding: 44px 0 30px;
}

@media (max-width: 900px) { .darb-pied { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .darb-pied { grid-template-columns: 1fr; } }

.darb-pied p, .darb-pied ul { margin: 0; }
.darb-pied ul { list-style: none; padding: 0; }
.darb-pied li { margin: 0 0 9px; }

.darb-pied__logo img {
	width: 128px;
	height: auto;
	border-radius: 0;
	display: block;
	margin-bottom: 12px;
}

.darb-pied__slogan { color: var(--darb-menthe); font-weight: 600; margin-bottom: 4px; }
.darb-pied__info { color: var(--darb-menthe); line-height: 1.55; }

.darb-pied__titre {
	font-family: var(--darb-font-display);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: var(--darb-micro);
	text-transform: uppercase;
	color: #fff;
	margin: 6px 0 14px;
}

#footer .darb-pied a {
	color: #DFEDE2;
	text-decoration: none;
	display: inline-block;
	padding: 3px 0;
	font-size: 0.875rem;
}

#footer .darb-pied a:hover,
#footer .darb-pied a:focus-visible { color: #fff; text-decoration: underline; }

.darb-pied__social {
	display: flex;
	gap: 8px;
	margin-top: 14px;
}

#footer .darb-pied__social a {
	width: 36px;
	height: 36px;
	padding: 0;
	border-radius: 50%;
	background: var(--darb-creme);
	color: var(--darb-vert-2);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 0.95rem;
}

#footer .darb-pied__social a:hover,
#footer .darb-pied__social a:focus-visible { background: var(--darb-ambre); color: var(--darb-vert-2); text-decoration: none; }

.darb-pied__bas {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 6px 24px;
	padding: 16px 0 22px;
	border-top: 1px solid rgba(255, 246, 236, 0.18);
	font-size: 0.8rem;
	color: var(--darb-menthe);
}

/* -------------------------------------------------------------------------
 * 5. Barre d'inscription au pouce, sur mobile.
 * ---------------------------------------------------------------------- */
@media (max-width: 991px) {
	body.darb-cta-mobile { padding-bottom: 4.5rem; }

	.darb-cta-barre {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 900;
		background: var(--darb-creme);
		border-top: 1px solid var(--darb-filet);
		padding: 0.6rem 1rem;
		display: flex;
		justify-content: center;
	}

	.darb-cta-barre a {
		font-family: var(--darb-font-display);
		text-transform: uppercase;
		letter-spacing: var(--darb-caps);
		font-weight: 700;
		background: var(--darb-corail);
		color: var(--darb-creme);
		text-decoration: none;
		border-radius: var(--darb-rayon-pastille);
		padding: 0 1.5rem;
		min-height: var(--darb-touch);
		display: inline-flex;
		align-items: center;
		width: 100%;
		max-width: 26rem;
		justify-content: center;
	}
}

@media (min-width: 992px) {
	.darb-cta-barre { display: none; }
}

/* Le bouton du menu mobile n'a rien à faire sur grand écran. */
@media (min-width: 992px) {
	#header .darb-entete__burger,
	#header .header-main .mobile-toggle { display: none; }
}

/* Logo à gauche, navigation à droite. La barre de l'en-tête est déjà une boîte
   flexible : une marge automatique suffit à pousser le menu contre le bord
   droit du conteneur, où il s'aligne sur le reste de la grille. */
@media (min-width: 992px) {
	/* Plutôt que de disputer à Porto ses marges automatiques, dont la
	   répartition dépend d'éléments masqués, on donne au bloc de navigation
	   tout l'espace restant et on aligne la liste à droite à l'intérieur. Le
	   résultat ne dépend alors que de cette règle. */
	#header .header-main .elementor-widget-wrap > .elementor-widget-porto_hb_menu {
		flex: 1 1 auto;
		margin: 0;
	}

	#header .header-main .main-menu {
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}
}

/* Sur tablette et mobile, seule la gouttière du conteneur Porto s'applique :
   la section et la colonne Elementor de l'en-tête n'ajoutent rien. */
@media (max-width: 991px) {
	#header .header-main.elementor-section { padding-left: 0; padding-right: 0; margin-left: 0; margin-right: 0; }
	#header .header-main .elementor-column > .elementor-widget-wrap { padding: 0; }
}

#footer .elementor-column-gap-default > .elementor-column > .elementor-element-populated { padding: 0; }
#footer .darb-pied-section > .elementor-container { margin-inline: 0; }

/* L'exposant du numéro d'édition reste une lettre en bas de casse. */
.darb-hero__badge sup, .darb-sous sup, .darb-suivre__titre sup, .darb-page-hero__sur sup {
	text-transform: none;
	font-size: 0.7em;
	line-height: 0;
	vertical-align: super;
	margin-right: 0.25em;
}
