/**
 * Map-first listing layout (Phase 1).
 * All rules scoped under body.nfr-listing-map-first — flag OFF is unaffected.
 */

.nfr-listing-map-first {
	/* Wider sidebar so legacy cards are not compressed; map remains primary */
	--nfr-map-first-sidebar-width: clamp(400px, 44vw, 520px);
	--nfr-map-first-search-min-height: 3.25rem;
	--nfr-map-first-footer-band: 0px;
	--nfr-map-first-viewport-height: calc(100vh - var(--nfr-public-header-height, 128px) - var(--nfr-map-first-footer-band));
	/* Map chrome — same glass tokens as header Account / Login pills */
	--nfr-map-glass-bg: var(--nfr-header-glass-bg, rgba(15, 23, 42, 0.35));
	--nfr-map-glass-border: var(--nfr-header-glass-border, rgba(255, 255, 255, 0.28));
	--nfr-map-glass-color: var(--nfr-header-glass-color, #f1f5f9);
	--nfr-map-glass-label: rgba(148, 163, 184, 0.95);
	--nfr-map-glass-bg-hover: var(--nfr-header-glass-bg-hover, rgba(12, 18, 28, 0.96));
	--nfr-map-glass-border-hover: var(--nfr-header-glass-border-hover, rgba(255, 255, 255, 0.3));
	--nfr-map-glass-color-hover: var(--nfr-header-glass-color-hover, #fff);
	--nfr-map-glass-bg-active: var(--nfr-header-glass-bg-active, rgba(8, 12, 20, 0.98));
	--nfr-map-glass-border-active: var(--nfr-header-glass-border-active, rgba(255, 255, 255, 0.26));
	--nfr-map-glass-radius: 10px;
	--nfr-map-glass-size: 40px;
	--nfr-map-glass-icon-size: 18px;
	--nfr-map-glass-icon-opacity: 0.92;
	--nfr-map-glass-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
	--nfr-map-glass-divider: rgba(255, 255, 255, 0.07);
}

/* Desktop: map-first shell uses a fixed viewport band; page can scroll to #footer below */
@media (min-width: 992px) {
	body.nfr-listing-map-first {
		overflow-y: auto;
	}

	body.nfr-listing-map-first #wrapper {
		overflow: visible;
	}
}

@supports (height: 100dvh) {
	.nfr-listing-map-first {
		--nfr-map-first-viewport-height: calc(100dvh - var(--nfr-public-header-height, 128px) - var(--nfr-map-first-footer-band));
	}
}

/*
 * Desktop viewport lock: header band + map-first shell = one screen; footer starts below fold.
 * Height is set on #content only; inner wrappers participate via flex (fixes collapsed shell / early footer).
 */
@media (min-width: 992px) {
	.nfr-listing-map-first #content.nfr-listing-map-first-content {
		box-sizing: border-box;
		min-height: var(--nfr-map-first-viewport-height);
		height: auto;
		max-height: none;
		display: flex;
		flex-direction: column;
		overflow: visible;
	}

	.nfr-listing-map-first #content.nfr-listing-map-first-content > .content-wrap.real-estate-listing-content {
		flex: 1 1 auto;
		min-height: 0;
		height: auto;
		max-height: none;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}

	.nfr-listing-map-first .nfr-listing-map-first-shell.real-estate-listing-main.section {
		flex: 1 1 auto;
		min-height: 0;
		height: auto;
		max-height: none;
		margin: 0 !important;
		padding: 0 !important;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}
}

/* Fallback for sub-desktop before stacked rules (inherits from desktop block when >=992) */
.nfr-listing-map-first #content.nfr-listing-map-first-content,
.nfr-listing-map-first .nfr-listing-map-first-content .content-wrap.real-estate-listing-content {
	display: flex;
	flex-direction: column;
}

.nfr-listing-map-first .nfr-listing-map-first-shell.real-estate-listing-main {
	display: flex;
	flex-direction: column;
}

/* Top action bar — always LTR layout (search → tabs → actions) even on RTL pages */
.nfr-listing-map-first .nfr-listing-map-first-search {
	flex: 0 0 auto;
	border-bottom: 1px solid rgba(148, 163, 184, 0.22);
	background: #1f2b3a;
	direction: ltr;
	text-align: left;
	unicode-bidi: isolate;
}

html[dir="rtl"] .nfr-listing-map-first .nfr-listing-map-first-search,
[dir="rtl"] .nfr-listing-map-first .nfr-listing-map-first-search {
	direction: ltr;
	text-align: left;
}

.nfr-listing-map-first .nfr-listing-map-first-search-inner {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	padding: 0.65rem 0.85rem;
	min-height: auto;
}

/* Phase 2A/2B — unified inline filter bar (desktop: single row) */
.nfr-listing-map-first .nfr-map-first-inline-filters {
	width: 100%;
}

.nfr-listing-map-first .nfr-map-first-inline-filters-bar {
	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem 0.75rem;
	padding: 0.5rem 0;
	width: 100%;
	min-height: 3.25rem;
	background: transparent;
	box-shadow: none;
}

.nfr-listing-map-first .nfr-map-first-inline-filters-core {
	display: flex;
	flex: 0 1 auto;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.55rem 0.65rem;
	min-width: 0;
}

.nfr-listing-map-first .nfr-map-first-secondary-actions {
	display: inline-flex;
	flex: 0 0 auto;
	flex-direction: row;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	gap: 0.45rem;
	margin-left: 0;
	margin-inline-start: 0;
}

@media (min-width: 992px) {
	.nfr-listing-map-first .nfr-map-first-inline-filters-bar {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		grid-template-rows: 1fr;
		align-items: center;
		justify-content: stretch;
		column-gap: 0.75rem;
	}

	.nfr-listing-map-first .nfr-map-first-inline-filters-core {
		grid-column: 2;
		grid-row: 1;
		justify-self: center;
		flex-wrap: nowrap;
		justify-content: center;
		align-items: center;
	}

	.nfr-listing-map-first .nfr-inline-filter-search-wrap {
		flex: 0 1 12rem;
		max-width: 16rem;
		min-width: 8rem;
	}

	.nfr-listing-map-first .nfr-map-first-inline-filters-core > *,
	.nfr-listing-map-first .nfr-map-first-secondary-actions > * {
		flex-shrink: 0;
	}

	.nfr-listing-map-first .nfr-map-first-secondary-actions {
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
		margin-inline-start: 0;
		flex: 0 0 auto;
		flex-wrap: nowrap;
		align-items: center;
	}
}

