/**
  Controls - pause/play, previous, and next buttons
*/
.vcarousel { overflow: hidden; max-height: 100vh; max-width: 100vw; }
.vcarousel { height: var(--row-height); }
.vcarousel.fullheight { height: 100vh; }

  /* All buttons */
.vcarousel .is-control {
    background: var(--button-background);
    color: var(--button-color);
    border: 0;
    cursor: pointer;
    transition: all .2s linear;
  }
  
   .dialog-widget .vcarousel .is-control {
	  color:white;
	  background: #0b0b0b;
   }
	.dialog-lightbox-widget .dialog-close-button {
		background: black;
		font-size: 40px;
		padding: 10px;
		z-index: 99;
		color: white;
	}
	.dialog-lightbox-widget .dialog-close-button:focus {
		outline: 4px white solid;
	}
   .vcarousel .is-control:focus {
      outline: none;
      background-color: rgba(0,0,0,.8);
      color: rgba(255,255,255,1);
    }
	.dialog-widget .vcarousel .is-control:focus {
		outline: 4px solid white;
	}
  /* Pause/play button */
  .vcarousel .rotation-button {
    position: absolute;
    bottom: 5px;
    left: 5px;
    
    padding: 10px 15px;
    z-index: 7;
    
    font-size: 20px;
    
    border-radius: 5px;
  }
  
  
  /* Previous slide button */
  .vcarousel .previous-button {
    position: absolute;
    left: 0;
    top: calc(50% - 35px);
    
    padding: 5px 15px;
    z-index: 7;
    
    font-size: 40px;
    
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    border-left: 0;
  }
  .pause-container, .resume-container {
	  display: none;
  }
  .pause-container.is-visible, .resume-container.is-visible {
	  display: block;
  }
  /* Next slide button */
  .vcarousel .next-button {
    position: absolute;
    right: 0;
    top: calc(50% - 35px);
    
    padding: 5px 15px;
    z-index: 7;
    font-size: 40px;
    
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    border-right: 0;
  }
  .vcarousel .navigation { 
	position: absolute;
	bottom: 15px;
	width: calc(100% - 50px);
	text-align: center;
	list-style: none;
	margin: 0 0 0 50px;
	height: auto;
	padding: 0;
	z-index: 8;
  }

 .dialog-widget .vcarousel .navigation { 
	 width: calc(100% - 8px);
	 margin: 0 0 0 4px;
	 left: 0px;
}
  a.vgallery-gallery-item:focus img {
	outline: 4px solid black;
  }
  
  .vcarousel .navigation .slide-dot {
    display: inline-block;
    font-weight: 400;
    color: #033060;
    cursor: pointer;
    text-align: center;
    white-space: nowrap;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
	height: 15px;
    background-color: #033060;
    opacity: 0.7;
    border: 2px solid #fff;
    padding: 0.36rem 0.36rem;
    font-size: 1rem;
    border-radius: 1rem;
    transition: all .3s;
  }
  .dialog-widget .vcarousel .navigation .slide-dot {
	  background-color: white;
	  opacity: 0.8;
  }
  .dialog-widget .vcarousel .navigation .slide-dot.swiper-pagination-bullet-active {
	  background-color: black;
	  opacity: 1;
	  width: 20px;
      height: 20px;
	  outline: 4px solid #0b6ebd;
	  vertical-align: top;
	  margin-top: 7px !important;
  }
  .dialog-widget .swiper-slide {
	display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
  }
  .swiper-slide img {
	  object-fit: cover;
	  width: 100%;
    height: 100%;
  }
  .swiper-slide .caption {
	position: absolute;
    bottom: 35px;
    background: white;
    padding: 20px;
    right: 35px;
  }
   .swiper-slide .caption span {
		color: #033060 !important;
		font-size: 35px;
		font-weight: 700;
		display:block;
		line-height: 1;
		font-family: var(--e-global-typography-primary-font-family);
	}
	.swiper-slide .caption small {
		font-family: "Roboto";
		font-weight: 400;
		color: #033060 !important;
		text-shadow: none;
		float:right;
		font-size: 17px;
		line-height: 1.4;
	}
	.swiper-scale-effect .swiper-slide, .swiper-scale-effect .swiper-slide .caption {
		transition: .5s;
		transform: scale(1);
		opacity:0;
	}
	.elementor-editor-active .swiper-scale-effect .swiper-slide, .elementor-editor-active .swiper-scale-effect .swiper-slide .caption {
		opacity:1;
	}
	.swiper-scale-effect .swiper-slide.swiper-slide-active {
		opacity:1;
	}
	.swiper-scale-effect .swiper-slide.swiper-slide-active .caption {
		opacity:1;
		transition: 1s;
	}
	.swiper-scale-effect .swiper-slide img {
	  transform: scale(1);
	}
	.swiper-scale-effect .swiper-slide.swiper-slide-active img {
	  transition: 8.5s ease-out;
	  transform: scale(1.1);
	}
	
	.dialog-widget .swiper-slide img {
		margin-top: 36px;
		object-fit: contain;
		max-width: 90vw;
    	max-height: calc(90dvh - 36px);
	}
 .vcarousel .swiper-pagination-bullet { 
	width: 14px;
    height: 20px;
    line-height: 10px;
    background: none;
    opacity: 1;
	margin: 0 5px !important;
 }
