/* @import "fontawesome-all.min.css"; */
@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,300italic,400,400italic,600,600italic,700,700italic");


html, body, div, span, applet, object, button,
iframe, h1, h2, h3, h4, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, picture, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

img {
	display: block;
	margin: 0;
	padding: 0;
}


article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0;
}

mark {
	background-color: transparent;
	color: inherit;
}

input::-moz-focus-inner {
	border: 0;
	padding: 0;
}

html {
	box-sizing: border-box;
	-webkit-font-smoothing: antialiased;
}

*, *:before, *:after {
	box-sizing: inherit;
}

html, body {
	min-height: 100%; /* hatte ich vorher aus irgendeinem Grund auf height: 100% gab aber probleme mit dem Bottom margin/padding */
}

body, input, select, textarea {
	color: #6e6e6e;
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 11pt;
	font-weight: 400;
	line-height: 1.45em;
}

body {
	-webkit-text-size-adjust: none;
	background: #ffffff;
}

a {
	-moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-ms-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	color: #bba86d;
	text-decoration: none;
}

a:hover {
	color: #8d7a41;
	/* border-bottom-color: transparent; */
}

a.special {
	position: relative;
	color: #bba86d;
	text-decoration: none;
	display: inline-block;
}

h1 a.special:after {
	border-bottom: 1px solid #a5ff0e;
}

a.special:after {
	text-align: justify;
	display: inline-block;
	content: attr(data-text);
	position: absolute;
	left: 0;
	top: 0;
	white-space: nowrap;
	overflow: hidden;
	color: #8d7a41;
	min-height: 100%;
	width: 0;
	max-width: 100%;
	/* background: #3A3A3A; */
	-moz-transition: .4s;
	-o-transition: .4s;
	-webkit-transition: .4s;
	transition: .4s;
}

a.special:hover {
	color: transparent;
	transition: color .3s ease .2s;
}

a.special:hover:after {
	width: 100%;
}

strong, b {
	font-weight: 600;
	color: #5b5b5b;
}

em, i {
	font-style: italic;
}

ul, ol, dl, table, blockquote, form {
	margin: 0 0 2em 0;
}

h1, h2, h3, h4 {
	color: #5b5b5b;
	font-weight: 700;
	letter-spacing: 0.125em;
	line-height: 1.75em;
	margin-bottom: 1em;
	text-transform: uppercase;
	text-align: center;
}

h3, h4 {
	text-align: left;
	letter-spacing: 0.05em;
}


h1 a, h2 a, h3 a, h4 a {
	color: inherit;
	text-decoration: none;
}

h1 {
	font-size: 1.65em;
	margin: 0 auto 0 auto;
	padding: 0.5em 0;
	border-bottom: 2px solid #5b5b5b;
	width: 275px;
}

h2 {
	font-size: 1.5em;
}

h3 {
	font-size: 1.25em;
	margin: 5em 0 1em;
}

sub {
	font-size: 0.8em;
	position: relative;
	top: 0.5em;
}

sup {
	font-size: 0.8em;
	position: relative;
	top: -0.5em;
}

hr {
	border: 0;
	border-top: solid 1px rgba(224, 224, 224, 0.75);
	margin-bottom: 1.5em;
}



/* scrollbar */

::-webkit-scrollbar {
	width: 13px;
}

::-webkit-scrollbar-track {
	background: rgba(174, 174, 174, 0.25); 
}

::-webkit-scrollbar-thumb {
	background: rgba(124, 124, 124, 0.75);
}

::-webkit-scrollbar-thumb:hover {
	background: rgba(124, 124, 124, 1);
}


/* date input */

input[type=date]:required:invalid::-webkit-datetime-edit {
    color: transparent;
}

input[type=date]:focus::-webkit-datetime-edit {
    color: black !important;
}


@media screen and (min-width: 1680px) {

	/* Basic */

	body, input, select, textarea {
		font-size: 13pt;
	}

	h1 {
		font-size: 1.5em;
	}

	h2 {
		font-size: 1.35em;
	}

	h3 {
		font-size: 1.15em;
	}
	
}


@media screen and (min-width: 980px) {

/* Basic */

	body, input, select, textarea {
		font-size: 12pt;
	}

}


@media screen and (max-width: 736px) {
	
	/* Basic */

	h1 {
		font-size: 1.25em;
	}

	h2 {
		font-size: 1em;
	}

	h3 {
		font-size: 1em;
	}

}



