/*
Theme Name: CMS Maschinen
Author: Jochen "Khuri" Dippel
*/

/* poppins-200 - 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: 'Poppins';
  font-style: normal;
  font-weight: 200;
  src: url('fonts/poppins-v20-latin-200.eot'); /* IE9 Compat Modes */
  src: url('fonts/poppins-v20-latin-200.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('fonts/poppins-v20-latin-200.woff2') format('woff2'), /* Super Modern Browsers */
       url('fonts/poppins-v20-latin-200.woff') format('woff'), /* Modern Browsers */
       url('fonts/poppins-v20-latin-200.ttf') format('truetype'), /* Safari, Android, iOS */
       url('fonts/poppins-v20-latin-200.svg#Poppins') format('svg'); /* Legacy iOS */
}

/* poppins-300 - latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  src: url('fonts/poppins-v20-latin-300.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('fonts/poppins-v20-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('fonts/poppins-v20-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
       url('fonts/poppins-v20-latin-300.woff') format('woff'), /* Modern Browsers */
       url('fonts/poppins-v20-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
       url('fonts/poppins-v20-latin-300.svg#Poppins') format('svg'); /* Legacy iOS */
}

/* poppins-regular - latin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/poppins-v20-latin-regular.eot'); /* IE9 Compat Modes */
  src: local(''),
       url('fonts/poppins-v20-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('fonts/poppins-v20-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('fonts/poppins-v20-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('fonts/poppins-v20-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('fonts/poppins-v20-latin-regular.svg#Poppins') format('svg'); /* Legacy iOS */
}

* {
	margin: 0;
	padding: 0;
	border: 0;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	word-wrap: break-word;
	word-break: keep-all;
	--weiss: #fff;
	--schwarz: #000;
	--hellblau: #0076BE;
	--dunkelblau: #004189;
	--altblau: #0676bb;
	--linkblau: #004189;
	--hellgrau: #d9d9d9;
	--graubg: #f7f7f7;
	--schatten-hell: 5px 5px 15px 0 rgba(0,0,0,.1);
	--schatten-dunkel: 5px 5px 15px 0 rgba(0,0,0,.2);
	--borderradius: 5px;
	--boxborder: 2px solid var(--hellgrau);
}
body {
	background-color: #fff;
	overflow: visible;
	overflow-y: scroll;
	overflow-x: auto;
	padding: 0;
	margin: 0;
}
body, button, input, select, textarea, td, th, li {
	color: var(--schwarz);
	font-family: 'Poppins', 'Arial', Helvetica, Arial, sans-serif;
	font-size: 20px;
	line-height: 35px;
	font-weight: 300;
}
input, textarea, select {
	border: 0 none;
	background-color: #eceeee;
	padding: 4px;
}
input[type="submit"] {
	border: 1px solid var(--schwarz);
}
td, th {
	font-size: inherit;
}
blockquote,q {
	quotes:none;
	margin-left: 20px;
}
blockquote:before,blockquote:after,q:before,q:after {
	content: '';
}
b, strong {
	font-weight: 400 !important;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
	display:block;
}
body a {
	color: var(--linkblau);
	text-decoration: underline;
}
body a:hover, body a:active {
	color: var(--schwarz);
}
body .pagebody .fsn-text p a::after {
	content: ' >';
	position: relative;
	display: inline;
	text-decoration: underline;
}
hr {
	position: relative;
	display: block;
	width: 100%;
	height: 1px;
	background-color: #000;
	border-bottom: 1px solid #888;
	margin: 16px 0;
}
h1,h2,h3,h4,h5,h6 {
	font-weight: 400;
	margin: 1.67em 0 0.67em 0;
}
h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
	margin-top: 0;
}
.clear {
	clear: both;
}
.nomargin {
	margin: 0 !important;
}

/* WP classes */
.alignleft {
	display: inline;
	float: left;
}
.alignright {
	display: inline;
	float: right;
}
.aligncenter {
	display: block;
	margin-right: auto;
	margin-left: auto;
}
blockquote.alignleft,
.wp-caption.alignleft,
img.alignleft {
	margin: 0.4em 1.6em 1.6em 0;
}
blockquote.alignright,
.wp-caption.alignright,
img.alignright {
	margin: 0.4em 0 1.6em 1.6em;
}
blockquote.aligncenter,
.wp-caption.aligncenter,
img.aligncenter {
	clear: both;
	margin-top: 0.4em;
	margin-bottom: 1.6em;
}
.wp-caption.alignleft,
.wp-caption.alignright,
.wp-caption.aligncenter {
	margin-bottom: 1.2em;
}
.textleft {
	text-align: left;
}
.textcenter {
	text-align: center;
}
.textright {
	text-align: right;
}
.login-action-login {
	background-image: none !important;
}

