/* GabberAgenda public structure — events overview, cities, footer, week selector */

:root {
	--ga-bg: #09090b;
	--ga-card: #121417;
	--ga-card-2: #171a1f;
	--ga-border: #262b33;
	--ga-text: #f5f7fa;
	--ga-muted: #9299a5;
	--ga-accent: #d9f000;
	--ga-accent-muted: #3aa0ff;
	--ga-radius: 8px;
}

/* Events overview */
.ga-events-overview {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem 1rem;
}

.ga-events-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

.ga-events-grid--compact {
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.75rem;
}

.ga-event-card {
	display: flex;
	flex-direction: column;
	background: var(--ga-card);
	border-radius: var(--ga-radius);
	overflow: hidden;
	text-decoration: none;
	color: var(--ga-text);
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.ga-event-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.ga-event-card__image {
	width: 100%;
	height: 180px;
	background-size: cover;
	background-position: center;
	background-color: var(--ga-card-2);
}

.ga-event-card__image--empty {
	background: linear-gradient(135deg, var(--ga-card-2), var(--ga-card));
}

.ga-event-card__content {
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.ga-event-card__date {
	font-size: 0.8rem;
	color: var(--ga-accent);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.ga-event-card__title {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
}

.ga-event-card__location {
	font-size: 0.85rem;
	color: var(--ga-muted);
}

/* Compact event cards (directory) */
.ga-event-card--compact {
	flex-direction: row;
	align-items: stretch;
	min-height: 72px;
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	box-shadow: none;
}

.ga-event-card--compact:hover {
	transform: none;
	box-shadow: 0 0 0 1px var(--ga-accent);
}

.ga-event-card--compact .ga-event-card__media {
	flex: 0 0 72px;
	width: 72px;
}

.ga-event-card--compact .ga-event-card__image {
	width: 72px;
	height: 72px;
	min-height: 72px;
}

.ga-event-card--compact .ga-event-card__content {
	padding: 0.55rem 0.75rem;
	gap: 0.1rem;
	flex: 1;
	min-width: 0;
}

.ga-event-card--compact .ga-event-card__date {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 0.65rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--ga-accent);
}

.ga-event-card--compact .ga-event-card__title {
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.25;
}

.ga-event-card--compact .ga-event-card__venue,
.ga-event-card--compact .ga-event-card__city {
	font-size: 0.75rem;
	color: var(--ga-muted);
	line-height: 1.3;
}

.ga-event-card--compact .ga-event-card__badges {
	font-size: 0.65rem;
	color: var(--ga-muted);
	margin-top: 0.15rem;
}

/* Filter context */
.ga-events-filter-context {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto 1rem;
	padding: 0.75rem 1rem;
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-wrap: wrap;
}

.ga-events-filter-context__label {
	font-size: 1.1rem;
	font-weight: 600;
	color: var(--ga-text);
}

.ga-events-filter-context__clear {
	font-size: 0.85rem;
	color: var(--ga-accent);
	text-decoration: none;
}

.ga-events-filter-context__clear:hover {
	text-decoration: underline;
}

/* Pagination */
.ga-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	padding: 2rem 0 0;
}

.ga-pagination__link {
	color: var(--ga-accent);
	text-decoration: none;
	font-weight: 500;
}

.ga-pagination__link:hover {
	text-decoration: underline;
}

.ga-pagination__info {
	color: var(--ga-muted);
	font-size: 0.9rem;
}

/* Cities overview */
.ga-cities-overview {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem 1rem;
}

.ga-cities-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

.ga-city-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.5rem 1rem;
	background: var(--ga-card);
	border-radius: var(--ga-radius);
	text-decoration: none;
	color: var(--ga-text);
	transition: transform 0.15s ease;
}

.ga-city-card:hover {
	transform: translateY(-2px);
}

.ga-city-card__name {
	font-size: 1.1rem;
	font-weight: 600;
}

.ga-city-card__count {
	font-size: 0.85rem;
	color: var(--ga-muted);
	margin-top: 0.25rem;
}

/* Single city */
.ga-single-city {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem 1rem;
	color: var(--ga-text);
}

.ga-single-city__name {
	font-size: 2rem;
	font-weight: 700;
	margin: 0 0 0.25rem;
}

.ga-single-city__country {
	color: var(--ga-muted);
	font-size: 0.9rem;
	margin: 0 0 1.5rem;
}

