/*
Theme Name: Laïcs Salettins
Theme URI: https://laic-lasalette.fr
Author: Laïcs de Notre-Dame de la Salette de France
Description: Thème à blocs du site des Laïcs de Notre-Dame de la Salette de France. Direction « Lumière de la montagne » : sobre, lumineux, lisible. Ne contient que la présentation ; les fonctionnalités métier sont dans l'extension laics-salettins.
Version: 0.1.0
Requires at least: 6.6
Requires PHP: 8.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: laics-salettins
*/

/* Marges latérales : 32 px, 20 px sur téléphone (utilisées par theme.json) */
:root {
	--ls-gutter: 32px;
}

@media (max-width: 600px) {
	:root {
		--ls-gutter: 20px;
	}
}

/* Chaque section porte ses propres marges latérales */
.ls-section {
	padding-left: var(--ls-gutter);
	padding-right: var(--ls-gutter);
}

/* Largeurs maximales de textes d'introduction */
.ls-max-720 {
	max-width: 720px;
}

.ls-max-820 {
	max-width: 820px;
}

/* Accessibilité : focus clavier toujours visible */
:focus-visible {
	outline: 3px solid var(--wp--preset--color--primary);
	outline-offset: 3px;
}

.has-primary-background-color :focus-visible,
.has-primary-dark-background-color :focus-visible,
.wp-block-cover :focus-visible {
	outline-color: #fff;
}

/* Zones cliquables d'au moins 44 px, texte centré (sélecteur renforcé : le menu de WordPress impose display:block) */
.wp-block-navigation .wp-block-navigation-item__content {
	box-sizing: border-box;
	display: flex;
	align-items: center;
	min-height: 44px;
}

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

/* Boutons : hauteur d'au moins 48 px */
.wp-block-button__link {
	min-height: 48px;
	justify-content: center;
}

/* Titre principal de l'accueil : 52 px, 40 px sous 900 px, 32 px sur téléphone */
.ls-titre-accueil {
	font-size: clamp(32px, 5.6vw, 52px);
}

@media (min-width: 601px) and (max-width: 900px) {
	.ls-titre-accueil {
		font-size: 40px;
	}
}

/* Bouton « Espace coordinateurs » dans le menu */
.wp-block-navigation .ls-espace .wp-block-navigation-item__content {
	gap: 8px;
	min-height: 48px;
	padding: 0 18px;
	border-radius: 8px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.wp-block-navigation .ls-espace .wp-block-navigation-item__content::before {
	content: "";
	width: 20px;
	height: 20px;
	background: currentcolor;
	-webkit-mask: var(--ls-icone-personne) center / contain no-repeat;
	mask: var(--ls-icone-personne) center / contain no-repeat;
	--ls-icone-personne: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='3.5'/%3E%3Cpath d='M5 20c1.2-3.6 4-5 7-5s5.8 1.4 7 5'/%3E%3C/svg%3E");
}

.wp-block-navigation .ls-espace .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--primary-dark);
	color: #fff;
}

/* Cartes d'événements et bandeaux : les liens du pied de page restent lisibles */
.has-primary-dark-background-color a {
	color: inherit;
}

/* Formulaires (accueil) */
.ls-form {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.ls-form label {
	font-weight: 700;
}

.ls-champ {
	min-height: 48px;
	padding: 0 16px;
	box-sizing: border-box;
	border: 1px solid #9aa6ab;
	border-radius: 8px;
	background: #fff;
	color: var(--wp--preset--color--ink);
	font: inherit;
}

.ls-bouton {
	min-height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: 8px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.ls-bouton:hover {
	background: var(--wp--preset--color--primary-dark);
}

.ls-bouton--or {
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
}

.ls-bouton--or:hover {
	background: var(--wp--preset--color--gold);
	filter: brightness(1.08);
}

.ls-case {
	display: flex;
	flex: 1 1 100%;
	gap: 10px;
	align-items: flex-start;
	font-size: 16px;
	font-weight: 400;
	color: var(--wp--preset--color--slate);
}

.ls-case input {
	width: 20px;
	height: 20px;
	margin-top: 3px;
}

/* Emplacement de carte */
.ls-carte {
	display: flex;
	min-height: 360px;
	box-sizing: border-box;
	padding: 24px;
	border: 1px solid rgb(255 255 255 / 40%);
	border-radius: 12px;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--slate);
	align-items: center;
	justify-content: center;
	text-align: center;
}

/* Sections empilées sans espace entre elles (fonds colorés jointifs) */
body .wp-site-blocks > *,
main > .ls-section,
.wp-block-post-content > .ls-section,
.wp-block-post-content > .wp-block-group {
	margin-block-start: 0;
}

/* Bandeau de titre des pages intérieures */
.ls-bandeau-titre .wp-block-post-title {
	margin: 0;
}

.ls-bandeau-titre .wp-block-breadcrumbs {
	margin: 0 0 12px;
	font-size: 15px;
	color: var(--wp--preset--color--slate);
}

.ls-bandeau-titre .wp-block-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 4px;
}

