/* EW Bewertungen – Frontend */

:where(.ewbw, .ewbw-trustbox, .ewbw-admin-hint) {
	--ewbw-star: #f5b301;
	--ewbw-star-hi: #fad981;
	--ewbw-star-deep: #e1a501;
	--ewbw-star-off: #dde1e6;
	--ewbw-text: #1f2937;
	--ewbw-card: #ffffff;
	--ewbw-tint: #fef8e8;
	--ewbw-3d: #d8dadd;
	--ewbw-accent: #1f2937;
	--ewbw-radius: 14px;
	--ewbw-gap: 16px;
	--ewbw-lines: 6;
	--ewbw-muted: #6b7280;
	--ewbw-muted: color-mix(in srgb, var(--ewbw-text) 64%, transparent);
	--ewbw-border: rgba(17, 24, 39, .12);
	--ewbw-border: color-mix(in srgb, var(--ewbw-text) 13%, transparent);
	--ewbw-border-strong: rgba(17, 24, 39, .24);
	--ewbw-border-strong: color-mix(in srgb, var(--ewbw-text) 24%, transparent);
	--ewbw-shadow: 0 1px 2px rgba(17, 24, 39, .04), 0 8px 24px rgba(17, 24, 39, .06);
	--ewbw-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.68L14.7 9.16L20.75 10.04L16.37 14.3L17.41 20.32L12 17.48L6.59 20.32L7.63 14.3L3.25 10.04L9.3 9.16z' stroke='black' stroke-width='2.6' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.ewbw {
	color: var(--ewbw-text);
	line-height: 1.5;
	margin: 1.5em 0;
}

.ewbw,
.ewbw *,
.ewbw *::before,
.ewbw *::after {
	box-sizing: border-box;
}

.ewbw p {
	margin: 0;
	font-size: inherit;
}

.ewbw-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Schrift ---------- */

.ewbw-font-system {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
}

.ewbw-font-custom {
	font-family: var(--ewbw-font, inherit);
}

.ewbw-font-system .ewbw-title,
.ewbw-font-custom .ewbw-title,
.ewbw-font-system .ewbw-label,
.ewbw-font-custom .ewbw-label,
.ewbw-font-system button,
.ewbw-font-custom button,
.ewbw-font-system summary,
.ewbw-font-custom summary {
	font-family: inherit;
}

/* ---------- Sterne (eine Maske, Teilfüllung über --ewbw-fill) ---------- */

.ewbw-st-sharp {
	--ewbw-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.1l2.59 6.94 7.4.32-5.8 4.6 1.98 7.14L12 17l-6.17 4.1 1.98-7.14-5.8-4.6 7.4-.32z'/%3E%3C/svg%3E");
}

.ewbw-stars {
	--ewbw-size: 1em;
	display: inline-block;
	flex: none;
	width: calc(var(--ewbw-size) * 5);
	height: var(--ewbw-size);
	vertical-align: middle;
	background:
		linear-gradient(90deg, transparent var(--ewbw-fill, 100%), var(--ewbw-star-off) 0),
		linear-gradient(180deg, var(--ewbw-star-hi) 0%, var(--ewbw-star) 55%, var(--ewbw-star-deep) 100%);
	-webkit-mask-image: var(--ewbw-mask);
	mask-image: var(--ewbw-mask);
	-webkit-mask-size: var(--ewbw-size) var(--ewbw-size);
	mask-size: var(--ewbw-size) var(--ewbw-size);
	-webkit-mask-repeat: repeat-x;
	mask-repeat: repeat-x;
	-webkit-mask-position: 0 0;
	mask-position: 0 0;
}

.ewbw-st-sharp .ewbw-stars {
	background: linear-gradient(90deg, var(--ewbw-star) var(--ewbw-fill, 100%), var(--ewbw-star-off) 0);
}

.ewbw-stars--sm { --ewbw-size: 1.05em; }
.ewbw-stars--md { --ewbw-size: 1.3em; }
.ewbw-stars--lg { --ewbw-size: 1.9em; }
.ewbw-stars--xl { --ewbw-size: 2.4em; }

/* ---------- Zusammenfassung (Badge) – gemeinsam ---------- */

.ewbw-badge {
	margin: 1.25em 0;
}

.ewbw-badge-stars {
	line-height: 0;
	margin: 0 0 .6em;
}

.ewbw .ewbw-badge-text {
	font-size: .95em;
	line-height: 1.55;
	text-wrap: balance;
}