.elementor-lightbox .dialog-widget-content {
	background-color: transparent;
	position: fixed;
    height: 100%;
    width: 100%;
    bottom: 0;
}
.elementor-lightbox .dialog-widget-content span.image-caption {
	position: absolute;
    top: 0;
    background: white;
    padding: 5px 15px;
}
 .vcarousel .swiper-pagination-bullet-active.slide-dot {
	background-color: white;
    border: 2px solid #033060;
    opacity: 1;
    outline: 3px solid #0b6ebd;
 }
 .vcarousel .navigation .slide-dot:focus {
            box-shadow: 0 0 0 4px hsl(0deg 0% 0%), 0 0 0px 4px #ffffff;
        outline: none;
}

 .vcarousel .navigation .slide-dot .slide-dot[aria-current="true"] {
        background-color: rgba(0,0,0,1);
}

.dialog-widget-content .vcarousel {
	padding: 30px;
}

.vgallery .vgallery-list.masonry {
    column-count: var(--columns);
    column-gap: 10px;
}
.vgallery-list.masonry .vgallery-item .image-overlay{
	height: calc(100% - 5px);
}
.vgallery-list > li.vgallery-item { display: none; }
.vgallery-list > li.vgallery-item.show { display: inline-block; }
.filters .filter-button { margin: 0 5px; color: var( --e-global-color-primary ); border: 1px solid var( --e-global-color-primary ); }
.filters .filter-button:hover { background-color:  var( --e-global-color-primary ); color: white; } 
.filters .filter-button:focus { background-color:  var( --e-global-color-primary ); color: white; border: 3px; }


.dialog-widget-content .slide.swiper-slide {
	opacity:0 !important;
	transition:0.2s;
}
.dialog-widget-content .slide.swiper-slide picture {
	width: 100%;
    height: 100dvh;
}
.dialog-widget-content .slide.swiper-slide.swiper-slide-active {
	opacity:1 !important;
}

