/* **********************************************************
 * ELEMENT STYLES
 * ******************************************************** */

/* *****************************
 * BUTTON ADDITIONAL STYLING
 * *************************** */
.elementor-widget-button,
.elementor-widget-button .elementor-widget-container,
.elementor-button-wrapper {
  display: inline-block;	
  position: relative !important;
  z-index: 1;
}
.elementor-button .elementor-button-text {
    transform: translateY(1px) !important;
}
.elementor-widget-button .elementor-button {
  position: relative !important;
  display: inline-flex;
  align-items: center;
  background-color: #9C1117 !important;
  /*background-image: url('/wp-content/uploads/2025/04/BUTTON.png') !important;*/
  background-size: 100% !important;
  background-repeat: no-repeat;
  background-position: center center !important;
  background-clip: padding-box;
  border-style: solid;
  border-width: 10px;
  border-color: transparent;
  /*border-image: url('/wp-content/uploads/2025/04/BUTTON.png');*/
  border-image-slice: 25% fill;
  border-image-width: 25px 75px;	
  cursor: pointer;
  justify-content: center;		
  min-width: 20rem !important;
  z-index: 2 !important;	
}
.elementor-button-wrapper::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 5%;
  width: 90%; 
  height: 5%;
  box-shadow: 0 0 0 0 transparent;
  border-radius: .5rem;
  opacity: 1 !important;
  box-shadow: 0 -1.5rem 3rem .5rem #000;		
  transition: box-shadow 1s cubic-bezier(0.25, 0.1, 0.25, 1), 
              opacity 1s cubic-bezier(0.25, 0.1, 0.25, 1);
  z-index: -10 !important;	
}
.elementor-button-wrapper:hover::before {
  box-shadow: 0 -1rem 4rem 1rem #9C1117;
  opacity: 1;
}
.elementor-button-wrapper::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 5%;
  width: 90%; 
  height: 5%;
  box-shadow: 0 1rem 3rem .5rem #000;
  border-radius: .5rem;
  opacity: 1;
  transition: opacity 1s cubic-bezier(0.25, 0.1, 0.25, 1),
              box-shadow 1s cubic-bezier(0.25, 0.1, 0.25, 1); /* Smooth fade-out */
  z-index: -10 !important;
}
.elementor-button-wrapper:hover::after {
  opacity: 1; /* Fade in */
  box-shadow: 0 1rem 2rem 1rem #844927; /* Large, soft glow similar to glow-pulse "to" state */
  transition: opacity 1s cubic-bezier(0.25, 0.1, 0.25, 1),
              box-shadow 1s cubic-bezier(0.25, 0.1, 0.25, 1); /* Smooth fade-in */
} 

/* WHITE BUTTON */
.btn-white.elementor-widget-button .elementor-button {
  /*background-image: url('/wp-content/uploads/2025/05/BUTTON-WHITE.png') !important;*/
  /*border-image: url('/wp-content/uploads/2025/05/BUTTON-WHITE.png');*/	
  position: relative !important;
  display: inline-flex;
  align-items: center;
  background-color: #FFF !important;
  background-size: 100% !important;
  background-repeat: no-repeat;
  background-position: center center !important;
  background-clip: padding-box;
  border-style: solid;
  border-width: 3px;
  border-color: transparent;
  border-image-slice: 25% fill;
  border-image-width: 25px 75px;	
  cursor: pointer;
  justify-content: center;		
  min-width: 20rem !important;
  z-index: 2 !important;	
}

/* SMALL BUTTON */
.btn-small.elementor-widget-button .elementor-button {
  border-width: 3px;  
  min-width: 15rem !important;	
}

/* HOME LOCATION / ROW OF ALL LOCATIONS BUTTONS */
.home-location-buttons a.elementor-button.elementor-button-link,
.row-location-buttons a.elementor-button.elementor-button-link {
    width: 100% !important;
    min-width: 260px !important;
}


