/*
Theme Name: Les Barils
Theme URI: https://lesbarils.fr/
Author: Idéalternative
Author URI: https://idealternative.fr/
Description: Thème enfant de blocs lumineux, accessible et performant pour la commune des Barils. Requiert Twenty Twenty-Five.
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.1
Version: 0.13.66
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: les-barils
Template: twentytwentyfive
Tags: block-patterns, full-site-editing, wide-blocks, custom-logo
*/

/*
 * Jetons de design — tous les réglages esthétiques centralisés ici.
 *
 * Modifier une valeur ci-dessous met à jour tout le site d'un coup, sans
 * toucher au contenu. Les couleurs de la charte (pétrole, sarcelle, eau claire,
 * tournesol, encre) se règlent, elles, dans theme.json (section « palette »).
 * Voir docs/PERSONNALISER-ASPECT.md.
 */
:root {
	/* Formes (rayons d'angles) */
	--lb-radius-sm: .75rem;   /* petits arrondis : lignes, encarts */
	--lb-radius-md: 1.25rem;  /* cartes */
	--lb-radius-lg: 2rem;     /* grandes cartes flottantes */

	/* Surfaces (fonds de cartes neutres) */
	--lb-surface: #f7faf9;      /* cartes de contenu, tuiles */
	--lb-surface-alt: #f4f8f7;  /* accès rapides */

	/* Filets et focus */
	--lb-line: #c9d7d4;        /* bordures et séparateurs discrets */
	--lb-line-strong: #649089; /* bordure perceptible sur fond coloré (3,1:1 sur le fond eau) */
	--lb-focus: #e3b341;       /* contour de focus clavier */

	/* Ombres */
	--lb-shadow: 0 1.25rem 3.75rem rgb(15 76 92 / 14%);    /* ombre douce des cartes flottantes */
	--lb-hover-shadow: 0 .75rem 2rem rgb(45 106 99 / 12%); /* élévation des cartes au survol */

	/* Animations */
	--lb-transition: .2s ease;  /* durée/courbe standard des transitions au survol */
}

/* Le navigateur répartit plus harmonieusement les lignes de texte quand il
   sait le faire. La protection PHP des ponctuations reste le mécanisme
   principal ; cette propriété progressive réduit en complément les veuves. */
.wp-site-blocks :where(p, li, dd, figcaption, blockquote) {
	text-wrap: pretty;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: 10rem;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body,
button,
input,
select,
textarea {
	font-family: var(--wp--preset--font-family--interface);
}

* {
	box-sizing: border-box;
}

[hidden] {
	display: none !important;
}

img,
svg {
	max-width: 100%;
}

a {
	text-underline-offset: .18em;
	text-decoration-thickness: .08em;
}

a:hover {
	text-decoration-thickness: .14em;
}

.lb-new-window-note {
	display: inline-block;
	margin-inline-start: .28em;
	font-size: .82em;
	font-weight: 800;
	line-height: 1;
	text-decoration: none;
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: .2rem solid var(--lb-focus);
	outline-offset: .2rem;
	box-shadow: 0 0 0 .12rem var(--wp--preset--color--ink);
}

::selection {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
}

.lb-skip-link {
	position: fixed;
	top: .75rem;
	left: .75rem;
	z-index: 99999;
	padding: .75rem 1rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--ink);
	font-weight: 800;
	transform: translateY(calc(-100% - 2rem));
}

.lb-skip-link:focus {
	transform: none;
}

.screen-reader-text:focus,
.skip-link:focus {
	z-index: 99999;
	top: .75rem;
	left: .75rem;
	width: auto;
	height: auto;
	padding: .75rem 1rem;
	clip: auto !important;
	clip-path: none;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--ink);
	font-weight: 800;
}

/* Masqué à l'écran, restitué par les lecteurs d'écran (titres de section). */
.lb-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.lb-site-shell {
	overflow: clip;
}

.lb-site-header {
	position: relative;
	z-index: 100;
	color: #fff;
	background: #0f4c5c;
	background: var(--wp--preset--color--petrol, #0f4c5c);
	border-top: 3px solid #e3b341;
	border-top-color: var(--wp--preset--color--sun, #e3b341);
}

/* Le bloc de partie de modèle est le véritable parent de l'en-tête. C'est lui
   qui doit rester collé au viewport ; rendre seulement son enfant sticky le
   contraindrait à la hauteur du parent et annulerait l'effet au défilement. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

@media (min-width: 48.9375rem) {
	body.admin-bar header.wp-block-template-part {
		top: 32px;
	}
}

/* Pas d'espacement entre les blocs du bandeau d'en-tête (barre utilitaire et
   navigation collées, sans marge). */
.lb-site-header > * + * {
	margin-block-start: 0 !important;
}

.lb-utility-bar {
	min-height: 0;
	color: #fff;
	border-bottom: 1px solid rgb(255 255 255 / 20%);
	font-size: .8rem;
	line-height: 1.25;
}

.lb-utility-bar > .wp-block-group {
	align-items: center;
	min-height: 2.2rem;
	padding-block: .3rem;
}

.lb-utility-bar p {
	margin-block: 0;
}

.lb-utility-bar a,
.lb-footer a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: inherit;
}

/* Le bouton « Mode faible débit » (compact, 1.5rem ≈ 24 px, au-dessus du
   minimum WCAG 2.2 AA de 24 px) sert de repère : plus court que la bande, il
   flotte au centre avec du jeu au-dessus/en dessous, et le texte s'aligne
   sur son centre. Le texte n'impose plus de hauteur à la bande. */
.lb-utility-bar a,
.lb-utility-links a {
	min-height: 0;
}

.lb-utility-bar .lb-low-data-toggle {
	min-height: 0;
	height: 1.5rem;
	padding-block: 0;
}

.lb-utility-links {
	gap: .9rem !important;
}

.lb-utility-links a {
	display: inline-flex;
	align-items: center;
	font-weight: 750;
}

.lb-low-data-toggle {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	min-height: 2.75rem;
	padding: .45rem .75rem;
	color: #fff;
	background: rgb(255 255 255 / 16%);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	font-size: .82rem;
	font-weight: 800;
}

.lb-low-data-toggle::before {
	content: "";
	width: .8rem;
	height: .8rem;
	border: 2px solid currentcolor;
	border-radius: 50%;
}

.lb-low-data-toggle[aria-pressed="true"] {
	color: #182322;
	color: var(--wp--preset--color--ink, #182322);
	background: #e3b341;
	background: var(--wp--preset--color--sun, #e3b341);
}

.lb-main-header {
	min-height: 6.2rem;
}

.lb-brand {
	position: relative;
	display: flex;
	align-items: center;
	gap: .75rem;
	min-width: 12rem;
}

.lb-brand::before {
	content: "LB";
	content: "LB" / "";
	display: grid;
	flex: 0 0 3.15rem;
	place-items: center;
	width: 3.15rem;
	aspect-ratio: 1;
	color: #0f4c5c;
	color: var(--wp--preset--color--petrol, #0f4c5c);
	background: #e3b341;
	background: var(--wp--preset--color--sun, #e3b341);
	border-radius: 50%;
	font-size: .88rem;
	font-weight: 850;
	letter-spacing: -.05em;
}

.lb-brand:has(.custom-logo)::before {
	display: none;
}

.lb-brand .wp-block-site-logo {
	line-height: 0;
}

.lb-brand .wp-block-site-logo img {
	max-height: 4rem;
	width: auto;
}

.lb-brand .wp-block-site-title {
	color: #fff;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 1.5rem;
	font-weight: 750;
	line-height: 1;
}

.lb-brand .wp-block-site-title a {
	color: inherit;
}

.lb-brand .wp-block-site-tagline {
	margin-top: .2rem !important;
	color: rgb(255 255 255 / 72%);
	font-size: .75rem;
}

.lb-main-navigation .wp-block-navigation-item__content {
	min-height: 2.75rem;
	padding-block: .75rem;
	color: #fff;
	font-size: .86rem;
	font-weight: 750;
}

.lb-main-navigation .wp-block-navigation__submenu-icon,
.lb-main-navigation .wp-block-navigation-submenu__toggle {
	display: inline-grid;
	place-items: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	margin-left: .15rem;
	padding: .65rem;
	border-radius: 999px;
}

.lb-main-navigation .wp-block-navigation__submenu-icon:hover,
.lb-main-navigation .wp-block-navigation__submenu-icon:focus-visible,
.lb-main-navigation .wp-block-navigation-submenu__toggle:hover,
.lb-main-navigation .wp-block-navigation-submenu__toggle:focus-visible {
	background: rgb(255 255 255 / 14%);
	outline: 2px solid currentcolor;
	outline-offset: 2px;
}

.lb-main-navigation .wp-block-navigation__responsive-container-open,
.lb-main-navigation .wp-block-navigation__responsive-container-close {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	width: auto;
	min-width: 3rem;
	min-height: 3rem;
	padding: .65rem;
	color: #fff;
	border: 2px solid currentcolor;
	border-radius: 999px;
	line-height: 1;
	white-space: nowrap;
}

/* Par défaut (écrans larges : ordinateur et tablette), la navigation horizontale
   suffit : le bouton hamburger d'ouverture et le bouton Fermer restent masqués.
   Ils ne sont révélés qu'en dessous du point de rupture de largeur (media query
   max-width:48rem plus bas) et, pour Fermer, une fois le panneau ouvert (règle
   .is-menu-open). Cette règle est autonome et en !important pour ne PAS dépendre
   des feuilles du cœur de WordPress qui masquent ce bouton sur grand écran :
   LiteSpeed UCSS peut les retirer ou les réordonner, ce qui faisait réapparaître
   le bouton « Menu » en plus du menu horizontal sur ordinateur et sur tablette. */
.lb-main-navigation .wp-block-navigation__responsive-container-open,
.lb-main-navigation .wp-block-navigation__responsive-container-close {
	display: none !important;
}

/* L'icône native de WordPress ne possède que deux traits. Le dessin CSS
   conserve le bouton natif et son aria-label, tout en affichant les trois
   traits attendus visuellement pour un menu hamburger. */
.lb-main-navigation .wp-block-navigation__responsive-container-open svg {
	display: none;
}

.lb-main-navigation .wp-block-navigation__responsive-container-open::before {
	width: 1.45rem;
	height: 1.05rem;
	background:
		linear-gradient(currentcolor 0 0) top / 100% 2px no-repeat,
		linear-gradient(currentcolor 0 0) center / 100% 2px no-repeat,
		linear-gradient(currentcolor 0 0) bottom / 100% 2px no-repeat;
	content: "";
}

.lb-main-navigation .wp-block-navigation__responsive-container-open::after {
	content: "Menu";
	content: "Menu" / "";
	font-size: .9rem;
	font-weight: 800;
}

.lb-main-navigation .wp-block-navigation__responsive-container-close::after {
	content: "Fermer";
	content: "Fermer" / "";
	font-size: .9rem;
	font-weight: 800;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
	box-sizing: border-box;
	padding:
		max(1rem, env(safe-area-inset-top, 0px))
		max(1rem, env(safe-area-inset-right, 0px))
		max(1.25rem, env(safe-area-inset-bottom, 0px))
		max(1rem, env(safe-area-inset-left, 0px));
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	overscroll-behavior: contain;
}

/* Le bouton Fermer participe à la mise en page du panneau. Le cœur WordPress
   le positionne normalement en absolu, ce qui provoquait sa superposition
   avec la première rubrique dès que son libellé visible était ajouté. */
.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
	width: 100%;
	max-width: 44rem;
	margin-inline: auto;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-rows: auto minmax(0, 1fr);
	gap: 1rem;
	width: 100%;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog::before {
	align-self: center;
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(1.45rem, 6vw, 1.85rem);
	font-weight: 750;
	line-height: 1;
	content: "Navigation";
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	display: inline-flex !important;
	position: static;
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	width: auto;
	min-width: 0;
	min-height: 3rem;
	margin: 0;
	padding: .6rem .9rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--water);
	border-color: var(--wp--preset--color--petrol);
	border-radius: .8rem;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	grid-column: 1 / -1;
	grid-row: 2;
	width: 100%;
	padding-top: 1rem !important;
	border-top: 1px solid var(--lb-line);
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	gap: .7rem !important;
	width: 100%;
	max-width: 44rem;
	margin-inline: auto;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	display: flex !important;
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
	min-width: 0;
}

/* Les éléments de structure rendus focalisables par WordPress ne dessinent
   plus un grand rectangle autour d'une rubrique entière. Les liens et boutons
   interactifs conservent, eux, leur indicateur de focus visible. */
.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item[tabindex="-1"]:focus {
	outline: 0;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	width: 100%;
	min-height: 3.25rem;
	padding: .85rem 1rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--water);
	border: 1px solid var(--lb-line);
	border-left: .35rem solid var(--wp--preset--color--sun);
	border-radius: .8rem;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(1.1rem, 4.8vw, 1.3rem);
	font-weight: 750;
	line-height: 1.2;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon,
.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
	display: none !important;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	position: static !important;
	display: flex !important;
	visibility: visible !important;
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100% !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: .25rem .25rem .8rem 1rem !important;
	background: transparent !important;
	border: 0 !important;
	opacity: 1 !important;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	align-items: stretch !important;
	width: 100%;
	min-width: 0;
}

.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	width: 100%;
	min-height: 3rem;
	padding: .72rem .75rem;
	color: var(--wp--preset--color--ink);
	border-bottom: 1px solid var(--lb-line);
	font-size: 1rem;
	font-weight: 650;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

/*
 * Bascule vers le menu compact (bouton « Menu ») selon la LARGEUR de l'écran,
 * et non selon le type de pointeur. Au-delà de 48rem (768 px), la navigation
 * horizontale s'affiche seule (ordinateur et tablette dont la largeur le
 * permet). En deçà, elle laisse place au bouton « Menu » et à son panneau
 * déroulant (téléphones et petites tablettes) ; les sous-menus y sont dépliés,
 * aucune cible ne dépend d'un survol. Ce point de rupture est aligné sur la
 * refonte de l'en-tête (même media query 48rem, qui réserve la place du bouton
 * et tronque le titre du site au besoin). Règle autonome et en !important pour
 * ne PAS dépendre des feuilles du cœur de WordPress (dont le point de rupture
 * natif de 600 px), que LiteSpeed UCSS peut retirer ou réordonner.
 */
@media (max-width: 48rem) {
	.lb-main-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	.lb-main-navigation .wp-block-navigation__responsive-container-open {
		display: inline-flex !important;
	}

	.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open {
		overflow-y: auto;
	}

	.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
	.lb-main-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		align-items: stretch !important;
		width: 100%;
	}

}

.lb-header-contact .wp-block-button__link {
	color: #182322;
	color: var(--wp--preset--color--ink, #182322);
	background-color: #e3b341;
	background-color: var(--wp--preset--color--sun, #e3b341);
	white-space: nowrap;
}

.lb-alert {
	min-height: 3.6rem;
}

.lb-alert a {
	color: inherit;
}

.lb-alert-query {
	margin: 0;
}

.lb-alert-query .wp-block-post-template {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-alert-query .wp-block-post-template > li {
	margin: 0;
}

.lb-alert .wp-block-post-title {
	margin: 0;
	font-family: inherit;
	font-weight: 400;
}

.lb-alert .wp-block-post-title a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: inherit;
}

.lb-alert .wp-block-post-date {
	color: inherit;
}

.lb-alert .wp-block-read-more {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 800;
}

.lb-alert-label {
	color: var(--wp--preset--color--sun);
	letter-spacing: .07em;
	text-transform: uppercase;
}

.lb-alert a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-weight: 800;
}

.lb-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(1rem, 1fr) minmax(0, 42rem) minmax(16rem, 32rem) minmax(1rem, 1fr);
	grid-template-rows: 1fr auto 1fr;
	min-height: clamp(38rem, 72vw, 49rem);
	isolation: isolate;
}

.lb-hero-media {
	z-index: -1;
	grid-column: 1 / -1;
	grid-row: 1 / -1;
	height: 100%;
	margin: 0 !important;
}

.lb-hero-media img {
	width: 100%;
	height: 100%;
	min-height: clamp(38rem, 72vw, 49rem);
	object-fit: cover;
}

.lb-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(90deg, rgb(233 241 239 / 48%), transparent 62%);
}

.lb-photo-note {
	position: absolute;
	right: .75rem;
	bottom: .75rem;
	z-index: 1;
	max-width: 22rem;
	padding: .35rem .55rem;
	color: var(--wp--preset--color--white);
	background: rgb(24 35 34 / 78%);
	border-radius: .35rem;
	font-size: .75rem;
}

.lb-hero-card {
	grid-column: 1 / 3;
	grid-row: 2;
	align-self: center;
	max-width: 45rem;
	padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 6vw, 5rem);
	background: rgb(255 255 255 / 96%);
	border-radius: 0 var(--lb-radius-lg) var(--lb-radius-lg) 0;
	box-shadow: var(--lb-shadow);
}

.lb-eyebrow {
	font-size: .78rem;
	font-weight: 850;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.lb-hero-card h1 {
	max-width: 12ch;
	font-size: clamp(3rem, 5.5vw, 5rem);
	line-height: .98;
	letter-spacing: -.035em;
}

.lb-search-form {
	margin-top: 1.5rem;
}

.lb-search-form .wp-block-search__label {
	margin-bottom: .65rem;
	font-weight: 800;
}

.lb-search-form .wp-block-search__inside-wrapper {
	padding: 0;
	border: 0;
}

.lb-search-form .wp-block-search__input {
	min-height: 3.35rem;
	padding-inline: 1rem;
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 999px 0 0 999px;
}

.lb-search-form .wp-block-search__button {
	min-height: 3.35rem;
	margin: 0;
	padding-inline: 1.3rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-radius: 0 999px 999px 0;
	font-weight: 850;
}

.lb-opening-card {
	grid-column: 3;
	grid-row: 2 / 4;
	align-self: end;
	justify-self: end;
	width: min(100%, 19rem);
	margin: 0 2rem 0 0 !important;
	padding: 1.5rem;
	background: var(--wp--preset--color--sun);
	border-radius: var(--lb-radius-md) var(--lb-radius-md) 0 0;
	box-shadow: var(--lb-shadow);
}

.lb-opening-card h2 {
	max-width: 100%;
	font-size: clamp(1.7rem, 2.1vw, 1.95rem) !important;
	line-height: 1.02;
	letter-spacing: -.025em;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.lb-opening-card a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}

/* Seconde manchette d'accueil : même ordre de lecture, mise en page inversée
   uniquement lorsque l'écran offre réellement la place nécessaire. */
@media (min-width: 48.0625rem) {
	.lb-hero--inverse .lb-hero-media::after {
		background: linear-gradient(270deg, rgb(233 241 239 / 48%), transparent 62%);
	}

	.lb-hero--inverse .lb-hero-card {
		grid-column: 3 / 5;
		justify-self: end;
		width: 100%;
		border-radius: var(--lb-radius-lg) 0 0 var(--lb-radius-lg);
	}

	.lb-hero--inverse .lb-opening-card {
		grid-column: 2;
		justify-self: start;
		margin-right: 0 !important;
		margin-left: 2rem !important;
	}
}

@media (min-width: 48.0625rem) and (max-width: 72rem) {
	.lb-hero--inverse .lb-hero-card {
		grid-column: 2 / 4;
		width: min(42rem, calc(100% - 5rem));
	}

	.lb-hero--inverse .lb-opening-card {
		grid-column: 2;
	}
}

.lb-section-shell {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.lb-section-heading h2 {
	font-size: clamp(2.6rem, 5vw, 4.35rem);
	line-height: 1;
	letter-spacing: -.035em;
}

.lb-quick-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
	gap: .75rem !important;
}

.lb-quick-card {
	position: relative;
	display: flex;
	align-items: center;
	gap: 1rem;
	min-height: 9rem;
	padding: 1.25rem;
	color: var(--wp--preset--color--ink);
	background: var(--lb-surface-alt);
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
	transition: background-color var(--lb-transition), border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-quick-card:hover,
.lb-quick-card:focus-within {
	background: var(--wp--preset--color--water);
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 .75rem 2rem rgb(45 106 99 / 14%);
}

.lb-quick-icon {
	display: grid;
	place-items: center;
	width: 3rem;
	aspect-ratio: 1;
	background: var(--wp--preset--color--water);
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 50%;
}

.lb-quick-icon img {
	display: block;
	width: 1.45rem;
	height: 1.45rem;
}

.lb-quick-card > .lb-content-icon {
	flex: 0 0 auto;
}

.lb-content-icon {
	display: block;
	width: 3rem;
	height: 3rem;
	margin: 0;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 2.25rem;
}

.wp-block-image.lb-content-icon img {
	display: block;
	width: 3rem;
	height: 3rem;
}

.lb-content-icon.lb-icon-medallion {
	width: 3.5rem;
	height: 3.5rem;
	background-color: var(--wp--preset--color--water);
	background-size: 2rem;
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 50%;
}

.lb-lightbox-gallery figure.wp-block-image[role="button"] {
	cursor: zoom-in;
}

.lb-icon--accessibility { background-image: url("assets/icons/accessibility.svg"); }
.lb-icon--alert { background-image: url("assets/icons/alert.svg"); }
.lb-icon--associations { background-image: url("assets/icons/associations.svg"); }
.lb-icon--budget { background-image: url("assets/icons/budget.svg"); }
.lb-icon--calendar { background-image: url("assets/icons/calendar.svg"); }
.lb-icon--cemetery { background-image: url("assets/icons/cemetery.svg"); }
.lb-icon--clock { background-image: url("assets/icons/clock.svg"); }
.lb-icon--council { background-image: url("assets/icons/council.svg"); }
.lb-icon--documents { background-image: url("assets/icons/documents.svg"); }
.lb-icon--download { background-image: url("assets/icons/download.svg"); }
.lb-icon--emergency { background-image: url("assets/icons/emergency.svg"); }
.lb-icon--external-link { background-image: url("assets/icons/external-link.svg"); }
.lb-icon--family { background-image: url("assets/icons/family.svg"); }
.lb-icon--hall { background-image: url("assets/icons/hall.svg"); }
.lb-icon--heritage { background-image: url("assets/icons/heritage.svg"); }
.lb-icon--intercommunality { background-image: url("assets/icons/intercommunality.svg"); }
.lb-icon--map-pin { background-image: url("assets/icons/map-pin.svg"); }
.lb-icon--message { background-image: url("assets/icons/message.svg"); }
.lb-icon--news { background-image: url("assets/icons/news.svg"); }
.lb-icon--newsletter { background-image: url("assets/icons/newsletter.svg"); }
.lb-icon--phone { background-image: url("assets/icons/phone.svg"); }
.lb-icon--rss { background-image: url("assets/icons/rss.svg"); }
.lb-icon--school { background-image: url("assets/icons/school.svg"); }
.lb-icon--search { background-image: url("assets/icons/search.svg"); }
.lb-icon--services { background-image: url("assets/icons/services.svg"); }
.lb-icon--state-civil { background-image: url("assets/icons/state-civil.svg"); }
.lb-icon--town-hall { background-image: url("assets/icons/town-hall.svg"); }
.lb-icon--trail { background-image: url("assets/icons/trail.svg"); }
.lb-icon--transport { background-image: url("assets/icons/transport.svg"); }
.lb-icon--urbanism { background-image: url("assets/icons/urbanism.svg"); }
.lb-icon--waste { background-image: url("assets/icons/waste.svg"); }
.lb-icon--works { background-image: url("assets/icons/works.svg"); }
/* Icônes ajoutées en 0.10.0 (besoins municipaux) */
.lb-icon--health { background-image: url("assets/icons/health.svg"); }
.lb-icon--pharmacy { background-image: url("assets/icons/pharmacy.svg"); }
.lb-icon--firefighters { background-image: url("assets/icons/firefighters.svg"); }
.lb-icon--security { background-image: url("assets/icons/security.svg"); }
.lb-icon--water { background-image: url("assets/icons/water.svg"); }
.lb-icon--energy { background-image: url("assets/icons/energy.svg"); }
.lb-icon--recycling { background-image: url("assets/icons/recycling.svg"); }
.lb-icon--market { background-image: url("assets/icons/market.svg"); }
.lb-icon--library { background-image: url("assets/icons/library.svg"); }
.lb-icon--sport { background-image: url("assets/icons/sport.svg"); }
.lb-icon--culture { background-image: url("assets/icons/culture.svg"); }
.lb-icon--tourism { background-image: url("assets/icons/tourism.svg"); }
.lb-icon--canteen { background-image: url("assets/icons/canteen.svg"); }
.lb-icon--early-childhood { background-image: url("assets/icons/early-childhood.svg"); }
.lb-icon--employment { background-image: url("assets/icons/employment.svg"); }
.lb-icon--housing { background-image: url("assets/icons/housing.svg"); }
.lb-icon--elections { background-image: url("assets/icons/elections.svg"); }
.lb-icon--animals { background-image: url("assets/icons/animals.svg"); }
.lb-icon--nature { background-image: url("assets/icons/nature.svg"); }
.lb-icon--bike { background-image: url("assets/icons/bike.svg"); }
.lb-icon--parking { background-image: url("assets/icons/parking.svg"); }
.lb-icon--wifi { background-image: url("assets/icons/wifi.svg"); }

/* Icônes ajoutées en 0.13.28 (réseaux sociaux et information municipale). */
.lb-icon--facebook { background-image: url("assets/icons/facebook.svg"); }
.lb-icon--instagram { background-image: url("assets/icons/instagram.svg"); }
.lb-icon--x-twitter { background-image: url("assets/icons/x-twitter.svg"); }
.lb-icon--youtube { background-image: url("assets/icons/youtube.svg"); }
.lb-icon--linkedin { background-image: url("assets/icons/linkedin.svg"); }
.lb-icon--tiktok { background-image: url("assets/icons/tiktok.svg"); }
.lb-icon--whatsapp { background-image: url("assets/icons/whatsapp.svg"); }
.lb-icon--panneau-pocket { background-image: url("assets/icons/panneau-pocket.svg"); }

.wp-block-details {
	padding: .5rem 1.25rem;
	background: var(--lb-surface);
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-sm);
}

.wp-block-details + .wp-block-details {
	margin-top: .6rem;
}

.wp-block-details summary {
	padding-block: .75rem;
	cursor: pointer;
	font-weight: 800;
}

.wp-block-details[open] summary {
	border-bottom: 1px solid var(--lb-line);
	margin-bottom: .75rem;
}

/* Procès-verbaux par année (composition « Procès-verbaux des conseils »). */
.lb-pv-years {
	margin-top: 1.75rem;
	padding: clamp(1rem, 2.5vw, 1.4rem);
	background: var(--wp--preset--color--water);
	border-radius: var(--lb-radius-sm);
}

.lb-pv-years__label {
	margin: 0 0 .7rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 800;
}

.lb-pv-years__list {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-pv-years__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 4.2rem;
	min-height: 2.75rem;
	padding: .6rem 1rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 999px;
	font-weight: 850;
	line-height: 1;
	text-decoration: none;
}

.lb-pv-years__link:hover,
.lb-pv-years__link:focus-visible,
.lb-pv-years__link[aria-current="true"] {
	color: var(--wp--preset--color--petrol);
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--sun);
}

