/*
 Theme Name: FDG Web Divi Child
 Theme URI: https://www.elegantthemes.com/gallery/divi/
 Description: FDG Web Divi Child Theme
 Author: FDG Web
 Author URI: https://www.elegantthemes.com
 Template: Divi
 Version: 1.0.0
*/
 
/* =Theme customization starts here
------------------------------------------------------- */

h2, h3, h4, h5, h6 {
	font-family: "Asap Condensed", Helvetica, Arial, Lucida, sans-serif;
}

body {
	font-family: Asap, Helvetica, Arial, Lucida, sans-serif;
	font-size: 16px;
}

.content-text a {
	color: #2D5487 !important;
	font-weight: 700;
}

p.gform_required_legend {
	display: none;
}

/*////////////////////////////////////////
///////////    CONTACT FORM    ///////////
////////////////////////////////////////*/
#gform_wrapper_2 {
  background: #f1f1f1;
  padding: 45px;
  border-radius: 5px;
}

@media screen and (max-width:479px) {
  #gform_wrapper_2 {
    padding:45px 15px;
  }

  #gform_wrapper_2 input#gform_submit_button_2 {
    width: 100%;
}

}


#gform_wrapper_2 legend.gfield_label.gform-field-label.gfield_label_before_complex,
#gform_wrapper_2 label.gfield_label.gform-field-label {
  font-family: 'Asap Condensed';
  text-transform: uppercase;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.03em;
  color: #2d5487;
}

#gform_wrapper_2 label.gform-field-label.gform-field-label--type-sub {
  text-transform: uppercase;
  font-family: 'Asap';
  font-size: 14px;
  font-weight: 700;
  color: #2d5487;
}

#gform_wrapper_2 .ginput_container input,
#gform_wrapper_2 .ginput_container textarea {
  border: none;
  box-shadow: none;
}

#gform_wrapper_2 .ginput_container input:focus, 
#gform_wrapper_2 .ginput_container textarea:focus {
  box-shadow: inset 0 0 0 2px #0099c9;
}

#gform_wrapper_2 #field_2_5 .ginput_container .gchoice {
  margin: 8px 0;
}

#gform_wrapper_2 #field_2_5 label {
  font-family: 'Asap';
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #0099c9;
  font-size: 15px;
}

#gform_wrapper_2 #field_2_5 input.gfield-choice-input {
  transform: rotate(45deg);
  box-shadow: inset 0 0 0 2px #0099c9;
  background: none;
  width: 12px;
  height: 12px;
  border-radius: 0px;
  margin-top: 5px;
  margin-left: 5px;
}

#gform_wrapper_2 input[type=checkbox]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *))::before {
  background:#0099c9;
  color:#0099c9;
}

#gform_wrapper_2 input#gform_submit_button_2 {
  background: #f05b72;
  box-shadow: none;
  text-transform: uppercase;
  font-family: 'Asap';
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 8px 30px;
  font-size: 15px;
}

/*////////////////////////////////////////
///////////    BREADCRUMBS    ////////////
////////////////////////////////////////*/
.category-breadcrumbs ul li {
    font-weight: 800;
    text-transform: uppercase;
}

.category-breadcrumbs ul {
    justify-content: center;
}

.category-breadcrumbs span.et-pb-icon.dmpro-separator-icon {
    width: 8px;
    height: 8px;
    background: #0198ca;
    text-indent: -9999px;
    border: none;
    transform: rotate(45deg);
    margin: 0 20px !important;
}

.category-breadcrumbs a span {
    color: #2f5487;
}

@media screen and (max-width:768px) {
	.category-breadcrumbs span.et-pb-icon.dmpro-separator-icon {
		margin: 0 10px !important;
	}

	.category-breadcrumbs li.dmpro-breadcrumb-item {
		font-size: 14px;
	}
}

/*////////////////////////////////////////
//////////    SINGLE LISTING    //////////
////////////////////////////////////////*/
.single-listing {
	.listing-wrapper {
		position: relative;
		max-width: 1400px;
		margin: 0 auto;
		width: 80%;
		padding: 0 0 60px;
	}
	
	.listing-title {
		position: relative;
		text-align: center;
		display: none;
		
		@media screen and (min-width: 768px) {
			& {
				display: block;
			}
		}

		h1 {
			font-weight: 700;
			text-transform: uppercase;
			font-size: 62px;
			color: #2f5487 !important;
			letter-spacing: 0.04em;
			text-align: center;
			padding: 80px 0 40px 0;
			font-family: 'Asap Condensed', sans-serif;
		}
		
		.simplefavorite-button {
			position: absolute;
			right: 0;
			top: 93px;
		}
	}
	
	.listing-cols {
		display: flex;
		justify-content: space-between;
		flex-direction: row;
		flex-wrap: wrap;

		.listing-col {
			&.left {
				width: 45%;
				padding: 0 80px 0 0;
			}
			
			&.right {
				width: 55%;
			}
		}

		h3 {
			font-weight: 700;
			color: #2f5487;
			text-transform: uppercase;
			font-size: 26px;
			letter-spacing: 0.023em;
		}

		p {
			font-weight: normal !important;
		}
		
		p,
		.listing-contact,
		.listing-amenities {
			font-size: 16px;
			line-height: 1.7em;
			color: #111;
			
			.listing-btns {
				display: flex;
				justify-content: center;
				flex-wrap: wrap;
				
				@media screen and (min-width: 980px) {
					& {
						justify-content: left;
					}
				}
			}
			
			a {
				color: #2f5487;
				font-weight: 700;
				
				&.btn.listing-website-btn {
					background: #f05a72;
					color: #fff;
					text-transform: uppercase;
					font-family: 'Asap', sans-serif;
					font-weight: 700;
					letter-spacing: 0.02em;
					padding: 7px 20px;
					border-radius: 3px;
					margin-top: 20px;
					display: inline-block;
					text-align: center;
					font-size:16px;
				}
				
				&.btn.listing-menu-btn {
					background: #009356;
					color: #fff;
					text-transform: uppercase;
					font-family: 'Asap', sans-serif;
					font-weight: 700;
					letter-spacing: 0.02em;
					padding: 7px 20px;
					border-radius: 3px;
					margin: 20px 0 0 10px;
					display: inline-block;
					text-align: center;
					font-size: 16px;
				}
			}
		}
	}
	
	.listing-about {
		margin-top: 20px;
		padding: 0 0 40px;
		
		@media screen and (min-width: 768px) {
			& {
				margin-top: 60px;
			}
		}
		
		@media screen and (min-width: 980px) {
			& {
				padding: 0 0 80px;
			}
		}
	}
	
	.listing-contact {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 0 0 20px;
		
		.listing-contact-left,
		.listing-contact-right {
			width: 100%;
			
			@media screen and (min-width: 768px) {
				& {
					width: 50%;
				}
			}
		}
		
		.listing-contact-left {
			padding-right: 0;
			
			@media screen and (min-width: 768px) {
				& {
					padding-right: 20px;
				}
			}
		}
		
		.admission {
			padding: 40px 0 0;
		}
	}
	
	.listing-amenities {
		.amenities-items {
			padding: 0;
			
			li {
				list-style: none;
			}
		}
	}
	
	.listing-images {
		display: flex;
		flex-direction: column;
		
		@media screen and (min-width: 768px) {
			& {
				display: block;
			}
		}
		
		.listing-images-top {
			display: flex;
			align-items: stretch;
			justify-content: space-between;
			flex-direction: row;
			flex-wrap: wrap;
			padding: 0 0 30px;
			order: 3;
			
			@media screen and (min-width: 768px) {
				& {
					display: flex;
				}
			}
			
			.listing-images-top-left {
				width: 66.666%;
				padding: 0 10px 0 0;
				display: none;
				
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
				
				.listing-featured-image {
					img {
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
					}
				}
			}
			
			.listing-images-top-right {
				display: flex;
				justify-content: space-between;
				width: 100%;
				padding: 20px 0 0 0;
				
				@media screen and (min-width: 768px) {
					& {
						display: block;
						width: 33.333%;
						padding: 0 0 0 20px;
					}
				}
				
				.listing-logo {
					aspect-ratio: 1;
					background: #EEE;
					margin: 0;
					display: flex;
					align-items: center;
					justify-content: center;
					width: 45%;
					
					@media screen and (min-width: 768px) {
						& {
							margin: 0 0 30px;
							width: 100%;
						}
					}
					
					img {
						width: 100%;
					}
				}

				.listing-map {
					aspect-ratio: 1;
					background: #EEE;
					display: flex;
					justify-content: center;
					align-items: center;
					width: 45%;
					
					@media screen and (min-width: 768px) {
						& {
							width: 100%;
						}
					}
				}
			}
		}
		
		.listing-images-bottom {
			position: relative;
			
			.listing-images-carousel {
				
				.listing-image-item {
					border: 0;
					padding: 0;
					background: transparent;
					display: block;
					width: 100%;
					aspect-ratio: 1;
					user-select: none;
					cursor: pointer;
					
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
				}
			}
			
			.swiper-button-next {
				background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
                width: 60px;
                height: 60px;
                background-size: 100%;
                background-repeat: no-repeat;
				display: none;
                
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
			}
			
			.swiper-button-prev {
				background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
				transform: scale(-1, 1);
                width: 60px;
                height: 60px;
                background-size: 100%;
                background-repeat: no-repeat;
				display: none;
                
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
			}

			.swiper-button-prev:after,
			.swiper-button-next:after {
				opacity: 0;
			}
			
			.swiper-pagination {
				position: relative;
				display: block;
				z-index: 100;
				bottom: 0;
				padding: 20px 0 0;
				
				.swiper-pagination-bullet {
					width: 12px;
					height: 12px;
					background: #73cce7;
					opacity: 1;
					margin: 0 8px;
				}
				
				.swiper-pagination-bullet-active {
					opacity: 1;
					background: #2f5487;
				}
				
				@media screen and (min-width: 768px) {
					& {
						display: none;
					}
				}
			}
		}
		
		.listing-title-mobile {
			position: relative;
			text-align: center;
			display: block;
			
			@media screen and (min-width: 768px) {
				& {
					display: none;
				}
			}
			
			h2 {
				font-weight: 700;
				text-transform: uppercase;
				font-size: 44px;
				color: #2f5487 !important;
				letter-spacing: 0.04em;
				text-align: center;
				padding: 30px 0 20px 0;
				font-family: 'Asap Condensed', sans-serif;
			}
			
			button.simplefavorite-button {
				position: relative;
				top: 0;
			}
		}
	}
	
	#map {
		width: 100%;
		height: 100%;
	}
}

@media screen and (max-width: 980px) {
	.single-listing .listing-cols {
		display:flex;
		flex-direction: column-reverse;
		text-align:center;
	}

	.single-listing .listing-col {
		width:100% !important;
		padding:0 !important;
	}

	.single-listing .listing-contact {
		padding:0 !important;
		justify-content:center;
	}

	.single-listing .social-icons {
		margin-bottom:40px;
	}

	.single-listing .listing-amenities {
		margin-top:40px;
	}

    .single-listing .listing-title h1 {
		font-size:46px;
	}
}

