/*
Theme Name: Divi-child
Description: Thème enfant de Divi pour festivalequinoxe.fr (refonte 2026, « clair-obscur »)
Author: Nico
Template: Divi
Version: 1
License: GNU General Public License v2
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: Divi
*/

/* ==========================================================================
   REFONTE 2026 — maquette https://claude.ai/artifact/Jttr4FNK1p7PbMz5sn4GwN
   Clair-obscur tiré de l'affiche 2027 : noir, papier, rose poudré.
   Barlow Condensed (titres), Barlow (texte), Cormorant Garamond italique.

   Classes à poser dans Divi (champ « Classe CSS ») :
     section : e-s + une ambiance : e-sombre, e-noir, e-gris, e-clair, e-rose
               (e-s-serre : moins d'espace vertical ; e-s-trait : filets)
     rangée  : e-row (largeur 1240 px, marges latérales)
   Dans les textes : e-label, e-h1 … e-h4, e-it, e-btn (+ e-btn--rose,
   e-btn--contour, e-btn--noir), grilles e-g2 / e-g3 / e-g5, e-photo, etc.
   ========================================================================== */

:root {
	--e-noir: #141112;
	--e-noir-2: #1e1a1b;
	--e-noir-3: #0c0a0b;
	--e-papier: #f2ece5;
	--e-papier-2: #e6dcd3;
	--e-rose: #d3a1a6;
	--e-rose-fonce: #8e4552;
	--e-titre: 'Barlow Condensed', 'Arial Narrow', sans-serif;
	--e-texte-police: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
	--e-serif: 'Cormorant Garamond', Georgia, serif;
}

/* Ambiances : chaque section redéfinit ses couleurs */
.e-sombre, .e-entete, .e-pied, body.e-site {
	--e-fond: var(--e-noir);
	--e-texte: var(--e-papier);
	--e-doux: #cfc5c1;
	--e-pale: #b9aeaa;
	--e-accent: var(--e-rose);
	--e-trait: #3a3233;
	--e-carte: var(--e-noir-2);
	--e-it-couleur: #e8d9d6;
}
.e-noir { --e-fond: var(--e-noir-3); }
.e-gris { --e-fond: var(--e-noir-2); --e-carte: var(--e-noir); }
.e-clair {
	--e-fond: var(--e-papier);
	--e-texte: #1d1819;
	--e-doux: #4d4445;
	--e-pale: #5b5152;
	--e-accent: var(--e-rose-fonce);
	--e-trait: #d9cfc7;
	--e-carte: var(--e-papier-2);
	--e-it-couleur: #5b5152;
}
.e-rose {
	--e-fond: var(--e-rose);
	--e-texte: var(--e-noir);
	--e-doux: #2a2224;
	--e-pale: #2a2224;
	--e-accent: var(--e-noir);
	--e-trait: #b27f85;
}

/* ---- Fond général : tout le site est sombre ---- */
body.e-site,
body.e-site #page-container,
body.e-site #main-content,
body.e-site #et-main-area {
	background: var(--e-noir);
	color: var(--e-papier);
}
body.e-site { font-family: var(--e-texte-police); font-size: 17px; line-height: 1.6; }
body.e-site #page-container { padding-top: 0 !important; overflow: visible; overflow-x: clip; }
body.e-site #main-header, body.e-site #top-header { display: none; }
body.e-site #main-content .container::before { display: none; }

/* ---- Sections et rangées Divi ---- */
.et_pb_section.e-s {
	background-color: var(--e-fond);
	color: var(--e-texte);
	padding: 96px 0;
}
.et_pb_section.e-s-serre { padding: 72px 0; }
.et_pb_section.e-s-tete { padding: 72px 0 56px; }
.et_pb_section.e-s-trait { border-top: 1px solid var(--e-trait); border-bottom: 1px solid var(--e-trait); }
.e-s .et_pb_row.e-row {
	width: 100%;
	max-width: 1240px;
	padding: 0 40px;
	margin: 0 auto;
	box-sizing: border-box;
}
.e-s .et_pb_row.e-row + .et_pb_row.e-row { margin-top: 40px; }
.e-s .et_pb_column { margin-bottom: 0 !important; }
.e-s .et_pb_module { margin-bottom: 0 !important; }

