/*******************
 ***** General *****
 *******************/

/***** Helpers *****/

.no-scroll {
  overflow: hidden;
}

.image-container,
.slider,
.split-slider,
.embed-wrapper {
 width: 100%;
 height: 0;
 overflow: hidden;
 padding-bottom: 56.25%; /* makes a 16:9 aspect ratio */
}

.image-container,
.slider-container,
.split-slider,
.embed-wrapper {
  margin: 50px auto 50px auto;
}



.hero-container .image-container,
.hero-container .slider-container,
.hero-container .split-slider,
.hero-container .embed-wrapper {
 margin: 0;
}

.clearfix {
  clear:both;
}




/***** Layout *****/

.footer {
  min-height: 72px;
}

.project-container, .gallery, .js-hero-container--gallery {
  opacity: 0;
  visibility: hidden;
}

.gallery {
  width: auto;
  min-height: -moz-calc(100vh - 72px);
  min-height: -webkit-calc(100vh - 72px);
  min-height: calc(100vh - 72px); /* 72px = footer height */
  padding: 0 0 50px 0;
}

.project-container {
  width: auto;
  margin-top: 120px;
  padding: 0 7.5%;
  position:  relative;
  z-index: 1;
}

.hero-container {
  width: auto;
  margin: 20px 0 50px 0;
}

.hero-container--gallery {
  margin-top: 120px;
  padding: 0 45px;
  margin: 150px 0 75px 0;
  position:  relative;
  z-index: 1;
}

@media (max-width: 740px) {
  .container {
    width: auto;
    padding: 0;
  }

}





/*******************
 ***** Gallery *****
 *******************/

.gallery-inner {
  width: 100%;
  height: auto;
  background-color: #6D7579;
}

.grid-item {
  display: block;
  float: left;
  width: 100%;
  height: auto;
#  margin-bottom: 10px;
  background-size: cover;
  background-position: center center;
  position: relative;
  color: #fff;
  text-decoration: none;
  overflow: hidden;
}

.grid-item::before {
  content: "";
  display: block;
  padding-bottom: 75%; /* this gives the item a fixed aspect ratio of 16:9 */
}

@media (min-width: 550px) {
  .grid-item {
    width: 50%;
  }
}

@media (min-width: 750px) {
  .grid-item {
    width: 33.3%;
  }
}

.grid-item .background-image {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-size: cover;
  background-position: center center;
  -moz-transform: scale(1.05);
  -webkit-transform: scale(1.05);
  transform: scale(1.05);
  -moz-transition: transform 0.3s ease-out;
  -webkit-transition: transform 0.3s ease-out;
  transition: transform 0.3s ease-out;
}

.grid-item:hover .background-image {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
}

.grid-item__title {
  width: 100%;
  color: #fff;
  font-size: 1.2em;
  text-align: center;
  letter-spacing: 0;
  position: absolute;
  top: 47%;
  margin-top: -1.2em; /* same as font-size */
  -moz-transition: top 0.2s ease-in-out;
  -webkit-transition: top 0.2s ease-in-out;
  transition: top 0.2s ease-in-out;
}

.overlay-box {
  content: "";
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}

.grid-item:hover .overlay-box {
  opacity: 1;
}

.grid-item:hover .grid-item__title {
  top: 50%;
}





/**************************
 ***** Single project *****
 **************************/





/***** Text *****/

blockquote {
  padding: 20px 30px;
  margin: 20px auto;
  font-size: 1.2em;
  position: relative;
  border-left: 3px #d7d7d7 solid;
  line-height: 150%;
}

p {
  color: #656565;
}





/***** Project navigation *****/

.project-nav {
  float: right;
  background: #F2F2F2;
  padding: 10px 20px;
  border-top-left-radius: 8px;
  border-bottom-right-radius: 8px;
}

.project-nav li {
  display: inline-block;
  margin: 0 10px;
  text-transform: uppercase;
  font-size: 1.2em;
}

.project-nav li a {
  color: #656565;
  -webkit-transition: color 0.2s ease-in-out;
  -moz-transition: color 0.2s ease-in-out;
  transition: color 0.2s ease-in-out;
}

.project-nav li a:hover {
  color: #000;
}





/***** Credits *****/

.credits {
  margin-bottom: 50px;
}
.credits li {
  line-height: 150%;
}

.credits .label {
  font-weight: bold;
  color: #888;
  padding-right: 10px;
}





/***** Images *****/

.image-container {
  display: block;
  height: 0;
  overflow: hidden;
  border: 0;
  text-decoration: none;
  position: relative;
}