/* Header */
.pagehead {
	position: relative;
	width: 100%;
	height: auto;
	margin: 0;
	font-size: 0;
	line-height: 1em;
	z-index: 100;
}
.pagehead a, .pagehead a:hover {
	color: var(--linkblau);
	text-decoration: none;
}
.headerlogo {
	position: absolute;
	top: 0;
	left: 0;
	height: 180px;
	display: grid;
	align-content: center;
}
.headerlogo img {
	height: 62px;
	width: auto;
}
.contactbox {
	position: absolute;
	top: 70px;
	left: 440px;
	color: var(--linkblau);
}
.contactbox .title {
	font-size: 28px;
	line-height: 1em;
	margin-bottom: 16px;
}
.contactbox a {
	display: block;
	font-size: 16px;
	line-height: 36px;
	padding-left: 45px;
	background-repeat: no-repeat;
	background-position: center left;
	background-color: transparent;
	background-size: 30px 30px;
}
.socialmedialinks {
	position: absolute;
	top: 160px;
	right: 40px;
}
.socialmedialinks a {
	display: inline-block;
	width: 32px;
	height: 32px;
	margin-left: 16px;
	background-repeat: no-repeat;
	background-position: center left;
	background-color: transparent;
	background-size: 30px 30px;
}
.headerslider {
	position: relative;
	width: 100%;
	.slider {
		position: relative;
		width: 100%;
		height: 100%;
	}
	.slick-list, .slick-track {
		height: 100%;
	}
	.slide, .item {
		width: 100%;
		height: 100%;
		background-size: cover;
		background-position: center;
	}
	.bodywrap {
		height: 100%;
	}
	.curvedetail {
		position: absolute;
		top: 0;
		left: 0;
		width: 460px;
		height: 300px;
		background: url(images/curve.svg) no-repeat left top -1px transparent scroll;
		background-size: contain;
	}
	.startvideo {
		position: relative;
		height: 500px;
		display: block;
	}
	video {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}
}

.headerblock {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 245px;
	background-color: #fff;
	z-index: 1000;
}

	/* Menu */
.mainmenubox {
	position: absolute;
	top: 180px;
	left: 0;
	width: 100%;
	height: 60px;
	box-sizing: content-box;
	background-color: var(--altblau);
	/*border-bottom: 5px solid #fff;*/
	z-index: 10;
}
#mainmenu, .topmenu ul, .socialmenu {
	position: relative;
	list-style-type: none;
	padding: 0;
	text-align: left;
	font-size: 0;
	line-height: 0;
}
#mainmenu li, .topmenu li, .socialmenu li {
	position: relative;
	display: inline-block;
	vertical-align: top;
}
#mainmenu > li {
	margin-right: 30px;
}
#mainmenu > li:last-child {
	margin-right: 0;
}
#mainmenu > li > ul {
	position: absolute;
	display: none;
	padding: 30px 0 0 0;
	margin-left: -10px;
	min-width: 300px;
	background: url(images/nav-arrow-down.png) no-repeat top left +50px transparent;
}
#mainmenu li > ul li {
	position: relative;
	display: block;
	margin: 0;
}
#mainmenu li > ul li:last-child {
	margin-bottom: 5px;
}
#mainmenu li:hover > ul {
	display: block;
	z-index: 10;
	text-align: left;
}
#mainmenu ul ul {
	position: absolute;
	top: 0;
	left: 300px;
	width: 100%;
	max-width: 300px;
	padding: 0 10px 0 0;
	display: none;
	background-image: none;
	height: auto;
}
#mainmenu ul li:hover > ul {
	display: block;
}
#mainmenu a {
	padding: 0;
	font-size: 18px;
	line-height: 60px;
	color: #fff;
	font-weight: 300;
	text-transform: uppercase;
	display: block;
}
#mainmenu > li:hover > a, #mainmenu > li.current_page_item > a, #mainmenu > li.current_page_ancestor > a {
	/*color: #1e3f75;*/
	text-shadow: 0 0 1px #fff;
}
#mainmenu ul a {
	padding: 0 0 16px 0;
	font-size: 18px;
	line-height: 1.2em;
	color: #fff;
	font-weight: 300;
	text-transform: none;
}
#mainmenu ul > li, #mainmenu ul > li > a {
	width: 100%;
}
#mainmenu ul > li {
	padding: 7px 0;
}
#mainmenu ul > li > a {
	padding: 3px 0 3px 10px;
}
#mainmenu > li > ul > li:hover > a {
	color: #fff;
	background-color: rgba(255,255,255,.2);
}
#mainmenu ul ul a {
	padding-left: 30px;
	text-transform: uppercase;
}
#mainmenu ul ul a:hover, #mainmenu ul > li:hover > ul > li:first-child a {
	background: url(images/nav-arrow-right.png) no-repeat top 3px left -1px transparent;
}
#mainmenu ul > li:hover > ul:hover > li:first-child a {
	background-image: none;
}
#mainmenu ul ul a:hover {
	background-image: url(images/nav-arrow-right.png) !important;
}
#mainmenu ul ul li:last-child {
	margin-bottom: -3px;
}
#mainmenu ul ul li:last-child a {
	padding-bottom: 0;
}
.submenudivider {
	position: fixed;
	top: calc(245px + 30px);
	left: calc((100% / 2) - (1280px / 2) + 290px);
	width: 1px;
	height: 0;
	opacity: 0;
	background-color: #fff;
	z-index: 10;
}
.submenudivider.show {
	height: 620px;
	opacity: 1;
}
.submenushade {
	position: fixed;
	top: 245px;
	left: 0;
	background-color: rgba(1,48,100,.9);
	opacity: 0;
	transition: opacity .1s, height .1s;
	width: 100%;
	height: 0;
	z-index: 10;
}
.submenushade.show {
	height: 680px;
	opacity: 1;
	transition: opacity .1s, height .1s;
}
.mobilemenu, .mobilemenu-close {
	position: absolute;
	display: none;
}
.socialmenu {
	text-align: left;
	li {
		margin-left: 20px;
	}
}
.socialmenu a {
	font-size: 0;
	line-height: 0;
	display: block;
	width: auto;
	height: auto;
	background: url(images/youtube-logo.png) no-repeat center transparent;
	background-size: contain;
}
.youtube a {
	background-image: url(images/youtube-logo.png);
	height: 20px;
	width: 90px;
}
.linkedin a {
	background-image: url(images/linkedin-logo.png);
	height: 20px;
	width: 20px;
}
.topmenu {
	position: absolute;
	right: 0;
	top: 0;
	height: 180px;
	display: grid;
	align-content: center;

	a {
		vertical-align: top;
		font-size: 10px;
		margin-left: 16px;
	}
	ul {
		display: inline-block;
		text-align: right;
		vertical-align: top;
	}
	li {
		height: 0;
	}

	.socialmenu {
		a {
			font-size: 0;
		}
		.youtube a {
			height: 40px;
			width: 180px;
		}
		.linkedin a {
			height: 40px;
			width: 40px;
		}
	}
}
.topsearch {
	font-size: 0;
	line-height: 0;
	.icon {
		display: block;
		width: 36px;
		height: 60px;
		background: url(images/icon_search.svg) no-repeat center transparent;
		background-size: contain;
		cursor: pointer;
	}
}
.searchbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
	background-color: #fff;
	border: 20px solid #aab2bd;
	transition: opacity 0s;
	opacity: 0;
	z-index: 1000;
}
.searchbox.active {
	opacity: 1;
	width: 100vw;
	height: 100vh;
	transition: opacity 1s;
}
.searchbox .close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 60px;
	height: 60px;
	font-size: 60px;
	line-height: 60px;
	font-weight: 300;
	color: #aab2bd;
	cursor: pointer;
}
.floatsearchform {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	max-width: 80%;
	display: none;
}
.searchbox.active .floatsearchform {
	display: block;
}
.floatsearchform input[type="text"] {
	font-size: 40px;
	line-height: 1em;
	max-width: 100%;
	padding: 6px 10px;
	color: var(--altblau);
	background-color: #fff;
	border-bottom: 2px solid var(--altblau);
	box-shadow: none !important;
	outline: transparent !important;
}
.floatsearchform input[type="submit"] {
	display: none;
}
/* Footer */
.pagefooter {
	position: relative;
	width: 100%;
}
.pagefooter p {
	font-size: 18px;
	line-height: 1.5em;
	margin-bottom: 1em;
}
.pagefooter a {
	text-decoration: none;
}
.pagefooter a:hover {
	color: var(--dunkelblau);
}
.pagefooter .socialmenu {
	padding: 0;
}
.pagefooter .socialmenu li {
	margin-left: 0;
	margin-right: 16px;
}
.footerborder {
	border: solid #000;
	border-width: 1px 0;
	padding: 50px;
	margin-bottom: 20px;
}
.copyright p {
	font-size: 14px;
}
.backtotop {
	position: fixed;
	bottom: 20px;
	right: calc(50vw - 640px - 80px);
	display: none;
	width: 48px;
	height: 48px;
	font-size: 0;
	line-height: 0;
	background: url(images/arrow-up-alt.png) no-repeat center transparent;
	background-size: contain;
}
.backtotop:hover {
	background-image: url(images/arrow-up.png);
}

