/* ==========================================================================
   LUMINA — feuille de style du thème enfant
   Mobile First : les styles de base visent le téléphone (dès 360 px),
   puis on enrichit à 768 px (tablette), 1024 px et 1440 px (ordinateur).
   ========================================================================== */

/* 1. Polices hébergées localement (licence SIL Open Font License) */
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/montserrat-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/montserrat-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/montserrat-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Oranienbaum"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/oranienbaum-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Pinyon Script"; font-style: normal; font-weight: 400; font-display: swap; src: url("../fonts/pinyon-script-latin-400-normal.woff2") format("woff2"); }

/* 2. Variables de la charte */
:root {
	--lumina-noir: #0B0B14;
	--lumina-surface: #16162A;
	--lumina-surface-2: #1E1E38;
	--lumina-blanc: #F4F1FA;
	--lumina-brume: #A8A6B8;
	--lumina-laser: #CDFFA0;
	--lumina-aurore: #E6A0FF;
	--lumina-halo: #82E6FF;
	--lumina-electrique: #006EE6;
	--lumina-nuit: #00007D;

	--lumina-titre: "Oranienbaum", Georgia, serif;
	--lumina-texte: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

	--lumina-h1: clamp(2.5rem, 1.6rem + 4vw, 4.5rem);
	--lumina-h2: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
	--lumina-h3: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
	--lumina-corps: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);

	--lumina-marge: 20px;
	--lumina-max: 1200px;
	--lumina-rayon: 16px;
	--lumina-cta-hauteur: 80px;
	--lumina-focus: 3px solid var(--lumina-halo);
}

/* 3. Base */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}
body, body.ast-separate-container, .ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post, .site-content, #primary, .ast-page-builder-template .site-content > .ast-container {
	background: var(--lumina-noir) !important;
	color: var(--lumina-blanc);
}
body {
	font-family: var(--lumina-texte);
	font-size: var(--lumina-corps);
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
body.lumina-avec-cta-fixe { padding-bottom: calc(var(--lumina-cta-hauteur) + env(safe-area-inset-bottom)); }
@media (min-width: 1024px) { body.lumina-avec-cta-fixe { padding-bottom: 0; } }

h1, h2, .entry-content h1, .entry-content h2 {
	font-family: var(--lumina-titre);
	font-weight: 400;
	color: var(--lumina-blanc);
	letter-spacing: 0.01em;
}
h1, .entry-content h1 { font-size: var(--lumina-h1); line-height: 1.06; }
h2, .entry-content h2 { font-size: var(--lumina-h2); line-height: 1.12; margin-top: 2.5rem; }
h3, .entry-content h3 { font-family: var(--lumina-texte); font-weight: 600; font-size: var(--lumina-h3); line-height: 1.3; color: var(--lumina-blanc); }
p, li, td, th { color: var(--lumina-blanc); }
.lumina-secondaire, figcaption, .wp-element-caption { color: var(--lumina-brume); font-size: 0.875rem; }
a { color: var(--lumina-aurore); text-underline-offset: 3px; }
a:hover { color: var(--lumina-halo); }
.entry-content a:not(.lumina-btn):not(.wp-block-button__link) { text-decoration: underline; }
:focus-visible { outline: var(--lumina-focus) !important; outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--lumina-aurore); color: var(--lumina-noir); }
img { height: auto; }
hr { border-color: rgba(244, 241, 250, 0.12); }

/* Zone de contenu : pleine largeur, marges internes Mobile First */
.ast-container, .site-content > .ast-container { max-width: none; padding: 0; }
.entry-content > *:not(.alignfull):not(.lumina-section):not(.lumina-hero) {
	max-width: var(--lumina-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--lumina-marge);
	padding-right: var(--lumina-marge);
}
.ast-separate-container .ast-article-single, .ast-separate-container .ast-article-post { padding: 0 !important; margin: 0 !important; }
.entry-content { margin: 0; }
.single-post .entry-content, .single-post .entry-header, .single-oeuvre .entry-content, .single-oeuvre .entry-header { max-width: 760px; margin-inline: auto; padding-inline: var(--lumina-marge); }
.single-post .entry-content > *, .single-oeuvre .entry-content > * { padding-inline: 0 !important; }
.page .entry-content, .home .entry-content { max-width: none; padding: 0; }
.site-main { padding-top: 88px; }
.home .site-main { padding-top: 0; }
.ast-breadcrumbs-wrapper, .lumina-ariane { max-width: var(--lumina-max); margin: 0 auto; padding: 1rem var(--lumina-marge) 0; font-size: 0.875rem; color: var(--lumina-brume); }
.lumina-ariane a { color: var(--lumina-brume); }

