[v-cloak] {
	display: none;
}

:root {
	--cubic: cubic-bezier(0.22, 1, 0.36, 1);
	--dot-color: #1a4a5f;
	--dot-active: #1a4a5f;
	--dot-size: 1.15rem;
	--dot-spacing: .5rem;
}


/* =========================================
   2. SPRING BOUNCE + FADE (Requested)
   Matches your specific HTML structure
   ========================================= */
.dot-loader {
	margin-bottom: 1rem;
	display: inline-flex;
	gap: var(--dot-spacing);
	align-items: center;
	height: 10px;
	justify-items: center;
}

.dot-loader span {
	width: var(--dot-size);
	height: var(--dot-size);
	border-radius: 50%;
	background: #1a4a5f;
	display: block;
	opacity: 0.75;
	/* Custom spring animation */
	animation: springBounce 2.2s infinite;
}

.dot-loader span:nth-child(1) { animation-delay: 0s; }
.dot-loader span:nth-child(2) { animation-delay: 0.1s; }
.dot-loader span:nth-child(3) { animation-delay: 0.2s; }


@keyframes springBounce {
	/* Phase 1: Springy Launch */
	0% { transform: translateY(0); opacity: 0.75; }
	8% { transform: translateY(-8px); opacity: 1; } /* Peak up */
	14% { transform: translateY(2px); opacity: 1; }  /* Overshoot down */
	20% { transform: translateY(-1px); opacity: 1; } /* Micro rebound up */
	25% { transform: translateY(0); opacity: 0.75; }  /* Settle */

	/* Phase 2: Ripple Fade during rest */
	55% { opacity: 0.5; }
	65% { opacity: 1; }
	75% { opacity: 0.5; }
	
	/* Phase 3: Pause */
	100% { transform: translateY(0); opacity: 0.5; }
}


/* ==============================
   Results Cross-Fade (NO JUMP)
   Uses grid overlay instead of absolute layers
============================== */

.results-crossfade {
  display: grid;
  min-height: 100vh; /* optional baseline */
  position: relative;
}

/* every layer overlaps in the same grid cell */
.results-layer {
  grid-area: 1 / 1;
  opacity: 0;
  pointer-events: none;
  transition: opacity 320ms var(--cubic);
  will-change: opacity;
}

/* active layer fades in */
.results-layer.is-active {
  opacity: 1;
  pointer-events: auto;
}


.results-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;

  position: sticky;
  top: calc(
	var(--headerHeight)
	+ var(--filter-controls-height)
	+ 1.25rem
  );

  align-self: start; /* important for grid children */
  z-index: 5;
}

.no-results {
	position: absolute;
	top: 0;
	width: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.amenity-multiselect-trigger,
.toggle-label,
.filter-label-row,
.lightbox-content h3,
#apartments-search-app *,
.reset-price-btn,
.filter-input-wrap input,
.reset-filter,
.load-more-btn,
#apartments-search-app {
	font-family: "Lexend"
}

#apartments-search-app {
	min-height: calc(100vh - var(--headerHeight))
}


#apartments-search-app .container-fluid {
	padding: 0 2rem
}

.lib-filter-collapse-wrap {
	z-index: 9999;
	background: none !important
}

#lib-filter-menu-wrap {
	padding-bottom: 0 !important
}

.asf-map-wrap {
	display: flex;
	flex-direction: row-reverse;
	position: relative;
	z-index: 0
}

/* Minimal styles for filters and Vue.js functionality */
.filter-controls {

}

.filter-row {
	display: flex;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.filter-row--top {

	background: #f8f9fa;
	padding: 1.75rem;
	border-radius: .75rem;

	display: flex;
	flex-wrap: wrap;
	align-items: start;
	gap: 1.25rem;
}

.filter-actions-right--top {
	margin-left: auto;
	display: flex;
	align-items: flex-end;
	gap: 1.5rem;
	padding-bottom: .15rem;
}

@media (max-width: 1459px) {
	.filter-actions-right--top .filter-group--sort {
		display: none;
	}
	
	.filter-actions-right--top {
		align-self: flex-end
	}
}

.filter-group--sort-mobile {
	display: none;
}

@media (max-width: 1460px) {
	.filter-group--sort-mobile {
		margin-left: 2rem;
		display: block;
		min-width: auto;
		flex: none;
	}

	.filter-group--sort-mobile .filter-input-wrap select {
		padding: .5rem 2.75rem .5rem 1rem;
		font-size: 1.1rem;
	}

	.filter-actions-right {
		align-items: center;
	}
}

@media (max-width: 1024px) {
	.filter-actions-right--top {
		width: 100%;
		justify-content: space-between;
		margin-left: 0;
		margin-top: .75rem;
	}
}


.filter-group {
	flex: 1;
	min-width: 16.75rem;
}

.filter-group--zip {
	max-width: 20rem
}

.filter-group--bedrooms,
.filter-group--bathrooms {
	min-width: 7.5rem;
	max-width: 7.5rem
}

.filter-group--price {
	/* Lock flex: Grow 0, Shrink 0, Basis 18rem */
	flex: 0 0 18rem; 
	width: 18rem;
	min-width: 18rem;
	max-width: 18rem;
	
	/* Prevent text wrapping during load */
	white-space: nowrap; 
}

.filter-group label {
	display: flex;
	font-weight: 500;
	letter-spacing: -.02em;
	margin-bottom: .5rem;
	font-size: 1.146rem;
}

.filter-group select,
.filter-group input {
	width: 100%;
	padding: .75rem 1rem;
	border: 1px solid #ddd;
	border-radius: .25rem;
	font-size: 1.15rem;
	letter-spacing: -.02em;
}







.filter-input-wrap {
	position: relative;
}

.filter-input-wrap input,
.filter-input-wrap select {
	padding-right: 2.75rem;
}

.filter-input-wrap {
	position: relative;
}

.filter-input-wrap select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: none;
	padding-right: 3.25rem;
}

.filter-input-wrap:has(select)::after {
	content: "";
	position: absolute;
	right: 1.25rem;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;

	width: 1rem;
	height: 1rem;

	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='3.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}



.filter-clear-btn {
	position: absolute;
	right: .75rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.8rem;
	height: 1.8rem;
	border: none;
	color: #333;
	font-size: 1.1rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	transition: transform .1s var(--cubic);
	transform-origin: center center
}

.filter-clear-btn:hover:before {
	transform: scale(1.025)
}

.filter-clear-btn::before {
	/* Required to render the background image */
	content: "";
	display: block;
	width: 100%;
	height: 100%;

	/* SVG: Circle with an X inside (Stroke color #555 to match your theme) */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");

	background-repeat: no-repeat;
	background-position: center;
	
	/* Adjust this to make the icon larger or smaller within the button */
	background-size: contain; 
}

.filter-clear-btn:hover:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
}



.filter-clear-btn--label {
	position: relative;
	top: auto;
	right: auto;
	transform: none;

	width: 1.5rem;
	height: 1.5rem;

	flex-shrink: 0;
	opacity: 0.75;
}

.filter-clear-btn--label:hover {
	opacity: 1;
}

.filter-clear-btn--label {
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity .15s var(--cubic);
}

/* when active */
.filter-clear-btn--label.visible {
	visibility: visible;
	opacity: 0.75;
	pointer-events: auto;
}


.filter-label-row {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .5rem;
}

.filter-group--price .filter-label-row {
	justify-content: space-between;
}

.filter-label-row label {
	margin: 0;
	min-height: 1.5rem;	
	line-height: 1.25;
	font-weight: bold;
}

.filter-group--price label {
	align-items: end;
	width: 100%
}








/* Autocomplete styles */
.autocomplete-wrapper {
	position: relative;
}

.autocomplete-results {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	background: white;
	border: 1px solid #ddd;
	border-top: none;
	border-radius: 0 0 .25rem .25rem;
	max-height: 25rem;
	overflow-y: auto;
	z-index: 1000;
	box-shadow: 0 .25rem .5rem rgba(0,0,0,0.1);
}

.autocomplete-item {
	padding: .75rem 1rem;
	cursor: pointer;
	border-bottom: 1px solid #f0f0f0;
	font-size: 1.15rem;
	letter-spacing: -.02em;
}

.autocomplete-item:hover,
.autocomplete-item.active {
	background: #f8f9fa;
}

.autocomplete-item .zip {
	font-weight: 500;
	color: #000;
}

.autocomplete-item .location {
	color: #666;
	font-size: 1rem;
}


@supports (-webkit-touch-callout: none) {
	select, input[type="text"], input[type="number"] {
		font-size: max(16px, 1.15rem);
	}
}






/* ZIP input left icon */
.filter-input-wrap--zip input {
	padding-left: 2.45rem;
	padding-right: 3rem;
}

.zip-input-icon {
	position: absolute;
	left: 0.6rem;
	top: 50%;
	transform: translateY(-50%);
	width: 1.4rem;
	height: 1.4rem;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	pointer-events: none;

	/* same pin, smaller */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 365 560'%3E%3Cg%3E%3Cpath fill='%231a4a5f' d='M182.9,551.7c0,0.1,0.2,0.3,0.2,0.3S358.3,283,358.3,194.6c0-130.1-88.8-186.7-175.4-186.9C96.3,7.9,7.5,64.5,7.5,194.6c0,88.4,175.3,357.4,175.3,357.4S182.9,551.7,182.9,551.7z M122.2,187.2c0-33.6,27.2-60.8,60.8-60.8c33.6,0,60.8,27.2,60.8,60.8S216.5,248,182.9,248C149.4,248,122.2,220.8,122.2,187.2z'/%3E%3C/g%3E%3C/svg%3E");
}