.sideinfobox {
	position: fixed;
	top: 30vh;
	right: 0;
	width: 0;
	display: none;
	&:hover {
		cursor: pointer;
	}
	.icons, .content {
		position: absolute;
		top: 0;
		background-color: #fff;
		border: 1px solid var(--hellgrau);
		border-width: 1px 0 1px 1px;
		border-radius: var(--borderradius) 0 0 var(--borderradius);
	}
	.icons {
		right: 0;
		padding: 15px;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		div {
			width: 30px;
			height: 30px;
			background-position: center;
			background-size: contain;
			background-repeat: no-repeat;
			margin-bottom: 15px;
			&.phone {
				background-image: url(images/icon_phone.svg);
			}
			&.email {
				background-image: url(images/icon_mail.svg);
			}
			&:last-child {
				margin-bottom: 0;
			}
		}
	}
	.content {
		right: -600px;
		width: 600px;
		max-height: calc(100vh - 30vh - 20px);
		max-width: 100vw;
		overflow: auto;
		padding: 50px 90px;
		font-size: 22px;
		line-height: 2em;
		background-color: var(--graubg);
		opacity: 0;
		transition: right 0.3s ease, opacity 0.3s ease;
		&.open {
			right: 0;
			opacity: 1;
		}
		h1, strong {
			color: var(--hellblau);
		}
		h1 {
			font-size: 32px;
			line-height: 2.5em;
			margin-bottom: -.1em;
			&:first-of-type {
				margin-top: -.5em;
			}
		}
		a {
			text-decoration: none;
			font-weight: bold;
			em {
				text-decoration: underline;
				font-weight: 200;
				color: var(--schwarz);
				font-style: normal;
			}
		}
	}
}
@media (max-width: 600px) {
	.sideinfobox {
		.content {
			width: 400px;
			font-size: 16px;
			padding: 25px;
			h1 {
				font-size: 24px;
			}
		}
	}
}

