/*
Theme Name: Les Joueurs de Flûte
Theme URI: http://192.168.1.253:3000/cocogitea/Site-4L-Trophy
Author: Équipage Les Joueurs de Flûte
Description: Thème en blocs du site de l'équipage Les Joueurs de Flûte au 4L Trophy 2027. Noir, blanc cassé et orange F4, typographie Archivo, motif dunes, compteur kilométrique et journal en cases de roadbook.
Version: 1.10.1
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: blog, one-column, custom-logo, custom-menu, editor-style, featured-images, full-site-editing, block-patterns, block-styles, wide-blocks
Text Domain: ljdf
*/

/* ==========================================================================
   Bases
   ========================================================================== */

:root {
	--ljdf-trait: 2px;
	--ljdf-rayon: 14px;
}

h1, h2, h3,
.wp-block-site-title,
.ljdf-titre-elargi {
	font-stretch: 118%;
}

h4, h5, h6 {
	text-transform: none;
	letter-spacing: 0;
}

/* Liens dans le texte : noir souligné orange. */
a:where(:not(.wp-element-button)) {
	text-decoration-color: var(--wp--preset--color--orange);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.3em;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--orange);
	outline-offset: 3px;
}

/* Sections sombres : texte clair par défaut, liens hérités. */
.has-noir-background-color,
.has-anthracite-background-color {
	color: var(--wp--preset--color--blanc-casse);
}
.has-noir-background-color a:where(:not(.wp-element-button)),
.has-anthracite-background-color a:where(:not(.wp-element-button)) {
	color: inherit;
}
.has-noir-background-color a:where(:not(.wp-element-button)):hover,
.has-anthracite-background-color a:where(:not(.wp-element-button)):hover {
	color: var(--wp--preset--color--orange);
}

/* Bouton « contour » (style natif Contour). */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent;
	color: currentColor;
	border: 2px solid currentColor;
	padding: calc(0.85rem - 2px) calc(1.6rem - 2px);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--noir);
	border-color: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
}
.has-noir-background-color .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--blanc-casse);
	border-color: var(--wp--preset--color--blanc-casse);
	color: var(--wp--preset--color--noir);
}
/* Sur fond orange, le bouton plein passe en noir. */
.has-orange-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
}
.has-orange-background-color .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover {
	background: var(--wp--preset--color--blanc-casse);
	color: var(--wp--preset--color--noir);
}
.wp-block-button__link {
	min-height: 48px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   Surtitre (style de paragraphe) : petite dune orange + capitales étroites
   ========================================================================== */

.is-style-surtitre {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}
.is-style-surtitre:not(.has-text-color) {
	color: var(--wp--preset--color--graphite);
}
.has-noir-background-color .is-style-surtitre:not(.has-text-color),
.has-anthracite-background-color .is-style-surtitre:not(.has-text-color) {
	color: var(--wp--preset--color--dune-fonce);
}
.is-style-surtitre::before {
	content: "";
	flex: 0 0 34px;
	height: 14px;
	background: url("assets/images/dune-puce.svg") center / contain no-repeat;
}
.is-style-surtitre.has-text-align-center {
	justify-content: center;
}

/* Étiquette simple (sans dune) */
.ljdf-etiquette {
	font-size: 0.8125rem;
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.3;
}

/* ==========================================================================
   Motif dunes (styles de groupe)
   ========================================================================== */

.is-style-dunes-claires,
.is-style-dunes-sombres,
.is-style-dunes-orange {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}
.is-style-dunes-claires::after,
.is-style-dunes-sombres::after,
.is-style-dunes-orange::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: clamp(60px, 11vw, 160px);
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% 100%;
	z-index: -1;
	pointer-events: none;
}
.is-style-dunes-claires::after { background-image: url("assets/images/dunes-claires.svg"); }
.is-style-dunes-sombres::after { background-image: url("assets/images/dunes-sombres.svg"); }
.is-style-dunes-orange::after { background-image: url("assets/images/dunes-orange.svg"); }

/* Rides de sable en haut d'une section claire */
.ljdf-rides {
	background-image: url("assets/images/rides.svg");
	background-repeat: no-repeat;
	background-position: top center;
	background-size: 100% auto;
}

/* ==========================================================================
   En-tête et pied de page
   ========================================================================== */