/*////////////////////////////////////////
//////////    SINGLE EVENT    //////////
////////////////////////////////////////*/
.single-event {
	.event-wrapper {
		position: relative;
		max-width: 1400px;
		margin: 0 auto;
		width: 80%;
		padding: 0 0 60px;
	}
	
	.event-title {
		position: relative;
		text-align: center;
		display: none;
		
		@media screen and (min-width: 768px) {
			& {
				display: block;
			}
		}

		h1 {
			font-weight: 700;
			text-transform: uppercase;
			font-size: 62px;
			color: #2f5487 !important;
			letter-spacing: 0.04em;
			text-align: center;
			padding: 80px 0 40px 0;
			font-family: 'Asap Condensed', sans-serif;
		}
		
		.simplefavorite-button {
			position: absolute;
			right: 0;
			top: 93px;
		}
	}
	
	.event-cols {
		display: flex;
		justify-content: space-between;
		flex-direction: row;
		flex-wrap: wrap;
		
		.event-col {
			&.left {
				width: 45%;
				padding: 0 80px 0 0;
			}
			
			&.right {
				width: 55%;
			}
		}
		
		h3 {
			font-weight:700;
			color: #2f5487;
			text-transform: uppercase;
			font-size: 26px;
			letter-spacing: 0.023em;
		}

		p {
			font-weight: normal !important;
		}
		
		p,
		.event-contact,
		.event-amenities {
			font-size: 16px;
			line-height: 1.7em;
			color: #111;
			
			a {
				color: #2f5487;
				font-weight: 700;
				
				&.btn.event-website-btn {
					background: #f05a72;
					color: #fff;
					text-transform: uppercase;
					font-family: 'Asap', sans-serif;
					font-weight: 700;
					letter-spacing: 0.02em;
					padding: 7px 20px;
					border-radius: 3px;
					margin-top: 20px;
					display: inline-block;
					text-align: center;
					font-size:16px;
				}
			}
		}
	}
	
	.event-about {
		margin-top: 20px;
		padding: 0 0 40px;
		
		@media screen and (min-width: 768px) {
			& {
				margin-top: 60px;
			}
		}
		
		@media screen and (min-width: 980px) {
			& {
				padding: 0 0 80px;
			}
		}
	}
	
	.event-contact {
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 0 0 20px;
		
		.event-contact-left,
		.event-contact-right {
			width: 100%;
			
			@media screen and (min-width: 768px) {
				& {
					width: 50%;
				}
			}
		}
		
		
		.event-contact-left {
			padding-right: 0;
			
			@media screen and (min-width: 768px) {
				& {
					padding-right: 20px;
				}
			}
		}
	}
	
	.event-amenities {
		.amenities-items {
			padding: 0;
			
			li {
				list-style: none;
			}
		}
	}
	
	.event-images {
		display: flex;
		flex-direction: column;
		
		@media screen and (min-width: 768px) {
			& {
				display: block;
			}
		}
		
		.event-images-top {
			display: flex;
			align-items: stretch;
			justify-content: space-between;
			flex-direction: row;
			flex-wrap: wrap;
			padding: 0 0 30px;
			order: 3;
			
			@media screen and (min-width: 768px) {
				& {
					display: flex;
				}
			}
			
			.event-images-top-left {
				width: 66.666%;
				padding: 0 10px 0 0;
				display: none;
				
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
				
				.event-featured-image {
					img {
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
					}
				}
			}
			
			.event-images-top-right {
				display: flex;
				justify-content: space-between;
				width: 100%;
				padding: 20px 0 0 0;
				
				@media screen and (min-width: 768px) {
					& {
						display: block;
						width: 33.333%;
						padding: 0 0 0 20px;
					}
				}
				
				.event-logo {
					aspect-ratio: 1;
					background: #EEE;
					margin: 0;
					display: flex;
					align-items: center;
					justify-content: center;
					width: 45%;
					
					@media screen and (min-width: 768px) {
						& {
							margin: 0 0 30px;
							width: 100%;
						}
					}
					
					img {
						width: 100%;
					}
				}

				.event-map {
					aspect-ratio: 1;
					background: #EEE;
					display: flex;
					justify-content: center;
					align-items: center;
					width: 45%;
					
					@media screen and (min-width: 768px) {
						& {
							width: 100%;
						}
					}
				}
			}
		}
		
		.event-images-bottom {
			position: relative;
			
			.event-images-carousel {
				
				.event-image-item {
					border: 0;
					padding: 0;
					background: transparent;
					display: block;
					width: 100%;
					aspect-ratio: 1;
					user-select: none;
					cursor: pointer;
					
					img {
						width: 100%;
						height: 100%;
						object-fit: cover;
					}
				}
			}
			
			.swiper-button-next {
				background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
                width: 60px;
                height: 60px;
                background-size: 100%;
                background-repeat: no-repeat;
				display: none;
                
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
			}
			
			.swiper-button-prev {
				background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
				transform: scale(-1, 1);
                width: 60px;
                height: 60px;
                background-size: 100%;
                background-repeat: no-repeat;
				display: none;
                
				@media screen and (min-width: 768px) {
					& {
						display: block;
					}
				}
			}

			.swiper-button-prev:after,
			.swiper-button-next:after {
				opacity: 0;
			}
			
			.swiper-pagination {
				position: relative;
				display: block;
				z-index: 100;
				bottom: 0;
				padding: 20px 0 0;
				
				.swiper-pagination-bullet {
					width: 12px;
					height: 12px;
					background: #73cce7;
					opacity: 1;
					margin: 0 8px;
				}
				
				.swiper-pagination-bullet-active {
					opacity: 1;
					background: #2f5487;
				}
				
				@media screen and (min-width: 768px) {
					& {
						display: none;
					}
				}
			}
		}
		
		.event-title-mobile {
			position: relative;
			text-align: center;
			display: block;
			
			@media screen and (min-width: 768px) {
				& {
					display: none;
				}
			}
			
			h2 {
				font-weight: 700;
				text-transform: uppercase;
				font-size: 44px;
				color: #2f5487 !important;
				letter-spacing: 0.04em;
				text-align: center;
				padding: 30px 0 20px 0;
				font-family: 'Asap Condensed', sans-serif;
			}
			
			button.simplefavorite-button {
				position: relative;
				top: 0;
			}
		}
	}
	
	#map {
		width: 100%;
		height: 100%;
	}
}

@media screen and (max-width: 980px) {
	.single-event .event-cols {
		display:flex;
		flex-direction: column-reverse;
		text-align:center;
	}

	.single-event .event-col {
		width:100% !important;
		padding:0 !important;
	}

	.single-event .event-contact {
		padding:0 !important;
		justify-content:center;
	}

	.single-event .event-icons {
		margin-bottom:40px;
	}

	.single-event .event-amenities {
		margin-top:40px;
	}

    .single-event .event-title h1 {
		font-size:46px;
	}
}


/*////////////////////////////////////////
///////////    CATEGORY BAR    ///////////
////////////////////////////////////////*/
.blue-category-bar {
	min-height: 0 !important;
}

.listing-cat-bar {
	padding: 0 40px;


	.listing-cat-bar-carousel {
		
		
		.listing-cat-item {
			max-width: fit-content;
			margin-right:0 !important;
			
			.listing-cat-item-link {
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				text-transform: uppercase;
				color: #FFFFFF !important;
				letter-spacing: 0.5px;
				text-align: center;
				display: block;
				font-size: 14px;
				padding: 15px 20px;
				
				@media screen and (min-width: 981px){
					font-size: 16px;
					padding: 25px 25px;
				}
			}
		}

		.swiper-wrapper {
			justify-content:space-around;
		}
	}
	
	.swiper-button-prev:after,
	.swiper-button-next:after {
        background: url(images/icon-arrow.webp) center no-repeat;
        width: 35px;
        height: 35px;
        content: '';
        position: relative;
        display: block;
        background-size: 100%;
	}

	.swiper-button-prev:after {
		transform: scaleX(-1);
	}
	
	.swiper-button-next,
	.swiper-button-prev {
		transition: 0.4s opacity;
		
		&.swiper-button-disabled {
			opacity: 0;
		}
	}
}

/*////////////////////////////////////////
//////////    CATEGORY CARDS    //////////
////////////////////////////////////////*/
.category-cards-wrap {
	
	.category-heading {
		margin: 0 0 45px;
		
		h2 {
			font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 700;
			text-transform: uppercase;
			font-size: 52px;
			color: #2f5487 !important;
			letter-spacing: 1px;
			text-align: center;
		}
		
		h3 {    
			font-family: 'Pacifico', handwriting !important;
			font-weight: normal !important;
			font-size: 54px;
			color: #2f5487 !important;
			letter-spacing: 0.02em;
			text-align: center;
			text-transform: none !important;
		}
	}
	
	.category-cards {
		position: relative;
		margin: 0 auto;
		max-width: 1600px;
		width: 90%;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		
		.category-card {
			position: relative;
			width: 17.5%;
			aspect-ratio: 1;
			margin: 0 1.25% 120px;
			min-width: 260px;
			
			.cat-card-bg {
				position: relative;
				width: 100%;
				height: 100%;
				background: #EEE;
				overflow: hidden;
				display: flex;
				align-items: center;
				justify-content: center;
				z-index: 1;
				
				img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position: center;
					transform: scale(1);
					transition: 1s transform;
				}
			}
			
			.cat-card-content {
				position: absolute;
				top: 0;
				width: 100%;
				height: 100%;
				display: flex;
				align-items: center;
				justify-content: center;
				flex-direction: column;
				transform: translateY(58%);
				transition: 0.5s all ease-in-out;
				z-index: 5;
				
				.cat-card-icon {
					position: relative;
					display: flex;
					align-items: center;
					justify-content: center;
					width: 80px;
					height: 80px;
					margin: 0 0 10px;
					
					.cat-card-icon-bg {
						position: absolute;
						width: 60px;
						height: 60px;
						transform: rotate(45deg) scale(1);
						border-radius: 5px;
						background: #FFF;
						transition: 0.5s all;
						transition-delay: 0.2s;
					}
					
					.cat-card-icon-color {
						position: relative;
						width: 44px;
						height: 30px;
						background: red;
						transform: rotate(45deg) scale(1);
						border-radius: 2px;
						top: 5px;
						left: -5px;
						transition: 0.5s all;
						transition-delay: 0.2s;
						
						&:after {
							content: '';
							position: absolute;
							width: 37px;
							height: 44px;
							background: red;
							border-radius: 2px;
							top: -14px;
							left: 7px;
						}
					}
					
					.cat-card-icon-arrow {
						position: absolute;
						width: 60px;
						height: 60px;
						background: url(images/icon-arrow.webp);
						background-size: 100%;
						top: 11px;
						opacity: 0;
						transform: scale(1.5);
						transition: 0.5s all;
						transition-delay: 0.2s;
					}
				}
				
				.cat-card-title {
					position: relative;
					font-weight: 700;
					text-transform: uppercase;
					font-size: 24px;
					letter-spacing: 0.03em;
					text-align: center;
					transform: translateY(-10px);
					font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
					transition: 0.9s transform;
					
					&:after {
						content: '';
						position: relative;
						bottom: -10px;
						left: 0;
						width: 100%;
						max-width: 90px;
						height: 3px;
						display: block;
						margin: 0 auto;
						transition: 0.5s all ease-in-out;
					}
				}
			}
			
			&:nth-child(4n+1){ 
				.cat-card-content {
					color: #0099C8;
					
					.cat-card-icon .cat-card-icon-color,
					.cat-card-icon .cat-card-icon-color:after,
					.cat-card-title:after {
						background: #0099C8; 
					}
				}
			}
			
			&:nth-child(4n+2){
				.cat-card-content {
					color: #f05b72;
					
					.cat-card-icon .cat-card-icon-color,
					.cat-card-icon .cat-card-icon-color:after,
					.cat-card-title:after {
						background: #f05b72; 
					}
				}
			}
			
			&:nth-child(4n+3){ 
				.cat-card-content {
					color: #2f9456;
					
					.cat-card-icon .cat-card-icon-color,
					.cat-card-icon .cat-card-icon-color:after,
					.cat-card-title:after {
						background: #2f9456; 
					}
				}
			}
			
			&:nth-child(4n+4){ 
				.cat-card-content {
					color: #2e5487;
					
					.cat-card-icon .cat-card-icon-color,
					.cat-card-icon .cat-card-icon-color:after,
					.cat-card-title:after {
						background: #2e5487; 
					}
				}
			}
			
			&:before {
				content: '';
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background: #000;
				opacity: 0;
				transition: 0.5s all;
				z-index: 2;
			}
			
			&:after {
				content: '';
				position: absolute;
				bottom: -100px;
				width: 100%;
				height: 100px;
			}
			
			&:hover,
			&:focus,
			&:active {
				&:before {
					opacity: 0.3;
				}
				
				.cat-card-bg {
					img {
						transform: scale(1.1);
					}
				}
				
				.cat-card-content {
					color: #FFF;
					transform: translateY(0px);
					
					.cat-card-title {
						transform: translateY(0px);
						
						&:after {
							background: #FFF;
						}
					}
					
					.cat-card-icon {
						.cat-card-icon-bg {
							transform: rotate(45deg) scale(0.8);
							opacity: 0;
						}
						
						.cat-card-icon-color {
							transform: rotate(45deg) scale(0.8);
							opacity: 0;
						}
						
						.cat-card-icon-arrow {
							transform: scale(1);
							opacity: 1;
						}
					}
				}
			}
		}
	}
}

