/*
Theme Name: La Palmeraie
Theme URI: https://lapalmeraie.paris/
Author: Alliance Événement
Author URI: https://www.allianceevenement.com/
Description: Thème blocs du site de La Palmeraie, lieu événementiel de Paris 15e. Écrit pour WordPress 7.1, sans constructeur de pages ni bibliothèque JavaScript. Palette, polices et tailles dans theme.json ; composants des pages dans cette feuille.
Version: 1.0.16
Requires at least: 7.1
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: la-palmeraie
*/

/*
 * Organisation de la feuille
 * --------------------------
 * Les couleurs, polices, tailles de texte et espacements viennent de theme.json :
 * on les appelle ici par leurs variables (--wp--preset--color--prune, etc.).
 * Toutes les classes du thème commencent par « lp- » (La Palmeraie).
 *
 *  1. Bases            7. Pilule de chiffres     13. Formules et tarifs
 *  2. En-tête et menu  8. Cartes en bento        14. Galerie, logos, avis
 *  3. Sections         9. Cartes à picto         15. Accès, espaces, traiteur
 *  4. Ouvertures      10. Équipements, tableau   16. Appel final, carte Alliance Événement
 *  5. Mise en page    11. Photo et texte, étapes 17. Lire la suite
 *     avec encadré    12. Questions fréquentes   18. Formulaire, pages annexes
 *  6. Pictogrammes                               19. Pied de page, barre mobile
 *
 * Points de rupture (les mêmes que les maquettes) : 1060 px (menu à bouton, encadré
 * de devis masqué), 900 px (grilles sur une ou deux colonnes), 640 px (téléphone).
 */

/* =========================================================================
   1. Bases
   ========================================================================= */

/*
 * Hauteur des barres collées en haut de l'écran, utilisée par l'encadré de devis et par les ancres :
 * barre d'admin de WordPress (si connecté) + en-tête (76 px + filet) + sous-navigation (si la page en a une).
 */
:root {
	--lp-entete: calc(var(--wp--custom--hauteur-entete) + 1px);
	--lp-sousnav-hauteur: 61px;
	--lp-sousnav: 0px;
	--lp-haut-fixe: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lp-entete) + var(--lp-sousnav));
}

:root:has(.lp-sousnav) {
	--lp-sousnav: var(--lp-sousnav-hauteur);
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--lp-haut-fixe) + 16px);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

img {
	max-width: 100%;
	height: auto;
}

/*
 * Les grands blocs se suivent sans marge : chaque section gère son propre espace.
 * Sans cette règle, WordPress glisse un écart entre deux sections et une fine bande
 * de la couleur de fond apparaît entre deux fonds différents.
 */
.wp-site-blocks > *,
.wp-block-post-content > :is(.alignfull, .lp-section, .lp-grille, .lp-pilule-zone, .lp-logos, .lp-preuves),
.lp-colonne > * {
	margin-block-start: 0;
	margin-block-end: 0;
}

/* Titres : la partie en italique, en mauve (en lilas sur fond sombre). */
h1 em,
h2 em,
h3 em {
	font-style: italic;
	color: var(--wp--preset--color--mauve);
}

h1,
h2,
h3 {
	text-wrap: balance;
}

/* Pas de mot seul en fin de paragraphe. */
p,
li,
figcaption,
td,
summary {
	text-wrap: pretty;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--mauve);
	outline-offset: 3px;
}

/* Lien texte souligné d'un filet mauve (« Découvrir le lieu », « Voir toute la galerie »). */
.lp-lien a,
a.lp-lien {
	color: var(--wp--preset--color--prune);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--mauve);
	padding-bottom: 2px;
}

.lp-lien a:hover,
a.lp-lien:hover {
	color: var(--wp--preset--color--framboise);
}

/* Petit titre en capitales au-dessus d'un titre ou d'un groupe de cartes. */
.lp-surtitre {
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gris);
}

/* Paragraphe d'introduction sous un titre de section. */
.lp-intro {
	color: var(--wp--preset--color--gris);
	max-width: 64ch;
	margin: 12px 0 26px;
}

.lp-centre {
	text-align: center;
}

.lp-centre .lp-intro,
.lp-intro.lp-centre {
	margin-inline: auto;
}

/* Note de bas de bloc (« Capacités en cabaret : … »). */
.lp-note {
	font-size: 13.5px;
	color: var(--wp--preset--color--gris);
	margin-top: 12px;
}

/* Mention « à compléter » : visible dans l'éditeur, à ne jamais laisser au lancement. */
.lp-a-completer {
	background: #fff3c4;
	color: #5a4400;
	border-radius: 4px;
	padding: 1px 6px;
	font-size: 0.85em;
}

/* Liste à puces mauves (le décor, les services). */
.lp-puces {
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
	display: grid;
	gap: 10px;
}

.lp-puces li {
	display: flex;
	gap: 10px;
	align-items: baseline;
	color: var(--wp--preset--color--gris);
}

.lp-puces li::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--wp--preset--color--mauve);
	flex: none;
	transform: translateY(-2px);
}

/* Les grilles du thème gèrent leurs écarts elles-mêmes : on retire les marges de WordPress. */
.lp-pilule > *,
.lp-bento > *,
.lp-cartes-pictos > *,
.lp-equipements > *,
.lp-photo-texte > *,
.lp-formules > *,
.lp-avis > *,
.lp-acces > *,
.lp-espaces > *,
.lp-traiteur > *,
.lp-services > *,
.lp-deroule > *,
.lp-devis-grille > *,
.lp-grille > *,
.lp-cartes-liens > *,
.lp-infos > * {
	margin-block: 0;
}

/* =========================================================================
   2. En-tête et menu
   ========================================================================= */

.lp-entete-zone {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 40;
	background: var(--wp--preset--color--papier);
	border-bottom: 1px solid var(--wp--preset--color--filet);
}

.lp-entete {
	display: flex;
	align-items: center;
	gap: 30px;
	min-height: var(--wp--custom--hauteur-entete);
}

/*
 * Logos, menu et bouton sur la même ligne : WordPress ajoute une marge au-dessus du menu
 * (écart entre blocs), qui le faisait descendre de 8 px sous le centre des logos.
 */
.lp-entete > *,
.lp-marques a {
	margin-block: 0;
}

.lp-marques a {
	display: block;
}

/*
 * Logo La Palmeraie (lien vers l'accueil), trait fin, logo Alliance Événement.
 * Les largeurs sont fixées pour que rien ne bouge pendant le chargement des logos.
 */
.lp-marques {
	display: flex;
	align-items: center;
	gap: 16px;
	flex: none;
}

.lp-marques > .wp-block-image {
	margin: 0;
}

.lp-marques img {
	display: block;
}

.lp-marques__palmeraie img {
	width: 110px;
	height: 52px;
}

.lp-marques__alliance {
	padding-left: 16px;
	border-left: 1px solid var(--wp--preset--color--filet);
}

.lp-marques__alliance img {
	width: 152px;
	height: 19px;
}

/* Menu principal (bloc Navigation). */
.lp-menu {
	margin-left: auto;
	font-size: 15px;
	font-weight: 500;
	color: var(--wp--preset--color--encre);
}

.lp-menu .wp-block-navigation__container {
	gap: 28px;
	align-items: center;
}

.lp-menu .wp-block-navigation-item__content {
	color: inherit;
	text-decoration: none;
}

.lp-menu .wp-block-navigation-item__content:hover,
.lp-menu .current-menu-item > .wp-block-navigation-item__content,
.lp-menu .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--framboise);
}

/* Menu déroulant « Événements » : une carte blanche sous le menu. */
.lp-menu .wp-block-navigation__submenu-container {
	min-width: 250px !important;
	padding: 18px 22px;
	border: 1px solid var(--wp--preset--color--filet) !important;
	border-radius: 16px;
	box-shadow: var(--wp--preset--shadow--menu);
	background: var(--wp--preset--color--papier) !important;
	color: var(--wp--preset--color--encre) !important;
}

.lp-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 4px 0;
}

/* Lien « Demander un devis » en pilule framboise. */
.lp-menu .lp-menu__devis > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--framboise);
	color: var(--wp--preset--color--papier);
	border-radius: var(--wp--custom--rayon--pilule);
	padding: 13px 20px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
}

.lp-menu .lp-menu__devis > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--framboise-fonce);
	color: var(--wp--preset--color--papier);
}

/* Bouton du menu mobile : un carré à coins arrondis, comme sur la maquette. */
.lp-menu .wp-block-navigation__responsive-container-open {
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: 12px;
	color: var(--wp--preset--color--prune);
}

/*
 * Le bloc Navigation passe au bouton sous 600 px. La maquette le veut jusqu'à 1060 px :
 * entre 600 et 1060 px, on garde le bouton et on cache la liste tant que le menu est fermé.
 */
