/* ----------------------------------------
	Reset
   ---------------------------------------- */

/* ----------------------------------------
	Reset
   ---------------------------------------- */

* {margin:0;padding:0;border:0;}
*,:before,:after {-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}

html {-webkit-text-size-adjust:none;-ms-text-size-adjust:none;}

ul {list-style:none;}
a {color:inherit;text-decoration:none;cursor:pointer;}
a:active,a:hover,a:focus {outline:none;}
a[x-apple-data-detectors] {background:none !important;border:none !important;color: inherit !important;text-decoration:none !important;}

input,select {vertical-align:middle;}
img {display:block;width:100%;height:auto;}
audio,canvas,progress,video {display:inline-block;vertical-align:baseline;}

/* ----------------------------------------
	Fonts in use
   ---------------------------------------- */
   
@font-face {
    font-family:'Hind';
    src: url('fonts/hind/hind-light-webfont.woff2') format('woff2'),
         url('fonts/hind/hind-light-webfont.woff') format('woff');
    font-weight:300;
    font-style:normal;
}

@font-face {
    font-family:'Hind';
    src: url('fonts/hind/hind-regular-webfont.woff2') format('woff2'),
         url('fonts/hind/hind-regular-webfont.woff') format('woff');
    font-weight:400;
    font-style:normal;
}
/*
@font-face {
    font-family:'Hind';
    src: url('fonts/hind/hind-medium-webfont.woff2') format('woff2'),
         url('fonts/hind/hind-medium-webfont.woff') format('woff');
    font-weight:500;
    font-style:normal;
}
*/
@font-face {
    font-family:'Hind';
    src: url('fonts/hind/hind-semibold-webfont.woff2') format('woff2'),
         url('fonts/hind/hind-semibold-webfont.woff') format('woff');
    font-weight:600;
    font-style:normal;
}
/*
@font-face {
    font-family:'Hind';
    src: url('fonts/hind/hind-bold-webfont.woff2') format('woff2'),
         url('fonts/hind/hind-bold-webfont.woff') format('woff');
    font-weight:700;
    font-style:normal;
}
*/

/* ----------------------------------------
	Font Styles
   ---------------------------------------- */

* {font-weight:inherit;font-style:normal;}

body {
	font-family: 'Hind', sans-serif;
	font-size:16px;
	font-weight:300;
	letter-spacing: 0.025em;
	line-height:1.6;
	color:white;
}

h1,.h1 {font-size:3em;}
h2,.h2 {font-size:2.5em;}
h3,.h3 {font-size:2em;}
h4,.h4 {font-size:1.5em;}
h5,.h5,.large {font-size:1.25em;}
h6,.h6 {font-size:1em;}

small,.small {font-size:0.9em;font-weight:400;}
.tiny {font-size:0.7em;}

h1,.h1 {line-height:1.1;}

h2,h3,h4 {line-height:1.3;}

p,ul,h1,h2,h3,h4,h5,h6 {margin-bottom:20px;}

p:last-child {margin-bottom:0;}

strong,.strong,b {font-weight:600;}

em,.italic,i {font-style:italic;}


@media (max-width: 1000px) {
	
  /*h1,.h1 {hyphens:auto;}*/
  
}

/* ----------------------------------------
Colors
 ---------------------------------------- */
 