.zip-submit-btn {
	position: absolute;
	right: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	width: 2.25rem;
	height: 2.25rem;
	border: none;
	background: #1a4a5f;
	border-radius: .25rem;
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.zip-submit-btn[disabled] {
	cursor: not-allowed;
	opacity: .4
}

.zip-submit-btn::before {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;

	/* chevron right */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E");
}

.zip-submit-btn:hover {
	transform: translateY(-50%) scale(1.08);
}






/* ============================================
   DISTANCE NUMBER INPUT - FIXED VERSION
   Replace the existing .filter-group--distance CSS
============================================ */

/* Distance filter group - 160px max width */
.filter-group--distance {
	min-width: 6rem;
	max-width: 6rem; /* 160px */
	animation: slideIn 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Number input styling */
.filter-group--distance input[type="number"] {
	width: 100%;
	padding: .75rem .5rem .75rem .75rem;
	border: 1px solid #ddd;
	border-radius: .25rem;
	font-size: 1.15rem;
	letter-spacing: -.02em;
	
	/* CRITICAL: Remove -moz-appearance to show arrows in Firefox */
	-moz-appearance: auto;
}

/* Chrome/Safari/Edge stepper buttons - FORCE VISIBILITY */
.filter-group--distance input[type="number"]::-webkit-inner-spin-button,
.filter-group--distance input[type="number"]::-webkit-outer-spin-button {
	-webkit-appearance: auto; /* Use default appearance */
	opacity: 1;
	height: auto;
	margin: 0;
	cursor: pointer;
}

/* "miles" label inside input */
.distance-unit-label {
	position: absolute;
	right: 2.4rem;
	top: 50%;
	transform: translateY(-50%);
	color: #666;
	font-size: 1rem;
	pointer-events: none;
	font-weight: 500;
}

@keyframes slideIn {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

@media (max-width: 599px) {
	.filter-group--distance {
		min-width: 100%;
		max-width: 100%;
	}
}















.distance-marker-icon {
	display: inline-block;
	width: .9em;
	height: 1.15em;
	position: relative;
	top: 2px;
	margin-right: 2px;
	color: #014b60;
	vertical-align: top;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 365 560'%3E%3Cg%3E%3Cpath fill='%231a4a5f' d='M182.9,551.7c0,0.1,0.2,0.3,0.2,0.3S358.3,283,358.3,194.6c0-130.1-88.8-186.7-175.4-186.9C96.3,7.9,7.5,64.5,7.5,194.6c0,88.4,175.3,357.4,175.3,357.4S182.9,551.7,182.9,551.7z M122.2,187.2c0-33.6,27.2-60.8,60.8-60.8c33.6,0,60.8,27.2,60.8,60.8S216.5,248,182.9,248C149.4,248,122.2,220.8,122.2,187.2z'/%3E%3C/g%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}


/* Map pin icon */
.zip-marker-icon {
	flex-shrink: 0;

	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 365 560'%3E%3Cg%3E%3Cpath fill='%231a4a5f' d='M182.9,551.7c0,0.1,0.2,0.3,0.2,0.3S358.3,283,358.3,194.6c0-130.1-88.8-186.7-175.4-186.9C96.3,7.9,7.5,64.5,7.5,194.6c0,88.4,175.3,357.4,175.3,357.4S182.9,551.7,182.9,551.7z M122.2,187.2c0-33.6,27.2-60.8,60.8-60.8c33.6,0,60.8,27.2,60.8,60.8S216.5,248,182.9,248C149.4,248,122.2,220.8,122.2,187.2z'/%3E%3C/g%3E%3C/svg%3E");
}


.zip-results-text {
	line-height: 1.2;
}



/* ZIP filter should align exactly like selects */

.filter-group--zip .filter-label-row {
  margin-bottom: .5rem;
}

.filter-group--zip .zip-results-label {
  margin-top: .5rem;
}

/* Prevent the results label from affecting vertical alignment */
.filter-group--zip {
  display: flex;
  flex-direction: column;
}













.price-display {
	font-weight: 500;
	font-size: 1rem;
	color: #000;
	margin-left: auto;
}

.price-slider {
	position: relative;
	height: .75rem;
	margin: 1.75rem 0 1.25rem;
	background: #ddd;
	border-radius: .25rem;

	/* allow thumbs to extend */
	overflow: visible;
}

.price-slider-group {
	padding: 0 1.5rem;
}
.price-slider-wrap {
	padding: 0 0 0 .15rem
}

/* RANGE INPUT */
.price-slider input[type="range"] {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);

	/* 🔥 KEY FIX */
	width: calc(100% + 1.75rem);
	left: -0.575rem;

	height: .75rem;
	margin: 0;
	padding: 0;

	pointer-events: none;
	background: transparent;
	border: none;

	-webkit-appearance: none;
	appearance: none;
}


.price-slider input[type="range"]:focus {
	outline: none;
}

/* Chrome, Safari, Edge */
.price-slider input[type="range"]::-webkit-slider-thumb {
	pointer-events: all;
	width: 1.75rem;
	height: 1.75rem;
	top: -.5rem;
	border-radius: 50%;
	background: #333;
	border: 2px solid #fff;
	box-shadow: 0 .25rem .25rem rgba(0,0,0,0.2);
	cursor: pointer;
	-webkit-appearance: none;
	position: relative;
	z-index: 10;
}

.price-slider input[type="range"]::-webkit-slider-runnable-track {
	height: .75rem;
	background: transparent;
	border-radius: .25rem;
}

/* Firefox */
.price-slider input[type="range"]::-moz-range-thumb {
	pointer-events: all;
	width: 1.75rem;
	height: 1.75rem;
	top: -.5rem;
	border-radius: 50%;
	background: #333;
	border: 2px solid #fff;
	box-shadow: 0 .25rem .25rem rgba(0,0,0,0.2);
	cursor: pointer;
	position: relative;
	z-index: 10;
}

.price-slider input[type="range"]::-moz-range-track {
	height: .75rem;
	background: transparent;
	border-radius: .25rem;
}

/* Make the second slider appear above the first */
.price-slider input[type="range"]:nth-child(2) {
	z-index: 2;
}

.price-slider input[type="range"]:nth-child(1) {
	z-index: 1;
}


.filter-actions {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 1.25rem;
	padding-bottom: 1.25rem;
	gap: 1.75rem;
}

.filter-actions-left {
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

.filter-actions-right {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-left: auto;
}

.checkbox-label {
	display: flex;
	align-items: center;
	gap: .75rem;
	cursor: pointer;
	font-weight: 500;
}

.checkbox-label input[type="checkbox"] {
	width: auto;
}

.results-count {
	font-size: 1.25rem;
	font-weight: 500;
	display: flex;
	letter-spacing: -.02em;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: .5rem;
}

@media (max-width: 1149px) {
	.map-toggle-btn,
	.zip-tag {
		height: 2.5rem;
		box-sizing: border-box;
	}
}

.results-count-with-zip {
	display: flex;
	align-items: center;
	gap: .5rem;
}

.results-count .zip-marker-icon {
	width: 1.5rem;
	height: 1.5rem;
}

.results-count-text {
	font-weight: bold;
	line-height: 1.2;
}









/* ==============================
   ZIP LOCATION TAG (CLICKABLE)
============================== */

.zip-tag {
	all: unset;
	cursor: pointer;

	display: inline-flex;
	align-items: center;
	gap: .4rem;

	margin-left: .35rem;
	padding: .4rem .65rem .4rem .85rem;

	background: #fff;
	border: 1px solid #ddd;
	border-radius: .25rem;

	font-size: 1.05rem;
	font-weight: 500;
	color: #333;

	line-height: 1;
	white-space: nowrap;

	transition:
		background .15s var(--cubic),
		border-color .15s var(--cubic),
		transform .1s var(--cubic);
}

.zip-tag:hover {
	background: #f8f9fa;
	border-color: #aaa;
	transform: scale(1.02);
}

.zip-tag:active {
	transform: scale(.97);
}

.zip-tag-remove {
	width: 1.5rem;
	height: 1.5rem;
	flex-shrink: 0;
	position: relative;
	left: .36rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	/* SAME SVG AS filter-clear-btn */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");

	pointer-events: none;
	opacity: 0.85;
}












.reset-filter {
	padding-top: 1px;
	display: inline-block;
	font-size: .9rem;
	text-transform: uppercase;
	border-bottom: 1px solid currentcolor;
	margin-left: 2rem;
	transition: all .2s var(--cubic);
	cursor: pointer;
	color: #014b60
}

.reset-filter[disabled] {
	opacity: 0.6;
	color: #555;
	pointer-events: none;
	cursor: not-allowed;
}






/* ==============================
   Available Now Toggle Switch
============================== */

.availability-toggle {
	margin-left: 2.5rem;
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .65rem;
	align-self: flex-end;
	white-space: nowrap;
}

.toggle-label {
	font-size: 1.15rem;
	font-weight: 500;
	color: #222;
	letter-spacing: -0.01em;
}

/* switch container */
.toggle-switch {
	position: relative;
	display: inline-block;
	width: 3.25rem;
	height: 1.75rem;
	flex-shrink: 0;
}

/* hide checkbox */
.toggle-switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

/* track */
.toggle-slider {
	position: absolute;
	inset: 0;
	background-color: #d1d5db;
	border-radius: 999px;
	cursor: pointer;
	transition: background-color .2s var(--cubic);
}

/* knob */
.toggle-slider::before {
	content: "";
	position: absolute;
	height: 1.35rem;
	width: 1.35rem;
	left: .2rem;
	top: 50%;
	transform: translateY(-50%);
	background: white;
	border-radius: 50%;
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	transition: transform .2s var(--cubic);
}

/* checked */
.toggle-switch input:checked + .toggle-slider {
	background-color: #1a4a5f;
}

.toggle-switch input:checked + .toggle-slider::before {
	transform: translate(1.45rem, -50%);
}

/* focus accessibility */
.toggle-switch input:focus + .toggle-slider {
	box-shadow: 0 0 0 3px rgba(26,74,95,.25);
}

.availability-toggle.disabled {
  opacity: 0.45;
  cursor: not-allowed;	
}

.availability-toggle.disabled input + .toggle-slider::before {
  box-shadow: none;
}








/* Fade transition for results count */
.fade-enter-active, .fade-leave-active {
	transition: opacity 0.3s var(--cubic);
}

.fade-enter-from, .fade-leave-to {
	opacity: 0;
}

.fade-enter-to, .fade-leave-from {
	opacity: 1;
}







.results-sort {
	display: flex;
	align-items: center;
	gap: .75rem;
}

.results-sort label {
	font-weight: 600;
	font-size: 1.25rem;
}

.results-sort select {
	padding: .75rem 1rem;
	border: 1px solid #ddd;
	border-radius: .25rem;
	font-size: 1.25rem;
}

.apartments-loading {
	text-align: center;
	padding: 5rem 1.75rem;
	font-size: 1.5rem;
	color: #666;
}

.apartments-error {
	background: #fee;
	border: 1px solid #fcc;
	color: #c33;
	padding: 1.75rem;
	border-radius: .75rem;
	margin: 1.75rem 0;
}

.no-results {
	text-align: center;
	padding: 5rem 1.75rem;
}

.no-results h3 {
	font-size: 2rem;
	color: #666;
	margin-bottom: .75rem;
}

.no-results p {
	color: #999;
}

/* Property card fade-in - only first 4 cards fade in */
.asf-prop-item.fade-in {
	opacity: 0;
	transition: opacity 0.4s var(--cubic);
}

.asf-prop-item.fade-in.visible {
	opacity: 1;
}

.asf-prop-item {
	margin-top: 1.25rem;
	overflow: visible; /* Add this if not already present */
}

/* Modern Minimalist Card Design */
.asf-prop-item-inner {
	background: white;
	border-radius: .75rem;
	box-shadow: 0 .25rem .25rem rgba(0, 0, 0, 0.1);
	border: 1px solid #f0f0f0;
	overflow: visible; /* Changed from hidden */
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	height: 21.25rem;
	transition: box-shadow 0.3s var(--cubic);
}

.asf-prop-item-inner:hover {
	box-shadow: 0 .75rem 3.25rem rgba(0, 0, 0, 0.15);
}

.asf-prop-item-img {
	width: 37.5%;
	height: 100%;
	position: relative;
	overflow: hidden; /* Keep images from overflowing */
}

.asf-prop-item-text {
	width: auto;
	flex: 1;
	padding: 1rem 1.75rem 1.25rem 1.75rem;
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.availability-badge {
	position: absolute;
	top: .33rem;
	left: .33rem;
	padding: 1px .75rem 1px .75rem;
	backdrop-filter: blur(4px);
	background: rgba(0,0,0,.5);
	border-radius: .25rem;
	font-size: .9rem;
	text-transform: uppercase;
	font-weight: 500;
	letter-spacing: -.02em;
	text-shadow: 0 0 10px rgba(0,0,0,.4);
	color: #fff;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

/* calendar icon */
.availability-badge::before {
	/* content: "";
	display: inline-block;
	width: 1rem;
	height: 1rem;
	flex-shrink: 0;

	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e78679' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E"); */
}


.card-header {
	margin-bottom: 1.25rem;
}

.unit-label {
	font-weight: 600;
	font-size: 1.58rem;
}

.unit-label-wrap {
	margin-top: 2rem;
	line-height: 2rem;
	height: 2rem
}

.floorplan-label {
	font-size: .9rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.25px;
	display: block;
}

.floorplan-button {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	font-size: 1.167rem;
	line-height: 1rem;
	font-weight: 500;
	color: #666;
	cursor: pointer;
	background: none;
	padding: 0;
	transition: color 0.25s var(--cubic);
}

.floorplan-button span {
	display: inline-block;
	padding-bottom: 1px;
	border-bottom: 1px solid #666;
}
.floorplan-button:hover {
	color: #4a90e2;
}


/* icon */
.floorplan-button::before {
	content: "";
	width: 11.25px;
	height: 11.25px;
	display: inline-block;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2210%22%20height%3D%2212%22%20viewBox%3D%220%200%2010%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%3E%3Cpath%20d%3D%22M5.95439%200.5H0.5V11.02H9.27102V0.5H7.6171%22%20stroke%3D%22%23231F20%22%20stroke-miterlimit%3D%2210%22/%3E%3Cpath%20d%3D%22M4.29835%200.609863V4.92986H0.691406%22%20stroke%3D%22%23231F20%22%20stroke-miterlimit%3D%2210%22/%3E%3Cpath%20d%3D%22M0.402344%208.70001H5.08256V6.26001H9.17336%22%20stroke%3D%22%23231F20%22%20stroke-miterlimit%3D%2210%22/%3E%3C/svg%3E");}

/* hover */
.floorplan-button:hover {
	color: #4a90e2;
}


.property-name-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

.property-only-listing .property-name-row {
	align-items: flex-start
}

.property-name-col {
	flex: 1;
}

.property-price-col {
	text-align: right;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.starting-at-label,
.special-label {
	font-size: .9rem;
	font-weight: 500;
	color: #014b60;
	text-transform: uppercase;
	letter-spacing: 0.25px;
}

.starting-at-label {
	color: #666; /* Gray per request */
}

.property-name {
	line-height: 1.25rem;
	font-size: 1.167rem;
	letter-spacing: -.01em;
	color: #111;
	margin: 0rem 0 0 0;
}

.property-name a {
	font-weight: 300 !important;
}

.property-price {
	font-size: 1.58rem;
	padding: 0rem 0 .125rem 0;
	text-align: right;
	display: flex;
	align-items: flex-end;
}
.price-amount {
	font-size: 19px;
	font-weight: 600;
	color: #111;
	display: inline-block;
}

.price-period {
	display: inline-block;
	font-size: 1rem;
	color: #999;
	position: relative;
	top: 0.15em;
}

/* Special Price Indicator */
.price-special-indicator {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.special-tag-icon {
	width: 1.75rem;
	height: 1.75rem;
	position: relative;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 85.1 88'%3E%3Cpath fill='%23014b60' d='M49.3 31.8c-1.2-1-2.8-1.5-4.4-1.4s-3.1.9-4.1 2.1-1.5 2.8-1.4 4.4.9 3.1 2.1 4.1l.4.3 7.8-9.3-.4-.3z'/%3E%3Cpath fill='%23014b60' d='M42.9 48.8l-.4-.3-7.8 9.3.4.3c2.6 2.2 6.4 1.7 8.5-.8 2.2-2.6 1.9-6.4-.8-8.5z'/%3E%3Cpath fill='%23014b60' d='M46.5 85.2l36.8-44.1c1.4-1.7 2-3.9 1.7-6.1L80.9 6.7C80.3 2.8 76.8-.1 72.9 0l-28.6 1c-2.2 0-4.3 1.1-5.7 2.8L1.8 48c-2.8 3.3-2.3 8.2 1 11l32.7 27.3c3.4 2.7 8.3 2.3 11-1zM71.1 10.3c2.3 1.9 2.6 5.2.7 7.5s-5.2 2.6-7.5.7c-2.3-1.9-2.6-5.2-.7-7.5 2-2.3 5.2-2.6 7.5-.7zM32 61.9l-.4-.3-3.2 3.9c-.9 1-2.4 1.2-3.5.3-.2-.2-.4-.4-.5-.6-.6-.9-.5-2.1.2-2.9l3.2-3.9-.4-.3c-.9-.7-1.6-1.7-2.2-2.6-.9-1.4-1.5-3.1-1.7-4.9-.3-2.9.6-5.8 2.5-8.1.9-1 2.4-1.2 3.5-.3s1.2 2.4.3 3.5c-1 1.2-1.5 2.8-1.4 4.4s.9 3.1 2.1 4.1l.4.3 7.8-9.3-.4-.3c-2.3-1.9-3.7-4.5-3.9-7.5-.3-2.9.6-5.8 2.5-8.1 1.9-2.3 4.5-3.7 7.5-3.9 2.9-.3 5.8.6 8.1 2.5l.4.3 3.2-3.9c.9-1 2.4-1.2 3.5-.3s1.2 2.4.3 3.5l-3.2 3.9.4.3c2.3 1.9 3.7 4.5 3.9 7.5.3 2.9-.6 5.8-2.5 8.1-.9 1-2.4 1.2-3.5.3-1-.9-1.2-2.4-.3-3.5 1-1.2 1.5-2.8 1.4-4.4s-.9-3.1-2.1-4.1l-.4-.4-7.8 9.3.4.3c4.7 3.9 5.3 10.8 1.4 15.5-3.9 4.8-10.9 5.4-15.6 1.5z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	flex-shrink: 0;
}

/* Tooltip */
.special-tooltip {
	position: absolute;
	top: 0;
	right: 0;
	background: #014b60;
	color: white;
	padding: .75rem 1rem;
	border-radius: .5rem;
	font-size: .875rem;
	font-weight: 500;
	line-height: 1.4;

	box-shadow: 0 .5rem 1.5rem rgba(30, 98, 128, .3);
	z-index: 100;
	opacity: 0;
	visibility: hidden;
	transition: all 0.2s var(--cubic);
	pointer-events: none;
	white-space: normal;
	text-align: left;
}

/* Tooltip arrow */
.special-tooltip::after {
	content: '';
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);	
	border: .5rem solid transparent;
	border-top-color: #014b60;
}

/* Show tooltip on card hover */
.asf-prop-item-inner:hover .special-tooltip {
	opacity: 1;
	visibility: visible;
}

.asf-prop-item-inner:hover .special-label {
	opacity: 0
}




.lease-term,
.property-address {
	color: #000;
	font-size: 10px;
	line-height: 1.167rem;
}

.property-address {
	margin-top: .25rem
}

.long-address {
	white-space: pre-line
}

.long-address .comma {
	display: none
}

.property-address:not(.long-address) .address-br {
	display: none
}

.lease-term {
	position: relative;
	transform: translateY(-.5px)
}



.exact-match {
	color: #014b60
}

/* Alternative: If you want to bold only the second line of multi-line addresses */
.property-address.exact-match::after {
	content: '';
	/* This approach would require splitting the address into two elements */
}





.property-specs {
	display: flex;
	gap: 1.5rem;
	padding: .75rem 0 .5rem;
	border-top: 1px solid #f0f0f0;
	border-bottom: 1px solid #f0f0f0;
	margin-bottom: 1.25rem;
}

.spec-item {
	display: flex;
	align-items: center;
	gap: .25rem;
	color: #666;
	font-size: 1.167rem;
}

.spec-value {
	font-weight: 600;
	color: #333;
}
/* -------------------------------------------------
   Shared SVG icon base
-------------------------------------------------- */






.card-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
}



.card-actions {
	margin-left: auto;
	display: flex;
	gap: 1rem;
	align-items: center;
}

.card-actions a {
	font-size: 10px
}


/* ==============================
   Phone Number Styles
============================== */
.property-phone {
	color: #000
}

.property-phone:hover {
	color: #014b60
}

.phone-icon {
	width: 1.15rem;
	height: 1.15rem;
	display: block;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	position: relative;
	top: .5px;
	/* Phone SVG Data URI (using your #1a4a5f theme color) */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a4a5f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.12 2h3a2 2 0 0 1 2 1.72 12.05 12.05 0 0 0 .57 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.03 12.03 0 0 0 2.81.57A2 2 0 0 1 22 16.92z'%3E%3C/path%3E%3C/svg%3E");
}

.phone-text {
	position: relative;
	line-height: 1.25rem;
	padding-bottom: 0px; /* Space for the border */
}

/* The Animated Border */
.phone-text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background-color: currentColor;

	/* Your requested animation values */
	opacity: 0;
	transform: translateY(-2px);
	
	transition: all 0.2s var(--cubic);
}

.property-phone:hover .phone-text::after {
	opacity: 1;
	transform: translateY(0);
}




.special-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;

	padding: 6px 10px;
	border-radius: 999px;

	background: #014b60;
	color: #ffffff;

	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.02em;
}


.special-badge::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;

	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 85.1 88'%3E%3Cpath fill='currentColor' d='M49.3 31.8c-1.2-1-2.8-1.5-4.4-1.4s-3.1.9-4.1 2.1-1.5 2.8-1.4 4.4.9 3.1 2.1 4.1l.4.3 7.8-9.3-.4-.3z'/%3E%3Cpath fill='currentColor' d='M42.9 48.8l-.4-.3-7.8 9.3.4.3c2.6 2.2 6.4 1.7 8.5-.8 2.2-2.6 1.9-6.4-.8-8.5z'/%3E%3Cpath fill='currentColor' d='M46.5 85.2l36.8-44.1c1.4-1.7 2-3.9 1.7-6.1L80.9 6.7C80.3 2.8 76.8-.1 72.9 0l-28.6 1c-2.2 0-4.3 1.1-5.7 2.8L1.8 48c-2.8 3.3-2.3 8.2 1 11l32.7 27.3c3.4 2.7 8.3 2.3 11-1zM71.1 10.3c2.3 1.9 2.6 5.2.7 7.5s-5.2 2.6-7.5.7c-2.3-1.9-2.6-5.2-.7-7.5 2-2.3 5.2-2.6 7.5-.7zM32 61.9l-.4-.3-3.2 3.9c-.9 1-2.4 1.2-3.5.3-.2-.2-.4-.4-.5-.6-.6-.9-.5-2.1.2-2.9l3.2-3.9-.4-.3c-.9-.7-1.6-1.7-2.2-2.6-.9-1.4-1.5-3.1-1.7-4.9-.3-2.9.6-5.8 2.5-8.1.9-1 2.4-1.2 3.5-.3s1.2 2.4.3 3.5c-1 1.2-1.5 2.8-1.4 4.4s.9 3.1 2.1 4.1l.4.3 7.8-9.3-.4-.3c-2.3-1.9-3.7-4.5-3.9-7.5-.3-2.9.6-5.8 2.5-8.1 1.9-2.3 4.5-3.7 7.5-3.9 2.9-.3 5.8.6 8.1 2.5l.4.3 3.2-3.9c.9-1 2.4-1.2 3.5-.3s1.2 2.4.3 3.5l-3.2 3.9.4.3c2.3 1.9 3.7 4.5 3.9 7.5.3 2.9-.6 5.8-2.5 8.1-.9 1-2.4 1.2-3.5.3-1-.9-1.2-2.4-.3-3.5 1-1.2 1.5-2.8 1.4-4.4s-.9-3.1-2.1-4.1l-.4-.4-7.8 9.3.4.3c4.7 3.9 5.3 10.8 1.4 15.5-3.9 4.8-10.9 5.4-15.6 1.5z'/%3E%3C/svg%3E");

	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;

	margin-right: 8px;
}






.view-details-btn {
	text-transform: uppercase;
	background: #fff;
	color: #1a4a5f !important;
	padding: .75rem 1.75rem;
	border-radius: .25rem;
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	display: inline-block;
	border: 1px solid #1a4a5f;
	cursor: pointer;
	will-change: transform;
	transition: transform 0.09s var(--cubic);
}

.view-details-btn span {
	display: block;
	position: relative;
	will-change: transform;
	transition: transform 0.09s var(--cubic);
}

.tour-btn {
	background: #014b60;
	color: #fff !important
}

.view-details-btn:hover {
	transform: scale(.95);
}

.view-details-btn:hover span {
	transform: scale(1.05);
}

.distance-badge {
	color: #014b60;
	font-size: 10px;
	line-height: 1.25rem
}

/* Image Carousel Styles */
.carousel-container {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #e5e7eb;
}
/* ==============================
   Image Skeleton (45° Seamless Shimmer)
============================== */
.image-skeleton {
  position: absolute;
  inset: 0;
  z-index: 10;
  pointer-events: none;

  filter: blur(10px);

  /* Base */
  background-color: #f6f7f8;

  /* High-contrast shimmer band */
  background-image: linear-gradient(
	45deg,
	#f6f7f8 0%,
	#eceef3 32%,
	#ffffff 40%,   /* bright core */
	#eceef3 48%,
	#f6f7f8 65%
  );

  /* CRITICAL: known repeat size */
  background-size: 420px 420px;
  background-repeat: repeat;

  opacity: 0;
  transition: opacity 0.3s ease;

  will-change: background-position;
}

.image-skeleton.is-active:not(.child-lazy-loaded .image-skeleton) {
  opacity: 1;
  animation: skeleton-shimmer 3.6s ease-out infinite;
}

/* True seamless loop */
@keyframes skeleton-shimmer {
  from {
	background-position: 0 0;
  }
  to {
	background-position: 420px 420px;
  }
}




.asf-prop-item:not(.is-inview) .image-skeleton {
	animation-play-state: paused;
}

.carousel-track {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	display: flex;
	transition: transform 0.4s var(--cubic);
}

.carousel-track.no-transition {
	transition: none;
}

.carousel-slide {
	position: relative;
	min-width: 100%;
	width: 100%;
	height: 100%;
	flex-shrink: 0;
}

.carousel-slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	position: relative;
	z-index: 2
}

.fade-img:not(.child-lazy-loaded .fade-img) {
	opacity: 0;
	visibility: hidden;
	transition: opacity 420ms var(--cubic);
}

.fade-img.is-loaded {
	opacity: 1;
	visibility: visible;
}



.carousel-slide img.fade-img.is-loaded {
  opacity: 1;
}


/* -------------------------------------------
   Carousel chevron buttons (SVG data URIs)
-------------------------------------------- */
/* -------------------------------------------
   Carousel chevron buttons (SVG data URIs)
-------------------------------------------- */

.carousel-nav {
	/* Adjusted sizes for better proportions */
	--nav-size: 2.75rem;
	--icon-size: 1.25rem; 

	position: absolute;
	top: 50%;
	transform: translateY(-50%);

	width: var(--nav-size);
	height: var(--nav-size);

	border-radius: 50%;
	border: none;
	padding: 0;

	display: flex;
	align-items: center;
	justify-content: center;

	cursor: pointer;
	z-index: 10;

	color: #fff;

	background-repeat: no-repeat;
	background-position: center;
	background-size: var(--icon-size);

	/* Shadow to lift it off the image */
	box-shadow: 0 4px 6px rgba(0,0,0,0.1);

	opacity: 0;
	transition: all 0.25s var(--cubic);
}

.asf-prop-item-inner:hover .carousel-nav {
	opacity: 1;
}

.carousel-nav:hover {
	transform: translateY(-50%) scale(1.1); /* Subtle grow effect */
}

/* -------------------------------------------
   Left chevron
   (Clean stroke icon, perfectly centered)
-------------------------------------------- */
.carousel-nav.prev {
	left: 0.75rem;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='12' viewBox='0 0 9 12' fill='none'%3E%3Cpath d='M7.56348 10.7441L1.56348 6.12876L7.56348 0.74414' stroke='white' stroke-width='2'/%3E%3C/svg%3E");	background-position: 50% 50%;
	filter: drop-shadow(0px 0px 6px rgba(0, 0, 0, 0.8));
}

.carousel-nav.next {
	right: 0.75rem;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='12' viewBox='0 0 9 12' fill='none'%3E%3Cpath d='M0.667969 0.792725L6.66797 5.40811L0.667969 10.7927' stroke='white' stroke-width='2'/%3E%3C/svg%3E");
	background-position: 50% 50%;
	filter: drop-shadow(0px 0px 6px rgba(0, 0, 0, 0.8));
}

/* -------------------------------------------
   Mobile sizing
-------------------------------------------- */

@media (max-width: 768px) {
	.carousel-nav {
		/* On mobile, keep them visible so people know they can swipe */
		opacity: 1; 
		--nav-size: 2.25rem;
		--icon-size: 1rem;
		background-color: rgba(0, 0, 0, 0.6);
	}
}


.carousel-dots {
	position: absolute;
	bottom: 1.25rem;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: .5rem;
	z-index: 10;
}

.carousel-dot {
	width: .75rem;
	height: .75rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.5);
	border: none;
	cursor: pointer;
	padding: 0;
	transition: background 0.3s var(--cubic);
	box-shadow: 0 .25rem .25rem rgba(0, 0, 0, 0.2);
}

.carousel-dot.active {
	background: rgba(255, 255, 255, 1);
}

@media (max-width: 768px) {
	.filter-row {
		flex-direction: column;
	}
	
	.filter-group:not(.filter-group--sort) {
		min-width: 100%;
	}
	
	.filter-group--sort {
		width: 200px;
		max-width: 200px
	}
	
	.filter-actions {
		flex-direction: row;
		align-items: stretch;
		gap: 1.25rem;
	}
	
	.asf-prop-item-img {
		flex: 1
	}
	
	
	.filter-actions-left,
	.filter-actions-right {
		flex-direction: row;
		align-items: stretch;
		width: auto;
		margin-left: 0;
	}
	
	.filter-actions-right {
		justify-items: flex-end;
		margin-left: auto
	}
	.results-sort {
		flex-direction: column;
		align-items: stretch;
	}
	
	.results-sort select {
		width: 100%;
	}
	
	.asf-prop-item-inner {
		flex-direction: column;
		height: auto;
	}
	
	.asf-prop-item-img {
		width: 100%;
		height: 20rem;
	}
	
	.asf-prop-item-text {
		width: 100%;
	}
	
	.property-specs {
		flex-wrap: wrap;
		gap: 1.25rem;
	}
	
	.card-footer {
		flex-direction: column;
		align-items: stretch;
		gap: 1rem;
	}
	
	.card-actions {
		justify-content: space-between;
	}
	
	.carousel-nav {
		width: 2.5rem;
		height: 2.5rem;
		font-size: 1.25rem;
	}
	
	.filter-modal-trigger {
		width: 100%
	}
}















/* ==============================
   BACKDROP — fades correctly with v-show
============================== */
.floorplan-backdrop {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(0, 0, 0, 0.9);

	opacity: 0;
	transition: opacity 0.65s var(--cubic);
	pointer-events: none;
}

.floorplan-backdrop.active {
	opacity: 1;
	pointer-events: auto;
}

.floorplan-backdrop.closing {
	opacity: 0;
	pointer-events: none;
}

/* ==============================
   SPINNER — no background, just the spinner
============================== */
.floorplan-preloader {
	position: fixed;
	inset: 0;
	z-index: 10002;
	display: flex;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}

.floorplan-preloader .spinner {
	border: 3px solid rgba(255, 255, 255, 0.2);
	border-top-color: #fff;
	border-radius: 50%;
	width: 3.25rem;
	height: 3.25rem;
	animation: spin 0.8s linear infinite;
}

/* ==============================
   LIGHTBOX — no background, content only
============================== */
.floorplan-lightbox {
	position: fixed;
	inset: 0;
	z-index: 10001;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.75rem;

	opacity: 0;
	transition: opacity 0.65s var(--cubic);
}

.floorplan-lightbox.ready {
	opacity: 1;
	transition-delay: 0.1s;
}

.floorplan-lightbox.closing {
	opacity: 0;
}

/* instant open (cached images) */
.floorplan-lightbox.instant,
.floorplan-lightbox.instant .lightbox-content {
	transition: none !important;
	transition-delay: 0s !important;
}

/* ==============================
   LIGHTBOX CONTENT
============================== */
.lightbox-content {
	position: relative;
	max-width: 100rem;
	max-height: 90vh;
	background: white;
	border-radius: 0.75rem;
	padding: 1.75rem;

	display: flex;
	flex-direction: column;
	align-items: center;

	transform: scale(0.95) translateY(8px);
	opacity: 0;
	transition:
		transform 0.65s var(--cubic),
		opacity 0.65s var(--cubic);
}

.floorplan-lightbox.ready .lightbox-content {
	transform: scale(1) translateY(0);
	opacity: 1;
	transition-delay: 0.1s;
}

.floorplan-lightbox.closing .lightbox-content {
	transform: scale(0.95) translateY(8px);
	opacity: 0;
}

.lightbox-content h3 {
	margin: 0 0 1.25rem 0;
	font-size: 1.75rem;
	color: #333;
}

.lightbox-content img {
	max-width: 100%;
	max-height: calc(90vh - 8.25rem);
	object-fit: contain;
}

/* ==============================
   CLOSE BUTTON
============================== */
.lightbox-close {
	position: absolute;
	top: 0.75rem;
	right: 0.75rem;

	background: none;
	border: none;
	font-size: 3.25rem;
	color: #000;
	cursor: pointer;
	line-height: 1;

	width: 3.25rem;
	height: 3.25rem;

	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}

.lightbox-close:hover {
	color: #333;
}

/* ==============================
   SHARED KEYFRAMES
============================== */
@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}








.load-more-wrap {
	text-align: center;
	padding: 2rem 0;
	margin-top: 1rem;
}

.load-more-btn {
	background: #1a4a5f;
	color: white;
	padding: 1rem 2.5rem;
	border-radius: .25rem;
	font-size: 1.1rem;
	font-weight: 500;
	border: none;
	cursor: pointer;
	transition: all 0.15s var(--cubic);
}

.load-more-btn:hover {
	background: #1a4a5f;
	transform: scale(.98);
}

.load-more-btn span {
	display: block;
}


.asf-results {
	width: 58%
}

#asf-google-map-wrap {
	left: 2rem;
	width: calc(42% - 2rem);
	top: calc(var(--headerHeight) + var(--filter-controls-height) + 1.25rem);
	position: sticky;
}

