/*
Theme Name: AmZ Musiczine
Theme URI: https://amzmusiczine.com
Author: Seobooster LTD
Description: Le fanzine photocopié de tous les festivals de France. Deux encres risographiques (rose fluo, bleu), papier bleuté, bracelets de discipline, réglette de saisons. Annuaire de 7 283 festivals + actualité.
Version: 2.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: amz-musiczine
*/

/* =====================================================================
   0. JETONS — clair uniquement (décision Mathias 18/09/2026, CM-0575).
   ===================================================================== */
:root{
	--papier: #EEF0F6;
	--feuille: #FBFBFE;
	--pli: #D9DCE8;
	--encre: #16152B;
	--encre-douce: #4A4966;
	--riso-rose: #E8237F;
	--riso-bleu: #2F4FB0;
	--surimpression: #3B1E6E;
	--bande-nuit: #16152B;
	--bande-rose: #E8237F;
	--sur-bande-nuit: #EEF0F6;
	--sur-bande-nuit-douce: #A9A7C6;
	--sur-bande-rose: #16152B;

	--radius: 4px;
	--radius-billet: 6px;
	--ombre: 0 2px 0 var(--pli), 0 10px 24px -14px rgba(22,21,43,.28);

	--fs-h1: clamp(40px, 6vw + 1rem, 76px);
	--fs-h2: clamp(30px, 3.4vw + 1rem, 48px);
	--fs-h3: clamp(21px, 1.6vw + 1rem, 26px);
	--fs-lecture: clamp(17px, .3vw + 1rem, 18px);
	--fs-etiquette: 12px;
	--fs-chiffre: clamp(30px, 5vw + .5rem, 68px);

	--conteneur: 1240px;
	--gouttiere: 24px;

	--police-affiche: 'Dela Gothic One', 'Arial Black', Impact, sans-serif;
	--police-corps: 'Mona Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;

	color-scheme: light;
}

/* =====================================================================
   1. POLICES — self-hosted (P-086). Fichiers attendus dans assets/fonts/.
   Mona Sans est une police variable (wght 200-900, wdth 75-125).
   ===================================================================== */