:root {--blau:#1f79ff;}

.blau {color:var(--blau);}

.bg-grey-1 {background:#111115;}

.bg-grey-2 {background:#222225;}

.bg-grey-3 {background:#333335;}

.bg-white {background:white;}

/* ----------------------------------------
	Columns
   ---------------------------------------- */
   
.pagewrap  {

}

.container {
    width:1280px;
    max-width:90%;
    margin:0 auto;
    display:grid;
    gap:25px;
    padding:40px 0;
}

.container .container {
    width:100%;
    max-width:100%;
}

.container.fluid {
    min-width:100%;
    padding:0;
}

@media (min-width:1000px) {
  
  .container {
    grid-template-columns:repeat(12,1fr);
  }
	
  .container > * {grid-column:auto / span 12}
  .container.cols-2 > div {grid-column:auto / span 2}
  .container.cols-3 > div {grid-column:auto / span 3}
  .container.cols-4 > div {grid-column:auto / span 4}
  
  .col-1 {grid-column:auto / span 1}
  .col-2 {grid-column:auto / span 2}
  .col-3 {grid-column:auto / span 3}
  .col-4 {grid-column:auto / span 4}
  .col-5 {grid-column:auto / span 5}
  .col-6 {grid-column:auto / span 6}
  .col-7 {grid-column:auto / span 7}
  .col-8 {grid-column:auto / span 8}
  .col-9 {grid-column:auto / span 9}
  .col-10 {grid-column:auto / span 10}
  .col-11 {grid-column:auto / span 11}
  .col-12 {grid-column:auto / span 12!important}
  
  .fluid .col-full {grid-column:auto / span 14}
  
  .start-1 {grid-column-start:1}
  .start-2 {grid-column-start:2}
  .start-3 {grid-column-start:3}
  .start-4 {grid-column-start:4}
  .start-5 {grid-column-start:5}
  .start-6 {grid-column-start:6}
  .start-7 {grid-column-start:7}
  .start-8 {grid-column-start:8}
  .start-9 {grid-column-start:9}
  .start-10 {grid-column-start:10}
  .start-11 {grid-column-start:11}
  .start-12 {grid-column-start:12}
  
  .gap-0 {column-gap:0px}
  .gap-l {column-gap:80px; row-gap:40px;}
  .row-gap-l {row-gap:40px;}
	
  .checksize {display:none;}
	
}

@media print {
	
	body,.container {
		width:100%;
	}
}

/* ----------------------------------------
	Navigation
   ---------------------------------------- */

header {
  width:100vw;
  height:110px;
  position:fixed;
  top:0;
  z-index:9999;
  color:white;
  transition: all 0.1s ease;
}

header.nav-fix {
    background:#333335;
    transition: all 0.1s ease;
}

.logo-top,
.logo-bottom {
    display:inline-block;
    width:300px;
    height:150px;
    transition: all 0.1s ease;
    position:relative;
    z-index:999;
}

.logo-top {
    background:url("img/toc-logo-sub-neg.svg") no-repeat 0 top;
    background-size:300px auto;
}

.logo-bottom {
    background:url("img/toc-logo-neg.svg") no-repeat 0 top;
    width:200px;
    height:25px;
    margin-top:2px;
}

header.nav-fix .logo-top {
    background:url("img/toc-logo-neg.svg") no-repeat 0 top;
    width:180px;
    transition: all 0.1s ease;
}

nav a {
    display:inline-block;
    text-transform:uppercase;
    font-size:18px;
    letter-spacing:0.15em;
}

nav li.projekte {
  position:relative;
}

nav li.projekte ul {
  position:absolute;
  padding:8px 0;
  opacity:0;
  visibility:hidden;
}

header.nav-fix li.projekte ul {
  padding-top:0;
}

nav li.projekte li:not(:first-child) {
    padding-left:18px;
}

nav li.projekte ul a {
  font-size:16px;
}

nav li.projekte:hover ul {
  opacity:1;
  visibility:visible;
}

a:hover,
a.active a,
.current-menu-parent.active > a,
.current-menu-item.active > a {
    color:var(--blau);
}

header .menu .google-maps {
  display:none;
}

/* nav cats */

.screen .nav-cats ul {
    display:flex;
}

.nav-cats li:not(:last-child) {
    padding-right:40px;
}

.nav-cats a {
    font-size:20px;
    text-transform:uppercase;
    letter-spacing:0.15em;
}

.nav-cats .active,
.nav-cats a:hover {
  color:var(--blau);
}
   
@media (min-width: 1000px) {
    
    nav ul {
        display:flex;
        justify-content:flex-end;
        margin:0;
    }
    
    nav li:not(:first-child) {
        padding-left:40px;
    }

}

@media (max-width: 1000px) {
  
    nav {
      position:absolute;
      left:0;
      top:0;
      background:#111115;
    }
    
    nav ul {
      height:100vh;
      width:100vw;
      display:grid;
      justify-content:center;
      align-content: center;
    }
    
    nav a {
      font-size:1.5em;
      padding:10px 0;
      display:block;
      text-align:center;
    }
    
    nav li.projekte ul {
      display:none;
    }
      
}

.mobile nav,
.screen .bt-menu {
    display:none;
}

.screen nav {
    display:block;
}

.bt-menu {
    background:url("img/bt-menu.svg")no-repeat;
}

.bt-menu.actives {
    background:url("img/bt-close.svg")no-repeat;
}

.bt-menu,.bt-menu.actives {
    padding:21px;
    background-size:100% auto;
    cursor:pointer;
    position:absolute;
    z-index:999;
    top:35px;
    right:10px;
}

/* ----------------------------------------
	Styles
   ---------------------------------------- */

body {
  background:#111115;
}

.header-img {
  min-height:120px;
}
    
.top-img {
   height:calc(100vh + 1px);
   width:100vw;
   overflow:hidden;
   mask-image:linear-gradient(to bottom, rgba(0,0,0,0.0) 1%,rgba(0,0,0,0.99) 50%);
   -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,0.0) 1%,rgba(0,0,0,0.99) 50%);
   
}

.mobile .top-img {
  height:calc(50vh + 1px);
  margin-top:120px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,0.0) 7%,rgba(0,0,0,0.99) 35%);
  -webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,0.0) 7%,rgba(0,0,0,0.99) 35%);
}