@media (min-width: 1600px) {
	.asf-results {
		width: 55%
	}
	
	#asf-google-map-wrap {
		left: 2rem;
		width: calc(45% - 2rem);
	}
}


@media (max-width: 1299px) and (min-width: 1050px) {
	.asf-results {
		width: calc(100% - 400px);
	}

	#asf-google-map-wrap {
		width: calc(400px - 2rem);
		left: 2rem;
	}
}


.results-loading,
#asf-google-map-wrap,
.no-results {
	height: calc(100vh - var(--headerHeight) - var(--filter-controls-height) - 2rem)	
}


#lib-results--map-wrap {
	min-height: 100vh
}


#asf-google-map {
	height: calc(100% - 1.5rem);
	max-height: 100%
}



/* ===============================
   Compact auto-sizing map bubble
================================ */


.asf-map-bubble-inner {
	position: relative;

	background: #ffffff;
	border: 1px solid #e5e7eb;
	border-radius: 0.45rem;

	padding: 0.55rem 0.7rem;

	min-width: 200px;
	max-width: 320px;

	box-shadow: 0 6px 18px rgba(0,0,0,.15);
}

/* title */
.asf-map-bubble-title {
	font-size: 1.1rem;
	font-weight: 500;	
	color: #1f2937;
	margin-block: 2px;
	line-height: 1.25rem;
	letter-spacing: -.03em;
	line-height: 1;
}