@media (min-width: 600px) and (max-width: 1060px) {
	.lp-menu .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.lp-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/*
 * Menu ouvert sur mobile : fond blanc, liens alignés à gauche sur toute la largeur,
 * séparés d'un filet. Les variables ci-dessous remplacent l'alignement à droite du menu
 * d'ordinateur, que WordPress reprendrait sinon dans le menu ouvert.
 */
.lp-menu .wp-block-navigation__responsive-container.is-menu-open {
	--navigation-layout-justification-setting: stretch;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: stretch;
	background: var(--wp--preset--color--papier) !important;
	color: var(--wp--preset--color--encre) !important;
	padding: 20px clamp(16px, 4vw, 24px);
	text-align: left;
}

.lp-menu .is-menu-open :is(.wp-block-navigation__responsive-container-content, .wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) {
	align-items: stretch !important;
}

.lp-menu .is-menu-open .wp-block-navigation__container {
	gap: 0;
	align-items: stretch;
	width: 100%;
}

.lp-menu .is-menu-open .wp-block-navigation-item {
	width: 100%;
	align-items: stretch;
}

.lp-menu .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content {
	display: block;
	padding: 13px 0;
	border-bottom: 1px solid var(--wp--preset--color--filet);
	font-size: 16.5px;
}

.lp-menu .is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important;
	box-shadow: none;
	padding: 8px 0 12px !important;
	background: none !important;
}

.lp-menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 14.5px;
	color: var(--wp--preset--color--gris);
	padding: 5px 0;
}

.lp-menu .is-menu-open .lp-menu__devis > .wp-block-navigation-item__content {
	margin-top: 16px;
	padding: 15px;
	text-align: center;
	border-bottom: 0;
}

@media (max-width: 640px) {
	.lp-marques {
		gap: 11px;
	}

	.lp-marques__palmeraie img {
		width: 89px;
		height: 42px;
	}

	.lp-marques__alliance {
		padding-left: 11px;
	}

	.lp-marques__alliance img {
		width: 112px;
		height: 14px;
	}
}

/* Sous-navigation « Dans cette page », collée sous l'en-tête, fond opaque, hauteur fixe. */
.lp-sousnav {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--lp-entete));
	z-index: 30;
	box-sizing: border-box;
	height: var(--lp-sousnav-hauteur);
	display: grid;
	align-items: center;
	background: var(--wp--preset--color--fond);
	border-bottom: 1px solid var(--wp--preset--color--filet);
	padding-block: 0;
}

/* Les liens restent alignés sur la colonne du contenu, à gauche.
 * 1.0.14 : la grille a une seule colonne qui ne dépasse jamais l'écran (minmax(0, 1fr)) et la navigation
 * peut rétrécir (min-width: 0). Sans ça, sur téléphone, la ligne de liens imposait sa largeur (674 px
 * mesurés à 390 px d'écran sur Le lieu) et Safari dézoomait toute la page. Les liens défilent dans la barre. */
.lp-sousnav {
	grid-template-columns: minmax(0, 1fr);
}

.lp-sousnav > .wp-block-navigation {
	width: 100%;
	min-width: 0;
}

.lp-sousnav .wp-block-navigation__container {
	gap: 6px;
	flex-wrap: nowrap;
	overflow-x: auto;
	min-width: 0;
	max-width: 100%;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.lp-sousnav .wp-block-navigation__container::-webkit-scrollbar {
	display: none;
}

.lp-sousnav .wp-block-navigation-item__content {
	white-space: nowrap;
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--wp--preset--color--gris);
	padding: 8px 14px;
	border-radius: var(--wp--custom--rayon--pilule);
}

.lp-sousnav .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--prune);
}

/*
 * Garde-fou contre le débordement horizontal (1.0.14) : un élément trop large ne peut plus élargir la page
 * ni faire dézoomer Safari. « clip » et non « hidden », pour ne pas casser l'en-tête et la sous-navigation
 * collants. Les débordements restent détectables par le contrôle automatique, qui mesure la position de
 * chaque élément et pas seulement la largeur de la page.
 */
.wp-site-blocks {
	overflow-x: clip;
}

/* =========================================================================
   3. Sections
   ========================================================================= */

.lp-section {
	padding-block: 96px;
}

.lp-section--papier {
	background: var(--wp--preset--color--papier);
}

.lp-section--sombre {
	background: var(--wp--preset--color--aubergine);
	color: var(--wp--preset--color--papier);
}

.lp-section--sombre :is(h2, h3) {
	color: var(--wp--preset--color--papier);
}

.lp-section--sombre :is(h2, h3) em {
	color: var(--wp--preset--color--lilas);
}

.lp-section--sombre .lp-intro,
.lp-chapo-sombre {
	color: var(--wp--preset--color--lilas);
}

.lp-section h2.has-text-align-center + .lp-intro,
.lp-section .lp-intro.has-text-align-center {
	margin-inline: auto;
}

/* Sur ordinateur, chaque section tient dans un écran, plafonné à 860 px de haut. */
@media (min-width: 1061px) {
	.lp-section {
		min-height: min(calc(100svh - var(--wp--custom--hauteur-entete)), 860px);
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding-block: 44px;
	}

	.lp-section > * {
		width: 100%;
	}
}

@media (max-width: 1060px) {
	.lp-section {
		padding-block: 48px;
	}
}

/* =========================================================================
   4. Ouvertures de page
   ========================================================================= */

/* 4a. Bandeau des pages intérieures : photo, voile, fil d'Ariane, titre sur deux lignes. */
.wp-block-cover.lp-bandeau {
	min-height: min(calc(100svh - var(--wp--custom--hauteur-entete)), 620px);
	padding-block: 56px;
	align-items: center;
	color: var(--wp--preset--color--papier);
}

.lp-bandeau .wp-block-cover__image-background {
	filter: saturate(0.8);
}

.lp-bandeau__contenu > *,
.lp-ouverture-sombre__contenu > * {
	margin-block: 0;
}

.lp-bandeau h1 {
	color: var(--wp--preset--color--papier);
	text-shadow: 0 2px 24px rgba(0, 0, 0, 0.5);
	margin: 0;
}

/* La partie en italique du titre passe sur la deuxième ligne. */
.lp-bandeau h1 em {
	display: block;
	color: var(--wp--preset--color--lilas);
}

.lp-bandeau p {
	max-width: 60ch;
	margin-top: 14px;
	font-size: var(--wp--preset--font-size--moyen);
	text-shadow: 0 1px 12px rgba(0, 0, 0, 0.7);
}

/* Fil d'Ariane (bloc natif) : petit, lilas, séparé par des chevrons. */
.lp-bandeau .wp-block-breadcrumbs,
.lp-ouverture-sombre .wp-block-breadcrumbs,
.lp-page-simple .wp-block-breadcrumbs {
	font-size: 13.5px;
	margin-bottom: 12px;
}

.lp-bandeau .wp-block-breadcrumbs,
.lp-ouverture-sombre .wp-block-breadcrumbs {
	color: var(--wp--preset--color--lilas);
}

.lp-page-simple .wp-block-breadcrumbs {
	color: var(--wp--preset--color--gris);
}

.wp-block-breadcrumbs a {
	color: inherit;
	text-decoration: none;
}

.wp-block-breadcrumbs a:hover {
	text-decoration: underline;
}

@media (max-width: 640px) {
	.wp-block-cover.lp-bandeau {
		min-height: 380px;
		padding-block: 32px;
	}
}

/* 4b. Ouverture de l'accueil : grande photo, texte centré. */
.wp-block-cover.lp-ouverture {
	min-height: min(calc(100svh - var(--wp--custom--hauteur-entete)), 720px);
	padding-block: 70px;
	color: var(--wp--preset--color--papier);
	text-align: center;
}

.lp-ouverture .wp-block-cover__image-background {
	object-position: center 70%;
	filter: saturate(0.8);
}

.lp-ouverture .lp-surtitre {
	color: var(--wp--preset--color--lilas);
	letter-spacing: 0.2em;
}

.lp-ouverture h1 {
	color: var(--wp--preset--color--papier);
	font-size: var(--wp--preset--font-size--titre-accueil);
	line-height: 1.02;
	margin-top: 14px;
	text-shadow: 0 2px 30px rgba(0, 0, 0, 0.55);
}

.lp-ouverture h1 em {
	color: var(--wp--preset--color--lilas);
}

.lp-ouverture .lp-accroche {
	font-family: var(--wp--preset--font-family--titre);
	font-style: italic;
	font-size: clamp(20px, 2.6vw, 32px);
	margin-top: 10px;
	text-shadow: 0 2px 20px rgba(0, 0, 0, 0.6);
}

.lp-ouverture .lp-sous-titre {
	font-size: 18px;
	font-weight: 500;
	max-width: 60ch;
	margin: 18px auto 0;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.8);
}