.lb-pv-annee {
	margin-top: 1.75rem;
	scroll-margin-top: 2rem;
}

.lb-pv-annee > h3 {
	font-family: var(--wp--preset--font-family--editorial);
	margin-bottom: .25rem;
}

.lb-pv-list .lb-document-row:last-of-type {
	border-bottom: 0;
}

.lb-pv-vide {
	color: var(--wp--preset--color--muted);
}

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	width: 100%;
	border-collapse: collapse;
}

.wp-block-table th,
.wp-block-table td {
	padding: .65rem .75rem;
	border: 1px solid var(--lb-line);
	text-align: left;
}

.wp-block-table thead th {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--water);
}

.wp-block-table figcaption {
	margin-top: .5rem;
	color: var(--wp--preset--color--muted);
	font-size: .85rem;
	text-align: left;
}

.wp-block-page-list li {
	margin-block: .15rem;
}

.wp-block-page-list ul {
	margin-top: .15rem;
	padding-left: 1.25rem;
}

.wp-block-page-list a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}

.wp-block-file a.wp-block-file__button {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}

.lb-document-row {
	padding-block: .85rem;
	border-bottom: 1px solid var(--lb-line);
}

.lb-document-row p {
	margin: 0;
}

.lb-access-map__image a {
	display: block;
	transition: box-shadow var(--lb-transition);
}

.lb-access-map__image > a {
	position: relative;
}

.lb-access-map__image > a::before {
	position: absolute;
	top: .75rem;
	left: .75rem;
	z-index: 2;
	max-width: calc(100% - 1.5rem);
	padding: .65rem .85rem;
	content: "Cliquez sur la carte pour accéder à l’itinéraire";
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: .65rem;
	box-shadow: 0 .4rem 1rem rgb(24 35 34 / 22%);
	font-size: .875rem;
	font-weight: 800;
	line-height: 1.3;
	pointer-events: none;
}

.lb-access-map__image > a:hover,
.lb-access-map__image > a:focus-visible {
	box-shadow: 0 .75rem 2rem rgb(15 76 92 / 22%);
}

.lb-access-map__image {
	position: relative;
	overflow: hidden;
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-sm);
}

.lb-access-map__image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 820 / 520;
	object-fit: cover;
}

.lb-access-map__attribution {
	position: absolute;
	right: .4rem;
	bottom: .4rem;
	z-index: 1;
	margin: 0 !important;
	padding: .2rem .45rem;
	color: var(--wp--preset--color--ink);
	background: rgb(255 255 255 / 92%);
	border-radius: .25rem;
	font-size: .7rem;
	line-height: 1.25;
}

.lb-access-map__attribution a {
	display: inline;
	color: inherit;
}

.wp-block-image.is-style-les-barils-medallion {
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	padding: .7rem;
	background: var(--wp--preset--color--water);
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 50%;
}

.wp-block-image.is-style-les-barils-medallion img {
	width: 2rem !important;
	height: 2rem !important;
	object-fit: contain !important;
}

.wp-block-group.is-style-les-barils-icon-row {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}

.wp-block-group.is-style-les-barils-icon-row > .lb-content-icon {
	flex: 0 0 auto;
}

.wp-block-group.lb-icon-pattern > p {
	margin: 0;
}

.wp-block-group.is-style-les-barils-icon-card {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--lb-surface);
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
}

/*
 * Transport – Mobilité : les deux parcours d’immatriculation restent de
 * hauteur strictement identique, même si l’un de leurs textes ou boutons
 * occupe davantage de lignes. Le sélecteur :has() maintient aussi les pages
 * enregistrées avant l’ajout des classes dédiées en version 0.13.32.
 */
.lb-transport-options,
.wp-block-columns:has(> .wp-block-column > .is-style-les-barils-card-featured) {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-auto-rows: 1fr;
	align-items: stretch !important;
}

.lb-transport-options > .wp-block-column,
.wp-block-columns:has(> .wp-block-column > .is-style-les-barils-card-featured) > .wp-block-column {
	display: flex;
	min-width: 0;
}

.lb-transport-options > .wp-block-column > .lb-transport-option-card,
.wp-block-columns:has(> .wp-block-column > .is-style-les-barils-card-featured) > .wp-block-column > :is(.is-style-les-barils-icon-card, .is-style-les-barils-card-featured) {
	flex: 1 1 auto;
	width: 100%;
	min-height: 100%;
}

@media (max-width: 48rem) {
	.lb-transport-options,
	.wp-block-columns:has(> .wp-block-column > .is-style-les-barils-card-featured) {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Variation « Carte à la une » : met un groupe en avant sur fond pétrole. */
.wp-block-group.is-style-les-barils-card-featured {
	padding: clamp(1.25rem, 3vw, 2rem);
	color: #fff;
	color: var(--wp--preset--color--white, #fff);
	background-color: #0f4c5c;
	background-color: var(--wp--preset--color--petrol, #0f4c5c);
	border-radius: var(--lb-radius-md);
}

.wp-block-group.is-style-les-barils-card-featured :where(h2, h3, h4, p, a, li) {
	color: inherit;
}

/* Variation « Panneau tournesol » : encadré d'appel sur fond signal. */
.wp-block-group.is-style-les-barils-panel-sun {
	padding: clamp(1.25rem, 3vw, 2rem);
	color: #182322;
	color: var(--wp--preset--color--ink, #182322);
	background-color: #e3b341;
	background-color: var(--wp--preset--color--sun, #e3b341);
	border-radius: var(--lb-radius-md);
}

.wp-block-group.is-style-les-barils-panel-sun :where(h2, h3, h4, p, a, li) {
	color: inherit;
}

.lb-quick-copy strong,
.lb-quick-copy span {
	display: block;
}

.lb-quick-copy strong {
	margin-bottom: .15rem;
	font-size: 1.05rem;
}

.lb-quick-copy {
	flex: 1;
}

.lb-quick-copy h3,
.lb-quick-copy p {
	margin-block: 0 .25rem;
}

.lb-card-link {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-weight: 800;
}

.lb-card-link::after {
	content: "\00a0\2192";
	content: "\00a0\2192" / "";
}

.lb-quick-copy span {
	color: var(--wp--preset--color--muted);
	font-size: .85rem;
}

.lb-quick-arrow {
	color: var(--wp--preset--color--teal);
	font-size: 1.35rem;
	font-weight: 850;
}

.lb-footer .is-style-no-disc {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-footer .is-style-no-disc li + li {
	margin-top: .35rem;
}

.lb-dashboard {
	display: grid !important;
	grid-template-columns: minmax(0, 2fr) minmax(18rem, .95fr);
	gap: 1rem !important;
}

.lb-dashboard > * {
	min-width: 0;
}

.lb-dashboard--single {
	grid-template-columns: minmax(0, 1fr);
}

.lb-dashboard--single > * {
	width: min(100%, 52rem);
	margin-inline: auto;
}

.lb-changes-panel,
.lb-agenda-card {
	padding: clamp(1.5rem, 4vw, 3.5rem);
	border-radius: var(--lb-radius-lg);
}

.lb-change-row {
	display: grid;
	grid-template-columns: 4rem 1fr auto;
	align-items: center;
	gap: 1rem;
	min-height: 6.2rem;
	padding: 1rem 1.25rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border-radius: var(--lb-radius-sm);
	text-decoration: none;
}

.lb-change-row + .lb-change-row {
	margin-top: .6rem;
}

.lb-change-row h3,
.lb-change-row p {
	margin-block: 0;
}

.lb-change-row h3 a {
	color: inherit;
	text-decoration-thickness: .08em;
	text-underline-offset: .16em;
}

.lb-change-row a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	font-weight: 800;
}

.lb-change-date {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 1.5rem;
	font-weight: 750;
	line-height: .85;
	text-align: center;
}

.lb-change-date small {
	display: block;
	margin-top: .35rem;
	font-family: var(--wp--preset--font-family--interface);
	font-size: .75rem;
	text-transform: uppercase;
}

.lb-agenda-card :where(h2, h3) {
	font-size: clamp(2rem, 3.5vw, 3.2rem);
	line-height: 1;
}

.lb-agenda-card__all {
	margin-top: 1.25rem;
	font-weight: 800;
}

.lb-event-location {
	margin-top: .35rem !important;
}

.lb-editorial-feature {
	display: grid !important;
	grid-template-columns: minmax(0, 1.7fr) minmax(22rem, 1fr);
	min-height: 46rem;
}

.lb-editorial-media {
	height: 100%;
	margin: 0 !important;
}

.lb-editorial-media img {
	width: 100%;
	height: 100%;
	min-height: 46rem;
	object-fit: cover;
}

.lb-editorial-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.5rem, 6vw, 6rem);
}

.lb-editorial-copy h2 {
	font-size: clamp(3rem, 5.5vw, 5.2rem);
	line-height: .94;
	letter-spacing: -.04em;
}

.lb-editorial-links a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 3.6rem;
	padding-block: .8rem;
	color: inherit;
	border-top: 1px solid rgb(255 255 255 / 28%);
	font-weight: 800;
	text-decoration: none;
}

.lb-editorial-links a::after {
	content: "\2192";
	content: "\2192" / "";
}

/* Une seule ligne de séparation pour ce double accès. Le groupe « et
   professionnels locaux » est insécable, y compris dans les accueils déjà
   enregistrés, corrigés au rendu par functions.php. */
.lb-editorial-links p:has(.lb-editorial-links__keep) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 .3em;
	min-height: 3.6rem;
	margin: 0;
	padding-block: .8rem;
	border-top: 1px solid rgb(255 255 255 / 28%);
	font-weight: 800;
}

.lb-editorial-links p:has(.lb-editorial-links__keep)::after {
	margin-left: auto;
	content: "\2192";
	content: "\2192" / "";
}

.lb-editorial-links p:has(.lb-editorial-links__keep) > a,
.lb-editorial-links__keep > a {
	display: inline;
	min-height: 0;
	padding: 0;
	border: 0;
}

.lb-editorial-links p:has(.lb-editorial-links__keep) > a::after,
.lb-editorial-links__keep > a::after {
	display: none;
}

.lb-editorial-links__keep {
	white-space: nowrap;
}

/* La dernière ligne contient deux destinations mais une seule flèche de ligne.
   Cette règle volontairement spécifique protège aussi les accueils enregistrés
   avant la correction, indépendamment de l'ordre des règles d'animation. */
.lb-editorial-links .lb-editorial-links__keep > a::after {
	display: none !important;
	content: none !important;
}

.lb-news-grid {
	display: grid !important;
	grid-template-columns: 2fr 1fr 1fr;
	gap: .75rem !important;
}

.lb-news-card {
	position: relative;
	min-height: 28rem;
	padding: 1.5rem;
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
}

.lb-featured-news {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	overflow: hidden;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	isolation: isolate;
}

.lb-featured-news > figure {
	position: absolute;
	z-index: -2;
	inset: 0;
	height: 100%;
	margin: 0 !important;
}

.lb-featured-news > figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lb-featured-news::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(0deg, rgb(15 76 92 / 94%), rgb(15 76 92 / 8%) 80%);
}

.lb-news-card h3 {
	font-size: clamp(1.75rem, 3vw, 2.6rem);
	line-height: 1.05;
}

.lb-contact-strip {
	padding-block: clamp(4rem, 8vw, 7rem);
}

.lb-contact-strip h2 {
	font-size: clamp(2.8rem, 5vw, 4.6rem);
	line-height: 1;
}

/* Bandeau réseaux sociaux (« Suivez la mairie »). Zéro traceur : de simples
   liens vers les profils, aucune ressource ni script tiers n'est chargé. */
.lb-social-grid {
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
	gap: .85rem !important;
}

.lb-social-card {
	align-items: center;
	gap: .55rem;
	padding: 1.5rem 1.25rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	/* Bordure volontairement plus soutenue que --lb-line : la carte blanche ne
	   se détache que de 1,15:1 sur le fond eau du bandeau, c'est donc le filet
	   qui la délimite. --lb-line-strong atteint 3,1:1 sur ce fond. */
	border: 1px solid var(--lb-line-strong);
	border-radius: var(--lb-radius-md);
	transition: border-color var(--lb-transition), box-shadow var(--lb-transition);
}

/* :focus-within donne au clavier le même retour visuel que la souris (le lien
   conserve par ailleurs le contour de focus global). */
.lb-social-card:hover,
.lb-social-card:focus-within {
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 .75rem 2rem rgb(45 106 99 / 14%);
}

.lb-social-card > .lb-content-icon {
	margin-inline: auto;
}

.lb-social-card h3,
.lb-social-card p {
	margin: 0;
}

/*
 * Accueil : duo asymétrique « salle Maurice Durey + Instagram ».
 * Les cartes restent de hauteur identique sur une même ligne. Instagram n'est
 * jamais intégré : le pavé contient uniquement un lien sortant explicite.
 */
.lb-home-spotlights {
	background:
		radial-gradient(circle at 92% 10%, rgb(227 179 65 / 20%) 0 4.75rem, transparent 4.8rem),
		var(--wp--preset--color--white);
}

.lb-home-spotlights__grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	justify-content: center;
	width: min(100%, 52rem) !important;
	max-width: 52rem !important;
	margin-inline: auto;
	gap: clamp(1rem, 2vw, 1.5rem) !important;
}

.lb-home-spotlight {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-height: 21rem;
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2rem);
	overflow: hidden;
	border-radius: var(--lb-radius-md);
}

.lb-home-spotlight::before,
.lb-home-spotlight::after {
	position: absolute;
	z-index: -1;
	content: "";
	border-radius: 50%;
	pointer-events: none;
}

.lb-home-hall-card {
	box-shadow: var(--lb-shadow);
}

.lb-home-hall-card::before {
	right: -4rem;
	bottom: -6rem;
	width: 15rem;
	height: 15rem;
	background: rgb(255 255 255 / 8%);
	border: 1px solid rgb(255 255 255 / 15%);
}

.lb-home-hall-card::after {
	top: 1.5rem;
	right: 1.5rem;
	width: 3.75rem;
	height: 3.75rem;
	background: var(--wp--preset--color--sun);
	opacity: .95;
}

.lb-home-hall-card > :not(.lb-content-icon),
.lb-home-instagram-card > :not(.lb-content-icon) {
	position: relative;
	z-index: 1;
}

.lb-home-hall-card > .lb-content-icon,
.lb-home-instagram-card > .lb-content-icon {
	position: relative;
	z-index: 2;
	margin-bottom: 1rem;
}

.lb-home-spotlight__eyebrow {
	margin-top: 1.25rem;
	margin-bottom: .45rem;
}

.lb-home-spotlight > .wp-block-heading {
	margin-top: 0;
	margin-bottom: .75rem;
}

.lb-home-hall-card > .wp-block-heading {
	max-width: 18ch;
}

.lb-home-spotlight > .wp-block-buttons {
	margin-top: auto;
	padding-top: 1.25rem;
}

.lb-home-instagram-card {
	background:
		linear-gradient(rgb(24 35 34 / 60%), rgb(24 35 34 / 60%)),
		radial-gradient(circle at 12% 112%, #feda75 0 12%, #fa7e1e 30%, #d62976 52%, #962fbf 74%, #4f5bd5 100%);
	color: var(--wp--preset--color--white) !important;
	border: 1px solid rgb(255 255 255 / 55%);
	box-shadow: var(--lb-shadow);
}

.lb-home-instagram-card::before {
	top: -3.5rem;
	right: -3.5rem;
	width: 10rem;
	height: 10rem;
	border: 1.25rem solid rgb(255 255 255 / 15%);
}

.lb-home-instagram-card :where(.wp-block-heading, .lb-home-spotlight__eyebrow, p) {
	color: var(--wp--preset--color--white) !important;
}

.lb-home-instagram-card .wp-block-button__link {
	color: #702568 !important;
	background: var(--wp--preset--color--white) !important;
}

.lb-home-instagram-card .wp-block-button__link:hover,
.lb-home-instagram-card .wp-block-button__link:focus,
.lb-home-instagram-card .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--ink) !important;
	background: var(--wp--preset--color--sun) !important;
}

.lb-home-instagram-card__privacy {
	color: var(--wp--preset--color--white) !important;
	margin-top: 1rem;
	margin-bottom: 0;
}

.lb-home-instagram-card:hover,
.lb-home-instagram-card:focus-within {
	border-color: var(--wp--preset--color--white);
	box-shadow: var(--lb-hover-shadow);
}

/* PanneauPocket : le cadre tiers est absent avant le choix explicite. */
.lb-pp-card {
	width: min(100%, 80rem) !important;
	max-width: 80rem !important;
	margin-inline: auto;
	padding: clamp(2rem, 5vw, 3.25rem);
	text-align: center;
	border-radius: var(--lb-radius-lg);
}

.lb-pp-card > .lb-content-icon {
	margin-inline: auto;
	margin-bottom: 1rem;
	background-color: var(--wp--preset--color--white);
}

.lb-pp-title {
	margin: 0;
	font-size: clamp(1.9rem, 4vw, 2.9rem);
	line-height: 1.05;
}

.lb-pp-lead {
	margin: .85rem auto 0;
	max-width: 40rem;
}

.lb-pp-action {
	display: block !important;
	width: 100%;
	margin-top: clamp(1.25rem, 3vw, 1.75rem);
}

.lb-pp-widget {
	width: 100%;
}

.lb-pp-consent {
	box-sizing: border-box;
	width: 100%;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	background: rgb(255 255 255 / 10%);
	border: 1px solid rgb(255 255 255 / 38%);
	border-radius: var(--lb-radius-md);
}

.lb-pp-consent__text {
	max-width: 68ch;
	margin: 0 auto .65rem;
	color: inherit;
	font-size: .9rem;
}

.lb-pp-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: 0;
	height: auto !important;
	margin: 0 !important;
	padding: .75rem clamp(1.25rem, 4vw, 2rem) !important;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border: 2px solid var(--wp--preset--color--sun);
	border-radius: 999px;
	font: inherit;
	font-weight: 800;
	line-height: 1.15 !important;
	vertical-align: middle;
	text-decoration: none;
	cursor: pointer;
	appearance: none;
	transition: box-shadow var(--lb-transition), transform var(--lb-transition);
}

.lb-pp-button__label {
	display: block;
	margin: 0;
	padding: 0;
	line-height: 1.2;
}

.lb-pp-consent__links {
	margin: 1rem 0 0;
	font-size: .82rem;
}

.lb-pp-consent__links a {
	color: inherit;
}

.lb-pp-frame {
	overflow: hidden;
	width: 100%;
	background: var(--wp--preset--color--white);
	border: .2rem solid var(--wp--preset--color--sun);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 1rem 2.5rem rgb(0 0 0 / 20%);
}

.lb-pp-iframe {
	display: block;
	width: 100%;
	height: clamp(28rem, 55vw, 32.375rem);
	background: var(--wp--preset--color--white);
	border: 0;
}

.lb-pp-unload {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.75rem;
	margin: .8rem;
	padding: .65rem 1.1rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 999px;
	font: inherit;
	font-size: .88rem;
	font-weight: 800;
	cursor: pointer;
}

.lb-pp-unload:hover,
.lb-pp-unload:focus-visible {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
}

.lb-newsletters-alternatives:has(.lb-pp-widget) {
	grid-template-columns: minmax(0, 1fr) !important;
}

.lb-newsletters-channel .lb-pp-consent {
	background: rgb(255 255 255 / 72%);
	border-color: rgb(15 76 92 / 28%);
}