/* address */
.asf-map-bubble-address {
	font-size: .9rem;
	line-height: 1.25rem;
	color: #000;
	margin-bottom: 1rem;
}

/* price row */
.asf-map-bubble-row {
	display: flex;
	align-items: flex-end;
	gap: 0.5rem;
}

.asf-map-bubble-label {
	font-size: 0.75rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-weight: 500;
	color: #666;
}


.asf-map-bubble-price {
	margin-left: auto;
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;

	font-size: 1.05rem;
	font-weight: 500;
	color: #111;
	line-height: 1;
}

.asf-map-bubble-price .special-tag-icon {
	width: 1.25rem;
	height: 1.25rem;
	top: .5px
}


/* ===============================
   LEFT TRIANGLE — PERFECT CENTER
================================ */

.asf-map-bubble-inner::before {
	content: "";
	position: absolute;
	left: -7px;
	top: 50%;
	transform: translateY(-50%);

	width: 0;
	height: 0;

	border-top: 7px solid transparent;
	border-bottom: 7px solid transparent;
	border-right: 7px solid #ffffff;
	z-index: 2;
}

.asf-map-bubble-inner::after {
	content: "";
	position: absolute;
	left: -8px;
	top: 50%;
	transform: translateY(-50%);

	width: 0;
	height: 0;

	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
	border-right: 8px solid #e5e7eb;
	z-index: 1;
}






