/*
 * La petite étincelle : styles des composants.
 * Couleurs, polices et tailles viennent de theme.json (variables --wp--preset--…).
 */

:root {
	--lpe-nuit: var(--wp--preset--color--nuit);
	--lpe-or: var(--wp--preset--color--or);
	--lpe-or-clair: var(--wp--preset--color--or-clair);
	--lpe-or-texte: var(--wp--preset--color--or-texte);
	--lpe-creme: var(--wp--preset--color--creme);
	--lpe-brume: var(--wp--preset--color--brume);
	--lpe-carte: var(--wp--preset--color--carte);
	--lpe-encre: var(--wp--preset--color--encre);
	--lpe-douce: var(--wp--preset--color--encre-douce);
	--lpe-ligne: var(--wp--preset--color--ligne);
	--lpe-teinte: var(--wp--preset--color--teinte-or);
	--lpe-ombre: var(--wp--preset--shadow--douce);
	--lpe-titre: var(--wp--preset--font-family--titre);
	--lpe-rayon: var(--wp--custom--rayon--moyen);
	--lpe-etoiles:
		radial-gradient(1.5px 1.5px at 12% 22%, var(--lpe-or-clair) 50%, transparent 51%),
		radial-gradient(1px 1px at 28% 70%, var(--lpe-creme) 50%, transparent 51%),
		radial-gradient(1.5px 1.5px at 46% 14%, var(--lpe-creme) 50%, transparent 51%),
		radial-gradient(1px 1px at 62% 84%, var(--lpe-or-clair) 50%, transparent 51%),
		radial-gradient(2px 2px at 88% 18%, var(--lpe-or-clair) 50%, transparent 51%),
		radial-gradient(1px 1px at 94% 66%, var(--lpe-creme) 50%, transparent 51%),
		radial-gradient(1px 1px at 6% 88%, var(--lpe-creme) 50%, transparent 51%);
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
/* Les champs de formulaire gardent leur largeur, marge intérieure comprise. */
input, select, textarea, button { box-sizing: border-box; max-width: 100%; }
/* Tableaux : sur petit écran, ils défilent dans leur cadre au lieu d'écraser le texte. */
.wp-block-table { overflow-x: auto; }
.wp-block-table table { min-width: 34rem; }
/* En-tête, contenu et pied s'enchaînent sans espace : chaque section gère ses propres marges. */
.wp-site-blocks > * { margin-block: 0; }
/*
 * Focus clavier : anneau double, or contre l'élément et contour franc autour,
 * bleu nuit sur fond clair, or clair sur fond nuit. Lisible sur tous les fonds du site.
 */
:root { --lpe-focus: var(--lpe-nuit); }
.is-style-nuit, .has-nuit-background-color:not(.wp-element-button), .has-nuit-2-background-color:not(.wp-element-button), .lpe-hero, .lpe-serie-entete, .lpe-lecteur, .lpe-lettre--pied { --lpe-focus: var(--lpe-or-clair); }
.is-style-carte, .is-style-teinte-or { --lpe-focus: var(--lpe-nuit); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--lpe-focus); outline-offset: 2px; box-shadow: 0 0 0 2px var(--lpe-or); border-radius: 6px; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
img { height: auto; }

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

/* ---------- Styles de blocs ---------- */

.is-style-nuit { background-image: var(--lpe-etoiles); }
.is-style-surtitre { font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lpe-or-texte); }
.is-style-nuit .is-style-surtitre, .lpe-pied .is-style-surtitre { color: var(--lpe-or-clair); }

.wp-block-button.is-style-creux .wp-block-button__link {
	background: transparent; color: inherit; border: 2px solid color-mix(in srgb, currentColor 40%, transparent);
}
.wp-block-button.is-style-creux .wp-block-button__link:hover { border-color: var(--lpe-or-clair); background: transparent; }

ul.is-style-coches, ul.is-style-promesses, ul.is-style-mots, ol.is-style-etapes { list-style: none; padding-left: 0; }
ul.is-style-coches { display: grid; gap: 0.5rem; }
/* La coche est posée en absolu : le contenu du point (gras + texte) reste d'un seul tenant. */
ul.is-style-coches li { position: relative; padding-left: 1.6rem; }
ul.is-style-coches li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--wp--preset--color--fables); }

ul.is-style-promesses { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; font-size: 0.9375rem; color: var(--lpe-brume); }
ul.is-style-promesses li { display: flex; align-items: center; gap: 0.45rem; }
ul.is-style-promesses li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--lpe-or); box-shadow: 0 0 8px var(--lpe-or); }

