/* Custom CSS
--------------------------------------------------------- */
[class^="icon-"], [class*=" icon-"] {
	font-family: 'pixelvicon';
	speak: none;
	font-style: normal;
	font-weight: normal;
	font-variant: normal;
	text-transform: none;
	font-size:20px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
#content {
	padding: 60px 0 0 0;
	overflow-x:hidden;
}

.button {
	background-color: #40444e;
	border:none;
	color: #fff !important;
	display: inline-block;
	font: 700 14px "Open Sans",sans-serif;
	letter-spacing: 2px;
	margin: 0;
	padding: 10px 15px;
	text-transform: uppercase;
	transition: all 0.1s ease-in 0s;
}
.button:hover {
	background-color:var(--c-primary);
}

/* typo
--------------------------------------------------------- */
h1, h2, h3, h4, h5, h6 {
	letter-spacing: 1px;
	color:var(--c-headlines);
	font-weight:normal;
}
h2 {
	color: #e8ba01;
	font-size: 22px;
	font-weight: 400;
	line-height: 28px;
	text-align: left;
	-moz-hyphens: auto;
}
h2.h1,
h1 {
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	color:var(--c-headlines);
	font-size: 30px;
	font-size: clamp(30px, 4vw, 45px);
	line-height: 1.2;
	font-weight: normal;
	letter-spacing: 1px;
	margin-bottom: 25px;
	padding: 0 0 35px;
	text-align: left;
	text-transform: uppercase;
}
.c-gray {
	color:var(--c-gray) !important;
}
.c-light-gray {
	color:var(--c-light-gray) !important;
}
.c-999999 {
	color:#999999 !important;
}
/*
section ul {
	font-size: 14px;
}*/

/* header
--------------------------------------------------------- */
.burger {
	background-color:#fff;
}
.sticky-nav #logo img, .sticky-nav #logo svg,
#logo img, #logo svg {
	height: 65px;
}
#mobile-main-menu li a,
#main-menu li a {
	font-weight: 600;
	text-transform: uppercase;
	padding: 1.2rem 1.5rem;
}
#mobile-main-menu li.current-menu-item a,
#main-menu li.current-menu-item a {
	color: var(--c-light-gray);
}
#mobile-main-menu li a:focus,
#mobile-main-menu li a:active,
#mobile-main-menu li a:hover,
#main-menu li a:focus,
#main-menu li a:hover,
#main-menu li a:active {
	color: var(--c-primary) !important;
}
#mobile-menu-container {
	min-height:1px;
}
.mobile-menu-inner {
	box-shadow: 0 8px 10px rgb(92 75 81 / 6%);
}
#mobile-main-menu li {
	width:100%;
	text-align:center;
	display:inline-block;
	padding: 0;
}
#mobile-main-menu li a {
	padding: 0.5rem 1.5rem;
	margin: 1rem 0;
	line-height: 20px;
	font-size: 14px;
	letter-spacing: 1px;
}