.asf-map-bubble-close {
	position: absolute;
	top: 0rem;
	right: 0rem;

	width: 1.75rem;
	height: 1.75rem;

	border: none;
	background: none;

	font-size: 1.5rem;
	line-height: 1;
	color: #666;

	cursor: pointer;
	padding: 0;
}

.asf-map-bubble-close:hover {
	color: #000;
}







/* Keep the InfoBubble inner clean (no transforms here) */
.asf-infobubble {
	position: relative;
	transform: none !important;
	opacity: 1 !important;
	animation: none !important;
}

/* Animate/offset the *wrapper* that InfoBubble positions */
.asf-infobubble-wrapper {
	position: absolute; /* important: wrapper is positioned by InfoBubble */
	transform:
		translate(calc(50%), calc(100% - 20px))
		scale(.5);

	transform-origin: left center;
	opacity: 0;

	animation: bubbleIn 300ms cubic-bezier(.2,.8,.2,1) forwards;
	will-change: transform, opacity;
}

/* smooth exit on wrapper */
.asf-infobubble-wrapper.closing {
	animation: bubbleOut 140ms var(--cubic) forwards;
}

/* Allow interaction inside bubble */
.asf-infobubble-wrapper {
	pointer-events: auto;
	z-index: 9999;
}

/* Explicitly re-enable interaction for bubble content */
.asf-infobubble,
.asf-infobubble * {
	pointer-events: auto;
}


@keyframes bubbleIn {
	to {
		opacity: 1;
		transform:
			translate(calc(50% + 26px), calc(100% - 20px))
			translateY(0)
			scale(1);
	}
}

@keyframes bubbleOut {
	to {
		opacity: 0;
		transform: translate(calc(50%), calc(100% - 20px)) scale(0);
	}
}



/* --- UPDATED CARD STYLES FOR AMENITIES --- */

.asf-prop-item-inner {
	background: white;
	border-radius: .75rem;
	box-shadow: 0 .25rem .25rem rgba(0, 0, 0, 0.1);
	border: 1px solid #f0f0f0;
	overflow: hidden; /* Changed back to hidden for rounded corners */
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	
	/* REMOVED FIXED HEIGHT so it grows with amenities */
	min-height: 22rem; 
	height: auto; 
	
	transition: box-shadow 0.3s var(--cubic);
}

.asf-prop-item-img {
	width: 36%;
	/* Ensure image covers full height if text gets long */
	min-height: 100%; 
	position: relative;
	overflow: hidden;
	/* Flex alignment fix */
	display: flex; 
	flex-direction: column;
}

.carousel-container {
	/* Ensure carousel fills height */
	flex: 1; 
	height: auto;
}

/* --- NEW AMENITIES SECTION --- */