.ljdf-entete .wp-block-site-logo img {
	display: block;
}
.ljdf-entete .wp-block-navigation__responsive-container.is-menu-open {
	padding: 24px clamp(16px, 4vw, 48px);
}
.ljdf-entete .wp-block-navigation .wp-block-navigation-item__content {
	padding-block: 0.6rem;
}
.ljdf-entete .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.ljdf-entete .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	box-shadow: inset 0 -4px 0 var(--wp--preset--color--orange);
}
.ljdf-entete .wp-block-navigation__responsive-container-open,
.ljdf-entete .wp-block-navigation__responsive-container-close {
	width: 44px;
	height: 44px;
	justify-content: center;
	align-items: center;
	border: 2px solid currentColor;
	border-radius: 6px;
}
.ljdf-pied .wp-block-social-links .wp-social-link {
	color: var(--wp--preset--color--blanc-casse);
}

/* ==========================================================================
   Accueil : visuel principal
   ========================================================================== */

.ljdf-hero__visuel {
	position: relative;
	padding-bottom: 32px;
}
.ljdf-hero__photo,
.ljdf-hero__photo img {
	border-radius: var(--ljdf-rayon);
}
.ljdf-hero__photo img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	box-shadow: 0 20px 40px rgba(20, 20, 20, 0.18);
}
.ljdf-hero__badge {
	position: absolute;
	left: -28px;
	bottom: -8px;
	width: 32%;
	max-width: 170px;
	margin: 0 !important;
	transform: rotate(-8deg);
	filter: drop-shadow(0 6px 10px rgba(20, 20, 20, 0.25));
}
.ljdf-pastille {
	position: absolute;
	top: 18px;
	right: 18px;
	margin: 0 !important;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 999px;
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
	font-size: 0.8125rem;
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}
.ljdf-pastille::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--orange);
}
/* Plaque du numéro d'équipage (comme sur les portières des 4L du raid) */
.ljdf-plaque {
	position: absolute;
	right: -18px;
	bottom: 6px;
	margin: 0 !important;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 8px 16px 7px;
	background: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--noir);
	border: 3px solid var(--wp--preset--color--noir);
	border-radius: 10px;
	line-height: 1;
	transform: rotate(3deg);
	box-shadow: 0 10px 22px rgba(20, 20, 20, 0.22);
}
.ljdf-plaque__label {
	font-size: 0.6875rem;
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange-fonce);
}
.ljdf-plaque__numero {
	font-size: clamp(2rem, 3.2vw, 2.75rem);
	font-weight: 900;
	font-stretch: 112%;
	letter-spacing: 0.02em;
	font-variant-numeric: tabular-nums;
}
.ljdf-pied__numero {
	margin-top: 14px !important;
}
@media (max-width: 600px) {
	.ljdf-hero__badge { left: -6px; width: 30%; }
	.ljdf-pastille { top: 10px; right: 10px; font-size: 0.75rem; padding: 6px 12px; }
	.ljdf-plaque { right: -4px; bottom: 10px; padding: 6px 12px 5px; border-width: 2px; }
	.ljdf-plaque__label { font-size: 0.625rem; }
}

/* ==========================================================================
   Compteur kilométrique (bloc ljdf/compteur)
   ========================================================================== */

