@charset "UTF-8";
/**
 * GenieBuilder — Half-Map Search.
 * 50/50 split (rail+results scroll, map sticky). Token-driven. Responsive stack.
 */

.mlsg-gb-halfmap {
	--mlsg-gb-halfmap-h: 80vh;
	display: flex;
	flex-direction: row;
	height: var(--mlsg-gb-halfmap-h);
	width: 100%;
	border: 1px solid var(--mlsg-gb-color-border);
	border-radius: var(--mlsg-gb-radius-card);
	overflow: hidden;
	background: var(--mlsg-gb-color-surface);
}

.mlsg-gb-halfmap__panel {
	order: 1;
	display: flex;
	flex-direction: column;
	flex: 0 0 var(--mlsg-gb-panel-basis, 42%);
	max-width: var(--mlsg-gb-panel-basis, 42%);
	height: 100%;
	overflow-y: auto;
	padding: var(--mlsg-gb-space-md);
	gap: var(--mlsg-gb-space-md);
	position: relative;
}

.mlsg-gb-halfmap__map {
	order: 2;
	flex: 1 1 58%;
	height: 100%;
	min-height: 100%;
}

/* Map on left */
.mlsg-gb-halfmap--map-left .mlsg-gb-halfmap__panel {
	order: 2;
}

.mlsg-gb-halfmap--map-left .mlsg-gb-halfmap__map {
	order: 1;
}

.mlsg-gb-halfmap__rail {
	position: sticky;
	top: 0;
	z-index: 2;
	background: var(--mlsg-gb-color-surface);
	padding-bottom: var(--mlsg-gb-space-sm);
}

.mlsg-gb-halfmap__count {
	font-size: var(--mlsg-gb-font-meta);
	font-weight: 600;
	color: var(--mlsg-gb-color-muted);
}

/* Results: up to Max Columns (--mlsg-gb-cols) side by side, never a card
   narrower than Minimum Card Width (--mlsg-gb-card-min) — past that the
   grid drops a column, down to one. */
.mlsg-gb-halfmap__results {
	display: grid;
	grid-template-columns: repeat(
		auto-fill,
		minmax(
			min(100%, max(var(--mlsg-gb-card-min, 15rem), calc((100% - (var(--mlsg-gb-cols, 2) - 1) * var(--mlsg-gb-gap, 16px)) / var(--mlsg-gb-cols, 2)))),
			1fr
		)
	);
	align-content: start;
	gap: var(--mlsg-gb-gap, var(--mlsg-gb-space-md));
	/* List view's cards stack when the column itself is narrow. */
	container-type: inline-size;
}
.mlsg-gb-halfmap__results > .mlsg-gb-halfmap__card {
	min-width: 0;
	display: flex;
}
/* Cards in a row are one height: each fills its grid cell, its details
   taking the slack, so the bottom edges line up. */
.mlsg-gb-halfmap__results > .mlsg-gb-halfmap__card > .mlsg-gb-card {
	flex: 1 1 auto;
	height: auto;
	min-width: 0;
}
.mlsg-gb-halfmap__results > .mlsg-gb-halfmap__card > .mlsg-gb-card > .mlsg-gb-card__body {
	flex: 1 1 auto;
}
.mlsg-gb-halfmap__card--sk > .mlsg-sk-card { flex: 1 1 auto; }

/* The result count while a search loads: a skeleton bar where the number goes. */
.mlsg-gb-halfmap__count-sk {
	display: inline-block;
	width: 7rem;
	height: 1rem;
	vertical-align: middle;
}

.mlsg-gb-halfmap__notice {
	padding: var(--mlsg-gb-space-lg);
	color: var(--mlsg-gb-color-muted);
	font-size: var(--mlsg-gb-font-meta);
	text-align: center;
}

/* The filters: one full-width row that wraps, each field sized by the
   Search Bar's own settings (--mlsg-gb-search-grow / -basis, set by "Field
   Width, All Fields" or the field's own width; GB_Search_Field_Controls). */
.mlsg-gb-search--rail {
	flex-direction: column;
}
/* Each filter shares the row and wraps before it gets narrower than
   Minimum Filter Width; Wide takes a double share (the keyword box, unless
   set otherwise), Full row a line of its own. */
.mlsg-gb-search--rail .mlsg-gb-search__fields > .mlsg-gb-search__field--q {
	--mlsg-gb-search-grow: 2;
	--mlsg-gb-search-basis: calc(var(--mlsg-gb-search-field-min, 9rem) * 2);
}
.mlsg-gb-search--rail .mlsg-gb-search__fields > .mlsg-gb-search__field {
	flex: var(--mlsg-gb-search-grow, 1) 1 var(--mlsg-gb-search-basis, var(--mlsg-gb-search-field-min, 9rem));
	/* Never narrower than Minimum Field Width: past that a filter moves to
	   the next line rather than squeezing its text out of sight. */
	min-width: min(100%, var(--mlsg-gb-search-field-min, 9rem));
	max-width: 100%;
}

/* Map pin pop-up: the shared property card (GB_Card), so it takes the
   card settings — Site Settings › Property Cards, then this element's card
   settings, then its own Map Pop-up settings (GB_Card_Controls, scope
   .mlsg-gb-iw). Its width is --mlsg-gb-iw-width. */
.mlsg-gb-iw {
	width: var(--mlsg-gb-iw-width, 17.5rem);
	max-width: 80vw;
}
.mlsg-gb-iw .mlsg-gb-card {
	margin: 0;
}
/* Google's pop-up frame draws nothing of its own: no white box, padding
   or square corners behind the card's rounded ones. The card is the whole
   pop-up, and the pointer under it takes the card's colour. */
.mlsg-gb-halfmap .gm-style .gm-style-iw-c {
	padding: 0;
	background: transparent;
	box-shadow: none;
	border-radius: 0;
	overflow: visible;
}
/* The shadow follows the card's own shape and the pointer under it. */
.mlsg-gb-halfmap .gm-style .gm-style-iw-a {
	filter: var(--mlsg-gb-shadow-popup);
}
/* The pop-up fades in and out in place over the Fade Time
   (--mlsg-gb-iw-fade, set by the element; mlsg-gb-halfmap.js adds the
   classes). Opacity only: a transform on Google's frame throws the pop-up
   sideways while it fades. A new card in an open pop-up fades in in place. */