/* sections
--------------------------------------------------------- */
.column.col-reverse {
	grid-column-end: -1;
}
section {
	position: relative;
	width:100%;
	padding-top: 8rem;
	padding-bottom: 8rem;
}
section.section-bild-text {
	padding-top: 0rem;
	padding-bottom: 0rem;
}
section.section-kontakt {
	padding-bottom: 0rem;
}
section.bg-lightest-gray {
	background-color:#F5F7FA;
}
section.section-vollbild {
	max-height:calc(96vh - 80px);
	overflow:hidden;
	padding-top: 0;
	padding-bottom: 0;
}
.content-wrap-inner {
	background: none repeat scroll 0 0 #fff;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	color: #5E5E5E;
	font-size: 16px;
	letter-spacing: 1px;
	line-height: 24px;
	margin: 0 0 30px;
}
/* Vollbild */
.vollbild-image-scroller {
	height:100%;
	width:100%;
	position: relative;
}
.vollbild-image-smartphone {
	display:none;
}
#content section.section-vollbild img {
	height:100%;
	width:100%;
	object-fit: cover;
	position: relative;
	top: 0;
	left: 0;
}
/* Bild & Text */
.bt-image-container {
	position: absolute;
	top:0;
	left:0;
	width:50%;
	overflow:hidden;
	height:100%;
}
#content .bt-image-container img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.bt-content-wrap {
	padding: 100px 0 100px 100px;
}
.text-pos-left .bt-image-container {
	top:0;
	right:0;
	left:auto;
}
.text-pos-left .bt-content-wrap {
	padding: 100px 100px 100px 0;
}
/* Team */
.section-team {
	transition: all .3s ease;
}
.team-grid {
	margin-bottom: 4rem;
	transition: all .3s ease;
}
.team-unit {
	text-align:center;
	border-radius: 2px;
	box-shadow: 0 0 10px rgb(92 75 81 / 0%);
	-webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	transition: all 0.3s;
	cursor:pointer;
}
.team-unit:hover {
	box-shadow: 0 0 10px rgb(92 75 81 / 30%);
}
.tu-overlay {
	position: absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	font-weight:bold;
	display:flex;
	align-items: center;
	justify-content: center;
	text-transform:uppercase;
	font-size: 18px;
	letter-spacing: 1px;
	color:#fff;
	z-index: 2;
	opacity:0;
	visibility: hidden;
	pointer-events: none;
	transition: all .3s ease;
}
.team-unit:hover .tu-overlay {
	opacity:.9;
	visibility: visible;
}
.tu-image-container {
	position: relative;
}
.tu-content-container {
	height: 100px;
	background: #FFF;
	text-align: center;
	padding-top: 20px;
	color: #40444e;
	font: 700 18px 'Open Sans', sans-serif;
	letter-spacing: 0px;
	/*text-transform: uppercase;*/
	border-radius: 0 0 2px 2px;
}
.team-overlay-container {
	position: fixed;
	top: 85px;
	right:0;
	transform:translateX(650px);
	width:650px;
	height: calc(100% - 85px);
	z-index: 3;
	background-color:#fff;
	transition: all .3s ease;
	padding-bottom: 90px;
	overflow-x:hidden;
	overflow-y:auto;
}
.section-team .overlay-bg {
	width:100%;
	height:100%;
	position: absolute;
	left:0;
	top:0;
	background-color:rgba(0,0,0,.6);
	z-index: 2;
	opacity:0;
	pointer-events:none;
	visibility: hidden;
	transition: all .3s ease;
}
.section-team.active .team-grid {
	transform: translateX(-650px);
}
.section-team.active .overlay-bg {
	opacity:1;
	pointer-events:all;
	visibility: visible;
	cursor:pointer;
}
.section-team.active .team-overlay-container {
	transform:translateX(0);
}
.team-overlay {
	display:none;
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
	padding-bottom: var(--gap-default);
}
.team-overlay.active {
	display:block;
	overflow-x:hidden;
	overflow-y: auto;
}
.team-overlay .button {
	background-color: #40444e;
}
.team-overlay .to-header {
	padding:3rem var(--gap-default);
	color: #fff;
	background-color: var(--c-primary);
}
.team-overlay .to-content{
	padding:var(--gap-default);
}
.team-overlay ul {
	margin-left:var(--gap-default);
	margin-bottom:var(--gap-default);
}
.tu-subtitle {
	font-size:14px;
}
.to-name {
	font-size: 22px;
	line-height: 20px;
	font-family: 'Open Sans',sans-serif;
	font-weight: bold;
	text-transform: uppercase;
	text-align: left;
	border-bottom: none;
	letter-spacing: 1px;
	display:inline-block;
	width:100%;
}
.to-subtitle {
	font-size: 16px;
	font-weight: bold;
	font-family: 'Open Sans', sans-serif;
	padding: 0 0 15px;
	line-height: 28px;
}
.to-close {
	position: absolute;
	bottom: var(--gap-default);
	right: var(--gap-default);
	float: right;
	width:50px;
	height:50px;
	cursor: pointer;
	background: #40444e;
	transition: all 0.2s ease 0s;
	opacity: 0;
	pointer-events:none;
	visibility: hidden;
	z-index: 3;
}
.to-close.mobile {
	display:none;
	position: fixed;
}
.section-team.active .to-close {
	opacity: 1;
	pointer-events:all;
	visibility: visible;
}
.to-close:hover {
	background: rgba(0,0,0,0.8);
}
.to-close::before,
.to-close::after {
	content:"";
	width: 30px;
	height: 4px;
	background-color:#fff;
	transform:rotate(45deg);
	position: absolute;
	top:0;
	right:0;
	bottom:0;
	left:0;
	margin:auto;
}
.to-close::after {
	transform:rotate(-45deg);
}
.to-contacts {
	padding: var(--gap-half) 0 var(--gap-default) 0;
	line-height: 2;
}
@media (min-width:1081px) {
	.grid.team-grid {
		grid-gap: 40px 33px;
	}
	.to-contacts {
		padding: var(--gap-default) 0 calc(var(--gap-default) * 2) 0;
	}
}
/* Werdegang */
.werdegang-liste {
	margin-left:var(--gap-default);
	color: #5E5E5E;
	font-size: 14px;
	letter-spacing: 1px;
}
.werdegang-liste li {
	margin-bottom:10px;
}
.wg-jahr {
	font-weight:bold;
	display:inline-block;
	width:100%;
	margin-top:5px;
}
/* Leistungen / Tabs */
.nosun-tab {
	margin-bottom: var(--gap-default);
	letter-spacing: 1px;
}
.nosun-tab:last-child {
	margin-bottom: 0;
}
.tab-title {
	max-width: 435px;
	display: flex;
	align-items: center;
	height: 56px;
	margin-left: 0px;
	padding-left: 80px;
	position: relative;
	z-index: 200;
	cursor:pointer;
	font-size: 14px;
	line-height: 1.6;
	transition: all 0.2s ease 0s;
}
.tab-title svg {
	position: absolute;
	left:0;
	top:0;
	border: 3px solid #F5F7FA;
	cursor: pointer;
	display: inline-block;
	float: left;
	padding: 10px;
	width:56px;
	height:56px;
	transition: all 0.2s ease 0s;
}
.nosun-tab.active .tab-title,
.tab-title:hover {
	font-weight:bold;
}
.tab-content {
	max-width: 435px;
	font-size: 14px;
	line-height: 1.6;
	display:none;
	padding-bottom: var(--gap-default);
}
@media (min-width:768px) {
	.tab-title {
		padding-top: 18px;
		padding-bottom: 18px;
		margin-left: 0px;
		padding-left: 80px;
	}
	.tab-content {
		padding-left: 80px !important;
		margin-left: 0px !important;
	}
}
/* Galerie */
.grid.galerie-grid {
	grid-gap:1px;
}
.galerie-col {
	height:288px;
	width:100%;
	overflow:hidden;
}
.galerie-col img {
	height: 100% !important;
	width: 100%;
	object-fit:cover;
	transition: transform .6s cubic-bezier(.190, 1.000, .220, 1.000);
}
.galerie-col:hover img {
	transform: scale(1.25);
}
/* Kontakt */
.section-kontakt .column.five {
	background: #fff;
	border: none;
	padding: 38px 0 22px 10%;
}
.cont-details {
	margin-bottom: calc(var(--gap-default) * 2);
	color: #5e5e5e;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 1px;
	text-align: left;
}
.cont-details span {
	color: var(--c-primary);
	display: block;
	font: 700 20px 'Open Sans', sans-serif;
	letter-spacing: 2px;
	margin: 0 0 3px;
}
.cont-details a {
	color:var(--c-headlines);	
}
.cont-details a:hover {
	color:var(--c-primary);
}
.cont-details.social-media a {
	display:flex;
	align-items: center;
	justify-content: flex-start
}
.cont-details.social-media a img {
	height:40px !important;
	width:auto !important;
	display:inline-block;
	margin-right:10px;
}
input[type=email], input[type=number], input[type=password], input[type=reset], input[type=search], input[type=tel], input[type=text], input[type=url], select, textarea {
	width:100%;
	margin-bottom: var(--gap-default);
	border-width: 0 0 2px 0;
	border-color: #000;
}
input[type="text"], input[type="email"] {
	background: #fff;
	border: none;
	border-bottom: solid black 2px;
	color: #40444e;
	font: 700 14px 'Open Sans',sans-serif;
	height: 50px;
	letter-spacing: 1px;
	margin: 0 0 20px;
	padding: 5px 0 0 !important;
	transition: all 0.5s ease 0s;
	width: 100%;
}
textarea {
	background: #fff;
	border: none;
	border-bottom: solid black 2px;
	color: #40444e;
	font: 700 14px 'Open Sans',sans-serif;
	height: 250px;
	letter-spacing: 1px;
	margin: 0 0 20px;
	padding: 40px 0 0 !important;
	transition: all 0.5s ease 0s;
	width: 100%;
}
.wpcf7-list-item {
	font-size:14px;
	line-height: 1.6;
	color: #1A1A1A;
	letter-spacing: 1px;
}
input[type=submit] {
	text-align:center;
	background: #40444e;
	border: none;
	color: #fff;
	cursor: pointer;
	font: 700 14px 'Open Sans',sans-serif;
	letter-spacing: 1px;
	padding: 15px 0;
	text-align: center;
	transition: all 0.2s ease-in 0s;
	width: 100%;
	margin-bottom:0;
}