.top-img img,
.top-img video {
  object-fit:cover;
  width:100%;
  height:100%;
}

main  {
  padding-top:160px;
  margin-top:-100px;
}

.mobile main  {
  padding-top:120px;
}

@media (min-width: 1000px) {
  
  .bt-down {
    width:100%;
    height:50px;
    position:fixed;
    z-index:999;
    bottom:50px;
    margin:0 auto;
    background:url(img/bt-down.svg) no-repeat center;
    background-size:50px auto;
  }


  h1.extra {
      font-size:6em;
  }
  
  h1,.h1 {
      font-size:4em;
      font-weight:600;
  }
  
  .project h1 {
      font-size:5em;
  }
  
  h3 {
      font-size:1.9em;
  }

}

@media (max-width: 1000px) {
  
  h1.extra {
      font-size:4em;
      margin:0;
  }
  
  h1,.h1 {
    font-weight:600;
  }
  
  h3 {
    font-size:1.6em;
  }
  
  h5,.h5,.large {
    font-size:1em;
  }
  
}

h4 {
    font-weight:400;
    text-transform:uppercase;
    letter-spacing:0.15em;
}

a, :hover {
  transition: all 0.25s ease;
}

.toc {
  font-size:1.32em;
  font-weight:600;
  font-style:normal;
  text-transform:lowercase; 
  letter-spacing:0.01em;
  line-height:0;
}

.toc::after {
  display:inline;
  content:' |';
  font-size:0.8em;
  margin:0 0.05rem;
  font-weight:300;
  position:relative;
  top:-0.08em;
}

.devider-top {
  border-top:1px solid #666;
  margin-top:20px;
}

.devider-bottom {
  border-bottom:1px solid #666;
  margin-bottom:20px;
}

.project-desc li {
    padding:5px 0 3px 0;
    border-bottom:1px solid #555;
}

.project-desc ul:first-child li:first-child {
    text-transform:uppercase;
    color:#0066ff;
}

/* Projekt Thumbs */

@media (min-width: 1000px) {

  .thumbs {
    position: relative;
    height: auto;
    padding-bottom: 100%;
    overflow: hidden;
  }

  .thumbs-wrapper {
    position: absolute;
    top: 0;
    z-index: 999;
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: rgba(0, 0, 0, 0.7);
    opacity: 0;
    transition: all 0.5s ease;
    cursor: pointer;
  }

  .thumbs img {
    position: absolute;
    left: -50%;
    right: -50%;
    margin: 0 auto;
    height: 100%;
    width: auto;
    transition: all 1s ease;
  }

  .thumbs:hover img {
    transform: scale(1.2);
    transition: all 1s ease;
  }

  .thumbs-wrapper:hover {
    opacity: 1;
  }

  .thumbs h4,
  .team-img .thumbs h5 {
    font-size: 22px;
  }

}

@media (max-width: 1000px) {

  .mobile .thumbs h4 {
      font-size:20px;
  }
  
  .mobile .thumbs img {
    margin-bottom:20px;
  }
  
}

.thumbs {
  text-align:center;
}

.thumbs a,
.thumbs a:hover {
  color:white;
}

.thumbs h4,
.thumbs h5 {
  margin-bottom:0;
}

.team-img .thumbs {
  min-height:270px;
  padding-bottom:0;
}

.team-img .thumbs-wrapper a:hover {
    color:var(--blau);
}

.team-img .thumbs-wrapper h5 {
    font-weight:500;
}

.bt-more {
    display:flex;
    justify-content:center;
    padding-top:20px;
    color:white;
    font-size:18px;
    text-transform:uppercase;
    letter-spacing:0.15em;
    cursor:pointer;
}

.bt-more::before {
    content:url(img/arrow-white.svg);
    width:20px;
    margin-right:15px;
}

.bt-more:hover {
    color:#0099ff;
}

/* news */

.news {
    background:#222225;
    color:white;
}

.news-text {
    padding:30px;
}

.news-text a {
  text-decoration:underline;
  text-decoration-color:#888;
}