@keyframes mlsg-gb-iw-fade-in {
	from { opacity: 0; }
}
@keyframes mlsg-gb-iw-fade-out {
	to { opacity: 0; }
}
.mlsg-gb-halfmap .gm-style .gm-style-iw-a.mlsg-gb-iw-enter {
	animation: mlsg-gb-iw-fade-in var(--mlsg-gb-iw-fade, 200ms) ease-out both;
}
.mlsg-gb-halfmap .gm-style .gm-style-iw-a.mlsg-gb-iw-leave {
	animation: mlsg-gb-iw-fade-out var(--mlsg-gb-iw-fade, 200ms) ease-in both;
}
.mlsg-gb-halfmap .gm-style .mlsg-gb-iw {
	animation: mlsg-gb-iw-fade-in var(--mlsg-gb-iw-fade, 200ms) ease-out both;
}
.mlsg-gb-halfmap .gm-style .gm-style-iw-tc::after {
	background: var(--mlsg-gb-card-bg, var(--mlsg-gb-color-surface));
}
.mlsg-gb-iw--loading {
	min-height: 12rem;
	border-radius: var(--mlsg-gb-radius-card);
	background: var(--mlsg-gb-color-placeholder);
}

/* Clustered map pins */
.mlsg-gb-cluster {
	font-family: inherit;
}


/* Top-bar search placement: search spans full width above the split */
.mlsg-gb-halfmap--search-top {
	flex-wrap: wrap;
}
.mlsg-gb-halfmap__topbar {
	order: 0;
	flex: 1 0 100%;
	padding: var(--mlsg-gb-space-md);
	border-bottom: 1px solid var(--mlsg-gb-color-border);
	background: var(--mlsg-gb-color-surface);
}
.mlsg-gb-halfmap--search-top .mlsg-gb-halfmap__panel,
.mlsg-gb-halfmap--search-external .mlsg-gb-halfmap__panel {
	height: auto;
}


.mlsg-gb-halfmap--search-top .mlsg-gb-search__actions {
	margin-left: auto;
}

/* Hide-site-footer toggle (theme-agnostic, full-width map pages) */
body.mlsg-gb-hide-footer footer,
body.mlsg-gb-hide-footer .site-footer,
body.mlsg-gb-hide-footer #colophon,
body.mlsg-gb-hide-footer [data-elementor-type="footer"],
body.mlsg-gb-hide-footer .elementor-location-footer {
	display: none;
}

/* Hide Header Top Bar on Tablets & Phones (theme-agnostic: the bar above
   the header in the themes clients use). This page only — the element
   sets the class (mlsg-gb-halfmap.js). */
@media (max-width: 1024px) {
	body.mlsg-gb-hide-topbar .top-bar-wrap,
	body.mlsg-gb-hide-topbar .ast-above-header-wrap,
	body.mlsg-gb-hide-topbar #top-bar {
		display: none;
	}
}

/* Map overlay toolbar: view toggle + prev/next. The map draws in its own
   canvas (Google Maps replaces whatever is inside it); the toolbars are its
   siblings, laid over it. */
.mlsg-gb-halfmap__map { position: relative; }
.mlsg-gb-halfmap__canvas {
	position: absolute;
	inset: 0;
}
.mlsg-gb-halfmap__toolbar {
	position: absolute;
	top: var(--mlsg-gb-space-md);
	right: var(--mlsg-gb-space-md);
	z-index: 3;
	display: flex;
}
/* Mounted into the map's own controls (mlsg-gb-halfmap.js), where Google
   places it beside its fullscreen button. */
.mlsg-gb-halfmap__toolbar.is-mounted {
	position: static;
	margin: 10px;
}
/* Previous / next listing: drawn like Google's own controls and the
   Map / Satellite / Draw strip (mlsg-listing-map.css), so the map's controls
   read as one set. Google's values on purpose. */
.mlsg-gb-halfmap__nav {
	display: flex;
	border-radius: 2px;
	background: #fff;
	box-shadow: rgba( 0, 0, 0, 0.3 ) 0 1px 4px -1px;
	overflow: hidden;
}
.mlsg-gb-halfmap__tbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 0;
	background: none;
	color: #565656;
	font-size: 16px;
	cursor: pointer;
}
.mlsg-gb-halfmap__tbtn + .mlsg-gb-halfmap__tbtn { border-left: 1px solid #e6e6e6; }
.mlsg-gb-halfmap__tbtn:hover { background: #ebebeb; color: #000; }
.mlsg-gb-halfmap__tbtn:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: -2px; }

/* Result view modes */
/* List view: one column of wide cards, photo beside the details. Set on
   grid-template-columns itself, since the Max Columns setting writes
   --mlsg-gb-cols with more weight than any rule here. */
.mlsg-gb-halfmap .mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] { grid-template-columns: minmax(0, 1fr); }
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card {
	flex-direction: row;
	align-items: stretch;
}
/* The photo fills the whole left side, however tall the details are, and
   the badges stack down its top-left corner: status first, then labels. */
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media {
	flex: 0 0 40%;
	max-width: 40%;
	aspect-ratio: auto;
	height: auto;
	min-height: 9rem;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--mlsg-gb-space-xs);
	padding: var(--mlsg-gb-space-sm);
}
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media > .mlsg-gb-card__img,
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media > .mlsg-gb-card__placeholder {
	position: absolute;
	inset: 0;
	/* Stated here: a theme's img { height: auto } outranks the card's own
	   height and left the photo at its natural size, short of the card. */
	width: 100%;
	height: 100%;
}
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media > .mlsg-gb-card__badge {
	position: relative;
	top: auto;
	left: auto;
	z-index: 2;
	order: -1;
}
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media > .mlsg-gb-card__labels {
	position: relative;
	top: auto;
	right: auto;
	align-items: flex-start;
}
.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__body {
	flex: 1 1 auto;
	min-width: 0;
	justify-content: center;
}
/* Narrow (a phone): List stays a list — a compact row, a smaller photo
   beside the details — so it differs from Grid, which is one big card per
   row there. Only a very narrow column stacks it. */
