html, body {
    margin: 0 auto;
    padding: 0;
    height: 100%;
    width: 100%;
    background-color: #ffffff;
    font-family: 'Linotte SemBold', sans-serif;
    font-size: 110%;
    line-height: 150%;
    /* -webkit-transition: all 0.2s ease;
    -moz-transition:    all 0.2s ease;
    -ms-transition:     all 0.2s ease;
    -o-transition:      all 0.2s ease; */
}

@media only screen and (max-width: 1550px) {
    html, body {
        font-size: 107.5%;
    }
}

@media only screen and (max-width: 1275px) {
    html, body {
        font-size: 105%;
    }
}

@media only screen and (max-width: 950px) {
    html, body {
        font-size: 102.5%;
    }
}

@media only screen and (max-width: 450px) {
    html, body {
        font-size: 100%;
    }
}

input {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}

a,
a:link,
a:visited,
a:active{
    list-style-type: none;
    text-decoration: none;
    color: #2c292a;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

a:hover {
    opacity: 0.5;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

h1 {
    margin: 0;
    font-size: 1.8em;
    line-height: 150%;
    color: #2c292a;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

h2 {
    margin: 0;
    text-align: center;
    font-size: 1.8em;
    line-height: 150%;
    color: #2c292a;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

p {
    margin: 0;
    line-height: 150%;
    color: #2c292a;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

.container {
    margin: 0 auto;
    max-width: 1800px;
    min-width: 320px;
}

@-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }

/* HEADER */

.header {
    padding: 1em 1em 0em 1em;
    margin-top: 1em;
    background: #ffffff;
    clear: both;
    height: 4em;
}

.header #logo {
    float: left;
    height: 100%;
    width: auto;
    -webkit-transition: all 0.5s ease;
    -moz-transition:    all 0.5s ease;
    -ms-transition:     all 0.5s ease;
    -o-transition:      all 0.5s ease;
}

.header #logo:hover {
    opacity: 0.5;
}

.header #navlist {
    float: right;
    padding-right: 0em;
    padding-left: 0em;
    margin: 0;
}

.header #navlist li {
    display: inline-block;
    padding-left: 1.5em;
    line-height: 4em;
}

.header #navlist a {
    padding-bottom: 0.1em;
    border-bottom: 2px solid #2c292a;
}

/* When the screen is less than 600 pixels wide, hide all links, except for the first one ("Home"). Show the link that contains should open and close the topnav (.icon) */

@media only screen and (max-width: 650px) {
    .header #navlist .menu-hide{
            display:none; 
        }  
    }

@media only screen and (min-width: 651px) {
    .header #navlist .menu-mobile{
            display:none;
        }  
    }

/* first block */

.hero {
    padding: 8em 2em 8em 2em;
    margin-left: 1em;
    margin-right: 1em;
    width: auto;
     /*height: 50vh;*/
    background-color: #fff;
}

@media only screen and (max-width: 750px) {
    .hero {
        padding: 6em 1em 6em 1em;
    }
}

@media only screen and (max-width: 400px) {
    .hero {
        padding: 4em 0em 4em 0em;
    }
}

.hero h1 {
    position: relative;
    /*top: 50%;
    transform: perspective(1px) translateY(-50%);*/
    margin: 0 auto;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    max-width: 850px;
    /*padding-bottom: 0.5em;*/
}

@media only screen and (max-width: 550px) {
    .hero h1 {
        font-size: 150%;
    }
}

@media only screen and (max-width: 400px) {
    .hero h1 {
        font-size: 130%;
    }
}

.hero a {
    text-decoration: underline;
    text-decoration-color: #2c292a;
}

.herologo img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 35em;
    z-index: 1;
}

@media only screen and (max-width: 800px) {
    .herologo img {
        width: 80%;
    }
}

.herologo-wide img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 24em;
    z-index: 1;
}

@media only screen and (max-width: 800px) {
    .herologo-wide img {
        width: 50%;
    }
}

@media only screen and (max-width: 500px) {
    .herologo-wide img {
        width: 66%;
    }
}

.social {
   position: relative;
    /*top: 50%;
    transform: perspective(1px) translateY(-50%);*/
    margin: 0 auto;
    max-width: 850px;
    text-align: center;
    /*padding-bottom: 0.5em;*/
}