.lumina-section { max-width: var(--lumina-max); margin: 0 auto; padding: 3.5rem var(--lumina-marge); }
.lumina-section--surface { background: var(--lumina-surface); max-width: none; }
.lumina-section--surface > * { max-width: var(--lumina-max); margin-inline: auto; }
.lumina-surtitre { font-family: var(--lumina-texte); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.8125rem; font-weight: 600; color: var(--lumina-halo); margin-bottom: 0.5rem; }
.lumina-chapo { font-size: 1.125rem; color: var(--lumina-blanc); max-width: 60ch; }
.lumina-date { color: var(--lumina-halo); font-weight: 600; }
@media (min-width: 768px) { :root { --lumina-marge: 32px; } .lumina-section { padding-block: 5rem; } }
@media (min-width: 1440px) { :root { --lumina-marge: 48px; } }

/* 4. Boutons (zone tactile ≥ 44 px, hauteur 48 px) */
.lumina-btn, .wp-block-button__link, .entry-content .wp-block-button__link,
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, #place_order {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
	min-height: 48px; padding: 0.75rem 1.75rem;
	border-radius: 999px; border: 1.5px solid var(--lumina-blanc);
	background: transparent; color: var(--lumina-blanc) !important;
	font-family: var(--lumina-texte); font-weight: 600; font-size: 1rem;
	text-transform: uppercase; letter-spacing: 0.08em; text-decoration: none !important;
	cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s;
}
.lumina-btn:hover, .wp-block-button__link:hover { background: rgba(244, 241, 250, 0.08); }
.lumina-btn--laser, .woocommerce button.button.alt, .woocommerce #place_order, .lumina-billet--avant .lumina-billet__submit {
	background: var(--lumina-laser) !important; border-color: var(--lumina-laser) !important; color: var(--lumina-noir) !important;
}
.lumina-btn--laser:hover, .lumina-billet--avant .lumina-billet__submit:hover, .woocommerce #place_order:hover { box-shadow: 0 0 0 4px rgba(205, 255, 160, 0.25), 0 0 32px rgba(205, 255, 160, 0.35); }
.lumina-btn--plein { width: 100%; }
@media (min-width: 768px) { .lumina-btn--plein { width: auto; } }

/* 5. Logo (texte : Pinyon Script + Oranienbaum, comme le logo officiel) */
.lumina-logo { display: inline-flex; flex-direction: column; line-height: 1; }
.lumina-logo__script { font-family: "Pinyon Script", cursive; color: var(--lumina-aurore); font-size: 1rem; margin-bottom: -0.15em; margin-left: 0.1em; }
.lumina-logo__nom { font-family: var(--lumina-titre); color: var(--lumina-blanc); font-size: 1.6rem; letter-spacing: 0.14em; }