@container (max-width: 30rem) {
	.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media { flex-basis: 38%; max-width: 38%; }
}
@container (max-width: 17.5rem) {
	.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card { flex-direction: column; }
	.mlsg-gb-halfmap__results[data-mlsg-gb-view-mode="list"] .mlsg-gb-card__media { flex-basis: auto; max-width: 100%; }
}
.mlsg-gb-halfmap__card { cursor: pointer; border-radius: var(--mlsg-gb-radius-card); transition: box-shadow 0.15s ease, transform 0.15s ease; }
.mlsg-gb-halfmap__card.is-active { box-shadow: 0 0 0 2px var(--mlsg-gb-color-primary); }
@media (max-width: 640px) { .mlsg-gb-halfmap__results { --mlsg-gb-cols: 1; } }

/* Hide Houzez search/map bleed on pages hosting our map (theme isolation) */
body.mlsg-gb-has-map .advanced-search,
body.mlsg-gb-has-map .houzez-search-form-js,
body.mlsg-gb-has-map .half-map-wrap,
body.mlsg-gb-has-map #houzez_map,
body.mlsg-gb-has-map .listing-map-wrap {
	display: none !important;
}



/* Results header bar: the count, then sort, share and the view switch.
   It answers to its own width (a container), not the screen's — the
   results column can be narrow on a wide screen too. */
.mlsg-gb-halfmap__resultshead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--mlsg-gb-space-sm) var(--mlsg-gb-space-md);
	flex-wrap: wrap;
	container-type: inline-size;
	container-name: mlsg-gb-resultshead;
}
.mlsg-gb-halfmap__resultstools {
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-space-md);
	min-width: 0;
	max-width: 100%;
}
.mlsg-gb-halfmap__sort > span { white-space: nowrap; }
.mlsg-gb-halfmap__sort { min-width: 0; }
.mlsg-gb-halfmap__sort select { min-width: 0; max-width: 100%; text-overflow: ellipsis; }
/* Narrow: the tools take their own line under the count, Share shows its
   icon only, and the sort menu gives up room before anything overflows. */
@container mlsg-gb-resultshead (max-width: 34rem) {
	.mlsg-gb-halfmap__resultstools { flex: 1 1 100%; gap: var(--mlsg-gb-space-sm); }
	.mlsg-gb-halfmap__sort { flex: 1 1 auto; }
	.mlsg-gb-halfmap__sort select { flex: 1 1 auto; }
	.mlsg-gb-halfmap__share > span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}
@container mlsg-gb-resultshead (max-width: 20rem) {
	.mlsg-gb-halfmap__sort > span {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
}
.mlsg-gb-halfmap__sort {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: var(--mlsg-gb-font-meta);
	color: var(--mlsg-gb-color-muted);
}
.mlsg-gb-halfmap__sort select {
	border: 0;
	background: transparent;
	font: inherit;
	color: var(--mlsg-gb-color-text);
	font-weight: 600;
	cursor: pointer;
}
.mlsg-gb-halfmap__viewtoggle {
	display: inline-flex;
	gap: 0.25rem;
}
.mlsg-gb-halfmap__vbtn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border: 0;
	background: transparent;
	color: var(--mlsg-gb-color-muted);
	border-radius: var(--mlsg-gb-radius-badge);
	cursor: pointer;
}
.mlsg-gb-halfmap__vbtn:hover { color: var(--mlsg-gb-color-text); }
.mlsg-gb-halfmap__vbtn.is-active { color: var(--mlsg-gb-color-primary); background: var(--mlsg-gb-color-placeholder); }

/* Price-bubble map pins (single listings) */
/* Colours come from Site Settings › Map Pins (--mlsg-pin-*), or, when
   pins match status badges, from the badge colours the pin's status class
   carries (gb-tokens.css). */
.mlsg-gb-pricepin {
	position: absolute;
	/* The script places the pin through these (mlsg-gb-halfmap.js). */
	left: var(--mlsg-pin-x, 0);
	top: var(--mlsg-pin-y, 0);
	transform: translate(-50%, -50%);
	padding: 0.3rem 0.6rem;
	border: 0;
	border-radius: 999px;
	background: var(--mlsg-pin-bg, var(--mlsg-white, #ffffff));
	color: var(--mlsg-pin-text, var(--mlsg-gb-color-text));
	font-size: 0.8rem;
	font-weight: 700;
	white-space: nowrap;
	box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3);
	cursor: pointer;
	z-index: 1;
	/* Colours only. Themes animate every property of a button (Houzez:
	   "transition: all .2s"), which made pins trail behind the map as it
	   moved; the position must follow the map instantly. */
	transition: background-color 0.15s ease, color 0.15s ease;
}
.mlsg-gb-halfmap--pins-status .mlsg-gb-pricepin {
	background: var(--mlsg-gb-badge-bg-default, var(--mlsg-gb-color-badge-bg));
	color: var(--mlsg-gb-badge-text-default, var(--mlsg-gb-color-badge-text));
}
.mlsg-gb-halfmap .mlsg-gb-pricepin:hover,
.mlsg-gb-halfmap .mlsg-gb-pricepin:focus-visible {
	background: var(--mlsg-pin-hover-bg, var(--mlsg-gb-color-primary));
	color: var(--mlsg-pin-hover-text, var(--mlsg-gb-color-on-brand));
	z-index: 2;
}
.mlsg-gb-halfmap .mlsg-gb-pricepin.is-active {
	background: var(--mlsg-pin-active-bg, var(--mlsg-gb-color-text));
	color: var(--mlsg-pin-active-text, var(--mlsg-gb-color-on-brand));
	z-index: 3;
}
.mlsg-gb-pricepin.is-bounce { animation: mlsg-gb-bounce 0.35s ease 2; }
@keyframes mlsg-gb-bounce {
	0%, 100% { transform: translate(-50%, -50%); }
	50% { transform: translate(-50%, -75%); }
}

/* The search bar: the leading filters and the buttons share a row that
   wraps; the rest open below from More Filters. */
.mlsg-gb-search__primary {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--mlsg-gb-search-row-gap) var(--mlsg-gb-search-col-gap);
	width: 100%;
}
.mlsg-gb-search__primary > .mlsg-gb-search__fields {
	flex: 1 1 20rem;
}
/* Above phones the filters and the buttons share one wrapping row: the
   filters' box steps aside (display: contents) so each filter is a flex
   item of the bar, and the buttons follow the last filter — on its line
   when they fit, starting the next line when they don't. No empty band
   opens beside a block of wrapped filters. Phones have their own layout
   further down. */