/* Footer
--------------------------------------------------------- */
footer#footer {
	padding-bottom: 8rem;
}
footer#footer .footer-middle {
	padding:10px 0;
	background:none;
}
#footer-menu li {
	float: none;
	width: auto;
	display: inline-block;
	padding: 0 6px 0 10px;
	vertical-align: top;
	position: relative;
}
#footer-menu li::before {
	content:"";
	position: absolute;
	top:0;
	left:0;
	bottom:0;
	margin:auto;
	height:16px;
	width: 1px;
	background-color:var(--c-headlines);
}
#footer-menu li:first-child {
	padding-left:0;
}
#footer-menu li:first-child::before {
	display:none;
}
.nosun a,
#footer-menu li a {
	font-size:14px;
	color: var(--c-headlines);
	letter-spacing: 1px;
}
.nosun a:hover,
#footer-menu li a:hover {
	color: var(--c-primary);
}
footer#footer .footer-bottom {
	background:none;
	color: var(--c-headlines);
}
footer#footer .footer-bottom .container {
	padding-bottom: 4rem;
	border-bottom: 1px solid rgba(0,0,0,0.05);
	font-size:14px;
	letter-spacing: 1px;
}

/* contact form 7
--------------------------------------------------------- */
.wpcf7-not-valid-tip {
	font-size: 14px;
	color: #fff !important;
	background: var(--c-danger) !important;
	padding: 10px;
	display: inline-block;
	letter-spacing: 1px;
}
input[type=email].wpcf7-not-valid + .wpcf7-not-valid-tip,
input[type=text].wpcf7-not-valid + .wpcf7-not-valid-tip {
	transform: translateY(-15px);
}
textarea.wpcf7-not-valid + .wpcf7-not-valid-tip {
	transform: translateY(-20px);
}
.wpcf7-acceptance.wpcf7-not-valid + .wpcf7-not-valid-tip {
	margin-top: 10px;
}
.wpcf7 form .wpcf7-response-output {
	margin-top: 0;
	margin-bottom: 4rem;
	padding:10px;
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
	font-size:14px;
	letter-spacing: 1px;
}