.property-amenities {
	margin-bottom: .75rem;
	display: flex;
	gap: 2rem;
	font-size: 10px;
	color: #555;
	padding-bottom: 1rem;
}

.amenity-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 1.5rem;
	justify-content: space-between
}

.amenity-list li {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0rem;
	line-height: 1.4;
	margin-bottom: 3px;
	font-weight: 500;
	color: #444;
	
	&:first-child {
		margin-left: -10px
	}
}

.filter-group--amenities {
	max-width: 11rem
}









/* --- Professional Amenity Multi-Select Styling --- */

.amenity-multiselect-wrap {
	position: relative;
	width: 100%;
}

.amenity-multiselect-trigger {
	width: 100%;
	text-align: left;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 4px;
	padding: 0.75rem 2.5rem 0.75rem 1rem;
	font-size: 1.15rem;
	cursor: pointer;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='3.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.25rem center;
	background-size: 1rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.amenity-multiselect-dropdown {
	overscroll-behavior: contain;
	position: absolute;
	top: calc(100% + 5px);
	left: 0;
	right: 0;
	min-width: 260px;
	max-height: 350px;
	overflow-y: auto;
	background: #fff;
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 10px 25px rgba(0,0,0,0.1);
	z-index: 1000;
	padding: 0.5rem 0;
}

.amenity-dropdown-group-label {
	padding: 0.75rem 1rem 0.35rem;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #999;
}

.amenity-dropdown-item {
	display: flex !important;
	align-items: center !important;
	gap: 0.75rem;
	padding: 0.6rem 1rem;
	cursor: pointer;
	font-size: 1.05rem;
	transition: background 0.2s ease;
	margin: 0 !important; /* Prevents layout shifts */
	width: 100%;
}

.amenity-dropdown-item:hover {
	background: #f9f9f9;
}

.amenity-dropdown-item.selected {
	background: #f0f7f9;
	color: #1a4a5f;
}

/* Fix for Wide Checkboxes */
.amenity-dropdown-item input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	margin: 0 !important;
	flex-shrink: 0;
	accent-color: #1a4a5f;
	cursor: pointer;
}

.amenity-dropdown-item span {
	white-space: nowrap;
}










/* Base Style & Default Checkmark */
.amenity-item::before {
	content: "";
	width: 36px;
	height: 36px;
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000000' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
}

/* 1. UTILITIES (Heat) */
.amenity-icon-heat::before {
	display: none;
}

/* 7. BASKETBALL (Updated) */
.amenity-icon-basketball::before {
background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='72'%20height='72'%20viewBox='0%200%2072%2072'%3E%3Cdefs%3E%3CclipPath%20id='clip_1'%3E%3Cpath%20transform='matrix(1,0,0,-1,0,72)'%20d='M0%2072H72V0H0Z'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg%20clip-path='url(%23clip_1)'%3E%3Cpath%20transform='matrix(1,0,0,-1,56.2169,34.8254)'%20stroke-width='2'%20stroke-linecap='round'%20stroke-miterlimit='10'%20stroke-linejoin='miter'%20fill='none'%20stroke='%23231f20'%20d='M0%200C0-10.394-8.426-18.82-18.82-18.82-29.213-18.82-37.639-10.394-37.639%200-37.639%2010.394-29.213%2018.82-18.82%2018.82-8.426%2018.82%200%2010.394%200%200Z'/%3E%3Cpath%20transform='matrix(1,0,0,-1,24.5053,21.636902)'%20stroke-width='2'%20stroke-linecap='round'%20stroke-miterlimit='10'%20stroke-linejoin='miter'%20fill='none'%20stroke='%23231f20'%20d='M0%200%2026.081-26.673'/%3E%3Cpath%20transform='matrix(1,0,0,-1,23.9126,48.0138)'%20stroke-width='2'%20stroke-linecap='round'%20stroke-miterlimit='10'%20stroke-linejoin='miter'%20fill='none'%20stroke='%23231f20'%20d='M0%200%2026.673%2026.377'/%3E%3Cpath%20transform='matrix(1,0,0,-1,37.3974,16.005799)'%20stroke-width='2'%20stroke-linecap='round'%20stroke-miterlimit='10'%20stroke-linejoin='miter'%20fill='none'%20stroke='%23231f20'%20d='M0%200C0%200-1.926-16.3%2018.82-18.82'/%3E%3Cpath%20transform='matrix(1,0,0,-1,37.0538,53.644899)'%20stroke-width='2'%20stroke-linecap='round'%20stroke-miterlimit='10'%20stroke-linejoin='miter'%20fill='none'%20stroke='%23231f20'%20d='M0%200C0%200%202.051%2016.37-17.987%2018.593'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
/* Bike */
.amenity-icon-bike::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,22.2748,24.6865)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H10.235%22/%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,53.4669,22.2496)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0-.325 4.386-4.386 3.249-8.448 2.112-9.748 1.137-9.748 1.137L-4.224-14.621%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,57.2035,45.0751)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-4.441-3.6-8.042-8.042-8.042-12.483-8.042-16.083-4.441-16.083 0-16.083 4.441-12.483 8.042-8.042 8.042-3.6 8.042 0 4.441 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,31.8599,45.0751)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-4.441-3.6-8.042-8.042-8.042-12.483-8.042-16.083-4.441-16.083 0-16.083 4.441-12.483 8.042-8.042 8.042-3.6 8.042 0 4.441 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,26.9622,25.451)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 5.583-16.654 3.111-14.182L18.8-2.461%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Clubhouse */
.amenity-icon-clubhouse::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,19.9768,25.2444)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-24.979%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,12.7103,29.331799)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 23.011 13.322 47.232 0%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,52.4503,25.1702)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0-.683-25.053%22/%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,12.029,54.2725)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 20.323 14.533 48.14 0%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,31.8983,47.739099)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V11.936H8.288V-.289%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* EV Chargers */
.amenity-icon-ev::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,47.4377,53.4234)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H-22.931C-23.394 0-23.77 .376-23.77 .839V36.735C-23.77 37.199-23.394 37.574-22.931 37.574H0C.464 37.574 .839 37.199 .839 36.735V.839C.839 .376 .464 0 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,37.0229,23.5467)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0-5.392-10.785H3.595L-1.797-20.671%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Fitness Center */
.amenity-icon-fitness::before {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72'%3E%3Cdefs%3E%3CclipPath id='clippath'%3E%3Crect x='8.8' y='8.8' width='54.4' height='54.4' fill='none'/%3E%3C/clipPath%3E%3CclipPath id='clippath-1'%3E%3Crect x='8.8' y='8.8' width='54.4' height='54.4' fill='none'/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path='url(%23clippath)'%3E%3Cpath d='M57.3,38.1h4.3' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3C/g%3E%3Cpath d='M28.4,38.1h15.6' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3Cg clip-path='url(%23clippath-1)'%3E%3Cg%3E%3Cpath d='M11.2,38.1h4.3' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3Cpath d='M54.5,44.4h-2.4c-.9,0-1.7-.8-1.7-1.7v-10.3c0-.9.8-1.7,1.7-1.7h2.4c.9,0,1.7.8,1.7,1.7v10.3c0,.9-.8,1.7-1.7,1.7Z' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3Cpath d='M48.6,48.7h-2.4c-.9,0-1.7-.8-1.7-1.7v-19c0-.9.8-1.7,1.7-1.7h2.4c.9,0,1.7.8,1.7,1.7v19c0,.9-.8,1.7-1.7,1.7Z' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3Cpath d='M18.1,44.4h2.4c.9,0,1.7-.8,1.7-1.7v-10.3c0-.9-.8-1.7-1.7-1.7h-2.4c-.9,0-1.7.8-1.7,1.7v10.3c0,.9.8,1.7,1.7,1.7Z' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3Cpath d='M23.9,48.7h2.4c.9,0,1.7-.8,1.7-1.7v-19c0-.9-.8-1.7-1.7-1.7h-2.4c-.9,0-1.7.8-1.7,1.7v19c0,.9.8,1.7,1.7,1.7Z' fill='none' stroke='%23231f20' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'/%3E%3C/g%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Garages */
.amenity-icon-parking::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M45.123 23.264H27.902V28.463H45.123Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,45.1229,43.6276)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H-17.221L-13.926 7.427H-3.008L0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,30.4634,48.9887)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-3.945%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,42.665,48.9887)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-3.945%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,11.351,30.6361)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 24.694 14.296 50.687 0%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,19.1491,26.249802)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-26.806%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,53.2654,26.438302)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-26.617%22/%3E%3C/g%3E%3C/svg%3E");
}

