/*
Theme Name: Lunart-x
Description: Thème du site Lunart-x — ambiance « scène » sombre, couleurs et typographies de la charte graphique.
Template: twentytwentyfive
Version: 1.0.2
Requires at least: 6.7
Text Domain: lunartix
*/

/* En-tête collant (sur le conteneur du template part, sous la barre d'admin), légèrement translucide */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.lx-header {
	position: relative;
	background-color: transparent !important;
	border-bottom: 1px solid var(--wp--preset--color--accent-5);
	z-index: 100;
}
/* Fond translucide et flou sur un calque à part : un backdrop-filter posé sur l'en-tête lui-même
   enfermerait le menu mobile (position fixe) dans les 58 px de l'en-tête */
.lx-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background-color: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
	backdrop-filter: blur(8px);
}
.lx-header .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--accent-3) !important;
	border: 1px solid var(--wp--preset--color--accent-5) !important;
}
.lx-header .wp-block-navigation-item__content:hover,
.lx-header .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-2);
}
/* Menu mobile ouvert : plein écran, aligné à gauche, grands liens, sous-menus en retrait sans cadre */
.lx-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}
.lx-header .is-menu-open .wp-block-navigation__responsive-container-content,
.lx-header .is-menu-open .wp-block-navigation__container,
.lx-header .is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	text-align: left;
}
.lx-header .is-menu-open .wp-block-navigation__container {
	gap: 1.4rem !important;
	padding-top: var(--wp--preset--spacing--50);
}
.lx-header .is-menu-open .wp-block-navigation-item__content {
	font-size: 1.7rem;
	letter-spacing: 0.06em;
}
.lx-header .is-menu-open .wp-block-navigation__submenu-container {
	background: none !important;
	border: 0 !important;
	border-left: 2px solid var(--wp--preset--color--accent-1) !important;
	padding: 0.2rem 0 0 1rem !important;
	margin-top: 0.6rem !important;
	gap: 0.7rem !important;
}
.lx-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-size: 1.2rem;
	color: var(--wp--preset--color--accent-4);
}

/* Sur mobile, le bouton Contact reste visible à côté du menu replié, en plus compact */
@media (max-width: 781px) {
	.lx-header .lx-header-contact .wp-block-button__link {
		padding: 0.4rem 0.8rem !important;
		font-size: 0.9rem;
	}
	.lx-header .wp-block-site-logo img {
		max-width: 150px;
		height: auto;
	}
}

/* Fonds texturés (velours aubergine ou bordeaux), fixes au défilement : le contenu glisse par-dessus */
.lx-texture,
.lx-texture-bordeaux {
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
}
.lx-texture {
	background-image: url("assets/images/texture-aubergine.webp");
}
.lx-texture-bordeaux {
	background-image: url("assets/images/texture-bordeaux.webp");
}
/* iOS et tablettes ne gèrent pas les fonds fixes : fond normal */
@media (hover: none), (max-width: 781px) {
	.lx-texture,
	.lx-texture-bordeaux {
		background-attachment: scroll;
	}
}

/* Grain photographique très léger sur tout le site */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	background-image: url("assets/images/grain.webp");
	opacity: 0.05;
	mix-blend-mode: overlay;
	pointer-events: none;
	z-index: 99999;
}

/* Bannière d'accueil : texte lisible sur la photo */
.wp-block-cover h1,
.wp-block-cover p {
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.6);
}

/* Surtitre : petites capitales espacées, rose vif, avec un filet */
.lx-surtitre {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
	margin-bottom: 0.4em !important;
}
.lx-surtitre::before {
	content: "";
	display: inline-block;
	width: 2.2em;
	height: 1px;
	margin-right: 0.8em;
	vertical-align: middle;
	background: currentColor;
}
.lx-surtitre.has-text-align-center::after {
	content: "";
	display: inline-block;
	width: 2.2em;
	height: 1px;
	margin-left: 0.8em;
	vertical-align: middle;
	background: currentColor;
}