.lb-newsletters-channel .lb-pp-consent__text,
.lb-newsletters-channel .lb-pp-consent__links {
	color: var(--wp--preset--color--ink);
}

@media (max-width: 36rem) {
	.lb-pp-iframe {
		height: 30rem;
	}
}

@media print {
	.lb-pp-frame,
	.lb-pp-button,
	.lb-pp-unload {
		display: none !important;
	}
}

/* Page Paiement en ligne : parcours administré lisible et cartes homogènes. */
.lb-payment-hero-actions {
	align-items: center;
	gap: .75rem !important;
	margin-top: 1.5rem;
}

.lb-payment-primary-action .wp-block-button__link,
.lb-payment-hero .wp-block-buttons > .wp-block-button:first-child .wp-block-button__link {
	display: flex;
	gap: .75rem;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 4.7rem;
	padding: 1.15rem 1.8rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border: .18rem solid var(--wp--preset--color--ink);
	border-radius: .8rem;
	box-shadow: 0 .75rem 0 rgb(15 76 92 / 18%);
	font-size: clamp(1.05rem, 2vw, 1.25rem);
	font-weight: 900;
	text-decoration: none;
	transition: box-shadow var(--lb-transition), transform var(--lb-transition);
}

.lb-payment-primary-action {
	width: min(100%, 52rem);
}

.lb-payment-primary-action .wp-block-button__link::after,
.lb-payment-hero .wp-block-buttons > .wp-block-button:first-child .wp-block-button__link::after {
	flex: 0 0 auto;
	width: 1.25rem;
	height: 1.25rem;
	background: url("assets/icons/external-link.svg") center / contain no-repeat;
	content: "";
}

.lb-payment-primary-action .wp-block-button__link:hover,
.lb-payment-primary-action .wp-block-button__link:focus-visible,
.lb-payment-hero .wp-block-buttons > .wp-block-button:first-child .wp-block-button__link:hover,
.lb-payment-hero .wp-block-buttons > .wp-block-button:first-child .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--ink);
	box-shadow: 0 .35rem 0 rgb(15 76 92 / 22%);
	transform: translateY(.15rem);
}

.lb-payfip-identifier {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: .25rem 1.25rem;
	max-width: 36rem;
	margin-block: 1.5rem;
	padding: 1rem 1.15rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border-radius: var(--lb-radius-sm);
	box-shadow: 0 .65rem 1.5rem rgb(15 76 92 / 14%);
}

.lb-payfip-identifier__label {
	font-size: .78rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.lb-payfip-identifier__value {
	grid-column: 2;
	grid-row: 1 / 3;
	padding: .45rem .75rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-radius: .5rem;
	font-family: ui-monospace, "SFMono-Regular", Consolas, monospace;
	font-size: clamp(1.45rem, 3vw, 1.9rem);
	font-weight: 850;
	letter-spacing: .14em;
	line-height: 1;
	user-select: all;
}

.lb-payfip-identifier__help {
	color: var(--wp--preset--color--white);
	font-size: .8rem;
}

.lb-payfip-identifier-hint {
	max-width: 36rem;
	margin-block: 1.25rem;
	padding: .8rem 1rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-left: .3rem solid var(--wp--preset--color--petrol);
	border-radius: var(--lb-radius-sm);
	font-size: .9rem;
	font-weight: 700;
}

.lb-payment-trust-card {
	box-shadow: var(--lb-shadow);
}

.lb-payment-official-note {
	max-width: 62rem;
	padding: .8rem 1rem;
	background: rgb(255 255 255 / 64%);
	border-left: .3rem solid var(--wp--preset--color--petrol);
	border-radius: .55rem;
}

.lb-payment-transition {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2.5vw, 2rem) !important;
	align-items: stretch !important;
}

.lb-payment-checklist,
.lb-payment-mini-steps {
	height: 100%;
	box-sizing: border-box;
	border: 1px solid rgb(15 76 92 / 16%);
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
}

.lb-payment-check-list,
.lb-payment-numbered-list {
	display: grid;
	gap: .8rem;
	padding-left: 1.35rem;
}

.lb-payment-numbered-list li::marker {
	color: var(--wp--preset--color--petrol);
	font-weight: 900;
}

.lb-payment-help {
	gap: 1.5rem !important;
}

/*
 * Les pages PayFiP enregistrées avant 0.13.44 contenaient un long mode
 * d’emploi. Le parcours public devient une simple passerelle : on conserve le
 * héros, son identifiant dynamique et l’aide finale, sans modifier la page en
 * base. Réinsérer la composition remplace définitivement cette ancienne forme.
 */
body:has(.lb-payment-scope) :is(
	.lb-payment-scope,
	.lb-payment-process,
	.lb-payment-preparation,
	.lb-payment-warning
) {
	display: none !important;
}

body:has(.lb-payment-scope) .lb-payment-hero ~ .wp-block-spacer {
	display: none;
}

.lb-payment-trust-card > .lb-content-icon {
	margin-bottom: 1rem;
}

.lb-payment-scope__cards,
.lb-payment-preparation {
	align-items: stretch !important;
}

.lb-payment-scope__cards > .wp-block-column,
.lb-payment-preparation > .wp-block-column {
	display: flex;
}

.lb-payment-scope__card,
.lb-payment-preparation__card {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
}

.lb-payment-scope__notice {
	max-width: none;
	margin-top: var(--wp--preset--spacing--50);
	border-left: .35rem solid var(--wp--preset--color--sun);
}

.lb-payment-steps {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.5rem) !important;
	margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.lb-payment-step {
	position: relative;
	height: 100%;
	padding: clamp(1.5rem, 3vw, 2.25rem);
	background: var(--wp--preset--color--white);
	border: 1px solid var(--lb-line);
	border-top: .3rem solid var(--wp--preset--color--petrol);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
}

.lb-payment-step__number {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: .85rem;
	width: auto;
	min-width: 7.25rem;
	height: auto;
	margin: 0 0 1.5rem;
	padding: .5rem .65rem .5rem .85rem;
	color: var(--wp--preset--color--ink) !important;
	background:
		linear-gradient(
			90deg,
			var(--wp--preset--color--white) 0 calc(100% - 2.65rem),
			var(--wp--preset--color--sun) calc(100% - 2.65rem) 100%
		) !important;
	border: 1px solid var(--lb-line-strong);
	border-radius: 999px;
	font-size: 1rem;
	letter-spacing: .08em;
	line-height: 1.5;
}

.lb-payment-step__number::before {
	content: "Étape";
	color: var(--wp--preset--color--petrol);
	font-size: .72rem;
	font-weight: 850;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.lb-payment-step > .wp-block-heading {
	margin-top: 0;
	font-size: clamp(1.65rem, 2.5vw, 2rem) !important;
}

.lb-payment-preparation__card > .wp-block-buttons {
	margin-top: auto;
}

.lb-payment-warning code {
	color: inherit;
	background: rgb(255 255 255 / 45%);
}

@media (max-width: 64rem) {
	.lb-home-spotlights__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}

@media (max-width: 48rem) {
	.lb-home-spotlights__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.lb-home-spotlight {
		width: min(100%, 25rem);
		min-height: 21rem;
		margin-inline: auto;
	}

	.lb-home-hall-card::after {
		top: 1.25rem;
		right: 1.25rem;
		width: 4rem;
		height: 4rem;
	}

	.lb-payment-steps {
		grid-template-columns: minmax(0, 1fr);
	}

	.lb-payfip-identifier {
		grid-template-columns: minmax(0, 1fr);
	}

	.lb-payfip-identifier__value {
		grid-column: 1;
		grid-row: auto;
		justify-self: start;
		margin-top: .5rem;
	}
}

.lb-pp-button:hover,
.lb-pp-button:focus-visible {
	color: var(--wp--preset--color--ink);
	box-shadow: 0 .75rem 2rem rgb(0 0 0 / 28%);
}

.lb-pp-hint {
	display: inline-block;
	padding: .5rem .8rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-radius: var(--lb-radius-sm);
	font-size: .9rem;
	font-weight: 700;
}

.lb-footer {
	display: flex;
	flex-direction: column;
	gap: 0 !important;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 0 !important;
	box-shadow: none !important;
}

/* Le pied de page est imbriqué dans une partie de modèle WordPress. Ce niveau
   extérieur n'a pas de padding horizontal à compenser : des marges négatives
   l'élargiraient au-delà du viewport et provoqueraient un déplacement latéral
   tactile. Il reste donc strictement calé sur la largeur de son parent. */
.wp-site-blocks > footer.wp-block-template-part {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	max-width: 100% !important;
	margin-block: 0 !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
	overflow: clip;
}

footer.wp-block-template-part > .lb-footer,
footer.wp-block-template-part > .wp-block-group.lb-footer {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

footer.wp-block-template-part .lb-footer > .alignfull {
	box-sizing: border-box;
	width: 100% !important;
	max-width: none !important;
	margin-right: 0 !important;
	margin-left: 0 !important;
	border-right-width: 0 !important;
	border-left-width: 0 !important;
}

.lb-footer > .lb-footer-banner {
	order: 0;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	line-height: 0;
}

.lb-footer-banner img {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	object-fit: contain;
}

.lb-footer > .lb-footer-help {
	order: 1;
	width: auto !important;
}

.lb-footer > .lb-footer-labels {
	order: 2;
	width: auto !important;
}

.lb-footer > .lb-footer-main {
	order: 3;
	width: 100%;
}

.lb-footer > .lb-footer-legal {
	order: 4;
	width: auto !important;
	max-width: none !important;
}

/*
 * Un groupe « pleine largeur » reçoit des marges négatives de WordPress pour
 * neutraliser le padding global. Lui imposer width:100% le décalait vers la
 * gauche sans étendre son bord droit, d’où la large bande pétrole observée.
 * On conserve donc le calcul natif et on supprime seulement l’espacement entre
 * les différentes strates du pied de page.
 */
.lb-footer > * {
	margin-block: 0 !important;
}

.lb-footer-help {
	position: relative;
	overflow: hidden;
	padding-block: clamp(2.25rem, 5vw, 4rem);
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--water);
	isolation: isolate;
}

.lb-footer-help::before,
.lb-footer-help::after {
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	content: "";
	pointer-events: none;
}

.lb-footer-help::before {
	top: -7.5rem;
	right: -4rem;
	width: 18rem;
	height: 18rem;
	background: rgb(227 179 65 / 42%);
}

.lb-footer-help::after {
	right: 7rem;
	bottom: -9rem;
	width: 15rem;
	height: 15rem;
	border: 2px solid rgb(15 76 92 / 18%);
}

.lb-footer-help-inner {
	position: relative;
	z-index: 1;
	grid-template-columns: minmax(17rem, .8fr) minmax(35rem, 1.45fr) !important;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}

.lb-footer-help-copy {
	max-width: 35rem;
}

.lb-footer-help-copy > * {
	margin-block: 0;
}

.lb-footer-help-copy > * + * {
	margin-top: .65rem;
}

.lb-footer-eyebrow,
.lb-footer-kicker {
	font-size: .75rem;
	font-weight: 850;
	letter-spacing: .1em;
	line-height: 1.35;
	text-transform: uppercase;
}

.lb-footer-eyebrow {
	display: flex;
	gap: .55rem;
	align-items: center;
	color: var(--wp--preset--color--petrol);
}

.lb-footer-eyebrow::before {
	flex: 0 0 auto;
	width: .7rem;
	height: .7rem;
	background: var(--wp--preset--color--sun);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 50%;
	content: "";
}

.lb-footer-help-copy h2 {
	max-width: 18ch;
	color: var(--wp--preset--color--ink);
	line-height: 1.05;
	text-wrap: balance;
}

.lb-footer-actions {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: .75rem;
	width: 100%;
}

.lb-footer-action {
	--lb-footer-action-bg: #fff;
	--lb-footer-action-color: var(--wp--preset--color--ink);
	--lb-footer-action-border: var(--wp--preset--color--petrol);
	--lb-footer-icon-bg: var(--wp--preset--color--water);

	width: 100%;
	margin: 0;
}

.lb-footer-action--clock {
	--lb-footer-action-bg: var(--wp--preset--color--sun);
	--lb-footer-icon-bg: rgb(255 255 255 / 72%);
}

.lb-footer-action--map {
	--lb-footer-action-bg: var(--wp--preset--color--petrol);
	--lb-footer-action-color: var(--wp--preset--color--white);
	--lb-footer-action-border: var(--wp--preset--color--white);
	--lb-footer-icon-bg: var(--wp--preset--color--white);
}

.lb-footer-action .wp-block-button__link {
	display: grid;
	gap: .75rem;
	align-content: center;
	justify-items: start;
	width: 100%;
	min-height: 9rem;
	padding: 1.15rem;
	color: var(--lb-footer-action-color);
	background: var(--lb-footer-action-bg);
	border: 2px solid var(--lb-footer-action-border);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 .55rem 1.4rem rgb(15 76 92 / 8%);
	font-size: .9rem;
	font-weight: 820;
	line-height: 1.25;
	text-align: left;
	transition: transform var(--lb-transition), border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-footer-action .wp-block-button__link::before {
	display: block;
	width: 3.25rem;
	height: 3.25rem;
	background-color: var(--lb-footer-icon-bg);
	background-position: center;
	background-repeat: no-repeat;
	background-size: 1.75rem;
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 50%;
	content: "";
	transition: transform var(--lb-transition);
}

.lb-footer-action--message .wp-block-button__link::before {
	background-image: url("assets/icons/message.svg");
}

.lb-footer-action--clock .wp-block-button__link::before {
	background-image: url("assets/icons/clock.svg");
}

.lb-footer-action--map .wp-block-button__link::before {
	background-image: url("assets/icons/map-pin.svg");
}

.lb-footer-action .wp-block-button__link:hover,
.lb-footer-action .wp-block-button__link:focus,
.lb-footer-action .wp-block-button__link:focus-visible {
	color: var(--lb-footer-action-color);
	background: var(--lb-footer-action-bg);
	border-color: var(--lb-footer-action-border);
	box-shadow: 0 .8rem 1.8rem rgb(15 76 92 / 15%);
	transform: translateY(-3px);
}

.lb-footer-action .wp-block-button__link:hover::before,
.lb-footer-action .wp-block-button__link:focus-visible::before {
	transform: rotate(-7deg) scale(1.06);
}

.lb-footer-main {
	grid-template-columns: minmax(15rem, 1.25fr) repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1.5rem, 3vw, 3.25rem);
	align-items: start;
	padding-block: clamp(3rem, 6vw, 5rem);
}

.lb-footer h2,
.lb-footer h3,
.lb-footer p,
.lb-footer a {
	color: inherit;
}

.lb-footer-identity {
	position: relative;
	overflow: hidden;
	padding: 1.4rem;
	background: rgb(0 0 0 / 6%);
	border: 1px solid rgb(255 255 255 / 28%);
	border-radius: var(--lb-radius-md);
}

.lb-footer-identity::after {
	position: absolute;
	top: -3.4rem;
	right: -3.4rem;
	width: 6.5rem;
	height: 6.5rem;
	background: var(--wp--preset--color--sun);
	border-radius: 50%;
	content: "";
	opacity: .95;
	pointer-events: none;
}

.lb-footer-identity > * {
	position: relative;
	z-index: 1;
	margin-block: 0;
}

.lb-footer-identity > * + * {
	margin-top: .75rem;
}

.lb-footer-kicker {
	max-width: 13rem;
	color: var(--wp--preset--color--sun) !important;
}

.lb-footer-identity h2 {
	max-width: 10ch;
	line-height: 1.05;
}

.lb-footer-address {
	padding-top: .8rem;
	border-top: 1px solid rgb(255 255 255 / 24%);
	line-height: 1.6;
}

.lb-footer-contact-link {
	display: flex;
	gap: .6rem;
	align-items: center;
}

.lb-footer-contact-link::before {
	flex: 0 0 auto;
	width: 1.8rem;
	height: 1.8rem;
	background-color: #fff;
	background-position: center;
	background-repeat: no-repeat;
	background-size: 1.1rem;
	border-radius: 50%;
	content: "";
}

.lb-footer-contact-link--phone::before {
	background-image: url("assets/icons/phone.svg");
}

.lb-footer-contact-link--mail::before {
	background-image: url("assets/icons/message.svg");
}

.lb-footer-contact-link a {
	font-weight: 750;
}

.lb-footer-nav h3 {
	margin-bottom: .7rem;
	padding-bottom: .65rem;
	border-bottom: 1px solid rgb(255 255 255 / 24%);
}

.lb-footer-nav .wp-block-list {
	margin-block: 0;
	padding: 0;
}

.lb-footer-nav .wp-block-list li {
	position: relative;
	padding-left: 1rem;
}

.lb-footer-nav .wp-block-list li::before {
	position: absolute;
	top: 1.15rem;
	left: 0;
	width: .4rem;
	height: .4rem;
	background: var(--wp--preset--color--sun);
	border-radius: 50%;
	content: "";
}

.lb-footer-nav .wp-block-list li + li {
	margin-top: .08rem;
}

.lb-footer-nav a,
.lb-footer-low-data {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-size: .9rem;
}

.lb-footer-nav .wp-block-list a {
	text-decoration-color: rgb(255 255 255 / 58%);
	text-decoration-thickness: .08em;
	text-underline-offset: .2em;
}

.lb-footer-nav .wp-block-list a:hover,
.lb-footer-nav .wp-block-list a:focus-visible {
	text-decoration-color: var(--wp--preset--color--sun);
	text-decoration-thickness: .14em;
}

.lb-footer-payfip {
	margin-top: 1rem !important;
}

.lb-footer-payfip .wp-block-button__link {
	justify-content: center;
	width: 100%;
	min-height: 3.25rem;
	border: 2px solid var(--wp--preset--color--sun);
	border-radius: .65rem;
	box-shadow: 0 .4rem 0 rgb(0 0 0 / 18%);
	font-weight: 900;
	text-decoration: none;
}

.lb-footer-payfip .wp-block-button__link::before {
	width: 1.3rem;
	height: 1.3rem;
	margin-right: .45rem;
	background: url("assets/icons/budget.svg") center / contain no-repeat;
	content: "";
}

.lb-footer-instagram {
	margin-top: 1rem;
}

.lb-footer-instagram a {
	display: inline-flex;
	gap: .6rem;
	align-items: center;
	min-height: 2.75rem;
	padding: .45rem .8rem;
	color: #fff;
	background:
		linear-gradient(rgb(0 0 0 / 28%), rgb(0 0 0 / 28%)),
		linear-gradient(115deg, #833ab4, #c13584 42%, #e1306c 68%, #f77737);
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: 999px;
	box-shadow: 0 .45rem 1rem rgb(0 0 0 / 14%);
	font-size: .78rem;
	font-weight: 800;
	line-height: 1.25;
	text-decoration: none;
}

.lb-footer-instagram a::before {
	flex: 0 0 auto;
	width: 1.75rem;
	height: 1.75rem;
	background-color: #fff;
	background-image: url("assets/icons/instagram.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 1.15rem;
	border-radius: 50%;
	content: "";
}

.lb-footer-instagram a:hover,
.lb-footer-instagram a:focus-visible {
	color: #fff;
	box-shadow: 0 .65rem 1.25rem rgb(0 0 0 / 24%);
	transform: translateY(-2px);
}

.lb-footer-low-data {
	margin-top: .45rem;
	padding: .2rem .75rem;
	color: inherit;
	background: rgb(255 255 255 / 8%);
	border: 1px solid rgb(255 255 255 / 35%);
	border-radius: 999px;
	cursor: pointer;
	font: inherit;
	font-weight: 750;
	text-decoration: none;
}

.lb-footer-low-data:hover,
.lb-footer-low-data:focus-visible {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--sun);
}

.lb-footer-legal {
	padding-block: 1.25rem;
	border-top: 1px solid rgb(255 255 255 / 26%);
	font-size: .78rem;
}

.lb-footer-legal a {
	justify-content: center;
	min-width: 2.75rem;
}

/* Bandeau de logos partenaires et labels (Région, label Fleuri, interco). */
.lb-footer-labels {
	padding-block: clamp(1.6rem, 4vw, 2.6rem);
	background: #f7f5ef;
	border-top: 1px solid rgb(15 76 92 / 18%);
	border-bottom: 1px solid rgb(15 76 92 / 24%);
}

.lb-footer-labels-row {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center;
	gap: 1.25rem clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}

.lb-footer-label {
	margin: 0;
}

.lb-footer-labels figcaption,
.lb-footer-label figcaption {
	display: none !important;
}

.lb-footer-label img {
	height: 7rem;
	width: auto;
	max-width: min(18rem, calc(100vw - 4rem));
	padding: .75rem 1.15rem;
	background: #fff;
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 1rem;
	box-shadow: 0 .45rem 1rem rgb(15 76 92 / 10%);
}

.lb-page-main {
	/* Aucune bande blanche entre l'en-tête et le contenu, quel que soit le
	   gabarit : on annule l'espacement de bloc au-dessus du <main> (1) et on
	   fait du <main> un contexte de formatage de bloc (flow-root) pour contenir
	   les marges internes qui, sinon, « débordent » au-dessus de lui — par ex.
	   quand une alerte est publiée. flow-root n'affecte pas les pleines largeurs.
	   !important : garantit le correctif même si un cache (LiteSpeed) réordonne
	   les règles au point d'écraser le flow-root. */
	margin-block-start: 0 !important;
	display: flow-root !important;
	min-height: 50vh;
}

/* Réglages > Informations mairie > Largeur des contenus. Les variables de
   mise en page sont redéfinies seulement dans les pages, tout en conservant
   une gouttière responsive : le texte ne touche jamais les bords de l’écran. */
body.lb-pages-full-width .lb-page-main {
	--wp--style--global--content-size: calc(100vw - clamp(2rem, 5vw, 5rem));
	--wp--style--global--wide-size: calc(100vw - clamp(2rem, 5vw, 5rem));
}

body.lb-pages-full-width .lb-page-main .lb-content-frame {
	width: 100% !important;
	max-width: var(--wp--style--global--wide-size) !important;
	margin-inline: auto !important;
}

/* Repli anti-UCSS. Sur certains serveurs, l'optimiseur « CSS inutilisé » de
   LiteSpeed supprime la propriété « display: flow-root » ci-dessus, ce qui
   laisse revenir la bande blanche (la marge du premier bloc visible déborde
   au-dessus du contenu). Ce repli basé sur les marges — qu'UCSS conserve —
   annule cette marge : sur le 1er bloc du contenu et sur celui qui suit la
   requête d'alerte (le premier bloc visible quand aucune alerte n'est publiée). */
.lb-page-main > :first-child,
.lb-page-main > .lb-alert-query + * {
	margin-block-start: 0 !important;
}

/*
 * La composition d'accueil peut aussi être insérée directement dans un modèle
 * ou une page vierge. Dans ce cas, WordPress place ses blocs à la racine de
 * .wp-site-blocks et leur applique son espacement global de 20 px. On annule
 * uniquement l'espace entre l'en-tête (ou l'alerte vide) et la manchette.
 */
.wp-site-blocks > .wp-block-template-part + .lb-hero,
.wp-site-blocks > .wp-block-template-part + .lb-alert-query + .lb-hero,
.wp-site-blocks > header + .lb-hero,
.wp-site-blocks > header + .lb-alert-query + .lb-hero,
.wp-block-post-content > .lb-hero:first-child,
.wp-block-post-content > .lb-alert-query:first-child + .lb-hero {
	margin-block-start: 0 !important;
}

.wp-site-blocks > .lb-alert-query,
.wp-block-post-content > .lb-alert-query:first-child {
	margin-block: 0 !important;
}

.lb-contact-strip h2 {
	text-wrap: balance;
}

.lb-page-hero {
	padding-block: clamp(3rem, 7vw, 6rem);
}

.lb-page-hero h1 {
	max-width: 18ch;
	font-size: clamp(3rem, 7vw, 5.5rem);
	line-height: .95;
	overflow-wrap: anywhere;
}

.lb-breadcrumbs {
	margin-bottom: 1rem;
	font-size: .86rem;
}

.lb-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0 .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-breadcrumbs li {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	min-height: 2.75rem;
}

.lb-breadcrumbs li + li::before {
	content: "\203A";
	content: "\203A" / "";
	color: var(--wp--preset--color--muted);
}

.lb-breadcrumbs a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	font-weight: 750;
}

.lb-breadcrumbs [aria-current="page"] {
	color: var(--wp--preset--color--muted);
}

.lb-content-frame {
	padding-block: clamp(2.5rem, 6vw, 5rem);
}

.lb-news-query.lb-content-frame {
	padding-inline: 1rem;
}

.lb-content-frame :where(p, li) {
	max-width: 72ch;
}

.lb-content-frame :where(h2, h3, h4) {
	scroll-margin-top: 2rem;
}

/*
 * Bandeaux photographiques de bas de page.
 *
 * Le cadrage reste porté par le bloc Image Gutenberg afin que chaque page
 * puisse remplacer son visuel indépendamment du thème. Les marges de pleine
 * largeur sont enregistrées dans le bloc ; ces règles assurent seulement un
 * rendu stable, sans rayon ni interstice avant le pied de page.
 */
.lb-page-banner {
	display: block;
	overflow: hidden;
	max-width: none !important;
	padding: 0;
	background: var(--wp--preset--color--water);
	border-radius: 0 !important;
	line-height: 0;
}

.lb-page-banner img {
	display: block;
	width: 100% !important;
	max-width: none !important;
	height: clamp(120px, 12.5vw, 220px) !important;
	border-radius: 0 !important;
	object-fit: cover;
}

html[data-low-bandwidth="true"] body .lb-page-banner {
	display: none !important;
}

.lb-meta {
	color: var(--wp--preset--color--muted);
	font-size: .85rem;
}

.lb-news-query .wp-block-post-template {
	display: grid;
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-news-query .wp-block-post-template > li {
	margin: 0;
	min-width: 0;
	max-width: none;
}

.lb-news-query--featured .wp-block-post-template {
	grid-template-columns: minmax(0, 1.65fr) minmax(18rem, 1fr);
	grid-auto-rows: minmax(12.5rem, auto);
}

.lb-news-query--featured .wp-block-post-template > li:first-child {
	grid-row: span 2;
}

.lb-news-query--listing .wp-block-post-template {
	grid-template-columns: 1fr;
}

.lb-query-card {
	position: relative;
	display: grid;
	grid-template-columns: minmax(9rem, 36%) minmax(0, 1fr);
	height: 100%;
	min-height: 12.5rem;
	overflow: hidden;
	padding: 0;
	background: var(--lb-surface);
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 .7rem 2rem rgb(15 76 92 / 6%);
	transition: border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-query-card:hover,
.lb-query-card:focus-within {
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 1.15rem 2.75rem rgb(45 106 99 / 14%);
}

.lb-query-card > .wp-block-post-featured-image {
	grid-column: 1;
	grid-row: 1;
	height: 100%;
	min-height: 12.5rem;
	margin: 0;
	overflow: hidden;
	background: var(--wp--preset--color--water);
}

.lb-query-card > .wp-block-post-featured-image a {
	display: block;
	height: 100%;
}

.lb-query-card > .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .55s cubic-bezier(.2, .7, .2, 1);
}

.lb-query-card:hover > .wp-block-post-featured-image img {
	transform: scale(1.025);
}

.lb-query-card:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	grid-column: 1;
	grid-row: 1;
	min-height: 12.5rem;
	background:
		url("assets/icons/news.svg") center / 3.25rem no-repeat,
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
}

.lb-query-card__body {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	padding: clamp(1.2rem, 2.6vw, 2rem);
}

.lb-query-card__body > * {
	width: 100%;
	margin-block: 0;
}

.lb-query-card__body > * + * {
	margin-top: .85rem;
}

.lb-query-meta {
	align-items: center;
	gap: .65rem 1rem !important;
	color: var(--wp--preset--color--muted);
	font-size: .78rem;
}

.lb-query-meta .taxonomy-category {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
}

.lb-query-meta .taxonomy-category a {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	padding: .25rem .65rem;
	color: var(--wp--preset--color--petrol);
	background: var(--wp--preset--color--water);
	border-radius: 999px;
	font-weight: 800;
	text-decoration: none;
}

.lb-query-card .wp-block-post-title {
	font-size: clamp(1.55rem, 2.4vw, 2.25rem);
	line-height: 1.03;
	letter-spacing: -.025em;
}

.lb-query-card .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.lb-query-card .wp-block-post-title a:hover,
.lb-query-card .wp-block-post-title a:focus-visible {
	text-decoration: underline;
	text-decoration-thickness: .08em;
}

.lb-query-card .wp-block-post-excerpt {
	color: var(--wp--preset--color--muted);
}

.lb-query-card .wp-block-post-excerpt__excerpt {
	margin: 0;
}

.lb-news-query--featured .wp-block-post-template > li:first-child .lb-query-card {
	display: flex;
	flex-direction: column;
}

.lb-news-query--featured .wp-block-post-template > li:first-child .wp-block-post-featured-image,
.lb-news-query--featured .wp-block-post-template > li:first-child .lb-query-card:not(:has(.wp-block-post-featured-image))::before {
	width: 100%;
	height: clamp(18rem, 31vw, 27rem);
	min-height: clamp(18rem, 31vw, 27rem);
}

.lb-news-query--featured .wp-block-post-template > li:first-child .lb-query-card__body {
	width: 100%;
	padding: clamp(1.5rem, 3.4vw, 2.5rem);
}

.lb-news-query--featured .wp-block-post-template > li:first-child .wp-block-post-title {
	font-size: clamp(2rem, 4vw, 3.45rem);
}

.lb-news-query--featured .wp-block-post-template:has(> li:only-child) {
	grid-template-columns: 1fr;
}

.lb-news-query--featured .wp-block-post-template > li:only-child {
	grid-column: 1 / -1;
	grid-row: auto;
}

.lb-news-query--featured .wp-block-post-template > li:only-child .lb-query-card {
	display: grid;
	grid-template-columns: minmax(18rem, .9fr) minmax(0, 1fr);
	min-height: 21rem;
}

.lb-news-query--featured .wp-block-post-template > li:only-child .wp-block-post-featured-image,
.lb-news-query--featured .wp-block-post-template > li:only-child .lb-query-card:not(:has(.wp-block-post-featured-image))::before {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	height: 100%;
	min-height: 21rem;
}

.lb-news-query--featured .wp-block-post-template > li:only-child .lb-query-card__body {
	grid-column: 2;
	grid-row: 1;
}

.lb-news-query--featured .wp-block-post-template > li:nth-child(2):last-child {
	grid-row: span 2;
}

.lb-news-query--listing .lb-query-card {
	grid-template-columns: minmax(16rem, 34%) minmax(0, 1fr);
	min-height: 17rem;
}

.lb-news-query--listing .lb-query-card > .wp-block-post-featured-image,
.lb-news-query--listing .lb-query-card:not(:has(.wp-block-post-featured-image))::before {
	min-height: 17rem;
}

.lb-query-card .wp-block-post-excerpt__more-link {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	color: var(--wp--preset--color--petrol);
	font-weight: 800;
}

.wp-block-query-pagination {
	margin-top: 3rem;
}

.wp-block-query-pagination a,
.wp-block-query-pagination .current {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: .5rem;
	border: 1px solid var(--wp--preset--color--petrol);
	border-radius: 999px;
}

.wp-block-post-content :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
	width: 100%;
	min-height: 3rem;
	padding: .7rem .85rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: .5rem;
	font: inherit;
}