.wp-block-ljdf-compteur {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.ljdf-compteur__chiffres {
	display: flex;
	gap: 6px;
}
.ljdf-compteur__chiffre {
	width: clamp(44px, 11vw, 58px);
	height: clamp(62px, 15.5vw, 80px);
	border-radius: 6px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(#262626 49%, #0B0B0B 49%, #0B0B0B 51%, #262626 51%);
	color: var(--wp--preset--color--blanc-casse);
	font-size: clamp(40px, 10.5vw, 54px);
	font-weight: 700;
	font-stretch: 75%;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.ljdf-compteur__chiffre.is-dernier {
	background: var(--wp--preset--color--orange);
	color: var(--wp--preset--color--noir);
}
.ljdf-compteur__legende {
	margin: 0;
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-align: center;
}
.ljdf-compteur__legende:empty {
	display: none;
}

/* ==========================================================================
   Bornes kilométriques (style de groupe)
   ========================================================================== */

.is-style-borne {
	width: 132px;
	box-sizing: border-box;
	padding: 60px 8px 18px !important;
	border: var(--ljdf-trait) solid var(--wp--preset--color--noir);
	border-radius: 75px 75px 0 0;
	background: linear-gradient(var(--wp--preset--color--orange) 0 48px, var(--wp--preset--color--noir) 48px 50px, var(--wp--preset--color--craie) 50px);
	color: var(--wp--preset--color--noir);
	text-align: center;
	gap: 2px !important;
}
.is-style-borne > * {
	margin: 0 !important;
}
.ljdf-borne__nombre {
	flex-shrink: 0;
	white-space: nowrap;
	font-size: 2.875rem;
	font-weight: 700;
	font-stretch: 75%;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.ljdf-borne__libelle {
	font-size: 0.8125rem;
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.12em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--wp--preset--color--graphite);
}
@media (min-width: 782px) {
	.ljdf-bornes > .is-style-borne:nth-child(even) {
		margin-top: 28px !important;
	}
}
@media (max-width: 600px) {
	.ljdf-bornes {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.ljdf-bornes > .is-style-borne {
		width: auto;
	}
}

/* ==========================================================================
   Cartes
   ========================================================================== */

.is-style-carte-sombre,
.is-style-carte-claire {
	border-radius: var(--ljdf-rayon);
	overflow: hidden;
}
.is-style-carte-sombre {
	background: var(--wp--preset--color--anthracite);
	color: var(--wp--preset--color--blanc-casse);
}
.is-style-carte-claire {
	background: var(--wp--preset--color--craie);
	box-shadow: 0 0 0 1px var(--wp--preset--color--dune-fonce);
}
.is-style-carte-sombre > .wp-block-image,
.is-style-carte-claire > .wp-block-image {
	margin: 0;
}
.is-style-carte-sombre > .wp-block-image img,
.is-style-carte-claire > .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}
/* Portrait recadré en 4:3 : on garde le haut (le visage) plutôt que le centre */
.wp-block-image.ljdf-portrait img {
	object-position: 50% 22%;
}
.ljdf-carte-accent {
	box-shadow: 0 0 0 2px var(--wp--preset--color--orange);
}
.ljdf-photo-vide {
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	background: #333333;
	color: var(--wp--preset--color--dune-fonce);
}
.is-style-carte-claire .ljdf-photo-vide {
	background: var(--wp--preset--color--dune);
	color: var(--wp--preset--color--graphite);
}

/* Image arrondie avec ombre (style d'image) */
.wp-block-image.is-style-photo img {
	border-radius: var(--ljdf-rayon);
	box-shadow: 0 20px 40px rgba(20, 20, 20, 0.18);
}

/* ==========================================================================
   Journal en cases de roadbook (style de boucle de requête)
   ========================================================================== */

.is-style-roadbook .wp-block-post-template {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 3px solid var(--wp--preset--color--noir);
	border-bottom: 3px solid var(--wp--preset--color--noir);
	background: var(--wp--preset--color--craie);
	color: var(--wp--preset--color--noir);
}
.is-style-roadbook .wp-block-post-template > .wp-block-post {
	margin: 0;
	display: grid;
	grid-template-columns: 90px 112px minmax(0, 1fr) auto;
	grid-template-areas: "num vig contenu image";
	align-items: stretch;
	border-bottom: 1px solid var(--wp--preset--color--dune-fonce);
}
.is-style-roadbook .wp-block-post-template > .wp-block-post:last-child {
	border-bottom: 0;
}
.ljdf-case__numero {
	grid-area: num;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0 !important;
	padding: 16px 0;
	border-right: 1px solid var(--wp--preset--color--dune-fonce);
}
.ljdf-case__numero > * {
	margin: 0 !important;
}
.ljdf-case__mot {
	font-size: 0.75rem;
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--graphite);
}
.ljdf-case__num {
	font-size: 2.75rem;
	font-weight: 700;
	font-stretch: 75%;
	font-variant-numeric: tabular-nums;
	line-height: 1;
}
.ljdf-case__vignette {
	grid-area: vig;
	margin: 0 !important;
	min-height: 96px;
	border-right: 1px solid var(--wp--preset--color--dune-fonce);
	background: url("assets/images/tulipe-droite.svg") center / 72px 72px no-repeat;
}
.wp-block-post:nth-child(3n+2) .ljdf-case__vignette { background-image: url("assets/images/tulipe-tout-droit.svg"); }
.wp-block-post:nth-child(3n+3) .ljdf-case__vignette { background-image: url("assets/images/tulipe-gauche.svg"); }
.ljdf-case__contenu {
	grid-area: contenu;
	margin: 0 !important;
	padding: 20px 24px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px !important;
}
.ljdf-case__contenu > * {
	margin: 0 !important;
}
.ljdf-case__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 0.5em;
	font-size: 0.8125rem;
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--graphite);
}
.ljdf-case__meta a {
	color: inherit;
	text-decoration: none;
}
.ljdf-case__meta .wp-block-post-date::before {
	content: "·";
	margin-right: 0.5em;
}
.ljdf-case__contenu .wp-block-post-title {
	font-size: 1.375rem;
	font-weight: 700;
	font-stretch: 100%;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.25;
}
.ljdf-case__contenu .wp-block-post-excerpt__excerpt {
	margin: 0;
	color: var(--wp--preset--color--graphite);
	font-size: 1rem;
	line-height: 1.55;
}
.ljdf-case__image {
	grid-area: image;
	align-self: center;
	width: 176px;
	margin: 0 24px 0 0 !important;
}
.ljdf-case__image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}
@media (max-width: 700px) {
	.is-style-roadbook .wp-block-post-template > .wp-block-post {
		grid-template-columns: 64px minmax(0, 1fr);
		grid-template-areas: "num contenu" "vig contenu" "vig image";
	}
	.ljdf-case__numero { padding: 14px 0 4px; }
	.ljdf-case__num { font-size: 2.125rem; }
	.ljdf-case__vignette { background-size: 42px 42px; background-position: center top 4px; min-height: 52px; }
	.ljdf-case__contenu { padding: 14px 16px; }
	.ljdf-case__contenu .wp-block-post-title { font-size: 1.1875rem; }
	.ljdf-case__image { width: auto; margin: 0 16px 16px !important; }
}