.ga-single-city__count {
	color: var(--ga-accent);
	font-size: 1rem;
	margin: 0 0 1.5rem;
}

.ga-single-city__empty {
	color: var(--ga-muted);
	font-style: italic;
	padding: 2rem 0;
}

/* Footer nav */
.ga-footer-nav {
	display: flex;
	gap: 1.5rem;
	justify-content: center;
	flex-wrap: wrap;
}

.ga-footer-nav__link {
	color: var(--ga-text);
	text-decoration: none;
	font-weight: 500;
	font-size: 0.9rem;
	transition: color 0.15s ease;
}

.ga-footer-nav__link:hover {
	color: var(--ga-accent);
}

/* Footer socials */
.ga-footer-socials {
	display: flex;
	gap: 1rem;
	justify-content: center;
	align-items: center;
}

.ga-footer-socials__link {
	color: var(--ga-muted);
	transition: color 0.15s ease;
}

.ga-footer-socials__link:hover {
	color: var(--ga-text);
}

.ga-footer-socials__icon {
	display: block;
	width: 24px;
	height: 24px;
}

/* Week selector — existing frontpage DOM contract */
.ga-fp-week__label {
	margin: 0 0 0.35rem;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ga-accent);
	text-align: center;
}

.ga-fp-week__title {
	text-transform: uppercase;
}

.ga-fp-week__dates {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	justify-content: center;
	flex-wrap: nowrap;
	overflow-x: auto;
	max-width: 100%;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	padding: 0.15rem 0;
}

.ga-fp-week__date {
	padding: 0.5rem 1rem;
	border-radius: 8px;
	background: var(--ga-card);
	color: var(--ga-muted);
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 500;
	transition: background 0.15s ease, color 0.15s ease;
	white-space: nowrap;
	flex: 0 0 auto;
}

.ga-fp-week__date:hover {
	background: var(--ga-card-2);
	color: var(--ga-text);
}

.ga-fp-week__date.is-active {
	background: var(--ga-accent);
	color: #fff;
}

.ga-fp-week__date-arrow {
	padding: 0.5rem 0.75rem;
	color: var(--ga-muted);
	text-decoration: none;
	font-size: 1.1rem;
	transition: color 0.15s ease;
	flex: 0 0 auto;
}

.ga-fp-week__date-arrow:hover {
	color: var(--ga-text);
}

.ga-fp-week__title.is-switching,
.ga-fp-week__dates.is-switching,
.ga-fp-week__stats.is-switching,
.ga-fp-discover__section--countries.is-switching,
.ga-fp-discover__section--cities.is-switching,
.ga-fp-feature.is-switching {
	opacity: 0.92;
	transition: opacity 0.12s ease;
}

.ga-week-preload {
	display: none !important;
}

.ga-fp-feature.is-empty [data-ga-feature-content] {
	display: none !important;
}

.ga-fp-feature.is-empty img[data-ga-week-bind="featured.image"],
.ga-fp-feature.is-empty img:not([src]),
.ga-fp-feature.is-empty img[src=""] {
	display: none !important;
}

.ga-fp-feature__empty {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 8rem;
	padding: 1.25rem;
}

.ga-fp-feature.is-empty .ga-fp-feature__empty,
.ga-fp-feature [data-ga-feature-empty]:not([hidden]) {
	display: flex;
}

.ga-fp-feature__empty-cta {
	display: inline-block;
	padding: 0.75rem 1.25rem;
	background: var(--ga-accent);
	color: #fff;
	text-decoration: none;
	font-weight: 600;
	border-radius: 8px;
}

.ga-fp-feature__empty-cta:hover {
	filter: brightness(1.05);
}

/* Countries overview */
.ga-countries-overview {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem 1rem;
}

.ga-countries-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

.ga-country-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1.5rem 1rem;
	background: var(--ga-card);
	border-radius: var(--ga-radius);
	color: var(--ga-text);
}

.ga-country-card__name {
	font-size: 1.1rem;
	font-weight: 600;
}

.ga-country-card__count {
	font-size: 0.85rem;
	color: var(--ga-muted);
	margin-top: 0.25rem;
}

/* Artists overview */
.ga-artists-overview {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 2rem 1rem;
}

.ga-artists-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 0.75rem;
}

.ga-artist-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem 0.75rem;
	background: var(--ga-card);
	border-radius: var(--ga-radius);
	color: var(--ga-text);
}

.ga-artist-card__name {
	font-size: 0.95rem;
	font-weight: 600;
	text-align: center;
}

