/**
 * Fonts
 */
 @import url('../fonts/Open_Sans/OpenSans-VariableFont_wdth\,wght.ttf');


/**
 * GENERAL
 */

* {
  box-sizing: border-box;
}
html, body {
  padding: 0;
  margin: 0;
  font-family: 'Open Sans', sans-serif;
  font-style: normal;
  font-weight: 400;
  height: 100%;;
  color: #393939;
}

div {
  padding: 10px;
  box-sizing: border-box;
}

div.staging-message {
  background-color: rgb(239, 214, 100);
  width: 100%;
  display: block;
  text-align: center;
  position: fixed;
  z-index: 999;
}

div.main {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: start;
}

.staging-version div.main {
  padding-top: 42px;
}

/**
 * General image settings
 */

img {
  vertical-align: middle;
  max-width: 100%;
}

/**
 * Utilities
 */

 .screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #eee;
  clip: auto !important;
  clip-path: none;
  color: #444;
  display: block;
  font-size: 1em;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000; /* Above WP toolbar. */
}

.btn.hidden {
  display: none;
}

/**
 * Buttons
 */

.btn {
  display: flex;
  text-decoration: none;
  color: #393939;
  padding: 8px 12px;
  border: 1px solid #393939;
  width: fit-content;
  height: fit-content;
  font-size: 14px;
  border-radius: 2px;
}

.btn svg {
  margin-right: 16px;
}


/**
 * Sections
 */

header,
section,
footer {
  width: 100%;
  max-width: 800px;
}

 /* Brand */

#brand {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 50vw;
  max-height: 500px;
  padding: 7vw;
}

img.logo {
  width: 250px;
}

@media screen and (max-width: 950px) {
  #brand {
    margin: 5vw;
  }
}

@media screen and (max-width: 700px) {
  #brand {
    margin: 10vw;
  }
}

@media screen and (max-width: 500px) {
  #brand {
    margin: 30vw;
  }
}

.site-heading {
  text-transform: uppercase;
  letter-spacing: 9px;
  font-size: 36px;
  font-weight: 100;
  margin: 0;
}
.site-subheading {
  text-transform: uppercase;
  letter-spacing: 5px;
  font-size: 20px;
  font-weight: 100;
  margin: 0;
}

/* Portfolio */

.masonry {
  display: flex;
  width: 100%;
}

.masonry--h {
  margin-left: -1vw;
  counter-reset: brick;
  flex-flow: row;
  padding: 0;
}

.masonry-brick {
  overflow: hidden;
  border-radius: 12px;
  margin: 0 0 2vw 2vw;
  background-color: #333;
  color: white;
  position: relative;
  width: 150px;
}

.masonry-brick.double-width {
  width: 300px;
}

.masonry-brick--h {
  flex: auto;
  height: 22vw;
  max-height: 180px;
  min-width: 50px;
}

.masonry-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

/* Vision */

#vision {
  display: flex;
  flex-direction: row;
  margin-left: -32px;
  padding: 100px 50px;
  justify-content: center;
  align-items: center;
}

@media screen and (max-width: 821px) {
  #vision {
    flex-direction: column;
  }
}

#vision>* {
  margin: 0 0 32px 32px;
}

#vision h2 {
  text-transform: uppercase;
  min-width: 200px;
  font-size: 28px;
  font-weight: 300;
  line-height: 1.5;
  text-align: center;
}

#vision p {
  font-size: 14px;
  line-height: 1.7;
}

@media screen and (max-width: 820px) {
  #vision {
    flex-direction: column;
    margin: 0;
  }

  #vision>* {
    margin: 0 0 10vw 0;
  }

  #vision h2 {
    font-size: 5vw;
  }

  #vision p {
    text-align: center;
    width: 100%;
    max-width: 400px;
  }
}

@media screen and (max-width: 420px) {
  #vision h2 {
    font-size: 20px;
  }

  #vision p {
    text-align: center;
    width: 100%;
    max-width: 400px;
    font-size: 12px;
  }
}

/* Contact */

#contact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px 50px 100px 50px;
  margin-left: -32px;
}

#contact>* {
  margin: 0 0 32px 32px;
}

#contact h2 {
  text-transform: uppercase;
  font-size: 18px;
  font-weight: 300;
}

@media screen and (max-width: 820px) {
  #contact {
    flex-direction: column;
    margin: 0;
  }

  #contact>* {
    margin: 0 0 2vw 0;
  }

  #contact h2 {
    font-size: 3vw;
    margin-bottom: 6vw;
    text-align: center;
  }
}

@media screen and (max-width: 420px) {
  #contact h2 {
    font-size: 14px;
  }

  #contact .btn {
    font-size: 12px;
  }
}

@media screen and (max-width: 320px) {
  #portfolio {
    padding-bottom: 25vw;
  }
  #vision,
  #contact {
    padding: 0 20px 25vw 20px;
  }
}

/* Footer */
footer {
  border-top: 1px solid rgba(0,0,0,0.1);
  font-size: 12px;
  color: #ccc;
  text-align: center;
  padding-top: 10px;
}

/* V Card */
div#vcard {
  width: 400px;
  height: 200px;
  overflow: hidden;
  background: #FFFFFF;
  border: 1px solid #000000;
}

div#vcard h1 {
  font-size: 22pt;
  text-shadow: 1px 1px #CCCCCC;
}