@media (min-width: 768px) {
	.mlsg-gb-search--rail .mlsg-gb-search__primary > .mlsg-gb-search__fields { display: contents; }
	/* One height per row: a tick box filter fills its row like the boxes
	   beside it; the buttons centre in it (Search Bar › Vertical
	   Alignment moves them). */
	.mlsg-gb-search--rail .mlsg-gb-search__primary { align-items: stretch; }
	.mlsg-gb-search--rail .mlsg-gb-search__primary .mlsg-gb-search__field:has(> .mlsg-gb-search__check) {
		/* Its own, so the bar's Vertical Alignment never shrinks it. */
		align-self: stretch;
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
	}
	.mlsg-gb-search--rail .mlsg-gb-search__primary .mlsg-gb-search__field > .mlsg-gb-search__check {
		flex: 1 1 auto;
		box-sizing: border-box;
	}
}
.mlsg-gb-search__primary .mlsg-gb-search__actions {
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-search-col-gap);
	margin-left: auto;
	flex: 0 0 auto;
}
.mlsg-gb-search__more-toggle,
.mlsg-gb-search__clear {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--mlsg-gb-space-xs);
	/* Style › Search Bar Buttons › Button Height sets all three. */
	height: var(--mlsg-gb-action-h, 2.75rem);
	padding: 0 0.9rem;
	border: 1px solid var(--mlsg-gb-search-field-border, var(--mlsg-gb-color-border));
	border-radius: var(--mlsg-gb-search-radius, 0.5rem);
	background:var(--mlsg-gb-search-field-bg, var(--mlsg-white));
	color: var(--mlsg-gb-color-text);
	font: inherit;
	cursor: pointer;
}
.mlsg-gb-search__more-toggle { width: var(--mlsg-gb-action-h, 2.75rem); padding: 0; }
/* Only phones have filters to move into More Filters (data-mlsg-gb-phone-more). */
.mlsg-gb-search__more-toggle--phone { display: none; }
@media (max-width: 767px) {
	.mlsg-gb-search__more-toggle--phone { display: inline-flex; }
}
.mlsg-gb-search__more-toggle.is-active { color: var(--mlsg-gb-color-primary); border-color: var(--mlsg-gb-color-primary); }
.mlsg-gb-search__panel { width: 100%; }
.mlsg-gb-search__panel[hidden] { display: none; }

/* Height-lock layout: container column, body fills, only results scroll */
.mlsg-gb-halfmap { flex-direction: column; }
.mlsg-gb-halfmap--search-top { flex-wrap: nowrap; }
.mlsg-gb-halfmap__topbar { order: 0; flex: 0 0 auto; }
.mlsg-gb-halfmap__body {
	order: 1;
	flex: 1 1 auto;
	min-height: 0;
	display: flex;
	flex-direction: row;
	width: 100%;
}
.mlsg-gb-halfmap--map-left .mlsg-gb-halfmap__body { flex-direction: row-reverse; }
.mlsg-gb-halfmap__panel {
	order: 0;
	flex: 0 0 var(--mlsg-gb-panel-basis, 42%);
	max-width: var(--mlsg-gb-panel-basis, 42%);
	height: 100%;
	min-height: 0;
	display: flex;
	flex-direction: column;
	overflow: visible;
	padding: 0;
	gap: 0;
}
.mlsg-gb-halfmap__rail,
.mlsg-gb-halfmap__resultshead,
.mlsg-gb-halfmap__pager { flex: 0 0 auto; padding: var(--mlsg-gb-space-md); }
.mlsg-gb-halfmap__results {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: 0 var(--mlsg-gb-space-md) var(--mlsg-gb-space-md);
}
.mlsg-gb-halfmap__map { height: 100%; min-height: 0; flex: 1 1 auto; }

/* Pager */
.mlsg-gb-halfmap__pager {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	justify-content: center;
	border-top: 1px solid var(--mlsg-gb-color-border);
}
.mlsg-gb-halfmap__page {
	min-width: 2.25rem;
	height: 2.25rem;
	padding: 0 0.5rem;
	border: 1px solid var(--mlsg-gb-color-border);
	border-radius: var(--mlsg-gb-radius-badge);
	background: var(--mlsg-gb-color-surface);
	color: var(--mlsg-gb-color-text);
	font: inherit;
	cursor: pointer;
}
.mlsg-gb-halfmap__page.is-active { background: var(--mlsg-gb-color-primary); color:var(--mlsg-gb-color-on-brand); border-color: var(--mlsg-gb-color-primary); }
.mlsg-gb-halfmap__page:disabled { opacity: 0.4; cursor: default; }

/* Broader footer suppression for theme/page-builder footers */
body.mlsg-gb-hide-footer [data-elementor-type="footer"],
body.mlsg-gb-hide-footer .elementor-location-footer,
body.mlsg-gb-hide-footer .fl-theme-builder-footer,
body.mlsg-gb-hide-footer .footer-wrap,
body.mlsg-gb-hide-footer .houzez-footer,
body.mlsg-gb-hide-footer [class*="footer-builder"] {
	display: none !important;
}