.news-text img {
  padding:5px 0;
}

.news-link {
    margin-top:20px;
    padding-left:30px;
    background:url(img/arrow-white.svg) no-repeat left 4px;
    background-size: auto 12px;
    text-transform:uppercase;
    letter-spacing:0.15em;
}

.news-link a {
  text-decoration:none;
}

.news-link:hover a {
    color:#0099ff;
}

.pagination {
  display:flex;
}

.pagination > a:first-child {
  padding-right:20px;
  margin-right:20px;
  border-right:1px solid #555;
}

/* logo-slider */

.logos {
  margin:40px 0;
}

.logos .bx-wrapper {
  min-width:100%;
  padding:20px 0;
}

.logo-slider div {
  display:flex;
}

.mobile .logo-slider div {
  flex-direction:column;
}

.logo-slider img {
  height:100px;
  width:auto;
  max-width:300px;
  margin:15px auto;
}

/*
.contact-block {
    padding:20px;
    background:#666;
}
*/

/* grid items */

.grid-item {
    outline: 20px solid #111115;
    outline-offset:-10px;
}
 
@media (min-width: 1280px) {
    
    .grid-sizer,
    .grid-item {
        width:33.333%;
    }
    
    .grid-2-3,
    .spalten-2 {
      width:66.666%;
    }
    
    .spalten-3 {
      width:100%;
    }
    
    .grid-1-2 {
        width:50%;
    }
    
    .grid-1-4 {
        width:25%;
        margin-bottom:-3px;
    }
    
    .grid-3-4 {
        width:75%;
    }
    
    .grid-spacer-left,
    .abstand-links {
        margin-left:33.333%;
    }
    
    .grid-spacer-right,
    .abstand-rechts {
        margin-right:33.333%;
    }
    
}

@media (max-width: 1000px) {
    
    .grid-item {
        width:100%;
        padding:10px 0;
    }
    
    .bt-galerie {
      display:none;
    }
    
}

/* Lightbox */

.galerie .grid-item a {
    cursor: url("img/cursor-cross.png"),crosshair;
}

.bt-galerie {
    font-size:1.15em;
    float:right;
    padding-left:25px;
    background:url(img/plus-solid.svg) no-repeat 0 3px;
    background-size:15px auto;
}

.slb_details,
.slb_slideshow {
    display:none!important;
}

.slb_container {
    padding:0!important;
}

.slb_template_tag_ui.slb_template_tag_ui_nav_prev {
    left:-30px!important
}

.slb_template_tag.slb_template_tag_ui.slb_template_tag_ui_nav_next {
    right:-30px!important
}

.slb_close {
    position:absolute!important;
    top:-50px!important;
    right:-10px!important;
    opacity:0.9!important;
}

/* bxslider */

.mobile .bx-wrapper {
  width:100%!important;
  overflow:hidden!important;
}

.news-slider-pager {
  display:flex;
  padding:0;
  position:relative;
  margin-top:10px;
}

.bx-pager-item {
  display:inline-block;
  padding-right:10px;
}

.bx-pager-link,
.bx-pager-link:hover {
  color:transparent;
}

.bx-pager-link::after {
  content:'';
  display:inline-block;
  width:12px;
  height:12px;
  background:#444;
  border-radius:50%;
}

.bx-pager-link.active::after {
  background:white;
}

@keyframes kenburns {
  0% {
    -webkit-transform-origin: bottom left;
    -moz-transform-origin: bottom left;
    -ms-transform-origin: bottom left;
    -o-transform-origin: bottom left;
    transform-origin: bottom left;
    transform: scale(1.0);
    -ms-transform: scale(1.0);
    /* IE 9 */
    
    -webkit-transform: scale(1.0);
    /* Safari and Chrome */
    
    -o-transform: scale(1.0);
    /* Opera */
    
    -moz-transform: scale(1.0);
    /* Firefox */
  }
  100% {
    transform: scale(1.2);
    -ms-transform: scale(1.2);
    /* IE 9 */
    
    -webkit-transform: scale(1.2);
    /* Safari and Chrome */
    
    -o-transform: scale(1.2);
    /* Opera */
    
    -moz-transform: scale(1.2);
    /* Firefox */
  }
}

/* footer */

footer {
    background:#333335;
}

.nav-footer li.projekte ul,
.nav-footer .kontakt {
  display:none;
}

