div.success {
    background-color: #85C058;
    color: #666666;
}
div.error {
    background-color: #C30E21;
    color: #FFFFFF;
}
div.success, div.error {
    padding: .5em .5em .5em .66em;
    margin-bottom: .2em;
	clear: both;
}
form, form div {
	--input-height: 2.6rem;
	position: relative;
	text-align: left;
}
form fieldset {
	margin-bottom: 1em;
}
form legend {
	font-size: 1.5em;
	margin: 0 0 .33em;
}
form.row > *,
form .row > * {
	margin-bottom: 0;
	padding-top: 0;
	padding-bottom: 0;
}
form .short {
	clear: none;
	float: left;
	width: 31.33%;
}
form .medium {
	clear: none;
	float: right;
	width: 64.67%;
}
form input, form select, form textarea {
	background: #fff;
	border: 0;
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
	color: var(--textcolor);
	font-size: .9em;
	height: var(--input-height);
	line-height: 1.75;
	margin: 0;
	padding: .7em min(3vw, 1em) 0;
	width: 100%;
}
form input[type="checkbox"], form input[type="radio"] {
	margin-bottom: initial;
	padding: initial;
	width: auto;
}
main form input:hover,
main form input:focus,
main form textarea:hover,
main form textarea:focus {
	border-color: var(--textcolor);
}
main form select:hover,
main form select:focus {
	background-image: url("data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' height='20px' width='25px'> <text x='0' y='15' fill='%23333' font-family='icomoon' font-size='16'>&%23x2335;</text> </svg>");
	border-color: var(--textcolor);
}
main form input[type="file"] {
	font-size: .8em;
	height: calc(var(--input-height) / 0.8);
	padding-top: 1.4em;
}
main form input[type="checkbox"],
main form input[type="radio"] {
	margin: 0 5px 0 0;
	width: auto;
}
main form select {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	background: #fff no-repeat right center;
	background-image: url("data:image/svg+xml;utf8, <svg xmlns='http://www.w3.org/2000/svg' height='20px' width='25px'> <text x='0' y='15' fill='%23666' font-family='icomoon' font-size='16'>&%23x2335;</text> </svg>");
	text-indent: 0.01px;
	text-overflow: "";
}
form label {
	clear: both;
	display: block;
	margin-bottom: .5rem;
	position: relative;
}
form label span.lbl {
	color: #555;
	font-size: .65em;
	padding: 0 .2em;
	pointer-events: none;
	position: absolute;
	transition: .2s;
}
form label :placeholder-shown + span.lbl,
form label select:invalid + span.lbl {
	font-size: 1em;
	max-width: calc(100% - 0.6rem);
	top: calc(var(--input-height) / 2 - 0.75em);
	left: .5rem;
}
form label textarea:placeholder-shown + span.lbl {
	white-space: normal;
}
form label.lbl-chk,
form label input + span.lbl,
form label textarea + span.lbl,
form label select + span.lbl,
form label input:focus + span.lbl,
form label textarea:focus + span.lbl {
	display: inline-block;
	font-size: .65em;
	overflow: hidden;
	text-overflow: ellipsis;
	top: 0em;
	left: .33em;
	white-space: nowrap;
}
form span.lbl[class*=" icon-"]::before{
	padding-right: .2em;
}

form textarea {
	height: calc(var(--input-height) * 2 + .5rem); /* Höhe von n Input-Feldern + (n-1) mal 1rem Abstand */
	vertical-align: top;
}
form label.ihre_erfahrung { /* Honeypot */
	display: none;
}
main form input::-webkit-input-placeholder,
main form textarea::-webkit-input-placeholder {
	color: transparent;
}
main form input::-ms-input-placeholder,
main form textarea::-ms-input-placeholder {
	color: transparent;
}
main form input::-moz-placeholder,
main form textarea::-moz-input-placeholder {
	color: transparent;
}
main form input::placeholder,
main form textarea::placeholder {
	color: transparent;
}

/* Checkboxen, Radio-Buttons */
form label.lbl-chk {
	display: flex;
		align-items: center;
	font-size: 0.75em;
	font-weight: 400;
	line-height: 1.25;
	margin: 1rem 0 0.75rem;
	min-height: 2.3em;
	overflow: visible;
	/*padding-left: 2.6em;*/
	position: relative;
		top: 0;
		left: 0;
	white-space: normal;
	width: auto;
}
form label.lbl-chk input {
	height: auto;
	position: absolute;
	left: 0;
	top: 0;
	opacity: 0;
}
form label.lbl-chk .icon {
	align-self: flex-start;
	font-size: 2rem;
	height: 1em;
	line-height: 0;
	opacity: 1;
	order: -1;
	margin: 0 .5em 0 0;
	min-width: 1em;
}

/* Animierte SVG für Checkboxen und Radio-Buttons */
.lbl-chk .icon svg {
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke: var(--highlight-color);
	vertical-align: middle;
}
.lbl-chk .icon svg .tick {
	opacity: 0;
	stroke: var(--highlight-color);
	stroke-dasharray: 0% 1000%;
	stroke-dashoffset: 0%;
	stroke-width: 3;
	transition: stroke-dasharray .6s, stroke-dashoffset .6s, opacity .1s .5s;
}
.lbl-chk .icon svg .box {
	fill:#fff;
	stroke: var(--textcolor);
	stroke-width: 1;
	transition: stroke .2s, stroke-width .2s;
}
.lbl-chk .icon svg .dot {
	fill: transparent;
	stroke: transparent;
	transition: fill .5s;
}
.lbl-chk input:checked ~ .icon svg .tick {
	opacity: 1;
	stroke-dasharray: 100% 1000%;
	stroke-dashoffset: -380%;
	transition: stroke-dasharray 1s cubic-bezier(0,.85,.5,.8), stroke-dashoffset .6s, opacity 0s;
}
.lbl-chk input:checked ~ .icon svg .box {
	stroke: var(--highlight-color);
	stroke-width: 3;
	transition: stroke .3s .3s, stroke-width .3s .3s;
}
.lbl-chk input:checked ~ .icon svg .dot {
	fill: var(--highlight-color);
	transition: fill 0.4s 0.2s;
}

/* Anpassung für Radio-Buttons */
.lbl-chk input[type="radio"]:checked ~ .icon svg .tick {
	stroke-dasharray: 230% 590%;
	stroke-dashoffset: 0%;
	transition: stroke-dasharray .3s, stroke-dashoffset .6s, opacity 0s;
}
.lbl-chk input[type="radio"]:checked ~ .icon svg .dot {
	transition: fill 0.3s 0.3s;
}


form small.help {
	clear: both;
	display: block;
	line-height: 0.5;
	padding-bottom: 1em;
	text-align: right;
}
form div.send {
	text-align: right;
}