/* ── Seminar Übersicht — Layout „PSH Layout 01" ─────────────────────────
 *
 * Alle Regeln sind mit `.wpsm-psh01` doppelt geklassifiziert. Grund: Elementors
 * `reset.css` (Hello-Themes) setzt `table td, table th { border: 1px solid …;
 * padding: 15px }` sowie ein Zebra-Muster über
 * `table tbody > tr:nth-child(2n+1) > td`, und Hellos `theme.css` unterstreicht
 * über `.page-content a` jeden Link. Einfach geklassifizierte Selektoren
 * verlieren dagegen — daher die zusätzliche Ebene statt `!important`.
 * ------------------------------------------------------------------- */

.wpsm-psh01 {
	/* Farben bewusst als Custom Properties: pro Instanz/Theme überschreibbar. */
	--wpsm-psh01-head-bg: #0a3b33;
	--wpsm-psh01-head-fg: rgba( 255, 255, 255, 0.72 );
	--wpsm-psh01-surface: #fff;
	--wpsm-psh01-border: #e6ecea;
	--wpsm-psh01-accent: #0e847f;
	--wpsm-psh01-title: #1b2422;
	--wpsm-psh01-muted: #7c8785;
	--wpsm-psh01-badge-bg: #d9f0ec;
	--wpsm-psh01-badge-fg: #0b5f5a;
	--wpsm-psh01-radius: 14px;
	--wpsm-psh01-hover: #f5faf9;

	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* ── Reset gegen Theme-/Elementor-Tabellenstile ───────────────────── */

.wpsm-psh01 .wpsm-psh01__table,
.wpsm-psh01 .wpsm-psh01__table thead,
.wpsm-psh01 .wpsm-psh01__table tbody,
.wpsm-psh01 .wpsm-psh01__table tr,
.wpsm-psh01 .wpsm-psh01__table th,
.wpsm-psh01 .wpsm-psh01__table td {
	border: 0;
	margin: 0;
	background-color: transparent;
	background-image: none;
	vertical-align: middle;
	line-height: 1.45;
}

/* reset.css setzt zusätzlich `border-block-start` auf die erste Zeile —
   Selektor dort ist spezifischer als der Sammel-Reset oben. */
.wpsm-psh01 .wpsm-psh01__table thead:first-child tr:first-child th,
.wpsm-psh01 .wpsm-psh01__table thead:first-child tr:first-child td {
	border-block-start: 0;
}

.wpsm-psh01 .wpsm-psh01__table a {
	text-decoration: none;
	box-shadow: none;
}

/* ── Tabellenrahmen ───────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__table {
	width: 100%;
	min-width: 720px;
	border-collapse: separate;
	border-spacing: 0;
	background-color: var( --wpsm-psh01-surface );
	border-radius: var( --wpsm-psh01-radius );
	overflow: hidden;
	box-shadow: 0 1px 2px rgba( 10, 59, 51, 0.06 ), 0 8px 24px rgba( 10, 59, 51, 0.06 );
	font-size: 0.9rem;
}

/* ── Kopfzeile ────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__table thead th {
	border: 0;
	background-color: var( --wpsm-psh01-head-bg );
	color: var( --wpsm-psh01-head-fg );
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-align: left;
	white-space: nowrap;
	padding: 1rem 1.25rem;
}

.wpsm-psh01 .wpsm-psh01__table thead th.wpsm-psh01__th--points,
.wpsm-psh01 .wpsm-psh01__table thead th.wpsm-psh01__th--price,
.wpsm-psh01 .wpsm-psh01__table thead th.wpsm-psh01__th--action {
	text-align: right;
}

/* ── Zeilen ───────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__table tbody > tr > td {
	padding: 1.2rem 1.25rem;
	border-bottom: 1px solid var( --wpsm-psh01-border );
}

.wpsm-psh01 .wpsm-psh01__table tbody > tr:last-child > td {
	border-bottom: 0;
}

.wpsm-psh01 .wpsm-psh01__table tbody > tr:hover > td {
	background-color: var( --wpsm-psh01-hover );
}

/* ── Datum ────────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__date {
	white-space: nowrap;
	width: 1%;
}

.wpsm-psh01 .wpsm-psh01__date-main {
	display: block;
	color: var( --wpsm-psh01-accent );
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.wpsm-psh01 .wpsm-psh01__date-year {
	display: block;
	color: var( --wpsm-psh01-muted );
	font-size: 0.72rem;
	font-weight: 500;
}

.wpsm-psh01 .wpsm-psh01__deadline {
	display: block;
	margin-top: 0.3rem;
	color: var( --wpsm-psh01-muted );
	font-size: 0.72rem;
}

/* ── Kurs ─────────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__category {
	display: block;
	margin-bottom: 0.15rem;
	color: var( --wpsm-psh01-accent );
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
}

.wpsm-psh01 .wpsm-psh01__title {
	display: block;
}

.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__title a {
	color: var( --wpsm-psh01-title );
	font-weight: 700;
	text-decoration: none;
}

.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__title a:hover,
.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__title a:focus-visible {
	color: var( --wpsm-psh01-accent );
	text-decoration: underline;
}

.wpsm-psh01 .wpsm-psh01__location {
	display: flex;
	align-items: center;
	gap: 0.3rem;
	margin-top: 0.25rem;
	color: var( --wpsm-psh01-muted );
	font-size: 0.78rem;
}

.wpsm-psh01 .wpsm-psh01__location svg {
	flex-shrink: 0;
	opacity: 0.7;
}

/* ── Dozent:in ────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__dozent {
	color: var( --wpsm-psh01-muted );
	font-size: 0.85rem;
}

/* ── Punkte ───────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__points {
	text-align: right;
	white-space: nowrap;
	width: 1%;
}

.wpsm-psh01 .wpsm-psh01__badge {
	display: inline-block;
	padding: 0.25rem 0.7rem;
	border-radius: 9999px;
	background-color: var( --wpsm-psh01-badge-bg );
	color: var( --wpsm-psh01-badge-fg );
	font-size: 0.74rem;
	font-weight: 700;
	white-space: nowrap;
}

/* ── Preis ────────────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__price {
	text-align: right;
	white-space: nowrap;
	width: 1%;
}

.wpsm-psh01 .wpsm-psh01__price-main {
	display: block;
	color: var( --wpsm-psh01-title );
	font-weight: 700;
}

.wpsm-psh01 .wpsm-psh01__price-reduced {
	display: block;
	margin-top: 0.15rem;
	color: var( --wpsm-psh01-muted );
	font-size: 0.72rem;
	font-weight: 500;
}

/* ── Details-CTA ──────────────────────────────────────────────────── */

.wpsm-psh01 .wpsm-psh01__action {
	text-align: right;
	white-space: nowrap;
	width: 1%;
}

.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__btn {
	display: inline-block;
	padding: 0.4rem 0.95rem;
	border: 2px solid var( --wpsm-psh01-accent );
	border-radius: 9999px;
	background-color: transparent;
	color: var( --wpsm-psh01-accent );
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s, color 0.15s;
}

.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__btn:hover,
.wpsm-psh01 .wpsm-psh01__table .wpsm-psh01__btn:focus-visible {
	background-color: var( --wpsm-psh01-accent );
	color: #fff;
	text-decoration: none;
}

/* ── Responsiv: Tabelle wird zur Karte ────────────────────────────── */

@media ( max-width: 782px ) {
	.wpsm-psh01 {
		overflow-x: visible;
	}

	.wpsm-psh01 .wpsm-psh01__table,
	.wpsm-psh01 .wpsm-psh01__table tbody,
	.wpsm-psh01 .wpsm-psh01__table tr,
	.wpsm-psh01 .wpsm-psh01__table td {
		display: block;
		min-width: 0;
	}

	.wpsm-psh01 .wpsm-psh01__table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
		clip-path: inset( 50% );
		white-space: nowrap;
	}

	.wpsm-psh01 .wpsm-psh01__table {
		box-shadow: none;
		border-radius: 0;
		background-color: transparent;
	}

	.wpsm-psh01 .wpsm-psh01__table tbody > tr {
		margin-bottom: 0.9rem;
		padding: 1rem 1.25rem;
		background-color: var( --wpsm-psh01-surface );
		border: 1px solid var( --wpsm-psh01-border );
		border-radius: var( --wpsm-psh01-radius );
	}

	.wpsm-psh01 .wpsm-psh01__table tbody > tr > td {
		width: auto;
		padding: 0.25rem 0;
		border-bottom: 0;
		text-align: left;
		white-space: normal;
	}

	.wpsm-psh01 .wpsm-psh01__table tbody > tr:hover > td {
		background-color: transparent;
	}

	.wpsm-psh01 .wpsm-psh01__table tbody > tr > td:empty {
		display: none;
	}

	.wpsm-psh01 .wpsm-psh01__date-main,
	.wpsm-psh01 .wpsm-psh01__date-year {
		display: inline;
	}

	.wpsm-psh01 .wpsm-psh01__date-year {
		margin-left: 0.3rem;
	}

	.wpsm-psh01 .wpsm-psh01__price-main,
	.wpsm-psh01 .wpsm-psh01__price-reduced {
		display: inline;
	}

	.wpsm-psh01 .wpsm-psh01__price-reduced {
		margin-left: 0.4rem;
	}

	.wpsm-psh01 .wpsm-psh01__action {
		margin-top: 0.55rem;
	}
}
