.oo-viewtoggle {
	position: relative;
	display: none;
	flex: 0 0 auto;
	width: 72px;
	height: 36px;
	border-radius: 18px;
	background: var(--color-sand, #DDD8CF);
}

@media ( min-width: 1024px ) {
	.oo-viewtoggle { display: flex; }
}

.oo-viewtoggle__knob {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--color-text);
	transition: transform 0.2s ease-out;
	pointer-events: none;
}

.oo-viewwrap[data-view="grid"] .oo-viewtoggle__knob {
	transform: translateX( 36px );
}

.oo-viewtoggle__btn,
.oo-viewtoggle__btn:hover,
.oo-viewtoggle__btn:focus {
	position: relative;
	z-index: 1;
	display: flex !important;
	flex: 0 0 36px !important;
	align-items: center;
	justify-content: center;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: var(--color-text) !important;
	cursor: pointer;
}

.oo-viewwrap[data-view="list"] .oo-viewtoggle__btn[data-set-view="list"],
.oo-viewwrap[data-view="grid"] .oo-viewtoggle__btn[data-set-view="grid"] {
	color: var(--color-surface) !important;
}

@media ( prefers-reduced-motion: reduce ) {
	.oo-viewtoggle__knob { transition: none; }
}

.oo-suche input,
.oo-suche input:focus,
.oo-suche input:hover {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	outline: none !important;
	font: inherit !important;
	color: inherit !important;
	line-height: 1.6 !important;
}

.oo-suche input::placeholder {
	color: var(--color-text);
	opacity: 1;
}

.oo-suche input::-webkit-search-cancel-button { display: none; }

.oo-check input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 3px !important;
	background: var(--color-surface) !important;
	box-shadow: none !important;
	cursor: pointer;
}

.oo-check input[type="checkbox"]:checked {
	background: var(--color-text) !important;
}

.oo-check input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 6px;
	top: 2px;
	width: 5px;
	height: 10px;
	border: solid var(--color-surface);
	border-width: 0 2px 2px 0;
	transform: rotate( 45deg );
}

.oo-check input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 2px;
}

:is(.oo-card, .oo-oh, .oo-projekt):has(.oo-ziel:hover, .oo-ziel:focus-visible) .elementor-button-warning .elementor-button-content-wrapper::after {
	transform: translateX( 4px );
}

@media ( prefers-reduced-motion: reduce ) {
	:is(.oo-card, .oo-oh, .oo-projekt):has(.oo-ziel:hover, .oo-ziel:focus-visible) .elementor-button-warning .elementor-button-content-wrapper::after {
		transform: none;
	}
}

.oo-card .elementor-button-warning,
.oo-oh .elementor-button-warning {
	display: inline-block;
}

.oo-suche input { cursor: text; }

.oo-suche__btn,
.oo-suche__btn:hover,
.oo-suche__btn:focus {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 16px !important;
	height: 16px !important;
	min-width: 16px !important;
	flex: 0 0 16px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	color: var(--color-brand) !important;
	cursor: pointer;
}

.oo-suche__btn:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 3px;
}

.oo-galerie__zahlen {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}

.oo-galerie__zahl,
.oo-galerie__zahl:hover,
.oo-galerie__zahl:focus {
	display: inline-block !important;
	width: auto !important;
	min-width: 24px !important;
	min-height: 24px !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 4.2px 0 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	background-color: transparent !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
	letter-spacing: 4.2px !important;
	color: color-mix( in srgb, var(--color-text) 65%, transparent ) !important;
	cursor: pointer;
	transition: color 0.2s ease;
}

.oo-galerie__zahl:hover,
.oo-galerie__zahl:focus-visible {
	color: var(--color-brand) !important;
}

.oo-galerie__zahl[aria-current="true"] {
	color: var(--color-brand) !important;
}

.oo-galerie__zahl:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 3px;
}

@media ( prefers-reduced-motion: reduce ) {
	.oo-galerie__zahl { transition: none; }
}

.oo-galerie__spur {
	cursor: grab;
}

.oo-galerie__spur:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 3px;
}
.oo-galerie__spur--zieht {
	cursor: grabbing;
	user-select: none;
}

.oo-galerie__spur img {
	-webkit-user-drag: none;
	user-select: none;
}

.oo-formular {
	max-width: 1039px;
	margin-inline: auto;
}

.oo-formular__objekt {
	margin: 0 0 32px;
	font-family: var(--font-body);
	font-size: clamp(16px, 15.30px + 0.179vw, 18px);
	font-weight: 300;
	line-height: 1.6;
	color: var(--color-text);
}

