/**
 * Lokale Darstellung der KI-Bildkennzeichnung.
 *
 * Die Grundfarben sind ohne Unschärfe bewusst deckend genug für sicheren
 * Kontrast. backdrop-filter ist nur eine progressive optische Verfeinerung.
 */
.mgd-ail-image-wrapper {
	position: relative;
	display: inline-block;
	max-width: 100%;
	vertical-align: top;
}

.mgd-ail-image-wrapper > img,
.mgd-ail-image-wrapper > picture,
.mgd-ail-image-wrapper > a {
	display: block;
	max-width: 100%;
}

/* Diese Klasse gehört direkt auf den Divi-Container mit Hintergrundbild.
 * Sie schafft bewusst den Bezugskontext für das Label-Overlay; ein Child kann
 * die Position seines Eltern-Containers technisch nicht selbst absichern. */
.mgd-ail-background-container {
	position: relative;
}

/* Ein Hintergrundbild bleibt vollständig Aufgabe des umgebenden Divi-Moduls.
 * Die leere Hülle überzieht dessen bereits positionierte Fläche vollständig und
 * stellt dadurch auch ohne eigenen Textinhalt einen verlässlichen Bezugspunkt
 * für das absolut platzierte Badge bereit. Sie darf dabei keine Links, Buttons
 * oder Formulare des umgebenden Divi-Containers verdecken oder Klicks abfangen. */
.mgd-ail-background-label {
	position: absolute;
	inset: 0;
	display: block;
	pointer-events: none;
}

/* Die individuellen Offsets gelten nur innerhalb des Shortcodes. Normale
 * WordPress- und Divi-Bildwrapper behalten dadurch ihre bisherige Position. */
.mgd-ail-background-label .mgd-ail-badge {
	transform: translate(
		var(--mgd-ail-offset-x, 0),
		var(--mgd-ail-offset-y, 0)
	);
}

.mgd-ail-badge {
	/* Ein globaler Offset darf ein schmales Bild nie vollständig "verlassen".
	 * 25 % halten links und rechts immer ausreichend Platz für ein lesbares
	 * Badge frei: Bei 100 px Breite werden aus einem konfigurierten 96-px-
	 * Offset daher höchstens 25 px. Die Variable bleibt lokal am Badge und
	 * verändert keine Abstände anderer Divi- oder WordPress-Elemente. */
	--mgd-ail-safe-offset: min(var(--mgd-ail-offset, 12px), 25%);
	position: absolute;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	/* Beide Seiten reservieren den lokal begrenzten Abstand, damit große
	 * Offsets das Badge nicht über den Bildrand hinausschieben. */
	max-width: calc(100% - var(--mgd-ail-safe-offset) - var(--mgd-ail-safe-offset));
	box-sizing: border-box;
	padding: var(--mgd-ail-padding-y, 5px) var(--mgd-ail-padding-x, 9px);
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: var(--mgd-ail-radius, 999px);
	box-shadow: 0 5px 18px rgba(0, 0, 0, 0.32);
	font-family: Arial, "Open Sans", sans-serif;
	font-size: var(--mgd-ail-font-size, 6px);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-align: left;
	text-transform: uppercase;
	pointer-events: none;
}

.mgd-ail-position-top-left { top: var(--mgd-ail-safe-offset); left: var(--mgd-ail-safe-offset); }
.mgd-ail-position-top-right { top: var(--mgd-ail-safe-offset); right: var(--mgd-ail-safe-offset); }
.mgd-ail-position-bottom-left { bottom: var(--mgd-ail-safe-offset); left: var(--mgd-ail-safe-offset); }
.mgd-ail-position-bottom-right { right: var(--mgd-ail-safe-offset); bottom: var(--mgd-ail-safe-offset); }

/* Sicherer Fallback: Auch Browser ohne Glas-Unschärfe zeigen klaren Text. */
.mgd-ail-theme-auto,
.mgd-ail-theme-dark {
	background: rgba(20, 23, 29, 0.92);
	border-color: rgba(255, 255, 255, 0.72);
	color: #ffffff;
}

.mgd-ail-theme-light {
	background: rgba(255, 255, 255, 0.94);
	border-color: rgba(25, 28, 33, 0.28);
	color: #15171b;
	box-shadow: 0 5px 18px rgba(0, 0, 0, 0.2);
}

/* Der ausführliche Deepfake-Hinweis bleibt für Screenreader erreichbar,
 * benötigt aber keine globale WordPress- oder Theme-Klasse. */
.mgd-ail-badge .screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
	.mgd-ail-theme-auto,
	.mgd-ail-theme-dark {
		background: rgba(20, 23, 29, 0.76);
		-webkit-backdrop-filter: blur(var(--mgd-ail-blur, 10px)) saturate(130%);
		backdrop-filter: blur(var(--mgd-ail-blur, 10px)) saturate(130%);
	}

	.mgd-ail-theme-light {
		background: rgba(255, 255, 255, 0.78);
		-webkit-backdrop-filter: blur(var(--mgd-ail-blur, 10px)) saturate(125%);
		backdrop-filter: blur(var(--mgd-ail-blur, 10px)) saturate(125%);
	}
}

@media (max-width: 480px) {
	.mgd-ail-badge {
		min-height: 26px;
	}
}

/* Das Badge ist statisch; diese Regel verhindert spätere Animationen bei
 * Menschen, die in ihrem Betriebssystem reduzierte Bewegung ausgewählt haben. */
@media (prefers-reduced-motion: reduce) {
	.mgd-ail-badge {
		transition: none;
		animation: none;
	}
}