.ewbw-num {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.ewbw .ewbw-label {
	margin: 0;
	font-weight: 800;
	line-height: 1.15;
}

.ewbw-big {
	font-size: 3.1em;
	font-weight: 750;
	line-height: 1;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

/* Ausrichtung */

.ewbw-badge.ewbw-align-center { margin-left: auto; margin-right: auto; }
/* !important nötig, weil Block-Themes margin-left/right:auto !important setzen. */
.ewbw-badge.ewbw-align-left { margin-left: 0 !important; margin-right: auto !important; text-align: left; }
.ewbw-badge.ewbw-align-right { margin-left: auto !important; margin-right: 0 !important; text-align: right; }

/* Plattform-Logos / Buttons */

.ewbw-pls {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .5em;
	margin-top: 1em;
}

.ewbw-align-left .ewbw-pls { justify-content: flex-start; }
.ewbw-align-right .ewbw-pls { justify-content: flex-end; }

.ewbw .ewbw-pl {
	display: inline-flex;
	align-items: center;
	gap: .4em;
	min-height: 2.6em;
	padding: .45em 1em;
	border: 1px solid var(--ewbw-border);
	border-radius: 999px;
	background: var(--ewbw-card);
	color: var(--ewbw-text);
	font-size: .9em;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.ewbw .ewbw-pl:hover {
	border-color: var(--ewbw-border-strong);
	box-shadow: 0 2px 10px rgba(17, 24, 39, .08);
	transform: translateY(-1px);
	color: var(--ewbw-text);
}

.ewbw .ewbw-pl:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 2px;
}

.ewbw .ewbw-pl-logo {
	display: block;
	width: auto;
	height: 1.55em;
	max-width: 8.5em;
	margin: 0;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* Logos ohne Rahmen (Klassisch, Statistik, Firma, Kompakt) */
.ewbw .ewbw-pl--plain {
	min-height: 0;
	padding: .2em;
	border-color: transparent;
	background: none;
	border-radius: 8px;
}

.ewbw .ewbw-pl--plain:hover {
	border-color: transparent;
	box-shadow: none;
}

.ewbw .ewbw-pl--plain .ewbw-pl-logo {
	height: 2.1em;
	max-width: 9em;
}

.ewbw-ico {
	flex: none;
}

.ewbw-ico--external {
	width: .95em;
	height: .95em;
	opacity: .55;
}

/* „Bewertung auf Google schreiben" */

.ewbw .ewbw-write {
	margin-top: .9em;
	font-size: .9em;
}

.ewbw .ewbw-write a {
	color: var(--ewbw-accent);
	font-weight: 600;
	text-underline-offset: 2px;
}

.ewbw :is(.ewbw-badge--card, .ewbw-badge--classic, .ewbw-badge--stats, .ewbw-badge--business, .ewbw-badge--compact) .ewbw-write a,
.ewbw:is(.ewbw-badge--card, .ewbw-badge--classic, .ewbw-badge--stats, .ewbw-badge--business, .ewbw-badge--compact) .ewbw-write a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6em;
	padding: .55em 1.25em;
	border: 1px solid var(--ewbw-accent);
	border-radius: 999px;
	background: transparent;
	text-align: center;
	text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}

.ewbw :is(.ewbw-badge--card, .ewbw-badge--classic, .ewbw-badge--stats, .ewbw-badge--business, .ewbw-badge--compact) .ewbw-write a:hover,
.ewbw:is(.ewbw-badge--card, .ewbw-badge--classic, .ewbw-badge--stats, .ewbw-badge--business, .ewbw-badge--compact) .ewbw-write a:hover {
	background: var(--ewbw-accent);
	color: var(--ewbw-card);
}

/* ---------- Stil: Karte ---------- */

.ewbw-badge.ewbw-badge--card {
	max-width: 440px;
	text-align: center;
}

/* ---------- Stil: Klassisch („Ausgezeichnet") ---------- */

.ewbw-badge.ewbw-badge--classic {
	text-align: center;
}

.ewbw-badge--classic:not(.ewbw-frame--none) {
	max-width: 440px;
}

.ewbw-badge--classic .ewbw-label {
	margin-bottom: .3em;
	font-size: 1.45em;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.ewbw-badge--classic .ewbw-badge-stars {
	margin: 0 0 .5em;
	filter: drop-shadow(0 2px 3px rgba(180, 120, 0, .22));
}

.ewbw-badge--classic .ewbw-badge-text {
	color: var(--ewbw-muted);
}

.ewbw-badge--classic .ewbw-badge-text .ewbw-num {
	color: var(--ewbw-text);
}

.ewbw-badge--classic .ewbw-pls {
	margin-top: .8em;
}

/* ---------- Stil: einzeilig ---------- */

.ewbw-badge--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4em .9em;
	text-align: left;
}

.ewbw-badge--inline:not(.ewbw-frame--none) {
	width: fit-content;
}

.ewbw-badge--inline.ewbw-align-center { justify-content: center; text-align: center; }
.ewbw-badge--inline.ewbw-align-right { justify-content: flex-end; }
.ewbw-badge--inline .ewbw-badge-stars { margin: 0; }
.ewbw-badge--inline .ewbw-stars--lg { --ewbw-size: 1.3em; }
.ewbw-badge--inline .ewbw-badge-text { font-size: .9em; }
.ewbw-badge--inline .ewbw-pls { margin: 0; }
.ewbw-badge--inline .ewbw-write { margin: 0; }
.ewbw-badge--inline .ewbw-label { font-size: .95em; }

.ewbw-badge--inline .ewbw-pl,
.ewbw-badge--bar .ewbw-pl {
	min-height: 2.2em;
	padding: .35em .8em;
	font-size: .82em;
}

/* ---------- Stil: Header-Leiste ---------- */

.ewbw-badge.ewbw-badge--bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .45em 1em;
	width: 100%;
	text-align: left;
}

.ewbw-badge--bar.ewbw-align-center { text-align: center; }
.ewbw-badge--bar.ewbw-align-left { justify-content: flex-start; }
.ewbw-badge--bar.ewbw-align-right { justify-content: flex-end; }
.ewbw-badge--bar.ewbw-frame--none { padding: .4em 0; }
.ewbw-badge--bar .ewbw-badge-stars { margin: 0; }
.ewbw-badge--bar .ewbw-stars--lg { --ewbw-size: 1.4em; }
.ewbw-badge--bar .ewbw-badge-text { font-size: .92em; }
.ewbw-badge--bar .ewbw-pls { margin: 0; }
.ewbw-badge--bar .ewbw-write { margin: 0; }

.ewbw-badge--bar .ewbw-label {
	font-size: .95em;
	letter-spacing: .06em;
	text-transform: uppercase;
}

/* Eigenes Website-Logo (site_logo="1") */
.ewbw-site-logo {
	line-height: 0;
}

.ewbw .ewbw-site-img {
	display: block;
	width: auto;
	height: 3.4em;
	max-width: 12em;
	margin: 0 auto .75em;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ewbw-badge.ewbw-align-left .ewbw-site-img { margin-left: 0; }
.ewbw-badge.ewbw-align-right .ewbw-site-img { margin-right: 0; }

.ewbw .ewbw-badge--inline .ewbw-site-img,
.ewbw .ewbw-badge--bar .ewbw-site-img,
.ewbw.ewbw-badge--inline .ewbw-site-img,
.ewbw.ewbw-badge--bar .ewbw-site-img {
	height: 2.3em;
	max-width: 9em;
	margin: 0;
}

.ewbw .ewbw-badge--compact .ewbw-site-img,
.ewbw.ewbw-badge--compact .ewbw-site-img {
	height: 2.6em;
	margin-bottom: .6em;
}

.ewbw-stats-score .ewbw-site-logo .ewbw-site-img {
	margin-bottom: .35em;
}

/* Text und Logos nebeneinander (logos="beside") */
.ewbw-src-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .35em .7em;
}

.ewbw .ewbw-src-row .ewbw-pls {
	margin: 0;
}

.ewbw-badge.ewbw-align-left .ewbw-src-row,
.ewbw-brandrow-body .ewbw-src-row { justify-content: flex-start; }
.ewbw-badge.ewbw-align-right .ewbw-src-row { justify-content: flex-end; }

/* Logo links neben der Bewertung (logo_pos="left") */
.ewbw-brandrow {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .8em 1.2em;
	width: fit-content;
	max-width: 100%;
	margin-inline: auto;
	text-align: left;
}

.ewbw-badge.ewbw-align-left .ewbw-brandrow,
.ewbw-head--stack.ewbw-align-left .ewbw-brandrow { margin-left: 0; }
.ewbw-badge.ewbw-align-right .ewbw-brandrow,
.ewbw-head--stack.ewbw-align-right .ewbw-brandrow { margin-right: 0; }

.ewbw-brandrow > .ewbw-site-logo {
	flex: none;
}

.ewbw .ewbw-brandrow .ewbw-site-img {
	height: 4.6em;
	max-width: 9em;
	margin: 0;
}

.ewbw-brandrow-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
}

.ewbw .ewbw-brandrow-body .ewbw-pls { justify-content: flex-start; }
.ewbw .ewbw-brandrow-body .ewbw-label { margin-bottom: .2em; }
.ewbw .ewbw-brandrow-body .ewbw-score-big { margin: 0; }
.ewbw .ewbw-brandrow-body .ewbw-badge-stars { margin: .2em 0 .45em; }
.ewbw .ewbw-brandrow-body .ewbw-write { align-self: flex-start; }

.ewbw-stats-score.ewbw-brandrow {
	flex-direction: row;
	align-items: flex-start;
	gap: .8em 1.1em;
	text-align: left;
}

/* Handy: Logo etwas kleiner, damit es neben „Ausgezeichnet" passt */
@media (max-width: 480px) {
	.ewbw-brandrow,
	.ewbw-stats-score.ewbw-brandrow {
		gap: .6em .85em;
	}

	.ewbw .ewbw-brandrow .ewbw-site-img {
		height: 3.6em;
		max-width: 7em;
	}
}

/* Note als große Zahl (score="1") */
.ewbw-scorebox {
	display: inline-flex;
	align-items: center;
	gap: .4em;
}

.ewbw-badge--inline .ewbw-score-big,
.ewbw-badge--bar .ewbw-score-big {
	font-size: 1.6em;
	font-weight: 800;
}

.ewbw-badge--classic .ewbw-score-big,
.ewbw-badge--card .ewbw-score-big {
	display: block;
	margin: 0 0 .12em;
	font-size: 2.9em;
	font-weight: 800;
}