.wp-block-post-content textarea {
	min-height: 10rem;
}

.wp-block-post-content label {
	display: block;
	margin-bottom: .35rem;
	font-weight: 800;
}

.lb-mode-status {
	position: fixed;
	z-index: 100;
	right: 1rem;
	bottom: 1rem;
	max-width: min(26rem, calc(100% - 2rem));
	margin: 0;
	padding: .9rem 1rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--ink);
	border-radius: .7rem;
	box-shadow: var(--lb-shadow);
	transform: translateY(calc(100% + 2rem));
	transition: transform var(--lb-transition);
}

.lb-mode-status.is-visible {
	transform: translateY(0);
}

html.lb-reveal-enabled .lb-reveal {
	opacity: 0;
	transform: translateY(1.15rem);
	transition:
		opacity .52s cubic-bezier(.2, .7, .2, 1),
		transform .58s cubic-bezier(.2, .7, .2, 1);
	transition-delay: var(--lb-reveal-delay, 0ms);
	will-change: opacity, transform;
}

html.lb-reveal-enabled .lb-reveal.is-revealed {
	opacity: 1;
	transform: none;
	will-change: auto;
}

html[data-low-bandwidth="true"] body .lb-decorative-media,
html[data-low-bandwidth="true"] body .lb-photo-note {
	display: none !important;
}