/*////////////////////////////////////////
////////    FEATURED LISTINGS    /////////
////////////////////////////////////////*/
.featured-listings-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #2f5487;
	padding: 65px 0;
	
	.featured-listings-heading {
		margin: 0 0 48px;
		
		h2 {
			font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 700;
			text-transform: uppercase;
			font-size: 48px;
			color: #FFFFFF !important;
			letter-spacing: 1.5px;
			text-align: center;
		}
	}
}

.featured-listings {
	display: flex;
	padding: 0 30px 50px;
	width: 100%;
	max-width: 1300px;
	
	.featured-listing {
		width: 33.333%;
		padding: 0 30px;
		color: #FFF;
		
		.featured-listing-image {
			position: relative;
			aspect-ratio: 1;

			img {
				position: relative;
				aspect-ratio: 1;
				object-fit: cover;
				display: block;
			}
			
			.featured-listing-image-icons {
				position: absolute;
				bottom: 15px;
				right: 15px;
				display: flex;
				width: 80px;
				justify-content: space-between;
				
				.featured-listing-map {
					position: relative;
					width: 35px;
					height: 35px;
					padding: 0;
					border: 0;
					background: transparent;
					display: flex;
					justify-content: center;
					cursor: pointer;
					
					.icon {
						display: block;
						mask: url(images/icon-map-pin.webp) center no-repeat;
						mask-size: 23px;
						background: #FFF;
						width: 35px;
						height: 35px;
						padding: 0;
						border: 0;
						cursor: pointer;
						
						&:hover,
						&:active,
						&:focus {
							background: #f05b72;
						}
					}
				}
			}
		}
		
		h3 {
			color: #FFF;
			text-transform: uppercase;
			letter-spacing: 0.04em;
			padding: 25px 0 20px 0;
			font-size: 26px;
		}
		
		.featured-listing-address,
		.featured-listing-phone,
		.featured-listing-website {
			position: relative;
			padding: 0 0 20px 40px;
			line-height: 22px;
			
			&:before {
				content: '';
				mask-position: center;
				mask-repeat: no-repeat;
				background: #74cce8;
				mask-size: 17px;
				width: 20px;
				height: 26px;
				display: block;
				position: absolute;
				top: 2px;
				left: 0;
			}
			
			a {
				color: #FFF !important;
			}
		}
		
		.featured-listing-address {
			&:before {
				mask-image: url(images/icon-map-pin.webp);
			}
		}
		
		.featured-listing-phone {
			&:before {
				mask-image: url(images/icon-phone.webp);
				mask-size: 21px;
				width: 22px;
			}
		}
		
		.featured-listing-website {
			&:before {
				mask-image: url(images/icon-link.webp);
				mask-size: 21px;
				width: 22px;
			}
			
			a {
				text-decoration: underline;
				font-weight: 700;
			}
		}
		
		.btn {
			display: inline-block;
			color: #FFFFFF !important;
			border-radius: 5px;
			letter-spacing: 0.05em;
			font-size: 18px;
			font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 700;
			text-transform: uppercase;
			padding: 10px 22px;
			background-color: #f05b72;
			margin: 10px 0 0;
		}
	}
}

/*////////////////////////////////////////
/////////    FAVORITE BUTTON    //////////
////////////////////////////////////////*/
.simplefavorite-button {
	width: 35px;
	height: 35px;
	opacity: 1;
	background: transparent;
	border: 0;
	padding: 0;
	
	&.active {
		opacity: 1;
		background: transparent;
		border: 0;
		padding: 0;
		
		.featured-listing-favorite {
			.icon {
				background: #f05b72;
			}
		}
	}

	.featured-listing-favorite {
		position: relative;
		width: 35px;
		height: 35px;
		padding: 0;
		border: 0;
		background: transparent;
		display: flex;
		justify-content: center;
		cursor: pointer;
		
		.icon {
			display: block;
			mask: url(images/icon-heart.webp) center no-repeat;
			mask-size: 35px;
			background: #FFF;
			width: 35px;
			height: 35px;
			
			&:hover,
			&:active,
			&:focus {
				background: #f05b72;
			}
		}
	}
}