/* score="big": Note und Sterne groß · score="top": große Note über den Sternen */
.ewbw .ewbw-scorebox--big .ewbw-score-big {
	font-size: 2.3em;
}

.ewbw .ewbw-scorebox--top {
	flex-direction: column;
	gap: .1em;
}

.ewbw .ewbw-scorebox--top .ewbw-score-big {
	font-size: 2.6em;
}

.ewbw .ewbw-scorebox--big .ewbw-stars,
.ewbw .ewbw-scorebox--top .ewbw-stars {
	--ewbw-size: 1.9em;
}

.ewbw-scorebox--big .ewbw-badge-stars,
.ewbw-scorebox--top .ewbw-badge-stars {
	filter: drop-shadow(0 2px 3px rgba(180, 120, 0, .22));
}

/* ---------- Stil: Mini (klein, z. B. im Header neben dem Menü) ---------- */

.ewbw-badge.ewbw-badge--mini {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .25em .55em;
	margin-top: .5em;
	margin-bottom: .5em;
	font-size: .85em;
	line-height: 1.3;
	text-align: left;
}

.ewbw-badge--mini.ewbw-align-center { justify-content: center; text-align: center; }
.ewbw-badge--mini.ewbw-align-right { justify-content: flex-end; }
.ewbw-badge--mini:not(.ewbw-frame--none) { width: fit-content; }
.ewbw-badge--mini .ewbw-badge-stars { margin: 0; }
.ewbw-badge--mini .ewbw-stars--sm { --ewbw-size: 1.1em; }
.ewbw .ewbw-badge--mini .ewbw-badge-text,
.ewbw.ewbw-badge--mini .ewbw-badge-text { font-size: 1em; line-height: 1.3; }
.ewbw-badge--mini .ewbw-num:not(.ewbw-score) { font-weight: 600; }
.ewbw-badge--mini .ewbw-label { font-size: .95em; }
.ewbw .ewbw-badge--mini .ewbw-pls,
.ewbw.ewbw-badge--mini .ewbw-pls { margin: 0; gap: .2em; }

.ewbw.ewbw-badge--mini .ewbw-pl--plain {
	padding: .1em;
}

.ewbw.ewbw-badge--mini .ewbw-pl:not(.ewbw-pl--plain) {
	min-height: 0;
	padding: .2em .6em;
	font-size: .85em;
}

.ewbw.ewbw-badge--mini .ewbw-pl-logo {
	height: 1.55em;
	max-width: 6em;
}

.ewbw.ewbw-badge--mini .ewbw-site-img {
	height: 1.9em;
	max-width: 7em;
	margin: 0;
}

/* Mini mit Note vor den Sternen (score="1") – klein halten */
.ewbw-badge--mini .ewbw-scorebox {
	gap: .35em;
}

.ewbw.ewbw-badge--mini .ewbw-scorebox:not(.ewbw-scorebox--big):not(.ewbw-scorebox--top) .ewbw-score-big {
	font-size: 1.15em;
	font-weight: 750;
	letter-spacing: 0;
}

/* Mini mit Rahmen: kleiner Innenabstand */
.ewbw-badge.ewbw-badge--mini:not(.ewbw-frame--none) {
	padding: .4em .8em;
}

.ewbw-badge.ewbw-badge--mini.ewbw-frame--card {
	padding: .5em .9em;
}

/* Logos unter der Zeile */
.ewbw-badge.ewbw-logos--below {
	flex-direction: column;
	align-items: center;
	gap: .55em;
}

.ewbw-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .4em .9em;
}

.ewbw-logos--below .ewbw-pls {
	justify-content: center;
}

.ewbw-badge.ewbw-logos--below.ewbw-align-left { align-items: flex-start; }
.ewbw-badge.ewbw-logos--below.ewbw-align-right { align-items: flex-end; }
.ewbw-logos--below.ewbw-align-left :is(.ewbw-row, .ewbw-pls) { justify-content: flex-start; }
.ewbw-logos--below.ewbw-align-right :is(.ewbw-row, .ewbw-pls) { justify-content: flex-end; }

/* ---------- Stil: Statistik ---------- */

.ewbw-badge.ewbw-badge--stats {
	max-width: 680px;
}

.ewbw-stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.2em 2.2em;
}

.ewbw-stats-score {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	align-items: center;
	gap: .35em;
	margin-inline: auto;
	text-align: center;
}

.ewbw-stats-score .ewbw-badge-stars { margin: .1em 0 0; }
.ewbw-stats-score .ewbw-stars--lg { --ewbw-size: 1.6em; }
.ewbw-stats-score .ewbw-badge-text { color: var(--ewbw-muted); }
.ewbw-stats-score .ewbw-pls { margin-top: .3em; justify-content: center; }
.ewbw-stats-score .ewbw-label { font-size: .95em; letter-spacing: .06em; text-transform: uppercase; }

.ewbw ul.ewbw-dist {
	display: grid;
	flex: 1 1 250px;
	gap: .45em;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ewbw .ewbw-dist li {
	display: grid;
	grid-template-columns: 2.3em minmax(0, 1fr) 2.6em;
	align-items: center;
	gap: .7em;
	margin: 0;
	padding: 0;
	font-size: .92em;
}

.ewbw .ewbw-dist li::before,
.ewbw .ewbw-dist li::marker {
	content: none;
}

.ewbw-dist-k {
	display: inline-flex;
	align-items: center;
	gap: .25em;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
}

.ewbw-dist-star {
	display: inline-block;
	width: 1em;
	height: 1em;
	background: linear-gradient(180deg, var(--ewbw-star-hi), var(--ewbw-star) 55%, var(--ewbw-star-deep));
	-webkit-mask: var(--ewbw-mask) center / contain no-repeat;
	mask: var(--ewbw-mask) center / contain no-repeat;
}

.ewbw-dist-bar {
	display: block;
	height: .6em;
	overflow: hidden;
	border-radius: 999px;
	background: var(--ewbw-star-off);
}

.ewbw-dist-bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--ewbw-star), var(--ewbw-star-hi));
}

.ewbw-dist-n {
	color: var(--ewbw-muted);
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* ---------- Stil: Firma ---------- */

.ewbw-badge.ewbw-badge--business {
	max-width: 520px;
}

.ewbw-badge--business.ewbw-frame--card {
	border-top: 4px solid var(--ewbw-star);
}

.ewbw-biz {
	display: flex;
	align-items: center;
	gap: 1em 1.2em;
	text-align: left;
}

.ewbw-biz-logo {
	flex: none;
}

.ewbw .ewbw-biz-img {
	display: block;
	width: auto;
	height: 3.6em;
	max-width: 6.5em;
	margin: 0;
	object-fit: contain;
	border-radius: 10px;
}

.ewbw-biz-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .3em;
	min-width: 0;
}

.ewbw .ewbw-biz-name {
	font-size: 1.15em;
	font-weight: 700;
	line-height: 1.25;
}

.ewbw-biz .ewbw-badge-stars { margin: 0; }
.ewbw-biz .ewbw-pls { margin-top: .35em; justify-content: flex-start; }

.ewbw-badge--business .ewbw-score {
	color: var(--ewbw-accent);
	font-size: 1.25em;
}

/* ---------- Stil: Kompakt ---------- */

.ewbw-badge.ewbw-badge--compact {
	max-width: 280px;
	text-align: center;
}

.ewbw-badge--compact .ewbw-pls {
	margin: 0 0 .5em;
}

.ewbw-compact-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: .2em .5em;
}