/* ******************************
 * ELEMENTOR MOTION EFFECTS TRANSITION
 * *************************** */
.elementor-element .elementor-widget-container.elementor-motion-effects-element {
    transition-duration: 2s;
}


/* *****************************
 * ELEMENT PADDING & MARGINS
 * *************************** */
.element-margin-bottom-0.elementor-element {
	margin-bottom: 0 !important;	
}


/* ******************************
 * BANNERS WITH OVERLAYS
 * *************************** */
.banner-overlay .jet-banner__overlay {
    mix-blend-mode: multiply;
    transition: all .5s ease-in-out;	
}
.banner-overlay .elementor-jet-banner {
	overflow: hidden;
}
.banner-overlay .elementor-jet-banner .jet-banner__img {
  transition: transform 1s, filter 2s ease-in-out;
  filter: blur(0px);
  transform: scale(1.0);
}
.banner-overlay .elementor-jet-banner:hover .jet-banner__img {
  transition: transform 1s, filter 2s ease-in-out;
  filter: blur(2px);
  transform: scale(1.1);
}
.banner-overlay .elementor-jet-banner:hover i {
	border-bottom: 2px solid #fff;
	padding-bottom: .5rem;
}

@media (max-width: 767px) {
	/* BANNER OVERLAY */
	.banner-overlay .elementor-jet-banner .jet-banner__img {
		transform: scale(1.65);	
	}	
	.banner-overlay .elementor-jet-banner:hover .jet-banner__img {
		transform: scale(1.75);	
	}	
}


/* ******************************
 * BLOG LISTING GRID SLIDER
 * *************************** */
.blog-slider .jet-listing-grid .jet-engine-listing-overlay-wrap .elementor-inner {
    height: 100%;
}
.blog-slider .blog-card .section-col .elementor-widget-wrap.elementor-element-populated {
    flex-direction: column;
}
.blog-slider .blog-card .section-col .inner-section-content {
    margin-bottom: auto;
}
.blog-slider .blog-card .elementor-container.elementor-column-gap-default {
    width: 100%;
}
.blog-slider .blog-card .inner-section-content {
    margin-bottom: 2rem;
}
.blog-slider .blog-card .blog-title {
    height: auto !important;	
	margin-bottom: 0 !important;
}
.blog-slider .blog-card .blog-title .elementor-widget-container {
    height: auto !important;
}


/* SET SAME HEIGHT */
.blog-slider .slick-track  {
	display: flex !important;	
}
.blog-slider .jet-listing-grid__item {
    height: auto !important;
} 
.blog-slider .blog-card {
    display: flex;	
	height: 100%;
}
.blog-slider .jet-listing-grid__item,
.blog-slider .jet-listing-grid__item .jet-engine-listing-overlay-wrap,
.blog-slider .jet-listing-grid__item .jet-engine-listing-overlay-wrap > div,
.blog-slider .jet-listing-grid__item .jet-engine-listing-overlay-wrap > div .elementor-section-wrap,
.blog-slider .jet-listing-grid__item .jet-engine-listing-overlay-wrap > div .elementor-section-wrap .blog-card {
  height: 100%;
}

/* No Padding on Bottom Button */
.page-template-full-width .jupiterx-main .elementor-section.elementor-section-boxed.inner-section-link .elementor-container,
.page-template-full-width .jupiterx-main .elementor-section.elementor-section-boxed.inner-section-link .elementor-container .elementor-widget-wrap {
    padding: 0 !important;
}
.blog-slider .inner-section-link {
    position: absolute !important;
    bottom: 0;
}


/* ******************************
 * PRODUCT LISTING GRID SLIDER
 * *************************** */