/* media queries
--------------------------------------------------------- */
@media (max-width:1080px) {
	.section-kontakt .column.five {
		padding: calc(var(--gap-default) * 2) 0;
	}
	.bt-content-wrap {
		padding: calc(var(--gap-default) * 2) var(--gap-default);
	}
	.to-close.mobile {
		display:block;
	}
	#content {
		padding-top:0;
	}
	header#header {
		background:none;
		box-shadow:none;
		top:20px;
		pointer-events:none;
	}
	.burger {
		width:60px;
		pointer-events:all;
	}
	.mobile-menu-inner {
		min-height: 1px;
		width: calc(100% - var(--gap-default) * 2);
		top: 10rem;
		bottom: auto;
		left: var(--gap-default);
		overflow-y: auto;
		overflow-x: hidden;
		background-color: var(--c-white);
		padding: var(--gap-default);
	}
	.menu-hauptmenue-container {
		width:100%;
	}
	.team-overlay-container {
		top: 0;
		height: 100%;
	}
	#logo,
	.to-close.desktop {
		display:none;
	}
}
@media (max-width:767px) {
	body {
		font-size: 1.8em;
	}
	.tab-content {
		padding-top:var(--gap-default);
	}
	.bt-content-wrap {
		padding: 8rem 0;
	}
	.section-team.active .team-grid {
		transform: translateX(-105%);
	}
	.team-overlay-container {
		position: fixed;
		top: 0;
		transform: translateX(100%);
		width: 100%;
		height: 100%;
	}
	.team-overlay .to-header {
		padding-top: 10rem;
		padding-right: 8rem;
	}
	.team-overlay .to-content {
		padding-top: 8rem;
	}
	.vollbild-image-smartphone {
		display:block;
	}
	.vollbild-image-scroller {
		display:none;	
	}
	section.section-vollbild {
		max-height: none;
	}
	#content section.section-vollbild .vollbild-image-smartphone img {
		height: auto;
		width: 100%;
	}
	.section-kontakt .column.five {
		padding: 2rem 4rem;
	}
	#footer-menu li {
		width: 100%;
		padding-left: 0;
		padding-bottom: 10px;
	}
	.nosun {
		display:block;
		margin-top:10px;
	}
	#footer-menu li::before,
	.bt-image-container {
		display:none;
	}
}
@media (max-width: 400px) {
	.section-kontakt .column.five {
		padding: 2rem 0;
	}
}

/* Animations
--------------------------------------------------------- */
.animate {
	opacity: 0;
	transform: translateY(40px);
	transition: all var(--a-timing-default) var(--a-easing-default);
}
.animate.inView {
	opacity: 1;
	transform: translateY(0px);
}

/* display none
--------------------------------------------------------- */
.nosun a::after,
.to-content .button::after,
.cont-details.social-media a::after,
.hidden {
	display: none !important;
}