.listing-wrapper {
	.simplefavorite-button {
		.featured-listing-favorite {
			.icon {
				mask: url(images/icon-heart-hollow.webp) center no-repeat;
				mask-size: 35px;
				background: #2f5487;
				
				&:hover,
				&:active,
				&:focus {
					background: #f05b72;
				}
			}
		}
		
		&.active {
			.icon {
				mask: url(images/icon-heart.webp) center no-repeat;
				mask-size: 35px;
				background: #f05b72;
			}
		}
	}

	.listing-contact {
		.social-icons {
			margin:40px 0;
		}

		a.listing-social-youtube {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-youtube.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
		a.listing-social-facebook {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-facebook.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
		a.listing-social-x {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-x.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}

		a.listing-social-instagram {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-instagram.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}

		a.listing-social-linkedin {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-linkedin.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
	}
}

.event-wrapper {
	.simplefavorite-button {
		.featured-listing-favorite {
			.icon {
				mask: url(images/icon-heart-hollow.webp) center no-repeat;
				mask-size: 35px;
				background: #2f5487;
				
				&:hover,
				&:active,
				&:focus {
					background: #f05b72;
				}
			}
		}
		
		&.active {
			.icon {
				mask: url(images/icon-heart.webp) center no-repeat;
				mask-size: 35px;
				background: #f05b72;
			}
		}
	}

	.event-contact {
		.social-icons {
			margin:40px 0;
		}

		a.event-social-youtube {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-youtube.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
		a.event-social-facebook {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-facebook.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
		a.event-social-x {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-x.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}

		a.event-social-instagram {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-instagram.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}

		a.event-social-linkedin {
			display: inline-block;
			vertical-align:top;
			width: 30px;
			height: 30px;
			background: url(images/icon-linkedin.png);
			background-size:100%;
			background-repeat:no-repeat;
			margin:0 5px;
			filter: brightness(0) invert(.25) sepia(1) hue-rotate(185deg) saturate(300%);
		}
	}
}

/*////////////////////////////////////////
////////    FAVORITED LISTINGS    ////////
////////////////////////////////////////*/
.listing-icon {
	.tooltip {
		display: block;
		background: #2f5487;
		color: #FFF;
		font-size: 12px;
		text-transform: uppercase;
		font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
		font-weight: 700;
		padding: 8px 12px;
		position: absolute;
		bottom: -30px;
		opacity: 0;
		transition: 0.5s all;
		display: flex;
		justify-content: center;
		
		&:before {
			content: '';
			width: 20px;
			height: 20px;
			background: #2f5487;
			transform: rotate(45deg) skew(10deg, 10deg);
			position: absolute;
			top: -5px;
			z-index: -1;
		}
	}
	
	&:hover {
		.tooltip {
			opacity: 1;
			transform: translateY(10px);
		}
	}
}

.favorites-list h3, 
.favorites-list .featured-listing, 
#et-boc .favorites-list .featured-listing-phone a {
	color: #2d5487 !important;
}


/*////////////////////////////////////////
/////////////    MAP HOME    /////////////
////////////////////////////////////////*/

#map-home-wrapper {
	#map-home {
		width: 100%;
		aspect-ratio: 2 / 1;
		
		@media screen and (max-width: 992px){
			aspect-ratio: 3 / 2;
		}
		
		@media screen and (max-width: 768px){
			aspect-ratio: 1;
		}
		
		@media screen and (max-width: 560px){
			aspect-ratio: 2 / 3;
		}
		
		.gm-style-iw-chr {
			position: relative;
			z-index: 10;
			
			.gm-ui-hover-effect {
				opacity: 0.8;
			}
			
			.gm-ui-hover-effect>span {
				background-color: #FFF;
			}
		}
		
		.gm-style .gm-style-iw-tc::after {
			background: #1f334e;
		}

		.gm-style-iw-d {
			position: relative;
			margin: -48px -18px 0 -12px;
			overflow-x: hidden !important;
			overflow-y: scroll !important;
			
			.listing-map-popup {
				position: relative;
				padding: 20px 25px 15px 25px;
				margin: 0;
				
				.lm-image {
					margin: -20px -25px -18px -25px;
					position: relative;
					border-radius: 8px 8px 0 0;
					overflow: hidden;
					background: #2e5487;
					height: 300px;
					
					@media screen and (max-width: 992px){
						height: 340px;
					}
					
					&:before {
						content: '';
						position: absolute;
						bottom: 0;
						width: 100%;
						left: 0;
						height: 220px;
						background: linear-gradient(0deg, #1c324f, transparent);
						opacity: 1;
						z-index: 1;
					}
					
					img {
						opacity: 0.6;
						width: 420px;
						margin: 0 -10px;
						height: 100%;
						object-fit: cover;
						object-position: center;
						filter: blur(2px);
					}
				}
				
				.lm-upper-content {
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					z-index: 5;
					padding: 45px 25px 25px;
					color: #FFF;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					display: flex;
					flex-direction: column;
					justify-content: space-between;
				}

				h2 {
					padding: 0 25px 5px 0;
					font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					font-size: 28px;
					color: #FFFFFF;
					letter-spacing: 0.04em;
					text-align: center;
					
					a {
						color: #FFF;
					}
				}
				
				.lm-address {
					text-align: center;
					padding: 0 25px 0 0;
					
					a {
						color: #FFF;
					}
				}
				
				.lm-description {
					font-size: 14px;
					line-height: 20px;
					overflow: hidden;
					margin: 0 0 20px;
					text-overflow: ellipsis;
					display: -webkit-box;
					-webkit-line-clamp: 3;
					-webkit-box-orient: vertical;
					
					a {
						color: #FFF;
					}
				}
				
				.lm-info {
					display: flex;
					justify-content: space-between;
					
					.lm-phone a {
						display: inline-block;
						background: #f05a72;
						color: #FFF;
						font-weight: 600;
						padding: 10px 12px;
						border-radius: 4px;
						font-size: 16px;
						
						&:hover,
						&:active,
						&:focus {
							background: #f17a8d;
						}
					}
					
					.lm-website a {
						display: inline-block;
						background: #039357;
						color: #FFF;
						font-weight: 600;
						padding: 10px 12px;
						border-radius: 4px;
						font-size: 16px;
						
						&:hover,
						&:active,
						&:focus {
							background: #259b6a;
						}
					}
				}
			}
		}
	}
	
	#map-legend {
		position: absolute;
		bottom: 40px;
		left: 20px;
		background: #2e5487e0;
		color: #FFF;
		letter-spacing: 0.03em;
		text-align: center;
		font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
		font-weight: 600;
		text-transform: uppercase;
		display: flex;
		padding: 10px 20px 10px 15px;
		border-radius: 4px;
		flex-direction: column;
		
		.map-legend-heading {
			font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 600;
			text-transform: uppercase;
			color: #FFF;
			text-align: left;
			border-bottom: 1px solid #ffffff54;
			margin: 0 0 4px;
			letter-spacing: 0.08em;
			font-size: 13px;
		}
		
		.legend-item {
			display: flex;
			align-items: center;
			background: transparent;
			border: 0;
			padding: 4px 0px;
			font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
			letter-spacing: 0.03em;
			color: #FFF;
			text-transform: uppercase;
			font-weight: 600;
			font-size: 18px;
			cursor: pointer;
			opacity: 0.4;
			
			&:focus,
			&:hover,
			&:active {
				opacity: 0.7;
			}
			
			&.active {
				opacity: 1;
			}
			
			.legend-icon {
				width: 20px;
				height: 20px;
				background-size: 100%;
				background-repeat: no-repeat;
				
			}
			
			&.dine { .legend-icon { background-image: url(images/map-pin-icon-dine.webp); } }
			&.sip { .legend-icon { background-image: url(images/map-pin-icon-sip.webp); } }
			&.stay { .legend-icon { background-image: url(images/map-pin-icon-stay.webp); } }
			&.discover { .legend-icon { background-image: url(images/map-pin-icon-discover.webp); } }
			
			.legend-label {
				padding: 0 0 0 6px;
			}
		}
	}
}


/*////////////////////////////////////////
//////    SUB-CAT CONTENT BLOCKS    //////
////////////////////////////////////////*/
.et-db #et-boc .et_pb_section {
	.subcat-block {
		display: flex;
		align-items: flex-start;
		padding: 40px 0;
		flex-direction: column;
		align-items: center;
		
		@media screen and (min-width: 992px){
			flex-direction: row;
		}
		
		.content-left {
			width: 100%;
			padding: 0 0 40px;
			
			@media screen and (min-width: 992px){
				width: 50%;
				padding: 0 40px 0 0;
			}
		}
		
		.content-right {
			width: 100%;
			
			@media screen and (min-width: 992px){
				width: 50%;
				padding: 0 0 0 40px;
			}
		}
		
		h2.content-heading {
			font-size: 52px;
			text-transform: uppercase;
			color: #2f5487;
			letter-spacing: 0.03em;
			padding: 0 0 20px;
		}
		
		h3.content-heading {
			font-family: 'Pacifico', handwriting;
			font-size: 38px;
			letter-spacing: 0.02em;
			color: #2f5487;
			font-weight: 700;
			padding: 0 0 20px;
		}
		
		h4.content-heading {
			font-size: 36px;
			color: #2f5487;
			letter-spacing: 0.03em;
			padding: 0 0 20px;
			text-transform: uppercase;
		}
		
		.content-image {
			
			img {
				aspect-ratio: 3 / 2;
				height: auto;
				width: 1500px;
				max-width: 100%;
				overflow-clip-margin: content-box;
				overflow: clip;
				position: relative;
				object-fit: cover;
			}

			@media screen and (min-width: 572px){
				max-width: 70%;
				margin: 0 auto;
			}
			
			@media screen and (min-width: 992px){
				max-width: 100%;
			}
		}
		
		.content-text {
			padding: 0 0 20px;
			color: #343536;
		}
		
		.content-grid {
			display: flex;
			flex-wrap: wrap;
			justify-content: space-between;
			
			a {
				display: block;
				width: 50%;
				aspect-ratio: 3 / 2;
				padding: 0 0 20px;
				
				&:nth-child(1n+1){
					padding-right: 10px;
				}
				
				&:nth-child(2n+2){
					padding-left: 10px;
				}
				
				.grid-image {
					display: block;
					width: 100%;
					height: 100%;
					object-fit: cover;
				}
			}
		}
		
		.content-button {
			
			a.button {
				background: #0099c9;
				color: #fff;
				text-transform: uppercase;
				font-family: 'Asap', sans-serif;
				font-weight: 700;
				letter-spacing: 0.02em;
				padding: 7px 20px;
				border-radius: 3px;
				margin-top: 20px;
				display: inline-block;
				text-align: center;
				font-size: 16px;
				transition: 0.3s opacity;
				
				&:hover,
				&:active,
				&:focus {
					opacity: 0.8;
				}
			}
		}
	}
}


/*////////////////////////////////////////
//////////    FEATURED EVENTS    /////////
////////////////////////////////////////*/
.featured-events-wrapper {
	display: flex;
	justify-content: center;
	flex-direction: column;

	@media screen and (min-width: 996px){
		& {
			flex-direction: row;
		}
	}
	
	.featured-events {
		
		
		.featured-event {
			aspect-ratio: 1;
			position: relative;
			display: block;
			background: #DDD;
			
			.featured-event-content {
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				display: flex;
				align-items: center;
				justify-content: flex-end;
				padding: 50px;
				flex-direction: column;
				z-index: 5;
				transition: 0.5s all;
				
				@media screen and (min-width: 1200px){
					& {
						padding: 60px;
					}
				}
				
				.event-title {
					font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					font-size: 28px;
					line-height: 28px;
					color: #ffffff;
					letter-spacing: 0.03em;
					text-align: center;
					
					@media screen and (min-width: 1200px){
						& {
							font-size: 32px;
						}
					}
				}
				
				.event-desc {
					font-size: 14px;
					line-height: 20px;
					overflow: hidden;
					margin: 25px 0 30px;
					text-overflow: ellipsis;
					display: -webkit-box;
					-webkit-line-clamp: 3;
					-webkit-box-orient: vertical;
					text-align: center;
					
					p {
						color: #ffffff;
					}
				}
				
				.event-learn-more {
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					color: #FFF;
					text-transform: uppercase;
					font-weight: 600;
					font-size: 14px;
					letter-spacing: 0.04em;
					background: #0099c8;
					padding: 4px 15px;
					border-radius: 4px;
					transition: 0.5s all;
				}
			}
			
			.featured-event-image {
				background: #2e5487;
				overflow: hidden;
				transition: 0.5s all;
				
				&:before {
					content: '';
					position: absolute;
					bottom: 0;
					width: 100%;
					left: 0;
					height: 320px;
					background: linear-gradient(0deg, #1c324f, transparent);
					opacity: 1;
					z-index: 1;
				}
				
				img {
					display: block;
					opacity: 0.8;
					height: 100%;
					object-fit: cover;
					object-position: center;
					filter: blur(0px);
					transition: 0.5s all;
				}
			}
		}
		
		&.large {
			width: 100%;
			margin: 0 0 20px;
			
			@media screen and (min-width: 996px){
				& {
					width: 50%;
					margin: 0;
				}
			}
			
			.featured-event {
				&:hover,
				&:focus,
				&:active {
					.featured-event-content {
						padding-bottom: 60px;
						
						@media screen and (min-width: 1200px){
							& {
								padding-bottom: 80px;
							}
						}
						
						.event-learn-more {
							margin: 20px 0 0;
						}
					}
					
					.featured-event-image {
						background: #102a4d;
						
						img {
							opacity: 0.3;
							transform: scale(1.1);
						}
					}
				}
			}
		}
		
		&.small {
			width: 100%;
			display: flex;
			flex-direction: column;
			justify-content: space-between;
			
			@media screen and (min-width: 480px){
				& {
					flex-direction: row;
				}
			}
			
			@media screen and (min-width: 996px){
				& {
					flex-direction: column;
					width: calc( 25% - 10px );
					margin-left: 20px;
				}
			}
			
			.featured-event {
				width: 100%;
				margin-bottom: 20px;
				aspect-ratio: 3 / 1;
				
				@media screen and (min-width: 480px){
					& {
						aspect-ratio: 1;
					}
				}
				
				@media screen and (min-width: 480px){
					& {
						width: calc(50% - 10px);
						margin-bottom: 20px;
					}
				}
				
				@media screen and (min-width: 996px){
					& {
						width: 100%;
					}
				}
				
				.featured-event-content {
					padding: 30px;
					transition: 0.5s padding;
					
					@media screen and (min-width: 1200px){
						& {
							padding: 40px;
						}
					}
				}
				
				.event-title {
					font-size: 20px;
					line-height: 20px;
					
					@media screen and (min-width: 1200px){
						& {
							font-size: 24px;
							line-height: 24px;
						}
					}
				}
				
				.event-learn-more {
					height: 0;
					overflow: hidden;
					padding: 0 15px;
					opacity: 0;
					transition: 0.5s all;
				}
				
				.featured-event-image {
					&:before {
						height: 160px;
					}
					
					img {
						aspect-ratio: 3 / 1;
						
						@media screen and (min-width: 480px){
							& {
								aspect-ratio: 1;
							}
						}
					}
				}
				
				&:hover,
				&:focus,
				&:active {
					.featured-event-content {
						padding-bottom: 60px;
						
						@media screen and (min-width: 1200px){
							& {
								padding-bottom: 80px;
							}
						}
						
						.event-learn-more {
							opacity: 1;
							height: 35px;
							padding: 4px 15px;
							margin: 20px 0 0;
						}
					}
					
					.featured-event-image {
						background: #102a4d;
						
						img {
							opacity: 0.3;
							transform: scale(1.1);
						}
					}
				}
			}
		}
	}
}


/*////////////////////////////////////////
//////////    FEATURED EVENTS    /////////
////////////////////////////////////////*/
#hm-wrapper {
	display: none;
	
	#hm-toggle {
		position: relative;
		background: transparent;
		border: 0;
		padding: 0;
		margin: 12px 0 0;
		height: 50px;
		width: 50px;
		cursor: pointer;
		transition: 0.3s all;
		
		span {
			position: absolute;
			top: 14px;
			left: 10px;
			display: block;
			width: 28px;
			height: 5px;
			background: #2f5487;
			box-shadow: 0 8px #2f5487, 0 16px #2f5487;
			border-radius: 4px;
		}
		
		&:hover,
		&:active,
		&:focus {
			opacity: 0.8;
		}
	}
	
}

