/* boilerplate v9.0.1 */
html { font-family: sans-serif; }
audio, canvas, iframe, img, svg, video { display: inline-block; vertical-align: baseline; }
hr { display: block; height: 1px; border: 0; border-top: 1px solid #ccc; margin: 1em 0; padding: 0; }
fieldset { border: 0; margin: 0; padding: 0; }
textarea { resize: vertical; }
.hidden,[hidden] { display: none !important; }
.visually-hidden { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; white-space: nowrap; width: 1px; }
.visually-hidden.focusable:active, .visually-hidden.focusable:focus { clip: auto; height: auto; margin: 0; overflow: visible; position: static; white-space: inherit; width: auto; }
.invisible { visibility: hidden; display:none;}
.clearfix:before, .clearfix:after { content: " ";  display: table; }
.clearfix:after, .clear { clear: both; }
a { background-color: transparent; }
a:active, a:hover { outline: 0; }
::-moz-selection {background: #30e3d6;text-shadow: none;}
::selection {background: #30e3d6; text-shadow: none;}
/* nur safari */
* {-webkit-tap-highlight-color: rgba(0,0,0,0);}
svg:not(:root) { overflow: hidden; }
::-ms-input-placeholder { color: #111; }
::placeholder { color: #111;}

/* root */ 
:root {
   --center: 0 30px 0 40px;
   --blue:#30e3d6;
}

/* inter */
@font-face {font-display: swap; font-family: 'Inter'; font-style: normal; font-weight: 300; src: url('../../files/system/css/fonts/inter-v20-latin-300.woff2') format('woff2'); }
@font-face {font-display: swap; font-family: 'Inter'; font-style: normal; font-weight: 400; src: url('../../files/system/css/fonts/inter-v20-latin-regular.woff2') format('woff2'); }
@font-face {font-display: swap; font-family: 'Inter'; font-style: normal; font-weight: 700; src: url('../../files/system/css/fonts/inter-v20-latin-700.woff2') format('woff2'); }
/* poppins */
@font-face { font-display: swap; font-family: 'Poppins'; font-style: normal; font-weight: 400; src: url('../../files/system/css/fonts/poppins-v24-latin-regular.woff2') format('woff2'); }
@font-face { font-display: swap; font-family: 'Poppins'; font-style: normal; font-weight: 600; src: url('../../files/system/css/fonts/poppins-v24-latin-600.woff2') format('woff2'); }
/* icons */
@font-face { font-family: 'icons'; src:  url('../../files/system/css/fonts/icons.eot'); src:  url('../../files/system/css/fonts/icons.eot#iefix') format('embedded-opentype'), url('../../files/system/css/fonts/icons.ttf') format('truetype'),     url('../../files/system/css/fonts/icons.woff') format('woff'), url('../../files/system/css/fonts/icons.svg') format('svg'); font-weight: normal; font-style: normal; font-display: block; }
[class^="icon-"], [class*=" icon-"], .icon { font-family: 'icons' !important; speak: never; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; line-height: 1;   -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.icon-facebook:before { content: "\e900";}
.icon-facebook2:before { content: "\e901";}
.icon-instagram:before { content: "\e902";}
.icon-left:before { content: "\e903";}
.icon-left3:before { content: "\e904";}
.icon-linkedin:before { content: "\e905";}
.icon-logo:before { content: "\e906"; }
.icon-map:before { content: "\e907";}
.icon-pdf:before { content: "\e908";}
.icon-pdf2:before { content: "\e909";}
.icon-right:before { content: "\e90a";}
.icon-right2:before { content: "\e90b";}

/* allgemein */
* { margin:0; padding:0; border:0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
html { font-size:100%;  }
body { width:100%; height:100%; }
body { font-family: 'Inter', Helvetica, Arial, sans-serif; font-size: 1rem; line-height: 1.5;  font-weight:300; color:#222; background:#fff; }
body.nav-active {overflow:hidden;}
a {text-decoration:none; -webkit-transition:all 0.3s ease-out; transition:all 0.3s ease-out; color: var(--rot); }
*:focus  { outline: 0; }
ul, ol { margin: 0; padding: 0 ; }
nav ul, ul { list-style: none; list-style-image: none; }
.transit, input.submit, a img, a h2 {-webkit-transition:all 0.3s ease-out; transition:all 0.3s ease-out;}
b, strong, .bold { font-weight:bold; font-weight:700;}
.italic, em {font-style:italic;}
.fade-in { opacity: 0; transition:all .5s ease-out .1s;}
.fade-in-slow { opacity: 0; transition:all .5s ease-out .75s;}
.fade-out { opacity: 1; transition:all .5s ease-out;}
.fade-left { transition:all .5s ease-out; transform: translateX(-10px); opacity: 0; }
.fade-right { transition:all .5s ease-out; transform: translateX(10px); opacity: 0; }
.fade-up { transition:all .5s ease-out; transform: translateY(10px); opacity: 0; }
.show.fade-in, .show.fade-in-slow, .show.fade-left, .show.fade-right, .show.fade-up { transform: translate(0px,0px) scale(1.0) rotate(0deg)!important; opacity: 1!important; }
.show.fade-out { opacity: 0!important; }
.logo-imgs img.show.fade-in { transform: translate(0px,0px) scale(1.0) rotate(0deg)!important; opacity: .4!important;}

/* header */
header {position:relative; z-index:20; top:0; padding:var(--center);}
header.header {position:absolute; top:0; padding:var(--center); width:100%; height:150px; overflow:hidden;}
header .logo {position:relative; float:left;}
header .logo h1, header .logo h2 {font-size:1rem; text-indent:-50000px;}
header .logo .icon-logo {position:relative; font-size:20rem; color:#fff; line-height:20rem; top:-5rem;}
.standard header .logo .icon-logo, .news header .logo .icon-logo, .projekte header .logo .icon-logo, body.black .logo .icon-logo {color:#000;}

/* hamburger mobile */
.hamburger { position:fixed;  z-index:1010; right:40px; top:30px; width: 40px; height: 22px; display:none; cursor: pointer; background:transparent; }
.hamburger .line { display: block; background:#fff; width: 40px; height: 5px; position: absolute; left: 0; -webkit-transition: all 0.4s; transition: all 0.4s; }
.news .hamburger .line { background:#000; }
.hamburger .line.line-1 { top: 0;}
.hamburger .line.line-2 {top: 50%;}
.hamburger .line.line-3 {top: 100%;}
.hamburger.active .line-1 {  transform: translateY(11px) translateX(0) rotate(45deg); background:#ccc;}
.hamburger.active .line-2 { opacity: 0;}
.hamburger.active .line-3 {  transform: translateY(-11px) translateX(0) rotate(-45deg); background:#ccc; }
.hamburger.active:hover .line-1, .hamburger.active:hover .line-3 {background:#000;}
.navigation {position:relative; float:right; }
.menu { position:relative; top:25px; font-family: 'Poppins'; font-size:1.25rem; line-height:1; color:#fff;}
.menu li { position:relative; display:inline-block; margin-right:40px;}
.menu li:last-child { margin-right:0;}
.menu li a {color:#fff; font-weight:400; transition:all 0.3s ease; display: inline-block;}
.menu li a:hover, .menu li.active .active, .menu li.trail a { display: inline-block; font-weight:600;}
.menu li.active .active {position:relative; top:-3px;}
.menu li a::after {
    content: attr(name); /* Holt den Wert aus dem 'name'-Attribut */
    display: block;
    font-weight: bold; /* Der fettgedruckte Text ist bereits sichtbar, aber unsichtbar */
    visibility: hidden;
    overflow: hidden;
    height: 0;
}
.standard .menu li a, .standard .menu li.active .active, .standard .menu li.trail a {color:#000;}
.news .menu li a, .news .menu li.active .active, .news .menu li.trail a {color:#000;}
.projekte .menu li a, .projekte .menu li.active .active, .projekte .menu li.trail a {color:#000;}
.black .menu li a, .black .menu li.active .active, .black .menu li.trail a {color:#000;}

main {position:relative; }
.standard main {margin-top:200px;}
p a {display:inline; }
p a:hover {}
h1, h2, h3 { position:relative; font-family: 'Poppins'; font-weight:600; }
h1 {font-size:1.375rem; margin-bottom:10px;}
h2 {font-size:1.25rem; }
h3, h2.h3 { font-size:1.25rem; }
.content-text h2 { margin-bottom:5px;}

footer { position:relative; z-index:10; width:100%; height:40px; color:000; font-size:.9rem; line-height:1; padding:var(--center); }
.index footer { position:fixed; z-index:10; top:calc(100% - 40px); height:40px; width:100%; color:#fff; padding:var(--center); }
footer nav {float:left;}
footer .copy {float:right;}
footer a:hover { color:var(--blue); }
.footer-menu li { position:relative; display:inline; }
.footer-menu li:first-child {margin-right:15px; padding-right:15px; border-right:1px solid #000;}
.index .footer-menu li:first-child {border-right:1px solid #fff;}

.mobile-transparent-menu {position:fixed; z-index:10; top:0; width:100%; height:100%;  transition:all 0.3s ease-out; background:rgba(0,0,0,.3); display:none; cursor:pointer; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);}
.nav-active .mobile-transparent-menu { display:block;}

/* abgerundete links mit Pfeil */
.back_link {position:relative; height:40px; line-height:40px; color:#000 !important; text-align:center; border-radius:20px; display:inline-block; -webkit-transition:all .2s ease-out; transition:all .2s ease-out; border:1px solid #000;}
.back_link {padding:0 25px 0 50px; margin:40px 0 100px 0px;}
.back_link:before {font-family: 'icons'; content: "\e90a"; font-size:1rem; position:absolute; left:20px; transition: all 0.3s ease-out 0s; transform:rotate(180deg);}
.back_link:hover:before {left:10px;}

/* responsive schnickschnack */
@media (max-width: 1400px) {
	header .logo .icon-logo {font-size:15rem; line-height:15rem; top:-50px;}
}
@media (max-width: 960px) {
	.menu li { margin-right:30px;}
}
/* nav break to top */
@media (max-width: 900px) {
	.hamburger {display:block;}
	.navigation {position:fixed; z-index:1000; top:0; margin-top:0; right:-300px; width:300px; -webkit-transition:all 0.5s ease-out; transition:all .5s ease-out; background:#fff; color:#000; padding:20px 160px 20px 40px;}
	.navigation.active {right:0;}
	.menu { top:0; color:#000; }
	.menu li { position:relative; display:block; margin-right:0; line-height:2;}
	.menu li a {color:#000; }
	header.active .navigation {right:0;}
	header .logo {position:fixed;}

}

/* mobile nav */
@media (max-width: 700px) { 
	
}
@media (max-width: 600px) { 
	:root {
	   --center: 0 20px;
	}
	.hamburger {right:20px;}
	footer {padding:0 20px;}
}
@media (max-width: 500px) { 
	footer { height:60px; font-size:.85em; }
	.index footer { top:calc(100% - 60px);  }
	footer nav, footer .copy {float:none;}
	footer .copy {margin-top:10px;}
	.footer-menu li:first-child {margin-right:10px; padding-right:10px; }
}
@media (max-width: 500px) and (min-height: 750px){ 

}
@media (max-width: 400px) { 

}
@media (max-width: 350px) { 

}
/* print */
@media print,
  (-webkit-min-device-pixel-ratio: 1.25),
  (min-resolution: 1.25dppx),
  (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}
@media print {
	body {font-size:1em;}
	.pageheader, footer {display:none;}
	.print-button {display:none !important;}
	.print {visibility:visible;}
    *, *:before, *:after, *:first-letter, *:first-line { background: #fff !important; color: #000 !important; box-shadow: none !important; text-shadow: none !important; }
    a,a:visited { text-decoration: underline;}
    a[href]:after {content: " (" attr(href) ")"; }
    abbr[title]:after {content: " (" attr(title) ")";}
	a[href^="#"]:after, a[href^="javascript:"]:after {  content: ""; }
    pre {white-space: pre-wrap !important;}
    pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
    tr,img {page-break-inside: avoid;}
    img {max-width: 100% !important; }
    p,h2,h3 {orphans: 3;widows: 3;}
    h2, h3 {page-break-after: avoid;}
}
/* projekte */
.xxprojekte { position: relative; padding:20px 30px; margin-bottom:30px;}	
.projektliste { display:grid; grid-template-columns: repeat(3, 1fr); gap:30px; align-items:stretch; padding:20px 30px; margin-bottom:30px;}
.projektliste a { display:inline-block; position:relative; aspect-ratio: 1 / 1;}
.projektliste a picture, .project-desc {position:absolute; top:0; left:0; width:100%; height:100%; overflow:hidden;}
.projektliste a picture img { position:absolute; top:0; left:0; width:100%; height:100%;}
.projektliste a .trans {position:absolute; top:0; width:100%; height:100%;  transition:all 0.3s ease-out; background:rgba(0,0,0,.5); opacity:0; -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.projektliste a:hover .trans { opacity:1; }
.project-text {position:absolute; bottom:0; padding:20px; color:#fff; } 
.touchevents .projektliste a .trans {opacity:1; background:rgba(0,0,0,.3); -webkit-backdrop-filter: blur(0px); backdrop-filter: blur(0px);}
.touchevents .newsliste a .trans {opacity:0; background:rgba(0,0,0,.3); -webkit-backdrop-filter: blur(0px); backdrop-filter: blur(0px);}
/* detail */
.main-text {position:absolute; z-index:10; left:40px; bottom:100px; color:#fff; width:60%; background:rgba(0,0,0,.5); padding:5px;}
.projekt.black .main-text {color:#000; background:rgba(255,255,255,.5); }
.projekt footer { position:fixed; z-index:10; top:calc(100% - 40px); height:30px; width:100%; color:#fff; padding:var(--center); }
.projekt .footer-menu li:first-child {border-right:1px solid #fff;}
.projekt.black footer {color:#000;}
.projekt.black .footer-menu li:first-child {border-right:1px solid #000;}
/* news */
.mod_newslist .empty {margin:200px 0 100px 10px;}
.news-header {position:absolute; bottom:0; padding:20px; } 
.news .projektliste a {border:1px solid #000;}
.news .mod_newsreader .content-text {width:66%;}
.news .mod_newsreader {padding:var(--center);}
.news .mod_newsreader p.date {font-size:.9rem;}
.content-text img {padding:20px 0;}
/* kontakt */
.content {padding:0 40px 50px;}
.address {width:725px;}
.address img {width:100%; height:auto;}
.address address { font-style:normal; margin-top:-180px; }
.address address h1 {font-size:1.5rem;}
.content a:hover {color:var(--blue);}
.location {margin:100px 0 40px;}
.google-link {float:left;}
.location-link {  display:inline-block; padding-top:10px; margin-right:80px;}
.location-link img {  display:inline-block; border:1px solid #000; }
.anfahrt {float:left; padding-top:10px;}
.anfahrt .line {width:60%; height:1px; border-bottom:1px solid #000; margin-bottom:10px;}
.anfahrt ul li {padding-left:20px;position:relative;}
.anfahrt ul li:before {content:'>'; position:absolute; left:0;}
/* buero */
.buero-text { width:66%; padding:40px 0;}
/* job */
.job-spacer {position: relative; height:200px;}

/* responsive schnickschnack */
@media (min-width: 1800px) {
	.projektliste { display:grid; grid-template-columns: repeat(4, 1fr); gap:30px; align-items:stretch; }
}
@media (max-width: 1400px) {
	.main-text, .news .mod_newsreader .content-text, .buero-text {width:70%;}
	.job-spacer {position: relative; height:150px;}
}
@media (max-width: 1300px) {
	.location-link { margin-right:40px;}
	.anfahrt .line {width:535px; }
}
@media (max-width: 1200px) {
	.projektliste { display:grid; grid-template-columns: repeat(2, 1fr); gap:30px; align-items:stretch; }
	.main-text {width:calc(100% - 60px);}
	.news .mod_newsreader .content-text,.buero-text {width:100%;}
	.google-link {float:none;}
	.anfahrt {float:none; padding-top:50px;}
}
@media (max-width: 960px) {

}
/* nav break to top */
@media (max-width: 800px) {
	.main-text {position:relative; left:auto; bottom:auto; width:100%; color:#000; padding:50px 20px;}
	.news-text {width:100%; padding:40px 20px 60px;}
	.projekt footer { position:relative; z-index:10; top:auto; height:auto; width:100%; color:#000; padding:30px 20px; }
	.projekt .footer-menu li:first-child {border-right:1px solid #000;}
	.address {width:100%;}
	.address address {margin-top:-150px;}
}

@media (max-width: 700px) { 
	.projektliste { display:grid; grid-template-columns: repeat(1, 1fr); gap:20px; align-items:stretch; }
}
@media (max-width: 600px) { 
	.projektliste { padding:20px; }
	.content {padding:0 20px 50px;}
	.address address {margin-top:-100px;}
	.location-link {margin-right:0;}
	.location-link img {width:100%; height:auto; }
	.anfahrt .line {width:100%; }
}
@media (max-width: 440px) { 
	.address address {margin-top:-50px;}
}

