:root {
	--spaceBetweenDefault: 40px;
	--baseWidth: 92%;
	--maxWidth: 1450px;
	/* reduced width is two-thirds of maxWidth */
	--reducedWidth: calc(var(--maxWidth) * 2/3);

	--mainColor: #21386d;
    --mainColorLight: rgba(33,56,109, 0.1);
    --secondaryColor: #c18b0d;
    --secondaryColorLight: rgba(193,139,13, 0.1);
    --tertiaryColor: #b61829;
    --tertiaryColorLight: rgba(182,24,41, 0.1);
	--fontColor: #555555;
	--contrastColorInverted: #fff;
	--backgroundColor: #f1f1f1;
}

* {
    box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	-ms-box-sizing: border-box;
}

/* open-sans-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/open-sans-v44-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }
  /* open-sans-italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 400;
    src: url('../fonts/open-sans-v44-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }
  /* open-sans-700 - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/open-sans-v44-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }
  /* open-sans-700italic - latin */
  @font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Open Sans';
    font-style: italic;
    font-weight: 700;
    src: url('../fonts/open-sans-v44-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
  }

article,
aside,
dialog,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section {
	display: block
}

.clearL,
.clearR,
.clear {
	clear: both;
}

.clearfix:after {
	content: "";
	display: block;
	clear: both;
}

H1,
H2,
H3,
H4,
H5,
H6 {
	font: 18px 'Open Sans', Arial, Verdana, Sans-serif;
	line-height: 120%;
	color: var(--mainColor);
	padding: 10px 0 0;
    font-weight: 700;
}

H1 {
	font-size: 32px;
	margin-bottom: 30px;
	color: var(--mainColor);
	text-transform: uppercase;
}

H2 {
	font-size: 28px;
}

H3 {
	font-size: 24px;
}

H4 {
	font-size: 18px;
}

H1+H1,
H1+H2,
H1+H3,
H1+H4,
H1+H5,
H2+H1,
H2+H2,
H2+H3,
H2+H4,
H2+H5,
H3+H1,
H3+H2,
H3+H3,
H3+H4,
H3+H5,
H4+H1,
H4+H2,
H4+H3,
H4+H4,
H4+H5,
H5+H1,
H5+H2,
H5+H3,
H5+H4,
H5+H5 {
	padding: 0;
}

P {
	padding: 10px 0 5px;
}

A {
	text-decoration: none;
	color: var(--mainColor);
}

b {
	color: var(--mainColor);
}

.allcont P A,
#contactform .field.privacy A {
	border-bottom: 2px solid var(--fontColor);
}

#contactform .field.privacy A {
	color: var(--fontColor);
}

.allcont P A:hover,
#contactform .field.privacy A:hover {
	border-bottom: 2px solid var(--mainColor);
}

::-moz-selection {
	background: var(--mainColor);
	text-shadow: none;
	color: var(--contrastColorInverted);
}

::selection {
	background: var(--mainColor);
	text-shadow: none;
	color: var(--contrastColorInverted);
}

hr {
	display: block;
	height: 1px;
	background: var(--backgroundColor);
	margin: 1em 0;
	border: none;
}
table {
	width:auto;
	border-collapse: collapse;
	border-spacing: 0;
}

#site :is(img, embed, object, video) {
	max-width: 100%;
	height: auto;
	width: auto;
}


TEXTAREA,
INPUT,
BUTTON,
SELECT {
	resize: none;
	border-radius: 0px;
	-moz-border-radius: 0px;
	-webkit-border-radius: 0px;
	-webkit-font-smoothing: inherit;
	font: 16px 'Open Sans', Arial, Verdana, Sans-serif;
	color: var(--fontColor);
	padding: 10px;
	border: 0;
	border-bottom: 1px solid #d6d6d6;
	background: #FFF;
	-webkit-appearance: none;
	-moz-appearance: none;
	-ms-appearance: none;
	-o-appearance: none;
	appearance: none;
}

TEXTAREA {
	border: 1px solid #d6d6d6;
}

SELECT {
	position: relative;
	cursor: pointer;
	outline: none;
	-o-text-overflow: '';
	text-overflow: '';
}

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

BUTTON {
	border: none;
	cursor: pointer;
}

INPUT[type=text],
INPUT[type=tel],
TEXTAREA,
INPUT[type=password],
INPUT[type=email],
SELECT,
BUTTON {
	width: 100%;
}


INPUT[type=checkbox] {
	border: 1px solid #d6d6d6;
	padding: 0;
	width: 25px;
	height: 25px;
	overflow: hidden;
}

