/*
 * GeekOut Listings UI
 * Shared presentation layer for Community, Home Search, Open House,
 * and other listing/map interfaces as they are migrated.
 *
 * Site owners can change the main colors from:
 * Elementor > Site Settings > Global Colors
 *
 * Brand colors reference Elementor Global Colors directly.
 * No semantic color aliases or hard-coded brand fallbacks are used.
 */


/*
 * Community currently uses the shared file first.
 * Home Search and Open House can be moved onto these same controls/cards
 * incrementally after Community remains stable.
 */

/*
	 * Match the working Home Search / Open House desktop behavior:
	 * full browser width, 70/30 split, both panes 100vh, and only the
	 * results pane scrolls while the map remains visible beside it.
	 */
	/*
	 * The Community widget sits inside Elementor element f644be4, which
	 * adds 50px horizontal padding.  Remove only that horizontal padding
	 * so the listings/map workspace can span the page like Home Search
	 * and Open Houses.  Keep Elementor's top/bottom spacing intact.
	 */
	.elementor-647 .elementor-element.elementor-element-f644be4 {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.elementor-647 .elementor-element.elementor-element-f644be4 > .elementor-widget-container,
	.elementor-647 .elementor-element.elementor-element-f644be4 .elementor-widget-container {
		max-width: none !important;
		width: 100% !important;
	}

	/*
	 * Three explicit desktop viewing states:
	 * - Gallery: listings 100%, normal document flow
	 * - Split:   listings 70% / map 30%, 100vh workspace
	 * - Map:     map 100%, 100vh workspace
	 *
	 * State classes avoid competing inline height/overflow rules.
	 */
	.geekout-community-layout {
		display: flex;
		width: 100%;
		max-width: none;
		margin: 0;
		align-items: stretch;
		position: relative;
	}

	.geekout-community-layout > .results,
	.geekout-community-layout > .map {
		min-width: 0;
	}

	/* Default / Split view. */
	.geekout-community-layout.view-split {
		height: 100vh;
		overflow: hidden;
	}

	.geekout-community-layout.view-split > .results {
		display: block;
		width: 70%;
		height: 100vh;
		max-height: 100vh;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}

	.geekout-community-layout.view-split > .map {
		display: block;
		width: 30%;
		height: 100vh;
		overflow: hidden;
		float: none !important;
	}

	.geekout-community-layout.view-split > .map #map {
		width: 100%;
		height: 100vh !important;
	}

	/* Gallery-only view. */
	.geekout-community-layout.view-gallery {
		display: block;
		height: auto;
		overflow: visible;
	}

	.geekout-community-layout.view-gallery > .results {
		display: block;
		width: 100%;
		height: auto;
		max-height: none;
		overflow: visible;
	}

	.geekout-community-layout.view-gallery > .map {
		display: none;
	}

	/* Map-only view. */
	.geekout-community-layout.view-map {
		height: 100vh;
		overflow: hidden;
	}

	.geekout-community-layout.view-map > .results {
		display: none;
	}

	.geekout-community-layout.view-map > .map {
		display: block;
		width: 100%;
		height: 100vh;
		overflow: hidden;
		float: none !important;
	}

	.geekout-community-layout.view-map > .map #map {
		width: 100%;
		height: 100vh !important;
	}

	#leftsideresults {
		width: 100%;
		max-width: none !important;
		overflow: visible !important;
	}

	#leftsideresults {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}

	.searchresults {
		padding: 16px 20px 0;
		font-size: 14px;
		font-weight: 600;
		color: var(--e-global-color-361f472);
	}

	.geekout-community-listing-grid {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(min(100%, 285px), 1fr));
		gap: 20px;
		width: 100%;
		padding: 18px 20px 32px;
		align-items: start;
	}

	.geekout-community-layout.view-gallery .geekout-community-listing-grid {
		grid-template-columns: repeat(auto-fill, minmax(295px, 1fr));
		gap: 24px;
		padding: 22px 24px 36px;
	}

	.geekout-community-property-card {
		position: relative;
		min-width: 0;
		overflow: hidden;
		border: 1px solid rgba(0, 0, 0, .10);
		border-radius: 12px;
		background: #fff;
		box-shadow: 0 3px 14px rgba(0, 0, 0, .08);
		transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
	}

	.geekout-community-property-card:hover {
		transform: none;
		border-color: rgba(0, 0, 0, .10);
		box-shadow: 0 3px 14px rgba(0, 0, 0, .08);
	}

	.geekout-community-card-media {
		position: relative;
		aspect-ratio: 4 / 3;
		overflow: hidden;
		background: #eceeef;
		line-height: 0;
	}

	.geekout-community-card-photo {
		position: absolute;
		inset: 0;
		display: block;
		width: 100% !important;
		height: 100% !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 0 !important;
		object-fit: cover !important;
		object-position: center center;
		transition: none;
	}

	.geekout-community-card-photo-link {
		position: absolute;
		inset: 0;
		z-index: 1;
		display: block;
		margin: 0;
		padding: 0;
		text-decoration: none;
	}

	.geekout-community-card-photo-link:focus-visible {
		outline: 3px solid var(--e-global-color-primary);
		outline-offset: -3px;
	}

	.geekout-community-property-card:hover .geekout-community-card-photo {
		transform: none;
	}

	.geekout-community-card-badges {
		position: absolute;
		top: 12px;
		left: 12px;
		z-index: 3;
		display: flex;
		flex-wrap: wrap;
		gap: 6px;
		max-width: calc(100% - 68px);
		pointer-events: none;
	}

	.geekout-community-card-badge,
	.geekout-community-status-badge {
		display: inline-flex;
		align-items: center;
		min-height: 25px;
		padding: 5px 9px;
		border-radius: 999px;
		font-size: 11px;
		font-weight: 800;
		line-height: 1;
		letter-spacing: .02em;
		box-shadow: 0 2px 7px rgba(0, 0, 0, .16);
	}

	.geekout-community-card-badge-new {
		background: var(--e-global-color-primary);
		color: #fff;
	}

	.geekout-community-card-badge-openhouse {
		background: #fff;
		color: #222;
	}

	.geekout-community-status-badge {
		position: absolute;
		left: 12px;
		bottom: 12px;
		z-index: 3;
		max-width: calc(100% - 24px);
		background: rgba(20, 20, 20, .82);
		color: #fff;
		backdrop-filter: blur(3px);
		-webkit-backdrop-filter: blur(3px);
		pointer-events: none;
	}

	.geekout-community-card-favorite {
		position: absolute;
		top: 10px;
		right: 10px;
		z-index: 5;
	}

	.geekout-community-favorite-button,
	.geekout-community-favorite-login {
		appearance: none;
		-webkit-appearance: none;
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 40px;
		height: 40px;
		margin: 0;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: rgba(255, 255, 255, .94) !important;
		color: var(--e-global-color-primary);
		font-size: 20px;
		line-height: 1;
		text-decoration: none;
		box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
		cursor: pointer;
	}

	.geekout-community-favorite-button i,
	.geekout-community-favorite-login i {
		position: absolute;
		top: 50%;
		left: 50%;
		display: block;
		width: 1em;
		height: 1em;
		margin: 0;
		padding: 0;
		line-height: 1;
		text-align: center;
		transform: translate(-50%, -50%);
	}

	.geekout-community-favorite-button:hover,
	.geekout-community-favorite-login:hover {
		background: #fff !important;
		transform: scale(1.04);
		color: var(--e-global-color-primary);
	}

	.geekout-community-card-content {
		position: relative;
		z-index: 1;
		padding: 16px 17px 15px;
	}

	.geekout-community-card-price {
		margin: 0 0 5px;
		color: var(--e-global-color-text);
		font-size: clamp(21px, 2vw, 25px);
		font-weight: 800;
		line-height: 1.15;
		letter-spacing: -.02em;
	}

	.geekout-community-card-address {
		margin: 0;
		padding: 0;
		color: var(--e-global-color-text);
		font-size: 16px;
		font-weight: 700;
		line-height: 1.3;
		text-transform: none;
	}

	.geekout-community-card-location {
		margin-top: 3px;
		color: var(--e-global-color-361f472);
		font-size: 13px;
		line-height: 1.35;
	}

	.geekout-community-card-features {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 8px;
		margin-top: 15px;
		padding: 12px 0;
		border-top: 1px solid rgba(0, 0, 0, .08);
		border-bottom: 1px solid rgba(0, 0, 0, .08);
	}

	.geekout-community-card-feature {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		min-width: 0;
		color: var(--e-global-color-361f472);
		font-size: 11px;
		line-height: 1.2;
		white-space: nowrap;
	}

	.geekout-community-card-feature + .geekout-community-card-feature {
		border-left: 1px solid rgba(0, 0, 0, .08);
	}

	.geekout-community-card-feature strong {
		display: block;
		color: var(--e-global-color-text);
		font-size: 13px;
		font-weight: 800;
	}

	.geekout-community-feature-icon {
		display: inline-block;
		flex: 0 0 auto;
		width: 22px;
		height: 22px;
		color: var(--e-global-color-primary);
		vertical-align: middle;
	}

	.geekout-community-feature-icon svg {
		display: block;
		width: 100%;
		height: 100%;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.geekout-community-card-meta {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		margin-top: 12px;
		color: #777c82;
		font-size: 11px;
		font-weight: 600;
	}

	.geekout-community-card-view {
		position: relative;
		z-index: 4;
		display: inline-flex;
		align-items: center;
		gap: 4px;
		padding: 4px 0;
		color: var(--e-global-color-primary);
		font-size: 12px;
		font-weight: 800;
		line-height: 1.2;
		text-decoration: none;
		white-space: nowrap;
	}

	.geekout-community-card-view:hover,
	.geekout-community-card-view:focus-visible {
		color: var(--e-global-color-primary);
		text-decoration: underline;
	}

	.geekout-community-card-view svg {
		width: 15px;
		height: 15px;
		fill: none;
		stroke: currentColor;
		stroke-width: 2;
		stroke-linecap: round;
		stroke-linejoin: round;
	}


	/*
	 * Leaflet result card: same visual language as gallery cards.
	 */
	#map .geekout-community-leaflet-popup .leaflet-popup-content-wrapper {
		padding: 0;
		overflow: hidden;
		border-radius: 12px;
		background: #fff;
		box-shadow: 0 8px 28px rgba(0, 0, 0, .20);
	}

	#map .geekout-community-leaflet-popup .leaflet-popup-content {
		width: 320px !important;
		margin: 0 !important;
		line-height: inherit;
	}

	#map .geekout-community-leaflet-popup .leaflet-popup-close-button {
		top: 8px;
		right: 8px;
		z-index: 20;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 30px;
		height: 30px;
		padding: 0;
		border-radius: 50%;
		background: rgba(255, 255, 255, .94);
		color: #333;
		font-size: 20px;
		font-weight: 400;
		line-height: 1;
		box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
	}

	#map .geekout-community-leaflet-popup .leaflet-popup-tip {
		background: #fff;
	}

	#map .geekout-community-map-property-card {
		width: 320px;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		transform: none;
	}

	#map .geekout-community-map-property-card:hover {
		border: 0;
		box-shadow: none;
		transform: none;
	}

	#map .geekout-community-map-property-card .geekout-community-card-media {
		aspect-ratio: 4 / 3;
	}

	#map .geekout-community-map-property-card .geekout-community-card-content {
		padding: 14px 15px 13px;
	}

	#map .geekout-community-map-property-card .geekout-community-card-price {
		font-size: 22px;
	}

	#map .geekout-community-map-property-card .geekout-community-card-address {
		font-size: 15px;
	}

	#map .geekout-community-map-property-card .geekout-community-card-features {
		margin-top: 12px;
		padding: 10px 0;
	}

	#map .geekout-community-map-property-card .geekout-community-card-feature {
		gap: 5px;
		font-size: 10px;
	}

	#map .geekout-community-map-property-card .geekout-community-card-feature strong {
		font-size: 12px;
	}

	#map .geekout-community-map-property-card .geekout-community-feature-icon {
		width: 19px;
		height: 19px;
	}

	#map .geekout-community-map-property-card .geekout-community-card-meta {
		margin-top: 10px;
	}

	@media (max-width: 900px) and (min-width: 601px) {
		.geekout-community-layout.view-split .geekout-community-listing-grid {
			grid-template-columns: 1fr;
		}
	}

	@media (max-width: 600px) {
		.geekout-community-listing-grid,
		.geekout-community-layout.view-gallery .geekout-community-listing-grid {
			grid-template-columns: 1fr;
			gap: 18px;
			padding: 16px 14px 28px;
		}

		.searchresults {
			padding-left: 14px;
			padding-right: 14px;
		}
	}

	.geekout-community-message {
		margin: 20px;
		padding: 18px;
		border: 1px solid #ddd;
		border-radius: 6px;
		background: #fff;
	}

	.geekout-community-pagination {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 4px;
		margin: 0 0 50px;
		padding: 0;
		list-style: none;
	}

	.geekout-community-pagination .page-link.current {
		text-decoration: underline;
		pointer-events: none;
	}


	/* Community Gallery / Split / Map segmented control. */
	.geekout-community-viewbar {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		padding: 10px 12px;
		background: #fff;
		border-bottom: 1px solid rgba(0, 0, 0, .10);
	}

	.geekout-community-view-toggle {
		display: inline-flex;
		align-items: center;
		gap: 5px;
		padding: 4px;
		margin: 0;
		border-radius: 10px;
		background: rgba(0, 0, 0, .045);
		box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
	}

	.geekout-community-view-button {
		appearance: none;
		-webkit-appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 7px;
		min-height: 38px;
		margin: 0;
		padding: 8px 14px;
		border: 0;
		border-radius: 7px;
		background: var(--e-global-color-primary);
		color: #fff;
		font: inherit;
		font-size: 14px;
		font-weight: 700;
		line-height: 1;
		cursor: pointer;
		box-shadow: none;
		opacity: .62;
		transition: opacity .15s ease, transform .15s ease, box-shadow .15s ease;
	}

	.geekout-community-view-button:hover {
		opacity: .82;
		transform: translateY(-1px);
	}

	.geekout-community-view-button:focus-visible {
		opacity: .9;
		outline: 2px solid currentColor;
		outline-offset: 2px;
	}

	.geekout-community-view-button.is-active {
		opacity: 1;
		transform: none;
		box-shadow: 0 2px 7px rgba(0, 0, 0, .18);
	}

	.geekout-community-view-button svg {
		display: block;
		width: 17px;
		height: 17px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
		flex: 0 0 auto;
	}

	@media (max-width: 600px) {
		.geekout-community-viewbar {
			padding: 8px;
		}

		.geekout-community-view-toggle {
			width: 100%;
			max-width: 360px;
		}

		.geekout-community-view-button {
			flex: 1 1 50%;
			padding-left: 10px;
			padding-right: 10px;
		}

		/* Split is intentionally desktop-only. */
		.geekout-community-view-button[data-view="split"] {
			display: none;
		}

		.geekout-community-layout.view-gallery {
			display: block;
			height: auto;
			overflow: visible;
		}

		.geekout-community-layout.view-gallery > .results {
			display: block;
			width: 100%;
			height: auto;
			max-height: none;
			overflow: visible;
		}

		.geekout-community-layout.view-gallery > .map {
			display: none;
		}

		.geekout-community-layout.view-map {
			display: block;
			height: 60vh;
			overflow: hidden;
		}

		.geekout-community-layout.view-map > .results {
			display: none;
		}

		.geekout-community-layout.view-map > .map {
			display: block;
			width: 100%;
			height: 60vh;
			overflow: hidden;
		}

		.geekout-community-layout.view-map > .map #map {
			width: 100%;
			height: 60vh !important;
		}

		/* Safety fallback if a desktop split state survives a resize. */
		.geekout-community-layout.view-split {
			display: block;
			height: auto;
			overflow: visible;
		}

		.geekout-community-layout.view-split > .results {
			display: block;
			width: 100%;
			height: auto;
			max-height: none;
			overflow: visible;
		}

		.geekout-community-layout.view-split > .map {
			display: none;
		}
	}

/* ==========================================================================
   Shared homepage listing cards
   ==========================================================================
   These selectors intentionally adapt the existing New / Agent / Broker /
   Luxury slider and grid markup without changing their PHP/MLS logic.
   ========================================================================== */

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) {
	--geekout-home-card-radius: 12px;
}

:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .slick-slide {
	box-sizing: border-box;
	padding: 8px 10px 18px;
}

:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .slick-slide > div {
	height: 100%;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) :is(.image1.card, .image12.card, .card.shadow-sm.mb-5) {
	position: relative;
	height: 100%;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent) !important;
	border-radius: var(--geekout-home-card-radius) !important;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 3px 14px rgba(0, 0, 0, .08) !important;
	transform: none !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) :is(.image1.card, .image12.card, .card.shadow-sm.mb-5):hover {
	transform: none !important;
	box-shadow: 0 3px 14px rgba(0, 0, 0, .08) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #eceeef;
	line-height: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a {
	display: block;
	width: 100%;
	height: 100%;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .card-img-top {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover !important;
	object-position: center center;
	border-radius: 0 !important;
}

/* New / status / open-house badges. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .badgeNew,
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .bg-openhouse,
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a > span[class^="badge"]:not(.badgeNew):not(.bg-openhouse) {
	z-index: 3;
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	padding: 5px 9px !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .02em;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .16);
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .badgeNew {
	top: 12px !important;
	left: 12px !important;
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .bg-openhouse {
	top: 12px !important;
	right: 56px !important;
	background: #fff !important;
	color: var(--e-global-color-text) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a > span[class^="badge"]:not(.badgeNew):not(.bg-openhouse) {
	left: 12px !important;
	bottom: 12px !important;
	top: auto !important;
	max-width: calc(100% - 24px);
	background: rgba(20, 20, 20, .82) !important;
	color: #fff !important;
}

/* Hide only the plain Active badge. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .badgeActive {
	display: none !important;
}

/* Reorder card body into the same hierarchy as Community. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body {
	display: flex;
	flex-direction: column;
	position: relative;
	min-height: 230px;
	padding: 16px 17px 15px !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favprice {
	order: 1;
	margin: 0 0 5px !important;
	color: var(--e-global-color-text) !important;
	font-size: clamp(21px, 2vw, 25px) !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	letter-spacing: -.02em;
	text-align: left !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favaddress1 {
	order: 2;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--e-global-color-text) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.3 !important;
	text-align: left !important;
	text-transform: none !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favaddress1 a {
	color: inherit !important;
	text-decoration: none !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favaddress2 {
	order: 3;
	margin-top: 3px;
	color: var(--e-global-color-361f472) !important;
	font-size: 13px !important;
	line-height: 1.35 !important;
	text-align: left !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type {
	order: 4;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	width: 100%;
	margin: 15px 0 0 !important;
	padding: 12px 0 !important;
	border-top: 1px solid rgba(0, 0, 0, .08);
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4 {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: auto !important;
	max-width: none !important;
	padding: 0 7px !important;
	border-right: 1px solid rgba(0, 0, 0, .08) !important;
	color: var(--e-global-color-361f472);
	font-size: 11px;
	line-height: 1.2;
	text-align: center;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4:last-child {
	border-right: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type .elementor-icon {
	color: var(--e-global-color-primary) !important;
	font-size: 20px !important;
	line-height: 1 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) :is(.favbeds, .favbaths, .favsqft) {
	color: var(--e-global-color-text) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favMLSID {
	order: 5;
	margin-top: 11px;
	color: #777c82 !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	text-align: left !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type {
	order: 6;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type > .col-8 {
	width: auto !important;
	max-width: none !important;
	flex: 0 0 auto !important;
	padding: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .viewbtn {
	display: inline-flex !important;
	align-items: center;
	gap: 4px;
	min-width: 0 !important;
	width: auto !important;
	margin: 0 !important;
	padding: 4px 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--e-global-color-primary) !important;
	font-size: 0 !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .viewbtn::before {
	content: "View Property";
	font-size: 12px;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .viewbtn::after {
	content: "→";
	font-size: 14px;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .viewbtn:hover {
	text-decoration: underline !important;
}

/* Move favorite control over the image without changing its PHP handler. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type > .col-4 {
	position: static !important;
	width: 0 !important;
	max-width: 0 !important;
	flex: 0 0 0 !important;
	padding: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type > .col-4 > .heart {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 6;
	width: 40px;
	height: 40px;
	margin: 0 !important;
	padding: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .heart form.heart {
	position: static !important;
	width: 40px;
	height: 40px;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .heart .buttons {
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .heart :is(button.selected, .buttons > div > a) {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .94) !important;
	color: var(--e-global-color-primary) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18) !important;
	cursor: pointer;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .heart .buttons > div {
	margin: 0 !important;
	padding: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .heart i {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 1em;
	height: 1em;
	margin: 0;
	padding: 0;
	line-height: 1 !important;
	text-align: center;
	transform: translate(-50%, -50%);
}

/* Grid spacing. */
:is(
	#newlistingsdesktop-layout,
	#agentdesktop-layout,
	#brokerdesktop-layout,
	#luxurydesktop-layout
) {
	row-gap: 24px;
}

:is(
	#newlistingsdesktop-layout,
	#agentdesktop-layout,
	#brokerdesktop-layout,
	#luxurydesktop-layout
) > .col-lg-3hp {
	display: flex;
}

/* Slick arrows use the Elementor-controlled primary color. */
:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) :is(.slick-prev, .slick-next) {
	color: var(--e-global-color-primary) !important;
}

/* ==========================================================================
   Single-property nearby map popup
   ========================================================================== */

#map .geekout-property-nearby-popup .leaflet-popup-content-wrapper {
	padding: 0;
	overflow: hidden;
	border-radius: 12px;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 8px 28px rgba(0, 0, 0, .20);
}

#map .geekout-property-nearby-popup .leaflet-popup-content {
	width: 320px !important;
	margin: 0 !important;
	line-height: inherit;
}

#map .geekout-property-nearby-popup .leaflet-popup-close-button {
	top: 8px;
	right: 8px;
	z-index: 20;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	color: var(--e-global-color-text);
	font-size: 20px;
	font-weight: 400;
	line-height: 1;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}

#map .geekout-property-nearby-popup .leaflet-popup-tip {
	background: var(--e-global-color-50b259d);
}

.geekout-property-map-card {
	width: 320px;
	overflow: hidden;
	background: var(--e-global-color-50b259d);
}

.geekout-property-map-media {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #eceeef;
}

.geekout-property-map-media > a {
	display: block;
	width: 100%;
	height: 100%;
}

.geekout-property-map-photo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	object-position: center center;
}

.geekout-property-map-status {
	position: absolute;
	left: 12px;
	bottom: 12px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	min-height: 25px;
	max-width: calc(100% - 24px);
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(20, 20, 20, .82);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .16);
}

.geekout-property-map-body {
	padding: 14px 15px 13px;
}

.geekout-property-map-price {
	margin: 0 0 5px;
	color: var(--e-global-color-text);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
}

.geekout-property-map-address {
	margin: 0;
	color: var(--e-global-color-text);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
}

.geekout-property-map-location {
	margin-top: 3px;
	color: var(--e-global-color-361f472);
	font-size: 13px;
	line-height: 1.35;
}

.geekout-property-map-features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 12px;
	padding: 10px 0;
	border-top: 1px solid rgba(0, 0, 0, .08);
	border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.geekout-property-map-feature {
	min-width: 0;
	padding: 0 6px;
	color: var(--e-global-color-361f472);
	font-size: 10px;
	line-height: 1.25;
	text-align: center;
}

.geekout-property-map-feature + .geekout-property-map-feature {
	border-left: 1px solid rgba(0, 0, 0, .08);
}

.geekout-property-map-feature strong {
	display: block;
	margin-bottom: 2px;
	color: var(--e-global-color-text);
	font-size: 12px;
	font-weight: 800;
}

.geekout-property-map-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 10px;
	color: #777c82;
	font-size: 11px;
	font-weight: 600;
}

.geekout-property-map-view {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 0;
	color: var(--e-global-color-primary) !important;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
}

.geekout-property-map-view:hover {
	text-decoration: underline !important;
}

@media (max-width: 480px) {
	#map .geekout-property-nearby-popup .leaflet-popup-content,
	.geekout-property-map-card {
		width: 280px !important;
	}
}

/* ==========================================================================
   v3 refinements: homepage card order, grid density, map favorites,
   favorites-page cards, and nearby-map feature readability
   ========================================================================== */

/* Lock homepage card content into the intended visual order. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"price price"
		"address address"
		"location location"
		"features features"
		"meta view";
	align-content: start;
	column-gap: 14px;
	min-height: 0 !important;
	padding: 16px 17px 15px !important;
	position: static !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favprice {
	grid-area: price !important;
	order: initial !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favaddress1 {
	grid-area: address !important;
	order: initial !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favaddress2 {
	grid-area: location !important;
	order: initial !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type {
	grid-area: features !important;
	order: initial !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .favMLSID {
	grid-area: meta !important;
	order: initial !important;
	align-self: center;
	margin: 10px 0 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type {
	grid-area: view !important;
	order: initial !important;
	align-self: center;
	justify-self: end;
	width: auto !important;
	margin: 10px 0 0 !important;
}

/* Heart is inside card-body in the legacy markup. Because card-body is no
   longer positioned, this absolute element now anchors to the whole card. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:last-of-type > .col-4 > .heart {
	top: 10px !important;
	right: 10px !important;
}

/* Desktop grids: four wider cards with a restrained, consistent gap. */
:is(
	#newlistingsdesktop-layout,
	#agentdesktop-layout,
	#brokerdesktop-layout,
	#luxurydesktop-layout
) {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px !important;
	width: 100%;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

:is(
	#newlistingsdesktop-layout,
	#agentdesktop-layout,
	#brokerdesktop-layout,
	#luxurydesktop-layout
) > .col-lg-3hp {
	display: block !important;
	width: auto !important;
	max-width: none !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

:is(
	#newlistingsdesktop-layout,
	#agentdesktop-layout,
	#brokerdesktop-layout,
	#luxurydesktop-layout
) > .col-lg-3hp > .card {
	margin-bottom: 0 !important;
}

@media (max-width: 1100px) {
	:is(
		#newlistingsdesktop-layout,
		#agentdesktop-layout,
		#brokerdesktop-layout,
		#luxurydesktop-layout
	) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 600px) {
	:is(
		#newlistingsdesktop-layout,
		#agentdesktop-layout,
		#brokerdesktop-layout,
		#luxurydesktop-layout
	) {
		grid-template-columns: 1fr;
	}
}

/* Generic favorite control for every Leaflet popup. */
.geekout-listings-map-favorite {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 8;
	width: 40px;
	height: 40px;
}

.geekout-listings-map-favorite :is(
	.geekout-listings-map-favorite-button,
	.geekout-listings-map-favorite-login
) {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .95) !important;
	color: var(--e-global-color-primary) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18) !important;
	cursor: pointer;
}

.geekout-listings-map-favorite i {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 1em;
	height: 1em;
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
	text-align: center;
	transform: translate(-50%, -50%);
}

/* Property nearby map: retain the clean no-icon look, just make the text
   large enough to scan comfortably. */
.geekout-property-map-feature {
	font-size: 12px !important;
}

.geekout-property-map-feature strong {
	font-size: 15px !important;
	line-height: 1.15;
}

/* ==========================================================================
   Saved Favorites cards
   ==========================================================================
   This covers the existing .containerlistings / #favcard structure already
   used by GeekOut favorites output. It is intentionally scoped away from
   normal Bootstrap cards.
   ========================================================================== */

.containerlistings > .row {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
	gap: 22px;
	margin: 0 !important;
}

.containerlistings #favcard {
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.containerlistings #favcard > .card {
	height: 100%;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent) !important;
	border-radius: 12px !important;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 3px 14px rgba(0, 0, 0, .08) !important;
}

.containerlistings #favcard > .card > .card-img-top {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #eceeef;
	border-radius: 0 !important;
}

.containerlistings #favcard > .card > .card-img-top a {
	display: block;
	width: 100%;
	height: 100%;
}

.containerlistings #favcard > .card > .card-img-top img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover !important;
	object-position: center center;
}

.containerlistings #favcard .card-body {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"price price"
		"address address"
		"location location"
		"status status"
		"meta view";
	column-gap: 14px;
	padding: 16px 17px 15px !important;
}

.containerlistings #favcard .favprice {
	grid-area: price;
	margin: 0 0 5px !important;
	color: var(--e-global-color-text) !important;
	font-size: 24px !important;
	font-weight: 800 !important;
	line-height: 1.15;
	letter-spacing: -.02em;
}

.containerlistings #favcard .favaddress1 {
	grid-area: address;
	margin: 0 !important;
	color: var(--e-global-color-text) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	line-height: 1.3;
}

.containerlistings #favcard .favaddress2 {
	grid-area: location;
	margin-top: 3px;
	color: var(--e-global-color-361f472) !important;
	font-size: 13px !important;
	line-height: 1.35;
}

.containerlistings #favcard .go-favorite-status {
	grid-area: status;
	display: inline-flex;
	justify-self: start;
	margin: 12px 0 0 !important;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(20, 20, 20, .82);
	color: #fff !important;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
}

.containerlistings #favcard .favMLSID {
	grid-area: meta;
	align-self: center;
	margin: 12px 0 0 !important;
	color: #777c82 !important;
	font-size: 11px !important;
	font-weight: 600 !important;
}

.containerlistings #favcard .button.button-primary,
.containerlistings #favcard .viewbtn {
	grid-area: view;
	align-self: center;
	justify-self: end;
	margin: 12px 0 0 !important;
	padding: 4px 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--e-global-color-primary) !important;
	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

.containerlistings #favcard .button.button-primary::after,
.containerlistings #favcard .viewbtn::after {
	content: " →";
}

.containerlistings #favcard .button.button-primary:hover,
.containerlistings #favcard .viewbtn:hover {
	text-decoration: underline !important;
}

/* ==========================================================================
   v4 homepage refinements
   ========================================================================== */