ul.is-style-mots { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.75rem; }
ul.is-style-mots li { background: var(--lpe-carte); border: 1px solid var(--lpe-ligne); border-radius: 12px; padding: 0.7rem 1rem; color: var(--lpe-douce); font-size: 0.9375rem; }
ul.is-style-mots li strong { font-family: var(--lpe-titre); font-weight: 800; font-size: 1.0625rem; color: var(--wp--preset--color--fables); }

ol.is-style-etapes { display: grid; gap: 1.1rem; counter-reset: e; }
ol.is-style-etapes li { counter-increment: e; position: relative; padding-left: 3.4rem; min-height: 2.5rem; }
ol.is-style-etapes li::before { content: counter(e); position: absolute; left: 0; top: 0; width: 2.5rem; height: 2.5rem; border-radius: 50%; border: 2px solid var(--lpe-or); color: var(--lpe-or-texte); display: grid; place-items: center; font: 800 1.125rem var(--lpe-titre); }
.is-style-nuit ol.is-style-etapes li::before { color: var(--lpe-or-clair); }
ol.is-style-etapes strong { font-family: var(--lpe-titre); font-size: 1.125rem; }
.is-style-nuit ol.is-style-etapes strong { color: var(--lpe-or-clair); }
.is-style-nuit ol.is-style-etapes li { color: var(--lpe-brume); }

.wp-block-group.is-style-question { border: 2px dashed var(--lpe-ligne); border-radius: var(--lpe-rayon); padding: 1rem 1.25rem; }
.wp-block-group.is-style-fiche-papier {
	background: #FFFDF8; color: #1B2140; border-radius: 6px; border-top: 6px solid var(--wp--preset--color--poesie);
	padding: 1.4rem 1.4rem 1.1rem; box-shadow: 0 2px 4px rgba(0,0,0,.08), 0 18px 40px rgba(14,22,58,.18);
	transform: rotate(1.6deg); max-width: 22rem; margin-inline: auto; font-size: 0.875rem;
}
.wp-block-group.is-style-fiche-papier > * { margin-block: 0.4rem; }
.wp-block-group.is-style-fiche-papier .is-style-surtitre { color: var(--wp--preset--color--poesie); font-size: 0.6875rem; margin-top: 0.7rem; }

/* ---------- En-tête et navigation ---------- */

.lpe-entete { position: relative; z-index: 20; }
.lpe-entete .wp-block-site-logo img { border-radius: 50%; }
.lpe-entete .wp-block-navigation a { color: var(--lpe-creme); text-decoration: none; }
.lpe-entete .wp-block-navigation a:hover, .lpe-entete .wp-block-navigation .current-menu-item > a { color: var(--lpe-or-clair); }
.lpe-entete .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.lpe-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.25rem; }
.lpe-entete .lpe-bouton-yt .wp-block-button__link { padding: 0.5rem 1rem; font-size: 0.9375rem; white-space: nowrap; }
@media (max-width: 1020px) { .lpe-entete .lpe-bouton-yt { display: none; } }

/* ---------- Accueil ---------- */

.lpe-hero {
	background-image: var(--lpe-etoiles), radial-gradient(60% 80% at 78% 40%, rgba(246,185,59,.2), transparent 70%), linear-gradient(180deg, var(--lpe-nuit), var(--wp--preset--color--nuit-2));
}
.lpe-hero h1 { line-height: 1.02; }
.lpe-hero h1 em { font-style: normal; color: var(--lpe-or); text-shadow: 0 0 28px rgba(246,185,59,.55); }
.lpe-hero .lpe-hero__texte { color: var(--lpe-brume); font-size: 1.125rem; max-width: 46ch; }

.lpe-tete-section { gap: 0.5rem 1.5rem; }
.lpe-tete-section h2 { margin: 0; }
.lpe-lien-fleche a, a.lpe-lien { font-weight: 800; color: var(--lpe-or-texte); text-decoration: none; }
.lpe-lien-fleche a { white-space: nowrap; }
.lpe-lien-fleche a:hover, a.lpe-lien:hover { text-decoration: underline; }
.is-style-nuit a.lpe-lien { color: var(--lpe-or-clair); }