/* Emplacement du formulaire rapide, branché à l'étape « formulaires ». */
.lp-recherche {
	max-width: 1000px;
	margin: 44px auto 0;
}

@media (max-width: 640px) {
	.wp-block-cover.lp-ouverture {
		min-height: 0;
		padding-block: 26px 22px;
	}

	.lp-ouverture .lp-surtitre {
		font-size: 11px;
	}

	.lp-ouverture h1 {
		margin-top: 8px;
	}

	.lp-ouverture .lp-sous-titre {
		display: none;
	}
}

/* 4c. Ouverture sombre sans photo (page de devis, page de confirmation). */
.lp-ouverture-sombre {
	background: var(--wp--preset--color--aubergine);
	color: var(--wp--preset--color--papier);
	padding-block: 56px;
}

.lp-ouverture-sombre > .lp-devis-grille {
	margin-top: 34px;
}

.lp-ouverture-sombre h1 {
	color: var(--wp--preset--color--papier);
	font-size: clamp(36px, 4vw, 54px);
	line-height: 1.08;
}

.lp-ouverture-sombre h1 em {
	color: var(--wp--preset--color--lilas);
}

.lp-ouverture-sombre .lp-chapo {
	color: var(--wp--preset--color--lilas);
	max-width: 60ch;
	margin-top: 12px;
}

/* Page de confirmation : coche framboise et texte centré. */
.lp-confirmation {
	text-align: center;
}

.lp-confirmation h1 em {
	display: block;
}

.lp-confirmation .lp-chapo {
	margin-inline: auto;
}

.lp-confirmation .lp-etapes {
	text-align: left;
	margin-top: 26px;
}

.lp-coche.wp-block-icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 18px;
	border-radius: 50%;
	background: var(--wp--preset--color--framboise);
	color: var(--wp--preset--color--papier);
	display: flex;
	align-items: center;
	justify-content: center;
}

.lp-coche.wp-block-icon svg {
	width: 32px;
	height: 32px;
	stroke-width: 2.4;
}

/* =========================================================================
   5. Mise en page avec encadré de devis collant à droite
   ========================================================================= */

/*
 * La colonne de gauche reçoit les sections ; l'encadré de droite suit le défilement.
 * Une section blanche ou sombre déborde sur toute la largeur de l'écran grâce à une ombre
 * portée très large, coupée en haut et en bas. Ainsi la même section sert dans la colonne
 * et en pleine page.
 */
.lp-section--papier:not(.alignfull) {
	box-shadow: 0 0 0 100vmax var(--wp--preset--color--papier);
	clip-path: inset(0 -100vmax);
}

.lp-section--sombre:not(.alignfull) {
	box-shadow: 0 0 0 100vmax var(--wp--preset--color--aubergine);
	clip-path: inset(0 -100vmax);
}

.lp-encadre-zone {
	display: none;
}

@media (min-width: 1061px) {
	.lp-grille {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 300px;
		gap: 44px;
		align-items: start;
	}

	/* Collé sous toutes les barres du haut (admin, en-tête, sous-navigation) avec 24 px d'air. */
	.lp-encadre-zone {
		display: block;
		position: sticky;
		top: calc(var(--lp-haut-fixe) + 24px);
		margin-block: 44px;
	}
}

.lp-encadre {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 26px;
	box-shadow: var(--wp--preset--shadow--douce);
	overflow: hidden;
}

.lp-encadre > * {
	margin-block: 0;
}

/* Bande « À partir de 8 000 € » en tête de l'encadré. */
.lp-encadre__prix {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: -26px -26px 20px !important;
	padding: 16px 26px;
	background: var(--wp--preset--color--lilas-pale);
	border-bottom: 1px solid var(--wp--preset--color--filet);
}

.lp-encadre__prix > * {
	margin: 0;
}

.lp-encadre__prix p:first-child {
	font-size: 14px;
	color: var(--wp--preset--color--gris);
}

.lp-encadre__prix .lp-prix {
	font-size: 32px;
}

.lp-encadre__titre {
	font-family: var(--wp--preset--font-family--titre);
	font-size: 25px;
	line-height: 1.15;
	color: var(--wp--preset--color--prune);
}

.lp-encadre__texte {
	color: var(--wp--preset--color--gris);
	font-size: 14.5px;
	margin: 10px 0 18px !important;
}

.lp-encadre .wp-block-buttons,
.lp-encadre .wp-block-button,
.lp-encadre .wp-block-button__link {
	width: 100%;
}

.lp-encadre__mention {
	margin-top: 12px !important;
	color: var(--wp--preset--color--gris);
	font-size: 13px;
	text-align: center;
}

/* Atouts sous l'encadré : picto + chiffre + légende. */
.lp-atouts {
	margin-top: 14px;
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 20px 22px;
	display: grid;
	gap: 14px;
}

.lp-atouts > * {
	margin-block: 0;
}

.lp-atout {
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 10px;
	font-size: 14px;
	color: var(--wp--preset--color--gris);
}

.lp-atout > * {
	margin-block: 0;
}

.lp-atout strong {
	display: block;
	color: var(--wp--preset--color--encre);
	font-weight: 600;
}

.lp-atout .lp-picto {
	color: var(--wp--preset--color--mauve);
}

/* =========================================================================
   6. Pictogrammes (bloc Icône, collection « La Palmeraie »)
   ========================================================================= */

/* Les pictogrammes sont des tracés : on leur redonne le trait fin des maquettes. */
.lp-picto.wp-block-icon {
	width: 26px;
	height: 26px;
	flex: none;
	margin: 0;
}

.lp-picto svg,
.lp-coche svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* =========================================================================
   7. Pilule de chiffres (fond aubergine, chiffres en Garamond, pictos cyan)
   ========================================================================= */

.lp-pilule-zone {
	padding-top: 40px;
}

.lp-pilule {
	max-width: 1100px;
	margin-inline: auto;
	background: var(--wp--preset--color--aubergine);
	color: var(--wp--preset--color--papier);
	border-radius: var(--wp--custom--rayon--pilule);
	padding: 30px 48px;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(0, 1fr);
	gap: 10px;
	text-align: center;
}

.lp-pilule__item > * {
	margin-block: 0;
}

.lp-pilule .lp-picto {
	width: 30px;
	height: 30px;
	margin: 0 auto 12px;
	color: var(--wp--preset--color--cyan);
}

.lp-pilule .lp-picto svg {
	stroke-width: 1.3;
}

.lp-chiffre {
	font-family: var(--wp--preset--font-family--titre);
	font-size: 32px;
	line-height: 1.05;
}

.lp-pilule .lp-legende {
	font-size: 13.5px;
	color: var(--wp--preset--color--lilas);
}

@media (max-width: 900px) {
	.lp-pilule {
		grid-auto-flow: row;
		grid-template-columns: 1fr 1fr;
		border-radius: 26px;
		padding: 26px 18px;
		row-gap: 22px;
	}
}

/* =========================================================================
   8. Cartes d'événements en bento (photo plein cadre, texte posé dessus)
   ========================================================================= */

.lp-bento {
	display: grid;
	gap: 18px;
	grid-template-columns: 1.25fr 1fr 1fr;
	grid-template-rows: 215px 215px;
}

.lp-bento .lp-carte--grande {
	grid-row: 1 / 3;
}

.lp-bento .lp-carte--large {
	grid-column: 2 / 4;
}

.lp-bento--duo {
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 330px;
}

.wp-block-cover.lp-carte {
	min-height: 0;
	height: 100%;
	padding: 20px 22px;
	border-radius: var(--wp--custom--rayon--carte);
	overflow: hidden;
	align-items: flex-end;
	justify-content: flex-start;
	color: var(--wp--preset--color--papier);
}

.lp-carte .wp-block-cover__image-background {
	transition: transform 0.6s;
}

.lp-carte:hover .wp-block-cover__image-background {
	transform: scale(1.04);
}

/*
 * Toute la carte est cliquable : le lien du titre s'étend sur la carte entière, texte d'appel compris.
 * Un seul lien par carte, dont le texte reste le titre (« Salle de conférence »), utile au référencement
 * et aux lecteurs d'écran. Pour que le lien couvre la carte et pas seulement le titre, aucun élément entre
 * le lien et la carte n'est positionné : la carte isole ses couches, la photo et le voile passent dessous
 * (z-index négatifs), le texte reste au-dessus et le pseudo-élément du lien recouvre le tout (1.0.12).
 */
.wp-block-cover.lp-carte {
	isolation: isolate;
}

.lp-carte .wp-block-cover__image-background {
	z-index: -2;
}

.lp-carte .wp-block-cover__background {
	z-index: -1;
}

.lp-carte .wp-block-cover__inner-container {
	position: static;
}