html[data-low-bandwidth="true"] body .lb-reveal {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

html[data-low-bandwidth="true"] body .lb-hero {
	display: grid;
	grid-template-columns: minmax(1rem, 1fr) minmax(0, var(--wp--style--global--wide-size)) minmax(1rem, 1fr);
	grid-template-rows: auto auto;
	row-gap: 1.25rem;
	min-height: 0;
	padding-block: 3rem;
	background: var(--wp--preset--color--water);
}

html[data-low-bandwidth="true"] body .lb-hero-card {
	grid-column: 2;
	grid-row: 1;
	justify-self: stretch;
	width: 100%;
	max-width: none;
	margin: 0 !important;
	border-radius: var(--lb-radius-lg);
}

html[data-low-bandwidth="true"] body .lb-opening-card {
	grid-column: 2;
	grid-row: 2;
	align-self: start;
	justify-self: start;
	margin: 0 !important;
}

html[data-low-bandwidth="true"] body .lb-editorial-feature {
	grid-template-columns: 1fr;
	min-height: 0;
}

/*
 * Durcissement : couleurs de section fixées dans le thème.
 *
 * Les fonds des sections verrouillées du design sont définis ici, en plus des
 * classes de l'éditeur (.has-*-background-color). Ainsi, si un optimiseur
 * « CSS inutilisé » ou des styles globaux enregistrés retirent ces classes,
 * les sections restent colorées au lieu de devenir blanches. La valeur
 * littérale précède la variable pour survivre même au retrait de la palette.
 * Les hex reflètent la charte (voir theme.json) : pétrole #0F4C5C,
 * sarcelle #2D6A63, eau claire #E9F1EF, tournesol #E3B341.
 */
.lb-alert {
	background-color: #0f4c5c;
	background-color: var(--wp--preset--color--petrol, #0f4c5c);
	color: #fff;
}

.lb-editorial-copy {
	background-color: #2d6a63;
	background-color: var(--wp--preset--color--teal, #2d6a63);
	color: #fff;
}

.lb-page-hero,
.lb-contact-strip,
.lb-changes-panel {
	background-color: #e9f1ef;
	background-color: var(--wp--preset--color--water, #e9f1ef);
}

.lb-agenda-card,
.lb-opening-card {
	background-color: #e3b341;
	background-color: var(--wp--preset--color--sun, #e3b341);
}

.lb-footer {
	color: #fff;
	color: var(--wp--preset--color--white, #fff);
	background-color: #0f4c5c;
	background-color: var(--wp--preset--color--petrol, #0f4c5c);
}

/*
 * Micro-interactions : effets discrets au survol et au focus.
 *
 * Uniquement transform / opacity / box-shadow / couleur — composés par le GPU,
 * sans aucun coût au chargement (rien ne s'exécute tant qu'on ne survole pas).
 * Tous automatiquement neutralisés par la préférence système « animations
 * réduites » grâce au bloc @media (prefers-reduced-motion) plus bas.
 */

/* Cartes cliquables : légère élévation. */
.lb-query-card {
	transition: transform var(--lb-transition), border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-quick-card:hover,
.lb-query-card:hover,
.lb-quick-card:focus-within,
.lb-query-card:focus-within {
	transform: translateY(-3px);
}

/* Cartes de contenu (élus, commissions, fiches) : ombre douce au survol. */
.is-style-les-barils-icon-card {
	transition: border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.is-style-les-barils-icon-card:hover,
.is-style-les-barils-icon-card:focus-within {
	border-color: var(--wp--preset--color--teal);
	box-shadow: var(--lb-hover-shadow);
}

/* Médaillon d'icône qui « respire » au survol de sa carte. */
.lb-quick-icon,
.is-style-les-barils-icon-card .lb-content-icon {
	transition: transform .25s ease;
}

.lb-quick-card:hover .lb-quick-icon,
.is-style-les-barils-icon-card:hover .lb-content-icon,
.lb-quick-card:focus-within .lb-quick-icon,
.is-style-les-barils-icon-card:focus-within .lb-content-icon {
	transform: scale(1.08);
}

/* Boutons : élévation discrète. */
.wp-element-button {
	transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}

.wp-element-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 .5rem 1.25rem rgb(15 76 92 / 22%);
}

/* Flèches qui avancent au survol. */
.lb-card-link::after,
.lb-editorial-links a::after {
	display: inline-block;
	transition: transform var(--lb-transition);
}

.lb-card-link:hover::after,
.lb-editorial-links a:hover::after {
	transform: translateX(.25rem);
}

/* Lignes du panneau communal : léger fond au survol. */
.lb-change-row {
	transition: background-color var(--lb-transition);
}

.lb-change-row:hover {
	background: var(--wp--preset--color--water);
}

/* Navigation principale : soulignement au survol. */
.lb-main-navigation .wp-block-navigation-item__content:hover {
	text-decoration: underline;
	text-underline-offset: .3em;
	text-decoration-thickness: .1em;
}

/* Chiffres clés : tuiles statistiques (composition « Les Barils en chiffres »). */
.lb-stats-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
	gap: .75rem !important;
}

.lb-stat {
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--lb-surface);
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
	text-align: center;
	transition: border-color var(--lb-transition), box-shadow var(--lb-transition), transform var(--lb-transition);
}

.lb-stat:hover {
	transform: translateY(-3px);
	border-color: var(--wp--preset--color--teal);
	box-shadow: var(--lb-hover-shadow);
}

.lb-stat > * {
	margin-block: 0;
}

.lb-stat-number {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(2.2rem, 4vw, 3.2rem);
	font-weight: 750;
	line-height: 1;
}

.lb-stat-label {
	margin-top: .35rem;
	color: var(--wp--preset--color--muted);
	font-size: .9rem;
}

/* Frise du patrimoine (composition « Frise du patrimoine »). */
.lb-timeline {
	margin-left: .5rem;
	padding-left: 1.5rem;
	border-left: 3px solid var(--wp--preset--color--sun);
}

.lb-timeline-item {
	position: relative;
	padding-bottom: 1.5rem;
}

.lb-timeline-item:last-child {
	padding-bottom: 0;
}

.lb-timeline-item::before {
	content: "";
	position: absolute;
	left: calc(-1.5rem - 7px);
	top: .4rem;
	width: 12px;
	height: 12px;
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--white);
	border-radius: 50%;
}

.lb-timeline-item > * {
	margin-block: 0;
}

.lb-timeline-item > * + * {
	margin-top: .2rem;
}

.lb-timeline-year {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 1.25rem;
	font-weight: 750;
}

@media (max-width: 72rem) {
	.lb-header-contact {
		display: none !important;
	}

	.lb-hero {
		grid-template-columns: 1rem minmax(0, 1fr) minmax(0, .75fr) 1rem;
	}

	.lb-hero-card {
		grid-column: 2 / 4;
		width: min(42rem, calc(100% - 5rem));
	}

	.lb-opening-card {
		grid-column: 3;
	}

	.lb-footer-help-inner {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 1.75rem;
	}

	.lb-footer-help-copy {
		max-width: 44rem;
	}

	.lb-footer-actions {
		max-width: 48rem;
	}

	.lb-footer-main {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 48rem) {
	html {
		scroll-behavior: auto;
	}

	.lb-utility-bar > .wp-block-group {
		align-items: flex-start !important;
		flex-direction: column;
		gap: .35rem !important;
		padding-block: .7rem;
	}

	.lb-main-header {
		min-height: 5.2rem;
	}

	.lb-brand {
		flex: 1 1 auto;
		min-width: 0;
	}

	.lb-brand > .wp-block-group:last-child {
		min-width: 0;
	}

	.lb-brand .wp-block-site-title {
		overflow: hidden;
		max-width: calc(100vw - 10rem);
		text-overflow: ellipsis;
		white-space: nowrap;
	}

	.lb-main-navigation {
		flex: 0 0 auto;
	}

	.lb-alert > .wp-block-group {
		align-items: flex-start !important;
		flex-direction: column;
		gap: .1rem !important;
		padding-block: .7rem;
	}

	.lb-hero {
		display: flex;
		flex-direction: column;
		min-height: 0;
		padding-bottom: 2rem;
	}

	.lb-hero-media {
		order: 1;
		height: 17rem;
	}

	.lb-hero-media img {
		height: 17rem;
		min-height: 17rem;
	}

	.lb-hero-card {
		order: 2;
		width: calc(100% - 2rem);
		margin: -2.3rem auto 0 !important;
		padding: 1.5rem;
		border-radius: var(--lb-radius-md);
	}

	.lb-hero-card h1 {
		font-size: clamp(2.75rem, 13vw, 4.2rem);
		overflow-wrap: anywhere;
	}

	.lb-search-form .wp-block-search__inside-wrapper {
		flex-direction: column;
		gap: .5rem;
	}

	.lb-search-form .wp-block-search__input,
	.lb-search-form .wp-block-search__button {
		width: 100%;
		border-radius: 999px;
	}

	.lb-opening-card {
		order: 3;
		width: calc(100% - 2rem);
		margin: 1rem auto 0 !important;
		border-radius: var(--lb-radius-md);
	}

	.lb-quick-grid,
	.lb-dashboard,
	.lb-news-grid,
	.lb-editorial-feature {
		grid-template-columns: 1fr;
	}

	.lb-news-query .wp-block-post-template {
		grid-template-columns: 1fr;
	}

	.lb-news-query--featured .wp-block-post-template > li:first-child {
		grid-row: auto;
	}

	.lb-query-card,
	.lb-news-query--listing .lb-query-card,
	.lb-news-query--featured .wp-block-post-template > li:only-child .lb-query-card {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.lb-query-card > .wp-block-post-featured-image,
	.lb-query-card:not(:has(.wp-block-post-featured-image))::before,
	.lb-news-query--listing .lb-query-card > .wp-block-post-featured-image,
	.lb-news-query--listing .lb-query-card:not(:has(.wp-block-post-featured-image))::before {
		grid-column: 1;
		grid-row: 1;
		width: 100%;
		height: clamp(13rem, 58vw, 22rem);
		min-height: clamp(13rem, 58vw, 22rem);
	}

	.lb-query-card__body {
		grid-column: 1;
		grid-row: 2;
		padding: 1.35rem;
	}

	.lb-news-query--featured .wp-block-post-template > li:only-child .lb-query-card__body {
		grid-column: 1;
		grid-row: 2;
	}

	.lb-news-query--featured .wp-block-post-template > li:first-child .wp-block-post-featured-image,
	.lb-news-query--featured .wp-block-post-template > li:first-child .lb-query-card:not(:has(.wp-block-post-featured-image))::before {
		height: clamp(15rem, 64vw, 24rem);
		min-height: clamp(15rem, 64vw, 24rem);
	}

	.lb-editorial-feature {
		display: flex !important;
		flex-direction: column;
		min-height: 0;
	}

	.lb-editorial-media,
	.lb-editorial-media img {
		height: 21rem;
		min-height: 21rem;
	}

	.lb-editorial-copy {
		padding: 3rem 1rem;
	}

	.lb-editorial-copy h2 {
		font-size: clamp(2.9rem, 14vw, 4.2rem);
		overflow-wrap: anywhere;
	}

	.lb-news-card {
		min-height: 24rem;
	}

	.lb-contact-strip > .wp-block-group {
		align-items: flex-start !important;
		flex-direction: column;
	}

	.lb-footer-main {
		grid-template-columns: 1fr !important;
	}

	/* Gouttières propres au pied de page : les groupes alignés « wide »
	   perdaient le padding global sur certains modèles et venaient toucher le
	   bord physique des petits écrans. La priorité protège aussi cette
	   respiration lorsque l'éditeur de site a enregistré un padding nul
	   directement dans la partie de modèle. Les aplats extérieurs restent,
	   eux, volontairement bord à bord. */
	.lb-footer {
		--lb-footer-mobile-gutter: clamp(1.25rem, 6vw, 1.5rem);
	}

	.lb-footer-help-inner,
	.lb-footer-labels-row,
	.lb-footer-main,
	.lb-footer-legal > .wp-block-group {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-right: 0 !important;
		margin-left: 0 !important;
		padding-right: max(var(--lb-footer-mobile-gutter), env(safe-area-inset-right, 0px)) !important;
		padding-left: max(var(--lb-footer-mobile-gutter), env(safe-area-inset-left, 0px)) !important;
	}

	.lb-footer-help-inner > *,
	.lb-footer-labels-row > *,
	.lb-footer-main > *,
	.lb-footer-legal > .wp-block-group > * {
		min-width: 0;
		max-width: 100%;
	}

	.lb-footer-help {
		padding-block: 2.25rem;
	}

	.lb-footer-help::before {
		top: -5rem;
		right: -5rem;
		width: 12rem;
		height: 12rem;
	}

	.lb-footer-help::after {
		display: none;
	}

	.lb-footer-actions {
		grid-template-columns: 1fr;
	}

	.lb-footer-action .wp-block-button__link {
		grid-template-columns: 2.75rem minmax(0, 1fr);
		gap: .8rem;
		align-items: center;
		min-height: 4.6rem;
	}

	.lb-footer-identity {
		padding: 1.25rem;
	}

	.lb-footer-legal > .wp-block-group {
		align-items: flex-start !important;
		flex-direction: column;
	}

	html[data-low-bandwidth="true"] body .lb-hero {
		display: flex;
		row-gap: 0;
		padding-block: 2rem;
	}

	html[data-low-bandwidth="true"] body .lb-hero-card {
		order: 1;
		width: calc(100% - 2rem);
		margin: 0 auto !important;
	}

	html[data-low-bandwidth="true"] body .lb-opening-card {
		order: 2;
		width: calc(100% - 2rem);
		margin: 1rem auto 0 !important;
	}
}

@media (max-width: 25rem) {
	.lb-main-header {
		gap: .5rem !important;
	}

	.lb-brand {
		min-width: 0;
		gap: .5rem;
	}

	.lb-brand::before {
		flex-basis: 2.6rem;
		width: 2.6rem;
	}

	.lb-brand .wp-block-site-title {
		font-size: 1.25rem;
	}

	.lb-brand .wp-block-site-tagline {
		font-size: .75rem;
		white-space: nowrap;
	}
}

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

	html.lb-reveal-enabled .lb-reveal {
		opacity: 1 !important;
		transform: none !important;
	}
}

@media print {
	.lb-utility-bar,
	.lb-main-navigation,
	.lb-header-contact,
	.lb-low-data-toggle,
	.lb-footer-help,
	.lb-footer-nav,
	.lb-footer-labels,
	.lb-footer-low-data,
	.lb-mode-status,
	.lb-decorative-media {
		display: none !important;
	}

	.lb-reveal {
		opacity: 1 !important;
		transform: none !important;
	}

	.lb-site-header {
		position: static;
		color: #000 !important;
		background: #fff !important;
		border-top: 0 !important;
	}

	header.wp-block-template-part {
		position: static;
	}

	.lb-brand .wp-block-site-title {
		color: #000 !important;
	}

	.lb-brand::before {
		color: #fff !important;
		background: #000 !important;
	}

	.lb-page-main,
	.lb-footer {
		color: #000 !important;
		background: #fff !important;
	}

	.lb-footer-main {
		display: block !important;
		padding-block: 1rem;
	}

	.lb-footer-identity {
		padding: 0;
		background: #fff !important;
		border: 0;
	}

	.lb-footer-identity::after,
	.lb-footer-contact-link::before {
		display: none;
	}

	.lb-footer-kicker {
		color: #000 !important;
	}

	.lb-page-banner {
		display: none !important;
	}

	a {
		color: #000 !important;
		text-decoration: underline;
	}
}

/* =========================================================================
   Retouches 0.11.0
   ========================================================================= */

/* Boutons — survol / focus : vert foncé (pétrole) sur jaune (tournesol).
   Deux couleurs de la charte, contraste 4,89:1 => conforme RGAA AA pour le
   texte courant. Remplace l'ancien survol « texte blanc », qui devenait
   illisible dès que le fond du bouton n'était pas foncé (blanc sur blanc,
   1,95:1), le :hover teal de l'élément « lien » teintant aussi les boutons.
   On pose le fond ET la bordure (littéral + variable) pour couvrir également
   les boutons de style « Contour » et résister à un optimiseur de CSS. */
.wp-block-button__link:hover,
.wp-block-button__link:focus,
.wp-block-button__link:focus-visible {
	background-color: #e3b341;
	background-color: var(--wp--preset--color--sun, #e3b341);
	color: #0f4c5c;
	color: var(--wp--preset--color--petrol, #0f4c5c);
	border-color: #e3b341;
	border-color: var(--wp--preset--color--sun, #e3b341);
}

/* Bouton « Contacter la mairie » : déjà jaune au repos, il s'inverse au survol
   (pétrole + blanc, 9,5:1) pour un retour visuel franc plutôt qu'un simple
   changement de teinte du texte. */
.lb-header-contact .wp-block-button__link:hover,
.lb-header-contact .wp-block-button__link:focus,
.lb-header-contact .wp-block-button__link:focus-visible {
	background-color: #0f4c5c;
	background-color: var(--wp--preset--color--petrol, #0f4c5c);
	color: #fff;
	color: var(--wp--preset--color--white, #fff);
	border-color: #0f4c5c;
	border-color: var(--wp--preset--color--petrol, #0f4c5c);
}

/*
 * WP Booking Calendar — bouton d’envoi aligné sur .wp-element-button.
 *
 * Le plugin ajoute les classes génériques « btn btn » et leur applique une
 * hauteur de ligne de 40 px. Le sélecteur ci-dessous cible uniquement le
 * bouton qui appelle wpbc_booking_form_submit(), sans modifier les champs.
 */
html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"] {
	-webkit-appearance: none !important;
	appearance: none !important;
	box-sizing: border-box !important;
	display: inline-block !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: .78rem 1.25rem !important;
	color: var(--wp--preset--color--white, #fff) !important;
	background: var(--wp--preset--color--petrol, #0f4c5c) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	font-family: var(--wp--preset--font-family--interface) !important;
	font-size: .92rem !important;
	font-style: normal !important;
	font-weight: 800 !important;
	line-height: 1.58 !important;
	letter-spacing: normal !important;
	text-align: center !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	text-transform: none !important;
	white-space: nowrap !important;
	vertical-align: middle !important;
	cursor: pointer !important;
	transition:
		transform .18s ease,
		box-shadow .18s ease,
		background-color .18s ease,
		color .18s ease !important;
}

html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"]:hover,
html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"]:focus {
	color: var(--wp--preset--color--petrol, #0f4c5c) !important;
	background: var(--wp--preset--color--sun, #e3b341) !important;
	border-color: var(--wp--preset--color--sun, #e3b341) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 .5rem 1.25rem rgb(15 76 92 / 22%) !important;
}

html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"]:focus-visible {
	outline: .2rem solid var(--wp--preset--color--sun, #e3b341) !important;
	outline-offset: .2rem !important;
	box-shadow: 0 0 0 .12rem var(--wp--preset--color--ink, #182322) !important;
}

html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"]:active {
	transform: translateY(0) !important;
}

html body input.wpbc_button_light.btn.btn[type="button"][onclick^="wpbc_booking_form_submit"]:disabled {
	opacity: .6;
	cursor: not-allowed !important;
	transform: none !important;
	box-shadow: none !important;
}

/* Photo optionnelle en tête de carte (élus, commissions) et en colonne de
   présentation. Format libre : rectangle, carré, ou rond via le style de bloc
   « Médaillon municipal ». Un emplacement laissé vide reste invisible. */
.lb-card-photo {
	margin: 0 0 1rem;
}

.lb-card-photo img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--lb-radius-sm);
}

/* Liste des membres dans une carte de commission : compacte, sans marge
   excessive au-dessus de son intitulé « Membres ». */
.lb-commission-membres-label {
	margin-bottom: .1rem;
}

.lb-commission-membres {
	margin-top: 0;
	padding-left: 1.15rem;
}

.lb-commission-membres li {
	margin-block: .12rem;
}

/* Article seul : image mise en avant en fond « opacifié » de l'en-tête
   (bloc Couverture + overlay eau). Texte encre lisible ; pas de hauteur
   minimale imposée. */
.lb-page-hero--media {
	min-height: 0;
	color: #182322;
	color: var(--wp--preset--color--ink, #182322);
}

.lb-page-hero--media .wp-block-cover__inner-container {
	width: 100%;
}

/* Galerie « Actualité » : vignettes carrées et régulières. */
.lb-lightbox-gallery.wp-block-gallery .wp-block-image {
	margin: 0;
}

.lb-lightbox-gallery.wp-block-gallery .wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--lb-radius-sm);
	cursor: zoom-in;
}

/* Lightbox maison : plein écran, image entière, navigation clavier et souris. */
.lb-lightbox-open {
	overflow: hidden;
}

.lb-lightbox {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: grid;
	place-items: center;
	padding: clamp(1rem, 4vw, 3rem);
}

.lb-lightbox[hidden] {
	display: none;
}

.lb-lightbox__backdrop {
	position: absolute;
	inset: 0;
	background: rgb(15 30 34 / 92%);
}

.lb-lightbox__frame {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .75rem;
	max-width: 100%;
	max-height: 100%;
	margin: 0;
}

.lb-lightbox__img {
	max-width: min(92vw, 1400px);
	max-height: 82vh;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: var(--lb-radius-sm);
}

.lb-lightbox__caption {
	max-width: 60ch;
	color: #fff;
	font-size: .9rem;
	text-align: center;
}

.lb-lightbox__caption[hidden] {
	display: none;
}

.lb-lightbox__btn {
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	color: #fff;
	background: rgb(15 30 34 / 55%);
	border: 1px solid rgb(255 255 255 / 30%);
	border-radius: 999px;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	transition: background-color var(--lb-transition);
}

.lb-lightbox__btn:hover {
	background: rgb(15 30 34 / 85%);
}

.lb-lightbox__btn[hidden] {
	display: none;
}

.lb-lightbox__prev {
	top: 50%;
	left: clamp(.5rem, 2vw, 2rem);
	transform: translateY(-50%);
}

.lb-lightbox__next {
	top: 50%;
	right: clamp(.5rem, 2vw, 2rem);
	transform: translateY(-50%);
}

.lb-lightbox__close {
	top: clamp(.5rem, 2vw, 1.5rem);
	right: clamp(.5rem, 2vw, 1.5rem);
	font-size: 2rem;
}

.lb-lightbox__counter {
	position: absolute;
	bottom: clamp(.5rem, 2vw, 1.25rem);
	left: 50%;
	margin: 0;
	transform: translateX(-50%);
	color: #fff;
	font-size: .82rem;
	font-variant-numeric: tabular-nums;
}

/* =========================================================================
   Salle Maurice Durey — tarifs et étapes
   ========================================================================= */

/* Une grille éditoriale remplace le tableau : les formules restent comparables
   sans prendre l'apparence d'un document administratif. */
.lb-hall-rates-layout {
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-top: var(--wp--preset--spacing--50);
}

.lb-hall-rates-layout > .wp-block-column {
	display: flex;
	min-width: 0;
}

.lb-hall-rate-card {
	position: relative;
	isolation: isolate;
	width: 100%;
	overflow: hidden;
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 10%);
}

.lb-hall-rate-card::after {
	content: "";
	position: absolute;
	right: -2.5rem;
	bottom: -3rem;
	z-index: -1;
	width: 8rem;
	height: 8rem;
	border: 1.25rem solid currentcolor;
	border-radius: 999px;
	opacity: .06;
}

.lb-hall-rate-card--weekend {
	height: 100%;
	border-top: .35rem solid var(--wp--preset--color--petrol);
}

.lb-hall-rate-badge {
	width: fit-content;
	max-width: 100%;
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--interface);
	font-size: clamp(.67rem, .8vw, .78rem) !important;
	line-height: 1.1;
}

.lb-hall-rate-card .wp-block-heading {
	margin-top: .75rem;
}

.lb-hall-weekend-hours {
	margin-block: .25rem .65rem !important;
	padding: .75rem 1rem;
	border-left: .3rem solid var(--wp--preset--color--sun);
	border-radius: .55rem;
	box-shadow: 0 .35rem .85rem rgb(15 76 92 / 7%);
	line-height: 1.4;
}

.lb-hall-rate-row {
	width: 100%;
	gap: 1rem !important;
	padding-block: .85rem;
	border-top: 1px solid rgb(15 76 92 / 20%);
}

.lb-hall-rate-row > p,
.lb-hall-rate-card--compact > p,
.lb-hall-rate-note > p {
	margin-block: 0 !important;
}

.lb-hall-rate-row p:first-child {
	line-height: 1.35;
}

.lb-hall-rate-row p:first-child span {
	color: var(--wp--preset--color--muted);
	font-size: .82rem;
}

.lb-hall-rate-row--local {
	margin-top: .35rem;
	padding: .85rem 1rem !important;
	border-top: 0;
}

.lb-hall-rate-price,
.lb-hall-rate-main-price {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--editorial);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.lb-hall-rate-price {
	font-size: clamp(1.5rem, 2.6vw, 2rem) !important;
	line-height: 1 !important;
}

.lb-hall-rate-stack {
	display: grid;
	width: 100%;
	height: 100%;
	gap: clamp(1rem, 2vw, 1.5rem);
	grid-template-rows: repeat(2, minmax(0, 1fr));
}

.lb-hall-rate-card--compact {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 13rem;
}

.lb-hall-rate-kicker {
	margin-bottom: 0 !important;
}

.lb-hall-rate-card--compact .wp-block-heading {
	margin-block: .5rem .25rem;
	font-size: clamp(1.45rem, 2.4vw, 1.9rem) !important;
}

.lb-hall-rate-main-price {
	font-size: clamp(2.5rem, 5vw, 3.6rem) !important;
	line-height: 1 !important;
}

.lb-hall-rate-note {
	gap: .75rem 2rem !important;
	margin-top: clamp(1rem, 2vw, 1.5rem);
	border-left: .35rem solid var(--wp--preset--color--petrol);
}

/* Les cautions et les justificatifs deviennent deux listes de contrôle
   visuellement cohérentes, avec des repères faciles à parcourir. */
.lb-hall-info-cards {
	align-items: stretch;
	gap: clamp(1rem, 2vw, 1.5rem);
}

.lb-hall-info-cards > .wp-block-column {
	display: flex;
	min-width: 0;
}

.lb-hall-info-card {
	width: 100%;
	height: 100%;
	border-top: .35rem solid var(--wp--preset--color--sun);
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
}

.lb-hall-info-card--documents {
	border-top-color: var(--wp--preset--color--teal);
}

.lb-hall-info-kicker {
	margin-bottom: .45rem !important;
}

.lb-hall-info-card > .wp-block-heading {
	margin-top: 0 !important;
}

.lb-hall-info-row {
	width: 100%;
	gap: clamp(.75rem, 1.5vw, 1rem) !important;
	padding-block: .8rem;
	border-top: 1px solid rgb(15 76 92 / 16%);
}

.lb-hall-info-row > p {
	margin: 0 !important;
	line-height: 1.4;
}

.lb-hall-amount {
	display: grid !important;
	flex: 0 0 5rem;
	min-height: 2.5rem;
	padding: .45rem .75rem !important;
	place-items: center;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.lb-hall-check {
	display: grid !important;
	flex: 0 0 2.5rem;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0 !important;
	place-items: center;
	font-size: 1.1rem;
}

/* Les médaillons sont placés au-dessus de chaque intitulé. */
.lb-hall-step-grid {
	align-items: stretch;
	gap: clamp(.85rem, 1.6vw, 1.25rem);
}

.lb-hall-step-grid > .wp-block-column {
	position: relative;
	min-width: 0;
}

.lb-hall-step-number {
	display: grid !important;
	position: relative;
	z-index: 1;
	width: 2.6rem;
	height: 2.6rem;
	margin: 0 0 .85rem !important;
	padding: 0 !important;
	place-items: center;
	box-shadow: 0 .35rem .85rem rgb(15 76 92 / 15%);
	font-family: var(--wp--preset--font-family--interface);
	font-size: 1rem !important;
}

.lb-hall-step-grid > .wp-block-column > .wp-block-heading {
	margin-block: 0 .5rem !important;
	font-size: clamp(1.15rem, 1.5vw, 1.4rem) !important;
	line-height: 1.15 !important;
}

.lb-hall-step-grid > .wp-block-column > p:last-child {
	margin-top: 0 !important;
}

@media (min-width: 48.875rem) {
	.lb-hall-step-grid > .wp-block-column:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 1.25rem;
		right: -1rem;
		left: 3.25rem;
		height: 2px;
		background: linear-gradient(
			90deg,
			var(--wp--preset--color--sun) 0 50%,
			transparent 50% 100%
		);
		background-size: .65rem 2px;
	}
}

.lb-network-emergencies__grid {
	display: grid;
	gap: 1rem;
}

.lb-network-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	height: 100%;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 1rem;
	box-shadow: 0 .55rem 1.5rem rgb(15 76 92 / 8%);
}

.lb-network-card > * {
	margin-block: 0 !important;
}

.lb-network-card > * + * {
	margin-top: .85rem !important;
}

.lb-network-card .wp-block-buttons {
	margin-top: auto !important;
	padding-top: 1rem;
}

.lb-network-card--electricity {
	border-top: .4rem solid var(--wp--preset--color--sun);
}

.lb-network-card--water {
	border-top: .4rem solid #52a9c5;
}

.lb-network-card--mobile,
.lb-network-card--internet {
	border-top: .4rem solid var(--wp--preset--color--teal);
}

.lb-culture-hero {
	align-items: center;
}

.lb-culture-hero__media {
	overflow: hidden;
	margin: 0 !important;
	border-radius: 1rem;
}

.lb-culture-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
}

.lb-culture-practical__grid {
	display: grid;
	gap: 1rem;
}

.lb-culture-practical__grid > .lb-practical-card {
	height: 100%;
}

.lb-culture-programme > .wp-block-group,
.lb-agenda-submit > .wp-block-group {
	flex: 1 1 32rem;
}

.lb-agenda-hero,
.lb-culture-hero {
	position: relative;
	overflow: hidden;
}

@media (max-width: 48.8125rem) {
	.lb-hall-rates-layout,
	.lb-hall-info-cards {
		row-gap: 1rem;
	}

	.lb-hall-rate-stack {
		grid-template-rows: none;
	}

	.lb-hall-rate-card--compact {
		min-height: 0;
	}
}

/* =========================================================================
   Annuaires locaux — associations et professionnels
   ========================================================================= */

.lb-directory-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	border-top: .4rem solid var(--wp--preset--color--sun);
}

.lb-directory-hero::after {
	content: "";
	position: absolute;
	right: clamp(-5rem, -4vw, -2rem);
	bottom: clamp(-6rem, -5vw, -3rem);
	z-index: -1;
	width: clamp(11rem, 24vw, 19rem);
	aspect-ratio: 1;
	border: clamp(1.5rem, 3vw, 2.75rem) solid var(--wp--preset--color--teal);
	border-radius: 50%;
	opacity: .08;
}

.lb-directory-hero--professionals {
	border-top-color: var(--wp--preset--color--teal);
}

.lb-directory-hero--professionals::after {
	border-color: var(--wp--preset--color--sun);
}

.lb-directory-hero > .wp-block-heading {
	max-width: 18ch;
}

.lb-directory-hero > .has-large-font-size {
	max-width: 56rem;
}

.lb-directory-section > p:not(.lb-eyebrow) {
	max-width: 52rem;
}

.lb-directory-editor-help {
	max-width: 58rem !important;
	padding: .9rem 1rem;
	color: var(--wp--preset--color--muted);
	background: var(--wp--preset--color--white);
	border: 1px dashed var(--wp--preset--color--teal);
	border-radius: .55rem;
}

.lb-directory-grid {
	gap: clamp(1rem, 2vw, 1.5rem) !important;
	margin-top: var(--wp--preset--spacing--50);
}

.lb-directory-grid--associations {
	/* Une association par rangée, avec un visuel horizontal confortable. */
	grid-template-columns: minmax(0, 1fr) !important;
	width: min(100%, 68rem);
	margin-inline: auto !important;
}

.lb-directory-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 100%;
	/*
	 * Gouttière de sécurité commune aux fiches des annuaires. `!important`
	 * évite qu'un réglage de bloc ancien remette le texte contre la bordure.
	 */
	padding: clamp(1.25rem, 2.5vw, 2rem) !important;
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 16%);
	border-top: .35rem solid var(--wp--preset--color--sun);
	border-radius: .75rem;
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
	transition:
		transform .2s ease,
		border-color .2s ease,
		box-shadow .2s ease;
}

.lb-directory-card--association:has(> .lb-directory-card__body) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: auto auto;
	min-height: 0;
	overflow: hidden;
	padding: 0 !important;
}

/*
 * Les anciennes fiches déjà enregistrées ne possèdent pas encore le groupe
 * `__body`. Elles conservent la disposition historique, mais bénéficient
 * immédiatement de la gouttière intérieure corrigée.
 */
.lb-directory-card--association:not(:has(> .lb-directory-card__body)) {
	padding: clamp(1.25rem, 2.5vw, 2rem) !important;
}

.lb-directory-card--association .lb-directory-card__media {
	grid-column: 1;
	grid-row: 1;
	align-self: stretch;
	width: 100%;
	height: auto;
	min-height: 0;
	margin: 0 !important;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background:
		url("assets/icons/associations.svg") center / 3.25rem no-repeat,
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
}

.lb-directory-card--association .lb-directory-card__media img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	min-height: 0;
	aspect-ratio: 16 / 9 !important;
	object-fit: cover !important;
	object-position: center;
}

.lb-directory-card__media img:not([src]),
.lb-directory-card__media img[src=""] {
	visibility: hidden;
}

.lb-directory-card__body {
	grid-column: 1;
	grid-row: 2;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(1.25rem, 2.5vw, 2rem) !important;
}

.lb-directory-card__body > * {
	width: 100%;
}

.lb-directory-card--professional {
	border-top-color: var(--wp--preset--color--teal);
}

.lb-directory-card:hover,
.lb-directory-card:focus-within {
	transform: translateY(-.2rem);
	border-color: rgb(15 76 92 / 32%);
	box-shadow: 0 1rem 2.25rem rgb(15 76 92 / 14%);
}

.lb-directory-card__header {
	align-items: center !important;
	gap: 1rem !important;
}

.lb-directory-card__header > .lb-content-icon {
	flex: 0 0 3.5rem;
	margin: 0 !important;
}

.lb-directory-card__title {
	min-width: 0;
}

.lb-directory-card__title > * {
	margin-block: 0 !important;
}

.lb-directory-card__title > * + * {
	margin-top: .55rem !important;
}

.lb-directory-card__title .wp-block-heading {
	font-size: clamp(1.3rem, 2vw, 1.6rem) !important;
	line-height: 1.15;
}

.lb-directory-badge {
	display: block;
	width: fit-content;
	max-width: 100%;
	padding: .35rem .7rem;
	font-family: var(--wp--preset--font-family--interface);
	font-size: .72rem !important;
	line-height: 1.2;
}

.lb-directory-facts {
	margin-block: .25rem 1rem;
	padding: 0;
	border-top: 1px solid rgb(15 76 92 / 14%);
	list-style: none;
}

.lb-directory-facts > li {
	position: relative;
	margin: 0;
	padding: .6rem 0 .6rem 1.1rem;
	border-bottom: 1px solid rgb(15 76 92 / 14%);
}

.lb-directory-facts > li::before {
	content: "";
	position: absolute;
	top: 1.05rem;
	left: .1rem;
	width: .38rem;
	height: .38rem;
	background: var(--wp--preset--color--sun);
	border-radius: 50%;
}

.lb-directory-card--professional .lb-directory-facts > li::before {
	background: var(--wp--preset--color--teal);
}

.lb-directory-actions {
	gap: .6rem !important;
	margin-top: auto;
	padding-top: .5rem;
}

.lb-directory-actions .wp-block-button__link {
	min-height: 2.75rem;
}

/* Réseaux sociaux facultatifs des fiches professionnelles. L’icône reste
   purement décorative : le nom du réseau est toujours présent dans le lien. */
.lb-directory-social-links {
	gap: .45rem !important;
	margin-top: .75rem;
	padding-top: .9rem;
	border-top: 1px solid rgb(15 76 92 / 14%);
}

.lb-directory-social-action {
	position: relative;
	background-position: -999rem -999rem;
	background-repeat: no-repeat;
}

.lb-directory-social-action::before {
	position: absolute;
	top: 50%;
	left: .8rem;
	z-index: 2;
	width: 1.2rem;
	height: 1.2rem;
	background-image: inherit;
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	transform: translateY(-50%);
	pointer-events: none;
}

.lb-directory-social-action .wp-block-button__link {
	position: relative;
	z-index: 1;
	min-height: 2.75rem;
	padding-inline: 2.45rem .9rem;
	color: var(--wp--preset--color--petrol);
	background: transparent;
	border-color: var(--lb-line-strong);
	font-weight: 800;
}

.lb-directory-social-action .wp-block-button__link:hover,
.lb-directory-social-action .wp-block-button__link:focus-visible {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--petrol);
}

.lb-directory-cta {
	gap: 1.5rem 2.5rem !important;
}

.lb-directory-cta > .wp-block-group {
	flex: 1 1 28rem;
}

.lb-directory-cta > .wp-block-group > * {
	margin-block: 0 !important;
}

.lb-directory-cta > .wp-block-group > * + * {
	margin-top: .65rem !important;
}

.lb-directory-note {
	border-left: .35rem solid var(--wp--preset--color--sun);
}

.lb-directory-note > p {
	margin-block: 0 !important;
}

@media (max-width: 48.8125rem) {
	.lb-directory-hero {
		padding: var(--wp--preset--spacing--50) !important;
	}

	.lb-directory-card--association:has(> .lb-directory-card__body) {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto auto;
		min-height: 0;
	}

	.lb-directory-card__body {
		padding: clamp(1rem, 4vw, 1.35rem) !important;
	}

	.lb-directory-card:hover {
		transform: none;
	}

	.lb-directory-cta {
		padding: var(--wp--preset--spacing--50) !important;
	}
}

/* Practical information pages: contact, travel, services, waste and cemetery. */
.lb-contact-hero,
.lb-practical-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.lb-contact-hero {
	container-type: inline-size;
}

.lb-contact-hero::after,
.lb-practical-hero::after {
	position: absolute;
	right: clamp(-5rem, -4vw, -2rem);
	bottom: clamp(-7rem, -7vw, -3rem);
	z-index: -1;
	width: clamp(14rem, 28vw, 24rem);
	aspect-ratio: 1;
	content: "";
	background:
		radial-gradient(circle at 50% 50%, rgb(247 201 72 / 58%) 0 31%, transparent 32%),
		radial-gradient(circle at 50% 50%, transparent 0 48%, rgb(255 255 255 / 60%) 49% 50%, transparent 51%);
	border-radius: 50%;
}

.lb-contact-hero::after {
	top: clamp(-8rem, -8vw, -4rem);
	right: clamp(-5rem, -4vw, -2rem);
	bottom: auto;
	width: clamp(12rem, 22vw, 20rem);
	opacity: .72;
}

.lb-contact-hero > *,
.lb-practical-hero > * {
	max-width: 54rem;
	margin-inline: 0 !important;
}

.lb-contact-hero > .has-large-font-size {
	max-width: 60rem;
	font-size: clamp(1rem, 1.35vw, 1.2rem) !important;
	line-height: 1.55;
}

.lb-contact-hero > .lb-contact-actions {
	width: 100%;
	max-width: none;
}

.lb-contact-jump-links {
	gap: .5rem !important;
}

.lb-contact-jump-links .wp-block-button__link {
	min-height: 2.75rem;
	padding: .45rem 1rem !important;
	font-size: .85rem !important;
}

.lb-contact-actions {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(.75rem, 1.5vw, 1.25rem) !important;
	margin-top: clamp(1.5rem, 3vw, 2.5rem) !important;
}

.lb-contact-action {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 8.25rem;
	padding: clamp(1rem, 2vw, 1.35rem) 3.25rem clamp(1.4rem, 2.4vw, 1.8rem) clamp(1rem, 2vw, 1.35rem) !important;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 14%);
	border-top: .3rem solid var(--wp--preset--color--sun);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 .7rem 1.8rem rgb(15 76 92 / 8%);
	transition: transform var(--lb-transition), border-color var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-contact-action--write {
	border-top-color: var(--wp--preset--color--teal);
}

.lb-contact-action--route {
	border-top-color: var(--wp--preset--color--petrol);
}

.lb-contact-action::after {
	position: absolute;
	right: 1.25rem;
	bottom: .85rem;
	content: "→";
	color: var(--wp--preset--color--teal);
	font-size: 1.15rem;
	font-weight: 900;
}

.lb-contact-action:hover,
.lb-contact-action:focus-within {
	z-index: 1;
	border-color: var(--wp--preset--color--teal);
	box-shadow: 0 1rem 2.25rem rgb(15 76 92 / 14%);
	transform: translateY(-.2rem);
}

.lb-contact-action > * {
	margin-block: 0 !important;
}

.lb-contact-action > * + * {
	margin-top: .55rem !important;
}

.lb-contact-action > .has-small-font-size:not(.lb-contact-action__label) {
	display: none;
}

.lb-contact-action a {
	color: inherit;
	font-size: 1rem !important;
	font-weight: 850;
	line-height: 1.25;
	overflow-wrap: anywhere;
	text-decoration-thickness: .1em;
	text-underline-offset: .2em;
}

.lb-contact-action__label {
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--interface);
	font-size: .68rem !important;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.lb-contact-details,
.lb-practical-grid,
.lb-waste-day-cards,
.lb-cemetery-rate-cards,
.lb-cemetery-steps {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
	align-items: stretch !important;
	gap: clamp(1rem, 2vw, 1.5rem) !important;
}

@media (min-width: 48.875rem) {
	/* Les cartes riches restent sur deux colonnes : le texte respire et les
	   titres ne sont plus découpés en une succession de lignes courtes. */
	.lb-contact-details,
	.lb-practical-grid,
	.lb-directory-grid--professionals,
	.lb-cemetery-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.lb-contact-details > :last-child:nth-child(odd),
	.lb-practical-grid > :last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

.lb-contact-detail-card,
.lb-practical-card,
.lb-waste-day-card,
.lb-cemetery-rate-card,
.lb-practical-step {
	box-sizing: border-box;
	height: 100%;
	border: 1px solid var(--lb-line);
	border-radius: var(--lb-radius-md);
	box-shadow: 0 .65rem 1.7rem rgb(15 76 92 / 7%);
}

.lb-contact-detail-card,
.lb-practical-card,
.lb-practical-step {
	display: flex;
	flex-direction: column;
}

.lb-contact-detail-card > *,
.lb-practical-card > *,
.lb-waste-day-card > *,
.lb-cemetery-rate-card > *,
.lb-practical-step > * {
	margin-block: 0 !important;
}

.lb-contact-detail-card > * + *,
.lb-practical-card > * + *,
.lb-waste-day-card > * + *,
.lb-cemetery-rate-card > * + *,
.lb-practical-step > * + * {
	margin-top: .75rem !important;
}

.lb-contact-detail-card .wp-block-buttons,
.lb-practical-card .wp-block-buttons {
	margin-top: auto !important;
	padding-top: 1rem;
}

.lb-contact-next-opening {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-top: auto !important;
	padding: clamp(1rem, 2.5vw, 1.45rem) !important;
	border: 1px solid rgb(24 35 34 / 20%);
	box-shadow: 0 .8rem 1.8rem rgb(7 40 48 / 18%);
}

.lb-contact-next-opening::after {
	position: absolute;
	right: -2.5rem;
	bottom: -3.75rem;
	z-index: -1;
	width: 10rem;
	height: 10rem;
	border: 1.25rem solid rgb(255 255 255 / 28%);
	border-radius: 50%;
	content: "";
}

.lb-contact-next-opening > *,
.lb-contact-next-opening__heading > *,
.lb-contact-next-opening__value > * {
	margin-block: 0 !important;
}

.lb-contact-next-opening__heading {
	gap: .85rem !important;
}

.lb-contact-next-opening__heading .lb-icon-medallion {
	flex: 0 0 auto;
	width: 3.25rem;
	height: 3.25rem;
}

.lb-contact-next-opening__heading .lb-eyebrow {
	color: var(--wp--preset--color--petrol);
}

.lb-contact-next-opening__slot {
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) !important;
	gap: .65rem !important;
	margin-top: 1rem !important;
}

.lb-contact-next-opening__value {
	min-width: 0;
	padding: .8rem .9rem !important;
	background: rgb(255 255 255 / 72%);
	border: 1px solid rgb(15 76 92 / 20%);
	border-radius: .65rem;
}

.lb-contact-next-opening__label {
	color: var(--wp--preset--color--muted);
	font-size: .75rem !important;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.lb-contact-next-opening :is(.lb-contact-next-opening__day, .lb-contact-next-opening__hours) {
	margin-top: .2rem !important;
	color: var(--wp--preset--color--ink);
	font-weight: 850;
	line-height: 1.15;
}

/* Présentation de repli pour une page enregistrée avant la nouvelle structure. */
.lb-contact-next-opening > p:first-child {
	color: var(--wp--preset--color--petrol);
	font-size: .75rem !important;
	font-weight: 850;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.lb-contact-next-opening > p:nth-of-type(2) {
	margin-top: .55rem !important;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(1.5rem, 3vw, 2rem) !important;
	font-weight: 850;
	line-height: 1.05;
}

.lb-contact-next-opening > p:nth-of-type(3) {
	display: inline-flex;
	align-items: center;
	width: fit-content;
	min-height: 2.5rem;
	margin-top: .55rem !important;
	padding: .45rem .85rem;
	background: rgb(255 255 255 / 75%);
	border: 1px solid rgb(15 76 92 / 20%);
	border-radius: 999px;
	font-weight: 850;
}

.lb-contact-access {
	padding-block: clamp(1rem, 3vw, 2rem);
}

.lb-contact-access__layout {
	align-items: stretch !important;
}

.lb-contact-access__layout > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.lb-contact-access__card {
	flex: 1;
}

.lb-contact-before,
.lb-practical-feature,
.lb-practical-help,
.lb-waste-reminder,
.lb-cemetery-first-step {
	padding: clamp(1.35rem, 3vw, 2.25rem) !important;
	border: 1px solid rgb(15 76 92 / 14%);
	border-left: .4rem solid var(--wp--preset--color--sun);
	box-shadow: 0 .65rem 1.7rem rgb(15 76 92 / 7%);
}

.lb-practical-hero__actions {
	margin-top: 1.5rem !important;
}

.lb-practical-section {
	margin-block-start: clamp(3.5rem, 7vw, 6rem) !important;
}

.lb-practical-card {
	min-height: 17rem;
	padding: clamp(1.35rem, 2.6vw, 2rem) !important;
	background: var(--wp--preset--color--white);
}

.lb-practical-card .lb-content-icon {
	margin-bottom: .25rem !important;
}

.lb-practical-card a:not(.wp-block-button__link) {
	font-weight: 800;
	text-underline-offset: .18em;
}

.lb-travel-landmark__card {
	height: 100%;
}

.lb-travel-soft-mobility {
	align-items: stretch !important;
}

.lb-travel-soft-mobility > .wp-block-column {
	display: flex;
}

.lb-travel-soft-mobility .lb-practical-card {
	width: 100%;
}

.lb-emergency-strip {
	padding: clamp(1.35rem, 3vw, 2.25rem) !important;
	border-left: .4rem solid var(--wp--preset--color--sun);
}

.lb-emergency-strip a {
	color: inherit;
}

.lb-emergency-strip .wp-block-button__link.has-ink-color {
	color: var(--wp--preset--color--ink);
}

.lb-emergency-numbers {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: .75rem !important;
	margin-top: 1.25rem !important;
}

.lb-emergency-numbers p {
	margin: 0 !important;
}

.lb-emergency-numbers a {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 8rem;
	padding: .85rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border: 2px solid rgb(255 255 255 / 75%);
	border-radius: 1rem;
	box-shadow: 0 .55rem 0 rgb(0 0 0 / 15%);
	font-size: .82rem;
	font-weight: 800;
	line-height: 1.25;
	text-align: center;
	text-decoration: none;
	transition: transform var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-emergency-numbers p:nth-child(even) a {
	background: var(--wp--preset--color--white);
}

.lb-emergency-numbers strong {
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(2rem, 4vw, 3rem);
	line-height: .9;
}

.lb-emergency-numbers a:hover,
.lb-emergency-numbers a:focus-visible {
	color: var(--wp--preset--color--ink);
	box-shadow: 0 .3rem 0 rgb(0 0 0 / 18%);
	transform: translateY(.2rem) rotate(-1deg);
}

/* Page Urgences : hiérarchie immédiate, grands numéros et cartes distinctes. */
.lb-emergency-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.lb-emergency-hero::after {
	position: absolute;
	right: -5rem;
	bottom: -7rem;
	z-index: -1;
	width: 20rem;
	aspect-ratio: 1;
	background: var(--wp--preset--color--sun);
	border: 2rem solid rgb(255 255 255 / 14%);
	border-radius: 50%;
	content: "";
	opacity: .9;
}

.lb-emergency-hero > * {
	max-width: 62rem;
	margin-inline: 0 !important;
}

.lb-emergency-hero__actions .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
}

.lb-emergency-cards {
	display: grid !important;
	grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
	gap: clamp(.75rem, 1.6vw, 1.25rem) !important;
	align-items: stretch !important;
}

.lb-emergency-card {
	--lb-emergency-card-bg: var(--wp--preset--color--sun);

	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	padding: clamp(1.25rem, 2.5vw, 1.8rem) !important;
	background: var(--lb-emergency-card-bg);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 1rem;
	box-shadow: 0 .7rem 0 rgb(15 76 92 / 14%);
	transition: box-shadow var(--lb-transition), transform var(--lb-transition);
	grid-column: span 2;
}

.lb-emergency-cards > *,
.lb-emergency-call-guide > *,
.lb-support-grid > *,
.lb-human-poison-support > *,
.lb-legal-cards > * {
	margin-block: 0 !important;
}

.lb-emergency-card:nth-child(4),
.lb-emergency-card:nth-child(5) {
	grid-column: span 3;
}

.lb-emergency-card--security,
.lb-emergency-card--europe {
	--lb-emergency-card-bg: var(--wp--preset--color--water);
}

.lb-emergency-card--accessible {
	--lb-emergency-card-bg: var(--wp--preset--color--white);
}

.lb-emergency-card::after {
	position: absolute;
	right: -1.6rem;
	bottom: -2.2rem;
	width: 6rem;
	aspect-ratio: 1;
	background: rgb(255 255 255 / 32%);
	border-radius: 50%;
	content: "";
}

.lb-emergency-card:hover,
.lb-emergency-card:focus-within {
	box-shadow: 0 .4rem 0 rgb(15 76 92 / 20%);
	transform: translateY(.2rem) rotate(-.35deg);
}

.lb-emergency-card > * {
	position: relative;
	z-index: 1;
	margin-block: 0 !important;
}

.lb-emergency-card > * + * {
	margin-top: .65rem !important;
}

.lb-emergency-card h2 a {
	color: var(--wp--preset--color--petrol);
	text-decoration: none;
}

.lb-emergency-card h2 {
	line-height: .85;
}

.lb-emergency-card h3 {
	min-height: 2.6em;
	line-height: 1.15;
}

.lb-emergency-call-guide {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2.5vw, 2rem) !important;
	align-items: stretch !important;
}

.lb-emergency-call-guide > .wp-block-group {
	box-sizing: border-box;
	height: 100%;
}

.lb-support-grid {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	margin-top: 1.5rem !important;
}

.lb-support-card {
	--lb-support-card-bg: var(--wp--preset--color--water);

	position: relative;
	overflow: hidden;
	box-sizing: border-box;
	height: 100%;
	padding: clamp(1.25rem, 2.5vw, 1.8rem) !important;
	background: var(--lb-support-card-bg);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 1rem;
	box-shadow: 0 .55rem 0 rgb(15 76 92 / 12%);
	transition: box-shadow var(--lb-transition), transform var(--lb-transition);
}

.lb-support-card:nth-child(even) {
	--lb-support-card-bg: var(--wp--preset--color--sun);
}

.lb-support-card::after {
	position: absolute;
	right: -1.4rem;
	bottom: -1.8rem;
	width: 5rem;
	aspect-ratio: 1;
	background: rgb(255 255 255 / 36%);
	border-radius: 50%;
	content: "";
}

.lb-support-card:hover,
.lb-support-card:focus-within {
	box-shadow: 0 .28rem 0 rgb(15 76 92 / 18%);
	transform: translateY(.18rem) rotate(-.25deg);
}

.lb-support-card > * {
	position: relative;
	z-index: 1;
	margin-block: 0 !important;
}

.lb-support-card > * + * {
	margin-top: .6rem !important;
}

.lb-support-card__number a {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--interface);
	font-variant-numeric: tabular-nums;
	font-weight: 800;
	line-height: .85;
	letter-spacing: -.035em;
	text-decoration: none;
}

.lb-support-card__number {
	font-size: clamp(2.6rem, 6vw, 5rem) !important;
	white-space: nowrap;
}

.lb-support-card--poison .lb-support-card__number,
.lb-support-card--human-poison .lb-support-card__number {
	font-size: clamp(1.85rem, 3.35vw, 3.25rem) !important;
}

.lb-human-poison-support {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	align-items: stretch !important;
	gap: clamp(1rem, 3vw, 2rem) !important;
}

.lb-human-poison-support > * {
	min-width: 0;
	height: 100%;
}

/* Le numéro antipoison humain dispose d'une ligne d'appel pleine largeur ;
   son libellé reste à côté sur grand écran et passe dessous sur mobile. */
.lb-support-card--human-poison {
	display: grid !important;
	grid-template-columns: minmax(15rem, auto) minmax(0, 1fr) !important;
	grid-template-rows: auto auto;
	column-gap: clamp(1.5rem, 4vw, 3rem) !important;
	align-items: center;
}

.lb-support-card--human-poison .lb-support-card__number {
	grid-row: 1 / 3;
	align-self: center;
}

.lb-support-card--human-poison > :not(.lb-support-card__number) {
	grid-column: 2;
}

@media (min-width: 48.8126rem) {
	.lb-veterinary-support .lb-support-grid {
		grid-template-columns: minmax(14rem, .75fr) minmax(22rem, 1.25fr) !important;
	}
}

/* Compatibilité avec les pages Urgences insérées avant 0.13.52, où le numéro
   était directement le premier titre de la carte. */
.lb-support-card > h3:first-child {
	min-height: 0;
	font-size: clamp(3rem, 5vw, 5rem) !important;
	line-height: .85;
}

.lb-support-card > h3:first-child a {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-weight: 800;
	text-decoration: none;
}

.lb-support-card h3 {
	min-height: 2.4em;
	line-height: 1.15;
}

/* Nouveaux arrivants et Chemins et nature. */
.lb-arrivals-hero,
.lb-nature-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.lb-arrivals-hero::after,
.lb-nature-hero::after {
	position: absolute;
	right: -3rem;
	bottom: -5rem;
	z-index: -1;
	width: 17rem;
	aspect-ratio: 1;
	background: rgb(227 179 65 / 45%);
	border: 2px solid rgb(15 76 92 / 16%);
	border-radius: 42% 58% 56% 44%;
	content: "";
	transform: rotate(18deg);
}

.lb-arrivals-hero > *,
.lb-nature-hero > * {
	max-width: 62rem;
	margin-inline: 0 !important;
}

.lb-arrivals-checklist {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2vw, 1.5rem) !important;
	align-items: stretch !important;
	margin-top: 1.5rem !important;
}

.lb-arrivals-card,
.lb-nature-card {
	position: relative;
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	height: 100%;
	padding: clamp(1.35rem, 2.8vw, 2rem) !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--lb-line);
	border-top: .35rem solid var(--wp--preset--color--sun);
	border-radius: 1rem;
	box-shadow: 0 .75rem 1.8rem rgb(15 76 92 / 8%);
}

