/**
 * Elementor Bild mit Overlay
 *
 * AUTO-MODUS:
 * Das Hauptbild bleibt im normalen Dokumentfluss. Dadurch bestimmt sein
 * natürliches Seitenverhältnis automatisch die Höhe des Widgets.
 *
 * CUSTOM-MODUS:
 * Der Container erhält die in Elementor gewählte Höhe; das Bild füllt ihn
 * mit object-fit: cover vollständig aus.
 */

.eoi-root {
	--eoi-zoom-scale: 1.08;
	--eoi-zoom-duration: 0.6s;
	--eoi-overlay-hover-opacity: 1;

	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	overflow: hidden;
	line-height: 0;
	text-decoration: none;
	isolation: isolate;
}

.eoi-media {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
}

/* Automatische Höhe: Das Bild selbst definiert die Containerhöhe. */
.eoi-media--auto .eoi-main-image {
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}

/* Optionale feste Höhe: Das Bild füllt den Kasten immer vollständig. */
.eoi-media--custom {
	width: 100%;
	min-height: 1px;
}

.eoi-media--custom .eoi-main-image {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

.eoi-main-image {
	transform: scale(1);
	transform-origin: center center;
	transition: transform var(--eoi-zoom-duration) ease;
	will-change: transform;
}

.eoi-root:hover .eoi-main-image,
.eoi-root:focus-visible .eoi-main-image {
	transform: scale(var(--eoi-zoom-scale));
}

.eoi-color-overlay,
.eoi-overlay-image-wrap {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.eoi-color-overlay {
	z-index: 2;
	opacity: 1;
	transition: opacity var(--eoi-zoom-duration) ease;
}

.eoi-root:hover .eoi-color-overlay,
.eoi-root:focus-visible .eoi-color-overlay {
	opacity: var(--eoi-overlay-hover-opacity);
}

.eoi-overlay-image-wrap {
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.eoi-overlay-image {
	display: block;
	width: 90px;
	max-width: 100%;
	height: auto;
	flex: 0 0 auto;
	transform: none;
}

/* Tastaturbedienung sichtbar halten, ohne das Layout zu verändern. */
.eoi-root:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

/* Nutzerpräferenz für reduzierte Bewegung respektieren. */
@media (prefers-reduced-motion: reduce) {
	.eoi-main-image,
	.eoi-color-overlay {
		transition: none;
	}

	.eoi-root:hover .eoi-main-image,
	.eoi-root:focus-visible .eoi-main-image {
		transform: none;
	}
}
