/**
 * Deubner Homepage Services - Frontend-Stylesheet
 *
 * Container-Styling fuer die Layout-Templates (default, card, compact).
 * Styled ausschliesslich die aeusseren Wrapper-Elemente.
 * API-Inhalte selbst werden NICHT zurueckgesetzt oder ueberschrieben.
 *
 * @package Deubner Homepage-Service
 * @since   0.5.0
 */

/* ==========================================================================
   Basis-Container
   ========================================================================== */

.dhps-service {
	position: relative;
	margin-bottom: 24px;
}

.dhps-service:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Layout: Standard (default)
   ========================================================================== */

.dhps-layout--default {
	padding: 0;
}

/* ==========================================================================
   Layout: Card
   ========================================================================== */

.dhps-layout--card {
	padding: 0;
}

.dhps-layout--card .dhps-card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
	padding: 20px 24px;
	overflow: hidden;
}

/* ==========================================================================
   Layout: Kompakt
   ========================================================================== */

.dhps-layout--compact {
	padding: 8px 0;
	margin-bottom: 12px;
}

.dhps-layout--compact:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Demo-Badge
   ========================================================================== */

.dhps-demo-banner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 16px;
	background: linear-gradient(135deg, #fff3cd, #ffeaa7);
	border-bottom: 2px solid #f0c040;
	font-size: 13px;
	line-height: 1.4;
}

.dhps-demo-banner__text {
	font-weight: 600;
	color: #856404;
}

.dhps-demo-banner__link {
	display: inline-block;
	padding: 4px 12px;
	background: #28a745;
	color: #fff !important;
	text-decoration: none !important;
	border-radius: 4px;
	font-size: 12px;
	font-weight: 600;
	transition: background 0.2s;
}

.dhps-demo-banner__link:hover {
	background: #218838;
	color: #fff !important;
}

/* ==========================================================================
   MIO: Steuertermine
   ========================================================================== */

.dhps-tax-dates {
	margin-bottom: 24px;
}