.ls-titre-page {
	font-size: clamp(32px, 5.5vw, 46px);
	line-height: 1.15;
}

.ls-max-640 {
	max-width: 640px;
}

.ls-max-800 {
	max-width: 800px;
}

/* Menu : page courante */
.wp-block-navigation .wp-block-navigation-item:not(.ls-espace) a[aria-current="page"] {
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 6px;
}

/* Pastilles : sommaire (liens) et étiquettes simples (texte) */
.wp-block-list.is-style-pastilles-liens,
.wp-block-list.is-style-pastilles {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	list-style: none;
	gap: 10px;
}

.is-style-pastilles-liens a {
	display: inline-flex;
	min-height: 44px;
	padding: 0 16px;
	align-items: center;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 999px;
	background: #fff;
	color: var(--wp--preset--color--primary);
	font-weight: 700;
	text-decoration: none;
}

.is-style-pastilles-liens a:hover {
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--primary-dark);
}

.is-style-pastilles li {
	padding: 6px 14px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 999px;
	background: #fff;
}

/* Grande citation */
.wp-block-quote.is-style-grande-citation {
	max-width: 960px;
	margin: 0 0 40px;
	padding: 8px 0 8px 28px;
	border-width: 0 0 0 3px;
	border-style: solid;
	border-color: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--primary-dark);
	font-family: var(--wp--preset--font-family--titres);
	font-size: clamp(26px, 3.2vw, 32px);
	font-style: italic;
	font-weight: 500;
	line-height: 1.35;
}

.wp-block-quote.is-style-grande-citation p {
	margin: 0;
}

/* Schéma d'organisation : rangées de trois emplacements, cartes alignées d'un niveau à l'autre */
.ls-org-niveau > .wp-block-column {
	display: flex;
	flex-direction: column;
}

.ls-org-carte {
	flex: 1;
	box-sizing: border-box;
	padding: 22px 16px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	text-align: center;
}

.ls-org-carte--equipe {
	border-top: 3px solid var(--wp--preset--color--gold);
}

.ls-org-carte > * {
	margin-block: 0;
}

.ls-org-carte > * + * {
	margin-block-start: 6px;
}

.ls-org-carte > .ls-portrait,
.ls-org-carte > .ls-portraits {
	margin-block-end: 8px;
}

.ls-org-fonction {
	line-height: 1.4;
	color: var(--wp--preset--color--slate);
}

.ls-org-nom {
	font-size: 20px;
	line-height: 1.3;
	color: var(--wp--preset--color--primary);
}

/* Portraits ronds de 96 px (silhouette grise tant qu'il n'y a pas de photo) */
.ls-portrait {
	width: 96px;
	margin-inline: auto;
}

.ls-portrait img {
	display: block;
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: 50%;
}

.ls-portraits {
	justify-content: center;
}

.ls-portraits .ls-portrait {
	flex: 0 1 96px;
	min-width: 0;
	margin-inline: 0;
}

.ls-portraits .ls-portrait img {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1;
}

/* Téléphone : les emplacements vides disparaissent, les cartes passent les unes sous les autres */
@media (max-width: 781px) {
	.ls-org-niveau > .ls-org-vide {
		display: none;
	}
}

/* Signification du logo */
.ls-sens {
	display: grid;
	margin: 0;
	gap: 14px;
}

.ls-sens dt {
	font-weight: 700;
}

.ls-sens dd {
	margin: 0;
	color: var(--wp--preset--color--slate);
}