INPUT[type=checkbox]:focus {
	border-bottom-color: #d6d6d6;
}

INPUT[type=checkbox]:checked {
	border-color: #000;
	position: relative;
}

INPUT[type=checkbox]:checked:after,
INPUT[type=checkbox]:checked:before {
	content: "";
	display: block;
	width: 1px;
	height: 19px;
	background: #000;
	position: absolute;
	top: 2px;
	left: 11px;
	-moz-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	-o-transform: rotate(45deg);
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

INPUT[type=checkbox]:checked:before {
	-moz-transform: rotate(-45deg);
	-ms-transform: rotate(-45deg);
	-o-transform: rotate(-45deg);
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
}

INPUT[type=radio] {
	padding: 4px;
	line-height: normal;
	vertical-align: middle;
	-webkit-border-radius: 100%;
	-moz-border-radius: 100%;
	border-radius: 100%;
}

INPUT[type=submit],
INPUT[type=reset],
.button {
	text-transform: uppercase;
	display: inline-block;
	border: 2px solid var(--mainColor);
	border-radius: 50px;
	color: var(--mainColor);
	padding: 15px 40px;
}


INPUT[type=submit]:hover,
INPUT[type=reset]:hover,
.button:hover {
	color: var(--mainColor);
	border-color: var(--mainColor);
	text-decoration: none;
	cursor: pointer;
}

INPUT:focus,
SELECT:focus {
	border-bottom-color: var(--mainColor);
}

INPUT:-webkit-autofill,
TEXTAREA:-webkit-autofill {
	box-shadow: 0 0 0 1000px #FFF inset;
	-webkit-box-shadow: 0 0 0 1000px #FFF inset;
	-webkit-text-fill-color: #000;
}

::-webkit-input-placeholder {
	color: #666;
}

:-moz-placeholder {
	opacity: 1;
	color: #666;
}

::-moz-placeholder {
	opacity: 1;
	color: #666;
}

:-ms-input-placeholder {
	color: #666;
}

/*Blockstile*/
P.align-center,
H1.align-center,
H2.align-center,
H3.align-center,
H4.align-center,
H5.align-center,
A.align-center,
P A.align-center {
	text-align: center;
}

P.align-right,
H1.align-right,
H2.align-right,
H3.align-right,
H4.align-right,
H5.align-right,
A.align-right,
P A.align-right {
	text-align: right;
}

P.align-justify,
H1.align-justify,
H2.align-justify,
H3.align-justify,
H4.align-justify,
H5.align-justify,
A.align-justify,
P A.align-justify {
	text-align: justify;
}

/*Textstile*/
.smalltext {
    font-size: 15px;
}

.secondarytext {
    color: var(--secondaryColor) !important;
}
.tertiarytext {
    color: var(--tertiaryColor) !important;
}


.facebook,
.instagram,
.button,
#kontaktform {
	-webkit-transition: all 0.2s ease-in-out;
	-moz-transition: all 0.2s ease-in-out;
	-o-transition: all 0.2s ease-in-out;
	transition: all 0.2s ease-in-out;
}

/*Template*/
BODY {
	font: 16px 'Open Sans', Arial, Verdana, Sans-serif;
	line-height: 27px;
	color: var(--fontColor);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: none;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: none;
	display: -webkit-box;
	display: -webkit-flex;
	display: -moz-box;
	display: -ms-flexbox;
	display: flex;
	min-height: 100vh;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	-moz-box-orient: vertical;
	-moz-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
}

#site {
	-webkit-box-flex: 1;
	-webkit-flex: 1 0 auto;
	-moz-box-flex: 1;
	-ms-flex: 1 0 auto;
	flex: 1 0 auto;
}

/*Logo*/
#logo {
	background: url(../img/logo.png) no-repeat left top;
	-webkit-background-size: 100% auto;
	-moz-background-size: 100% auto;
	-o-background-size: 100% auto;
	background-size: 100% auto;
	width: 300px;
	height: 112px;
	margin: 30px auto;
    @media all and (max-width: 1024px) {
        width: 230px;
        height: 86px;
    }
    @media all and (max-width: 768px) {
        width: 180px;
        height: 66px;
        margin: 15px auto;
    }
}

#logo A {
	display: block;
	width: 100%;
	height: 100%;
}

#logo A SPAN {
	display: none;
}

/*Subhead*/
.subhead {
	width: 100%;
	position: relative;
	line-height: 0;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 90%);
}