/* Photo encadrée : taille mesurée et cadre art déco décalé */
.wp-block-image.lx-cadre {
	position: relative;
	max-width: 420px;
	margin: var(--wp--preset--spacing--30) auto;
}
.wp-block-image.lx-cadre img {
	position: relative;
	z-index: 1;
	border-radius: 2px;
}
.wp-block-image.lx-cadre::before {
	content: "";
	position: absolute;
	inset: 0;
	transform: translate(1.2rem, 1.2rem);
	border: 1px solid var(--wp--preset--color--accent-2);
	border-radius: 2px;
	transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) 0.3s;
}
.wp-block-image.lx-cadre::after {
	content: "";
	position: absolute;
	width: 3.5rem;
	height: 3.5rem;
	left: -1rem;
	top: -1rem;
	border-top: 2px solid var(--wp--preset--color--accent-1);
	border-left: 2px solid var(--wp--preset--color--accent-1);
}

/* Texte qui se déroule (bloc Détails) : le résumé devient un bouton, le contenu s'ouvre en douceur */
:root {
	interpolate-size: allow-keywords;
}
.lx-deroule {
	margin-top: var(--wp--preset--spacing--40);
}
.lx-deroule > summary {
	display: inline-flex;
	align-items: center;
	gap: 0.8em;
	list-style: none;
	cursor: pointer;
	padding: 0.8rem 1.8rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 1.0625rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: background-color 0.3s, color 0.3s;
}
.lx-deroule > summary::-webkit-details-marker {
	display: none;
}
.lx-deroule > summary::after {
	content: "+";
	font-size: 1.4em;
	line-height: 0.8;
	transition: transform 0.4s;
}
.lx-deroule > summary:hover,
.lx-deroule > summary:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}
.lx-deroule > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 3px;
}
/* Une fois ouvert, le bouton propose de refermer (le texte d'origine reste lu par les lecteurs d'écran) */
.lx-deroule[open] > summary {
	font-size: 0;
	gap: 0;
}
.lx-deroule[open] > summary::before {
	content: "Refermer";
	font-size: 1.0625rem;
	margin-right: 0.8em;
}
.lx-deroule[open] > summary::after {
	font-size: 1.5rem;
	transform: rotate(45deg);
}
/* Ouverture animée (navigateurs récents) ; ailleurs, le texte apparaît en fondu */
.lx-deroule::details-content {
	block-size: 0;
	overflow: clip;
	transition: block-size 0.8s cubic-bezier(0.2, 0.7, 0.2, 1), content-visibility 0.8s allow-discrete;
}
.lx-deroule[open]::details-content {
	block-size: auto;
}
.lx-deroule[open] > :not(summary) {
	animation: lx-fondu 0.7s ease both;
}
.lx-deroule[open] > :nth-child(3) { animation-delay: 0.08s; }
.lx-deroule[open] > :nth-child(4) { animation-delay: 0.16s; }
.lx-deroule[open] > :nth-child(5) { animation-delay: 0.24s; }
.lx-deroule[open] > :nth-child(6) { animation-delay: 0.32s; }
.lx-deroule > summary + * {
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--wp--preset--color--accent-5);
}
@keyframes lx-fondu {
	from { opacity: 0; transform: translateY(0.8rem); }
	to { opacity: 1; transform: none; }
}

