/************************************ Start: Root ************************************/
:root {
	--primary-100: #007456;
	--primary-30: #B2D5CC;
	--primary-10: #E5F1EE;
	--primary-rgb: 96,166,146;
	--secondary: #60A692;
	--tertiary: #F3F3F3;
	--black: #363636;
	--white: #FFFFFF;
	--trennlinie: #C4C4C4;
	--ph-color: #9F9F9F;
	--subnavi-bg: #F7F7F7;
	--btn-border-radius: 8px;
	--input-border-radius: 5px;
	--border-radius-tiny: 5px;
	--border-radius-small: 8px;
	--border-radius-default: 10px;
	--btn-box-shadow: 0px 20px 20px 0px rgba(0,0,0,0.08);
	--transition: all .3s;
}
/************************************ Ende: Root ************************************/
/************************************ Start: Skelleton ************************************/
html { min-height: 100%; line-height: 1px; }
body { height: 100%; font-family: "Inter", sans-serif; font-weight: 300; font-size: 18px; line-height: 27px; color: var(--black); }
@media screen and (max-width: 767px) { body { font-size: 15px; line-height: 23px; } }
body.navi { overflow: hidden; }
body > table { width: 100%; max-width: 100%; min-height: 100vH; }
body > table > tbody > tr,
body > table > tbody > tr > td { height: 100%; }
/************************************ Ende: Skelleton ************************************/
/************************************ Start: Sticky Footer  ************************************/
#cmsgrid { min-height: 100svh; }
/************************************ End: Sticky Footer  ************************************/
/************************************ Start: Fix Overflow X Problem mit Navi ************************************/
#smooth-wrapper { overflow-x: clip !important; }
/************************************ End: Fix Overflow X Problem mit Navi ************************************/
/************************************ Start: Scroll Smoother Lines Between Sections Fix / Browser Renderer Fix ************************************/
#smooth-content { will-change: transform; }
/************************************ End: Scroll Smoother Lines Between Sections Fix / Browser Renderer Fix ************************************/
/************************************ Start: Grid Override ************************************/
.cms_container_tiny { width: 100%; max-width: 830px; margin: 0 auto; }
.cms_container_narrow { width: 100%; max-width: 930px; margin: 0 auto; }
.cms_container { width: 100%; max-width: 1230px; margin: 0 auto; }
.cms_container_wide { width: 100%; max-width: 1630px; margin: 0 auto; }
.cms_container_ultrawide { width: 100%; max-width: 100%; }
.cms_padding_025 { padding:  5px; }
.cms_padding_05 { padding:  10px; }
.cms_padding_1 { padding:  15px; }
.cms_padding_2 { padding: 30px; }
.flex_container.cms_padding_1 { padding:  15px; }
.flex_box.cms_padding_1 { padding:  15px; }
.flex_container.cms_padding_2 { padding: 30px; }
.flex_box.cms_padding_2 { padding: 30px; }
/************************************ Ende: Grid Override ************************************/
/************************************ Start: Include Fix ************************************/
.block_50000.cms_padding_1 { padding: 0; }
/************************************ Ende: Include Fix ************************************/
/************************************ Start: Section Anchor Fix ************************************/
a.section_anchor { height: 0px; line-height: 0px; font-size: 0px; }
/************************************ Ende: Section Anchor Fix ************************************/
/************************************ Start: Google Maps ************************************/
.art_map_box { position: relative; width: 100%; height: 0; padding: 0 0 66.66666666666667% 0; overflow: hidden; }
.art_map_box > div { position: absolute; inset: 0; }
.art_map_box > div > iframe { width: 100%; height: 100%; border: none !important; }
/************************************ Ende: Google Maps ************************************/
/************************************ Start: YT Video ************************************/
.art_video_box { position: relative; width: 100%; min-height: auto; padding: 0 0 56.25% 0; background: var(--black); overflow: hidden; }
.art_video_box iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; min-height: 0; }
/************************************ Ende: YT Video ************************************/
/************************************ Start: Catpadding Klasse ************************************/
.catpadding { padding: 24px 0; }
/************************************ Ende: Catpadding Klasse ************************************/
/************************************ Start: Galerie Negative Margin ************************************/
.cms_galNegMargin_box .cms_gpa_main { margin: -45px 0 0 0; }
/************************************ End: Galerie Negative Margin ************************************/
/************************************ Start: Kein Container Cat Color ************************************/
/*.cat_color:has(+ .cat_color_container > .cms_container_ultrawide) { inset: 0 30px; border-radius: var(--border-radius-small); }
@media screen and (max-width: 959px) { .cat_color:has(+ .cat_color_container > .cms_container_ultrawide) { inset: 0; border-radius: 0; } }*/
main > div > div > div > section > .cat_color { inset: 0 30px !important; border-radius: var(--border-radius-small); }
@media screen and (max-width: 1690px) { main > div > div > div > section > .cat_color { inset: 0 !important; border-radius: 0; } }
/*@media screen and (max-width: 959px) { main > div > div > div > section > .cat_color { inset: 0 !important; border-radius: 0; } }*/
/************************************ End: Kein Container Cat Color ************************************/
/************************************ Start: Tablet 100% Artikel Klasse ************************************/
@media screen and (max-width: 1280px) { .cms_tablet100art_box .artlst_container .flex_box_12 { width: 100%; } }
/************************************ Ende: Tablet 100% Artikel Klasse ************************************/
/************************************ Start: Teaser Scroll Klasse ************************************/
div:not(.artlst_container) > .cms_teaserScroll_box .art.flex_container { padding: 15px 22.5px !important; }
div:not(.artlst_container) > .cms_teaserScroll_box .art.block { padding: 15px 7.5px !important; }
.artlst_container > .cms_teaserScroll_box .flex_container > .block:not(:last-of-type) { padding: 15px 15px 0 15px !important; }
@media screen and (max-width: 1280px) {
	.cms_teaserScroll_box .artbox { overflow-x: scroll; overflow-y: hidden; }
	.cms_teaserScroll_box .artbox::-webkit-scrollbar { display: none; }
	.cms_teaserScroll_box .artbox { -ms-overflow-style: none; scrollbar-width: none; }
	.cms_teaserScroll_box .artbox > .flex_container { flex-wrap: nowrap !important; flex-shrink: 0; }
	.cms_tablet100art_box .cms_teaserScroll_box .art_link { width: calc(100% + 30px) !important; margin: 0 -15px; }
	.cms_tablet100art_box .cms_teaserScroll_box .art.flex_container { padding: 15px 22.5px !important; }
	.artlst_container > .cms_teaserScroll_box .flex_container > .block:not(:last-of-type) { padding: 15px 7.5px !important; }
	.artlst_container > .cms_teaserScroll_box .flex_container > .block:last-of-type { padding: 15px 7.5px !important; }
}
/************************************ Ende: Teaser Scroll Klasse ************************************/
/************************************ Start: Tiny Tables Klasse ************************************/
.cms_tinyTables_box .block_10000 table { display: table; width: 100%; margin: 0 0 30px 0 !important; }
.cms_tinyTables_box .block_10000 table tr { border-bottom: 1px solid var(--trennlinie); padding: 15px; display: block; float: left; width: 100%; }
.cms_tinyTables_box .block_10000 table tr:first-of-type { border-bottom: none; }
.cms_tinyTables_box .block_10000 table td { display: block; float: left; width: 50%; }
.cms_tinyTables_box .block_10000 table tr:first-of-type > td { font-weight: 600; }
.cms_tinyTables_box .block_10000 table tr > td:first-of-type { padding: 0 30px 0 0; }
@media screen and (max-width: 959px) {
	.cms_tinyTables_box .block_10000 table tr { display: block; float: left; width: 100%; border: 1px solid var(--trennlinie); margin: 0 0 30px 0; padding: 10px; }
	.cms_tinyTables_box .block_10000 table tr:first-of-type { display: none; }
	.cms_tinyTables_box .block_10000 table td { display: block; float: left; width: 100%; padding: 0 0 15px 0 !important; }
	.cms_tinyTables_box .block_10000 table tr > td:last-of-type { padding: 0 !important; }
	.cms_tinyTables_box .block_10000 table td:before { content: attr(data-label); float: left; display: block; width: 100%; font-weight: 600; }
	.cms_tinyTables_box .block_10000 table td.cms_data_label_empty:before { content: none !important; }
	.cms_tinyTables_box .block_10000 table td p { display: block; float: left; width: 100%; }
}
/************************************ Ende: Tiny Tables Klasse ************************************/
/************************************ Start: CMS IMG Klasse ************************************/
.block_20000 .cms_imgBlock_imgContainer { width: 100%; }
.block_20000 .cms_imgBlock_imgBox { position: relative; width: 100%; }
.block_20000 .cms_imgBlock_imgBox > picture,
.block_20000 .cms_imgBlock_imgBox > picture > img { display: flex; width: 100%; }
.block_20000 .cms_imgBlock_imgLegend { font-style: italic; font-size: 15px; line-height: 23px; margin: 11px 0 0 0; }
/************************************ End: CMS IMG Klasse ************************************/
/************************************ Start: Smooth Scroller Parallax ************************************/
.cms_parallax_imgContainer { overflow: clip; }
.cms_parallax_img { position: absolute; z-index: 1; display: block; width: 100%; height: 110%; object-fit: cover; bottom: 0; }
/************************************ End: Smooth Scroller Parallax ************************************/
/************************************ Start: Trennlinie ************************************/
.block hr, .block_60000 hr { border: none; outline: none; height: 1px; background: var(--trennlinie); }
/************************************ Ende: Trennlinie ************************************/
/************************************ Start: CMS jssor-Slide Object Fit  ************************************/
#cmsShadowSlider .cms_jssor .slide picture { display: flex; align-items: center; justify-content: center; }
#cmsShadowSlider .cms_jssor .slide picture img { max-width: 75vW; max-height: 75vH; object-fit: contain !important; }
/************************************ End: CMS jssor-Slide Object Fit ************************************/
/************************************ Start: Headings ************************************/
h1, h2, h3, h4 { font-family: "Space Grotesk", sans-serif; font-weight: 700; padding: 0; margin: 0; }
main *+h1, main *+h2, main *+h3, main *+h4, main *+h5 { padding-top: 30px; }
h1:has(+*), h2:has(+*), h3:has(+*), h4:has(+*), h5:has(+*) { padding: 0 0 15px 0; }
h1 { font-size: 62px; line-height: 74px; }
h2 { font-size: 42px; line-height: 50px; }
h3 { font-size: 32px; line-height: 38px; }
h4 { font-size: 24px; line-height: 29px; }
@media screen and (max-width: 767px) {
	h1 { font-size: 28px; line-height: 34px; }
	h2 { font-size: 24px; line-height: 29px; }
	h3 { font-size: 20px; line-height: 24px; }
	h4 { font-size: 18px; line-height: 22px; }
}
/************************************ Ende: Headings ************************************/
/************************************ Start: Content Font Settings ************************************/
a { cursor: pointer; text-decoration: none; }
.art a {
	display: inline-block;
	font-family: inherit;
	font-weight: inherit;
	font-size: inherit;
	line-height: inherit;
	color: var(--secondary);
	text-align: inherit;
	text-decoration: none;
	transition: var(--transition);
}
.art a:hover { color: var(--primary-100); text-decoration: underline; }
main p { margin: 0; padding: 0; }
main *+p { padding-top: 15px; }
main ul,
main ol { display: flex; flex-direction: column; gap: 10px; list-style: none; margin: 0; padding: 0; }
main *+ul,
main *+ol { padding-top: 15px; }
main ol li,
main ul li { position: relative; padding: 0 0 0 29px; }
main ul li:before { content: ""; position: absolute; top: 7.5px; left: 0; width: 18px; height: 12px; background: center left / contain no-repeat url("/pages/img/listing/listing_icon.svg"); }
@media screen and (max-width: 767px) { main ul li:before { top: 5.5px; } }
main b, main strong { font-weight: 600; }
/************************************ Ende: Content Font Settings ************************************/
/************************************ Start: Galerie Title und Beschreibung ************************************/
.cms_gallery_header { font-family: "Space Grotesk", sans-serif; font-weight: 700; font-size: 42px; line-height: 50px; padding: 0 0 15px 0; }
.cms_gallery_intro { font-weight: 300; font-size: 24px; line-height: 36px; padding: 0 0 30px 0; }
@media screen and (max-width: 767px) {
	.cms_gallery_header { font-size: 24px; line-height: 29px; }
	.cms_gallery_intro { font-weight: 400; font-size: 17px; line-height: 26px; }
}
/************************************ Ende: Galerie Title und Beschreibung ************************************/
/************************************ Start: Buttons ************************************/
.full_article_link { position: absolute; z-index: 11; inset: 0; }
.button-link > a {
	cursor: pointer;
	display: inline-flex;
	width: auto !important;
	font-weight: 600;
	font-size: 18px;
	line-height: 26px;
	color: var(--white);
	background: var(--secondary);
	border: 1px solid var(--secondary);
	border-radius: var(--btn-border-radius);
	padding: 11px 25px;
	transition: var(--transition);
	will-change: transform;
	text-decoration: none;
}
.button-link > a:hover { display: inline-flex; color: var(--white); background: var(--primary-100); border: 1px solid var(--primary-100); border-radius: var(--btn-border-radius); box-shadow: var(--btn-box-shadow); transform: translateY(-5px); text-decoration: none; }
.button-link-next > a {
    cursor: pointer;
    position: relative;
    display: inline-flex;
    width: auto !important;
    font-weight: 600;
    font-size: 15px;
    line-height: 23px;
    color: var(--secondary);
    background: transparent;
    border: none;
    border-radius: 0;
    padding: 0 23px 0 0;
    transition: var(--transition);
    text-decoration: none;
}
.button-link-next > a:hover { display: inline-flex; color: var(--secondary); background: transparent; border: none; border-radius: 0; text-decoration: none; }
.button-link-next > a:before {
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    width: 8px;
    height: 12px;
    background: center right / contain no-repeat url("/pages/img/button-link-next/arrow.svg");
}
.button-link-back > a {
	cursor: pointer;
	position: relative;
	display: inline-flex;
	width: auto !important;
	font-weight: 700;
	font-size: 15px;
	line-height: 23px;
	color: var(--secondary);
	background: transparent;
	border: none;
	border-radius: 0;
	padding: 0 0 0 23px;
	transition: var(--transition);
	text-decoration: none;
}
.button-link-back > a:hover { display: inline-flex; color: var(--secondary); background: transparent; border: none; border-radius: 0; text-decoration: none; }
.button-link-back > a:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
	background: center left / contain no-repeat url("/pages/img/button-link-back/arrow.svg");
	transition: var(--transition);
	will-change: transform;
}
.button-link-back > a:hover:before { transform: translateY(-50%) translateX(-5px); }
main button {
	cursor: pointer;
	display: inline-flex;
	width: auto !important;
	font-weight: 600;
	font-size: 18px;
	line-height: 26px;
	color: var(--white);
	background: var(--secondary);
	border: 1px solid var(--secondary);
	border-radius: var(--btn-border-radius);
	padding: 11px 25px;
	transition: var(--transition);
	will-change: transform;
	text-decoration: none;
}
main button:hover { display: inline-flex; color: var(--white); background: var(--primary-100); border: 1px solid var(--primary-100); border-radius: var(--btn-border-radius); box-shadow: var(--btn-box-shadow); transform: translateY(-5px); text-decoration: none; }
a.art_link.b1 {
	cursor: pointer;
	display: block;
	width: auto;
	font-weight: 600;
	font-size: 18px;
	line-height: 26px;
	color: var(--white);
	background: var(--secondary);
	border: 1px solid var(--secondary);
	border-radius: var(--btn-border-radius);
	padding: 11px 25px;
	transition: var(--transition);
	will-change: transform;
	text-decoration: none;
}
a.art_link.b1:hover { display: block; color: var(--white); background: var(--primary-100); border: 1px solid var(--primary-100); border-radius: var(--btn-border-radius); box-shadow: var(--btn-box-shadow); transform: translateY(-5px); text-decoration: none; }
a.art_link.b1 > i { font-size: 18px; line-height: 26px; color: var(--white); margin: 0 10px 0 0; transition: var(--transition); }
a.art_link.b1:hover > i { color: var(--white); }
.align_1 { justify-content: flex-start; }
.align_2 { justify-content: center; }
.align_3 { justify-content: flex-end; }
.align_4 > a.art_link.b1 { justify-content: center; width: 100% !important; text-align: center; }
/************************************ Ende: Buttons ************************************/
/************************************ Start: Slider ************************************/
/* Start: Dots */
.cms_jssor > div:nth-last-of-type(3) { right: auto !important; bottom: 15px !important; left: 15px !important; width: calc(100% - 30px) !important; height: auto !important; }
.cms_jssor > div:nth-last-of-type(3) > div { flex-wrap: wrap; align-items: center; gap: 15px; height: auto !important; }
.cms_jssor > div:nth-last-of-type(3) > div > div { inset: auto !important; width: 15px !important; height: 15px !important; }
.cms_jssor > div:nth-last-of-type(3) > div > div:after { inset: 0; border: 2px solid var(--white); border-radius: 50%; background: rgba(255,255,255,0.35); }
.cms_jssor > div:nth-last-of-type(3) > div > div:hover:after { background: var(--white); }
.cms_jssor > div:nth-last-of-type(3) > div > div.iav:after { background: var(--white); }
/* End: Dots */