.product-slider .product-card {
    display: flex;	
}
.product-slider .product-card .section-col .elementor-widget-wrap.elementor-element-populated {
    flex-direction: column;
}
.product-slider .product-card .section-col .inner-section-content {
    margin-bottom: 3rem;
}
.product-slider .product-card .elementor-container.elementor-column-gap-default {
    width: 100%;
}
.product-slider .product-card .inner-section-content {

}
.product-slider .product-card .product-title {
	margin-bottom: 0 !important;
}
.product-slider .product-card .product-desc {

}
.product-slider .inner-section-link {
    position: absolute !important;
    bottom: 0;
}
.product-slider .product-card .jet-listing.jet-listing-dynamic-link {
    display: flex;
    flex-direction: row;
    align-content: stretch;
    flex-wrap: nowrap;
    align-items: stretch;
    width: 100%;
    height: 100%;
}
.product-slider .product-card a.jet-listing-dynamic-link__link {
    width: 100%;
    height: 100%;
    display: flex !important;
	font-size: 1.125rem !important;
}


/* ******************************
 * DEFAULT PAGER - SEARCH RESULTS, ETC
   NOTE: You CAN typically style the element directly
 * *************************** */
/* Default Pager - Search Results, etc */
.page-item.active .page-link {
    color: #fff;
    background-color: #555 !important;
    border-color: #111 !important;
}


/* ******************************
 * IMAGE GRID GALLERY LIGHTBOX
 * *************************** */
.mfp-close {
	font-size: 24px !important;
}
/* Kill Close & Arrow Background Hover Color */
.mfp-arrow,
.mfp-close:hover {
	background-color: transparent !important;
	border: none !important;
}

/* Hide Lightbox Alt Text Caption
 .mfp-bottom-bar .mfp-title { 
	display: none; 
} */


/* ******************************
 * FLIP BOX
 * *************************** */
@media (max-width: 1024px) {		
	/* Fix for iOS z-index like bug - Flip Boxes cover Header, Mobile Menu, etc */
	.ios .ha-flip-box-container.ha-flip-effect-3d .ha-flip-box-back-inner, 
	.ios .ha-flip-box-container.ha-flip-effect-3d .ha-flip-box-front-inner {
		-webkit-transform: translateZ(0px) scale(.9) !important;
		transform: translateZ(0px) scale(.9) !important;
	}
}

@media (max-width: 767px) {
	/* FLIP BOX IOS FIX - not all but Design 9 caused Flip Box to appear on top of Header  */
	.ios .flip-boxes-icon-title-txt .ha-flip-box-container.ha-flip-effect-3d .ha-flip-box-inner-wrapper {
	  -webkit-transform-style: flat;
	  transform-style: preserve-3d;
	}	
}


/* ******************************
 * GOOGLE MAPS
 * *************************** */
.gm-style iframe + div {
    border: 0 !important;
}


/* ******************************
 * BACKGROUND OVERLAY for iPHONE - Add Class if Needed
 * *************************** */
@media (max-width: 767px) {
	/* Overlay */
	.responsive-phone-overlay-opacity .elementor-background-overlay {
		opacity: .7 !important;
	}
}


/* ******************************
 * JET HEADLINE
 * *************************** */
span.jet-headline__space {
    line-height: 1px;
}


/* ******************************
 * ICON LIST CENTERED ON MOBILE - add class mobile-center
 * *************************** */
@media (max-width: 767px) {
	.mobile-center .elementor-icon-list-item,
	.mobile-center .elementor-icon-list-item a {
		text-align: center !important;
	}
}


/* *****************************
 * JUPITER RAVEN ADVANCED VIDEO ELEMENT
 * *************************** */
.raven-video-mejs-player {
    z-index: 9000 !important;
    display: block;
    background: rgba(0,0,0,.9) !important;
}
.raven-video-mejs-player .raven-video-mejs-player {
	z-index: 9000 !important;
}

/* Keep Header, Scroll Buttons, Hero Overlay Behind Popup*/
.mejs-fullscreen header.jupiterx-header,
.safari.mejs-fullscreen header.jupiterx-header,
.mejs-fullscreen .ha-has-bg-overlay>.elementor-widget-container,
.safari.mejs-fullscreen .ha-has-bg-overlay>.elementor-widget-container,
.mejs-fullscreen .jupiterx-corner-buttons {
	z-index: 0;
}