@media screen and (max-width: 480px) {
	

}











/* Container */

section {
	background: transparent;
	margin: 0.8em 0.8em;
	padding: 1em;
	/*
	width: 70%;
	min-width: 400px;
	*/

	border: solid 1px rgba(224, 224, 224, 0.75);
	box-shadow: 0px 0px 11px 0px #AAAAAA;
	-webkit-box-shadow: 0px 0px 11px 0px #AAAAAA; 
	
}

.hide {
	display: none;
}
.grid {
	display: grid;
	grid-template-columns: repeat(12, 8.33%);
/*
	grid-template-rows: repeat(12, 8.33%);
	
	height: 500px;
	width: 100%;
*/
}


.col-xs-1-3 {
  grid-column: 1 / 3;
}

.col-xs-1-4 {
  grid-column: 1 / 4;
}

.col-xs-1-5 {
  grid-column: 1 / 5;
}

.col-xs-1-6 {
  grid-column: 1 / 6;
}

.col-xs-1-13 {
  grid-column: 1 / 13;
}


.col-xs-4-7 {
  grid-column: 4 / 7;
}

.col-xs-5-9 {
  grid-column: 5 / 9;
}

.col-xs-7-10 {
  grid-column: 7 / 10;
}

.col-xs-8-13 {
  grid-column: 8 / 13;
}

.col-xs-9-13 {
  grid-column: 9 / 13;
}

.col-xs-10-13 {
  grid-column: 10 / 13;
}

.col-xs-7-13 {
  grid-column: 7 / 13;
}

@media screen and (min-width: 480px) {
	
	section {
		margin: 1.5em 1.5em;
		padding: 1.5em;
	}

}

@media screen and (min-width: 576px) {
	
.col-sm-1-3 {
  grid-column: 1 / 3;
}

.col-sm-1-4 {
  grid-column: 1 / 4;
}

.col-sm-1-5 {
  grid-column: 1 / 5;
}

.col-sm-1-6 {
  grid-column: 1 / 6;
}

.col-sm-1-13 {
  grid-column: 1 / 13;
}


.col-sm-4-7 {
  grid-column: 4 / 7;
}

.col-sm-7-10 {
  grid-column: 7 / 10;
}

.col-sm-10-13 {
  grid-column: 10 / 13;
}

.col-sm-8-13 {
  grid-column: 8 / 13;
}

}

@media screen and (min-width: 736px) {
	
	section {
		margin: 2em 2.5em;
		padding: 2.5em;
	}
	
	.col-md-1-3 {
  grid-column: 1 / 3;
}

.col-md-1-4 {
  grid-column: 1 / 4;
}

.col-md-1-5 {
  grid-column: 1 / 5;
}

.col-md-1-6 {
  grid-column: 1 / 6;
}

.col-md-1-13 {
  grid-column: 1 / 13;
}


.col-md-4-7 {
  grid-column: 4 / 7;
}

.col-md-8-10 {
  grid-column: 8 / 10;
}

.col-md-10-13 {
  grid-column: 10 / 13;
}

.col-md-8-13 {
  grid-column: 8 / 13;
}

}

@media screen and (min-width: 980px) {
	
	section {
		margin: 2.5em 3.5em;
		padding: 2.5em 3em 3em;
	}

}

@media screen and (min-width: 1280px) {
	
	section {
		margin: 4.5em auto 2.5em;
		padding: 3em;
		width: 80%;
	}

}

@media screen and (min-width: 1600px) {
	
	section {
		margin: 5em auto 3em;
		padding: 3em;
		width: 70%;
	}

}