.lb-arrivals-card > *,
.lb-nature-card > * {
	margin-block: 0 !important;
}

.lb-arrivals-card > * + *,
.lb-nature-card > * + * {
	margin-top: .75rem !important;
}

.lb-arrivals-card .lb-card-link {
	margin-top: auto !important;
	padding-top: 1rem;
}

.lb-card-number {
	display: grid;
	place-items: center;
	width: 2.9rem;
	height: 2.9rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border-radius: .75rem .75rem .75rem .15rem;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 1.45rem;
	font-weight: 850;
	line-height: 1;
	transform: rotate(-2deg);
}

.lb-arrivals-local-note,
.lb-arrivals-contact,
.lb-nature-rules {
	gap: clamp(1.5rem, 4vw, 4rem) !important;
	align-items: center !important;
}

.lb-nature-intro {
	grid-template-columns: minmax(0, 1.2fr) minmax(19rem, .8fr) !important;
	gap: clamp(1.5rem, 5vw, 4rem) !important;
	align-items: center !important;
}

.lb-nature-cards {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2vw, 1.5rem) !important;
	align-items: stretch !important;
	margin-top: 1.5rem !important;
}

.lb-nature-card {
	border-top-color: var(--wp--preset--color--teal);
}

.lb-nature-rules {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	align-items: start !important;
}

.lb-nature-rules .lb-check-list li::marker {
	color: var(--wp--preset--color--sun);
}

.lb-waste-day-card {
	position: relative;
	overflow: hidden;
	min-height: 14rem;
	padding: clamp(1.35rem, 2.8vw, 2rem) !important;
}

.lb-waste-day-card::after {
	position: absolute;
	right: -1.25rem;
	bottom: -1.75rem;
	width: 7rem;
	aspect-ratio: 1;
	content: "";
	background: rgb(255 255 255 / 24%);
	border-radius: 50%;
}

.lb-waste-day-card strong {
	color: var(--wp--preset--color--petrol);
}

.lb-waste-collection {
	margin-block: clamp(2.5rem, 6vw, 5rem) !important;
}

.lb-waste-collection > :where(.lb-eyebrow, h2) {
	margin-block-end: .5rem;
}

.lb-waste-next-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(1rem, 2.5vw, 1.75rem);
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
}

.lb-waste-next-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 25rem;
	padding: clamp(1.5rem, 4vw, 3rem);
	overflow: hidden;
	border-radius: var(--lb-radius-lg);
	box-shadow: 0 1.2rem 3rem rgb(15 76 92 / 14%);
}

.lb-waste-next-card::after {
	position: absolute;
	right: -4rem;
	bottom: -5rem;
	width: 14rem;
	aspect-ratio: 1;
	content: "";
	border: 2px solid currentcolor;
	border-radius: 50%;
	opacity: .12;
	pointer-events: none;
}