/*
 * Force the Beds / Baths / Sq Ft strip to occupy the entire card width.
 * Bootstrap's legacy .row/.col sizing is explicitly neutralized here.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	grid-area: features !important;
	justify-self: stretch !important;
	align-self: stretch !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 15px 0 0 !important;
	padding: 12px 0 !important;
	border-top: 1px solid rgba(0, 0, 0, .10) !important;
	border-bottom: 1px solid rgba(0, 0, 0, .10) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4 {
	display: flex !important;
	flex: none !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 62px;
	margin: 0 !important;
	padding: 0 10px !important;
	border: 0 !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4 + .col-4 {
	border-left: 1px solid rgba(0, 0, 0, .28) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type .elementor-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	margin: 0 0 5px !important;
	padding: 0 !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) :is(.favbeds, .favbaths, .favsqft) {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	text-align: center !important;
}

/*
 * Homepage Upcoming Open House badge:
 * use the site primary color and stack it at the upper-left beneath New.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .bg-openhouse {
	top: 48px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .bg-openhouse:empty {
	display: none !important;
}

/* ==========================================================================
   v5 final homepage overrides
   ==========================================================================
   Kept at the very end of the shared stylesheet so these rules win over
   legacy Bootstrap/theme card styles.
   ========================================================================== */

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type {
	box-sizing: border-box !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 100% !important;
	margin: 15px 0 0 !important;
	padding: 12px 0 !important;
	border-top: 1px solid rgba(0, 0, 0, .16) !important;
	border-bottom: 1px solid rgba(0, 0, 0, .16) !important;
	column-gap: 0 !important;
	row-gap: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4 {
	box-sizing: border-box !important;
	display: flex !important;
	flex: 0 0 100% !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 8px !important;
	border: 0 !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4:nth-child(2),
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type > .col-4:nth-child(3) {
	border-left: 1px solid rgba(0, 0, 0, .28) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:first-of-type .elementor-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 5px !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	position: absolute !important;
	top: 48px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 5 !important;
	background-color: var(--e-global-color-primary) !important;
	background-image: none !important;
	color: #fff !important;
	border: 0 !important;
}

/* ==========================================================================
   v6 homepage correction
   ==========================================================================
   Previous selectors used .row:first-of-type, which does not mean "first
   .row"; it means first DIV of its type. Target the actual feature row by
   its contents instead.
   ========================================================================== */

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) {
	box-sizing: border-box !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	grid-area: features !important;
	grid-column: 1 / -1 !important;
	justify-self: stretch !important;
	align-self: stretch !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 15px 0 0 !important;
	padding: 12px 0 !important;
	border-top: 1px solid rgba(0, 0, 0, .14) !important;
	border-bottom: 1px solid rgba(0, 0, 0, .14) !important;
	column-gap: 0 !important;
	row-gap: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) > .col-4 {
	box-sizing: border-box !important;
	display: flex !important;
	flex: none !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	min-height: 68px !important;
	margin: 0 !important;
	padding: 0 10px !important;
	border: 0 !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) > .col-4 + .col-4 {
	border-left: 1px solid rgba(0, 0, 0, .30) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) .elementor-icon {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	text-align: center !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) :is(.favbeds, .favbaths, .favsqft) {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	white-space: nowrap !important;
	text-align: center !important;
}

/*
 * Badge alignment.
 *
 * Default Open House position is upper-left. If New is visibly present,
 * move Open House to the right of it on the same row.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .badgeNew {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 6 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 32px !important;
	padding: 7px 14px !important;
	line-height: 1 !important;
	vertical-align: middle !important;
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 5 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 32px !important;
	padding: 7px 14px !important;
	line-height: 1 !important;
	vertical-align: middle !important;
	background: var(--e-global-color-primary) !important;
	background-image: none !important;
	color: #fff !important;
	border: 0 !important;
}

/* When the New badge is actually displayed, put Open House beside it. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: block"]) .bg-openhouse {
	left: 88px !important;
}

/* If New is hidden, Open House occupies the normal upper-left position. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: none"]) .bg-openhouse {
	left: 12px !important;
}

/* ==========================================================================
   v7 homepage Open House badge
   ========================================================================== */

/*
 * Keep New at upper-left. Open House sits beside it when New is visible,
 * otherwise it uses the normal upper-left position.
 *
 * The original PHP text remains in the markup for compatibility; visually
 * the shared UI presents the shorter "Open House" label.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	min-width: 0 !important;
	max-width: calc(100% - 24px) !important;
	padding: 7px 13px !important;
	background: var(--e-global-color-361f472) !important;
	background-color: var(--e-global-color-361f472) !important;
	color: #fff !important;
	font-size: 0 !important;
	white-space: nowrap !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .bg-openhouse::after {
	content: "Open House";
	display: inline-block;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .02em;
}

/* New visible: leave a clear gap after the New badge. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: block"]) .bg-openhouse {
	left: 96px !important;
}

/* New hidden: Open House starts in the normal upper-left position. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: none"]) .bg-openhouse {
	left: 12px !important;
}

/* ==========================================================================
   v8 compact homepage badges
   ========================================================================== */

/* Make New more compact on every homepage listing card. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .badgeNew {
	min-height: 30px !important;
	padding: 6px 9px !important;
	font-size: 11px !important;
	line-height: 1 !important;
}

/* Compact Open House badge. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	min-height: 30px !important;
	padding: 6px 9px !important;
}

/*
 * With New visible, Open House sits immediately beside it.
 * The tighter badge sizing lets us reduce the old 96px offset substantially.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: block"]) .bg-openhouse {
	left: 68px !important;
}

/* No New badge: Open House remains at normal upper-left. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: none"]) .bg-openhouse {
	left: 12px !important;
}

/*
 * Slider cards are the tightest layout. Trim both badges a bit further there
 * while leaving the desktop grid slightly roomier.
 */
:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .imagewrap .badgeNew {
	padding-left: 7px !important;
	padding-right: 7px !important;
}

:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	padding-left: 7px !important;
	padding-right: 7px !important;
}

:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: block"]) .bg-openhouse {
	left: 64px !important;
}

/* ==========================================================================
   v9 deterministic homepage badge spacing
   ==========================================================================
   Use a fixed compact width for New so Open House can be positioned beside
   it without guessing the rendered badge width.
   ========================================================================== */

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap .badgeNew {
	box-sizing: border-box !important;
	width: 50px !important;
	min-width: 50px !important;
	max-width: 50px !important;
	min-height: 30px !important;
	padding: 6px 4px !important;
	justify-content: center !important;
	text-align: center !important;
	white-space: nowrap !important;
}

/* 12px left + 50px New badge + 6px gap = 68px. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: block"]) .bg-openhouse {
	left: 68px !important;
}

/* If New is not displayed, Open House owns the normal upper-left position. */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap:has(> .badgeNew[style*="display: none"]) .bg-openhouse {
	left: 12px !important;
}

/* Keep Open House compact enough for narrow slider cards. */
:is(
	#newlistingslider,
	#newslistingssliderMobile,
	#agentslider,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurysliderMobile
) .imagewrap .bg-openhouse {
	padding-left: 6px !important;
	padding-right: 6px !important;
}

/* ==========================================================================
   v10 definitive homepage badge layout
   ==========================================================================
   The homepage markup is:
       .badgeNew + a > .bg-openhouse
   Use that exact relationship and high specificity so legacy badge CSS
   cannot resize New or push Open House underneath it.
   ========================================================================== */

html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > span.badgeNew.badgeNew {
	box-sizing: border-box !important;
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 7 !important;

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

	width: 54px !important;
	min-width: 54px !important;
	max-width: 54px !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 5px !important;

	background: var(--e-global-color-primary) !important;
	background-color: var(--e-global-color-primary) !important;
	color: #fff !important;

	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 30px !important;
	letter-spacing: 0 !important;
	text-align: center !important;
	white-space: nowrap !important;
	overflow: hidden !important;

	border: 0 !important;
	border-radius: 999px !important;
}

/*
 * Open House: 12px card inset + 54px New pill + 6px gap = 72px.
 */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > span.badgeNew[style*="display: block"] + a > span.bg-openhouse.bg-openhouse {
	box-sizing: border-box !important;
	position: absolute !important;
	top: 12px !important;
	left: 72px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 6 !important;

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

	width: auto !important;
	min-width: 0 !important;
	max-width: calc(100% - 84px) !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	background: var(--e-global-color-361f472) !important;
	background-color: var(--e-global-color-361f472) !important;
	background-image: none !important;
	color: #fff !important;

	font-size: 0 !important;
	line-height: 30px !important;
	text-align: center !important;
	white-space: nowrap !important;

	border: 0 !important;
	border-radius: 999px !important;
}

/* When New is hidden, Open House owns the upper-left position. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > span.badgeNew[style*="display: none"] + a > span.bg-openhouse.bg-openhouse {
	left: 12px !important;
	max-width: calc(100% - 24px) !important;
}

/* Keep the shortened label regardless of the legacy PHP text. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a > span.bg-openhouse.bg-openhouse::after {
	content: "Open House" !important;
	display: inline-block !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .02em !important;
	white-space: nowrap !important;
}

/* ==========================================================================
   v11 homepage badge positioning context
   ==========================================================================
   Actual markup:
       .imagewrap
           > .badgeNew
           > a
               > img
               > status badge
               > .bg-openhouse

   New and Open House must use the SAME positioned ancestor.
   ========================================================================== */

html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap {
	position: relative !important;
}

/*
 * Do not let the property link become a separate positioning container.
 * Its absolutely positioned children will now position against .imagewrap.
 */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a {
	position: static !important;
}

/* Compact New badge. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .badgeNew {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 7 !important;

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

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 30px !important;
	min-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	font-size: 14px !important;
	font-weight: 700 !important;
	line-height: 30px !important;
	white-space: nowrap !important;
}

/*
 * When New is visible, Open House starts immediately after it.
 * New's compact rendered width is about 47px, so:
 * 12px inset + 47px badge + 6px gap = 65px.
 */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .badgeNew[style*="display: block"] + a > .bg-openhouse {
	position: absolute !important;
	top: 12px !important;
	left: 65px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 6 !important;
}

/* When New is hidden, Open House uses the normal upper-left position. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .badgeNew[style*="display: none"] + a > .bg-openhouse {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 6 !important;
}

/* ==========================================================================
   v12 homepage badge row
   ==========================================================================
   New and Open House now share one markup wrapper. They are laid out with
   flex instead of independent absolute offsets.
   ========================================================================== */

html body .imagewrap {
	position: relative !important;
}

html body .geekout-home-badges {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 8 !important;

	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	flex-wrap: nowrap !important;
	gap: 5px !important;

	width: auto !important;
	max-width: calc(100% - 78px) !important;
	margin: 0 !important;
	padding: 0 !important;

	pointer-events: none;
}

html body .geekout-home-badges > .badgeNew,
html body .geekout-home-badges > .bg-openhouse {
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;

	align-items: center !important;
	justify-content: center !important;
	flex: 0 0 auto !important;

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	border: 0 !important;
	border-radius: 999px !important;

	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 30px !important;
	letter-spacing: .01em !important;
	text-align: center !important;
	white-space: nowrap !important;

	pointer-events: none;
}

html body .geekout-home-badges > .badgeNew {
	background: var(--e-global-color-primary) !important;
	background-color: var(--e-global-color-primary) !important;
	color: #fff !important;
}

html body .geekout-home-badges > .bg-openhouse {
	display: inline-flex !important;
	background: var(--e-global-color-361f472) !important;
	background-color: var(--e-global-color-361f472) !important;
	background-image: none !important;
	color: #fff !important;
}

html body .geekout-home-badges > .badgeNew[style*="display: none"] {
	display: none !important;
}

html body .geekout-home-badges > .badgeNew[style*="display: block"] {
	display: inline-flex !important;
}

/* The property image link remains independent underneath the badge row. */
html body .imagewrap > a {
	position: static !important;
}

/* ==========================================================================
   v13 homepage badge cleanup
   ==========================================================================
   Neutralize older high-specificity badge experiments and let the new shared
   .geekout-home-badges wrapper control layout completely.
   ========================================================================== */

html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges {
	position: absolute !important;
	inset: auto !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 20 !important;

	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 6px !important;

	width: auto !important;
	height: auto !important;
	max-width: calc(100% - 82px) !important;
	margin: 0 !important;
	padding: 0 !important;

	transform: none !important;
	line-height: 1 !important;
}

/* Reset New completely inside the new badge row. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges > span.badgeNew.badgeNew {
	box-sizing: border-box !important;
	position: static !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;

	display: inline-flex !important;
	flex: 0 0 auto !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	transform: none !important;
	float: none !important;

	background: var(--e-global-color-primary) !important;
	background-color: var(--e-global-color-primary) !important;
	background-image: none !important;
	color: #fff !important;

	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;

	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 30px !important;
	letter-spacing: .01em !important;
	text-align: center !important;
	white-space: nowrap !important;
	overflow: visible !important;
}

/* Respect the inline New visibility flag from PHP. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges > span.badgeNew.badgeNew[style*="display: none"] {
	display: none !important;
}

/* Reset Open House completely inside the new badge row. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges > span.bg-openhouse.bg-openhouse {
	box-sizing: border-box !important;
	position: static !important;
	inset: auto !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	bottom: auto !important;

	display: inline-flex !important;
	flex: 0 0 auto !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	transform: none !important;
	float: none !important;

	background: var(--e-global-color-361f472) !important;
	background-color: var(--e-global-color-361f472) !important;
	background-image: none !important;
	color: #fff !important;

	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;

	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 30px !important;
	letter-spacing: .01em !important;
	text-align: center !important;
	white-space: nowrap !important;
	overflow: visible !important;
}

/*
 * Remove the legacy generated Open House label entirely.
 * The PHP now outputs the correct "Open House" text directly.
 */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges > span.bg-openhouse.bg-openhouse::before,
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > .geekout-home-badges.geekout-home-badges > span.bg-openhouse.bg-openhouse::after {
	content: none !important;
	display: none !important;
}

/* Keep the image link out of the badge layout entirely. */
html body :is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .imagewrap > a {
	position: static !important;
}

/* ==========================================================================
   v14 isolated homepage badges
   ==========================================================================
   These classes are intentionally unique and do not reuse legacy
   .badgeNew / .bg-openhouse classes.
   ========================================================================== */

html body .imagewrap > .geekout-home-badges {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	bottom: auto !important;
	z-index: 20 !important;

	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 6px !important;

	width: auto !important;
	height: 30px !important;
	max-width: calc(100% - 82px) !important;

	margin: 0 !important;
	padding: 0 !important;
	transform: none !important;
}

html body .imagewrap > .geekout-home-badges > .geekout-home-badge {
	box-sizing: border-box !important;
	position: static !important;

	display: inline-flex !important;
	flex: 0 0 auto !important;
	align-items: center !important;
	justify-content: center !important;

	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 30px !important;
	min-height: 30px !important;
	max-height: 30px !important;

	margin: 0 !important;
	padding: 0 8px !important;

	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: none !important;

	font-size: 12px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .01em !important;
	text-align: center !important;
	white-space: nowrap !important;

	transform: none !important;
	float: none !important;
	pointer-events: none !important;
}

html body .imagewrap > .geekout-home-badges > .geekout-home-badge-new {
	background: var(--e-global-color-primary) !important;
	background-color: var(--e-global-color-primary) !important;
	background-image: none !important;
	color: #fff !important;
}

html body .imagewrap > .geekout-home-badges > .geekout-home-badge-openhouse {
	background: var(--e-global-color-361f472) !important;
	background-color: var(--e-global-color-361f472) !important;
	background-image: none !important;
	color: #fff !important;
}

/* ==========================================================================
   Property Search / MLS results
   ========================================================================== */

.geekout-search-viewbar {
	display: flex;
	justify-content: center;
	width: 100%;
	padding: 12px 16px;
}

.geekout-search-view-toggle {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px;
	border-radius: 10px;
	background: rgba(0, 0, 0, .045);
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
}

.geekout-search-view-button {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 38px;
	margin: 0;
	padding: 8px 14px;
	border: 0;
	border-radius: 7px;
	background: var(--e-global-color-primary);
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	opacity: .62;
	transition: opacity .15s ease;
}

.geekout-search-view-button:hover {
	opacity: .82;
}

.geekout-search-view-button.is-active {
	opacity: 1;
}

.geekout-search-view-button svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.geekout-search-layout {
	display: flex;
	align-items: stretch;
	width: 100%;
}

.geekout-search-results,
.geekout-search-map {
	box-sizing: border-box;
	min-width: 0;
}

.geekout-search-layout.view-split .geekout-search-results {
	width: 70%;
	height: 100vh;
	overflow-y: auto;
}

.geekout-search-layout.view-split .geekout-search-map {
	display: block;
	width: 30%;
	height: 100vh;
}

.geekout-search-layout.view-gallery {
	display: block;
}

.geekout-search-layout.view-gallery .geekout-search-results {
	width: 100%;
	height: auto;
	overflow: visible;
}

.geekout-search-layout.view-gallery .geekout-search-map {
	display: none;
}

.geekout-search-layout.view-map {
	display: block;
}

.geekout-search-layout.view-map .geekout-search-results {
	display: none;
}

.geekout-search-layout.view-map .geekout-search-map {
	display: block;
	width: 100%;
	height: 80vh;
	min-height: 560px;
}

.geekout-search-map #map {
	width: 100%;
	height: 100%;
	min-height: 60vh;
	z-index: 1;
}

#leftsideresults {
	width: 100% !important;
	max-width: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

#leftsideresults > .searchresults {
	padding: 16px 20px 0;
	color: var(--e-global-color-361f472);
	font-size: 14px;
	font-weight: 600;
}

.geekout-search-listing-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 285px), 1fr));
	gap: 20px;
	width: 100%;
	padding: 18px 20px 32px;
	align-items: start;
}

.geekout-search-layout.view-gallery .geekout-search-listing-grid {
	grid-template-columns: repeat(auto-fill, minmax(295px, 1fr));
	gap: 24px;
	padding: 22px 24px 36px;
}

.geekout-search-property-card {
	position: relative;
	min-width: 0;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 12px;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 3px 14px rgba(0, 0, 0, .08);
}

.geekout-search-card-media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #eceeef;
	line-height: 0;
}

.geekout-search-card-photo-link {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
}

.geekout-search-card-photo {
	position: absolute;
	inset: 0;
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	object-fit: cover !important;
	object-position: center center;
}

.geekout-search-card-badges {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 4;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	max-width: calc(100% - 76px);
	pointer-events: none;
}

.geekout-search-card-badge,
.geekout-search-status-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 28px;
	padding: 6px 9px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .02em;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .16);
}