.checkbox {
	display: flex; /*firefox fix... */
	--background: #fff;
	--border: #757575;
	--border-hover: #333;
	--border-active: #bba86d;
	--tick: #fff;
	position: relative;
}
.checkbox input,
.checkbox svg {
	min-width: 17px;
	max-width: 17px;
	min-height: 17px;
	max-height: 17px;
	line-height: 18px;
	display: block;
}
.checkbox input {
	-webkit-appearance: none;
	-moz-appearance: none;
	position: relative;
	outline: none;
	background: var(--background);
	border: none;
	margin: 2.5em 0;
	padding: 0;
	cursor: pointer;
	border-radius: 0px; /* Eigentlich: "border-radius: 4px;" aufgrund der svg aber... */
	transition: box-shadow 0.3s;
	box-shadow: inset 0 0 0 var(--s, 2px) var(--b, var(--border));
}
.checkbox input:hover {
	/* --s: 2px; */
	background: #eee;
	--b: var(--border-hover);
}
.checkbox input:checked {
	--b: var(--border-active);
}
.checkbox svg {
	pointer-events: none;
	fill: none;
	stroke-width: 2px;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke: var(--stroke, var(--border-active));
	position: absolute;
	top: 0;
	left: 0;
	min-width: 17px;
	max-width: 17px;
	min-height: 17px;
	max-height: 17px;
	transform: scale(var(--scale, 1)) translateZ(0);
	margin: 2.5em 0;
}
.checkbox.path input:checked {
	--s: 2px;
	transition-delay: 0.4s;
}
.checkbox.path input:checked + svg {
	--a: 16.1 86.12;
	--o: 102.22;
}
.checkbox.path svg {
	stroke-dasharray: var(--a, 86.12);
	stroke-dashoffset: var(--o, 86.12);
	transition: stroke-dasharray 1s, stroke-dashoffset 1s;
}