.lp-carte .wp-block-cover__inner-container > * {
	position: static;
	margin-block: 0;
}

.lp-carte h3 {
	font-size: 28px;
	line-height: 1.05;
	margin-bottom: 6px !important;
	color: var(--wp--preset--color--papier);
}

.lp-carte h3 a {
	color: inherit;
	text-decoration: none;
}

.lp-carte h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	cursor: pointer;
}

/* Dans l'éditeur, le lien ne recouvre pas la carte : sinon on ne pourrait plus cliquer dans les textes. */
.block-editor-block-list__layout .lp-carte h3 a::after {
	display: none;
}

/* Cadre de focus autour de toute la carte, au clavier seulement (pas au clic de souris). */
.lp-carte h3 a:focus,
.lp-carte h3 a:focus-visible {
	outline: none;
}

.wp-block-cover.lp-carte:has(h3 a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--mauve);
	outline-offset: 3px;
}

.lp-carte p {
	font-size: 14px;
	color: #efe7f4;
	max-width: 42ch;
}

.lp-carte .lp-carte__suite {
	display: inline-block;
	margin-top: 10px !important;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--papier);
	border-bottom: 1px solid var(--wp--preset--color--lilas);
	transition: border-color 0.2s;
}

/* Le texte d'appel réagit quand on survole la carte ou qu'on y arrive au clavier : filet blanc et flèche. */
.lp-carte .lp-carte__suite::after {
	content: " →";
	display: inline-block;
	transition: transform 0.2s;
}

.lp-carte:hover .lp-carte__suite,
.lp-carte:has(h3 a:focus-visible) .lp-carte__suite {
	border-bottom-color: var(--wp--preset--color--papier);
}

.lp-carte:hover .lp-carte__suite::after,
.lp-carte:has(h3 a:focus-visible) .lp-carte__suite::after {
	transform: translateX(4px);
}

@media (prefers-reduced-motion: reduce) {
	.lp-carte .wp-block-cover__image-background,
	.lp-carte .lp-carte__suite::after {
		transition: none;
	}
}

@media (max-width: 900px) {
	.lp-bento,
	.lp-bento--duo {
		grid-template-columns: 1fr;
		grid-template-rows: none;
	}

	.lp-bento .lp-carte--grande,
	.lp-bento .lp-carte--large {
		grid-row: auto;
		grid-column: auto;
	}

	.wp-block-cover.lp-carte {
		min-height: 240px;
	}
}

/* =========================================================================
   9. Cartes courtes à picto
   ========================================================================= */