.ewbw-badge--compact .ewbw-big { font-size: 1.7em; }
.ewbw-badge--compact .ewbw-badge-text { margin-top: .2em; color: var(--ewbw-muted); font-size: .88em; }

/* ---------- Rahmen ---------- */

.ewbw-badge.ewbw-frame--card {
	padding: 1.4em 1.5em 1.3em;
	background: var(--ewbw-card);
	border: 1px solid var(--ewbw-border);
	border-radius: var(--ewbw-radius);
	box-shadow: var(--ewbw-shadow);
}

.ewbw-badge.ewbw-frame--line {
	padding: .7em 1.25em;
	background: var(--ewbw-card);
	border: 1px solid var(--ewbw-border-strong);
	border-radius: var(--ewbw-radius);
}

.ewbw-badge.ewbw-frame--soft {
	padding: .75em 1.3em;
	background: var(--ewbw-tint);
	border-radius: var(--ewbw-radius);
}

.ewbw-badge.ewbw-frame--pill {
	padding: .6em .7em .6em 1.4em;
	background: var(--ewbw-card);
	border: 1px solid var(--ewbw-border);
	border-radius: 2.4em;
	box-shadow: 0 1px 2px rgba(17, 24, 39, .05), 0 8px 24px -10px rgba(17, 24, 39, .25);
}

.ewbw-badge.ewbw-frame--gold {
	padding: .75em 1.35em;
	background: linear-gradient(180deg, var(--ewbw-card), var(--ewbw-tint));
	border: 1.5px solid var(--ewbw-star);
	border-radius: var(--ewbw-radius);
	box-shadow: 0 0 0 4px var(--ewbw-tint), 0 10px 24px -14px rgba(180, 120, 0, .45);
}

.ewbw-badge.ewbw-frame--dark {
	--ewbw-text: #ffffff !important;
	--ewbw-card: rgba(255, 255, 255, .08) !important;
	--ewbw-accent: #ffffff !important;
	--ewbw-muted: rgba(255, 255, 255, .72) !important;
	--ewbw-border: rgba(255, 255, 255, .2) !important;
	--ewbw-border-strong: rgba(255, 255, 255, .4) !important;
	--ewbw-star-off: rgba(255, 255, 255, .26) !important;
	padding: .75em 1.35em;
	background: #111827;
	border-radius: var(--ewbw-radius);
	color: #ffffff;
	box-shadow: 0 12px 30px -14px rgba(17, 24, 39, .55);
}

.ewbw-badge.ewbw-frame--glass {
	padding: .65em .75em .65em 1.4em;
	background: rgba(255, 255, 255, .74);
	border: 1px solid rgba(255, 255, 255, .7);
	border-radius: 2.4em;
	box-shadow: 0 10px 30px -12px rgba(17, 24, 39, .35);
	-webkit-backdrop-filter: blur(12px) saturate(1.4);
	backdrop-filter: blur(12px) saturate(1.4);
}

/* Gestapelte Stile brauchen bei Pille/Glas keinen runden Rand links/rechts */
.ewbw-badge:is(.ewbw-badge--card, .ewbw-badge--classic, .ewbw-badge--stats, .ewbw-badge--business, .ewbw-badge--compact):is(.ewbw-frame--pill, .ewbw-frame--glass) {
	padding: 1.3em 1.5em;
	border-radius: calc(var(--ewbw-radius) * 2);
}

.ewbw-badge--bar:is(.ewbw-frame--pill, .ewbw-frame--glass) {
	padding-left: 1.4em;
	padding-right: 1.4em;
}

/* ---------- Kopfbereich & Hinweis ---------- */

.ewbw-head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .6em 1.25em;
	margin: 0 0 .75em;
}

.ewbw-head .ewbw-badge {
	margin: 0;
}

.ewbw-head--stack {
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: .8em;
	margin-bottom: 1.25em;
	text-align: center;
}

.ewbw-head--stack.ewbw-align-left { align-items: flex-start; text-align: left; }
.ewbw-head--stack.ewbw-align-right { align-items: flex-end; text-align: right; }
.ewbw-head--stack .ewbw-badge.ewbw-badge--bar { align-self: stretch; width: auto; }
.ewbw-head--stack .ewbw-badge--stats { align-self: stretch; margin-inline: auto; width: 100%; }

.ewbw .ewbw-title {
	margin: 0;
	font-size: 1.5em;
	line-height: 1.2;
}

.ewbw .ewbw-notice {
	max-width: 80ch;
	margin: 0 0 1em;
	font-size: .78em;
	line-height: 1.45;
	color: var(--ewbw-muted);
}

.ewbw .ewbw-notice a {
	color: inherit;
}

.ewbw-head--stack.ewbw-align-center + .ewbw-notice {
	margin-inline: auto;
	text-align: center;
}

/* Zusammenfassung links, Bewertungen rechts – bei wenig Platz automatisch untereinander */

.ewbw-side {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.25em 2.2em;
}

.ewbw-side-summary {
	display: flex;
	flex: 1 1 240px;
	flex-direction: column;
	align-items: center;
	gap: .7em;
	min-width: 0;
	text-align: center;
}

.ewbw-side-summary .ewbw-badge {
	margin: 0;
}

.ewbw-side-main {
	flex: 999 1 460px;
	min-width: 0;
}

@media (min-width: 900px) {
	.ewbw-side-summary {
		align-items: flex-start;
		text-align: left;
	}

	.ewbw-side-summary .ewbw-badge {
		text-align: left;
	}

	.ewbw-side-summary .ewbw-pls {
		justify-content: flex-start;
	}

	.ewbw-side-summary .ewbw-site-img {
		margin-left: 0;
	}
}

/* ---------- Karten ---------- */

.ewbw ul.ewbw-items {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--ewbw-gap);
	margin: 0;
	padding: 0;
	list-style: none;
}

.ewbw .ewbw-item {
	display: flex;
	margin: 0;
	padding: 0;
}

.ewbw .ewbw-item::before,
.ewbw .ewbw-item::marker {
	content: none;
}

.ewbw-card {
	position: relative;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .6em;
	min-width: 0;
}

.ewbw-surface {
	padding: 1.1em 1.2em 1.15em;
	background: var(--ewbw-card);
	border: 1px solid var(--ewbw-border);
	border-radius: var(--ewbw-radius);
	box-shadow: var(--ewbw-shadow);
}

.ewbw-card:focus {
	outline: none;
}

.ewbw-card:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 2px;
}

/* Kartenstile */

.ewbw-cs--shadow .ewbw-surface {
	border-color: transparent;
	box-shadow: 0 1px 2px rgba(17, 24, 39, .05), 0 14px 34px -12px rgba(17, 24, 39, .24);
}

.ewbw-cs--3d .ewbw-surface {
	border-bottom: 6px solid var(--ewbw-3d);
	box-shadow: 0 20px 28px -18px rgba(17, 24, 39, .5);
}

.ewbw-cs--edge .ewbw-surface {
	border-left: 4px solid var(--ewbw-star);
}

.ewbw-cs--outline .ewbw-surface {
	background: transparent;
	border: 1.5px solid var(--ewbw-border-strong);
	box-shadow: none;
}

.ewbw-cs--flat .ewbw-surface {
	background: var(--ewbw-tint);
	border-color: transparent;
	box-shadow: none;
}