.social img {
    height: 3em;
    padding: 2em 1em 0em 1em
}

@media only screen and (max-width: 400px) {
    .social img {
        height: 2.25em;
    }
}

.hero-work {
    position: relative;
    margin: 2em 1em 2em 1em;
    width: auto;
    height: 75vh;
    min-height: 540px;
    background-color: #fafaf4;
}

@media only screen and (max-width: 750px) {
    .hero-work {
    position: relative;
    margin: 2em 1em 2em 1em;
    width: auto;
    height: 70vh;
    min-height: 360px;
    background-color: #fafaf4;
    }
}

.hero-image {
    width: 100%;
    height: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

/* Home - FLEX */

.flex-2 {
    display: flex;
    flex-direction: row;
    margin: 0em 0.9em 0em 0.9em;
    justify-content: center;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

@media only screen and (max-width: 750px) {
    .flex-2 {
        flex-direction: column;
        margin: 0em 1em 0em 1em;
    }
}

.box-project {
    position: relative;
    display: block;
    width: 100%;
    margin: 0.1em;
}

@media only screen and (max-width: 750px) {
    .box-project {
        margin: 0.1em 0px 0.1em 0px;
    }
}

.box-title {
    position: absolute;
    top: 0;
    left: 0;
    padding: 0.8em 1em 1em 1em;
    z-index: 999;
}

.box-cat {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 1em 1em 0.8em 1em;
    z-index: 999;
}

.cycle-slideshow img {
    position: absolute;
    display: block;
    width: 100%;
    top: 0;
    left: 0;
    z-index: -999;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

/* Work - non-flex */

.spacer {
    height:2em;
    width:100%;
    clear:both;
    background-color: #fff;
}

.spacer2 {
    height:4em;
    width:100%;
    clear:both;
    background-color: #fff;
}

.main-text {
    max-width: 850px;
    padding: 1.8em 1em 1.8em 1em;
    margin: 0 auto;
    width: 75%;
}

@media only screen and (max-width: 500px) {
    .main-text {
    width: auto;
    }
}

.main-text a {
    text-decoration: underline;
}

.full-image {
    margin: 0em 1em 0em 1em;
}

.full-image img {
    display: block;
    width: 100%;
}

.full-image-por {
    max-width: 1024px;
    padding: 0em 1em 0em 1em;
    margin: 0 auto;
    width: auto;
}

.full-image-por img {
    display: block;
    width: 100%;
}

/* Work - FLEX */

.flex-work {
    display: flex;
    flex-direction: row;
    margin: 0em 0.9em 0em 0.9em;
    justify-content: center;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

@media only screen and (max-width: 800px) {
    .flex-work {
        flex-direction: column;
        margin: 0em 1em 0em 1em;
    }
}

.flex-work-left {
    display: flex;
    flex-direction: row;
    margin: 0em 0.9em 0em 0.9em;
    justify-content: center;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

@media only screen and (max-width: 800px) {
    .flex-work-left {
        flex-direction: column-reverse;
        margin: 0em 1em 0em 1em;
    }
}

.flex-work-right {
    display: flex;
    flex-direction: row;
    margin: 0em 0.9em 0em 0.9em;
    justify-content: center;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

@media only screen and (max-width: 800px) {
    .flex-work-right {
        flex-direction: column;
        margin: 0em 1em 0em 1em;
    }
}

.box-cap-left {
    position: relative;
    width: 100%;
    flex-shrink: 2;
    margin: 0.1em;
    border-top: 2px solid #2c292a;
}

@media only screen and (max-width: 800px) {
    .box-cap-left {
        margin: 0;
        border-top: 0px solid #2c292a;
        border-bottom: 2px solid #2c292a;
    }
}

.box-cap-left p {
    font-size: 85%;
    padding: 0.8em 1em 0.8em 1em;
}

.box-cap-left a {
    text-decoration: underline;
    text-decoration-color: #2c292a;
}

.box-cap-right {
    position: relative;
    width: 100%;
    flex-shrink: 2;
    margin: 0.1em;
    border-top: 2px solid #2c292a;
}

@media only screen and (max-width: 800px) {
    .box-cap-right {
        margin: 0;
        border-top: 0px solid #2c292a;
        border-bottom: 2px solid #2c292a;
    }
}

.box-cap-right p {
    font-size: 85%;
    padding: 0.8em 1em 0.8em 1em;
}

.box-cap-right a {
    text-decoration: underline;
    text-decoration-color: #2c292a;
}

.box-image {
    position: relative;
    flex-shrink: 1;
    width: 100%;
    margin: 0.1em;
}

@media only screen and (max-width: 800px) {
    .box-image {
        position: relative;
        flex-shrink: 1;
        width: 100%;
        height: auto;
        margin: 0em;
    }
}

.box-image img {
    width: 100%;
    display: block;
}

.box-project a {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    text-decoration: none; /* No underlines on the link */
    z-index: 1000; /* Places the link above everything else in the div */
    background-color: #fafaf4; /* Fix to make div clickable in IE */
    opacity: 0; /* Fix to make div clickable in IE */
    filter: alpha(opacity=1); /* Fix to make div clickable in IE */
}

.two-items {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    margin: 0em 0.5em 0em 0.5em;
}

.two-items > div {
    display: block;
    width: 50%;
    padding: 1em 0.5em 0em 0.5em;
    box-sizing: border-box;
}

@media only screen and (max-width: 700px) {
    .two-items > div {
        width: 100%;
    }
}

.two-items > div  img {
    display: block;
    width: 100%;
}

/* Website presentation */

.flex-web {
    display: flex;
    flex-direction: row;
    margin: 0em 0.9em 0em 0.9em;
    justify-content: center;
    -webkit-transition: none;
    -moz-transition:    none;
    -ms-transition:     none;
    -o-transition:      none;
}

@media only screen and (max-width: 800px) {
    .flex-web {
        flex-direction: column;
        margin: 0;
    }
}

.box-cap-web {
    position: relative;
    width: 100%;
    flex-shrink: 2;
    margin: 0em 0.1em 0em 0.1em;
    border-top: 2px solid #2c292a;
}

@media only screen and (max-width: 800px) {
    .box-cap-web {
        display: none;
    }
}

.box-cap-web p {
    font-size: 85%;
    padding: 0.8em 1em 0.8em 1em;
}

.box-cap-web-touch {
    padding: 4% 3.75% 0em 3.75%;
    width: auto;
    flex-shrink: 2;
    background-color: #2c292a;
}

@media only screen and (min-width: 801px) {
    .box-cap-web-touch {
        display: none;
    }
}

.box-cap-web-touch p {
    padding-top: 3%;
    border-top: 2px solid #fff;
    font-size: 85%;
    color: #fff;
}

.box-cap-web-touch-bottom {
    padding: 0% 3.75% 4% 3.75%;
    width: auto;
    flex-shrink: 2;
    background-color: #2c292a;
}

@media only screen and (min-width: 801px) {
    .box-cap-web-touch-bottom {
        display: none;
    }
}

.box-cap-web-touch-bottom p {
    padding-bottom: 3%;
    border-bottom: 2px solid #fff;
    font-size: 85%;
    color: #fff;
}

.box-image-web {
    position: relative;
    flex-shrink: 1;
    width: 100%;
    margin: 0em 0.1em 0em 0.1em;
    background-color: #2c292a;
}

@media only screen and (max-width: 800px) {
    .box-image-web {
        position: relative;
        flex-shrink: 1;
        width: 100%;
        height: auto;
        margin: 0em;
    }
}

.box-image-web img {
    width: 100%;
    display: block;
}

/* Contact info */

.contact-info {
    padding: 4em 3em 0em 3em;
    margin: 0em;
    width: auto;
     /*height: 50vh;*/
    background-color: #2c292a;
}

@media only screen and (max-width: 750px) {
    .contact-info {
        padding: 4em 2em 4em 2em;
    }
}

@media only screen and (max-width: 400px) {
    .contact-info {
        padding: 3em 1em 3em 1em;
    }
}

.contact-info h1 {
    position: relative;
    /*top: 50%;
    transform: perspective(1px) translateY(-50%);*/
    margin: 0 auto;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    max-width: 850px;
    color: #fff;
    /*padding-bottom: 0.5em;*/
}

@media only screen and (max-width: 550px) {
    .contact-info h1 {
        font-size: 150%;
    }
}

@media only screen and (max-width: 400px) {
    .contact-info h1 {
        font-size: 130%;
    }
}

.privacy {
    max-width: 850px;
    margin: 0 auto;
    padding-top: 3em;
    padding-bottom: 0.5em;
}

/* Footer */

.footercont {
    width: auto;
     /*height: 50vh;*/
    background-color: #2c292a;
    padding-top: 4em;
    padding-bottom: 4em;
}

@media only screen and (max-width: 750px) {
    .footercont {
        padding-bottom: 2em;
    }
}

.footercol {
    float: left;
    width: 33.33%; 
    text-align: center;
}

@media only screen and (max-width: 750px) {
    .footercol {
        width: 100%;
    }
}

/* Clear floats after the columns */
.footercont:after {
    content: "";
    display: table;
    clear: both;
}

.footer {
    margin: 0 auto;
    max-width: 1800px;
     /*height: 50vh;*/
    background-color: #2c292a;
}

.footercol p {
    color: #fff;
    font-size: 85%;
    padding-left: 2em;
    padding-right: 2em;
}

.footercol a {
    color: #fff;
    font-size: 100%;
    padding-left: 2em;
    padding-right: 2em;
}

@media only screen and (max-width: 750px) {
    .footercol p {
        padding-bottom: 2em;
    }
}

.left, .middle, .right {
  width: 33.33%;
}

.footercol img {
    height: 4em;
    padding-bottom: 0em;
}

@media only screen and (max-width: 750px) {
    .footercol img {
        padding-bottom: 1.5em;
    }
}

@media only screen and (max-width: 750px) {
    .left, .middle, .right {
        width: 100%;
        text-align: center;
    }
}

video {
    display: block;
    width: 100%;
    height: auto;
}

.middle p {
    padding-bottom: 1em;
}

.quote {
    padding: 8em 2em 8em 2em;
    margin-left: 1em;
    margin-right: 1em;
    margin-top: 4em;
    width: auto;
     /*height: 50vh;*/
    background-color: #2c292a;
}

@media only screen and (max-width: 750px) {
    .quote {
        padding: 6em 1.5em 6em 1.5em;
    }
}

@media only screen and (max-width: 400px) {
    .quote {
        padding: 4em 1em 4em 1em;
    }
}

.quote h1 {
    color: #fff;
    position: relative;
    /*top: 50%;
    transform: perspective(1px) translateY(-50%);*/
    margin: 0 auto;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    max-width: 850px;
    /*padding-bottom: 0.5em;*/
}

@media only screen and (max-width: 550px) {
    .quote h1 {
        font-size: 150%;
    }
}

@media only screen and (max-width: 400px) {
    .quote h1 {
        font-size: 130%;
    }
}

.quote p {
    color: #fff;
    position: relative;
    /*top: 50%;
    transform: perspective(1px) translateY(-50%);*/
    margin: 0 auto;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    max-width: 850px;
    /*padding-bottom: 0.5em;*/
}

/* Back to top */

.cd-top {
  display: inline-block;
  height: 2.5em;
  width: 2.5em;
  position: fixed;
  bottom: 1em;
  right: 1em;
  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
          box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
  /* image replacement properties */
  overflow: hidden;
  text-indent: 100%;
  white-space: nowrap;
  background: rgba(44, 41, 42, 1) url(../assets/cd-top-arrow.svg) no-repeat center 50%;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity .3s 0s, visibility 0s .3s, background-color .3s 0s;
  transition: opacity .3s 0s, visibility 0s .3s, background-color .3s 0s;
    z-index: 2000;
}

.cd-top.cd-top--show,
.cd-top.cd-top--fade-out,
.cd-top:hover {
  -webkit-transition: opacity .3s 0s, visibility 0s 0s, background-color .3s 0s;
  transition: opacity .3s 0s, visibility 0s 0s, background-color .3s 0s;
}

.cd-top.cd-top--show {
  /* the button becomes visible */
  visibility: visible;
  opacity: 1;
}

.cd-top.cd-top--fade-out {
  /* if the user keeps scrolling down, the button is out of focus and becomes less visible */
  opacity: 1;
}

.cd-top:hover {
  background-color: #4bb0a4;
  opacity: 1;
}



@media only screen and (min-width: 1024px) {
  .cd-top {
    height: 3.5em;
    width: 3.5em;
  }
}