#hm-menu-wrapper {
	position: fixed;
	display: none;
	background: rgb(32 58 92 / 90%);
	padding: 5.5%;
	top: 0;
	left: 0;
	z-index: 1000000;
	width: 100%;
	height: 100%;
	
	&.active {
		display: block;
	}
	
	#hm-menu-close {
		position: absolute;
		top: 0px;
		right: 0px;
		background: transparent;
		color: #FFF;
		border: 0;
		padding: 0;
		width: 100px;
		height: 100px;
		transform: rotate(45deg);
		font-size: 100px;
		font-weight: 300;
		z-index: 20;
		cursor: pointer;
	}
	
	#hm-menu {
		overflow-y: auto;
		height: 100%;
	}

	#menu-hamburger-menu {
		list-style: none;
		padding: 0;
		margin: 0;
		
		.menu-item {
			a {
				display: inline-block;
				padding: 0;
				line-height: 70px;
				letter-spacing: 0.04em;
				color: #FFF;
				font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				text-transform: uppercase;
				font-size: 46px;
				letter-spacing: 0.04em;
				
				&:hover,
				&:active,
				&:focus {
					opacity: 0.8;
				}
			}
		}
	}
}

html.hm-menu-open {
	overflow: hidden;
}

#st-menu {
	#hm-wrapper {
		@media screen and (min-width: 981px){
			& {
				display: block;
			}
		}
	}
}


/*////////////////////////////////////////
//////////    SEARCH RESULTS    //////////
////////////////////////////////////////*/
.search-results {
	article {
		position: relative;
		border-bottom: 1px solid #DDD;
		padding: 40px 0;
		margin: 0 0 0px;
		
		&:last-child {
			border-bottom: 0;
		}
		
		&:after {
			content: 'Read More';
			font-size: 14px;
			visibility: visible;
			height: auto;
			font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 700;
			text-transform: uppercase;
			font-size: 16px;
			letter-spacing: 0.03em;
			color: #fff;
			background: #f05a72;
			border-radius: 5px;
			padding: 10px 20px;
			display: inline-block;
			margin: 20px 0 0;
			cursor: pointer;
		}
		
		&:hover,
		&:active,
		&:focus {
			&:after {
				opacity: 0.8;
			}
		}
		
		.entry-featured-image-url {
			display: none;
		}
		
		.entry-title {
			a {
				&:before {
					content: '';
					position: absolute;
					top: 0;
					left: 0;
					width: 100%;
					height: 100%;
					display: block;
					z-index: 5;
				}
			}
		}
		
		p.post-meta {
			display: none;
		}
	}
	
	.pagination a {
		font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
		font-weight: 700;
		text-transform: uppercase;
		letter-spacing: 0.03em;
		font-size: 20px;
		color: #2d5487;
	}
}