.subhead .frame {
	max-height: 900px;
	overflow: hidden;
}

#site .subhead .frame IMG {
	width: 100%;
	height: auto;
}

.subhead:before {
	content: "";
	display: block;
	height: 10px;
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
	background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
	background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.05)), to(rgba(255, 255, 255, 0)));
	background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
	background: -o-linear-gradient(top, rgba(0, 0, 0, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
	background: linear-gradient(to bottom, rgba(0, 0, 0, 0.05) 0%, rgba(255, 255, 255, 0) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0d000000', endColorstr='#00ffffff', GradientType=0);
}

.cont {
	padding: 60px 0 90px;
}

/*Layouts -----------------------------------------*/
.foot > .inner,
.head > .inner {
	width: var(--baseWidth);
	max-width: var(--maxWidth);
	margin-left: auto;
	margin-right: auto;
}
.cont > .frame,
.foot .inner {
	width: var(--baseWidth);
	max-width: var(--maxWidth);
	margin-left: auto;
	margin-right: auto;
}

.cont > .frame.small,
.foot .inner.small {
	max-width: var(--reducedWidth);
}
.cont > .frame.full_width {
	max-width: none;
	width: 100%;
}
.cont > .frame.full_width_limit_content {
	max-width: none;
	width: 100%;
}
.cont > .frame.full_width_limit_content > .inner {
	width: var(--baseWidth);
	max-width: var(--maxWidth);
	margin-left: auto;
	margin-right: auto;
}

.frame-space-before-small {
	margin-top: 30px;
}

.frame-space-before-medium {
	margin-top: 60px;
}

.frame-space-before-large {
	margin-top: 90px;
}
.frame-space-after-small {
	margin-bottom: 30px;
}
.frame-space-after-medium {
	margin-bottom: 60px;
}
.frame-space-after-large {
	margin-bottom: 90px;
}

.frame-light {
    background: #f1f1f1;
}
.frame-light-primary {
    background: var(--mainColorLight);
}
.frame-light-secondary {
    background: var(--secondaryColorLight);
}
.frame-light-tertiary {
    background: var(--tertiaryColorLight);
}
[class*="frame-light-"] {
    padding: 30px;
}

.frame-maincolor {
    background: var(--mainColor);
    color: var(--contrastColorInverted);
    a {
        color: var(--contrastColorInverted);
        &:hover {
            color: var(--contrastColorInverted);
            text-decoration: underline;
        }
    }
}
.frame-maincolor-primary {
    background: var(--mainColorLight);
    color: var(--contrastColorInverted);
    a {
        color: var(--contrastColorInverted);
        &:hover {
            color: var(--contrastColorInverted);
            text-decoration: underline;
        }
    }
}
.frame-maincolor-secondary {
    background: var(--secondaryColorLight);
    color: var(--contrastColorInverted);
    a {
        color: var(--contrastColorInverted);
        &:hover {
            color: var(--contrastColorInverted);
            text-decoration: underline;
        }
    }
}


/*Foot*/
.foot {
	font-size: 15px;
    line-height: 150%;
	color: var(--mainColor);
}

.foot .inner {
	padding: 30px 0;
}

@media all and (max-width: 768px) {
    .foot > div:last-child .inner {
        padding-bottom: 70px;
    }
}

.foot P {
	padding: 0;
}

.copy,
.footnav {
	display: inline;
}

.copy {
	margin-right: 20px;
}

.foot .frame-maincolor .col1 {
	line-height: 40px;
}

.foot .col1 .footnav A {
	padding: 7px 20px;
	display: inline-block;
}

.foot A.social {
	display: inline-block;
	width: 40px;
	height: 40px;
	background: url(../img/social.svg) no-repeat 0 0;
	-webkit-background-size: auto 40px;
	-moz-background-size: auto 40px;
	-o-background-size: auto 40px;
	background-size: auto 40px;
}

.foot A.social:hover {
	opacity: 0.8;
}

.foot A.social span {
	display: none;
}

.foot A.social.instagram {
	background-position: -47px 0;
	margin-left: 20px;
}

/*Listen*/
.allcont UL {
	margin: 5px 0px 10px 25px;
}

.allcont UL LI {
	list-style-type: disc;
	padding: 3px 0px;
}

.allcont OL {
	margin: 5px 0px 10px 18px;
}

.allcont OL LI {
	list-style-type: decimal;
	padding: 3px 0px;
}

/*Tabelle*/
.allcont TABLE {
	margin: 10px 0px 5px;
}

.allcont TABLE TR TD {
	padding: 5px 10px 5px 0px;
}

.allcont TABLE TR TH {
	text-align: left;
	font-weight: normal;
	font-size: 15px;
	color: var(--contrastColorInverted);
	background: var(--mainColor);
	padding: 5px 15px;
	border-right: 1px solid var(--contrastColorInverted);
}

.allcont TABLE.tabelle-basic {
	width: 100%;
}

.allcont TABLE.tabelle-basic TR.even {
	background-color: #e8e8e8;
}

.allcont TABLE.tabelle-basic TR TD {
	padding: 5px 15px;
	border-right: 1px solid #fff;
}

/*Gridelemente*/
/*Allgemein*/
.gridrow {
	display: flex;
	display: -ms-flexbox;
	display: -webkit-flex;
	flex-wrap: wrap;
}
.gridrow .col + .col {
	margin-left: var(--spaceBetweenDefault);
}
.grid2cols > .col {
	width: calc(50% - (var(--spaceBetweenDefault) / 2));
}
.grid3cols > .col {
	width: calc((100% / 3) - (2 * var(--spaceBetweenDefault) / 3));
}
.grid4cols > .col {
	width: calc(25% - (3 * var(--spaceBetweenDefault) / 4));
}
.col_pos_33-66 > .col.col1 {
	width: calc((100% / 3) - (var(--spaceBetweenDefault) / 2));
}
.col_pos_33-66 > .col.col2 {
	width: calc((100% * 2 / 3) - (var(--spaceBetweenDefault) / 2));
}
.col_pos_66-33 > .col.col1 {
	width: calc((100% * 2 / 3) - (var(--spaceBetweenDefault) / 2));
}
.col_pos_66-33 > .col.col2 {
	width: calc((100% / 3) - (var(--spaceBetweenDefault) / 2));
}
/*Special_ID-Anpassungen*/

/*formular*/
.no-js #contactform {
	display: none;
}

#contactform {
	margin-top: 80px;
}
#contactform h3 {
	margin-bottom: 30px;
	text-align: center;
}
#contactform .field {
	margin: 5px 0;
	width: 100%;
}
#contactform .field.privacy INPUT {
	margin-right: 5px;
}
#contactform .field.privacy INPUT:hover {
	cursor: pointer;
}
#contactform .field.privacy span {
	position: relative;
	top: -10px;
}
.success_mail H3,
.noscript_mail H3 {
	padding: 50px 4%;
	background: var(--backgroundColor);
}