@media (hover: hover) {
	.ewbw-cs--shadow .ewbw-surface,
	.ewbw-cs--3d .ewbw-surface {
		transition: transform .2s ease, box-shadow .2s ease;
	}

	.ewbw-cs--shadow .ewbw-surface:hover {
		transform: translateY(-3px);
		box-shadow: 0 2px 4px rgba(17, 24, 39, .06), 0 22px 40px -14px rgba(17, 24, 39, .3);
	}

	.ewbw-cs--3d .ewbw-surface:hover {
		transform: translateY(-2px);
	}
}

/* Kopf der Karte */

.ewbw-card-head {
	display: flex;
	align-items: center;
	gap: .7em;
}

.ewbw-avatar {
	flex: none;
	display: grid;
	place-items: center;
	width: 2.4em;
	height: 2.4em;
	border-radius: 50%;
	background: hsl(var(--ewbw-h, 210) 55% 92%);
	color: hsl(var(--ewbw-h, 210) 45% 30%);
	font-weight: 700;
	font-size: .95em;
	line-height: 1;
}

.ewbw-av--solid .ewbw-avatar {
	background: hsl(var(--ewbw-h, 210) 48% 46%);
	color: #ffffff;
}

.ewbw-card-meta {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	min-width: 0;
	line-height: 1.3;
}

.ewbw-author {
	max-width: 100%;
	overflow: hidden;
	font-weight: 650;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.ewbw-date {
	font-size: .82em;
	color: var(--ewbw-muted);
}

.ewbw-card-rating,
.ewbw-card-top {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .4em .6em;
}

.ewbw-src {
	padding: .25em .65em;
	border: 1px solid var(--ewbw-border);
	border-radius: 999px;
	color: var(--ewbw-muted);
	font-size: .72em;
	font-weight: 600;
	letter-spacing: .02em;
	white-space: nowrap;
}

/* Google-Logo in der Karte */
.ewbw .ewbw-src-logo {
	display: block;
	flex: none;
	width: auto;
	height: 1.45em;
	max-width: 5.5em;
	margin: 0;
	object-fit: contain;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

.ewbw-card-head > .ewbw-src-logo,
.ewbw-card-head > .ewbw-src {
	margin-left: auto;
}

/* Vorlage „Profil": Sterne unter dem Namen */
.ewbw-tpl--profile .ewbw-card-head {
	align-items: flex-start;
}

.ewbw-tpl--profile .ewbw-avatar {
	width: 2.85em;
	height: 2.85em;
	font-size: 1.05em;
}

.ewbw-tpl--profile .ewbw-card-meta .ewbw-stars {
	margin: .2em 0 .15em;
}

.ewbw-tpl--profile .ewbw-card-head > .ewbw-src-logo,
.ewbw-tpl--profile .ewbw-card-head > .ewbw-src {
	align-self: flex-start;
}

/* Vorlage „Zitat": Text zuerst, Name unten */
.ewbw-card-author {
	display: flex;
	align-items: center;
	gap: .65em;
	min-width: 0;
}

.ewbw-tpl--quote .ewbw-card-author {
	margin-top: auto;
	padding-top: .5em;
	border-top: 1px solid var(--ewbw-border);
}

.ewbw-tpl--quote .ewbw-avatar {
	width: 2.1em;
	height: 2.1em;
	font-size: .85em;
}

/* Vorlage „Sprechblase" */
.ewbw-tpl--bubble .ewbw-card {
	gap: 1.15em;
}

.ewbw-bubble {
	position: relative;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .55em;
}

.ewbw-bubble::after {
	content: "";
	position: absolute;
	left: 1.6em;
	bottom: -8px;
	width: 15px;
	height: 15px;
	background: inherit;
	border: inherit;
	border-width: 0 1px 1px 0;
	border-radius: 0 0 3px 0;
	transform: rotate(45deg);
}

.ewbw-cs--outline .ewbw-bubble::after {
	border-width: 0 1.5px 1.5px 0;
	background: var(--ewbw-card);
}

.ewbw-cs--3d .ewbw-bubble::after {
	bottom: -11px;
	border-width: 0 1px 1px 0;
	border-color: var(--ewbw-3d);
}

.ewbw-tpl--bubble .ewbw-card-top {
	justify-content: flex-start;
}

.ewbw-ico--quote {
	width: 1.7em;
	height: 1.7em;
	color: var(--ewbw-star);
}

.ewbw-bubble-foot {
	display: flex;
	justify-content: flex-end;
	margin-top: auto;
	padding-top: .15em;
}

.ewbw-tpl--bubble .ewbw-card-author {
	padding: 0 .4em;
}

.ewbw .ewbw-card-title {
	font-weight: 650;
}

/* Text */

.ewbw blockquote.ewbw-text {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: inherit;
	font-family: inherit;
	font-size: .95em;
	font-style: normal;
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1.55;
	text-transform: none;
	quotes: none;
	overflow-wrap: anywhere;
}

.ewbw.ewbw-tpl--quote blockquote.ewbw-text,
.ewbw.ewbw-tpl--bubble blockquote.ewbw-text {
	font-style: italic;
}

.ewbw blockquote.ewbw-text::before,
.ewbw blockquote.ewbw-text::after {
	content: none;
	display: none;
}

.ewbw blockquote.ewbw-text p {
	margin: 0;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: inherit;
	letter-spacing: inherit;
	line-height: inherit;
}

.ewbw blockquote.ewbw-text p + p {
	margin-top: .6em;
}

.ewbw blockquote.ewbw-text.is-clamped {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--ewbw-lines);
	line-clamp: var(--ewbw-lines);
	overflow: hidden;
}

/* „weiterlesen" ohne JavaScript */

.ewbw-rm-toggle {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.ewbw .ewbw-rm {
	align-self: flex-start;
	margin: -.2em 0 0;
	color: var(--ewbw-accent);
	font-size: .85em;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.ewbw-rm-less { display: none; }

.ewbw .ewbw-rm-toggle:checked ~ blockquote.ewbw-text.is-clamped {
	display: block;
	-webkit-line-clamp: unset;
	line-clamp: none;
	overflow: visible;
}

.ewbw-rm-toggle:checked ~ .ewbw-rm .ewbw-rm-more { display: none; }
.ewbw-rm-toggle:checked ~ .ewbw-rm .ewbw-rm-less { display: inline; }

.ewbw-rm-toggle:focus-visible ~ .ewbw-rm {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

.ewbw-fits .ewbw-rm,
.ewbw-fits .ewbw-rm-toggle {
	display: none;
}

/* Antwort des Inhabers */

.ewbw-reply {
	margin-top: auto;
	padding-top: .6em;
	border-top: 1px solid var(--ewbw-border);
	font-size: .86em;
}

.ewbw-reply > summary {
	color: var(--ewbw-muted);
	font-weight: 600;
	cursor: pointer;
}

.ewbw-reply[open] > summary {
	margin-bottom: .4em;
}

.ewbw-reply p + p {
	margin-top: .5em;
}

/* ---------- „Mehr laden" (eine Liste, Buttons = verschachtelte <details>) ---------- */

.ewbw .ewbw-item[data-step] {
	display: none;
}

.ewbw .ewbw-item[data-step].is-shown {
	display: flex;
}

.ewbw:has(.ewbw-more[data-k="1"][open]) .ewbw-item[data-step="1"],
.ewbw:has(.ewbw-more[data-k="2"][open]) .ewbw-item[data-step="2"],
.ewbw:has(.ewbw-more[data-k="3"][open]) .ewbw-item[data-step="3"],
.ewbw:has(.ewbw-more[data-k="4"][open]) .ewbw-item[data-step="4"],
.ewbw:has(.ewbw-more[data-k="5"][open]) .ewbw-item[data-step="5"],
.ewbw:has(.ewbw-more[data-k="6"][open]) .ewbw-item[data-step="6"],
.ewbw:has(.ewbw-more[data-k="7"][open]) .ewbw-item[data-step="7"],
.ewbw:has(.ewbw-more[data-k="8"][open]) .ewbw-item[data-step="8"],
.ewbw:has(.ewbw-more[data-k="9"][open]) .ewbw-item[data-step="9"],
.ewbw:has(.ewbw-more[data-k="10"][open]) .ewbw-item[data-step="10"],
.ewbw:has(.ewbw-more[data-k="11"][open]) .ewbw-item[data-step="11"],
.ewbw:has(.ewbw-more[data-k="12"][open]) .ewbw-item[data-step="12"],
.ewbw:has(.ewbw-more[data-k="13"][open]) .ewbw-item[data-step="13"],
.ewbw:has(.ewbw-more[data-k="14"][open]) .ewbw-item[data-step="14"],
.ewbw:has(.ewbw-more[data-k="15"][open]) .ewbw-item[data-step="15"],
.ewbw:has(.ewbw-more[data-k="16"][open]) .ewbw-item[data-step="16"],
.ewbw:has(.ewbw-more[data-k="17"][open]) .ewbw-item[data-step="17"],
.ewbw:has(.ewbw-more[data-k="18"][open]) .ewbw-item[data-step="18"],
.ewbw:has(.ewbw-more[data-k="19"][open]) .ewbw-item[data-step="19"],
.ewbw:has(.ewbw-more[data-k="20"][open]) .ewbw-item[data-step="20"],
.ewbw:has(.ewbw-more[data-k="21"][open]) .ewbw-item[data-step="21"],
.ewbw:has(.ewbw-more[data-k="22"][open]) .ewbw-item[data-step="22"],
.ewbw:has(.ewbw-more[data-k="23"][open]) .ewbw-item[data-step="23"],
.ewbw:has(.ewbw-more[data-k="24"][open]) .ewbw-item[data-step="24"],
.ewbw:has(.ewbw-more[data-k="25"][open]) .ewbw-item[data-step="25"],
.ewbw:has(.ewbw-more[data-k="26"][open]) .ewbw-item[data-step="26"],
.ewbw:has(.ewbw-more[data-k="27"][open]) .ewbw-item[data-step="27"],
.ewbw:has(.ewbw-more[data-k="28"][open]) .ewbw-item[data-step="28"],
.ewbw:has(.ewbw-more[data-k="29"][open]) .ewbw-item[data-step="29"],
.ewbw:has(.ewbw-more[data-k="30"][open]) .ewbw-item[data-step="30"],
.ewbw:has(.ewbw-more[data-k="31"][open]) .ewbw-item[data-step="31"],
.ewbw:has(.ewbw-more[data-k="32"][open]) .ewbw-item[data-step="32"],
.ewbw:has(.ewbw-more[data-k="33"][open]) .ewbw-item[data-step="33"],
.ewbw:has(.ewbw-more[data-k="34"][open]) .ewbw-item[data-step="34"],
.ewbw:has(.ewbw-more[data-k="35"][open]) .ewbw-item[data-step="35"],
.ewbw:has(.ewbw-more[data-k="36"][open]) .ewbw-item[data-step="36"],
.ewbw:has(.ewbw-more[data-k="37"][open]) .ewbw-item[data-step="37"],
.ewbw:has(.ewbw-more[data-k="38"][open]) .ewbw-item[data-step="38"],
.ewbw:has(.ewbw-more[data-k="39"][open]) .ewbw-item[data-step="39"],
.ewbw:has(.ewbw-more[data-k="40"][open]) .ewbw-item[data-step="40"] {
	display: flex;
}

.ewbw-more {
	margin-top: var(--ewbw-gap);
}

.ewbw-more .ewbw-more {
	margin-top: 0;
}

.ewbw .ewbw-more > summary {
	display: table;
	margin: 0 auto;
	padding: .65em 1.4em;
	border: 1px solid var(--ewbw-accent);
	border-radius: 999px;
	color: var(--ewbw-accent);
	font-size: .92em;
	font-weight: 600;
	list-style: none;
	cursor: pointer;
	user-select: none;
	transition: background-color .15s ease, color .15s ease;
}

.ewbw-more > summary::-webkit-details-marker { display: none; }
.ewbw-more > summary::marker { content: ""; }

.ewbw .ewbw-more > summary:hover {
	background: var(--ewbw-accent);
	color: var(--ewbw-card);
}

.ewbw .ewbw-more > summary:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 3px;
}

.ewbw-more[open] > summary {
	display: none;
}

.ewbw ul.ewbw-items:focus {
	outline: none;
}

/* ---------- Spalten ----------
 * Bewusst ohne Container Queries: Diese lassen Page-Builder-Container (z. B. Elementor
 * „Spalte + Umbruch") die Höhe falsch berechnen – es entstand viel leerer Platz.
 * Die Spaltenzahl ergibt sich aus der Breite: höchstens „columns", jede Karte mind. ca. 260 px.
 */

.ewbw--grid.ewbw--cols-2 ul.ewbw-items {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, max(300px, calc((100% - var(--ewbw-gap)) / 2 - .1px))), 1fr));
}

