/* Masonry */
.thb-masonry {
	>.columns {
		width: 100%;
	}
}
/* General Carousel */
.thb-carousel {
	opacity: 0;
	max-height: 300px;
	overflow: hidden;
	@include transition(opacity .25s linear);

	&.slick-initialized {
		max-height: 100%;
		opacity: 1;
		overflow: visible;
	}
}
/* Share Icons */
.thb-share-icons {
	h6 {
		font-size: 12px;
		color: $black;
		font-weight: 600;
		margin-bottom: 45px;
	}
	.boxed-icon {
		background: transparent;
	}

	ul {
		margin: 0;
		padding: 0;
		list-style: none;

		li {
			display: inline-block;
		}
	}
	&.thb-center {
		text-align: center;
		ul li {
				margin: 0 2px;
		}
	}
	&.thb-left {
		text-align: left;

		ul li {
			margin: 0 4px 0 0;
		}
	}
	&.thb-right {
		text-align: right;

		ul li {
			margin: 0 0 0 4px;
		}
	}
	&.style2 {
    font-size: 18px;
    a {
      display: block;
      min-width: 18px;
      text-align: center;
    }

    .fa.fa-facebook {
      @include scale(0.9);
    }
  }
}
/* Image */
.thb_image {
	display: inline-block;
	&.retina_size {
		visibility: hidden;
		&.retina_active {
			visibility: visible;
		}
	}

}
/* Image Links */
.thb_image_link {
	display: inline-block;
	img {
		display: block;
		transform-origin: center;
		@include transition(opacity .25s $transition);
		@extend .general-shadow-styles;
	}

	&>a {
		display: block;
		overflow: hidden;

		&:hover {
			img {
				opacity: 0.9;
			}
		}
	}
	&.full {
		width: 100%;

		img {
			width: 100%;
		}
	}
	&.caption-style2 {
		padding-left: 40px;
		position: relative;
		.wp-caption-text {
			position: absolute;
			top: -15px;
			left: auto;
			right: calc(100% - 20px);
			width: auto;
			bottom: auto;
			white-space: nowrap;
			transform-origin: right bottom;
			@include rotateZ(-90deg);
			background: transparent;
			padding: 0;
			text-transform: uppercase;
			font-size: 12px;
			color: rgba(#000,0.4);
		}
	}
	.thb-image-content {
		margin-top: 30px;
	}
	&.aligncenter {
		display: block;
		img {
			margin: 0 auto;
			display: block;
		}
	}
	&.alignright {
    .thb-image-inner {
  	  float: right;
  	  text-align: right;

    	img {
        margin-left: auto;
      }
    }
  }

  .thb-image-inner {
		display: block;
		width: 100%;
		position: relative;
		img {
			max-width: 100%;
		}
		&.size_125 {
			width: 125%;
		}
		&.size_150 {
			width: 150%;
		}
		&.size_175 {
			width: 175%;
		}
		&.size_200 {
			width: 200%;
		}
		&.size_225 {
			width: 225%;
		}
		&.size_250 {
			width: 250%;
		}
		&.size_275 {
			width: 275%;
			img {
				width: 100%;
			}
		}
		.thb-portfolio-video {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
      @extend .quick-transition;

      video {
        height: 100% !important;
      }
    }
  } //.thb-image-inner
  &:hover {
    .thb-portfolio-video {
    	opacity: 1;
    }
  }
}

/* Menu Item */
.thb-menu-item {
	margin-bottom: 40px;
	.thb-menu-item-parent {
		display: flex;
		line-height: 1;
		margin-bottom: 15px;
		.thb-menu-title {
			padding-right: 10px;
			h6 {
				color: $black;
				font-size: 14px;
				font-weight: 600;
				margin: 0;
				line-height: 1;
			}
		}
		.thb-menu-line {
			display: flex;
			flex: 1;
			border-bottom: 1px dotted $black;
		}
		.thb-menu-price {
			color: $black;
			font-size: 14px;
			font-weight: 600;
			padding-left: 10px;
		}
	}
	.thb-menu-description {
		font-size: 16px;
		color: $black;
	}
}


/* Search Field */
.thb-searchfield {
	max-width: 100%;
	.s {
		line-height: 1;
		width: 100%;

	}
	.submit {
		display: block;
		position: absolute;
		top: 14px;
    right: 15px;
	}
	&.border_radius {
		.s {
			border-radius: 500px;
		}
		.submit {
			right: 15px;
		}
	}
	&.medium {
		.s {
			height: auto;
			font-size: 16px;
			padding: 18px 34px;
		}
		.submit {
			top: 21px;
			right: 25px;
		}
	}
	&.large {
		.s {
			height: auto;
			font-size: 18px;
			padding: 22px 40px;
		}
		.submit {
			top: 27px;
			right: 35px;
		}
	}
}


/* Progress Bar */
.thb-progressbar {
	display: block;
	width: 100%;
	margin-bottom: 35px;
	opacity: 0;
	.thb-progress-title {
		display: flex;
		justify-content: space-between;
		font-size: 20px;
		color: $black;
		line-height: 1;
		margin-bottom: 20px;
		position: relative;
		font-weight: 500;
	}
	.thb-progress {
		display: block;
		width: 100%;
		height: 6px;
		position: relative;
		background: rgba($black,0.07);
		span {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			height: 100%;
			width: 100%;
			background: $accent;
			transform-origin: 0 0;
			@include scale(0,1);
		}
	}
}

/* Cascading Image */
.thb_cascading_images {
	position: relative;
	.cascading_image {
		display: block;
		width: 100%;

		&:not(:first-child) {
			position: absolute;
			top: 50%;
			left: 50%;
			@include translate3d(-50%, -50%, 0)
		}
		img {
			display: block;
			margin: 0 auto;
			@include backface-visibility(hidden);
			@include translateZ(0);
		}
		.thb_box_shadow {
			@include box-shadow(0 4px 25px rgba(#000,0.2));
		}
	}
}

/* Image Slider */
.thb-image-slider {
	.slick-slide {
		display: flex;
		justify-content: center;
		align-items: center;

		a.thb-full-link {
			display: block;
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
		}
		&:not(.slick-active) {
			a {
				pointer-events: none;
			}
		}
	}
	&.thb_equal_height {
    .slick-track {
      display: flex;
      align-items: normal;
      .slick-slide {
        align-items: normal;
        height: auto;
        img {
          height: 100%;
          width: 100%;
          object-fit: cover;
        }
      }
    }
  }
  &.thb_center:not(.thb_equal_height) {
    .slick-track {
      display: flex;
      align-items: center;
    }
  }
}

/* VC Gallery */
.wpb_gallery {
	.row {
		.columns {
			width: 100%;
			overflow: hidden;
		}
		@extend .thb-padding-sizes;
	}
	a {
		display: block;
	}
	img {
		width: 100%;
		@include transition(opacity .25s $transition);
	}
	.thb-overlay-caption {
		&:hover {
			img {
				opacity: 0.6;
			}
		}
	}
}
.thb-overlay-caption {
	position: relative;
	background: $black;
	figcaption {
		display: block;
		background: rgba($black, 0.4);
		position: absolute;
		top: 15px;
		left: 15px;
		z-index: 5;
		color: #fff;
		line-height: 1;
		text-transform: uppercase;
		font-weight: 600;
		font-size: 12px;
		padding: 13px 20px;
		@include min-break($break-small) {
			top: 40px;
			left: 40px;
		}
	}
}
/* Animation */
.perspective-wrap {
	@include perspective(3000px);
}
.animation {
	will-change: opacity, transform;
	opacity: 0;
	@include animation(none);

	&.bottom-to-top {
		@include animation(none);
		@include translateY(30px);
	}
	&.top-to-bottom {
		@include animation(none);
		@include translateY(-30px);
	}
	&.left-to-right {
		@include animation(none);
		@include translateX(-30px);
	}
	&.right-to-left {
		@include animation(none);
		@include translateX(30px);
	}
	&.left-to-right-3d {
		@include animation(none);
		transform-origin: 100% 100%;
		transform-style: preserve-3d;
		@include transform(rotateX(-25deg) rotateY(-15deg) translate3d(-60px,-10px,0));
	}
	&.right-to-left-3d {
		@include animation(none);
		transform-origin: 0% 100%;
		transform-style: preserve-3d;
		@include transform(rotateX(-25deg) rotateY(15deg) translate3d(60px,-10px,0));
	}
	&.bottom-to-top-3d {
		@include animation(none);
		transform-style: preserve-3d;
		@include transform(rotateX(-45deg) translateY(120px));
	}
	&.bottom-to-top-3d-small {
		@include animation(none);
		transform-style: preserve-3d;
		@include transform(rotateX(-45deg) translateY(60px));
	}
	&.top-to-bottom-3d {
		@include animation(none);
		transform-style: preserve-3d;
		@include transform(rotateX(45deg) translateY(-120px));
	}
	&.top-to-bottom-3d-small {
		@include animation(none);
		transform-style: preserve-3d;
		@include transform(rotateX(45deg) translateY(-60px));
	}
	&.scale {
		@include animation(none);
		@include scale(0.8);
	}
	.vc_editor & {
		opacity: 1;
		@include transform(none);
	}
}
/* VC Masonry Grid */
.vc_gitem-zone {
	.mfp-image {
		position: absolute;
		display: block;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}
/* VC Space */
.vc_empty_space {
	clear: both;
}
/* Image Links */
.image_link {
	display: inline-block;

	&.full {
		width: 100%;
	}
}

/* Tables */
table tbody th, table tbody td {
	text-align: inherit;
	color: $black;
}
/* Content Carousel */
.thb-content-carousel {

	&.regular-padding {
		.slick-slide {
			margin-right: 10px;
			margin-left: 10px;

			@include min-break($break-small) {
				margin-right: 15px;
				margin-left: 15px;
			}
			@include min-break($break-medium) {
				margin-right: 20px;
				margin-left: 20px;
			}
		}
	}
	&.mini-padding {
		margin: 0 -5px;
		.slick-slide {
			margin-right: 5px;
			margin-left: 5px;
		}
	}
	&.pixel-padding {
		margin: 0 -1px;
		.slick-slide {
			margin-right: 1px;
			margin-left: 1px;
		}
	}
	&.no-padding {
		margin: 0;
		.slick-slide {
			margin-left: 0;
			margin-right: 0;
		}
	}
}
/* Contact Map */
.contact_map_parent {
	position: relative;
	overflow: hidden;

	&.map_left {
		.expand {
			right: auto;
			left: 20px;
		}
		.contact_map {
			right: auto;
			left: 0;
		}
	}
}

.contact_map,
.thb_office_location {
	h3 {
		font-size: 16px;
		margin-bottom: 5px;
	}
	&.disabled {
		display: flex;
		justify-content: center;
		align-items: center;
	}
}
.contact_map {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	z-index: 10;
}

.expand {
	width: 46px;
	height: 46px;
	position: absolute;
	top: 20px;
	right: 20px;
	z-index: 99;
	display: none;
	justify-content: center;
	align-items: center;
	background: rgba($black, 0.6);
	@extend .quick-transition;
	@include min-break($break-medium) {
		display: flex;
	}
	svg {
		width: 20px;
		height: 20px;
		g {
			stroke: #fff;
			stroke-width: 4;
		}
	}

	&:hover {
		background: $black;
	}
}
.thb_pin {
	@include translateY(-50%);
	.pin-wrap {
		display: block;
		position: absolute;
	}
	.shadow {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		height: 0;
		@include rotateX(55);
		&:after {
			content: '';
			position: absolute;
			left: -200px;
			top: calc(100% - 5px);
			display: block;
			width: 40px;
			height: 20px;
			border-radius: 50%;
			box-shadow: 200px 0 20px rgba(0,0,0,0.4);
			@include rotateX(55deg);
		}
	}
	.pulse {
		display: block;
		position: absolute;
		top: 100%;
		left: 0;
		width: 100%;
		height: 0;
		@include rotateX(65);
		&:after {
			content: '';
	    display: block;
	    position: absolute;
	    top: -2px;
	    left: 0;
	    width: 40px;
	    height: 20px;
	    animation: thb-pulsate 1s ease-out;
	    animation-delay: 1.1s;
	    animation-iteration-count: infinite;
	    opacity: 0;
	    border-radius: 50%;
	    box-shadow: 0 0 1px 2px rgba($black, 0.4), 0 0 6px 3px rgba($black, 0.6);
		}
	}
}
@keyframes thb-pulsate {
	0% {
    transform: scale(.1, .1);
    opacity: 0;
	}
	50% {
    opacity: 1;
	}
	100% {
    transform: scale(1.2, 1.2);
    opacity: 0;
	}
}

/* Label */
.thb-label {
	display: inline-block;
	padding: 13px 15px;
	line-height: 1;
	>* {
		margin: 0;
		line-height: 1;
	}
}
/* Typed */
.thb-autotype {
	.thb-autotype-entry {
		display: inline;
		color: $accent;
		will-change: contents;
	}
	.typed-cursor {
		font-weight: 400;
		display: inline-block;
	  @include animation(blink 0.7s infinite);
	}
	@keyframes blink{
	    0% { opacity:1; }
	    50% { opacity:0; }
	    100% { opacity:1; }
	}
	@-webkit-keyframes blink{
	    0% { opacity:1; }
	    50% { opacity:0; }
	    100% { opacity:1; }
	}
	@-moz-keyframes blink{
	    0% { opacity:1; }
	    50% { opacity:0; }
	    100% { opacity:1; }
	}
}
/* Fade Type */
.thb-fadetype {
	visibility: hidden;
	perspective: 2000px;
	.thb-fadetype-entry {
		display: inline-block;
		will-change: contents;
		div {
			transform-origin: 0 100%;
			transform-style: preserve-3d;
			will-change: opacity;
		}
	}
}
/* Gradient Type */
.thb-gradienttype {
	& * {
		-moz-background-clip: text !important;
    -o-background-clip: text !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;

    -moz-text-fill-color: transparent !important;
    -o-text-fill-color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    text-fill-color: transparent !important;
	}
}
/* Slide Type */
.thb-slidetype {
	visibility: hidden;
	.thb-slidetype-entry {
		display: block;
		will-change: contents;
		overflow: hidden;
		.lines {
			display: block;
		}
	}
}
/* Stroke Type */
.thb-stroketype {
	* {
	  color: $black;
	  @include text-fill-color(transparent);
	  @include text-stroke-width(1px);
	  @include text-stroke-color($black);
	}
}
/* Video Lightbox */
.thb-video-lightbox {
	position: relative;
	overflow: hidden;

	@extend .general-shadow-styles;

	&.inline {
		svg {
			width: 36px;
			height: 36px;
		}
	}
	&.large {
		svg {
			width: 96px;
			height: 96px;
		}
	}
	&.xlarge {
		svg {
			width: 128px;
			height: 128px;
		}
	}
	&.lightbox-style1 {
		display: inline-block;
		line-height: 0;
	}
	&.lightbox-style2 {
		svg {
			position: absolute;
			top: 50%;
			left: 50%;
			z-index: 5;
			@include translate3d(-50%, -50%, 0);
		}
	}
	&.lightbox-style3 {
		svg {
			display: inline-block;
			vertical-align: middle;
		}

		.thb-video-text {
			display: inline-block;
			vertical-align: middle;
			margin-left: 25px;
			font-size: 16px;
			font-weight: 600;
		}
	}
	&.hover-style1 {
		img {
			will-change:scale;
			@extend .transition;
		}
		&:hover {
			img {
				@include scale(1.05);
			}
		}
	}
	&.hover-style2 {
		background: $black;
		img {
			will-change: opacity;
			@extend .transition;
		}
		&:hover {
			img {
				opacity: 0.9;
			}
		}
	}

	.thb-video-link {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 10;
	}
	svg {
		@include backface-visibility(hidden);
		@include translateZ(0);
		.back,
		.front {
			will-change: transform;
			@extend .mid-transition;
		}
		.back {
			@include translateX(-100%);
		}
		.pause {
			display: none;
		}
		&.thb-play-02 {

			.circle1 {
				fill: none;
				stroke-width: 2;
				stroke-miterlimit: 10;
				opacity: 0.5;
				stroke: #000;
			}
			.circle2 {
				fill: none;
		    stroke-width: 2;
		    stroke-miterlimit: 10;
		    opacity: 1;
		    stroke-dasharray: 239;
		    stroke-dashoffset: 239;
		    stroke: #000;
		    @extend .transition;
			}
		}
	}
	&:hover {
		.back {
			@include translateX(0%);
		}
		.front {
			@include translateX(100%);
		}
		svg.thb-play-02 .circle2 {
			stroke-dashoffset: 0;
		}
	}
}

/* Password Protection */
.password-protected {
	padding: 20vh 0;
	display: flex;
	justify-content: center;
	align-items: center;

	svg {
		display: inline-block;
		width: 60px;
		max-width: 100%;
		margin-bottom: 30px;
	}
	h3 {
		margin-bottom: 5px;
	}
	.password-form {
		text-align: center;
	}
	.btn {
		margin-left: 15px;
	}
	p {
		margin-bottom: 30px;
	}
}

/* VC Video Element */
.wpb_video_widget .wpb_video_wrapper {
	.responsive-embed, .flex-video {
		height: auto;
		padding-bottom: 0;
		margin: 0;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
	}
	.plyr {
		position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
	}
}

/* Freescroll */
.thb-freescroll {
	.columns {
		width: 100%;

		img {
			@extend .general-shadow-styles;
		}
	}
	&.instagram-row {
		figure {
			margin-bottom: 35px;
		}
		figcaption {
			font-size: 14px;
		}
	}
	.thb-lightbox-link {
    display: block;
  }

  .text-content {
		white-space: nowrap;
	}
	@extend .thb-padding-sizes;
}

/* Twitter Element */
.thb_twitter_container {
	p {
		margin-bottom: 5px;

		a {
			font-weight: 500;
		}
	}
	.thb_tweet_time {
		font-size: 11px;
		text-transform: uppercase;
		color: map_get($social, 'twitter');
	}
	&.style2 {
		.thb_tweet {
			margin-bottom: 10px;
		}
	}
	&.style1 {
		.thb_tweet {
			margin-bottom: 25px;
		}
	}
}
/* VC Image Carousel */
.vc_carousel-indicators {
	li {
		&:before {
			display: none;
		}
	}
}
/* Text Element Links */
.text-underline-style {
	display: inline-block;
	position: relative;
	&:after {
		content: '';
		position: absolute;
		top: 90%;
		left: 0;
		width: 100%;
		border-bottom: 2px solid $accent;
	}
	picture {
		+ :after {
			display: none;
		}
	}
	&:hover {
		opacity: 0.9;
	}
}
.wpb_text_column {
	p a,
	ul a,
	ol a {
		text-decoration: underline;
	}

	ul,
	ol {
    margin-left: 20px;

    li {
      margin-bottom: 5px;
    }
  }
}

/* Cascading Image */
.thb_cascading_images {
	position: relative;
	.cascading_image {
		display: block;
		width: 100%;

		&:not(:first-child) {
			position: absolute;
			top: 50%;
			left: 50%;
			@include translate3d(-50%, -50%, 0)
		}
		img {
			display: block;
			@include backface-visibility(hidden);
			@include translateZ(0);
		}
		.thb_box_shadow {
			@include box-shadow(0 10px 75px rgba(0,0,0,0.14), 0 5px 45px -10px rgba(0,0,0,0.14));
		}
	}
}

/* Right Click Content */
#right_click_content {
	display: none;
	position: fixed;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	left: 0;
	top: 0;
	z-index: 1001;
	opacity: 0;
	background: rgba(#fff, 0.95);
	@include user-select(none);
	.row {
    min-width: 100%;
  }

  .columns {
		>*:last-child {
			margin: 0;
		}
	}
}

/* Coundown */
.thb-countdown {
	.thb-countdown-ul {
		display: flex;
		flex-direction: column;
		justify-content: space-between;
		@include min-break($break-small) {
			flex-direction: row;
		}
		li {
			display: flex;
			flex-direction: column;
			text-align: center;
			padding: 0 15px;
			margin-bottom: 30px;
			font-feature-settings: "tnum";
	    font-variant-numeric: tabular-nums;
			.timestamp {
				font-weight: 500;
				will-change: contents;

				@extend .h1;

				@include min-break($break-medium) {
					font-size: 90px;
				}
				@include min-break($break-large) {
					font-size: 120px;
				}
			}
			.timelabel {
				font-weight: 500;
				font-size: 16px;
				text-transform: capitalize;
			}
		}

	}
}
/* Locations */
.thb_location_container.row {
	margin-bottom: 8vh;
	.slick-track {
		min-width: 100%;
	}
	.thb_location {
		width: 100%;
		padding: 15px;
		cursor: pointer;
		@include min-break($break-small) {
			padding: 45px;
		}
		@extend .quick-transition;
		h5 {
			font-size: 16px;
			font-weight: 600;
			color: $accent;
		}
		&.active {
			background: #fef5ba;
		}
	}
}

/* Page Menu */
.thb-page-menu {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;

  li {
    a {
      display: block;
      padding: 10px 0;
    }
    &:hover,
    &.current_page_item {
      a {
        color: $accent;
      }
    }
  }
  &.style1 {
    li {
      a {
      	display: flex;
      	font-weight: 500;
      	font-size: 14px;
      	border-top: 1px solid $border;
      	border-left: 1px solid $border;
      	border-right: 1px solid $border;
      	height: 40px;
      	padding: 0 15px;
      	align-items: center;
      }
      &:last-child {
      	a {
      		border-bottom: 1px solid $border;
      	}
      }
      &:hover,
      &.current_page_item {
      	a {
      		background: $accent;
      		color: #fff;
      		border-color: $accent;
      	}
      	& + li a {
      		border-top-color: $accent;
      	}
      }
    }
  } // .style1
}

/* Iconlist */
.thb-iconlist {
  ul {
    list-style: none;
    margin: 0;
    padding: 0;

    li {
      position: relative;
      padding-left: 30px;
      margin: 0 0 10px;
      .fa {
        position: absolute;
        top: 4px;
        left: 0;
        font-weight: 400;
      }
    }
  }
}

/* Embedded Post */
.wp-embedded-content {
	width: 100% !important;
}

/* Seperator */
.vc_separator.wpb_content_element {
	margin-bottom: 0;
}

/* Scroll to Top */
#scroll_to_top {
	position: fixed;
	bottom: 35px;
	right: 15px;
	width: 40px;
	overflow: visible;
	white-space: nowrap;
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	@include transform(rotate(90deg) translate(100%, 0));
	transform-origin: top right;
	display: flex;
	justify-content: flex-end;
	@include min-break($break-small) {
		right: 40px;
		bottom: 60px;
	}
	.rtl & {
		right: auto;
		left: 15px;

		@include min-break($break-small) {
			left: 40px;
		}
	}
	&:hover {

	}
	&.active {
		opacity: 1;
		visibility: visible;
	}
	&.style2 {
		width: 38px;
	  height: 38px;
	  border-radius: 50%;
	  display: flex;
	  justify-content: center;
	  align-items: center;
	  border: 1px solid rgba(#000,0.4);
	  color: $black;
	  font-size: 22px;
		transform: none;

	  position: fixed;
		bottom: -50px;
		right: 15px;
		z-index: 100;

		.rtl & {
			right: auto;
			left: 15px;
		}
	  &.active {
			bottom: 15px;
		}
	  &:hover {
	    border-color: $accent;
	    background: $accent;
	    color: #fff;
	  }
	}
}