.dhp-logoshowcase-buehne {
	--dhp-logoshowcase-sichtbar: var(--dhp-logoshowcase-sichtbar-desktop, 5);
	--dhp-logoshowcase-logo-groesse: 100%;
	width: 100%;
	max-width: var(--dhp-logoshowcase-max-breite, 100%);
	box-sizing: border-box;
}

.dhp-logoshowcase-buehne:focus {
	outline: 2px solid #2271b1;
	outline-offset: 4px;
}

.dhp-logoshowcase-buehne:focus:not(:focus-visible) {
	outline: none;
}

.dhp-logoshowcase-ausrichtung-links {
	margin-right: auto;
	margin-left: 0;
}

.dhp-logoshowcase-ausrichtung-zentriert {
	margin-right: auto;
	margin-left: auto;
}

.dhp-logoshowcase-ausrichtung-rechts {
	margin-right: 0;
	margin-left: auto;
}

.dhp-logoshowcase-format-quadrat .dhp-logoshowcase-kachel {
	aspect-ratio: 1 / 1;
}

.dhp-logoshowcase-format-breit .dhp-logoshowcase-kachel {
	aspect-ratio: 16 / 9;
}

.dhp-logoshowcase-format-hoch .dhp-logoshowcase-kachel {
	aspect-ratio: 4 / 5;
}

.dhp-logoshowcase-fenster {
	width: 100%;
	overflow: hidden;
	touch-action: pan-y;
	box-sizing: border-box;
}

.dhp-logoshowcase-spur {
	display: flex;
	align-items: stretch;
	gap: var(--dhp-logoshowcase-abstand, 18px);
	will-change: transform;
	transition: transform 420ms ease;
	box-sizing: border-box;
}


.dhp-logoshowcase-abstand-kompakt {
	--dhp-logoshowcase-abstand: 10px;
}

.dhp-logoshowcase-abstand-normal {
	--dhp-logoshowcase-abstand: 18px;
}

.dhp-logoshowcase-abstand-gross {
	--dhp-logoshowcase-abstand: 28px;
}

.dhp-logoshowcase-eintrag {
	flex: 0 0 calc((100% - (var(--dhp-logoshowcase-abstand, 18px) * (var(--dhp-logoshowcase-sichtbar) - 1))) / var(--dhp-logoshowcase-sichtbar));
	min-width: 0;
	box-sizing: border-box;
}

.dhp-logoshowcase-verweis {
	display: block;
	text-decoration: none;
	color: inherit;
}

.dhp-logoshowcase-kachel {
	width: 100%;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 14px;
	background: #ffffff;
	border: 1px solid #dddddd;
	box-sizing: border-box;
}


.dhp-logoshowcase-stil-flach .dhp-logoshowcase-kachel {
	background: transparent;
	border-color: transparent;
}