.lpe-icone::before {
	content: ""; display: block; width: 2.1rem; height: 2.1rem; background: var(--lpe-or-texte);
	-webkit-mask: var(--icone) center / contain no-repeat; mask: var(--icone) center / contain no-repeat;
}
.lpe-icone--musee { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12 16 5l12 7M6 12v12M12 12v12M20 12v12M26 12v12M4 27h24'/%3E%3C/svg%3E"); }
.lpe-icone--commune { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 27V13l11-7 11 7v14M12 27v-8h8v8M3 27h26'/%3E%3C/svg%3E"); }
.lpe-icone--livre { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 9c-3-2.5-7-3-11-2.5v18c4-.5 8 0 11 2.5 3-2.5 7-3 11-2.5v-18c-4-.5-8 0-11 2.5zM16 9v18'/%3E%3C/svg%3E"); }
.lpe-encadre { border: 2px solid var(--lpe-ligne); border-radius: 18px; }

/* ---------- Lecteur YouTube après accord ---------- */

.lpe-lecteur { position: relative; aspect-ratio: 16 / 9; max-width: 100%; border-radius: 18px; overflow: hidden; background: var(--lpe-nuit); box-shadow: var(--lpe-ombre); color: var(--lpe-creme); }
.is-style-nuit .lpe-lecteur, .lpe-hero .lpe-lecteur { box-shadow: var(--wp--preset--shadow--doree); }
.lpe-lecteur > img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lpe-lecteur iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lpe-lecteur__play { position: absolute; inset: 0; display: grid; place-items: center; border: 0; padding: 0; cursor: pointer; color: var(--lpe-creme); background: linear-gradient(0deg, rgba(14,22,58,.7), transparent 55%); }
.lpe-lecteur__rond { width: 76px; height: 76px; border-radius: 50%; background: var(--lpe-or); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(246,185,59,.25); transition: transform .2s; }
.lpe-lecteur__play:hover .lpe-lecteur__rond { transform: scale(1.07); }
.lpe-lecteur__rond svg { width: 28px; height: 28px; margin-left: 4px; fill: var(--lpe-nuit); }
.lpe-lecteur__legende { position: absolute; left: 1rem; right: 1rem; bottom: 0.8rem; font-weight: 700; font-size: 0.9375rem; text-align: left; }
.lpe-lecteur__accord { position: absolute; inset: 0; background: rgba(10,15,40,.94); display: grid; align-content: center; gap: 0.7rem; padding: 1.25rem 1.6rem; font-size: 0.9375rem; }
.lpe-lecteur__accord[hidden] { display: none; }
.lpe-lecteur__accord p { margin: 0; color: var(--lpe-brume); }
.lpe-lecteur__accord .lpe-lecteur__question { font: 800 1.3rem/1.2 var(--lpe-titre); color: var(--lpe-or-clair); }
.lpe-lecteur__accord label { display: flex; gap: 0.5rem; align-items: center; color: var(--lpe-brume); font-size: 0.875rem; }
.lpe-lecteur__boutons { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.lpe-lecteur__lancer, .lpe-lecteur__boutons a { font: 800 0.9375rem var(--wp--preset--font-family--texte); border-radius: 999px; padding: 0.6rem 1.1rem; text-decoration: none; cursor: pointer; }
.lpe-lecteur__lancer { background: var(--lpe-or); color: var(--lpe-nuit); border: 0; }
.lpe-lecteur__lancer:hover { background: var(--lpe-or-clair); }
.lpe-lecteur__boutons a { border: 2px solid rgba(245,241,230,.35); color: var(--lpe-creme); }
.lpe-lecteur.est-lance .lpe-lecteur__play, .lpe-lecteur.demande-accord .lpe-lecteur__play { display: none; }
.lpe-lecteur__noscript { position: absolute; left: 1rem; top: 1rem; color: var(--lpe-or-clair); }
@media (max-width: 520px) {
	.lpe-lecteur__accord { padding: 0.8rem 1rem; gap: 0.45rem; font-size: 0.8125rem; }
	.lpe-lecteur__accord .lpe-lecteur__question { font-size: 1rem; }
	.lpe-lecteur__accord label { display: none; }
	.lpe-lecteur__rond { width: 60px; height: 60px; }
}

.lpe-annonce { position: fixed; left: 50%; bottom: calc(1.25rem + env(safe-area-inset-bottom, 0px)); transform: translate(-50%, 1rem); opacity: 0; transition: opacity .25s, transform .25s; background: var(--lpe-nuit); color: var(--lpe-creme); padding: 0.8rem 1.2rem; border-radius: 12px; box-shadow: var(--lpe-ombre); z-index: 100; max-width: calc(100% - 2rem); margin: 0; pointer-events: none; }
.lpe-annonce.est-visible { opacity: 1; transform: translate(-50%, 0); }

/* ---------- Rendez-vous du mercredi ---------- */

.lpe-rdv { background: var(--lpe-teinte); border-bottom: 1px solid var(--lpe-ligne); display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.75rem; padding: 1rem max(var(--wp--style--root--padding-left, 1rem), calc((100% - 1180px) / 2)); }
.lpe-rdv__date { display: flex; align-items: center; gap: 0.8rem; }
.lpe-rdv__cal { width: 3.3rem; text-align: center; border-radius: 10px; overflow: hidden; background: var(--lpe-carte); box-shadow: var(--lpe-ombre); flex: none; }
.lpe-rdv__cal b { display: block; background: var(--c, var(--lpe-or)); color: var(--lpe-carte); font-size: 0.6875rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 2px 0; }
.lpe-rdv__cal span { display: block; font: 800 1.4rem/1.3 var(--lpe-titre); color: var(--lpe-encre); }
.lpe-rdv__tag, .lpe-carte__tag { font-size: 0.75rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c, var(--lpe-or-texte)); }
.lpe-rdv__titre { margin: 0; font: 800 1.25rem/1.2 var(--lpe-titre); }
.lpe-rdv__titre a { color: inherit; text-decoration: none; }
.lpe-rdv__texte { margin: 0; flex: 1 1 18rem; font-size: 0.9375rem; color: var(--lpe-douce); }
.lpe-rdv__texte a { font-weight: 800; }

/* ---------- Cartes et grilles ---------- */

.lpe-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.lpe-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lpe-grille--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lpe-carte { display: grid; gap: 0.4rem; align-content: start; text-decoration: none; color: var(--lpe-encre); min-width: 0; }
.lpe-carte[hidden] { display: none; }
.lpe-vignette { position: relative; display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; box-shadow: var(--lpe-ombre); background: var(--lpe-ligne); margin-bottom: 0.25rem; }
.lpe-vignette img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
a.lpe-carte:hover .lpe-vignette img { transform: scale(1.04); }
.lpe-duree { position: absolute; right: 8px; bottom: 8px; background: rgba(10,15,40,.85); color: #fff; font-weight: 700; font-size: 0.75rem; padding: 1px 7px; border-radius: 6px; font-variant-numeric: tabular-nums; }
.lpe-carte__titre { margin: 0; font: 700 1.0625rem/1.3 var(--wp--preset--font-family--texte); text-wrap: pretty; }
a.lpe-carte:hover .lpe-carte__titre { text-decoration: underline; text-decoration-color: var(--c, var(--lpe-or)); text-underline-offset: 3px; }
.lpe-carte__niveau { font-size: 0.8125rem; color: var(--lpe-douce); }
.lpe-sensible { justify-self: start; font-size: 0.78rem; font-weight: 700; background: var(--lpe-teinte); color: var(--lpe-encre); border-radius: 6px; padding: 1px 8px; }

.lpe-filtres { display: grid; gap: 0.6rem; margin-bottom: 1.25rem; }
.lpe-filtres__ligne { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.lpe-filtres__libelle { font-size: 0.875rem; color: var(--lpe-douce); margin-right: 0.25rem; }
.lpe-filtres button { font: 800 0.875rem var(--wp--preset--font-family--texte); border: 2px solid var(--lpe-ligne); background: var(--lpe-carte); color: var(--lpe-encre); border-radius: 999px; padding: 0.3rem 0.9rem; cursor: pointer; }
.lpe-filtres button:hover { border-color: var(--c, var(--wp--preset--color--poesie)); }
.lpe-filtres button[aria-pressed="true"] { background: var(--c, var(--wp--preset--color--poesie)); border-color: var(--c, var(--wp--preset--color--poesie)); color: var(--lpe-carte); }
.lpe-filtres .lpe-filtres__court[aria-pressed="true"] { background: var(--lpe-encre); border-color: var(--lpe-encre); }
.lpe-filtres__compte { font-size: 0.875rem; color: var(--lpe-douce); margin-left: 0.25rem; }

.lpe-series { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.25rem; }
.lpe-serie { display: grid; grid-template-rows: auto 1fr; border-radius: 18px; overflow: hidden; background: var(--lpe-carte); text-decoration: none; color: var(--lpe-encre); box-shadow: var(--lpe-ombre); border-bottom: 5px solid var(--c); transition: transform .2s; min-width: 0; }
.lpe-serie:hover { transform: translateY(-4px); }
.lpe-serie img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; display: block; }
.lpe-serie__texte { padding: 0.9rem 1rem 1rem; display: grid; gap: 0.35rem; align-content: start; }
.lpe-serie__nom { font: 800 1.375rem/1.15 var(--lpe-titre); color: var(--c); }
.lpe-serie__resume { font-size: 0.9375rem; color: var(--lpe-douce); }
.lpe-serie__compte { font-size: 0.8125rem; font-weight: 800; }
.lpe-series--compacte { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.lpe-series--compacte .lpe-serie { grid-template-rows: none; grid-template-columns: 6.5rem 1fr; align-items: center; border-bottom: 0; border-left: 5px solid var(--c); padding: 0.6rem; gap: 0.8rem; }
.lpe-series--compacte .lpe-serie img { border-radius: 8px; }
.lpe-series--compacte .lpe-serie__texte { padding: 0; gap: 0.1rem; }

/* ---------- Page de série ---------- */

.lpe-serie-entete {
	background-image: var(--lpe-etoiles), radial-gradient(70% 120% at 100% 0%, color-mix(in srgb, var(--c) 55%, transparent), transparent 70%);
	background-color: var(--lpe-nuit); color: var(--lpe-creme);
	padding: 1.75rem max(var(--wp--style--root--padding-left, 1rem), calc((100% - 1180px) / 2)) 2.25rem;
}
.lpe-serie-entete__in { display: grid; gap: 0.75rem; }
.lpe-serie-entete .lpe-surtitre { margin: 0.5rem 0 0; font-size: 0.8125rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lpe-or-clair); }
.lpe-serie-entete__titre { margin: 0; color: var(--lpe-creme); font-size: var(--wp--preset--font-size--geant); }
.lpe-serie-entete__texte { margin: 0; max-width: 60ch; color: var(--lpe-brume); font-size: 1.0625rem; }
.lpe-puces { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
.lpe-puces li { font-weight: 800; font-size: 0.875rem; padding: 0.25rem 0.8rem; border-radius: 999px; background: rgba(245,241,230,.1); border: 1px solid rgba(245,241,230,.2); }

.lpe-fil { font-size: 0.875rem; color: var(--lpe-brume); display: flex; flex-wrap: wrap; gap: 0.35rem; }
.lpe-fil a { color: var(--lpe-creme); text-decoration: none; }
.lpe-fil a:hover { color: var(--lpe-or-clair); }

.lpe-format { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: f; }
.lpe-format li { counter-increment: f; background: var(--lpe-carte); border-radius: 14px; padding: 0.9rem 1rem; box-shadow: var(--lpe-ombre); display: grid; gap: 0.25rem; align-content: start; }
.lpe-format li::before { content: counter(f); font: 800 0.95rem/1 var(--lpe-titre); color: var(--lpe-carte); background: var(--c); width: 1.75rem; height: 1.75rem; border-radius: 50%; display: grid; place-items: center; }
.lpe-format b { font-family: var(--lpe-titre); font-size: 1.0625rem; }
.lpe-format span { font-size: 0.875rem; color: var(--lpe-douce); }

/* ---------- Page vidéo ---------- */

.lpe-meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; list-style: none; margin: 0; padding: 0; font-size: 0.9375rem; color: var(--lpe-brume); }
.lpe-meta__serie { color: var(--lpe-or-clair); font-weight: 800; }
.lpe-meta__emoji { font-style: normal; margin-right: 0.35rem; }
.lpe-meta__sensible { font-weight: 700; color: var(--lpe-creme); }
.lpe-credit { margin: 0; font-size: 1rem; font-style: italic; color: var(--lpe-creme); }
.lpe-meta-accroche { font: 800 1.25rem/1.25 var(--lpe-titre); color: var(--lpe-or-clair); margin: 0; }

.lpe-chapitres__titre { font-size: var(--wp--preset--font-size--grand); margin: 0 0 0.6rem; }
.lpe-chapitres ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
.lpe-chapitre { width: 100%; text-align: left; display: flex; gap: 0.6rem; align-items: baseline; font: 700 0.9375rem/1.35 var(--wp--preset--font-family--texte); color: var(--lpe-encre); background: var(--lpe-carte); border: 1px solid var(--lpe-ligne); border-radius: 10px; padding: 0.55rem 0.75rem; cursor: pointer; }
.lpe-chapitre:hover { border-color: var(--wp--preset--color--fables); }
.lpe-chapitre time { font-variant-numeric: tabular-nums; color: var(--wp--preset--color--fables); font-weight: 800; min-width: 2.6rem; }

.lpe-boite > * { min-width: 0; }
.lpe-boite { background: var(--lpe-carte); border-radius: var(--lpe-rayon); padding: 1.1rem; box-shadow: var(--lpe-ombre); display: grid; gap: 0.6rem; }
.lpe-boite__titre { font-size: 1.1875rem; margin: 0; }
.lpe-boite p { margin: 0; font-size: 0.875rem; color: var(--lpe-douce); }
.lpe-boite .lpe-boite__note { font-size: 0.8125rem; }
.lpe-bouton { display: inline-flex; justify-content: center; align-items: center; gap: 0.5rem; font: 800 0.9375rem var(--wp--preset--font-family--texte); background: var(--lpe-or); color: var(--lpe-nuit); border: 0; border-radius: 999px; padding: 0.7rem 1.2rem; text-decoration: none; cursor: pointer; }
.lpe-bouton:hover { background: var(--lpe-or-clair); }
.lpe-boite .lpe-bouton { white-space: nowrap; }
.lpe-bouton--petit { padding: 0.35rem 0.85rem; font-size: 0.8125rem; }

.lpe-partager__liste { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.lpe-partager__btn { display: flex; align-items: center; gap: 0.45rem; font: 700 0.875rem var(--wp--preset--font-family--texte); color: var(--lpe-encre); background: var(--lpe-carte); border: 2px solid var(--lpe-ligne); border-radius: 10px; padding: 0.5rem 0.6rem; text-decoration: none; cursor: pointer; min-width: 0; }
.lpe-partager__btn:hover { border-color: var(--lpe-or); }
.lpe-partager__btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lpe-icone-svg { width: 1.15rem; height: 1.15rem; flex: none; }
.lpe-partager__btn--facebook .lpe-icone-svg { color: #1877F2; }
.lpe-partager__btn--whatsapp .lpe-icone-svg { color: #1FA855; }
.lpe-partager__btn--email .lpe-icone-svg, .lpe-partager__btn--lien .lpe-icone-svg { color: var(--lpe-or-texte); }
.lpe-partager__retour { margin: 0; font-size: 0.8125rem; color: var(--wp--preset--color--fables); font-weight: 700; min-height: 0; }
.lpe-partager__retour:empty { display: none; }
.lpe-infos { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: 0.35rem 0.8rem; font-size: 0.875rem; }
.lpe-infos dt { color: var(--lpe-douce); display: flex; align-items: baseline; gap: 0.4rem; white-space: nowrap; }
.lpe-infos__emoji { font-size: 1rem; width: 1.3rem; text-align: center; }
.lpe-infos dd { margin: 0; font-weight: 700; }
.lpe-colonne-laterale { position: sticky; top: 1rem; }

.lpe-note { background: var(--lpe-teinte); border-radius: var(--lpe-rayon); padding: 0.6rem 0.9rem; display: grid; gap: 0.35rem; }
.lpe-note__ligne { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.9rem; }
.lpe-note__titre { margin: 0; font: 800 1rem/1.2 var(--lpe-titre); }
.lpe-note__etoiles { display: flex; gap: 0.1rem; }
.lpe-note__etoile { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; padding: 0; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.lpe-note__etoile:disabled { cursor: wait; }
.lpe-etoile { width: 1.85rem; height: 1.85rem; fill: var(--lpe-carte); stroke: var(--lpe-or-texte); stroke-width: 1.6; stroke-linejoin: round; transition: transform .12s, fill .12s; }
.lpe-note__etoile.est-allumee .lpe-etoile { fill: var(--lpe-or); }
.lpe-note__etoile:hover .lpe-etoile { transform: scale(1.12); }
.lpe-note__changer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.6rem; font-size: 0.875rem; font-weight: 700; }
.lpe-note__changer[hidden] { display: none; }
.lpe-note__changer button { font: 800 0.8125rem var(--wp--preset--font-family--texte); border-radius: 999px; padding: 0.3rem 0.8rem; cursor: pointer; border: 2px solid var(--lpe-nuit); }
.lpe-note__oui { background: var(--lpe-nuit); color: var(--lpe-creme); }
.lpe-note__non { background: transparent; color: var(--lpe-encre); }
.lpe-note__retour { margin: 0; font-size: 0.875rem; font-weight: 700; color: var(--wp--preset--color--fables); }
.lpe-note__retour:empty { display: none; }
.lpe-note__adultes { margin: 0; font-size: 0.8125rem; color: var(--lpe-douce); }
/* Téléphone : des étoiles assez grandes pour un doigt d'enfant (44 px). */
@media (max-width: 600px) {
	.lpe-note__etoile { width: 2.75rem; height: 2.75rem; }
	.lpe-etoile { width: 2.1rem; height: 2.1rem; }
}
.lpe-meta__note { color: var(--lpe-or-clair); font-weight: 800; }
.lpe-meta__nombre { font-weight: 400; color: var(--lpe-brume); }
.lpe-facultatif { font-weight: 400; color: var(--lpe-douce); font-size: 0.8125rem; }
.lpe-requis { color: #B3261E; font-weight: 800; }
.lpe-contact__requis { margin: 0; font-size: 0.875rem; color: var(--lpe-douce); }
.lpe-avis .lpe-case { align-items: flex-start; }
.lpe-avis .lpe-case input { margin-top: 0.25rem; }
.lpe-transcription { border: 2px solid var(--lpe-ligne); border-radius: var(--lpe-rayon); background: var(--lpe-carte); }
.lpe-transcription summary { cursor: pointer; padding: 0.8rem 1rem; font: 800 1rem var(--lpe-titre); list-style: none; display: flex; align-items: center; gap: 0.5rem; }
.lpe-transcription summary::-webkit-details-marker { display: none; }
.lpe-transcription summary::before { content: "▸"; color: var(--lpe-or-texte); transition: transform .15s; }
.lpe-transcription[open] summary::before { transform: rotate(90deg); }
.lpe-transcription__texte { padding: 0 1.1rem 1rem; font-size: 0.9375rem; color: var(--lpe-encre); }
.lpe-transcription__texte p { margin: 0 0 0.8rem; }
.lpe-chapeau { font-size: var(--wp--preset--font-size--moyen); font-weight: 600; }
.lpe-morale .lpe-citation { font: 800 1.35rem/1.35 var(--lpe-titre); margin: 0; }
.lpe-morale .lpe-note { font-size: 0.875rem; color: var(--lpe-douce); margin: 0; }
.lpe-morale h3, .lpe-savais-tu h3 { margin: 0; font-size: 1.25rem; color: var(--lpe-or-texte); }
.lpe-savais-tu { border-left: 5px solid var(--lpe-or); }
.lpe-source { margin-top: 0.4rem; font-size: 0.875rem; color: var(--lpe-douce); }
.wp-block-verse { white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---------- Enseignants : liste des fiches ---------- */

/* La liste porte aussi la classe lpe-grille (pour les filtres) : on annule ici la grille des cartes. */
.lpe-grille.lpe-fiches { list-style: none; margin: 0; padding: 0; display: block; border-top: 1px solid var(--lpe-ligne); }
.lpe-fiches li.lpe-carte { display: grid; grid-template-columns: 8rem minmax(0, 1fr) 8rem 7.5rem; gap: 0.25rem 1rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--lpe-ligne); }
.lpe-fiches li.lpe-carte[hidden] { display: none; }
.lpe-fiches__titre { font-weight: 700; color: var(--lpe-encre); text-decoration: none; }
.lpe-fiches__titre:hover { text-decoration: underline; }
.lpe-fiches__bientot { font-size: 0.8125rem; color: var(--lpe-douce); text-align: center; }
.lpe-fiches .lpe-bouton { justify-self: stretch; }

/* ---------- Formulaires ---------- */

.lpe-lettre { display: grid; grid-template-columns: 1fr 1.2fr; gap: 1rem 1.75rem; align-items: center; }
.lpe-lettre--pied { background: var(--wp--preset--color--nuit-2); border-radius: 20px; padding: 1.4rem 1.5rem; color: var(--lpe-creme); }
.lpe-lettre--page { grid-template-columns: 1fr; background: var(--lpe-carte); border-radius: var(--wp--custom--rayon--grand); box-shadow: var(--lpe-ombre); padding: 1.5rem; }
.lpe-lettre--page .lpe-lettre__texte { display: none; }
.lpe-lettre__titre { font: 800 1.5rem/1.2 var(--lpe-titre); color: var(--lpe-or-clair); margin: 0 0 0.35rem; }
.lpe-lettre__texte p:not(.lpe-lettre__titre) { margin: 0; font-size: 0.9375rem; color: var(--lpe-brume); }
.lpe-lettre__form { display: grid; gap: 0.6rem; }
.lpe-lettre__ligne { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.lpe-lettre input[type="email"] { flex: 1 1 13rem; min-width: 0; font: 600 0.9375rem var(--wp--preset--font-family--texte); padding: 0.7rem 1rem; border-radius: 999px; border: 2px solid var(--lpe-ligne); background: var(--lpe-carte); color: var(--lpe-encre); }
.lpe-lettre--pied input[type="email"] { border-color: rgba(185,192,222,.35); background: var(--lpe-nuit); color: var(--lpe-creme); }
.lpe-lettre--pied input[type="email"]::placeholder { color: var(--lpe-brume); }
.lpe-case { display: flex; gap: 0.5rem; align-items: center; font-size: 0.875rem; }
.lpe-lettre--pied .lpe-case { color: var(--lpe-brume); }
.lpe-lettre__note { margin: 0; font-size: 0.8125rem; color: var(--lpe-douce); }
.lpe-lettre--pied .lpe-lettre__note, .lpe-lettre--pied .lpe-lettre__note a { color: var(--lpe-brume); }
.lpe-message { margin: 0; font-weight: 700; font-size: 0.9375rem; padding: 0.6rem 0.9rem; border-radius: 10px; background: var(--lpe-teinte); color: var(--lpe-encre); }
.lpe-message--ok { background: color-mix(in srgb, var(--wp--preset--color--fables) 16%, var(--lpe-carte)); }
.lpe-piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.lpe-contact { display: grid; gap: 0.9rem; background: var(--lpe-carte); border-radius: var(--wp--custom--rayon--grand); box-shadow: var(--lpe-ombre); padding: 1.5rem; }
.lpe-contact p { margin: 0; display: grid; gap: 0.3rem; }
.lpe-contact label { font-weight: 700; font-size: 0.9375rem; }
.lpe-contact input[type="text"], .lpe-contact input[type="email"], .lpe-contact select, .lpe-contact textarea { font: 400 1rem var(--wp--preset--font-family--texte); padding: 0.65rem 0.8rem; border: 2px solid var(--lpe-ligne); border-radius: 10px; background: var(--lpe-carte); color: var(--lpe-encre); width: 100%; }
.lpe-contact textarea { resize: vertical; }
.lpe-contact__deux { display: grid; grid-template-columns: 1fr 1fr; gap: 0.9rem; }
.lpe-contact__note { font-size: 0.8125rem; color: var(--lpe-douce); }
.lpe-contact .lpe-case { font-weight: 400; }

/* ---------- Pied de page ---------- */

.lpe-pied a { color: var(--lpe-creme); text-decoration: none; }
.lpe-pied a:hover { color: var(--lpe-or-clair); }
.lpe-pied h2 { font: 800 0.8125rem var(--wp--preset--font-family--texte); letter-spacing: 0.08em; text-transform: uppercase; color: var(--lpe-or-clair); }
.lpe-pied ul { list-style: none; padding: 0; display: grid; gap: 0.35rem; }
.lpe-pied .wp-block-site-logo img { border-radius: 50%; }
.lpe-pied__mail { font-family: var(--wp--preset--font-family--code); font-size: 0.875rem; user-select: all; }
.lpe-pied__bas { border-top: 1px solid rgba(185,192,222,.2); }

.lpe-vide { padding: 1rem; border: 2px dashed var(--lpe-ligne); border-radius: 12px; color: var(--lpe-douce); font-size: 0.875rem; }

/* ---------- Petits écrans ---------- */

@media (max-width: 1000px) {
	.lpe-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lpe-series { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.lpe-grille--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lpe-format { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lpe-series--compacte { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.lpe-lettre { grid-template-columns: 1fr; }
	.lpe-colonne-laterale { position: static; }
}
@media (max-width: 600px) {
	.lpe-grille, .lpe-grille--3 { gap: 1rem 0.8rem; }
	.lpe-carte__titre { font-size: 0.9375rem; }
	.lpe-series, .lpe-series--compacte, .lpe-format { grid-template-columns: 1fr; }
	.lpe-chapitres ol { grid-template-columns: 1fr; }
	.lpe-fiches li.lpe-carte { grid-template-columns: minmax(0, 1fr) auto; }
	.lpe-fiches .lpe-carte__tag, .lpe-fiches .lpe-fiches__titre, .lpe-fiches .lpe-carte__niveau { grid-column: 1; }
	.lpe-fiches .lpe-bouton, .lpe-fiches .lpe-fiches__bientot { grid-column: 2; grid-row: 1 / span 3; }
	.lpe-contact__deux { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