/* 6. En-tête collant et menu plein écran */
.site-header, #masthead, .main-header-bar { background: transparent !important; border: 0 !important; box-shadow: none !important; }
#masthead { position: fixed; inset: 0 0 auto 0; z-index: 100; }
.lumina-header {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	height: 72px; padding: 0 var(--lumina-marge);
	transition: background-color .25s, backdrop-filter .25s;
}
.lumina-header.est-defile, body:not(.home) .lumina-header { background: rgba(11, 11, 20, 0.86); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.lumina-header__logo { text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.lumina-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.lumina-header__billetterie { display: none; min-height: 44px; padding: 0.5rem 1.25rem; font-size: 0.875rem; }
@media (min-width: 768px) { .lumina-header__billetterie { display: inline-flex; } }
.lumina-burger {
	display: inline-flex; align-items: center; gap: 0.625rem; min-width: 44px; min-height: 44px; padding: 0 0.5rem;
	background: none !important; border: 0; color: var(--lumina-blanc) !important; font: 600 0.875rem/1 var(--lumina-texte); text-transform: uppercase; letter-spacing: 0.1em; cursor: pointer;
}
.lumina-burger__lignes, .lumina-burger__lignes::before, .lumina-burger__lignes::after { display: block; width: 24px; height: 2px; background: currentColor; border-radius: 2px; transition: transform .25s, opacity .25s; }
.lumina-burger__lignes { position: relative; }
.lumina-burger__lignes::before, .lumina-burger__lignes::after { content: ""; position: absolute; left: 0; }
.lumina-burger__lignes::before { top: -7px; }
.lumina-burger__lignes::after { top: 7px; }
.lumina-burger[aria-expanded="true"] .lumina-burger__lignes { background: transparent; }
.lumina-burger[aria-expanded="true"] .lumina-burger__lignes::before { transform: translateY(7px) rotate(45deg); }
.lumina-burger[aria-expanded="true"] .lumina-burger__lignes::after { transform: translateY(-7px) rotate(-45deg); }
.lumina-burger__texte { display: none; }
@media (min-width: 480px) { .lumina-burger__texte { display: inline; } }

.lumina-menu {
	position: fixed; inset: 72px 0 0 0; z-index: 99; overflow-y: auto;
	background: var(--lumina-surface);
	padding: 1.5rem var(--lumina-marge) calc(2rem + env(safe-area-inset-bottom));
	display: flex; flex-direction: column; justify-content: space-between; gap: 2rem;
}
.lumina-menu[hidden] { display: none; }
.lumina-menu__liste { list-style: none; margin: 0; padding: 0; }
.lumina-menu__liste a {
	display: flex; align-items: center; min-height: 56px; color: var(--lumina-blanc); text-decoration: none;
	font-family: var(--lumina-titre); font-size: clamp(2rem, 1.5rem + 2.5vw, 3.5rem); line-height: 1.1;
	border-bottom: 1px solid rgba(244, 241, 250, 0.08);
}
.lumina-menu__liste a:hover, .lumina-menu__liste .current-menu-item a, .lumina-menu__liste a[aria-current="page"] { color: var(--lumina-aurore); }
.lumina-menu__infos p { margin: 0 0 0.25rem; color: var(--lumina-brume); }
.lumina-menu__infos .lumina-btn { margin-top: 1rem; width: 100%; }
@media (min-width: 768px) { .lumina-menu__infos .lumina-btn { width: auto; } }
body.lumina-menu-ouvert { overflow: hidden; }

/* 7. Bouton « Réserver mon pass » fixe (mobile uniquement) */
.lumina-cta-fixe {
	position: fixed; inset: auto 0 0 0; z-index: 90;
	padding: 12px var(--lumina-marge) calc(12px + env(safe-area-inset-bottom));
	background: linear-gradient(to top, rgba(11, 11, 20, 0.98) 60%, rgba(11, 11, 20, 0));
}
.lumina-cta-fixe .lumina-btn { width: 100%; min-height: 56px; }
@media (min-width: 1024px) { .lumina-cta-fixe { display: none; } }

/* 8. Accueil : en-tête immersif */
.lumina-hero {
	position: relative; min-height: 100svh; display: flex; align-items: flex-end; overflow: hidden;
	padding: 120px var(--lumina-marge) 3.5rem; isolation: isolate;
	background:
		radial-gradient(60% 45% at 78% 22%, rgba(130, 230, 255, 0.38), transparent 70%),
		radial-gradient(55% 50% at 18% 38%, rgba(230, 160, 255, 0.40), transparent 70%),
		radial-gradient(70% 60% at 55% 85%, rgba(0, 110, 230, 0.45), transparent 75%),
		radial-gradient(30% 25% at 62% 52%, rgba(205, 255, 160, 0.22), transparent 70%),
		var(--lumina-noir);
}
.entry-content > .lumina-hero { max-width: none !important; width: 100%; margin: 0 !important; }
.lumina-hero__media { position: absolute; inset: 0; z-index: -2; }
.lumina-hero__media img, .lumina-hero__media video { width: 100%; height: 100%; object-fit: cover; }
.lumina-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, rgba(11, 11, 20, 0.95) 8%, rgba(11, 11, 20, 0.15) 60%, rgba(11, 11, 20, 0.45)); }
.lumina-hero__contenu { max-width: var(--lumina-max); width: 100%; margin: 0 auto; }
.lumina-hero h1 { margin: 0 0 0.75rem; max-width: 14ch; }
.lumina-hero__signature { font-family: "Pinyon Script", cursive; font-size: clamp(1.75rem, 1.4rem + 1.5vw, 2.75rem); color: var(--lumina-aurore); margin: 0 0 1rem; }
.lumina-hero__infos { font-weight: 600; font-size: 1.0625rem; color: var(--lumina-halo); margin-bottom: 1.5rem; }
.lumina-hero .lumina-btn { width: 100%; }
@media (min-width: 768px) { .lumina-hero .lumina-btn { width: auto; } .lumina-hero { padding-bottom: 5rem; } }
.lumina-hero__pause { position: absolute; right: var(--lumina-marge); top: 88px; min-width: 44px; min-height: 44px; border-radius: 999px; background: rgba(11, 11, 20, 0.6); border: 1px solid var(--lumina-blanc); color: var(--lumina-blanc); }
.lumina-aurore-anim { position: absolute; inset: -20%; z-index: -2; background: conic-gradient(from 0deg at 50% 50%, rgba(230,160,255,0.0), rgba(230,160,255,0.18), rgba(130,230,255,0.18), rgba(0,110,230,0.18), rgba(230,160,255,0.0)); filter: blur(60px); animation: lumina-tourne 40s linear infinite; }
@keyframes lumina-tourne { to { transform: rotate(360deg); } }