/* ---- Remise à zéro des textes Divi ---- */
.e-s .et_pb_text, .e-s .et_pb_text_inner { color: var(--e-texte); font-family: var(--e-texte-police); font-size: 17px; line-height: 1.6; }
.e-s p, .e-s ul, .e-s ol { padding-bottom: 0; margin: 0; }
.e-s .et_pb_text_inner > * + * { margin-top: 18px; }
.e-s h1, .e-s h2, .e-s h3, .e-s h4 { color: inherit; padding-bottom: 0; margin: 0; }
.e-s a { color: var(--e-accent); }
.e-s a:hover { color: var(--e-texte); }
.e-s strong { font-weight: 600; color: inherit; }
.e-s img { display: block; max-width: 100%; height: auto; }

/* ---- Typographie ---- */
.e-label { font-size: 14px !important; letter-spacing: .28em; text-transform: uppercase; color: var(--e-accent); line-height: 1.5 !important; }
.e-h1, .e-h2, .e-h3, .e-h4, .e-num {
	font-family: var(--e-titre) !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	line-height: .92 !important;
	letter-spacing: .005em;
	color: inherit;
}
.e-h1 { font-size: clamp(64px, 10vw, 150px) !important; }
.e-h2 { font-size: clamp(44px, 5.4vw, 72px) !important; }
.e-h3 { font-size: clamp(30px, 3vw, 42px) !important; }
.e-h4 { font-size: 26px !important; }
.e-num { font-size: 64px !important; }
.e-it {
	font-family: var(--e-serif) !important;
	font-style: italic;
	font-weight: 400;
	font-size: clamp(24px, 2.4vw, 34px) !important;
	line-height: 1.22 !important;
	color: var(--e-it-couleur);
}
.e-lead { font-size: 19px !important; line-height: 1.65 !important; }
.e-doux { color: var(--e-doux) !important; }
.e-pale { color: var(--e-pale) !important; font-size: 15px !important; }
.e-petit { font-size: 13px !important; color: var(--e-pale) !important; }
.e-sur { font-size: 13px !important; letter-spacing: .2em; text-transform: uppercase; color: var(--e-accent); }
.e-fort { color: var(--e-accent) !important; font-weight: 600; }

/* ---- Boutons ---- */
.e-btns { display: flex; flex-wrap: wrap; gap: 14px; }
a.e-btn, button.e-btn, .e-s .et_pb_contact_submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 48px;
	padding: 0 24px !important;
	font-family: var(--e-titre) !important;
	font-weight: 600 !important;
	font-size: 18px !important;
	letter-spacing: .06em !important;
	text-transform: uppercase;
	text-decoration: none;
	box-sizing: border-box;
	border: 1px solid transparent !important;
	border-radius: 0 !important;
	line-height: 1 !important;
	transition: background-color .15s, color .15s;
}
a.e-btn::after, .e-s .et_pb_contact_submit::after { display: none !important; }
a.e-btn--rose { background: var(--e-rose); color: var(--e-noir) !important; }
a.e-btn--rose:hover { background: var(--e-papier); }
a.e-btn--contour { border-color: currentColor !important; color: var(--e-texte) !important; }
a.e-btn--contour:hover { background: var(--e-texte); color: var(--e-fond) !important; }
a.e-btn--noir, .e-s .et_pb_contact_submit { background: var(--e-noir) !important; color: var(--e-papier) !important; }
a.e-btn--noir:hover, .e-s .et_pb_contact_submit:hover { background: var(--e-rose-fonce) !important; }
.e-sombre .et_pb_contact_submit, .e-gris .et_pb_contact_submit { background: var(--e-rose) !important; color: var(--e-noir) !important; }
a.e-lien-fleche { font-family: var(--e-titre); font-size: 19px; letter-spacing: .08em; text-transform: uppercase; text-decoration: none; }