@font-face{
	font-family: 'Dela Gothic One';
	src: url('assets/fonts/dela-gothic-one.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face{
	font-family: 'Mona Sans';
	src: url('assets/fonts/mona-sans.woff2') format('woff2');
	font-weight: 200 900;
	font-stretch: 75% 125%;
	font-style: normal;
	font-display: swap;
}

/* =====================================================================
   2. RESET SOBRE
   ===================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body{
	margin: 0;
	background: var(--papier);
	color: var(--encre);
	font-family: var(--police-corps);
	font-variation-settings: 'wdth' 100;
	font-weight: 400;
	font-size: var(--fs-lecture);
	line-height: 1.6;
	font-variant-numeric: tabular-nums;
}
img{ max-width: 100%; height: auto; display: block; }
svg{ max-width: 100%; }
a{ color: var(--riso-bleu); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
a:hover{ color: var(--riso-rose); }
ul[class]{ list-style: none; margin: 0; padding: 0; }
button{ font: inherit; }
h1,h2,h3,h4{ margin: 0 0 .5em; line-height: 1.08; }
h1,h2{ font-family: var(--police-affiche); font-weight: 400; letter-spacing: 0; }
h3,h4{ font-family: var(--police-corps); font-variation-settings: 'wdth' 112; font-weight: 800; }
h1{ font-size: var(--fs-h1); }
h2{ font-size: var(--fs-h2); }
h3{ font-size: var(--fs-h3); }
p{ margin: 0 0 1.2em; }
.amz-etiquette, .amz-tags, .amz-fil, .amz-souche small{
	font-variation-settings: 'wdth' 75;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	font-size: var(--fs-etiquette);
}
:focus-visible{ outline: 3px solid var(--riso-bleu); outline-offset: 2px; }
.amz-sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.amz-skip{ position:absolute; left:-999px; top:0; background:var(--encre); color:#fff; padding:.75em 1em; z-index:1000; }
.amz-skip:focus{ left:8px; top:8px; }

/* =====================================================================
   3. LE GRAIN — bruit riso léger sur les aplats d'encre seulement.
   ===================================================================== */
.amz-grain{ position: relative; }
.amz-grain::after{
	content: '';
	position: absolute; inset: 0; pointer-events: none;
	opacity: .05; mix-blend-mode: multiply;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* =====================================================================
   4. LA SURIMPRESSION RISO — H1 du hero, tuiles de chiffres.
   ===================================================================== */
.amz-surimprime{
	position: relative;
	display: inline-block;
	color: var(--encre);
}
.amz-surimprime::before, .amz-surimprime::after{
	content: attr(data-txt);
	position: absolute; left: 0; top: 0;
	width: 100%;
}
.amz-surimprime::before{ color: var(--riso-rose); transform: translate(-2px,-1px); mix-blend-mode: multiply; z-index: -1; }
.amz-surimprime::after{ color: var(--riso-bleu); transform: translate(2px,1px); mix-blend-mode: multiply; z-index: -1; }

/* =====================================================================
   5. CONTENEUR ET BANDES
   ===================================================================== */
.amz-conteneur{ max-width: var(--conteneur); margin: 0 auto; padding: 0 16px; }
@media(min-width:900px){ .amz-conteneur{ padding: 0 32px; } }
.amz-bande{ padding: 64px 0; }
.amz-bande--papier{ background: var(--papier); }
.amz-bande--feuille{ background: var(--feuille); }
.amz-bande--rose{ background: var(--bande-rose); color: var(--sur-bande-rose); }
.amz-bande--nuit{ background: var(--bande-nuit); color: var(--sur-bande-nuit); position: relative; }
.amz-bande--nuit + .amz-bande--nuit{ border-top: 1px solid rgba(255,255,255,.08); }
.amz-bande--nuit a{ color: var(--sur-bande-nuit); text-decoration-color: var(--riso-rose); }
.amz-bande--nuit .amz-encre-douce, .amz-bande--nuit small{ color: var(--sur-bande-nuit-douce); }
.amz-bande-titre{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:28px; }

/* =====================================================================
   6. TUILE — très gros chiffre
   ===================================================================== */
.amz-tuile{ text-align:left; }
.amz-tuile .amz-num{
	font-family: var(--police-affiche);
	font-size: var(--fs-chiffre);
	line-height: .92;
	display:block;
	white-space:nowrap;
	letter-spacing:-.01em;
}
.amz-tuile .amz-legende{ display:block; margin-top:8px; font-variation-settings:'wdth' 75; text-transform:uppercase; letter-spacing:.04em; font-weight:700; font-size:13px; }
.amz-tuiles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
@media(max-width:780px){ .amz-tuiles{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* =====================================================================
   7. FIL D'ARIANE
   ===================================================================== */
.amz-fil{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; color:var(--encre-douce); margin:0 0 20px; }
.amz-fil a{ color:var(--encre-douce); text-decoration:none; }
.amz-fil a:hover{ color:var(--riso-rose); }
.amz-fil span[aria-hidden]{ opacity:.5; }

/* =====================================================================
   8. BRACELETS — filtres discipline
   ===================================================================== */
.amz-bracelets{ display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; }
.amz-bracelet{
	display:inline-flex; align-items:center; gap:8px;
	background: var(--feuille); border:1.5px solid var(--pli);
	border-radius: 999px; padding:8px 16px 8px 10px;
	font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase;
	letter-spacing:.03em; font-size:12.5px; color:var(--encre); text-decoration:none;
	transition: border-color .15s, transform .15s;
}
.amz-bracelet:hover, .amz-bracelet.is-actif{ border-color: var(--riso-rose); color:var(--encre); transform: translateY(-1px); }
.amz-bracelet::before{
	content:''; width:16px; height:16px; border-radius:50%; flex:none;
	background: var(--pli);
}
.amz-bracelet[data-disc="musique"]::before{ background: repeating-linear-gradient(0deg, var(--riso-bleu) 0 2px, var(--riso-rose) 2px 4px); }
.amz-bracelet[data-disc="spectacle-vivant"]::before{ background: repeating-linear-gradient(115deg, var(--riso-rose) 0 3px, var(--feuille) 3px 6px); }
.amz-bracelet[data-disc="cinema-audiovisuel"]::before{ background: repeating-linear-gradient(45deg, var(--encre) 0 2px, transparent 2px 5px), var(--riso-bleu); }
.amz-bracelet[data-disc="livre-litterature"]::before{ background: repeating-linear-gradient(0deg, var(--encre) 0 1.5px, var(--feuille) 1.5px 4px); }
.amz-bracelet[data-disc="arts-visuels-arts-numeriques"]::before{ background-image: radial-gradient(var(--riso-bleu) 30%, transparent 31%); background-size: 5px 5px; background-color: var(--feuille); }
.amz-bracelet[data-disc="pluridisciplinaire"]::before{ background-image: conic-gradient(var(--riso-rose) 0 90deg, var(--riso-bleu) 90deg 180deg, var(--riso-rose) 180deg 270deg, var(--riso-bleu) 270deg 360deg); background-size: 8px 8px; }

/* ruban vertical de discipline (carte + fiche) */
.amz-ruban{ position:absolute; left:0; top:0; bottom:0; width:8px; background: var(--pli); }
.amz-ruban[data-disc="musique"]{ background: repeating-linear-gradient(0deg, var(--riso-bleu) 0 3px, var(--riso-rose) 3px 6px); }
.amz-ruban[data-disc="spectacle-vivant"]{ background: repeating-linear-gradient(20deg, var(--riso-rose) 0 4px, var(--feuille) 4px 8px), var(--encre); }
.amz-ruban[data-disc="cinema-audiovisuel"]{ background: repeating-linear-gradient(45deg, var(--feuille) 0 3px, transparent 3px 7px), var(--encre); }
.amz-ruban[data-disc="livre-litterature"]{ background: repeating-linear-gradient(0deg, var(--encre) 0 2px, var(--feuille) 2px 5px), var(--riso-bleu); }
.amz-ruban[data-disc="arts-visuels-arts-numeriques"]{ background-image: radial-gradient(var(--feuille) 35%, transparent 36%); background-size: 6px 6px; background-color: var(--riso-bleu); }
.amz-ruban[data-disc="pluridisciplinaire"]{ background-image: conic-gradient(var(--riso-rose) 0 90deg, var(--riso-bleu) 90deg 180deg, var(--riso-rose) 180deg 270deg, var(--riso-bleu) 270deg 360deg); background-size: 8px 8px; }

/* =====================================================================
   9. RÉGLETTE 12 MOIS — pavé saison
   ===================================================================== */
.amz-reglette{ display:flex; gap:2px; list-style:none; margin:0; padding:0; }
.amz-reglette li{ width:9px; height:16px; background:var(--pli); border-radius:1px; }
.amz-reglette i{ display:block; width:100%; height:100%; font-style:normal; }
.amz-reglette li.on{ background: var(--riso-rose); }
.amz-reglette-legende{ display:flex; gap:2px; font-size:9px; color:var(--encre-douce); margin-top:4px; }

/* pavé tampon (dates confirmées) */
.amz-tampon{ display:inline-flex; flex-direction:column; align-items:center; justify-content:center; border:2px solid var(--riso-bleu); border-radius:6px; padding:4px 10px; color:var(--riso-bleu); transform:rotate(-2deg); }
.amz-tampon .amz-jour{ font-family:var(--police-affiche); font-size:28px; line-height:1; }
.amz-tampon .amz-mois{ font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; font-size:11px; letter-spacing:.05em; }

/* =====================================================================
   10. CARTE FESTIVAL — composant partagé (A stylise, B remplit)
   ===================================================================== */
.amz-carte-fest{
	position:relative; display:flex; flex-direction:column; gap:10px;
	background:var(--feuille); border:1px solid var(--pli); border-radius:var(--radius);
	padding:16px 16px 16px 24px; min-width:0; overflow:hidden;
	transition: box-shadow .15s, transform .15s;
}
.amz-carte-fest:hover{ box-shadow: var(--ombre); transform: translateY(-2px); }
.amz-carte-fest .amz-visuel{ aspect-ratio:4/3; border-radius:2px; overflow:hidden; background:var(--pli); margin:0 -4px 0 0; }
.amz-carte-fest .amz-visuel img{ width:100%; height:100%; object-fit:cover; }
.amz-carte-fest h3{ font-size:18px; margin:0; }
.amz-carte-fest h3 a{ color:var(--encre); text-decoration:none; }
.amz-carte-fest h3 a:hover{ color:var(--riso-rose); }
.amz-carte-fest .amz-lieu{ color:var(--encre-douce); font-size:14px; margin:0; }
.amz-carte-fest .amz-tags{ display:flex; gap:6px; flex-wrap:wrap; color:var(--riso-bleu); }
/* correctif : en absolu, le N° chevauchait l'affiche SVG (surtout dans les rails étroits) */
.amz-carte-fest .amz-num{ display:block; margin:2px 0 0; font-family:var(--police-affiche); font-size:11px; letter-spacing:.02em; color:var(--encre-douce); }

/* mis en avant */
.amz-mis-en-avant{
	display:inline-flex; align-items:center; gap:5px; align-self:flex-start;
	background: var(--riso-rose); color:#fff; border-radius:3px;
	padding:3px 8px; font-variation-settings:'wdth' 75; font-weight:700;
	text-transform:uppercase; letter-spacing:.04em; font-size:10.5px;
}

/* grille de cartes */
.amz-grille{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
@media(max-width:1024px){ .amz-grille{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:780px){ .amz-grille{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px){ .amz-grille{ grid-template-columns:minmax(0,1fr); } }

/* rail horizontal (à l'affiche) */
.amz-rail{ display:flex; gap:20px; overflow-x:auto; padding:4px 4px 20px; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; }
.amz-rail::after{ content:''; flex:0 0 1px; }
.amz-rail .amz-carte-fest{ min-width:260px; max-width:260px; scroll-snap-align:start; }
.amz-rail-indice{ font-size:12px; color:var(--sur-bande-nuit-douce); }
.amz-bande--rose .amz-rail-indice{ color:var(--sur-bande-rose); opacity:.7; }

/* =====================================================================
   11. BILLET — CTA à souche
   ===================================================================== */
.amz-billet{
	display:flex; align-items:stretch; text-decoration:none; color:var(--encre);
	background:var(--feuille); border:2px dashed var(--encre); border-radius:var(--radius-billet);
	overflow:hidden; max-width:520px; position:relative;
	clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
}
.amz-billet-corps{ flex:1; padding:18px 16px; min-width:0; }
.amz-billet-corps strong{ display:block; font-family:var(--police-affiche); font-size:19px; margin-bottom:4px; }
.amz-billet-corps span{ display:block; color:var(--encre-douce); font-size:14px; }
.amz-souche{
	flex:none; width:92px; display:flex; align-items:center; justify-content:center;
	border-left:2px dashed var(--encre); background: var(--bande-rose); color:var(--sur-bande-rose);
	writing-mode: vertical-rl; text-orientation:mixed; padding:10px 0;
	font-family:var(--police-affiche); font-size:17px; text-align:center;
}
.amz-billet:hover{ border-color:var(--riso-rose); }
.amz-billet:hover .amz-souche{ background: var(--riso-rose); }
.amz-billet--rose{ background:var(--bande-rose); color:var(--sur-bande-rose); border-color:var(--sur-bande-rose); }
.amz-billet--rose .amz-souche{ background:var(--encre); color:var(--sur-bande-nuit); border-left-color:var(--sur-bande-rose); }
.amz-billet--nuit{ background: var(--feuille); }
.amz-billets-duo{ display:flex; gap:24px; flex-wrap:wrap; }
/* correctif : sur bande nuit, .amz-bande--nuit a imposait sa couleur claire → titre blanc sur billet blanc */
.amz-billets-duo .amz-billet-corps strong, .amz-billets-duo .amz-billet-corps span{ color: var(--encre); }
.amz-billets-duo .amz-billet--rose .amz-billet-corps strong, .amz-billets-duo .amz-billet--rose .amz-billet-corps span{ color: var(--sur-bande-rose); }
@media(max-width:600px){ .amz-billets-duo{ flex-direction:column; } .amz-billet, .amz-billets-duo .amz-billet{ max-width:none; } }

/* =====================================================================
   12. PUB (articles seulement)
   ===================================================================== */
.amz-pub{ border:1px solid var(--pli); border-radius:var(--radius); padding:10px; margin:32px 0; background:var(--feuille); text-align:center; }
.amz-pub::before{ content:'Publicité'; display:block; font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.06em; font-size:10px; color:var(--encre-douce); margin-bottom:8px; }
.amz-pub ins, .amz-pub iframe{ max-width:100%; }

/* =====================================================================
   13. INFOGRAPHIES DU SOCLE — habillage riso (sbs_lieu/tarifs/frise/jauges)
   ===================================================================== */
sbs-lieu, sbs-tarifs, sbs-frise, sbs-jauges{
	display:block; background:var(--feuille); border:1px solid var(--pli); border-radius:var(--radius);
	padding:20px; margin:28px 0;
}
.sbs_lieu_nom, .sbs_tarifs_titre, .sbs_frise_titre, .sbs_jauges_titre{ font-family:var(--police-affiche); font-size:20px; display:block; margin-bottom:12px; }
.sbs_lieu_adresse{ font-style:normal; color:var(--encre-douce); }
sbs-tarif{ display:flex; align-items:center; gap:12px; margin:10px 0; }
.sbs_tarif_libelle{ width:40%; flex:none; }
.sbs_tarif_barre{ flex:1; width:100%; accent-color:var(--riso-rose); height:10px; }
sbs-etape{ display:block; border-left:2px solid var(--riso-bleu); padding:0 0 16px 16px; margin-left:4px; }
.sbs_etape_date{ display:block; font-variation-settings:'wdth' 75; font-weight:700; color:var(--riso-rose); font-size:13px; }
sbs-jauge{ display:inline-flex; flex-direction:column; margin:0 24px 12px 0; }
.sbs_jauge_valeur{ font-family:var(--police-affiche); font-size:32px; }
.sbs_source{ display:block; margin-top:14px; color:var(--encre-douce); font-size:12px; }
.sbs_tableau{ overflow-x:auto; margin:24px 0; border:1px solid var(--pli); border-radius:var(--radius); }
.sbs_tableau table{ border-collapse:collapse; width:100%; min-width:520px; }
.sbs_tableau th, .sbs_tableau td{ padding:10px 14px; border-bottom:1px solid var(--pli); text-align:left; }
.sbs_tableau th{ background:var(--papier); font-variation-settings:'wdth' 75; text-transform:uppercase; font-size:12px; letter-spacing:.04em; }

/* =====================================================================
   14. EN-TÊTE
   ===================================================================== */
.amz-entete{ position:sticky; top:0; z-index:100; background:rgba(251,251,254,.92); backdrop-filter:blur(6px); border-bottom:1px solid var(--pli); }
.amz-entete-barre{ display:flex; align-items:center; gap:20px; height:64px; }
.amz-logo{ display:flex; align-items:center; gap:8px; text-decoration:none; color:var(--encre); flex:none; }
.amz-logo svg{ width:38px; height:38px; }
.amz-logo-texte{ font-family:var(--police-affiche); font-size:17px; line-height:1; white-space:nowrap; }
.amz-logo-texte .amz-z1{ color:var(--riso-rose); }
.amz-logo-texte .amz-z2{ color:var(--riso-bleu); margin-left:-3px; }
.amz-nav-principale{ display:flex; gap:22px; margin-left:auto; }
.amz-nav-principale a{ color:var(--encre); text-decoration:none; font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.03em; font-size:13px; }
.amz-nav-principale a:hover{ color:var(--riso-rose); }
.amz-recherche-compacte{ display:flex; align-items:center; border:1.5px solid var(--pli); border-radius:999px; padding:4px 4px 4px 14px; background:var(--feuille); }
.amz-recherche-compacte input{ border:0; background:none; font:inherit; width:150px; }
.amz-recherche-compacte input:focus{ outline:0; }
.amz-recherche-compacte button{ border:0; background:var(--encre); color:#fff; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.amz-cta-billet{ flex:none; display:inline-flex; align-items:center; gap:6px; background:var(--riso-rose); color:#fff; text-decoration:none; padding:9px 16px; border-radius:999px; font-variation-settings:'wdth' 75; font-weight:700; font-size:13px; white-space:nowrap; clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%, 8px 50%); padding-left:22px; }
.amz-cta-billet:hover{ background:var(--encre); color:#fff; }
.amz-burger{ display:none; flex:none; background:none; border:0; cursor:pointer; padding:8px; }
.amz-burger span{ display:block; width:22px; height:2px; background:var(--encre); margin:5px 0; }
.amz-loupe-mobile{ display:none; }
.amz-menu-mobile{ display:none; }

@media(max-width:900px){
	.amz-nav-principale, .amz-recherche-compacte{ display:none; }
	.amz-burger{ display:block; }
	.amz-loupe-mobile{ display:flex; align-items:center; justify-content:center; width:36px; height:36px; border-radius:50%; background:var(--feuille); border:1px solid var(--pli); color:var(--encre); margin-left:auto; }
	.amz-cta-billet{ padding:8px 12px 8px 16px; font-size:0; width:38px; height:38px; justify-content:center; }
	.amz-cta-billet::before{ content:'+'; font-size:20px; }
	body.amz-menu-ouvert{ overflow:hidden; }
	.amz-menu-mobile{
		display:block; position:fixed; inset:64px 0 0 0; background:var(--papier);
		transform:translateX(100%); transition:transform .2s ease; z-index:99; overflow-y:auto;
	}
	.amz-menu-ouvert .amz-menu-mobile{ transform:translateX(0); }
	.amz-menu-mobile ul{ display:flex; flex-direction:column; padding:24px; gap:4px; }
	.amz-menu-mobile a{ display:block; padding:16px 4px; border-bottom:1px solid var(--pli); color:var(--encre); text-decoration:none; font-family:var(--police-affiche); font-size:20px; }
	.amz-menu-mobile form{ margin:24px; }
}

/* barre basse mobile */
.amz-barre-basse{ display:none; }
@media(max-width:780px){
	.amz-barre-basse{
		display:flex; position:fixed; left:0; right:0; bottom:0; z-index:98;
		background:var(--feuille); border-top:1px solid var(--pli);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.amz-barre-basse a{
		flex:1; display:flex; flex-direction:column; align-items:center; gap:3px;
		padding:9px 4px 8px; color:var(--encre-douce); text-decoration:none; font-size:10.5px;
		font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.02em;
	}
	.amz-barre-basse a svg{ width:20px; height:20px; }
	.amz-barre-basse a.is-actif{ color:var(--riso-rose); }
	body{ padding-bottom:64px; }
}

/* =====================================================================
   15. HERO ACCUEIL
   ===================================================================== */
.amz-hero{ padding:56px 0 64px; background:var(--papier); overflow:hidden; }
.amz-hero-grille{ display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.amz-hero-photo{ position:relative; aspect-ratio:4/3; border-radius:6px; overflow:hidden; background:var(--pli); }
.amz-hero-photo img{ width:100%; height:100%; object-fit:cover; filter: grayscale(1) contrast(1.15); mix-blend-mode: normal; }
.amz-hero-photo::before{ content:''; position:absolute; inset:0; background:var(--riso-rose); mix-blend-mode:multiply; opacity:.75; }
.amz-hero-photo::after{ content:''; position:absolute; inset:0; background:var(--riso-bleu); mix-blend-mode:screen; opacity:.35; }
.amz-hero-sous{ font-size:19px; color:var(--encre-douce); max-width:46ch; margin:0 0 28px; }
.amz-hero-illustration{ width:100%; height:100%; }

.amz-recherche-hero{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.amz-recherche-hero input[type="search"]{
	flex:1 1 260px; min-width:0; border:2px solid var(--encre); border-radius:999px;
	padding:14px 20px; font:inherit; background:var(--feuille);
}
.amz-recherche-hero button{
	background:var(--riso-rose); color:#fff; border:0; border-radius:999px; padding:14px 26px;
	font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.03em; cursor:pointer;
}
.amz-recherche-hero button:hover{ background:var(--encre); }
.amz-quand{ display:flex; gap:8px; flex-wrap:wrap; margin:0 0 32px; }
.amz-quand a{ border:1px solid var(--pli); background:var(--feuille); border-radius:999px; padding:6px 14px; font-size:13px; text-decoration:none; color:var(--encre); }
.amz-quand a:hover{ border-color:var(--riso-rose); color:var(--riso-rose); }

@media(max-width:900px){
	.amz-hero-grille{ grid-template-columns:1fr; gap:24px; }
	.amz-hero-photo{ order:-1; aspect-ratio:16/10; }
	.amz-hero{ padding:24px 0 40px; }
}

/* =====================================================================
   16. CARTE DE FRANCE (accueil) — abstraite, en trame de points
   ===================================================================== */
.amz-section-carte{ display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center; }
.amz-carte-visuelle{ background:var(--feuille); border:1px solid var(--pli); border-radius:8px; aspect-ratio:16/9; overflow:hidden; position:relative; }
.amz-carte-visuelle svg{ width:100%; height:100%; }
.amz-regions-liste{ display:flex; flex-direction:column; gap:10px; }
.amz-region-ligne{ display:grid; grid-template-columns:1fr 140px auto; align-items:center; gap:14px; text-decoration:none; color:var(--encre); padding:6px 0; border-bottom:1px solid var(--pli); }
.amz-region-ligne:hover .amz-region-nom{ color:var(--riso-rose); }
.amz-region-barre{ height:8px; background:var(--pli); border-radius:2px; overflow:hidden; }
.amz-region-barre span{ display:block; height:100%; background:repeating-linear-gradient(45deg,var(--riso-bleu) 0 4px,var(--riso-rose) 4px 8px); }
.amz-region-num{ font-variation-settings:'wdth' 75; font-weight:700; }
@media(max-width:900px){ .amz-section-carte{ grid-template-columns:1fr; } .amz-region-ligne{ grid-template-columns:1fr 90px auto; } }
/* correctif : sur bande nuit, les libellés/chiffres de répartition étaient encre-sur-encre (invisibles) */
.amz-bande--nuit .amz-region-ligne{ color: var(--sur-bande-nuit); border-bottom-color: rgba(255,255,255,.14); }
.amz-bande--nuit .amz-region-num{ color: var(--sur-bande-nuit); }
/* correctif : .amz-surimprime impose color:encre → invisible sur bande nuit (1er chiffre "En chiffres") */
.amz-bande--nuit .amz-surimprime{ color: var(--sur-bande-nuit); }

/* =====================================================================
   17. ACTUALITÉ (grille + une)
   ===================================================================== */
.amz-une{ display:block; position:relative; border-radius:8px; overflow:hidden; text-decoration:none; color:inherit; aspect-ratio:16/9; margin-bottom:24px; }
.amz-une img{ width:100%; height:100%; object-fit:cover; }
.amz-une-bandeau{ position:absolute; left:0; right:0; bottom:0; background:linear-gradient(0deg, rgba(22,21,43,.92), rgba(22,21,43,0)); padding:60px 24px 20px; }
.amz-une-bandeau h2, .amz-une-bandeau h3{ color:#fff; margin:0; font-size:clamp(24px,3vw,38px); }
.amz-actu-carte{ display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; min-width:0; }
.amz-actu-carte .amz-visuel{ aspect-ratio:16/9; border-radius:6px; overflow:hidden; background:var(--pli); }
.amz-actu-carte .amz-visuel img{ width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.amz-actu-carte:hover .amz-visuel img{ transform:scale(1.04); }
.amz-actu-carte h3{ font-size:19px; margin:0; color:var(--encre); }
.amz-actu-meta{ display:flex; gap:10px; align-items:center; color:var(--encre-douce); font-size:13px; flex-wrap:wrap; }
.amz-grille-actus{ display:grid; grid-template-columns:2fr 1fr 1fr; gap:24px; }
.amz-grille-actus > :first-child{ grid-row: span 2; }
@media(max-width:900px){ .amz-grille-actus{ grid-template-columns:1fr 1fr; } .amz-grille-actus > :first-child{ grid-column:1/-1; grid-row:auto; } }
@media(max-width:560px){ .amz-grille-actus{ grid-template-columns:1fr; } }

/* =====================================================================
   18. PIED DE PAGE
   ===================================================================== */
.amz-pied{ padding:56px 0 28px; }
.amz-pied-grille{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:32px; }
.amz-pied-colonne h4{ font-family:var(--police-affiche); font-weight:400; font-size:16px; margin-bottom:14px; color:var(--sur-bande-nuit); }
.amz-pied-colonne ul{ display:flex; flex-direction:column; gap:8px; list-style:none; margin:0; padding:0; }
.amz-pied-colonne a{ color:var(--sur-bande-nuit-douce); text-decoration:none; font-size:14px; }
.amz-pied-colonne a:hover{ color:var(--riso-rose); }
.amz-pied-nuage{ display:flex; flex-wrap:wrap; gap:6px 12px; }
.amz-pied-nuage a{ font-variation-settings:'wdth' 100; font-size:14px; }
.amz-pied-marque{ display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.amz-pied-marque svg{ width:34px; height:34px; }
.amz-pied-marque strong{ font-family:var(--police-affiche); font-size:16px; color:var(--sur-bande-nuit); }
.amz-pied-desc{ color:var(--sur-bande-nuit-douce); max-width:38ch; font-size:14px; }
.amz-pied-bas{ margin-top:40px; padding-top:20px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--sur-bande-nuit-douce); }
.amz-pied-source{ max-width:60ch; }
@media(max-width:900px){ .amz-pied-grille{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .amz-pied-grille{ grid-template-columns:1fr; } }

/* =====================================================================
   19. ARTICLE (single.php)
   ===================================================================== */
.amz-article-entete{ padding:40px 0 0; }
.amz-article-etiquette{ color:var(--riso-rose); font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:12.5px; text-decoration:none; }
.amz-article-titre{ margin:12px 0 16px; max-width:20ch; }
.amz-chapo{ font-size:21px; color:var(--encre-douce); max-width:700px; margin-bottom:24px; }
.amz-article-meta{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; color:var(--encre-douce); font-size:14px; margin-bottom:28px; }
.amz-progres{ position:sticky; top:64px; height:3px; background:var(--pli); z-index:50; }
.amz-progres i{ display:block; height:100%; width:0; background:var(--riso-rose); transition:width .1s linear; }
.amz-article-image{ max-height:520px; width:100%; overflow:hidden; border-radius:6px; margin-bottom:8px; }
.amz-article-image img{ width:100%; height:100%; object-fit:cover; max-height:520px; }
.amz-credit{ font-size:12px; color:var(--encre-douce); margin:0 0 32px; }

.amz-article-mise-en-page{ display:grid; grid-template-columns:minmax(0,700px) 300px; gap:48px; align-items:start; }
.amz-colonne-lecture{ min-width:0; max-width:700px; font-size:18px; line-height:1.75; }
.amz-colonne-lecture h2{ font-size:28px; margin-top:1.6em; }
.amz-colonne-lecture h3{ margin-top:1.4em; }
.amz-colonne-lecture img{ border-radius:6px; margin:1.4em 0; aspect-ratio:3/2; object-fit:cover; width:100%; }
.amz-colonne-lecture figure{ margin:1.4em 0; }
.amz-colonne-lecture figcaption{ font-size:13px; color:var(--encre-douce); margin-top:6px; }
.amz-colonne-lecture blockquote{ border-left:3px solid var(--riso-rose); margin:1.6em 0; padding:.2em 0 .2em 1.2em; font-size:20px; font-variation-settings:'wdth' 112; }

.amz-barre-laterale{ position:sticky; top:88px; display:flex; flex-direction:column; gap:24px; }
.amz-module-lateral{ background:var(--feuille); border:1px solid var(--pli); border-radius:6px; padding:18px; }
.amz-module-lateral h4{ margin:0 0 12px; font-size:15px; font-variation-settings:'wdth' 75; text-transform:uppercase; letter-spacing:.03em; }

.amz-sommaire{ background:var(--feuille); border:1px solid var(--pli); border-radius:6px; padding:18px 20px; margin-bottom:32px; }
.amz-sommaire h2{ font-size:15px; font-family:var(--police-corps); font-variation-settings:'wdth' 75; text-transform:uppercase; letter-spacing:.03em; margin-bottom:10px; }
.amz-sommaire ol{ list-style:decimal; padding-left:18px; margin:0; display:flex; flex-direction:column; gap:6px; }
.amz-sommaire a{ color:var(--encre); text-decoration:none; font-size:14.5px; }
.amz-sommaire a:hover, .amz-sommaire a.is-actif{ color:var(--riso-rose); }

.amz-festival-en-fiche{ display:flex; gap:12px; align-items:flex-start; text-decoration:none; color:inherit; background:var(--papier); border-radius:4px; padding:12px; }
.amz-festival-en-fiche .amz-visuel{ width:64px; height:64px; flex:none; border-radius:4px; overflow:hidden; background:var(--pli); }
.amz-festival-en-fiche .amz-visuel img{ width:100%; height:100%; object-fit:cover; }

.amz-sources{ margin:40px 0; padding-top:24px; border-top:1px solid var(--pli); }
.amz-sources h2{ font-size:15px; font-family:var(--police-corps); font-variation-settings:'wdth' 75; text-transform:uppercase; letter-spacing:.03em; }
.amz-sources ol{ list-style:decimal; padding-left:20px; display:flex; flex-direction:column; gap:6px; font-size:14px; color:var(--encre-douce); }
.amz-sources a{ color:var(--riso-bleu); }

.amz-articles-lies{ padding:48px 0; }
.amz-articles-lies-grille{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media(max-width:780px){ .amz-articles-lies-grille{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .amz-articles-lies-grille{ grid-template-columns:1fr; } }

@media(max-width:1000px){
	.amz-article-mise-en-page{ grid-template-columns:1fr; }
	.amz-barre-laterale{ position:static; }
}

/* =====================================================================
   20. AUTEUR — cf mu-plugin sb-auteur-bloc (aucun style n'est imposé ici,
   juste le retrait des marges par défaut pour l'insérer proprement).
   ===================================================================== */
.amz-emplacement-auteur{ margin:32px 0; }

/* =====================================================================
   21. PAGES GÉNÉRIQUES / 404 / RECHERCHE
   ===================================================================== */
.amz-page-entete{ padding:48px 0 0; }
.amz-page-corps{ padding:32px 0 64px; max-width:760px; font-size:18px; line-height:1.75; }
.amz-page-corps img{ border-radius:6px; margin:1.4em 0; }
.amz-404{ padding:96px 0; text-align:center; }
.amz-404 .amz-num{ font-family:var(--police-affiche); font-size:clamp(80px,14vw,180px); line-height:1; }
.amz-404-liens{ display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:32px; }
.amz-resultats-liste{ display:flex; flex-direction:column; gap:28px; padding:32px 0 64px; }
.amz-resultat{ padding-bottom:24px; border-bottom:1px solid var(--pli); }
.amz-resultat h2{ font-size:22px; margin-bottom:6px; }
.amz-resultat h2 a{ color:var(--encre); text-decoration:none; }
.amz-resultat h2 a:hover{ color:var(--riso-rose); }
.amz-resultat p{ color:var(--encre-douce); margin:0; }

.amz-searchform{ display:flex; gap:8px; max-width:480px; }
.amz-searchform input[type="search"]{ flex:1; border:2px solid var(--encre); border-radius:999px; padding:12px 18px; font:inherit; }
.amz-searchform button{ background:var(--riso-rose); color:#fff; border:0; border-radius:999px; padding:0 20px; font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.03em; cursor:pointer; }

/* =====================================================================
   22. BILLET ORGANISATEUR (bande nuit accueil)
   ===================================================================== */
.amz-billet-organisateur{ display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center; }
@media(max-width:780px){ .amz-billet-organisateur{ grid-template-columns:1fr; text-align:left; } }

/* =====================================================================
   23. UTILITAIRES
   ===================================================================== */
.amz-flex{ display:flex; }
.amz-gap-s{ gap:8px; } .amz-gap-m{ gap:16px; } .amz-gap-l{ gap:24px; }
.amz-mt-0{ margin-top:0; }
.amz-encre-douce{ color:var(--encre-douce); }
.amz-bouton{ display:inline-flex; align-items:center; gap:8px; background:var(--riso-bleu); color:#fff; text-decoration:none; padding:12px 22px; border-radius:999px; font-variation-settings:'wdth' 75; font-weight:700; text-transform:uppercase; letter-spacing:.03em; font-size:13px; border:0; cursor:pointer; }
.amz-bouton:hover{ background:var(--encre); color:#fff; }
.amz-bouton--fantome{ background:transparent; border:2px solid var(--encre); color:var(--encre); }
.amz-bouton--fantome:hover{ background:var(--encre); color:#fff; }

@media(max-width:390px){
	.amz-grille, .amz-tuiles, .amz-grille-actus, .amz-articles-lies-grille{ grid-template-columns: minmax(0,1fr) !important; }
	.amz-conteneur{ padding:0 16px; min-width:0; }
	*{ min-width:0; }
}

/* Liens du corps d'article : bien visibles (R-0608) — soulignement épais façon surligneur riso. */
.amz-colonne-lecture :is(p,li,td,blockquote) a:not([class]){
	color: var(--encre); font-weight: 600; text-decoration: none;
	background: linear-gradient(transparent 58%, color-mix(in srgb, var(--riso-rose) 32%, transparent) 58%);
	box-shadow: inset 0 -2px 0 var(--riso-rose);
}
.amz-colonne-lecture :is(p,li,td,blockquote) a:not([class]):hover{ background: color-mix(in srgb, var(--riso-rose) 22%, transparent); }