.ewbw--grid.ewbw--cols-3 ul.ewbw-items {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, max(260px, calc((100% - 2 * var(--ewbw-gap)) / 3 - .1px))), 1fr));
}

.ewbw--grid.ewbw--cols-4 ul.ewbw-items {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, max(240px, calc((100% - 3 * var(--ewbw-gap)) / 4 - .1px))), 1fr));
}

/* ---------- Slider ---------- */

/* Grid mit minmax(0, 1fr): Der Slider zählt bei der Breitenberechnung des Page-Builders nicht
 * mit seiner vollen Länge (verhindert Überbreite in Elementor-Containern mit Umbruch). */
.ewbw-slider {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}

.ewbw--slider ul.ewbw-track {
	display: flex;
	gap: var(--ewbw-gap);
	margin: -6px -4px 0;
	padding: 6px 4px 14px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 4px;
	scroll-behavior: smooth;
	scrollbar-width: thin;
}

/* Mehr Platz für große Schatten */
.ewbw--slider:is(.ewbw-cs--shadow, .ewbw-cs--3d) ul.ewbw-track {
	margin: -12px -12px -8px;
	padding: 12px 12px 30px;
	scroll-padding-inline: 12px;
}

.ewbw--slider .ewbw-track .ewbw-item {
	flex: 0 0 min(86%, max(300px, calc((100% - 2 * var(--ewbw-gap)) / 3)));
	scroll-snap-align: start;
}

.ewbw--slider.ewbw--cols-1 .ewbw-track .ewbw-item {
	flex-basis: 100%;
}

.ewbw--slider.ewbw--cols-2 .ewbw-track .ewbw-item {
	flex-basis: min(86%, max(320px, calc((100% - var(--ewbw-gap)) / 2)));
}

.ewbw--slider.ewbw--cols-4 .ewbw-track .ewbw-item {
	flex-basis: min(86%, max(260px, calc((100% - 3 * var(--ewbw-gap)) / 4)));
}

.ewbw-track:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 2px;
}

.ewbw-nav {
	display: flex;
	justify-content: flex-end;
	gap: .5em;
	margin-top: .25em;
}

.ewbw-nav[hidden] {
	display: none;
}