.geekout-search-card-badge-new {
	background: var(--e-global-color-primary);
	color: #fff;
}

.geekout-search-card-badge-openhouse {
	background: var(--e-global-color-361f472);
	color: #fff;
}

.geekout-search-status-badge {
	position: absolute;
	left: 12px;
	bottom: 12px;
	z-index: 4;
	max-width: calc(100% - 24px);
	background: rgba(20, 20, 20, .82);
	color: #fff;
	pointer-events: none;
}

.geekout-search-card-favorite {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 8;
}

.geekout-search-favorite-button,
.geekout-search-card-favorite .geekout-listings-map-favorite-button {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .94) !important;
	color: var(--e-global-color-primary) !important;
	font-size: 20px !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18) !important;
	cursor: pointer;
}

.geekout-search-favorite-button i,
.geekout-search-card-favorite i {
	position: absolute;
	top: 50%;
	left: 50%;
	display: block;
	width: 1em;
	height: 1em;
	margin: 0;
	line-height: 1;
	text-align: center;
	transform: translate(-50%, -50%);
}

.geekout-search-card-content {
	padding: 16px 17px 15px;
}

.geekout-search-card-price {
	margin: 0 0 5px;
	color: var(--e-global-color-text);
	font-size: clamp(21px, 2vw, 25px);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
}

.geekout-search-card-address {
	margin: 0;
	color: var(--e-global-color-text);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.3;
	text-transform: none;
}

.geekout-search-card-address a {
	color: inherit;
	text-decoration: none;
}

.geekout-search-card-location {
	margin-top: 3px;
	color: var(--e-global-color-361f472);
	font-size: 13px;
	line-height: 1.35;
}

.geekout-search-card-features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin-top: 15px;
	padding: 12px 0;
	border-top: 1px solid rgba(0, 0, 0, .10);
	border-bottom: 1px solid rgba(0, 0, 0, .10);
}

.geekout-search-card-feature {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 0;
	padding: 0 7px;
	color: var(--e-global-color-361f472);
	font-size: 11px;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
}

.geekout-search-card-feature + .geekout-search-card-feature {
	border-left: 1px solid rgba(0, 0, 0, .16);
}

.geekout-search-card-feature strong {
	display: block;
	color: var(--e-global-color-text);
	font-size: 13px;
	font-weight: 800;
}

.geekout-search-feature-icon {
	display: inline-block;
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	color: var(--e-global-color-primary);
}

.geekout-search-feature-icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.geekout-search-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 12px;
	color: #777c82;
	font-size: 11px;
	font-weight: 600;
}

.geekout-search-card-view {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 0;
	color: var(--e-global-color-primary) !important;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.2;
	text-decoration: none !important;
	white-space: nowrap;
}

.geekout-search-card-view svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Leaflet search popup uses the exact same card language. */
#map .geekout-search-leaflet-popup .leaflet-popup-content-wrapper {
	padding: 0;
	overflow: hidden;
	border-radius: 12px;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 8px 28px rgba(0, 0, 0, .20);
}

#map .geekout-search-leaflet-popup .leaflet-popup-content {
	width: 320px !important;
	margin: 0 !important;
	line-height: inherit;
}

#map .geekout-search-leaflet-popup .leaflet-popup-close-button {
	top: 8px;
	right: 8px;
	z-index: 30;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	color: var(--e-global-color-text);
	box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
}

#map .geekout-search-leaflet-popup .leaflet-popup-tip {
	background: var(--e-global-color-50b259d);
}

#map .geekout-search-map-card {
	width: 320px;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

#map .geekout-search-map-card .geekout-search-card-content {
	padding: 14px 15px 13px;
}

#map .geekout-search-map-card .geekout-search-card-price {
	font-size: 22px;
}

#map .geekout-search-map-card .geekout-search-card-address {
	font-size: 15px;
}

#map .geekout-search-map-card .geekout-search-card-features {
	margin-top: 12px;
	padding: 10px 0;
}

#map .geekout-search-map-card .geekout-search-card-feature {
	font-size: 10px;
}

#map .geekout-search-map-card .geekout-search-card-feature strong {
	font-size: 12px;
}

@media (max-width: 900px) and (min-width: 601px) {
	.geekout-search-layout.view-split .geekout-search-listing-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 600px) {
	.geekout-search-view-split {
		display: none !important;
	}

	.geekout-search-layout,
	.geekout-search-layout.view-gallery,
	.geekout-search-layout.view-map {
		display: block;
	}

	.geekout-search-layout.view-gallery .geekout-search-results {
		display: block;
		width: 100%;
		height: auto;
		overflow: visible;
	}

	.geekout-search-layout.view-gallery .geekout-search-map {
		display: none;
	}

	.geekout-search-layout.view-map .geekout-search-results {
		display: none;
	}

	.geekout-search-layout.view-map .geekout-search-map {
		display: block;
		width: 100%;
		height: 60vh;
	}

	.geekout-search-listing-grid,
	.geekout-search-layout.view-gallery .geekout-search-listing-grid {
		grid-template-columns: 1fr;
		gap: 18px;
		padding: 16px 14px 28px;
	}

	#leftsideresults > .searchresults {
		padding-left: 14px;
		padding-right: 14px;
	}

	#map .geekout-search-leaflet-popup .leaflet-popup-content,
	#map .geekout-search-map-card {
		width: 280px !important;
	}
}

/* ==========================================================================
   Property Search v17 map corrections
   ========================================================================== */

/*
 * Leaflet owns the upper-right corner for its close button.
 * Move the favorite heart down so the two click targets never overlap.
 */
#map .geekout-search-map-card .geekout-search-card-favorite {
	top: 50px !important;
	right: 10px !important;
	z-index: 18 !important;
}

/*
 * Keep the popup close button above all property-card controls.
 */
#map .geekout-search-leaflet-popup .leaflet-popup-close-button {
	z-index: 40 !important;
}

/* ==========================================================================
   Open House Search
   ========================================================================== */

.geekout-openhouse-date {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0 0 12px;
	padding: 8px 10px;
	border-radius: 8px;
	background: rgba(0, 0, 0, .045);
	color: var(--e-global-color-361f472);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.2;
}

.geekout-openhouse-date strong {
	color: var(--e-global-color-primary);
	font-size: 13px;
	font-weight: 800;
}

.geekout-openhouse-card .geekout-search-card-badge-openhouse,
.geekout-openhouse-map-card .geekout-search-card-badge-openhouse {
	background: var(--e-global-color-361f472);
	color: #fff;
}

/*
 * Leaflet's close control owns the popup's top-right corner.
 * Keep the favorite below it just as on Property Search.
 */
#map .geekout-openhouse-map-card .geekout-search-card-favorite {
	top: 50px !important;
	right: 10px !important;
	z-index: 18 !important;
}

#map .geekout-openhouse-map-card .geekout-openhouse-date {
	margin-bottom: 10px;
	padding: 7px 9px;
}

@media (max-width: 600px) {
	.geekout-openhouse-date {
		gap: 8px;
	}
}

/* ==========================================================================
   Favorites / Saved Properties
   ========================================================================== */

.geekout-favorites-page {
	width: 100%;
}

.geekout-favorites-heading {
	margin: 0 0 22px;
}

.geekout-favorites-heading h2 {
	margin: 0 0 5px;
	padding: 0;
	background: transparent;
	color: var(--e-global-color-text);
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 800;
	line-height: 1.15;
}

.geekout-favorites-heading p {
	margin: 0;
	color: var(--e-global-color-361f472);
	font-size: 14px;
	line-height: 1.5;
}

.geekout-favorites-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
	gap: 22px;
	width: 100%;
	align-items: start;
}

.geekout-favorite-property-card {
	width: 100%;
	min-width: 0;
}

.geekout-favorite-property-card .heartFavPage,
.geekout-favorite-property-card .buttons {
	margin: 0;
	padding: 0;
}

.geekout-favorite-property-card .geekout-search-card-favorite {
	top: 10px;
	right: 10px;
}

.geekout-favorite-property-card .geekout-search-favorite-button {
	display: inline-flex !important;
}

.geekout-favorite-property-card #heartFavPage {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1em;
	height: 1em;
	margin: 0;
	line-height: 1;
	transform: translate(-50%, -50%);
}

.geekout-favorites-empty {
	padding: 28px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 12px;
	background: var(--e-global-color-50b259d);
	text-align: center;
}

.geekout-favorites-empty p {
	margin: 0;
	color: var(--e-global-color-361f472);
}

.geekout-favorites-login {
	padding: 24px 0;
	text-align: center;
}

@media (max-width: 600px) {
	.geekout-favorites-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}
}

/* ==========================================================================
   Favorites v20 heart + price consistency
   ========================================================================== */

/*
 * Old Favorites-page CSS can style the form, .buttons wrapper, or the
 * #heartFavPage icon independently. Reset those layers so only the shared
 * modern favorite button supplies the circular white background.
 */
.geekout-favorite-property-card .heartFavPage,
.geekout-favorite-property-card .heartFavPage .buttons {
	display: block !important;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	line-height: 1 !important;
}

.geekout-favorite-property-card .heartFavPage .selected.geekout-search-favorite-button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 40px !important;
	height: 40px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, .94) !important;
	color: var(--e-global-color-primary) !important;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18) !important;
	line-height: 1 !important;
}

.geekout-favorite-property-card #heartFavPage {
	position: static !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	font-size: 20px !important;
	line-height: 1 !important;
	transform: none !important;
}

/* ==========================================================================
   Favorites v21 heart position + saved-state color
   ========================================================================== */

/*
 * Keep the Favorites heart visibly inset from the card/photo corner.
 * !important is intentional here because legacy Favorites CSS on the site
 * also positions this control.
 */
.geekout-favorite-property-card .geekout-search-card-favorite {
	top: 26px !important;
	right: 16px !important;
	bottom: auto !important;
	left: auto !important;
	margin: 0 !important;
	transform: none !important;
}

/*
 * A saved favorite is red on the Favorites page.
 * Keep the shared white circular button background.
 */
.geekout-favorite-property-card
.heartFavPage
.selected.geekout-search-favorite-button {
	color: #d32f2f !important;
}

/*
 * Font Awesome can receive its own legacy color/background rules.
 */
.geekout-favorite-property-card
.heartFavPage
.selected.geekout-search-favorite-button
#heartFavPage {
	color: #d32f2f !important;
	background: transparent !important;
}

/* ==========================================================================
   v23 unified listing feature icons
   ==========================================================================
   One icon system for Community, Home Search, Open House, Favorites,
   nearby/map cards, and the homepage New/Agent/Broker/Luxury sliders/grids.
   ========================================================================== */

:root {
	--geekout-listings-icon-bed: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%3Cpath%20d%3D%22M4%2026V9%22%2F%3E%0A%3Cpath%20d%3D%22M28%2026v-7%22%2F%3E%0A%3Cpath%20d%3D%22M4%2022h24%22%2F%3E%0A%3Cpath%20d%3D%22M7%2016h7c2.2%200%204%201.8%204%204v2H7z%22%2F%3E%0A%3Crect%20x%3D%227%22%20y%3D%2212%22%20width%3D%227%22%20height%3D%224%22%20rx%3D%221.2%22%2F%3E%0A%3Cpath%20d%3D%22M18%2017h6a4%204%200%200%201%204%204v1%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
	--geekout-listings-icon-bath: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.1%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%3Cpath%20d%3D%22M5%2016h22v3a7%207%200%200%201-7%207h-8a7%207%200%200%201-7-7z%22%2F%3E%0A%3Cpath%20d%3D%22M8%2016V8a4%204%200%200%201%208%200%22%2F%3E%0A%3Cpath%20d%3D%22M14%208h5%22%2F%3E%0A%3Cpath%20d%3D%22M9%2026l-1%202%22%2F%3E%0A%3Cpath%20d%3D%22M23%2026l1%202%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
	--geekout-listings-icon-sqft: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.1%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%3Cpath%20d%3D%22M5%2023l4%204%2018-18-4-4z%22%2F%3E%0A%3Cpath%20d%3D%22M10%2022l2%202%22%2F%3E%0A%3Cpath%20d%3D%22M14%2018l2%202%22%2F%3E%0A%3Cpath%20d%3D%22M18%2014l2%202%22%2F%3E%0A%3Cpath%20d%3D%22M22%2010l2%202%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
}

/*
 * Modern card icon wrappers.
 * Hide the older inline SVG artwork and let the shared stylesheet own it.
 */
.geekout-search-card-feature .geekout-search-feature-icon,
.geekout-community-card-feature .geekout-community-feature-icon {
	display: inline-block !important;
	flex: 0 0 22px !important;
	width: 22px !important;
	height: 22px !important;
	background-color: var(--e-global-color-primary) !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	-webkit-mask-size: contain !important;
	mask-size: contain !important;
}

.geekout-search-card-feature .geekout-search-feature-icon svg,
.geekout-community-card-feature .geekout-community-feature-icon svg {
	display: none !important;
}

.geekout-search-card-feature:nth-child(1) .geekout-search-feature-icon,
.geekout-community-card-feature:nth-child(1) .geekout-community-feature-icon {
	-webkit-mask-image: var(--geekout-listings-icon-bed) !important;
	mask-image: var(--geekout-listings-icon-bed) !important;
}

.geekout-search-card-feature:nth-child(2) .geekout-search-feature-icon,
.geekout-community-card-feature:nth-child(2) .geekout-community-feature-icon {
	-webkit-mask-image: var(--geekout-listings-icon-bath) !important;
	mask-image: var(--geekout-listings-icon-bath) !important;
}

.geekout-search-card-feature:nth-child(3) .geekout-search-feature-icon,
.geekout-community-card-feature:nth-child(3) .geekout-community-feature-icon {
	-webkit-mask-image: var(--geekout-listings-icon-sqft) !important;
	mask-image: var(--geekout-listings-icon-sqft) !important;
}

/*
 * Some map-popup cards intentionally use the compact feature markup without
 * an explicit icon span. Add the same icon family there without duplicating
 * icons on cards that already contain one.
 */
.geekout-search-card-feature:not(:has(.geekout-search-feature-icon))::before,
.geekout-property-map-feature::before {
	content: "";
	display: inline-block;
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	background-color: var(--e-global-color-primary);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}

.geekout-search-card-feature:nth-child(1):not(:has(.geekout-search-feature-icon))::before,
.geekout-property-map-feature:nth-child(1)::before {
	-webkit-mask-image: var(--geekout-listings-icon-bed);
	mask-image: var(--geekout-listings-icon-bed);
}

.geekout-search-card-feature:nth-child(2):not(:has(.geekout-search-feature-icon))::before,
.geekout-property-map-feature:nth-child(2)::before {
	-webkit-mask-image: var(--geekout-listings-icon-bath);
	mask-image: var(--geekout-listings-icon-bath);
}

.geekout-search-card-feature:nth-child(3):not(:has(.geekout-search-feature-icon))::before,
.geekout-property-map-feature:nth-child(3)::before {
	-webkit-mask-image: var(--geekout-listings-icon-sqft);
	mask-image: var(--geekout-listings-icon-sqft);
}

/*
 * Homepage New / Agent / Broker / Luxury cards still contain the historical
 * Font Awesome icons. Hide those glyphs and render the exact same shared
 * custom icon family used by the modern listing cards.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) .elementor-icon {
	display: inline-block !important;
	flex: 0 0 22px !important;
	width: 22px !important;
	height: 22px !important;
	margin: 0 auto 6px !important;
	background-color: var(--e-global-color-primary) !important;
	-webkit-mask-repeat: no-repeat !important;
	mask-repeat: no-repeat !important;
	-webkit-mask-position: center !important;
	mask-position: center !important;
	-webkit-mask-size: contain !important;
	mask-size: contain !important;
	font-size: 0 !important;
	line-height: 0 !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) .elementor-icon > i {
	display: none !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) > .col-4:nth-child(1) .elementor-icon {
	-webkit-mask-image: var(--geekout-listings-icon-bed) !important;
	mask-image: var(--geekout-listings-icon-bed) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) > .col-4:nth-child(2) .elementor-icon {
	-webkit-mask-image: var(--geekout-listings-icon-bath) !important;
	mask-image: var(--geekout-listings-icon-bath) !important;
}

:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) > .col-4:nth-child(3) .elementor-icon {
	-webkit-mask-image: var(--geekout-listings-icon-sqft) !important;
	mask-image: var(--geekout-listings-icon-sqft) !important;
}

/*
 * Keep homepage feature text visually consistent with the modern cards while
 * retaining the existing PHP values/labels.
 */