.dhp-logoshowcase-stil-schatten .dhp-logoshowcase-kachel {
	border-color: #eeeeee;
	border-radius: 10px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.dhp-logoshowcase-kachel img,
.dhp-logoshowcase-bild {
	display: block;
	max-width: min(var(--dhp-logoshowcase-logo-groesse, 100%), var(--dhp-logoshowcase-logo-groesse-eintrag, 100%));
	max-height: min(var(--dhp-logoshowcase-logo-groesse, 100%), var(--dhp-logoshowcase-logo-groesse-eintrag, 100%));
	width: auto;
	height: auto;
	object-fit: contain;
}

.dhp-logoshowcase-beschreibung {
	margin: 10px 0 0;
	font-size: 0.95em;
	line-height: 1.45;
	text-align: center;
}

@media (max-width: 900px) {
	.dhp-logoshowcase-buehne {
		--dhp-logoshowcase-sichtbar: var(--dhp-logoshowcase-sichtbar-tablet, 3);
	}
}

@media (max-width: 600px) {
	.dhp-logoshowcase-buehne {
		--dhp-logoshowcase-sichtbar: var(--dhp-logoshowcase-sichtbar-mobil, 1);
	}
}

.dhp-logoshowcase-bedienung {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 14px;
}

.dhp-logoshowcase-schaltflaeche {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 1px solid #dddddd;
	border-radius: 999px;
	background: #ffffff;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	box-sizing: border-box;
}

.dhp-logoshowcase-schaltflaeche:hover,
.dhp-logoshowcase-schaltflaeche:focus {
	border-color: #999999;
}

.dhp-logoshowcase-schaltflaeche:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.dhp-logoshowcase-schaltflaeche:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.dhp-logoshowcase-ohne-bedienung .dhp-logoshowcase-bedienung {
	display: none;
}


.dhp-logoshowcase-punktnavigation {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-top: 12px;
}

.dhp-logoshowcase-punkt {
	display: inline-flex;
	width: 11px;
	height: 11px;
	padding: 0;
	border: 1px solid #777777;
	border-radius: 999px;
	background: #ffffff;
	cursor: pointer;
	box-sizing: border-box;
}

.dhp-logoshowcase-punkt:hover,
.dhp-logoshowcase-punkt:focus {
	border-color: #111111;
}

.dhp-logoshowcase-punkt:focus {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}

.dhp-logoshowcase-punkt-aktiv {
	background: currentColor;
}

.dhp-logoshowcase-ohne-punkte .dhp-logoshowcase-punktnavigation {
	display: none;
}

.dhp-logoshowcase-bewegung-reduziert .dhp-logoshowcase-spur {
	transition: none;
}

@media (prefers-reduced-motion: reduce) {
	.dhp-logoshowcase-spur {
		transition: none;
	}
}


.dhp-logoshowcase-navigation-seitlich {
	position: relative;
	padding-right: 52px;
	padding-left: 52px;
}

.dhp-logoshowcase-navigation-seitlich .dhp-logoshowcase-bedienung {
	position: absolute;
	top: 50%;
	right: 0;
	left: 0;
	z-index: 2;
	display: flex;
	justify-content: space-between;
	margin-top: 0;
	pointer-events: none;
	transform: translateY(-50%);
}

.dhp-logoshowcase-navigation-seitlich .dhp-logoshowcase-schaltflaeche {
	pointer-events: auto;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.dhp-logoshowcase-navigation-seitlich .dhp-logoshowcase-punktnavigation {
	margin-top: 18px;
}

@media (max-width: 600px) {
	.dhp-logoshowcase-navigation-seitlich {
		padding-right: 42px;
		padding-left: 42px;
	}

	.dhp-logoshowcase-navigation-seitlich .dhp-logoshowcase-schaltflaeche {
		width: 34px;
		height: 34px;
		font-size: 23px;
	}
}


.dhp-logoshowcase-block-vorschau {
	box-sizing: border-box;
	max-width: 100%;
}

.dhp-logoshowcase-block-vorschau .dhp-logoshowcase-buehne {
	margin-top: 0;
	margin-bottom: 0;
}

.editor-styles-wrapper .dhp-logoshowcase-block-vorschau .dhp-logoshowcase-verweis {
	pointer-events: none;
}

.dhp-logoshowcase-status {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.dhp-logoshowcase-preset-minimal .dhp-logoshowcase-kachel {
	background: transparent;
	border-color: transparent;
	padding: 10px;
}

.dhp-logoshowcase-preset-karte .dhp-logoshowcase-kachel {
	border-radius: 12px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.dhp-logoshowcase-preset-rahmenlos .dhp-logoshowcase-kachel {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
}

.dhp-logoshowcase-preset-premium .dhp-logoshowcase-kachel {
	border-radius: 14px;
	border-color: #e2e2e2;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.10);
}

.dhp-logoshowcase-preset-premium .dhp-logoshowcase-beschreibung {
	font-weight: 600;
}

/* Accessibility-Fokuszustaende */
.dhp-logoshowcase-verweis:focus-visible,
.dhp-logoshowcase-schaltflaeche:focus-visible,
.dhp-logoshowcase-punkt:focus-visible {
	outline: 3px solid currentColor;
	outline-offset: 3px;
}

.dhp-logoshowcase-verweis:focus:not(:focus-visible),
.dhp-logoshowcase-schaltflaeche:focus:not(:focus-visible),
.dhp-logoshowcase-punkt:focus:not(:focus-visible) {
	outline: none;
}

.dhp-logoshowcase-punkt[aria-current="page"] {
	background: currentColor;
}


/* Eigenstaendige Ausgabemodi: responsives Raster und kontinuierliches Logo-Band. */
.dhp-logoshowcase-ausgabe-raster .dhp-logoshowcase-fenster {
	overflow: visible;
}

.dhp-logoshowcase-ausgabe-raster .dhp-logoshowcase-spur {
	display: grid;
	grid-template-columns: repeat(var(--dhp-logoshowcase-sichtbar), minmax(0, 1fr));
	gap: var(--dhp-logoshowcase-abstand, 18px);
	transform: none !important;
	transition: none;
	will-change: auto;
}

.dhp-logoshowcase-ausgabe-raster .dhp-logoshowcase-eintrag {
	min-width: 0;
}

.dhp-logoshowcase-ausgabe-band .dhp-logoshowcase-fenster {
	overflow: hidden;
}

.dhp-logoshowcase-ausgabe-band .dhp-logoshowcase-spur {
	display: flex;
	width: max-content;
	gap: 0;
	transform: none;
	transition: none;
	animation: dhp-logoshowcase-band-bewegung var(--dhp-logoshowcase-band-dauer, 30s) linear infinite;
}

.dhp-logoshowcase-ausgabe-band .dhp-logoshowcase-band-gruppe {
	display: flex;
	align-items: stretch;
	gap: var(--dhp-logoshowcase-abstand, 18px);
	padding-right: var(--dhp-logoshowcase-abstand, 18px);
}

.dhp-logoshowcase-ausgabe-band .dhp-logoshowcase-eintrag {
	flex: 0 0 clamp(150px, calc((100vw - 48px) / var(--dhp-logoshowcase-sichtbar)), 280px);
	width: clamp(150px, calc((100vw - 48px) / var(--dhp-logoshowcase-sichtbar)), 280px);
}

.dhp-logoshowcase-ausgabe-band[data-dhp-autoplay="true"].dhp-logoshowcase-zeiger-pausiert .dhp-logoshowcase-spur,
.dhp-logoshowcase-ausgabe-band[data-dhp-autoplay="true"]:focus-within .dhp-logoshowcase-spur {
	animation-play-state: paused;
}

.dhp-logoshowcase-ausgabe-band[data-dhp-autoplay="false"] .dhp-logoshowcase-spur {
	animation-play-state: paused;
}

.dhp-logoshowcase-ausgabe-band[data-dhp-laufrichtung="rechts"] .dhp-logoshowcase-spur {
	animation-direction: reverse;
}

@keyframes dhp-logoshowcase-band-bewegung {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (max-width: 900px) {
	.dhp-logoshowcase-ausgabe-raster .dhp-logoshowcase-spur {
		grid-template-columns: repeat(var(--dhp-logoshowcase-sichtbar), minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.dhp-logoshowcase-ausgabe-band[data-dhp-reduced-motion="true"] .dhp-logoshowcase-spur {
		width: 100%;
		animation: none;
		flex-wrap: wrap;
	}

	.dhp-logoshowcase-ausgabe-band[data-dhp-reduced-motion="true"] .dhp-logoshowcase-band-gruppe {
		flex-wrap: wrap;
		width: 100%;
	}

	.dhp-logoshowcase-ausgabe-band[data-dhp-reduced-motion="true"] .dhp-logoshowcase-band-gruppe[aria-hidden="true"] {
		display: none;
	}
}


.dhp-logoshowcase-pausenschalter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	margin: 0.75rem auto 0;
	padding: 0.5rem 0.8rem;
	border: 1px solid currentColor;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	font: inherit;
	cursor: pointer;
}
.dhp-logoshowcase-pausenschalter:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.dhp-logoshowcase-pausensymbol { min-width: 1em; text-align: center; }
.dhp-logoshowcase-ausgabe-band.dhp-logoshowcase-manuell-pausiert .dhp-logoshowcase-spur,
.dhp-logoshowcase-ausgabe-band.dhp-logoshowcase-automatisch-pausiert .dhp-logoshowcase-spur,
.dhp-logoshowcase-ausgabe-band.dhp-logoshowcase-ausserhalb-sichtbereich .dhp-logoshowcase-spur { animation-play-state: paused; }

.dhp-logoshowcase-bildwechsel {
	display: contents;
}

/* Design-Preset: geschlossene weiße Karten für farbige Seitenbereiche. */
.dhp-logoshowcase-preset-weisse-karten .dhp-logoshowcase-eintrag {
	padding: 18px;
	background: #ffffff;
	border: 1px solid rgba(0, 0, 0, 0.08);
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.08);
}

.dhp-logoshowcase-preset-weisse-karten .dhp-logoshowcase-kachel {
	background: transparent;
	border-color: transparent;
	box-shadow: none;
	padding: 8px;
}

.dhp-logoshowcase-preset-weisse-karten .dhp-logoshowcase-beschreibung {
	margin-top: 14px;
}
