/**
 * Schutz vor BeTheme / BeBuilder / anderen Theme-Overrides.
 * Gilt für Karte (.vpf-map) und Formular (.vpf-form).
 */

.vpf-map,
.vpf-form {
	box-sizing: border-box;
	font-family: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif !important;
	font-size: 16px !important;
	font-weight: 400;
	font-style: normal;
	line-height: 1.45 !important;
	letter-spacing: normal !important;
	text-transform: none;
	color: #1c1f1e;
	white-space: normal !important;
	word-spacing: normal;
}

/* Karte: volle Breite, feste linke Ausrichtung der UI. */
.vpf-map {
	text-align: left !important;
	max-width: none;
}

/* Formular: Breite/Zentrierung steuert form.css – hier nicht überschreiben. */
.vpf-form {
	text-align: left;
}

.vpf-map *,
.vpf-map *::before,
.vpf-map *::after,
.vpf-form *,
.vpf-form *::before,
.vpf-form *::after {
	box-sizing: border-box;
}

/* BeBuilder „Code“ → <pre>/<code>: sonst Leerzeilen und Courier. */
pre:has(.vpf-map),
pre:has(.vpf-form),
code:has(.vpf-map),
code:has(.vpf-form),
.vpf-map pre,
.vpf-map code,
.vpf-form pre,
.vpf-form code {
	display: block !important;
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	white-space: normal !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	letter-spacing: normal !important;
	overflow: visible !important;
	max-width: none !important;
	width: auto !important;
	height: auto !important;
}

.vpf-map > br,
.vpf-form > br,
.vpf-map > p:empty,
.vpf-form > p:empty,
pre:has(.vpf-map) > br,
pre:has(.vpf-form) > br,
code:has(.vpf-map) > br,
code:has(.vpf-form) > br {
	display: none !important;
}

/* Theme-Standardabstände auf Typo/Form-Elementen zurücksetzen. */
.vpf-map :where(p, h1, h2, h3, h4, h5, h6, label, legend, ul, ol, li, dl, dt, dd, form, fieldset, figure, blockquote, button, input, select, textarea, table, tr, th, td),
.vpf-form :where(p, h1, h2, h3, h4, h5, h6, label, legend, ul, ol, li, dl, dt, dd, form, fieldset, figure, blockquote, button, input, select, textarea, table, tr, th, td) {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	line-height: inherit;
	letter-spacing: normal;
	text-transform: none;
}

/* Auch Div-Wrapper: BeTheme setzt oft Abstände auf Spaltenkindern. */
.vpf-map :where(div, span, aside, section, article, header, footer, nav, details, summary),
.vpf-form :where(div, span, aside, section, article, header, footer, nav, details, summary) {
	margin-top: 0;
	margin-bottom: 0;
}

.vpf-map :where(ul, ol):not(.vpf-map__legend),
.vpf-form :where(ul, ol) {
	padding-left: 0 !important;
	list-style: none !important;
}

.vpf-map__legend {
	list-style: none !important;
}

.vpf-map a,
.vpf-form a {
	letter-spacing: normal;
}

.vpf-map img,
.vpf-form img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: middle;
}

.vpf-map.alignfull {
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