:is(
	#newlistingslider,
	#newlistingsdesktop-layout,
	#newslistingssliderMobile,
	#agentslider,
	#agentdesktop-layout,
	#agentsliderMobile,
	#brokerslider,
	#brokerdesktop-layout,
	#brokersliderMobile,
	#luxuryslider,
	#luxurydesktop-layout,
	#luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) :is(.favbeds, .favbaths, .favsqft) {
	color: var(--e-global-color-361f472) !important;
	font-size: 11px !important;
	line-height: 1.2 !important;
}

/* ==========================================================================
   Team-member / Agent Bio property cards
   ========================================================================== */

.geekout-agent-bio-listings {
	width: 100%;
}

.d-md-grid {
	display: none !important;
}

.geekout-agent-bio-grid {
	width: 100%;
	gap: 22px;
	align-items: start;
}

.geekout-agent-bio-grid--three {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.geekout-agent-bio-grid--four {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.geekout-agent-bio-property-card {
	width: 100%;
	min-width: 0;
}

.geekout-agent-bio-property-card .geekout-search-card-favorite {
	top: 10px !important;
	right: 10px !important;
}

.geekout-agent-bio-mobile {
	width: 100%;
}

.geekout-agent-bio-carousel {
	width: 100%;
	padding: 0 42px;
}

.geekout-agent-bio-carousel .carousel-inner {
	width: 100%;
	overflow: hidden;
}

.geekout-agent-bio-carousel .carousel-item {
	width: 100%;
	padding: 2px;
}

.geekout-agent-bio-carousel .carousel-control-prev,
.geekout-agent-bio-carousel .carousel-control-next {
	top: 50%;
	bottom: auto;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .96);
	color: var(--e-global-color-primary);
	opacity: 1;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .16);
	transform: translateY(-50%);
}

.geekout-agent-bio-carousel .carousel-control-prev {
	left: 0;
}

.geekout-agent-bio-carousel .carousel-control-next {
	right: 0;
}

.geekout-agent-carousel-arrow {
	display: block;
	font-size: 30px;
	font-weight: 400;
	line-height: 30px;
}

@media (min-width: 768px) {
	.d-md-grid {
		display: grid !important;
	}

	.d-md-none {
		display: none !important;
	}
}

@media (min-width: 768px) and (max-width: 1100px) {
	.geekout-agent-bio-grid--three,
	.geekout-agent-bio-grid--four {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.geekout-agent-bio-carousel {
		padding: 0 38px;
	}
}

@media (max-width: 430px) {
	.geekout-agent-bio-carousel {
		padding: 0 30px;
	}

	.geekout-agent-bio-carousel .carousel-control-prev,
	.geekout-agent-bio-carousel .carousel-control-next {
		width: 30px;
		height: 30px;
	}

	.geekout-agent-carousel-arrow {
		font-size: 26px;
		line-height: 26px;
	}
}

/* ==========================================================================
   Modern shared property search form
   ========================================================================== */

.geekout-modern-search {
	width: min(1480px, calc(100% - 32px));
	margin: 24px auto 18px;
	padding: 0;
}

.geekout-modern-search-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 14px;
}

.geekout-modern-search-heading h1 {
	margin: 0 0 5px;
	padding: 0;
	background: transparent;
	color: #000;
	font-size: clamp(24px, 3vw, 36px);
	font-weight: 800;
	line-height: 1.1;
}

.geekout-modern-search-heading p {
	margin: 0;
	color: var(--e-global-color-361f472);
	font-size: 14px;
	line-height: 1.5;
}

.geekout-modern-search-form {
	position: relative;
	z-index: 30;
	padding: 14px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 14px;
	background: var(--e-global-color-50b259d);
	box-shadow: 0 4px 18px rgba(0, 0, 0, .07);
}

.geekout-modern-search-text {
	position: relative;
	display: flex;
	align-items: center;
	margin-bottom: 10px;
}

.geekout-modern-search-text > svg {
	position: absolute;
	left: 16px;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: var(--e-global-color-361f472);
	stroke-width: 2;
	pointer-events: none;
}

.geekout-modern-search-text input {
	width: 100%;
	height: 54px;
	margin: 0;
	padding: 0 18px 0 48px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 10px;
	outline: none;
	background: #fff;
	color: var(--e-global-color-text);
	font-family: inherit;
	font-size: 16px;
	line-height: 1;
	box-shadow: none;
}

.geekout-modern-search-text input:focus {
	border-color: var(--e-global-color-primary);
	box-shadow: 0 0 0 3px color-mix(
		in srgb,
		var(--e-global-color-primary) 14%,
		transparent
	);
}

.geekout-modern-search-primary {
	display: grid;
	grid-template-columns:
		minmax(105px, .8fr)
		minmax(105px, .8fr)
		minmax(150px, 1.15fr)
		minmax(170px, 1.25fr)
		minmax(145px, 1fr)
		minmax(145px, .95fr);
	gap: 10px;
	align-items: stretch;
}

.geekout-modern-search-select {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-width: 0;
	height: 58px;
	padding: 7px 10px 6px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 9px;
	background: #fff;
}

.geekout-modern-search-select > span,
.geekout-modern-search-dropdown summary > span,
.geekout-modern-search-dropdown-panel label > span,
.geekout-modern-search-more-grid label > span {
	display: block;
	margin: 0 0 2px;
	color: var(--e-global-color-361f472);
	font-size: 10px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.geekout-modern-search-select select,
.geekout-modern-search-dropdown-panel select,
.geekout-modern-search-more-grid select {
	width: 100%;
	height: auto;
	min-height: 0;
	margin: 0;
	padding: 2px 24px 2px 0;
	border: 0;
	outline: 0;
	background-color: transparent;
	color: var(--e-global-color-text);
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.25;
	box-shadow: none;
	cursor: pointer;
}

.geekout-modern-search-dropdown {
	position: relative;
	min-width: 0;
}

.geekout-modern-search-dropdown > summary {
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 58px;
	padding: 8px 12px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 9px;
	background: #fff;
	color: var(--e-global-color-text);
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.geekout-modern-search-dropdown > summary::-webkit-details-marker {
	display: none;
}

.geekout-modern-search-dropdown > summary::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 12px;
	width: 7px;
	height: 7px;
	border-right: 2px solid var(--e-global-color-361f472);
	border-bottom: 2px solid var(--e-global-color-361f472);
	transform: translateY(-65%) rotate(45deg);
	transition: transform .18s ease;
}

.geekout-modern-search-dropdown[open] > summary::after {
	transform: translateY(-30%) rotate(225deg);
}

.geekout-modern-search-dropdown summary strong {
	display: block;
	overflow: hidden;
	padding-right: 16px;
	color: var(--e-global-color-text);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.25;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.geekout-modern-search-more > summary {
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 7px;
}

.geekout-modern-search-more > summary > span {
	margin: 0;
	color: var(--e-global-color-text);
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
}

.geekout-modern-search-more > summary > svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: var(--e-global-color-primary);
	stroke-width: 2;
}

.geekout-modern-search-dropdown-panel,
.geekout-modern-search-more-panel {
	position: absolute;
	top: calc(100% + 8px);
	z-index: 120;
	padding: 14px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 11px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .14);
}

.geekout-modern-search-dropdown-panel {
	left: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(130px, 1fr));
	gap: 10px;
	width: min(330px, 80vw);
}

.geekout-modern-search-dropdown-panel label,
.geekout-modern-search-more-grid label {
	display: block;
	padding: 9px 10px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 8px;
	background: #fff;
}

.geekout-modern-search-more-panel {
	right: 0;
	width: min(760px, 92vw);
}

.geekout-modern-search-more-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.geekout-modern-search-toggles {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	margin-top: 13px;
	padding-top: 13px;
	border-top: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
}

.geekout-modern-search-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--e-global-color-text);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.geekout-modern-search-toggle input {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var(--e-global-color-primary);
}

.geekout-modern-search-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	height: 58px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--e-global-color-primary);
	border-radius: 9px;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
	transition:
		opacity .18s ease,
		transform .18s ease;
}

.geekout-modern-search-submit:hover,
.geekout-modern-search-submit:focus {
	color: #fff;
	opacity: .9;
}

.geekout-modern-search-submit:active {
	transform: translateY(1px);
}

.geekout-modern-search-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 8px;
}

.geekout-modern-search-footer a {
	color: var(--e-global-color-361f472);
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.geekout-modern-search-footer a:hover {
	color: var(--e-global-color-primary);
}

@media (max-width: 1100px) {
	.geekout-modern-search-primary {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.geekout-modern-search-more-panel {
		right: auto;
		left: 0;
	}

	.geekout-modern-search-more-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.geekout-modern-search {
		width: calc(100% - 20px);
		margin-top: 14px;
	}

	.geekout-modern-search-heading {
		margin-bottom: 10px;
	}

	.geekout-modern-search-heading h1 {
		font-size: 25px;
	}

	.geekout-modern-search-heading p {
		font-size: 13px;
	}

	.geekout-modern-search-form {
		padding: 10px;
		border-radius: 12px;
	}

	.geekout-modern-search-text input {
		height: 50px;
		font-size: 15px;
	}

	.geekout-modern-search-primary {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.geekout-modern-search-select,
	.geekout-modern-search-dropdown > summary,
	.geekout-modern-search-submit {
		height: 54px;
	}

	.geekout-modern-search-submit {
		grid-column: 1 / -1;
	}

	.geekout-modern-search-dropdown-panel,
	.geekout-modern-search-more-panel {
		position: fixed;
		top: auto;
		right: 10px;
		bottom: 10px;
		left: 10px;
		width: auto;
		max-height: min(70vh, 620px);
		overflow: auto;
		z-index: 9999;
	}

	.geekout-modern-search-more-grid {
		grid-template-columns: 1fr;
	}

	.geekout-modern-search-footer {
		justify-content: center;
		margin-top: 10px;
	}
}

@media (max-width: 390px) {
	.geekout-modern-search-primary {
		grid-template-columns: 1fr;
	}

	.geekout-modern-search-submit {
		grid-column: auto;
	}
}

.geekout-modern-search-dropdown.has-active-filters > summary {
	border-color: color-mix(
		in srgb,
		var(--e-global-color-primary) 55%,
		color-mix(in srgb, var(--e-global-color-text) 10%, transparent)
	);
	background: color-mix(
		in srgb,
		var(--e-global-color-primary) 5%,
		#fff
	);
}

.geekout-modern-search-panel-done {
	grid-column: 1 / -1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 40px;
	margin: 3px 0 0;
	padding: 8px 14px;
	border: 1px solid var(--e-global-color-primary);
	border-radius: 8px;
	background: var(--e-global-color-primary);
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1;
	cursor: pointer;
}

.geekout-modern-search-panel-done:hover,
.geekout-modern-search-panel-done:focus {
	color: #fff;
	opacity: .9;
}

/* ==========================================================================
   Modern Search v26 — filter checkbox spacing/alignment
   ========================================================================== */

.geekout-modern-search-toggles {
	align-items: center;
	margin-bottom: 14px;
	padding-bottom: 4px;
}

.geekout-modern-search-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	gap: 8px;
	min-height: 24px;
	line-height: 1;
}

.geekout-modern-search-toggle input[type="checkbox"] {
	flex: 0 0 17px;
	width: 17px;
	height: 17px;
	margin: 0;
	padding: 0;
	vertical-align: middle;
}

.geekout-modern-search-toggle > span {
	display: inline-flex;
	align-items: center;
	min-height: 17px;
	margin: 0;
	padding: 0;
	line-height: 17px;
}

/* ==========================================================================
   Search UI v27 — Open House + homepage popup
   ========================================================================== */

.geekout-modern-search--openhouse {
	margin-bottom: 18px;
}

.geekout-modern-search--popup {
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
	padding: 0;
}

.geekout-modern-search--popup .geekout-modern-search-heading {
	margin-bottom: 12px;
	text-align: center;
}

.geekout-modern-search--popup .geekout-modern-search-heading > div {
	width: 100%;
}

.geekout-modern-search--popup .geekout-modern-search-heading h2 {
	margin: 0 0 5px;
	color: var(--e-global-color-text);
	font-size: clamp(23px, 4vw, 32px);
	font-weight: 800;
	line-height: 1.12;
}

.geekout-search-mode-switch {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px;
	width: 100%;
	margin: 0 0 10px;
	padding: 4px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 10px;
	background: rgba(0, 0, 0, .035);
}

.geekout-search-mode-switch button {
	min-height: 42px;
	margin: 0;
	padding: 8px 12px;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: var(--e-global-color-361f472);
	font-family: inherit;
	font-size: 13px;
	font-weight: 800;
	line-height: 1.15;
	cursor: pointer;
}

.geekout-search-mode-switch button.is-active {
	background: var(--e-global-color-50b259d);
	color: var(--e-global-color-primary);
	box-shadow: 0 1px 5px rgba(0, 0, 0, .12);
}

.geekout-modern-search--popup .geekout-modern-search-form {
	padding: 12px;
}

.geekout-homepage-search-core {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
}

.geekout-homepage-search-core .geekout-modern-search-dropdown-panel {
	left: auto;
	right: 0;
}

.geekout-homepage-more {
	margin-top: 9px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 9px;
	background: #fff;
}

.geekout-homepage-more > summary {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 44px;
	padding: 8px 12px;
	color: var(--e-global-color-text);
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
	list-style: none;
}

.geekout-homepage-more > summary::-webkit-details-marker {
	display: none;
}

.geekout-homepage-more > summary svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: var(--e-global-color-primary);
	stroke-width: 2;
}

.geekout-homepage-more-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 9px;
	padding: 0 10px 10px;
}

.geekout-homepage-more-grid label {
	display: block;
	min-width: 0;
	padding: 8px 9px;
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
	border-radius: 8px;
	background: #fff;
}

.geekout-homepage-more-grid label > span {
	display: block;
	margin: 0 0 3px;
	color: var(--e-global-color-361f472);
	font-size: 10px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .05em;
	text-transform: uppercase;
}

.geekout-homepage-more-grid select {
	width: 100%;
	margin: 0;
	padding: 2px 22px 2px 0;
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--e-global-color-text);
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	box-shadow: none;
}

.geekout-homepage-search-submit {
	width: 100%;
	margin-top: 10px;
}

.premium-modal-box-modal .geekout-modern-search--popup {
	width: 100%;
	max-width: 760px;
	margin: 0 auto;
}