/* Pet Park */
.amenity-icon-pet-park::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,60.8391,38.2875)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C-.091 .128-.109 .465 .046 .62 .201 .775 3.622 3.822 1.323 8.128-.976 12.434-6.012 11.157-7.435 9.916-8.858 8.675-9.15 7.471-9.807 7.289-10.302 7.151-39.547 7.151-40.042 7.289-40.699 7.471-40.991 8.675-42.414 9.916-43.837 11.157-48.873 12.434-51.172 8.128-53.471 3.822-50.05 .775-49.895 .62-49.739 .465-49.758 .128-49.849 0-49.849 0-53.06-3.016-51.649-6.568-50.238-10.12-46.589-11.141-44.254-10.314-41.919-9.487-40.994-7.833-40.702-7.347-40.41-6.86-39.778-6.568-38.707-6.568H-11.141C-10.071-6.568-9.439-6.86-9.147-7.347-8.855-7.833-7.93-9.487-5.595-10.314-3.26-11.141 .389-10.12 1.8-6.568 3.211-3.016 0 0 0 0Z%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Pet Spa */
.amenity-icon-pet-spa::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,22.2582,38.5863)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0-4.349-4.014-4.349-8.697-4.349-13.38 1.338-17.06 14.049-17.06 26.76-17.06 30.105-10.035 30.105-7.025 30.105-4.014 25.088 1.004 25.088 1.004 25.088 1.004 26.426 15.053 12.042 15.053-2.342 15.053 0 0 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,22.2582,38.5863)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0-9.032 2.676-3.01 10.704 3.011 18.732 7.694 18.063 8.363 15.387%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,48.055,38.2492)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 8.657 2.339 2.636 10.367-3.385 18.395-8.068 17.726-8.737 15.05%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,37.9798,44.6074)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-.924-1.423-1.673-3.178-1.673-4.933-1.673-6.356-.924-6.356 0-6.356 .924-4.933 1.673-3.178 1.673-1.423 1.673 0 .924 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,32.2933,37.4156)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-1.386-1.123-2.509-2.509-2.509-3.894-2.509-5.018-1.386-5.018 0-5.018 1.386-3.894 2.509-2.509 2.509-1.123 2.509 0 1.386 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,41.9938,37.4156)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-1.386-1.123-2.509-2.509-2.509-3.894-2.509-5.018-1.386-5.018 0-5.018 1.386-3.894 2.509-2.509 2.509-1.123 2.509 0 1.386 0 0Z%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Pickleball */
.amenity-icon-pickleball::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,52.5242,56.0042)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C.514 .334-.201 2.236-1.589 4.227L-5.534 9.888C-6.922 11.878-7.733 15.466-7.337 17.86L-6.725 21.566C-6.329 23.96-7.119 27.562-8.481 29.57L-16.917 42.008C-18.279 44.017-21.054 44.571-23.082 43.239L-25.087 41.924C-27.116 40.592-28.767 39.49-28.756 39.475-28.745 39.459-30.347 38.285-32.315 36.865L-34.029 35.628C-35.998 34.209-36.471 31.419-35.081 29.43L-26.476 17.109C-25.086 15.119-22.004 13.095-19.627 12.609L-15.946 11.858C-13.569 11.373-10.507 9.334-9.143 7.327L-5.265 1.62C-3.901-.387-2.361-1.72-1.842-1.343-1.324-.965-.908-.645-.917-.632-.926-.618-.514-.334 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,41.0466,46.3084)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 4.496 2.932%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Picnic Area */
.amenity-icon-outdoor::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,18.032,23.3721)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H34.766%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,15.1077,52.939599)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 12.997 29.568%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,56.0473,52.939599)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0-12.997 29.568%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,13.808,38.9681)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H42.889%22/%3E%3C/g%3E%3C/svg%3E");
}

/* Playground */
.amenity-icon-playground::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,12.1421,53.1317)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 27.018 30.801H40.814L14.419 0H0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,44.3129,32.7066)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-20.387%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,53.1279,22.3003)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-30.794%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,44.6316,45.1043)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H8.35%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,44.6316,38.0003)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H8.323%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,45.928,30.568299)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H6.943%22/%3E%3C/g%3E%3C/svg%3E");
}

/* Private Entrances */
.amenity-icon-entrance::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M47.642 56.235H25.637999V21.697003H47.642Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M52.795 18.355H20.486V21.696999H52.795Z%22/%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,44.9175,33.9774)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-.923-.748-1.671-1.671-1.671-2.594-1.671-3.342-.923-3.342 0-3.342 .923-2.594 1.671-1.671 1.671-.748 1.671 0 .923 0 0Z%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Swimming Pool */
.amenity-icon-pool::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,31.8914,10.416401)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0-8.926 1.116-8.926-11.158V-37.378%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,58.1119,10.416401)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0-8.926 1.116-8.926-11.158V-37.378%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,23.2442,24.642399)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H25.858%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,23.2442,37.4737)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H25.858%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,14.6915,52.497499)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 5.332-6.203 10.338-.218 10.338-.218 16.215-6.529 22.2-.218 22.2-.218 27.859-7.182 34.171 .326 34.171 .326 38.742-4.571 42.986 .326%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Tennis Court */
.amenity-icon-tennis::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,23.4601,44.8419)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-2.149-1.742-3.892-3.892-3.892-6.041-3.892-7.784-2.149-7.784 0-7.784 2.149-6.041 3.892-3.892 3.892-1.742 3.892 0 2.149 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,39.5305,23.991002)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C-5.257 7.926-15.035 10.692-21.839 6.179-28.643 1.665-29.897-8.419-24.639-16.344-24.513-16.534-24.641-16.396-24.51-16.581-23.418-15.209-21.52-14.56-19.63-14.56-16.339-14.56-13.671-17.228-13.671-20.519-13.671-21.797-13.952-23.126-14.636-24.096-10.52-25.419-6.362-24.885-2.801-22.522 4.003-18.009 5.257-7.926 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,22.4995,15.917099)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-18.52%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,31.2722,17.2574)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0V-31.192%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,12.229,26.314499)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H28.791%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,12.3864,35.0873)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H30.258%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,33.2218,48.084)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 9.098 1.625 12.672-.65 12.672-.65 9.504 5.686 9.504 16.083%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,45.8936,48.733804)%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0 5.286-4.8%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Washer Dryer */
.amenity-icon-laundry::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 version=%221.1%22 width=%2272%22 height=%2272%22 viewBox=%220 0 72 72%22%3E%3Cdefs%3E%3CclipPath id=%22clip_1%22%3E%3Cpath transform=%22matrix(1,0,0,-1,0,72)%22 d=%22M0 72H72V0H0Z%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%3E%3Cg clip-path=%22url(%23clip_1)%22%3E%3Cpath transform=%22matrix(1,0,0,-1,46.8918,18.3522)%22 stroke-width=%222%22 stroke-linecap=%22butt%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0H-21.887C-24.248 0-26.163-1.914-26.163-4.276V-35.443H3.926V-3.926C3.926-1.758 2.168 0 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,45.7945,36.979)%22 stroke-width=%222%22 stroke-linecap=%22butt%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0-5.394-4.372-9.766-9.766-9.766-15.16-9.766-19.532-5.394-19.532 0-19.532 5.394-15.16 9.766-9.766 9.766-4.372 9.766 0 5.394 0 0Z%22/%3E%3Cpath transform=%22matrix(1,0,0,-1,26.2624,36.979)%22 stroke-width=%222%22 stroke-linecap=%22butt%22 stroke-miterlimit=%2210%22 stroke-linejoin=%22miter%22 fill=%22none%22 stroke=%22%23231f20%22 d=%22M0 0C0 0 4.65 1.767 8.185 .093 11.719-1.581 17.486-1.581 19.532 0%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}



.reset-price-btn {
	margin-top: 0.75rem;
	padding: 0.75rem 1.75rem 0.75rem 3.5rem;
	background: #1a4a5f;
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	letter-spacing: .03em;
	font-weight: 500;
	text-transform: uppercase;
	position: relative;
	display: block;

	transform: scale(1) translateZ(0)
}

.reset-price-btn span,
.reset-price-btn {
	transition: transform .4s var(--cubic)
}

.reset-price-btn span {
	position: relative;
	display: block;
	transform: scale(.97) translateZ(0)
}

.reset-price-btn:hover {
	transform: scale(.97) translateZ(0)
}

.reset-price-btn:hover span {
	transform: scale(1.01) translateZ(0)
}

.reset-price-btn span::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%) translateX(-146%);
	width: 1.167rem;
	height: 1.167rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 4v6h6'/%3E%3Cpath d='M3.51 15a9 9 0 1 0 2.13-9.36L1 10'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}


.expand-distance-btn span::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.remove-amenity-btn span::before {
	top: 52%;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
}














/* ==============================
   FILTER MODAL TRIGGER
============================== */

.filter-modal-trigger {
	display: none;
}

@media (max-width: 1549px) {
	/* Hide original inline filters */
	.filter-group--bedrooms,
	.filter-group--bathrooms,
	.filter-group--amenities {
		display: none;
	}

	/* Show trigger button */
	.filter-modal-trigger {
		display: inline-flex;
		align-items: center;
		gap: .5rem;
		
		padding: .75rem 1.25rem .75rem 2.75rem;
		background: #fff;

background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%207.4%207.3%22%3E%3Cpath%20d%3D%22M1.8%2C0c-.5%2C0-.9.3-1%20.8H.3C.1.8%2C0%2C.9%2C0%2C1c0%2C0%2C0%2C0%2C0%2C0%2C0%2C.1.1.3.3.3h.5c.1.4.5.8%2C1%20.8s.9-.3%2C1-.7h4.4c.1%2C0%2C.3-.1.3-.3h0c0-.1-.1-.3-.3-.3H2.8C2.7.3%2C2.3%2C0%2C1.8%2C0ZM1.8.5c.3%2C0%2C.5.2.5.5s-.2.5-.5.5-.5-.2-.5-.5.2-.5.5-.5ZM4.6%2C2.6c-.5%2C0-.9.3-1%20.8H.3C.1%2C3.3%2C0%2C3.4%2C0%2C3.6c0%2C0%2C0%2C0%2C0%2C0%2C0%2C.1.1.3.3.3%2C0%2C0%2C0%2C0%2C0%2C0h3.3c.1.4.5.8%2C1%20.8s.9-.3%2C1-.8h1.5c.1%2C0%2C.3-.1.3-.3h0c0-.1-.1-.3-.3-.3h-1.5c-.1-.4-.5-.8-1-.8ZM4.6%2C3.1c.3%2C0%2C.5.2.5.5s-.2.5-.5.5-.5-.2-.5-.5.2-.5.5-.5ZM2.5%2C5.3c-.5%2C0-.9.3-1%20.8H.3C.1%2C6%2C0%2C6.1%2C0%2C6.3c0%2C0%2C0%2C0%2C0%2C0%2C0%2C.1.1.3.3.3h1.3c.1.4.5.8%2C1%20.8s.9-.3%2C1-.8h3.6c.1%2C0%2C.3-.1.3-.3%2C0-.1-.1-.3-.3-.3h0s-3.6%2C0-3.6%2C0c-.1-.4-.5-.8-1-.8ZM2.5%2C5.8c.3%2C0%2C.5.2.5.5s-.2.5-.5.5-.5-.2-.5-.5.2-.5.5-.5Z%22/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: 1rem center;
		background-size: 1.15rem;
		
		border: 1px solid #ddd;
		border-radius: .25rem;
		
		font-family: "Lexend";
		font-size: 1.15rem;
		font-weight: 500;
		letter-spacing: -.02em;
		color: #333;
		
		cursor: pointer;
		white-space: nowrap;
		align-self: flex-end;
		margin-bottom: 0;
		
		transition: border-color .15s var(--cubic), background .15s var(--cubic);
	}

	.filter-modal-trigger:hover {
		border-color: #aaa;
		background-color: #f8f9fa;
	}
}

