@import url(../fontawesome/css/all.css);

hr,
input {
	overflow: visible
}

progress,
sub,
sup {
	vertical-align: baseline
}

*,
::after,
::before,
legend {
	box-sizing: border-box
}

html {
	line-height: 1.15;
	-webkit-text-size-adjust: 100%
}

body,
form .errormsg-spamprotection,
form .errormsg-upload {
	line-height: 1.5
}

body {
	margin: 0;
	padding-top: 30px;
	padding-bottom: 40px;
	font-family: Montserrat, sans-serif;
	font-size: 16px;
	color: #fff
}

form {
	margin: auto;
	padding-top: 0;
	padding-bottom: 4px;
	padding-right: 33px;
	border-radius: 10px;
	width: 100%;
	overflow: hidden
}

form .senden {
	font-family: Arial, sans-serif;
	letter-spacing: .3px;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	font-size: 18.5px;
	height: 2.9rem;
	margin-top: calc(1rem/16*5);
	color: #fff;
	background-color: #0244a5;
	transition: .3s;
	border: none;
	border-radius: 5px
}

body.safari form .senden {
	padding-top: 3px
}

form .senden:hover {
	opacity: 60%;
	cursor: pointer
}

form fieldset {
	font-weight: 600;
	border: none;
	padding: 0
}

form fieldset legend {
	text-transform: uppercase
}

form .row:first-child,
form input[type=hidden]+.row {
	margin-top: 1.5rem
}

form .row {
	margin: 2.5rem 0 1.5rem;
	position: relative
}

form .row label {
	color: #fff;
	line-height: 1;
	font-weight: 600;
	font-size: 16px;
	position: absolute;
	top: 10;
	left: 0;
	display: inline-block
}

form .select-wrapper,
form fieldset.captcha .row:first-of-type label {
	position: relative
}

form input:not([type=checkbox]):not([type=radio]),
form select,
form textarea {
	padding: 1.68rem 1.5rem .55rem 0;
	border-left: none;
	border-top: none;
	border-right: none;
	border-bottom: 1px solid #fff;
	transition: border-bottom .3s;
	color: #fff;
	background: 0 0;
	outline: 0;
	line-height: normal;
	border-radius: 0;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none
}

form input:not([type=checkbox]):not([type=radio]):focus,
form select:focus,
form textarea:focus {
	border-bottom-color: #8a8a8a
}

form input,
form textarea {
	width: 100%;
	resize: none
}

form .select-field::after {
	display: block;
	content: "";
	clear: both
}

form .select-wrapper select {
	cursor: pointer;
	width: 100%;
	z-index: 2
}

form .select-wrapper+.select-wrapper {
	margin-right: 0
}

form .select-wrapper::after {
	font-family: "Font Awesome 5 Free";
	font-weight: 900;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: normal;
	content: "\f078";
	position: absolute;
	right: 0;
	padding: 1rem 0;
	bottom: 0;
	color: rgba(0, 0, 0, .7);
	pointer-events: none
}

form input[type=checkbox] {
	float: left;
	height: 1.5rem
}

form input[type=checkbox]+a,
form input[type=checkbox]+span {
	line-height: 1.3rem;
	margin-left: .5rem
}

form .captcha .field>img {
	filter: grayscale(100%)
}

form .mail-copy,
form .pflichtfeldhinweis {
	font-size: 16px;
	margin: 1.5rem 0;
	position: relative
}

form .errormsg-emailerror,
form .errormsg-spamprotection,
form .errormsg-upload {
	font-size: 17px;
	border: 1px solid #db0007;
	padding: 20px;
	color: #db0007;
	width: 100%;
	text-align: center
}

form .mail-copy>.errormsg:first-child,
form .pflichtfeldhinweis>.errormsg:first-child {
	display: block;
	position: relative;
	bottom: auto;
	margin-bottom: .25rem;
	transform: none
}

[hidden],
form .mail-copy>.errormsg:first-child+br,
form .pflichtfeldhinweis>.errormsg:first-child+br,
template {
	display: none
}

form .buttons {
	margin: -11px 0 1.5rem
}

form .buttons input[type=submit] {
	cursor: pointer;
	background-color: #000;
	text-transform: uppercase;
	color: #fff;
	text-align: center;
	letter-spacing: .1428571429rem;
	padding: 1rem 1.5rem;
	border: none;
	width: auto
}

form .errormsg {
	position: absolute;
	color: #a00;
	font-size: .85rem;
	left: 0;
	bottom: 0;
	transform: translateY(110%);
	line-height: 1;
	font-weight: 600
}

.column-2 {
	display: flex;
	justify-content: space-between
}

.column-2>div {
	position: relative;
	flex-basis: calc(50% - 2rem)
}

h1 {
	font-size: 2em;
	margin: .67em 0
}

hr {
	box-sizing: content-box;
	height: 0
}

code,
kbd,
pre,
samp {
	font-family: monospace, monospace;
	font-size: 1em
}

abbr[title] {
	border-bottom: none;
	text-decoration: underline;
	text-decoration: underline dotted
}

b,
strong {
	font-weight: bolder
}

small {
	font-size: 80%
}

sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative
}

sub {
	bottom: -.25em
}

sup {
	top: -.5em
}

img {
	border-style: none
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	line-height: 1.15;
	margin: 0
}

select {
	text-transform: none
}

fieldset {
	padding: .35em .75em .625em
}

legend {
	color: inherit;
	display: table;
	max-width: 100%;
	padding: 0;
	white-space: normal
}

textarea {
	overflow: auto
}