/* Photo qui reste fixe à côté d'un texte long (biographie déroulée) */
@media (min-width: 782px) {
	.wp-block-image.lx-colle {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 7rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lx-deroule::details-content {
		transition: none;
	}
	.lx-deroule[open] > :not(summary) {
		animation: none;
	}
}

/* Univers : panneaux qui s'élargissent au survol */
.lx-univers {
	gap: 0.6rem !important;
	margin-top: var(--wp--preset--spacing--50);
}
.lx-univers > .lx-panneau {
	flex: 1 1 0;
	min-width: 0;
	margin: 0 !important;
	padding: var(--wp--preset--spacing--40);
	border-radius: 2px;
	overflow: hidden;
	transition: flex-grow 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.lx-panneau .wp-block-cover__image-background {
	transition: transform 1.2s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.7s;
	filter: saturate(0.85);
}
/* Dégradé du bas pour la lisibilité du texte */
.lx-panneau .wp-block-cover__background {
	background: linear-gradient(to top, rgba(22, 10, 17, 0.95) 0%, rgba(22, 10, 17, 0.2) 55%, transparent 100%) !important;
	opacity: 1 !important;
}
.lx-panneau .wp-block-cover__inner-container {
	position: static;
}
.lx-panneau h3,
.lx-panneau p {
	position: relative;
	z-index: 2;
	margin: 0;
}
.lx-panneau h3 {
	font-size: clamp(1.8rem, 2.6vw, 2.6rem);
	color: var(--wp--preset--color--contrast);
}
.lx-panneau h3 a {
	color: inherit;
	text-decoration: none;
}
/* Tout le panneau est cliquable */
.lx-panneau h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 3;
}
.lx-panneau h3 a:focus-visible {
	outline: none;
}
.lx-panneau:has(a:focus-visible) {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 3px;
}
.lx-panneau p:not(.lx-panneau-lien) {
	max-height: 0;
	opacity: 0;
	transform: translateY(0.8rem);
	transition: max-height 0.6s, opacity 0.5s 0.15s, transform 0.6s 0.15s;
}
.lx-panneau-lien {
	margin-top: 0.6rem !important;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 0.9rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
}
.lx-panneau-lien::after {
	content: " →";
	display: inline-block;
	transition: transform 0.4s;
}
/* Filet lumineux qui se dessine sous le titre */
.lx-panneau h3::after {
	content: "";
	display: block;
	width: 0;
	height: 2px;
	margin-top: 0.4rem;
	background: var(--wp--preset--color--accent-2);
	transition: width 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}
@media (hover: hover) and (min-width: 782px) {
	.lx-univers:hover > .lx-panneau {
		flex-grow: 0.75;
	}
	.lx-univers > .lx-panneau:hover,
	.lx-univers > .lx-panneau:focus-within {
		flex-grow: 2.2;
	}
	.lx-panneau:hover .wp-block-cover__image-background,
	.lx-panneau:focus-within .wp-block-cover__image-background {
		transform: scale(1.06);
		filter: saturate(1.1);
	}
	.lx-panneau:hover p:not(.lx-panneau-lien),
	.lx-panneau:focus-within p:not(.lx-panneau-lien) {
		max-height: 6em;
		opacity: 1;
		transform: none;
		margin-top: 0.5rem;
	}
	.lx-panneau:hover h3::after,
	.lx-panneau:focus-within h3::after {
		width: 3rem;
	}
	.lx-panneau:hover .lx-panneau-lien::after {
		transform: translateX(0.4rem);
	}
}
/* Mobile et tactile : carrousel horizontal, descriptions visibles */
@media (hover: none), (max-width: 781px) {
	.lx-univers {
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		padding-bottom: 0.8rem;
		scrollbar-width: thin;
	}
	.lx-univers > .lx-panneau {
		flex: 0 0 min(78vw, 22rem);
		scroll-snap-align: start;
		min-height: 440px !important;
	}
	.lx-panneau p:not(.lx-panneau-lien) {
		max-height: none;
		opacity: 1;
		transform: none;
		margin-top: 0.5rem;
	}
	.lx-panneau h3::after {
		width: 3rem;
	}
}

/* Section vidéo : texte et vidéo encadrée sur photo assombrie */
.lx-cadre-video {
	position: relative;
}
.lx-cadre-video::before {
	content: "";
	position: absolute;
	inset: -0.9rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent-2) 60%, transparent);
	border-radius: 4px;
	pointer-events: none;
}
.lx-cadre-video .lx-yt,
.lx-cadre-video iframe {
	box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, 0.6), 0 0 3rem color-mix(in srgb, var(--wp--preset--color--accent-1) 45%, transparent);
}
.lx-cadre-video .lx-yt-play {
	animation: lx-pulsation 2.4s ease-out infinite;
}
@keyframes lx-pulsation {
	0% { box-shadow: 0 0 0 2px var(--wp--preset--color--contrast), 0 0 0 0 color-mix(in srgb, var(--wp--preset--color--accent-2) 70%, transparent); }
	70% { box-shadow: 0 0 0 2px var(--wp--preset--color--contrast), 0 0 0 1.4rem transparent; }
	100% { box-shadow: 0 0 0 2px var(--wp--preset--color--contrast), 0 0 0 0 transparent; }
}
.wp-block-cover .lx-cadre-video,
.wp-block-cover .wp-block-columns {
	text-shadow: none;
}
.wp-block-cover:has(.lx-cadre-video) {
	padding-inline: var(--wp--preset--spacing--50);
	overflow: hidden;
}
.wp-block-cover:has(.lx-cadre-video) .wp-block-cover__inner-container {
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
/* Fond flouté et teinté : une ambiance de feu, sans détail qui distrait de la vidéo */
.wp-block-cover:has(.lx-cadre-video) .wp-block-cover__image-background {
	filter: blur(10px) saturate(1.3);
	transform: scale(1.08);
}
.wp-block-cover:has(.lx-cadre-video) .wp-block-cover__background {
	background: radial-gradient(ellipse at 70% 50%, rgba(110, 5, 45, 0.55), rgba(22, 10, 17, 0.92) 70%) !important;
	opacity: 1 !important;
}

/* Apparition au défilement (le script ajoute .lx-visible) */
.lx-js .lx-apparition {
	opacity: 0;
	transform: translateY(2.5rem);
	transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.lx-js .lx-apparition.lx-visible {
	opacity: 1;
	transform: none;
}
/* Panneaux : apparition en cascade */
.lx-js .lx-univers.lx-apparition {
	opacity: 1;
	transform: none;
}
.lx-js .lx-univers.lx-apparition > .lx-panneau {
	opacity: 0;
	transform: translateY(3rem);
	transition: opacity 0.8s ease, transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1), flex-grow 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.lx-js .lx-univers.lx-visible > .lx-panneau {
	opacity: 1;
	transform: none;
}
.lx-js .lx-univers.lx-visible > .lx-panneau:nth-child(2) { transition-delay: 0.12s, 0.12s, 0s; }
.lx-js .lx-univers.lx-visible > .lx-panneau:nth-child(3) { transition-delay: 0.24s, 0.24s, 0s; }
.lx-js .lx-univers.lx-visible > .lx-panneau:nth-child(4) { transition-delay: 0.36s, 0.36s, 0s; }
/* Le cadre de la photo glisse en place */
.lx-js .wp-block-image.lx-cadre.lx-apparition::before {
	transform: translate(0, 0);
}
.lx-js .wp-block-image.lx-cadre.lx-visible::before {
	transform: translate(1.2rem, 1.2rem);
}
@media (prefers-reduced-motion: reduce) {
	.lx-js .lx-apparition,
	.lx-js .lx-univers.lx-apparition > .lx-panneau {
		opacity: 1;
		transform: none;
		transition: none;
	}
	.lx-univers > .lx-panneau,
	.lx-panneau .wp-block-cover__image-background,
	.lx-cadre-video .lx-yt-play {
		transition: none;
		animation: none;
	}
}

/* Pages d'univers --------------------------------------------------------- */

/* Paragraphe d'introduction */
.lx-chapo {
	max-width: 46rem;
	margin-inline: auto !important;
	text-align: center;
	line-height: 1.45;
}

/* Chiffres clés : grands chiffres séparés par des filets */
.lx-chiffres {
	margin-top: var(--wp--preset--spacing--60) !important;
	gap: 0 !important;
}
.lx-chiffres > .wp-block-column {
	padding: 0 var(--wp--preset--spacing--30);
}
.lx-chiffres > .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--wp--preset--color--accent-5);
}
.lx-chiffre {
	margin: 0 !important;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 900;
	font-size: clamp(2rem, 3.4vw, 3rem);
	line-height: 1.1;
	color: var(--wp--preset--color--accent-2);
	text-transform: uppercase;
}
.lx-chiffre-libelle {
	margin-top: 0.3rem !important;
	font-size: 0.95rem;
	color: var(--wp--preset--color--accent-4);
}
@media (max-width: 781px) {
	.lx-chiffres > .wp-block-column + .wp-block-column {
		border-left: 0;
		border-top: 1px solid var(--wp--preset--color--accent-5);
		padding-top: var(--wp--preset--spacing--30);
	}
}