.ewbw .ewbw-arrow {
	display: grid;
	place-items: center;
	width: 2.6em;
	height: 2.6em;
	margin: 0;
	padding: 0;
	border: 1px solid var(--ewbw-border);
	border-radius: 50%;
	background: var(--ewbw-card);
	color: var(--ewbw-text);
	box-shadow: none;
	cursor: pointer;
	transition: border-color .15s ease, opacity .15s ease, transform .15s ease;
}

.ewbw .ewbw-arrow:hover:not(:disabled) {
	border-color: var(--ewbw-accent);
	background: var(--ewbw-card);
	color: var(--ewbw-text);
}

.ewbw .ewbw-arrow:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 2px;
}

.ewbw .ewbw-arrow:disabled {
	opacity: .35;
	cursor: default;
}

.ewbw-arrow .ewbw-ico {
	width: 1.15em;
	height: 1.15em;
}

/* Pfeile seitlich (breit) bzw. mittig darunter (schmal) */
.ewbw-arrows--side .ewbw-nav {
	justify-content: center;
}

.ewbw-arrows--side .ewbw-slider.is-ready ul.ewbw-track {
	scrollbar-width: none;
}

.ewbw-arrows--side .ewbw-slider.is-ready ul.ewbw-track::-webkit-scrollbar {
	display: none;
}

/* Platz für die Pfeile nur, wenn der Slider breiter als ca. 560 px ist (ohne Container Queries). */
.ewbw-arrows--side .ewbw-slider {
	padding-inline: clamp(0px, calc((100% - 560px) * 1000), 3.2em);
}

.ewbw-arrows--side .ewbw-nav {
	position: absolute;
	inset: 0;
	z-index: 2;
	justify-content: space-between;
	align-items: center;
	margin: 0;
	pointer-events: none;
}

.ewbw-arrows--side .ewbw-nav[hidden] {
	display: none;
}

.ewbw.ewbw-arrows--side .ewbw-arrow {
	pointer-events: auto;
	box-shadow: 0 4px 14px -4px rgba(17, 24, 39, .25);
}

.ewbw.ewbw-arrows--side .ewbw-arrow:disabled {
	opacity: 0;
	visibility: hidden;
}

/* Handy: Pfeile mittig unter dem Slider */
@media (max-width: 600px) {
	.ewbw-arrows--side .ewbw-nav {
		position: static;
		justify-content: center;
		margin-top: .25em;
		pointer-events: auto;
	}

	.ewbw.ewbw-arrows--side .ewbw-arrow {
		box-shadow: none;
	}

	.ewbw.ewbw-arrows--side .ewbw-arrow:disabled {
		opacity: .35;
		visibility: visible;
	}
}

/* Punkte */
.ewbw-dots {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .1em;
	margin-top: .35em;
}

.ewbw-dots[hidden] {
	display: none;
}

.ewbw .ewbw-dot {
	position: relative;
	width: 1.5em;
	height: 1.5em;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	cursor: pointer;
}

.ewbw .ewbw-dot:hover {
	background: none;
}

.ewbw .ewbw-dot::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: .55em;
	height: .55em;
	border-radius: 999px;
	background: var(--ewbw-border-strong);
	transform: translate(-50%, -50%);
	transition: width .2s ease, background-color .2s ease;
}

.ewbw .ewbw-dot[aria-current="true"]::before {
	width: 1.3em;
	background: var(--ewbw-accent);
}

.ewbw .ewbw-dot:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: -2px;
	border-radius: 6px;
}

/* ---------- Trustpilot-Widget (2-Klick) ---------- */

.ewbw-trustbox {
	margin: 1em 0;
}

.ewbw-consent {
	margin-top: .6em;
	color: var(--ewbw-muted);
	font-size: .82em;
}

.ewbw-consent[hidden] {
	display: none;
}

.ewbw-consent p {
	margin: 0 0 .5em;
}