/* Map-left: neutralize legacy order rules; flip via body direction only */
.mlsg-gb-halfmap__body > .mlsg-gb-halfmap__panel,
.mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map { order: 0; }

/* True viewport lock (all edges) */
body.mlsg-gb-locked { overflow: hidden; }
.mlsg-gb-halfmap.is-locked {
	position: fixed;
	top: var(--mlsg-gb-lock-top, 0px);
	left: 0;
	right: 0;
	bottom: 0;
	height: auto;
	/* Under the site header, so its menus open over the map; a theme's
	   header sits on its own layer, often a low one (Houzez: 4). */
	z-index: 1;
	border-radius: 0;
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
}

/* The Filters pop-up covers the whole page, header included, while open. */
html.mlsg-gb-sheet-open .mlsg-gb-halfmap.is-locked { z-index: 100000; }

/* Share search (mlsg-gb-halfmap.js copies the link or opens the phone's
   share sheet). */
.mlsg-gb-halfmap__share {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-xs);
	min-height: 2.25rem;
	padding: 0 var(--mlsg-gb-space-sm);
	border: 0;
	border-radius: var(--mlsg-gb-radius-badge);
	background: none;
	color: var(--mlsg-gb-hm-share, var(--mlsg-gb-color-primary));
	font: inherit;
	font-size: var(--mlsg-gb-font-meta);
	font-weight: 600;
	cursor: pointer;
}
.mlsg-gb-halfmap__share:hover { text-decoration: underline; }
.mlsg-gb-halfmap__share:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: 2px; }
.mlsg-gb-halfmap__copy {
	position: fixed;
	top: 0;
	left: -9999px;
	opacity: 0;
}

/* No results */
.mlsg-gb-halfmap__empty {
	grid-column: 1 / -1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	padding: var(--mlsg-gb-space-lg) var(--mlsg-gb-space-md);
	color: var(--mlsg-gb-color-muted);
	text-align: center;
}
.mlsg-gb-halfmap__empty i { font-size: 2rem; }
.mlsg-gb-halfmap__empty p {
	margin: 0;
	max-width: 28rem;
	font-size: 1rem;
	color: var(--mlsg-gb-color-text);
}
.mlsg-gb-halfmap__emptyclear {
	min-height: 2.5rem;
	padding: 0 var(--mlsg-gb-space-md);
	border: 1px solid var(--mlsg-gb-color-primary);
	border-radius: var(--mlsg-gb-radius-badge);
	background: none;
	color: var(--mlsg-gb-color-primary);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.mlsg-gb-halfmap__emptyclear:hover { background: var(--mlsg-gb-color-primary); color: var(--mlsg-gb-color-on-brand); }
.mlsg-gb-halfmap__emptyclear:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: 2px; }

/* "Search this area" (Search as the Map Moves off): mounted top centre in
   the map's controls, under the top row on phones. Not shown until mounted. */
.mlsg-gb-halfmap__area { display: none; }
.mlsg-gb-halfmap__area.is-mounted {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	margin: 10px;
}

/* The map's controls are handed to Google (map.controls), which moves them
   into the map a moment later. Until it has, they are still children of
   __map, unplaced; hidden there, they appear once, in place, instead of
   showing stacked and then jumping. */
.mlsg-gb-halfmap__map > .sc-draw-toolbar,
.mlsg-gb-halfmap__map > .mlsg-gb-halfmap__area,
.mlsg-gb-halfmap__map > .mlsg-gb-halfmap__toolbar,
.mlsg-gb-halfmap__map > .mlsg-ov-btn {
	position: absolute;
	visibility: hidden;
}

/* Map type and Layers as one control, Draw on its own after it
   (groupMapControls() in the script). The strip stops being one box; its
   two parts each draw their own. */
