@charset "UTF-8";
/* css/hero.css – Startseiten-Teaser (Karussell) */

.hs-hero {
	--hs-dot: clamp(12px, 1.1vw, 16px);   /* Kantenlänge der Quadrate */
	width: 100%;
	max-width: 2400px;
	margin: 0 auto;
}

.hs-hero-stage {
	position: relative;
	width: 100%;
	aspect-ratio: 2 / 1;
	overflow: hidden;
	background-color: #222222;
}
@media (max-width: 800px) {
	.hs-hero-stage { aspect-ratio: 5 / 4; }
}

/* ---- Slides (Fading) ---- */
.hs-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	z-index: 0;
	transition: opacity 1s ease;
}
.hs-slide.is-active { opacity: 1; z-index: 1; }

.hs-slide-link { display: block; width: 100%; height: 100%; }
.hs-slide picture { display: block; width: 100%; height: 100%; }
.hs-slide img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* ---- Transparente schwarze Fläche an der Unterkante ---- */
.hs-hero-bar {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 2;
	background-color: rgba(0, 0, 0, 0.45);
	color: #ffffff;
}
.hs-hero-bar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	width: 100%;
	margin: 0;
	padding: var(--hs-pad);
}

/* Captions übereinander im selben Grid-Feld, per Fading getauscht */
.hs-caps {
	display: grid;
	align-items: center;
	height: var(--hs-dot);
	min-width: 0;
	flex: 1 1 auto;
}
.hs-cap {
	grid-area: 1 / 1;
	align-self: center;
	min-width: 0;
	margin: 0;
	font-size: clamp(1.4rem, 1.75vw, 2.1rem);
	line-height: 1.2;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.9s ease, visibility 0s linear 0.9s;
}
.hs-cap.is-active {
	opacity: 1;
	visibility: visible;
	transition: opacity 0.9s ease, visibility 0s;
}
.hs-cap a,
.hs-cap a:hover,
.hs-cap a:focus-visible { color: #ffffff; }
.hs-cap a { text-decoration-color: rgba(255, 255, 255, 0); }
.hs-cap a:hover,
.hs-cap a:focus-visible { text-decoration-color: rgba(255, 255, 255, 1); }

/* ---- Steuerung: Pause + vier Quadrate ---- */
.hs-controls {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
	gap: 12px;
}
.hs-dots {
	display: flex;
	flex: 0 0 auto;
	gap: 6px;
}
.hs-dot {
	position: relative;
	width: calc(var(--hs-dot) * 0.7);    /* 30 % kleiner */
	height: calc(var(--hs-dot) * 0.7);
	padding: 0;
	border: 0;
	border-radius: 0;
	background-color: #ffffff;
	opacity: 0.3;
	cursor: pointer;
	transition: opacity 0.4s ease;
}
.hs-dot::before { content: ""; position: absolute; inset: -6px; } /* größere Klickfläche */
.hs-dot.is-active,
.hs-dot:hover,
.hs-dot:focus-visible { opacity: 1; }

/* Pause/Play (WCAG 2.2.2) */
.hs-pause {
	position: relative;
	width: var(--hs-dot);
	height: var(--hs-dot);
	padding: 0;
	border: 0;
	background: linear-gradient(90deg, #fff 0 36%, transparent 36% 64%, #fff 64% 100%);
	opacity: 0.6;
	cursor: pointer;
	transition: opacity 0.4s ease;
}
.hs-pause::before { content: ""; position: absolute; inset: -8px; }
.hs-pause.is-paused {
	background: #fff;
	clip-path: polygon(15% 0, 100% 50%, 15% 100%);
}
.hs-pause:hover,
.hs-pause:focus-visible { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
	.hs-slide, .hs-cap { transition-duration: 0.01s; }
}

/* ---- Parallax (DZS Parallaxer) ---- */
.hs-hero .hs-hero-stage.dzsparallaxer {
	height: auto !important;          /* Höhe kommt aus aspect-ratio, nicht aus dem Skript */
	background-color: #222222;
	overflow: hidden;
}
.hs-hero .hs-hero-stage .hs-parallax-target {
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 120%;                     /* 20 % Reserve = Parallax-Weg */
	will-change: transform;
}
.hs-hero .hs-hero-stage .hs-slide {
	position: absolute;
	inset: 0;
}
.hs-hero .hs-hero-stage .hs-hero-bar {
	position: absolute;
	left: 0; right: 0; bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
	.hs-hero .hs-hero-stage .hs-parallax-target {
		height: 100%;
		transform: none !important;
	}
}
