/* -----------------------------------------------------------------
    - Sections
----------------------------------------------------------------- */

.main {
  min-height: calc(100vh - 300px);
  padding-top: .1px;
}

.flex-container {
  @include display(flex);
  flex-wrap: wrap;
  justify-content: space-between;
  margin-left: -15px;
  margin-right: -15px;
}

.flex-container-z {
  @include display(flex);
  flex-wrap: wrap;
  justify-content: space-between;
}

.container-center {
  @include display(flex);
  @include flex-direction(column);
  @include align-items(center);
  justify-content: center;
  height: 100vh;
  overflow: hidden;
  text-align: center;
}

.container {
  @media (min-width: $large-xxl) {
    max-width: 1240px;
  } 
}

.section {
  margin-top: 8.75rem;
  
  @media only screen and (max-width: $large) {
    margin-top: 6.5rem;
  }  
  
  @media only screen and (max-width: $small) {
    margin-top: 3.5rem;
  }
  
  &-first {
    margin-top: 6rem;
	
	@media only screen and (max-width: $small) {
	  margin-top: 2rem;
	}
  }
  
  &-gray {
    background-color: rgba($gray-100-color,.6);
	padding: 5rem 0;
	position: relative;
	
	@media only screen and (max-width: $small) {
	  padding: 2.5rem 0;
	}
  }
  
  &-gray--cutoutTop,
  &-gray--cutoutBottom {
    &::before {
	  content: '';
	  background-color: $white-color;
	  height: 6.25rem;
	  position: absolute;
	  
	  right: 0;
	  width: 8vw;
	}
	
	@media only screen and (max-width: $small) {
	  &::before {
	    display: none;
	  }
	}
  }
  
  &-gray--cutoutTop::before {
    top: 0;
  }
  
  &-gray--cutoutBottom::before {
    bottom: 0;
  }  
  
  &-rounding {
    position: relative;
	
	&::before {
	  content: '';
	  background-image: url(../images/ui/section-edge.svg);
	  background-size: cover;
      background-repeat: no-repeat;
      background-position: center bottom;
	  display: block;
	  padding-bottom: 8%;
	  position: absolute;
	  bottom: -2px;
	  width: 100%;
	  z-index: 10;
	}
	
	@media only screen and (max-width: $small) {
	  &::before {
	    display: none;
	  }
	}
  }
}

.mr-s-2 {
  @media only screen and (max-width: $small) {
    margin-bottom: .5rem;
  }
}

.height-md-auto {
  @media only screen and (max-width: $medium) {
    height: auto;
  }
}

.col__left {
  @media only screen and (max-width: $small) {
    padding-right: 7.5px;
  }
}

.col__right {
  @media only screen and (max-width: $small) {
    padding-left: 7.5px;
  }
}

.col-fullwidth {
  @include display(flex);
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  width: 100vw;
  
  @media only screen and (max-width: $small) {
    margin-left: 0;
    margin-right: 0;
  }
}

.gutter-sizer {
  width: 8%;
  
  @media only screen and (max-width: $large-xl) {
    width: 4%;
  }
}

/* Shadow */
.b-shadow {
  position: relative;
  
  &::before {
    content: '';
	box-shadow: 0px 24px 64px rgba($gray-200-color,.15), 0px 0px 8px rgba($gray-200-color,.15);
	height: 5%;
	margin: auto;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	width: 80%;
  }
}

