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

* {
margin:0px;
padding:0px;
border:none;
outline:none;
}

a, .animate {
text-decoration:none;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease; 
color: rgba(255,255,255,1)
}

a:hover {
color: rgba(255,255,255,0.7)
}

html { 
font-size: 62.5%;
height: 100%;
position: relative
}

body {
font-family: 'Roboto', sans-serif;
font-size:1.8rem;
font-weight: 300;
    color: #cbd5dc;
line-height:140%;
height: 100%;
    background:
            radial-gradient(
                    ellipse at center,
                    rgba(255,255,255,0.08) 0%,
                    rgba(25,35,50,0.45) 65%,
                    rgba(25,35,50,0.65) 100%
            ) rgba(25,35,50,0.3);
}

#bgWrap {
height: 100%;
width: 100%;
z-index: -1;
background-image: url(body.png);
background-size: cover;
background-position: center center;
position: fixed;
top: 0;
left: 0;
}

#siteWrapper {
width:100%;
height: auto;
margin:0 auto;
text-align: center;
    background: rgb(0 0 0 / 40%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5vw 0;
}

img {
max-width: 100%;
height: auto;
vertical-align: bottom;
-webkit-transform: translateZ(0);
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease; 
}

#siteWrapper h1 {
font-size:5rem;
line-height: 120%;
font-weight: 300;
margin:0 0 3vw 0;
    letter-spacing: 0.03em;
    color: #f4f7f9;
}

#siteWrapper h2,
.section h2 {
font-size: 3.5rem;
line-height: 120%;
font-weight: 300;
margin: 100px 0 50px 0;
    color: #f4f7f9;
}

.section#schaeden {
    background: rgba(25,35,50,.4);
}

.section#referenzen {
    background: rgba(25,35,50,.4);
}

.section .intro {
    text-align: center;
    padding:6vw 7vw;
    max-width: 66vw;
    margin: 0 auto;
    text-shadow: 0px 0px 2px rgba(25,35,50,.4);
}
.section .intro h2 {
    margin: 0 0 5rem 0;
}

.section .intro p {
    font-size: 2.1rem;
    font-weight: 300;
    line-height: 150%;
}

.leistungensub {
    max-width: 50vw;
    margin: 0 auto;
}

.leistungensub p {
    font-size: 2.1rem;
    font-weight: 300;
    line-height: 150%;
}

.leistungensub .sep {
    display: block;
    max-width: 120px;
    height: 1px;
    margin: 10px auto;
    background: rgba(255,255,255,0.2);
}

.leistungensub p.bigger {
    font-size: 2.3rem;
    margin: 30px 0 0 0;
    font-weight: 400;
}

.intro {
padding:4.5vw 7vw;
}

.intro h1 {
    padding: 0 10vw;
}

.intro .leistungen {
list-style: none;
line-height: 210%;
font-size: 2.1rem;
font-weight: 300;
}

.intro .sep {
padding: 0 3px 0 7px
}

.intro p {
margin: 15px 0;

}

.intro a {
display: inline-block;
padding: 25px 50px;
    border: 1px solid rgba(255,255,255,0.2);
    background: rgba(255,255,255,0.05);
    color: #ffffff;
    transition: background .2s ease;
margin: 0 10px;
font-size: 2.5rem
}

.intro a:hover {
    background: rgba(255,255,255,0.12);
}

.intro .logos {
margin: 3vw 0 0 0;
    display: flex;
    justify-content: center;
}

.intro .logos img {
width: auto;
height: 140px;
margin: 0 20px;
opacity: 0.25
}

.intro .logos img:hover {
    opacity: 1
}

.metamenu {
position: relative;
padding: 10px 0;
background: rgba(255,255,255, 0.1);
text-align: center;
font-size: 1.3rem
}

.link {
cursor: pointer;
margin: 0 10px;
opacity: 0.8
}

.block {
width:100%;
height:auto;
position: relative;
}

.block a {
word-break: break-all
}

#footerWrapper {
background: rgba(25,35,50,.5);
}

