/* CSS */
/* PAGE: Sylvia Henze */
/* AUTHOR: hyperstud.io */


@import url("https://use.typekit.net/srf5zzi.css");

html, body{
    position: relative;
    width:100%;
    height:auto;
	margin:0;
	padding:0;
    background:#fff;
	color:#545454;
    font-family: europa, sans-serif; 
	font-size:20px;
    font-weight:500;

    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(0,0,0,0); 
    -webkit-touch-callout: none;

    text-rendering: optimizeLegibility !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
    
}





/* Table */

.table{
	display:table;
	width:100%;
	height:100%;
}

.table-row{
	display:table-row;
}

.table-cell{
	display:table-cell;
	width:100%;
	height:100%;	
	vertical-align: middle;
	text-align:center;
}


.onehalf, .onethird, .twothird,
.onefourth{
    display:inline-block;
    vertical-align: top;
    position: relative;
}

.onehalf{
    width:50%;
}

.onethird{
    width:33.33%;
}

.onefourth{
    width:25%;
}


/* border-box */

*{
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}



/* Template */

#wrapper{
    position: relative;
    display:block;
    width:100%;
    height:auto;
    margin:0 auto;
    opacity: 1;
    overflow-x: hidden;

    
}

.wrapper{
    position: relative;
    display: block;
    width:100%;
    margin:0 auto;
    padding:0 20px;
    max-width: 1440px;
}

.wrapper.small{
    max-width:1440px;
}




/* Header */

header{
    position: absolute;
    top:0px;
    left:0px;
    width:100%;
    height:100px;
    padding:0px 0 0px 0;
    z-index: 100;

    webkit-transition:top 200ms ease-in-out;
    -moz-transition:top 200ms ease-in-out;
    transition:top 200ms ease-in-out;
}

header.fixed{
    position: fixed;
    top:0px;
}

header.out{
    top:-220px;
}

header .logo{
    position: absolute;
    left: 20px;
    top: 35px;
}

header nav{
    position: absolute;
    top: 0px;
    right: 0px;
    background: #fff;
    width: 720px;
    height: 100vh;
    text-align: right;
    padding: 100px 20px 0 0;

    box-shadow: -5px 0px 15px rgba(0,0,0,0.1);

    transform: translateX(calc((100vw - 1440px) / 2 + 100%));
    -webkit-transform: translateX(calc((100vw - 1440px) / 2 + 100%));

    transition: transform 400ms ease-in-out;
    -webkit-transition: transform 400ms ease-in-out;

}

header.open nav{
    transform: translateX(0%);
    -webkit-transform: translateX(0%);
}


header nav:before{
  content: "";
  position: absolute;
  top: 0px;
  right: calc((100vw - 1440px) / 2 * -1);
  bottom: 0px;
  width: calc((100vw - 1440px) / 2 + 100%);
  background: #fff;
}


header nav a{

}

header nav a:last-child{

}

header nav a:hover,
header nav a:not(.nosel).selected{
    color: #000;
}




header nav .languages{
    position: absolute;
    right: 20px;
    bottom: 100px;
}



#mobile{
    position: absolute;
    top:35px;
    right:20px;
    width:35px;
    height:30px;
    cursor:pointer;
    z-index: 101;

    transition: all 400ms ease;
    -webkit-transition: all 400ms ease;

}

header.scroll #mobile{
    top: 20px;
}

#mobile .line{ 
   position: absolute; 
   left:0px;
   height:2px;
   width:35px; 
   background: #545454;
   box-shadow:0px 0px 2px rgba(0,0,0,0.1);
   display: block; 
   transition: 400ms; 
   -webkit-transition: 400ms;
   transform-origin: center; 
}

#mobile .line:nth-child(1) { top: 0px; }
#mobile .line:nth-child(2) { top: 11px; }
#mobile .line:nth-child(3) { top: 22px; }

header.open #mobile .line:nth-child(1){
   transform: translateY(11px) rotate(-45deg);
}

header.open #mobile .line:nth-child(2){
   opacity:0;
   width:0px;
   left:17px;
}

header.open #mobile .line:nth-child(3){
   transform: translateY(-11px) rotate(45deg);
}





main{
    padding-top:100px;
    min-height: calc(100vh);

    opacity: 1;
    -webkit-transition:opacity 200ms ease-in-out;
    -moz-transition:opacity 200ms ease-in-out;
    transition:opacity 200ms ease-in-out;
}

main.fadeout{
    opacity: 0.5;
}







/* Pages */

.page{
    display: block;
    padding-top:70px;
}

/* Modules */

.module{
    margin-bottom: 20px;
}