.ga-artist-card__count {
	font-size: 0.8rem;
	color: var(--ga-muted);
	margin-top: 0.15rem;
}

/* Empty states */
.ga-events-overview--empty,
.ga-cities-overview--empty,
.ga-single-city--empty,
.ga-artists-overview--empty,
.ga-countries-overview--empty,
.ga-festivals-overview--empty {
	text-align: center;
	color: var(--ga-muted);
	padding: 3rem 1rem;
}

.ga-event-card__badges {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #fff;
	background: linear-gradient(135deg, #e91e63, #ff5722);
	padding: 0.15em 0.5em;
	border-radius: 3px;
	margin-bottom: 0.25rem;
}

/* Search results */
.ga-search {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 2rem 24px 2.5rem;
	color: #f5f4ef;
	font-family: "Inter", Arial, sans-serif;
}

/* Venues overview */
.ga-venues {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 2rem 24px 2.5rem;
}

.ga-venue-country-filter {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 0.85rem;
	padding-bottom: 0.65rem;
	border-bottom: 1px solid var(--ga-border);
}

.ga-venue-country-filter__label {
	flex: 0 0 auto;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ga-muted);
	padding-top: 0.35rem;
	min-width: 2.5rem;
}

.ga-venue-country-filter__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	flex: 1 1 auto;
	min-width: 0;
}

.ga-venue-country-filter__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.35rem 0.7rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	color: var(--ga-muted);
	background: var(--ga-card);
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	white-space: nowrap;
}

.ga-venue-country-filter__chip.is-active,
.ga-venue-country-filter__chip:hover {
	color: var(--ga-bg);
	background: var(--ga-accent);
	border-color: var(--ga-accent);
}

.ga-venue-country-filter__count {
	font-size: 0.68rem;
	font-weight: 700;
	opacity: 0.85;
}

.ga-archive-year-filter,
.ga-event-archive {
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
}

.ga-archive-year-filter {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-bottom: 0.65rem;
}

.ga-archive-year-filter__label {
	flex: 0 0 auto;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--ga-muted);
	padding-top: 0.35rem;
}

.ga-archive-year-filter__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.ga-archive-year-filter__chip,
.ga-venue-country-filter__chip {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.35rem 0.7rem;
	font-size: 0.75rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	color: var(--ga-muted);
	background: var(--ga-card);
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	white-space: nowrap;
}

.ga-archive-year-filter__chip.is-active,
.ga-archive-year-filter__chip:hover {
	color: var(--ga-bg);
	background: var(--ga-accent);
	border-color: var(--ga-accent);
}

.ga-archive-list__head,
.ga-archive-list__row {
	grid-template-columns: 0.9fr 1.6fr 1.1fr 0.9fr 0.7fr;
}

.ga-event-archive--empty,
.ga-event__past-notice {
	text-align: center;
}

.ga-event__past-notice {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	background: var(--ga-card);
}

.ga-event__past-notice-text {
	margin: 0 0 0.65rem;
	color: var(--ga-text);
}

.ga-event__past-notice-cta {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.85rem;
	font-size: 0.75rem;
	font-weight: 700;
	text-decoration: none;
	color: var(--ga-bg);
	background: var(--ga-accent);
	border-radius: var(--ga-radius);
}

.ga-venues--empty {
	text-align: center;
	color: var(--ga-muted);
	padding: 3rem 1rem;
}

.ga-venues__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.ga-venues__grid--compact {
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.65rem;
}

.ga-venue-card {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
	padding: 14px;
	text-decoration: none;
	color: #f5f4ef;
}