/* *****************************
 * ADVANCED ACCORDION - some helpers if needed
 * *************************** */
 /* Space Between Toggles */
.jupiterx-single-advanced-accordion-wrapper {
	margin-bottom: 5px;	
}

/* Force the Border Color on Toggle Header */
.jx-single-accordion-header {
    border-color: #EEE !important;
}
.jx-ac-inactive .jx-single-accordion-header {
    border-color: transparent !important;
}

/* MAC ACCORDION TITLE FIX */
.mac .elementor-widget-n-accordion .e-n-accordion-item-title-text {
    margin-bottom: -12px !important;
}


/* *****************************
 * JUPITER TESTIMONIAL CAROUSEL TWEAKS
 * *************************** */
.elementor-widget-raven-testimonial-carousel .swiper-wrapper {
  margin-bottom: 3rem !important;
   min-height: fit-content !important;    
}
.elementor-widget-raven-testimonial-carousel .raven-main-swiper {
   min-height: fit-content !important;
}
.elementor-widget-raven-testimonial-carousel .raven-main-swiper .swiper-slide {
    overflow-y: visible;
    min-height: fit-content !important;
    display: flex;
	justify-content: center;
}
.elementor-widget-raven-testimonial-carousel .raven-main-swiper .swiper-slide .raven-testimonial {
    justify-content: center;
}


/* *****************************
 * SERVICE BOXES
 * *************************** */
.service-box {
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  flex-direction: column;
  height: 100%;
  min-height: 30rem !important;
  justify-content: center;
  overflow: hidden !important;
  will-change: transform; 
  backface-visibility: hidden;  /* Reduce anti-aliasing artifacts */
  transform: translateZ(0); /* Force GPU rendering to reduce edge artifacts */
}

.home .service-box {
	 min-height: 40rem !important;
}

/* Background image pseudo-element */
.service-box:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: inherit;
  filter: saturate(0);
  transition: filter 1s ease;
  z-index: -1; 
}
.home .service-box:before {
  filter: none;
}

/* Hover state */
.service-box:hover {
  background: transparent !important;	/* Ensure parent container doesnâ€™t introduce a white background */	
  height: 100%;
  transform: scale(1.1);
  z-index: 20;
}
.service-box:hover:before {
  filter: saturate(1);
  transition: filter 1s ease;
}

/* Initial heading (hidden by default) */
.service-box > .service-box-title {
  height: auto;
  text-align: center;
  width: 100%;
  z-index: 1;
  opacity: 0; /* Hidden until JavaScript positions and fades it in */
  transition: opacity 0.75s ease-in-out,transform 0.5s ease-in-out !important;
}

/* Fade out initial heading on hover */
.service-box:hover > .service-box-title {
  opacity: 0 !important;
  transition: opacity 0.35s ease-out !important;
}

/* Content box (hidden by default) */
.service-box .content-box {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.5s ease-in-out !important;
  z-index: 0;
}

/* Fade in content box on hover */
.service-box:hover .content-box {
  opacity: 1;
}

/* Ensure content box title is visible */
.service-box:hover .content-box .service-box-title {
  height: auto !important;
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
}

/* Service Box Heading Title Button */
.service-box .box-btn {
/*  background: url(/wp-content/uploads/2025/05/BUTTON-WHITE.png) no-repeat center; */
	background-color: #FFF;
  background-size: contain;
  display: inline-block;
  padding: 1.15rem 4rem 1rem;
  text-align: center;
  min-width: 200px !important;
}
.service-box .box-btn .elementor-heading-title {
  transition: all 0.5s ease-in-out !important;
}
.service-box .box-btn:hover .elementor-heading-title {
  color: #9C1117 !important;
}