/* Cases à venir (étapes du raid) */
.ljdf-a-venir {
	border-bottom: 3px solid var(--wp--preset--color--noir);
}
.ljdf-a-venir > * {
	margin: 0 !important;
}
.ljdf-a-venir__ligne {
	padding: 14px 24px;
	border-bottom: 1px dashed var(--wp--preset--color--dune-fonce);
	background: var(--wp--preset--color--blanc-casse);
}
.ljdf-a-venir__ligne:last-child {
	border-bottom: 0;
}
.ljdf-a-venir__ligne > * {
	margin: 0 !important;
}

/* Pastilles de catégories (style du bloc Catégories) */
.wp-block-categories.is-style-pastilles {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.wp-block-categories.is-style-pastilles li {
	margin: 0;
}
.wp-block-categories.is-style-pastilles a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	box-sizing: border-box;
	border: 2px solid var(--wp--preset--color--noir);
	border-radius: 999px;
	color: var(--wp--preset--color--noir);
	font-size: 0.875rem;
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
}
.wp-block-categories.is-style-pastilles a:hover,
.wp-block-categories.is-style-pastilles .current-cat > a {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
}

/* Pagination */
.wp-block-query-pagination {
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ==========================================================================
   Sponsors en autocollants (style de galerie)
   ========================================================================== */

.wp-block-gallery.is-style-autocollants {
	justify-content: center;
	gap: 22px !important;
	padding: 12px 0;
}
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image {
	flex: 0 0 auto;
	width: 170px !important;
	height: 104px;
	box-sizing: border-box;
	padding: 14px;
	background: #FFFFFF;
	border-radius: 12px;
	box-shadow: 0 2px 0 rgba(20, 20, 20, 0.12), 0 0 0 1px var(--wp--preset--color--dune-fonce);
	display: flex;
	align-items: center;
	justify-content: center;
	transform: rotate(-4deg);
}
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image:nth-child(3n+2) { transform: rotate(3deg); border-radius: 52px; }
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image:nth-child(3n+3) { transform: rotate(-1deg); }
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image:nth-child(4n+4) { transform: rotate(2deg); }
/* !important : la galerie « recadrée » du cœur impose object-fit: cover avec un sélecteur :not(#…) */
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
}
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image figcaption {
	display: none;
}
.ljdf-autocollant-vide {
	display: flex;
	justify-content: center;
}
@media (max-width: 600px) {
	.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image {
		width: calc(50% - 11px) !important;
		height: 92px;
	}
}
/* Logos des partenaires : jamais d'angles arrondis (ils rogneraient les lettres) */
img[src*="/images/partenaires/"] {
	border-radius: 0 !important;
}
/* Partenaire Or (inc/partenaires.php) : autocollant plus grand et vignette à rubans */
.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image.ljdf-a-palier {
	position: relative;
	overflow: visible;
	width: 250px !important;
	height: 110px;
	padding: 14px 20px;
}
.wp-block-gallery.is-style-autocollants:has(.ljdf-a-palier) {
	padding-bottom: 30px;
}
.ljdf-palier {
	position: absolute;
	right: -20px;
	bottom: -30px;
	z-index: 1;
	width: 60px;
	height: 74px;
	line-height: 0;
	transform: rotate(8deg);
	filter: drop-shadow(0 2px 1.5px rgba(40, 25, 0, 0.35));
}
.ljdf-palier svg {
	display: block;
	width: 100%;
	height: 100%;
	overflow: visible;
}
@media (max-width: 600px) {
	.wp-block-gallery.is-style-autocollants.has-nested-images figure.wp-block-image.ljdf-a-palier {
		width: min(100%, 280px) !important;
		height: 100px;
	}
	.ljdf-palier {
		right: -12px;
		width: 52px;
		height: 64px;
	}
}
/* Page courante dans le menu (journal et articles) */
.blog .ljdf-entete__nav a[href$="/journal/"],
.single-post .ljdf-entete__nav a[href$="/journal/"],
.category .ljdf-entete__nav a[href$="/journal/"] {
	box-shadow: inset 0 -4px 0 var(--wp--preset--color--orange);
}
.ljdf-autocollant-vide a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 170px;
	height: 104px;
	box-sizing: border-box;
	padding: 8px;
	border: 2px dashed var(--wp--preset--color--noir);
	border-radius: 12px;
	transform: rotate(4deg);
	color: var(--wp--preset--color--noir);
	font-size: 0.9375rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-align: center;
	text-transform: uppercase;
	text-decoration: none;
}
.ljdf-autocollant-vide a:hover {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
}