.checkbox.path > label {
	margin: 2.5em 1em 0;
	line-height: 17px;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.checkbox.path input:checked ~ label {
	color:#bba86d;
}

.checkbox.path input:checked ~ .check-radio-description {
	color:#bba86d;
}

.checkbox label.invalid {
  color: #d31313;
}





.radio {
	display: flex; /*firefox fix... */
	--background: #fff;
	--border: #757575;
	--border-hover: #333;
	--border-active: #bba86d;
	--tick: #fff;
	position: relative;
}
.radio input,
.radio svg {
	min-width: 18px;
	max-width: 18px;
	min-height: 18px;
	max-height: 18px;
	display: block;
}
.radio input {
	-webkit-appearance: none;
	-moz-appearance: none;
	position: relative;
	outline: none;
	background: var(--background);
	border: none;
	padding: 0;
	cursor: pointer;
	border-radius: 50%;
	transition: box-shadow 0.3s;
	box-shadow: inset 0 0 0 var(--s, 2px) var(--b, var(--border));
	margin: 1.5em 0;
}
.radio input:hover {
	/* --s: 2px; */
	background: #eee;
	--b: var(--border-hover);
}
.radio input:checked {
	--b: var(--border-active);
}
.radio svg {
	pointer-events: none;
	fill: none;
	stroke-width: 4px;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke: var(--stroke, var(--border-active));
	position: absolute;
	top: 0;
	left: 0;
	min-width: 18px;
	max-width: 18px;
	min-height: 18px;
	max-height: 18px;
	transform: scale(var(--scale, 1)) translateZ(0);
	margin: 1.5em 0;
}
.radio.path input:checked {
	--s: 2px;
	transition-delay: 0.4s;
}
.radio.path input:checked + svg {
	--a: 0 162.6 28 134.6;
	--o: 162.6;
}
.radio.path svg {
	stroke-dasharray: var(--a, 162.6);
	stroke-dashoffset: var(--o, 162.6);
	transition: stroke-dasharray 1s, stroke-dashoffset 1s;
}
.radio.path > label {
	margin: 1.5em 1em 0;
	line-height: 18px;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.radio.path input:checked ~ label {
	color:#bba86d;
}

.radio.path input:checked ~ .check-radio-description {
	color:#bba86d;
}

.radio label.invalid {
  color: #d31313;
}

.check-radio-description {
	margin: 2em 0 1em;
	color: #555;
	line-height: 18px;
	font-weight: 600;
	letter-spacing: 0.02em;
	/*
	letter-spacing: 0.01em;
	text-transform: uppercase;
	*/
}

.check-radio-description2 {
	margin: 0.5em 0 1em;
	color: #555;
	line-height: 18px;
	font-weight: 600;
	letter-spacing: 0.02em;
}
















.tab {
  display: none;
}


.step {
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbbbbb;
  border: none;
  border-radius: 50%;
  display: inline-block;
  opacity: 0.5;
}

.step.active {
  opacity: 1;
}

.step.finish {
  background-color: #bba86d;
}







/* Special Form version 1*/

.specialformV1 .group { 
  position:relative; 
  margin: 2.5em 0;
}

.specialformV1 .group input, .specialformV1 .group select, .specialformV1 .group textarea {
  /* font-size:18px; */
  padding:10px 0 3px 0 !important;
  display:block;
  width:100%;
  border:none !important;
  border-bottom:2px solid #757575 !important;
  background:transparent !important;
  outline:none;
}

textarea { resize: vertical; max-height: 200px; min-height: 90px; }

/* LABEL ======================================= */
.specialformV1 .group label {
    display: block;
	position:absolute;
	left:1px;
    top:-2px;
	margin: 12px 0 0 0;
	color: #555;
	/* font-size: 0.8em; */
	font-weight: 600;
	letter-spacing: 0.02em;
	/* text-transform: uppercase; */
    pointer-events:none;
    transition:0.2s ease all; 
    -moz-transition:0.2s ease all; 
    -webkit-transition:0.2s ease all;
}

/* active state */
.specialformV1 .group input:focus ~ label, .specialformV1 .group input:valid ~ label, specialformV1 .group select:focus ~ label, .specialformV1 .group select:valid ~ label {
  top:-25px;
  text-transform: uppercase;
  font-size:0.85em !important;
  color:#bba86d;
  letter-spacing: 0;
}

/* active state */
.specialformV1 .group textarea:focus ~ label, .specialformV1 .group textarea:valid ~ label {
  top:-40px;
  text-transform: uppercase;
  font-size:0.85em !important;
  color:#bba86d;
  letter-spacing: 0;
}

.specialformV1 .group input:valid, .specialformV1 .group textarea:valid, .specialformV1 .group select:valid {
    border-bottom:2px solid #bba86d !important;
}

/* BOTTOM BARS ================================= */
.specialformV1 .bar 	{
    position:relative;
    display:block;
    width:100%;
}

.specialformV1 .bar:before, .specialformV1 .bar:after {
  content:'';
  height:3px;
  width:0;
  bottom:0px;
  position:absolute;
  background:#bba86d;
  transition:0.2s ease all;
  -moz-transition:0.2s ease all;
  -webkit-transition:0.4s ease all;
}


.specialformV1 .bar:before {
  left:0%;
}

.specialformV1 input:focus ~ .bar:before, .specialformV1 textarea:focus ~ .bar:before, .specialformV1 select:focus ~ .bar:before {
  width:100%;
}

.specialformV1 .group input:focus ~ label.invalid, .specialformV1 .group label.invalid {
  color: #d31313 !important;
}


    .btn {
        display: inline-block;
        white-space: nowrap;
        max-width: 100%;   
        border: 2px solid;
        font-weight: 600;
        overflow: hidden;
        text-overflow: ellipsis;
        text-transform: uppercase;
        cursor: pointer;
        transition: .3s all ease;
        position: relative;
        height: 3.25em;
        line-height: 3.25em;
        padding: 0 2em;
        text-align: center;
    }
	
	    .btn:after {
        content: attr(data-text);
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        font-size: inherit;
        line-height: inherit;
        z-index: 1;
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-flex;
        display: -ms-flexbox;
        display: flex;
        -webkit-align-items: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-justify-content: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-transform: translateY(-110%);
        transform: translateY(-110%);

    }
	
    .btn > span {
        display: block;
        z-index: -1;
    }
    .btn:after, .btn > span {
        transition: transform .3s;
        transition-timing-function: cubic-bezier(0.75, 0, 0.125, 1);
    }
    .btn:hover:after {
        -webkit-transform: translateY(0);
        transform: translateY(0);
    }
    .btn:hover > span {
        -webkit-transform: translateY(210%);
        transform: translateY(210%);
    }
	
	
	
	    .btn-medium {
        font-size: .8em;
        letter-spacing: 0.05em;
    }
	
	    .btn-style {
        color: #bba86d;
        background: transparent;
        border-color: #bba86d;
    }
    
    .btn-style:hover, .btn-style:active {
        background: #bba86d;
        border-color: #bba86d;
    }
	
	.btn-style:after {
        background: #bba86d;
        color: #fff;
    }



/* Modal (background) */

.modal-background {
	display: none;
	position: fixed;
	z-index: 200;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	overflow: auto;
	background-color: rgb(0,0,0);
	background-color: rgba(0,0,0,0.6);
	-webkit-animation-name: fadeIn;
	-webkit-animation-duration: 0.4s;
	animation-name: fadeIn;
	animation-duration: 0.4s;
	/* Für Center Modal*/
	padding-top: 100px;
}


/* Center Modal Content */
.centerModal-content {
	max-height: 90%;
	overflow: auto;
	margin-left: auto;
	margin-right: auto;
	padding: 0.7em 1em 1em 1em;
	background-color: #333;
	color: #b8b8b8;
	width: 100%;
	-webkit-animation-name: fadeIn;
	-webkit-animation-duration: 0.8s;
	animation-name: fadeIn;
	animation-duration: .8s;
	-webkit-box-shadow: 0px 0px 15px 2px #AAAAAA; 
	box-shadow: 0px 0px 15px 2px #AAAAAA;
}

.centerModal-content strong {

	color: #bba86d;

}

@media screen and (min-width: 560px) {
	/* Center Modal Content */
	.centerModal-content {
		width: 90%;
	}
}


@media screen and (min-width: 1280px) {
	/* Center Modal Content */
	.centerModal-content {
		width: 80%;
	}
}


#centerModal h2, #bottomModal h2 {
	color: #b8b8b8;
	margin-bottom: 0;
	padding: 0;
}


#bottomModal p {
	margin-bottom: 0.1em;
}