/* Fiches spectacle : média et texte côte à côte, alternés */
.lx-fiche {
	margin-top: var(--wp--preset--spacing--70) !important;
	gap: var(--wp--preset--spacing--60) !important;
}
@media (min-width: 782px) {
	.lx-fiche.lx-inverse {
		flex-direction: row-reverse;
	}
}
.lx-fiche h3 {
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--contrast);
	margin-top: 0;
}
.lx-fiche-photo img,
.lx-numero .wp-block-image img {
	border-radius: 2px;
	box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.5);
}

/* Infos pratiques : petite pastille */
.lx-infos {
	display: inline-block;
	padding: 0.35em 0.9em;
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2em;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-4);
}
.lx-infos::before {
	content: "◆ ";
	color: var(--wp--preset--color--accent-2);
}

/* Cartes de numéros (grille de deux) */
.lx-numeros {
	margin-top: var(--wp--preset--spacing--50) !important;
	gap: var(--wp--preset--spacing--50) !important;
}
.lx-numeros > .wp-block-column:only-child {
	flex: 0 1 calc(50% - var(--wp--preset--spacing--50) / 2);
	margin-inline: auto;
}
.lx-numero {
	height: 100%;
	padding: var(--wp--preset--spacing--40);
	background: color-mix(in srgb, var(--wp--preset--color--base) 75%, transparent);
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	transition: border-color 0.4s, transform 0.4s;
}
.lx-numero:hover {
	border-color: var(--wp--preset--color--accent-2);
	transform: translateY(-4px);
}
.lx-numero .lx-cadre-video::before {
	display: none;
}
.lx-numero .wp-block-image,
.lx-numero .lx-cadre-video {
	margin-bottom: var(--wp--preset--spacing--30);
}
.lx-numero h3 {
	margin-top: 0.2rem;
	color: var(--wp--preset--color--contrast);
}