.premium-modal-box-modal .geekout-modern-search--popup select {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

@media (max-width: 700px) {
	.geekout-modern-search--popup .geekout-modern-search-heading h2 {
		font-size: 24px;
	}

	.geekout-homepage-search-core {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.geekout-homepage-more-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 420px) {
	.geekout-homepage-search-core {
		grid-template-columns: 1fr;
	}

	.geekout-search-mode-switch button {
		padding-inline: 8px;
		font-size: 12px;
	}
}

/* ==========================================================================
   Search UI v28 — homepage search mode toggle visibility
   ========================================================================== */

.geekout-modern-search--popup .geekout-search-mode-switch {
	background: rgba(0, 0, 0, .045) !important;
}

.geekout-modern-search--popup .geekout-search-mode-switch button {
	border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent) !important;
	background: var(--e-global-color-50b259d) !important;
	color: var(--e-global-color-primary) !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-text-fill-color: var(--e-global-color-primary) !important;
}

.geekout-modern-search--popup .geekout-search-mode-switch button:hover,
.geekout-modern-search--popup .geekout-search-mode-switch button:focus {
	border-color: var(--e-global-color-primary) !important;
	background: color-mix(
		in srgb,
		var(--e-global-color-primary) 7%,
		#fff
	) !important;
	color: var(--e-global-color-primary) !important;
	-webkit-text-fill-color: var(--e-global-color-primary) !important;
}

.geekout-modern-search--popup .geekout-search-mode-switch button.is-active,
.geekout-modern-search--popup .geekout-search-mode-switch button.is-active:hover,
.geekout-modern-search--popup .geekout-search-mode-switch button.is-active:focus {
	border-color: var(--e-global-color-primary) !important;
	background: var(--e-global-color-primary) !important;
	color: #fff !important;
	box-shadow: 0 2px 7px rgba(0, 0, 0, .14) !important;
	-webkit-text-fill-color: #fff !important;
}

/* ==========================================================================
   Search UI v29 — homepage popup viewport height
   ========================================================================== */

.premium-modal-box-modal .geekout-modern-search--popup {
	max-height: 70vh !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	overscroll-behavior: contain;
	scrollbar-gutter: stable;
	padding-right: 4px;
}

@media (max-width: 700px) {
	.premium-modal-box-modal .geekout-modern-search--popup {
		max-height: 70vh !important;
	}
}

/* Cap the actual Premium Addons modal frame as well as the search content. */
.premium-modal-box-modal .premium-modal-box-modal-dialog {
	max-height: 70vh !important;
	overflow: hidden !important;
}

.premium-modal-box-modal .premium-modal-box-modal-body {
	max-height: 70vh !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	overscroll-behavior: contain;
}

/* ==========================================================================
   Search UI v30 — active filter chips
   ========================================================================== */

.geekout-active-filters {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: min(100%, 1440px);
	margin: 10px auto 14px;
	padding: 0 14px;
}

.geekout-active-filters-label {
	flex: 0 0 auto;
	padding-top: 7px;
	color: var(--e-global-color-361f472);
	font-size: 11px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.geekout-active-filters-list {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.geekout-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: 32px;
	margin: 0;
	padding: 5px 8px 5px 11px;
	border: 1px solid color-mix(
		in srgb,
		var(--e-global-color-primary) 32%,
		transparent
	);
	border-radius: 999px;
	background: color-mix(
		in srgb,
		var(--e-global-color-primary) 7%,
		#fff
	);
	color: var(--e-global-color-text) !important;
	font-size: 12px;
	font-weight: 700;
	line-height: 1.15;
	text-decoration: none !important;
	box-shadow: none;
	transition:
		border-color .15s ease,
		background-color .15s ease;
}

.geekout-filter-chip:hover,
.geekout-filter-chip:focus-visible {
	border-color: var(--e-global-color-primary);
	background: color-mix(
		in srgb,
		var(--e-global-color-primary) 12%,
		#fff
	);
	color: var(--e-global-color-text) !important;
	text-decoration: none !important;
}

.geekout-filter-chip-text {
	min-width: 0;
}

.geekout-filter-chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--e-global-color-primary);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
	line-height: 1;
}

.geekout-filter-clear-all {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	margin: 0;
	padding: 5px 4px;
	color: var(--e-global-color-primary) !important;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.15;
	text-decoration: none !important;
}

.geekout-filter-clear-all:hover,
.geekout-filter-clear-all:focus-visible {
	text-decoration: underline !important;
}

@media (max-width: 700px) {
	.geekout-active-filters {
		display: block;
		margin-top: 8px;
		margin-bottom: 12px;
		padding-inline: 10px;
	}

	.geekout-active-filters-label {
		display: block;
		margin-bottom: 7px;
		padding-top: 0;
	}

	.geekout-active-filters-list {
		gap: 6px;
	}

	.geekout-filter-chip {
		min-height: 30px;
		padding-top: 4px;
		padding-bottom: 4px;
		font-size: 11px;
	}

	.geekout-filter-chip-remove {
		flex-basis: 19px;
		width: 19px;
		height: 19px;
		font-size: 15px;
	}
}

/* ==========================================================================
   Search UI v31 — mobile form + nearby-map polish
   ========================================================================== */

/*
 * Price is now two normal form controls instead of a nested popover.
 * Seven primary controls fit comfortably on wide desktop and naturally
 * wrap at the existing tablet/mobile breakpoints.
 */
.geekout-modern-search-primary {
	grid-template-columns:
		minmax(100px, .72fr)
		minmax(100px, .72fr)
		minmax(125px, .9fr)
		minmax(125px, .9fr)
		minmax(165px, 1.15fr)
		minmax(140px, .95fr)
		minmax(145px, 1fr);
}

.geekout-modern-search-price-field {
	min-width: 0;
}

/*
 * Homepage popup:
 * Beds/Baths, Min/Max, then Property Type across the full row.
 */
.geekout-modern-search--popup .geekout-homepage-property-type {
	grid-column: 1 / -1;
}

/*
 * Let Premium Addons own the scrolling. The previous nested scroll region
 * could strand the Search button below the reachable part of the popup on
 * real mobile browsers.
 */
.premium-modal-box-modal .geekout-modern-search--popup {
	max-height: none !important;
	overflow: visible !important;
	padding-right: 0;
}

.premium-modal-box-modal .premium-modal-box-modal-dialog {
	max-height: 70vh !important;
	overflow: hidden !important;
}

.premium-modal-box-modal .premium-modal-box-modal-body {
	max-height: 70vh !important;
	overflow-y: auto !important;
	overflow-x: hidden !important;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
	padding-bottom: 28px !important;
}

/*
 * Property detail Nearby Listings map:
 * give mobile popups enough vertical room.
 */
#propertyBackground #map {
	min-height: 500px;
	height: 500px;
}

/*
 * Nearby popup close button must not overlap the favorite heart.
 */
#map .geekout-property-nearby-popup .leaflet-popup-close-button {
	right: auto !important;
	left: 8px !important;
}

/*
 * Tablet breakpoint keeps the new seven-control desktop row from becoming
 * cramped before switching to the existing three-column layout.
 */