.vgallery .vgallery-list{ 
	list-style:none; 
	padding: 0px;
}
.vgallery .vgallery-list.grid {
	display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.vgallery .vgallery-list > li, .vgallery .vgallery-list > li img {
	height: var(--row-height);
}
.vgallery .vgallery-list.masonry > li, .vgallery .vgallery-list.masonry > li img {
	height: auto;
}
.vgallery .vgallery-list.justified {
	display: flex;
	 overflow: hidden;
	flex-wrap: wrap;
}
.vgallery .vgallery-list.justified:after {
  content: "";
  flex-grow: 999999999;
  min-width: var(--row-height);
  height: 0;
}
.vgallery .vgallery-list.justified > li {
  height: var(--row-height);
  flex-grow: 1;
  margin-bottom: var(--gap, 1em);
  margin-left: var(--gap, 1em);
}
.vgallery .vgallery-list.justified > li img {
  height: var(--row-height);
  object-fit: cover;
  max-width: 100%;
  min-width: 100%;
  vertical-align: bottom;
}
.vgallery-list > li { 
	
	display: inline-block;
    cursor: pointer;
    position: relative;
	list-style:none; 
	text-align: center;
}
.swiper-pagination-bullet span { 
	border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}
.vgallery-list.grid > li { 
	flex: 1 1 auto;
	flex-grow:0;
	width: calc(100% * (1/4) - 10px - 1px);
}

.vgallery-list.grid > li img {
	max-height: 100%;
	max-width: 100%;
	object-fit: cover;
    height: 100%;
	width: 100%;
}

.vgallery-item .image-overlay {
	opacity:0;
	position: absolute;
    height: 100%;
    width: 100%;
    padding: 20px;
    background: #000000b0;
    color: white;
    font-weight: 700;
	display: flex;
	justify-content: center;
	align-content: center;
	flex-direction: column;
	transition: 0.5s;
}
.dialog-lightbox-widget { margin: 0px !important; position: fixed !important; }


.desktop-overlay .vgallery-item:hover .image-overlay, .desktop-overlay .vgallery-item:focus .image-overlay {
	opacity: 1;
}
.nohover .image-overlay {
    opacity: 1 !important;
    height: 20px;
    font-size: 17px;
    font-weight: 400;
    background-color: #506e9b;
    padding: 15px;
}
@media (min-width: 1025px) {
	
}
@media (max-width: 1024px) {
	.vgallery .vgallery-list.masonry {
		column-count: var(--md-columns);
	}
	.tablet-overlay .vgallery-item:hover .image-overlay, .tablet-overlay .vgallery-item:focus .image-overlay {
	opacity: 1;
	}
	.dialog-widget-content .vcarousel {
		padding: 0;
	}
	.dialog-widget {
		margin-left: -10vw;
		margin-right: -10vw;
		width: 100dvw;
	}
	.vcarousel, .vcarousel .swiper-slide, .vgallery .vgallery-list > li, .vgallery .vgallery-list > li img,
	.vgallery .vgallery-list.justified > li, .vgallery .vgallery-list.justified > li img
	{ height: var(--row-height-tablet); }
	
}
@media (max-width: 767px) {
	.desktop-overlay .vgallery-item:hover .image-overlay, .desktop-overlay .vgallery-item:focus .image-overlay {
	opacity: 0;
	}
	.tablet-overlay .vgallery-item:hover .image-overlay, .tablet-overlay .vgallery-item:focus .image-overlay {
	opacity: 0;
	}
	.mobile-overlay .vgallery-item:hover .image-overlay, .mobile-overlay .vgallery-item:focus .image-overlay {
	opacity: 1;
	}
	.vgallery .vgallery-list.masonry {
		column-count: var(--sm-columns);
	}
	.vcarousel .navigation { 
	width: calc(100% - 90px);
	margin: 0 40px 0 50px;
  }
	.swiper-slide .caption {
	width: calc(100% - 70px);
	padding: 10px;
    text-align: center;
	}
	.swiper-slide .caption small {
		float: none;
	}
	.swiper-slide .caption span {
		font-size: 24px;
	}
	.dialog-widget .vcarousel .navigation { 
		display: none;
	}
	.elementor-lightbox .dialog-widget-content span.image-caption {
		margin: 0 62px;
	}
	.vcarousel, .vcarousel .swiper-slide, .vgallery .vgallery-list > li, .vgallery .vgallery-list > li img,
	.vgallery .vgallery-list.justified > li, .vgallery .vgallery-list.justified > li img
	{ height: var(--row-height-mobile); }
	.filters .filter-button {
		margin: 1px;
		padding: .25rem 0.5rem;
	}
}