/* ============================================================
   LEGOB.CSS v1.4.10 : univers grimoire / taverne du GOB.
   Parchemin, encre brune, rubans bordeaux, sceaux ambre/or.
   v1.3.3 : bouton tournee sorti de la ligne prix vers une rangee
            d'actions dediee (avec le Happy Hour) + symbole "+".
   v1.3.2 : carte responsive revue.
     - bouton "Ma tournee" transforme en pastille libellee (chope
       + texte, etats clairs ajoute / non ajoute)
     - ligne prix qui ne deborde plus (passe sous le nom et
       s'aligne a droite sur mobile, plus de troncature)
     - nav categories en bande defilante horizontale sur mobile
     - passe responsive complete (tablette + telephone)
   Les titres heritent de la fonte du theme.
   ============================================================ */

.gob-carte,
.gob-widget {
	--gob-parch: #e3cb96;
	--gob-parch-2: #f2e4bf;
	--gob-ink: #3d2008;
	--gob-ink-2: #5a3217;
	--gob-ribbon: #7a1f14;
	--gob-ribbon-2: #5e1810;
	--gob-amber: #e8941a;
	--gob-gold: #f0c040;
	--gob-green: #4a8a2e;
	--gob-wood: #3a2417;
	color: var(--gob-ink);
}

/* ===================== CARTE ===================== */

.gob-carte {
	width: 100%;
	max-width: none;
	margin: 0;
	background-color: var(--gob-parch);
	background-image:
		radial-gradient(ellipse at 16% 10%, rgba(255, 250, 234, 0.55), transparent 46%),
		radial-gradient(ellipse at 84% 16%, rgba(150, 104, 52, 0.22), transparent 42%),
		radial-gradient(ellipse at 72% 88%, rgba(110, 70, 28, 0.24), transparent 50%),
		radial-gradient(ellipse at 30% 70%, rgba(255, 246, 224, 0.45), transparent 46%),
		repeating-linear-gradient(94deg, rgba(140, 100, 55, 0.06) 0, rgba(140, 100, 55, 0.06) 2px, transparent 2px, transparent 6px),
		repeating-linear-gradient(-3deg, rgba(110, 74, 36, 0.05) 0, rgba(110, 74, 36, 0.05) 3px, transparent 3px, transparent 8px);
	border-style: solid;
	border-width: 16px;
	border-color: #5a3617;
	border-image-source: repeating-linear-gradient(90deg, #6e4621 0, #553314 5px, #7d5128 8px, #43280f 12px, #6e4621 16px);
	border-image-slice: 16;
	border-image-repeat: repeat;
	box-shadow:
		0 8px 28px rgba(40, 20, 5, 0.45),
		inset 0 0 130px rgba(90, 50, 23, 0.34),
		inset 0 0 0 2px rgba(120, 80, 40, 0.25);
	padding: 24px clamp(14px, 4vw, 56px) 104px;
	box-sizing: border-box;
}

/* Barre d'outils : recherche, filtre, gobelin */
.gob-carte__bar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: center;
	margin-bottom: 14px;
}

.gob-carte__search {
	flex: 1 1 220px;
	min-width: 0;
	background: var(--gob-parch-2);
	border: 1px solid var(--gob-ink-2);
	border-radius: 6px;
	padding: 10px 12px;
	color: var(--gob-ink);
	font-size: 15px;
}