/* Start: Arrows */
.cms_jssor > div:nth-last-of-type(1),
.cms_jssor > div:nth-last-of-type(2) { transform: translateY(-50%); width: 63px !important; height: 63px !important; margin-top: 0 !important; }
.cms_jssor > div > .cms_jssor_arrow { inset: auto !important; width: 63px !important; height: 63px !important; border: 2px solid var(--white); background: rgba(255,255,255,0.35); transition: var(--transition); }
.cms_jssor > div > .cms_jssor_arrow:hover { background: var(--primary-100); }
.cms_jssor > div > .cms_jssor_arrow:before { inset: 50% auto auto 50% !important; width: 21px; height: 35px; background: center / contain no-repeat url("/pages/img/article_slider/arrow-small-down-white.svg"); border: none !important; }
.cms_jssor_arrow.cms_jssor_arrow_left:before { transform: translate(-50%, -50%) rotate(-180deg); }
.cms_jssor_arrow.cms_jssor_arrow_right:before { transform: translate(-50%, -50%); }
/* End: Arrows */

/* Start: Responsive */
@media screen and (max-width: 1366px) {
	.cms_jssor > div:nth-last-of-type(3) { bottom: 54px !important; left: 78px !important; width: calc(100% - 156px) !important; }
	.cms_jssor > div:nth-last-of-type(1), .cms_jssor > div:nth-last-of-type(2) { transform: none; top: auto !important; bottom: 30px; }
	.cms_jssor > div:first-of-type > div { transform: none !important; }
}
@media screen and (max-width: 959px) {
	.cms_jssor > div:nth-last-of-type(3) { bottom: 27.5px !important; left: 55px !important; width: calc(100% - 110px) !important; }
	.cms_jssor > div:nth-last-of-type(1),
	.cms_jssor > div:nth-last-of-type(2) { bottom: 15px; width: 40px !important; height: 40px !important; }
	.cms_jssor > div > .cms_jssor_arrow { width: 40px !important; height: 40px !important; }
	.cms_jssor > div > .cms_jssor_arrow:before { width: 15px; height: 25px; }
}
/* End: Responsive */
/************************************ Ende: Slider ************************************/
/************************************ Start: Breadcrumbs ************************************/
.cms_breadcrumbs_box { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 15px; }
.cms_breadcrumbs_block { display: flex; align-items: center; gap: 0 15px; }
.cms_breadcrumbs_box a { font-weight: 500; font-size: 13px; line-height: 16px; color: var(--secondary); text-decoration: none; transition: var(--transition); }
.cms_breadcrumbs_box a:hover { color: var(--primary-100); text-decoration: none; }
.cms_breadcrumbs_box a.active { cursor: auto; color: var(--primary-100); }
.cms_breadcrumbs_box a.active:hover { color: var(--secondary); }
.cms_breadcrumbs_spacer { display: inline-flex; }
.cms_breadcrumbs_spacer > svg { width: 5px; height: 8px; }
.cms_breadcrumbs_spacer > svg > path { transition: var(--transition); }
.cms_breadcrumbs_box a + .cms_breadcrumbs_spacer > svg > path { stroke: var(--secondary); }
.cms_breadcrumbs_box a:hover + .cms_breadcrumbs_spacer > svg > path { stroke: var(--primary-100); }
/* Hier mit Absicht 959px, da CMS Panorama dort umbricht! */
@media screen and (max-width: 959px) { .cms_breadcrumbs_box a { font-weight: 400; font-size: 10px; line-height: 15px; } }
/************************************ Ende: Breadcrumbs ************************************/
/************************************ Start: Kontaktformular ************************************/
label.select { display: block !important; }
form input, form select, form textarea {
	font-family: "Inter", sans-serif;
	font-weight: 300;
	font-size: 18px;
	line-height: 26px;
	color: var(--black);
	text-align: left;
	height: auto;
	padding: 11px 12px;
	background: var(--tertiary);
	border: 1px solid var(--tertiary);
	border-radius: var(--input-border-radius);
	outline: 0;
}
form textarea { height: 198px; }
form select { cursor: pointer; appearance: none; padding: 11px 37px 11px 12px; }
form .flex_horizontalalignement_center button { display: table !important; margin: 0 auto; }
::placeholder { font-family: "Inter", sans-serif; font-weight: 300; font-size: 18px; line-height: 26px; color: var(--ph-color); text-align: left; }
:-ms-input-placeholder { font-family: "Inter", sans-serif; font-weight: 300; font-size: 18px; line-height: 26px; color: var(--ph-color); text-align: left; }
::-ms-input-placeholder { font-family: "Inter", sans-serif; font-weight: 300; font-size: 18px; line-height: 26px; color: var(--ph-color); text-align: left; }
form.ff .frm_spacer { width: 100%; height: 1px; background: var(--trennlinie); }
.frm_subtitle > div { font-family: "Space Grotesk", sans-serif; font-weight: 700; font-size: 24px; line-height: 29px; }
.frm_header p { margin: 0 0 30px 0; }
main label.select:after { content: ""; pointer-events: none; position: absolute; z-index: 10; top: 50%; right: 12px; transform: translateY(-50%); display: block; width: 16px; height: 8px; background: center / contain no-repeat url("/pages/img/frm_generator/select_arrow.svg"); }
main input, main textarea, main select { width: 100%; }
.ff .ff_container { margin: -15px; }
.ff .flex_box_12 { margin: 0; padding: 15px; }
.ff .flex_box_12.flex_box_label_radiocheck { margin: 0; padding: 15px; }
.frm_input > label {
	font-family: "Inter", sans-serif;
	font-weight: 300;
	font-size: 18px;
	line-height: 27px !important;
	min-height: 27px;
	color: var(--black);
	text-align: left;
}
.frm_input:not(.frm_input_7):not(.frm_input_8) > label,
.flex_box_label_radiocheck > label {
	font-family: "Inter", sans-serif;
	font-weight: 600;
	font-size: 15px;
	line-height: 23px;
	min-height: 23px;
	color: var(--black);
	text-align: left;
	margin: 0 0 4px 0;
}

