/**
 * DALEEN Artwork Filter – Basis-Styles.
 * Alle Farben/Abstände über CSS-Variablen, damit das Theme sie leicht
 * überschreiben kann (z. B. in einem Child-Theme oder Elementor Custom CSS).
 */
.daf-wrapper {
	--daf-accent: #003366;
	--daf-accent-light: #13315c;
	--daf-border: #d8dde3;
	--daf-radius: 6px;
	--daf-gap: 1.25rem;
	--daf-columns: 3;
	/* Abstand beim automatischen Zurückscrollen nach oben, z. B. für einen
	   sticky Header. Im Theme/Elementor überschreibbar. */
	--daf-scroll-offset: 0px;
	scroll-margin-top: var(--daf-scroll-offset);
}

.daf-wrapper.is-loading {
	opacity: 0.6;
}

.daf-filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 1rem;
	margin-bottom: var(--daf-gap);
}

.daf-field {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	min-width: 180px;
}

.daf-field label {
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--daf-accent);
}

.daf-field select,
.daf-field input[type="text"] {
	padding: 0.55rem 0.75rem;
	border: 1px solid var(--daf-border);
	border-radius: var(--daf-radius);
	font-size: 0.95rem;
	background: #fff;
}

/* Suchfeld + Reset-Button stecken zusammen in einer eigenen Flex-Gruppe, die
   selbst nicht intern umbricht (flex-wrap: nowrap). Dadurch bleibt der
   Reset-Button immer direkt neben dem Suchfeld, statt bei knappem Platz als
   einzelnes Element in eine neue Zeile umzubrechen. */
.daf-field-group {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-end;
	gap: 0.6rem;
	flex: 1 1 260px;
	min-width: 0;
}

.daf-field-group .daf-field--search {
	flex: 1 1 auto;
	min-width: 140px;
}

.daf-reset {
	flex: 0 0 auto;
	background: none;
	border: 1px solid var(--daf-border);
	border-radius: var(--daf-radius);
	padding: 0.55rem 1rem;
	cursor: pointer;
	font-size: 0.85rem;
	color: var(--daf-accent);
	align-self: flex-end;
	white-space: nowrap;
}

.daf-reset:hover {
	background: var(--daf-border);
}

/* Feste Markenfarbe (Marineblau) für die Buttons dieses Plugins, unabhängig
   von globalen Theme-/Kit-Button-Styles, die sonst z. B. eine abweichende
   Akzentfarbe erzwingen. .daf-filter-toggle bewusst OHNE .daf-wrapper
   Vorfahren-Selektor: der Button wird im Handy-Modus per JS in den
   Seiten-Header verschoben (siehe initHeaderFilterToggle) und liegt dann
   außerhalb von .daf-wrapper. */
.daf-wrapper .daf-reset,
.daf-filter-toggle {
	color: #003366 !important;
	border-color: #003366 !important;
}

.daf-wrapper .daf-reset:hover {
	background: #003366 !important;
	color: #fff !important;
}

/* ---------------------------------------------------------------------
 * Responsive Filterleiste: auf schmalen Viewports hinter einem
 * Toggle-Button ("Akkordeon") einklappbar, statt immer voll ausgeklappt
 * und sperrig zu wirken.
 * ------------------------------------------------------------------- */

.daf-filter-toggle {
	/* !important: ein globaler Theme-/Reset-Style setzt "display: block" auf
	   Formularelemente (button/select) mit höherer Priorität als unsere
	   einfache Klassen-Regel (live bestätigt: ".daf-reset" und ein reines
	   "<select>" auf dieser Seite berechnen ebenfalls "display: block" trotz
	   fehlender eigener Regel dafür). Für ".daf-reset"/"<select>" ist das
	   unschädlich, da sie als Flex-Items in einem Flex-Container liegen –
	   ".daf-filter-toggle" ist jedoch selbst der Flex-Container für sein
	   Icon+Label und braucht sein eigenes "display", sonst expandiert der
	   Button als Block-Box auf 100% Breite, auch außerhalb 780px. */
	display: none !important;
	width: 100%;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.7rem 1rem;
	margin-bottom: 0.75rem;
	background: #fff;
	border: 1px solid var(--daf-border);
	border-radius: var(--daf-radius);
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--daf-accent);
	cursor: pointer;
}

.daf-filter-toggle__icon {
	width: 0.55rem;
	height: 0.55rem;
	flex: 0 0 auto;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}

.daf-wrapper.is-filters-open .daf-filter-toggle__icon {
	transform: rotate(-135deg);
}