.lb-waste-next-card--household {
	color: #fff;
	background: #0f4c5c;
	background: var(--wp--preset--color--petrol, #0f4c5c);
}

.lb-waste-next-card--recycling {
	color: #182322;
	background: #e3b341;
	background: var(--wp--preset--color--sun, #e3b341);
}

.lb-waste-next-card :where(h3, p, time) {
	position: relative;
	z-index: 1;
	color: inherit;
}

.lb-waste-next-card h3 {
	margin-block: .3rem 1.25rem;
	font-size: clamp(1.55rem, 2.8vw, 2.25rem);
}

.lb-waste-next-date {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: end;
	width: fit-content;
	margin-block: auto 1.25rem;
	line-height: 1;
}

.lb-waste-next-date__weekday {
	grid-column: 1 / -1;
	margin-bottom: .3rem;
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	font-weight: 850;
}

.lb-waste-next-date strong {
	grid-row: 2 / span 2;
	margin-right: .8rem;
	color: inherit;
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(4.8rem, 9vw, 7.6rem);
	font-weight: 750;
	letter-spacing: -.06em;
	line-height: .75;
}

.lb-waste-next-date > span:last-child {
	max-width: 8rem;
	padding-bottom: .2rem;
	font-size: clamp(1.15rem, 2vw, 1.5rem);
	font-weight: 800;
	line-height: 1.05;
}

.lb-waste-next-card__shift,
.lb-waste-next-card__usual {
	width: fit-content;
	margin-block: 0 .8rem;
	padding: .55rem .75rem;
	border-radius: .65rem;
	font-size: .9rem;
}

.lb-waste-next-card__shift {
	color: #6b0036 !important;
	background: #fff;
	box-shadow: inset 0 0 0 2px #b00058;
}

.lb-waste-next-card__usual {
	background: rgb(255 255 255 / 18%);
}

.lb-waste-next-card--recycling .lb-waste-next-card__usual {
	background: rgb(255 255 255 / 50%);
}

.lb-waste-next-card__tip {
	margin-block: 0;
	font-size: .95rem;
}

.lb-waste-calendar-empty {
	grid-column: 1 / -1;
	padding: clamp(1.5rem, 4vw, 2.5rem);
	background: var(--wp--preset--color--water);
	border-left: .4rem solid var(--wp--preset--color--sun);
	border-radius: var(--lb-radius-md);
}

.lb-waste-all-dates {
	margin-top: clamp(1.5rem, 3vw, 2.5rem);
	padding: 0;
	overflow: hidden;
	background: var(--wp--preset--color--water);
	border: 1px solid var(--lb-line-strong);
	border-radius: var(--lb-radius-md);
}

.lb-waste-all-dates > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 3.75rem;
	padding: 1rem 1.25rem;
	font-size: 1.08rem;
	font-weight: 850;
	cursor: pointer;
}

.lb-waste-all-dates > summary::after {
	content: "+";
	font-size: 1.5rem;
	line-height: 1;
}

.lb-waste-all-dates[open] > summary::after {
	content: "−";
}

.lb-waste-all-dates__content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	padding: clamp(1rem, 3vw, 2rem);
	border-top: 1px solid var(--lb-line-strong);
}

.lb-waste-calendar-legend {
	display: flex;
	grid-column: 1 / -1;
	gap: .75rem;
	align-items: center;
	margin: 0 !important;
	padding: .8rem 1rem;
	background: rgb(255 255 255 / 72%);
	border-radius: .65rem;
}

.lb-waste-calendar-legend__marker {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.4rem;
	height: 2.4rem;
	border: .18rem solid #b00058;
	border-radius: 50%;
	font-weight: 850;
}

.lb-waste-year-list {
	min-width: 0;
	padding: clamp(1rem, 2.5vw, 1.5rem);
	background: var(--wp--preset--color--white);
	border-radius: var(--lb-radius-md);
}

.lb-waste-year-list > h3 {
	margin-top: 0;
}

.lb-waste-month-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
}

.lb-waste-month {
	min-width: 0;
	padding-top: .65rem;
	border-top: 1px solid var(--lb-line);
}

.lb-waste-month h4 {
	margin-block: 0 .45rem;
	font-family: var(--wp--preset--font-family--interface);
	font-size: .82rem;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.lb-waste-month ul {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-waste-month li {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	min-height: 2rem;
	padding: .2rem .35rem;
	border-radius: 999px;
	font-size: .85rem;
	font-weight: 850;
}

.lb-waste-year-list--household .lb-waste-month li {
	color: #fff;
	background: #0f4c5c;
}

.lb-waste-year-list--recycling .lb-waste-month li {
	color: #182322;
	background: #e3b341;
}

.lb-waste-month li.is-shifted {
	outline: 3px solid #b00058;
	outline-offset: 2px;
}

.lb-waste-calendar-actions {
	margin-top: 1.5rem !important;
}

.lb-waste-centres {
	align-items: stretch !important;
}

.lb-cemetery-rate-cards {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lb-cemetery-rate-card {
	padding: clamp(1.35rem, 2.8vw, 2rem) !important;
}

.lb-cemetery-price-row {
	padding-block: .75rem;
	border-top: 1px solid rgb(255 255 255 / 24%);
}

.lb-cemetery-price-row p:last-child {
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--interface);
	font-size: clamp(1.35rem, 2vw, 1.65rem);
	font-weight: 900;
}

.lb-cemetery-process {
	overflow: hidden;
	padding: clamp(1.5rem, 3.5vw, 3rem) !important;
}

.lb-cemetery-steps {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lb-practical-step {
	position: relative;
	min-height: 13rem;
	padding: 1.25rem !important;
	background: var(--wp--preset--color--white);
}

.lb-practical-step__number {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	margin-bottom: .25rem !important;
	background: var(--wp--preset--color--sun);
	border-radius: 50%;
	font-family: var(--wp--preset--font-family--interface);
	font-weight: 900;
}

/* Progressive carousel for the hall: the native Gallery block remains usable
   when JavaScript is unavailable. */
.lb-hall-carousel-shell {
	position: relative;
}

.lb-hall-carousel {
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: clamp(.75rem, 1.8vw, 1.25rem) !important;
	overflow-x: auto;
	margin-inline: 0 !important;
	padding: .25rem .1rem 1rem !important;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-color: var(--wp--preset--color--teal) var(--wp--preset--color--water);
	scrollbar-width: thin;
}

.lb-hall-carousel > figure.wp-block-image {
	flex: 0 0 min(78vw, 42rem) !important;
	width: min(78vw, 42rem) !important;
	margin: 0 !important;
	scroll-snap-align: start;
}

.lb-hall-carousel > figure.wp-block-image img {
	display: block;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: var(--lb-radius-md);
}

.lb-hall-carousel > figure.wp-block-image figcaption {
	margin: .65rem .25rem 0;
	color: var(--wp--preset--color--muted);
	font-size: .875rem;
	text-align: left;
}

.lb-hall-carousel:focus-visible {
	outline: .2rem solid var(--wp--preset--color--petrol);
	outline-offset: .25rem;
}

.lb-carousel-controls {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: .65rem;
	margin-top: .75rem;
}

.lb-carousel-controls__button {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	padding: 0;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 50%;
	font-size: 1.3rem;
	font-weight: 900;
	cursor: pointer;
}

.lb-carousel-controls__button:hover,
.lb-carousel-controls__button:focus-visible {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--sun);
}

.lb-carousel-controls__button:disabled {
	opacity: .38;
	cursor: not-allowed;
}

.lb-carousel-controls__status {
	min-width: 4rem;
	margin: 0 .35rem 0 0;
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--interface);
	font-size: .9rem;
	font-weight: 850;
	text-align: center;
}

.lb-hall-ready-to-book {
	border-left: .4rem solid var(--wp--preset--color--sun);
}

.lb-hall-booking {
	scroll-margin-top: 2rem;
}

.lb-hall-payfip {
	position: relative;
	overflow: hidden;
	grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr) !important;
	gap: clamp(1.5rem, 4vw, 4rem) !important;
	align-items: center !important;
	box-sizing: border-box;
	border: 2px solid var(--wp--preset--color--sun);
	box-shadow: 0 .8rem 0 rgb(15 76 92 / 16%);
	isolation: isolate;
}

.lb-hall-payfip::after {
	position: absolute;
	right: -4rem;
	bottom: -5.5rem;
	z-index: -1;
	width: 13rem;
	aspect-ratio: 1;
	background: rgb(227 179 65 / 22%);
	border: 1rem solid rgb(255 255 255 / 9%);
	border-radius: 50%;
	content: "";
}

.lb-hall-payfip--compat {
	margin-top: var(--wp--preset--spacing--40) !important;
}

.lb-hall-payfip__actions {
	width: 100%;
}

.lb-hall-payfip__actions .wp-block-button {
	width: 100%;
}

.lb-hall-payfip__actions .wp-block-button__link {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 4.25rem;
	border: 2px solid var(--wp--preset--color--white);
	border-radius: .75rem;
	box-shadow: 0 .55rem 0 rgb(0 0 0 / 22%);
	font-size: 1rem;
	font-weight: 900;
	text-align: center;
}

:is(#horaires, #contact, #venir, #photos, #tarifs, #disponibilites) {
	scroll-margin-top: 6rem;
}

@media (max-width: 64rem) {
	.lb-contact-actions {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lb-contact-action:last-child {
		grid-column: 1 / -1;
	}

	.lb-cemetery-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lb-emergency-cards {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.lb-emergency-card,
	.lb-emergency-card:nth-child(4),
	.lb-emergency-card:nth-child(5) {
		grid-column: auto;
	}

	.lb-emergency-card--accessible {
		grid-column: 1 / -1;
	}

	.lb-support-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.lb-emergency-numbers {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 48.8125rem) {
	.lb-contact-hero,
	.lb-practical-hero,
	.lb-emergency-strip,
	.lb-emergency-hero,
	.lb-arrivals-hero,
	.lb-nature-hero,
	.lb-cemetery-process {
		padding: var(--wp--preset--spacing--50) !important;
	}

	.lb-human-poison-support {
		padding: var(--wp--preset--spacing--50) !important;
	}

	.lb-support-card--human-poison .lb-support-card__number {
		font-size: clamp(1.55rem, 7.2vw, 2.2rem) !important;
	}

	.lb-support-card--poison .lb-support-card__number {
		font-size: clamp(1.45rem, 6.7vw, 2rem) !important;
	}

	.lb-support-card--human-poison {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-rows: auto !important;
	}

	.lb-support-card--human-poison .lb-support-card__number,
	.lb-support-card--human-poison > :not(.lb-support-card__number) {
		grid-row: auto;
		grid-column: 1;
	}

	.lb-contact-actions,
	.lb-contact-details,
	.lb-practical-grid,
	.lb-payment-transition,
	.lb-emergency-cards,
	.lb-emergency-call-guide,
	.lb-support-grid,
	.lb-human-poison-support,
	.lb-arrivals-checklist,
	.lb-nature-intro,
	.lb-nature-cards,
	.lb-nature-rules,
	.lb-hall-payfip,
	.lb-waste-next-grid,
	.lb-waste-all-dates__content,
	.lb-waste-day-cards,
	.lb-cemetery-rate-cards,
	.lb-cemetery-steps {
		grid-template-columns: 1fr !important;
	}

	.lb-contact-details > :last-child:nth-child(odd),
	.lb-practical-grid > :last-child:nth-child(odd),
	.lb-emergency-card--accessible {
		grid-column: auto;
	}

	.lb-emergency-numbers {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lb-emergency-numbers p:last-child {
		grid-column: 1 / -1;
	}

	.lb-emergency-numbers p:last-child a {
		min-height: 6.5rem;
	}

	.lb-footer-label img {
		height: 7rem;
	}

	.lb-waste-next-card {
		min-height: 22rem;
	}

	.lb-waste-month-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.lb-contact-action:last-child {
		grid-column: auto;
	}

	.lb-contact-action,
	.lb-practical-card,
	.lb-practical-step {
		min-height: 0;
	}

	.lb-contact-action:hover {
		transform: none;
	}

	.lb-hall-carousel > figure.wp-block-image {
		flex-basis: 88vw !important;
		width: 88vw !important;
	}
}

@media (max-width: 30rem) {
	.wp-block-group.is-style-les-barils-icon-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.wp-block-group.is-style-les-barils-icon-row > :not(.lb-content-icon) {
		min-width: 0;
		width: 100%;
	}
}

@media (max-width: 30rem) {
	.lb-emergency-numbers {
		grid-template-columns: 1fr;
	}

	.lb-emergency-numbers p:last-child {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.lb-hall-carousel {
		scroll-behavior: auto;
	}
}

/*
 * Version 0.13.45 — nouvelles pages éditoriales et composants facultatifs.
 */

/* Barre utilitaire : pictogrammes fins, éditables par leur classe lb-icon--…,
   sans augmenter la hauteur du bandeau. */
.lb-utility-inner,
.lb-utility-item {
	display: flex !important;
	align-items: center !important;
}

.lb-utility-inner {
	flex-wrap: wrap;
	justify-content: space-between;
	gap: .35rem 1rem !important;
}

.lb-utility-item {
	gap: .45rem !important;
	min-width: 0;
	margin: 0 !important;
}

.lb-utility-links {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center !important;
}

.lb-utility-item p,
.lb-utility-item .wp-block-shortcode,
.lb-utility-inner > *,
.lb-utility-links > *,
.lb-utility-item > * {
	margin: 0 !important;
}

.lb-utility-mini-icon.lb-content-icon {
	display: block;
	flex: 0 0 1.45rem;
	width: 1.45rem;
	height: 1.45rem;
	background-color: #fff;
	background-size: .95rem;
	border: 1px solid rgb(255 255 255 / 58%);
	border-radius: 50%;
}

.lb-utility-mini-icon .lb-icon-anchor {
	display: none;
}

.lb-utility-phone-value a {
	font-weight: 800;
}

/* Repli visuel pour un en-tête personnalisé enregistré avant 0.13.45. */
.lb-utility-bar > .wp-block-group > p,
.lb-utility-phone {
	display: inline-flex;
	gap: .45rem;
	align-items: center;
}

.lb-utility-bar > .wp-block-group > p::before,
.lb-utility-phone::before {
	display: block;
	flex: 0 0 1.45rem;
	width: 1.45rem;
	height: 1.45rem;
	background-color: #fff;
	background-position: center;
	background-repeat: no-repeat;
	background-size: .95rem;
	border-radius: 50%;
	content: "";
}

.lb-utility-bar > .wp-block-group > p::before {
	background-image: url("assets/icons/clock.svg");
}

.lb-utility-phone::before {
	background-image: url("assets/icons/phone.svg");
}

/* Pied de page : neutralise toute bordure héritée d’une ancienne
   personnalisation et empêche la bande pétrole de dépasser sur les côtés. */
.lb-footer {
	box-sizing: border-box;
	max-width: none !important;
	overflow: clip;
	border: 0 !important;
}

.lb-footer-contact-link--map::before {
	background-image: url("assets/icons/map-pin.svg");
}

/* Fiches professionnelles illustrées. */
.lb-directory-card--professional:has(> .lb-directory-card__body) {
	overflow: hidden;
	padding: 0 !important;
}

.lb-directory-card--professional > .lb-directory-card__media--professional {
	flex: 0 0 auto;
	grid-column: auto;
	grid-row: auto;
	width: 100%;
	height: auto;
	min-height: 0;
	aspect-ratio: 16 / 9;
	background:
		url("assets/icons/services.svg") center / 3rem no-repeat,
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
}

.lb-directory-card--professional > .lb-directory-card__media--professional img {
	width: 100% !important;
	height: auto !important;
	min-height: 0;
	aspect-ratio: 16 / 9;
	object-fit: cover !important;
}

.lb-directory-card--professional > .lb-directory-card__body {
	flex: 1;
	grid-column: auto;
	grid-row: auto;
	padding: clamp(1.25rem, 2.5vw, 2rem) !important;
}

/* Cartes de projets, parcours et lettres : même construction visuelle,
   images facultatives et actions repoussées en bas. */
.lb-projects-grid,
.lb-routes-grid,
.lb-newsletters-grid,
.lb-document-categories-grid,
.lb-local-services__grid {
	align-items: stretch !important;
	gap: clamp(1rem, 2.4vw, 2rem) !important;
}

.lb-projects-grid,
.lb-newsletters-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.lb-routes-grid,
.lb-document-categories-grid,
.lb-local-services__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.lb-project-card,
.lb-route-card,
.lb-newsletter-card {
	position: relative;
	display: flex;
	overflow: hidden;
	flex-direction: column;
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 18%);
	border-top: .35rem solid var(--wp--preset--color--teal);
	border-radius: 1rem;
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
	transition: transform var(--lb-transition), box-shadow var(--lb-transition);
}

.lb-project-card:hover,
.lb-project-card:focus-within,
.lb-route-card:hover,
.lb-route-card:focus-within,
.lb-newsletter-card:hover,
.lb-newsletter-card:focus-within {
	box-shadow: 0 1rem 2.25rem rgb(15 76 92 / 14%);
	transform: translateY(-.2rem);
}

.lb-project-card__media,
.lb-route-card__media,
.lb-newsletter-card__media {
	width: 100%;
	margin: 0 !important;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background:
		url("assets/icons/nature.svg") center / 3rem no-repeat,
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
	border-radius: 0;
}

.lb-project-card__media {
	background-image:
		url("assets/icons/works.svg"),
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
	background-position: center;
	background-repeat: no-repeat;
	background-size: 3rem, cover;
}

.lb-newsletter-card__media {
	background-image:
		url("assets/icons/newsletter.svg"),
		linear-gradient(145deg, #f6e8bd, var(--wp--preset--color--water));
	background-position: center;
	background-repeat: no-repeat;
	background-size: 3rem, cover;
}

.lb-project-card__media img,
.lb-route-card__media img,
.lb-newsletter-card__media img {
	display: block;
	width: 100% !important;
	aspect-ratio: 16 / 9;
	object-fit: cover !important;
}

.lb-project-card__body,
.lb-route-card__body,
.lb-newsletter-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: clamp(1.25rem, 2.4vw, 1.8rem) !important;
}

:is(.lb-project-card__body, .lb-route-card__body, .lb-newsletter-card__body) > * {
	margin-block: 0 !important;
}

:is(.lb-project-card__body, .lb-route-card__body, .lb-newsletter-card__body) > * + * {
	margin-top: .8rem !important;
}

.lb-project-status,
.lb-route-mode,
.lb-newsletter-number,
.lb-official-document-type {
	display: inline-block;
	width: fit-content;
	max-width: 100%;
	padding: .3rem .7rem;
	line-height: 1.25;
}

.lb-project-facts,
.lb-route-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .5rem;
	margin-block: .25rem 1rem !important;
	padding: 0;
	list-style: none;
}

.lb-project-facts li,
.lb-route-facts li {
	padding: .65rem;
	background: var(--wp--preset--color--water);
	border-radius: .55rem;
}

.lb-route-card {
	border-top-color: var(--wp--preset--color--sun);
}

.lb-route-card__heading,
.lb-newsletter-card__meta {
	gap: .65rem !important;
}

.lb-route-card__heading .lb-content-icon {
	flex: 0 0 3.5rem;
	margin: 0 !important;
}

.lb-route-highlights {
	padding-top: .8rem;
	border-top: 1px solid var(--lb-line);
}

.lb-route-highlights > * {
	margin-block: 0 !important;
}

.lb-route-highlights > * + * {
	margin-top: .55rem !important;
}

.lb-route-highlights ul {
	padding-left: 1.15rem;
}

.lb-project-actions,
.lb-route-actions,
.lb-newsletter-actions {
	margin-top: auto !important;
	padding-top: .65rem;
}

/* Page Projets et travaux. */
.lb-projects-hero,
.lb-documents-hero,
.lb-heritage-hero,
.lb-newsletters-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

:is(.lb-projects-hero, .lb-documents-hero, .lb-heritage-hero, .lb-newsletters-hero)::after {
	position: absolute;
	right: -5rem;
	bottom: -8rem;
	z-index: -1;
	width: 19rem;
	aspect-ratio: 1;
	background: var(--wp--preset--color--sun);
	border: 1.5rem solid rgb(255 255 255 / 42%);
	border-radius: 50%;
	content: "";
	opacity: .78;
}

:is(.lb-projects-hero, .lb-documents-hero, .lb-heritage-hero, .lb-newsletters-hero) > * {
	max-width: 64rem;
	margin-inline: 0 !important;
}

.lb-works-notice {
	display: grid !important;
	grid-template-columns: minmax(0, 1.45fr) minmax(15rem, .55fr) !important;
	align-items: center !important;
	border: 2px solid var(--wp--preset--color--petrol);
	box-shadow: 0 .65rem 0 rgb(15 76 92 / 12%);
}

.lb-projects-grid,
.lb-routes-grid,
.lb-newsletters-grid,
.lb-document-categories-grid,
.lb-local-services__grid,
.lb-project-process__grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
}

.lb-projects-grid,
.lb-routes-grid,
.lb-document-categories-grid,
.lb-local-services__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.lb-newsletters-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.lb-project-step {
	box-sizing: border-box;
	height: 100%;
	padding: 1.4rem !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--lb-line);
	border-radius: .85rem;
}

.lb-project-step > * {
	margin-block: 0 !important;
}

.lb-project-step > * + * {
	margin-top: .65rem !important;
}

.lb-project-step__number {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 2.5rem;
	font-weight: 850;
	line-height: .9;
}

.lb-project-follow {
	display: grid !important;
	grid-template-columns: minmax(0, 1.35fr) minmax(15rem, .65fr) !important;
	align-items: stretch !important;
}

.lb-project-follow .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
}

/* Bibliothèque documentaire. */
.lb-document-categories-grid {
	background: var(--wp--preset--color--water);
	padding: clamp(1rem, 2.5vw, 2rem) !important;
	border-radius: 1.25rem;
}

.lb-document-category {
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	border: 1px solid rgb(15 76 92 / 18%);
	box-shadow: 0 .7rem 1.6rem rgb(15 76 92 / 7%);
}

.lb-document-category--pv {
	height: auto;
}

.lb-document-category__empty {
	margin: 1.25rem 0 0 !important;
	padding: 1rem 1.1rem;
	color: var(--wp--preset--color--muted);
	background: var(--wp--preset--color--water);
	border-radius: .65rem;
	font-size: .9rem;
}

.lb-official-document-card {
	padding: 1.1rem !important;
	background: var(--lb-surface);
	border: 1px solid var(--lb-line);
	border-left: .35rem solid var(--wp--preset--color--sun);
	border-radius: .7rem;
}

.lb-official-document-card + .lb-official-document-card {
	margin-top: .8rem !important;
}

.lb-official-document-card > * {
	margin-block: 0 !important;
}

.lb-official-document-card > * + * {
	margin-top: .65rem !important;
}

.lb-official-document-card__meta {
	gap: .6rem !important;
}

.lb-official-document-file {
	padding: .85rem 1rem;
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 22%);
	border-radius: .6rem;
}

.lb-official-document-file a {
	font-weight: 850;
	overflow-wrap: anywhere;
}

.lb-official-document-file .wp-block-file__button {
	min-height: 2.75rem;
}

.lb-document-index {
	margin-top: 1.35rem !important;
}

/* Patrimoine et services locaux. */
.lb-heritage-intro {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	align-items: stretch !important;
}

.lb-heritage-intro > * {
	min-width: 0;
}

.lb-church-opening {
	display: grid !important;
	grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
	align-items: center !important;
	border: 1px solid rgb(15 76 92 / 20%);
	box-shadow: 0 .9rem 2.4rem rgb(15 76 92 / 10%);
}

.lb-church-opening__media {
	grid-column: 1 / -1;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	overflow: hidden;
	border-radius: .75rem;
}

.lb-church-opening__media img {
	display: block;
	width: 100%;
	height: clamp(12rem, 28vw, 23rem);
	min-height: 0;
	aspect-ratio: 16 / 7;
	object-fit: cover;
	border-radius: .75rem;
}

.lb-church-seasons {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: .75rem !important;
}

.lb-church-opening > :last-child {
	grid-column: 1 / -1;
}

.lb-church-season {
	height: 100%;
	border: 1px solid rgb(15 76 92 / 18%);
}

.lb-church-season > * {
	margin-block: 0 !important;
}

.lb-church-season > * + * {
	margin-top: .35rem !important;
}

.lb-local-service-card {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	height: 100%;
	border: 1px solid rgb(15 76 92 / 18%);
	box-shadow: 0 .75rem 1.8rem rgb(15 76 92 / 8%);
}

.lb-local-service-card > * {
	margin-block: 0 !important;
}

.lb-local-service-card > * + * {
	margin-top: .8rem !important;
}

.lb-local-service-card .wp-block-buttons {
	margin-top: auto !important;
	padding-top: .8rem;
}