/* Overlay */
.overlay {
  position: relative;
  
  &::before, 
  &::after {
    content: '';
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	width: 100%;
	//z-index: 1;
  }
  
  &::before {
    background-color: rgba(#2A2B30, .3);
  }
  
  &::after {
    background: linear-gradient(180deg, rgba(42, 43, 48, .3) 0%, rgba(42, 43, 48, 0) 11.78%);
  }
  
  &-popup {
    background-color: rgba(#2A2B30, .3);
	display: none;
    @include position(fixed, $top: 0, $left: 0);
    height: 100%;
	width: 100%;
	z-index: 10;
  }
  
  .overlay-visible &-popup {
    display: block;
  }
}

/* Filter */
@media only screen and (min-width: 769px) {
  .filter {
    display: inline-flex;
    flex-wrap: wrap;
    list-style: none;
	margin-top: 1rem;
	margin-bottom: 0;
    padding: 0;
  
    &__item {
      padding-right: 2rem;

	  &:last-child {
	    padding-right: 0;
	  }
	  
	  &.active a {
	    color: $base-color;
	  }
    }
  
    &__link {
	  color: $black-color;
	  font-weight: $weight-500;
      padding: 0 4px;
      text-decoration: none;
	  display: block;
	  overflow: hidden;
	  position: relative;
	  
	  &:hover {
	    text-decoration: none;
	  }
    }
  }
}

@media only screen and (min-width: $large) {
  .filter {
    margin-top: 1.5rem;
	margin-bottom: 1rem;
  }
}

.select .placeholder {
  display: none;
}

@media only screen and (max-width: $medium) {
  .select {
    background-color: $gray-100-color;
	border-radius: 6px;
    color: $gray-300-color;
    @include display(flex);
    @include align-items(center);
	justify-content: space-between;
    margin-top: 1rem;
    line-height: 1;
    height: 48px;
    padding: 0 1.125rem;
	position: relative;
    user-select: none;
	width: 100%;
    -webkit-touch-callout: none;
    z-index: 2;
  
    .placeholder {
	  cursor: pointer;
	  display: block;
	  padding: .5rem 0;
      position: relative;
	  width: 100%;
      z-index: 1;

      &:after {
        position: absolute;
        right: 2px;
        top: 50%;
        transform: translateY(-50%);
        font-family: 'icomoon';
        content: '\e92e';
        z-index: 10;
      }
    }

    &.is-open {
      .placeholder:after{
        content: '\e931';
      }
      ul {
        display: block;
      }
    }

    ul {
	  background-color: $white-color;
	  box-shadow: 0 10px 60px rgba($gray-300-color,.25);
	  border-radius: 6px; 
      display: none;
	  max-height: 600px;
	  overflow: hidden;
      overflow-y: auto;
      padding: .6rem 0;
      position: absolute;
      top: 100%;
      left: 0;
      width: 100%;
	  z-index: 100;
	   
      li {
        display: block;
        text-align: left;
        padding: .8rem 1.125rem;
        color: $black-color;
        cursor: pointer;

        &:hover {
          background-color: rgba($gray-100-color,.6);
        }
		
		&:hover a {
		  color: $black-color;
		}
	  
	    a {
		  color: $black-color;
	      text-decoration: none;
	    }
      }
    }
  }
}

@media only screen and (max-width: $small) {
  .select {
    margin-top: .5rem;
  }
}

/* -----------------------------------------------------------------
    - About Us (Homepage)
----------------------------------------------------------------- */

.about-image-wrap {
  position: relative;
  
  @media only screen and (max-width: $medium) {
    margin-bottom: 0;
  }
}

.about-image-portrait {
  height: 680px;
  margin-top: 2rem;
  
  @media only screen and (max-width: $large) {
    height: 780px;
    margin-top: 1.5rem;
  }
  
  @media only screen and (max-width: $medium) {
    height: 680px;
  }
  
  @media only screen and (max-width: $small) {
    height: 400px;
    margin-top: .2rem;
  }
}

.about-image-landscape {
  height: 400px;
  margin-top: 2rem;
  
  @media only screen and (max-width: $large) {
    height: 500px;
    margin-top: 1.5rem;
  }
  
  @media only screen and (max-width: $medium) {
    height: 400px;
  }
  
  @media only screen and (max-width: $small) {
    height: 240px;
    margin-top: 1rem;
  }  
}

.about-link {
  background-color: $white-color;
  color: $black-color;
  font-size: 1.125rem;
  @include display(flex);
  @include align-items(center);
  padding: 2.2rem 2.5rem;
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 1;
  
  @media only screen and (max-width: $medium) {
    font-size: 1rem;
	padding: 1.5rem 2rem;
  }
  
  @media only screen and (max-width: $small) {
    font-size: .875rem;
	padding: 1rem 1.5rem;
  }
  
  i {
    font-size: 1.8rem;
	margin-left: 1rem;
	position: relative;
	right: 0;
	transition: all .3s ease-in-out;
	
	@media only screen and (max-width: $medium) {
	  font-size: 1.6rem;
	}
  }
  
  &:hover i {
	position: relative;
	right: -6px;
  }  
}

.offset-top {
  margin-top: 5.4%;
  
  @media only screen and (max-width: $large) {
    margin-top: 0;
  }
}

/* Three grid images */
.gallery-three {
  justify-content: center;
  overflow: hidden;
  
  &__left {
    width: 25%;
	margin-bottom: 0;
  }
  
  &__right {
    width: 25%;
	margin-bottom: 0;
  }

  &__center {
    width: 100%;
    flex: 0 0 100%;
	padding-left: 15px;
    padding-right: 15px;
    margin-bottom: 0;
	
	@media (min-width: $small) {
      max-width: 540px;
	  padding-left: 15px;
      padding-right: 15px;
	  margin-left: 4%;
      margin-right: 4%;
    }

	@media (min-width: $medium) {
      max-width: 720px;
    }

	@media (min-width: $large) {
      max-width: 960px;
    }

    @media (min-width: $large-xl) {
      max-width: 1140px;
    }

	@media (min-width: $large-xxl) {
      max-width: 1240px;
    }
  }  
}


/* -----------------------------------------------------------------
    - Rooms (Homepage)
----------------------------------------------------------------- */

.header-btn-more {
  margin-bottom: 3.2rem;
  
  @media only screen and (max-width: $large) {
    margin-bottom: 2.2rem;
  }
  
  @media only screen and (max-width: $small) {
    margin-bottom: 1rem;
  }
}

/* -----------------------------------------------------------------
    - Achivments (Homepage)
----------------------------------------------------------------- */

.ach-box {
  margin-bottom: 3rem;
  
  @media only screen and (max-width: $small) {
    box-shadow: 0 6px 20px 0px rgba($black-color,.05);
    border-radius: 6px;
    padding: 1rem;
	margin-top: 15px;
    margin-bottom: 0;
  }
  
  .title--overhead {
    @media only screen and (max-width: $small) {
      margin-bottom: .1rem;
	}
  }
}

.item-count {
  font-family: $font-title;
  font-size: 6rem;
  font-weight: $weight-600;
  line-height: .85;
  
  @media only screen and (max-width: $large-xl) {
    font-size: 4.8rem;
  }
  
  @media only screen and (max-width: $large) {
    font-size: 3.8rem;
  }
  
  @media only screen and (max-width: $small) {
    font-size: 2.5rem;
  }
}


/* -----------------------------------------------------------------
    - Testimonials (Homepage)
----------------------------------------------------------------- */

.section-testimonials {
  padding: 8rem 0;
  
  @media only screen and (max-width: $small) {
	padding: 3.5rem 0;
  }
}

.testimonials-item {
  background-color: $white-color;
  border-radius: 6px;
  box-shadow: 0px 24px 64px rgba($gray-200-color, 0.06);
  @include display(flex);
  @include flex-direction(column);
  justify-content: space-between;
  height: auto;
  padding: 2rem;
  
  @media only screen and (max-width: $small) {
    padding: 1rem;
  }
  
  &__caption {
    font-family: $font-title;
	font-size: 1.125rem;
	line-height: 1.8;
	flex-grow: 1;
	
	@media only screen and (max-width: $large) {
	  font-size: 1rem;
	}
	
	@media only screen and (max-width: $small) {
	  line-height: 1.6;
	}
  }
}

.testimonials-item--v2 {
  border: 1px solid rgba($gray-200-color,.2);
  box-shadow: none;
  margin-bottom: 1.5rem;
  padding: 1.6rem 2rem;
  
  @media only screen and (max-width: $small) {
    margin-bottom: 15px;
    padding: 1.2rem 15px;
  }
  
  .testimonials-item__caption {
    font-family: $font-body;
	font-size: 1rem;
  }
  
  .author-wrap {
    margin-top: .2rem;
	
	@media only screen and (max-width: $small) {
	  margin-top: 0;
	}
  }	
}

.author {
  &-wrap {
    @include display(flex);
    @include align-items(center);
	margin-top: .8rem;
	
	@media only screen and (max-width: $large) {
	  margin-top: 0;
	}
  }
  
  &-picture {
    $size: 3.25rem;
	border-radius: 50%;
    height: $size;
	margin-right: 1.4rem;
    overflow: hidden;
    width: $size;
	
	@media only screen and (max-width: $small) {
	  height: calc(#{$size} / 1.3);
	  margin-right: 1rem;
      width: calc(#{$size} / 1.3);
	}
  }
  
  &-name {
    font-weight: $weight-500;
  }
  
  &-country {
    color: $gray-200-color;
	font-size: .875rem;
	
	@media only screen and (max-width: $small) {
	  line-height: 1;
	}
  }
}

// Pagination
.swiper-container-horizontal .swiper-pagination-bullets {
  line-height: 1;
  margin-top: 2.8rem;
  position: relative;
  bottom: 0;
  
  @media only screen and (max-width: $small) {
    margin-top: 1.6rem;
  }
}

.swiper-pagination-bullet {
  $size: 12px;
  width: $size;
  height: $size;
  margin: 0 10px!important;
  background: $gray-200-color;
  border-radius: 6px;
  opacity: .3;
  outline: none;
  transition: opacity .3s, background .3s, width .1s;
  transition-delay: .3s, .3s, 0s;
  
  @media only screen and (max-width: $small) {
    width: calc(#{$size} / 1.5);
    height: calc(#{$size} / 1.5);
	margin: 0 6px!important;
  }
  
  &-active {
    background: $base-color;
	width: calc(#{$size} * 2);
	opacity: 1;
	transition-delay: 0s;
	
	@media only screen and (max-width: $small) {
	  width: calc(#{$size} / 1.5 * 2);
	}
  }
}


/* -----------------------------------------------------------------
    - Video section
----------------------------------------------------------------- */

.video-container {
  height: 50vw;
  max-height: 800px;
  position: relative;
  
  @media only screen and (max-width: $large-xl) {
    height: 60vw;
  }
  
  @media only screen and (max-width: $small) {
	height: 240px;
  }
  
  .video__btn {
    background-color: $white-color;
	background-image: url(../icons/icon-play.svg);
    background-size: 14%;
    background-position: center;
    box-shadow: 0 0 0 0px $white-color;
    border: 0;
    border-radius: 50%;
    height: 8rem;
    margin: 0;
	@include position(absolute, $top: 50%, $left: 50%);
    width: 8rem;
    opacity: 1;
    transform: translate(-50%, -50%);
    transition: all .3s ease-in-out;
    z-index: 2;
	
    @media only screen and (max-width: $large) {
      height: 5rem;
	  letter-spacing: .2rem;
	  width: 5rem;
    }
  
    @media only screen and (max-width: $small) {
      height: 3.75rem;
	  letter-spacing: .2rem;
	  width: 3.75rem;
    }

    &:hover {
      background-color: $white-color;
      box-shadow: 0 0 0 10px $white-color;
      cursor: pointer;
    }

    &:focus {
	  outline: 0;
	}	
  }
  
  .video__poster {
    @include position(absolute, $top: 0, $left: 0);
    width: 100%;
    height: 100%;
    z-index: 1;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
    visibility: visible;
    transition: .3s ease-in-out;
    transition-duration: 0.5s;
	
	&::before {
	  content: '';
	  background: rgba($black-color,.2);
	  height: 100%;
	  @include position(absolute, $top: 0, $left: 0);
	  transition: .3s ease-in-out;
	  width: 100%;
	  z-index: 1;
	}
	
	&:hover::before {
	  background: rgba($black-color,.0);
	}
  }
  
  .video-note {
    background-color: $white-color;
	padding: 2.5rem 5rem 2.5rem 2.5rem;
	@include position(absolute, $bottom: 0, $right: 0);
	z-index: 1;
	
	@media only screen and (max-width: $large-xl) {
	  padding: 1.5rem 3rem 1.5rem 2rem;
    }
	
	@media only screen and (max-width: $large-xl) {
	  display: none;
	}
  }
}

.js-video.is-active .video__poster {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
} 

.video-content {
  height: 600px;
  margin-top: 2rem;
  margin-bottom: 3.2rem;
  
  @media only screen and (max-width: $large-xxl) {
    height: 560px;
  }
  
  @media only screen and (max-width: $large-xl) {
    height: 480px;
  }
  
  @media only screen and (max-width: $large) {
    height: 420px;
	margin-top: 1.5rem;
    margin-bottom: 2.5rem;
  }
  
  @media only screen and (max-width: $medium) {
    height: 340px;
  }
  
  @media only screen and (max-width: $small) {
    border-radius: 6px;
    height: 200px;
	margin-top: .7rem;
    margin-bottom: 2rem;
	overflow: hidden;
	-webkit-mask-image: -webkit-radial-gradient(white, black);
  }
}

/* -----------------------------------------------------------------
    - CTA (Homepage)
----------------------------------------------------------------- */

.cta-box {
  @include display(flex);
  @include align-items(center);
  background-color: $base-color;
  border-radius: 6px;
  color: $white-color;
  padding: 5rem;
  margin-left: 0;
  margin-right: 0;
  
  @media only screen and (max-width: $large-xxl) {
    padding: 3.8rem;
  }
  
  @media only screen and (max-width: $large-xl) {
    padding: 3.5rem;
  }
  
  @media only screen and (max-width: $large) {
    padding: 2.5rem 2rem;
  }
  
  @media only screen and (max-width: $medium) {
    padding: 2rem 1.5rem;
  }
  
  @media only screen and (max-width: $small) {
    padding: 1.1rem 0 1rem;
	margin-bottom: 1rem;
  } 
  
  .paragraph {
    color: $white-color;
    margin-bottom: 0;
  }
  
  .btn {
    @media only screen and (max-width: $large) {
	  margin-top: 2rem;
	}
	
    @media only screen and (max-width: $medium) {
	  margin-top: 1.5rem;
	}	
	
	@media only screen and (max-width: $small) {
	  margin-top: 1rem;
	  width: 100%;
	}
  }
}

.cta-negative {
  margin-top: -8rem;
  position: relative;
  z-index: 1;
  
  @media only screen and (max-width: $small) {
    margin-top: -5.5rem;
  }
}

// CTA Simply
.cta-simply {
  justify-content: center;
  padding-bottom: 2rem;
  text-align: center;
  
  @media only screen and (max-width: $large) {
    padding-bottom: 0;
  }
  
  @media only screen and (max-width: $small) {
    padding-bottom: 1.5rem;
  }
  
  .btn {
    margin-top: 1rem;
	
	@media only screen and (max-width: $small) {
	  margin-top: 0;
	}
  }
}


/* -----------------------------------------------------------------
    - Swiper
----------------------------------------------------------------- */

.swiper-control {
  &-center {
    margin-left: auto;
	margin-right: auto;
	height: 100%;
    @include position(absolute, $left: -1px, $right: 0);
	z-index: 1;
	
    @media only screen and (min-width: $small) {
      max-width: 510px;
    }

    @media only screen and (min-width: $medium) {
      max-width: 690px;
    }

    @media only screen and (min-width: $large) {
      max-width: 930px;
    }

    @media only screen and (min-width: $large-xl) {
      max-width: 1110px;
    }
	
    @media only screen and (min-width: $large-xxl) {
      max-width: 1210px;
    }
  }

  &--bottom {
    background-color: $white-color;
    height: 8.75rem;
    margin: 0;
    @include position(absolute, $left: 0, $bottom: 0);
    width: 4.375rem;
	z-index: 1;
	
	@media only screen and (max-width: $medium) {
	  height: 6rem;
	  width: 3rem;
	}
  }
  
  .slash::before {
    height: 30px;
    left: 0;
    right: 0;
	transform: rotate(60deg);
	
	@media only screen and (max-width: $medium) {
	  height: 20px;
	}
  }
  
  &:hover .slash::before {
    display: none;
  }
}

.swiper-button-square {
  background-image: none;
  color: $black-color;
  @include display(flex);
  @include align-items(center);
  justify-content: center;
  font-size: 1.2rem;
  height: 4.375rem;
  margin: 0;
  overflow: hidden;
  @include position(relative, $top: 0, $left: 0);
  transition: background .3s cubic-bezier(0.2,1,0.8,1);
  width: 4.375rem;
	  
  @media only screen and (max-width: $medium) {
    height: 3rem;
	width: 3rem;
  }
	  
  &:hover {
    background-color: $gray-100-color;
  }
  
  &:focus {
    outline: none;
  }
  
  &::after {
    display: none;
  }
}