@media (min-width:1000px) {
  
  footer {
      padding:40px 0 0 0;
      color:white;
  }
      
  .footer ul {
      display:flex;
      align-items:center;
      margin:0;
  }
  
  .footer li:not(:last-child) {
      padding-right:20px;
  }
  
  .contact-items {
    display:flex;
    justify-content:space-between;
    padding:100px 0;
    font-size:1.25em;
  }
  
}

.contact-numbers span {
  display:inline-block;
  width:60px;
  padding-right:20px;
  white-space:nowrap;
}


/* ----------------------------------------
	Helpers
   ---------------------------------------- */

/* flexbox */

.flex {
	display:flex;
}

.center {
	justify-content:center;
}

.middle {
	align-items:center;
}

.center-middle {
	align-items: center;
	justify-content: center;
}

/* Font Helpers */

.lead,.subline {margin-top:-10px;}

.text-center {text-align:center;}

.text-left {text-align:left;}

.text-right {text-align:right;}

.text-justify {
	text-align:justify;
	text-align-last:end;
}

.uppercase {text-transform:uppercase;}

.lowercase {text-transform:lowercase;}

mark {background:#ffff00;}

::selection {background: #ffff00;}

p.bullet,.list li,.post li {
	padding-left:15px;
	position:relative;
}

.list.lined li {
    padding-top:5px;
    padding-bottom:5px;
    border-bottom:1px dotted #ccc;
}

p.bullet::before,.list li::before, .post li::before {
	content:'•';
	color:#808b96;
	position:absolute;
	left:0;
}

sup,sub {
  vertical-align: baseline;
  position: relative;
  top: -0.4em;
}

sub { 
  top: 0.4em; 
}

q,.quotes,blockquote {
	quotes:"\201E" "\201C";
}

html[lang="en"] q,html[lang="en"] .quotes,html[lang="en"] blockquote {
	quotes:"\201C" "\201D";
}

html[lang="en"] #de,html[lang="de"] #en {
	display:none;
}

/* float: */

.left {float:left;}

.right {float:right;}

.float-none {clear:both;}

.clear:after {
	content:"";
	display:table;
	clear:both;
}

/* position */

.relative {position:relative;}

.absolute {position:absolute;}

.fixed {position:fixed;}


/* display: */

.hidden {display:none;}

.inline {display:inline;}

.block {display:block;}

.inline-block {display:inline-block;}

/* margin: / padding: */

.ma-0,.mr-0,.mx-0 {margin-right:0;}
.ma-0,.ml-0,.mx-0 {margin-left:0;}
.ma-0,.mt-0,.my-0 {margin-top:0;}
.ma-0,.mb-0,.my-0 {margin-bottom:0;}

.ma-10,.mr-10,.mx-10 {margin-right:10px;}
.ma-10,.ml-10,.mx-10 {margin-left:10px;}
.ma-10,.mt-10,.my-10 {margin-top:10px;}
.ma-10,.mb-10,.my-10 {margin-bottom:10px;}

.ma-20,.mr-20,.mx-20 {margin-right:20px;}
.ma-20,.ml-20,.mx-20 {margin-left:20px;}
.ma-20,.mt-20,.my-20 {margin-top:20px;}
.ma-20,.mb-20,.my-20 {margin-bottom:20px;}

.pa-0,.pr-0,.px-0 {padding-right:0;}
.pa-0,.pl-0,.px-0 {padding-left:0;}
.pa-0,.pt-0,.py-0 {padding-top:0;}
.pa-0,.pb-0,.py-0 {padding-bottom:0;}

.pa-10,.pr-10,.px-10 {padding-right:10px;}
.pa-10,.pl-10,.px-10 {padding-left:10px;}
.pa-10,.pt-10,.py-10 {padding-top:10px;}
.pa-10,.pb-10,.py-10 {padding-bottom:10px;}

.pa-20,.pr-20,.px-20 {padding-right:20px;}
.pa-20,.pl-20,.px-20 {padding-left:20px;}
.pa-20,.pt-20,.py-20 {padding-top:20px;}
.pa-20,.pb-20,.py-20 {padding-bottom:20px;}

/* border */

.bt-1,.bl-1,.bb-1,.br-1 {border:1px dotted #ccc;}
.bt-0,.bl-1,.bb-1,.br-1 {border-top:0;}
.br-0,.bt-1,.bl-1,.bb-1 {border-right:0;}
.bb-0,.bt-1,.bl-1,.br-1 {border-bottom:0;}
.bl-0,.bt-1,.bb-1,.br-1 {border-left:0;}

.ba-0,.border-0 {border:0;}

hr {
	display:block;
	height:0;
	border:0;
	margin:20px 0;
	border-top:1px dotted #ccc;
}