/************************************ Start: Include Fix ************************************/
.block_50000.cms_padding_1 { padding: 0; }
/************************************ Ende: Include 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: CMS IMG Klasse ************************************/
.block_20000 .cms_imgBlock_imgContainer { width: 100%; }
.block_20000 .cms_imgBlock_imgBox { position: relative; width: 100%; }
.block_20000 .cms_imgBlock_imgBox > .full_article_link { border-radius: 10px; }
.block_20000 .cms_imgBlock_imgBox > picture,
.block_20000 .cms_imgBlock_imgBox > picture > img { display: flex; width: 100%; }
.block_20000 .cms_imgBlock_imgBox > picture > img { border-radius: 10px; }
.block_20000 .cms_imgBlock_imgLegend { font-weight: 300; font-size: 16px; line-height: 20px; margin: 10px 0 0 0; }
/************************************ End: CMS IMG Klasse ************************************/

/************************************ Start: Trennlinie ************************************/
.block hr, .block_60000 hr { border: none; outline: none; height: 1px; background: var(--secondary-100); }
/************************************ Ende: Trennlinie ************************************/

/************************************ Start: Galerie Title und Beschreibung ************************************/
.cms_gallery_header { font-family: "Onest", sans-serif; font-weight: 500; font-size: 35px; line-height: 42px; padding: 0 0 15px 0; }
.cms_gallery_intro { font-weight: 400; font-size: 25px; line-height: 35px; padding: 0 0 30px 0; }
@media screen and (max-width: 959px) {
	.cms_gallery_header { font-size: 24px; line-height: 29px; }
	.cms_gallery_intro { font-size: 20px; line-height: 28px; }
}
/************************************ Ende: Galerie Title und Beschreibung ************************************/

/************************************ Start: Kontaktformular ************************************/
label.select { display: block !important; }
form input, form select, form textarea { font-weight: 300; font-size: 18px; line-height: 26px; height: auto; padding: 11px 12px; background: var(--white); border: 1px solid var(--primary); border-radius: 5px; outline: 0; }
form textarea { height: 200px; }
form select { cursor: pointer; appearance: none; padding: 11px 44px 11px 12px; }
form .flex_horizontalalignement_center .button_box { display: table !important; margin: 0 auto; }
::placeholder { font-weight: 300; font-size: 18px; line-height: 26px; color: var(--black); }
:-ms-input-placeholder { font-weight: 300; font-size: 18px; line-height: 26px; color: var(--black); }
::-ms-input-placeholder { font-weight: 300; font-size: 18px; line-height: 26px; color: var(--black); }
form.ff .frm_spacer { width: 100%; height: 1px; background: var(--secondary-100); }
.frm_subtitle > div { font-weight: 700; font-size: 25px; line-height: 30px; }
.frm_header p { margin: 0 0 30px 0; }
main label.select:after { content: ""; pointer-events: none; position: absolute; z-index: 10; top: 50%; right: 13px; transform: translateY(-50%); display: block; width: 20px; height: 12px; 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-weight: 300; font-size: 18px; line-height: 27px !important; min-height: 27px; }
.frm_input:not(.frm_input_7):not(.frm_input_8) > label,
.flex_box_label_radiocheck > label { font-weight: 700; font-size: 16px; line-height: 24px; min-height: 24px; margin: 0 0 2px 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(--white); border: 1px solid var(--primary); border-radius: 3px; }
main input[type="checkbox"] + label:after { content: ""; top: 50%; left: 3px; transform: translateY(-50%); width: 16px; height: 16px; 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(--white); border: 1px solid var(--primary); 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); }
main input[type="radio"]:checked + label:after { background: var(--primary); }
/* 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); border-radius: 3px 0 0 3px; }
main label.date input,
main label.time input { padding: 11px 12px 11px 60px; height: 50px; }

.frm_dz_lst { border: 1px solid var(--primary); border-radius: 5px 5px 0 0; background: var(--white); padding: 15px; font-weight: 300; font-size: 16px; line-height: 24px; color: var(--black); }
.frm_dz_lst b { font-weight: 700; }
.frm_dz_lst i { font-style: normal; }
.frm_dz_container { height: 283px; }
.frm_dz_container .frm_dz_txt { border: 1px solid var(--primary) !important; background: var(--white) !important; border-radius: 0 0 5px 5px; }
.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-weight: 300; font-size: 18px; line-height: 27px; color: var(--black); text-align: center; }
.frm_dz_lst > div > ul { display: block; padding: 0; }
.frm_dz_lst ul li { border-bottom: 1px solid var(--primary); }
.frm_dz_lst ul li:before { content: none !important; }
.frm_dz_lst ul li div { color: var(--black); }
.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(--secondary-100); }
/* End: Nach Absenden */

@media screen and (max-width: 959px) {
	form input, form select, form textarea { padding: 5px 10px; }
	form textarea { height: 175px; }
	form select { padding: 5px 40px 5px 10px; }
	.frm_subtitle > div { font-size: 20px; line-height: 24px; }
	main label.select:after { right: 11px; }
	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_container { height: 200px; }
}
/************************************ 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: 640px) {
	.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: 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: Zitat ************************************/
.cms_zitat_box { display: flex; flex-direction: column; align-items: center; gap: 50px; width: 100%; }
.cms_zitat_imgSection { position: relative; z-index: 1; display: flex; align-items: flex-end; gap: 30px; max-width: 570px; width: 100%; }
.cms_zitat_imgSection:has(.cms_zitat_imgFixZindex) { z-index: 12; }
.cms_zitat_imgSection:before,
.cms_zitat_imgSection:after { content: ""; flex: 1; height: 3px; background: var(--primary); }
.cms_zitat_imgMain { position: relative; max-width: 170px; width: 100%; }
.cms_zitat_imgMain > svg { position: absolute; z-index: 2; bottom: -20px; left: 5px; display: flex; width: 55px; height: 50px; }
.cms_zitat_imgContainer { width: 100%; }
.cms_zitat_imgBox { width: 100%; }
.cms_zitat_imgBox > .full_article_link { border-radius: 50%; }
.cms_zitat_imgBox > picture { display: flex; width: 100%; padding: 0 0 100% 0; }
.cms_zitat_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; border-radius: 50%; }
.cms_zitat_imgLegend { display: none; }
.cms_zitat_text { text-align: center; }
.cms_zitat_text *+p { padding-top: 26px; }
@media screen and (max-width: 500px) {
	.cms_zitat_imgSection { justify-content: center; }
	.cms_zitat_imgSection:before,
	.cms_zitat_imgSection:after { content: none; }
}
/************************************ End: Zitat ************************************/

/************************************ Start: Teaser klein ************************************/
.cms_tk_box { position: relative; display: flex; flex-direction: column; width: 100%; padding: 0 0 31px 0; }
.cms_tk_box:before { content: ""; position: absolute; z-index: 1; bottom: 0; left: 0; width: 100%; height: 1px; background: var(--primary); }
.cms_tk_imgContainer { position: relative; z-index: 1; width: 100%; margin: 0 0 25px 0; }
.cms_tk_imgBox { width: 100%; }
.cms_tk_imgBox > picture { display: flex; width: 100%; padding: 0 0 114.59459459459458% 0; }
.cms_tk_imgBox > picture > img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-position: center; object-fit: cover; border-radius: var(--border-radius-default); }
.cms_tk_titel { margin: 0 0 15px 0; }
@media screen and (max-width: 959px) { .block_170000 { width: 50% !important; } }
@media screen and (max-width: 640px) { .block_170000 { width: 100% !important; } }
/************************************ End: Teaser klein ************************************/