/**
 * KI-Kennzeichnung für Divi-5-Bilder und Root-Hintergrundbilder.
 *
 * Dieses Stylesheet ist der Auslieferungszustand. Jede Einstellung aus dem
 * Design-Tab und jedes gewählte Badge-Design wird von Divis Style-Pipeline als
 * spezifischere Regel darübergelegt; hier stehen deshalb ausschließlich
 * Standardwerte. Die Datei kommt vollständig
 * ohne `!important` aus — auch die Barrierefreiheits-Modi am Dateiende, die sich
 * bewusst gegen abweichende Einstellungen durchsetzen, arbeiten allein über
 * Selektor-Spezifität.
 *
 * Das Badge wird als Kind von `.et_pb_image_wrap` gerendert. Der Wrap ist bereits
 * `position: relative` und schrumpft auf die Bildbreite — er ist damit exakt der
 * benötigte Positionierungskontext. Ein eigener Wrapper wäre schädlich: Divi setzt
 * für „Force Fullwidth“ und „Grow to Fill“ `width: 100%` auf den Wrap, was dann
 * gegen den Wrapper statt gegen den Modulcontainer auflösen würde.
 */

.dai-badge {
	--dai-offset: 6px;
	--dai-blur: 0px;

	position: absolute;
	inset: var(--dai-inset, auto var(--dai-offset) var(--dai-offset) auto);
	/* Divis Section-Divider liegt bewusst auf Ebene 10. Das Badge ist Teil des
	   gekennzeichneten Bildes und muss deshalb genau eine Ebene darueber liegen;
	   ein unnoetig hoher globaler Wert wuerde Builder-Bedienelemente stoeren. */
	z-index: 11;

	display: inline-flex;
	gap: 0.35em;
	align-items: center;

	box-sizing: border-box;
	max-width: calc(100% - 2 * var(--dai-offset));
	padding: 2px 4px;
	border: 1px solid #15303d;
	border-radius: 4px;

	/* Der Default ist bewusst vollständig opak und frei von Glaseffekten. Das
	   Kontrastverhältnis von #15303d auf Weiß beträgt 13,8:1 und erfüllt damit
	   WCAG 2.2 AA und AAA. Transparenz und Blur gehören ausschließlich in das
	   optionale Preset „Liquid Glass“. */
	background: #fff;
	color: #15303d;
	box-shadow: none;

	-webkit-backdrop-filter: blur(var(--dai-blur)) saturate(120%);
	backdrop-filter: blur(var(--dai-blur)) saturate(120%);

	font-family: inherit;
	font-size: 11px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0;

	/* Statt `nowrap`: Bei 200 % Zoom oder langen Übersetzungen bleibt der
	   Pflichthinweis vollständig lesbar, statt aus dem Bild zu laufen. */
	overflow-wrap: anywhere;

	/* Neutralisiert das vom Modul geerbte text-align der Bildausrichtung. */
	text-align: initial;

	/* Klicks erreichen weiterhin das verlinkte Bild ... */
	pointer-events: none;

	/* ... `user-select` ist bewusst NICHT gesetzt: Der gesetzlich vorgeschriebene
	   Hinweis muss markier- und kopierbar bleiben. */
}

/**
 * Visual Builder: Dort liegt das Badge als Geschwister des Bildes, nicht im Wrap
 * — der Builder-Filter erhält ein noch nicht expandiertes React-Element, in das
 * sich nichts einhängen lässt. Der Modulcontainer wird deshalb nur in genau
 * diesem Fall zum Positionierungskontext. Das Builder-Bundle misst anschliessend
 * den Abstand zwischen Modul und echtem Bild-Wrap. So bleiben Modul-Padding und
 * schmalere, ausgerichtete Bilder ausserhalb der Positionierungsrechnung. Im
 * Frontend greifen beide Regeln nicht, weil das Badge dort kein direktes Kind
 * des Moduls ist.
 */
:where(.et_pb_image:has(> .dai-badge--image)) {
	position: relative;
}

:where(.et_pb_image) > .dai-badge--image {
	translate: var(--dai-builder-shift-x, 0px) var(--dai-builder-shift-y, 0px);
}

/**
 * Hintergrund-Owner erhalten die Klasse nur, wenn Schalter und Bildquelle aktiv
 * sind. `:where()` haelt die Spezifitaet bei null: Divis Positionsoptionen,
 * Inline-Styles und bewusstes Drittanbieter-CSS gewinnen weiterhin. Nur ein
 * ansonsten statischer Owner bekommt so den noetigen Positionierungskontext.
 * Parallax-, Pattern- und Mask-Layer bleiben als Geschwister darunter erhalten.
 */
:where(.dai-has-background-declaration) {
	position: relative;
}

/* Macht den Text trotz `pointer-events: none` am Container markierbar. */
.dai-badge__text {
	pointer-events: auto;
}

/* Rein dekoratives Zeichen, trägt im Markup aria-hidden="true". */
.dai-badge__glyph {
	flex: none;
}

/* --------------------------------------------------------------------------
 * Barrierefreiheits-Modi
 *
 * Diese Blöcke müssen sich auch gegen die im Design-Tab erzeugten Regeln
 * durchsetzen. Divi erzeugt sie auf `{orderClass} .dai-badge`, also mit
 * Spezifität 0-2-0; Media Queries erhöhen die Spezifität nicht. Der dreifach
 * wiederholte Klassenselektor hebt diese Blöcke auf 0-3-0 und gewinnt damit
 * ohne `!important`.
 *
 * `background-image: none` und `filter: none` sind zwingend: Im Forced-Colors-
 * Modus erzwingt der Browser zwar `background-color`, aber nicht
 * `background-image` — ein selbst gesetzter Farbverlauf überlebte sonst.
 *
 * Der Auslieferungszustand oben erfüllt WCAG 2.2 AA bereits ohne jede Media Query.
 * Diese Blöcke verbessern nur weiter — sie reparieren nichts.
 * -------------------------------------------------------------------------- */

@media (prefers-reduced-transparency: reduce) {
	.dai-badge.dai-badge.dai-badge {
		--dai-blur: 0px;

		background-image: none;
		background-color: #fff;
		color: #15303d;
		filter: none;
		opacity: 1;

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (prefers-contrast: more) {
	.dai-badge.dai-badge.dai-badge {
		--dai-blur: 0px;

		border: 1px solid #000;
		background-image: none;
		background-color: #fff;
		color: #000;
		box-shadow: none;
		text-shadow: none;
		filter: none;
		opacity: 1;

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

@media (forced-colors: active) {
	.dai-badge.dai-badge.dai-badge {
		border: 1px solid CanvasText;
		background-image: none;
		background-color: Canvas;
		color: CanvasText;
		box-shadow: none;
		text-shadow: none;
		filter: none;
		opacity: 1;

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}
}

/* `prefers-contrast: less` erhält bewusst keine Regel:
   Eine gesetzlich vorgeschriebene Kennzeichnung darf nicht abgeschwächt werden. */
