/* Harske Hubbi – Koncertkalender: basal styling.
   Alt det vigtige (farver, typografi, padding, layout) styres normalt via
   Elementor-widgettens Style-fane. Denne fil er kun et fornuftigt udgangspunkt
   og bruges også af [hubbi_naeste_koncert] / [hubbi_koncertliste] uden Elementor. */

.hubbi-kort {
	border: 1px solid #e2e2e2;
	border-radius: 12px;
	padding: 24px;
	background: #fafafa;
}

.hubbi-naeste-koncert-wrap {
	margin-bottom: 32px;
}

.hubbi-kort-label {
	color: #888;
	font-weight: 600;
	margin-right: 4px;
}

.hubbi-kort-titel {
	margin: 0 0 6px;
	font-size: 22px;
	font-weight: 700;
}

.hubbi-kort-dato {
	color: #888;
	margin-bottom: 10px;
}

.hubbi-kort-sted,
.hubbi-kort-pris {
	color: #444;
	margin-bottom: 6px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}

.hubbi-kort-tekst-link {
	color: inherit;
	text-decoration: none;
	border-bottom: 1px dotted currentColor;
}

.hubbi-kort-tekst-link:hover {
	text-decoration: none;
	border-bottom-style: solid;
}

.hubbi-ikon {
	display: inline-flex;
	width: 16px;
	height: 16px;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.hubbi-kort-links {
	margin-top: 14px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 14px;
}

.hubbi-link {
	color: #B0242B;
	text-decoration: underline;
}

.hubbi-sep {
	color: #ccc;
}

/* Grid- og listelayout til [hubbi_koncertliste] og koncertliste-widgettet */
.hubbi-koncertliste {
	display: grid;
	gap: 16px;
}

.hubbi-koncertliste.hubbi-layout-grid {
	grid-template-columns: repeat(3, 1fr);
}

.hubbi-koncertliste.hubbi-layout-liste {
	grid-template-columns: 1fr;
}

@media (max-width: 1024px) {
	.hubbi-koncertliste.hubbi-layout-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.hubbi-koncertliste.hubbi-layout-grid {
		grid-template-columns: 1fr;
	}
	.hubbi-kort {
		padding: 18px;
	}
}

.hubbi-ingen-koncerter {
	color: #888;
}

/* Tabel-layout: dato · stiplet linje · titel */
.hubbi-koncertliste.hubbi-layout-tabel {
	display: block;
}

.hubbi-tabel-raekke {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 10px 0;
}

.hubbi-tabel-dato {
	flex: 0 0 auto;
	white-space: nowrap;
	margin: 0;
}

.hubbi-tabel-linje {
	flex: 1 1 auto;
	border-bottom: 2px dotted #666666;
	margin-bottom: 5px;
	min-width: 20px;
}

.hubbi-tabel-titel {
	flex: 0 0 auto;
	max-width: 70%;
	text-align: right;
	font-weight: 700;
	text-decoration: none;
}

a.hubbi-tabel-titel:hover {
	text-decoration: underline;
}

@media (max-width: 600px) {
	.hubbi-tabel-raekke {
		flex-wrap: wrap;
	}
	.hubbi-tabel-linje {
		display: none;
	}
	.hubbi-tabel-titel {
		max-width: 100%;
		text-align: left;
		flex-basis: 100%;
	}
}

/* Scroll-boks til "synlige rækker".
   !important bruges bevidst her: hvis temaet eller siden sætter overflow: visible
   på indholds-divs generelt, skal scroll-boksen stadig virke. */
.hubbi-scroll-wrap {
	overflow-y: auto !important;
	overflow-x: hidden !important;
	position: relative;
	scrollbar-width: thin;
}

.hubbi-scroll-wrap.hubbi-er-scrollbar::after {
	content: "";
	position: sticky;
	display: block;
	bottom: 0;
	left: 0;
	right: 0;
	height: 32px;
	margin-top: -32px;
	pointer-events: none;
	background: linear-gradient(to bottom, transparent, #ffffff);
}