#datenschutzWrapper.block {
    background: rgba(25,35,50,.75);
}

.block h1 {
margin: 0 0 30px 0;
font-weight: 300;
color: #FFF
}

.block h2 {
font-weight: 300;
margin: 0 0 30px 0;
color: #FFF
}

.block h3 {
font-weight: 300;
margin: 0 0 30px 0;
color: #FFF
}

.block h4 {
font-weight: 300;
margin: 0 0 30px 0;
color: #FFF
}

.block p {
margin: 0 0 30px 0;
}

.block ul {
text-align: left;
margin: 0 0 30px 0;
list-style: none
}

.block li:before{
content: "\00BB";
padding: 0 10px 0 0
}

.content {
max-width: 960px;
margin: 0 auto;
padding: 100px 30px 60px;
text-align: left
}

.content a {
color: rgba(255,255,255,0.5)
}

.upBtn {
width: 50px;
height: 50px;
background: rgba(255,255,255,0.4);
position: fixed;
bottom: 40px;
right: 40px;
cursor: pointer;
display: none;
z-index: 500;
}

.upBtn:after {
content: ' ';
width: 0;
height: 0;
border-style: solid;
border-width: 0 10px 10px 10px;
border-color: transparent transparent rgba(33, 33, 33, 1); transparent;
position: absolute;
top: 20px;
right:15px;
display: block;
}

.galleryWrapper {
display: grid; 
grid-template-rows:auto; 
grid-template-columns:1fr 1fr 1fr 1fr;
grid-column-gap: 0;
    background: rgba(25, 35, 45, 0.5);
}

.galleryWrapper img {
opacity: 0.5;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-ms-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all 0.3s ease; 
}

.galleryWrapper img:hover {
opacity: 1;
    cursor: help;
}

.gallery-item {
    position: relative;
}

.gallery-item figcaption {
    max-width: 85%;
    padding: 1rem 1.3rem;

    background: rgba(15, 25, 35, 0.85);
    color: #f2f5f7;

    font-size: 1.2rem;
    line-height: 1.4;

    pointer-events: none; /* wichtig! */
    opacity: 0;
    transform: translate(-50%, -120%);
    transition: opacity 0.15s ease;

    z-index: 2;
    display: none;
}

/* Untertitel */
.gallery-item figcaption span {
    display: block;
    color: #c9d3da;
    font-style: italic;
}

/* Tooltip-Grundlage */
.gallery-tooltip {
    position: fixed;
    max-width: 360px;
    padding: 2rem 2.8rem;

    background: rgba(15, 25, 35, 0.9);
    color: #f2f5f7;

    font-size: 1.4rem;
    line-height: 1.4;

    pointer-events: none;
    z-index: 9999;

    opacity: 0;
    transition: opacity 0.12s ease;
}

.gallery-tooltip span {
    display: block;
    font-style: italic;
    color: #c9d3da;
}

@media (hover: none) {

    .gallery-tooltip {
        display: none;
    }

    .gallery-item {
        display: flex;
        flex-direction: column;
    }

    .gallery-item figcaption {
        max-width: 100%;
        padding: 1.5rem 2rem;
        font-size: 1.2rem;
        line-height: 1.4;
        opacity: 1 !important;
        transform:unset;
        transition:unset;
        display: block;
    }
}

@media screen and (max-width:1280px) {
	
#siteWrapper {
min-height: inherit;
}

.intro {
padding:7vw;
}
	
#siteWrapper h1 {
font-size:4.5vw;
}

#siteWrapper h2 {
font-size: 3vw;
line-height: 120%;
font-weight: 300;
}

.intro .leistungen {
list-style: none;
line-height: 210%;
font-size: 2vw;
font-weight: 100;
}

.galleryWrapper {
display: grid; 
grid-template-rows:auto; 
grid-template-columns:1fr 1fr;
grid-column-gap: 0;
}

.content {
max-width: 960px;
margin: 0 auto;
padding: 7vw;
text-align: left
}

}