/* SERVICE BOX MOBILE LAYOUT */
@media (max-width: 767px) {
  .service-box:not(.section-mega-menu .service-box) {
    min-height: 18rem !important;
  }
}
/* SERVICE BOX MOBILE LAYOUT */
@media (max-width: 480px) {
  .service-box:not(.section-mega-menu .service-box) {
    min-height: 18rem !important;
  }
  .home .service-box:not(.section-mega-menu .service-box) {
    min-height: 34rem !important;
  }	
  .service-box > .service-box-title {
    height: 0 !important;
    opacity: 0 !important;
    transition: opacity 0.5s ease-in-out;
  }
  .service-box .content-box {
    opacity: 1;
    height: 100%;
	background-image: linear-gradient(180deg, #00000000 0%, #00000050 100%) !important;
  }
  .service-box .content-box .service-box-title {
    height: auto !important;
    opacity: 1;
    transition: opacity 0.5s ease-in-out;
  }
}


/* *****************************
 * SERVICE BOX HOVER COLORS
 * *************************** */
.page-location-sitwide .service-box:hover {
	box-shadow: 0px 10px 50px 10px var(--sitewide-color) !important;
}
.page-location-nashville .service-box:hover {
	box-shadow: 0px 10px 50px 10px var(--nashville-color) !important;
}
.page-location-gatlinburg .service-box:hover {
	box-shadow: 0px 10px 50px 10px var(--gatlinburg-color) !important;
}
.page-location-las_vegas .service-box:hover {
	box-shadow: 0px 10px 50px 10px var(--las-vegas-color) !important;
}
.page-location-pittsburgh .service-box:hover {
	box-shadow: 0px 10px 50px 10px var(--pittsburgh-color) !important;
}


/* *****************************
 * MENU SLIDER
 * *************************** */
.menu-slider .elementor-widget-container {
	padding: 0 !important;
}
.menu-slider .ha-slider-content {
    display: flex;
    align-content: center !important;
    justify-content: space-between;
	webkit-animation-name: fadeIn !important;
    animation-name: fadeIn !important;	
}
.menu-slider .ha-slider-content-title,
.menu-slider .ha-slider-buttons {
	margin: 0 !important;
}
.menu-slider .ha-slider-content-wrapper {
	background: linear-gradient(to bottom,  rgba(0,0,0,0) 40%, rgba(0,0,0,0.75) 70%, rgba(0,0,0,1) 100%);
}

@media (max-width: 767px) {
	.menu-slider .ha-slider-content {
	    flex-direction: column;
		gap: 0px;
	}
	.menu-slider .ha-slider-content-title,
	.menu-slider .ha-slider-buttons {
		margin: 0 !important;
	}
}


/* *****************************
 * GOOGLE MAPS
 * *************************** */
.ha-google-map .gmnoprint.gm-bundled-control.gm-bundled-control-on-bottom {
    left: 0;
    bottom: 225px !important;
}

.ha-google-map {
	width: 100%;
    height: 100% !important;	
}
.ha-google-map .elementor-widget-container {
    height: 100% !important;
}
.ha-adv-google-map {
    height: 100%;
}
.ha-adv-google-map__wrapper.ha-adv-google-map__wrapper--item0 {
    height: 100% !important;
	min-height: 75vh; 
}

/* Popup Styling */
.gm-style .gm-style-iw-c {
    background: #000 !important;
    border-radius: 0 !important;
    padding: 8px !important;
	box-shadow: 0 -2px 10px #FFFFFF50;
}
.gm-style-iw-d {
    overflow: hidden !important;
} 
.gm-style .gm-style-iw-tc::after {
    background: #000;
}
.gm-style .gm-ui-hover-effect {
    background: #9C1117AA !important;
    width: 24px !important;
    height: 24px !important;
    opacity: 1;
}
.gm-style .gm-ui-hover-effect span {
    background: #fff !important;
    opacity: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.ha-adv-google-map__marker-description a {
	color: #fff !important;	
}
.ha-adv-google-map__marker-description a:hover {
	color: #ccc !important;
}