.mlsg-gb-halfmap .sc-draw-toolbar.is-grouped {
	gap: 10px;
	background: none;
	box-shadow: none;
}
.mlsg-gb-halfmap .sc-draw-toolbar.is-grouped > .mlsg-gb-halfmap__mapgroup,
.mlsg-gb-halfmap .sc-draw-toolbar.is-grouped > .sc-draw-trigger {
	border-radius: 2px;
	background: var(--mlsg-gb-layers-btn-bg, #fff);
	box-shadow: rgba( 0, 0, 0, 0.3 ) 0 1px 4px -1px;
}
.mlsg-gb-halfmap .sc-draw-toolbar.is-grouped > .sc-draw-trigger {
	border-left: 0;
}
.mlsg-gb-halfmap__mapgroup {
	display: flex;
	align-items: stretch;
}
.mlsg-gb-halfmap .mlsg-gb-halfmap__mapgroup .mlsg-ov-btn {
	margin: 0;
	border-left: 1px solid #e6e6e6;
	border-radius: 0 2px 2px 0;
	box-shadow: none;
}

/* GenieLayers on this map. The button sits in the top-left row after the
   strip (whose 10px margin is the gap before it), drawn like the map's other
   controls; it and the panel take this element's Map Layers style settings
   (--mlsg-gb-layers-*). Two classes, so a theme's map-button rules and the
   engine's own defaults give way here. */
.mlsg-gb-halfmap .mlsg-ov-btn {
	gap: 8px;
	height: 40px;
	margin: 10px 10px 10px 0;
	padding: 0 17px;
	border: 0;
	border-radius: 2px;
	background: var(--mlsg-gb-layers-btn-bg, #fff);
	box-shadow: rgba( 0, 0, 0, 0.3 ) 0 1px 4px -1px;
	color: var(--mlsg-gb-layers-btn-text, #000);
	font-family: Roboto, Arial, sans-serif;
	font-size: 18px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
}
.mlsg-gb-halfmap .mlsg-ov-btn:hover { background: var(--mlsg-gb-layers-btn-hover, #ebebeb); }
.mlsg-gb-halfmap .mlsg-ov-btn:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: -2px; }
.mlsg-gb-halfmap .mlsg-ov-btn__dot { background: var(--mlsg-gb-layers-accent, var(--mlsg-gb-color-primary)); }
.mlsg-gb-halfmap .mlsg-ov-panel {
	width: var(--mlsg-gb-layers-panel-width, 15rem);
	max-width: calc(100vw - 2rem);
	background: var(--mlsg-gb-layers-panel-bg, var(--mlsg-gb-color-surface));
	color: var(--mlsg-gb-layers-panel-text, var(--mlsg-gb-color-text));
	font-family: inherit;
	font-size: 0.9375rem;
	line-height: 1.4;
}
.mlsg-gb-halfmap .mlsg-ov-panel .mlsg-ov-panel__heading {
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	color: var(--mlsg-gb-layers-panel-muted, var(--mlsg-gb-color-muted));
}
.mlsg-gb-halfmap .mlsg-ov-panel .mlsg-ov-accordion__hd,
.mlsg-gb-halfmap .mlsg-ov-panel .mlsg-ov-row__label {
	color: inherit;
	font-family: inherit;
	font-size: 0.9375rem;
	font-weight: 500;
}
.mlsg-gb-halfmap .mlsg-ov-panel input[type="checkbox"] {
	margin: 0;
	accent-color: var(--mlsg-gb-layers-accent, var(--mlsg-gb-color-primary));
}
.mlsg-gb-halfmap__areabtn,
.mlsg-gb-halfmap__mswitch {
	display: inline-flex;
	align-items: center;
	gap: var(--mlsg-gb-space-sm);
	min-height: 40px;
	padding: 0 var(--mlsg-gb-space-md);
	border: 0;
	border-radius: 999px;
	background: var(--mlsg-gb-hm-btn-bg, var(--mlsg-gb-color-text));
	color: var(--mlsg-gb-hm-btn-text, var(--mlsg-gb-color-surface));
	box-shadow: var(--mlsg-gb-shadow-menu);
	font: inherit;
	font-size: var(--mlsg-gb-font-meta);
	font-weight: 600;
	cursor: pointer;
}
.mlsg-gb-halfmap__areabtn[hidden] { display: none; }
.mlsg-gb-halfmap__areabtn:focus-visible,
.mlsg-gb-halfmap__mswitch:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: 2px; }

/* Phones. The list and the map either stack (map above or below, the map
   taking --mlsg-gb-hm-mobile-map of the height) or take turns, swapped by
   the floating switch. Taking turns, the hidden one keeps its size, so the
   map can still measure itself and search the area it shows. */
.mlsg-gb-halfmap__mswitch { display: none; }
@media (max-width: 767px) {
	.mlsg-gb-halfmap { position: relative; }
	.mlsg-gb-halfmap__body,
	.mlsg-gb-halfmap--map-left .mlsg-gb-halfmap__body { flex-direction: column; }
	.mlsg-gb-halfmap__body > .mlsg-gb-halfmap__panel {
		flex: 1 1 auto;
		max-width: 100%;
		width: 100%;
		min-height: 0;
	}
	.mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map {
		flex: 0 0 var(--mlsg-gb-hm-mobile-map, 45%);
		width: 100%;
	}
	.mlsg-gb-halfmap--m-map-top .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map { order: -1; }

	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__body { position: relative; }
	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__panel,
	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map {
		position: absolute;
		inset: 0;
		height: auto;
	}
	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map { visibility: hidden; }
	.mlsg-gb-halfmap--m-toggle.is-m-map .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__map { visibility: visible; }
	.mlsg-gb-halfmap--m-toggle.is-m-map .mlsg-gb-halfmap__body > .mlsg-gb-halfmap__panel { visibility: hidden; }

	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__mswitch {
		display: inline-flex;
		position: absolute;
		left: 50%;
		bottom: var(--mlsg-gb-space-lg);
		z-index: 5;
		transform: translateX(-50%);
	}
	.mlsg-gb-halfmap__mswitch-map,
	.mlsg-gb-halfmap__mswitch-list { display: inline-flex; align-items: center; gap: var(--mlsg-gb-space-sm); }
	.mlsg-gb-halfmap__mswitch-list,
	.mlsg-gb-halfmap.is-m-map .mlsg-gb-halfmap__mswitch-map { display: none; }
	.mlsg-gb-halfmap.is-m-map .mlsg-gb-halfmap__mswitch-list { display: inline-flex; }
	/* The page numbers follow the last result, inside the list
	   (mlsg-gb-halfmap.js placePager()), spanning every column. */
	.mlsg-gb-halfmap__results > .mlsg-gb-halfmap__pager {
		grid-column: 1 / -1;
		padding-left: 0;
		padding-right: 0;
	}
	/* Room under the last card for the floating switch. */
	.mlsg-gb-halfmap--m-toggle .mlsg-gb-halfmap__pager { padding-bottom: 5rem; }
}

/* The page stays put while the search fills the screen (bindFill). */
html.mlsg-gb-locked,
html.mlsg-gb-sheet-open {
	overflow: hidden;
}

/* Filters badge and phone label: hidden unless used. */
.mlsg-gb-search__more-toggle { position: relative; }
.mlsg-gb-search__more-label { display: none; }
.mlsg-gb-search__badge {
	position: absolute;
	top: -0.5rem;
	right: -0.5rem;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.3rem;
	border-radius: 999px;
	background: var(--mlsg-gb-color-primary);
	color: var(--mlsg-gb-color-on-brand);
	font-size: var(--mlsg-gb-font-badge);
	font-weight: 600;
	line-height: 1.25rem;
	text-align: center;
}
.mlsg-gb-search__badge[hidden] { display: none; }

/* The pop-up's heading and buttons belong to phones; elsewhere the panel is
   the plain row of filters below the bar. */
.mlsg-gb-search__sheet-head,
.mlsg-gb-search__sheet-foot { display: none; }

@media (max-width: 767px) {
	/* The bar: keyword, then Filters and an icon-only Search, on one line. */
	.mlsg-gb-search--rail .mlsg-gb-search__primary { flex-wrap: nowrap; align-items: center; }
	.mlsg-gb-search--rail .mlsg-gb-search__primary > .mlsg-gb-search__fields { flex: 1 1 auto; min-width: 0; }
	.mlsg-gb-search--rail .mlsg-gb-search__primary .mlsg-gb-search__actions { flex-wrap: nowrap; margin-left: 0; }
	.mlsg-gb-search--rail .mlsg-gb-search__clear { display: none; }
	.mlsg-gb-search--rail .mlsg-gb-search__submit-label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.mlsg-gb-search--rail .mlsg-gb-search__more-toggle {
		width: auto;
		gap: var(--mlsg-gb-space-xs);
		padding: 0 var(--mlsg-gb-space-sm);
	}
	.mlsg-gb-search--rail .mlsg-gb-search__more-label { display: inline; }


}

/* A narrow map (a phone, or a tablet's half of the screen): the top row
   holds icons only, so Map, Draw and Layers fit beside previous / next.
   Measured on the map's own width. The words stay for screen readers. */
.mlsg-gb-halfmap__map {
	container-type: inline-size;
	container-name: mlsg-gb-map;
}
@container mlsg-gb-map (max-width: 36rem) {
	.mlsg-gb-halfmap .sc-draw-trigger > span,
	.mlsg-gb-halfmap .mlsg-ov-btn__label {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
		white-space: nowrap;
	}
	.mlsg-gb-halfmap .sc-draw-trigger__caret { display: none; }
	.mlsg-gb-halfmap .sc-draw-trigger,
	.mlsg-gb-halfmap .mlsg-ov-btn { padding: 0 12px; }
	.mlsg-gb-halfmap .mlsg-gb-halfmap__area.is-mounted { margin: 0 10px; }
}

/* The filters pop-up: centred over a dimmed page. On phones always (the
   panel becomes it); on every screen when Extra Filters Open In is a
   pop-up, at 6:4 there, its filters in groups. */
.mlsg-gb-search__panel.is-sheet {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--mlsg-gb-space-md);
	background: var(--mlsg-gb-sheet-backdrop, var(--mlsg-gb-color-scrim));
}
.mlsg-gb-search__panel.is-sheet[hidden] { display: none; }
/* Opened in the browser's top layer (a popover): undo the browser's own
   popover box so the pop-up looks the same either way. */
.mlsg-gb-search__panel.is-sheet[popover] {
	width: auto;
	height: auto;
	max-width: none;
	max-height: none;
	margin: 0;
	border: 0;
	overflow: visible;
	color: inherit;
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet {
	display: flex;
	flex-direction: column;
	width: var(--mlsg-gb-sheet-width, min(60rem, 100%));
	max-width: 100%;
	aspect-ratio: 6 / 4;
	max-height: 88vh;
	max-height: 88dvh;
	border-radius: var(--mlsg-gb-sheet-radius, 1rem);
	background: var(--mlsg-gb-color-surface);
	box-shadow: var(--mlsg-gb-shadow-modal);
	overflow: hidden;
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-head,
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-foot {
	display: flex;
	align-items: center;
	gap: var(--mlsg-gb-space-md);
	padding: 0.875rem 1.5rem;
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-head {
	justify-content: space-between;
	border-bottom: 1px solid var(--mlsg-gb-color-border);
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-foot {
	border-top: 1px solid var(--mlsg-gb-color-border);
}
.mlsg-gb-search__panel .mlsg-gb-search__sheet-title {
	margin: 0;
	font-family: inherit;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--mlsg-gb-color-text);
}
.mlsg-gb-search__sheet-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--mlsg-gb-color-placeholder);
	color: var(--mlsg-gb-color-text);
	cursor: pointer;
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet > .mlsg-gb-search__fields {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	padding: var(--mlsg-gb-space-md);
}
/* A plain list of filters (no groups) runs one per line. */
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet > .mlsg-gb-search__fields > .mlsg-gb-search__field {
	flex: 1 1 100%;
}

/* The pop-up's filters, as designed (GB_HalfMap_Render::popup_layout()):
   two columns of cells, a row at a time, so the two sides of a row line up;
   Location, Property type and Home type take the whole row. Groups lay
   their filters out stacked, in pairs (min / max), three across, or as a
   tick list. */
.mlsg-gb-search__groups { display: block; }
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__groups {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	align-content: start;
	align-items: start;
	gap: 1.75rem 2rem;
	padding: 1.75rem 2rem;
}
.mlsg-gb-search__cell {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
	min-width: 0;
}
/* --mlsg-gb-sheet-wide: one when the pop-up is set to one column. */
.mlsg-gb-search__cell--wide { grid-column: span var(--mlsg-gb-sheet-wide, 2); }
.mlsg-gb-search__cell--full { grid-column: 1 / -1; }
/* Two classes on the headings: the theme kit styles every h2 / h3
   (".elementor-kit-N h3" — a class and an element), which drew them at
   heading size. */
.mlsg-gb-search__panel .mlsg-gb-search__group-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.75rem;
	font-family: inherit;
	line-height: 1.3;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--mlsg-gb-color-muted);
}
.mlsg-gb-search__group-icon {
	flex: none;
	width: 1.125em;
	text-align: center;
}
.mlsg-gb-search__group .mlsg-gb-search__fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
	padding: 0;
	overflow: visible;
}
.mlsg-gb-search__group .mlsg-gb-search__fields--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mlsg-gb-search__group .mlsg-gb-search__fields--triple { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* After the rail's field rule (same weight): grid cells, not a wrapping row. */
.mlsg-gb-search__group .mlsg-gb-search__fields > .mlsg-gb-search__field {
	min-width: 0;
	max-width: none;
}
.mlsg-gb-search__group .mlsg-gb-search__fields > .mlsg-gb-search__field--full { grid-column: 1 / -1; }
/* One height for every box and button row, so the two sides of a row match. */
.mlsg-gb-search__group .mlsg-gb-search__input {
	min-height: 3rem;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}
.mlsg-gb-search.mlsg-gb-search--rail .mlsg-gb-search__group .mlsg-gb-search__seg { min-height: 3rem; }
.mlsg-gb-search.mlsg-gb-search--rail .mlsg-gb-search__group .mlsg-gb-search__pills { gap: 0.625rem; }
.mlsg-gb-search.mlsg-gb-search--rail .mlsg-gb-search__group .mlsg-gb-search__pill > span {
	display: inline-flex;
	align-items: center;
	min-height: 2.625rem;
	padding: 0 1.125rem;
}
/* Listing: a plain tick row, as tall as the boxes beside it. */
.mlsg-gb-search__group .mlsg-gb-search__fields--list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	min-height: 3rem;
}
.mlsg-gb-search__fields--list .mlsg-gb-search__field .mlsg-gb-search__check {
	min-height: 0;
	padding: 0.125rem 0;
	border: 0;
	background: none;
	font-size: 0.9375rem;
	font-weight: 400;
}
.mlsg-gb-search__sheet-clear {
	border: 0;
	background: none;
	color: var(--mlsg-gb-color-primary);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
}
.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-foot { justify-content: space-between; }
.mlsg-gb-search__sheet-apply {
	flex: 0 0 auto;
	padding: 0 1.75rem;
	min-height: 3rem;
	border: 0;
	border-radius: var(--mlsg-gb-radius-badge);
	background: var(--mlsg-gb-sheet-apply-bg, var(--mlsg-gb-search-btn-bg, var(--mlsg-gb-color-primary)));
	color: var(--mlsg-gb-sheet-apply-text, var(--mlsg-gb-search-btn-text, var(--mlsg-gb-color-on-brand)));
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.mlsg-gb-search__sheet-close:focus-visible,
.mlsg-gb-search__sheet-clear:focus-visible,
.mlsg-gb-search__sheet-apply:focus-visible { outline: 2px solid var(--mlsg-gb-color-primary); outline-offset: 2px; }

/* Pop-up layout: the Filters button names itself on every screen. */
.mlsg-gb-search--popup .mlsg-gb-search__more-toggle {
	width: auto;
	gap: var(--mlsg-gb-space-xs);
	padding: 0 var(--mlsg-gb-space-md);
}
.mlsg-gb-search--popup .mlsg-gb-search__more-label { display: inline; }

@media (max-width: 767px) {
	.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet-apply { flex: 1 1 auto; }
	/* Phones: the pop-up takes the width it is given, as tall as it needs. */
	.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__sheet {
		width: var(--mlsg-gb-sheet-width, 100%);
		aspect-ratio: auto;
	}
	/* Phones: one column. Sections keep their full space between them;
	   the boxes inside a section sit closer. */
	.mlsg-gb-search__panel.is-sheet .mlsg-gb-search__groups {
		grid-template-columns: minmax(0, 1fr);
		padding: 1.25rem;
	}
	.mlsg-gb-search__cell--wide { grid-column: auto; }
	.mlsg-gb-search__group .mlsg-gb-search__fields--triple { grid-template-columns: minmax(0, 1fr); }
	.mlsg-gb-search__group .mlsg-gb-search__fields { gap: 0.625rem; }
	/* Pop-up layout: the pop-up holds every filter, so the bar keeps just
	   its first. */
	.mlsg-gb-search--popup [data-mlsg-gb-bar-fields] > .mlsg-gb-search__field:not(:first-child) { display: none; }
}

/* Style › Search Bar Buttons. Each button grows only when "Fill the row"
   is chosen (--mlsg-gb-action-grow). */
.mlsg-gb-search__primary .mlsg-gb-search__actions > * { flex-grow: var(--mlsg-gb-action-grow, 0); }
.mlsg-gb-search.mlsg-gb-search--rail .mlsg-gb-search__submit { min-height: var(--mlsg-gb-action-h, 2.875rem); }

/* Clear: its icon shows only when asked for. Weighted above Font
   Awesome's own ".fas { display: inline-block }", which loads later. */
.mlsg-gb-search .mlsg-gb-search__clear .mlsg-gb-search__clear-icon { display: none; }
.mlsg-gb-clearbtn-both .mlsg-gb-search .mlsg-gb-search__clear .mlsg-gb-search__clear-icon,
.mlsg-gb-clearbtn-icon .mlsg-gb-search .mlsg-gb-search__clear .mlsg-gb-search__clear-icon { display: inline-block; }
.mlsg-gb-clearbtn-icon .mlsg-gb-search__clear-label { display: none; }
.mlsg-gb-clearbtn-icon .mlsg-gb-search--rail .mlsg-gb-search__clear { width: var(--mlsg-gb-action-h, 2.75rem); padding: 0; }

/* Filters: icon only, or icon and name, on every screen. */
.mlsg-gb-filtersbtn-text .mlsg-gb-search--rail .mlsg-gb-search__more-toggle {
	width: auto;
	padding: 0 var(--mlsg-gb-space-md);
}
.mlsg-gb-filtersbtn-text .mlsg-gb-search--rail .mlsg-gb-search__more-label { display: inline; }
.mlsg-gb-filtersbtn-icon .mlsg-gb-search--rail .mlsg-gb-search__more-toggle {
	width: var(--mlsg-gb-action-h, 2.75rem);
	padding: 0;
}
.mlsg-gb-filtersbtn-icon .mlsg-gb-search--rail .mlsg-gb-search__more-label { display: none; }

/* Search: icon only, or the name only (phones keep the icon, which is all
   they show). */
.mlsg-gb-searchbtn-icon .mlsg-gb-search--rail .mlsg-gb-search__submit-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.mlsg-gb-searchbtn-icon .mlsg-gb-search.mlsg-gb-search--rail .mlsg-gb-search__submit { padding-left: 0; padding-right: 0; min-width: var(--mlsg-gb-action-h, 2.875rem); }
@media (min-width: 768px) {
	.mlsg-gb-searchbtn-text .mlsg-gb-search--rail .mlsg-gb-search__submit > i,
	.mlsg-gb-searchbtn-text .mlsg-gb-search--rail .mlsg-gb-search__submit > svg { display: none; }
}