.module.style-3 .image{
    display: block;
}

.module.style-3 .image img{
    width: 100%;
    height: auto;
}


.module.style-5 .grid{
    display: block;
    margin-left: -30px;
}

.module.style-5 .grid .grid-item{
    position: relative;
    width: 33.33%;
    padding-left: 30px;
    margin-bottom: 30px;
}

.module.style-5 .grid .grid-item .inside{
    position: relative;
}

.module.style-5 .grid .grid-item img{
    width: 100%;
    height: auto;
}

.module.style-5 .grid .grid-item .overlay{
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    background: rgba(25,25,25,0.8);

    opacity: 0;

    transition: opacity 400ms ease-in-out;
    -webkit-transition: opacity 400ms ease-in-out;
}

.module.style-5 .grid .grid-item .inside:hover .overlay{
    opacity: 1;
}

.module.style-5 .grid .grid-item .overlay .inner{
    display: inline-block;
    vertical-align: top;
    text-align: left;
    padding: 20px;
    max-width: 80%;
}

.module.style-5 .grid .grid-item .overlay div{
    color: #fff;
}

.module.style-5 .grid .grid-item .overlay div .br{
    display: none;
}




/* Projekt */


body#project .wrapper.layout-children .content.intro{
    margin-bottom: 50px;
}


body#project main section .onehalf.first,
body#page main section .onehalf.first{
    width: 33.33%;
    padding-right: 30px;
}

body#project main section .onehalf.second,
body#page main section .onehalf.second{
    width: 66.67%;
    padding-right: 100px;
}

body#project main .wrapper.layout-2 section:not(#bottom) .onehalf.first{
    width: 66.67%;
    padding-right: 30px;
}

body#project main .wrapper.layout-2 section:not(#bottom) .onehalf.second{
    width: 33.33%;
    padding-right: 0px;
}


/* body#page main .wrapper.noimage section#bottom .onehalf.first */
body#page main .wrapper.noimage section.content .onehalf.first{
    display: none;
}


/* body#page main .wrapper.noimage section#bottom .onehalf.second */
body#page main .wrapper.noimage section.content .onehalf.second{
    display: block;
    width: auto;
    padding-right: 0px;
}



body#project .child{
    margin-top: 30px;
}


body#project .content img.image,
body#page main img.image{
    width: 100%;
    margin-bottom: 30px;
}

body#project .child img.image{
    width: 100%;
}

body#project main .content .title,
body#project main .child .title{
    margin-top: 5px;
}

body#project main .content .description,
body#project main .child .description{
    display: block;
    margin-top: 25px;
}

body#project .wrapper.layout-children .child .description{
    margin-top: 0px;
}

body#project main .content .text,
body#project main .child .text{
    display: block;
    margin-top: 30px;
}



body#project main section.pdfs{
    display: block;
    margin-top: 30px;
}

body#project main .wrapper.layout-2 .pdfs{
    display: block;
    margin-top: 30px;
}

.pdf{
    position: relative;
    padding-left: 30px;
}

.pdf:before{
    content: "";
    position: absolute;
    top: 6px;
    left: 0px;
    width: 20px;
    height: 20px;
    
    background: #545454;
    mask-image: url(../img/icon-arrow-left.png);
    mask-image: url(../img/icon-arrow-left.svg);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center center;

    transform: rotate(180deg);
    -webkit-transform: rotate(180deg);

    transition: left 400ms ease-in-out;
    -webkit-transition: left 400ms ease-in-out;
}

.pdf:hover:before{
    left: 5px;
}




body#project main section.photos{
    display: block;
    margin-top: 100px;
}

body#project main .photos{

}

body#project main .photos .photo{
    display: block;
    margin-bottom: 30px;
}

body#project main .photos .photo:last-child{
    margin-bottom: 0px;
}

body#project main .photos .photo img{
    width: 100%;
    height: auto;
}



section#bottom{
    display: block;
    margin-top: 100px;
}


.event-header{
    display: block;
    padding-left: 150px;
    margin-left: -150px;
    margin-top: 100px;
    
}

.events{
    position: relative;
    display: block;
    margin-top: 20px;
    margin-left: -150px;
}

.events .line{
    content: "";
    position: absolute;
    top: 10px;
    left: 5px;
    bottom: 10px;
    width: 4px;
    background: #545454;
}


.events .event{
    display: block;
    margin-bottom: 5px;
}

.events .event .date,
.events .event .text{
    position: relative;
    display: inline-block;
    vertical-align: top;

}

.events .event .date{
    width: 150px;
    padding-left: 25px;
}

