/************************************ Start: Kontaktformular ************************************/
label.select { display: block !important; }
form input, form select, form textarea { font-weight: 350; font-size: 18px; line-height: 26px; height: auto; padding: 12px; background: var(--tertiary-10); border: none; border-radius: var(--border-radius-small); outline: 0; }
form textarea { height: 198px; }
form select { cursor: pointer; appearance: none; padding: 12px 53px 12px 12px; }
form .flex_horizontalalignement_center button { display: table !important; margin: 0 auto; }
::placeholder { font-weight: 350; font-size: 18px; line-height: 26px; color: var(--color-ph); }
:-ms-input-placeholder { font-weight: 350; font-size: 18px; line-height: 26px; color: var(--color-ph); }
::-ms-input-placeholder { font-weight: 350; font-size: 18px; line-height: 26px; color: var(--color-ph); }
form.ff .frm_spacer { width: 100%; height: 1px; background: var(--tertiary-100); }
.frm_subtitle > div { font-family: "IBM Plex Sans", sans-serif; font-weight: 600; 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: 22px; transform: translateY(-50%); display: block; width: 19px; height: 11px; 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: 350; 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: 600; font-size: 15px; line-height: 23px; min-height: 23px; margin: 0 0 3px 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-10); border: 1px solid var(--tertiary-10); 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(--tertiary-10); border: 1px solid var(--tertiary-10); 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(--tertiary-100); border-radius: 3px 0 0 3px; }
main label.date input,
main label.time input { padding: 12px 12px 12px 60px; height: 50px; }

.frm_dz_lst { background: var(--tertiary-100); border: 1px solid var(--tertiary-100); border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; padding: 15px; font-weight: 350; font-size: 15px; line-height: 23px; color: var(--white); }
.frm_dz_lst b { font-weight: 600; }
.frm_dz_lst i { font-style: normal; }
.frm_dz_container { height: 223px; }
.frm_dz_container .frm_dz_txt { border: 1px solid var(--tertiary-10) !important; background: var(--tertiary-10) !important; border-radius: 0 0 var(--border-radius-small) var(--border-radius-small); }
.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: 350; font-size: 18px; line-height: 27px; color: #9F9F9F; text-align: center; }
.frm_dz_lst > div > ul { display: block; padding: 0; }
.frm_dz_lst ul li { border-bottom: 1px solid var(--tertiary-100); }
.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(--tertiary-100); }
/* End: Nach Absenden */

@media screen and (max-width: 959px) {
	form input, form select, form textarea { font-weight: 350; font-size: 15px; line-height: 24px; padding: 5px 10px; }
	form textarea { height: 175px; }
	form select { padding: 5px 39px 5px 10px; }
	::placeholder { font-size: 15px; line-height: 24px; }
	:-ms-input-placeholder { font-size: 15px; line-height: 24px; }
	::-ms-input-placeholder { font-size: 15px; line-height: 24px; }
	.frm_subtitle > div { font-size: 20px; line-height: 24px; }
	main label.select:after { right: 10px; }
	.frm_input > label { font-weight: 350; font-size: 15px; line-height: 24px !important; min-height: 24px; }
	main label.date:after,
	main label.time:after { font-size: 18px; line-height: 32px; width: 32px; height: 32px; }
	main label.date input,
	main label.time input { padding: 5px 10px 5px 42px; height: 34px; }
	.frm_dz_container { height: 200px; }
	.frm_dz_container .frm_dz_txt span { font-size: 15px; line-height: 24px; }
}
/************************************ Ende: Kontaktformular ************************************/