@media screen and (max-width:980px) {
	
.intro {
margin: 0 auto;
padding:9vw;
}

    .section .intro {
        padding:12vw 9vw;
    }

#siteWrapper h1 {
font-size:5vw;
}

#siteWrapper h2 {
font-size: 3.6vw;
line-height: 120%;
font-weight: 300;
}

.intro .leistungen {
list-style: none;
line-height: 210%;
font-size: 2.3vw;
font-weight: 100;
margin: 6vw 0 5vw
}

.intro a {
display: block;
max-width: 70%;
padding: 25px 50px;
margin: 0 10px;
font-size: 2.5rem;
margin: 20px auto
}

}

@media screen and (max-width:640px) {

    #siteWrapper {
        text-align: center;
        display: block;
        padding: 5vw 0;
    }

    .leistungensub {
        max-width: 100%;
        margin: 0 auto;
    }
    .leistungensub p {
        font-size: 1.8rem;
        font-weight: 300;
        line-height: 150%;
    }

    .section .intro p {
        font-size: 1.8rem;
        font-weight: 300;
        line-height: 150%;
    }

    .leistungensub .sep {
        display: block !important;
        max-width: 120px;
        height: 1px !important;
        width: 80px !important;
        margin: 10px auto;
        background: rgba(255,255,255,0.2);
    }

    .leistungensub p.bigger {
        font-size: 2rem;
        margin: 30px 0 0 0;
        font-weight: 400;
    }
	
#siteWrapper h1 {
font-size:6vw;
}

#siteWrapper h2 {
font-size: 6vw;
line-height: 120%;
font-weight: 300;
}

    .section .intro {
        padding:9vw;
        max-width: 100%;
    }

    .intro h1 {
        padding: 0;
    }

.section h2 {
    font-size: 6vw;
}
	
.intro {
max-width: inherit;
margin: 0 auto
}

.intro .leistungen {
list-style: none;
line-height: 200%;
font-size: 2.3vw;
font-weight: 100;
}

.galleryWrapper {
display: grid; 
grid-template-rows:auto; 
grid-template-columns:1fr;
grid-column-gap: 0;
}

.intro a {
max-width: 100%;
font-size: 4.2vw;
margin: 20px auto
}

.intro .logos {
margin: 5vw 0 0 0;
    flex-direction: column;
    align-items: center;
}

.intro .logos img {
width: auto;
    max-width: 240px;
height: auto;
margin: 4vw 0;
}

}

@media screen and (max-width:480px) {
	
body {
font-size:1.5rem;
line-height:140%;
}
	
.content {
max-width: 960px;
margin: 0 auto;
padding: 10vw;
text-align: left
}
	
.intro .sep {
display: block;
height: 0;
width: 0;
overflow: hidden;
}

#siteWrapper h1 {
font-size:7.5vw;
line-height: 140%
}

#siteWrapper h2 {
font-size: 6.5vw;
line-height: 120%;
font-weight: 300;
margin: 80px 0 5vw 0
}
	
.intro {
max-width: inherit;
margin: 0 auto;
padding: 12vw 7vw 7vw 7vw
}

.intro .leistungen {
list-style: none;
line-height: 210%;
font-size: 4.7vw;
font-weight: 100;
padding: 3vw 0
}

.intro .logos img {
width: auto;
height: 100px;
margin: 4vw 0;
}

.intro a {
max-width: 100%;
font-size: 5.5vw;
padding: 15px 20px;
margin: 20px auto
}

.upBtn {
width: 50px;
height: 50px;
background: rgba(255,255,255,0.4);
position: fixed;
bottom: 0;
right: 0;
margin: 0 auto;
cursor: pointer;
display: none;
z-index: 500;
}

.upBtn:after {
content: ' ';
width: 0;
height: 0;
border-style: solid;
border-width: 0 9px 9px 9px;
border-color: transparent transparent rgba(33, 33, 33, 1); transparent;
position: absolute;
top: 20px;
right:16px;
display: block;
}

}