.daf-filter-toggle__glyph {
	display: none;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

/* Kompakte Icon-Variante: wird per JS neben den Hamburger-Menü-Button in den
   Seiten-Header verschoben (initHeaderFilterToggle in daleen-artwork-filter.js),
   sobald dort ein ".elementor-menu-toggle" gefunden wird. Optik an
   ".elementor-menu-toggle" angelehnt (gleiche Größe/Padding/Radius), damit
   beide Buttons nebeneinander wie ein Paar wirken. Sichtbarkeit (nur im
   Handy-Modus) bleibt weiterhin über die 780px-Media-Query unten geregelt,
   da .daf-filter-toggle--in-header selbst kein display setzt. */
.daf-filter-toggle.daf-filter-toggle--in-header {
	width: auto;
	margin: 0;
	padding: 0.25em;
	background: rgba(0, 0, 0, 0.05);
	border: none;
	border-radius: 3px;
	gap: 0;
	font-size: 22px;
}

.daf-filter-toggle.daf-filter-toggle--in-header .daf-filter-toggle__glyph {
	display: flex;
}

.daf-filter-toggle.daf-filter-toggle--in-header .daf-filter-toggle__label,
.daf-filter-toggle.daf-filter-toggle--in-header .daf-filter-toggle__icon {
	display: none;
}

@media (max-width: 780px) {
	.daf-filter-toggle {
		display: flex !important;
	}

	/* CSS-only Collapse per grid-template-rows (0fr -> 1fr), keine JS-
	   Höhenberechnung nötig. Erfordert min-height:0 auf dem Kindelement,
	   damit es unter seine Inhaltshöhe schrumpfen kann. */
	.daf-filter-bar-collapse {
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows 0.25s ease;
	}

	.daf-filter-bar-collapse > .daf-filter-bar {
		overflow: hidden;
		min-height: 0;
	}

	.daf-wrapper.is-filters-open .daf-filter-bar-collapse {
		grid-template-rows: 1fr;
	}

	.daf-filter-bar {
		flex-direction: column;
		align-items: stretch;
	}

	.daf-field,
	.daf-field-group {
		min-width: 0;
		width: 100%;
		/* In flex-direction:column wirkt flex-basis auf die HÖHE. Die
		   Desktop-Basis von 260px hätte hier eine riesige leere Fläche
		   unterhalb des Suchfelds erzeugt – daher auf Inhaltshöhe
		   zurücksetzen. */
		flex: 1 1 auto;
	}
}

.daf-results {
	position: relative;
	min-height: 4rem;
}

.daf-results.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.daf-no-results {
	padding: 2rem 0;
	text-align: center;
	color: #6b7280;
}

.daf-grid {
	display: grid;
	grid-template-columns: repeat(var(--daf-columns), minmax(0, 1fr));
	gap: var(--daf-gap);
}

@media (max-width: 900px) {
	.daf-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 560px) {
	.daf-grid {
		grid-template-columns: 1fr;
	}
}

.daf-card {
	border: 1px solid var(--daf-border);
	border-radius: var(--daf-radius);
	overflow: hidden;
	background: #fff;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.daf-card:hover {
	box-shadow: 0 8px 20px rgba(11, 37, 69, 0.12);
	transform: translateY(-2px);
}

.daf-card__link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.daf-card__image {
	/* Bewusst KEIN festes aspect-ratio + object-fit:cover mehr: die Artworks
	   sind mal Hochformat (Zertifikate), mal Quadrat/Querformat (Gemälde) –
	   ein fester Bildausschnitt hat sie beschnitten. Stattdessen volle
	   Spaltenbreite, Höhe ergibt sich proportional aus dem Originalbild. */
	position: relative;
	background: #f1f3f5;
}

.daf-card__image img {
	width: 100%;
	height: auto;
	display: block;
}

.daf-card__badge {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #fff;
	background: #6b7280;
}

.daf-card__badge.is-survivor {
	background: #1f7a4d;
}

.daf-card__badge.is-victim {
	background: var(--daf-accent);
}

.daf-card__body {
	padding: 0.9rem 1rem 1.1rem;
}

.daf-card__title {
	margin: 0 0 0.3rem;
	font-size: 1.05rem;
	line-height: 1.3;
}

.daf-card__country,
.daf-card__class {
	margin: 0;
	font-size: 0.85rem;
	color: #6b7280;
}

.daf-pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	justify-content: center;
	margin-top: var(--daf-gap);
}

.daf-page-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: 0 0.5rem;
	border: 1px solid var(--daf-border);
	border-radius: var(--daf-radius);
	color: var(--daf-accent);
	text-decoration: none;
	font-size: 0.9rem;
}

.daf-page-link.is-active {
	background: var(--daf-accent);
	border-color: var(--daf-accent);
	color: #fff;
}

.daf-page-link:hover:not(.is-active) {
	background: var(--daf-border);
}