/* Content */
.pagebody {
	position: relative;
	margin-top: 245px;
}
.bodywrap, .content > .full-width-row > .container-fluid, .pagefooter .full-width-row {
	position: relative;
	width: auto;
	height: auto;
	padding: 0;
	max-width: 1280px;
	margin: 0 auto;
	box-sizing: border-box;
}
.full-width-row.dark {
	background-color: var(--hellblau);
	color: #fff;
}
.full-width-row.grau {
	background-color: #ececec;
}
.content > .full-width-row, .pagefooter {
	padding-top: 80px;
	padding-bottom: 80px;
}
.content > .fsn-row:first-child {
	padding-top: 40px;
}
.breadcrumbs {
	font-size: 0;
	line-height: 0;
	padding-top: 40px;
}
.breadcrumbs a {
	color: var(--schwarz);
	font-size: 15px;
	line-height: 1em;
	text-decoration: none;
	padding-right: 4px;
	font-weight: 400;
}
.breadcrumbs a::after {
	content: ">";
	margin-left: 4px;
	display: inline-block;
}
.breadcrumbs a:last-child::after {
	content: "";
}
.pagebody.noslider {
	padding-top: 40px;
}
.pagebody img {
	width: auto;
	height: auto;
	max-width: 100%;
}
.pagebody h1, .pagebody h2, .pagebody h3, .pagebody h4 {
	line-height: 1.4em;
	color: var(--hellblau);
}
.pagebody h3, .pagebody h4 {
	color: var(--schwarz);
}
.pagebody h1 {font-size: 48px;}
.pagebody h2 {font-size: 32px;}
.pagebody h3 {font-size: 22px;}
.pagebody h4 {font-size: 20px;}
.pagebody p {
	margin-bottom: 1em;
}
.copyrightline {
	margin-top: 10px;
	margin-bottom: 20px;
}
.fsn-text ul {
	padding-left: 20px;
	margin-bottom: 1em;
}
.fsn-text li {
	padding-bottom: .5em;
}
.fsn-text > *:last-child {
	margin-bottom: 0;
}
.backtolist {
	display: block;
	margin-top: 60px;
	text-decoration: none;
}
.navigation {
	margin-top: 60px;
	text-align: center;
}
.nav-links > div {
	display: inline-block;
	padding: 0 10px;
}
.boldtext {
	font-weight: 300;
}
.datatable {
	margin-top: 40px;
	table {
		background-color: #fff;
		border: 1px solid var(--hellgrau);
	}
	tr {
		border-bottom: 1px solid var(--hellgrau);
		&.darkblue td {
			background-color: var(--hellblau);
			color: var(--weiss);
		}
	}
	thead tr:not(.darkblue):nth-child(even) {
		td:not(:first-child) {
			background-color: var(--graubg);
		}
		&:nth-child(4) td {
			background-color: var(--graubg);
		}
	}
	tbody {
		tr:nth-child(even) td:not(:first-child) {
			background-color: var(--graubg);
		}
		tr:last-child {
			border-bottom: 0 none;
		}
	}
	th, td {
		font-size: 20px;
		line-height: 35px;
		padding: 15px;
		height: auto;
		width: auto;
		border-left: 1px solid var(--hellgrau);
	}
	.darkblue td {
		border-left: 0 none;
	}
}

