/**
 * Wiener Yogaschule – Termine block styles
 *
 * Bundled with the plugin so the block's markup and styles live together.
 * Section 1 ("Cards") was relocated verbatim from the theme Customizer
 * (Additional CSS); the Customizer copy is intentionally kept in place for
 * now as a fallback during the transition.
 * Section 2 ("Table") is the new compact, grouped view shown to logged-in
 * users. Loaded via ACF's `enqueue_style` only when the block is present.
 */

/* =================================================================
 * Section 1 — Cards view (relocated from Customizer, unchanged)
 * ================================================================= */

.termin-modul h4 {
	text-transform: uppercase;
	font-size: 1.125em;
	margin-bottom: .25em;
	color: #BDA173;
}
.termin-modul p {
	margin: 0;
}
.termin-modul .date {
	font-weight: bold;
}
.termin-module {
	display: flex;
	flex-wrap: wrap;
	column-gap: 20px;
	row-gap: 20px;
	margin-bottom: 20px;
}
.termin-modul {
	flex: 1 0 20%;
	min-width: 200px;
}
.termine-element .button {
	background: #BDA173 0% 0% no-repeat padding-box;
	border-radius: 2px;
	color: #fff;
}
.termine-element {
	padding: 40px 0;
	position: relative;
}
.termine-element h2 {
	margin-top: 15px;
}
.hard-facts ul {
	list-style: none;
	padding: 0;
}
.terminbezeichnung {
	text-transform: uppercase;
	font-size: .8em;
	font-weight: 500;
	color: #B10030;
}
.termine-element:not(:last-child) {
	border-bottom: 2px solid #bda173;
}
.termin-content {
	margin-bottom: calc(0.2em + 10px);
}
.earlybird {
	font-weight: 700;
	background-color: #B10030;
	color: #fff;
	padding: 5px 10px;
	border-radius: 3px;
	display: inline-block;
}
.block-termine .archive {
	opacity: .5;
}
.emnote {
	background-color: #B10030;
	color: #fff;
	height: 120px;
	width: 120px;
	padding: 10px;
	display: flex;
	align-items: center;
	align-content: center;
	position: absolute;
	right: -50px;
	top: -10px;
	text-align: center;
	border-radius: 50%;
	transform: rotate(15deg);
}
.button-block {
	margin-top: 20px;
	padding: 10px 20px;
	font-size: .9em;
	line-height: 1.2;
	align-items: center;
	border-radius: 3px;
	background-color: #bda17310;
}
.anmeldung {
	margin-top: 10px;
}
@media (min-width: 768px) {
	.button-block {
		display: grid;
		line-height: 1.1;
		grid-template-columns: 3fr 175px;
		column-gap: 20px;
	}
	.anmeldung {
		margin-top: 0;
	}
}
.button-block p {
	margin: .5em 0;
}
.preis {
	font-weight: bold;
}

/* =================================================================
 * Section 2 — Table view (new, logged-in only)
 * Brand palette: #BDA173 gold, #B10030 red.
 * ================================================================= */

.wys-termine-table {
	--wys-gold: #BDA173;
	--wys-red: #B10030;
	--wys-line: #bda17333;
	--wys-hover: #bda17310;
	--wys-muted: #6f6457;
}
.wys-termine-group {
	margin: 0 0 2.4rem;
}
.wys-termine-city {
	margin: 0 0 .4rem;
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--wys-gold);
	padding-bottom: .35rem;
	border-bottom: 2px solid var(--wys-line);
}
.wys-termine-row {
	display: grid;
	grid-template-columns: 1.4fr 130px 1.3fr 130px 130px;
	align-items: center;
	gap: 1rem;
	padding: .85rem 1rem;
	border-bottom: 1px solid var(--wys-line);
}
.wys-termine-row.is-head {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--wys-muted);
	font-weight: 600;
	padding-top: 0;
	padding-bottom: .5rem;
}
.wys-termine-row:not(.is-head):hover {
	background: var(--wys-hover);
}
.wys-termine-row.is-archive {
	opacity: .5;
}
.wys-termine-kurs {
	font-weight: 600;
}
.wys-termine-variante {
	display: block;
	font-size: .78rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: var(--wys-muted);
	margin-top: .15rem;
}
.wys-termine-badge {
	display: inline-block;
	font-size: .68rem;
	font-weight: 600;
	color: #fff;
	background: var(--wys-red);
	border-radius: 20px;
	padding: .1rem .5rem;
	margin-left: .5rem;
	vertical-align: middle;
	text-transform: none;
	letter-spacing: 0;
}
.wys-termine-start {
	font-variant-numeric: tabular-nums;
}
.wys-termine-ort {
	color: var(--wys-muted);
	font-size: .9rem;
}
.wys-termine-preis {
	font-weight: 700;
	white-space: nowrap;
}
.wys-termine-btn {
	display: inline-block;
	background: var(--wys-gold);
	color: #fff;
	text-decoration: none;
	text-align: center;
	padding: .55rem .9rem;
	border-radius: 2px;
	font-weight: 600;
	font-size: .9rem;
}
.wys-termine-btn:hover,
.wys-termine-btn:focus {
	background: #a8895a;
	color: #fff;
}
.wys-termine-label {
	display: none;
}
.wys-termine-empty {
	padding: 1.5rem 1rem;
	color: var(--wys-muted);
}

@media (max-width: 760px) {
	.wys-termine-row.is-head {
		display: none;
	}
	.wys-termine-row {
		grid-template-columns: 1fr;
		gap: .35rem;
		padding: 1rem;
		border: 1px solid var(--wys-line);
		border-radius: 8px;
		margin-bottom: .75rem;
	}
	.wys-termine-label {
		display: inline;
		color: var(--wys-muted);
		font-size: .72rem;
		text-transform: uppercase;
		letter-spacing: .03em;
		margin-right: .4rem;
	}
	.wys-termine-btn {
		margin-top: .5rem;
	}
}