/*////////////////////////////////////////
///////    SUBCATEGORY FILTERS    ////////
////////////////////////////////////////*/
.subcategory-filtered-list {
	display: none;
	align-items: flex-start;
	justify-content: space-between;
	flex-direction: column;
	
	@media screen and (min-width: 981px){
		flex-direction: row;
	}
	
	&.active {
		display: flex;
	}
	
	.sfl-left {
		width: calc(100% + 40px);
		padding: 22px 25px;
		margin: 0 -20px;
		background: #f5f5f5;
		border-radius: 6px;

		@media screen and (min-width: 981px){
			width: 360px;
			padding: 32px 40px;
			margin: 0;
		}
		
		@media screen and (min-width: 1340px){
			width: 400px;
		}
		
		.sfl-mobile-data-toggle {
			display: block;
			padding: 0 0 10px;
			
			@media screen and (min-width: 981px){
				display: none;
			}
			
			.sfl-mobile-view-toggle {
				position: relative;
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 800;
				text-transform: uppercase;
				color: #0097c8;
				font-size: 18px;
				line-height: 20px;
				letter-spacing: 0.03em;
				background: transparent;
				border: 0;
				padding: 5px 10px 5px 23px;
				display: none;
				
				&.active {
					display: block;
				}
				
				&:before {
					content: '';
					position: absolute;
					mask-position: center;
					mask-repeat: no-repeat;
					mask-size: contain;
					width: 20px;
					aspect-ratio: 1;
					background: #0097c8;
					margin: 0 8px 0 0;
					left: 0px;
					top: 5px;
				}
			}
			
			#sfl-mobile-view-grid {
				&:before {
					mask-image: url(images/icon-list.webp);
				}
			}
			
			#sfl-mobile-view-map {
				padding: 5px 10px 5px 27px;
				
				&:before {
					mask-image: url(images/icon-map-pin.webp);
				}
			}
		}
		
		.sfl-filter-items-collapse {
			display: none;
			opacity: 0;
			padding: 0 0 20px;
			
			&.show {
				display: block;
				transition: 0.4s all;
			}
			
			&.fade {
				opacity: 1;
			}
			
			@media screen and (min-width: 981px){
				display: block;
				opacity: 1;
			}
		}
		
		.sfl-filter-item {
			padding: 0 0 30px;
			
			@media screen and (min-width: 981px){
				padding: 0 0 40px;
			}
			
			&.sfl-filter-item-search {
				padding: 0 0 10px;
				display: flex;

				@media screen and (min-width: 981px){
					padding: 0 0 20px;
				}
			}
			
			.sfl-filter-heading {
				font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				text-transform: uppercase;
				color: #2f5487;
				font-size: 18px;
				letter-spacing: 0.05em;
				padding: 0 0 20px;
				
				@media screen and (min-width: 981px){
					font-size: 22px;
				}
			}
			
			.sfl-filter-search-wrap {
				background: #FFF;
				border-radius: 6px;
				display: flex;
				align-items: center;
				margin: 0 10px 0 0;
				width: calc(100% - 60px);
				
				@media screen and (min-width: 981px){
					margin: 0 0 20px;
					width: 100%;
				}
				
				#sfl-filter-search {
					background: transparent;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 800;
					text-transform: uppercase;
					color: #0097c8;
					font-size: 16px;
					line-height: 20px;
					letter-spacing: 0.03em;
					text-align: left;
					padding: 15px 25px 15px 25px;
					width: calc(100% - 60px);
					border: 0;
					
					&::placeholder {
						color: #0097c8;
					}
				}
				
				#sfl-filter-search-submit {
					width: 50px;
					aspect-ratio: 1;
					border: 0;
					padding: 0;
					background: #0097c8;
					mask-image: url(images/icon-search.webp);
					mask-size: 30px;
					mask-position: center;
					mask-repeat: no-repeat;
					cursor: pointer;
					transition: 0.4s all;
					
					&:hover,
					&:focus,
					&:active {
						transform: scale(1.1);
					}
				}
			}
			
			&.sfl-filter-date-range {
				
				.filter-item-date-inputs-wrap {
					position: relative;
					display: flex;
					
					.filter-item-date-start,
					.filter-item-date-end {
						position: unset !important;
						width: 50%;
						padding: 0 5% 0 0;
						
						#date-start-input,
						#date-end-input {
							font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
							font-weight: 800;
							text-transform: uppercase;
							color: #0097c8;
							font-size: 16px;
							line-height: 20px;
							letter-spacing: 0.03em;
							text-align: center;
							border: 0;
							padding: 10px 0;
							border-radius: 5px;
							width: 100%;
							
							&.active {
								box-shadow: 0 0 0 2px #FFF, 0 0 0 4px #0097c8;
							}
						}
					}
					
					.filter-item-date-end {
						padding: 0 0 0 5%;
					}
				}
				
				.qs-datepicker-container {
					position: absolute;
					top: 0 !important;
					left: 0 !important;
					width: 100%;
					border: 0;
					border-radius: 0;
					background: transparent;
					box-shadow: none;
					
					.qs-controls {
						background: transparent;
						padding: 0 0 10px;
						
						.qs-month-year {
							font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
							font-weight: 700;
							text-transform: uppercase;
							color: #2f5487;
							font-size: 22px;
							letter-spacing: 0.05em;
						}
						
						.qs-arrow {
							&.qs-left {
								mask-image: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
								transform: scale(-1, 1);
								background: #a3a6a7;
								mask-size: 100%;
								
								&:hover {
									background: #7b8589;
								}
							}
							
							&.qs-right {
								mask-image: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
								background: #a3a6a7;
								mask-size: 100%;
								
								&:hover {
									background: #7b8589;
								}
							}
							
							&:after {
								display: none;
							}
						}
					}
					
					.qs-squares {
						background: #FFF;
						border-radius: 5px;
						padding: 10px;
						
						.qs-day {
							font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
							font-weight: 800;
							text-transform: uppercase;
							color: #2f5487;
							font-size: 14px;
							letter-spacing: 0.03em;
						}
						
						.qs-square {
							border-radius: 6px;
							height: 34px;
							
							&.qs-num {
								font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
								font-weight: 500;
								text-transform: uppercase;
								color: #2f5487;
								font-size: 14px;
								letter-spacing: 0.03em;
								
								&.qs-active,
								&.qs-range-end,
								&.qs-range-start {
									background: #0097c8;
									color: #FFF;
									font-weight: 700;
								}
								
								&.qs-range-end {
									border-top-left-radius: 0;
									border-bottom-left-radius: 0;
								}
								
								&.qs-range-start {
									border-top-right-radius: 0;
									border-bottom-right-radius: 0;
								}
								
								&.qs-range-middle {
									border-radius: 0;
								}
							}
						}
						
						.qs-square:not(.qs-empty):not(.qs-disabled):not(.qs-day):not(.qs-active):hover {
							background: #2f5487;
							color: #FFF;
							font-weight: 600;
						}
					}
				}
				
				.sfl-filter-date-calendars {
					height: 282px;
					
					.date-start-calendar,
					.date-end-calendar {
						position: relative;
						margin: 20px 0 0;
						height: 262px;
						/*background: blue;*/
						display: none;
						
						&.active {
							display: block;
						}
						
						#date-start-input-cal,
						#date-end-input-cal {
							height: 0;
							padding: 0;
							border: 0;
							visibility: hidden;
							position: absolute;
						}
					}
					
					.date-end-calendar {
						/*background: green;*/
					}
				}
			}
			
			&.sfl-filter-date-periods {
				display: none;
				
				.filter-item-select-wrap {
					display: flex;
					
					.filter-item-select {
						padding: 10px;
						border-radius: 2px;
						text-align: center;
						
						&.active {
							box-shadow: 0 0 0 2px #0097c8;
						}
					}
				}
			}
			
			.sfl-mobile-filter-toggle {
				display: block;
				width: 50px;
				height: 50px;
				padding: 0;
				margin: 0;
				border: 0;
				background: #0097c8;
				mask-image: url(images/icon-settings.webp);
				mask-size: 30px;
				mask-position: center;
				mask-repeat: no-repeat;
				cursor: pointer;
				transition: 0.4s all;
				
				@media screen and (min-width: 981px){
					display: none;
				}
			}
			
			.filter-item-select-wrap {
				
				
				.filter-item-select {
					position: relative;
					width: 100%;
					border: 0;
					background: transparent;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 800;
					text-transform: uppercase;
					color: #0097c8;
					font-size: 14px;
					letter-spacing: 0.03em;
					text-align: left;
					padding: 10px 0 10px 35px;
					cursor: pointer;
					user-select: none;
					
					@media screen and (min-width: 981px){
						font-size: 16px;
					}
					
					.filter-item-icon {
						position: absolute;
						top: 12px;
						left: 4px;
						width: 16px;
						aspect-ratio: 1;
						box-shadow: inset 0 0 0 2.5px #0097c8;
						transform: rotate(45deg);
						margin: 0 15px 0 0;
						transition: 0.4s all;
					}
					
					&:hover,
					&:focus,
					&:active {
						.filter-item-icon {
							box-shadow: inset 0 0 0 1.5px #0097c8, 0 0 0 1px #0097c8;
							background: #FFF;
						}
					}
					
					&.active {
						.filter-item-icon {
							box-shadow: inset 0 0 0 15px #0097c8;
						}
					}
					
					.filter-item-label {

						.carrot {
							width: 8px;
							aspect-ratio: 1;
							transform: rotate(45deg);
							border-right: 2px solid #0097c8;
							display: inline-block;
							border-top: 2px solid #0097c8;
							vertical-align: top;
							margin: 7px 3px 0 0;
						}
					}
					
					&.disabled {
						pointer-events: none;
						
						.filter-item-icon {
							box-shadow: inset 0 0 0 2.5px #ddd;
						}
						
						.filter-item-label {
							color: #ddd;
						}
					}
				}
			}
		}
		
		.sfl-filters-cta-bar {
			display: flex;
			justify-content: space-between;
			align-items: flex-start;
			flex-direction: column;
			
			@media screen and (min-width: 981px){
				flex-direction: row;
				justify-content: space-between;
			}
			
			#done-filters {
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 800;
				text-transform: uppercase;
				color: #FFFFFF;
				font-size: 16px;
				background: #0097c8;
				border: 0;
				margin: 0 25px 0 0;
				border-radius: 1.5px;
				padding: 8px 24px;
				width: 140px;
				cursor: pointer;
				box-shadow: 0 0 0 2.5px #0097c8;
				transition: 0.4s all;
				
				@media screen and (min-width: 981px){
					display: none;
				}
			}
			
			#clear-filters {
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 800;
				text-transform: uppercase;
				color: #0097c8;
				font-size: 14px;
				background: transparent;
				border: 0;
				margin: 20px 10px 20px 0;
				display: flex;
				align-items: center;
				border-radius: 1.5px;
				padding: 8px 24px;
				cursor: pointer;
				box-shadow: 0 0 0 2.5px #0097c8;
				transition: 0.4s all;
				
				@media screen and (min-width: 981px){
					margin: 0 10px 0 0;
					font-size: 16px;
				}
				
				&.dim {
					color: #222;
					box-shadow: 0 0 0 2.5px #222;
					opacity: 0.3;
					
					&:hover {
						background: transparent;
						color: #222;
					}
					
					&:active,
					&:focus {
						box-shadow: 0 0 0 2.5px #222;
					}
				}
				
				&:active,
				&:focus {
					box-shadow: 0 0 0 3.5px #0097c8;
				}
				
				&:hover {
					background: #0097c8;
					color: #FFF;
				}
			}
			
			#total-results {
				color: #000;
				font-size: 18px;
				opacity: 0;
				transition: 0.8s all;
				
				&:after {
					content: ' Result(s)';
				}
				&.active {
					opacity: 1;
				}
			}
		}
		
		.sfl-mobile-selections-wrap {
			display: block;
			opacity: 0;
			height: 0;
			transition: 0.4s opacity;
			
			&.active {
				height: auto;
				opacity: 1;
			}
			@media screen and (min-width: 981px){
				display: none;
			}
			
			.sfl-mobile-selections-label {
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 800;
				text-transform: uppercase;
				color: #0097c8;
				font-size: 16px;
				letter-spacing: 0.03em;
			}
			
			.sfl-mobile-selections {
				
				.filter-selection-item {
					position: relative;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 800;
					text-transform: uppercase;
					color: #FFF;
					font-size: 16px;
					letter-spacing: 0.03em;
					background: #0097c8;
					border: 0;
					border-radius: 4px;
					padding: 10px 40px 10px 15px;
					margin: 0 10px 10px 0;
					
					&:before {
						content: '+';
						position: absolute;
						top: 0;
						right: 0;
						width: 38px;
						height: 38px;
						line-height: 31px;
						text-align: center;
						transform: rotate(45deg);
						font-size: 30px;
						font-weight: 400;
					}
				}
			}
		}
	}
	
	.sfl-right {
		width: calc(100% + 40px);
		padding: 0;
		margin: 20px -20px 0 -20px;
		
		@media screen and (min-width: 981px){
			width: calc(100% - 360px);
			padding: 0 0 0 40px;
			margin: 0 -20px 0;
		}
		
		@media screen and (min-width: 1340px){
			width: calc( 100% - 400px );
		}
		
		.sfl-view-mode {
			display: none;
			align-items: center;
			padding: 32px 0 20px;
			user-select: none;
			
			@media screen and (min-width: 981px){
				display: flex;
			}
			
			.sfl-view-mode-label {
				font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				text-transform: uppercase;
				color: #2f5487;
				font-size: 24px;
				letter-spacing: 0.05em;
				padding: 0 10px 0 0;
			}
			
			.sfl-view-mode-btn {
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 800;
				text-transform: uppercase;
				color: #0097c8;
				font-size: 18px;
				background: transparent;
				border: 0;
				margin: 0 10px 0 0;
				display: flex;
				align-items: center;
				border-radius: 1.5px;
				padding: 12px;
				cursor: pointer;
				
				&:before {
					content: '';
					mask-position: center;
					mask-repeat: no-repeat;
					mask-size: contain;
					width: 25px;
					aspect-ratio: 1;
					background: #0097c8;
					margin: 0 8px 0 0;
				}
				
				&.grid {
					&:before {
						mask-image: url(images/icon-grid.webp);
					}
				}
				
				&.list {
					&:before {
						mask-image: url(images/icon-list.webp);
					}
				}
				
				&.map {
					&:before {
						mask-image: url(images/icon-map-pin.webp);
					}
				}
				
				&:hover,
				&:focus,
				&:active {
					box-shadow: 0 0 0 2.5px rgb(0 151 200 / 40%);
				}
				
				&.active {
					box-shadow: 0 0 0 2.5px #0097c8;
				}
			}
		}

		.sfl-hidden-all-listings {
			display: none;
		}
		
		.sfl-all-views {
			position: relative;
			height: 0;
			transition: 0.8s all;
			overflow: hidden;
		}
		
		.sfl-grid-wrap,
		.sfl-list-wrap,
		.sfl-map-wrap {
			position: absolute;
			width: 100%;
			opacity: 0;
			z-index: 0;
			pointer-events: none;
			transform: translateX(10px);
			transition: 0.8s all;
			
			&.active {
				opacity: 1;
				transform: translateX(0px);
				pointer-events: all;
				z-index: 1;
			}
		}
		
		.sfl-grid-wrap {
			display: flex;
			flex-wrap: wrap;
			justify-content: flex-start;
			
			.featured-listing {
				display: flex;
				padding: 0 0 40px;
				color: #222;
				flex-direction: column;
				flex: 1 0 auto;
				width: 100%;
				border-bottom: 1px solid #BBB;
				margin: 0 0 40px;
				
				@media screen and (min-width: 981px){
					max-width: 50%;
					padding: 0 20px 40px 0;
					border-bottom: 0px;
					margin: 0;
				}
				
				@media screen and (min-width: 1340px){
					max-width: 33.3333%;
				}
				
				.featured-listing-image {
					position: relative;
					aspect-ratio: 1;

					img {
						position: relative;
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
						background: #2f5487;
						font-size: 0;
					}
					
					.featured-listing-image-icons {
						position: absolute;
						bottom: 15px;
						right: -28px;
						display: flex;
						width: 80px;
						justify-content: space-between;
						
						.featured-listing-map {
							position: relative;
							width: 35px;
							height: 35px;
							padding: 0;
							border: 0;
							background: transparent;
							display: flex;
							justify-content: center;
							cursor: pointer;
							
							.icon {
								display: block;
								mask: url(images/icon-map-pin.webp) center no-repeat;
								mask-size: 23px;
								background: #FFF;
								width: 35px;
								height: 35px;
								padding: 0;
								border: 0;
								cursor: pointer;
								
								&:hover,
								&:active,
								&:focus {
									background: #f05b72;
								}
							}
						}
					}
				}
				
				h3 {
					color: #2f5487;
					text-transform: uppercase;
					letter-spacing: 0.04em;
					padding: 25px 0 20px 0;
					font-size: 26px;
				}
				
				.featured-listing-address,
				.featured-listing-phone,
				.featured-listing-website {
					position: relative;
					padding: 2px 0 20px 30px;
					line-height: 22px;
					
					&:before {
						content: '';
						mask-position: center;
						mask-repeat: no-repeat;
						background: #0097c8;
						mask-size: 15px;
						width: 18px;
						height: 24px;
						display: block;
						position: absolute;
						top: 2px;
						left: 0;
					}
				}
				
				.featured-listing-address {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-map-pin.webp);
					}
				}
				
				.featured-listing-phone {
					a {
						color: #222 !important;
					}
					
					&:before {
						mask-image: url(images/icon-phone.webp);
						mask-size: 21px;
						width: 22px;
					}
				}
				
				.featured-listing-website {
					&:before {
						mask-image: url(images/icon-link.webp);
						mask-size: 18px;
						width: 20px;
					}
					
					.listing-website-btn {
						text-decoration: underline;
						font-weight: 700;
						color: #2f5487 !important;
					}
				}
				
				.btn {
					display: inline-block;
					color: #FFFFFF !important;
					border-radius: 5px;
					letter-spacing: 0.05em;
					font-size: 18px;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					padding: 10px 22px;
					background-color: #f05b72;
					margin: 10px 0 0;
				}
			}
			
			.featured-event {
				display: flex;
				padding: 0 0 40px;
				color: #222;
				flex-direction: column;
				flex: 1 0 auto;
				width: 100%;
				border-bottom: 1px solid #BBB;
				margin: 0 0 40px;
				
				@media screen and (min-width: 981px){
					max-width: 50%;
					padding: 0 20px 40px 0;
					border-bottom: 0px;
					margin: 0;
				}
				
				@media screen and (min-width: 1340px){
					max-width: 33.3333%;
				}
				
				a {
					text-decoration: none;
				}
				
				.featured-event-image {
					position: relative;
					aspect-ratio: 1;

					img {
						position: relative;
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
						background: #2f5487;
						font-size: 0;
					}
					
					.featured-event-image-icons {
						position: absolute;
						bottom: 15px;
						right: -28px;
						display: flex;
						width: 80px;
						justify-content: space-between;
						
						.featured-event-map {
							position: relative;
							width: 35px;
							height: 35px;
							padding: 0;
							border: 0;
							background: transparent;
							display: flex;
							justify-content: center;
							cursor: pointer;
							
							.icon {
								display: block;
								mask: url(images/icon-map-pin.webp) center no-repeat;
								mask-size: 23px;
								background: #FFF;
								width: 35px;
								height: 35px;
								padding: 0;
								border: 0;
								cursor: pointer;
								
								&:hover,
								&:active,
								&:focus {
									background: #f05b72;
								}
							}
						}
					}
				}
				
				h3 {
					color: #2f5487;
					text-transform: uppercase;
					letter-spacing: 0.04em;
					padding: 25px 0 20px 0;
					font-size: 26px;
				}
				
				.featured-event-address,
				.featured-event-phone,
				.featured-event-website,
				.featured-event-dates {
					position: relative;
					padding: 2px 0 20px 30px;
					line-height: 22px;
					
					&:before {
						content: '';
						mask-position: center;
						mask-repeat: no-repeat;
						background: #0097c8;
						mask-size: 15px;
						width: 18px;
						height: 24px;
						display: block;
						position: absolute;
						top: 2px;
						left: 0;
					}
				}
				
				.featured-event-address {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-map-pin.webp);
					}
				}
				
				.featured-event-dates {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-calendar.webp);
						mask-size: 23px;
						width: 24px;
					}
				}
				
				.featured-event-phone {
					a {
						color: #222 !important;
					}
					
					&:before {
						mask-image: url(images/icon-phone.webp);
						mask-size: 21px;
						width: 22px;
					}
				}
				
				.featured-event-website {
					&:before {
						mask-image: url(images/icon-link.webp);
						mask-size: 18px;
						width: 20px;
					}
					
					.event-website-btn {
						text-decoration: underline;
						font-weight: 700;
						color: #2f5487 !important;
					}
				}
				
				.btn {
					display: inline-block;
					color: #FFFFFF !important;
					border-radius: 5px;
					letter-spacing: 0.05em;
					font-size: 18px;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					padding: 10px 22px;
					background-color: #f05b72;
					margin: 10px 0 0;
				}
			}
		}
		
		.sfl-list-wrap {
			.featured-listing {
				display: flex;
				width: 100%;
				color: #222;
				flex-direction: row;
				border-bottom: 1px solid #BBB;
				padding: 0 20px 40px 0;
				margin: 0 0 40px;
				
				.featured-listing-image {
					position: relative;
					width: 260px;
					padding: 0 40px 0 0;

					img {
						position: relative;
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
						background: #2f5487;
					}
					
					.featured-listing-image-icons {
						position: absolute;
						bottom: 15px;
						right: 12px;
						display: flex;
						width: 80px;
						justify-content: space-between;
						
						.featured-listing-map {
							position: relative;
							width: 35px;
							height: 35px;
							padding: 0;
							border: 0;
							background: transparent;
							display: flex;
							justify-content: center;
							cursor: pointer;
							
							.icon {
								display: block;
								mask: url(images/icon-map-pin.webp) center no-repeat;
								mask-size: 23px;
								background: #FFF;
								width: 35px;
								height: 35px;
								padding: 0;
								border: 0;
								cursor: pointer;
								
								&:hover,
								&:active,
								&:focus {
									background: #f05b72;
								}
							}
						}
					}
				}
				
				.featured-listing-content {
					display: flex;
					flex: 1 0 auto;
					flex-direction: column;
					width: calc(100% - 260px);
				}
				
				h3 {
					color: #2f5487;
					text-transform: uppercase;
					letter-spacing: 0.04em;
					padding: 0 0 20px 0;
					font-size: 26px;
				}
				
				.featured-listing-address,
				.featured-listing-phone,
				.featured-listing-website {
					position: relative;
					padding: 2px 0 20px 30px;
					line-height: 22px;
					
					&:before {
						content: '';
						mask-position: center;
						mask-repeat: no-repeat;
						background: #0097c8;
						mask-size: 15px;
						width: 18px;
						height: 24px;
						display: block;
						position: absolute;
						top: 2px;
						left: 0;
					}
				}
				
				.featured-listing-address {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-map-pin.webp);
					}
				}
				
				.featured-listing-phone {
					a {
						color: #222 !important;
					}
					
					&:before {
						mask-image: url(images/icon-phone.webp);
						mask-size: 21px;
						width: 22px;
					}
				}
				
				.featured-listing-website {
					&:before {
						mask-image: url(images/icon-link.webp);
						mask-size: 18px;
						width: 20px;
					}
					
					.listing-website-btn {
						text-decoration: underline;
						font-weight: 700;
						color: #2f5487 !important;
					}
				}
				
				.btn {
					display: inline-block;
					color: #FFFFFF !important;
					border-radius: 5px;
					letter-spacing: 0.05em;
					font-size: 18px;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					padding: 10px 22px;
					background-color: #f05b72;
					margin: 10px 0 0;
				}
			}
			
			.featured-event {
				display: flex;
				width: 100%;
				color: #222;
				flex-direction: row;
				border-bottom: 1px solid #BBB;
				padding: 0 20px 40px 0;
				margin: 0 0 40px;
				
				.featured-event-image {
					position: relative;
					width: 260px;
					padding: 0 40px 0 0;

					img {
						position: relative;
						aspect-ratio: 1;
						object-fit: cover;
						display: block;
						background: #2f5487;
					}
					
					.featured-event-image-icons {
						position: absolute;
						bottom: 15px;
						right: 12px;
						display: flex;
						width: 80px;
						justify-content: space-between;
						
						.featured-event-map {
							position: relative;
							width: 35px;
							height: 35px;
							padding: 0;
							border: 0;
							background: transparent;
							display: flex;
							justify-content: center;
							cursor: pointer;
							
							.icon {
								display: block;
								mask: url(images/icon-map-pin.webp) center no-repeat;
								mask-size: 23px;
								background: #FFF;
								width: 35px;
								height: 35px;
								padding: 0;
								border: 0;
								cursor: pointer;
								
								&:hover,
								&:active,
								&:focus {
									background: #f05b72;
								}
							}
						}
					}
				}
				
				.featured-event-content {
					display: flex;
					flex: 1 0 auto;
					flex-direction: column;
					width: calc(100% - 260px);
				}
				
				h3 {
					color: #2f5487;
					text-transform: uppercase;
					letter-spacing: 0.04em;
					padding: 0 0 20px 0;
					font-size: 26px;
				}
				
				.featured-event-dates,
				.featured-event-address,
				.featured-event-phone,
				.featured-event-website {
					position: relative;
					padding: 2px 0 20px 30px;
					line-height: 22px;
					
					&:before {
						content: '';
						mask-position: center;
						mask-repeat: no-repeat;
						background: #0097c8;
						mask-size: 15px;
						width: 18px;
						height: 24px;
						display: block;
						position: absolute;
						top: 2px;
						left: 0;
					}
				}
				
				.featured-event-address {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-map-pin.webp);
					}
				}
				
				.featured-event-dates {
					flex: 1 0 auto;
					
					&:before {
						mask-image: url(images/icon-calendar.webp);
						mask-size: 23px;
						width: 24px;
					}
				}
				
				.featured-event-phone {
					a {
						color: #222 !important;
					}
					
					&:before {
						mask-image: url(images/icon-phone.webp);
						mask-size: 21px;
						width: 22px;
					}
				}
				
				.featured-event-website {
					&:before {
						mask-image: url(images/icon-link.webp);
						mask-size: 18px;
						width: 20px;
					}
					
					.event-website-btn {
						text-decoration: underline;
						font-weight: 700;
						color: #2f5487 !important;
					}
				}
				
				.btn {
					display: inline-block;
					color: #FFFFFF !important;
					border-radius: 5px;
					letter-spacing: 0.05em;
					font-size: 18px;
					font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
					font-weight: 700;
					text-transform: uppercase;
					padding: 10px 22px;
					background-color: #f05b72;
					margin: 10px 0 0;
				}
			}
		}
		
		.sfl-map-wrap {
			
			
			#filter-map {
				width: 100%;
				aspect-ratio: 1;
				
				@media screen and (max-width: 992px){
					aspect-ratio: 3 / 2;
				}
				
				@media screen and (max-width: 768px){
					aspect-ratio: 1;
				}
				
				@media screen and (max-width: 560px){
					aspect-ratio: 2 / 3;
				}
				
				.gm-style-iw-chr {
					position: relative;
					z-index: 10;
					
					.gm-ui-hover-effect {
						opacity: 0.8;
					}
					
					.gm-ui-hover-effect>span {
						background-color: #FFF;
					}
				}
				
				.gm-style .gm-style-iw-tc::after {
					background: #1f334e;
				}

				.gm-style-iw-d {
					position: relative;
					margin: -48px -18px 0 -12px;
					overflow-x: hidden !important;
					overflow-y: scroll !important;
					
					.listing-map-popup {
						position: relative;
						padding: 20px 25px 15px 25px;
						margin: 0;
						
						.lm-image {
							margin: -20px -25px -18px -25px;
							position: relative;
							border-radius: 8px 8px 0 0;
							overflow: hidden;
							background: #2e5487;
							height: 300px;
							
							@media screen and (max-width: 992px){
								height: 340px;
							}
							
							&:before {
								content: '';
								position: absolute;
								bottom: 0;
								width: 100%;
								left: 0;
								height: 220px;
								background: linear-gradient(0deg, #1c324f, transparent);
								opacity: 1;
								z-index: 1;
							}
							
							img {
								opacity: 0.6;
								width: 420px;
								margin: 0 -10px;
								height: 100%;
								object-fit: cover;
								object-position: center;
								filter: blur(2px);
							}
						}
						
						.lm-upper-content {
							position: absolute;
							top: 0;
							left: 0;
							width: 100%;
							height: 100%;
							z-index: 5;
							padding: 45px 25px 25px;
							color: #FFF;
							font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
							display: flex;
							flex-direction: column;
							justify-content: space-between;
						}

						h2 {
							padding: 0 25px 5px 0;
							font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
							font-weight: 700;
							text-transform: uppercase;
							font-size: 28px;
							color: #FFFFFF;
							letter-spacing: 0.04em;
							text-align: center;
							
							a {
								color: #FFF;
							}
						}
						
						.lm-address {
							text-align: center;
							padding: 0 25px 0 0;
							
							a {
								color: #FFF;
							}
						}
						
						.lm-description {
							font-size: 14px;
							line-height: 20px;
							overflow: hidden;
							margin: 0 0 20px;
							text-overflow: ellipsis;
							display: -webkit-box;
							-webkit-line-clamp: 3;
							-webkit-box-orient: vertical;
							
							a {
								color: #FFF;
							}
						}
						
						.lm-info {
							display: flex;
							justify-content: space-between;
							
							.lm-phone a {
								display: inline-block;
								background: #f05a72;
								color: #FFF;
								font-weight: 600;
								padding: 10px 12px;
								border-radius: 4px;
								font-size: 16px;
								
								&:hover,
								&:active,
								&:focus {
									background: #f17a8d;
								}
							}
							
							.lm-website a {
								display: inline-block;
								background: #039357;
								color: #FFF;
								font-weight: 600;
								padding: 10px 12px;
								border-radius: 4px;
								font-size: 16px;
								
								&:hover,
								&:active,
								&:focus {
									background: #259b6a;
								}
							}
						}
					}
					
					.event-map-popup {
						position: relative;
						padding: 20px 25px 15px 25px;
						margin: 0;
						
						.em-image {
							margin: -20px -25px -18px -25px;
							position: relative;
							border-radius: 8px 8px 0 0;
							overflow: hidden;
							background: #2e5487;
							height: 300px;
							
							@media screen and (max-width: 992px){
								height: 340px;
							}
							
							&:before {
								content: '';
								position: absolute;
								bottom: 0;
								width: 100%;
								left: 0;
								height: 220px;
								background: linear-gradient(0deg, #1c324f, transparent);
								opacity: 1;
								z-index: 1;
							}
							
							img {
								opacity: 0.6;
								width: 420px;
								margin: 0 -10px;
								height: 100%;
								object-fit: cover;
								object-position: center;
								filter: blur(2px);
							}
						}
						
						.em-upper-content {
							position: absolute;
							top: 0;
							left: 0;
							width: 100%;
							height: 100%;
							z-index: 5;
							padding: 45px 25px 25px;
							color: #FFF;
							font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
							display: flex;
							flex-direction: column;
							justify-content: space-between;
						}

						h2 {
							padding: 0 25px 5px 0;
							font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
							font-weight: 700;
							text-transform: uppercase;
							font-size: 28px;
							color: #FFFFFF;
							letter-spacing: 0.04em;
							text-align: center;
							
							a {
								color: #FFF;
							}
						}
						
						.em-address {
							text-align: center;
							padding: 0 25px 0 0;
							
							a {
								color: #FFF;
							}
						}
						
						.em-description {
							font-size: 14px;
							line-height: 20px;
							overflow: hidden;
							margin: 0 0 20px;
							text-overflow: ellipsis;
							display: -webkit-box;
							-webkit-line-clamp: 3;
							-webkit-box-orient: vertical;
							
							a {
								color: #FFF;
							}
						}
						
						.em-info {
							display: flex;
							justify-content: space-between;
							
							.em-date {
								position: relative;
								font-weight: 600;
								font-size: 16px;
								
								&:before {
									content: '';
									mask-position: center;
									mask-repeat: no-repeat;
									background: #FFF;
									mask-size: 15px;
									width: 18px;
									height: 24px;
									display: inline-block;
									position: relative;
									top: 7px;
									margin: 0 6px 0 0;
									mask-image: url(images/icon-calendar.webp);
									mask-size: 23px;
									width: 24px;
								}
							}
							
							.em-website a {
								display: inline-block;
								background: #039357;
								color: #FFF;
								font-weight: 600;
								padding: 10px 12px;
								border-radius: 4px;
								font-size: 16px;
								
								&:hover,
								&:active,
								&:focus {
									background: #259b6a;
								}
							}
						}
					}
				}
			}
		}
	}
}

