/* Teile-Datenbank – Suche, Gruppenknöpfe, Datenblatt-Karten (gleiche Formensprache wie der Produktfinder) */
.tr-teile {
	--tt-linie: var(--wp--preset--color--linie, #d9d5d0);
	--tt-akzent: var(--wp--preset--color--akzent, #b3141b);
	--tt-leise: var(--wp--preset--color--text-leise, #5e5853);
	--tt-alt: var(--wp--preset--color--flaeche-alt, #f4f3f1);
	display: grid;
	gap: var(--wp--preset--spacing--40, 1.5rem);
}

.tr-teile [hidden] {
	display: none !important;
}

.tr-teile__filter {
	display: grid;
	gap: 0.5rem;
	padding-block-end: var(--wp--preset--spacing--30, 1rem);
	border-block-end: var(--wp--custom--linie--fein, 1px) solid var(--tt-linie);
}

.tr-teile__label {
	font-weight: 600;
}

.tr-teile__feld {
	max-width: 40rem;
	min-height: var(--wp--custom--zielgroesse, 44px);
	padding: 0.5rem 0.75rem;
	font: inherit;
	color: var(--wp--preset--color--text, #231f20);
	background: var(--wp--preset--color--flaeche, #fff);
	border: var(--wp--custom--linie--kraeftig, 2px) solid var(--wp--preset--color--linie-stark, #8c8580);
	border-radius: var(--wp--custom--radius--klein, 2px);
}

.tr-teile__feld:focus-visible,
.tr-teile__knopf:focus-visible,
.tr-teile__links a:focus-visible {
	outline: 3px solid var(--tt-akzent);
	outline-offset: 2px;
}

.tr-teile__hinweis,
.tr-teile__zaehler {
	margin: 0;
	font-size: var(--wp--preset--font-size--klein, 0.875rem);
	color: var(--tt-leise);
}

.tr-teile__zaehler:empty {
	display: none;
}

.tr-teile__gruppen {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.25rem 0 0;
	padding: 0;
	list-style: none;
}

.tr-teile__knopf {
	min-height: 40px;
	padding: 0.375rem 0.875rem;
	font: inherit;
	font-size: var(--wp--preset--font-size--klein, 0.875rem);
	font-weight: 600;
	color: var(--wp--preset--color--text, #231f20);
	background: var(--wp--preset--color--flaeche, #fff);
	border: 1px solid var(--wp--preset--color--linie-stark, #8c8580);
	border-radius: 999px;
	cursor: pointer;
}

.tr-teile__knopf:hover {
	background: var(--tt-alt);
}

.tr-teile__knopf[aria-pressed="true"] {
	color: var(--wp--preset--color--flaeche, #fff);
	background: var(--wp--preset--color--text, #231f20);
	border-color: var(--wp--preset--color--text, #231f20);
}

.tr-teile__liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
	border-block-start: var(--wp--custom--linie--fein, 1px) solid var(--tt-linie);
	border-inline-start: var(--wp--custom--linie--fein, 1px) solid var(--tt-linie);
}

.tr-teile__karte {
	display: flex;
	flex-direction: column;
	background: var(--wp--preset--color--flaeche, #fff);
	border-inline-end: var(--wp--custom--linie--fein, 1px) solid var(--tt-linie);
	border-block-end: var(--wp--custom--linie--fein, 1px) solid var(--tt-linie);
	scroll-margin-top: calc(var(--tr-kopf, 4.5rem) + 1rem);
}

.tr-teile__karte--ziel {
	outline: 3px solid var(--tt-akzent);
	outline-offset: -3px;
}

.tr-teile__medien {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--tt-alt);
}

.tr-teile__bild {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Ohne Bild: ruhige Fläche mit Gruppennamen statt eines leeren Rahmens */
.tr-teile__platzhalter {
	display: grid;
	place-items: center;
	height: 100%;
	padding: 1rem;
	font-size: var(--wp--preset--font-size--klein, 0.875rem);
	font-weight: 600;
	text-align: center;
	color: var(--tt-leise);
	background:
		repeating-linear-gradient(135deg, transparent 0 14px, rgb(0 0 0 / 0.035) 14px 15px),
		var(--tt-alt);
}

.tr-teile__inhalt {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.375rem;
	padding: var(--wp--preset--spacing--30, 1rem) var(--wp--preset--spacing--30, 1rem) var(--wp--preset--spacing--40, 1.25rem);
}

.tr-teile__gruppe {
	margin: 0;
	font-size: var(--wp--preset--font-size--klein, 0.875rem);
	font-weight: 600;
	color: var(--tt-leise);
}

.tr-teile__name {
	margin: 0;
	font-size: var(--wp--preset--font-size--mittel, 1.125rem);
	line-height: 1.25;
}

.tr-teile__text {
	margin: 0;
	font-size: var(--wp--preset--font-size--klein, 0.9375rem);
	color: var(--tt-leise);
}

.tr-teile__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	margin: auto 0 0;
	padding-top: 0.5rem;
	font-size: var(--wp--preset--font-size--klein, 0.875rem);
	font-weight: 600;
}

.tr-teile__links a {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	color: var(--tt-akzent);
	text-underline-offset: 0.2em;
}

.tr-teile__leer {
	margin: 0;
	padding: var(--wp--preset--spacing--30, 1rem);
	border-inline-start: 4px solid var(--tt-akzent);
	background: var(--tt-alt);
}

/* Schmal: Zeilenkarte mit kleinem Bild links */
@media (max-width: 34rem) {
	.tr-teile__karte {
		display: grid;
		grid-template-columns: 6.5rem minmax(0, 1fr);
	}

	.tr-teile__medien {
		align-self: start;
		margin: 1rem 0 0 1rem;
	}

	.tr-teile__platzhalter {
		padding: 0.25rem;
		font-size: 0.625rem;
	}

	.tr-teile__name {
		font-size: var(--wp--preset--font-size--basis, 1rem);
	}
}

/* Handy: Gruppenknöpfe als eine seitlich wischbare Zeile statt acht Zeilen */
@media (max-width: 34rem) {
	.tr-teile__gruppen {
		flex-wrap: nowrap;
		margin-inline: calc(-1 * var(--tr-rand, 1rem));
		padding: 0.125rem var(--tr-rand, 1rem) 0.5rem;
		overflow-x: auto;
		scrollbar-width: thin;
		overscroll-behavior-x: contain;
	}

	.tr-teile__knopf {
		white-space: nowrap;
	}
}