.dataimagetext {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-areas: "image text";
	margin-bottom: 25px;
}
.dataimagetext:nth-child(2n), .dataimagetext + .cbutton + .fsn-row .dataimagetext, .dataimagetext:nth-child(2n) + .cbutton + .fsn-row .dataimagetext:nth-child(2n) {
	grid-template-areas: "text image";
}
.dataimagetext:nth-child(2n) + .cbutton + .fsn-row .dataimagetext, .dataimagetext + .cbutton + .fsn-row .dataimagetext:nth-child(2n) {
	grid-template-areas: "image text";
}
.dataimagetext > div {
	position: relative;
	display: block;
	height: 460px;
}
.dataimagetext .image {
	grid-area: image;
	background-color: #fff;
}
.dataimagetext .image > div {
	display: block;
	width: 100%;
	height: 100%;
	background-color: #fff;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
}
.dataimagetext .content {
	grid-area: text;
	padding-left: 100px;
	padding-right: 100px;
	background-color: var(--hellblau);

	p {
		font-size: 18px;
		font-weight: 200;
		&:last-child {
			margin-bottom: 0;
		}
	}
}
.dataimagetext .content > div {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	max-width: calc(100% - 200px);
}
.dataimagetext .content * {
	color: var(--weiss);
}
.cbutton {
	display: block;
	margin-top: 40px;
	margin-bottom: 40px;
}
.cbutton a, .caldera-grid .btn-default, .powermail_submit {
	display: inline-block;
	border-radius: var(--borderradius);
	border: 0 none !important;
	background-color: var(--hellblau) !important;
	text-decoration: none !important;
	font-size: 20px !important;
	line-height: 50px !important;
	font-weight: 300 !important;
	color: var(--weiss) !important;
	padding: 0 45px !important;
}
.cbutton a:hover, .caldera-grid .btn-default:hover, .powermail_submit:hover {
	background-color: var(--dunkelblau) !important;
	color: var(--weiss) !important;
}
.cbutton a.gone {
	display: none;
}
.fsn-row.dark .cbutton a {
	color: var(--hellblau) !important;
	background-color: var(--weiss) !important;
	&:hover {
		background-color: var(--dunkelblau) !important;
		color: var(--weiss) !important;
	}
}
.caldera-grid .btn-default {
	margin: 40px 0 !important;
}
.caldera-grid .field_required, .required {
	color: #e3000f;
}
.caldera-grid label, .layout_form label {
	font-weight: 300 !important;
}
.layout_form label {
	width: 200px;
}
.layout_form label, .layout_form select, .layout_form input[type="text"] {
	display: inline-block;
	font-size: 18px;
	line-height: 1.4em;
}
.submit_container, #recaptcha_v2_widget {
	margin-left: 200px;
}
.cr_ipe_item {
	margin-bottom: 1em;
}
.caldera-grid label a {
	text-decoration: underline !important;
	&:hover {
		color: var(--schwarz) !important;
	}
}
.caldera-grid input[type="text"], .caldera-grid input[type="email"], .caldera-grid textarea, .caldera-grid select, .layout_form input[type="text"], .layout_form select {
	background-color: var(--graubg) !important;
	border: 0 none !important;
	height: auto !important;
	box-shadow: none !important;
	font-size: 18px !important;
	line-height: 35px !important;
	border-radius: var(--borderradius) !important;
	border-color: #D9D9D9 !important;
	padding: 12px 25px !important;
	&::placeholder {
		color: #8B8B8B !important;
	}
}
.caldera-grid .checkbox label {
	position: relative;
	margin-left: 60px !important;
	padding: 0 !important;
	input[type="checkbox"] {
		position: absolute;
		left: -40px;
		top: 50%;
		transform: translateY(-50%);
		width: 40px;
		height: 40px;
		display: inline-block;
	}
}
.caldera-grid select {
	width: auto !important;
}
#CF63d8da0ddf06e_1-row-2 .first_col p {
	margin: 0.3em 0 1.3em 0;
	line-height: 1.4em;
}
@media (max-width: 767px) {
	#CF63d8da0ddf06e_1-row-2 .first_col {
		display: none;
	}
	.caldera-grid label, .caldera-grid .caldera_forms_form .screen-reader-text {
		display: block !important;
		width: auto !important;
		height: auto !important;
		overflow: visible !important;
		position: relative !important;
		clip: auto !important;
		font-size: 18px !important;
		line-height: 1.4em !important;
		color: var(--schwarz) !important;
		margin: 0 !important;
		padding: 0 !important;
		clip-path: none !important;
	}
	#fld_5931360_1-wrap .checkbox label {
		margin-left: 20px !important;
	}
	.layout_form label {
		display: block;
		width: auto;
	}
	.submit_container, #recaptcha_v2_widget {
		margin-left: 0;
	}
}
.placeholder {
	display: block;
	width: 100%;
	height: 100%;
	border: 1px dashed #aaa;
	text-align: center;
	padding: 20px;
	cursor: pointer;
}
.references, .teamlist {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	grid-gap: 25px;
}
.teamlist {
	grid-gap: 80px 25px;
		.img {
		text-align: center;
		width: 100%;
		height: auto;
		aspect-ratio: 300 / 340;
	}
	img {
		width: 100%;
		height: auto;
		max-width: 100%;
		max-height: 100%;
	}
	.desc {
		text-align: left;
	}
	.name {
		font-size: 24px;
		margin-bottom: 1em;
	}
	&.servicelist {
		grid-template-columns: 1fr 1fr 1fr;
		grid-gap: 40px;
		& > div {
			border-radius: var(--borderradius);
			border: var(--boxborder);
		}
		.desc {
			padding: 40px;
			p:last-child {
				margin-bottom: 0;
			}
		}
		.img {
			width: 100%;
			height: 200px;
			background-position: center;
			background-color: var(--weiss);
			background-size: cover;
			background-repeat: no-repeat;
			border-radius: var(--borderradius) var(--borderradius) 0 0;
		}
	}
}
.references {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	grid-gap: 40px;
	a {
		display: block;
		width: 100%;
		height: 100%;
		aspect-ratio: 1.6;
		padding: 50px;
		border-radius: var(--borderradius);
		background-color: var(--weiss);
		box-shadow: var(--schatten-hell);
		&:hover {
			box-shadow: var(--schatten-dunkel);
			cursor: pointer;
			.more {
				background-color: var(--dunkelblau);
			}
		}
	}
	img {
		position: relative;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		width: auto;
		height: 135px;
		max-width: 100%;
		max-height: 100%;
	}
}
.searchresults {
	padding: 20px 0 0 20px;
}

.listmatrix, .latestmatrix, .references, .teamlist {
	margin-top: 40px;
}