.filter-modal-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	
	min-width: 1.4rem;
	height: 1.4rem;
	padding: 0 .4rem;
	
	background: #1a4a5f;
	color: #fff;
	border-radius: 999px;
	
	font-size: .8rem;
	font-weight: 600;
	line-height: 1;
}

/* ==============================
   FILTER MODAL BACKDROP
============================== */

.filter-modal-backdrop {
	position: fixed;
	inset: 0;
	z-index: 10010;
	background: rgba(0, 0, 0, 0.5);
	
	opacity: 0;
	pointer-events: none;
	transition: opacity .3s var(--cubic);
}

.filter-modal-backdrop.active {
	opacity: 1;
	pointer-events: auto;
}

/* ==============================
   FILTER MODAL PANEL
============================== */

.filter-modal {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 10011;
	
	width: 100%;
	max-width: 28rem;
	
	background: #fff;
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
	
	display: flex;
	flex-direction: column;
	
	transform: translateX(100%);
	transition: transform .35s var(--cubic);
}

.filter-modal.active {
	transform: translateX(0);
}

/* ==============================
   MODAL HEADER
============================== */

.filter-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid #eee;
	flex-shrink: 0;
}

.filter-modal-title {
	font-family: "Lexend";
	font-size: 1.35rem;
	font-weight: 600;
	letter-spacing: -.02em;
	color: #111;
	margin: 0;
}

.filter-modal-close {
	background: none;
	border: none;
	font-size: 2rem;
	color: #666;
	cursor: pointer;
	line-height: 1;
	padding: 0;
	width: 2.5rem;
	height: 2.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
}

.filter-modal-close:hover {
	color: #000;
}

/* ==============================
   MODAL BODY
============================== */

.filter-modal-body {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}

.filter-modal-group label {
	display: flex;
	font-weight: 500;
	letter-spacing: -.02em;
	margin-bottom: 0rem;
	font-size: 1.146rem;
}

.filter-modal-group select {
	width: 100%;
	padding: .85rem 3.25rem .85rem 1rem;
	border: 1px solid #ddd;
	border-radius: .25rem;
	font-size: 1.15rem;
	font-family: "Lexend";
	letter-spacing: -.02em;
	
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='3.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.25rem center;
	background-size: 1rem;
}

/* ==============================
   MODAL FOOTER
============================== */

.filter-modal-footer {
	display: flex;
	align-items: center;
	gap: 1rem;
	
	padding: 1.25rem 1.5rem;
	border-top: 1px solid #eee;
	flex-shrink: 0;
}

.filter-modal-clear {
	background: #fff;
	border: 1px solid #ddd;
	border-radius: .25rem;
	font-family: "Lexend";
	font-size: 1.1rem;
	font-weight: 500;
	color: #333;
	cursor: pointer;
	padding: .75rem 1.5rem;
	text-decoration: none;
	transition: border-color .15s var(--cubic), background .15s var(--cubic);
}
.filter-modal-clear:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: none;
}

.filter-modal-clear:not(:disabled):hover {
	color: #000;
	border-color: #aaa;
	background: #f8f9fa;
}
.filter-modal-apply {
	flex: 1;
	padding: .75rem 1.5rem;
	
	background: #1a4a5f;
	color: #fff;
	border: none;
	border-radius: .25rem;
	
	font-family: "Lexend";
	font-size: 1.1rem;
	font-weight: 500;
	cursor: pointer;
	transition: background .15s var(--cubic), transform .1s var(--cubic);
}

.filter-modal-apply:hover {
	background: #153f52;
}

.filter-modal-apply:active {
	transform: scale(.98);
}



.filter-modal .toggle-label,
.filter-modal label {
	font-weight: bold
}






/* Price group hidden by default in modal, shown ≤1159px */
.filter-modal-group--price {
	display: none;
}

/* Both trigger text spans — only one shows at a time */
.filter-modal-trigger-text--default,
.filter-modal-trigger-text--price {
	display: none;
}

@media (max-width: 1249px) {
	.filter-modal-trigger-text--default {
		display: inline;
	}
	.filter-modal-trigger-text--price {
		display: none;
	}
}

@media (max-width: 1159px) {
	#lib-filter-menu-wrap {
		padding-left: 0 !important;
		padding-right: 0 !important
	}

	
	.filter-actions {
		padding-left: 20px;
		padding-right: 20px
	}
	/* Hide inline price slider */
	.filter-group--price {
		display: none;
	}

	/* Show price in modal */
	.filter-modal-group--price {
		display: block;
	}

	/* Swap trigger text */
	.filter-modal-trigger-text--default {
		display: none;
	}
	.filter-modal-trigger-text--price {
		display: inline;
	}
}




.filter-modal-group--price .price-slider-wrap {
	padding: 0 .25rem;
}

.filter-modal-group--price .price-slider {
	margin-top: 1.5rem;
	margin-bottom: 1rem;
}

.filter-modal-group--price .price-display {
	margin-left: auto;
}

.filter-modal-group--price label {
	width: 100%;
	display: flex;
	align-items: end;
}









/* Availability group hidden by default in modal */
.filter-modal-group--availability {
	display: none;
}

@media (max-width: 1029px) {
	.filter-actions {
		align-items: center
	}
	.filter-actions:has(.results-count-with-zip) {
		align-items: flex-end
	}
	.filter-actions-right.filter-actions-right--top {
		display: none
	}
	/* Hide inline availability toggle */
	.filter-actions-right--top .availability-toggle {
		display: none;
	}

	/* Show in modal */
	.filter-modal-group--availability {
		display: block;
		padding-top: .75rem;
		border-top: 1px solid #eee;
	}

	/* Push filter trigger button to the right */
	.filter-modal-trigger {
		margin-left: auto;
	}
}














/* ==============================
   MAP TOGGLE BUTTON (≤1049px)
============================== */

.map-toggle-btn {
	display: none;
}



/* ==============================
   MOBILE MAP FIX
   Replace the @media (max-width: 1149px) block
   for map toggle in asf.css
   ============================== */

@media (max-width: 1159px) {

	/* Hide the sidebar map by default */
	#asf-google-map-wrap {
		display: none;
		position: absolute;
		top: 0;
		left: 0 !important;
		right: 0;
		bottom: 0;
		z-index: 9998;
		width: 100% !important;
		height: 100% !important;
		background: #fff;
	}

	#asf-google-map-wrap.mobile-map-open {
		display: block;
	}

	#asf-google-map-wrap.mobile-map-open #asf-google-map {
		height: 100% !important;
		max-height: 100% !important;
	}

	/* When map is open: hide results, set a fixed height on the wrapper */
	.asf-map-wrap:has(.mobile-map-open) {
		position: relative;
		height: calc(100vh - var(--headerHeight) - var(--filter-controls-height) - 2rem);
		overflow: hidden;
	}

	.asf-map-wrap:has(.mobile-map-open) .asf-results {
		visibility: hidden;
		pointer-events: none;
	}

	/* Results take full width when map is hidden */
	.asf-results {
		width: 100% !important;
	}

	/* Lock body scroll when mobile map is open */
	body.mobile-map-active {
		overflow: hidden;
	}

	/* Show the toggle button */
	.map-toggle-btn {
		display: inline-flex;
		align-items: center;
		gap: .5rem;

		padding: .5rem 1.15rem .5rem 2.5rem;

		border: 1px solid #ddd;
		border-radius: .25rem;
		background: #fff;

		font-family: "Lexend";
		font-size: 1rem;
		font-weight: bold;
		letter-spacing: -.02em;
		color: #333;

		cursor: pointer;
		white-space: nowrap;

		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6'/%3E%3Cline x1='8' y1='2' x2='8' y2='18'/%3E%3Cline x1='16' y1='6' x2='16' y2='22'/%3E%3C/svg%3E");
		background-repeat: no-repeat;
		background-position: .85rem center;
		background-size: 1.1rem;

		transition: border-color .15s var(--cubic), background-color .15s var(--cubic);
	}

	.map-toggle-btn:hover {
		border-color: #aaa;
		background-color: #f8f9fa;
	}
}












@media (max-width: 759px) {
	.asf-prop-item {
		margin-bottom: 3.75rem !important
	}
	.asf-prop-item-inner {
		display: block !important;
		height: auto;
		max-width: 450px !important;
		margin: 0 auto;
	}

	.asf-prop-item-img {
		width: 100%;
		height: 20rem;
		min-height: 20rem;
	}

	.asf-prop-item-text {
		width: 100%;
	}
}


@media (max-width: 479px) {
	#apartments-search-app {
		padding-top: var(--headerHeight)
	}
}
@media (max-width: 459px) {
	#lib-results--map-wrap {
		overflow: hidden
	}
	#lib-results--map-wrap .container-fluid {
		padding-left: 0 !important;
		padding-right: 0 !important
	}

	.availability-badge {
		top: 15px;
		left: 27px;
	}
	
	.carousel-nav.prev {
		left: 20px
	}
	
	.carousel-nav.next {
		right: 20px
	}
		
	.asf-prop-item-img {
		margin: 0 -15px;
		max-width: 200%;
		width: auto;
		min-width: 100%
	}
	
	.asf-prop-item-inner {
		overflow: visible
	}
}









/* ≤999px: Sort into modal, hide reset from bar */
.filter-modal-group--sort {
	display: none;
}

@media (max-width: 1029px) {
	.filter-group--sort-mobile {
		display: none !important;
	}

	.filter-actions-right .reset-filter {
		display: none;
	}

	.filter-modal-group--sort {
		display: block;
		padding-top: .75rem;
		border-top: 1px solid #eee;
	}
	
	.filter-actions {
		flex-direction: row-reverse
	}
	
	.filter-actions-right {
		margin-left: 0
	}
}




@media (max-width: 599px) {
	.filter-actions-right {
		margin-right: 30px;
	}
	.results-count-with-zip {
		flex-wrap: wrap;
	}

	.zip-tag {
		margin-left: 0;
	}
}