.gob-carte__search::placeholder { color: #8a6b3f; }

.gob-carte__soft {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	cursor: pointer;
	color: var(--gob-ink-2);
	white-space: nowrap;
}

.gob-carte__ask {
	background: var(--gob-ribbon);
	color: var(--gob-parch-2);
	border: 1px solid var(--gob-ribbon-2);
	border-radius: 6px;
	padding: 10px 15px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 2px 0 var(--gob-ribbon-2);
	transition: transform 0.1s;
}

.gob-carte__ask:hover { transform: translateY(-1px); }
.gob-carte__ask:active { transform: translateY(1px); box-shadow: none; }

/* Navigation par categories : pilules compactes.
   Desktop = retour a la ligne ; mobile = bande qui defile (voir media). */
.gob-carte__nav {
	position: sticky;
	top: 0;
	z-index: 3;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	background: var(--gob-parch);
	padding: 8px 0;
	margin-bottom: 18px;
	border-bottom: 2px solid var(--gob-ribbon);
}

.gob-carte__nav a {
	flex: 0 0 auto;
	background: transparent;
	color: var(--gob-ribbon);
	border: 1px solid var(--gob-ribbon);
	border-radius: 20px;
	padding: 5px 12px;
	font-size: 12.5px;
	font-weight: 700;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.4px;
	white-space: nowrap;
	transition: background 0.15s, color 0.15s;
}

.gob-carte__nav a:hover,
.gob-carte__nav a:focus-visible {
	background: var(--gob-ribbon);
	color: var(--gob-parch-2);
	outline: none;
}

/* Sections et rubans de titre */
.gob-carte__cat { margin-bottom: 30px; scroll-margin-top: 70px; }

.gob-carte__ribbon {
	position: relative;
	background: linear-gradient(180deg, #8a2417, var(--gob-ribbon) 55%, var(--gob-ribbon-2));
	color: var(--gob-parch-2);
	font-family: "MedievalSharp", serif;
	font-size: 20px;
	letter-spacing: 0;
	text-transform: uppercase;
	padding: 9px 18px;
	margin: 0 0 14px;
	border-radius: 3px;
	box-shadow: 0 3px 8px rgba(40, 20, 5, 0.35);
	cursor: pointer;
	transition: filter 0.15s;
	display: flex;
	align-items: center;
	gap: 8px;
}

.gob-carte__ribbon:hover { filter: brightness(1.12); }

.gob-carte__ribbon::before {
	content: "\2766"; /* fleuron */
	font-size: 14px;
	opacity: 0.7;
	flex: 0 0 auto;
}

.gob-carte__ribbon > span:first-of-type { flex: 1 1 auto; }

.gob-carte__ribbon .gob-carte__chev {
	flex: 0 0 auto;
	transition: transform 0.2s;
}

.gob-carte__cat.is-closed .gob-carte__chev { transform: rotate(-90deg); }
.gob-carte__cat.is-closed .gob-carte__list { display: none; }

@keyframes gobListIn {
	from { opacity: 0; transform: translateY(-6px); }
	to { opacity: 1; transform: none; }
}

.gob-carte__cat:not(.is-closed) .gob-carte__list { animation: gobListIn 0.25s ease; }

/* Items : lignes de grimoire, deux colonnes sur grand ecran */
.gob-carte__list {
	list-style: none;
	margin: 0;
	padding: 0 4px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px 40px;
	align-items: start;
}

@media (max-width: 820px) {
	.gob-carte__list { grid-template-columns: 1fr; gap: 0; }
}

.gob-item {
	padding: 10px 6px;
	border-bottom: 1px dashed rgba(90, 50, 23, 0.35);
	border-radius: 6px;
	transition: background 0.2s;
}

.gob-item:hover { background: rgba(240, 192, 64, 0.10); }

/* Apparition au scroll (uniquement si JS actif, voir gob-carte.js) */
.gob-carte--anim .gob-item {
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.45s ease, transform 0.45s ease, background 0.2s;
}

.gob-carte--anim .gob-item.is-in {
	opacity: 1;
	transform: none;
}

.gob-item__line {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 10px;
}

.gob-item__name {
	font-weight: 700;
	font-size: 17px;
	color: var(--gob-ink);
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	flex: 0 1 auto;
}

.gob-item__degre {
	font-weight: 400;
	font-size: 13px;
	color: var(--gob-ink-2);
	font-family: "Pixelify Sans", monospace;
}

.gob-item__dots {
	flex: 1 1 24px;
	border-bottom: 2px dotted rgba(90, 50, 23, 0.45);
	transform: translateY(-4px);
	min-width: 24px;
}

.gob-item__price {
	font-weight: 700;
	font-size: 15px;
	color: var(--gob-ribbon);
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	white-space: nowrap;
	transition: transform 0.15s;
	display: inline-block;
}

.gob-item:hover .gob-item__price { transform: scale(1.07); }

.gob-item__ingr {
	margin: 4px 0 0;
	font-size: 14.5px;
	color: var(--gob-ink-2);
	line-height: 1.6;
}

.gob-item__desc {
	margin-top: 4px;
	font-size: 14.5px;
	color: var(--gob-ink-2);
	line-height: 1.6;
}

.gob-item__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 6px;
	align-items: center;
}

.gob-item__vol {
	font-size: 13px;
	color: var(--gob-ink-2);
	background: rgba(90, 50, 23, 0.10);
	border-radius: 4px;
	padding: 2px 8px;
}

/* Sceau Happy Hour : pastille ambre comme sur la carte print */
.gob-item__hh {
	display: inline-block;
	background: radial-gradient(circle at 35% 30%, var(--gob-gold), var(--gob-amber) 70%);
	color: #4a2606;
	font-size: 12.5px;
	font-weight: 700;
	border: 2px solid #b06f10;
	border-radius: 999px;
	padding: 3px 10px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.35);
	text-transform: uppercase;
}