/* Formats (page Spectacles) : trois colonnes avec filet supérieur */
.lx-formats > .wp-block-column {
	padding-top: var(--wp--preset--spacing--30);
	border-top: 2px solid var(--wp--preset--color--accent-1);
}
.lx-formats h3 {
	color: var(--wp--preset--color--contrast);
}

/* Frise chronologique : filet vertical, années en rose */
.lx-frise {
	list-style: none;
	max-width: 46rem;
	margin: var(--wp--preset--spacing--50) auto 0 !important;
	padding: 0 0 0 1.6rem !important;
	border-left: 1px solid var(--wp--preset--color--accent-1);
}
.lx-frise li {
	position: relative;
	margin-bottom: var(--wp--preset--spacing--40);
}
.lx-frise li::before {
	content: "";
	position: absolute;
	left: calc(-1.6rem - 6px);
	top: 0.45em;
	width: 11px;
	height: 11px;
	transform: rotate(45deg);
	background: var(--wp--preset--color--accent-2);
	box-shadow: 0 0 0 4px var(--wp--preset--color--accent-3);
}
.lx-frise strong {
	display: block;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 900;
	font-size: 1.5rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
}

/* Encart encadré */
.lx-encart {
	padding: var(--wp--preset--spacing--50);
	background: color-mix(in srgb, var(--wp--preset--color--base) 80%, transparent);
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	height: 100%;
}
.lx-encart > :first-child {
	margin-top: 0;
}
.lx-encart h3 {
	color: var(--wp--preset--color--contrast);
}
.lx-encart ul {
	padding-left: 1.1em;
}

/* Étiquettes (partenaires) */
.lx-etiquettes {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.7rem;
	list-style: none;
	padding: 0 !important;
	margin-top: var(--wp--preset--spacing--50) !important;
}
.lx-etiquettes li {
	padding: 0.5em 1.2em;
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2em;
	background: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: border-color 0.3s, color 0.3s;
}
.lx-etiquettes li:hover {
	border-color: var(--wp--preset--color--accent-2);
	color: var(--wp--preset--color--accent-2);
}

/* Fiches produit (Shop) */
.lx-produits {
	margin-top: var(--wp--preset--spacing--50) !important;
	gap: var(--wp--preset--spacing--50) !important;
}
.lx-produit {
	height: 100%;
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	transition: border-color 0.4s;
}
.lx-produit:hover {
	border-color: var(--wp--preset--color--accent-2);
}
.lx-produit-photo {
	max-width: 260px;
	margin: 0 auto var(--wp--preset--spacing--30) !important;
}
.lx-produit h3 {
	margin-bottom: 0;
	color: var(--wp--preset--color--contrast);
}
.lx-prix {
	margin-top: 0.2rem !important;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 900;
	font-size: 2.2rem;
	color: var(--wp--preset--color--accent-2);
}

/* Vidéos et cartes seules sur leur ligne : demi-largeur, centrées */
.lx-videos {
	gap: var(--wp--preset--spacing--50) !important;
	margin-top: var(--wp--preset--spacing--40) !important;
}
.lx-videos > .wp-block-column:only-child {
	flex: 0 1 calc(50% - var(--wp--preset--spacing--50) / 2);
	margin-inline: auto;
}

/* Contact : formulaire et encart pratique */
.lx-contact-colonnes {
	gap: var(--wp--preset--spacing--60) !important;
	margin-top: var(--wp--preset--spacing--50) !important;
}
.lx-contact-colonnes .lx-chapo {
	text-align: left;
	margin-inline: 0 !important;
}
@media (min-width: 782px) {
	.lx-contact-colonnes .lx-encart {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 7rem);
		height: auto;
	}
}