/* Close Button */

.close {
	float: right;
	font-size: 28px;
	font-weight: bold;
}

.close:hover,
.close:focus {
	color: #ddd;
	text-decoration: none;
	cursor: pointer;
}

.modal-header {
	padding: 0 0 2em 0;
}

.modal-body {
	/* padding: 2em 0 2em 0;
	text-align: center;
	*/
}



@-webkit-keyframes slideIn {
	from {bottom: -500px; opacity: 0} 
	to {bottom: 0; opacity: 1}
}

@keyframes slideIn {
	from {bottom: -500px; opacity: 0}
	to {bottom: 0; opacity: 1}
}

@-webkit-keyframes fadeIn {
	from {opacity: 0} 
	to {opacity: 1}
}

@keyframes fadeIn {
	from {opacity: 0} 
	to {opacity: 1}
}



/* Error Info Box */



#infoBox {
	display: none;
	flex-flow: row nowrap;
	gap: 1em;
	min-height: 100px;
	max-width: 100%;
	margin: 3em auto -3em;
	background: transparent;
	border: solid 3px rgba(170, 170, 170, 1);
	-webkit-box-shadow: 0px 0px 11px 0px rgba(170, 170, 170, 0.75);
	-moz-box-shadow: 0px 0px 11px 0px rgba(170, 170, 170, 0.75);
	box-shadow: 0px 0px 11px 0px rgba(170, 170, 170, 0.75);
}

#infoBox .icon {
	padding: 18px;
}

/* nicht mehr benötigt, seitdem ich die Icons mit den nachfolgenden CSS Pseudo Klassen erstelle!

#infoBox .icon i {
	font-size: 4em;
	color: #fff;
}
*/

#infoBox .icon::before {
	display: inline-block;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	color: #fff;
}


#infoBox .warning::before {
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\f071";
}

#infoBox .warning2::before {
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\21";
}

#infoBox .info::before {
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\f05a";
}

#infoBox .check::before {
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\f00c";
}

#infoBox .circle-check::before {
	font: var(--fa-font-solid);
	font-size: 4em;
	content: "\f058";
}

#infoBox .circle-check2::before {
	font: var(--fa-font-regular);
	font-size: 4em;
	content: "\f058";
}



#infoBox .icon.green {
	background-color: #29d885;
}

#infoBox .icon.red {
	background-color: #e44b5e;
}

#infoBox .icon.blue {
	background-color: #4188ff;
}

#infoBox.green {
	border: solid 3px rgba(41, 216, 133, 1) !important;
}

#infoBox.red {
	border: solid 3px rgba(228, 75, 94, 1) !important;
}

#infoBox.blue {
	border: solid 3px rgba(65, 136, 255, 1) !important;
}


#infoBox .content {
	flex-grow: 1;
	padding: 15px 10px;
}

#infoBox h3 {

	font-weight: bolder;
	margin: 0;
	padding-bottom: 5px;
}


@media screen and (min-width: 736px) {
	#infoBox {
		max-width: 95%;

	}
}

@media screen and (min-width: 980px) {
		#infoBox {
		max-width: 90%;

	}
}