.events .event .text{
    width: calc(100% - 150px);
}

.events .event .date.hasdot:before{
    content: "";
    position: absolute;
    top: 9px;
    left: 0px;
    width: 14px;
    height: 14px;
    background: #545454;
    border-radius: 100%;
}


.events .event .date .dash{
    display: inline-block;
    vertical-align: top;
}











.btn-back{
    position: relative;
    padding-left: 30px;
}

.btn-back:before{
    content: "";
    position: absolute;
    top: 6px;
    left: 0px;
    width: 20px;
    height: 20px;

    background: #545454;
    mask-image: url(../img/icon-arrow-left.png);
    mask-image: url(../img/icon-arrow-left.svg);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center center;


    transition: left 400ms ease-in-out;
    -webkit-transition: left 400ms ease-in-out;
}

.btn-back:hover:before{
    left: -5px;
}




/* Slideshow Full */

.slideshow{
    position: relative;;
    width:100%;
    height:500px;
    overflow: hidden;
    font-size:0px;
}

.slideshow .flickity-viewport{
    height:100% !important;
}

.slideshow .flickity-slider{
    height:100% !important;
}

.slideshow .slide{
    position: relative;
    width:100%;
    height:100%;
    margin:0;
    padding:0;
    font-size:0px;
    -webkit-transition: opacity 0.4s;
    -moz-transition: opacity 0.4s;
    transition: opacity 0.4s;    
}

.slideshow .slide img{
    position: absolute;
    top:auto;
    right:auto;
    bottom:auto;
    left:auto;
    width:100%;
    height:100%;
    margin:auto;
    object-fit:cover;
    display: inline-block;
    vertical-align: top;
}

/*
.slideshow .slide img{
    -webkit-transition: opacity 0.4s;
    -moz-transition: opacity 0.4s;
    transition: opacity 0.4s;
    opacity: 0;    
}

.slideshow .slide img.flickity-lazyerror{
  opacity: 0;
}

.slideshow .slide.is-selected img.flickity-lazyloaded{
    opacity: 1;
}*/






/* Video JS */
.video-js{
    background-color:transparent;
}

.video-js .vjs-poster{
    background-color: transparent;
    background-size: cover;
}

.video-js .vjs-big-play-button{
    font-size: 20px;
    line-height: 1em;
    position: absolute;
    top:0px;
    right:0px;
    bottom:0px;
    left:0px;
    width:100px;
    height:100px;
    margin:auto;
    background-color:transparent !important;
    background:url(../img/video-play.png);
    /*background:url(../img/video-play.svg);*/
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;
    padding: 0;
    opacity: 0.9;
    border: none;

    -webkit-transition: none;
    transition: none;

}

.video-js.vjs-waiting .vjs-big-play-button{
    display: none !important;
}

.video-js:hover .vjs-big-play-button{

    opacity: 1;
}

.video-js .vjs-big-play-button .vjs-icon-placeholder{
    display: none !important;
}

.video-js .vjs-big-play-button .vjs-control-text{
    display: none !important;
}

.video-js .vjs-control-bar {
    background-color:rgba(55,50,65,0);
    height:40px;
    width:auto;
    left:10px;
    right:10px;

}

.video-js .vjs-progress-control .vjs-progress-holder {

    margin: 14px 10px 0 10px;

}

.video-js .vjs-progress-control {
    display: block;
}



.video-js.vjs-ended .vjs-big-play-button,
.video-js.vjs-ended .vjs-poster{
    display: inline-block !important;
}






#blender{
    position: fixed;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    background: rgba(255,255,255,0.25);
    cursor: pointer;
    display: none;
}

#intro{
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    background: rgba(255,255,255,1);
    cursor: pointer;
    z-index: 1000;
}

#intro .inside{
    width: 100vw;
    height: 100vh;
}

#intro .title{
    padding: 20px;
    opacity: 0;

    transition: opacity 800ms ease-in-out;
    -webkit-transition: opacity 800ms ease-in-out;
}

#intro.animate .title{
    opacity: 1;
}









/* General */

*{
    outline:none;
}






/* WYSIWYG */

.wysiwyg .block{
    display: block;
    margin-left:85px;
    margin-bottom:40px;
}

.wysiwyg .wysiwyg-column{
    display: inline-block;
    vertical-align: top;
    width:49%;
    padding-right:40px;
}

.wysiwyg ul{
    margin:0 0 30px 0;
    padding:0;
}

.wysiwyg ul li{
    position: relative;
    padding-left: 22px;
}

.wysiwyg ul li:before{
    content:"";
    position: absolute;
    top:11px;
    left:0px;
    width:9px;
    height:9px;
    background:#545454;
    border-radius: 100%;
}