.lp-cartes-pictos {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.lp-carte-picto {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 22px;
}

.lp-carte-picto > * {
	margin-block: 0;
}

.lp-carte-picto .lp-picto {
	width: 30px;
	height: 30px;
	margin-bottom: 12px;
	color: var(--wp--preset--color--mauve);
}

.lp-carte-picto h3 {
	font-size: 22px;
	line-height: 1.15;
	margin-bottom: 6px;
}

.lp-carte-picto p {
	color: var(--wp--preset--color--gris);
	font-size: 14.5px;
	line-height: 1.5;
}

@media (max-width: 900px) {
	.lp-cartes-pictos {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   10. Équipements (« Sur place » / « Sur demande ») et tableau des capacités
   ========================================================================= */

.lp-legende-etiquettes {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	font-size: 13.5px;
	color: var(--wp--preset--color--gris);
	margin: -8px 0 18px;
}

.lp-legende-etiquettes > * {
	margin: 0;
}

/* Étiquette : la mise en gras du début de la légende devient la pastille. */
.lp-legende-etiquettes strong,
.lp-etiquette {
	display: inline-block;
	font-size: 11.5px;
	font-weight: 600;
	padding: 2px 9px;
	border-radius: 99px;
	white-space: nowrap;
}

.lp-legende-etiquettes > :first-child strong,
.lp-etiquette--sur-place {
	background: var(--wp--preset--color--vert-pale);
	color: var(--wp--preset--color--vert);
}

.lp-legende-etiquettes > :last-child strong,
.lp-etiquette--sur-demande {
	background: var(--wp--preset--color--lilas-pale);
	color: var(--wp--preset--color--prune);
}

.lp-equipements {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.lp-equipement {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--petit);
	padding: 16px;
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 12px;
	align-items: start;
}

.lp-equipement > *,
.lp-equipement__texte > * {
	margin-block: 0;
}

.lp-equipement .lp-picto {
	color: var(--wp--preset--color--prune);
	margin-top: 2px;
}

.lp-equipement__nom {
	font-weight: 600;
	font-size: 15px;
	line-height: 1.3;
}

.lp-equipement__detail {
	color: var(--wp--preset--color--gris);
	font-size: 13px;
	margin: 2px 0 6px !important;
}

@media (min-width: 1061px) {
	.lp-equipements {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 8px;
	}

	.lp-equipement {
		padding: 10px 12px;
		gap: 8px;
		grid-template-columns: 24px 1fr;
	}

	.lp-equipement .lp-picto {
		width: 22px;
		height: 22px;
	}

	.lp-equipement__nom {
		font-size: 14px;
	}

	.lp-equipement__detail {
		font-size: 12.5px;
		margin: 0 0 4px !important;
	}
}

@media (max-width: 1060px) {
	.lp-equipements {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.lp-equipements {
		grid-template-columns: 1fr;
	}
}

/* Tableau des capacités (bloc Tableau). */
.wp-block-table.lp-tableau {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	overflow-x: auto;
	margin: 0;
}

.lp-tableau table {
	border-collapse: collapse;
	width: 100%;
	min-width: 640px;
	font-size: 15px;
}

.lp-tableau :is(th, td) {
	padding: 14px 16px;
	text-align: center;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--filet);
}

.lp-tableau :is(th, td):first-child {
	text-align: left;
}

.lp-tableau thead {
	border: 0;
}

.lp-tableau thead th {
	background: var(--wp--preset--color--lilas-pale);
	color: var(--wp--preset--color--prune);
	font-weight: 600;
	font-size: 13px;
	vertical-align: bottom;
}

.lp-tableau tbody tr:last-child td {
	border-bottom: 0;
}

.lp-tableau tbody tr:first-child td {
	background: #fcfbfd;
}

/* Les chiffres et noms d'espaces en gras passent en Garamond. */
.lp-tableau td strong {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	font-size: 21px;
	color: var(--wp--preset--color--prune);
}

/* Le texte en italique d'une cellule sert de précision sous le chiffre (« en conférence »). */
.lp-tableau td em {
	display: block;
	font-style: normal;
	color: var(--wp--preset--color--gris);
	font-size: 12.5px;
}

@media (min-width: 1061px) {
	.lp-tableau :is(th, td) {
		padding: 9px 14px;
	}

	.lp-tableau td strong {
		font-size: 19px;
	}
}

/* =========================================================================
   11. Photo et texte, étapes de la journée, étapes sur fond aubergine
   ========================================================================= */

.lp-photo-texte {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 40px;
	align-items: center;
}

.lp-photo-texte--inverse > .wp-block-image {
	order: 2;
}

.lp-photo-texte .wp-block-image {
	margin: 0;
}

.lp-photo-texte .wp-block-image img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--wp--custom--rayon--carte);
}

.lp-photo-texte__texte > * {
	margin-block: 0;
}

.lp-photo-texte__texte > * + * {
	margin-top: 16px;
}

.lp-photo-texte__texte p {
	color: var(--wp--preset--color--gris);
}

@media (max-width: 900px) {
	.lp-photo-texte {
		grid-template-columns: 1fr;
	}

	.lp-photo-texte--inverse > .wp-block-image {
		order: 0;
	}
}

/* Étapes d'une journée : liste numérotée, chiffres en Garamond dans un rond lilas. */
.lp-etapes-jour {
	list-style: none;
	padding: 0 !important;
	margin: 22px 0 0;
	display: grid;
	gap: 16px;
	counter-reset: lp-etape;
}

.lp-etapes-jour li {
	position: relative;
	padding-left: 56px;
	min-height: 40px;
	counter-increment: lp-etape;
	color: var(--wp--preset--color--gris);
	font-size: 15px;
	line-height: 1.5;
}

.lp-etapes-jour li::before {
	content: counter(lp-etape);
	position: absolute;
	left: 0;
	top: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--wp--preset--color--lilas-pale);
	color: var(--wp--preset--color--prune);
	font-family: var(--wp--preset--font-family--titre);
	font-size: 21px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lp-etapes-jour li strong {
	display: block;
	color: var(--wp--preset--color--encre);
	font-size: 16px;
	line-height: 1.3;
	margin-bottom: 3px;
}

/* « Comment ça se passe » : titre et bouton à gauche, trois étapes à droite. */
.lp-deroule {
	display: grid;
	grid-template-columns: 0.8fr 1.2fr;
	gap: 40px;
	align-items: center;
}

.lp-deroule__intro > * {
	margin-block: 0;
}

.lp-deroule__intro .lp-chapo-sombre {
	margin: 12px 0 24px;
	max-width: 40ch;
}

.lp-etapes {
	list-style: none;
	padding: 0 !important;
	margin: 0;
	display: grid;
	gap: 10px;
	counter-reset: lp-etape;
}

.lp-etapes li {
	position: relative;
	counter-increment: lp-etape;
	background: var(--wp--preset--color--aubergine-clair);
	border-radius: 16px;
	padding: 13px 16px 13px 68px;
	min-height: 64px;
	color: var(--wp--preset--color--lilas);
	font-size: 14px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.lp-etapes li::before {
	content: counter(lp-etape);
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--lilas);
	color: var(--wp--preset--color--lilas);
	font-family: var(--wp--preset--font-family--titre);
	font-size: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.lp-etapes li strong {
	display: block;
	color: var(--wp--preset--color--papier);
	font-size: 16px;
	font-weight: 600;
}

/* Première étape déjà faite (page de confirmation) : rond plein et coche. */
.lp-etapes--premiere-faite li:first-child::before {
	content: "✓";
	background: var(--wp--preset--color--lilas);
	color: var(--wp--preset--color--aubergine);
}

@media (max-width: 900px) {
	.lp-deroule {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   12. Questions fréquentes (bloc Détails : <details> et <summary>, sans script)
   ========================================================================= */

.lp-faq {
	max-width: 820px;
	margin-top: 28px;
}

.lp-faq.lp-centre {
	margin-inline: auto;
}

.lp-faq > * {
	margin-block: 0;
}

.lp-faq .wp-block-details {
	border-bottom: 1px solid var(--wp--preset--color--filet);
	padding: 20px 4px;
}

.lp-faq summary {
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	gap: 20px;
	font-family: var(--wp--preset--font-family--titre);
	font-size: 23px;
	line-height: 1.25;
	color: var(--wp--preset--color--prune);
}

.lp-faq summary::-webkit-details-marker {
	display: none;
}

.lp-faq summary::after {
	content: "+";
	color: var(--wp--preset--color--mauve);
	font-family: var(--wp--preset--font-family--texte);
	font-size: 24px;
	line-height: 1;
}

.lp-faq details[open] summary::after {
	content: "–";
}

.lp-faq .wp-block-details p {
	margin-top: 12px;
	color: var(--wp--preset--color--gris);
	max-width: 68ch;
}

/* =========================================================================
   13. Formules et tarifs
   ========================================================================= */

.lp-formules {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.lp-formule {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 22px;
	display: flex;
	flex-direction: column;
}

.lp-formule > * {
	margin-block: 0;
}

.lp-formule h3 {
	font-size: 25px;
	line-height: 1.1;
	margin-bottom: 14px;
}

.lp-formule__ligne {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 14.5px;
	color: var(--wp--preset--color--gris);
	margin-bottom: 9px !important;
}

.lp-formule__ligne > * {
	margin: 0;
}

.lp-formule__ligne .lp-picto {
	width: 19px;
	height: 19px;
	margin-top: 2px;
	color: var(--wp--preset--color--mauve);
}

.lp-formule__tarif {
	margin-top: auto !important;
	padding-top: 14px;
	border-top: 1px solid var(--wp--preset--color--filet);
	display: flex;
	align-items: baseline;
	gap: 8px;
}

.lp-formule__tarif > * {
	margin: 0;
}

.lp-formule__tarif p:first-child {
	font-size: 13.5px;
	color: var(--wp--preset--color--gris);
}

/* Prix par personne (2026-10-22) : « À partir de » au-dessus, le prix en gros, « par personne » en petit dessous. */
.lp-formule__tarif:has(.lp-prix-unite) {
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
}

.lp-prix-unite {
	font-size: 13.5px;
	color: var(--wp--preset--color--gris);
}

.lp-prix {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	font-size: 28px;
	line-height: 1;
	color: var(--wp--preset--color--prune);
}

.lp-conditions {
	margin-top: 16px !important;
	font-size: 14px;
	color: var(--wp--preset--color--gris);
}

@media (max-width: 900px) {
	.lp-formules {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   14. Galerie avec agrandissement, logos clients, avis
   ========================================================================= */

.lp-galerie.wp-block-gallery {
	gap: 12px;
}

.lp-galerie.wp-block-gallery .wp-block-image img {
	border-radius: 12px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Photos cachées par le filtre ou par la pagination (script galerie.js). */
.lp-galerie .wp-block-image[hidden],
.lp-galerie .wp-block-image.lp-hors-page {
	display: none !important;
}

.lp-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	margin: 0 0 20px;
}

.lp-filtres button {
	font: 500 14.5px var(--wp--preset--font-family--texte);
	background: none;
	border: 0;
	border-bottom: 1px solid transparent;
	padding: 6px 0;
	color: var(--wp--preset--color--gris);
	cursor: pointer;
}

.lp-filtres button[aria-pressed="true"] {
	color: var(--wp--preset--color--prune);
	border-color: var(--wp--preset--color--prune);
}

.lp-pages-galerie {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-top: 16px;
	font-size: 14px;
	color: var(--wp--preset--color--gris);
}

.lp-pages-galerie button {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--wp--preset--color--filet);
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--prune);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}

.lp-pages-galerie button:disabled {
	opacity: 0.35;
	cursor: default;
}

/* Logos clients : immobiles sans script, défilants avec logos.js. */
.lp-logos > * {
	margin-block: 0;
}

.lp-logos .lp-surtitre {
	text-align: center;
	margin-bottom: 26px;
}

.lp-logos__piste {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 24px 64px;
}

.lp-logos__piste > * {
	margin: 0;
	flex: none;
}

.lp-logos__piste img {
	height: 28px;
	width: auto;
	opacity: 0.75;
}

.lp-logos.est-anime {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.lp-logos.est-anime .lp-logos__piste {
	flex-wrap: nowrap;
	justify-content: flex-start;
	width: max-content;
	gap: 0;
	animation: lp-defile 32s linear infinite;
}

.lp-logos.est-anime .lp-logos__piste > * {
	margin-right: 64px;
}

.lp-logos.est-anime:hover .lp-logos__piste {
	animation-play-state: paused;
}

@keyframes lp-defile {
	from {
		transform: translateX(-50%);
	}

	to {
		transform: translateX(0);
	}
}

/* Avis clients. */
.lp-avis {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 44px;
}

.lp-avis__carte {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.lp-avis__carte > * {
	margin: 0;
}

/*
 * La note est écrite en toutes lettres (« Note : 5 sur 5 ») pour les lecteurs d'écran ;
 * les étoiles sont dessinées à la place, sans être lues.
 */
.lp-etoiles {
	font-size: 0 !important;
	line-height: 1;
}

.lp-etoiles::before {
	content: "★★★★★";
	content: "★★★★★" / "";
	font-size: 17px;
	letter-spacing: 3px;
	color: var(--wp--preset--color--framboise);
}

.lp-etoiles--4::before {
	content: "★★★★";
	content: "★★★★" / "";
}

.lp-etoiles--4::after {
	content: "★";
	content: "★" / "";
	font-size: 17px;
	color: var(--wp--preset--color--filet);
}

.lp-avis__carte .wp-block-quote {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 14px;
}

.lp-avis__carte .wp-block-quote p {
	font-family: var(--wp--preset--font-family--titre);
	font-size: 21px;
	line-height: 1.35;
	color: var(--wp--preset--color--prune);
}

.lp-avis__carte cite {
	margin-top: auto;
	font-style: normal;
	font-size: 13.5px;
	color: var(--wp--preset--color--gris);
}

@media (max-width: 1000px) {
	.lp-avis {
		grid-template-columns: 1fr;
	}
}

/* =========================================================================
   15. Accès, espaces du lieu, traiteur
   ========================================================================= */

.lp-acces {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 28px;
	align-items: start;
}

.lp-acces .wp-block-image {
	margin: 0;
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	overflow: hidden;
}

.lp-infos {
	display: grid;
	gap: 16px;
}

.lp-info {
	display: grid;
	grid-template-columns: 30px 1fr;
	gap: 12px;
}

.lp-info > *,
.lp-info__texte > * {
	margin: 0;
}

.lp-info .lp-picto {
	color: var(--wp--preset--color--mauve);
}

.lp-info__titre {
	font-weight: 600;
	color: var(--wp--preset--color--prune);
}

.lp-info__texte p:not(.lp-info__titre) {
	color: var(--wp--preset--color--gris);
	font-size: 15px;
}

@media (max-width: 900px) {
	.lp-acces {
		grid-template-columns: 1fr;
	}
}

/* Espaces du lieu : cartes photo + nom + surface. */
.lp-espaces {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 14px;
}

.lp-espace {
	grid-column: span 2;
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	overflow: hidden;
	display: flex;
	flex-direction: column;
}

.lp-espace--large {
	grid-column: span 3;
}

.lp-espace > * {
	margin: 0;
}

.lp-espace .wp-block-image img {
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: cover;
}

.lp-espace--large .wp-block-image img {
	aspect-ratio: 3 / 1;
}

.lp-espace__corps {
	padding: 10px 14px 12px;
}

.lp-espace__corps > * {
	margin: 0;
}

.lp-espace__titre {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
}

.lp-espace__titre > * {
	margin: 0;
}

.lp-espace h3 {
	font-size: 20px;
}

.lp-espace__surface {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--wp--preset--color--mauve);
	white-space: nowrap;
}

.lp-espace__corps > p {
	margin-top: 4px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--wp--preset--color--gris);
}

@media (max-width: 1060px) {
	.lp-espaces {
		grid-template-columns: 1fr 1fr;
	}

	.lp-espace,
	.lp-espace--large {
		grid-column: auto;
	}
}

@media (max-width: 640px) {
	.lp-espaces {
		grid-template-columns: 1fr;
	}
}

/* Traiteur : bloc aubergine, photo à gauche, services à droite. */
.lp-traiteur {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--wp--preset--color--aubergine);
	color: var(--wp--preset--color--papier);
	border-radius: var(--wp--custom--rayon--carte);
	overflow: hidden;
}

.lp-traiteur .wp-block-image,
.lp-traiteur .wp-block-image img {
	margin: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.lp-traiteur__texte {
	padding: 30px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.lp-traiteur__texte > * {
	margin-block: 0;
}

.lp-traiteur h2 {
	color: var(--wp--preset--color--papier);
	font-size: 34px;
}

.lp-traiteur__texte > p {
	color: var(--wp--preset--color--lilas);
	font-size: 15px;
	margin-top: 12px;
}

.lp-services {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-top: 16px !important;
}

.lp-service {
	background: var(--wp--preset--color--aubergine-clair);
	border-radius: var(--wp--custom--rayon--petit);
	padding: 13px 15px;
}

.lp-service > * {
	margin: 0;
}

.lp-service .lp-picto {
	width: 24px;
	height: 24px;
	margin-bottom: 6px;
	color: var(--wp--preset--color--cyan);
}

.lp-service strong {
	display: block;
	font-size: 15.5px;
}

.lp-service p {
	font-size: 13.5px;
	color: var(--wp--preset--color--lilas);
}

@media (max-width: 900px) {
	.lp-traiteur {
		grid-template-columns: 1fr;
	}

	.lp-traiteur .wp-block-image img {
		max-height: 260px;
	}
}

/* =========================================================================
   16. Appel final et carte Alliance Événement
   ========================================================================= */

.lp-appel-final {
	background: var(--wp--preset--color--aubergine);
	color: var(--wp--preset--color--papier);
	text-align: center;
	padding-block: 72px;
}

.lp-appel-final > * {
	margin-block: 0;
}

.lp-appel-final h2 {
	color: var(--wp--preset--color--papier);
}

.lp-appel-final h2 em {
	color: var(--wp--preset--color--lilas);
}

.lp-appel-final > p {
	color: var(--wp--preset--color--lilas);
	margin: 14px auto 28px;
	max-width: 52ch;
}

.lp-appel-final .wp-block-buttons {
	justify-content: center;
}

/* Carte « Votre demande est suivie par l'équipe d'Alliance Événement ». */
.lp-carte-alliance {
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-start;
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--encre);
	border-radius: 16px;
	padding: 16px 20px;
	margin-top: 18px !important;
	text-align: left;
}

.lp-carte-alliance > * {
	margin: 0;
}

.lp-carte-alliance .wp-block-image img {
	width: 192px;
	height: 24px;
}

.lp-carte-alliance p {
	font-size: 14px;
	line-height: 1.5;
	color: var(--wp--preset--color--gris);
}

.lp-appel-final .lp-carte-alliance {
	max-width: 560px;
	margin: 26px auto 0 !important;
	align-items: center;
	text-align: center;
}

/* =========================================================================
   17. « Lire la suite » : tout le texte est dans la page, seul l'affichage est replié
   ========================================================================= */

.lp-lire-plus .lp-texte-long {
	max-width: 72ch;
	margin-top: 18px;
}

.lp-texte-long > * {
	margin-block: 0;
}

.lp-texte-long p {
	color: var(--wp--preset--color--gris);
	margin-bottom: 14px;
}

.lp-texte-long h3 {
	font-size: 25px;
	margin: 22px 0 8px;
}

/* Le repli ne s'applique que si le script a démarré (classe ajoutée par lire-la-suite.js). */
.lp-lire-plus.est-repliable .lp-texte-long {
	position: relative;
	max-height: 250px;
	overflow: hidden;
	transition: max-height 0.5s ease;
}

.lp-lire-plus.est-repliable .lp-texte-long::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 110px;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0), var(--lp-fond-section, var(--wp--preset--color--papier)));
	pointer-events: none;
	transition: opacity 0.3s;
}

.lp-lire-plus.est-ouvert .lp-texte-long {
	max-height: none;
}

.lp-lire-plus.est-ouvert .lp-texte-long::after {
	opacity: 0;
}

.lp-lire-plus:not(.lp-section--papier) {
	--lp-fond-section: var(--wp--preset--color--fond);
}

.lp-bouton-lire {
	margin-top: 14px;
	font: 600 15px var(--wp--preset--font-family--texte);
	color: var(--wp--preset--color--framboise);
	background: none;
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--framboise);
	padding: 0 0 2px;
	cursor: pointer;
}

.lp-bouton-lire::after {
	content: " ↓";
}

.lp-lire-plus.est-ouvert .lp-bouton-lire::after {
	content: " ↑";
}

@media (prefers-reduced-motion: reduce) {
	.lp-lire-plus.est-repliable .lp-texte-long {
		transition: none;
	}
}

/* =========================================================================
   18. Bloc devis, formulaire et pages annexes
   ========================================================================= */

.lp-devis-grille {
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	gap: 52px;
	margin-top: 34px;
	align-items: start;
}

.lp-rassure {
	margin-top: 16px !important;
	color: var(--wp--preset--color--cyan);
	font-size: 14.5px;
}

/*
 * Emplacement du formulaire de devis. Les champs reprennent la maquette quel que soit l'outil
 * retenu (Contact Form 7 ou autre formulaire HTML) ; un formulaire intégré dans un cadre
 * extérieur garderait son propre style.
 */
.lp-formulaire {
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--encre);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 26px;
}