.ga-venue-card__logo {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #000;
	border-radius: 2px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ga-venue-card__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.ga-venue-card__name {
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(26px, 2vw, 32px);
	line-height: 0.95;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.ga-venue-card__meta,
.ga-venue-card__count {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.ga-venue-card__meta {
	color: #9b9ea3;
}

.ga-venue-card__count {
	color: #d9f000;
}

.ga-venue-card--compact {
	padding: 0.65rem 0.75rem;
	gap: 0.2rem;
	min-height: 0;
}

.ga-venue-card--compact .ga-venue-card__icon {
	display: block;
	width: 1rem;
	height: 1rem;
	margin-bottom: 0.15rem;
	border: 1px solid var(--ga-border);
	border-radius: 2px;
	background: linear-gradient(135deg, var(--ga-card-2), var(--ga-card));
}

.ga-venue-card--compact .ga-venue-card__name {
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.2;
}

.ga-venue-card--compact .ga-venue-card__meta,
.ga-venue-card--compact .ga-venue-card__count {
	font-size: 0.68rem;
}

.ga-search__header {
	margin-bottom: 1rem;
}

.ga-search__kicker {
	margin: 0 0 0.35rem;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #9b9ea3;
}

.ga-search__title {
	margin: 0;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(34px, 4vw, 54px);
	line-height: 0.95;
	font-weight: 800;
	color: #f5f4ef;
}

.ga-search__query,
.ga-search__summary {
	margin: 0.5rem 0 0;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #9b9ea3;
}

.ga-search__form {
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
	padding: 14px;
	margin-bottom: 1rem;
}

.ga-search__form-label {
	display: block;
	margin-bottom: 0.45rem;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #f5f4ef;
}

.ga-search__form-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.ga-search__form-input {
	width: 100%;
	background: #090a0b;
	border: 1px solid #292c30;
	border-radius: 2px;
	color: #f5f4ef;
	padding: 10px 12px;
	font-family: "Inter", Arial, sans-serif;
	font-size: 14px;
}

.ga-search__form-input:focus {
	outline: none;
	border-color: #d9f000;
}

.ga-search__form-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 8px 16px;
	border-radius: 2px;
	background: #d9f000;
	color: #050505;
	border: 1px solid #d9f000;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	cursor: pointer;
}

.ga-search__form-button:hover {
	background: transparent;
	color: #d9f000;
}

.ga-search__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
	margin-top: 1rem;
}

.ga-search__card {
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
	box-shadow: none;
	transform: none;
}

.ga-search__card:hover {
	transform: none;
	box-shadow: none;
	border-color: #3a3d41;
}

.ga-search .ga-event-card__content {
	padding: 14px 16px;
	gap: 0.35rem;
}

.ga-search .ga-event-card__date {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: #d9f000;
}

.ga-search .ga-event-card__title {
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(26px, 2.2vw, 32px);
	line-height: 0.95;
	font-weight: 800;
	letter-spacing: -0.015em;
}

.ga-search .ga-event-card__location,
.ga-search__genres {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 9px;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #9b9ea3;
}

.ga-search__empty {
	margin-top: 1rem;
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
	padding: 20px 24px;
}

.ga-search__empty-title {
	margin: 0;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 0.95;
	font-weight: 800;
	color: #f5f4ef;
}

.ga-search__empty-text {
	margin: 0.5rem 0 0;
	color: #9b9ea3;
	font-size: 14px;
}

.ga-search__empty-link {
	color: #d9f000;
	text-decoration: none;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.ga-search__empty-link:hover {
	text-decoration: underline;
}

.ga-search__pagination.ga-pagination {
	margin-top: 1rem;
	padding-top: 0.5rem;
}

@media (max-width: 1279px) {
	.ga-search {
		padding-left: 20px;
		padding-right: 20px;
	}

	.ga-venues {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media (max-width: 960px) {
	.ga-search__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ga-venues__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.ga-search {
		padding-left: 16px;
		padding-right: 16px;
	}

	.ga-venues {
		padding-left: 16px;
		padding-right: 16px;
	}

	.ga-search__grid {
		grid-template-columns: 1fr;
	}

	.ga-venues__grid {
		grid-template-columns: 1fr;
	}

	.ga-search__form-row {
		grid-template-columns: 1fr;
	}
}

/* ── Single venue ─────────────────────────────── */

.ga-venue {
	width: 100%;
	max-width: 1180px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 24px 2.5rem;
	box-sizing: border-box;
	color: #f5f4ef;
	font-family: "Inter", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.6;
}

.ga-venue--empty {
	text-align: center;
	color: var(--ga-muted);
	padding: 3rem 1rem;
}

.ga-venue__header {
	display: flex;
	align-items: flex-start;
	gap: 24px;
	margin-bottom: 24px;
	padding: 24px;
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
}

.ga-venue__logo {
	flex-shrink: 0;
	width: 160px;
	height: 160px;
	aspect-ratio: 1 / 1;
	background: #000;
	border: 1px solid #d9f000;
	border-radius: 2px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}

.ga-venue__logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
}

.ga-venue__header-content {
	min-width: 0;
	flex: 1;
}

.ga-venue__title {
	margin: 0 0 .5rem;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(34px, 3.6vw, 52px);
	line-height: .94;
	font-weight: 800;
	letter-spacing: -.02em;
	color: #f5f4ef;
}

.ga-venue__location {
	margin: 0 0 .25rem;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #9b9ea3;
}

.ga-venue__address {
	margin: 0 0 .75rem;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #7f8389;
}

.ga-venue__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 34px;
	padding: 6px 14px;
	border-radius: 2px;
	text-decoration: none;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.ga-venue__cta--ghost {
	background: rgba(0,0,0,.25);
	color: #f5f4ef;
	border: 1px solid #4a4d52;
}

.ga-venue__cta--ghost:hover {
	border-color: #d9f000;
	color: #d9f000;
}

.ga-venue__card {
	background: #0c0d0f;
	border: 1px solid #292c30;
	border-radius: 2px;
	padding: 22px;
	margin-bottom: 16px;
}

.ga-venue__heading {
	margin: 0 0 14px;
	font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1;
	letter-spacing: -.01em;
	color: #f5f4ef;
	font-weight: 800;
}

.ga-venue__heading--large {
	font-size: clamp(24px, 2.2vw, 32px);
	line-height: 1;
	font-weight: 800;
	letter-spacing: -.01em;
	margin-bottom: 14px;
}

.ga-venue__dl {
	margin: 0;
}

.ga-venue__meta-row {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	column-gap: 16px;
	align-items: baseline;
	padding: 8px 0;
	border-bottom: 1px solid #292c30;
}

.ga-venue__meta-row:last-of-type {
	border-bottom: 0;
	padding-bottom: 0;
}

.ga-venue__meta-row dt {
	margin: 0;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 8px;
	line-height: 1.3;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #85898f;
}

.ga-venue__meta-row dd {
	margin: 0;
	font-family: "Inter", Arial, sans-serif;
	font-size: 13px;
	line-height: 1.4;
	font-weight: 500;
	color: #f5f4ef;
}

.ga-venue__meta-row dd a {
	color: #d9f000;
	text-decoration: none;
}

.ga-venue__meta-row dd a:hover {
	text-decoration: underline;
}

.ga-venue__description {
	max-width: 720px;
	font-family: "Inter", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.6;
	color: #aeb1b6;
}

.ga-venue__description p {
	margin: 0 0 .75rem;
}

.ga-venue__description p:last-child {
	margin-bottom: 0;
}

.ga-venue__events {
	margin-top: 0;
}

.ga-venue__events-empty {
	color: #8f9399;
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 9px;
	line-height: 1.5;
	letter-spacing: .03em;
}

@media (max-width: 1279px) {
	.ga-venue {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media (max-width: 700px) {
	.ga-venue {
		padding-left: 16px;
		padding-right: 16px;
	}
}

@media (max-width: 800px) {
	.ga-venue__header {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.ga-venue__logo {
		width: 120px;
		height: 120px;
	}

	.ga-venue__title {
		font-size: clamp(28px, 6vw, 42px);
	}
}

@media (max-width: 700px) {
	.ga-venue__meta-row {
		grid-template-columns: 1fr;
		gap: 4px;
		padding: 10px 0;
	}
}

/* Directory control bar + list/index views */
.ga-directory {
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 1.5rem 1rem 2rem;
}

.ga-directory-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--ga-border);
}

.ga-directory-bar__views {
	display: inline-flex;
	gap: 0;
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	overflow: hidden;
}

.ga-directory-bar__view {
	display: inline-flex;
	align-items: center;
	padding: 0.4rem 0.85rem;
	font-size: 0.75rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--ga-muted);
	background: var(--ga-card);
	border-right: 1px solid var(--ga-border);
}

.ga-directory-bar__view:last-child {
	border-right: 0;
}

.ga-directory-bar__view.is-active,
.ga-directory-bar__view:hover {
	color: var(--ga-bg);
	background: var(--ga-accent);
}

.ga-directory-bar__count {
	font-size: 0.8rem;
	color: var(--ga-muted);
}

.ga-directory-bar__sort-form {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.ga-directory-bar__sort-label {
	font-size: 0.75rem;
	color: var(--ga-muted);
}

.ga-directory-bar__sort {
	font-size: 0.8rem;
	padding: 0.35rem 0.5rem;
	background: var(--ga-card);
	color: var(--ga-text);
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
}

.ga-directory-bar__sort-submit {
	font-size: 0.7rem;
	font-weight: 600;
	padding: 0.35rem 0.65rem;
	background: transparent;
	color: var(--ga-accent);
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	cursor: pointer;
}

.ga-directory-bar__sort-submit:hover,
.ga-directory-bar__sort-submit:focus {
	border-color: var(--ga-accent);
	outline: none;
}

.ga-directory-list {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	overflow: hidden;
}

.ga-directory-list__head,
.ga-directory-list__row {
	display: grid;
	align-items: center;
	gap: 0.75rem;
	padding: 0.55rem 0.85rem;
	text-decoration: none;
	color: var(--ga-text);
}

.ga-events-list .ga-directory-list__head,
.ga-events-list .ga-directory-list__row {
	grid-template-columns: 5.5rem 1.4fr 1fr 0.9fr 3.5rem;
}

.ga-venues-list .ga-directory-list__head,
.ga-venues-list .ga-directory-list__row {
	grid-template-columns: 1.5fr 1fr 5rem 5rem;
}

.ga-directory-list__head {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 0.62rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--ga-muted);
	background: var(--ga-card-2);
	border-bottom: 1px solid var(--ga-border);
}

.ga-directory-list__row {
	font-size: 0.82rem;
	border-bottom: 1px solid var(--ga-border);
	transition: background 0.12s ease;
}

.ga-directory-list__row:last-child {
	border-bottom: 0;
}

.ga-directory-list__row:hover,
.ga-directory-list__row:focus {
	background: var(--ga-card);
	outline: none;
	box-shadow: inset 2px 0 0 var(--ga-accent);
}

.ga-directory-list__row strong {
	font-weight: 700;
}

.ga-directory-list__label {
	display: none;
}

.ga-directory-index {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--ga-border);
	border-radius: var(--ga-radius);
	overflow: hidden;
}

.ga-directory-index__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	gap: 0.75rem 1rem;
	align-items: baseline;
	padding: 0.5rem 0.85rem;
	text-decoration: none;
	color: var(--ga-text);
	border-bottom: 1px solid var(--ga-border);
	font-size: 0.85rem;
}

.ga-directory-index__row:last-child {
	border-bottom: 0;
}

.ga-directory-index__row:hover,
.ga-directory-index__row:focus {
	background: var(--ga-card);
	outline: none;
	box-shadow: inset 2px 0 0 var(--ga-accent);
}

.ga-directory-index__name {
	font-weight: 600;
	min-width: 0;
	word-break: break-word;
}

.ga-directory-index__meta {
	font-size: 0.72rem;
	color: var(--ga-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.ga-directory-index__count {
	font-family: "IBM Plex Mono", "Courier New", monospace;
	font-size: 0.68rem;
	color: var(--ga-accent);
	white-space: nowrap;
}

.ga-artists-index .ga-directory-index__row {
	grid-template-columns: minmax(0, 1fr) auto;
}

@media (max-width: 768px) {
	.ga-events-grid--compact {
		grid-template-columns: 1fr;
	}

	.ga-venues__grid--compact {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ga-directory-list__head {
		display: none;
	}

	.ga-events-list .ga-directory-list__row,
	.ga-venues-list .ga-directory-list__row {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 0.2rem;
		padding: 0.65rem 0.85rem;
	}

	.ga-directory-list__label {
		display: inline;
		font-family: "IBM Plex Mono", "Courier New", monospace;
		font-size: 0.6rem;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.06em;
		color: var(--ga-muted);
		margin-right: 0.35rem;
	}

	.ga-directory-index__row {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.ga-directory-index__meta {
		grid-column: 1;
	}
}

@media (max-width: 480px) {
	.ga-venues__grid--compact {
		grid-template-columns: 1fr;
	}

	.ga-venue-country-filter {
		flex-direction: column;
		gap: 0.45rem;
	}

	.ga-venue-country-filter__label {
		padding-top: 0;
	}

	.ga-directory-bar__sort-submit {
		width: 100%;
	}
}

/* Header language switcher — keep dropdown links clickable */
.ga-header__language-menu,
.ga-header__mobile-language-menu,
.ga-header__dropdown-panel {
	pointer-events: auto;
}

.ga-header__language-menu .ga-header__language-link,
.ga-header__mobile-language-menu .ga-header__language-link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	pointer-events: auto;
	cursor: pointer;
	text-decoration: none;
	position: relative;
	z-index: 2;
}

.ga-header__language-details[open] .ga-header__language-menu,
.ga-header__mobile-language-details[open] .ga-header__mobile-language-menu {
	pointer-events: auto;
}