.wysiwyg a,
.wysiwyg a:visited{
    position: relative;
    color: #545454;
}

.wysiwyg a:after{
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0px;
    right: 0px;
    height: 1.5px;
    background: #545454;
}




.indent{
    display: inline-block;
    vertical-align: top;
    font-size: 0px;
}

.indent .title{
    display: inline-block;
    vertical-align: top;
    width: 80px;
    font-size: 20px;
    white-space: nowrap;
}

.indent .text{
    display: inline-block;
    vertical-align: top;
    width: calc(100% - 80px);
    font-size: 20px;
    white-space: nowrap;
}




/* Footer */

footer{
    padding:0px 0 100px 0;
    margin-top: 100px;
}

footer .pages{
    margin-top: 20px;
}



/* Video Background */



.video-background {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    overflow: hidden;
}

.video-background video{
    position: absolute;
    top: 0px;
    right:0px;
    bottom:0px;
    left: 0px;
    margin:auto;

    width: 100%;
    height: 100%;
    margin:auto;
    object-fit:cover;
}


.video{
    position: relative;
}

/* Youtube */

.responsive-video {
    position: relative;
    padding-bottom: 56.25%; /* Default for 1600x900 videos 16:9 ratio*/
    padding-top: 0px;
    height: 0;
    overflow: hidden;

    background-size:cover !important;
    background-repeat:no-repeat !important;
    background-position:center !important;

}

.responsive-video video,
.responsive-video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.responsive-video.on-demand{
    background-color: #ccc;
    cursor: pointer;
}

.responsive-video.on-demand:after{
    content:" ";
    width: 0px;
    height: 0px;
    border-style: solid;
    border-width: 15px 0 15px 25px;
    border-color: transparent transparent transparent #ffffff;
    position: absolute;
    top:0px;
    left:0px;
    right:0px;
    bottom:0px;
    margin:auto;
    pointer-events:none;
    opacity:0.8;

    -webkit-transform:rotate(360deg);
    -moz-transform:rotate(360deg);
    transform:rotate(360deg);

}

.responsive-video.on-demand:hover:after{
    opacity:1;
}

.responsive-video.on-demand .overlay{
    position: absolute;
    top:0px;
    right:0px;
    bottom:0px;
    left:0px;
}

.responsive-video.on-demand .guideline{
    position: absolute;
    bottom:0px;
    left:0px;
    right:0px;
    color:#fff;
    text-align: center;
    z-index:1000;
    line-height:1.3em;
    font-size:15px;

    padding:10px;
    background:rgba(0,0,0,0.2);

}

.responsive-video.on-demand .guideline a,
.responsive-video.on-demand .guideline a:visited,
.responsive-video.on-demand .guideline a:focus{
    color:#fff;
    text-decoration: underline;
}



.ondemand:after{
    content:" ";
    position: absolute;
    top:0px;
    left:0px;
    right:0px;
    bottom:0px;
    width: 100px;
    height: 100px;    
    margin:auto;

    background: url(../img/video-play.png);
    background-size: contain;
    background-position: center center;
    background-repeat: no-repeat;

    opacity:0.9;
}

.ondemand:hover:after{
    opacity:1;
}

.guideline{
    position: absolute;
    bottom:0px;
    left:0px;
    right:0px;

    color:#fff;
    text-align: center;
    z-index:1000;
    line-height:1.3em;
    font-size:20px;

    padding:10px;
    background:rgba(0,0,0,0.2);

}

.guideline a{
    color:#fff;
    text-decoration: underline;
}








/* General */

.hidden{
    display:none !important;
}

.selected{
    
}

.overflowhidden{
    overflow: hidden !important;
}



/* Fonts */


.zfs{
    font-size:0px;
}

.h1{
    font-size:48px;
}

.h2{
    font-size:24px;   
}



.p1{
    font-size:90px;
}

.p2{
    font-size: 50px;
}

.p3{
    font-size:28px;
}

.p4{
    font-size: 26px;
}

.p5{
    font-size: 20px;
    line-height: 1.5em;
}




a, a:focus, a:visited, img{
    outline:none;
    border:none;
}

a{
  position: relative;
  display:inline-block;
}

a, a:visited{
  text-decoration: none;
  color:#545454;
}


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

.bold, strong{
    font-weight:700;
}

.light{
    font-weight: 300;
}

.uppercase{
    text-transform: uppercase;
}


.blue{
    color: blue;
}


#mobile, .no-select{
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

input:focus,
select:focus,
textarea:focus,
button:focus {
    outline: none;
    outline-width: 0;
}