/* Start: Checkbox */
main input[type="checkbox"] { position: absolute; display: block; appearance: none; opacity: 0; }
main .frm_input input[type="checkbox"] { top: 50%; right: auto; left: 15px; transform: translateY(-50%); width: calc(100% - 30px); height: 1px; padding: 0; border: none; }
main input[type="checkbox"] + label { display: block !important; background: transparent !important; padding: 0 0 0 39px; }
main input[type="checkbox"] + label:before { top: 50%; transform: translateY(-50%); padding: 10px; background: var(--tertiary); border: 1px solid var(--tertiary); border-radius: 3px; }
main input[type="checkbox"] + label:after { content: ""; top: 50%; left: 5px; transform: translateY(-50%); width: 12px; height: 12px; background: center / contain no-repeat url("/pages/img/frm_generator/checkbox_icon.svg"); }
main input[type="checkbox"]:checked + label:after { background: center / contain no-repeat url("/pages/img/frm_generator/checkbox_icon.svg"); }
/* End: Checkbox */

/* Start: Radio */
main input[type="radio"] { position: absolute; display: block; appearance: none; opacity: 0; }
main .frm_input input[type="radio"] { top: 50%; left: 15px; transform: translateY(-50%); width: calc(100% - 30px); height: 1px; padding: 0; border: none; }
main input[type="radio"] + label { display: block !important; padding: 0 0 0 39px; }
main input[type="radio"] + label:before { top: 50%; transform: translateY(-50%); padding: 10px; background: var(--tertiary); border: 1px solid var(--tertiary); border-radius: 50%; }
main input[type="radio"] + label:after { top: 50%; left: 5px; transform: translateY(-50%); width: 12px; height: 12px; }
main input[type="radio"] + label:hover:after { background: var(--primary-100); }
main input[type="radio"]:checked + label:after { background: var(--primary-100); }
/* End: Radio */