/* Actualités : cartes d'articles */
.lx-journal .wp-block-post-template {
	gap: var(--wp--preset--spacing--50);
}
.lx-article {
	height: 100%;
	overflow: hidden;
	background: var(--wp--preset--color--accent-3);
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	transition: border-color 0.4s, transform 0.4s;
}
.lx-article:hover {
	border-color: var(--wp--preset--color--accent-2);
	transform: translateY(-4px);
}
.lx-article .wp-block-post-featured-image {
	margin: 0;
	overflow: hidden;
}
.lx-article .wp-block-post-featured-image img {
	transition: transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.lx-article:hover .wp-block-post-featured-image img {
	transform: scale(1.05);
}
.lx-article-texte {
	padding: var(--wp--preset--spacing--40);
}
.lx-article-texte > * {
	margin-block: 0 0.6rem;
}
.lx-article .wp-block-post-title a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}
.lx-article .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent-2);
}
.wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-top: 0.4rem;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	text-decoration: none;
}
.wp-block-post-excerpt__more-link::after {
	content: " →";
}
.wp-block-query-pagination {
	margin-top: var(--wp--preset--spacing--60);
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	text-transform: uppercase;
}

/* Article : bannière photo, date et titre */
.lx-article-banniere {
	padding-bottom: var(--wp--preset--spacing--60) !important;
}
.lx-article-banniere h1 {
	font-size: clamp(2.2rem, 5vw, 4.2rem);
	max-width: 22ch;
	margin-inline: auto;
}
.lx-article-corps .wp-block-post-content {
	font-size: 1.15rem;
}
.lx-navigation-articles {
	margin-block: var(--wp--preset--spacing--50) !important;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}
.lx-navigation-articles a {
	text-decoration: none;
}

/* Bannière d'ouverture des pages : titre en bas, au-dessus d'un dégradé, pour dégager les visages */
.wp-block-cover.has-parallax.is-position-bottom-center {
	padding-bottom: var(--wp--preset--spacing--60);
}
.wp-block-cover.has-parallax.is-position-bottom-center .wp-block-cover__background {
	background: linear-gradient(to top, rgba(22, 10, 17, 0.9) 0%, rgba(22, 10, 17, 0.35) 45%, rgba(22, 10, 17, 0.15) 100%) !important;
	opacity: 1 !important;
}

/* Téléphones : photo de fond en 1024 px (variable posée par functions.php) */
@media (max-width: 781px) {
	.wp-block-cover__image-background.has-parallax[style*="--lx-fond-mobile"] {
		background-image: var(--lx-fond-mobile) !important;
	}
}

/* Bannière d'ouverture des pages : titre de la page bien lisible */
.wp-block-cover.has-parallax h1 {
	font-size: clamp(2.8rem, 6vw, 5.5rem);
}

/* Galeries : petit espace et coins nets, façon planche contact */
.wp-block-gallery.has-nested-images figure.wp-block-image img {
	border-radius: 2px;
}

/* Vidéos : coins arrondis comme les images */
.wp-block-embed iframe {
	border-radius: 2px;
}

/* Vidéos YouTube au clic : vignette + bouton lecture, remplacée par le lecteur au clic */
.lx-yt,
.lx-yt-lecteur {
	display: block;
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
	border-radius: 2px;
	overflow: hidden;
	background: #000;
}
.lx-yt img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease, opacity 0.3s;
	opacity: 0.85;
}
.lx-yt:hover img,
.lx-yt:focus-visible img {
	transform: scale(1.03);
	opacity: 1;
}
.lx-yt-titre {
	position: absolute;
	inset: 0 0 auto;
	padding: 0.8em 1em 2.5em;
	background: linear-gradient(rgba(0, 0, 0, 0.75), transparent);
	color: #fff;
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 700;
	font-size: 1.05rem;
	line-height: 1.2;
	text-align: left;
}
.lx-yt-play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 4.2rem;
	height: 4.2rem;
	margin: -2.1rem 0 0 -2.1rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent-1);
	box-shadow: 0 0 0 2px var(--wp--preset--color--contrast), 0 6px 24px rgba(0, 0, 0, 0.5);
	transition: transform 0.2s, background-color 0.2s;
}
.lx-yt-play::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 54%;
	transform: translate(-50%, -50%);
	border-style: solid;
	border-width: 0.75rem 0 0.75rem 1.2rem;
	border-color: transparent transparent transparent var(--wp--preset--color--contrast);
}
.lx-yt:hover .lx-yt-play,
.lx-yt:focus-visible .lx-yt-play {
	transform: scale(1.1);
	background: var(--wp--preset--color--accent-2);
}
.lx-yt:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 3px;
}