/* Formulaire de contact (balisage fourni par l'extension laics-salettins) */
.ls-formulaire {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.ls-formulaire .ls-note {
	margin: 0;
	font-size: 16px;
	color: var(--wp--preset--color--slate);
}

.ls-paire {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

@media (max-width: 700px) {
	.ls-paire {
		grid-template-columns: minmax(0, 1fr);
	}
}

.ls-champ-groupe {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.ls-formulaire .ls-champ {
	min-height: 52px;
	width: 100%;
}

.ls-formulaire select.ls-champ {
	padding: 0 12px;
}

.ls-formulaire textarea.ls-champ {
	min-height: 0;
	padding: 14px 16px;
	resize: vertical;
}

.ls-formulaire .ls-champ[aria-invalid="true"] {
	border-color: var(--wp--preset--color--rose);
	border-width: 2px;
}

.ls-formulaire .ls-bouton,
.ls-merci .ls-bouton {
	display: inline-flex;
	min-height: 52px;
	padding: 0 28px;
	align-items: center;
	text-decoration: none;
}

.ls-bouton--contour {
	min-height: 48px;
	padding: 0 20px;
	border: 1px solid var(--wp--preset--color--primary);
	background: #fff;
	color: var(--wp--preset--color--primary);
}

.ls-bouton--contour:hover {
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--primary-dark);
}

.ls-lettre {
	margin: 0;
	padding: 18px 20px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	background: var(--wp--preset--color--ivory-light);
}

/* La légende est placée dans la zone colorée (par défaut, elle chevauche la bordure) */
.ls-lettre legend {
	float: left;
	width: 100%;
	margin: 0 0 8px;
	padding: 0;
	font-weight: 700;
}

.ls-lettre legend + * {
	clear: both;
}

.ls-radios {
	display: flex;
	flex-wrap: wrap;
	margin: 4px 0 6px;
	gap: 12px 32px;
}

.ls-radio {
	display: flex;
	min-height: 44px;
	gap: 10px;
	align-items: center;
	font-weight: 400;
}

.ls-radio input {
	width: 20px;
	height: 20px;
}

/* Champ piège contre les robots : invisible, hors de l'écran */
.ls-piege {
	position: absolute;
	left: -10000px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.ls-alerte {
	padding: 18px 20px;
	border: 2px solid var(--wp--preset--color--rose);
	border-radius: 12px;
	background: var(--wp--preset--color--label-fix-bg);
	color: var(--wp--preset--color--label-fix-text);
}

.ls-alerte p,
.ls-alerte ul {
	margin: 0;
}

.ls-alerte ul {
	padding-left: 22px;
}

.ls-alerte a {
	color: inherit;
}

.ls-erreur {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--wp--preset--color--label-fix-text);
}

.ls-merci {
	padding: 36px;
	border: 1px solid var(--wp--preset--color--sand);
	border-top: 4px solid var(--wp--preset--color--gold);
	border-radius: 12px;
}

.ls-merci h2 {
	margin: 0 0 10px;
	font-size: 30px;
}

.ls-merci p {
	margin: 0 0 24px;
}

.ls-merci p:last-child {
	margin-bottom: 0;
}

/* Texte masqué à l'écran mais lu par les lecteurs d'écran (précise le sens d'un lien) */
.ls-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.ls-max-760 {
	max-width: 760px;
}

/* Liens en gras de la même couleur que les liens du site */
.ls-lien-fort {
	font-weight: 700;
}

/* Liens présentés comme des boutons */
a.ls-bouton {
	display: inline-flex;
	min-height: 48px;
	padding: 0 22px;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #fff;
}

a.ls-bouton:hover {
	color: #fff;
}

a.ls-bouton.ls-bouton--contour {
	color: var(--wp--preset--color--primary);
}

a.ls-bouton.ls-bouton--contour:hover {
	color: var(--wp--preset--color--primary-dark);
}

/* Liste des groupes : filtres dans le bandeau */
.ls-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: flex-end;
}

.ls-filtres__recherche {
	flex: 2 1 320px;
}

.ls-filtres__region {
	flex: 1 1 240px;
}

.ls-filtres label {
	font-weight: 700;
}

.ls-filtres .ls-champ {
	min-height: 52px;
	width: 100%;
}

.ls-filtres select.ls-champ {
	padding: 0 12px;
}

.ls-filtres .ls-bouton,
.ls-filtres a.ls-bouton {
	min-height: 52px;
	padding: 0 22px;
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}

/* Mise en page principale + colonne latérale (carte) */
.ls-mise-en-page {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	align-items: flex-start;
}

.ls-mise-en-page__principal {
	flex: 999 1 560px;
	min-width: 0;
}

.ls-mise-en-page__lateral {
	flex: 1 1 300px;
	min-width: 0;
}

.ls-compteur {
	margin: 0 0 20px;
	font-size: 19px;
}

.ls-compteur span {
	color: var(--wp--preset--color--slate);
}

/* Cartes des groupes */
.ls-cartes {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}

.ls-carte-groupe {
	display: flex;
	flex-direction: column;
	padding: 22px 24px;
	gap: 6px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-carte-groupe p,
.ls-carte-groupe h2 {
	margin: 0;
}

.ls-carte-groupe h2 {
	font-size: 24px;
}

.ls-carte-groupe__region {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-carte-groupe__infos {
	color: var(--wp--preset--color--slate);
}

.ls-carte-groupe .ls-lien-fort {
	margin-top: 8px;
}

.ls-vide {
	padding: 32px;
	border: 1px dashed #9aa6ab;
	border-radius: 12px;
	text-align: center;
}

.ls-vide p {
	margin: 0 0 12px;
	font-size: 19px;
}

.ls-vide p.ls-note {
	margin: 0;
	font-size: 18px;
}

.ls-note {
	color: var(--wp--preset--color--slate);
}

.ls-carte--haute {
	min-height: 520px;
	border-color: var(--wp--preset--color--sand);
}

.ls-carte--moyenne {
	min-height: 220px;
	border-color: var(--wp--preset--color--sand);
}

/* Bandeau d'un groupe : lieu, rythme, coordinateur */
.ls-infos-groupe {
	display: flex;
	flex-wrap: wrap;
	margin: 24px 0 0;
	padding: 0;
	gap: 12px 32px;
	list-style: none;
	font-size: 17px;
}

.ls-infos-groupe li {
	display: flex;
	gap: 8px;
	align-items: center;
}

/* Encadrés de la colonne latérale d'un groupe */
.ls-encart {
	padding: 28px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-encart--clair {
	background: var(--wp--preset--color--ivory-light);
}

.ls-encart h2 {
	margin: 0 0 12px;
	font-size: 24px;
}

.ls-encart p {
	margin: 0 0 16px;
}

.ls-encart p:last-child {
	margin-bottom: 0;
}

.ls-encart .ls-encart__fort {
	margin-bottom: 4px;
	font-weight: 700;
}

/* Publications d'un groupe */
.ls-publication {
	display: flex;
	flex-wrap: wrap;
	padding: 28px 0;
	gap: 24px;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.ls-publication__photo {
	flex: 0 0 220px;
	height: 150px;
	overflow: hidden;
	border-radius: 10px;
}

.ls-publication__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ls-publication__texte {
	flex: 1 1 300px;
	min-width: 0;
}

.ls-publication__texte p {
	margin: 0 0 10px;
}

.ls-publication__texte h3 {
	margin: 4px 0 8px;
	font-size: 24px;
}

.ls-publication__texte h3 a {
	color: inherit;
	text-decoration: none;
}

.ls-publication__texte h3 a:hover {
	text-decoration: underline;
}

.ls-publication__date {
	margin: 0;
	font-size: 16px;
	font-weight: 700;
	color: var(--wp--preset--color--gold-dark);
}

.ls-publications > .ls-note {
	margin: 0 0 24px;
}

.ls-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 32px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--sand);
}

/* Formulaire « Contacter le groupe » sous les publications */
.ls-formulaire-groupe {
	margin-top: 56px;
	padding-top: 40px;
	border-top: 3px solid var(--wp--preset--color--gold);
}

.ls-formulaire-groupe h2 {
	margin: 0 0 24px;
	font-size: 32px;
}

/* Le bandeau d'une publication : date et lien vers le groupe au-dessus du titre */
.ls-bandeau-titre .ls-publication__date {
	margin: 0 0 4px;
}

.ls-bandeau-titre .ls-note {
	margin: 0 0 12px;
}

/* Espace des coordinateurs : en-tête */
.ls-entete-espace {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	gap: 12px 24px;
	align-items: center;
	font-size: 17px;
}

.ls-entete-espace__nom {
	display: flex;
	gap: 8px;
	align-items: center;
}

/* Connexion */
.ls-connexion h1 {
	margin: 12px 0 10px;
	font-size: 34px;
}

.ls-connexion > p {
	margin: 0 0 24px;
}

.ls-connexion > p.ls-note {
	margin-top: 20px;
	font-size: 16px;
}

.ls-connexion .ls-alerte {
	margin-bottom: 20px;
}

.ls-connexion .ls-formulaire .ls-bouton {
	min-height: 52px;
	width: 100%;
	justify-content: center;
}

.ls-liens-connexion {
	display: flex;
	flex-direction: column;
	margin-top: 28px;
	padding-top: 20px;
	gap: 8px;
	border-top: 1px solid var(--wp--preset--color--sand);
	font-size: 17px;
}

@media (max-width: 600px) {
	.ls-carte-connexion {
		padding: 28px 22px !important;
	}
}

/* Espace : bandeau et liste des publications */
.ls-bandeau-espace {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	align-items: flex-end;
	justify-content: space-between;
}

.ls-surtitre-espace {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-bandeau-espace h1 {
	margin: 0;
	font-size: 40px;
}

.ls-bandeau-espace__groupe {
	margin: 6px 0 0;
	font-size: 19px;
}

a.ls-bouton.ls-bouton--grand {
	gap: 10px;
	padding: 14px 24px;
	font-size: 19px;
}

.ls-publication-espace {
	display: flex;
	flex-wrap: wrap;
	margin-bottom: 16px;
	padding: 22px 24px;
	gap: 12px 24px;
	align-items: center;
	justify-content: space-between;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-publication-espace__texte {
	flex: 1 1 320px;
	min-width: 0;
}

.ls-publication-espace h3 {
	margin: 8px 0 2px;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 20px;
	font-weight: 700;
}

.ls-publication-espace p {
	margin: 0;
	font-size: 16px;
}

.ls-badge {
	display: inline-block;
	padding: 3px 12px;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
}

.ls-badge--corriger {
	background: var(--wp--preset--color--label-fix-bg);
	color: var(--wp--preset--color--label-fix-text);
}

.ls-badge--attente {
	background: var(--wp--preset--color--label-upcoming-bg);
	color: var(--wp--preset--color--label-upcoming-text);
}

.ls-badge--publiee {
	background: var(--wp--preset--color--label-published-bg);
	color: var(--wp--preset--color--label-published-text);
}

.ls-badge--brouillon {
	background: #eceeef;
	color: #3a4449;
}

.ls-message-national {
	margin-top: 10px !important;
	padding: 10px 14px;
	border-radius: 8px;
	background: #fbf1f3;
	color: var(--wp--preset--color--label-fix-text);
}

.ls-vide-espace {
	padding: 28px;
	border: 1px dashed #9aa6ab;
	border-radius: 12px;
	color: var(--wp--preset--color--slate);
}

.ls-lateral-espace {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.ls-lateral-espace .ls-encart h2,
.ls-lateral-espace .ls-encart p {
	margin: 0 0 12px;
}

.ls-lateral-espace .ls-encart h2 {
	font-size: 22px;
}

.ls-lateral-espace .ls-encart p.ls-note {
	margin-bottom: 4px;
	font-size: 16px;
}

.ls-aide-espace {
	padding-top: 18px;
	border-top: 3px solid var(--wp--preset--color--gold);
}

.ls-aide-espace h2 {
	margin: 0 0 6px;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 18px;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
}

.ls-aide-espace p {
	margin: 0 0 4px;
	font-size: 16px;
}

.ls-mot-de-passe .ls-alerte {
	margin-bottom: 20px;
}

/* Nouvelle publication : titre, étapes, aperçu */
.ls-titre-redaction {
	margin: 0 0 8px;
	font-size: clamp(28px, 4.5vw, 38px);
}

.ls-etapes {
	display: flex;
	flex-wrap: wrap;
	margin: 16px 0 36px;
	padding: 0;
	gap: 10px;
	list-style: none;
	font-size: 16px;
}

.ls-etape {
	padding: 6px 14px;
	border-radius: 999px;
	background: #eceeef;
	color: #3a4449;
	font-weight: 700;
}

.ls-etape--faite {
	background: var(--wp--preset--color--label-published-bg);
	color: var(--wp--preset--color--label-published-text);
}

.ls-etape--courante {
	background: var(--wp--preset--color--primary);
	color: #fff;
}

.ls-sous-titre {
	margin: 0 0 6px;
	font-size: 28px;
}

.ls-actions {
	display: flex;
	flex-wrap: wrap;
	padding-top: 8px;
	gap: 12px;
}

.ls-actions form {
	margin: 0;
}

.ls-actions .ls-bouton,
.ls-actions a.ls-bouton {
	min-height: 52px;
	padding: 0 24px;
}

.ls-apercu {
	margin: 20px 0 28px;
	padding: 28px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-apercu h3 {
	margin: 4px 0 16px;
	font-size: 28px;
}

.ls-apercu__photo {
	margin: 0 0 20px;
}

.ls-apercu__photo img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}

.ls-apercu__texte > :first-child {
	margin-top: 0;
}

.ls-apercu__texte > :last-child {
	margin-bottom: 0;
}

.ls-aide-redaction {
	padding: 24px;
	border-radius: 12px;
	background: var(--wp--preset--color--ivory);
	color: #3a4449;
}

.ls-aide-redaction h2 {
	margin: 0 0 10px;
	font-size: 22px;
}

.ls-aide-redaction p {
	margin: 0;
	font-size: 16px;
}

.ls-aide-redaction ol {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding-left: 22px;
	gap: 8px;
}

.ls-photo-actuelle {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
}

.ls-photo-actuelle img {
	width: 120px;
	height: auto;
	border-radius: 8px;
}

.ls-succes {
	margin: 0;
	padding: 14px 18px;
	border: 1px solid var(--wp--preset--color--sand);
	border-left: 4px solid var(--wp--preset--color--gold);
	border-radius: 8px;
	background: var(--wp--preset--color--ivory-light);
	font-weight: 700;
}

.ls-informations > p {
	margin: 0 0 20px;
}

.ls-informations .ls-formulaire {
	margin-bottom: 20px;
}

.ls-formulaire input[type="file"] {
	font: inherit;
	font-size: 16px;
}

/* Petites Salettes : liste */
.ls-carte--panorama {
	min-height: 360px;
	margin-bottom: 36px;
	border-color: var(--wp--preset--color--sand);
}

.ls-cartes--salettes {
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

.ls-carte-salette,
.ls-carte-article {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-carte-salette__photo,
.ls-carte-article__photo {
	display: flex;
	aspect-ratio: 16 / 10;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--slate);
	align-items: center;
	justify-content: center;
}

.ls-carte-salette__photo img,
.ls-carte-article__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.ls-carte-salette__texte,
.ls-carte-article__texte {
	display: flex;
	flex-direction: column;
	padding: 20px 24px 22px;
	gap: 6px;
}

.ls-carte-salette__texte p,
.ls-carte-salette__texte h2,
.ls-carte-article__texte p,
.ls-carte-article__texte h2,
.ls-carte-article__texte h3 {
	margin: 0;
}

.ls-carte-salette__texte h2,
.ls-carte-article__texte h2,
.ls-carte-article__texte h3 {
	font-size: 24px;
}

.ls-carte-salette .ls-lien-fort,
.ls-carte-article .ls-lien-fort {
	margin-top: 8px;
}

.ls-plus {
	display: flex;
	margin: 32px 0 0;
	gap: 16px;
	flex-wrap: wrap;
	align-items: center;
}

/* Petites Salettes : fiche */
.ls-surtitre-salette {
	margin: 0 0 8px;
	font-size: var(--wp--preset--font-size--surtitre);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-salette-section {
	margin-top: 40px;
}

.ls-salette-section h2 {
	margin: 0 0 12px;
	font-size: 32px;
}

.ls-salette-texte > :first-child {
	margin-top: 0;
}

/* Galeries de photos (fiches, comptes rendus, articles) : photos entières, rangée de même hauteur.
   Chaque <figure> reçoit sa proportion (--ls-proportion) : sa largeur en découle, donc sa hauteur est
   la même pour toute la rangée, sans rien couper. */
.wp-block-gallery.has-nested-images.has-nested-images {
	display: flex;
	flex-flow: row wrap;
	gap: 16px;
	justify-content: center;
	align-items: flex-start;
	margin-top: 24px;
}

.wp-block-gallery.wp-block-gallery.has-nested-images.has-nested-images figure.wp-block-image:not(#individual-image) {
	--ls-p: var(--ls-proportion, 1.5);
	flex: calc(var(--ls-p) * 100) 1 calc(var(--ls-p) * 300px);
	width: auto;
	max-width: calc(var(--ls-p) * 360px);
	min-width: 0;
	margin: 0;
}

.wp-block-gallery.wp-block-gallery.has-nested-images.has-nested-images figure.wp-block-image:not(#individual-image) img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	object-fit: contain;
}

@media (max-width: 600px) {
	.wp-block-gallery.wp-block-gallery.has-nested-images.has-nested-images figure.wp-block-image:not(#individual-image) {
		flex-basis: 100%;
		max-width: min(100%, calc(var(--ls-p) * 70vh));
	}
}

.ls-venir-prier {
	margin: 0;
}

.ls-venir-prier dt {
	margin-top: 14px;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-venir-prier dt:first-child {
	margin-top: 0;
}

.ls-venir-prier dd {
	margin: 2px 0 0;
}

.ls-salette-validation {
	margin: 0;
	font-size: 16px;
}

.ls-salette-section + .ls-formulaire-groupe,
.wp-block-column > .ls-formulaire-groupe {
	margin-top: 56px;
}

/* Espace : plusieurs groupes et chapelles */
.ls-pour {
	margin: 0 0 24px;
	padding: 0;
	border: 0;
}

.ls-pour legend {
	margin-bottom: 10px;
	padding: 0;
	font-size: 20px;
	font-weight: 700;
}

.ls-pour__choix {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}

.ls-pour__option {
	display: grid;
	min-height: 64px;
	padding: 14px 16px;
	column-gap: 12px;
	border: 2px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	cursor: pointer;
	grid-template-columns: auto 1fr;
	align-items: center;
}

.ls-pour__option:has(input:checked) {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--ivory-light);
}

.ls-pour__option input {
	width: 22px;
	height: 22px;
	grid-row: 1 / span 2;
}

.ls-pour__type {
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-pour__nom {
	font-weight: 700;
}

.ls-destination {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-left: 4px solid var(--wp--preset--color--gold);
	background: var(--wp--preset--color--ivory-light);
}

.ls-liste-choix,
.ls-actions-liste {
	margin: 0;
	padding: 0;
	list-style: none;
}

.ls-liste-choix li,
.ls-actions-liste li {
	margin: 0 0 10px;
}

.ls-actions-liste li:last-child {
	margin-bottom: 0;
}

.ls-filtre-publications {
	display: flex;
	margin: 0 0 20px;
	gap: 8px;
	flex-wrap: wrap;
}

.ls-filtre-publications__lien {
	display: inline-flex;
	min-height: 44px;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 8px;
	align-items: center;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}

.ls-filtre-publications__lien[aria-current="page"] {
	border-color: var(--wp--preset--color--primary);
	background: var(--wp--preset--color--primary);
	color: #fff;
}

.ls-badge--page {
	margin-left: 6px;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--ink);
}

.ls-section-espace {
	margin-top: 48px;
}

.ls-section-espace h2 {
	margin: 0 0 16px;
	font-size: 30px;
}

.ls-photo-fiche {
	margin: 0 0 20px;
	padding: 16px 20px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
}

.ls-photo-fiche legend {
	padding: 0 8px;
	font-weight: 700;
}

/* Mon espace : cartes d'action, onglets */
.ls-actions-espace h2 {
	margin: 0 0 16px;
	font-size: 30px;
}

.ls-actions-espace__cartes {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.ls-action-carte {
	display: flex;
	padding: 28px;
	gap: 10px;
	border: 2px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	background: var(--wp--preset--color--ivory-light);
	flex-direction: column;
	align-items: flex-start;
}

.ls-action-carte h3 {
	margin: 0;
	font-size: 26px;
}

.ls-action-carte p {
	margin: 0 0 8px;
}

.ls-alerte-espace {
	margin: 0 0 28px;
	padding: 14px 20px;
	border-left: 4px solid var(--wp--preset--color--rose);
	border-radius: 0 8px 8px 0;
	background: #fbe3e8;
	color: #6e1f30;
}

.ls-alerte-espace p {
	margin: 4px 0;
}

.ls-alerte-espace a {
	color: #6e1f30;
}

.ls-cartes--rattachements {
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

.ls-cartes--rattachements h3 {
	margin: 0 0 12px;
	font-size: 24px;
}

.ls-onglets {
	display: flex;
	margin: 0 0 24px;
	border-bottom: 3px solid var(--wp--preset--color--sand);
	flex-wrap: wrap;
}

.ls-onglets__lien {
	display: inline-flex;
	min-height: 48px;
	margin-bottom: -3px;
	padding: 0 20px;
	border-bottom: 3px solid transparent;
	align-items: center;
	font-size: 19px;
	font-weight: 700;
	text-decoration: none;
	color: var(--wp--preset--color--slate);
}

.ls-onglets__lien[aria-current="page"] {
	border-bottom-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--primary);
}

.ls-panneau-espace > .ls-note {
	margin: 0 0 20px;
}

/* Validation des fiches : comparaison avant / après (lisible sur téléphone). */
.ls-validation .ls-publication-espace { margin-bottom: 14px; }
.ls-avant-apres { margin: 0 0 22px; padding: 16px; border: 1px solid var(--wp--preset--color--sand); border-radius: 12px; background: #fff; }
.ls-avant-apres h3 { margin: 0 0 12px; font-size: 1.15rem; }
.ls-avant-apres__colonnes { display: grid; grid-template-columns: 1fr; gap: 12px; }
.ls-avant-apres__colonnes > div { padding: 12px 14px; border-radius: 8px; overflow-wrap: anywhere; }
.ls-avant-apres__colonnes p { margin: 0 0 6px; }
.ls-avant-apres__avant { background: #f4f1ea; }
.ls-avant-apres__apres { background: #eaf4ee; border: 2px solid #2f7a4d; }
.ls-avant-apres__etiquette { font-weight: 700; text-transform: uppercase; font-size: .85rem; letter-spacing: .04em; }
.ls-avant-apres img { max-width: 100%; height: auto; border-radius: 6px; }
.ls-vide-texte { font-style: italic; opacity: .75; }
.ls-decision { margin-top: 28px; }
.ls-decision .ls-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.ls-decision .ls-bouton { min-height: 52px; flex: 1 1 220px; }
@media (min-width: 700px) { .ls-avant-apres__colonnes { grid-template-columns: 1fr 1fr; } }

.ls-certification { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 16px; font-weight: 600; }
.ls-certification input { margin-top: 4px; flex: 0 0 auto; width: 22px; height: 22px; }

.ls-mention { margin-top: 18px; font-style: italic; }

/* Cartes « Que voulez-vous faire ? » : les boutons sont alignés en bas, quelle que soit la longueur du texte. */
.ls-action-carte {
	height: 100%;
	box-sizing: border-box;
}

.ls-action-carte .ls-bouton {
	margin-top: auto;
	align-self: stretch;
	text-align: center;
}

/* Événements : liste, cartes, page d'un événement */
.ls-filtres__date {
	flex: 1 1 160px;
}

.ls-onglets--evenements {
	margin-top: 0;
}

.ls-evenements {
	display: grid;
	gap: 20px;
}

.ls-evt {
	display: flex;
	padding: 24px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	gap: 24px;
	align-items: flex-start;
}

.ls-evt--passe {
	background: var(--wp--preset--color--ivory-light);
}

.ls-evt__date {
	display: flex;
	flex: 0 0 76px;
	margin: 0;
	padding: 10px 0;
	border-radius: 10px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	flex-direction: column;
	align-items: center;
	line-height: 1.1;
}

.ls-evt--passe .ls-evt__date {
	background: var(--wp--preset--color--slate);
}

.ls-evt__jour {
	font-size: 34px;
	font-weight: 700;
}

.ls-evt__mois {
	font-size: 16px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ls-evt__texte {
	display: flex;
	min-width: 0;
	flex: 1;
	flex-direction: column;
	gap: 6px;
}

.ls-evt__texte p,
.ls-evt__texte h2 {
	margin: 0;
}

.ls-evt__texte h2 {
	font-size: 26px;
}

.ls-evt__texte h2 a {
	text-decoration: none;
	color: inherit;
}

.ls-evt__texte h2 a:hover,
.ls-evt__texte h2 a:focus-visible {
	text-decoration: underline;
}

.ls-evt__organisateur {
	font-size: var(--wp--preset--font-size--surtitre);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-evt__infos {
	color: var(--wp--preset--color--slate);
}

.ls-evt__action {
	margin-top: 10px !important;
}

.ls-evt__action .ls-bouton {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	text-decoration: none;
}

.ls-evt-entete {
	display: flex;
	flex-wrap: wrap;
	margin: 24px 0 0;
	padding: 0;
	gap: 8px 32px;
	list-style: none;
	font-size: 18px;
}

.ls-infos {
	margin: 0 0 16px;
}

.ls-infos dt {
	margin-top: 12px;
	font-size: var(--wp--preset--font-size--surtitre);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gold-dark);
}

.ls-infos dd {
	margin: 2px 0 0;
}

.ls-compte-rendu {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 3px solid var(--wp--preset--color--gold);
}

.ls-compte-rendu h2 {
	margin: 0 0 12px;
	font-size: 32px;
}

@media (max-width: 600px) {
	.ls-evt {
		padding: 18px;
		gap: 16px;
	}

	.ls-evt__date {
		flex-basis: 60px;
	}

	.ls-evt__jour {
		font-size: 28px;
	}

	.ls-evt__texte h2 {
		font-size: 22px;
	}
}

.ls-suppression {
	margin-top: 32px;
	padding-top: 20px;
	border-top: 1px solid var(--wp--preset--color--sand);
}

.ls-bouton--danger {
	border: 2px solid #9b2c2c;
	background: transparent;
	color: #9b2c2c;
}

.ls-bouton--danger:hover,
.ls-bouton--danger:focus-visible {
	background: #9b2c2c;
	color: #fff;
}

.ls-compte-rendu-saisie {
	margin-top: 32px;
	padding-top: 20px;
	border-top: 3px solid var(--wp--preset--color--gold);
}

.ls-compte-rendu-saisie h2 {
	margin: 0 0 8px;
	font-size: 28px;
}

.ls-evenements-courts {
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
}

.ls-evenements-courts li {
	display: flex;
	margin-bottom: 12px;
	flex-direction: column;
}

.ls-evt-accueils {
	display: grid;
	gap: 32px;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.ls-evt-accueil {
	display: flex;
	padding: 32px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	flex-direction: column;
	gap: 12px;
}

.ls-evt-accueil--passe {
	background: var(--wp--preset--color--ivory-light);
}

.ls-evt-accueil p,
.ls-evt-accueil h3 {
	margin: 0;
}

.ls-evt-accueil h3 a {
	text-decoration: none;
	color: inherit;
}

.ls-evt-accueil__etiquette {
	align-self: flex-start;
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--wp--preset--color--mist);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ls-evt-accueil__infos {
	color: var(--wp--preset--color--slate);
}

.ls-evt-accueil .ls-bouton {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	text-decoration: none;
}

/* Accueil : choix « groupe » ou « petite Salette » sous le champ de recherche */
.ls-choix-recherche {
	display: flex;
	margin: 4px 0 0;
	padding: 0;
	border: 0;
	gap: 10px;
	flex-wrap: wrap;
	width: 100%;
}

.ls-choix-recherche label {
	display: inline-flex;
	width: auto !important;
	font-weight: 400;
	cursor: pointer;
}

.ls-choix-recherche input {
	position: absolute;
	opacity: 0;
}

.ls-choix-recherche span {
	display: inline-flex;
	min-height: 44px;
	padding: 0 18px;
	border: 2px solid #fff;
	border-radius: 999px;
	align-items: center;
	color: #fff;
}

.ls-choix-recherche input:checked + span {
	border-color: var(--wp--preset--color--gold);
	background: var(--wp--preset--color--gold);
	color: var(--wp--preset--color--ink);
	font-weight: 700;
}

.ls-choix-recherche input:focus-visible + span {
	outline: 3px solid var(--wp--preset--color--gold-light);
	outline-offset: 2px;
}

/* Articles : pagination, article seul */
.ls-pagination--articles ul {
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	padding: 0;
	gap: 8px 12px;
	list-style: none;
	align-items: center;
}

.ls-pagination--articles a,
.ls-pagination--articles span.page-numbers {
	display: inline-flex;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	border-radius: 8px;
	align-items: center;
	justify-content: center;
}

.ls-pagination--articles a {
	font-weight: 700;
}

.ls-pagination--articles .current {
	background: var(--wp--preset--color--ivory);
	border: 1px solid var(--wp--preset--color--sand);
	font-weight: 700;
}

.ls-article__meta {
	display: flex;
	margin: 14px 0 0;
	gap: 6px 16px;
	flex-wrap: wrap;
	color: var(--wp--preset--color--slate);
}

.ls-article__categorie a {
	font-size: var(--wp--preset--font-size--surtitre);
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--gold-dark);
}

.ls-article__image img {
	width: 100%;
	height: auto;
	border-radius: 12px;
}

.ls-article__retour {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--wp--preset--color--sand);
	font-weight: 700;
}

/* Version du site (pied de page) : discrète, centrée. */
.ls-version-site {
	text-align: center;
	margin: 8px 0 0;
}