/* Badge : sceau de cire */
.gob-item__badge {
	display: inline-block;
	background: radial-gradient(circle at 35% 30%, #a4351f, var(--gob-ribbon) 75%);
	color: var(--gob-parch-2);
	font-family: "Pixelify Sans", monospace;
	font-size: 11.5px;
	font-weight: 700;
	border-radius: 999px;
	padding: 3px 10px;
	margin-left: 6px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.4), inset 0 0 6px rgba(0, 0, 0, 0.25);
	text-transform: uppercase;
	letter-spacing: 0.4px;
	vertical-align: middle;
}

/* Bouton "Ajouter a ma tournee" : pastille chope + libelle clair.
   Le SVG chope vient du JS ; le libelle vient du ::after. */
.gob-item__add {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: var(--gob-parch-2);
	border: 1.5px solid #b09058;
	border-radius: 999px;
	padding: 4px 12px 4px 7px;
	width: auto;
	height: auto;
	line-height: 1;
	cursor: pointer;
	color: var(--gob-ribbon);
	font-family: inherit;
	font-weight: 700;
	font-size: 12.5px;
	white-space: nowrap;
	align-self: center;
	flex: 0 0 auto;
	transition: transform 0.12s, background 0.15s, border-color 0.15s, box-shadow 0.15s;
}

.gob-item__add svg { width: 18px; height: 18px; flex: 0 0 auto; }

.gob-item__add::after { content: "Tournée"; }
.gob-item__add::before { content: "+"; font-weight: 900; font-size: 15px; line-height: 1; }
.gob-item__add.is-on::before { content: none; }

.gob-item__add:hover {
	transform: translateY(-1px);
	border-color: var(--gob-amber);
	box-shadow: 0 2px 6px rgba(40, 20, 5, 0.25);
}

.gob-item__add:focus-visible {
	outline: 2px solid var(--gob-amber);
	outline-offset: 2px;
}

.gob-item__add.is-on {
	background: radial-gradient(circle at 35% 30%, var(--gob-gold), var(--gob-amber) 75%);
	border-color: #b06f10;
	color: #4a2606;
}

.gob-item__add.is-on::after { content: "Ajouté \2713"; }

/* Rangee d'actions en bas d'article : Happy Hour a gauche, bouton a droite */
.gob-item__meta--actions { margin-top: 8px; }
.gob-item__meta .gob-item__add { margin-left: auto; }

/* "Ma tournee" : pastille + panneau depliable.
   z-index au-dessus du voile torche (9985/9986) mais sous le majordome. */
.gob-tournee {
	position: fixed;
	bottom: 14px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 9990;
	width: max-content;
	max-width: min(440px, 94vw);
	font-family: inherit;
}

.gob-tournee[hidden] { display: none; }