/* ---- Grilles ---- */
.e-g2, .e-g3, .e-g4, .e-g5, .e-hero, .e-lead-grille, .e-ug, .e-tk, .e-lay { display: grid; gap: 40px; }
.e-g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; }
.e-g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.e-g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 28px; }
.e-g5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.e-hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 56px; align-items: end; }
.e-lead-grille { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 56px; align-items: center; }
.e-ug { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; align-items: center; }
.e-tk { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.e-lay { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.e-centre { align-items: center; }
.e-pile { display: flex; flex-direction: column; gap: 18px; }
.e-pile > * + * { margin-top: 0 !important; }
.e-pile-s { display: flex; flex-direction: column; gap: 8px; }
.e-pile-s > * + * { margin-top: 0 !important; }
.e-ligne { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: baseline; justify-content: space-between; }
.e-ligne > * + * { margin-top: 0 !important; }
.e-g2 > *, .e-g3 > *, .e-g4 > *, .e-g5 > * { margin-top: 0 !important; }

/* ---- Photos ---- */
.e-photo { overflow: hidden; background: #2a2324; }
.e-clair .e-photo { background: #d9cfc7; }
.e-photo img { width: 100%; height: 100%; object-fit: cover; }
.e-nb img, img.e-nb { filter: grayscale(1) contrast(1.06) brightness(.96); }
.e-r45 { aspect-ratio: 4 / 5; }
.e-r34 { aspect-ratio: 3 / 4; }
.e-r43 { aspect-ratio: 4 / 3; }
.e-r32 { aspect-ratio: 3 / 2; }
.e-affiche { margin: 0; }
.e-affiche img { width: 100%; aspect-ratio: 707 / 1000; object-fit: cover; box-shadow: 0 30px 80px rgba(0, 0, 0, .55); }
.e-affiche figcaption { padding-top: 12px; font-size: 13px; color: #9d918d; }
.e-vide { display: flex; align-items: center; justify-content: center; color: #8a7d7e; font-size: 14px; }
.e-ini { font-family: var(--e-titre); font-size: 56px; font-weight: 600; color: #6b5d5f; }

/* ---- Cartes ---- */
a.e-carte { display: flex; flex-direction: column; gap: 16px; color: var(--e-texte); text-decoration: none; }
a.e-carte:hover .e-h3 { color: var(--e-accent); }
a.e-jour {
	display: flex; flex-direction: column; gap: 10px; padding: 22px; min-height: 210px; box-sizing: border-box;
	background: var(--e-carte); color: var(--e-texte); text-decoration: none;
}
a.e-jour:hover { outline: 1px solid var(--e-accent); }
.e-jour__j { font-family: var(--e-titre); font-size: 18px; text-transform: uppercase; letter-spacing: .1em; color: var(--e-accent); }
.e-jour__n { font-family: var(--e-titre); font-size: 64px; font-weight: 600; line-height: .92; }
.e-jour__t { font-size: 15px; color: var(--e-doux); }
.e-boite { padding: 26px; background: var(--e-carte); display: flex; flex-direction: column; gap: 8px; }
.e-boite > * + * { margin-top: 0 !important; }
.e-cadre { padding: 28px; border: 1px solid var(--e-accent); }
.e-filet { border-top: 2px solid var(--e-accent); padding-top: 16px; display: flex; flex-direction: column; gap: 8px; }
.e-filet > * + * { margin-top: 0 !important; }
.e-clair .e-filet { border-top-color: var(--e-noir); }
.e-liste { list-style: none; padding: 0 !important; display: flex; flex-direction: column; gap: 10px; }
.e-liste li { border-bottom: 1px solid var(--e-trait); padding-bottom: 10px; font-size: 18px; }
.e-etapes { padding-left: 22px !important; display: flex; flex-direction: column; gap: 14px; color: var(--e-it-couleur); }
.e-jauge { height: 10px; background: var(--e-trait); }
.e-jauge span { display: block; height: 10px; background: var(--e-rose); }
.e-noms { display: flex; flex-wrap: wrap; gap: 14px; }
.e-noms span { padding: 18px 26px; border: 1px solid #cfc4bb; font-family: var(--e-titre); font-size: 20px; text-transform: uppercase; letter-spacing: .06em; }

/* ---- Mosaïque de photos ---- */
.e-mosaic { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 220px; gap: 10px; }
.e-mosaic > * { margin-top: 0 !important; }
.e-mosaic .e-big { grid-column: span 2; grid-row: span 2; }
.e-mosaic-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: 260px; gap: 10px; }
.e-mosaic-3 > * { margin-top: 0 !important; }
.e-mosaic-3 .e-large { grid-column: span 2; }

/* ---- Programmation ---- */
.e-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.e-pills a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1px solid #6b5d5f;
	color: var(--e-texte); text-decoration: none; font-family: var(--e-titre); font-size: 18px; letter-spacing: .06em; text-transform: uppercase;
}
.e-pills a:hover { border-color: var(--e-rose); color: var(--e-rose); }
.e-day { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; padding: 56px 0; border-top: 1px solid var(--e-trait); scroll-margin-top: 100px; }
.e-day > * + * { margin-top: 0 !important; }
.e-day__j { font-family: var(--e-titre); font-size: 22px; text-transform: uppercase; letter-spacing: .12em; color: var(--e-accent); line-height: 1.2; }
.e-day__n { font-family: var(--e-titre); font-size: 110px; font-weight: 600; line-height: .92; }
.e-day__s { font-family: var(--e-titre); font-size: 22px; text-transform: uppercase; letter-spacing: .12em; color: var(--e-pale); line-height: 1.2; }
.e-ev { display: grid; grid-template-columns: 110px minmax(0, 1fr) 240px; gap: 28px; align-items: start; padding: 24px 0; border-bottom: 1px solid #2c2526; }
.e-ev:last-child { border-bottom: 0; }
.e-ev > * + * { margin-top: 0 !important; }
.e-ev__h { font-family: var(--e-titre); font-size: 34px; font-weight: 600; line-height: .92; text-transform: uppercase; }
.e-ev__c { display: flex; flex-direction: column; gap: 8px; }
.e-ev__c > * + * { margin-top: 0 !important; }
.e-ev .e-vis img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.e-tag { display: inline-block; padding: 4px 10px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid #6b5d5f; color: var(--e-it-couleur); }
.e-tag--libre { border-color: var(--e-rose); color: var(--e-rose); }
[id] { scroll-margin-top: 100px; }

/* ---- Stages ---- */
.e-facts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; background: var(--e-trait); margin-top: 16px !important; }
.e-facts > div { background: var(--e-noir); padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.e-facts .e-h4 { font-size: 30px !important; }
.e-st { display: grid; grid-template-columns: 80px minmax(0, 1fr) 300px; gap: 36px; padding: 44px 0; border-top: 1px solid var(--e-trait); align-items: start; }
.e-st > * + * { margin-top: 0 !important; }
.e-st .e-num { color: var(--e-rose-fonce); }
.e-note { padding: 12px 16px; background: var(--e-noir); color: var(--e-papier); font-size: 15px; }

/* ---- Archives ---- */
.e-posters { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; }
.e-posters > * { margin-top: 0 !important; }
.e-posters a { display: flex; flex-direction: column; gap: 10px; color: var(--e-texte); text-decoration: none; }
.e-posters img { width: 100%; aspect-ratio: 707 / 1000; object-fit: cover; box-shadow: 0 14px 40px rgba(0, 0, 0, .45); }
/* Photos / Vidéos : édition en cours */
.e-en-cours { display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr); gap: 56px; align-items: center; padding: 40px; background: var(--e-carte); }
.e-en-cours > * { margin-top: 0 !important; }
.e-en-cours__affiche { margin: 0; }
.e-en-cours img { display: block; width: 100%; aspect-ratio: 707 / 1000; object-fit: cover; box-shadow: 0 14px 40px rgba(0, 0, 0, .45); }
.e-faits { display: flex; flex-wrap: wrap; gap: 8px 28px; font-family: var(--e-titre); font-size: 20px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.e-faits span + span::before { content: "·"; margin-right: 28px; color: var(--e-accent); }
/* Photos / Vidéos : affiches des éditions précédentes */
.e-affiches { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; }
.e-affiches > * { margin-top: 0 !important; }
.e-affiches a { display: flex; flex-direction: column; gap: 12px; color: var(--e-texte); text-decoration: none; }
.e-affiches img, .e-affiches .e-sans { display: block; width: 100%; aspect-ratio: 707 / 1000; object-fit: cover; box-shadow: 0 14px 40px rgba(0, 0, 0, .45); }
.e-affiches a:hover img { outline: 1px solid var(--e-rose); outline-offset: 6px; }
.e-affiches .e-sans { box-sizing: border-box; display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; padding: 22px; border: 1px solid var(--e-trait); background: var(--e-carte); box-shadow: none; }
.e-sans__an { font-family: var(--e-titre); font-size: 64px; font-weight: 600; line-height: .9; color: var(--e-accent); }
.e-an { font-family: var(--e-titre); font-size: 30px; font-weight: 600; line-height: 1; }
.e-plus { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--e-trait); }
.e-plus > * { margin-top: 0 !important; }
.e-plus a { display: flex; flex-direction: column; gap: 4px; padding: 24px 0; background: var(--e-fond); color: var(--e-texte); text-decoration: none; }
.e-plus a + a { padding-left: 24px; }
.e-plus a:hover .e-h3 { color: var(--e-rose); }
@media (max-width: 1100px) { .e-affiches { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) {
	.e-en-cours { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 24px; }
	.e-en-cours img { max-width: 260px; }
	.e-affiches { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; }
	.e-sans__an { font-size: 44px; }
	.e-plus { grid-template-columns: minmax(0, 1fr); }
	.e-plus a + a { padding-left: 0; }
}
/* Le festival : équipe (textes complets) et pastilles des rôles 2027 */
.e-roles { display: flex; flex-wrap: wrap; gap: 8px; }
.e-roles span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border: 1px solid var(--e-accent); color: var(--e-accent); font-family: var(--e-titre); font-size: 15px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.e-roles em { margin-left: 4px; font-family: var(--e-texte-police); font-size: 14px; font-style: italic; letter-spacing: 0; text-transform: none; }
.e-equipe { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--e-trait); border-block: 1px solid var(--e-trait); }
.e-equipe > * { margin-top: 0 !important; }
.e-membre { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; align-items: start; padding: 32px 32px 32px 0; background: var(--e-fond); }
.e-membre:nth-child(even) { padding: 32px 0 32px 32px; }
.e-membre > * { margin-top: 0 !important; }
.e-membre__bio { display: flex; flex-direction: column; gap: 12px; font-size: 16px; }
.e-membre__bio > * { margin-top: 0 !important; }
.e-membre__bio p { color: var(--e-doux); }
.e-membre__nom { margin: 0; padding: 0; font-family: var(--e-titre); font-size: 30px !important; font-weight: 600; line-height: 1 !important; text-transform: uppercase; color: var(--e-texte); }
@media (max-width: 900px) {
	.e-equipe { grid-template-columns: minmax(0, 1fr); }
	.e-membre, .e-membre:nth-child(even) { padding: 28px 0; }
}
@media (max-width: 520px) {
	.e-membre { grid-template-columns: minmax(0, 1fr); }
	.e-membre .e-photo { max-width: 200px; }
}
.e-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.e-chips a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid #cfc4bb; color: #1d1819; text-decoration: none; font-size: 15px; }
.e-chips a:hover { border-color: var(--e-rose-fonce); color: var(--e-rose-fonce); }
.e-chips a span { color: #8a7d7e; }
.e-eds { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--e-trait); }
.e-eds > * { margin-top: 0 !important; }
.e-eds a { background: var(--e-noir); padding: 24px; display: flex; flex-direction: column; gap: 6px; color: var(--e-texte); text-decoration: none; min-height: 150px; box-sizing: border-box; }
.e-eds a:hover { background: var(--e-noir-2); }
.e-press { display: grid; grid-template-columns: 140px minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--e-trait); }
.e-press > * + * { margin-top: 0 !important; }
.e-press .e-h4 { color: var(--e-rose); }

/* ---- Infos pratiques ---- */
.e-place { display: flex; flex-direction: column; gap: 10px; padding: 28px; background: var(--e-carte); }
.e-place > * + * { margin-top: 0 !important; }
.e-carte-lieux { height: 380px; border: 0; width: 100%; filter: grayscale(1) invert(.9) contrast(.9); grid-column: 1 / -1; }
a.e-don { display: flex; flex-direction: column; gap: 6px; padding: 26px; background: var(--e-carte); color: var(--e-texte); text-decoration: none; }
a.e-don:hover { outline: 1px solid var(--e-rose); }
a.e-don--rose { background: var(--e-rose); color: var(--e-noir); }
.e-logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.e-logos > * { margin-top: 0 !important; }
.e-logos a, .e-logos span { height: 110px; background: var(--e-papier); display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; }
.e-logos img { max-height: 78px; width: auto; object-fit: contain; }
.e-bandeau { display: flex; flex-wrap: wrap; gap: 16px 40px; padding: 22px 28px; background: var(--e-papier-2); }
.e-bandeau > * + * { margin-top: 0 !important; }

/* ---- Formulaires Divi (contact, inscription aux stages) ---- */
.e-s .et_pb_contact_form_container { margin: 0; }
.e-s .et_pb_contact_form_container .et_pb_contact_main_title { display: none; }
.e-s .et_pb_contact_field { padding-left: 0 !important; margin-bottom: 14px !important; }
.e-s .et_pb_contact_form_label { display: block !important; font-size: 14px; color: var(--e-doux); margin-bottom: 6px; }
.e-s .et_pb_contact p input, .e-s .et_pb_contact p textarea, .e-s .et_pb_contact select {
	background: var(--e-noir) !important; border: 1px solid #6b5d5f !important; border-radius: 0 !important;
	color: var(--e-papier) !important; font-size: 16px !important; padding: 12px 14px !important; font-family: var(--e-texte-police) !important;
}
.e-clair .et_pb_contact p input, .e-clair .et_pb_contact p textarea, .e-clair .et_pb_contact select {
	background: #fbf8f4 !important; border-color: #b9ada5 !important; color: #1d1819 !important;
}
.e-s .et_contact_bottom_container { float: none; text-align: left; margin-top: 4px; }
.e-s .et-pb-contact-message { color: var(--e-accent); }
.e-formulaire { padding: 32px; background: var(--e-noir-2); }

/* ==========================================================================
   En-tête et pied de page (functions.php et footer.php)
   ========================================================================== */
.e-entete { position: sticky; top: 0; z-index: 99; background: var(--e-noir); border-bottom: 1px solid var(--e-trait); color: var(--e-papier); }
body.admin-bar .e-entete { top: 32px; }
.e-entete__dedans { max-width: 1240px; margin: 0 auto; padding: 18px 40px; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 16px 32px; }
.e-marque { display: flex; flex-direction: column; gap: 2px; color: var(--e-papier); text-decoration: none; }
.e-marque__nom { font-family: var(--e-titre); font-size: 34px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: .92; }
.e-marque__sous { font-size: 12px; letter-spacing: .22em; text-transform: uppercase; color: var(--e-pale); }
.e-nav { display: flex; align-items: center; gap: 28px; }
.e-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 28px; }
.e-nav a, .e-menu-mobile a { font-family: var(--e-titre); font-size: 19px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--e-papier); text-decoration: none; }
.e-nav a:hover, .e-nav .current-menu-item > a, .e-nav .current_page_item > a { color: var(--e-rose); }
.e-nav .e-cta > a, .e-menu-mobile .e-cta > a { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; background: var(--e-rose); color: var(--e-noir); font-weight: 600; }
.e-nav .e-cta > a:hover { background: var(--e-papier); color: var(--e-noir); }
.e-menu-mobile { display: none; }
.e-menu-mobile summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--e-papier); }
.e-menu-mobile summary::-webkit-details-marker { display: none; }
.e-menu-mobile nav { position: absolute; left: 0; right: 0; top: 100%; background: var(--e-noir); border-bottom: 1px solid var(--e-trait); padding: 12px 20px 24px; }
.e-menu-mobile ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.e-menu-mobile li a { display: block; padding: 12px 0; border-bottom: 1px solid var(--e-trait); }
.e-menu-mobile .e-cta { margin-top: 16px; }
.e-menu-mobile .e-cta > a { justify-content: center; border: 0; }

.e-pied { background: var(--e-noir); color: var(--e-papier); border-top: 1px solid var(--e-trait); padding: 72px 0 40px; font-size: 15px; line-height: 1.6; }
.e-pied__dedans { max-width: 1240px; margin: 0 auto; padding: 0 40px; box-sizing: border-box; display: flex; flex-direction: column; gap: 48px; }
.e-pied__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.e-pied__col { display: flex; flex-direction: column; gap: 8px; }
.e-pied__col p { margin: 0; padding: 0; color: var(--e-pale); }
.e-pied__titre { font-family: var(--e-titre); font-size: 18px; letter-spacing: .14em; text-transform: uppercase; color: var(--e-rose) !important; }
.e-pied a { color: var(--e-rose); text-decoration: none; }
.e-pied a:hover { color: var(--e-papier); }
.e-pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 13px; color: #9d918d; border-top: 1px solid var(--e-trait); padding-top: 20px; }
.e-pied__bas a { color: #9d918d; }

/* ==========================================================================
   Tablette et téléphone
   ========================================================================== */
.e-marque { flex-shrink: 0; white-space: nowrap; }
.e-nav ul { flex-wrap: nowrap; }
/* Écrans moyens : menu resserré pour tenir sur une ligne (7 entrées, dont « Photos / Vidéos »). */
@media (min-width: 1101px) and (max-width: 1320px) {
	.e-nav, .e-nav ul { gap: 8px 18px; }
	.e-nav a { font-size: 17px; letter-spacing: .04em; }
	.e-nav .e-cta > a { padding: 0 18px; }
	.e-entete__dedans { padding-left: 32px; padding-right: 32px; }
}
@media (max-width: 1100px) {
	.e-nav { display: none; }
	.e-menu-mobile { display: block; }
	.e-entete__dedans { position: relative; }
}
@media (max-width: 900px) {
	.e-s .et_pb_row.e-row, .e-entete__dedans, .e-pied__dedans { padding-left: 20px; padding-right: 20px; }
	.et_pb_section.e-s { padding: 64px 0; }
	.e-g2, .e-g3, .e-hero, .e-lead-grille, .e-ug, .e-tk, .e-lay, .e-pied__cols { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.e-g4, .e-posters, .e-eds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-g5, .e-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.e-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 160px; }
	.e-mosaic-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 180px; }
	.e-day { grid-template-columns: minmax(0, 1fr); gap: 12px; }
	.e-day__n { font-size: 80px; }
	.e-ev { grid-template-columns: 72px minmax(0, 1fr); gap: 16px; }
	.e-ev .e-vis { grid-column: 1 / -1; }
	.e-st { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.e-press { grid-template-columns: minmax(0, 1fr); gap: 6px; }
}

/* Colonnes Divi empilées (tablette, téléphone) */
@media (max-width: 980px) {
	.e-s .et_pb_row.e-row > .et_pb_column + .et_pb_column { margin-top: 32px; }
}
.e-s .et_pb_column.e-formulaire { padding: 32px; background: var(--e-noir-2); box-sizing: border-box; }
.e-s .et_pb_column.e-formulaire .et_pb_module + .et_pb_module { margin-top: 16px; }
span.e-photo { display: block; }

/* Carte des lieux (le bloc occupe toute la largeur de la grille) */
.e-carte-bloc { grid-column: 1 / -1; }
.e-carte-bloc iframe.e-carte-lieux { display: block; height: 380px; width: 100%; border: 0; filter: grayscale(1) contrast(.95); }
/* Exposants (12e édition) : Divi les décale vers le bas */
.e-s sup { vertical-align: super; font-size: .65em; line-height: 0; bottom: auto; top: auto; position: static; }
/* Titres : pas de coupure de mot au milieu */
.e-h1, .e-h2, .e-h3 { overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* ==========================================================================
   Pages d'éditions et affiches (refonte/editions.php)
   ========================================================================== */
.e-affiche--petite { max-width: 380px; justify-self: end; width: 100%; }
.e-pills--petites a { min-height: 38px; padding: 0 14px; font-size: 15px; }
.e-video { position: relative; aspect-ratio: 16 / 9; background: #000; }
.e-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.e-video-bloc { margin: 0; display: flex; flex-direction: column; gap: 12px; }
.et_pb_section.e-s-galeries { padding-top: 24px; }
.e-s .et_pb_row.e-galerie-rangee { padding-top: 56px; padding-bottom: 8px; }
.e-s .et_pb_row.e-galerie-rangee + .et_pb_row.e-galerie-rangee { margin-top: 0; border-top: 1px solid var(--e-trait); }
.e-galerie-rangee .et_pb_module + .et_pb_module { margin-top: 24px !important; }
.e-collectors { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; }
.e-collectors > * { margin-top: 0 !important; }
.e-collectors img { width: 100%; height: auto; }

/* Galeries Divi : grille serrée, vignettes recadrées, visionneuse au clic */
.e-galerie .et_pb_gallery_items { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
.e-galerie .et_pb_gallery_item { width: auto !important; margin: 0 !important; clear: none !important; float: none !important; }
.e-galerie .et_pb_gallery_image { aspect-ratio: 3 / 2; overflow: hidden; background: #2a2324; }
.e-galerie .et_pb_gallery_image img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s; }
.e-galerie .et_pb_gallery_image:hover img { transform: scale(1.04); }
.e-galerie .et_overlay { background: rgba(20, 17, 18, .35) !important; border: 0 !important; }
.e-galerie .et_overlay::before { color: var(--e-papier) !important; }
.e-galerie .et_pb_gallery_pagination { border-top: 0; margin-top: 20px; padding: 0; }
.e-galerie .et_pb_gallery_pagination ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.e-galerie .et_pb_gallery_pagination ul li { display: block; margin: 0; }
.e-galerie .et_pb_gallery_pagination ul li a {
	display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; box-sizing: border-box;
	border: 1px solid #6b5d5f; color: var(--e-papier); font-family: var(--e-titre); font-size: 17px; text-decoration: none;
}
.e-galerie .et_pb_gallery_pagination ul li a.active, .e-galerie .et_pb_gallery_pagination ul li a:hover { border-color: var(--e-rose); color: var(--e-rose); }
@media (max-width: 900px) {
	.e-galerie .et_pb_gallery_items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.e-affiche--petite { justify-self: start; max-width: 260px; }
}
/* Affiches et collectors : format vertical, image entière */
/* Galeries d'éditions : photos entières en rangées justifiées (eqx_galerie_rangees
   dans functions.php pose --r). Largeur de base = hauteur × proportions, puis
   chaque photo s'étire au prorata pour finir la rangée. Si --h change, mettre à
   jour les sizes de eqx_galerie_image. */
.e-galerie--entiere .et_pb_gallery_items { --h: 180px; display: flex !important; flex-wrap: wrap; gap: 6px; grid-template-columns: none; }
.e-galerie--entiere .et_pb_gallery_items::after { content: ""; display: block; flex-grow: 999999; height: 0; }
.e-galerie--entiere .et_pb_gallery_item { flex-grow: calc(var(--r, 1.5) * 100); flex-basis: calc(var(--h) * var(--r, 1.5)); aspect-ratio: var(--r, 1.5); }
.e-galerie--entiere .et_pb_gallery_image { aspect-ratio: auto; height: 100%; }
.e-galerie--entiere .et_pb_gallery_image a { display: block; height: 100%; }
.e-galerie--entiere .et_pb_gallery_image img { height: 100% !important; }
@media (max-width: 900px) { .e-galerie--entiere .et_pb_gallery_items { --h: 120px; gap: 4px; } }
.e-galerie--affiches .et_pb_gallery_items { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.e-galerie--affiches .et_pb_gallery_image { aspect-ratio: 707 / 1000; background: transparent; }
.e-galerie--affiches .et_pb_gallery_image img { object-fit: contain; }
@media (max-width: 900px) { .e-galerie--affiches .et_pb_gallery_items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- Bandeau cookies (js/eqx-consentement.js), comme Timber et np-photographie.
   Les deux boutons ont le même poids : la CNIL demande que refuser soit aussi
   simple qu'accepter. ---- */
#e-cookies {
	position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 100000;
	max-width: 760px; margin: 0 auto; box-sizing: border-box;
	display: flex; align-items: center; gap: 24px;
	padding: 18px 22px;
	background: var(--e-noir-2); border: 1px solid #3a3233;
	box-shadow: 0 14px 40px rgba(0, 0, 0, .45);
	color: var(--e-papier); font-family: var(--e-texte-police); font-size: 15px; line-height: 1.55;
}
#e-cookies p { margin: 0; padding: 0; color: var(--e-papier); }
.e-cookies__boutons { display: flex; gap: 10px; flex-shrink: 0; }
#e-cookies button {
	min-height: 44px; padding: 0 22px;
	background: transparent; border: 1px solid var(--e-rose); border-radius: 0;
	color: var(--e-papier); font-family: var(--e-titre); font-size: 17px; font-weight: 600;
	letter-spacing: .08em; text-transform: uppercase; cursor: pointer;
}
#e-cookies button:hover, #e-cookies button:focus-visible { background: var(--e-rose); color: var(--e-noir); outline: none; }
@media (max-width: 600px) {
	#e-cookies { flex-direction: column; align-items: stretch; gap: 14px; }
	.e-cookies__boutons button { flex: 1; }
}
.e-cookies-lien {
	padding: 0; background: none; border: 0;
	color: inherit; font: inherit; text-decoration: underline; cursor: pointer;
}
.e-cookies-lien:hover { color: var(--e-rose); }