/* ==========================================================================
   Articles
   ========================================================================== */

.ljdf-article > * + * {
	margin-block-start: 1.25em;
}
.ljdf-article h2 {
	font-size: clamp(1.625rem, 3vw, 2.25rem);
	margin-block-start: 1.6em;
}
.ljdf-article h3 {
	margin-block-start: 1.4em;
}
.ljdf-article .wp-block-image img {
	border-radius: 10px;
}
.ljdf-nav-cases a {
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ==========================================================================
   Mise en page générale et utilitaires
   ========================================================================== */

/* Pas d'espace entre en-tête, contenu et pied de page. */
.wp-site-blocks > * {
	margin-block-start: 0;
}
/* Les sections pleine largeur s'enchaînent sans bande blanche. */
.wp-block-post-content > .alignfull,
.wp-block-post-content > .wp-block-pattern > .alignfull {
	margin-block-start: 0;
	margin-block-end: 0;
}

.ljdf-titre-page {
	font-size: clamp(2.5rem, 5.6vw, 4.75rem);
	line-height: 0.95;
}
/* Téléphone : titres longs (« Restauration : … ») sans mot coupé au hasard. */
@media (max-width: 600px) {
	.ljdf-titre-page {
		font-size: clamp(1.875rem, 8.4vw, 2.5rem);
		hyphens: auto;
	}
}

.ljdf-date-depart {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 800;
	font-stretch: 118%;
	line-height: 1;
	text-transform: uppercase;
	margin: 0;
}

.ljdf-source {
	font-size: 0.875rem;
	color: var(--wp--preset--color--graphite);
}

.ljdf-entete .wp-block-site-title {
	max-width: 175px;
}
.ljdf-entete .wp-block-site-logo,
.ljdf-entete .ljdf-entete__cta {
	flex-shrink: 0;
}
.ljdf-entete .wp-block-button__link {
	white-space: nowrap;
}
/* Menu replié (bouton ☰) jusqu'à 1279 px : les cinq liens, le nom du site et
   le bouton « Nous soutenir » ne tiennent sur une ligne qu'au-delà (entre 1200
   et 1279 px, le menu passait sur deux lignes).
   WordPress ne le replie d'origine que sous 600 px. */
@media (min-width: 600px) and (max-width: 1279px) {
	.ljdf-entete .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	.ljdf-entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
	.ljdf-entete .ljdf-entete__nav {
		margin-left: auto;
	}
}
@media (max-width: 480px) {
	.ljdf-entete .ljdf-entete__cta {
		display: none;
	}
	.ljdf-entete .wp-block-site-title {
		font-size: 1rem;
		max-width: 150px;
	}
}

@media (max-width: 700px) {
	.ljdf-bandeau-compteur .wp-block-group.is-layout-flex {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
	.ljdf-bandeau-compteur .wp-block-group.is-layout-flex > * {
		flex-basis: auto !important;
	}
}

/* Pastille « Tout » à côté des catégories */
.ljdf-filtre-tout {
	margin: 0;
}
.ljdf-filtre-tout a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 18px;
	box-sizing: border-box;
	border: 2px solid var(--wp--preset--color--noir);
	border-radius: 999px;
	color: var(--wp--preset--color--noir);
	font-size: 0.875rem;
	font-weight: 700;
	font-stretch: 90%;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-decoration: none;
}
.blog .ljdf-filtre-tout a,
.ljdf-filtre-tout a:hover {
	background: var(--wp--preset--color--noir);
	color: var(--wp--preset--color--blanc-casse);
}

/* Méta d'un article (catégorie · date) dans le bandeau */
.ljdf-meta-article {
	gap: 0 0.5em !important;
	font-size: var(--wp--preset--font-size--petit);
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--orange);
}
.ljdf-meta-article a {
	color: inherit !important;
	text-decoration: none;
}
.ljdf-meta-article .wp-block-post-date {
	color: var(--wp--preset--color--dune-fonce);
}
.ljdf-meta-article .wp-block-post-date::before {
	content: "·";
	margin-right: 0.5em;
}