.no-listings {
	font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
	font-weight: 700;
	text-transform: uppercase;
	font-size: 24px;
	color: #2D5487 !important;
	letter-spacing: 0.03em;
	text-align: center;
	background: #EEE;
	padding: 30px 0;
	border-radius: 4px;
}

.no-listings-divider {
	border-bottom: 1px solid #CCC;
}

/*////////////////////////////////////////
//////    NEWSLETTER SIGNUP FORM    //////
////////////////////////////////////////*/
#newsletter-signup-wrap {
	#newsletter-signup {
		display: flex;
		
		label {
			display: block;
			display: none;
			color: #ffffffd6;
			font-size: 12px;
			text-transform: uppercase;
			font-weight: 800;
			letter-spacing: 0.04em;
		}
		
		#newsletter-signup-email-address {
			width: calc(100% - 140px);
			margin: 0 20px 0 0;
			padding: 5px 15px;
			font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 600;
			letter-spacing: 0.02em;
			font-size: 16px;
			border: none;
			border-radius: 3px;
			box-shadow: inset 0 0 0 2px #f05b72;
			background: transparent;
			color: #FFF;
			transition: 0.3s all;
			
			&::placeholder {
				color: #FFF;
				text-transform: uppercase;
			}
			
			&:focus {
				box-shadow: inset 0 0 0 2px #fff;
			}
		}
		
		button[type="submit"] {
			background: #f05b72;
			text-transform: uppercase;
			font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
			font-weight: 600;
			font-size: 18px;
			letter-spacing: 0.02em;
			color: #fff;
			border: none;
			padding: 12px;
			border-radius: 3px;
			width: 120px;
			cursor: pointer;
			transition: 0.3s all;
			
			&:hover,
			&:active {
				background: #f77c8f;
			}
			
			&:focus {
				box-shadow: 0 0 0 2px #333, 0 0 0 4px #f05b72;
			}
		}
		
		&.disabled {
			user-select: none;
			
			#newsletter-signup-email-address {
				color: #aaa;
			}
		}
	}
	
	#newsletter-signup-response {
		font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
		font-weight: 600;
		font-size: 18px;
		letter-spacing: 0.02em;
		color: #fff;
		border-radius: 3px;
		box-shadow: inset 0 0 0 2px #f05b72;
		opacity: 0;
		padding: 10px;
		text-align: center;
		transition: 0.3s all;
		
		&.active {
			opacity: 1;
		}
	}
}