.gob-tournee__pill {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: center;
	width: 100%;
	background: var(--gob-wood, #3a2417);
	color: #f2e4bf;
	border: 2px solid var(--gob-gold, #f0c040);
	border-radius: 999px;
	padding: 10px 18px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
}

.gob-tournee__pill > span:nth-of-type(1) { flex: 1 1 auto; min-width: 0; }
.gob-tournee__pill .t-total { color: var(--gob-gold, #f0c040); white-space: nowrap; flex: 0 0 auto; }
.gob-tournee__pill .t-chev { color: #c9b27e; font-size: 12px; flex: 0 0 auto; }

@keyframes gobTourneePop {
	0% { transform: scale(1); }
	50% { transform: scale(1.06); }
	100% { transform: scale(1); }
}

.gob-tournee__pill.is-pop { animation: gobTourneePop 0.3s ease; }

.gob-tournee__panel {
	background: var(--gob-parch-2, #f2e4bf);
	color: var(--gob-ink, #3d2008);
	border: 1px solid #b09058;
	border-radius: 10px;
	box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
	padding: 10px 14px;
	margin-bottom: 8px;
	max-height: 42vh;
	overflow: auto;
}

.gob-tournee__panel[hidden] { display: none; }

.gob-tournee__panel ul { list-style: none; margin: 0; padding: 0; }

.gob-tournee__panel li {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 7px 2px;
	border-bottom: 1px dashed rgba(90, 50, 23, 0.3);
	font-size: 15px;
	line-height: 1.5;
}

.gob-tournee__panel li:last-child { border-bottom: 0; }

.gob-tournee__panel .t-name { flex: 1; font-weight: 600; color: var(--gob-ink, #3d2008); }
.gob-tournee__panel .t-price { color: var(--gob-ribbon, #7a1f14); font-weight: 700; white-space: nowrap; }

.gob-tournee__rm {
	background: transparent;
	border: 0;
	color: #a4351f;
	font-size: 17px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	padding: 2px 5px;
}

.gob-tournee__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	margin-top: 9px;
	font-size: 13.5px;
	color: var(--gob-ink-2, #5a3217);
}

.gob-tournee__clear {
	background: transparent;
	border: 0;
	color: var(--gob-ink-2, #5a3217);
	font-size: 12px;
	cursor: pointer;
	text-decoration: underline;
	padding: 0;
}

/* Choix du gobelin */
.gob-item--chosen {
	background: linear-gradient(90deg, rgba(240, 192, 64, 0.30), transparent 80%);
	border-radius: 6px;
	animation: gobChosen 0.5s ease-in-out 3;
	position: relative;
}

.gob-item--chosen::after {
	content: "Le choix du Gobelin !";
	display: inline-block;
	background: var(--gob-green);
	color: #f5f0dd;
	font-size: 11px;
	font-weight: 700;
	border-radius: 999px;
	padding: 3px 10px;
	margin-left: 8px;
	box-shadow: 0 1px 3px rgba(40, 20, 5, 0.4);
}

@keyframes gobChosen {
	0%, 100% { transform: translateX(0); }
	25% { transform: translateX(-3px); }
	75% { transform: translateX(3px); }
}

.gob-carte__empty-search {
	text-align: center;
	color: var(--gob-ink-2);
	padding: 18px 0;
	font-size: 15px;
}

.gob-carte-empty {
	text-align: center;
}

/* ===================== RESPONSIVE ===================== */

/* Tablette : nav qui defile horizontalement plutot que d'empiler */
@media (max-width: 820px) {
	.gob-carte__nav {
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		scroll-snap-type: x proximity;
		padding: 8px 2px;
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent);
		        mask-image: linear-gradient(90deg, transparent, #000 14px, #000 calc(100% - 14px), transparent);
	}
	.gob-carte__nav a { scroll-snap-align: start; }
}

/* Telephone : on empeche toute troncature du prix et on clarifie le bouton */
@media (max-width: 560px) {
	.gob-carte { padding: 14px 12px 110px; }
	.gob-carte__ribbon { font-size: 16px; padding: 9px 14px; }

	/* Le majordome est masque sur la carte en mobile (il genait la tournee),
	   donc "Ma tournee" reprend toute la largeur du bas. */
	.gob-butler--carte { display: none !important; }

	.gob-tournee {
		left: 12px;
		right: 12px;
		transform: none;
		width: auto;
		max-width: none;
	}

	.gob-item { padding: 12px 4px; }
	.gob-item__name { font-size: 15.5px; flex: 1 1 60%; }

	/* Plus de pointilles sur mobile : ils n'aident pas quand ca passe a la ligne */
	.gob-item__dots { display: none; }

	/* Le prix se cale a droite et a le droit de passer a la ligne (fini la troncature) */
	.gob-item__price {
		margin-left: auto;
		white-space: normal;
		text-align: right;
		font-size: 14px;
		flex: 0 1 auto;
	}

	/* Le bouton tournee prend sa propre ligne : grande cible tactile, sens evident */
	.gob-item__meta .gob-item__add {
		flex: 1 0 100%;
		justify-content: center;
		margin-left: 0;
		padding: 8px 14px;
		font-size: 13px;
	}

	.gob-item__ingr,
	.gob-item__desc { font-size: 14px; }
}

@media (max-width: 380px) {
	.gob-item__name { flex: 1 1 100%; }
	.gob-item__price { text-align: left; margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.gob-carte *, .gob-widget * { animation: none !important; transition: none !important; }
	.gob-carte--anim .gob-item { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
   AGENDA (v1.4.0) : soirees / evenements / actus / quizz.
   Univers neon raccord home : fond sombre, bordures degrade GOB,
   cartes en grille. Scope .gob-agenda (n'affecte pas la carte).
   ============================================================ */

.gob-agenda {
	--ag-bg: #15201d;
	--ag-panel: #1b2724;
	--ag-text: #f2e4bf;
	--ag-muted: #b6c2a8;
	--ag-grad: linear-gradient(160deg, #ffd23f 0%, #ff8c1a 50%, #e0281e 100%);
	width: 100%;
	box-sizing: border-box;
	color: var(--ag-text);
	background: transparent;
	padding: 0 clamp(14px, 4vw, 48px) 56px;
	font-family: "Pixelify Sans", monospace;
}

/* ---------- Filtres ---------- */
.gob-agenda__filters {
	position: sticky;
	top: 0;
	z-index: 4;
	background: rgba(13, 20, 18, 0.55);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);
	border-radius: 12px;
	padding: 10px 12px;
	margin-bottom: 10px;
}

.gob-agenda__row {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 8px;
}

.gob-agenda__row--theme { margin-bottom: 0; }

.gob-agenda__row button {
	flex: 0 0 auto;
	cursor: pointer;
	font-family: inherit;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--ag-text);
	border: 2px solid transparent;
	border-radius: 999px;
	padding: 7px 15px;
	background: linear-gradient(#1b2724, #1b2724) padding-box, var(--ag-grad) border-box;
	transition: transform 0.1s, color 0.15s, box-shadow 0.15s;
}

.gob-agenda__row--theme button {
	font-size: 12px;
	padding: 5px 12px;
	text-transform: none;
}

.gob-agenda__row button:hover { transform: translateY(-1px); color: #ffd23f; }

.gob-agenda__row button.is-active {
	color: #2a1606;
	background: var(--ag-grad) padding-box, var(--ag-grad) border-box;
	box-shadow: 0 0 16px rgba(255, 140, 26, 0.4);
}

/* ---------- Titres de section ---------- */
.gob-agenda__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 22px 0 16px;
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	font-size: clamp(24px, 4vw, 34px);
	color: #ffd23f;
	text-shadow: 0 0 14px rgba(255, 210, 63, 0.4);
}

.gob-agenda__head::after {
	content: "";
	flex: 1 1 auto;
	height: 2px;
	background: var(--ag-grad);
	opacity: 0.6;
	border-radius: 2px;
}

.gob-agenda__group--past { opacity: 0.92; }
.gob-agenda__group--past .gob-agenda__head { color: var(--ag-muted); text-shadow: none; }

/* ---------- Grille ---------- */
.gob-agenda__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 20px;
}

/* ---------- Carte ---------- */
.gob-ev {
	display: flex;
	flex-direction: column;
	border: 2px solid transparent;
	border-radius: 14px;
	background: linear-gradient(var(--ag-panel), var(--ag-panel)) padding-box, var(--ag-grad) border-box;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.gob-ev:hover {
	transform: translateY(-5px);
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55), 0 0 22px rgba(255, 140, 26, 0.25);
}

.gob-carte--anim .gob-ev,
.gob-agenda--anim .gob-ev {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.45s ease, transform 0.45s ease, box-shadow 0.18s ease;
}

.gob-agenda--anim .gob-ev.is-in { opacity: 1; transform: none; }
/* Lien couvrant toute la carte */
.gob-ev__hit {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	color: inherit;
	text-decoration: none;
}

.gob-ev__hit:focus-visible {
	outline: 2px solid #ffd23f;
	outline-offset: 2px;
}

/* Media : image ou placeholder */
.gob-ev__media {
	position: relative;
	display: block;
	aspect-ratio: 16 / 10;
	background: #10201c;
	overflow: hidden;
}

.gob-ev__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.3s ease;
}

.gob-ev:hover .gob-ev__media img { transform: scale(1.05); }

/* Placeholder degrade quand pas d'image */
.gob-ev__media--ph {
	background:
		radial-gradient(circle at 30% 25%, rgba(255, 255, 255, 0.10), transparent 60%),
		linear-gradient(150deg, #243330, #16201e);
	display: flex;
	align-items: center;
	justify-content: center;
}

.gob-ev__media--soiree { background: linear-gradient(150deg, #7a1f14, #261210); }
.gob-ev__media--evenement { background: linear-gradient(150deg, #155148, #10201c); }
.gob-ev__media--actualite { background: linear-gradient(150deg, #6b4a0e, #2a1d10); }
.gob-ev__media--quizz { background: linear-gradient(150deg, #1d6b2e, #102a16); }

.gob-ev__ph-mark {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(255, 255, 255, 0.55);
}

.gob-ev__ph-mark svg {
	width: 48px;
	height: 48px;
	filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
}

/* Motif pointille discret derriere l'icone */
.gob-ev__media--ph::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255, 255, 255, 0.08) 1.4px, transparent 1.5px);
	background-size: 13px 13px;
	pointer-events: none;
}

/* Pastille date */
.gob-ev__date {
	position: absolute;
	top: 10px;
	left: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	line-height: 1;
	background: rgba(11, 10, 28, 0.85);
	border: 1.5px solid #ffd23f;
	border-radius: 10px;
	padding: 6px 9px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.gob-ev__date strong { font-size: 20px; color: #ffd23f; font-weight: 700; }
.gob-ev__date em { font-size: 11px; font-style: normal; text-transform: uppercase; color: var(--ag-text); letter-spacing: 0.05em; }

/* Pastille type */
.gob-ev__type {
	position: absolute;
	top: 10px;
	right: 10px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #fff;
	border-radius: 999px;
	padding: 4px 11px;
	background: #7a1f14;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.gob-ev__type--soiree { background: #c0381f; }
.gob-ev__type--evenement { background: #1aa3e0; }
.gob-ev__type--actualite { background: #e8941a; color: #2a1606; }
.gob-ev__type--quizz { background: #3fbf4e; color: #0c2410; }

/* Corps */
.gob-ev__body {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 14px 16px 16px;
	flex: 1 1 auto;
}

.gob-ev__title {
	margin: 0;
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	font-size: 21px;
	line-height: 1.15;
	color: var(--ag-text);
}

.gob-ev__when {
	margin: 0;
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	font-size: 13px;
	color: #ffbc6a;
}

.gob-ev__desc {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: var(--ag-muted);
}

.gob-ev__themes {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 2px;
}

.gob-ev__theme {
	font-size: 11.5px;
	color: #ffd9a0;
	background: rgba(255, 140, 26, 0.16);
	border: 1px solid rgba(255, 188, 24, 0.38);
	border-radius: 999px;
	padding: 2px 9px;
}

.gob-ev__link {
	margin-top: auto;
	align-self: flex-start;
	font-weight: 700;
	font-size: 13.5px;
	color: #ffd23f;
	text-decoration: none;
	display: inline-block;
	padding-top: 4px;
	transition: color 0.15s, transform 0.12s;
}

.gob-ev:hover .gob-ev__link { color: #ff8c1a; transform: translateX(2px); }

.gob-agenda__empty-filter {
	text-align: center;
	color: var(--ag-muted);
	padding: 26px 0;
	font-size: 15px;
}

.gob-agenda-empty {
	text-align: center;
	color: var(--ag-muted);
	padding: 28px 0;
}

@media (max-width: 560px) {
	.gob-agenda { padding: 0 12px 44px; }
	.gob-agenda__grid { grid-template-columns: 1fr; gap: 16px; }
	.gob-agenda__head { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.gob-agenda *, .gob-agenda *::before { animation: none !important; transition: none !important; }
	.gob-agenda--anim .gob-ev { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
   FICHE SINGLE AGENDA (.gob-fiche) — habillage des articles
   d'actus / soirees / evenements / quizz.
   ============================================================ */
.gob-fiche {
	--ag-text: #f2e4bf;
	--ag-muted: #b6c2a8;
	--ag-panel: #1b2724;
	--ag-grad: linear-gradient(160deg, #ffd23f 0%, #ff8c1a 50%, #e0281e 100%);
	max-width: 860px;
	margin: 0 auto;
	color: var(--ag-text);
	font-family: "Pixelify Sans", monospace;
}

/* Lien retour */
.gob-fiche__back {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 13px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #ffbc18;
	text-decoration: none;
	margin-bottom: 18px;
	transition: color 0.18s ease, transform 0.18s ease;
}
.gob-fiche__back:hover { color: #ffd23f; transform: translateX(-3px); }
.gob-fiche__back--bottom { margin: 0; }

/* Hero image / placeholder */
.gob-fiche__hero {
	position: relative;
	border: 3px solid transparent;
	border-radius: 16px;
	background: linear-gradient(var(--ag-panel), var(--ag-panel)) padding-box, var(--ag-grad) border-box;
	box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
	overflow: hidden;
	margin-bottom: 22px;
}
.gob-fiche__hero img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 460px;
	object-fit: cover;
	border-radius: 13px;
}
.gob-fiche__hero--ph {
	aspect-ratio: 21 / 9;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gob-fiche__ph-mark svg {
	width: 84px;
	height: 84px;
	color: rgba(255, 226, 175, 0.55);
}
/* Pastille date dans le hero */
.gob-fiche__date {
	position: absolute;
	top: 14px;
	left: 14px;
}
/* Le badge type reutilise .gob-ev__type, on le place en haut a droite */
.gob-fiche__hero .gob-ev__type {
	position: absolute;
	top: 14px;
	right: 14px;
}

/* Barre meta : date complete, heure, lieu */
.gob-fiche__meta {
	list-style: none;
	margin: 0 0 18px;
	padding: 14px 18px;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 26px;
	background: rgba(11, 20, 18, 0.45);
	border: 1px solid rgba(255, 188, 24, 0.22);
	border-radius: 12px;
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
}
.gob-fiche__meta li {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 15px;
	color: var(--ag-text);
}
.gob-fiche__mi {
	width: 20px;
	height: 20px;
	color: #ffbc18;
	flex: 0 0 auto;
}

/* Tags de theme */
.gob-fiche__themes {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 22px;
}

/* Corps de l'article */
.gob-fiche__content {
	font-size: 16px;
	line-height: 1.75;
	color: #d7e0cc;
}
.gob-fiche__content p { margin: 0 0 1.1em; }
.gob-fiche__content a { color: #ffbc18; text-decoration: underline; }
.gob-fiche__content h2,
.gob-fiche__content h3 {
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	color: var(--ag-text);
	margin: 1.4em 0 0.5em;
}
.gob-fiche__content img { max-width: 100%; height: auto; border-radius: 10px; }

/* Actions : CTA lien + retour bas */
.gob-fiche__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 22px;
	margin-top: 26px;
	padding-top: 22px;
	border-top: 1px solid rgba(255, 188, 24, 0.18);
}
.gob-fiche__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: "Fredoka One", "Pixelify Sans", sans-serif;
	font-size: 16px;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	text-decoration: none;
	color: #3a2606;
	padding: 12px 24px;
	border-radius: 8px;
	background: linear-gradient(180deg, #ffe07a 0%, #f0c040 55%, #c89a1e 100%);
	box-shadow: inset 2px 2px 0 rgba(255, 255, 255, 0.6), inset -2px -2px 0 rgba(0, 0, 0, 0.3), 3px 3px 0 #5a3a00;
	transition: transform 0.05s steps(1), box-shadow 0.05s steps(1);
}
.gob-fiche__cta:hover { color: #5dd62c; }
.gob-fiche__cta:active {
	transform: translate(3px, 3px);
	box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.3), 0 0 0 #5a3a00;
}

@media (max-width: 600px) {
	.gob-fiche__hero img { max-height: 300px; }
	.gob-fiche__meta { gap: 8px 16px; padding: 12px 14px; }
	.gob-fiche__content { font-size: 15px; }
}

/* Masque l'en-tete par defaut d'Astra (titre / auteur / date) sur les
   single d'agenda : la fiche .gob-fiche fournit deja ces informations. */
body.single-gob_agenda .entry-header,
body.single-gob_agenda .ast-single-entry-banner,
body.single-gob_agenda .entry-meta,
body.single-gob_agenda .ast-single-post .entry-title {
	display: none !important;
}

/* Fiche agenda : le theme tourne en header transparent flottant, donc le
   contenu demarre sous le menu. On degage la hauteur du menu via un PADDING
   sur l'article (le padding ne subit pas le margin-collapse, contrairement a
   une marge sur .gob-fiche qui s'echappait et laissait la fiche sous le menu). */
body.single-gob_agenda .ast-article-single {
	padding-top: 140px !important;
}
body.single-gob_agenda .gob-fiche {
	margin-top: 0 !important;
}
@media (max-width: 921px) {
	body.single-gob_agenda .ast-article-single { padding-top: 104px !important; }
}

/* ============================================================
   GOB-MAN — mini jeu de labyrinthe (shortcode [gob_gobman])
   Style scope sous #gob-man : ne touche pas html/body de la page.
   ============================================================ */
#gob-man {
	--gobman-magenta: #ff2bd6;
	--gobman-panel: #161228;
	max-width: 520px;
	margin: 0 auto;
	padding: 12px;
	font-family: "Courier New", monospace;
	-webkit-user-select: none;
	user-select: none;
}

#gob-man .gob-man__intro {
	text-align: center;
	margin: 0 auto 14px;
	max-width: 460px;
}
#gob-man .gob-man__title {
	font-family: "MedievalSharp", serif;
	font-size: 30px;
	line-height: 1.1;
	margin: 0 0 6px;
	color: #4aa934;
	-webkit-text-stroke: 0.045em #6b1d12;
	paint-order: stroke fill;
	text-shadow: 0.03em 0.03em 0 #4a140d, 0 0.12em 0.3em rgba(0, 0, 0, 0.45);
	letter-spacing: 0.02em;
}
#gob-man .gob-man__sub {
	font-family: "Pixelify Sans", "Courier New", monospace;
	font-size: 14px;
	line-height: 1.5;
	color: #d7e0cc;
	margin: 0;
}
#gob-man .gob-man__sub strong { color: #ffbc18; font-weight: 700; }
#gob-man .frame {
	position: relative;
	border: 3px solid transparent;
	border-radius: 14px;
	background: linear-gradient(var(--gobman-panel), var(--gobman-panel)) padding-box,
		linear-gradient(160deg, #ffd23f 0%, #ff8c1a 50%, #e0281e 100%) border-box;
	box-shadow: 0 0 26px rgba(224, 40, 30, 0.28), inset 0 0 40px rgba(0, 0, 0, 0.6);
	padding: 8px;
}
#gob-man .frame::after {
	content: "";
	position: absolute;
	inset: 8px;
	border-radius: 8px;
	background: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.16) 0px, rgba(0, 0, 0, 0.16) 1px, transparent 2px, transparent 4px);
	pointer-events: none;
}
#gob-man #gob-canvas {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 8px;
	background: #0a0816;
	touch-action: none;
	cursor: pointer;
	image-rendering: pixelated;
}
#gob-man .help {
	color: #8d86a8;
	font-size: 11px;
	text-align: center;
	margin-top: 8px;
	line-height: 1.5;
}