.js-image-container {
  cursor: zoom-in;
}

.image-container img {
  border: 0;
  height: 100%;
  width: auto;
  position: absolute;
  top: 0;
  left: 50%;
  -webkit-transform: translatex( -50% );
  -moz-transform: translatex( -50% );
  transform: translatex( -50% );
}





/***** Videos *****/

.embed-wrapper {
  position: relative;
}

.embed-wrapper iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}





/***** Slider *****/

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

.slider {
  position: relative;
  margin-bottom: 25px;
}

.slider li {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

.slider .tos-wrapper {
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
}


.slider .image-container {
  width: auto;
  height: 100%;
  margin: 0;
  padding-bottom: 0;
  overflow: visible;
}

.slider .image-container img {
  height: 100%;
  width: auto;
  position: relative;
  top: 0;
  left: 0;
  -webkit-transform: none;
  -moz-transform: none;
  transform: none;
}

.slider .embed-wrapper {
  width: width: auto;
  height: 100%;
  margin: 0;
}

/* styles for full-screen slider buttons */
.tos-fixed .tos-next,
.tos-fixed .tos-prev,
.tos-fixed .tos-close {
  background: transparent;
  opacity: .5;
}

/* styles for inline slider buttons */
.slider-next,
.slider-prev {
  background: #fff;
  opacity: .5;
  display: inline-block;
  height: 8px;
  margin: 0 5px;
  -moz-transition: opacity 0.2s ease-in-out;
  -webkit-transition: opacity 0.2s ease-in-out;
  transition: opacity 0.2s ease-in-out;
}

@media (min-width: 550px) {
  .slider-next,
  .slider-prev {
    margin: 0 10px;
  }
}

@media (min-width: 750px) {
  .slider-next,
  .slider-prev {
    margin: 0 20px;
  }
}

.slider-next span,
.slider-prev span {
  border-color: #000;
  display: block;
  width: 20px;
  height: 20px;
  margin-top: -2px; /* positioning */
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  transform: rotate(45deg); /* make it an arrow */
}

.slider-prev span {
  border-left: 2px solid #585858;
  border-bottom: 2px solid #585858;
}

.slider-next span {
  border-right: 2px solid #585858;
  border-top: 2px solid #585858;
}

.slider-next:hover,
.slider-prev:hover {
  opacity: 1;
}

/* styles for inline slider pagination */
.slider-pagination {
  text-align: center;
  display: inline-block;
}

.slider-pagination a {
  display: inline-block;
  width: 6px;
  height: 2px;
  background-color: #b1b1b1;
  opacity: 0.5;
  margin: 0 2px;
  -moz-transition: opacity 0.2s ease-in-out;
  -webkit-transition: opacity 0.2s ease-in-out;
  transition: opacity 0.2s ease-in-out;
}

@media (min-width: 550px) {
  .slider-pagination a {
    width: 15px;
  }
}

@media (min-width: 750px) {
  .slider-pagination a {
    width: 20px;
  }
}

@media (min-width: 1000px) {
  .slider-pagination a {
    width: 25px;
  }
}

@media (min-width: 1600px) {
  .slider-pagination a {
    width: 30px;
  }
}

.slider-pagination a:hover {
  opacity: 1;
}

.slider-pagination a.tos-selected {
  background-color: #FBB040;
}





/***** Split slider *****/

.split-slider {
  position: relative;
  border: 1px solid #888;
}

.split-slider li {
  display: none;
  top: 0;
  left: 0;
  height: 100%;
  position: absolute;
}

.split-slider .split-slider__handle {
  position: absolute;
  left: 50%;
  margin-left: -1px;
  height: 100%;
  border-right: 1px #888 solid;
  z-index: 20;
  cursor: pointer;
}

.split-slider .split-slider__handle::before {
  content: "< >";
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -20px; /* 1/2th of width */
  margin-top: -20px; /* 1/2th of height */
  display: block;
  border: 1px #888 solid;
  background: #fff;
  z-index: 20;
  height: 40px;
  width: 40px;
  text-align: center;
  line-height: 36px; /* height, kinda */
}
.split-slider li:first-child {
  display: block;
  width: 50%;
  overflow: hidden;
  z-index: 20;
}

.split-slider li:nth-child(2) {
  display: block;
  width: 100%;
  z-index: 10;
}

.split-slider img {
  width: 100%;
}





/***** Load spinner *****/

.loader-container {
  width: 100%;
  height: 100%;
  top: 120px;
  position: fixed;
  z-index: 2;
}

.loader-container img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  margin-top: -120px;
}