.listmatrix {
	font-size: 0;
	line-height: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto auto auto 1fr auto;
	grid-gap: 25px;

	& .entry {
		display: block;
	}

	& .slick-track {
		margin-left: 0;
	}

	& .img {
		width: auto;
		height: 250px;
		background-position: center;
		background-color: #fff;
		background-size: contain;
		background-repeat: no-repeat;

		&.smimg {
			background-size: auto;
		}
	}

	& .content {
		position: relative;
		display: block;
		background-color: var(--hellblau);
		color: #fff;
		padding: 25px 30px;
		border-radius: 0 0 var(--borderradius) var(--borderradius);
	}

	& .date {
		font-size: 14px;
		margin-bottom: 30px;
	}

	& .title {
		font-size: 22px;
		line-height: 1.3em;
		font-weight: 400;
		overflow: hidden;
		text-overflow: ellipsis;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		max-height: 62px;
		margin-bottom: 30px;
	}

	& .text {
		max-width: 100%;
		overflow: hidden;

		& p {
			font-size: 18px;
			line-height: 1.3em;
			overflow: hidden;
			text-overflow: ellipsis;
			display: -webkit-box;
			-webkit-line-clamp: 3;
			-webkit-box-orient: vertical;
		}
	}

	&.branchesmatrix, &.machinematrix {
		a {
			display: grid;
			grid-template-rows: subgrid;
			height: 100%;
			grid-row: span 2;
			grid-gap: 0;
		}
		.content {
			display: grid;
			grid-template-rows: auto auto 1fr auto;
			grid-gap: 0;
		}
		.title {
			align-self: end;
		}
		.more {
			margin-top: 40px;
			align-self: center;
		}
	}

	&.machinematrix {
		& .content {
			background-color: #fff;
		}

		& li {
			line-height: 1.6em;
		}

		& .title,
		& a {
			color: var(--schwarz) !important;
		}

		& a {
			position: relative;
			bottom: auto;
			line-height: 1em;
		}

		& .text {
			padding: 0 0 40px 20px;
		}
	}

	&.branchesmatrix, &.machinematrix {
		& .img {
			border: 0 none;
			background-size: contain;
			background-color: var(--graubg);
			border-radius: var(--borderradius) var(--borderradius) 0 0;
			padding: 0;
		}

		& .content {
			background-color: #fff;
		}

		& .title {
			color: var(--schwarz) !important;
		}

		& .text {
			color: var(--schwarz);
			font-size: 18px;
			line-height: 1.7em;
		}

		.more {
			display: block;
			border-radius: var(--borderradius);
			background-color: var(--hellblau);
			color: var(--weiss);
			font-size: 20px;
			font-weight: 300;
			line-height: 50px;
			text-align: center;
			text-decoration: none;
		}

		& a {
			height: 100%;
			border-radius: var(--borderradius);
			background-color: var(--weiss);
			box-shadow: var(--schatten-hell);
			&:hover {
				box-shadow: var(--schatten-dunkel);
				cursor: pointer;
				.more {
					background-color: var(--dunkelblau);
				}
			}
		}
	}

	&.newslist, &.jobslist {
		grid-template-columns: 1fr;
		& .img {
			border-radius: var(--borderradius) var(--borderradius) 0 0;
			border: 0 none;
		}
		.slick-list {
			margin: 0 -20px;
		}
		.slick-slide > div {
			margin: 0 20px 40px 20px;
			display: grid;
			grid-template-columns: 1fr 1fr 1fr;
			grid-gap: 40px;
			.entry {
				width: 100% !important;
				box-shadow: var(--schatten-hell);
				display: grid !important;
				grid-template-rows: auto 1fr;
				.content {
					display: grid;
					grid-template-rows: auto auto 1fr auto;
					/*grid-row: span 4;*/
					padding: 40px;
					.title {
						align-self: end;
					}
					p:last-child {
						margin-bottom: 0;
					}
				}
				.more {
					display: block;
					border-radius: var(--borderradius);
					background-color: var(--weiss);
					color: var(--schwarz);
					font-size: 20px;
					font-weight: 300;
					line-height: 50px;
					text-align: center;
					text-decoration: none;
					margin-top: 40px;
					align-self: end;
				}
				&:hover {
					box-shadow: var(--schatten-dunkel);
					.more {
						background-color: var(--dunkelblau);
						color: var(--weiss);
					}
				}
			}
		}
	}
}

.latestmatrix {
	font-size: 0;
	line-height: 0;

	& .img {
		width: auto;
		height: auto;
		background-position: center;
		background-color: #fff;
		background-size: auto;
		background-repeat: no-repeat;
		margin: 40px;
	}

	& .intro {
		text-transform: uppercase;
		padding: 0 40px;
		margin-bottom: 20px;
		display: block;
		border-radius: var(--borderradius);
		background-color: var(--hellblau);
		color: var(--weiss);
		font-size: 20px;
		font-weight: 300;
		line-height: 50px;
		text-align: left;
		text-decoration: none;
		&:hover {
			background-color: var(--dunkelblau);
			color: var(--weiss);
		}
	}

	& .entry {
		border: 1px solid var(--hellgrau);
		margin-bottom: 10px;
		border-radius: var(--borderradius);
	}

	& .content {
		position: relative;
		display: block;
		background-color: #fff;
		color: var(--schwarz);
		padding: 0 40px 40px 40px;
		border-radius: var(--borderradius);
		height: auto;
	}

	& .title {
		font-size: 20px;
		line-height: 1.5em;
		font-weight: 300;
		overflow: hidden;
		text-overflow: ellipsis;
		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
		margin-bottom: 40px;
	}

	& .text {
		max-width: 100%;
		font-size: 20px;
		line-height: 1.5em;
		margin-bottom: 30px;

		& p,
		& h2 {
			font-size: 18px;
			line-height: 1.3em;
			overflow: hidden;
			text-overflow: ellipsis;
			display: -webkit-box;
			-webkit-line-clamp: 3;
			-webkit-box-orient: vertical;
		}

		& * {
			color: var(--schwarz) !important;
		}
	}
	& .content a {
		position: relative;
		font-size: 20px;
		line-height: 1.5em;
		color: var(--linkblau);
		text-decoration: underline;
		&:hover {
			color: var(--schwarz);
		}
	}
}