@media (max-width: 1180px) and (min-width: 701px) {
	.geekout-modern-search-primary {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {

	/*
	 * Home/Open House filter panels open in the middle of the phone screen
	 * rather than being anchored to the bottom.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup)
	:is(
		.geekout-modern-search-dropdown-panel,
		.geekout-modern-search-more-panel
	) {
		position: fixed;
		top: 50%;
		right: 10px;
		bottom: auto;
		left: 10px;
		width: auto;
		max-height: min(72vh, 620px);
		overflow-y: auto;
		overflow-x: hidden;
		transform: translateY(-50%);
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		z-index: 9999;
	}

	#propertyBackground #map {
		height: max(540px, 72vh);
		min-height: 540px;
		max-height: 720px;
	}

	#map .geekout-property-nearby-popup .leaflet-popup-content,
	.geekout-property-map-card {
		width: min(280px, calc(100vw - 70px)) !important;
	}

	#map .geekout-property-nearby-popup .leaflet-popup-close-button {
		top: 8px !important;
		left: 8px !important;
		right: auto !important;
	}
}

@media (max-width: 420px) {
	/*
	 * Keep Min/Max beside each other on small phones even though the rest of
	 * the homepage controls collapse to one column.
	 */
	.geekout-modern-search--popup .geekout-homepage-search-core {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.geekout-modern-search--popup .geekout-homepage-search-core
	> :nth-child(1),
	.geekout-modern-search--popup .geekout-homepage-search-core
	> :nth-child(2),
	.geekout-modern-search--popup .geekout-homepage-property-type {
		grid-column: 1 / -1;
	}

	#propertyBackground #map {
		height: max(560px, 75vh);
		min-height: 560px;
	}
}

/* ==========================================================================
   Search UI v32 — Home/Open House page width containment
   ========================================================================== */

/*
 * Homepage popup is intentionally excluded because its current layout is
 * already correct.
 *
 * Elementor content can be narrower than the browser viewport. The former
 * desktop grid used viewport breakpoints, which allowed its seven controls
 * to overflow a narrower Elementor content area.
 */

.geekout-modern-search:not(.geekout-modern-search--popup),
.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-form,
.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-primary {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-form,
.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-primary {
	width: 100%;
}

.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-primary > *,
.geekout-modern-search:not(.geekout-modern-search--popup)
	select,
.geekout-modern-search:not(.geekout-modern-search--popup)
	input {
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

/*
 * Above mobile width, let the primary controls wrap according to the actual
 * parent/container width rather than the full browser viewport.
 */
@media (min-width: 701px) {
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-primary {
		grid-template-columns:
			repeat(
				auto-fit,
				minmax(140px, 1fr)
			);
	}
}

/* ==========================================================================
   Search UI v33 — true vertical mobile layout for results-page forms
   ========================================================================== */

/*
 * Home Search and Open House only.
 * Real phones commonly sit between 391px and 700px wide, where the older
 * shared rule still used two columns. Force a single-column stack across the
 * full mobile range so the form can never extend sideways.
 */

@media (max-width: 767px) {

	.geekout-modern-search:not(.geekout-modern-search--popup) {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 14px 0 18px !important;
		padding: 0 !important;
		overflow-x: hidden !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-form {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-primary {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		gap: 8px !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-primary > * {
		grid-column: 1 / -1 !important;
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-select,
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-dropdown,
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-dropdown > summary,
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-submit {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		select,
	.geekout-modern-search:not(.geekout-modern-search--popup)
		input {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-submit {
		grid-column: 1 / -1 !important;
	}
}

/* ==========================================================================
   Search UI v34 — mobile gutters for Home/Open House forms
   ========================================================================== */

@media (max-width: 767px) {

	/*
	 * Give the results-page search card breathing room from the physical
	 * edges of the phone instead of fitting flush to the viewport.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup) {
		width: calc(100% - 24px) !important;
		max-width: calc(100% - 24px) !important;
		margin: 14px auto 18px !important;
		padding: 14px 12px 16px !important;
		border-radius: 12px;
	}

	/*
	 * Keep title/description comfortably inset as well.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-header {
		box-sizing: border-box;
		width: 100%;
		max-width: 100%;
		padding-left: 2px;
		padding-right: 2px;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-title,
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-description {
		max-width: 100%;
	}
}

/* ==========================================================================
   Search UI v35 — More Filters overlay positioning
   ========================================================================== */

/*
 * Home Search and Open House already create their own full-page backdrop in
 * the template JavaScript.  Do not turn the More Filters panel into a
 * position:relative element here: doing so puts it back into normal document
 * flow and makes it open underneath the current form row/container.
 *
 * The homepage popup is intentionally excluded; its existing behavior stays
 * unchanged.
 */
.geekout-modern-search:not(.geekout-modern-search--popup) {
	position: relative;
	isolation: isolate;
}

.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-more {
	position: relative;
	z-index: 120;
}

/* Desktop/tablet: anchor the panel to the More Filters trigger. */
.geekout-modern-search:not(.geekout-modern-search--popup)
	.geekout-modern-search-more-panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	bottom: auto;
	left: auto;
	width: min(760px, calc(100vw - 32px));
	max-width: calc(100vw - 32px);
	transform: none;
	z-index: 121;
}

/*
 * Match the same <=767px breakpoint used by the true single-column mobile
 * form.  This closes the 701-767px gap where the panel could otherwise fall
 * back into the document flow in Elementor/mobile previews and small tablets.
 */
@media (max-width: 767px) {
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-more-panel {
		position: fixed;
		top: 50%;
		right: 12px;
		bottom: auto;
		left: 12px;
		width: auto;
		max-width: none;
		max-height: min(72vh, 620px);
		overflow-y: auto;
		overflow-x: hidden;
		transform: translateY(-50%);
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		z-index: 2147483002;
	}
}

/* ==========================================================================
   Search UI v36 — center More Filters on desktop/tablet
   ========================================================================== */

/*
 * Results-page Home Search and Open House only.
 * On screens wider than the mobile breakpoint, More Filters should behave
 * like a viewport modal rather than a dropdown anchored to its trigger.
 * The homepage popup remains intentionally excluded.
 */
@media (min-width: 768px) {
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-more-panel {
		position: fixed !important;
		top: 50% !important;
		right: auto !important;
		bottom: auto !important;
		left: 50% !important;
		box-sizing: border-box;
		width: min(760px, calc(100vw - 48px)) !important;
		max-width: calc(100vw - 48px) !important;
		max-height: calc(100dvh - 64px);
		overflow-y: auto;
		overflow-x: hidden;
		transform: translate(-50%, -50%) !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		z-index: 2147483002 !important;
	}
}

/* ==========================================================================
   Search UI v37 — mobile viewport-centered More Filters
   ========================================================================== */

/*
 * Results-page Home Search and Open House only.
 * Keep the active search card above its backdrop for stacking purposes, but
 * make every control except the actual More Filters panel transparent to
 * pointer input. This lets a tap on the dimmed area reach the backdrop instead
 * of activating an invisible search control underneath it.
 */
.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open
	.geekout-modern-search-form {
	pointer-events: none;
}

.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open
	.geekout-modern-search-more {
	pointer-events: none;
}

.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open
	.geekout-modern-search-more-panel,
.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open
	.geekout-modern-search-more-panel * {
	pointer-events: auto;
}

@media (max-width: 767px) {

	/*
	 * While the modal is open, do not let the results-page search wrapper act
	 * as a clipping/scroll container. The page itself is scroll-locked by the
	 * template JavaScript.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open,
	.geekout-modern-search:not(.geekout-modern-search--popup).is-more-filters-open
		.geekout-modern-search-form {
		overflow: visible !important;
	}

	/*
	 * Center the panel against the live mobile viewport rather than against the
	 * More Filters button or the document scroll position. Use dynamic viewport
	 * height where supported and retain a vh fallback.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-more-panel {
		position: fixed !important;
		top: 50% !important;
		right: auto !important;
		bottom: auto !important;
		left: 50% !important;
		box-sizing: border-box !important;
		width: min(680px, calc(100vw - 24px)) !important;
		max-width: calc(100vw - 24px) !important;
		max-height: calc(100vh - 32px) !important;
		max-height: calc(
			100dvh - 24px -
			env(safe-area-inset-top, 0px) -
			env(safe-area-inset-bottom, 0px)
		) !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		transform: translate(-50%, -50%) !important;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
		touch-action: pan-y;
		z-index: 2147483002 !important;
	}

	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-more-grid {
		grid-template-columns: 1fr !important;
	}

	/*
	 * Keep the close action reachable even when the filter list is taller than
	 * the phone. The panel scrolls behind this sticky footer button.
	 */
	.geekout-modern-search:not(.geekout-modern-search--popup)
		.geekout-modern-search-more-panel
		.geekout-modern-search-panel-done {
		position: sticky;
		bottom: 0;
		z-index: 4;
		margin-top: 14px;
		box-shadow: 0 -10px 18px rgba(255, 255, 255, .96);
	}
}

/* ==========================================================================
   Property Search v39: paged map + direct page jump
   ========================================================================== */

.geekout-search-results-pagination {
    box-sizing: border-box;
    width: min(100%, 760px);
    margin: 8px auto 42px;
    padding: 0 20px 28px;
}

.geekout-search-pagination-inner {
    display: grid;
    grid-template-columns: minmax(108px, 1fr) minmax(270px, auto) minmax(108px, 1fr);
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--e-global-color-text) 10%, transparent);
    border-radius: 16px;
    background: rgba(255, 255, 255, .96);
    box-shadow: 0 8px 28px rgba(0, 0, 0, .10);
}

.geekout-search-pagination-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid rgba(0, 0, 0, .10);
    border-radius: 11px;
    background: #fff;
    color: var(--e-global-color-text);
    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}

.geekout-search-pagination-button:hover,
.geekout-search-pagination-button:focus-visible {
    border-color: var(--e-global-color-primary);
    color: var(--e-global-color-primary);
    text-decoration: none;
}

.geekout-search-pagination-next {
    border-color: #555;
    background: #555;
    color: #c0c0c0;
}

.geekout-search-pagination-next:hover,
.geekout-search-pagination-next:focus-visible {
    border-color: #000;
    background: #000;
    color: #fff;
    opacity: 1;
}

.geekout-search-pagination-button.is-disabled {
    border-color: rgba(0, 0, 0, .06);
    background: rgba(0, 0, 0, .035);
    color: var(--e-global-color-361f472);
    opacity: .5;
    pointer-events: none;
}

.geekout-search-pagination-button svg {
    display: block;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.geekout-search-pagination-status {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 270px;
    color: var(--e-global-color-361f472);
    font-size: 11px;
    line-height: 1.25;
    text-align: center;
}

.geekout-search-page-jump {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
}

.geekout-search-page-jump-label,
.geekout-search-page-jump-total {
    color: var(--e-global-color-text);
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}

.geekout-search-page-jump-input {
    box-sizing: border-box;
    width: 58px;
    height: 36px;
    margin: 0 !important;
    padding: 5px 7px !important;
    border: 1px solid rgba(0, 0, 0, .16) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--e-global-color-text) !important;
    font: inherit;
    font-size: 13px !important;
    font-weight: 750;
    line-height: 1;
    text-align: center;
    appearance: textfield;
    -moz-appearance: textfield;
}

.geekout-search-page-jump-input::-webkit-inner-spin-button,
.geekout-search-page-jump-input::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.geekout-search-page-jump-input:focus {
    border-color: var(--e-global-color-primary) !important;
    outline: 2px solid color-mix(
        in srgb,
        var(--e-global-color-primary) 20%,
        transparent
    );
    outline-offset: 1px;
}

.geekout-search-page-jump-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 36px;
    margin: 0 !important;
    padding: 6px 10px !important;
    border: 1px solid var(--e-global-color-primary) !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: var(--e-global-color-primary) !important;
    font: inherit;
    font-size: 12px !important;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
}

.geekout-search-page-jump-button:hover,
.geekout-search-page-jump-button:focus-visible {
    background: var(--e-global-color-primary) !important;
    color: #fff !important;
}

.geekout-search-pagination-note {
    display: block;
    max-width: 300px;
    margin-top: 5px;
    color: var(--e-global-color-361f472);
    font-size: 10.5px;
    line-height: 1.3;
    white-space: normal;
}

.geekout-search-pagination.is-loading {
    opacity: .62;
    pointer-events: none;
}

.geekout-search-map {
    position: relative;
}

.geekout-search-map-pagination {
    display: none;
}

.geekout-search-layout.view-map .geekout-search-map-pagination {
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    z-index: 800;
    display: block;
    width: min(720px, calc(100% - 32px));
    margin: 0 auto;
    padding: 0;
    pointer-events: none;
}

.geekout-search-layout.view-map .geekout-search-map-pagination .geekout-search-pagination-inner {
    pointer-events: auto;
    border-color: rgba(0, 0, 0, .12);
    background: rgba(255, 255, 255, .94);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 32px rgba(0, 0, 0, .20);
}

@media (max-width: 760px) {
    .geekout-search-pagination-inner {
        grid-template-columns: minmax(82px, 1fr) auto minmax(82px, 1fr);
        gap: 7px;
    }

    .geekout-search-pagination-status {
        min-width: 160px;
    }

    .geekout-search-pagination-note {
        display: none;
    }
}

@media (max-width: 600px) {
    .geekout-search-results-pagination {
        width: 100%;
        margin: 4px auto 28px;
        padding: 0 14px 20px;
    }

    .geekout-search-pagination-inner {
        grid-template-columns: 1fr auto 1fr;
        gap: 5px;
        padding: 6px;
        border-radius: 14px;
    }

    .geekout-search-pagination-button {
        min-height: 42px;
        padding: 9px 8px;
        border-radius: 9px;
        font-size: 12px;
    }

    .geekout-search-pagination-button svg {
        width: 16px;
        height: 16px;
    }

    .geekout-search-pagination-status {
        min-width: 122px;
    }

    .geekout-search-page-jump {
        gap: 4px;
    }

    .geekout-search-page-jump-label {
        display: none;
    }

    .geekout-search-page-jump-total {
        font-size: 11px;
    }

    .geekout-search-page-jump-input {
        width: 44px;
        height: 34px;
        padding-left: 4px !important;
        padding-right: 4px !important;
        font-size: 12px !important;
    }

    .geekout-search-page-jump-button {
        min-width: 34px;
        height: 34px;
        padding: 5px 7px !important;
        font-size: 11px !important;
    }

    .geekout-search-layout.view-map .geekout-search-map-pagination {
        bottom: calc(10px + env(safe-area-inset-bottom, 0px));
        width: calc(100% - 16px);
    }
}


/* ==========================================================================
   Search UI v40 — Open House submit-button spacing
   ========================================================================== */

/*
 * "Search Open Houses" is longer than the Home Search label and can be
 * squeezed by the responsive auto-fit grid. Preserve visible horizontal
 * breathing room without changing the Home Search button.
 */
.geekout-modern-search--openhouse .geekout-modern-search-submit {
	padding-left: 18px !important;
	padding-right: 18px !important;
	white-space: normal;
	line-height: 1.15;
}



/* ========================================================================== 
   Search UI v42 — Elementor semantic color palette
   ========================================================================== */

/* Titles */
.geekout-modern-search-title,
.geekout-search-card-address,
.geekout-community-card-address {
    color: var(--e-global-color-secondary) !important;
}

/* Price / positive emphasis */
.geekout-search-card-price,
.geekout-community-card-price {
    color: var(--e-global-color-accent) !important;
}

/* Sub-title and supporting copy */
.geekout-modern-search-description,
#leftsideresults > .searchresults,
.geekout-search-card-location,
.geekout-search-card-feature,
.geekout-search-card-meta,
.geekout-search-pagination-status,
.geekout-search-pagination-note,
.geekout-community-card-location,
.geekout-community-card-feature,
.geekout-community-card-meta {
    color: var(--e-global-color-361f472) !important;
}

/* Feature icons */
.geekout-search-feature-icon,
.geekout-community-feature-icon,
.geekout-search-card-feature .geekout-search-feature-icon,
.geekout-community-card-feature .geekout-community-feature-icon,
.geekout-search-card-feature:not(:has(.geekout-search-feature-icon))::before,
.geekout-property-map-feature::before {
    color: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* MLS badges */
.geekout-search-card-badge-new,
.geekout-community-card-badge-new,
html body .imagewrap > .geekout-home-badges > .geekout-home-badge-new {
    background: var(--e-global-color-2e19aeb) !important;
    color: #fff !important;
}

.geekout-search-card-badge-openhouse,
.geekout-community-card-badge-openhouse,
.geekout-openhouse-card .geekout-search-card-badge-openhouse,
.geekout-openhouse-map-card .geekout-search-card-badge-openhouse,
html body .imagewrap > .geekout-home-badges > .geekout-home-badge-openhouse {
    background: var(--e-global-color-98ce957) !important;
    color: #fff !important;
}

/* Non-active statuses shown on cards are normally Pending/AUC. */
.geekout-search-status-badge,
.geekout-community-status-badge {
    background: var(--e-global-color-b6f3e78) !important;
    color: #fff !important;
}

/* ==========================================================================
   v43 — Elementor global badge colors for homepage/team listing widgets
   ========================================================================== */

/*
 * Legacy slider templates previously built status class names directly from
 * StandardStatus (for example .badgePending / .Under). The v43 templates use
 * one stable class plus data-status so colors come from Elementor globals.
 */
html body .imagewrap .geekout-widget-status-badge {
    box-sizing: border-box !important;
    position: absolute !important;
    left: 12px !important;
    bottom: 12px !important;
    top: auto !important;
    right: auto !important;
    z-index: 19 !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 28px !important;
    max-width: calc(100% - 24px) !important;
    margin: 0 !important;
    padding: 6px 9px !important;

    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 2px 7px rgba(0, 0, 0, .16) !important;

    background: rgba(20, 20, 20, .82) !important;
    color: #fff !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    text-align: center !important;
    white-space: nowrap !important;

    pointer-events: none !important;
}

/* Keep listing-card behavior consistent with Home Search: Active is implicit. */
html body .imagewrap .geekout-widget-status-badge[data-status="Active" i] {
    background: var(--e-global-color-d1aa4da) !important;
    display: none !important;
}

/* Pending-family statuses use the Elementor Pending badge color. */
html body .imagewrap .geekout-widget-status-badge[data-status="Pending" i],
html body .imagewrap .geekout-widget-status-badge[data-status="Active Under Contract" i] {
    background: var(--e-global-color-b6f3e78) !important;
}

/* Defensive dark treatment for statuses that are no longer market-active. */
html body .imagewrap .geekout-widget-status-badge[data-status="Closed" i],
html body .imagewrap .geekout-widget-status-badge[data-status="Expired" i],
html body .imagewrap .geekout-widget-status-badge[data-status="Withdrawn" i],
html body .imagewrap .geekout-widget-status-badge[data-status="Hold" i] {
    background: rgba(20, 20, 20, .88) !important;
}

html body .imagewrap .geekout-widget-status-badge:empty {
    display: none !important;
}

/*
 * Modern cards used on the Team Member and Favorites pages now include the
 * same data-status attribute. Specific mappings override the existing generic
 * non-active status color without disturbing Home Search/Open House cards.
 */
.geekout-search-status-badge[data-status="Active" i] {
    background: var(--e-global-color-d1aa4da) !important;
}

.geekout-search-status-badge[data-status="Pending" i],
.geekout-search-status-badge[data-status="Active Under Contract" i] {
    background: var(--e-global-color-b6f3e78) !important;
}

.geekout-search-status-badge[data-status="Closed" i],
.geekout-search-status-badge[data-status="Expired" i],
.geekout-search-status-badge[data-status="Withdrawn" i],
.geekout-search-status-badge[data-status="Hold" i] {
    background: rgba(20, 20, 20, .88) !important;
}

/*
 * Reassert New/Open House Elementor colors for both homepage legacy cards and
 * modern cards. These variables resolve to Elementor Global Colors.
 */
html body .imagewrap > .geekout-home-badges > .geekout-home-badge-new,
.geekout-search-card-badge-new,
.geekout-community-card-badge-new {
    background: var(--e-global-color-2e19aeb) !important;
    background-color: var(--e-global-color-2e19aeb) !important;
    color: #fff !important;
}

html body .imagewrap > .geekout-home-badges > .geekout-home-badge-openhouse,
.geekout-search-card-badge-openhouse,
.geekout-community-card-badge-openhouse,
.geekout-openhouse-card .geekout-search-card-badge-openhouse,
.geekout-openhouse-map-card .geekout-search-card-badge-openhouse {
    background: var(--e-global-color-98ce957) !important;
    background-color: var(--e-global-color-98ce957) !important;
    color: #fff !important;
}

/*
 * Backward compatibility for any remaining older listing snippets that still
 * emit the original badge classes. This changes color only, not visibility or
 * positioning.
 */
html body .badgeNew {
    background: var(--e-global-color-2e19aeb) !important;
    background-color: var(--e-global-color-2e19aeb) !important;
}

html body .bg-openhouse {
    background: var(--e-global-color-98ce957) !important;
    background-color: var(--e-global-color-98ce957) !important;
}

html body .badgePending,
html body .badgeUnder,
html body .Under {
    background: var(--e-global-color-b6f3e78) !important;
    background-color: var(--e-global-color-b6f3e78) !important;
}

html body .badgeActive {
    background: var(--e-global-color-d1aa4da) !important;
    background-color: var(--e-global-color-d1aa4da) !important;
}

/* ========================================================================== 
   v44.2 — Widget color-only correction
   --------------------------------------------------------------------------
   These rules intentionally change only listing-widget text/icon/badge colors.
   Layout, typography, spacing, content, buttons, hearts, and visibility remain
   controlled by the existing widget/site styles.
   ========================================================================== */

/*
 * Color-only rules below reference Elementor Global Colors directly.
 */

/* Legacy homepage / agent / broker / luxury widget text: black. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(
    .favaddress1,
    .favaddress1 a,
    .favaddress2,
    .favMLSID,
    .favprice,
    .favbeds,
    .favbaths,
    .favsqft
) {
    color: #000 !important;
}

/* Team-member and Favorites listing-card text: black. */
.geekout-agent-bio-property-card :is(
    .geekout-search-card-price,
    .geekout-search-card-address,
    .geekout-search-card-address a,
    .geekout-search-card-location,
    .geekout-search-card-feature,
    .geekout-search-card-feature strong,
    .geekout-search-card-meta
),
.geekout-favorite-property-card :is(
    .geekout-search-card-price,
    .geekout-search-card-address,
    .geekout-search-card-address a,
    .geekout-search-card-location,
    .geekout-search-card-feature,
    .geekout-search-card-feature strong,
    .geekout-search-card-meta
) {
    color: #000 !important;
}

/* Font Awesome Bed / Bath / Sq Ft icons in legacy widgets. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) :is(.elementor-icon, .elementor-icon i) {
    color: var(--e-global-color-154d4a3) !important;
}

/* Mask/pseudo-element feature icons in Team Member and Favorites cards. */
.geekout-agent-bio-property-card .geekout-search-feature-icon,
.geekout-favorite-property-card .geekout-search-feature-icon,
.geekout-agent-bio-property-card .geekout-search-card-feature:not(:has(.geekout-search-feature-icon))::before,
.geekout-favorite-property-card .geekout-search-card-feature:not(:has(.geekout-search-feature-icon))::before {
    color: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* New badge. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.geekout-home-badge-new, .badgeNew),
.geekout-agent-bio-property-card .geekout-search-card-badge-new,
.geekout-favorite-property-card .geekout-search-card-badge-new {
    background: var(--e-global-color-2e19aeb) !important;
    background-color: var(--e-global-color-2e19aeb) !important;
    color: #fff !important;
}

/* Open House badge. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.geekout-home-badge-openhouse, .bg-openhouse),
.geekout-agent-bio-property-card .geekout-search-card-badge-openhouse,
.geekout-favorite-property-card .geekout-search-card-badge-openhouse {
    background: var(--e-global-color-98ce957) !important;
    background-color: var(--e-global-color-98ce957) !important;
    color: #fff !important;
}

/* Pending and Active Under Contract badges. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.badgePending, .badgeUnder, .Under),
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Pending" i],
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Active Under Contract" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Pending" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Active Under Contract" i] {
    background: var(--e-global-color-b6f3e78) !important;
    background-color: var(--e-global-color-b6f3e78) !important;
    color: #fff !important;
}

/* Active badge color only; existing show/hide behavior is preserved. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .badgeActive,
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Active" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Active" i] {
    background: var(--e-global-color-d1aa4da) !important;
    background-color: var(--e-global-color-d1aa4da) !important;
    color: #fff !important;
}

/*
 * Legacy New / Agent / Broker / Luxury cards.
 * Their shared mask-icon rule previously forced the primary turquoise.
 * Override both mask background and normal Font Awesome color so the live
 * Elementor Icon global is authoritative.
 */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .elementor-icon,
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .elementor-icon i {
    color: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* Modern Team Member / Favorites feature icons. */
.geekout-agent-bio-property-card .geekout-search-feature-icon,
.geekout-favorite-property-card .geekout-search-feature-icon,
.geekout-agent-bio-property-card .geekout-search-card-feature::before,
.geekout-favorite-property-card .geekout-search-card-feature::before {
    color: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* New — live Elementor New badge global. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.geekout-home-badge-new, .badgeNew),
.geekout-agent-bio-property-card .geekout-search-card-badge-new,
.geekout-favorite-property-card .geekout-search-card-badge-new {
    background: var(--e-global-color-2e19aeb) !important;
    background-color: var(--e-global-color-2e19aeb) !important;
    color: #fff !important;
}

/* Open House — live Elementor Open House global (red when set red in Elementor). */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.geekout-home-badge-openhouse, .bg-openhouse),
.geekout-agent-bio-property-card .geekout-search-card-badge-openhouse,
.geekout-favorite-property-card .geekout-search-card-badge-openhouse {
    background: var(--e-global-color-98ce957) !important;
    background-color: var(--e-global-color-98ce957) !important;
    color: #fff !important;
}

/* Pending / Active Under Contract — live Elementor Pending global. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) :is(.badgePending, .badgeUnder, .Under),
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Pending" i],
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Active Under Contract" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Pending" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Active Under Contract" i] {
    background: var(--e-global-color-b6f3e78) !important;
    background-color: var(--e-global-color-b6f3e78) !important;
    color: #fff !important;
}

/* Active — color only; existing Active badge show/hide behavior remains intact. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .badgeActive,
.geekout-agent-bio-property-card .geekout-search-status-badge[data-status="Active" i],
.geekout-favorite-property-card .geekout-search-status-badge[data-status="Active" i] {
    background: var(--e-global-color-d1aa4da) !important;
    background-color: var(--e-global-color-d1aa4da) !important;
    color: #fff !important;
}

/* ========================================================================== 
   v44.4 — Exact legacy widget feature-color overrides
   --------------------------------------------------------------------------
   The original shared widget rules use a more-specific selector and !important.
   Match that selector here so the Elementor Icon global and black feature text
   win without changing card layout, typography, or other listing pages.
   ========================================================================== */

/* Bed / Bath / Sq Ft masked icons — use Elementor's Icon global exactly. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) .elementor-icon {
    background: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
    color: var(--e-global-color-154d4a3) !important;
}

/* The hidden Font Awesome glyphs inherit the same global if a legacy variant shows them. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) .elementor-icon > i {
    color: var(--e-global-color-154d4a3) !important;
}

/* Beds:, Baths:, SqFt: labels/values — black. */
:is(
    #newlistingslider,
    #newlistingsdesktop-layout,
    #newslistingssliderMobile,
    #agentslider,
    #agentdesktop-layout,
    #agentsliderMobile,
    #brokerslider,
    #brokerdesktop-layout,
    #brokersliderMobile,
    #luxuryslider,
    #luxurydesktop-layout,
    #luxurysliderMobile
) .card-body > .row:has(.favbeds):has(.favbaths):has(.favsqft) :is(.favbeds, .favbaths, .favsqft) {
    color: #000 !important;
}

/* Modern Team Member / Favorites feature text stays black as well. */
.geekout-agent-bio-property-card .geekout-search-card-feature,
.geekout-agent-bio-property-card .geekout-search-card-feature strong,
.geekout-favorite-property-card .geekout-search-card-feature,
.geekout-favorite-property-card .geekout-search-card-feature strong {
    color: #000 !important;
}

/* ========================================================================== 
   v44.5 — Home Search / Open House / Community card color unification
   --------------------------------------------------------------------------
   Color-only update. Match the successful Homepage/Favorites listing cards:
   - card text black
   - Bed/Bath/Sq Ft icons use Elementor Icon global
   - New/Open House/Pending use their Elementor badge globals
   Applies to gallery and map cards without changing layout or controls.
   ========================================================================== */

/* Modern Home Search / Open House / Community cards — text stays black. */
html body .geekout-search-property-card .geekout-search-card-price,
html body .geekout-search-property-card .geekout-search-card-address,
html body .geekout-search-property-card .geekout-search-card-address a,
html body .geekout-search-property-card .geekout-search-card-location,
html body .geekout-search-property-card .geekout-search-card-feature,
html body .geekout-search-property-card .geekout-search-card-feature strong,
html body .geekout-search-property-card .geekout-search-card-meta,
html body .geekout-search-property-card .geekout-openhouse-date,
html body .geekout-search-property-card .geekout-openhouse-date strong {
    color: #000 !important;
}

/* Older Community card class family retained as a compatibility fallback. */
html body .geekout-community-property-card .geekout-community-card-price,
html body .geekout-community-property-card .geekout-community-card-address,
html body .geekout-community-property-card .geekout-community-card-address a,
html body .geekout-community-property-card .geekout-community-card-location,
html body .geekout-community-property-card .geekout-community-card-feature,
html body .geekout-community-property-card .geekout-community-card-feature strong,
html body .geekout-community-property-card .geekout-community-card-meta {
    color: #000 !important;
}

/* Bed / Bath / Sq Ft mask icons — resolve Elementor's live Icon global here. */
html body .geekout-search-property-card .geekout-search-card-feature .geekout-search-feature-icon,
html body .geekout-community-property-card .geekout-community-card-feature .geekout-community-feature-icon {
    color: var(--e-global-color-154d4a3) !important;
    background: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* Compact map cards sometimes render the mask through ::before instead. */
html body .geekout-search-property-card .geekout-search-card-feature:not(:has(.geekout-search-feature-icon))::before,
html body .geekout-community-property-card .geekout-community-card-feature:not(:has(.geekout-community-feature-icon))::before {
    color: var(--e-global-color-154d4a3) !important;
    background: var(--e-global-color-154d4a3) !important;
    background-color: var(--e-global-color-154d4a3) !important;
}

/* New badge — Elementor New global. */
html body .geekout-search-property-card .geekout-search-card-badge-new,
html body .geekout-community-property-card .geekout-community-card-badge-new {
    background: var(--e-global-color-2e19aeb) !important;
    background-color: var(--e-global-color-2e19aeb) !important;
    color: #fff !important;
}

/* Open House badge — Elementor Open House global (red on the current site). */
html body .geekout-search-property-card .geekout-search-card-badge-openhouse,
html body .geekout-community-property-card .geekout-community-card-badge-openhouse,
html body .geekout-openhouse-card .geekout-search-card-badge-openhouse,
html body .geekout-openhouse-map-card .geekout-search-card-badge-openhouse {
    background: var(--e-global-color-98ce957) !important;
    background-color: var(--e-global-color-98ce957) !important;
    color: #fff !important;
}

/* Pending / Active Under Contract are the visible non-Active search statuses. */
html body .geekout-search-property-card .geekout-search-status-badge,
html body .geekout-community-property-card .geekout-community-status-badge {
    background: var(--e-global-color-b6f3e78) !important;
    background-color: var(--e-global-color-b6f3e78) !important;
    color: #fff !important;
}


/* ========================================================================== 
   v44.6 — View Property link consistency
   --------------------------------------------------------------------------
   Keep Gallery + Leaflet map "View Property" links on Home Search,
   Open House, and Community tied to Elementor's live Primary global.
   The map selectors intentionally outrank the legacy .leaflet-container a
   color rule in the theme stylesheet.
   ========================================================================== */

/* Gallery cards. */
html body .geekout-search-property-card a.geekout-search-card-view,
html body .geekout-community-property-card a.geekout-community-card-view,
html body .geekout-community-property-card a.geekout-search-card-view,
html body .geekout-openhouse-card a.geekout-search-card-view {
    color: var(--e-global-color-primary) !important;
}

html body .geekout-search-property-card a.geekout-search-card-view:hover,
html body .geekout-search-property-card a.geekout-search-card-view:focus-visible,
html body .geekout-community-property-card a.geekout-community-card-view:hover,
html body .geekout-community-property-card a.geekout-community-card-view:focus-visible,
html body .geekout-community-property-card a.geekout-search-card-view:hover,
html body .geekout-community-property-card a.geekout-search-card-view:focus-visible,
html body .geekout-openhouse-card a.geekout-search-card-view:hover,
html body .geekout-openhouse-card a.geekout-search-card-view:focus-visible {
    color: var(--e-global-color-primary) !important;
}

/* Leaflet map cards — higher specificity than legacy .leaflet-container a. */
html body #map .leaflet-container .geekout-search-leaflet-popup a.geekout-search-card-view,
html body #map .geekout-search-leaflet-popup a.geekout-search-card-view,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-community-card-view,
html body #map .geekout-community-leaflet-popup a.geekout-community-card-view,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-search-card-view,
html body #map .geekout-community-leaflet-popup a.geekout-search-card-view {
    color: var(--e-global-color-primary) !important;
}

html body #map .leaflet-container .geekout-search-leaflet-popup a.geekout-search-card-view:hover,
html body #map .leaflet-container .geekout-search-leaflet-popup a.geekout-search-card-view:focus-visible,
html body #map .geekout-search-leaflet-popup a.geekout-search-card-view:hover,
html body #map .geekout-search-leaflet-popup a.geekout-search-card-view:focus-visible,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-community-card-view:hover,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-community-card-view:focus-visible,
html body #map .geekout-community-leaflet-popup a.geekout-community-card-view:hover,
html body #map .geekout-community-leaflet-popup a.geekout-community-card-view:focus-visible,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-search-card-view:hover,
html body #map .leaflet-container .geekout-community-leaflet-popup a.geekout-search-card-view:focus-visible,
html body #map .geekout-community-leaflet-popup a.geekout-search-card-view:hover,
html body #map .geekout-community-leaflet-popup a.geekout-search-card-view:focus-visible {
    color: var(--e-global-color-primary) !important;
}

/* ==========================================================================
   Listings UI v44.8 — map typography + results-page form spacing
   ========================================================================== */

/*
 * Make Home Search, Open House, and Community map-popup cards use the same
 * Elementor Global Text font family as the rest of the site. This affects
 * only the popup/card interface; map-tile labels remain controlled by the
 * tile provider.
 */
html body #map .geekout-search-leaflet-popup .leaflet-popup-content,
html body #map .geekout-search-leaflet-popup .geekout-search-map-card,
html body #map .geekout-community-leaflet-popup .leaflet-popup-content,
html body #map .geekout-community-leaflet-popup .geekout-community-property-card,
html body #map .geekout-community-leaflet-popup .geekout-search-property-card {
	font-family: var(--e-global-typography-text-font-family, inherit) !important;
}

/*
 * Add breathing room around the complete Home Search / Open House search
 * section on desktop and tablet. The homepage popup is intentionally
 * excluded, and the existing mobile gutter rules continue to control phones.
 */
@media (min-width: 768px) {
	html body .geekout-modern-search:not(.geekout-modern-search--popup) {
		box-sizing: border-box !important;
		padding: 22px 20px 24px !important;
	}
}

/* ========================================================================== 
   v44.9 — Map popup typography: inherit the actual site font
   Leaflet sets Helvetica/Arial on .leaflet-container via a font shorthand.
   Override the map container itself so popup UI inherits the computed
   Elementor/site font without relying on a typography custom property.
   ========================================================================== */

html body .geekout-search-layout .geekout-search-map #map.leaflet-container,
html body .geekout-community-static-results .geekout-search-map #map.leaflet-container,
html body .geekout-openhouse-layout .geekout-search-map #map.leaflet-container {
    font-family: inherit !important;
}

html body .geekout-search-layout .geekout-search-map #map .leaflet-popup,
html body .geekout-search-layout .geekout-search-map #map .leaflet-popup-content,
html body .geekout-search-layout .geekout-search-map #map .geekout-search-map-card,
html body .geekout-community-static-results .geekout-search-map #map .leaflet-popup,
html body .geekout-community-static-results .geekout-search-map #map .leaflet-popup-content,
html body .geekout-community-static-results .geekout-search-map #map .geekout-search-map-card,
html body .geekout-openhouse-layout .geekout-search-map #map .leaflet-popup,
html body .geekout-openhouse-layout .geekout-search-map #map .leaflet-popup-content,
html body .geekout-openhouse-layout .geekout-search-map #map .geekout-search-map-card {
    font-family: inherit !important;
}

/*
 * Do not force font-family on every descendant here. Font Awesome hearts use
 * their own icon font; overriding that font turns the glyph into text such as
 * F004. Text inherits the site font naturally from the map/card containers.
 */

/* ========================================================================== 
   Listings UI v45 — view controls + pagination polish
   --------------------------------------------------------------------------
   Shared by Home Search, Open House, and Community split/gallery/map views.
   ========================================================================== */

/*
 * View toggle buttons: use the requested charcoal background and explicitly
 * neutralize the theme's generic button :focus background. Mouse clicks can
 * leave a button focused, so :focus is kept visually identical to the normal
 * state while :focus-visible retains an accessible keyboard outline.
 */
html body .geekout-search-view-button {
    background: #313131 !important;
    color: #fff !important;
}

html body .geekout-search-view-button:hover {
    background: #313131 !important;
    color: #fff !important;
    opacity: .82;
}

html body .geekout-search-view-button:focus,
html body .geekout-search-view-button:active {
    background: #313131 !important;
    color: #fff !important;
}

html body .geekout-search-view-button:focus-visible {
    background: #313131 !important;
    color: #fff !important;
    outline: 2px solid var(--e-global-color-primary) !important;
    outline-offset: 2px;
}

html body .geekout-search-view-button.is-active {
    background: #313131 !important;
    color: #fff !important;
    opacity: 1;
}

/* Pagination helper note. */
html body .geekout-search-pagination-note {
    color: #000 !important;
    font-size: 11.5px !important;
}

/* Previous: slightly darker neutral grey so it is easier to see. */
html body .geekout-search-pagination-previous {
    border-color: #bcbcbc !important;
    background: #d2d2d2 !important;
    color: #333 !important;
}

html body .geekout-search-pagination-previous:hover,
html body .geekout-search-pagination-previous:focus-visible {
    border-color: #aaa !important;
    background: #c4c4c4 !important;
    color: #000 !important;
}

html body .geekout-search-pagination-previous.is-disabled {
    border-color: #bdbdbd !important;
    background: #d0d0d0 !important;
    color: #666 !important;
    opacity: .75;
}

/*
 * Next: neutral pagination control. Keep pagination independent of the site
 * brand palette so Home Search, Open House, and Community use the same UI.
 */
html body .geekout-search-pagination-next:not(.is-disabled) {
    border-color: #555 !important;
    background: #555 !important;
    color: #c0c0c0 !important;
}

html body .geekout-search-pagination-next:not(.is-disabled):focus {
    border-color: #555 !important;
    background: #555 !important;
    color: #c0c0c0 !important;
}

html body .geekout-search-pagination-next:not(.is-disabled):hover,
html body .geekout-search-pagination-next:not(.is-disabled):focus-visible {
    border-color: #000 !important;
    background: #000 !important;
    color: #fff !important;
    opacity: 1 !important;
}

html body .geekout-search-pagination-next.is-disabled {
    border-color: #bdbdbd !important;
    background: #d0d0d0 !important;
    color: #666 !important;
    opacity: .75;
}

/*
 * Go: medium grey by default, black on hover. Keep mouse-focus from holding
 * the hover treatment after a click; keyboard focus still gets a clear ring.
 */
html body .geekout-search-page-jump-button {
    border: 1px solid #000 !important;
    background: #888 !important;
    color: #fff !important;
}

html body .geekout-search-page-jump-button:focus {
    border-color: #000 !important;
    background: #888 !important;
    color: #fff !important;
}

html body .geekout-search-page-jump-button:hover {
    border-color: #000 !important;
    background: #000 !important;
    color: #fff !important;
}

html body .geekout-search-page-jump-button:focus-visible {
    border-color: #000 !important;
    background: #000 !important;
    color: #fff !important;
    outline: 2px solid #000 !important;
    outline-offset: 2px;
}


/* ==========================================================================
   Listings UI v45.1 — neutral shared pagination
   Next/Previous/Go intentionally use neutral greys and black instead of
   Elementor brand colors on Home Search, Open House, and Community.
   ========================================================================== */


/* ========================================================================== 
   Listings UI v45.2 — Map favorite icon repair
   --------------------------------------------------------------------------
   The v44.9 popup-font wildcard unintentionally overrode Font Awesome on
   favorite hearts. Keep map-card typography inherited at the card level, but
   let icon elements retain the font supplied by Font Awesome/Elementor.
   Home Search and Community map favorites are restored; the Property Nearby
   map remains icon-free because its template intentionally omits favorites.
   ========================================================================== */


/* ========================================================================== 
   v45.3 — Map favorite position
   Move map-card favorites away from Leaflet's close button and into the
   lower-right corner of the property photo. Gallery cards are unchanged.
   ========================================================================== */

/* Home Search + Open House map cards */
#map .geekout-search-map-card .geekout-search-card-favorite,
#map .geekout-openhouse-map-card .geekout-search-card-favorite {
    top: auto !important;
    right: 10px !important;
    bottom: 10px !important;
    left: auto !important;
    z-index: 18 !important;
}

/* Community map cards */
#map .geekout-community-map-property-card .geekout-community-card-favorite {
    top: auto !important;
    right: 10px !important;
    bottom: 10px !important;
    left: auto !important;
    z-index: 18 !important;
}

/* ==========================================================================
   Listings UI v45.4 — homepage grid-to-slider mobile enforcement
   --------------------------------------------------------------------------
   Grid-mode homepage MLS widgets render both a desktop grid and a separate
   mobile Slick carousel. The desktop grid uses display:grid !important, so
   jQuery .hide() alone cannot suppress it on phones. Enforce the intended
   <=500px behavior in CSS so mobile always shows only the slider.
   ========================================================================== */

@media (max-width: 500px) {
    :is(
        #newlistingsdesktop-layout,
        #agentdesktop-layout,
        #brokerdesktop-layout,
        #luxurydesktop-layout
    ) {
        display: none !important;
    }

    :is(
        #newslistingssliderMobile,
        #agentsliderMobile,
        #brokersliderMobile,
        #luxurysliderMobile
    ) {
        display: block !important;
    }
}

@media (min-width: 501px) {
    :is(
        #newslistingssliderMobile,
        #agentsliderMobile,
        #brokersliderMobile,
        #luxurysliderMobile
    ) {
        display: none !important;
    }
}