input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
   color: #888;
   opacity: 1;
}

input:-moz-placeholder, textarea:-moz-placeholder { /* Firefox 18- */
   color: #888;  
   opacity: 1;
}

input::-moz-placeholder, textarea::-moz-placeholder {  /* Firefox 19+ */
   color: #888;
   opacity: 1;  
}

input:-ms-input-placeholder, textarea:-ms-input-placeholder {  
   color: #888;
   opacity: 1;  
}



.white, a.white, a.white:focus, a.white:visited{
    color:#fff;
}


.mobile-only{
    display: none;
}






@media (max-width: 1440px){


    header nav{

        transform: translateX(100%);
        -webkit-transform: translateX(100%);

    }


    header nav:before{
        display: none !important;
    }



}



/* > iPhone */

@media (min-width:768px){


}



/* iPhone */

@media (max-width:768px) { 

    .iphone-only{
        display: block;
    }

    .desktop-only{
        display:none !important;
    }

    .mobile-only{
        display: inline-block !important;
    }


    header nav{
        width: 100%;
    }



    .module.style-5 .grid .grid-item{
        width: 100%;
        margin-bottom: 20px;
    }


    .module.style-5 .grid .grid-item .overlay{
        display: none;
    }



    body#project main section .onehalf.first{
        display: block;
        width: auto;
    }

    body#project main section .onehalf.second,
    body#project main section .onehalf.second{
        display: block;
        width: auto;
        padding-right: 0px;
    }

    body#project main section .onehalf.first,
    body#page main section .onehalf.first{
        padding-right: 0px;
    }

    body#project main section.photos{
        margin-top: 40px;
    }


    body#project main .wrapper.layout-2 .photos{
        margin-top: 40px;
    }

    body#project main .photos .photo{
        margin-bottom: 20px;
    }





    body#project main section .onehalf.first,
    body#page main section .onehalf.first{
        display: block;
        width: auto;
    }

    body#project main section .onehalf.second,
    body#page main section .onehalf.second{
        display: block;
        width: auto;
        padding-right: 0px;
    }


    body#project main .wrapper.layout-2 section:not(#bottom) .onehalf.first,
    body#project main .wrapper.layout-2 section:not(#bottom) .onehalf.second{
        display: block;
        width: auto;
        padding-right: 0px;
    }

    body#project main .wrapper.layout-2 section:not(#bottom) .onehalf.second{
        margin-top: 20px;
    }

    body#project main .wrapper.layout-2 section.content .onehalf.second{
        margin-top: 0px !important;
    }


    body#project .content img.image,
    body#page main img.image{
        margin-bottom: 0px;
        margin-top: 20px;
    }



    body#project main .content .title,
    body#project main .child .title{
      margin-top: 10px;
    }

    body#project main .content .text,
    body#project main .child .text{
        margin-top: 20px;
    }




    body#page main section.content .onehalf.second img.image{
        margin-bottom: 0px;
        margin-top: 20px;
    }

    body#project main section.child .onehalf.second{
        margin-top: 20px;
    }





    body#project .wrapper.layout-children .content.intro{
        margin-bottom: 0px;
    }

    body#project .child{
        margin-top: 20px;
    }



    .event-header{
        padding-left: 0px;
        margin-left: 0px;
    }

    .events{
        margin-left: 0px;
    }

    .events .event .date{
        width: 100px;
        padding-right: 10px;
    }

    .events .event .date.hasdot:before{
        top:6px;
    }

    .events .event .text{
        width: calc(100% - 100px);
    }



    .guideline{
        font-size: 10px;
    }



    footer .onethird.first,
    footer .onethird.third{
        display: none;
    }

    footer .onethird.second{
        display: block;
        width: auto;
    }


    #mobile{
        top: 36px;
        height: 22px;
    }

    #mobile .line:nth-child(2){
        top: 9px;
    }

    #mobile .line:nth-child(3){
        top: 18px;
    }

    header.open #mobile .line:nth-child(1){
       transform: translateY(10px) rotate(-45deg);
    }

    header.open #mobile .line:nth-child(3){
       transform: translateY(-8px) rotate(45deg);
    }


    .btn-back:before{
        top: 5px;
        width: 18px;
        height: 18px;
    }

    .pdf:before{
        top: 5px;
        width: 18px;
        height: 18px;
    }


    .p1{
        font-size: 44px;
    }

    .p2{
        font-size: 44px;
    }

    .p3{
        font-size: 22px;
    }

    .p4{
        font-size: 22px;
    }


    .p5{
        font-size: 17px;
    }


}