/* Formulaire de contact (l'ancre #formulaire ne doit pas passer sous l'en-tête collant) */
#formulaire {
	scroll-margin-top: 7rem;
}
.lx-contact fieldset {
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	margin: 0 0 var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: color-mix(in srgb, var(--wp--preset--color--accent-3) 70%, transparent);
}
.lx-contact fieldset[hidden] {
	display: none;
}
.lx-contact legend {
	font-family: var(--wp--preset--font-family--titres);
	font-weight: 900;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-2);
	padding: 0 0.4em;
}
.lx-grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 0 var(--wp--preset--spacing--40);
}
.lx-champ {
	margin: 0 0 var(--wp--preset--spacing--30);
}
.lx-champ label {
	display: block;
	margin-bottom: 0.3em;
	font-weight: 500;
}
.lx-contact input[type="text"],
.lx-contact input[type="email"],
.lx-contact input[type="tel"],
.lx-contact input[type="date"],
.lx-contact input[type="number"],
.lx-contact select,
.lx-contact textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.7em 0.8em;
	font: inherit;
	color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	color-scheme: dark;
}
.lx-contact input:focus,
.lx-contact select:focus,
.lx-contact textarea:focus {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--accent-2);
}
/* Choix du type de demande : grosses étiquettes cliquables */
.lx-types {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
}
.lx-type {
	flex: 1 1 12rem;
	cursor: pointer;
}
.lx-type input {
	position: absolute;
	opacity: 0;
}
.lx-type span {
	display: block;
	height: 100%;
	box-sizing: border-box;
	padding: 0.8em 1em;
	text-align: center;
	border: 1px solid var(--wp--preset--color--accent-5);
	border-radius: 2px;
	transition: background-color 0.2s, border-color 0.2s;
}
.lx-type input:checked + span {
	background: var(--wp--preset--color--accent-1);
	border-color: var(--wp--preset--color--accent-2);
	font-weight: 600;
}
.lx-type input:focus-visible + span {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 2px;
}
/* Cases à cocher (disciplines, tapes) en colonnes */
.lx-champ-checkboxes {
	grid-column: 1 / -1;
	border: 0 !important;
	padding: 0 !important;
	background: none !important;
}
.lx-champ-checkboxes legend {
	font-family: inherit;
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: inherit;
	padding: 0;
	margin-bottom: 0.3em;
}
.lx-cases {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
	gap: 0.3em 1em;
}
.lx-cases label,
.lx-rgpd label {
	display: flex;
	gap: 0.5em;
	align-items: baseline;
	font-weight: 400;
}
.lx-contact input[type="checkbox"] {
	accent-color: var(--wp--preset--color--accent-1);
}
.lx-champ-textarea {
	margin-bottom: var(--wp--preset--spacing--30);
}
/* Erreurs et confirmation */
.lx-erreur input,
.lx-erreur select,
.lx-erreur textarea {
	border-color: #ff8a8a;
}
.lx-message-erreur {
	display: block;
	margin-top: 0.3em;
	color: #ffb3b3;
	font-size: 0.95em;
}
.lx-contact-erreurs,
.lx-contact-ok {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--40);
	border-left: 4px solid;
	border-radius: 2px;
}
.lx-contact-erreurs {
	border-color: #ff8a8a;
	background: rgba(255, 138, 138, 0.08);
}
.lx-contact-ok {
	border-color: var(--wp--preset--color--accent-2);
	background: var(--wp--preset--color--accent-6);
}
.lx-contact-ok p,
.lx-contact-erreurs p {
	margin: 0.2em 0;
}
.lx-obligatoire {
	font-size: 0.9em;
	color: var(--wp--preset--color--accent-4);
}
/* Champ piège anti-spam, invisible */
.lx-hp {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Pied de page */
.lx-footer {
	border-top: 1px solid var(--wp--preset--color--accent-5);
}
.lx-footer ul {
	list-style: none;
	padding-left: 0;
}
.lx-footer a {
	text-decoration: none;
}
.lx-footer a:hover {
	text-decoration: underline;
}