.newsform {
	margin: -70px 0 70px 0;
	font-size: 18px;
}
.newsform .title {
	margin: 0 0 50px 0;
	font-weight: 400;
}
.newsform label {
	display: inline-block;
	margin-right: 20px;
	cursor: pointer;
}
.newsform input {
	width: 0;
	height: 0;
	opacity: 0;
}
.newsform input ~ span {
	display: inline-block;
	width: 40px;
	height: 40px;
	background-color: var(--graubg);
	margin: 0 10px -14px 0;
	border: 1px solid var(--hellgrau);
	border-radius: var(--borderradius);
}
.newsform input:checked ~ span {
	background: url(images/checksign_dark.png) no-repeat center var(--graubg);
	background-size: 16px;
}
.slick-dots {
	padding: 0;
	margin: 0;
	list-style-type: none;
	text-align: center;
}
.slick-dots li {
	display: inline-block;
	margin: 0 5px;
}
.slick-dots button {
	font-size: 0;
	line-height: 0;
	width: 10px;
	height: 10px;
	border-radius: 5px;
	background-color: #fff;
}
.slick-dots .slick-active button {
	background-color: var(--hellblau);
}
.slick-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	left: -70px;
	width: 50px;
	height: 50px;
	background: url(images/arrow-left.png) no-repeat center #fff;
	border-radius: 25px;
}
.slick-arrow.slick-next {
	right: -70px;
	left: auto;
	background-image: url(images/arrow-right.png);
}
@media (max-width: 1400px) {
	.slick-arrow {
		display: none !important;
	}
}
.sharebar {
	border: 1px solid #808080;
	border-width: 1px 0 0 0;
	margin: 50px 0 0 0;
}
.sharebar-icons {
	margin: 0;
	padding: 14px 0;
	width: 100%;
	height: auto;
	font-size: 0;
	line-height: 0;
	list-style-type: none;
	text-align: right;
}
.sharebar-icons li {
	display: inline-block;
	margin-left: 10px;
}
.sharebar-icons a {
	display: block;
	width: 40px;
	height: 40px;
	background: url(images/share/facebook.svg) no-repeat center transparent scroll;
	background-size: cover;
}
.sharebar-icons .facebook {background-image: url(images/share/facebook.svg);}
.sharebar-icons .linkedin {background-image: url(images/share/linkedin.svg);}
.sharebar-icons .mail {background-image: url(images/share/e-mail.svg);}
.sharebar-icons .pinterest {background-image: url(images/share/pinterest.svg);}
.sharebar-icons .twitter {background-image: url(images/share/twitter.svg);}
.sharebar-icons .whatsapp {background-image: url(images/share/whatsapp.svg);}
.sharebar-icons .xing {background-image: url(images/share/xing.svg);}

.scroll-fade {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.scroll-fade.visible {
  opacity: 1;
  transform: translateY(0);
}

.infoboxes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-template-rows: auto 1fr;
	grid-column-gap: 40px;
	&.rows-1 {
		grid-template-columns: 1fr;
	}
	&.rows-2 {
		grid-template-columns: repeat(2, 1fr);
	}
	.infobox {
		display: grid;
		grid-row: span 2;
		grid-template-rows: subgrid;
		grid-gap: 0;
		background-color: var(--weiss);
		margin-bottom: 40px;
		padding: 40px;
		border-radius: var(--borderradius);
		border: 2px solid var(--graubg);
	}
	.title {
		padding-bottom: 10px;
		margin: var(--borderradius);
		align-self: end;
	}
	p {
		font-size: 18px;
		margin: 0 var(--borderradius) var(--borderradius) var(--borderradius);
	}
}

.history-timeline {
	max-width: 100%;
	margin: 0 auto;
	padding: 20px 0;

	.item {
		display: grid;
		grid-template-columns: 160px 80px 1fr;
		gap: 20px;
		align-items: flex-start;
		position: relative;
		padding-bottom: 40px;
		&:last-child {
			bottom: 50%;
		}
	}
	.year {
		font-size: 50px;
		text-align: center;
		padding-top: 40px;
		color: var(--hellblau);
	}
	.line {
		position: relative;
		width: 40px;
		align-self: stretch;
		display: flex;
		justify-content: center;
		&::before {
			content: "";
			position: absolute;
			top: 0;
			bottom: -40px;
			left: 50%;
			width: 3px;
			background-color: var(--hellgrau);
			transform: translateX(-50%);
		}
	}
	.dot {
		width: 35px;
		height: 35px;
		background-color: var(--hellblau);
		border-radius: 50%;
		position: relative;
		z-index: 1;
		margin-top: 40px;
	}
	.content {
		display: grid;
		grid-template-columns: 1fr 500px;
		grid-gap: 40px;
		padding-top: 40px;
		.text {
			font-size: 22px;
			font-weight: 400;
		}
		.image img {
			max-width: 100%;
			height: auto;
			display: block;
			border-radius: var(--borderradius);
		}
	}
}
@media (max-width: 1024px) {
	.history-timeline {
		.item {
			grid-template-columns: 120px 60px 1fr;
		}
		.year {
			font-size: 35px;
		}
		.content {
			grid-template-columns: 1fr;
		}
	}
}