.nfr-listing-map-first .nfr-map-first-action-btn {
	border: 1px solid rgba(226, 232, 240, 0.55);
	background: rgba(15, 23, 42, 0.35);
	color: #f8fafc;
	border-radius: 8px;
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.45rem 0.8rem;
	cursor: pointer;
	white-space: nowrap;
	min-height: 2.75rem;
	line-height: 1.2;
	text-decoration: none;
	transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.nfr-listing-map-first .nfr-map-first-action-btn:hover {
	background: rgba(30, 41, 59, 0.75);
	border-color: rgba(248, 250, 252, 0.85);
	color: #fff;
}

.nfr-listing-map-first .nfr-map-first-action-btn--link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.nfr-listing-map-first .nfr-inline-filter-search-wrap {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex: 0 1 15rem;
	min-width: min(100%, 14rem);
	max-width: 24rem;
	padding: 0.55rem 0.85rem;
	border: 1px solid rgba(148, 163, 184, 0.35);
	border-radius: 10px;
	background: rgba(15, 23, 42, 0.55);
	margin: 0;
	min-height: 2.75rem;
}

.nfr-listing-map-first .nfr-inline-filter-search-icon {
	color: #94a3b8;
	font-size: 1.125rem;
	line-height: 1;
}

.nfr-listing-map-first .nfr-inline-filter-search-input {
	border: 0;
	background: transparent;
	width: 100%;
	min-width: 0;
	font-size: 0.9375rem;
	color: #f8fafc;
	padding: 0;
	outline: none;
	line-height: 1.35;
}

.nfr-listing-map-first .nfr-inline-filter-search-input::placeholder {
	color: #94a3b8;
}

.nfr-listing-map-first .nfr-inline-filter-tabs {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid rgba(148, 163, 184, 0.35);
	border-radius: 10px;
	overflow: hidden;
	background: rgba(15, 23, 42, 0.45);
	flex: 0 0 auto;
	min-height: 2.75rem;
}

.nfr-listing-map-first .nfr-inline-filter-tab {
	border: 0;
	background: transparent;
	color: #cbd5e1;
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 0.55rem 1rem;
	cursor: pointer;
	border-right: 1px solid rgba(148, 163, 184, 0.28);
	line-height: 1.2;
}

.nfr-listing-map-first .nfr-inline-filter-tab:last-child {
	border-right: 0;
}

.nfr-listing-map-first .nfr-inline-filter-tab.is-active {
	background: rgba(248, 250, 252, 0.12);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-tab--disabled,
.nfr-listing-map-first .nfr-inline-filter-tab:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.nfr-listing-map-first .nfr-inline-filter-dropdown {
	position: relative;
	flex: 0 0 auto;
}

.nfr-listing-map-first .nfr-inline-filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border: 1px solid rgba(148, 163, 184, 0.35);
	background: rgba(15, 23, 42, 0.45);
	color: #e2e8f0;
	border-radius: 10px;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 0.55rem 0.95rem;
	cursor: pointer;
	white-space: nowrap;
	min-height: 2.75rem;
}

.nfr-listing-map-first .nfr-inline-filter-pill:hover:not(:disabled) {
	border-color: rgba(226, 232, 240, 0.55);
	background: rgba(30, 41, 59, 0.65);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-pill.has-value {
	border-color: rgba(16, 185, 129, 0.55);
	color: #fff;
	background: rgba(30, 41, 59, 0.85);
}

.nfr-listing-map-first .nfr-inline-filter-pill[aria-expanded="true"] {
	border-color: rgba(226, 232, 240, 0.65);
	background: rgba(30, 41, 59, 0.8);
	color: #fff;
	box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.2);
}

.nfr-listing-map-first .nfr-inline-filter-pill .uil-angle-down {
	font-size: 1.05rem;
	line-height: 1;
	opacity: 0.75;
	transition: transform 0.2s ease, opacity 0.2s ease;
}

.nfr-listing-map-first .nfr-inline-filter-pill[aria-expanded="true"] .uil-angle-down {
	transform: rotate(180deg);
	opacity: 1;
}

/* Inline filter dropdown panels — dark premium (matches Advanced Filters modal) */
.nfr-listing-map-first .nfr-inline-filter-panel {
	position: absolute;
	top: calc(100% + 0.45rem);
	left: 0;
	z-index: 50;
	min-width: 13.5rem;
	padding: 0.85rem 1rem;
	border-radius: 10px;
	border: 1px solid #2d3a4f;
	background: #1a2234;
	color: #f1f5f9;
	box-shadow: 0 16px 40px rgba(2, 6, 23, 0.45), 0 0 0 1px rgba(15, 23, 42, 0.35);
}

.nfr-listing-map-first .nfr-inline-filter-panel--price {
	min-width: 18.5rem;
	max-width: min(22rem, calc(100vw - 1.5rem));
	padding: 1rem 1.1rem 1.05rem;
}

.nfr-listing-map-first .nfr-inline-filter-price-heading {
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: #94a3b8;
	margin: 0 0 0.55rem;
	padding-bottom: 0.45rem;
	border-bottom: 1px solid rgba(55, 65, 81, 0.75);
}

.nfr-listing-map-first .nfr-inline-filter-price-selected {
	margin: 0 0 0.85rem;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.35;
	color: #f8fafc;
	letter-spacing: 0.01em;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box {
	padding: 0.35rem 0.15rem 0.15rem;
	min-height: 4.75rem;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs {
	margin-top: 0.15rem;
}

/* Hide floating bubble — dedicated range line above slider */
.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-from,
.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-to,
.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-single {
	display: none;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-line {
	background-color: #374151 !important;
	height: 5px;
	border-radius: 4px;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-bar {
	background-color: #10b981 !important;
	height: 5px;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-handle {
	width: 18px;
	height: 18px;
	top: 21px;
	background-color: #10b981 !important;
	border: 2px solid #f8fafc;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-handle > i:first-child {
	background-color: #10b981 !important;
}

.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-min,
.nfr-listing-map-first .nfr-inline-filter-price-slider-box .irs--flat .irs-max {
	color: #9ca3af !important;
	font-size: 0.6875rem;
	font-weight: 600;
	top: auto;
	bottom: -1.35rem;
	padding: 0;
}

.nfr-listing-map-first .nfr-inline-filter-panel-actions {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.35rem;
	padding-top: 0.85rem;
	border-top: 1px solid rgba(55, 65, 81, 0.75);
}

.nfr-listing-map-first .nfr-inline-filter-panel-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.25rem;
	padding: 0.4rem 0.95rem;
	border-radius: 8px;
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.nfr-listing-map-first .nfr-inline-filter-panel-btn--ghost {
	border: 1px solid #4b5563;
	background: #374151;
	color: #f9fafb;
}

.nfr-listing-map-first .nfr-inline-filter-panel-btn--ghost:hover {
	background: #4b5563;
	border-color: #6b7280;
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-panel-btn--apply {
	border: 1px solid #10b981;
	background: #10b981;
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-panel-btn--apply:hover {
	background: #059669;
	border-color: #059669;
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-panel--options {
	min-width: 8.5rem;
	padding: 0.45rem;
}

.nfr-listing-map-first .nfr-inline-filter-option-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.nfr-listing-map-first .nfr-inline-filter-option {
	display: block;
	width: 100%;
	border: 0;
	border-radius: 8px;
	background: transparent;
	color: #e2e8f0;
	text-align: left;
	font-size: 0.875rem;
	font-weight: 500;
	padding: 0.5rem 0.7rem;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.nfr-listing-map-first .nfr-inline-filter-option:hover {
	background: rgba(30, 41, 59, 0.85);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-option.is-selected {
	background: rgba(16, 185, 129, 0.18);
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.45);
}

.nfr-listing-map-first .nfr-inline-filter-advanced {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	border: 1px solid rgba(148, 163, 184, 0.35);
	background: rgba(15, 23, 42, 0.45);
	color: #e2e8f0;
	border-radius: 10px;
	font-size: 0.9375rem;
	font-weight: 600;
	padding: 0.55rem 0.95rem;
	cursor: pointer;
	white-space: nowrap;
	min-height: 2.75rem;
}

.nfr-listing-map-first .nfr-inline-filter-advanced:hover {
	background: rgba(30, 41, 59, 0.65);
	border-color: rgba(226, 232, 240, 0.55);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-reset {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(148, 163, 184, 0.35);
	background: rgba(15, 23, 42, 0.45);
	color: #e2e8f0;
	border-radius: 10px;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.55rem 0.85rem;
	cursor: pointer;
	white-space: nowrap;
	min-height: 2.75rem;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.nfr-listing-map-first .nfr-inline-filter-reset:hover {
	background: rgba(30, 41, 59, 0.65);
	border-color: rgba(226, 232, 240, 0.55);
	color: #fff;
}

/* Favorites ON/OFF toggle — inline with filter pills */
.nfr-listing-map-first .nfr-inline-filter-favorites-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	border: 1px solid rgba(148, 163, 184, 0.35);
	background: rgba(15, 23, 42, 0.45);
	color: #e2e8f0;
	border-radius: 10px;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.2;
	padding: 0.55rem 0.85rem;
	cursor: pointer;
	white-space: nowrap;
	min-height: 2.75rem;
	transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.nfr-listing-map-first .nfr-inline-filter-favorites-toggle::before {
	content: "OFF";
	font-size: 0.625rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 0.15rem 0.4rem;
	border-radius: 999px;
	background: rgba(51, 65, 85, 0.95);
	color: #94a3b8;
}

.nfr-listing-map-first .nfr-inline-filter-favorites-toggle.is-on,
.nfr-listing-map-first .nfr-inline-filter-favorites-toggle.active {
	border-color: rgba(16, 185, 129, 0.55);
	background: rgba(16, 185, 129, 0.14);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-favorites-toggle.is-on::before,
.nfr-listing-map-first .nfr-inline-filter-favorites-toggle.active::before {
	content: "ON";
	background: rgba(16, 185, 129, 0.85);
	color: #fff;
}

.nfr-listing-map-first .nfr-inline-filter-favorites-toggle:hover {
	border-color: rgba(226, 232, 240, 0.55);
	color: #fff;
}

/* Map-first Advanced Filters modal — compact field layout */
.nfr-listing-map-first #real-estate-filters-modal .real-estate-filters-modal-dialog {
	max-width: min(420px, calc(100vw - 1.5rem));
	margin-left: auto;
	margin-right: auto;
}

.nfr-listing-map-first #real-estate-filters-modal .modal-body {
	padding: 1rem 1.25rem 1.1rem;
}

.nfr-listing-map-first #real-estate-filters-modal .nfr-map-first-filters-modal-fields .form-label {
	font-size: 0.8125rem;
	font-weight: 600;
	margin-bottom: 0.35rem;
}

.nfr-listing-map-first #real-estate-filters-modal .nfr-map-first-filters-modal-fields .form-control,
.nfr-listing-map-first #real-estate-filters-modal .nfr-map-first-filters-modal-fields .form-select {
	min-height: 2.5rem;
	font-size: 0.9375rem;
}

.nfr-listing-map-first #real-estate-filters-modal .re-filters-section-head,
.nfr-listing-map-first #real-estate-filters-modal .re-filters-section-title {
	display: none;
}

.nfr-listing-map-first #real-estate-filters-modal .modal-header {
	padding: 0.85rem 1.25rem;
}

.nfr-listing-map-first #real-estate-filters-modal .modal-footer {
	padding: 0.75rem 1.25rem 1rem;
}

.nfr-listing-map-first .nfr-inline-filter-advanced-count {
	color: #94a3b8;
	font-weight: 500;
}

.nfr-listing-map-first .nfr-map-first-modal-loc-host,
.nfr-listing-map-first .nfr-map-first-modal-price-host {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

@media (max-width: 991.98px) {
	.nfr-listing-map-first .nfr-map-first-inline-filters-bar {
		flex-direction: column;
		flex-wrap: wrap;
		align-items: stretch;
	}

	.nfr-listing-map-first .nfr-map-first-inline-filters-core {
		flex-wrap: wrap;
		justify-content: flex-start;
		width: 100%;
	}

	.nfr-listing-map-first .nfr-inline-filter-search-wrap {
		max-width: none;
		flex-basis: auto;
	}

	.nfr-listing-map-first .nfr-inline-filter-tabs {
		width: 100%;
	}

	.nfr-listing-map-first .nfr-inline-filter-tab {
		flex: 1 1 0;
		text-align: center;
	}

	.nfr-listing-map-first .nfr-map-first-secondary-actions {
		width: 100%;
		justify-content: stretch;
		margin-inline-start: 0;
	}

	.nfr-listing-map-first .nfr-map-first-action-btn {
		flex: 1 1 auto;
		text-align: center;
		justify-content: center;
	}

	/* Keep dropdown panels on-screen on narrow viewports */
	.nfr-listing-map-first .nfr-inline-filter-dropdown:last-of-type .nfr-inline-filter-panel,
	.nfr-listing-map-first .nfr-inline-filter-dropdown:nth-last-of-type(2) .nfr-inline-filter-panel {
		left: auto;
		right: 0;
	}

	.nfr-listing-map-first .nfr-inline-filter-panel--price {
		left: 0;
		right: auto;
		width: min(20rem, calc(100vw - 1.25rem));
	}

	.nfr-listing-map-first .nfr-inline-filter-option {
		min-height: 2.5rem;
		padding: 0.55rem 0.75rem;
	}

	.nfr-listing-map-first .nfr-inline-filter-panel-btn {
		min-height: 2.5rem;
		padding-inline: 1.1rem;
	}
}

/* Google Places suggestions above map-first shell */
body.nfr-listing-map-first .pac-container {
	z-index: 12000 !important;
}

/*
 * Listing modals are portaled to document.body (see real-estate-listing-modals-portal.blade.php).
 * Ensure Bootstrap modal/backdrop stack above map-first content but below header tools.
 */
body.nfr-listing-map-first > .modal.show {
	z-index: 1055;
}

body.nfr-listing-map-first > .modal-backdrop.show {
	z-index: 1050;
}

/* Sidebar + map columns — flex: 1 1 0% so map host gets a definite height */
.nfr-listing-map-first .nfr-listing-map-first-body {
	flex: 1 1 0%;
	min-height: 0;
	display: flex;
	flex-direction: row;
	align-items: stretch;
	overflow: hidden;
	position: relative;
}

@media (min-width: 992px) {
	.nfr-listing-map-first .nfr-listing-map-first-body {
		min-height: calc(var(--nfr-map-first-viewport-height) - 3.75rem);
		max-height: calc(var(--nfr-map-first-viewport-height) - 3.75rem);
	}
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar {
	flex: 0 0 var(--nfr-map-first-sidebar-width);
	width: var(--nfr-map-first-sidebar-width);
	max-width: var(--nfr-map-first-sidebar-width);
	min-width: 0;
	min-height: 0;
	display: flex;
	flex-direction: column;
	border-right: 1px solid rgba(148, 163, 184, 0.2);
	background: #1f2b3a;
	transition:
		flex-basis 0.28s ease,
		width 0.28s ease,
		max-width 0.28s ease,
		border-color 0.28s ease;
}

.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar {
	flex-basis: 0;
	width: 0;
	max-width: 0;
	border-right-color: transparent;
	overflow: hidden;
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle {
	position: absolute;
	top: 50%;
	left: var(--nfr-map-first-sidebar-width);
	z-index: 25;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 3.25rem;
	padding: 0;
	border: 1px solid rgba(148, 163, 184, 0.35);
	border-left: 0;
	border-radius: 0 10px 10px 0;
	background: #1f2b3a;
	color: #e2e8f0;
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 4px 0 14px rgba(2, 6, 23, 0.28);
	transition:
		left 0.28s ease,
		background 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle:hover {
	background: #243447;
	border-color: rgba(21, 205, 150, 0.45);
	color: #fff;
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle:focus-visible {
	outline: 2px solid #15cd96;
	outline-offset: 2px;
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle .uil {
	font-size: 1.35rem;
	line-height: 1;
	transition: transform 0.28s ease;
}

.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar-toggle {
	left: 0;
	border-left: 1px solid rgba(148, 163, 184, 0.35);
	border-radius: 0 10px 10px 0;
}

.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar-toggle .uil {
	transform: rotate(180deg);
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-x: hidden;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}

.nfr-listing-map-first .nfr-listing-map-first-sidebar #real-estate-listing-ajax-wrap {
	padding: 0.5rem 1rem 1.5rem;
}

/* Map column — primary visual area (absolute fill avoids % height before flex settles) */
.nfr-listing-map-first .nfr-listing-map-first-map {
	flex: 1 1 0%;
	min-width: 0;
	min-height: 0;
	position: relative;
	overflow: hidden;
	background: #0f172a;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map-row {
	/* block required — JS must not set flex (collapses absolute overlay children) */
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	max-height: none !important;
	margin: 0 !important;
	border-radius: 0;
	box-shadow: none;
	overflow: hidden;
}

/*
 * Map overlay layout (map-first only) — reserved corners + z-index stack.
 * Legacy full-width map rules in listing-page-styles are overridden here.
 */
.nfr-listing-map-first .nfr-listing-map-first-map {
	container-type: inline-size;
	container-name: nfr-map-col;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map-row {
	/* Safe-zone tokens (map column coordinate system) */
	--nfr-map-inset: 14px;
	--nfr-map-seam-gap: 12px;
	--nfr-map-inset-left: calc(var(--nfr-map-inset) + var(--nfr-map-seam-gap));
	--nfr-map-inset-top: var(--nfr-map-inset);
	--nfr-map-inset-bottom: var(--nfr-map-inset);
	--nfr-map-inset-right: var(--nfr-map-inset);
	--nfr-map-zone-col-width: max-content;
	--nfr-map-zone-pill-width: 13rem;
	--nfr-map-zone-btn-height: 2.125rem;
	--nfr-map-zone-pill-pad-x: 0.6875rem;
	--nfr-map-zone-pill-pad-chevron: 1.35rem;
	--nfr-map-zone-gap: 8px;
	--nfr-map-drilldown-height: 3.25rem;
	--nfr-map-tl-chrome-height: 0px;
	--nfr-map-tr-stack-gap: 10px;
	--nfr-map-tr-reserve-height: 9.25rem;
	--nfr-map-gm-stack-step: 42px;
	--nfr-map-br-chrome-height: 3.75rem;
	--nfr-map-br-stack-top: var(--nfr-map-br-chrome-height);
	--nfr-map-br-stack-right: var(--nfr-map-inset-right);
	--nfr-map-br-stack-width: 2.5rem;
	--nfr-map-br-stack-height: 3.75rem;
	--nfr-map-br-column-gap: 8px;
	--nfr-map-br-reserve-height: calc(var(--nfr-map-br-stack-top) + var(--nfr-map-br-stack-height));
	--nfr-map-cluster-guide-right-inset: 6px;
	--nfr-map-cluster-guide-right: var(--nfr-map-cluster-guide-right-inset);
	--nfr-map-cluster-guide-bottom: var(--nfr-map-inset-bottom);
	--nfr-map-overlay-z-base: 4;
	--nfr-map-overlay-z-legend: 5;
	--nfr-map-overlay-z-zones: 6;
	--nfr-map-overlay-z-gm: 8;
	--nfr-map-overlay-z-submenu: 24;
	--nfr-drill-accent: #15cd96;
	--nfr-drill-gold: #d4a84b;
	--nfr-drill-pill-bg: rgba(10, 12, 18, 0.58);
	--nfr-drill-pill-bg-hover: rgba(12, 14, 20, 0.68);
	--nfr-drill-pill-border: rgba(255, 255, 255, 0.2);
	--nfr-drill-pill-radius: 9999px;
	--nfr-drill-country-bg: rgba(8, 10, 14, 0.62);
	--nfr-drill-country-border: rgba(255, 255, 255, 0.22);
	--nfr-drill-flyout-bg: rgba(10, 12, 16, 0.65);
	--nfr-drill-flyout-border: rgba(255, 255, 255, 0.16);
	--nfr-drill-flyout-radius: 16px;
	--nfr-drill-item-active-bg: rgba(21, 205, 150, 0.18);
	--nfr-drill-pill-shadow: 0 3px 12px rgba(0, 0, 0, 0.32);
	--nfr-drill-pill-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.38);
	--nfr-drill-active-glow: 0 0 0 1px rgba(21, 205, 150, 0.5), 0 0 12px rgba(21, 205, 150, 0.18);
	--nfr-drill-expanded-glow: 0 0 0 1px rgba(212, 168, 75, 0.75), 0 0 14px rgba(212, 168, 75, 0.28), 0 4px 18px rgba(0, 0, 0, 0.38);
	--nfr-drill-flyout-row-min-width: 10.75rem;
}

/* —— Map chrome: premium glass (matches header Account pill) —— */
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide {
	background: var(--nfr-map-glass-bg) !important;
	color: var(--nfr-map-glass-color) !important;
	border: 1px solid var(--nfr-map-glass-border) !important;
	border-radius: var(--nfr-map-glass-radius);
	box-shadow: none !important;
	backdrop-filter: none !important;
	-webkit-backdrop-filter: none !important;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide-title {
	color: var(--nfr-map-glass-label) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cg-range {
	color: var(--nfr-map-glass-color) !important;
}

/* Positioning shell only — chrome lives on inner zoom card + individual pills */
.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	border: none !important;
}

/* Zoom +/- — one unified card (matches fullscreen / pegman pill chrome) */
.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) > .gmnoprint {
	display: block !important;
	width: var(--nfr-map-glass-size) !important;
	overflow: hidden !important;
	background: var(--nfr-map-glass-bg) !important;
	background-color: var(--nfr-map-glass-bg) !important;
	background-image: none !important;
	border: 1px solid var(--nfr-map-glass-border) !important;
	border-radius: var(--nfr-map-glass-radius) !important;
	box-shadow: var(--nfr-map-glass-shadow) !important;
	transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Google injects a white 40×81 inner shell — strip it so dark card + icons show through */
.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) > .gmnoprint > div {
	background: transparent !important;
	background-color: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	border: 0 !important;
	border-radius: 0 !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) > .gmnoprint:has(button:hover),
.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) > .gmnoprint:has(button:focus-visible) {
	background: var(--nfr-map-glass-bg-hover) !important;
	background-color: var(--nfr-map-glass-bg-hover) !important;
	border-color: var(--nfr-map-glass-border-hover) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) > .gmnoprint:has(button:active) {
	background: var(--nfr-map-glass-bg-active) !important;
	background-color: var(--nfr-map-glass-bg-active) !important;
	border-color: var(--nfr-map-glass-border-active) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"],
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"],
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc {
	box-sizing: border-box !important;
	width: var(--nfr-map-glass-size) !important;
	min-width: var(--nfr-map-glass-size) !important;
	max-width: var(--nfr-map-glass-size) !important;
	height: var(--nfr-map-glass-size) !important;
	min-height: var(--nfr-map-glass-size) !important;
	max-height: var(--nfr-map-glass-size) !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	color: var(--nfr-map-glass-color) !important;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc {
	background: var(--nfr-map-glass-bg) !important;
	background-color: var(--nfr-map-glass-bg) !important;
	background-image: none !important;
	border: 1px solid var(--nfr-map-glass-border) !important;
	border-radius: var(--nfr-map-glass-radius) !important;
	box-shadow: var(--nfr-map-glass-shadow) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"],
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"] {
	background: var(--nfr-map-glass-bg) !important;
	background-color: var(--nfr-map-glass-bg) !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"] {
	border-bottom: 1px solid var(--nfr-map-glass-divider) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"]:hover,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"]:hover {
	background: var(--nfr-map-glass-bg-hover) !important;
	background-color: var(--nfr-map-glass-bg-hover) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"]:active,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"]:active {
	background: var(--nfr-map-glass-bg-active) !important;
	background-color: var(--nfr-map-glass-bg-active) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button:hover,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control:hover,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc:hover {
	background: var(--nfr-map-glass-bg-hover) !important;
	background-color: var(--nfr-map-glass-bg-hover) !important;
	border-color: var(--nfr-map-glass-border-hover) !important;
	color: var(--nfr-map-glass-color-hover) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button:active,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control:active,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc:active {
	background: var(--nfr-map-glass-bg-active) !important;
	background-color: var(--nfr-map-glass-bg-active) !important;
	border-color: var(--nfr-map-glass-border-active) !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button:focus-visible,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control:focus-visible,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"]:focus-visible,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"]:focus-visible,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc:focus-visible {
	outline: 2px solid rgba(255, 255, 255, 0.55);
	outline-offset: 2px;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button img,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control img {
	position: absolute !important;
	left: 50% !important;
	top: 50% !important;
	right: auto !important;
	bottom: auto !important;
	width: var(--nfr-map-glass-icon-size) !important;
	height: var(--nfr-map-glass-icon-size) !important;
	max-width: var(--nfr-map-glass-icon-size) !important;
	max-height: var(--nfr-map-glass-icon-size) !important;
	margin: 0 !important;
	transform: translate(-50%, -50%) !important;
	filter: brightness(0) invert(1) !important;
	opacity: var(--nfr-map-glass-icon-opacity) !important;
	pointer-events: none;
}

/* Zoom sprites: only recolor the visible img; do not fight Google's display:none states */
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"] img,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"] img {
	width: var(--nfr-map-glass-icon-size) !important;
	height: var(--nfr-map-glass-icon-size) !important;
	max-width: var(--nfr-map-glass-icon-size) !important;
	max-height: var(--nfr-map-glass-icon-size) !important;
	margin: 0 !important;
	filter: brightness(0) invert(1) !important;
	opacity: var(--nfr-map-glass-icon-opacity) !important;
	pointer-events: none;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc img {
	position: absolute !important;
	left: 50% !important;
	top: 50% !important;
	right: auto !important;
	bottom: auto !important;
	width: 22px !important;
	height: 22px !important;
	max-width: 22px !important;
	max-height: 22px !important;
	margin: 0 !important;
	transform: translate(-50%, -50%) !important;
	filter: brightness(0) invert(1) !important;
	opacity: var(--nfr-map-glass-icon-opacity) !important;
	pointer-events: none;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom in"]:hover img,
.nfr-listing-map-first .nfr-listing-map-first-map #map button[title="Zoom out"]:hover img,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control > button:hover img,
.nfr-listing-map-first .nfr-listing-map-first-map #map button.gm-fullscreen-control:hover img,
.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc:hover img {
	opacity: 1 !important;
}

/* —— Vertical floating pill menu (no outer panel box) —— */
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown,
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-drilldown--vertical {
	position: absolute;
	left: var(--nfr-map-inset-left);
	right: auto;
	top: calc(var(--nfr-map-inset-top) + var(--nfr-map-tl-chrome-height, 0px) + var(--nfr-map-tr-stack-gap));
	bottom: auto;
	width: var(--nfr-map-zone-pill-width);
	max-width: min(var(--nfr-map-zone-pill-width), 48cqw);
	height: auto;
	min-height: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	padding: 0;
	gap: 0;
	overflow: visible;
	z-index: var(--nfr-map-overlay-z-zones);
	pointer-events: none;
	box-sizing: border-box;
	background: transparent;
	border: none;
	border-radius: 0;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

.nfr-listing-map-first .nfr-location-drilldown-track,
.nfr-listing-map-first .nfr-drill-menu-stack {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	flex: 0 0 auto;
	min-height: 0;
	gap: var(--nfr-map-zone-gap);
	overflow: visible;
	width: 100%;
	max-width: 100%;
	padding: 0;
	pointer-events: auto;
}

.nfr-listing-map-first .nfr-drill-section--country {
	margin-bottom: 1px;
}

.nfr-listing-map-first .nfr-drill-section--country + .nfr-drill-section {
	margin-top: 1px;
}

.nfr-listing-map-first .nfr-drill-section {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--nfr-map-zone-gap);
	width: 100%;
	max-width: 100%;
}

.nfr-listing-map-first .nfr-drill-section--country .zone-group {
	width: 100%;
}

.nfr-listing-map-first .nfr-drill-section + .nfr-drill-section {
	margin-top: 0;
	padding-top: 0;
	border-top: none;
}

.nfr-listing-map-first .nfr-drill-section-label {
	display: none;
}

.nfr-listing-map-first .nfr-drill-section-items {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--nfr-map-zone-gap);
	width: 100%;
	max-width: 100%;
}

.nfr-listing-map-first .nfr-location-drilldown .zone-group {
	position: relative;
	display: block;
	width: 100%;
	max-width: 100%;
	overflow: visible;
}

.nfr-listing-map-first .nfr-location-drilldown .zone-group.is-submenu-open {
	z-index: 1;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: flex-start;
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	height: var(--nfr-map-zone-btn-height);
	min-height: var(--nfr-map-zone-btn-height);
	max-height: var(--nfr-map-zone-btn-height);
	padding: 0 var(--nfr-map-zone-pill-pad-chevron) 0 var(--nfr-map-zone-pill-pad-x);
	border: 1px solid var(--nfr-drill-pill-border);
	border-radius: var(--nfr-drill-pill-radius);
	background: var(--nfr-drill-pill-bg);
	backdrop-filter: blur(14px) saturate(120%);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	color: rgba(255, 255, 255, 0.98);
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.025em;
	text-transform: uppercase;
	text-align: left;
	cursor: pointer;
	box-shadow: var(--nfr-drill-pill-shadow);
	transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
	overflow: hidden;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn:hover,
.nfr-listing-map-first .nfr-location-drilldown .area-btn:focus-visible {
	background: var(--nfr-drill-pill-bg-hover);
	border-color: rgba(255, 255, 255, 0.18);
	color: #fff;
	box-shadow: var(--nfr-drill-pill-shadow-hover);
	outline: none;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-active {
	background: var(--nfr-drill-pill-bg);
	border-color: rgba(21, 205, 150, 0.55);
	color: var(--nfr-drill-accent);
	box-shadow: var(--nfr-drill-active-glow);
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-active:hover,
.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-active:focus-visible {
	background: var(--nfr-drill-pill-bg-hover);
	border-color: rgba(21, 205, 150, 0.72);
	color: #34d399;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn .region-icon {
	flex: 0 0 1rem;
	align-self: center;
	width: 1rem;
	margin-right: 0.35rem;
	font-size: 0.75rem;
	line-height: 1;
	text-align: center;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn .region-label {
	flex: 1 1 auto;
	min-width: 0;
	text-align: left;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.nfr-drill-parent-btn {
	padding-right: var(--nfr-map-zone-pill-pad-chevron);
}

.nfr-listing-map-first .nfr-location-drilldown .nfr-drill-chevron {
	flex: 0 0 auto;
	position: absolute;
	right: 0.5rem;
	top: 50%;
	width: 0.35rem;
	height: 0.35rem;
	margin: 0;
	border-right: 1.5px solid rgba(255, 255, 255, 0.55);
	border-bottom: 1.5px solid rgba(255, 255, 255, 0.55);
	transform: translateY(-50%) rotate(-45deg);
	transform-origin: center;
	transition: transform 0.18s ease, border-color 0.18s ease;
	pointer-events: none;
	opacity: 0.85;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-expanded,
.nfr-listing-map-first .nfr-location-drilldown .zone-group.is-submenu-open > .area-btn {
	background: var(--nfr-drill-pill-bg);
	border-color: rgba(212, 168, 75, 0.82);
	color: #fff;
	box-shadow: var(--nfr-drill-expanded-glow);
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-expanded .nfr-drill-chevron,
.nfr-listing-map-first .nfr-location-drilldown .zone-group.is-submenu-open > .area-btn .nfr-drill-chevron {
	transform: translateY(-50%) rotate(135deg);
	border-right-color: var(--nfr-drill-gold);
	border-bottom-color: var(--nfr-drill-gold);
	opacity: 1;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-expanded:hover,
.nfr-listing-map-first .nfr-location-drilldown .zone-group.is-submenu-open > .area-btn:hover {
	background: var(--nfr-drill-pill-bg-hover);
	border-color: rgba(212, 168, 75, 0.92);
	color: #fff;
}

.nfr-listing-map-first .nfr-location-drilldown .area-btn.is-active.is-expanded,
.nfr-listing-map-first .nfr-location-drilldown .zone-group.is-submenu-open > .area-btn.is-active {
	border-color: rgba(212, 168, 75, 0.88);
	color: var(--nfr-drill-accent);
	box-shadow: var(--nfr-drill-expanded-glow), 0 0 10px rgba(21, 205, 150, 0.16);
}

.nfr-listing-map-first .nfr-location-drilldown .nfr-drill-country-btn {
	font-weight: 700;
	font-size: 0.6875rem;
	letter-spacing: 0.01em;
	text-transform: none;
	background: var(--nfr-drill-country-bg);
	border-color: rgba(212, 168, 75, 0.42);
	color: rgba(255, 255, 255, 0.98);
	box-shadow: 0 3px 12px rgba(0, 0, 0, 0.32), 0 0 0 1px rgba(212, 168, 75, 0.12);
	padding-right: var(--nfr-map-zone-pill-pad-x);
}

.nfr-listing-map-first .nfr-location-drilldown .nfr-drill-country-btn .region-label {
	text-transform: none;
	letter-spacing: 0.01em;
}

.nfr-listing-map-first .nfr-location-drilldown .nfr-drill-country-btn:hover,
.nfr-listing-map-first .nfr-location-drilldown .nfr-drill-country-btn:focus-visible {
	background: var(--nfr-drill-pill-bg-hover);
	border-color: rgba(212, 168, 75, 0.58);
	color: #fff;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider {
	position: absolute;
	left: calc(100% + 10px);
	top: 0;
	right: auto;
	margin: 0;
	width: max-content;
	min-width: var(--nfr-drill-flyout-row-min-width);
	max-width: min(14.5rem, 52vw);
	padding: 8px;
	display: none;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 0;
	background: var(--nfr-drill-flyout-bg);
	border-radius: var(--nfr-drill-flyout-radius);
	border: 1px solid var(--nfr-drill-flyout-border);
	box-shadow: 0 8px 28px rgba(0, 0, 0, 0.36);
	backdrop-filter: blur(16px) saturate(120%);
	-webkit-backdrop-filter: blur(16px) saturate(120%);
	z-index: var(--nfr-map-overlay-z-submenu);
	pointer-events: none;
	visibility: hidden;
	opacity: 0;
	overflow: visible;
	transition: opacity 0.16s ease, visibility 0.16s ease;
}

.nfr-listing-map-first .nfr-location-drilldown .nfr-sub-zone-slider-inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 6px;
	width: 100%;
	min-width: var(--nfr-drill-flyout-row-min-width);
	margin: 0;
	padding: 0;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider::before,
.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider::after,
.nfr-listing-map-first .nfr-location-drilldown .zone-group::before,
.nfr-listing-map-first .nfr-location-drilldown .zone-group::after,
.nfr-listing-map-first .nfr-location-drilldown .area-btn::before,
.nfr-listing-map-first .nfr-location-drilldown .area-btn::after {
	content: none !important;
	display: none !important;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.show.nfr-map-first-floating::after {
	content: '' !important;
	display: block !important;
	position: absolute;
	left: -10px;
	top: var(--nfr-flyout-connector-y, 1.125rem);
	width: 10px;
	height: 2px;
	margin-top: 0;
	border-radius: 1px;
	background: rgba(212, 168, 75, 0.85);
	box-shadow: 0 0 8px rgba(212, 168, 75, 0.35);
	pointer-events: none;
}

/* Fallback before JS repositions: park off the menu column (not in document flow below parent) */
.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.show:not(.nfr-map-first-floating) {
	position: absolute;
	left: calc(100% + 10px);
	top: 0;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.show {
	display: flex;
	pointer-events: auto;
	visibility: visible;
	opacity: 1;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.show.nfr-map-first-floating.is-flipped-left {
	border: 1px solid var(--nfr-drill-flyout-border);
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.show.nfr-map-first-floating.is-flipped-left::after {
	left: auto;
	right: -10px;
}

/* Map-first: JS pins flyout beside the main menu column (inline left/top set by JS) */
.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider.nfr-map-first-floating {
	position: fixed !important;
	right: auto !important;
	margin: 0 !important;
	transform: none !important;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-btn {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: var(--nfr-drill-pill-radius);
	padding: 8px 14px;
	min-height: 2rem;
	font-size: 0.8125rem;
	font-weight: 500;
	color: rgba(255, 255, 255, 0.96);
	cursor: pointer;
	text-align: center;
	white-space: nowrap;
	line-height: 1.25;
	letter-spacing: 0.01em;
	flex: 0 0 auto;
	transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-btn:hover,
.nfr-listing-map-first .nfr-location-drilldown .sub-zone-btn:focus-visible {
	background: rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.22);
	color: #fff;
	outline: none;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.22);
}

.nfr-listing-map-first .nfr-location-drilldown .sub-zone-btn.is-active {
	background: var(--nfr-drill-item-active-bg);
	border-color: rgba(21, 205, 150, 0.55);
	color: var(--nfr-drill-accent);
}

/* Legacy hardcoded zone stack — hidden when drill-down nav is present */
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container:not(.nfr-location-drilldown) {
	display: none !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container:not(.nfr-location-drilldown) .sub-zone-slider,
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container:not(.nfr-location-drilldown) .sub-zone-slider.show,
.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container:not(.nfr-location-drilldown) .sub-zone-slider.nfr-map-first-floating {
	display: none !important;
}

@media (min-width: 992px) {
	/* Tiles only — HTML overlays live in #map-row above this layer */
	.nfr-listing-map-first .nfr-listing-map-first-map #map {
		overflow: hidden;
		z-index: 0;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown.is-submenu-open {
		overflow: visible;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown .zone-group,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown .area-btn,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown .sub-zone-slider,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown .sub-zone-slider.show,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown .sub-zone-btn {
		pointer-events: auto;
	}

	/* —— Bottom-right cluster legend (GM stack is top-right) —— */
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide {
		bottom: var(--nfr-map-cluster-guide-bottom, var(--nfr-map-inset-bottom));
		right: var(--nfr-map-cluster-guide-right, var(--nfr-map-cluster-guide-right-inset, 6px));
		left: auto;
		top: auto;
		width: auto;
		min-width: 0;
		max-width: min(10rem, calc(100% - var(--nfr-map-inset-left) - var(--nfr-map-cluster-guide-right-inset, 6px) - 3rem));
		padding: 6px 8px 7px;
		z-index: var(--nfr-map-overlay-z-legend);
		margin-bottom: 0;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide-title {
		margin-bottom: 5px;
		font-size: 9px;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide-list {
		gap: 4px;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cg-range {
		font-size: 10px;
		font-weight: 600;
	}

	/* DR SVG minimap host (when enabled) — stack above legend, below GM stack */
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-dr-zone-svg-host {
		right: var(--nfr-map-inset-right);
		bottom: calc(var(--nfr-map-cluster-guide-bottom, var(--nfr-map-br-chrome-height)) + 5.5rem);
		left: auto;
		top: auto;
		max-width: min(280px, 38cqw);
		max-height: min(220px, 32cqh);
		z-index: var(--nfr-map-overlay-z-base);
	}

	/* Google native controls — z-index lift; zoom stack pinned under fullscreen via CSS vars */
	.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-style-mtc,
	.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-bundled-control-on-bottom,
	.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc,
	.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control {
		z-index: var(--nfr-map-overlay-z-gm) !important;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]) {
		top: var(--nfr-map-zoom-top, 3.5rem) !important;
		left: var(--nfr-map-zoom-left, auto) !important;
		right: auto !important;
		bottom: auto !important;
		inset: var(--nfr-map-zoom-top, 3.5rem) auto auto var(--nfr-map-zoom-left, auto) !important;
		margin: 0 !important;
		width: 40px;
		z-index: var(--nfr-map-overlay-z-gm) !important;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc {
		top: var(--nfr-map-pegman-top, auto) !important;
		left: var(--nfr-map-pegman-left, auto) !important;
		right: auto !important;
		bottom: auto !important;
		inset: var(--nfr-map-pegman-top, auto) auto auto var(--nfr-map-pegman-left, auto) !important;
		margin: 0 !important;
		width: 40px;
		height: 40px;
		z-index: var(--nfr-map-overlay-z-gm) !important;
	}

	@media (max-width: 991.98px) {
		.nfr-listing-map-first .nfr-listing-map-first-map #map .gmnoprint.gm-bundled-control:has(button[title="Zoom in"]),
		.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-fullscreen-control,
		.nfr-listing-map-first .nfr-listing-map-first-map #map .gm-svpc {
			touch-action: manipulation;
		}
	}

	/* Map-first: close-map custom control not used (toggle hidden) */
	.nfr-listing-map-first .nfr-listing-map-first-map #map .map-close-btn {
		display: none !important;
	}

	/* In-map notification — top-right below measured GM stack */
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .notification {
		position: absolute;
		top: calc(var(--nfr-map-inset-top) + var(--nfr-map-tl-chrome-height, 0px) + var(--nfr-map-drilldown-height) + var(--nfr-map-tr-stack-gap) + 0.5rem);
		right: var(--nfr-map-inset-right);
		left: auto;
		max-width: min(18rem, calc(100% - var(--nfr-map-inset-left) - var(--nfr-map-inset-right) - 1.5rem));
		z-index: var(--nfr-map-overlay-z-submenu);
		transform: translateX(120%);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .notification.show {
		transform: translateX(0);
	}

	/* Cluster hover preview — height from JS (--nfr-chp-*); width cap from config */
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview {
		z-index: var(--nfr-map-overlay-z-submenu);
		pointer-events: auto;
		display: flex;
		flex-direction: column;
		width: min(var(--nfr-chp-max-width, 320px), calc(100% - var(--nfr-map-inset-left) - var(--nfr-map-inset-right) - 1.5rem));
		max-height: var(--nfr-chp-card-max-height, none);
		overflow: hidden;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview--single {
		width: min(var(--nfr-chp-max-width, 320px), calc(100% - var(--nfr-map-inset-left) - var(--nfr-map-inset-right) - 1.5rem));
		overflow: visible;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview--single .nfr-cluster-hover-preview__inner,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview--single .nfr-cluster-hover-preview__list {
		overflow: visible;
		flex: 0 0 auto;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview--single .nfr-cluster-hover-preview__list {
		overflow-y: var(--nfr-chp-list-overflow, visible);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview--multi .nfr-cluster-hover-preview__list {
		overflow-y: var(--nfr-chp-list-overflow, visible);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__inner {
		display: flex;
		flex-direction: column;
		flex: 0 1 auto;
		min-height: 0;
		overflow: hidden;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__list {
		flex: 0 0 auto;
		min-height: 0;
		max-height: var(--nfr-chp-list-max-height, none);
		overflow-x: hidden;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior: contain;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__item {
		flex-shrink: 0;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__footer {
		flex-shrink: 0;
		display: flex;
		flex-direction: column;
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__more {
		flex-shrink: 0;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-hover-preview__more--zoom {
		font-size: 0.7rem;
		color: rgba(248, 250, 252, 0.6);
		background: transparent;
		border-top: 1px solid rgba(255, 255, 255, 0.05);
	}
}

/* Narrow map column: tighter zones + smaller legend footprint */
@container nfr-map-col (max-width: 520px) {
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row {
		--nfr-map-zone-pill-width: 11.25rem;
		--nfr-map-zone-btn-height: 2rem;
		--nfr-map-zone-pill-pad-x: 0.625rem;
		--nfr-map-zone-pill-pad-chevron: 1.25rem;
		--nfr-map-seam-gap: 6px;
		--nfr-map-zone-gap: 6px;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown {
		padding: 0;
	}

	.nfr-listing-map-first .nfr-location-drilldown .area-btn {
		font-size: 0.625rem;
	}

	.nfr-listing-map-first .nfr-drill-section-label {
		font-size: 0.5625rem;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide {
		max-width: 7.75rem;
		padding: 4px 6px 5px;
	}
}

@container nfr-map-col (max-width: 400px) {
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row {
		--nfr-map-zone-pill-width: 10.5rem;
		--nfr-map-zone-btn-height: 1.875rem;
		--nfr-map-zone-gap: 6px;
	}

	.nfr-listing-map-first .nfr-location-drilldown .area-btn {
		font-size: 0.625rem;
	}

	.nfr-listing-map-first .nfr-location-drilldown .sub-zone-slider {
		min-width: 9.5rem;
		max-width: min(13rem, 72vw);
		padding: 7px;
	}

	.nfr-listing-map-first .nfr-location-drilldown .nfr-sub-zone-slider-inner {
		min-width: 9rem;
		gap: 5px;
	}

	.nfr-listing-map-first .nfr-location-drilldown .sub-zone-btn {
		font-size: 0.75rem;
		padding: 7px 12px;
		min-height: 1.875rem;
	}
}

.nfr-listing-map-first .nfr-listing-map-first-map #map {
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	width: 100% !important;
	height: 100% !important;
	min-height: 0 !important;
}

.nfr-listing-map-first .nfr-listing-map-first-map .map-close-btn {
	display: none !important;
}

/* Single-column cards inside sidebar */
.nfr-listing-map-first #real-estate-listing-cards-grid {
	margin-left: 0 !important;
	margin-right: 0 !important;
	margin-top: 0.75rem !important;
	--bs-gutter-x: 0;
	--bs-gutter-y: 1rem;
}

.nfr-listing-map-first #real-estate-listing-cards-grid > .portfolio-item,
.nfr-listing-map-first #real-estate-listing-cards-grid > .real-estate-item,
.nfr-listing-map-first #real-estate-listing-cards-grid > .col-12 {
	flex: 0 0 100%;
	max-width: 100%;
	width: 100%;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .col-md-6,
.nfr-listing-map-first #real-estate-listing-cards-grid .col-lg-4 {
	flex: 0 0 100%;
	max-width: 100%;
	width: 100%;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .img-fluid {
	margin-top: 0;
	z-index: auto !important;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item.portfolio-item {
	min-width: 0;
	margin-bottom: 1rem;
	padding-bottom: 0;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-image {
	position: relative;
	overflow: hidden;
	min-height: 11rem;
	border-radius: 0;
	background: #0f172a;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-info {
	position: absolute;
	top: 0.4rem;
	right: 0.4rem;
	left: auto;
	bottom: auto;
	z-index: 5;
	margin: 0;
	padding: 0;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-info .favorite-btn,
.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-info .own-property-btn {
	width: 2.15rem;
	height: 2.15rem;
	border: 1px solid rgba(255, 255, 255, 0.28);
	background: rgba(15, 23, 42, 0.62);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: 999px;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-info .own-property-btn em.icon.ni {
	font-size: 0.95rem;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .property-image,
.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-image img.property-image {
	width: 100% !important;
	height: auto !important;
	min-height: 11rem;
	max-height: 13.5rem;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 0;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .property-image:hover {
	transform: none !important;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .nfr-listing-card-body {
	padding: 0.8rem 0.9rem 0.95rem;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .nfr-listing-card-body > .nfr-listing-card-section + .nfr-listing-card-section {
	border-top: 1px solid rgba(148, 163, 184, 0.28);
	margin-top: 0.6rem;
	padding-top: 0.6rem;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .nfr-listing-card-divider {
	display: none !important;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-desc h3,
.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-desc .nfr-listing-card-title {
	margin-top: 0;
	margin-bottom: 0;
	font-size: 0.92rem;
	line-height: 1.35;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-desc h3 a {
	display: block;
}

.nfr-listing-map-first #real-estate-listing-cards-grid .real-estate-item-desc h3 + span {
	margin-top: 0;
}

.nfr-listing-map-first #real-estate-listing-infinite-scroll-root {
	margin-top: 1.5rem !important;
	margin-bottom: 0.5rem !important;
}

@media (min-width: 1400px) {
	.nfr-listing-map-first {
		--nfr-map-first-sidebar-width: clamp(440px, 40vw, 560px);
	}
}

/* Tablet/mobile: simplified stacked layout */
@media (max-width: 991.98px) {
	.nfr-listing-map-first .nfr-listing-map-first-body {
		flex-direction: column;
	}

	.nfr-listing-map-first .nfr-listing-map-first-sidebar {
		flex: 0 0 auto;
		width: 100%;
		max-width: none;
		max-height: min(38vh, 380px);
		border-right: none;
		border-bottom: 1px solid rgba(148, 163, 184, 0.2);
		transition: max-height 0.28s ease, border-color 0.28s ease;
	}

	.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar {
		flex-basis: auto;
		width: 100%;
		max-width: none;
		max-height: 0;
		border-bottom-color: transparent;
	}

	.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle {
		position: relative;
		top: auto;
		left: auto;
		transform: none;
		align-self: center;
		flex: 0 0 auto;
		margin: -0.65rem auto 0;
		border: 1px solid rgba(148, 163, 184, 0.35);
		border-radius: 999px;
		width: 2.5rem;
		height: 2.5rem;
		box-shadow: 0 4px 14px rgba(2, 6, 23, 0.28);
	}

	.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar-toggle {
		margin-top: 0.35rem;
	}

	.nfr-listing-map-first .nfr-listing-map-first-body.is-sidebar-collapsed .nfr-listing-map-first-sidebar-toggle .uil {
		transform: rotate(-90deg);
	}

	.nfr-listing-map-first .nfr-listing-map-first-sidebar-toggle .uil {
		transform: rotate(90deg);
	}

	.nfr-listing-map-first {
		--nfr-map-first-sidebar-width: 100%;
	}

	.nfr-listing-map-first #content.nfr-listing-map-first-content {
		height: auto;
		max-height: none;
		min-height: var(--nfr-map-first-viewport-height);
		overflow: visible;
	}

	.nfr-listing-map-first #content.nfr-listing-map-first-content > .content-wrap.real-estate-listing-content {
		height: auto;
		max-height: none;
		min-height: 0;
		overflow: visible;
	}

	.nfr-listing-map-first .nfr-listing-map-first-shell.real-estate-listing-main.section {
		height: auto;
		max-height: none;
		overflow: visible;
	}

	.nfr-listing-map-first .nfr-listing-map-first-body {
		flex: 1 1 auto;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map {
		overflow: hidden;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row {
		overflow: hidden !important;
		--nfr-map-drilldown-height: 3rem;
		--nfr-map-inset: 10px;
		--nfr-map-inset-left: var(--nfr-map-inset);
		--nfr-map-tr-reserve-height: 4.5rem;
		--nfr-map-br-reserve-height: 4rem;
		--nfr-map-br-chrome-height: 4rem;
		--nfr-map-cluster-guide-right-inset: 4px;
		--nfr-map-cluster-guide-bottom: var(--nfr-map-inset-bottom);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .btn-container.nfr-location-drilldown,
	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-drilldown--vertical {
		left: var(--nfr-map-inset-left);
		right: auto;
		top: calc(var(--nfr-map-inset-top) + var(--nfr-map-tl-chrome-height, 0px) + var(--nfr-map-tr-stack-gap));
		width: max-content;
		max-width: min(14rem, calc(100% - var(--nfr-map-inset-left) - var(--nfr-map-inset-right)));
		padding: 0;
	}

	.nfr-listing-map-first .nfr-location-drilldown-track {
		max-width: 100%;
		overflow: visible;
	}

	.nfr-listing-map-first .nfr-location-drilldown .area-btn {
		font-size: 0.625rem;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row .nfr-cluster-guide {
		bottom: var(--nfr-map-cluster-guide-bottom, var(--nfr-map-inset-bottom));
		right: var(--nfr-map-cluster-guide-right, var(--nfr-map-cluster-guide-right-inset, 4px));
		left: auto;
		max-width: 8.25rem;
	}

	.nfr-listing-map-first .nfr-listing-map-first-map {
		flex: 1 1 auto;
		min-height: min(46vh, 460px);
	}

	.nfr-listing-map-first .nfr-listing-map-first-map #map-row,
	.nfr-listing-map-first .nfr-listing-map-first-map #map {
		position: relative !important;
		inset: auto !important;
		min-height: min(46vh, 460px);
	}
}

@media (max-width: 575.98px) {
	.nfr-listing-map-first .nfr-listing-map-first-search-inner {
		padding: 0.5rem 0.65rem;
		gap: 0.45rem;
	}

	.nfr-listing-map-first .nfr-listing-map-first-search-inner .btn {
		font-size: 0.8125rem;
		padding-left: 0.75rem !important;
		padding-right: 0.75rem !important;
	}
}

/* Footer access strip — below map/listing band so #footer is reachable by page scroll */
.nfr-listing-map-first .nfr-listing-map-first-footer-access {
	flex: 0 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.65rem 1.25rem;
	padding: 0.85rem 1rem 1.1rem;
	border-top: 1px solid rgba(148, 163, 184, 0.22);
	background: #1a2433;
}

.nfr-listing-map-first .nfr-listing-map-first-footer-link {
	color: #e2e8f0;
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	padding: 0.4rem 0.85rem;
	border-radius: 8px;
	border: 1px solid rgba(148, 163, 184, 0.35);
	background: rgba(15, 23, 42, 0.55);
}

.nfr-listing-map-first .nfr-listing-map-first-footer-link:hover {
	color: #fff;
	border-color: rgba(226, 232, 240, 0.55);
	background: rgba(30, 41, 59, 0.85);
}

.nfr-listing-map-first .nfr-listing-map-first-footer-hint {
	color: #94a3b8;
	font-size: 0.75rem;
}

.nfr-listing-map-first .nfr-listing-map-first-map #map.nfr-map-scroll-zoom-active {
	outline: 2px solid rgba(34, 211, 238, 0.55);
	outline-offset: -2px;
}