.ewbw-trustbox .ewbw-consent-btn {
	padding: .5em 1em;
	border: 1px solid var(--ewbw-accent);
	border-radius: 999px;
	background: transparent;
	color: var(--ewbw-accent);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.ewbw-trustbox.is-loaded .ewbw-consent {
	display: none;
}

/* ---------- Hinweis für Admins ---------- */

.ewbw-admin-hint {
	margin: 1em 0;
	padding: .8em 1em;
	border: 1px dashed #d63638;
	border-radius: 8px;
	background: #fff8f8;
	color: #8a1f1f;
	font-size: .9em;
}

/* ---------- Barrierefreiheit ---------- */

@media (prefers-reduced-motion: reduce) {
	.ewbw .ewbw-pl,
	.ewbw .ewbw-more > summary,
	.ewbw .ewbw-surface,
	.ewbw .ewbw-arrow,
	.ewbw .ewbw-dot::before {
		transition: none;
	}

	.ewbw .ewbw-pl:hover,
	.ewbw .ewbw-surface:hover {
		transform: none;
	}

	.ewbw--slider ul.ewbw-track {
		scroll-behavior: auto;
	}
}

@media (forced-colors: active) {
	.ewbw-stars,
	.ewbw-dist-star,
	.ewbw-dist-bar {
		forced-color-adjust: none;
	}
}

/* Kennzeichnung unter dem Datum (Vorlage „Profil") */
.ewbw-card-meta > .ewbw-src {
	margin-top: .35em;
}

.ewbw-badge.ewbw-logos--below:is(.ewbw-frame--pill, .ewbw-frame--glass) {
	padding-left: 1.4em;
	padding-right: 1.4em;
}

/* ---------- Handy: Header-Leiste und einzeilige Variante kompakter ---------- */

@media (max-width: 480px) {
	.ewbw-badge--bar .ewbw-badge-text,
	.ewbw-badge--inline .ewbw-badge-text {
		font-size: .8em;
	}

	.ewbw-badge.ewbw-badge--bar:not(.ewbw-frame--none),
	.ewbw-badge.ewbw-badge--inline:not(.ewbw-frame--none) {
		padding-left: .9em;
		padding-right: .9em;
	}

	.ewbw-badge.ewbw-badge--bar {
		gap: .35em .8em;
	}
}

/* ---------- Schwebend: float="top" (an Ort und Stelle) und float="left|right|bottom" (unten angeheftet) ---------- */

.ewbw-anchor {
	position: relative;
	height: 0;
	margin: 0;
	padding: 0;
}

.ewbw-badge.ewbw-float {
	position: fixed;
	z-index: var(--ewbw-float-z, 9990);
	box-sizing: border-box;
	width: fit-content;
	max-width: calc(100% - 24px);
	margin: 0;
}

.ewbw-badge.ewbw-float--bottom {
	bottom: calc(var(--ewbw-float-offset, 16px) + env(safe-area-inset-bottom, 0px));
}

.ewbw-float.ewbw-fx--left { left: 12px; }
.ewbw-float.ewbw-fx--right { right: 12px; }
.ewbw-float.ewbw-fx--center { left: 12px; right: 12px; margin-inline: auto; }

@media (min-width: 768px) {
	.ewbw-float.ewbw-fx--left { left: 20px; }
	.ewbw-float.ewbw-fx--right { right: 20px; }
}

/* Oben: schwebt dort, wo der Shortcode steht (z. B. direkt unter dem Menü) */
.ewbw-anchor > .ewbw-badge.ewbw-float {
	position: absolute;
	top: var(--ewbw-float-offset, 8px);
	max-width: 100%;
}

.ewbw-anchor > .ewbw-float.ewbw-fx--left { left: 0; }
.ewbw-anchor > .ewbw-float.ewbw-fx--right { right: 0; }
.ewbw-anchor > .ewbw-float.ewbw-fx--center { left: 0; right: 0; }

.ewbw-badge.ewbw-float[hidden] {
	display: none !important;
}

/* Kleines „×" zum Ausblenden (close="1") */
.ewbw .ewbw-float-close {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 1.6em;
	height: 1.6em;
	min-height: 0;
	margin: 0 -.35em 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	box-shadow: none;
	color: var(--ewbw-muted);
	font: inherit;
	font-size: 1.05em;
	line-height: 1;
	text-transform: none;
	cursor: pointer;
}

.ewbw .ewbw-float-close[hidden] {
	display: none;
}

.ewbw .ewbw-float-close:hover,
.ewbw .ewbw-float-close:focus-visible {
	background: var(--ewbw-tint);
	color: var(--ewbw-text);
}

.ewbw .ewbw-float-close:focus-visible {
	outline: 2px solid var(--ewbw-accent);
	outline-offset: 1px;
}

/* Beim Scrollen ein- bzw. ausblenden – reines CSS, gekoppelt an die Scroll-Position */
@supports (animation-timeline: scroll()) {
	/* Auch auf kurzen Seiten vollständig sichtbar: Ende spätestens bei 70 % des Scrollwegs */
	.ewbw-float--reveal {
		animation: ewbw-float-in auto linear both;
		animation-timeline: scroll(root block);
		animation-range: 0px min(240px, 70%);
	}

	.ewbw-float--fade {
		animation: ewbw-float-out auto linear both;
		animation-timeline: scroll(root block);
		animation-range: 0px min(160px, 70%);
	}
}

/* Ältere Browser: Das Skript setzt die Klassen (is-on / is-off) */
@supports not (animation-timeline: scroll()) {
	.ewbw-float--reveal,
	.ewbw-float--fade {
		transition: opacity .25s ease, transform .25s ease, visibility .25s;
	}

	.ewbw-float--reveal:not(.is-on),
	.ewbw-float--fade.is-off {
		opacity: 0;
		visibility: hidden;
		transform: translateY(.6em);
	}
}

@keyframes ewbw-float-in {
	0%, 60% { opacity: 0; transform: translateY(.8em); visibility: hidden; }
	100% { opacity: 1; transform: none; visibility: visible; }
}

@keyframes ewbw-float-out {
	0%, 15% { opacity: 1; transform: none; visibility: visible; }
	85%, 100% { opacity: 0; transform: translateY(-.6em); visibility: hidden; }
}

@media (prefers-reduced-motion: reduce) {
	.ewbw-float--reveal,
	.ewbw-float--fade {
		transform: none !important;
	}
}

/* Handy: Mini mit Note vorne (z. B. schwebend) etwas enger und mit der Breite skaliert – bleibt einzeilig */
@media (max-width: 480px) {
	.ewbw-badge.ewbw-badge--mini:has(.ewbw-scorebox) {
		gap: .2em .4em;
		font-size: min(.85em, 3.3vw);
	}

	.ewbw-badge.ewbw-badge--mini:has(.ewbw-float-close) {
		font-size: min(.85em, 3.05vw);
	}

	.ewbw-badge.ewbw-badge--mini:has(.ewbw-scorebox):not(.ewbw-frame--none) {
		padding: .35em .65em;
	}

	.ewbw-badge--mini:has(.ewbw-scorebox) .ewbw-stars--sm {
		--ewbw-size: 1em;
	}

	.ewbw.ewbw-badge--mini:has(.ewbw-scorebox) .ewbw-pl-logo {
		height: 1.45em;
	}

	.ewbw.ewbw-badge--mini:has(.ewbw-scorebox) .ewbw-pl--plain {
		padding: .05em;
	}

	/*
	 * Unten angeheftet: kompaktes Badge in zwei Zeilen – links groß die Note, rechts oben Sterne und Logos,
	 * darunter „Insgesamt 141 Bewertungen". Schmal genug, dass rechts Chat- und Pfeil-Button Platz haben.
	 */
	.ewbw-badge.ewbw-float--bottom.ewbw-badge--mini:has(.ewbw-scorebox) {
		display: grid;
		grid-template-columns: auto auto auto;
		grid-template-areas:
			"num stars logos"
			"num text text";
		align-items: center;
		gap: .05em .55em;
		padding: .5em .9em .5em .8em;
		border-radius: 1.15em;
		font-size: .85em;
		text-align: left;
	}

	.ewbw-badge.ewbw-float--bottom.ewbw-badge--mini:has(.ewbw-float-close) {
		grid-template-columns: auto auto auto auto;
		grid-template-areas:
			"num stars logos close"
			"num text text close";
	}

	.ewbw-float--bottom.ewbw-badge--mini .ewbw-scorebox {
		display: contents;
	}

	.ewbw.ewbw-float--bottom.ewbw-badge--mini .ewbw-scorebox .ewbw-score-big {
		grid-area: num;
		font-size: 2.15em;
		line-height: 1;
	}

	.ewbw-float--bottom.ewbw-badge--mini .ewbw-badge-stars {
		grid-area: stars;
	}

	.ewbw-float--bottom.ewbw-badge--mini .ewbw-stars--sm {
		--ewbw-size: 1.05em;
	}

	.ewbw.ewbw-float--bottom.ewbw-badge--mini .ewbw-badge-text {
		grid-area: text;
		font-size: .95em;
		line-height: 1.25;
	}

	.ewbw.ewbw-float--bottom.ewbw-badge--mini .ewbw-pls {
		grid-area: logos;
		justify-self: end;
	}

	.ewbw.ewbw-float--bottom.ewbw-badge--mini .ewbw-float-close {
		grid-area: close;
		margin: 0 -.4em 0 0;
	}

	.ewbw-float--bottom .ewbw-bw {
		display: none;
	}

	/* Mittig bzw. rechts: links neben Chat- und „Pfeil nach oben"-Button bleiben (Platz per --ewbw-float-reserve) */
	.ewbw-badge.ewbw-float--bottom.ewbw-fx--center,
	.ewbw-badge.ewbw-float--bottom.ewbw-fx--right {
		right: calc(12px + var(--ewbw-float-reserve, 72px));
	}
}

/* Im Elementor-Editor an Ort und Stelle zeigen, damit es anklickbar bleibt */
.ewbw-anchor.ewbw-anchor--edit,
.elementor-editor-active .ewbw-anchor {
	height: auto;
}

.ewbw-badge.ewbw-float.ewbw-float--edit,
.elementor-editor-active .ewbw-badge.ewbw-float {
	position: relative;
	inset: auto;
	margin: .5em auto;
	opacity: 1 !important;
	visibility: visible !important;
	transform: none !important;
	animation: none !important;
}

/* Nur Handy / nur Desktop (devices="mobile" | "desktop") */
@media (max-width: 767px) {
	.ewbw-only-desktop {
		display: none !important;
	}
}

@media (min-width: 768px) {
	.ewbw-only-mobile {
		display: none !important;
	}
}

@media print {
	.ewbw-anchor,
	.ewbw-float {
		display: none !important;
	}
}

/* Sehr schmale Handys (≤ 340 px): kompaktes Badge etwas kleiner, damit „Insgesamt … Bewertungen" einzeilig bleibt */
@media (max-width: 340px) {
	.ewbw-badge.ewbw-float--bottom.ewbw-badge--mini:has(.ewbw-scorebox) {
		font-size: .78em;
	}
}