.lb-local-service-hours {
	padding: .8rem 1rem;
	border-left: .3rem solid var(--wp--preset--color--petrol);
	border-radius: .5rem;
	font-weight: 800;
}

/* Lettres d’information. */
.lb-newsletter-card {
	border-top-color: var(--wp--preset--color--petrol);
}

.lb-newsletters-follow__grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
}

.lb-newsletters-channel {
	box-sizing: border-box;
	height: 100%;
}

.lb-newsletters-channel > * {
	margin-block: 0 !important;
}

.lb-newsletters-channel > * + * {
	margin-top: .7rem !important;
}

/* Les repères des nouvelles sections restent accessibles après un lien-ancre. */
:is(#projets-en-cours, #suivre-les-projets, #conseils, #deliberations, #arretes-municipaux, #arretes-prefectoraux, #notre-dame, #parcours, #editions, #rester-informe) {
	scroll-margin-top: 6rem;
}

@media (max-width: 64rem) {
	.lb-projects-grid,
	.lb-newsletters-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.lb-project-process__grid,
	.lb-newsletters-follow__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 48.8125rem) {
	.lb-projects-hero,
	.lb-documents-hero,
	.lb-heritage-hero,
	.lb-newsletters-hero {
		padding: var(--wp--preset--spacing--50) !important;
	}

	.lb-projects-grid,
	.lb-routes-grid,
	.lb-newsletters-grid,
	.lb-document-categories-grid,
	.lb-local-services__grid,
	.lb-project-process__grid,
	.lb-newsletters-follow__grid,
	.lb-church-seasons,
	.lb-church-opening,
	.lb-heritage-intro,
	.lb-works-notice,
	.lb-project-follow {
		grid-template-columns: 1fr !important;
	}

	.lb-project-facts,
	.lb-route-facts {
		grid-template-columns: 1fr;
	}
}

/* ================================================================
   0.13.46 — archives annuelles, budget, patrimoine long et MailPoet
   ================================================================ */

/* Le filtrage annuel n’apparaît que lorsque le script a trouvé au moins une
   année. Sans JavaScript, toutes les publications restent consultables. */
.lb-document-year-filter {
	display: none !important;
	margin-bottom: 1.25rem !important;
	gap: .8rem 1.25rem !important;
}

.lb-document-year-filter.is-ready {
	display: flex !important;
}

.lb-document-year-filter__note {
	margin: 0 !important;
}

.lb-document-year-filter__links {
	display: flex !important;
	gap: .5rem !important;
	margin: 0 !important;
}

.lb-document-year-filter__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-width: 4.25rem;
	min-height: 2.75rem;
	padding: .45rem .85rem;
	color: var(--wp--preset--color--petrol);
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 30%);
	border-radius: 999px;
	font-weight: 850;
	line-height: 1;
	text-decoration: none;
	transition:
		color var(--lb-transition),
		background-color var(--lb-transition),
		border-color var(--lb-transition),
		transform var(--lb-transition);
}

.lb-document-year-filter__link:hover,
.lb-document-year-filter__link:focus-visible {
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--teal);
	border-color: var(--wp--preset--color--teal);
	transform: translateY(-1px);
}

.lb-document-year-filter__link[aria-current="true"] {
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border-color: var(--wp--preset--color--petrol);
	box-shadow: 0 .25rem 0 var(--wp--preset--color--sun);
}

.lb-document-library > .lb-document-category--pv {
	margin-bottom: 1.25rem !important;
}

.lb-document-library [hidden],
.lb-back-to-top[hidden] {
	display: none !important;
}

/* État vide automatique de la page Projets. */
.lb-projects-empty {
	display: flex;
	grid-column: 1 / -1;
	align-items: center;
	gap: 1.1rem;
	box-sizing: border-box;
	width: 100%;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--water);
	border: 1px solid rgb(15 76 92 / 22%);
	border-radius: 1rem;
}

.lb-projects-empty__icon {
	flex: 0 0 auto;
	width: 3.4rem;
	height: 3.4rem;
	background:
		var(--wp--preset--color--white)
		url("assets/icons/works.svg")
		center / 1.8rem no-repeat;
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 50%;
}

.lb-projects-empty h3,
.lb-projects-empty p {
	margin-block: 0 !important;
}

.lb-projects-empty p {
	margin-top: .35rem !important;
}

/* Budget et transparence. */
.lb-budget-hero {
	position: relative;
	overflow: hidden;
}

.lb-budget-cycle__grid,
.lb-budget-reading__grid,
.lb-newsletters-alternatives {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
}

.lb-budget-reading__grid,
.lb-newsletters-alternatives {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.lb-budget-cycle-card,
.lb-budget-reading-card,
.lb-budget-legal-note {
	box-sizing: border-box;
	height: 100%;
}

.lb-budget-cycle-card > *,
.lb-budget-reading-card > * {
	margin-block: 0 !important;
}

.lb-budget-cycle-card > * + *,
.lb-budget-reading-card > * + * {
	margin-top: .65rem !important;
}

.lb-budget-cycle-card {
	border: 1px solid rgb(15 76 92 / 16%);
	box-shadow: 0 .65rem 1.5rem rgb(15 76 92 / 7%);
}

.lb-budget-cycle-card__number {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 2.5rem;
	font-weight: 850;
	line-height: .85;
}

.lb-budget-document-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.lb-budget-legal-note {
	margin-top: var(--wp--preset--spacing--60) !important;
	background: var(--wp--preset--color--white);
}

/* Récits patrimoniaux longs, avec média réellement facultatif. */
.lb-heritage-lead {
	max-width: 58rem !important;
	margin-inline: auto !important;
}

.lb-heritage-stories {
	display: grid;
	gap: 1.25rem;
}

.lb-heritage-story {
	display: block !important;
	width: 100%;
	max-width: none !important;
	overflow: hidden;
	padding: 0 !important;
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 18%);
	border-radius: 1rem;
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
}

.lb-heritage-story > * {
	margin-block-start: 0 !important;
}

.lb-heritage-story__media {
	overflow: hidden;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	border-radius: 0;
}

.lb-heritage-story__media img {
	display: block;
	width: 100%;
	height: clamp(12rem, 28vw, 28rem) !important;
	aspect-ratio: auto !important;
	object-fit: cover;
}

.lb-heritage-story__content {
	box-sizing: border-box;
	width: min(100%, 76rem);
	min-width: 0;
	margin-inline: auto !important;
	padding: clamp(1.5rem, 4vw, 3rem) !important;
}

.lb-heritage-story__content > :where(p, ul, ol, blockquote):not(.lb-eyebrow, .lb-heritage-story__source) {
	max-width: 76ch;
}

.lb-heritage-story__source {
	padding-top: .75rem;
	border-top: 1px solid rgb(15 76 92 / 16%);
}

/* Archive et formulaire MailPoet intégrés dans la charte. */
.lb-mailpoet-archive {
	border: 1px solid rgb(15 76 92 / 18%);
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 7%);
}

.lb-mailpoet-archive :where(ul, ol) {
	margin: 0;
	padding: 0;
	list-style: none;
}

.lb-mailpoet-archive :where(li) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .4rem 1rem;
	align-items: center;
	padding: 1rem 0;
	border-bottom: 1px solid rgb(15 76 92 / 14%);
}

.lb-mailpoet-archive :where(li:last-child) {
	border-bottom: 0;
}

.lb-mailpoet-archive :where(a) {
	font-weight: 850;
	overflow-wrap: anywhere;
}

.lb-mailpoet-archive :where(table) {
	width: 100%;
	border-collapse: collapse;
}

.lb-mailpoet-archive :where(th, td) {
	padding: .85rem;
	border-bottom: 1px solid rgb(15 76 92 / 14%);
	text-align: left;
	vertical-align: top;
}

.lb-mailpoet-subscribe {
	display: grid !important;
	grid-template-columns: minmax(0, 1.1fr) minmax(18rem, .9fr) !important;
	gap: clamp(1.25rem, 3vw, 2.5rem) !important;
	align-items: center !important;
}

.lb-mailpoet-form-card {
	box-sizing: border-box;
	min-width: 0;
}

.lb-mailpoet-form-card :where(input:not([type="checkbox"], [type="radio"]), select, textarea) {
	box-sizing: border-box;
	width: 100%;
	min-height: 2.9rem;
	padding: .65rem .8rem;
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--white);
	border: 2px solid var(--lb-line-strong);
	border-radius: .45rem;
	font: inherit;
}

.lb-mailpoet-form-card :where(input[type="submit"], button) {
	min-height: 2.9rem;
	padding: .65rem 1rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--petrol);
	border-radius: 999px;
	font: inherit;
	font-weight: 850;
	cursor: pointer;
}

.lb-newsletters-alternatives {
	margin-top: 1rem !important;
}

/* ================================================================
   0.13.49 — pages légales, enfance, publications et repères locaux
   ================================================================ */

:is(.lb-legal-hero, .lb-school-hero, .lb-publications-hero) {
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

:is(.lb-legal-hero, .lb-school-hero, .lb-publications-hero)::after {
	position: absolute;
	right: -4.5rem;
	bottom: -7rem;
	z-index: -1;
	width: clamp(13rem, 24vw, 20rem);
	aspect-ratio: 1;
	background: var(--wp--preset--color--sun);
	border: 1.35rem solid rgb(255 255 255 / 45%);
	border-radius: 50%;
	content: "";
	opacity: .82;
}

:is(.lb-legal-hero, .lb-school-hero, .lb-publications-hero) > * {
	max-width: 46rem;
	margin-inline: 0 !important;
}

.lb-legal-section {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 85rem) !important;
	gap: clamp(1.5rem, 4vw, 3rem);
	margin-inline: auto !important;
}

.lb-legal-section > * {
	width: 100%;
	max-width: none !important;
	margin-block: 0 !important;
	margin-inline: 0 !important;
}

.lb-legal-reading {
	width: min(100%, 72ch);
	max-width: 72ch !important;
	margin-inline: auto !important;
}

.lb-legal-reading > * {
	margin-block: 0 !important;
}

.lb-legal-reading > * + * {
	margin-top: 1rem !important;
}

.lb-legal-reading > h2:not(:first-child) {
	margin-top: 2.25rem !important;
}

.lb-legal-status,
.lb-legal-contact-card,
.lb-legal-card {
	border: 1px solid rgb(15 76 92 / 20%);
	box-shadow: 0 .8rem 2rem rgb(15 76 92 / 8%);
}

.lb-legal-cards {
	display: grid !important;
	width: 100% !important;
	max-width: none !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
	margin-inline: 0 !important;
}

.lb-legal-cards > * {
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
}

.lb-storage-card code,
.lb-rss-subscription code {
	overflow-wrap: anywhere;
	word-break: break-word;
}

.lb-legal-dpo {
	padding: 1rem 1.2rem;
	border-left: .35rem solid var(--wp--preset--color--sun);
	border-radius: .65rem;
}

.lb-accessibility-status-link {
	margin-block: 0 !important;
}

/* Enfance et école. */
.lb-school-steps,
.lb-school-service-grid {
	display: grid !important;
	gap: 1rem !important;
	align-items: stretch !important;
}

.lb-school-steps {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)) !important;
}

.lb-school-service-grid {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)) !important;
}

.lb-school-step,
.lb-school-service-card {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	padding: clamp(1.25rem, 2.5vw, 1.8rem) !important;
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 20%);
	border-radius: 1rem;
	box-shadow: 0 .65rem 1.6rem rgb(15 76 92 / 7%);
}

.lb-school-step--featured {
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--petrol);
}

:is(.lb-school-step, .lb-school-service-card) > * {
	margin-block: 0 !important;
}

:is(.lb-school-step, .lb-school-service-card) > * + * {
	margin-top: .8rem !important;
}

:is(.lb-school-step, .lb-school-service-card) .wp-block-buttons,
.lb-school-service-card .lb-card-link {
	margin-top: auto !important;
	padding-top: .9rem;
}

.lb-school-step__number {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: clamp(2.5rem, 5vw, 4rem);
	font-weight: 850;
	line-height: .78;
}

.lb-school-help {
	gap: 1rem 2rem !important;
	margin-top: 1.25rem !important;
	border: 1px solid rgb(15 76 92 / 18%);
}

.lb-school-help > .wp-block-group {
	flex: 1 1 30rem;
}

/* Archives des bulletins municipaux. */
.lb-publications-categories {
	display: grid;
	gap: 1rem;
}

.lb-publication-category {
	height: auto;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--wp--preset--color--white);
	border: 1px solid rgb(15 76 92 / 18%);
	border-left-width: .45rem;
	border-radius: 1rem;
}

.lb-publication-category--lbi {
	border-left-color: var(--wp--preset--color--petrol);
}

.lb-publication-category--info {
	border-left-color: var(--wp--preset--color--sun);
}

.lb-publication-category--maire {
	border-left-color: var(--wp--preset--color--teal);
}

.lb-publication-category > * {
	margin-block: 0 !important;
}

.lb-publication-category > * + * {
	margin-top: 1rem !important;
}

.lb-publication-category__archive-note {
	padding: .75rem 1rem;
	color: var(--wp--preset--color--muted);
	background: var(--wp--preset--color--water);
	border-left: .3rem solid var(--wp--preset--color--sun);
	border-radius: .45rem;
}

.lb-publication-year > * + * {
	margin-top: .6rem !important;
}

.lb-publications-help {
	margin-top: 1.25rem !important;
	border: 1px solid rgb(15 76 92 / 22%);
}

/* Flux RSS : URL lisible et action immédiatement repérable. */
.lb-rss-subscription {
	border: 1px solid rgb(15 76 92 / 20%);
}

.lb-rss-subscription__heading {
	gap: .8rem !important;
}

.lb-rss-subscription__url {
	border: 1px solid var(--lb-line-strong);
}

.lb-rss-subscription__url code {
	display: inline-block;
	margin-top: .2rem;
	color: var(--wp--preset--color--petrol);
	font-weight: 750;
}

/* Repères patrimoniaux courts avant les récits illustrés. */
.lb-heritage-landmarks__grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
}

.lb-heritage-landmark {
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	padding: clamp(1.3rem, 3vw, 2rem) !important;
	border: 1px solid rgb(15 76 92 / 20%);
	border-radius: 1rem;
}

.lb-heritage-landmark > * {
	margin-block: 0 !important;
}

.lb-heritage-landmark > * + * {
	margin-top: .7rem !important;
}

.lb-heritage-landmark__number {
	color: var(--wp--preset--color--petrol);
	font-family: var(--wp--preset--font-family--editorial);
	font-size: 2.6rem;
	font-weight: 850;
	line-height: .8;
}

/* Retour en haut : compact, très contrasté et indépendant du pied de page
   personnalisé enregistré par WordPress. */
.lb-back-to-top {
	position: fixed;
	right: max(1rem, env(safe-area-inset-right));
	bottom: max(1rem, env(safe-area-inset-bottom));
	z-index: 80;
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	box-sizing: border-box;
	min-height: 2.9rem;
	padding: .55rem .9rem;
	color: var(--wp--preset--color--white);
	background: var(--wp--preset--color--petrol);
	border: 2px solid var(--wp--preset--color--white);
	border-radius: 999px;
	box-shadow: 0 .5rem 1.4rem rgb(24 35 34 / 24%);
	font: inherit;
	font-size: .88rem;
	font-weight: 850;
	cursor: pointer;
}

.lb-back-to-top > :first-child {
	color: var(--wp--preset--color--sun);
	font-size: 1.25rem;
	line-height: .8;
}

.lb-back-to-top:hover,
.lb-back-to-top:focus-visible {
	color: var(--wp--preset--color--ink);
	background: var(--wp--preset--color--sun);
	border-color: var(--wp--preset--color--petrol);
}

.lb-back-to-top:hover > :first-child,
.lb-back-to-top:focus-visible > :first-child {
	color: var(--wp--preset--color--petrol);
}

/* Pages-portails Au quotidien, Actualités et Découvrir. */
.lb-portal-hero {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

.lb-portal-hero::after {
	position: absolute;
	right: -4.5rem;
	bottom: -7rem;
	z-index: -1;
	width: clamp(14rem, 25vw, 21rem);
	aspect-ratio: 1;
	background: var(--wp--preset--color--sun);
	border: 1.5rem solid rgb(255 255 255 / 28%);
	border-radius: 50%;
	content: "";
}

.lb-portal-hero > * {
	max-width: 64rem;
	margin-inline: 0 !important;
}

.lb-portal-hero--news .is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--white);
	border-color: var(--wp--preset--color--white);
}

.lb-portal-section > :where(.lb-eyebrow, h2, p) {
	max-width: 68rem;
}

.lb-portal-grid {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 1rem !important;
	align-items: stretch !important;
	margin-top: 1.75rem !important;
}

.lb-portal-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Les services restent immédiatement lisibles : deux cartes au plus par ligne. */
#services-du-quotidien .lb-portal-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

/* Les descriptions de « Découvrir » disposent de toute la largeur utile. */
.lb-discover-grid {
	grid-template-columns: minmax(0, 1fr) !important;
}

.lb-portal-card {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	box-sizing: border-box;
	min-width: 0;
	height: 100%;
	padding: clamp(1.3rem, 2.5vw, 1.8rem) !important;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--lb-line);
	border-top: .35rem solid var(--wp--preset--color--sun);
	border-radius: 1rem;
	box-shadow: 0 .75rem 1.8rem rgb(15 76 92 / 8%);
	transition: border-color var(--lb-transition), box-shadow var(--lb-transition), transform var(--lb-transition);
}

.lb-portal-card--urgent {
	border-top-color: var(--wp--preset--color--petrol);
}

.lb-portal-card:hover,
.lb-portal-card:focus-within {
	border-color: var(--lb-line-strong);
	box-shadow: var(--lb-hover-shadow);
	transform: translateY(-.18rem);
}

.lb-portal-card > * {
	margin-block: 0 !important;
}

.lb-portal-card > * + * {
	margin-top: .75rem !important;
}

.lb-portal-card .lb-card-link {
	display: inline-flex;
	margin-top: auto !important;
	padding-top: 1rem;
	font-weight: 850;
}

.lb-portal-band {
	box-sizing: border-box;
}

.lb-portal-band > * {
	min-width: 0;
}

.lb-discover-hero {
	overflow: hidden;
	border-radius: 1.25rem;
	box-shadow: var(--lb-shadow);
}

/* Les quatre styles de bloc sont proposés dans Gutenberg sur le groupe
   extérieur des introductions photographiques. Les zones nommées permettent
   de déplacer l'image sans dupliquer le contenu ni modifier l'ordre du DOM. */
:is(.lb-media-intro, .lb-discover-hero) {
	display: grid !important;
	grid-template-columns: minmax(0, 1.18fr) minmax(22rem, .82fr) !important;
	grid-template-areas: "media copy";
	gap: 0 !important;
}

:is(.lb-media-intro__media, .lb-discover-hero__media) {
	grid-area: media;
}

:is(.lb-media-intro__copy, .lb-discover-hero__copy) {
	grid-area: copy;
	min-width: 0;
}

:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-right {
	grid-template-columns: minmax(22rem, .82fr) minmax(0, 1.18fr) !important;
	grid-template-areas: "copy media";
}

:is(.lb-media-intro, .lb-discover-hero):is(.is-style-les-barils-image-above, .is-style-les-barils-image-below) {
	grid-template-columns: minmax(0, 1fr) !important;
}

:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-above {
	grid-template-areas: "media" "copy";
}

:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-below {
	grid-template-areas: "copy" "media";
}

.lb-discover-hero:is(.is-style-les-barils-image-above, .is-style-les-barils-image-below) .lb-discover-hero__media img {
	height: clamp(17rem, 31vw, 28rem);
	min-height: 0;
}

.lb-discover-hero__media {
	height: 100%;
	margin: 0 !important;
}

.lb-discover-hero__media img {
	width: 100%;
	height: 100%;
	min-height: 31rem;
	object-fit: cover;
	border-radius: 0;
}

.lb-discover-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.lb-news-query--archive {
	margin-top: 1.75rem !important;
}

.lb-news-query--archive .wp-block-query-pagination {
	margin-top: 2rem;
	padding-top: 1rem;
	border-top: 1px solid var(--lb-line);
	font-weight: 800;
}

@media (max-width: 68rem) {
	.lb-portal-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}

	.lb-portal-grid--three {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 48.8125rem) {
	.lb-portal-grid,
	.lb-portal-grid--three,
	#services-du-quotidien .lb-portal-grid,
	.lb-discover-grid,
	:is(.lb-media-intro, .lb-discover-hero),
	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-right,
	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-above,
	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-below {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:is(.lb-media-intro, .lb-discover-hero),
	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-right,
	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-above {
		grid-template-areas: "media" "copy";
	}

	:is(.lb-media-intro, .lb-discover-hero).is-style-les-barils-image-below {
		grid-template-areas: "copy" "media";
	}

	.lb-discover-hero__media img {
		min-height: clamp(15rem, 64vw, 23rem);
	}

	.lb-portal-hero,
	.lb-portal-band,
	.lb-discover-hero__copy {
		padding: var(--wp--preset--spacing--50) !important;
	}
}

/*
 * Préférences d’accessibilité du système. Les contours décoratifs deviennent
 * plus nets en contraste renforcé ; en mode couleurs forcées, les contrôles et
 * le focus utilisent les couleurs choisies par l’usager.
 */
@media (prefers-contrast: more) {
	:root {
		--lb-line: var(--lb-line-strong);
		--lb-shadow: none;
		--lb-hover-shadow: none;
	}

	:where(.lb-quick-card, .wp-block-details, .lb-contact-action, .lb-practical-card) {
		border-width: 2px;
	}
}

@media (forced-colors: active) {
	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
		outline: 3px solid Highlight;
		outline-offset: 3px;
		box-shadow: none;
	}

	:where(
		.wp-block-button__link,
		.lb-low-data-toggle,
		.lb-footer-low-data,
		.lb-carousel-controls__button,
		.lb-lightbox__btn,
		.lb-back-to-top,
		input,
		select,
		textarea
	) {
		border: 2px solid ButtonText;
	}

	:where(.lb-content-icon.lb-icon-medallion, .lb-quick-icon) {
		border: 1px solid CanvasText;
	}

	.lb-new-window-note {
		color: LinkText;
	}
}

@media (max-width: 48.8125rem) {
	.lb-document-year-filter.is-ready {
		align-items: flex-start !important;
	}

	.lb-document-year-filter__links {
		width: 100%;
	}

	.lb-budget-cycle__grid,
	.lb-budget-reading__grid,
	.lb-budget-document-grid,
	.lb-newsletters-alternatives,
	.lb-mailpoet-subscribe,
	.lb-legal-cards,
	.lb-school-steps,
	.lb-school-service-grid,
	.lb-heritage-landmarks__grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	:is(.lb-legal-hero, .lb-school-hero, .lb-publications-hero) {
		padding: var(--wp--preset--spacing--50) !important;
	}

	.lb-contact-next-opening__slot {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.lb-projects-empty {
		align-items: flex-start;
	}

	.lb-back-to-top {
		right: max(.75rem, env(safe-area-inset-right));
		bottom: max(.75rem, env(safe-area-inset-bottom));
	}
}

@media print {
	.lb-document-year-filter,
	.lb-back-to-top {
		display: none !important;
	}

	.lb-document-library [hidden] {
		display: block !important;
	}
}