label.date,
label.time { display: block !important; }
main label.date:after,
main label.time:after { font-size: 25px; line-height: 48px; width: 48px; height: 48px; top: 1px; left: 1px; color: var(--white); background: var(--primary-100); border-radius: var(--input-border-radius) 0 0 var(--input-border-radius); }
main label.date input,
main label.time input { padding: 11px 12px 11px 60px; height: 50px; }

.frm_dz_lst {
	border: 1px solid var(--primary-100);
	border-radius: var(--input-border-radius) var(--input-border-radius) 0 0;
	background: var(--primary-100);
	padding: 15px;
	font-family: "Inter", sans-serif;
	font-weight: 300;
	font-size: 15px;
	line-height: 23px;
	color: var(--white);
	text-align: left;
}
.frm_dz_lst b { font-weight: 600; }
.frm_dz_lst i { font-style: normal; }
.frm_dz_container { height: 283px; }
.frm_dz_container .frm_dz_txt { border: 1px solid var(--tertiary) !important; background: var(--tertiary) !important; border-radius: 0 0 var(--input-border-radius) var(--input-border-radius); }
.frm_dz_container .frm_dz_txt > div { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 8px; }
.frm_dz_container .frm_dz_txt i { order: -1; width: 42px; height: 26px; background: center / contain no-repeat url("/pages/img/frm_generator/upload_icon.svg"); }
.frm_dz_container .frm_dz_txt i:before { content: none !important; }
.frm_dz_container .frm_dz_txt span {
	font-family: "Inter", sans-serif;
	font-weight: 300;
	font-size: 18px;
	line-height: 27px;
	color: var(--ph-color);
	text-align: center;
}
.frm_dz_lst > div > ul { display: block; padding: 0; }
.frm_dz_lst ul li { border-bottom: 1px solid var(--trennlinie); }
.frm_dz_lst ul li:before { content: none !important; }
.frm_dz_lst ul li div { color: var(--white); }
.frm_dz_lst ul li div:hover { color: #F00000; }

/* Start: Nach Absenden */
.frm_sent_header * { color: var(--black) !important; }
.frm_sent_table > tbody > tr > td.frm_spacer > div { height: 1px; margin: 15px 0; background: var(--trennlinie); }
.frm_sent_table > tbody > tr > td {
	font-family: "Inter", sans-serif;
	font-weight: 300;
	font-size: 18px;
	line-height: 27px;
	color: var(--black);
	text-align: left;
}
.frm_sent_table > tbody > tr > td.frm_sent_value > a { color: var(--secondary) !important; text-decoration: none !important; transition: var(--transition); }
.frm_sent_table > tbody > tr > td.frm_sent_value > a:hover { color: var(--primary-100) !important; text-decoration: underline !important; }
/* End: Nach Absenden */

@media screen and (max-width: 767px) {
	form input, form select, form textarea { font-size: 15px !important; line-height: 23px !important; padding: 5px 10px; }
	form textarea { height: 175px; }
	form select { padding: 5px 33px 5px 10px; }
	::placeholder { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	:-ms-input-placeholder { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	::-ms-input-placeholder { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	.frm_subtitle > div { font-weight: 700 !important; font-size: 18px !important; line-height: 22px !important; }
	main label.select:after { right: 10px; }
	.frm_input > label { font-weight: 300 !important; font-size: 15px !important; line-height: 27px !important; min-height: 27px !important; }
	.frm_input:not(.frm_input_7):not(.frm_input_8) > label,
	.flex_box_label_radiocheck > label { font-weight: 600 !important; font-size: 15px !important; line-height: 23px !important; min-height: 23px !important; }
	main label.date:after,
	main label.time:after { font-size: 20px; line-height: 36px; width: 36px; height: 36px; }
	main label.date input,
	main label.time input { padding: 5px 10px 5px 46px; height: 38px; }
	.frm_dz_lst { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	.frm_dz_lst b { font-weight: 600 !important; }
	.frm_dz_container { height: 200px; }
	.frm_dz_container .frm_dz_txt span { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	/* Start: Nach Absenden */
	.frm_sent_table > tbody > tr > td { font-weight: 300 !important; font-size: 15px !important; line-height: 23px !important; }
	/* End: Nach Absenden */
}
/************************************ Ende: Kontaktformular ************************************/
/************************************ Start: Gallery Three Four ************************************/
.cms_galleryThreeFour_box { display: flex; flex-wrap: wrap; width: calc(100% + 30px); margin: -15px; }
.cms_galleryThreeFour_33 { width: 33.333%; padding: 15px; }
.cms_galleryThreeFour_25 { width: 25%; padding: 15px; }
.cms_galleryThreeFour_imgContainer { cursor: pointer; position: relative; width: 100%; }
.cms_galleryThreeFour_imgFixZindex { z-index: 10 !important; }
.cms_galleryThreeFour_imgBox { width: 100%; }
.cms_galleryThreeFour_imgBox:before {
	content: "";
	position: absolute;
	z-index: 2;
	inset: 0;
	width: 100%;
	height: 100%;
	background: rgba(0,0,0,0.5);
	visibility: hidden;
	opacity: 0;
	transition: var(--transition);
}
.cms_galleryThreeFour_imgBox:hover:before { visibility: visible; opacity: 1; }
.cms_galleryThreeFour_imgBox:after {
	content: "\f002";
	position: absolute;
	z-index: 3;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	font: 28px 'FontAwesome';
	line-height: 30px;
	color: var(--white);
	text-align: center;
	visibility: hidden;
	opacity: 0;
	transition: var(--transition);
}
.cms_galleryThreeFour_imgBox:hover:after { visibility: visible; opacity: 1; }
.cms_galleryThreeFour_imgBox > picture { display: block; width: 100%; padding: 0 0 80.97165991902834% 0; }
.cms_galleryThreeFour_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; }
.cms_galleryThreeFour_imgLegend {
	position: absolute;
	z-index: 10;
	bottom: 15px;
	left: 15px;
	max-width: calc(100% - 30px);
	font-style: italic;
	font-size: 18px;
	line-height: 24px;
	text-align: center;
	padding: 10px;
	background: rgba(255,255,255,0.75);
}
@media screen and (max-width: 767px) {
	.cms_galleryThreeFour_33 { width: 50%; }
	.cms_galleryThreeFour_25 { width: 50%; }
	.cms_galleryThreeFour_imgLegend { display: none; }
}
@media screen and (max-width: 320px) {
	.cms_galleryThreeFour_33 { width: 100%; }
	.cms_galleryThreeFour_25 { width: 100%; }
}
/************************************ End: Gallery Three Four ************************************/
/************************************ Start: Footer ************************************/
footer { border-bottom: 10px solid var(--primary-100); }
footer .catpadding { padding: 0 0 34px 0; }
footer strong { font-weight: 600; }
footer > div > div > div > section:first-of-type p { font-size: 22px; line-height: 33px; }
footer > div > div > div > section:first-of-type .art a { color: var(--black); }
footer > div > div > div > section:first-of-type .art a:hover { color: var(--secondary); }
footer .art a:hover { text-decoration: none; }
footer p { padding: 0 0 15px 0; }
footer p:first-of-type { padding: 0; }
footer p:last-of-type { padding: 0; }
footer section:first-of-type .artlst_container.cms_padding_1 { padding: 0 15px 15px 15px; }
footer section:first-of-type .artlst_container > article.flex_box_12:first-of-type { width: 506px; }
footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) { width: 238px; }
footer section:first-of-type .artlst_container > article.flex_box_12:first-of-type .block_20000.flex_box_12 { max-width: 330px; }
footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000.flex_box_12.cms_padding_1 { display: flex; width: 57px !important; height: 45px; padding: 15px 15px 0 15px; }
footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000 .cms_imgBlock_imgContainer { display: flex; }
footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000 .cms_imgBlock_imgBox { display: flex; }
footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000 .cms_imgBlock_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center left; object-fit: contain; }
footer section:last-of-type .small-text { display: inline-flex; align-items: center; gap: 62px; }
@media screen and (max-width: 1280px) {
	footer section:first-of-type .artlst_container.cms_padding_1 { padding: 15px; }
	footer section:first-of-type .artlst_container > article.flex_box_12:first-of-type { width: 100% !important; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) { width: 238px !important; }
	footer section:first-of-type .artlst_container { justify-content: space-between !important; }
}
@media screen and (max-width: 767px) { footer > div > div > div > section:first-of-type p { font-size: 15px; line-height: 23px; } }
@media screen and (max-width: 640px) {
	footer section:first-of-type .artlst_container > article.flex_box_12:first-of-type { width: 100% !important; margin: 0 0 15px 0; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) { width: 100% !important; }
	footer section:first-of-type .artlst_container > article.flex_box_12:first-of-type .block_20000.flex_box_12 { max-width: 210px; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .flex_container { flex-wrap: nowrap; align-items: center; gap: 20px; padding: 15px !important; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block.cms_padding_1 { padding: 0; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000.flex_box_12.cms_padding_1 { width: 30px !important; height: auto; flex-shrink: 0; padding: 0; }
	footer section:first-of-type .artlst_container > article.flex_box_12:not(:first-of-type) .block_20000 .cms_imgBlock_imgBox > picture > img { position: relative; height: auto; }
	footer section:last-of-type .small-text { gap: 24px; }
}
/************************************ Ende: Footer ************************************/
/************************************ Start: Search Results ************************************/
.search_result_container { padding: 120px 0 0 0; }
.load_search_result { padding: 72px 0 0 0; }
.search_result_container h1 {
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #333333;
	margin: 0;
	padding: 0;
}
.search_result_container h2 {
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 26px;
	line-height: 33px;
	text-align: left;
	color: #333333;
	margin: 0;
	padding: 0 0 23px 0;
}
.search_result_container h2:after { content: none; }
.search_result_container form input {
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
	display: block;
	width: 100%;
	max-width: 800px;
	padding: 0 0 5px 0;
	border: none;
	border-bottom: 1px solid #333333;
	background: transparent;
}
.search_result_container form input::-webkit-input-placeholder { /* Chrome/Opera/Safari */
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
}
.search_result_container form input::-moz-placeholder { /* Firefox 19+ */
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
}
.search_result_container form input:-ms-input-placeholder { /* IE 10+ */
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
}
.search_result_container form input:-o-input-placeholder { /* IE 10+ */
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
}
.search_result_container form input:-moz-placeholder { /* Firefox 18- */
	font-family: "Outfit", sans-serif;
	font-weight: 600;
	font-size: 52px;
	line-height: 62px;
	text-align: left;
	color: #3EA2F7;
}
.search_result_container .cms-search-txt {
	display: none;
	font-family: "Outfit", sans-serif;
	font-weight: 400;
	font-size: 18px;
	line-height: 28px;
	text-align: left;
	color: #333333;
	padding: 0;
	margin: 0;
}
.cms-search-url { display: block; }
.cms-search-url-mobile { display: none; }
@media only screen and (max-width: 600px) {
	.cms-search-url { display: none; }
	.cms-search-url-mobile { display: block; }
}
.search_result_container .cms-search-url > a {
	font-family: "Outfit", sans-serif;
	font-weight: 400;
	font-size: 18px;
	line-height: 35px;
	text-align: left;
	color: #333333;
	padding: 0;
	margin: 0;
}
.search_result_container .cms-search-url > a:hover { text-decoration: underline; }
.search_result_container .search-results-spacer { display: block; width: 100%; height: 0; }
.search_result_container .search-results-spacer:last-of-type { display: none; }
.search_result_container .color-red { color: #3EA2F7; }
.search_result_container hr {
    background: #333333;
    height: 1px;
    border: none;
    margin: 30px 0;
}
@media screen and (max-width: 959px) { .search_result_container { padding: 55px 0 0 0 !important; } }
@media only screen and (max-width: 959px) {
	.search_result_container h1 { font-size: 24px; line-height: 32px; }
	.search_result_container .search-results { font-size: 18px; line-height: 24px; padding: 50px 0 15px 0; }
	.search_result_container form input { font-size: 18px; line-height: 24px; }
	.search_result_container form input::-webkit-input-placeholder { font-size: 18px; line-height: 24px; }
	.search_result_container form input::-moz-placeholder { font-size: 18px; line-height: 24px; }
	.search_result_container form input:-ms-input-placeholder { font-size: 18px; line-height: 24px; }
	.search_result_container form input:-o-input-placeholder { font-size: 18px; line-height: 24px; }
	.search_result_container form input:-moz-placeholder { font-size: 18px; line-height: 24px; }
	.search_result_container .cms-search-txt { font-size: 18px; line-height: 20px; }
	.search_result_container .cms-search-url > a { font-size: 18px; line-height: 24px; }
	.search_result_container .search-results-spacer { height: 15px; }
}
/************************************ End: Search Results ************************************/
/************************************ Start: Download-Manager ************************************/
/* Ohne Navigationsbaum */
.dn_list > div > div { display: block; float: left; width: 100%; background: rgba( 255,255,255,0.5); padding: 15px; }
.dn_list > div { display: block; float: left; width: 100%; }
.cms_dn_list_anchor { display: block; float: left; clear: both; width: 100%; padding: 10px; }
.cms_dn_list_icon { display: block; float: left; margin: 0 10px 0 0; }
.cms_dn_list_name { display: block; float: left; }
.cms_dn_list_date { display: block; float: right; }
.dn_list a:nth-of-type(2N-1) { background: rgba( 0,0,0,0.0625); }
.dn_list a:hover { color: #FFFFFF; background: #3EA2F7; cursor: pointer; }
/* Mit Navigationsbaum */
.dn_list > div { display: block; float: left; width: 100%; }
.dm_list > div > div { display: block; float: left; width: 100%; background: rgba( 255,255,255,0.5); padding: 15px; }
.cms_dm_list_anchor { display: block; float: left; clear: both; width: 100%; padding: 10px; }
.cms_dm_list_icon { display: block; float: left; margin: 0 10px 0 0; }
.cms_dm_list_name { display: block; float: left; }
.cms_dm_list_date { display: block; float: right; }
.dm_list a:nth-of-type(2N-1) { background: rgba( 0,0,0,0.0625); }
.dm_list a:hover { color: #FFFFFF; background: #3EA2F7; cursor: pointer; }
/************************************ End: Download-Manager ************************************/
/************************************ Start: Fix Article- and Category Lst ************************************/
/*.cms_container_wide { background: purple; }
.cms_container { background: red; }
.cms_container_narrow { background: yellow; }*/

article { display: flex; }
article > a,
article > a > div,
article > a > div > div,
article > div,
article > div > div,
article > div > div > div { display: flex; width: 100%; }

section.cat_sub.flex_box_12 { display: flex; }
a.section_anchor { position: absolute; width: 100%; height: 0; font-size: 0px; line-height: 0px; z-index: 1; top: 0; left: 0; background: transparent; }
.cat_color_container { width: 100%; }
.cat.flex_verticalalignement_stretch > section > .cat_color_container { display: flex; }
.cat.flex_verticalalignement_stretch > section > .cat_color_container > .cat_content { display: flex; }

.cms_padding_0_2x { padding: 0 !important; }
.cms_padding_025_2x { padding: 10px !important; }
.cms_padding_05_2x { padding: 20px !important; }
.cms_padding_1_2x { padding: 30px !important; }
.cms_padding_2_2x { padding: 60px !important; }

.artlst_container .cms_padding_0_2x { padding: 0 !important; }
.artlst_container .cms_padding_025_2x { padding: 5px !important; }
.artlst_container .cms_padding_05_2x { padding: 10px !important; }
.artlst_container .cms_padding_1_2x { padding: 15px !important; }
.artlst_container .cms_padding_2_2x { padding: 30px !important; }

.artlst_container { flex-wrap: inherit !important; justify-content: inherit !important; align-content: inherit !important; align-items: inherit !important; }
.artlst_container .flex_container.cms_padding_0 { padding: 0 !important; }
.artlst_container .flex_container.cms_padding_025 { padding: 0 !important; }
.artlst_container .flex_container.cms_padding_05 { padding: 0 !important; }
.artlst_container .flex_container.cms_padding_1 { padding: 0 !important; }
.artlst_container .flex_container.cms_padding_2 { padding: 0 !important; }
/*
Falls bei Includes Probleme!
.artlst_container .art.flex_container.cms_padding_0 { padding: 0 !important; }
.artlst_container .art.flex_container.cms_padding_025 { padding: 0 !important; }
.artlst_container .art.flex_container.cms_padding_05 { padding: 0 !important; }
.artlst_container .art.flex_container.cms_padding_1 { padding: 0 !important; }
.artlst_container .art.flex_container.cms_padding_2 { padding: 0 !important; }
*/
.artlst_container .artlst_hasBorColYN .flex_container.cms_padding_0 { padding: 0px !important; }
.artlst_container .artlst_hasBorColYN .flex_container.cms_padding_025 { padding: 5px !important; }
.artlst_container .artlst_hasBorColYN .flex_container.cms_padding_05 { padding: 10px !important; }
.artlst_container .artlst_hasBorColYN .flex_container.cms_padding_1 { padding: 15px !important; }
.artlst_container .artlst_hasBorColYN .flex_container.cms_padding_2 { padding: 30px !important; }
/*
Falls bei Includes Probleme!
.artlst_container .artlst_hasBorColYN .art.flex_container.cms_padding_0 {}
.artlst_container .artlst_hasBorColYN .art.flex_container.cms_padding_025 {}
.artlst_container .artlst_hasBorColYN .art.flex_container.cms_padding_05 {}
.artlst_container .artlst_hasBorColYN .art.flex_container.cms_padding_1 {}
.artlst_container .artlst_hasBorColYN .art.flex_container.cms_padding_2 {}
*/
.cat_color_inset { inset: 30px !important; }
.container_color_inset { padding: 30px !important; }

.full_art_link { position: absolute !important; z-index: 11 !important; }
.full_art_link_cms_padding_0 { inset: 0px !important; }
.full_art_link_cms_padding_025 { inset: 10px !important; }
.full_art_link_cms_padding_05 { inset: 20px !important; }
.full_art_link_cms_padding_1 { inset: 30px !important; }
.full_art_link_cms_padding_2 { inset: 60px !important; }

.artlst_container .full_art_link_cms_padding_0 { inset: 0px !important; }
.artlst_container .full_art_link_cms_padding_025 { inset: 5px !important; }
.artlst_container .full_art_link_cms_padding_05 { inset: 10px !important; }
.artlst_container .full_art_link_cms_padding_1 { inset: 15px !important; }
.artlst_container .full_art_link_cms_padding_2 { inset: 30px !important; }

.artlst_hasBorColYN .full_art_link { inset: 0 !important; }
/************************************ End: Fix Article- and Category Lst ************************************/