/*////////////////////////////////////////
///    LOCATION LISTINGS CAROUSEL    /////
////////////////////////////////////////*/
.location-listing-carousel-wrap {
	background: #f4f5f6;
	padding: 35px 0;
	
	.listing-slide-url {
		
		.listing-image {
			position: relative;
			
			&:before {
				content: '';
				position: absolute;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
				background: linear-gradient(0deg, black, transparent);
				opacity: 0.5;
			}
			
			img {
				object-fit: cover;
				aspect-ratio: 2 / 3;
				display: block;
			}
		}
		
		.listing-slide-content {
			position: absolute;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			justify-content: center;
			padding: 0 30px;
			
			.listing-slide-title {
				font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				text-transform: uppercase;
				color: #FFFFFF;
				letter-spacing: 0.04em;
				font-size: 32px;
				line-height: 32px;
			}
			
			.listing-slide-read-more {
				background-color: #0099C9;
				padding: 8px 20px;
				color: #FFF;
				font-family: 'Asap', Helvetica, Arial, Lucida, sans-serif;
				font-weight: 700;
				font-size: 18px;
				letter-spacing: 0.03em;
				border-radius: 3px;
				text-transform: uppercase;
				margin: 30px 0 0;
			}
		}
	}
	
	.swiper-pagination {
		position: relative;
		width: 100%;
		padding: 20px 0 0;
		
		.swiper-pagination-bullet {
			background: #ccc;
			width: 10px;
			height: 10px;
			margin: 0 4px;
			opacity: 1;
			
			&.swiper-pagination-bullet-active {
				background: #000;
			}
		}
	}
}

/*////////////////////////////////////////
///////    COMMUNITY SPOTLIGHT    ////////
////////////////////////////////////////*/
.cs-wrapper {
	padding: 60px 0;
	
	.cs-upper {
		align-items: center;
		padding: 0;
		display: none;
		
		@media screen and (min-width: 980px) {
			& {
				display: flex;
			}
		}
		
		.cs-upper-left {
			width: 50%;
			padding: 0 60px 0 0;
			
			@media screen and (min-width: 1240px) {
				& {
					width: 42%;
				}
			}
		}
		
		.cs-upper-right {
			display: block;
			width: 50%;
			
			@media screen and (min-width: 1240px) {
				& {
					width: 58%;
				}
			}
		}
	}
	
	.cs-upper-photo{
		img {
			aspect-ratio: 4 / 3;
			object-fit: cover;
			display: block;
		}
	}
	
	.cs-slide-photo {
		img {
			aspect-ratio: 1 / 1;
			object-fit: cover;
			display: block;
		}
	}
	
	.cs-upper-title,
	.cs-slide-title {
		font-family: 'Asap Condensed', sans-serif;
		font-weight: 700;
		text-transform: uppercase;
		font-size: 52px;
		color: #2d5487 !important;
		letter-spacing: 0.03em;
		text-align: left;
		line-height: 60px;
	}
	
	.cs-slide-title {
		font-family: 'Asap', sans-serif;
	}
	
	.cs-upper-subtitle,
	.cs-slide-subtitle {
		font-family: 'Pacifico', handwriting;
		font-size: 38px;
		color: #2d5487 !important;
		letter-spacing: 0.02em;
		text-align: left;
		line-height: 46px;
		padding: 0 0 30px;
		font-weight: 500;
	}
	
	.cs-upper-desc,
	.cs-slide-desc {
		padding: 0 0 30px;
	}
	
	.cs-upper-ctas,
	.cs-slide-ctas {
		display: flex;
		align-items: center;
	}
	
	.cs-cta-seasonal {
		color: #FFFFFF !important;
		border-color: #0099c9;
		letter-spacing: 0.05em;
		font-size: 18px;
		font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		background-color: #0099c9;
		padding: 0.4em 1.1em !important;
		border-radius: 3px;
		line-height: 1.7em !important;
		margin: 0 10px 0 0;
	}
	
	.cs-cta-secondary {
		color: #0099c9 !important;
		border-width: 2px !important;
		border-color: #0099c9;
		letter-spacing: 0.03em;
		font-size: 18px;
		font-family: 'Asap Condensed', Helvetica, Arial, Lucida, sans-serif !important;
		font-weight: 700 !important;
		text-transform: uppercase !important;
		background-color: RGBA(255, 255, 255, 0);
		padding: 0.3em 1em !important;
		line-height: 1.7em !important;
		background-size: cover;
		background-position: 50%;
		background-repeat: no-repeat;
		border: 2px solid;
		border-radius: 3px;
	}
	
	.cs-lower {
		position: relative;
		
		.cs-carousel {
			padding: 60px 0 0;
			
			.swiper-slide {
				
				
				.cs-slide-desktop {
					user-select: none;
					cursor: pointer;
					display: none;
					border: 0;
					padding: 0;
					background: transparent;
					
					@media screen and (min-width: 980px) {
						& {
							display: block;
						}
					}
					
					.cs-upper-title, .cs-slide-title {
						font-weight: 700;
						text-transform: uppercase;
						font-size: 16px;
						color: #2d5487 !important;
						letter-spacing: 0.03em;
						text-align: center;
						line-height: 40px;
					}
				}
				
				.cs-slide-mobile {
					text-align: center;
					display: block;
					
					@media screen and (min-width: 980px) {
						& {
							display: none;
						}
					}
					
					.cs-slide-title {
						text-align: center;
						font-size: 26px;
						line-height: 40px;
						padding: 20px 0 0;
					}
					
					.cs-slide-subtitle {
						text-align: center;
						font-size: 34px;
						letter-spacing: -0.01em;
					}
					
					.cs-slide-ctas {
						justify-content: center;
						
						.cs-cta-seasonal,
						.cs-cta-secondary {
							font-size: 16px;
						}
					}
				}
			}
		}
	}

	.swiper-button-next {
		background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
		width: 60px;
		height: 60px;
		background-size: 100%;
		background-repeat: no-repeat;
		display: block;
		top: 25%;
		
		@media screen and (min-width: 980px) {
			& {
				top: 50%;
			}
		}
	}

	.swiper-button-prev {
		background: url(/wp-content/uploads/2024/08/arrow-white-inverted.webp);
		transform: scale(-1, 1);
		width: 60px;
		height: 60px;
		background-size: 100%;
		background-repeat: no-repeat;
		display: block;
		top: 25%;
		
		@media screen and (min-width: 980px) {
			& {
				top: 50%;
			}
		}
	}

	.swiper-button-prev:after,
	.swiper-button-next:after {
		opacity: 0;
	}

	.swiper-pagination {
		position: relative;
		display: block;
		z-index: 100;
		bottom: 0;
		padding: 20px 0 0;
		
		.swiper-pagination-bullet {
			width: 12px;
			height: 12px;
			background: #73cce7;
			opacity: 1;
			margin: 0 8px;
		}
		
		.swiper-pagination-bullet-active {
			opacity: 1;
			background: #2f5487;
		}
		
		@media screen and (min-width: 980px) {
			& {
				display: none;
			}
		}
	}
}