.lp-formulaire label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--prune);
}

.lp-formulaire :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea) {
	width: 100%;
	font: 400 15px var(--wp--preset--font-family--texte);
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: 12px;
	background: var(--wp--preset--color--fond);
	color: var(--wp--preset--color--encre);
}

.lp-formulaire :is(input[type="submit"], button[type="submit"]) {
	width: 100%;
	min-height: 52px;
	border: 0;
	border-radius: var(--wp--custom--rayon--pilule);
	background: var(--wp--preset--color--framboise);
	color: var(--wp--preset--color--papier);
	font: 600 15px/1 var(--wp--preset--font-family--texte);
	cursor: pointer;
}

.lp-formulaire :is(input[type="submit"], button[type="submit"]):hover {
	background: var(--wp--preset--color--framboise-fonce);
}

@media (max-width: 900px) {
	.lp-devis-grille {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

/* Cartes photo avec lien (page de confirmation : « En attendant notre appel »). */
.lp-cartes-liens {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-top: 26px;
}

.lp-cartes-liens .wp-block-cover.lp-carte {
	aspect-ratio: 4 / 3;
	height: auto;
}

@media (max-width: 900px) {
	.lp-cartes-liens {
		grid-template-columns: 1fr;
	}
}

/* Pages simples (mentions légales, confidentialité) : colonne de lecture étroite. */
.lp-page-simple {
	padding-block: 64px 80px;
}

.lp-page-simple h1 {
	font-size: clamp(36px, 4vw, 50px);
	margin-bottom: 10px;
}

.lp-page-simple .wp-block-post-content h2 {
	font-size: 28px;
	margin: 34px 0 10px;
}

.lp-page-simple .wp-block-post-content :is(p, li) {
	font-size: 15.5px;
	line-height: 1.7;
}

/* Page introuvable. */
.lp-introuvable {
	padding-block: 96px;
	text-align: center;
}

.lp-introuvable .wp-block-buttons {
	justify-content: center;
}

/* =========================================================================
   19. Idées d'événements, pied de page, barre de devis sur mobile
   ========================================================================= */

.lp-idees {
	background: var(--wp--preset--color--fond);
	border-top: 1px solid var(--wp--preset--color--filet);
	padding-block: 64px 44px;
}

.lp-idees h2 {
	font-size: 28px;
	margin-bottom: 20px;
}

.lp-idees ul {
	list-style: none;
	padding: 0;
	margin: 0;
	columns: 3 230px;
	column-gap: 36px;
}

.lp-idees li {
	margin-bottom: 10px;
}

.lp-idees a {
	color: var(--wp--preset--color--prune);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--lilas);
	text-underline-offset: 4px;
}

.lp-pied {
	background: var(--wp--preset--color--papier);
	border-top: 1px solid var(--wp--preset--color--filet);
	padding-block: 48px;
	font-size: 14.5px;
	color: var(--wp--preset--color--gris);
}

.lp-pied__colonnes {
	display: grid;
	grid-template-columns: 1.2fr 1fr 1fr 1fr;
	gap: 28px;
}

.lp-pied__colonnes > *,
.lp-pied__colonne > * {
	margin: 0;
}

.lp-pied__logo {
	margin: 0 0 12px;
}

.lp-pied__logo img {
	display: block;
	width: 106px;
	height: 50px;
}

.lp-pied__titre {
	color: var(--wp--preset--color--prune);
	font-weight: 600;
	margin-bottom: 8px !important;
}

.lp-pied a {
	color: inherit;
	text-decoration: none;
}

.lp-pied a:hover {
	color: var(--wp--preset--color--framboise);
}

.lp-pied__liens {
	list-style: none;
	padding: 0 !important;
	margin: 0;
}

.lp-pied__liens li {
	margin-bottom: 4px;
}

.lp-partenaire {
	margin-top: 18px !important;
	padding-top: 14px;
	border-top: 1px solid var(--wp--preset--color--filet);
	max-width: 260px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.lp-partenaire > * {
	margin: 0;
}

.lp-partenaire p {
	font-size: 11.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.lp-partenaire img {
	display: block;
	width: 144px;
	height: 18px;
}

@media (max-width: 1000px) {
	.lp-pied__colonnes {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 560px) {
	.lp-pied__colonnes {
		grid-template-columns: 1fr;
	}
}

/* Barre de devis fixée en bas de l'écran, sur mobile et tablette seulement. */
.lp-barre-mobile {
	display: none;
}

@media (max-width: 1060px) {
	.lp-barre-mobile {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 50;
		align-items: center;
		gap: 12px;
		background: var(--wp--preset--color--papier);
		border-top: 1px solid var(--wp--preset--color--filet);
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
	}

	.lp-barre-mobile > * {
		margin: 0;
	}

	.lp-barre-mobile p {
		flex: 1;
		font-size: 13px;
		color: var(--wp--preset--color--gris);
	}

	.lp-barre-mobile .wp-block-button__link {
		padding: 13px 18px;
	}

	/* La barre ne doit pas cacher le bas du pied de page. */
	.lp-avec-barre-mobile {
		padding-bottom: 76px;
	}
}

/* =========================================================================
   20. Compléments 1.0.1 : blocs des pages réelles
   ========================================================================= */

/* Mention « à compléter » surlignée à l'intérieur d'un texte. */
mark.lp-a-completer {
	background: #fff3c4;
	color: #5a4400;
}

/* Les informations manquantes en paragraphe entier (emplacements de formulaire). */
p.lp-a-completer {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 8px;
	font-size: 14px;
}

.lp-formulaire > p.lp-a-completer {
	margin: 0;
}

/* Encart blanc (conventions et assemblées générales). */
.lp-encart {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 30px 32px;
}

.lp-encart > * {
	margin-block: 0;
}

.lp-encart p {
	color: var(--wp--preset--color--gris);
	margin-top: 14px !important;
	max-width: 70ch;
}

.lp-refs-bas {
	margin-top: 36px !important;
}

/* Plans du lieu : vignettes avec légende, agrandies au clic. */
.lp-plans {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin-top: 26px !important;
}

.lp-plans--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lp-plans > .wp-block-image {
	margin: 0;
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--petit);
	overflow: hidden;
}

.lp-plans img {
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: cover;
}

.lp-plans figcaption {
	margin: 0;
	padding: 7px 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--wp--preset--color--prune);
	text-align: left;
}

@media (max-width: 640px) {
	.lp-plans,
	.lp-plans--2 {
		grid-template-columns: 1fr;
	}
}

/* Bento à une seule carte (page Réalisations). */
.lp-bento--seule {
	grid-template-columns: 1fr;
	grid-template-rows: 380px;
}

/* Petit intitulé en capitales au-dessus du titre d'une carte photo. */
.lp-carte .lp-carte__type {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--lilas);
	margin-bottom: 6px !important;
}

/* Logo client carré (B&B Hotels) : un peu plus haut que les logos en longueur. */
.lp-logos__piste .lp-logo-carre img {
	height: 38px;
}

/* Le défi du client : cartes picto + texte sur deux colonnes. */
.lp-projet {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.lp-projet > * {
	margin: 0;
}

.lp-projet__carte {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 20px;
	display: grid;
	grid-template-columns: 34px 1fr;
	gap: 14px;
	align-items: start;
}

.lp-projet__carte > * {
	margin: 0;
}

.lp-projet__carte .lp-picto {
	width: 30px;
	height: 30px;
	color: var(--wp--preset--color--mauve);
}

.lp-projet__carte p {
	color: var(--wp--preset--color--gris);
	font-size: 14.5px;
	line-height: 1.5;
}

.lp-projet__carte strong {
	display: block;
	font-size: 16px;
	color: var(--wp--preset--color--encre);
	margin-bottom: 3px;
}

/* Ce que nous avons mis en place : un métier par carte. */
.lp-metiers {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.lp-metiers > * {
	margin: 0;
}

.lp-metier {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 18px 20px;
}

.lp-metier > * {
	margin-block: 0;
}

.lp-metier__titre {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px !important;
}

.lp-metier__titre > * {
	margin: 0;
}

.lp-metier__titre .lp-picto {
	color: var(--wp--preset--color--mauve);
}

.lp-metier h3 {
	font-size: 22px;
}

.lp-metier ul {
	list-style: none;
	padding: 0 !important;
	margin: 0;
	display: grid;
	gap: 6px;
}

.lp-metier li {
	position: relative;
	padding-left: 16px;
	font-size: 14px;
	line-height: 1.45;
	color: var(--wp--preset--color--gris);
}

.lp-metier li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--wp--preset--color--mauve);
}

/* Le jour J heure par heure. */
.lp-horaires {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
	margin-top: 22px !important;
}

.lp-horaires > * {
	margin: 0;
}

.lp-horaires__carte {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	padding: 20px 22px;
}

.lp-section--sombre .lp-horaires__carte {
	background: var(--wp--preset--color--aubergine-clair);
	border-color: transparent;
}

.lp-horaires__carte > * {
	margin-block: 0;
}

.lp-horaires__carte h3 {
	font-size: 22px;
	margin-bottom: 12px !important;
}

.lp-horaires__liste {
	list-style: none;
	padding: 0 !important;
	margin: 0;
	display: grid;
	gap: 9px;
}

.lp-horaires__liste li {
	display: grid;
	grid-template-columns: 82px 1fr;
	gap: 10px;
	font-size: 14.5px;
	line-height: 1.4;
	color: var(--wp--preset--color--gris);
}

.lp-section--sombre .lp-horaires__liste li {
	color: var(--wp--preset--color--lilas);
}

.lp-horaires__liste strong {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	font-size: 19px;
	line-height: 1.1;
	color: var(--wp--preset--color--prune);
}

.lp-section--sombre .lp-horaires__liste strong {
	color: var(--wp--preset--color--cyan);
}

/* Ce que nous organisons avec vous : prestations en cartes. */
.lp-prestations {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.lp-prestations > * {
	margin: 0;
}

.lp-prestation {
	background: var(--wp--preset--color--papier);
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--petit);
	padding: 20px;
}

.lp-prestation > * {
	margin: 0;
}

.lp-prestation .lp-picto {
	width: 30px;
	height: 30px;
	margin-bottom: 12px;
	color: var(--wp--preset--color--prune);
}

.lp-prestation p {
	color: var(--wp--preset--color--gris);
	font-size: 14px;
}

.lp-prestation strong {
	display: block;
	font-weight: 600;
	font-size: 15.5px;
	line-height: 1.3;
	color: var(--wp--preset--color--encre);
	margin-bottom: 4px;
}

/* Pilule à trois chiffres (page Réalisations) : chiffres plus grands. */
.lp-pilule--3 {
	max-width: 980px;
}

.lp-pilule--3 .lp-chiffre {
	font-size: 44px;
}

.lp-pilule mark.lp-a-completer {
	display: block;
	width: max-content;
	margin: 6px auto 0;
}

/* Bloc de logos et chiffres sous l'ouverture de l'accueil. */
.lp-preuves {
	padding-top: 56px;
}

.lp-preuves > .lp-pilule-zone {
	padding-top: 0;
	margin-top: 56px !important;
}

.lp-galerie-pied {
	margin-top: 28px !important;
}

/* Pages légales : date de mise à jour. */
.lp-maj {
	color: var(--wp--preset--color--gris);
	font-size: 14px !important;
	margin-bottom: 30px !important;
}

@media (max-width: 900px) {
	.lp-projet,
	.lp-metiers,
	.lp-horaires,
	.lp-prestations {
		grid-template-columns: 1fr;
	}
}

/* Bouton « Lire la suite » : largeur du texte, aligné à gauche. */
.lp-section > .lp-bouton-lire {
	width: auto;
	align-self: flex-start;
}

/* Bandeau plus haut (page Le lieu). */
.wp-block-cover.lp-bandeau--haut {
	min-height: min(calc(100svh - 107px), 760px);
}

/* Titre de galerie et filtres sur la même ligne (accueil), comme sur la maquette. */
@media (min-width: 901px) {
	.lp-section:has(> :is(h2, h3) + .lp-filtres) {
		display: grid;
		grid-template-columns: 1fr auto;
		align-content: center;
		column-gap: 20px;
	}

	.lp-section:has(> :is(h2, h3) + .lp-filtres) > * {
		grid-column: 1 / -1;
	}

	.lp-section:has(> :is(h2, h3) + .lp-filtres) > :is(h2, h3) {
		grid-column: 1;
		align-self: end;
		margin-bottom: 22px !important;
	}

	.lp-section:has(> :is(h2, h3) + .lp-filtres) > .lp-filtres {
		grid-column: 2;
		align-self: end;
		margin-bottom: 22px;
	}
}

.lp-section > h3:first-child {
	font-size: 34px;
}

/* =========================================================================
   21. Carte Google Maps (bloc la-palmeraie/carte-google), version 1.0.2
   ========================================================================= */

.lp-carte-google {
	margin: 0;
}

.lp-carte-google__cadre {
	min-height: 280px;
	aspect-ratio: 4 / 3;
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: var(--wp--custom--rayon--carte);
	overflow: hidden;
	background: var(--wp--preset--color--lilas-pale);
}

.lp-carte-google iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Lien vers la fiche Google, sous la carte (sur la carte, il cacherait le cartouche de Google). */
.lp-carte-google__lien {
	margin: 10px 0 0;
	font-size: 14px;
}

.lp-carte-google__lien a {
	color: var(--wp--preset--color--prune);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--wp--preset--color--mauve);
	padding-bottom: 2px;
}