/* Compte à rebours et chiffres clés */
.lumina-compte { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.5rem; max-width: 520px; }
.lumina-compte__bloc { background: var(--lumina-surface); border-radius: 12px; padding: 0.75rem 0.25rem; text-align: center; }
.lumina-compte__nombre { display: block; font-family: var(--lumina-titre); font-size: 2rem; line-height: 1; color: var(--lumina-blanc); font-variant-numeric: tabular-nums; }
.lumina-compte__unite { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--lumina-brume); }
.lumina-chiffres { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; text-align: center; }
.lumina-chiffres strong { display: block; font-family: var(--lumina-titre); font-weight: 400; font-size: clamp(3rem, 2rem + 4vw, 5.5rem); line-height: 1; color: var(--lumina-laser); }
.lumina-chiffres span { color: var(--lumina-brume); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.8125rem; font-weight: 600; }

/* Infos express */
.lumina-infos-express { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.lumina-infos-express li { background: var(--lumina-surface); border-radius: var(--lumina-rayon); padding: 1.25rem; border-left: 3px solid var(--lumina-halo); }
.lumina-infos-express b { display: block; color: var(--lumina-halo); font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 0.25rem; }
@media (min-width: 768px) { .lumina-infos-express { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .lumina-infos-express { grid-template-columns: repeat(4, 1fr); } }

.lumina-encart { background: linear-gradient(120deg, rgba(230,160,255,0.18), rgba(130,230,255,0.12)); border: 1px solid rgba(230,160,255,0.35); border-radius: var(--lumina-rayon); padding: 1.5rem; }
.lumina-encart h2, .lumina-encart h3 { margin-top: 0; }

/* 9. Cartes d'œuvres et filtres de la programmation */
.lumina-grille { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 560px) { .lumina-grille { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .lumina-grille { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; } }
.lumina-carte { position: relative; background: var(--lumina-surface); border-radius: var(--lumina-rayon); overflow: hidden; display: flex; flex-direction: column; transition: transform .2s, box-shadow .2s; }
.lumina-carte:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(130, 230, 255, 0.12); }
.lumina-carte[hidden] { display: none; }
.lumina-carte__visuel { aspect-ratio: 4 / 5; overflow: hidden; background: var(--lumina-surface-2); }
.lumina-carte__visuel img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lumina-carte__corps { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.375rem; flex: 1; }
.lumina-carte__discipline { color: var(--lumina-halo); font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; margin: 0; }
.lumina-carte__titre { font-family: var(--lumina-titre) !important; font-weight: 400 !important; font-size: 2rem !important; margin: 0 !important; line-height: 1.1 !important; }
.lumina-carte__titre a { color: var(--lumina-blanc); text-decoration: none !important; }
.lumina-carte__titre a::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
.lumina-carte__accroche { margin: 0; color: var(--lumina-blanc); font-style: italic; }
.lumina-carte__meta { margin: auto 0 0; padding-top: 0.5rem; color: var(--lumina-brume); font-size: 0.875rem; }

.lumina-filtres { margin: 0 0 1.5rem; }
.lumina-filtres__groupe { border: 0; padding: 0; margin: 0 0 1rem; min-width: 0; }
.lumina-filtres__groupe legend { font-size: 0.8125rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.12em; color: var(--lumina-brume); margin-bottom: 0.5rem; padding: 0; }
.lumina-filtres__liste { display: flex; gap: 0.5rem; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 0.5rem; margin: 0; list-style: none; padding-left: 0; -webkit-mask-image: linear-gradient(to right, #000 85%, transparent); mask-image: linear-gradient(to right, #000 85%, transparent); }
@media (min-width: 768px) { .lumina-filtres__liste { flex-wrap: wrap; overflow: visible; -webkit-mask-image: none; mask-image: none; } }
.lumina-filtre {
	flex: 0 0 auto; scroll-snap-align: start; display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1.125rem;
	border-radius: 999px; border: 1.5px solid var(--lumina-halo); color: var(--lumina-halo) !important; background: transparent;
	font: 600 0.9375rem/1 var(--lumina-texte); text-decoration: none !important; white-space: nowrap; cursor: pointer;
}
.lumina-filtre[aria-pressed="true"], .lumina-filtre[aria-current="true"] { background: var(--lumina-halo); color: var(--lumina-noir) !important; }
.lumina-resultat { color: var(--lumina-brume); margin: 0 0 1rem; min-height: 1.5em; }
.lumina-avenir { margin-top: 2rem; text-align: center; color: var(--lumina-brume); }

/* Fiche œuvre */
.lumina-fiche__visuel { border-radius: var(--lumina-rayon); overflow: hidden; margin: 0 0 1.5rem; aspect-ratio: 4 / 5; max-height: 70vh; }
.lumina-fiche__visuel img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 768px) { .lumina-fiche__visuel { aspect-ratio: 16 / 9; } }
.lumina-quand-ou { background: var(--lumina-surface); border-radius: var(--lumina-rayon); padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.lumina-quand-ou dl { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem 1rem; margin: 0; }
.lumina-quand-ou dt { color: var(--lumina-halo); font-weight: 600; }
.lumina-quand-ou dd { margin: 0; }
.lumina-artiste { color: var(--lumina-aurore); font-weight: 500; }
.single-oeuvre .entry-meta, .single-post .posted-by { display: none !important; }
.single-oeuvre .entry-title, .single-post .entry-title { font-family: var(--lumina-titre); font-weight: 400; font-size: var(--lumina-h1) !important; line-height: 1.06; margin-bottom: 1rem; }

/* 10. Billetterie */
.lumina-billets { display: grid; gap: 1.25rem; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 1024px) { .lumina-billets { grid-template-columns: repeat(3, 1fr); } }
.lumina-billet { position: relative; background: var(--lumina-surface); border-radius: var(--lumina-rayon); padding: 1.5rem; border: 1px solid rgba(244, 241, 250, 0.08); }
.lumina-billet--avant { border: 2px solid var(--lumina-aurore); }
.lumina-billet__badge { position: absolute; top: -12px; left: 1.5rem; background: var(--lumina-aurore); color: var(--lumina-noir); font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.1em; padding: 0.25rem 0.75rem; border-radius: 999px; }
.lumina-billet h2 { margin: 0.25rem 0 0.25rem; font-size: 2rem; }
.lumina-billet__prix { display: flex; align-items: baseline; gap: 0.75rem; flex-wrap: wrap; margin: 0.5rem 0; }
.lumina-billet__prix strong { font-family: var(--lumina-titre); font-weight: 400; font-size: 3rem; line-height: 1; color: var(--lumina-blanc); }
.lumina-billet__prix del { color: var(--lumina-brume); font-size: 1.125rem; }
.lumina-billet__eb { color: var(--lumina-laser); font-weight: 600; font-size: 0.875rem; }
.lumina-billet__inclus { color: var(--lumina-brume); margin: 0 0 1rem; }
.lumina-billet form { display: grid; gap: 0.875rem; }
.lumina-champ { display: grid; gap: 0.375rem; }
.lumina-champ label, .lumina-champ legend { font-weight: 600; font-size: 0.9375rem; color: var(--lumina-blanc); }
.lumina-champ select, .lumina-champ input,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea,
.wpforms-container input, .wpforms-container select, .wpforms-container textarea, .lumina-newsletter input[type="email"] {
	min-height: 48px; width: 100%; padding: 0.625rem 0.875rem; font-size: 16px; font-family: var(--lumina-texte);
	background: var(--lumina-noir) !important; color: var(--lumina-blanc) !important;
	border: 1.5px solid rgba(244, 241, 250, 0.35) !important; border-radius: 10px !important;
}
.lumina-champ select:focus, .lumina-champ input:focus, .woocommerce form .form-row input.input-text:focus { border-color: var(--lumina-halo) !important; }
.lumina-radios { display: flex; gap: 0.5rem; border: 0; padding: 0; margin: 0; }
.lumina-radios label { flex: 1; display: flex; align-items: center; justify-content: center; gap: 0.4rem; min-height: 48px; border: 1.5px solid rgba(244, 241, 250, 0.35); border-radius: 10px; cursor: pointer; font-weight: 500; }
.lumina-radios input { accent-color: var(--lumina-halo); width: 18px; height: 18px; }
.lumina-radios label:has(input:checked) { border-color: var(--lumina-halo); background: rgba(130, 230, 255, 0.12); }
.lumina-billet__submit { width: 100%; min-height: 56px; }
fieldset.lumina-champ { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset.lumina-champ legend { padding: 0; margin-bottom: 0.375rem; }
.lumina-reassurance { margin-top: 2rem; color: var(--lumina-brume); font-size: 0.9375rem; }
.lumina-erreur { background: rgba(255, 120, 140, 0.12); border: 1px solid #FF8FA3; color: var(--lumina-blanc); padding: 1rem; border-radius: 10px; }

/* 11. Bandeau de démonstration (festival fictif) */
.lumina-demo { background: var(--lumina-surface-2); color: var(--lumina-blanc); text-align: center; font-size: 0.875rem; padding: 0.625rem var(--lumina-marge); margin: 0; border-top: 1px solid rgba(244, 241, 250, 0.08); }
.lumina-demo strong { color: var(--lumina-laser); }
.lumina-demo--haut { border-radius: 10px; border: 1px solid rgba(205, 255, 160, 0.35); margin: 0 auto 1.5rem; max-width: var(--lumina-max); }
.woocommerce-store-notice, p.demo_store { background: var(--lumina-surface-2) !important; color: var(--lumina-blanc) !important; }

/* 12. Tableaux, FAQ, formulaires, WooCommerce */
.entry-content table { width: 100%; border-collapse: collapse; background: var(--lumina-surface); border-radius: var(--lumina-rayon); overflow: hidden; }
.entry-content caption { text-align: left; color: var(--lumina-brume); padding: 0.5rem 0; caption-side: top; }
.entry-content th, .entry-content td { padding: 0.875rem 1rem; border-bottom: 1px solid rgba(244, 241, 250, 0.08); text-align: left; border-left: 0; border-right: 0; }
.entry-content th { color: var(--lumina-halo); font-weight: 600; }
.entry-content details { background: var(--lumina-surface); border-radius: 12px; margin: 0 0 0.75rem; }
.entry-content summary { list-style: none; cursor: pointer; padding: 1rem 3rem 1rem 1.25rem; min-height: 48px; font-weight: 600; position: relative; }
.entry-content summary::-webkit-details-marker { display: none; }
.entry-content summary::after { content: "+"; position: absolute; right: 1.25rem; top: 50%; transform: translateY(-50%); color: var(--lumina-halo); font-size: 1.5rem; }
.entry-content details[open] summary::after { content: "–"; }
.entry-content details > :not(summary) { padding: 0 1.25rem 1rem; margin: 0; }
.lumina-sommaire { display: flex; gap: 0.5rem; overflow-x: auto; list-style: none; padding: 0 var(--lumina-marge) 0.5rem !important; margin: 1rem auto 0 !important; }
.lumina-sommaire a { display: inline-flex; align-items: center; min-height: 44px; padding: 0.5rem 1rem; border: 1px solid rgba(244,241,250,0.25); border-radius: 999px; color: var(--lumina-blanc); text-decoration: none !important; white-space: nowrap; }

.woocommerce, .woocommerce-page .entry-content { color: var(--lumina-blanc); }
.woocommerce-checkout .entry-content, .woocommerce-order-received .entry-content { max-width: 760px; margin: 0 auto; padding: 0 var(--lumina-marge) 3rem; }
.woocommerce table.shop_table { background: var(--lumina-surface); border-color: rgba(244,241,250,0.1); border-radius: var(--lumina-rayon); }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: rgba(244,241,250,0.08) !important; color: var(--lumina-blanc); }
.woocommerce-checkout #payment, .woocommerce-checkout #payment div.payment_box { background: var(--lumina-surface) !important; color: var(--lumina-blanc); border-radius: var(--lumina-rayon); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce form .form-row label { color: var(--lumina-blanc); font-weight: 600; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { background: var(--lumina-surface) !important; color: var(--lumina-blanc) !important; border-top-color: var(--lumina-halo) !important; }
.woocommerce #place_order { width: 100%; min-height: 56px; font-size: 1rem; }
.lumina-commande-intro { margin-bottom: 1.5rem; }
/* Commande sur une seule colonne : plus lisible sur mobile comme sur ordinateur */
.woocommerce-checkout form.checkout { display: block !important; }
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review, .woocommerce-checkout #order_review_heading, .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { width: 100% !important; float: none !important; margin: 0 0 1.5rem !important; padding: 0 !important; border: 0 !important; }
.woocommerce-checkout #order_review_heading { font-family: var(--lumina-titre); font-weight: 400; font-size: var(--lumina-h3); }
.woocommerce-checkout .woocommerce-billing-fields h3 { font-family: var(--lumina-titre); font-weight: 400; }
.woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width: 100% !important; float: none !important; }
@media (min-width: 560px) { .woocommerce-checkout .form-row-first, .woocommerce-checkout .form-row-last { width: 48% !important; float: left !important; } .woocommerce-checkout .form-row-last { float: right !important; } }
.woocommerce-checkout .select2-container .select2-selection { min-height: 48px; background: var(--lumina-noir); border: 1.5px solid rgba(244,241,250,0.35); border-radius: 10px; }
.woocommerce-checkout .select2-container .select2-selection__rendered { color: var(--lumina-blanc) !important; line-height: 46px !important; }
.lumina-merci { text-align: center; padding: 2rem 0; }
.lumina-merci h1 { font-size: var(--lumina-h2); }
.lumina-merci__actions { display: grid; gap: 0.75rem; max-width: 420px; margin: 1.5rem auto; }

/* 13. Newsletter et pied de page */
.lumina-newsletter { display: grid; gap: 0.75rem; }
.lumina-newsletter label { font-weight: 600; }
.lumina-newsletter__consent { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.875rem; color: var(--lumina-brume); }
.lumina-newsletter__consent input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--lumina-halo); flex: none; }
.site-footer, .site-primary-footer-wrap, .site-below-footer-wrap { background: var(--lumina-surface) !important; border: 0 !important; }
.lumina-footer { max-width: var(--lumina-max); margin: 0 auto; padding: 3.5rem var(--lumina-marge) 2rem; display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .lumina-footer { grid-template-columns: 1.2fr 1fr 1.4fr; } .lumina-footer__legal, .lumina-footer__credits { grid-column: 1 / -1; } }
.lumina-footer p { color: var(--lumina-brume); margin: 0 0 0.5rem; }
.lumina-footer__signature { font-family: "Pinyon Script", cursive; color: var(--lumina-aurore) !important; font-size: 1.75rem; margin: 0.75rem 0 !important; }
.lumina-footer__titre { font-family: var(--lumina-texte) !important; font-size: 0.8125rem !important; text-transform: uppercase; letter-spacing: 0.14em; color: var(--lumina-halo) !important; margin: 0 0 1rem !important; font-weight: 600 !important; }
.lumina-footer ul { list-style: none; margin: 0; padding: 0; }
.lumina-footer li a { display: inline-flex; align-items: center; min-height: 44px; color: var(--lumina-blanc); text-decoration: none; }
.lumina-footer li a:hover { color: var(--lumina-aurore); }
.lumina-footer__legal-liste { display: flex; flex-wrap: wrap; gap: 0 1.5rem; border-top: 1px solid rgba(244,241,250,0.1); padding-top: 1rem !important; }
.lumina-footer__legal-liste a { font-size: 0.875rem; color: var(--lumina-brume) !important; }
.lumina-footer__credits { font-size: 0.8125rem; }

/* 14. Articles */
.lumina-articles { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.25rem; }
@media (min-width: 768px) { .lumina-articles { grid-template-columns: repeat(3, 1fr); } }
.lumina-article-carte { background: var(--lumina-surface); border-radius: var(--lumina-rayon); padding: 1.5rem; position: relative; }
.lumina-article-carte h3 { margin: 0.25rem 0 0.5rem; font-family: var(--lumina-titre); font-weight: 400; font-size: 1.625rem; }
.lumina-article-carte h3 a { color: var(--lumina-blanc); text-decoration: none !important; }
.lumina-article-carte h3 a::after { content: ""; position: absolute; inset: 0; }
.blog .ast-row, .archive .ast-row { display: grid; gap: 1.25rem; padding: 0 var(--lumina-marge); max-width: var(--lumina-max); margin: 0 auto; }
@media (min-width: 768px) { .blog .ast-row, .archive .ast-row { grid-template-columns: repeat(3, 1fr); } }
.blog article.post, .archive article.post { background: var(--lumina-surface) !important; border-radius: var(--lumina-rayon); padding: 1.5rem !important; width: auto !important; }
.entry-meta, .entry-meta a { color: var(--lumina-brume) !important; }
.lumina-partage { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 2rem 0; }

/* 15. Accessibilité : lien d'évitement et texte masqué */
.skip-link:focus, .screen-reader-text:focus { background: var(--lumina-laser) !important; color: var(--lumina-noir) !important; clip: auto !important; clip-path: none; height: auto; width: auto; padding: 1rem 1.5rem; z-index: 1000; top: 8px; left: 8px; }

/* 16. Bandeau de cookies (Complianz) aux couleurs de Lumina.
   Recommandation CNIL : « Accepter » et « Refuser » ont exactement le même style. */
.cmplz-cookiebanner { background: var(--lumina-surface) !important; color: var(--lumina-blanc) !important; border: 1px solid rgba(244, 241, 250, 0.15) !important; border-radius: var(--lumina-rayon) !important; }
.cmplz-cookiebanner .cmplz-title, .cmplz-cookiebanner .cmplz-message, .cmplz-cookiebanner .cmplz-message * { color: var(--lumina-blanc) !important; font-family: var(--lumina-texte) !important; }
.cmplz-cookiebanner .cmplz-btn { min-height: 48px !important; border-radius: 999px !important; font-family: var(--lumina-texte) !important; font-weight: 600 !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-accept, .cmplz-cookiebanner .cmplz-btn.cmplz-deny { background: var(--lumina-blanc) !important; color: var(--lumina-noir) !important; border: 1.5px solid var(--lumina-blanc) !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences, .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences { background: transparent !important; color: var(--lumina-blanc) !important; border: 1.5px solid var(--lumina-blanc) !important; }
.cmplz-cookiebanner a, .cmplz-cookiebanner .cmplz-links a { color: var(--lumina-aurore) !important; }
.cmplz-cookiebanner .cmplz-close { color: var(--lumina-blanc) !important; }