.oo-formular__raster {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}

@media ( min-width: 1024px ) {
	.oo-formular__raster {
		grid-template-columns: 509fr 510fr;
	}
}

.oo-formular__feld--breit,
.oo-formular__absenden,
.oo-formular__pflicht,
.oo-formular__hinweistext {
	grid-column: 1 / -1;
}

.oo-formular__feld label {
	display: block;
	margin: 0;
	position: relative;
}

.oo-formular__text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.oo-formular input[type="text"],
.oo-formular input[type="email"],
.oo-formular input[type="tel"],
.oo-formular input[type="number"],
.oo-formular input[type="url"],
.oo-formular input:not([type]),
.oo-formular select,
.oo-formular textarea,
.oo-formular .ts-control {
	display: block !important;
	width: 100% !important;
	min-height: 60px !important;
	margin: 0 !important;
	padding: 0 25px !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 0 !important;
	background: var(--color-surface) !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-size: clamp(16px, 15.30px + 0.179vw, 18px) !important;
	font-weight: 400 !important;
	line-height: 58px !important;
	color: var(--color-text) !important;
}

.oo-formular textarea {
	min-height: 201px !important;
	padding: 18px 25px !important;
	line-height: 1.6 !important;
	resize: vertical;
}

.oo-formular input::placeholder,
.oo-formular textarea::placeholder {
	font-size: inherit;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
	opacity: 1;
}

.oo-formular input:focus,
.oo-formular select:focus,
.oo-formular textarea:focus,
.oo-formular .ts-control.focus {
	outline: none !important;
	border-color: var(--color-text) !important;
}

.oo-formular .ts-wrapper { width: 100%; }
.oo-formular .ts-control > input { margin: 0 !important; padding: 0 !important; border: 0 !important; min-height: 0 !important; line-height: inherit !important; }
.oo-formular .ts-control::after { border-color: var(--color-brand) transparent transparent !important; }

.oo-formular__pflicht,
.oo-formular__hinweistext {
	margin: 0;
	font-family: var(--font-body);
	font-size: clamp(14px, 13.30px + 0.179vw, 16px);
	font-weight: 300;
	line-height: 1.6;
	color: var(--color-text);
}

.oo-formular__hinweistext {
	color: var(--color-text);
}

.oo-formular__feld--haken label {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	font-family: var(--font-body);
	font-size: clamp(14px, 13.30px + 0.179vw, 16px);
	font-weight: 300;
	line-height: 1.6;
	color: var(--color-text);
	cursor: pointer;
}

.oo-formular input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: 0 0 auto;
	width: 27px !important;
	height: 27px !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 4px !important;
	background: var(--color-surface) !important;
	position: relative;
	cursor: pointer;
}

.oo-formular input[type="checkbox"]:checked { background: var(--color-text) !important; }

.oo-formular input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 9px;
	top: 4px;
	width: 6px;
	height: 12px;
	border: solid var(--color-surface);
	border-width: 0 2px 2px 0;
	transform: rotate( 45deg );
}

.oo-formular__hinweis {
	margin: 0 0 24px;
	padding: 16px 20px;
	font-family: var(--font-body);
	font-size: clamp(14px, 13.30px + 0.179vw, 16px);
	line-height: 1.6;
}