/* Responsive */
@media (max-width: 1300px) {
	.bodywrap, .full-width-row {
		width: 100%;
		margin: 0;
	}
	.content > .full-width-row, .content > .full-width-container .fsn-width-row {
		padding-left: 20px;
		padding-right: 20px;
	}
	.bodywrap article.content > .fsn-row, .pagefooter > .fsn-row.seamless {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}
	.headerblock {
		top: 0;
		padding-left: 20px;
		padding-right: 20px;
	}
	.mainmenubox {
		padding: 0 20px;
		margin-left: 0;
		box-sizing: border-box;
	}
	.backtotop {
		right: 20px;
	}
	.teamlist {
		&.servicelist {
			grid-template-columns: 1fr 1fr;
		}
	}
	.infoboxes {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 1024px) {
	.headerblock {
		position: fixed;
		height: 40px;
		border-bottom: 1px solid var(--hellblau);
		z-index: 100;
		overflow: visible;
	}
	.headerlogo {
		display: block;
		top: 7px;
		height: 30px;
	}
	.headerlogo img {
		width: auto;
		height: 100%;
	}
	.topmenu {
		display: none;
	}
	.headerslider {
		height: calc(100vw / 3.84) !important;
		.curvedetail {
			width: calc(100vw / 6.4 * 1.5333);
			height: calc(100vw / 6.4);
		}
		.startvideo {
			height: calc(100vw / 3.84);
		}
	}
	.pagebody {
		margin-top: 40px;
	}
	.mobilemenu, .mobilemenu-close {
		display: block;
		top: 0;
		right: 0;
		width: 40px;
		height: 40px;
		background: url(images/Menue.svg) no-repeat center transparent;
		background-size: 30px;
		cursor: pointer;
	}
	.mobilemenu-close {
		background-image: url(images/Menue-close.svg);
		background-size: 20px;
		display: none;
		z-index: 110;
	}
	.mobilemenu-close.open {
		display: block;
	}
	.topsearch {
		top: 7px;
		right: 70px;
		width: 70px;
	}
	.floatsearchform input[type="text"] {
		font-size: 1em;
	}
	.mainmenubox {
		display: none;
		left: auto;
		top: 0;
		right: 0;
		width: 80vw;
		height: auto;
		z-index: 100;
		max-height: 100vh;
		overflow: auto;
	}
	.mainmenubox.open, .mobilemenu-close.open {
		display: block;
	}
	#mainmenu {
		margin: 40px 0;
	}
	#mainmenu > li {
		display: block;
		margin: 0 0 10px 0;
	}
	#mainmenu a {
		color: #fff !important;
		padding: 0 10px;
		line-height: 40px;
	}
	#mainmenu li:hover > a {
		color: #fff !important;
	}
	#mainmenu ul a, #mainmenu ul li:hover > a {
		/*padding: 4px 10px;*/
		line-height: 22px;
	}
	#mainmenu li > ul {
		display: block;
		width: 100%;
		position: relative;
		background-color: transparent;
		padding: 0;
	}
	#mainmenu ul {
		position: relative !important;
		background: transparent !important;
		top: auto !important;
		right: auto !important;
		left: auto !important;
		border: 0 none !important;
		margin-left: 10px !important;
	}
	#mainmenu ul ul {
		display: none !important;
	}
	.breadcrumbs {
		display: none;
	}
	.listmatrix {
		grid-template-columns: repeat(2, 1fr);
	}
	.references, .teamlist {
		grid-template-columns: 1fr 1fr;
	}
	.teamlist .name {
		font-size: 20px;
	}
}
@media (max-width: 768px) {
	body, button, input, select, textarea, td, th, li, .pagefooter p {
		font-size: 16px;
	}
	.pagebody h1 {font-size: 28px;}
	.pagebody h2 {font-size: 20px;}
	.pagebody h3 {font-size: 18px;}
	.pagebody h4 {font-size: 17px;}
	.listmatrix {
		grid-template-columns: repeat(1, 1fr);
	}
	.datatable {
		overflow: scroll;
	}
	.datatable table {
		min-width: 768px;
		width: 100%;
		border-collapse: collapse;
	}
	.dataimagetext {
		display: grid;
		grid-template-columns: auto;
		grid-template-rows: repeat(auto-fill, 1fr) !important;
		grid-template-areas: "image" "text" !important;
	}
	.dataimagetext .content {
		padding-left: 40px;
		padding-right: 40px;
	}
	.dataimagetext .content > div {
		max-width: calc(100% - 80px);
	}
	.teamlist {
		&.servicelist {
			grid-template-columns: 1fr;
		}
	}
	.infoboxes, .references {
		grid-template-columns: 1fr;
	}
}