.ljdf-a-venir__lieu {
	min-width: 220px;
	font-size: 1.1875rem;
}
.ljdf-a-venir__dates {
	min-width: 150px;
	color: var(--wp--preset--color--graphite);
}

/* Navigation du pied de page : liens simples */
.ljdf-pied__nav .wp-block-navigation-item__content {
	padding-block: 2px;
}
.ljdf-pied .wp-block-site-title {
	max-width: 190px;
	font-size: 1.25rem;
}

/* Cadres photo à remplacer (sections claires) */
.ljdf-photo-vide--claire,
.ljdf-hero__photo-vide {
	background: var(--wp--preset--color--dune);
	color: var(--wp--preset--color--graphite);
	border-radius: var(--ljdf-rayon);
	text-align: center;
	padding: 24px;
	box-sizing: border-box;
}
.ljdf-hero__photo-vide {
	box-shadow: 0 20px 40px rgba(20, 20, 20, 0.12);
}
/* Le badge du visuel d'accueil reprend le logo du site. */
.ljdf-hero__badge img {
	width: 100% !important;
	height: auto;
}

/* ==========================================================================
   En-tête fixe (assets/js/entete.js pose ljdf-defile / ljdf-entete-cachee)
   ========================================================================== */

.wp-site-blocks > header.wp-block-template-part {
	overflow-anchor: none;
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
html {
	scroll-padding-top: 96px;
}
.ljdf-entete {
	transition: padding 0.25s ease;
}
.ljdf-defile .wp-site-blocks > header.wp-block-template-part {
	box-shadow: 0 6px 18px rgba(20, 20, 20, 0.28);
}
@media (min-width: 782px) {
	.ljdf-defile .ljdf-entete {
		padding-top: 9px !important;
		padding-bottom: 9px !important;
	}
}
@media (max-width: 781px) {
	html {
		scroll-padding-top: 84px;
	}
	.ljdf-entete-cachee .wp-site-blocks > header.wp-block-template-part {
		transform: translateY(-110%);
		box-shadow: none;
	}
}
/* Sous 600 px, la barre d'administration de WordPress n'est plus fixe. */
@media (max-width: 600px) {
	.wp-site-blocks > header.wp-block-template-part {
		top: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.wp-site-blocks > header.wp-block-template-part,
	.ljdf-entete {
		transition: none;
	}
}

/* ==========================================================================
   Formulaires (bloc ljdf/formulaire, inc/formulaires.php)
   ========================================================================== */

.ljdf-formulaire {
	position: relative;
	max-width: 760px;
}
.ljdf-formulaire__grille {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px 20px;
}
.ljdf-formulaire__champ {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}
.ljdf-formulaire__champ--large {
	grid-column: 1 / -1;
}
.ljdf-formulaire label {
	font-weight: 600;
	font-size: 0.95rem;
}
.ljdf-formulaire__requis {
	color: var(--wp--preset--color--orange-fonce);
}
.ljdf-formulaire__facultatif {
	font-weight: 400;
	color: var(--wp--preset--color--graphite);
}
.ljdf-formulaire input[type="text"],
.ljdf-formulaire input[type="email"],
.ljdf-formulaire input[type="tel"],
.ljdf-formulaire select,
.ljdf-formulaire textarea {
	box-sizing: border-box;
	width: 100%;
	padding: 12px 14px;
	border: 2px solid var(--wp--preset--color--anthracite);
	border-radius: 6px;
	background: #FFFFFF;
	color: var(--wp--preset--color--noir);
	font: inherit;
	font-size: 1rem;
	line-height: 1.4;
}
.ljdf-formulaire textarea {
	min-height: 160px;
	resize: vertical;
}
.ljdf-formulaire [aria-invalid="true"] {
	border-color: var(--wp--preset--color--orange-fonce);
	box-shadow: 0 0 0 1px var(--wp--preset--color--orange-fonce);
}
.ljdf-formulaire__erreur {
	color: var(--wp--preset--color--orange-fonce);
	font-size: 0.9rem;
	font-weight: 600;
}
.ljdf-formulaire__piege {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.ljdf-formulaire__accord {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 22px 0 0;
}
.ljdf-formulaire__accord input {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	accent-color: var(--wp--preset--color--orange);
}
.ljdf-formulaire__accord label {
	font-weight: 400;
	font-size: 0.95rem;
}
.ljdf-formulaire__envoi {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 18px;
	align-items: center;
	margin: 22px 0 0;
}
.ljdf-formulaire__envoi button {
	border: 0;
	cursor: pointer;
}
.ljdf-formulaire__note {
	color: var(--wp--preset--color--graphite);
	font-size: 0.875rem;
}
.ljdf-formulaire__erreurs,
.ljdf-formulaire__merci {
	margin: 0 0 22px;
	padding: 16px 20px;
	border-left: 5px solid var(--wp--preset--color--orange-fonce);
	border-radius: 6px;
	background: #FFF1E8;
	color: var(--wp--preset--color--noir);
}
.ljdf-formulaire__erreurs p,
.ljdf-formulaire__erreurs ul {
	margin: 0;
}
.ljdf-formulaire__erreurs ul {
	padding-left: 1.2em;
}
.ljdf-formulaire--envoye .ljdf-formulaire__merci {
	margin: 0;
	border-left-color: var(--wp--preset--color--orange);
	background: var(--wp--preset--color--craie);
	font-size: 1.125rem;
	font-weight: 600;
}
.has-noir-background-color .ljdf-formulaire__facultatif,
.has-anthracite-background-color .ljdf-formulaire__facultatif,
.has-noir-background-color .ljdf-formulaire__note,
.has-anthracite-background-color .ljdf-formulaire__note {
	color: var(--wp--preset--color--dune-fonce);
}
@media (max-width: 600px) {
	.ljdf-formulaire__grille {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Avant / après (articles de restauration, inc/photos.php)
   ========================================================================== */

.wp-block-columns.ljdf-avant-apres {
	flex-wrap: nowrap !important;
	gap: clamp(10px, 2vw, 24px);
}
.wp-block-columns.ljdf-avant-apres > .wp-block-column {
	flex-basis: 0 !important;
	flex-grow: 1;
	min-width: 0;
}
.ljdf-avant-apres .wp-element-caption {
	margin-top: 10px;
	text-align: center;
	font-size: 0.8125rem;
	font-weight: 600;
	font-stretch: 85%;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--graphite);
}

/* ==========================================================================
   Mesure d'audience (bloc ljdf/mesure-audience, inc/statistiques.php)
   ========================================================================== */

.ljdf-refus-stats {
	margin-top: 20px;
	padding: 18px 22px;
	border-radius: 14px;
	background: var(--wp--preset--color--craie);
	border: 1px solid var(--wp--preset--color--dune);
}
.ljdf-refus-stats p {
	margin: 0;
}
.ljdf-refus-stats p + p {
	margin-top: 12px;
}
.ljdf-refus-stats__etat {
	font-weight: 600;
}
.ljdf-refus-stats__bouton {
	border: 0;
	cursor: pointer;
}
.ljdf-refus-stats__bouton[hidden] {
	display: none;
}