.oo-formular__hinweis--ok     { background: var(--color-sand, #DDD8CF); color: var(--color-text); }
.oo-formular__hinweis--fehler { background: var(--color-sand, #DDD8CF); color: var(--color-text); border-left: 4px solid var(--color-brand); }
.oo-formular__feld--fehler input,
.oo-formular__feld--fehler textarea { border-color: var(--color-brand) !important; }

.oo-formular .submit_button {
	display: inline-flex !important;
	align-items: center;
	gap: 52px;
	width: auto !important;
	min-height: 0 !important;
	padding: 10px 30px !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 9999px !important;
	background: var(--color-text) !important;
	font-family: var(--font-body) !important;
	font-size: clamp(14px, 13.30px + 0.179vw, 16px) !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
	color: var(--color-surface) !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.oo-formular .submit_button::after {
	content: '';
	display: block;
	flex: 0 0 auto;
	width: 17.63px;
	height: 13.46px;
	background-color: var(--color-surface);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.337 14.166'%3E%3Cpath d='M0 7.08302H17.6299M10.9004 13.8125L17.6299 7.08302L10.9004 0.353553' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.337 14.166'%3E%3Cpath d='M0 7.08302H17.6299M10.9004 13.8125L17.6299 7.08302L10.9004 0.353553' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.oo-formular .submit_button:hover,
.oo-formular .submit_button:focus {
	background: var(--color-surface) !important;
	color: var(--color-text) !important;
}

.oo-formular .submit_button:hover::after,
.oo-formular .submit_button:focus::after {
	background-color: var(--color-brand);
	transform: translateX( 4px );
}

.oo-formular .submit_button.onoffice-unclickable-form { opacity: 0.6; cursor: wait; }

@media ( prefers-reduced-motion: reduce ) {
	.oo-formular .submit_button,
	.oo-formular .submit_button::after { transition: none; }
}

.oo-formular .oo-single-select .oo-formular__text {
	position: absolute;
	left: 25px;
	top: 50%;
	transform: translateY( -50% );
	width: auto;
	height: auto;
	margin: 0;
	overflow: visible;
	clip: auto;
	clip-path: none;
	z-index: 1;
	pointer-events: none;
	font-family: var(--font-body);
	font-size: clamp(16px, 15.30px + 0.179vw, 18px);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
}

.oo-formular .oo-single-select:has( .ts-wrapper.has-items ) .oo-formular__text,
.oo-formular .oo-single-select:has( .ts-wrapper.focus ) .oo-formular__text,
.oo-formular .oo-single-select:has( .ts-wrapper.dropdown-active ) .oo-formular__text {
	display: none;
}

.oo-formular .ts-control .item .remove,
.oo-formular .ts-control .item .remove-single {
	display: none !important;
}

.oo-formular .ts-control .item {
	display: inline !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: none !important;
	font: inherit !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text) !important;
}

.oo-formular .ts-control {
	padding-right: 55px !important;
}

.oo-formular .oo-single-select {
	position: relative;
}

.oo-formular .oo-single-select::after {
	content: '';
	position: absolute;
	right: 25px;
	top: 50%;
	width: 13.46px;
	height: 6.73px;
	margin-top: -3.37px;
	pointer-events: none;
	background-color: var(--color-brand);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.46 6.73'%3E%3Cpath d='M0.35 0.35L6.73 6.38L13.11 0.35' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.46 6.73'%3E%3Cpath d='M0.35 0.35L6.73 6.38L13.11 0.35' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: transform 0.2s ease-out;
}

.oo-formular .oo-single-select:has( .ts-wrapper.dropdown-active )::after {
	transform: rotate( 180deg );
}

@media ( prefers-reduced-motion: reduce ) {
	.oo-formular .oo-single-select::after { transition: none; }
}

.oo-formular__absenden {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-self: start;
	width: max-content;
	max-width: 100%;
}

.oo-formular__absenden::after {
	content: '';
	position: absolute;
	right: 30px;
	top: 50%;
	width: 17.63px;
	height: 13.46px;
	margin-top: -6.73px;
	pointer-events: none;
	background-color: var(--color-surface);
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.337 14.166'%3E%3Cpath d='M0 7.08302H17.6299M10.9004 13.8125L17.6299 7.08302L10.9004 0.353553' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18.337 14.166'%3E%3Cpath d='M0 7.08302H17.6299M10.9004 13.8125L17.6299 7.08302L10.9004 0.353553' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-size: contain;
	transition: transform 0.2s ease, background-color 0.2s ease;
}

.oo-formular__absenden input[type="submit"],
.oo-formular__absenden button,
.oo-formular__absenden .submit_button {
	display: inline-flex !important;
	align-items: center;
	width: auto !important;
	min-height: 0 !important;
	min-height: 50px !important;
	padding: 10px 100px 10px 30px !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 9999px !important;
	background: var(--color-text) !important;
	font-family: var(--font-body) !important;
	font-size: clamp(14px, 13.30px + 0.179vw, 16px) !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
	color: var(--color-surface) !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.oo-formular__absenden:hover input[type="submit"],
.oo-formular__absenden:hover button,
.oo-formular__absenden:focus-within input[type="submit"],
.oo-formular__absenden:focus-within button {
	background: var(--color-surface) !important;
	color: var(--color-text) !important;
}

.oo-formular__absenden:hover::after,
.oo-formular__absenden:focus-within::after {
	background-color: var(--color-brand);
	transform: translateX( 4px );
}

@media ( prefers-reduced-motion: reduce ) {
	.oo-formular__absenden::after,
	.oo-formular__absenden input[type="submit"] { transition: none; }
}

.oo-formular__feld--haken {
	margin-top: 12px;
}

.oo-formular__hinweistext a {
	color: inherit;
	text-decoration: underline;
}

.oo-formular__hinweistext a:hover,
.oo-formular__hinweistext a:focus {
	color: inherit;
}

.oo-galerie__zahlen[hidden] { display: none !important; }

.oo-projekt[hidden] { display: none !important; }

.oo-oh__play,
.oo-oh__play:hover,
.oo-oh__play:focus {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 78px !important;
	height: 78px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 9999px !important;
	background: transparent !important;
	box-shadow: none !important;
	cursor: pointer;
}

@media ( min-width: 640px ) and ( max-width: 1023px ) {
	.oo-oh__play,
	.oo-oh__play:hover,
	.oo-oh__play:focus {
		width: 56px !important;
		height: 56px !important;
	}
}

.oo-oh__play:focus-visible {
	outline: 2px solid var(--color-brand);
	outline-offset: 3px;
}

:is(.e-con, .e-con-inner):has(> .elementor-element :is(.oo-openhouse, .oo-projekte, .oo-viewwrap)) {
	flex-wrap: nowrap !important;
}

.oo-formular .oo-single-select::after {
	right: 12px;
	width: 13.46px;
	height: 21.11px;
	margin-top: -10.56px;
	z-index: 2;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.46 21.11'%3E%3Cpath d='M0.35 6.38L6.73 0.35L13.11 6.38M0.35 14.73L6.73 20.76L13.11 14.73' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13.46 21.11'%3E%3Cpath d='M0.35 6.38L6.73 0.35L13.11 6.38M0.35 14.73L6.73 20.76L13.11 14.73' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
}

.oo-formular .oo-single-select:has( .ts-wrapper.dropdown-active )::after {
	transform: none;
}

.oo-formular .ts-wrapper.multi .ts-control .item + .item::before {
	content: ', ';
}
.oo-formular .ts-wrapper.multi .ts-control {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	line-height: 1.4 !important;
}

.oo-formular__titel {
	margin: 0 0 59px;
	font-family: var(--font-heading);
	font-size: clamp(24px, 21.19px + 0.715vw, 32px);
	font-weight: 300;
	line-height: 1.36;
	text-transform: uppercase;
	color: var(--color-text);
}

.oo-formular__titel,
.oo-ecke-titel {
	position: relative;
	padding: 34px 0 0 34px !important;
}
.oo-formular__titel::before,
.oo-ecke-titel::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: var(--ecke-breite, 62px);
	height: var(--ecke-hoehe, 64px);
	background:
		linear-gradient(var(--ecke-farbe, #CD1E14), var(--ecke-farbe, #CD1E14)) left top / 100% var(--ecke-staerke, 15px) no-repeat,
		linear-gradient(var(--ecke-farbe, #CD1E14), var(--ecke-farbe, #CD1E14)) left top / var(--ecke-staerke, 15px) 100% no-repeat;
	pointer-events: none;
}
@media (max-width: 1023px) {
	.oo-formular__titel,
	.oo-ecke-titel { padding: 22px 0 0 22px !important; }
}

.oo-formular:has( .oo-formular__gruppe ) .oo-formular__titel {
	margin-bottom: 46px;
}

.oo-formular__gruppe {
	margin: 0 0 31px;
	font-family: var(--font-body);
	font-size: clamp(16px, 15.30px + 0.179vw, 18px);
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
}

.oo-formular__gruppe--folge {
	margin-top: 60px;
}

.oo-formular__raster--schluss {
	margin-top: 40px;
}

.oo-formular__raster--schluss .oo-formular__feld--haken {
	margin-top: 0;
}

.oo-formular--dunkel .oo-formular__titel,
.oo-formular--dunkel .oo-formular__gruppe,
.oo-formular--dunkel .oo-formular__feld--haken label,
.oo-formular--dunkel .oo-formular__pflicht,
.oo-formular--dunkel .oo-formular__hinweistext {
	color: var(--color-text);
}

.oo-formular--dunkel .oo-formular__feld--haken {
	margin-top: 10px;
}

.oo-formular--dunkel .oo-formular__feld--haken label {
	align-items: center;
}

.oo-formular--dunkel .oo-formular__feld--haken a,
.oo-formular__feld--haken a {
	color: inherit !important;
	text-decoration: underline;
}

.oo-formular--dunkel input[type="checkbox"] {
	width: 24px !important;
	height: 24px !important;
	border: 1px solid var(--color-brand) !important;
	border-radius: 0 !important;
	background: var(--color-surface) !important;
}

.oo-formular--dunkel input[type="checkbox"]:checked {
	background: var(--color-brand) !important;
}

.oo-formular--dunkel input[type="checkbox"]:checked::after {
	left: 8px;
	top: 3px;
}

.oo-formular--dunkel .oo-formular__absenden {
	margin-top: 39px;
}

.oo-formular--knopf-sekundaer .oo-formular__absenden input[type="submit"],
.oo-formular--knopf-sekundaer .oo-formular__absenden button,
.oo-formular--knopf-sekundaer .oo-formular__absenden .submit_button {
	background: transparent !important;
	border-color: var(--color-text) !important;
	color: var(--color-text) !important;
}

.oo-formular--knopf-sekundaer .oo-formular__absenden::after {
	background-color: var(--color-brand);
}

.oo-formular--knopf-sekundaer .oo-formular__absenden:hover input[type="submit"],
.oo-formular--knopf-sekundaer .oo-formular__absenden:hover button,
.oo-formular--knopf-sekundaer .oo-formular__absenden:focus-within input[type="submit"],
.oo-formular--knopf-sekundaer .oo-formular__absenden:focus-within button {
	background: var(--color-text) !important;
	border-color: var(--color-text) !important;
	color: var(--color-surface) !important;
}

.oo-formular--knopf-sekundaer .oo-formular__absenden:hover::after,
.oo-formular--knopf-sekundaer .oo-formular__absenden:focus-within::after {
	background-color: var(--color-surface);
}

.oo-formular--knopf-sekundaer .submit_button::after {
	display: none !important;
}

.oo-formular__label {
	display: block;
	margin: 0 0 12px;
	font-family: var(--font-body);
	font-size: clamp(14px, 13.30px + 0.179vw, 16px);
	font-weight: 400;
	line-height: 1.3;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text);
}

.oo-formular--dunkel .oo-formular__label {
	color: var(--color-text);
}

.oo-formular--labels-oben .oo-formular__raster {
	row-gap: 30px;
}

.oo-formular--labels-oben .oo-single-select .oo-formular__text {
	top: auto;
	bottom: 30px;
	transform: translateY( 50% );
	z-index: 3;
}

.oo-formular--labels-oben .oo-single-select::after {
	top: auto;
	bottom: 30px;
	margin-top: 0;
	margin-bottom: -10.56px;
}

.oo-formular .ts-control > input::placeholder {
	color: transparent !important;
}

.oo-formular__spanne {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

.oo-formular__spanne--einzeln {
	grid-template-columns: 1fr;
}

.oo-formular__spanne-teil {
	display: block;
	min-width: 0;
}

.oo-formular input[type="number"] {
	-moz-appearance: textfield;
	appearance: textfield;
}
.oo-formular input[type="number"]::-webkit-inner-spin-button,
.oo-formular input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.oo-formular__feld--haken label {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-start;
	justify-content: flex-start;
	gap: 16px;
}

.oo-formular__feld--haken label > input[type="checkbox"] {
	order: -1;
	margin-top: 0 !important;
}

.oo-formular__feld--haken .oo-label-text {
	display: block !important;
	flex: 1 1 auto;
	min-width: 0;
	color: inherit !important;
	font: inherit !important;
}

.oo-formular--dunkel .oo-formular__feld--haken label {
	align-items: center;
	color: var(--color-text) !important;
}

.oo-formular .oo-formular__absenden {
	margin-top: 20px;
}

.oo-formular--dunkel .oo-formular__absenden {
	margin-top: 39px;
}

.oo-formular--labels-oben .oo-formular__absenden {
	margin-top: 29px;
}

@media ( max-width: 1023px ) {
	.oo-formular--labels-oben .oo-formular__raster {
		row-gap: 24px;
	}

	.oo-formular .oo-formular__absenden,
	.oo-formular--dunkel .oo-formular__absenden {
		margin-top: 20px;
	}

	.oo-formular--labels-oben .oo-formular__absenden {
		margin-top: 16px;
	}
}

.oo-formular .oo-single-select .oo-formular__text {
	z-index: 3;
}

.oo-formular .ts-control,
.oo-formular .ts-wrapper.multi .ts-control {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: center;
	height: 60px !important;
	overflow: hidden;
	white-space: nowrap;
	line-height: 1.4 !important;
}

.oo-formular .ts-control > .item {
	flex: 0 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.oo-formular .ts-control > input {
	display: block !important;
	flex: 1 1 0 !important;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
}

.oo-formular .ts-wrapper.has-items:not( .focus ) .ts-control > input {
	flex: 0 0 0 !important;
	width: 0 !important;
}

.oo-formular .ts-dropdown {
	margin: 0 !important;
	border: 1px solid var(--color-text) !important;
	border-top: 0 !important;
	border-radius: 0 !important;
	box-shadow: 0 8px 20px rgba( 0, 0, 0, 0.12 );
	background: var(--color-surface) !important;
	z-index: 20;
}

.oo-formular .ts-dropdown .option {
	display: flex !important;
	align-items: center;
	gap: 14px;
	padding: 10px 25px !important;
	font-family: var(--font-body);
	font-size: clamp(15px, 14.65px + 0.089vw, 16px);
	font-weight: 400;
	line-height: 1.4;
	color: var(--color-text) !important;
	cursor: pointer;
}

.oo-formular .ts-dropdown .option.active,
.oo-formular .ts-dropdown .option:hover {
	background: var(--color-sand, #DDD8CF) !important;
	color: var(--color-text) !important;
}

.oo-formular .ts-dropdown .option.selected {
	font-weight: 500;
}

.oo-formular .ts-dropdown input.tomselect-checkbox {
	flex: 0 0 18px;
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 0 !important;
	background: var(--color-surface) !important;
	pointer-events: none;
}

.oo-formular .ts-dropdown input.tomselect-checkbox:checked,
.oo-formular .ts-dropdown input.tomselect-checkbox.ts-checked {
	border-color: var(--color-brand) !important;
	background: var(--color-brand) !important;
}

.oo-formular .ts-dropdown input.tomselect-checkbox:checked::after,
.oo-formular .ts-dropdown input.tomselect-checkbox.ts-checked::after {
	content: '';
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid var(--color-surface);
	border-width: 0 2px 2px 0;
	transform: rotate( 45deg );
}

.oo-formular .ts-dropdown input.tomselect-checkbox.ts-unchecked:not( :checked )::after {
	content: none;
}

.oo-formular .error,
.oo-formular .error p {
	margin: 8px 0 0 !important;
	font-family: var(--font-body);
	font-size: 14px !important;
	font-weight: 400;
	line-height: 1.4;
	color: var(--color-brand) !important;
}

.oo-formular--dunkel .error,
.oo-formular--dunkel .error p {
	color: var(--color-text) !important;
}

.oo-formular .error p {
	margin: 0 !important;
}

.oo-formular input[type="text"],
.oo-formular input[type="email"],
.oo-formular input[type="tel"],
.oo-formular input[type="number"],
.oo-formular input[type="url"],
.oo-formular input:not([type]),
.oo-formular textarea,
.oo-formular .ts-control,
.oo-formular .ts-control > input {
	font-size: clamp(16px, 15.30px + 0.179vw, 18px) !important;
	font-weight: 400 !important;
	letter-spacing: 0.04em !important;
	color: var(--color-text) !important;
}

.oo-formular input::placeholder,
.oo-formular textarea::placeholder {
	font-size: inherit;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--color-text) !important;
	opacity: 1;
}

.oo-formular .ts-control .item,
.oo-formular .oo-single-select .oo-formular__text {
	font-size: clamp(16px, 15.30px + 0.179vw, 18px) !important;
	font-weight: 400 !important;
	letter-spacing: 0.04em !important;
	text-transform: uppercase !important;
	color: var(--color-text) !important;
}

.oo-formular .ts-control > input::placeholder {
	color: transparent !important;
}

.oo-formular__spanne-teil--einheit {
	position: relative;
}

.oo-formular__spanne-teil--einheit input {
	padding-right: 55px !important;
}

.oo-formular__einheit {
	position: absolute;
	right: 20px;
	top: 30px;
	transform: translateY( -50% );
	pointer-events: none;
	font-family: var(--font-body);
	font-size: clamp(16px, 15.30px + 0.179vw, 18px);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1;
	color: var(--color-text);
}

.oo-slider .oo-galerie__spur {
	scroll-snap-type: x mandatory;
}

.oo-slider .oo-galerie__spur.ist-frei {
	scroll-snap-type: none;
}

.oo-slider__karte {
	scroll-snap-align: start;
}

.oo-galerie__zahlen[hidden] { display: none !important; }

.oo-galerie__spur {
	overflow-y: hidden !important;
	overscroll-behavior-y: auto;
	touch-action: pan-x pan-y;
}

.oo-knopf,
.oo-knopf:hover,
.oo-knopf:focus,
.oo-knopf:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 52px !important;
	width: auto !important;
	min-height: 50px !important;
	height: auto !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding: 10px 30px !important;
	border: 1px solid var(--color-text) !important;
	border-radius: 9999px !important;
	background: var(--color-surface) !important;
	box-shadow: none !important;
	font-family: var(--font-body) !important;
	font-size: clamp(14px, 13.30px + 0.179vw, 16px) !important;
	font-weight: 500 !important;
	line-height: 1.6 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	white-space: nowrap;
	color: var(--color-text) !important;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

.oo-knopf__icon {
	flex: 0 0 auto;
	color: var(--color-brand);
	transition: color 0.2s ease, transform 0.2s ease;
}

.oo-knopf:hover,
.oo-knopf:focus-visible,
.oo-knopf[data-geaendert] {
	background: var(--color-text) !important;
	border-color: var(--color-text) !important;
	color: var(--color-surface) !important;
}

.oo-knopf:hover .oo-knopf__icon,
.oo-knopf:focus-visible .oo-knopf__icon,
.oo-knopf[data-geaendert] .oo-knopf__icon {
	color: var(--color-surface);
}

.oo-knopf:hover .oo-knopf__icon,
.oo-knopf:focus-visible .oo-knopf__icon {
	transform: translateX(4px);
}

.oo-knopf:focus-visible {
	outline: 2px solid var(--color-brand) !important;
	outline-offset: 3px !important;
}

@media (max-width: 639px) {
	.oo-knopf--suchen,
	.oo-knopf--suchen:hover,
	.oo-knopf--suchen:focus {
		width: auto !important;
		align-self: flex-start !important;
		justify-self: start !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.oo-knopf,
	.oo-knopf__icon { transition: none !important; }
}

@media (min-width: 768px) {
	.oo-viewwrap--vier[data-view="grid"] [data-oo-grid] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: 20px;
		row-gap: 50px;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card {
		padding-bottom: 39px;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__bild {
		aspect-ratio: 333 / 359;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__text {
		margin-top: 20px;
		gap: 23px;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__titel {
		font-size: 20px !important;
		line-height: normal !important;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__fakten {
		column-gap: 16px;
		padding-right: 0;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__fakten dt {
		font-size: 16px;
		letter-spacing: 0.04em;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card__fakten dd {
		font-size: 16px;
		line-height: 1.6;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card .elementor-button-warning {
		margin-top: auto;
		padding-top: 5px;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card .elementor-button {
		font-size: 14px !important;
		min-height: 49px;
	}
	.oo-viewwrap--vier[data-view="grid"] .oo-card .elementor-button-content-wrapper {
		gap: 35px !important;
	}
}
@media (min-width: 1024px) {
	.oo-viewwrap--vier[data-view="grid"] [data-oo-grid] {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (min-width: 1440px) {
	.oo-viewwrap--vier[data-view="grid"] [data-oo-grid] {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

:is(.e-con, .e-con-inner):has(> .elementor-element .oo-leer):not(:has(> .elementor-element form)) {
	--padding-top: 0px !important;
	--padding-block-start: 0px !important;
	padding-top: 0 !important;
	padding-block-start: 0 !important;
}

@media ( max-width: 767px ) {
	.oo-formular input[type="text"],
	.oo-formular input[type="email"],
	.oo-formular input[type="tel"],
	.oo-formular input[type="number"],
	.oo-formular input[type="url"],
	.oo-formular input:not([type]),
	.oo-formular select {
		min-height: 48px !important;
		padding: 0 16px !important;
		line-height: 46px !important;
	}

	.oo-formular .ts-control,
	.oo-formular .ts-wrapper.multi .ts-control {
		min-height: 48px !important;
		height: 48px !important;
		padding: 0 44px 0 16px !important;
	}

	.oo-formular__einheit {
		top: 24px;
		right: 16px;
	}

	.oo-formular .oo-formular__spanne-teil--einheit input {
		padding-right: 48px !important;
	}

	.oo-formular textarea {
		min-height: 140px !important;
		height: 140px;
		padding: 12px 16px !important;
	}

	.oo-formular__raster {
		gap: 14px;
	}

	.oo-formular--labels-oben .oo-formular__raster {
		row-gap: 18px;
	}

	.oo-formular__label {
		margin-bottom: 6px;
	}

	.oo-formular__gruppe--folge {
		margin-top: 36px;
	}

	.oo-formular__titel {
		margin-bottom: 28px;
	}

	.oo-formular:has( .oo-formular__gruppe ) .oo-formular__titel {
		margin-bottom: 24px;
	}

	.oo-formular__gruppe {
		margin-bottom: 16px;
	}

	.oo-formular__objekt {
		margin-bottom: 20px;
	}

	.oo-formular__raster--schluss {
		margin-top: 24px;
	}

	.oo-formular--dunkel .oo-formular__absenden {
		margin-top: 28px;
	}

	.oo-formular--labels-oben .oo-single-select .oo-formular__text,
	.oo-formular--labels-oben .oo-single-select::after {
		bottom: 24px;
	}

	.oo-formular .oo-single-select .oo-formular__text {
		left: 16px;
	}

	.oo-formular__hinweis {
		padding: 12px 16px;
	}
}

.sib_signup_form .oo-formular {
	margin-inline: 0;
}

.sib_signup_form .oo-formular__raster > p {
	margin: 0;
}

.sib_signup_form .sib_msg_disp:empty {
	display: none;
}

.sib_signup_form p.sib-alert-message {
	margin: 0 0 24px !important;
	padding: 16px 20px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: var(--color-sand, #DDD8CF) !important;
	color: var(--color-text) !important;
	font-family: var(--font-body) !important;
	font-size: clamp(16px, 15.30px + 0.179vw, 18px) !important;
	font-weight: 300 !important;
	line-height: 1.6 !important;
	text-shadow: none !important;
}

.sib_signup_form p.sib-alert-message-error,
.sib_signup_form p.sib-alert-message-warning {
	border-left: 4px solid var(--color-brand) !important;
}

.sib_signup_form .sib_loader {
	margin-bottom: 16px;
}

.sib_signup_form .oo-single-select .oo-formular__text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
}

.sib_signup_form .oo-single-select select {
	-webkit-appearance: none;
	appearance: none;
	padding-right: 55px !important;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}

.sib_signup_form .oo-single-select select:has( option[value=""]:checked ) {
	color: var(--color-text) !important;
}

@media ( min-width: 1024px ) {
	.sib_signup_form div.sib-ANREDE-area {
		justify-self: start;
		width: calc( ( 100% - 20px ) * 509 / 1019 );
	}
}

.oo-formular.oo-formular .oo-formular__absenden.oo-formular__absenden :is(input[type="submit"], button, .submit_button),
.oo-formular.oo-formular .oo-formular__absenden.oo-formular__absenden:is(:hover, :focus-within) :is(input[type="submit"], button, .submit_button),
.oo-formular.oo-formular .submit_button.submit_button,
.oo-formular.oo-formular .submit_button.submit_button:is(:hover, :focus) {
	background-color: transparent !important;
	border-color: var(--color-text) !important;
	color: var(--color-text) !important;
}
.oo-formular.oo-formular .oo-formular__absenden.oo-formular__absenden::after,
.oo-formular.oo-formular .oo-formular__absenden.oo-formular__absenden:is(:hover, :focus-within)::after,
.oo-formular__absenden::after,
.oo-formular__absenden:is(:hover, :focus-within)::after,
.oo-formular .submit_button::after,
.oo-formular .submit_button:is(:hover, :focus)::after {
	background-color: var(--color-brand) !important;
}

.oo-knopf:not([data-geaendert]):is(:hover, :focus-visible) {
	background: var(--color-surface) !important;
	border-color: var(--color-text) !important;
	color: var(--color-text) !important;
}
.oo-knopf:not([data-geaendert]):is(:hover, :focus-visible) .oo-knopf__icon {
	color: var(--color-brand);
}

.oo-detail-ansprechpartner .e-con.e-parent {
	--padding-top: 0px !important;
	--padding-bottom: 0px !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.oo-detail-ansprechpartner .e-con.e-parent > .e-con-inner {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.oo-ecke-bild::before {
	content: "";
	position: absolute;
	z-index: 2;
	left: calc(-1 * var(--ecke-staerke, 15px));
	top: calc(-1 * var(--ecke-staerke, 15px));
	width: var(--ecke-breite, 62px);
	height: var(--ecke-hoehe, 64px);
	background:
		linear-gradient(var(--ecke-farbe, #CD1E14), var(--ecke-farbe, #CD1E14)) left top / 100% var(--ecke-staerke, 15px) no-repeat,
		linear-gradient(var(--ecke-farbe, #CD1E14), var(--ecke-farbe, #CD1E14)) left top / var(--ecke-staerke, 15px) 100% no-repeat;
	pointer-events: none;
}