.reception {
    button {
        width: auto;
    }
}



	/* CSS Mobile Reset */
	/* Responsive Gridelements */
	/* breakpoint normal screen*/
@media all and (max-width: 1024px) {
	.grid4cols .col + .col {
		margin-left: var(--spaceBetweenDefault);
	}
	.grid4cols > .col {
		width: calc(50% - (var(--spaceBetweenDefault) / 2));
		margin-top: var(--spaceBetweenDefault);
	}
	.grid4cols > .col:nth-child(2n + 1){
		margin-left: 0;
	}
}
	/* breakpoint break grid*/
@media all and (max-width: 860px) {
	.grid2cols > .col,
	.grid3cols > .col {
		width: 100%;
	}
	.grid2cols .col + .col,
	.grid3cols .col + .col {
		margin-left: 0;
		margin-top: var(--spaceBetweenDefault);
	}
	.col_pos_33-66 > .col.col1,
	.col_pos_33-66 > .col.col2,
	.col_pos_66-33 > .col.col1,
	.col_pos_66-33 > .col.col2 {
		width: 100%;
	}
	.col_pos_33-66 > .col + .col,
	.col_pos_66-33 > .col + .col {
		margin-left: 0;
		margin-top: var(--spaceBetweenDefault);
	}

	.copy, .footnav {
		display: block;
		text-align: center;
		margin-right: 0;
		width: 100%;
	}
}
/* breakpoint break tablet*/
@media screen and (max-width: 768px) {
	.grid4cols > .col {
		width: 100%;
	}
	.grid4cols .col + .col {
		margin-left: 0;
		margin-top: var(--spaceBetweenDefault);
	}
}

/*Ab hier springt er auf 100% breite Elemente (320px)*/
@media all and (max-width: 470px) {

	.cont {
		padding: 20px 0 20px;
	}
	h1 {
		font-size: 28px;
		margin-bottom: 0;
	}
	h2 {
		font-size: 24px;
	}
}