.lp-carte-google__lien a:hover {
	color: var(--wp--preset--color--framboise);
}

@media (max-width: 640px) {
	.lp-carte-google__cadre {
		aspect-ratio: auto;
		height: 300px;
	}
}

/* =========================================================================
   22. Formulaire Tally (bloc la-palmeraie/formulaire-tally), version 1.0.3
   ========================================================================= */

/* Le fond blanc et l'arrondi viennent du groupe « lp-formulaire » ; le formulaire Tally est transparent. */
.lp-formulaire-tally {
	margin: 0;
}

.lp-formulaire-tally iframe {
	display: block;
	width: 100%;
	border: 0;
}

/* =========================================================================
   23. Formulaire Tally : alignement sur les étapes du bloc devis (1.0.5)
   ========================================================================= */

/*
 * Bloc devis (page Devis et bas de l'accueil), sur ordinateur : le premier texte du formulaire
 * s'aligne sur le premier texte des étapes de gauche. Tally laisse 28 px de vide en haut de son cadre,
 * le texte de la première étape est à 21 px du haut de la carte : on supprime le rembourrage haut
 * de la carte et on remonte le cadre de 7 px (zone vide et transparente du formulaire).
 */
@media (min-width: 901px) {
	.lp-devis-grille > .lp-formulaire:has(.lp-formulaire-tally) {
		padding-top: 0;
	}

	.lp-devis-grille .lp-formulaire-tally {
		margin-top: -7px !important;
	}
}