.dhps-tax-dates__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.dhps-tax-dates__column {
	min-width: 0;
	background: var(--dhps-color-bg-white, #fff);
	border: 1px solid var(--dhps-color-border, #ddd);
	border-radius: var(--dhps-radius, 0);
	padding: 20px;
	box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
}

.dhps-tax-dates__title {
	font-size: 16px;
	font-weight: 600;
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--dhps-color-steuern, #0AA245);
	color: var(--dhps-color-steuern, #0AA245);
}

.dhps-tax-dates__list {
	margin: 0;
	padding: 0;
}

.dhps-tax-dates__entry {
	display: flex;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-tax-dates__entry:last-child {
	border-bottom: none;
}

.dhps-tax-dates__date {
	flex-shrink: 0;
	width: 50px;
	font-weight: 600;
	color: var(--dhps-color-text-light, #555);
}

.dhps-tax-dates__taxes {
	margin: 0;
	color: var(--dhps-color-text, #333);
	line-height: 1.5;
}

.dhps-tax-dates__footnote {
	margin: 12px 0 0;
	padding: 8px 12px;
	background: var(--dhps-color-bg-alt, #f2f2f2);
	border-left: 3px solid var(--dhps-color-border, #ddd);
	font-size: 13px;
	color: var(--dhps-color-meta, #999);
	line-height: 1.5;
}

/* ==========================================================================
   MIO: Trennlinie
   ========================================================================== */

.dhps-divider {
	border: none;
	border-top: 1px solid var(--dhps-color-border, #ddd);
	margin: 24px 0;
}

/* ==========================================================================
   MIO: Such- und Filterleiste
   ========================================================================== */

.dhps-search-bar {
	margin-bottom: 24px;
	padding: 12px 16px;
	background: var(--dhps-color-bg, #f2f2f2);
	border-radius: var(--dhps-radius, 0);
	border: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-search-bar__form {
	display: flex;
	align-items: stretch;
	gap: 8px;
}

.dhps-search-bar__field {
	flex-shrink: 0;
}

.dhps-search-bar__field--grow {
	flex: 1;
	min-width: 0;
}

.dhps-search-bar__select {
	display: block;
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--dhps-color-border, #ddd);
	border-radius: 4px;
	background: var(--dhps-color-bg-white, #fff);
	font-size: 14px;
	color: var(--dhps-color-text, #333);
	cursor: pointer;
	appearance: auto;
}

.dhps-search-bar__select:focus {
	border-color: var(--dhps-color-steuern, #0AA245);
	outline: none;
	box-shadow: 0 0 0 2px rgba(10, 162, 69, 0.2);
}

.dhps-search-bar__input {
	display: block;
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--dhps-color-border, #ddd);
	border-radius: 4px;
	background: var(--dhps-color-bg-white, #fff);
	font-size: 14px;
	color: var(--dhps-color-text, #333);
	box-sizing: border-box;
}

.dhps-search-bar__input:focus {
	border-color: var(--dhps-color-steuern, #0AA245);
	outline: none;
	box-shadow: 0 0 0 2px rgba(10, 162, 69, 0.2);
}

.dhps-search-bar__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--dhps-color-steuern, #0AA245);
	border-radius: 4px;
	background: var(--dhps-color-steuern, #0AA245);
	color: #fff;
	cursor: pointer;
	flex-shrink: 0;
	transition: background 0.2s;
}

.dhps-search-bar__button:hover {
	background: var(--dhps-color-steuern-dark, #077231);
}

.dhps-search-bar__button:focus-visible {
	outline: 2px solid var(--dhps-color-steuern, #0AA245);
	outline-offset: 2px;
}

.dhps-search-bar__icon {
	display: block;
}

/* ==========================================================================
   MIO: News-Container
   ========================================================================== */

.dhps-news {
	min-height: 100px;
}

.dhps-news__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 40px 0;
}

.dhps-news__spinner {
	display: inline-block;
	width: 32px;
	height: 32px;
	border: 3px solid var(--dhps-color-border, #ddd);
	border-top-color: var(--dhps-color-steuern, #0AA245);
	border-radius: 50%;
	animation: dhps-spin 0.8s linear infinite;
}

@keyframes dhps-spin {
	to { transform: rotate(360deg); }
}

.dhps-news__group {
	margin-bottom: 24px;
}

.dhps-news__group-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--dhps-color-steuern, #0AA245);
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--dhps-color-steuern, #0AA245);
}

.dhps-news__article {
	border-bottom: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-news__article:last-child {
	border-bottom: none;
}

.dhps-news__title {
	display: block;
	width: 100%;
	padding: 12px 0;
	margin: 0;
	border: none;
	background: none;
	color: var(--dhps-color-text, #333);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
	transition: color 0.2s;
}

.dhps-news__title:hover {
	color: var(--dhps-color-steuern, #0AA245);
}

.dhps-news__title[aria-expanded="true"] {
	font-weight: 600;
	color: var(--dhps-color-steuern, #0AA245);
}

.dhps-news__body {
	display: none;
	padding: 0 0 16px 16px;
	border-left: 3px solid var(--dhps-color-steuern, #0AA245);
	margin-left: 4px;
}

.dhps-news__body[aria-hidden="false"] {
	display: block;
}

.dhps-news__body p {
	margin: 0 0 12px;
	line-height: 1.6;
	color: var(--dhps-color-text-light, #555);
}

.dhps-news__body p:last-child {
	margin-bottom: 0;
}

.dhps-news__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: 12px;
	padding: 8px 12px;
	background: var(--dhps-color-bg-alt, #f2f2f2);
	border-radius: 4px;
	font-size: 13px;
	color: var(--dhps-color-meta, #999);
}

.dhps-news__meta-item {
	display: flex;
	gap: 4px;
}

.dhps-news__meta-label {
	font-weight: 600;
}

.dhps-news__share {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-news__share-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 4px;
	background: var(--dhps-color-bg, #f2f2f2);
	transition: background 0.2s;
}

.dhps-news__share-link:hover {
	background: var(--dhps-color-border, #ddd);
}

.dhps-news__share-link img {
	width: 18px;
	height: 18px;
}

.dhps-news__actions {
	display: flex;
	gap: 16px;
	margin-top: 8px;
}

.dhps-news__action-link {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: var(--dhps-color-meta, #999);
	text-decoration: none;
	cursor: pointer;
	background: none;
	border: none;
	padding: 0;
}

.dhps-news__action-link:hover {
	color: var(--dhps-color-steuern, #0AA245);
}

/* ==========================================================================
   MIO: "Mehr laden" Button
   ========================================================================== */

.dhps-news__load-more {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px 0 8px;
}

.dhps-news__load-more[hidden] {
	display: none;
}

.dhps-news__load-more-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 180px;
	padding: 10px 24px;
	border: 1px solid var(--dhps-color-steuern, #0AA245);
	border-radius: 4px;
	background: transparent;
	color: var(--dhps-color-steuern, #0AA245);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
}

.dhps-news__load-more-btn:hover {
	background: var(--dhps-color-steuern, #0AA245);
	color: #fff;
}

.dhps-news__load-more-btn:focus-visible {
	outline: 2px solid var(--dhps-color-steuern, #0AA245);
	outline-offset: 2px;
}

.dhps-news__load-more-spinner {
	display: none;
	width: 24px;
	height: 24px;
	border: 3px solid var(--dhps-color-border, #ddd);
	border-top-color: var(--dhps-color-steuern, #0AA245);
	border-radius: 50%;
	animation: dhps-spin 0.8s linear infinite;
}

/* ==========================================================================
   MIO: Card-Layout (Article Cards 2-Spalten-Grid)
   ========================================================================== */

.dhps-mio-card-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--dhps-grid-gap, 20px);
	margin-top: 16px;
}

/* Konfigurierbare Spaltenanzahl (1-4) */
.dhps-mio-card-grid--1col { grid-template-columns: 1fr; }
.dhps-mio-card-grid--2col { grid-template-columns: repeat(2, 1fr); }
.dhps-mio-card-grid--3col { grid-template-columns: repeat(3, 1fr); }
.dhps-mio-card-grid--4col { grid-template-columns: repeat(4, 1fr); }

.dhps-mio-card-article {
	background: var(--dhps-color-bg-white, #fff);
	border: 1px solid var(--dhps-color-border, #ddd);
	border-radius: var(--dhps-radius, 0);
	padding: 20px;
	box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
	cursor: pointer;
	transition: box-shadow 0.2s, transform 0.2s;
	display: flex;
	flex-direction: column;
}

.dhps-mio-card-article:hover {
	box-shadow: var(--dhps-shadow-md, 0 4px 12px rgba(0,0,0,0.1));
	transform: translateY(-2px);
}

.dhps-mio-card-article__tag {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--dhps-color-steuern, #0AA245);
	background: var(--dhps-color-steuern-light, #ecf4ed);
	padding: 2px 8px;
	border-radius: 3px;
	margin-bottom: 8px;
	align-self: flex-start;
}

.dhps-mio-card-article__title {
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 0 0 8px;
	color: var(--dhps-color-text, #333);
}

.dhps-mio-card-article__excerpt {
	font-size: 0.8125rem;
	color: var(--dhps-color-text-light, #555);
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
}

.dhps-mio-card-article__cta {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	margin-top: 12px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--dhps-color-steuern, #0AA245);
}

/* Card-Body innerhalb der Card: Expandiert die Card ueber alle Grid-Spalten */
.dhps-mio-card-article__body {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-mio-card-article__body[aria-hidden="false"] {
	display: block;
}

/* Card mit offenem Body: Ueber alle Spalten spannen */
.dhps-mio-card-article:has(.dhps-mio-card-article__body[aria-hidden="false"]) {
	grid-column: 1 / -1;
}

/* Fallback fuer Browser ohne :has() - JS setzt die Klasse */
.dhps-mio-card-article--expanded {
	grid-column: 1 / -1;
}

/* ==========================================================================
   MIO: Compact-Layout (Inline Dates + Tabellarische Rows)
   ========================================================================== */

.dhps-compact-dates {
	display: flex;
	gap: 24px;
	font-size: 0.875rem;
	margin-bottom: 16px;
	padding: 10px 14px;
	background: var(--dhps-color-bg-alt, #f2f2f2);
	border-radius: var(--dhps-radius-sm, 0);
	line-height: 1.5;
}

.dhps-compact-dates__item strong {
	margin-right: 4px;
}

.dhps-compact-dates__footnote {
	color: var(--dhps-color-meta, #999);
	font-style: italic;
}

.dhps-mio-compact__group {
	margin-bottom: 4px;
}

.dhps-mio-compact__group-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 8px 0;
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--dhps-color-steuern, #0AA245);
	border-bottom: 1px solid var(--dhps-color-border, #ddd);
	cursor: pointer;
	user-select: none;
}

.dhps-mio-compact__group-header:hover {
	color: var(--dhps-color-steuern-hover, #077231);
}

.dhps-mio-compact__group-count {
	font-weight: 400;
	color: var(--dhps-color-meta, #999);
}

.dhps-mio-compact__chevron {
	color: var(--dhps-color-meta, #999);
	font-size: 0.75rem;
	transition: transform 0.2s;
}

.dhps-mio-compact__article {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 12px;
	align-items: center;
	padding: 6px 0;
	border-bottom: 1px solid var(--dhps-color-border, #ddd);
	font-size: 0.8125rem;
	cursor: pointer;
}

.dhps-mio-compact__article:hover .dhps-mio-compact__article-title {
	color: var(--dhps-color-steuern, #0AA245);
}

/* Compact-Body: Nimmt volle Breite innerhalb des Artikels */
.dhps-mio-compact__article-body {
	grid-column: 1 / -1;
}

.dhps-mio-compact__article-body[aria-hidden="false"] {
	display: block;
}

.dhps-mio-compact__article:last-child {
	border-bottom: none;
}

.dhps-mio-compact__article-title {
	font-weight: 500;
	color: var(--dhps-color-text, #333);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.dhps-mio-compact__article-topic {
	color: var(--dhps-color-meta, #999);
	font-size: 0.75rem;
	white-space: nowrap;
}

.dhps-mio-compact__article-date {
	color: var(--dhps-color-meta, #999);
	font-size: 0.75rem;
	white-space: nowrap;
}

/* ==========================================================================
   Responsive Anpassungen
   ========================================================================== */

@media (max-width: 768px) {

	.dhps-service {
		margin-bottom: 16px;
	}

	.dhps-layout--card .dhps-card {
		padding: 16px;
		border-radius: 6px;
	}

	.dhps-layout--compact {
		padding: 6px 0;
		margin-bottom: 8px;
	}

	/* MIO: Steuertermine responsive */
	.dhps-tax-dates__grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	/* MIO: Card-Grid responsive */
	.dhps-mio-card-grid,
	.dhps-mio-card-grid--2col,
	.dhps-mio-card-grid--3col,
	.dhps-mio-card-grid--4col {
		grid-template-columns: 1fr;
	}

	/* MIO: Compact-Dates responsive */
	.dhps-compact-dates {
		flex-direction: column;
		gap: 8px;
	}

	/* MIO: Compact-Artikel responsive */
	.dhps-mio-compact__article {
		grid-template-columns: 1fr auto;
	}

	.dhps-mio-compact__article-topic {
		display: none;
	}

	/* MIO: Suchleiste responsive */
	.dhps-search-bar__form {
		flex-wrap: wrap;
	}

	.dhps-search-bar__field {
		flex: 1 1 100%;
	}

	.dhps-search-bar__field--grow {
		flex: 1 1 auto;
	}

	.dhps-search-bar__button {
		flex: 0 0 40px;
	}
}


/* ==========================================================================
   MMB: Merkblatt-Suche
   ========================================================================== */

.dhps-mmb-search {
	margin-bottom: 24px;
}

.dhps-mmb-search__form {
	display: flex;
	align-items: stretch;
	gap: 8px;
}

.dhps-mmb-search__field--grow {
	flex: 1;
	min-width: 0;
}

.dhps-mmb-search__input {
	display: block;
	width: 100%;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--dhps-color-border, #ccc);
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
	color: var(--dhps-color-text, #1a1a1a);
	box-sizing: border-box;
}

.dhps-mmb-search__input:focus {
	border-color: var(--dhps-color-steuern, #2e8a37);
	outline: none;
	box-shadow: 0 0 0 2px rgba(46, 138, 55, 0.2);
}

.dhps-mmb-search__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--dhps-color-steuern, #2e8a37);
	border-radius: 4px;
	background: var(--dhps-color-steuern, #2e8a37);
	color: #fff;
	cursor: pointer;
	flex-shrink: 0;
	transition: background 0.2s;
}

.dhps-mmb-search__button:hover {
	background: var(--dhps-color-steuern-dark, #257030);
}

.dhps-mmb-search__reset {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 1px solid var(--dhps-color-border, #ccc);
	border-radius: 4px;
	background: #fff;
	color: var(--dhps-color-meta, #737373);
	cursor: pointer;
	flex-shrink: 0;
}

.dhps-mmb-search__reset:hover {
	color: var(--dhps-color-text, #1a1a1a);
	border-color: var(--dhps-color-text, #1a1a1a);
}

/* ==========================================================================
   MMB: Suchergebnisse
   ========================================================================== */

.dhps-mmb-results {
	min-height: 60px;
	margin-bottom: 24px;
}

.dhps-mmb-results[hidden] {
	display: none;
}

.dhps-mmb-results__loading {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 0;
}

.dhps-mmb-results__spinner {
	display: inline-block;
	width: 28px;
	height: 28px;
	border: 3px solid var(--dhps-color-border, #e0e0e0);
	border-top-color: var(--dhps-color-steuern, #2e8a37);
	border-radius: 50%;
	animation: dhps-spin 0.8s linear infinite;
}

.dhps-mmb-results__header {
	padding: 12px 0;
	margin-bottom: 8px;
	border-bottom: 1px solid var(--dhps-color-border, #e0e0e0);
}

.dhps-mmb-results__empty,
.dhps-mmb-results__error {
	padding: 24px 0;
	text-align: center;
	color: var(--dhps-color-meta, #737373);
	font-size: 14px;
}

/* ==========================================================================
   MMB: Kategorien (Accordion)
   ========================================================================== */

.dhps-mmb-category {
	border: 1px solid var(--dhps-color-border, #e0e0e0);
	border-radius: 6px;
	margin-bottom: 8px;
	overflow: hidden;
}

.dhps-mmb-category:last-child {
	margin-bottom: 0;
}

.dhps-mmb-category__header {
	margin: 0;
}

.dhps-mmb-category__trigger {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 12px 16px;
	margin: 0;
	border: none;
	background: var(--dhps-color-bg-alt, #f8f9fa);
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--dhps-color-text, #1a1a1a);
	text-align: left;
	transition: background 0.2s, border-color 0.2s;
	gap: 10px;
}

.dhps-mmb-category__trigger:hover {
	background: var(--dhps-color-steuern-light, #ecf4ed);
	border-color: var(--dhps-color-steuern, #2e8a37);
}

.dhps-mmb-category__trigger[aria-expanded="true"] {
	border-bottom: 1px solid var(--dhps-color-border, #e0e0e0);
}

.dhps-mmb-category__icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	background: var(--dhps-color-steuern, #0AA245);
	border-radius: var(--dhps-radius, 0);
	color: #fff;
}

.dhps-mmb-category__name {
	flex: 1;
	text-transform: uppercase;
	letter-spacing: 0.3px;
}

.dhps-mmb-category__count {
	flex-shrink: 0;
	font-size: 13px;
	font-weight: 400;
	color: var(--dhps-color-meta, #737373);
	background: var(--dhps-color-bg-white, #fff);
	border: 1px solid var(--dhps-color-border, #e0e0e0);
	border-radius: 12px;
	padding: 2px 10px;
}

.dhps-mmb-category__chevron {
	flex-shrink: 0;
	transition: transform 0.3s ease;
}

.dhps-mmb-category__trigger[aria-expanded="true"] .dhps-mmb-category__chevron {
	transform: rotate(180deg);
}

.dhps-mmb-category__content {
	padding: 0;
}

.dhps-mmb-category__content[aria-hidden="true"] {
	display: none;
}

.dhps-mmb-category__content[aria-hidden="false"] {
	display: block;
}

/* ==========================================================================
   MMB: Merkblatt-Liste
   ========================================================================== */

.dhps-mmb-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dhps-mmb-item {
	border-bottom: 1px solid #f0f0f0;
}

.dhps-mmb-item:last-child {
	border-bottom: none;
}

.dhps-mmb-item__title {
	display: block;
	width: 100%;
	padding: 12px 16px;
	margin: 0;
	border: none;
	background: none;
	color: var(--dhps-color-text, #1a1a1a);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
	transition: color 0.2s, background 0.2s;
}

.dhps-mmb-item__title:hover {
	color: var(--dhps-color-steuern, #2e8a37);
	background: #fafbfc;
}

.dhps-mmb-item__title[aria-expanded="true"] {
	font-weight: 600;
	color: var(--dhps-color-steuern, #2e8a37);
	background: #fafbfc;
}

.dhps-mmb-item__detail {
	display: none;
	padding: 0 16px 16px;
	border-left: 3px solid var(--dhps-color-steuern, #0AA245);
	margin: 0 16px 8px;
}

.dhps-mmb-item__detail[aria-hidden="false"] {
	display: block;
}

.dhps-mmb-item__description {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.6;
	color: var(--dhps-color-text-light, #444);
}

.dhps-mmb-item__actions {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 8px;
}

.dhps-mmb-item__download {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	background: var(--dhps-color-steuern, #2e8a37);
	color: #fff !important;
	text-decoration: none !important;
	border-radius: 4px;
	font-size: 13px;
	font-weight: 600;
	transition: background 0.2s;
}

.dhps-mmb-item__download:hover {
	background: var(--dhps-color-steuern-dark, #257030);
	color: #fff !important;
}

.dhps-mmb-item__collapse {
	background: none;
	border: none;
	padding: 0;
	color: var(--dhps-color-meta, #737373);
	font-size: 13px;
	cursor: pointer;
	text-decoration: underline;
}

.dhps-mmb-item__collapse:hover {
	color: var(--dhps-color-text, #1a1a1a);
}

/* ==========================================================================
   MMB: Card-Grid (Card-Layout)
   ========================================================================== */

.dhps-mmb-card-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	padding: 16px;
}

.dhps-mmb-card-item {
	background: #fff;
	border: 1px solid var(--dhps-color-border, #e0e0e0);
	border-radius: 8px;
	padding: 20px;
	transition: box-shadow 0.2s;
}

.dhps-mmb-card-item:hover {
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.dhps-mmb-card-item__icon {
	margin-bottom: 12px;
}

.dhps-mmb-card-item__title {
	font-size: 14px;
	font-weight: 600;
	color: var(--dhps-color-text, #1a1a1a);
	margin: 0 0 8px;
	line-height: 1.4;
}

.dhps-mmb-card-item__desc {
	font-size: 13px;
	color: var(--dhps-color-meta, #737373);
	line-height: 1.5;
	margin: 0 0 12px;
}

.dhps-mmb-card-item__download {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--dhps-color-steuern, #2e8a37);
	text-decoration: none;
	font-size: 13px;
	font-weight: 600;
}

.dhps-mmb-card-item__download:hover {
	text-decoration: underline;
}

/* ==========================================================================
   MMB: Compact-Layout
   ========================================================================== */

.dhps-mmb-item--compact {
	padding: 8px 12px;
}

.dhps-mmb-item__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}

.dhps-mmb-item__desc--compact {
	margin: 2px 0 0 0;
	padding-left: 4px;
	font-size: 0.75rem;
	color: var(--dhps-color-meta, #999);
	line-height: 1.4;
}

.dhps-mmb-item__title--compact {
	flex: 1;
	font-size: 13px;
	color: var(--dhps-color-text, #1a1a1a);
	cursor: default;
}

.dhps-mmb-item__pdf-btn {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 4px;
	background: var(--dhps-color-steuern, #2e8a37);
	color: #fff;
	text-decoration: none;
	transition: background 0.2s;
}

.dhps-mmb-item__pdf-btn:hover {
	background: var(--dhps-color-steuern-dark, #257030);
}

/* ==========================================================================
   MMB: Responsive
   ========================================================================== */

@media (max-width: 768px) {
	.dhps-mmb-search__form {
		flex-wrap: wrap;
	}

	.dhps-mmb-category__trigger {
		padding: 10px 12px;
		font-size: 13px;
	}

	.dhps-mmb-item__title {
		padding: 10px 12px;
		font-size: 13px;
	}

	.dhps-mmb-item__detail {
		margin: 0 12px 8px;
		padding: 0 12px 12px;
	}

	.dhps-mmb-item__actions {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
	}

	.dhps-mmb-card-grid {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   Steuertermine Standalone [mio_termine]
   ========================================================================== */

.dhps-termine {
    font-family: var(--dhps-font-family, "Lato", sans-serif);
}

.dhps-termine__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dhps-grid-gap, 20px);
}

.dhps-termine__month {
    background: var(--dhps-color-bg-white, #fff);
    border: 1px solid var(--dhps-color-border, #ddd);
    box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
    padding: 16px 20px;
}

.dhps-termine__title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--dhps-color-steuern, #0AA245);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--dhps-color-steuern, #0AA245);
}

.dhps-termine__list {
    margin: 0;
    padding: 0;
}

.dhps-termine__entry {
    display: flex;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px solid var(--dhps-color-border, #ddd);
}

.dhps-termine__entry:last-child {
    border-bottom: none;
}

.dhps-termine__date {
    width: 50px;
    flex-shrink: 0;
    font-weight: 600;
    color: var(--dhps-color-text, #333);
}

.dhps-termine__taxes {
    color: var(--dhps-color-text-light, #555);
    margin: 0;
}

.dhps-termine__footnote {
    margin: 10px 0 0;
    padding: 6px 10px;
    font-size: 0.8125rem;
    color: var(--dhps-color-meta, #999);
    background: var(--dhps-color-bg-alt, #f2f2f2);
    border-left: 3px solid var(--dhps-color-border, #ddd);
}

/* Card variant */
.dhps-termine--card .dhps-termine__month {
    border-top: 3px solid var(--dhps-color-steuern, #0AA245);
}

/* Inline variant */
.dhps-termine--inline {
    font-size: 0.875rem;
    color: var(--dhps-color-text, #333);
}

.dhps-termine--inline .dhps-termine__month-label {
    font-weight: 700;
    color: var(--dhps-color-steuern, #0AA245);
}

.dhps-termine--inline .dhps-termine__separator {
    color: var(--dhps-color-meta, #999);
    margin: 0 4px;
}

/* Compact variant */
.dhps-termine--compact .dhps-termine__month {
    border: none;
    box-shadow: none;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--dhps-color-border, #ddd);
    margin-bottom: 12px;
}

/* Single month: no grid */
.dhps-termine__grid--single {
    grid-template-columns: 1fr;
    max-width: 400px;
}

/* Responsive */
@media (max-width: 768px) {
    .dhps-termine__grid {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================================
   MAES: Meine Aerzteseite
   ========================================================================== */

.dhps-maes-section__title {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--dhps-color-medizin, #0097a7);
    margin: 0 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--dhps-color-medizin, #0097a7);
}

.dhps-service--maes .dhps-tp-card__poster:focus-visible,
.dhps-service--maes-videos .dhps-tp-card__poster:focus-visible {
    outline-color: var(--dhps-color-medizin, #0097a7);
}

/* MAES Aktuelles: News-Akkordeon mit Medizin-Farbe */
.dhps-service--maes-aktuelles .dhps-news__title,
.dhps-service--maes-aktuelles-card .dhps-news__title,
.dhps-service--maes-aktuelles-compact .dhps-news__title {
    color: var(--dhps-color-medizin, #0097a7);
}

.dhps-service--maes-aktuelles .dhps-news__title:hover,
.dhps-service--maes-aktuelles-card .dhps-news__title:hover,
.dhps-service--maes-aktuelles-compact .dhps-news__title:hover {
    color: var(--dhps-color-medizin, #0097a7);
    opacity: 0.8;
}

.dhps-service--maes-aktuelles .dhps-news__body {
    border-left-color: var(--dhps-color-medizin, #0097a7);
}

.dhps-news__teaser-hint {
    display: block;
    font-size: 0.8125rem;
    font-weight: 400;
    color: var(--dhps-color-meta, #999);
    margin-top: 2px;
}

/* MAES Aktuelles: Card-Grid */
.dhps-news__card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dhps-grid-gap, 20px);
}

.dhps-news__card-grid--1col { grid-template-columns: 1fr; }
.dhps-news__card-grid--2col { grid-template-columns: repeat(2, 1fr); }
.dhps-news__card-grid--3col { grid-template-columns: repeat(3, 1fr); }
.dhps-news__card-grid--4col { grid-template-columns: repeat(4, 1fr); }

.dhps-news__card {
    background: var(--dhps-color-bg-white, #fff);
    border: 1px solid var(--dhps-color-border, #ddd);
    padding: 16px;
    transition: box-shadow 0.2s;
}

.dhps-news__card:hover {
    box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
}

.dhps-news__card .dhps-news__title {
    font-size: 0.9375rem;
    padding: 0;
    text-align: left;
}

.dhps-news__card-teaser {
    font-size: 0.8125rem;
    color: var(--dhps-color-meta, #999);
    margin: 6px 0 0;
    line-height: 1.5;
}

.dhps-news__card .dhps-news__body {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--dhps-color-border, #ddd);
    border-left: none;
    padding-left: 0;
}

/* Card mit offenem Body: ueber alle Spalten */
.dhps-news__card:has(.dhps-news__body[aria-hidden="false"]) {
    grid-column: 1 / -1;
}

@media (max-width: 768px) {
    .dhps-news__card-grid,
    .dhps-news__card-grid--2col,
    .dhps-news__card-grid--3col,
    .dhps-news__card-grid--4col {
        grid-template-columns: 1fr;
    }
}

/* MAES Merkblaetter: Card-Grid */
.dhps-mmb-card-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dhps-grid-gap, 20px);
}

.dhps-mmb-card-grid--1col { grid-template-columns: 1fr; }
.dhps-mmb-card-grid--2col { grid-template-columns: repeat(2, 1fr); }
.dhps-mmb-card-grid--3col { grid-template-columns: repeat(3, 1fr); }
.dhps-mmb-card-grid--4col { grid-template-columns: repeat(4, 1fr); }

.dhps-mmb-card-grid__item {
    background: var(--dhps-color-bg-white, #fff);
    border: 1px solid var(--dhps-color-border, #ddd);
    padding: 16px;
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s;
}

.dhps-mmb-card-grid__item:hover {
    box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
}

.dhps-mmb-card-grid__title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--dhps-color-text, #333);
    margin: 0 0 8px;
}

.dhps-mmb-card-grid__desc {
    font-size: 0.8125rem;
    color: var(--dhps-color-meta, #999);
    line-height: 1.5;
    margin: 0 0 12px;
    flex: 1;
}

.dhps-mmb-card-grid__actions {
    margin-top: auto;
}

@media (max-width: 768px) {
    .dhps-mmb-card-grid,
    .dhps-mmb-card-grid--2col,
    .dhps-mmb-card-grid--3col,
    .dhps-mmb-card-grid--4col {
        grid-template-columns: 1fr;
    }
}

/* MAES Merkblaetter: Medizin-Farbe fuer Akkordeon */
.dhps-service--maes-merkblaetter .dhps-mmb-category__trigger {
    color: var(--dhps-color-medizin, #0097a7);
}

.dhps-service--maes-merkblaetter .dhps-mmb-item__detail {
    border-left-color: var(--dhps-color-medizin, #0097a7);
}

.dhps-service--maes .dhps-mmb-item__detail {
    border-left-color: var(--dhps-color-medizin, #0097a7);
}

.dhps-service--maes .dhps-filter-bar__btn--active,
.dhps-service--maes .dhps-filter-bar__btn[aria-pressed="true"] {
    background: var(--dhps-color-medizin, #0097a7);
    border-color: var(--dhps-color-medizin, #0097a7);
}

.dhps-divider {
    border: none;
    border-top: 1px solid var(--dhps-color-border, #ddd);
    margin: 24px 0;
}

.dhps-mmb-list--compact {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dhps-mmb-item--compact {
    padding: 6px 0;
    border-bottom: 1px solid var(--dhps-color-border, #eee);
}

.dhps-mmb-item--compact:last-child {
    border-bottom: none;
}

.dhps-mmb-item__download--inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--dhps-color-medizin, #0097a7);
    text-decoration: none;
    font-size: 0.875rem;
}

.dhps-mmb-item__download--inline:hover {
    text-decoration: underline;
}


/* ==========================================================================
   TP: Featured Video
   ========================================================================== */

.dhps-tp-featured {
	margin-bottom: 24px;
}

.dhps-tp-featured__heading {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--dhps-color-steuern, #2e8a37);
	margin: 0 0 16px;
}

.dhps-tp-video--featured {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 28px;
	align-items: start;
}

/* ==========================================================================
   TP: Video-Player (Poster + iframe)
   ========================================================================== */

.dhps-tp-video__player {
	position: relative;
	width: 100%;
	padding-top: 58.2%;
	background: #000;
	border-radius: var(--dhps-radius, 0);
	overflow: hidden;
	margin-bottom: 12px;
}

.dhps-tp-video__poster {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.dhps-tp-video__poster-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dhps-tp-video__play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	transition: transform 0.2s ease, opacity 0.2s ease;
	opacity: 0.9;
}

.dhps-tp-video__poster:hover .dhps-tp-video__play-btn {
	transform: translate(-50%, -50%) scale(1.1);
	opacity: 1;
}

.dhps-tp-video__poster:focus-visible {
	outline: 3px solid var(--dhps-color-steuern, #2e8a37);
	outline-offset: 2px;
}

.dhps-tp-video__iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Close-Button fuer Inline-Videos */
.dhps-tp-video__close {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 10;
	width: 32px;
	height: 32px;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	border: none;
	border-radius: 50%;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.15s;
	pointer-events: auto;
}

.dhps-tp-video__close:hover {
	background: var(--dhps-color-danger, #C60202);
}

/* ==========================================================================
   TP: Video-Info
   ========================================================================== */

.dhps-tp-video__title {
	font-size: 1rem;
	font-weight: 600;
	color: var(--dhps-color-text, #1a1a1a);
	margin: 0 0 4px;
	line-height: 1.4;
}

.dhps-tp-video__teaser {
	font-size: 0.9375rem;
	color: var(--dhps-color-text, #1a1a1a);
	line-height: 1.6;
	margin: 0 0 8px;
}

.dhps-tp-video__date {
	font-size: 0.8125rem;
	color: var(--dhps-color-meta, #737373);
}

/* ==========================================================================
   TP: Kategorie-Filter (Pill-Navigation)
   ========================================================================== */

.dhps-tp-catalog__heading {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--dhps-color-text, #1a1a1a);
	margin: 0 0 16px;
}

.dhps-tp-catalog__filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.dhps-tp-filter__btn {
	padding: 6px 14px;
	border: 1px solid #d0d0d0;
	border-radius: 20px;
	background: #fff;
	color: var(--dhps-color-text, #1a1a1a);
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.dhps-tp-filter__btn:hover {
	border-color: var(--dhps-color-steuern, #2e8a37);
	color: var(--dhps-color-steuern, #2e8a37);
}

.dhps-tp-filter__btn--active,
.dhps-tp-filter__btn[aria-pressed="true"] {
	background: var(--dhps-color-steuern, #2e8a37);
	border-color: var(--dhps-color-steuern, #2e8a37);
	color: #fff;
}

/* ==========================================================================
   Shared: Kategorie-Filter-Bar (Pill-Navigation)
   Wiederverwendbare Filterleiste fuer alle Services. Die Akzentfarbe
   passt sich ueber --dhps-filter-color an die Service-Kategorie an.
   ========================================================================== */

.dhps-filter-bar {
	--dhps-filter-color: var(--dhps-color-steuern, #0AA245);
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.dhps-filter-bar__btn {
	padding: 6px 14px;
	border: 1px solid var(--dhps-color-border, #ddd);
	border-radius: 20px;
	background: var(--dhps-color-bg-white, #fff);
	color: var(--dhps-color-text, #333);
	font-size: 0.8125rem;
	font-weight: 500;
	cursor: pointer;
	transition: all 0.2s ease;
	white-space: nowrap;
}

.dhps-filter-bar__btn:hover {
	border-color: var(--dhps-filter-color);
	color: var(--dhps-filter-color);
}

.dhps-filter-bar__btn--active,
.dhps-filter-bar__btn[aria-pressed="true"] {
	background: var(--dhps-filter-color);
	border-color: var(--dhps-filter-color);
	color: #fff;
}

/* Service-Farben: recht → blau, medizin → teal. */
.dhps-service--lxmio .dhps-filter-bar,
.dhps-service--lp .dhps-filter-bar {
	--dhps-filter-color: var(--dhps-color-recht, #1E73BE);
}

.dhps-service--maes .dhps-filter-bar {
	--dhps-filter-color: var(--dhps-color-medizin, #0097a7);
}

/* ==========================================================================
   TP: Video-Grid
   ========================================================================== */

.dhps-tp-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--dhps-grid-gap, 20px);
}

/* Konfigurierbare Spaltenanzahl (1-4) */
.dhps-tp-grid--1col { grid-template-columns: 1fr; }
.dhps-tp-grid--2col { grid-template-columns: repeat(2, 1fr); }
.dhps-tp-grid--3col { grid-template-columns: repeat(3, 1fr); }
.dhps-tp-grid--4col { grid-template-columns: repeat(4, 1fr); }

/* Lazy Loading: versteckte Cards */
.dhps-tp-card--lazy-hidden {
	display: none !important;
}

/* Load More Button */
.dhps-tp-load-more {
	display: block;
	margin: var(--dhps-space-lg, 24px) auto 0;
	padding: 10px 28px;
	background: var(--dhps-color-steuern, #0AA245);
	color: #fff;
	border: none;
	border-radius: var(--dhps-radius, 0);
	font-size: 0.9375rem;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s;
}

.dhps-tp-load-more::before {
	content: "\00BB\0020";
}

.dhps-tp-load-more:hover {
	background: var(--dhps-color-steuern-hover, #077231);
}

/* Lazy Sentinel (fuer Auto-Modus) */
.dhps-tp-lazy-sentinel {
	height: 1px;
	width: 100%;
}

/* ==========================================================================
   TP: Style-Presets
   ========================================================================== */

/* Minimal: Kein Schatten, kein Border, cleaner Look */
.dhps-tp-style--minimal .dhps-tp-card {
	box-shadow: none;
	border: none;
}

.dhps-tp-style--minimal .dhps-tp-card:hover {
	box-shadow: none;
	transform: none;
}

/* Shadow: Kraeftiger Deubner-Schatten */
.dhps-tp-style--shadow .dhps-tp-card {
	box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18));
	border: none;
}

.dhps-tp-style--shadow .dhps-tp-card:hover {
	box-shadow: var(--dhps-shadow-hover, 0 0 12px 0 rgba(0,0,0,0.25));
}

/* ==========================================================================
   TP: Video-Card (im Grid)
   ========================================================================== */

.dhps-tp-card {
	border-radius: var(--dhps-radius, 8px);
	overflow: hidden;
	background: var(--dhps-color-bg-white, #fff);
	border: 1px solid var(--dhps-color-border, #e0e0e0);
	box-shadow: var(--dhps-shadow, 0 1px 3px rgba(0,0,0,0.08));
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.dhps-tp-card:hover {
	box-shadow: var(--dhps-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.1));
	transform: translateY(-2px);
}

.dhps-tp-card__poster {
	position: relative;
	width: 100%;
	padding-top: 58.2%;
	background: #f0f0f0;
	cursor: pointer;
	overflow: hidden;
}

.dhps-tp-card__img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.dhps-tp-card:hover .dhps-tp-card__img {
	transform: scale(1.03);
}

.dhps-tp-card__play-btn {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	opacity: 0;
	transition: opacity 0.2s ease;
}

.dhps-tp-card:hover .dhps-tp-card__play-btn {
	opacity: 1;
}

.dhps-tp-card__poster:focus-visible {
	outline: 3px solid var(--dhps-color-steuern, #2e8a37);
	outline-offset: -3px;
}

/* Playing-State: Deaktiviert Hover-Effekte wenn iframe geladen */
.dhps-tp--playing {
	pointer-events: none;
}

.dhps-tp--playing iframe {
	pointer-events: auto;
}

.dhps-tp-card.dhps-tp--playing,
.dhps-tp-video.dhps-tp--playing {
	position: relative;
	z-index: 100;
	transform: none !important;
	box-shadow: var(--dhps-shadow, 0 0 5px 0 rgba(0,0,0,0.18)) !important;
	pointer-events: auto;
}

.dhps-tp-card.dhps-tp--playing .dhps-tp-card__play-btn {
	display: none;
}

.dhps-tp-video.dhps-tp--playing .dhps-tp-video__play-btn {
	display: none;
}

.dhps-tp-card__body {
	padding: 12px 16px;
}

.dhps-tp-card__title {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--dhps-color-text, #1a1a1a);
	margin: 0 0 4px;
	line-height: 1.4;
}

.dhps-tp-card__teaser {
	font-size: 0.8125rem;
	color: var(--dhps-color-meta, #737373);
	line-height: 1.5;
	margin: 0 0 8px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dhps-tp-card__date {
	font-size: 0.8125rem;
	color: var(--dhps-color-meta, #737373);
}

.dhps-tp-card__meta {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
}

.dhps-tp-card__badge {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	background: #e8f5e9;
	color: var(--dhps-color-steuern, #2e8a37);
	font-size: 0.6875rem;
	font-weight: 600;
	white-space: nowrap;
}

/* ==========================================================================
   TP: Compact-Layout
   ========================================================================== */

.dhps-tp-compact__section {
	border: 1px solid var(--dhps-color-border, #e0e0e0);
	border-radius: 6px;
	margin-bottom: 8px;
	overflow: hidden;
}

.dhps-tp-compact__section:last-child {
	margin-bottom: 0;
}

.dhps-tp-compact__header {
	margin: 0;
}

.dhps-tp-compact__trigger {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 10px 14px;
	margin: 0;
	border: none;
	background: var(--dhps-color-bg-alt, #f8f9fa);
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: var(--dhps-color-text, #1a1a1a);
	text-align: left;
	gap: 8px;
}

.dhps-tp-compact__trigger:hover {
	background: var(--dhps-color-steuern-light, #ecf4ed);
}

.dhps-tp-compact__trigger[aria-expanded="true"] {
	border-bottom: 1px solid var(--dhps-color-border, #e0e0e0);
}

.dhps-tp-compact__name {
	flex: 1;
}

.dhps-tp-compact__count {
	font-size: 13px;
	font-weight: 400;
	color: var(--dhps-color-meta, #737373);
}

.dhps-tp-compact__chevron {
	flex-shrink: 0;
	transition: transform 0.3s ease;
}

.dhps-tp-compact__trigger[aria-expanded="true"] .dhps-tp-compact__chevron {
	transform: rotate(180deg);
}

.dhps-tp-compact__content {
	padding: 0;
}

.dhps-tp-compact__content[aria-hidden="true"] {
	display: none;
}

.dhps-tp-compact__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.dhps-tp-compact__item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-bottom: 1px solid #f0f0f0;
}

.dhps-tp-compact__item:last-child {
	border-bottom: none;
}

.dhps-tp-compact__video-btn {
	flex: 1;
	display: flex;
	align-items: center;
	gap: 8px;
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	text-align: left;
	color: var(--dhps-color-text, #1a1a1a);
	font-size: 13px;
	line-height: 1.4;
}

.dhps-tp-compact__video-btn:hover {
	color: var(--dhps-color-steuern, #2e8a37);
}

.dhps-tp-compact__play-icon {
	flex-shrink: 0;
	color: var(--dhps-color-steuern, #2e8a37);
}

.dhps-tp-compact__title {
	flex: 1;
}

.dhps-tp-compact__date {
	flex-shrink: 0;
	font-size: 12px;
	color: var(--dhps-color-meta, #737373);
}

.dhps-tp-compact__player {
	padding: 8px 14px 16px;
}

.dhps-tp-compact__player .dhps-tp-video__player {
	border-radius: var(--dhps-radius, 0);
}

/* ==========================================================================
   TP: Video Modal
   ========================================================================== */

.dhps-video-modal { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.25s, visibility 0.25s; }
.dhps-video-modal--active { opacity: 1; visibility: visible; }
.dhps-video-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.85); }
.dhps-video-modal__content { position: relative; width: 90vw; max-width: 900px; transform: scale(0.95); transition: transform 0.25s; }
.dhps-video-modal--active .dhps-video-modal__content { transform: scale(1); }
.dhps-video-modal__close { position: absolute; top: -40px; right: 0; background: none; border: none; color: #fff; font-size: 32px; cursor: pointer; padding: 4px 8px; line-height: 1; z-index: 1; }
.dhps-video-modal__close:hover { color: var(--dhps-color-steuern, #0AA245); }
.dhps-video-modal__player { position: relative; padding-top: 56.25%; background: #000; }
.dhps-video-modal__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* ==========================================================================
   TP: Responsive
   ========================================================================== */

@media (max-width: 1024px) {
	.dhps-tp-grid,
	.dhps-tp-grid--3col,
	.dhps-tp-grid--4col {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.dhps-tp-video--featured {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.dhps-tp-grid,
	.dhps-tp-grid--2col,
	.dhps-tp-grid--3col,
	.dhps-tp-grid--4col {
		grid-template-columns: 1fr;
		gap: 16px;
	}

	.dhps-tp-catalog__filter {
		gap: 6px;
	}

	.dhps-tp-filter__btn {
		font-size: 0.75rem;
		padding: 4px 10px;
	}

	/* Shared Filter-Bar responsive. */
	.dhps-filter-bar {
		gap: 6px;
	}

	.dhps-filter-bar__btn {
		font-size: 0.75rem;
		padding: 4px 10px;
	}
}

@media (max-width: 480px) {
	.dhps-tp-video__player {
		border-radius: var(--dhps-radius, 0);
	}

	.dhps-tp-card {
		border-radius: var(--dhps-radius, 0);
	}

	.dhps-tp-card__body {
		padding: 8px 12px;
	}

	.dhps-tp-compact__item {
		flex-wrap: wrap;
	}

	.dhps-tp-compact__date {
		flex: 1 1 100%;
		padding-left: 22px;
	}
}