[type=checkbox],
[type=radio] {
	box-sizing: border-box;
	padding: 0
}

[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
	height: auto
}

[type=search] {
	outline-offset: -2px
}

[type=search]::-webkit-search-decoration {
	-webkit-appearance: none
}

::-webkit-file-upload-button {
	-webkit-appearance: button;
	font: inherit
}

details {
	display: block
}

summary {
	display: list-item
}

a {
	background-color: transparent;
	text-decoration: none;
	color: rgba(0, 0, 0, .7);
	transition: color .3s;
	font-weight: 300
}

a:active,
a:focus,
a:hover,
a:visited {
	color: #000
}

select::-ms-expand {
	display: none
}

select:focus::-ms-value {
	background-color: transparent
}

.row input[type=checkbox] {
	height: calc(.7rem/16*34);
	width: calc(.7rem/16*34);
	border: 1px solid #ccc;
	border-radius: .25rem;
	box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
	display: block;
	float: left;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	cursor: pointer;
	margin-left: 0;
	outline: #fff
}

form .senden.failed,
form .senden.finished {
	font-size: 18.5px;
	height: 2.9rem;
	margin-top: calc(1rem/16*5);
	color: #fff
}

.row input:checked {
	background: url(../img/check-solid.svg) center center/75% no-repeat
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 300;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 300;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 300;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 300;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 300;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 600;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459WRhyzbi.woff2) format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 600;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459W1hyzbi.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 600;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459WZhyzbi.woff2) format('woff2');
	unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 600;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459Wdhyzbi.woff2) format('woff2');
	unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF
}

@font-face {
	font-family: Montserrat;
	font-style: normal;
	font-weight: 600;
	src: url(../fontawesome/webfonts/JTUSjIg1_i6t8kCHKm459Wlhyw.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD
}

.required_notice {
	margin-top: 45px;
	margin-bottom: 24px
}

button {
	outline: 0
}

form .senden.loading .label,
form .senden.loading .label_failed {
	font-size: 18.5px;
	display: flex;
	align-items: center;
	justify-content: center
}

form .senden.finished {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #28a745 !important;
	border: none;
	border-radius: 5px;
	pointer-events: none;
	cursor: not-allowed
}

.successfully_sent {
	font-weight: 700;
	font-size: 19px;
	vertical-align: middle
}

.error_in_email_sending {
	font-weight: 700;
	font-size: 17px;
	vertical-align: middle
}

form .senden.failed {
	display: flex;
	justify-content: center;
	align-items: center;
	border: none;
	border-radius: 5px
}

@keyframes spin {
	from {
		transform: rotate(0)
	}

	to {
		transform: rotate(360deg)
	}
}

.loading-spinner,
.loading-spinner_failed {
	display: none;
	width: 24px;
	animation: 1s linear infinite spin
}

.loading-spinner:active,
.loading-spinner_failed:active {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 24px;
	animation: 1s linear infinite spin
}

.senden.loading .loading-spinner,
.senden.loading .loading-spinner_failed,
body.safari .senden.loading .loading-spinner,
body.safari .senden.loading .loading-spinner_failed {
	display: flex;
	justify-content: center;
	align-items: center
}

.senden .check,
.senden .failed {
	display: none
}

.senden.finished .check,
form .senden.failed .failed {
	display: inline-block;
	animation: .5s linear scale
}

.kontaktformular #submitMessage.failed {
	color: #db0007;
	text-align: center;
	border: 2px solid #db0007;
	padding: 15px;
	width: 100%;
	line-height: 1.5;
	margin-top: 25px;
	margin-bottom: 39px
}

.kontaktformular #submitMessage.finished {
	color: #28a745;
	text-align: center;
	border: 2px solid #28a745;
	padding: 15px;
	width: 100%;
	line-height: 1.3;
	margin-top: 25px;
	margin-bottom: 39px
}

form .senden.loading {
	background-color: #a6a6a6;
	border-color: #a6a6a6
}

#submitMessage.loading {
	text-align: center;
	color: transparent;
	opacity: 0
}

.senden.finished .check i {
	transform-origin: center center
}

.opacity-25 {
	opacity: .25
}

.opacity-75 {
	opacity: .75
}

@media (max-width:600px) {
	form {
		padding: 10px
	}

	.column-2 {
		flex-direction: column
	}

	.column-2>div+div {
		margin-top: 40px
	}

	.required_notice {
		margin-top: 45px;
		margin-bottom: 24px
	}

	.loading-spinner,
	.loading-spinner_failed {
		display: none;
		width: 24px;
		animation: 1s linear infinite spin
	}

	.loading-spinner:active,
	.loading-spinner_failed:active {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 24px;
		animation: 1s linear infinite spin
	}

	form .senden.loading .label,
	form .senden.loading .label_failed {
		font-size: 18.5px;
		display: flex;
		align-items: center;
		justify-content: center
	}

	form .senden,
	form .senden.finished {
		justify-content: center;
		border: none;
		display: flex;
		font-size: 18.5px;
		height: 2.9rem;
		margin-top: calc(1rem/16*5);
		color: #fff
	}

	form .senden {
		align-items: center;
		width: 100%;
		transition: .3s;
		border-radius: 5px
	}

	form .senden.finished {
		align-items: center;
		background-color: #28a745 !important;
		border-radius: 5px;
		pointer-events: none;
		cursor: not-allowed
	}

	form .senden.failed {
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 18.5px;
		height: 2.9rem;
		margin-top: calc(1rem/16*5);
		color: #fff;
		border: none;
		border-radius: 5px
	}
}