/* =========================================================================
   24. Formulaire rapide de l'accueil (bloc la-palmeraie/formulaire-rapide), version 1.0.6
   ========================================================================= */

.screen-reader-text {
	border: 0;
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.lp-recherche .lp-formulaire-rapide {
	margin: 0;
}

/* Onglets du type d'événement : une pilule aubergine, l'onglet choisi en blanc. */
.lp-rapide__onglets {
	display: inline-flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 6px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: var(--wp--custom--rayon--pilule);
	background: var(--wp--preset--color--aubergine);
	position: relative;
	z-index: 2;
}

.lp-rapide__onglet {
	position: relative;
	cursor: pointer;
}

.lp-rapide__onglet input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.lp-rapide__onglet span {
	display: block;
	padding: 12px 18px;
	border-radius: var(--wp--custom--rayon--pilule);
	font: 500 14.5px/1 var(--wp--preset--font-family--texte);
	color: #efe7f4;
}

.lp-rapide__onglet:hover span {
	color: var(--wp--preset--color--papier);
}

.lp-rapide__onglet input:checked + span {
	background: var(--wp--preset--color--papier);
	color: var(--wp--preset--color--prune);
}

.lp-rapide__onglet input:focus-visible + span {
	outline: 2px solid var(--wp--preset--color--lilas);
	outline-offset: 2px;
}

/* Barre blanche : date, participants, moment, bouton. */
.lp-rapide__barre {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr) auto;
	gap: 14px;
	margin-top: -24px;
	padding: 34px 26px 22px;
	border-radius: var(--wp--custom--rayon--carte);
	background: var(--wp--preset--color--papier);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
	text-align: left;
}

.lp-rapide__barre > * {
	min-width: 0;
}

.lp-rapide__barre label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--wp--preset--color--prune);
}

.lp-rapide__barre :is(input, select) {
	box-sizing: border-box;
	display: block;
	min-width: 0;
	max-width: 100%;
	height: 48px;
	font: 400 15px/1.3 var(--wp--preset--font-family--texte);
	padding: 13px 14px;
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: 12px;
	background: var(--wp--preset--color--fond);
	color: var(--wp--preset--color--encre);
	width: 100%;
}

.lp-rapide__bouton {
	align-self: end;
	height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: var(--wp--custom--rayon--pilule);
	background: var(--wp--preset--color--framboise);
	color: var(--wp--preset--color--papier);
	font: 600 15px/1 var(--wp--preset--font-family--texte);
	cursor: pointer;
}

.lp-rapide__bouton:hover {
	background: var(--wp--preset--color--framboise-fonce);
}

.lp-rapide__mention {
	grid-column: 1 / -1;
	margin: 2px 0 0;
	font-size: 13px;
	color: var(--wp--preset--color--gris);
	text-align: center;
}

.lp-rapide__type-mobile {
	display: none !important;
}

/*
 * Champ Date (1.0.15) : Safari sur iPhone lui donne une largeur minimale, une hauteur et une apparence
 * propres, si bien qu'il débordait sous le champ voisin. On le ramène au gabarit des autres champs.
 */
.lp-rapide__barre input[type="date"] {
	-webkit-appearance: none;
	appearance: none;
	text-align: left;
}

.lp-rapide__barre input[type="date"]::-webkit-date-and-time-value {
	text-align: left;
	margin: 0;
	min-height: 1.3em;
}

/* Sur iPhone et iPad, un champ Date vide n'affiche rien : une icône de calendrier indique qu'on peut le toucher. */
@supports (-webkit-touch-callout: none) {
	.lp-rapide__barre input[type="date"] {
		padding-right: 40px;
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%234a2b5c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: right 12px center;
		background-size: 18px 18px;
	}
}

@media (max-width: 1000px) {
	.lp-rapide__barre {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.lp-rapide__bouton {
		grid-column: 1 / -1;
	}
}

/* Mobile : la liste déroulante remplace les onglets, comme sur la maquette. */
@media (max-width: 640px) {
	.lp-rapide__onglets {
		display: none;
	}

	.lp-recherche {
		margin-top: 0;
	}

	.lp-rapide__type-mobile {
		display: flex !important;
		grid-column: 1 / -1;
	}

	.lp-rapide__barre {
		gap: 10px;
		margin-top: 16px;
		padding: 16px 14px 12px;
	}

	.lp-rapide__barre label {
		font-size: 11.5px;
		gap: 4px;
	}

	.lp-rapide__barre :is(input, select) {
		height: 42px;
		padding: 10px 11px;
		font-size: 14.5px;
	}

	.lp-rapide__barre > label:nth-of-type(4) {
		grid-column: 1 / -1;
	}

	.lp-rapide__bouton {
		height: 46px;
	}

	.lp-rapide__mention {
		font-size: 12px;
	}
}
