/*
 * Balfour Core front-end styles for the custom widgets.
 * Brand colors follow Elementor Global Colors through CSS variables; widget
 * controls override --mb-accent / --mb-radius per widget.
 */
:root {
	--mb-navy: var(--e-global-color-primary, #013778);
	--mb-green: var(--e-global-color-secondary, #055E28);
	--mb-ink: var(--e-global-color-text, #1A1A1A);
	--mb-red: var(--e-global-color-accent, #B40202);
	--mb-bright: var(--e-global-color-mb_bright, #00A63D);
	--mb-muted: var(--e-global-color-mb_muted, #666666);
	--mb-line: var(--e-global-color-mb_border, #DDDDDD);
	--mb-line-2: var(--e-global-color-mb_line, #CCCCCC);
	--mb-light: var(--e-global-color-mb_light, #F1F1F1);
	--mb-tint: var(--e-global-color-mb_tint, #EEF3FA);
	--mb-display: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
	--mb-ui: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;
}
body { -webkit-font-smoothing: antialiased; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.balfour-placeholder { padding: 24px; border: 2px dashed var(--mb-line-2); border-radius: 14px; color: var(--mb-muted); text-align: center; font-family: var(--mb-ui); }
.mb-icon { flex: 0 0 auto; }

/* ---------- Buttons ---------- */
.mb-btn { --mb-accent: var(--mb-navy); display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 22px; border: 0; border-radius: 999px; background: var(--mb-accent); color: #fff !important; font: 600 15px/1 var(--mb-ui); text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s, box-shadow .15s; }
.mb-btn:hover { background: var(--mb-green); }
.mb-btn--ghost { background: transparent; color: var(--mb-accent, var(--mb-navy)) !important; box-shadow: inset 0 0 0 1.5px currentColor; }
.mb-btn--ghost:hover { background: var(--mb-tint); }
.mb-btn--block { width: 100%; }
.mb-iconbtn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--mb-line); background: #fff; color: var(--mb-ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.mb-iconbtn:hover, .mb-iconbtn.is-done { background: var(--mb-tint); color: var(--mb-navy); }

/* ---------- Badges & status ---------- */
.mb-badge { display: inline-flex; align-items: center; padding: 6px 12px; border-radius: 999px; font: 700 12px/1 var(--mb-ui); letter-spacing: .02em; background: #fff; color: var(--mb-navy); }
.mb-badge.is-sale { background: var(--mb-navy); color: #fff; }
.mb-badge.is-lease { background: #fff; color: var(--mb-navy); }
.mb-badge.is-business { background: var(--mb-red); color: #fff; }
.mb-badge.is-status { background: var(--mb-ink); color: #fff; }
.mb-badge--outline { box-shadow: inset 0 0 0 1.5px var(--mb-navy); background: transparent; color: var(--mb-navy); }
.mb-badge--outline.is-business { box-shadow: inset 0 0 0 1.5px var(--mb-red); color: var(--mb-red); background: transparent; }
.mb-status { display: inline-flex; align-items: center; gap: 6px; font: 600 14px/1 var(--mb-ui); color: var(--mb-green); }
.mb-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--mb-bright); }
.mb-status.is-under_contract { color: #8a5a00; } .mb-status.is-under_contract i { background: #d89000; }
.mb-status.is-closed { color: var(--mb-muted); } .mb-status.is-closed i { background: var(--mb-muted); }

/* ---------- Homepage search ---------- */
.mb-hsearch { --mb-accent: var(--mb-navy); display: flex; flex-direction: column; gap: 12px; font-family: var(--mb-ui); }
.mb-hsearch__tabs { display: flex; gap: 6px; border: 0; margin: 0; padding: 0; flex-wrap: wrap; }
.mb-hsearch__tabs label { cursor: pointer; }
.mb-hsearch__tabs input { position: absolute; opacity: 0; }
.mb-hsearch__tabs span { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--mb-line-2); font-weight: 600; font-size: 14px; color: var(--mb-ink); }
.mb-hsearch__tabs input:checked + span { background: var(--mb-accent); border-color: var(--mb-accent); color: #fff; }
.mb-hsearch__tabs input:focus-visible + span { outline: 2px solid var(--mb-accent); outline-offset: 2px; }
.mb-hsearch__bar { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 999px; padding: 8px 8px 8px 28px; box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 24px 48px -24px rgba(1,55,120,.35); }
.mb-hsearch__field { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mb-hsearch__field--q { flex: 1 1 auto; }
.mb-hsearch__field--type { padding: 0 18px; border-left: 1px solid var(--mb-line); }
.mb-hsearch__field span { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--mb-muted); }
.mb-hsearch__field input, .mb-hsearch__field select { border: 0 !important; outline: 0; padding: 0 !important; background: transparent !important; font: 400 18px/1.4 var(--mb-ui); color: var(--mb-ink); box-shadow: none !important; min-height: 0; }
.mb-hsearch__go { flex: 0 0 60px; width: 60px; height: 60px; border-radius: 50%; border: 0; background: var(--mb-accent); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.mb-hsearch__go:hover { background: var(--mb-green); }
@media (max-width: 767px) {
	.mb-hsearch__bar { padding-left: 18px; }
	.mb-hsearch__field--type { display: none; }
	.mb-hsearch__go { flex-basis: 48px; width: 48px; height: 48px; }
	.mb-hsearch__tabs label { flex: 1; } .mb-hsearch__tabs span { width: 100%; justify-content: center; padding: 0 8px; }
}

/* ---------- Search page ---------- */
.mb-search { --mb-accent: var(--mb-navy); --mb-radius: 20px; font-family: var(--mb-ui); color: var(--mb-ink); }
.mb-filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 0 0 16px; }
.mb-filters__q { flex: 0 1 320px; display: flex; align-items: center; gap: 8px; height: 48px; padding: 0 6px 0 18px; background: #fff; border: 1px solid var(--mb-line-2); border-radius: 999px; }
.mb-filters__q input { flex: 1; min-width: 0; border: 0 !important; outline: 0; background: transparent !important; padding: 0 !important; font: 16px var(--mb-ui); box-shadow: none !important; }
.mb-filters__q button { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--mb-accent); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.mb-pill { position: relative; display: inline-flex; align-items: center; height: 48px; border-radius: 999px; border: 1px solid var(--mb-line-2); background: #fff; font: 600 15px var(--mb-ui); color: var(--mb-ink); }
.mb-pill.is-on { border: 1.5px solid var(--mb-accent); background: var(--mb-tint); color: var(--mb-accent); }
.mb-pill--select select { appearance: none; -webkit-appearance: none; height: 100%; border: 0 !important; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231A1A1A' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center !important; padding: 0 40px 0 18px !important; font: inherit; color: inherit; cursor: pointer; border-radius: 999px; box-shadow: none !important; }
.mb-pill--panel summary { list-style: none; display: flex; align-items: center; gap: 8px; height: 100%; padding: 0 18px; cursor: pointer; }
.mb-pill--panel summary::-webkit-details-marker { display: none; }
.mb-panel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 20; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 280px; padding: 16px; background: #fff; border-radius: 16px; box-shadow: 0 20px 40px -16px rgba(0,0,0,.25); }
.mb-panel label { display: flex; flex-direction: column; gap: 4px; font-size: 14px; font-weight: 600; color: var(--mb-muted); }
.mb-panel input { height: 44px; border: 1px solid var(--mb-line-2) !important; border-radius: 10px !important; padding: 0 10px !important; font: 15px var(--mb-ui); }
.mb-panel .mb-btn { grid-column: span 2; min-height: 44px; }
.mb-viewtoggle { margin-left: auto; display: flex; gap: 4px; padding: 4px; background: #fff; border: 1px solid var(--mb-line-2); border-radius: 999px; }
.mb-viewtoggle button { display: inline-flex; align-items: center; gap: 6px; height: 38px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--mb-ink); font: 600 14px var(--mb-ui); cursor: pointer; }
.mb-viewtoggle button[aria-pressed="true"] { background: var(--mb-accent); color: #fff; }

.mb-search__body { display: flex; gap: 0; align-items: flex-start; border-top: 1px solid var(--mb-line); }
.mb-map { background: #eef1f4; z-index: 1; }
.mb-search .mb-map { flex: 1 1 52%; position: sticky; top: 0; height: calc(100vh - 0px); min-height: 520px; max-height: 920px; }
.mb-results { flex: 1 1 48%; min-width: 0; padding: 24px 0 48px 28px; }
.mb-search[data-view="list"] .mb-map { display: none; }
.mb-search[data-view="list"] .mb-results { padding-left: 0; }
.mb-search[data-view="list"] .mb-grid { grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr)); }
.mb-results__head { display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; }
.mb-results__title { margin: 0; font: 600 36px/1.05 var(--mb-display); color: var(--mb-ink); }
.mb-results__meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 15px; color: var(--mb-muted); }
.mb-results__meta b { color: var(--mb-ink); }
.mb-sort { display: flex; align-items: center; gap: 6px; }
.mb-sort select { border: 0 !important; background: transparent !important; font: 600 15px var(--mb-ui); color: var(--mb-green); padding: 0 !important; box-shadow: none !important; }
.mb-empty { padding: 40px 24px; background: #fff; border-radius: var(--mb-radius); text-align: center; color: var(--mb-muted); }
.mb-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 28px; flex-wrap: wrap; }
.mb-pagination .page-numbers { min-width: 44px; height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--mb-line-2); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; color: var(--mb-ink); text-decoration: none; background: #fff; }
.mb-pagination .current { background: var(--mb-accent); border-color: var(--mb-accent); color: #fff; }
@media (max-width: 1024px) {
	.mb-search .mb-map { position: relative; height: 420px; min-height: 0; flex-basis: 100%; }
	.mb-search__body { flex-wrap: wrap; }
	.mb-results { flex-basis: 100%; padding-left: 0; }
}
@media (max-width: 767px) {
	.mb-filters__q { flex-basis: 100%; }
	.mb-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 12px; scrollbar-width: none; }
	.mb-filters__q { flex: 0 0 auto; width: 100%; }
	.mb-filters { flex-wrap: wrap; }
	.mb-pill { height: 42px; }
	.mb-viewtoggle { height: auto; align-items: center; box-sizing: border-box; position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%); z-index: 60; background: var(--mb-ink); border-color: var(--mb-ink); box-shadow: 0 12px 26px rgba(0,0,0,.35); margin: 0; }
	.mb-viewtoggle button { color: #fff; }
	.mb-viewtoggle button[aria-pressed="true"] { background: #fff; color: var(--mb-ink); }
	.mb-search .mb-map { height: 70vh; }
	.mb-results__title { font-size: 26px; }
}

/* ---------- Cards ---------- */
.mb-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: 22px; }
.mb-grid--row { --mb-cols: 3; grid-template-columns: repeat(var(--mb-cols), minmax(0, 1fr)); }
@media (max-width: 1024px) { .mb-grid--row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .mb-grid--row { grid-template-columns: 1fr; } }
.mb-card { --mb-radius: 20px; position: relative; display: flex; flex-direction: column; gap: 12px; height: 100%; min-width: 0; padding: 10px 10px 14px; background: #fff; border-radius: var(--mb-radius); transition: box-shadow .2s, transform .2s; font-family: var(--mb-ui); color: var(--mb-ink); }
.mb-card:hover { box-shadow: 0 0 0 2px var(--mb-accent, var(--mb-navy)), 0 18px 36px -20px rgba(1,55,120,.4); }
.mb-card__link { position: absolute; inset: 0; z-index: 2; border-radius: inherit; }
.mb-card__link:focus-visible { outline: 3px solid var(--mb-accent, var(--mb-navy)); outline-offset: 2px; }
/* Photo frame: one fixed 3:2 box for every card, photos always cover it. */
.mb-card__media { position: relative; z-index: 3; flex: none; aspect-ratio: 3 / 2; height: auto; border-radius: calc(var(--mb-radius) - 8px); overflow: hidden; background: var(--mb-light); isolation: isolate; }
.mb-card__track { position: absolute; inset: 0; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; outline: none; }
.mb-card__track::-webkit-scrollbar { display: none; }
.mb-card__slide { flex: 0 0 100%; width: 100%; height: 100%; scroll-snap-align: start; scroll-snap-stop: always; display: block; overflow: hidden; background: var(--mb-light); }
html body .mb-card__media img, html body .mb-card__slide img { display: block; width: 100%; height: 100% !important; max-width: none; object-fit: cover; object-position: center; border-radius: 0; transition: transform .4s; }
.mb-card:hover .mb-card__slide img { transform: scale(1.03); }
.mb-card__noimg { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--mb-line-2); }
.mb-card__media .mb-badge { position: absolute; z-index: 4; left: 12px; bottom: 12px; pointer-events: none; }
.mb-card__media .mb-badge.is-status { left: auto; right: 12px; }
.mb-card__dots { position: absolute; z-index: 4; left: 50%; bottom: 16px; transform: translateX(-50%); display: flex; gap: 5px; pointer-events: none; }
.mb-card__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(0,0,0,.08); transition: background-color .2s, transform .2s; }
.mb-card__dots i.is-on { background: #fff; transform: scale(1.25); }
html body button.mb-card__nav { position: absolute; z-index: 4; top: 50%; width: 34px; height: 34px; min-height: 0; margin-top: -17px; padding: 0; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: var(--mb-ink); box-shadow: 0 2px 10px rgba(0,0,0,.18); cursor: pointer; opacity: 0; transition: opacity .2s, transform .2s; }
html body button.mb-card__nav:hover, html body button.mb-card__nav:focus-visible { background: #fff; color: var(--mb-navy); transform: scale(1.06); }
html body button.mb-card__nav:disabled { opacity: 0 !important; pointer-events: none; }
.mb-card__nav.is-prev { left: 10px; } .mb-card__nav.is-next { right: 10px; }
.mb-card__nav.is-next .mb-icon { transform: rotate(180deg); }
.mb-card:hover .mb-card__nav, .mb-card__nav:focus-visible { opacity: 1; }
@media (hover: none) { html body button.mb-card__nav { display: none; } }
/* Body: fixed rhythm so every card in a row lines up, agent pinned to the bottom. */
.mb-card__body { flex: 1; min-width: 0; padding: 0 6px; display: flex; flex-direction: column; gap: 4px; }
.mb-card__price { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; min-height: 30px; }
.mb-price { font: 600 26px/1.1 var(--mb-display); color: var(--mb-ink); white-space: nowrap; }
.mb-price small { font-size: 16px; }
.mb-card__note { font-size: 14px; color: var(--mb-muted); white-space: nowrap; }
.mb-card__facts, .mb-card__address { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mb-card__facts { font-size: 15px; line-height: 1.5; }
.mb-sep { color: var(--mb-line-2); margin: 0 2px; }
.mb-card__address { font-size: 14px; line-height: 1.5; color: var(--mb-muted); }
.mb-card__agent { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid #eee; font-size: 14px; color: var(--mb-muted); }
.mb-card__price + .mb-card__facts { margin-top: 2px; }
.mb-card__address { margin-bottom: 8px; }
.mb-card__agentname { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mb-card__avatar { flex: none; width: 34px; height: 34px; border-radius: 50%; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--mb-tint); color: var(--mb-navy); font: 600 14px var(--mb-ui); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--mb-line); }
html body .mb-card__avatar img { width: 100%; height: 100% !important; max-width: none; border-radius: 50%; object-fit: cover; object-position: 50% 20%; }

/* ---------- Map pins ---------- */
.mb-pin { background: none; border: 0; }
.mb-pin span { display: inline-block; transform: translate(-50%, -50%); padding: 7px 11px; border-radius: 999px; background: var(--mb-navy); color: #fff; font: 700 14px/1 var(--mb-ui); white-space: nowrap; box-shadow: 0 4px 12px rgba(1,55,120,.35); transition: transform .15s; }
.mb-pin.is-active span, .mb-pin:hover span { background: #fff; color: var(--mb-navy); box-shadow: 0 0 0 2px var(--mb-navy), 0 6px 16px rgba(1,55,120,.4); transform: translate(-50%, -50%) scale(1.08); }
.mb-popup .leaflet-popup-content-wrapper { padding: 0; border-radius: 16px; overflow: hidden; }
.mb-popup .leaflet-popup-content { margin: 0; width: 250px !important; }
.mb-popcard { display: flex; flex-direction: column; text-decoration: none; color: var(--mb-ink) !important; font-family: var(--mb-ui); }
.mb-popcard img { width: 100%; height: 120px; object-fit: cover; }
.mb-popcard span { padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.mb-popcard b { font-size: 16px; }
.mb-popcard small { font-size: 14px; color: var(--mb-muted); }

/* ---------- Gallery ---------- */
.mb-gallery { --mb-gallery-h: 470px; --mb-radius: 18px; position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, calc((var(--mb-gallery-h) - 10px) / 2)); gap: 10px; }
.mb-gallery__item { padding: 0; border: 0; background: var(--mb-light); border-radius: var(--mb-radius); overflow: hidden; cursor: zoom-in; }
.mb-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
.mb-gallery__item:hover img { transform: scale(1.03); }
.mb-gallery__item:first-child { grid-column: span 2; grid-row: span 2; }
.mb-gallery--n1 { grid-template-columns: 1fr; } .mb-gallery--n1 .mb-gallery__item:first-child { grid-column: span 1; }
.mb-gallery--n2 .mb-gallery__item:nth-child(2) { grid-column: span 2; grid-row: span 2; }
.mb-gallery--n3 .mb-gallery__item:nth-child(n+2) { grid-column: span 2; }
.mb-gallery--n4 .mb-gallery__item:nth-child(4) { grid-column: span 2; }
.mb-gallery__all { position: absolute; right: 14px; bottom: 14px; height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.15); font: 600 14px var(--mb-ui); color: var(--mb-ink); cursor: pointer; }
.mb-gallery__track { display: contents; }
.mb-gallery__item:nth-child(n+6) { display: none; }
html body .mb-gallery__item img { width: 100%; height: 100% !important; max-width: none; object-fit: cover; object-position: center; border-radius: 0; }
.mb-gallery__count, .mb-gallery__dots { display: none; }
@media (max-width: 767px) {
	/* Mobile: every photo in a swipe carousel. */
	.mb-gallery { display: block; height: auto; }
	.mb-gallery__track { display: flex; aspect-ratio: 4 / 3; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: var(--mb-radius); -webkit-overflow-scrolling: touch; }
	.mb-gallery__track::-webkit-scrollbar { display: none; }
	html body button.mb-gallery__item, .mb-gallery__item:nth-child(n) { display: block; flex: 0 0 100%; width: 100%; height: 100%; border-radius: 0; scroll-snap-align: start; scroll-snap-stop: always; cursor: pointer; }
	.mb-gallery__item:hover img { transform: none; }
	html body button.mb-gallery__all { display: none; }
	.mb-gallery__count { display: inline-flex; align-items: center; position: absolute; right: 12px; bottom: 12px; height: 30px; padding: 0 12px; border-radius: 999px; background: rgba(26,26,26,.72); color: #fff; font: 600 14px/1 var(--mb-ui); pointer-events: none; font-variant-numeric: tabular-nums; }
	.mb-gallery__dots { display: flex; position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); max-width: calc(100% - 140px); flex-wrap: wrap; justify-content: center; gap: 5px; pointer-events: none; }
	.mb-gallery__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.55); box-shadow: 0 0 0 1px rgba(0,0,0,.08); transition: background-color .2s, transform .2s; }
	.mb-gallery__dots i.is-on { background: #fff; transform: scale(1.25); }
}
.mb-lightbox { position: fixed; inset: 0; z-index: 99999; background: rgba(10,15,25,.94); display: flex; align-items: center; justify-content: center; }
.mb-lightbox figure { margin: 0; max-width: 92vw; max-height: 86vh; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.mb-lightbox__stage { display: flex; align-items: center; justify-content: center; touch-action: pan-y; will-change: transform; }
html body .mb-lightbox img { width: auto; height: auto !important; max-width: 92vw; max-height: 80vh; object-fit: contain; border-radius: 10px; user-select: none; -webkit-user-drag: none; }
.mb-lightbox.is-single .mb-lightbox__prev, .mb-lightbox.is-single .mb-lightbox__next { display: none; }
@media (max-width: 767px) {
	.mb-lightbox figure { max-width: 100vw; }
	html body .mb-lightbox img { max-width: 100vw; max-height: 74vh; border-radius: 0; }
	html body .mb-lightbox .mb-lightbox__prev, html body .mb-lightbox .mb-lightbox__next { top: auto; bottom: 22px; width: 46px; height: 46px; }
	.mb-lightbox__close { top: 14px; right: 14px; }
}
.mb-lightbox figcaption { color: #fff; font: 500 14px var(--mb-ui); }
.mb-lightbox button { position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 0; background: rgba(255,255,255,.14); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }
.mb-lightbox__close { top: 20px; right: 20px; } .mb-lightbox__prev { left: 20px; } .mb-lightbox__next { right: 20px; }

/* ---------- Facts ---------- */
.mb-facts { --mb-accent: var(--mb-navy); display: flex; flex-direction: column; gap: 34px; font-family: var(--mb-ui); color: var(--mb-ink); }
.mb-facts__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.mb-facts__main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.mb-facts__status { display: flex; align-items: center; gap: 12px; }
.mb-facts__price { font: 600 64px/1 var(--mb-display); }
.mb-facts__price small { font-size: 28px; }
.mb-facts__title { margin: 0; font: 500 20px/1.35 var(--mb-ui); color: var(--mb-ink); }
.mb-facts__address { margin: 0; display: flex; align-items: center; gap: 6px; color: var(--mb-muted); font-size: 16px; }
.mb-facts__numbers { display: flex; gap: 36px; }
.mb-facts__numbers div { display: flex; flex-direction: column; gap: 6px; }
.mb-facts__numbers b { font: 600 40px/1 var(--mb-display); }
.mb-facts__numbers span { font-size: 14px; color: var(--mb-muted); }
.mb-chips { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 10px; }
.mb-chip { display: flex; align-items: center; gap: 12px; padding: 16px 18px; background: #fff; border-radius: 16px; font-size: 15px; }
.mb-chip .mb-icon { color: var(--mb-green); }
.mb-facts__section { display: flex; flex-direction: column; gap: 14px; }
.mb-facts__section h2 { margin: 0; font: 600 34px/1.1 var(--mb-display); color: var(--mb-ink); }
.mb-facts__desc { font-size: 18px; line-height: 1.7; color: #333; max-width: 760px; }
.mb-table { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); column-gap: 40px; font-size: 16px; }
.mb-table div { display: flex; justify-content: space-between; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--mb-line); }
.mb-table dt { color: var(--mb-muted); } .mb-table dd { margin: 0; font-weight: 600; text-align: right; }
.mb-brochure { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 26px 30px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--mb-accent); color: var(--mb-ink) !important; text-decoration: none; }
.mb-brochure b { display: block; font: 600 26px/1.15 var(--mb-display); }
.mb-brochure small { font-size: 15px; color: var(--mb-muted); }
.mb-brochure__btn { flex: 0 0 auto; height: 50px; padding: 0 22px; border-radius: 999px; background: var(--mb-accent); color: #fff; font-weight: 600; display: flex; align-items: center; }
.mb-map--single { height: 320px; border-radius: 22px; overflow: hidden; }
.mb-maplink { align-self: flex-start; font-weight: 600; }
@media (max-width: 767px) {
	.mb-facts__price { font-size: 44px; } .mb-facts__price small { font-size: 20px; }
	.mb-facts__numbers b { font-size: 26px; }
	.mb-facts__section h2 { font-size: 26px; }
	.mb-chips { grid-template-columns: 1fr 1fr; }
	.mb-chip { padding: 13px; font-size: 14px; }
	.mb-brochure { padding: 18px 20px; }
	.mb-brochure b { font-size: 20px; }
}

/* ---------- Contact card + form ---------- */
.mb-contact { --mb-accent: var(--mb-navy); display: flex; flex-direction: column; gap: 16px; padding: 28px; background: #fff; border-radius: 28px; box-shadow: 0 30px 60px -30px rgba(1,55,120,.35); font-family: var(--mb-ui); color: var(--mb-ink); }
.mb-contact.is-sticky { position: sticky; top: 24px; }
.mb-contact__agent { display: flex; align-items: center; gap: 16px; }
.mb-contact__agent img { width: 76px; height: 92px; object-fit: cover; border-radius: 12px; }
.mb-contact__agent > div { display: flex; flex-direction: column; gap: 2px; }
.mb-contact__label { font-size: 14px; color: var(--mb-muted); }
.mb-contact__name { font: 600 24px/1.15 var(--mb-display); color: var(--mb-ink) !important; text-decoration: none; }
.mb-contact__phone { font-weight: 600; color: var(--mb-green) !important; }
.mb-form { display: flex; flex-direction: column; gap: 12px; font-family: var(--mb-ui); }
.mb-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; color: var(--mb-ink); }
.mb-form input, .mb-form select, .mb-form textarea { width: 100%; min-height: 48px; border: 1px solid var(--mb-line-2) !important; border-radius: 14px !important; padding: 10px 14px !important; background: #f7f7f7 !important; font: 16px var(--mb-ui) !important; color: var(--mb-ink); box-sizing: border-box; }
.mb-form textarea { resize: vertical; }
.mb-form input:focus, .mb-form select:focus, .mb-form textarea:focus { outline: 2px solid var(--mb-accent); outline-offset: 1px; background: #fff !important; }
.mb-form .mb-btn { min-height: 54px; font-size: 16px; }
.mb-hp { position: absolute; left: -9999px; }
.mb-form__ok, .mb-form__err { margin: 0; padding: 12px 14px; border-radius: 12px; font-size: 14px; }
.mb-form__ok { background: #e7f6ec; color: var(--mb-green); } .mb-form__err { background: #fbe9e9; color: var(--mb-red); }
.mb-contact > .mb-btn--ghost { min-height: 54px; font-size: 16px; }
.mb-share { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 14px; border-top: 1px solid #eee; font-size: 14px; color: var(--mb-muted); }
.mb-share > div { display: flex; gap: 6px; }
.mb-mobilebar { display: none; }
@media (max-width: 1024px) {
	.mb-contact.is-sticky { position: static; }
	.mb-mobilebar { display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 70; padding: 12px 14px calc(12px + env(safe-area-inset-bottom)); background: #fff; border-radius: 22px 22px 0 0; box-shadow: 0 -10px 24px rgba(0,0,0,.12); }
	.mb-mobilebar .mb-btn { flex: 1; min-height: 52px; }
	.mb-mobilebar .mb-btn:last-child { flex: 1.25; }
	body.single-listing { padding-bottom: 84px; }
}

/* ---------- Agents ---------- */
.mb-agents { --mb-cols: 5; display: grid; grid-template-columns: repeat(var(--mb-cols), minmax(0, 1fr)); gap: 28px; font-family: var(--mb-ui); }
.mb-agent { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--mb-ink) !important; }
.mb-agent__photo { aspect-ratio: 3 / 4; border-radius: 14px; overflow: hidden; background: var(--mb-light); margin-bottom: 8px; }
.mb-agent__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.mb-agent:hover .mb-agent__photo img { transform: scale(1.04); }
.mb-agent__name { font: 600 22px/1.15 var(--mb-display); }
.mb-agent__meta { font-size: 14px; color: var(--mb-muted); }
.mb-profile { display: flex; gap: 48px; align-items: flex-start; flex-wrap: wrap; font-family: var(--mb-ui); color: var(--mb-ink); }
.mb-profile__photo { flex: 0 0 340px; max-width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 22px; }
.mb-profile__body { flex: 1 1 420px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.mb-eyebrow { font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--mb-green); }
.mb-profile__name { margin: 0; font: 600 56px/1.02 var(--mb-display); color: var(--mb-ink); }
.mb-profile__spec { margin: 0; font-size: 18px; color: var(--mb-muted); }
.mb-profile__contact { list-style: none; margin: 6px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.mb-profile__contact a { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; color: var(--mb-ink) !important; font-weight: 600; font-size: 15px; text-decoration: none; }
.mb-profile__contact a:hover { background: var(--mb-tint); color: var(--mb-navy) !important; }
.mb-profile__contact small { font-weight: 400; color: var(--mb-muted); }
.mb-profile__bio { font-size: 17px; line-height: 1.7; color: #333; }
.mb-profile__book { font-weight: 600; }
@media (max-width: 767px) { .mb-profile__name { font-size: 38px; } .mb-profile__photo { flex-basis: 100%; } }

/* ---------- Testimonials ---------- */
.mb-quotes { font-family: var(--mb-ui); }
.mb-quotes--grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 22px; }
.mb-quotes--grid .mb-quote { margin: 0; padding: 28px; background: #fff; border-radius: 20px; display: flex; flex-direction: column; gap: 14px; }
.mb-quotes--grid blockquote { margin: 0; font: 600 20px/1.4 var(--mb-display); color: var(--mb-ink); }
.mb-quotes--featured .mb-quote { margin: 0 auto; max-width: 1000px; text-align: center; display: flex; flex-direction: column; gap: 22px; }
.mb-quotes--featured blockquote { margin: 0; font: 600 48px/1.12 var(--mb-display); color: var(--mb-ink); text-wrap: balance; }
.mb-quote figcaption { font-size: 15px; color: var(--mb-muted); }
.mb-quote figcaption b { color: var(--mb-ink); }
@media (max-width: 767px) { .mb-quotes--featured blockquote { font-size: 28px; } }

/* ---------- Editorial lists used in Elementor sections ---------- */
.mb-servicelist .elementor-icon-list-item { border-top: 1px solid var(--mb-line-2); }

/* ---------- Beat the Elementor kit's global <button> style (same specificity, loaded later) ---------- */
body .mb-viewtoggle button { background: transparent; color: var(--mb-ink); padding: 0 14px; border: 0; border-radius: 999px; font: 600 14px var(--mb-ui); box-shadow: none; }
body .mb-viewtoggle button:hover, body .mb-viewtoggle button:focus { background: var(--mb-tint); color: var(--mb-navy); }
body .mb-viewtoggle button[aria-pressed="true"] { background: var(--mb-accent, var(--mb-navy)); color: #fff; }
body .mb-filters__q button, body .mb-hsearch__go { padding: 0; border: 0; border-radius: 50%; background: var(--mb-accent, var(--mb-navy)); color: #fff; }
body .mb-filters__q button:hover, body .mb-hsearch__go:hover { background: var(--mb-green); color: #fff; }
body button.mb-btn { padding: 0 22px; border: 0; border-radius: 999px; background: var(--mb-accent, var(--mb-navy)); color: #fff; font: 600 15px/1 var(--mb-ui); }
body button.mb-btn:hover { background: var(--mb-green); color: #fff; }
body .mb-form button.mb-btn { font-size: 16px; }
body button.mb-iconbtn { padding: 0; border: 1px solid var(--mb-line); border-radius: 50%; background: #fff; color: var(--mb-ink); }
body button.mb-iconbtn:hover, body button.mb-iconbtn.is-done { background: var(--mb-tint); color: var(--mb-navy); }
body .mb-gallery__item { padding: 0; border: 0; border-radius: var(--mb-radius); background: var(--mb-light); }
body .mb-gallery__item:hover { background: var(--mb-light); }
body .mb-gallery__all { padding: 0 18px; border: 0; border-radius: 999px; background: #fff; color: var(--mb-ink); font: 600 14px var(--mb-ui); }
body .mb-gallery__all:hover { background: var(--mb-tint); color: var(--mb-navy); }
body .mb-lightbox button { padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.14); color: #fff; }
@media (max-width: 767px) {
	body .mb-viewtoggle button { color: #fff; }
	body .mb-viewtoggle button[aria-pressed="true"] { background: #fff; color: var(--mb-ink); }
}

/* Calm the OSM basemap so the navy price pins lead. */
.mb-map .leaflet-tile-pane { filter: saturate(.45) contrast(.96) brightness(1.03); }

/* Stronger overrides where the kit's button rule still won (single-photo gallery, icon buttons). */
html body button.mb-gallery__item { padding: 0; border: 0; border-radius: var(--mb-radius, 18px); background: var(--mb-light); box-shadow: none; }
html body button.mb-gallery__item:hover, html body button.mb-gallery__item:focus { background: var(--mb-light); }
html body button.mb-gallery__all { padding: 0 18px; border: 0; border-radius: 999px; background: #fff; color: var(--mb-ink); }
html body button.mb-iconbtn { width: 44px; height: 44px; flex: none; padding: 0; border: 1px solid var(--mb-line); border-radius: 50%; background: #fff; color: var(--mb-ink); }
html body button.mb-iconbtn:hover, html body button.mb-iconbtn.is-done { background: var(--mb-tint); color: var(--mb-navy); }
html body button.mb-hsearch__go { padding: 0; border: 0; border-radius: 50%; background: var(--mb-accent, var(--mb-navy)); color: #fff; }

/* Agent photos: fill the 3:4 frame regardless of the kit's img height rule. */
.mb-agent__photo { display: block; position: relative; }
html body .mb-agent__photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center 20%; }

/* Hero tabs: keep "Buy a business" on one line on phones. */
@media (max-width: 767px) { .mb-hsearch__tabs span { white-space: nowrap; font-size: 14px; padding: 0 6px; } }

/* ---------- FAQ ---------- */
.mb-faq { border-top: 1px solid var(--mb-ink); font-family: var(--mb-ui); }
.mb-faq__item { border-bottom: 1px solid var(--mb-line); }
.mb-faq__item summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0; cursor: pointer; font: 600 19px/1.35 var(--mb-ui); color: var(--mb-ink); }
.mb-faq__item summary::-webkit-details-marker { display: none; }
.mb-faq__item summary:hover { color: var(--mb-navy); }
.mb-faq__item summary i { position: relative; flex: none; width: 36px; height: 36px; border-radius: 50%; background: #fff; border: 1px solid var(--mb-line-2); }
.mb-faq__item summary i::before, .mb-faq__item summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: var(--mb-ink); transition: transform .2s; }
.mb-faq__item summary i::after { transform: rotate(90deg); }
.mb-faq:not(.is-enhanced) .mb-faq__item[open] summary i, .mb-faq__item.is-open summary i { background: var(--mb-navy); border-color: var(--mb-navy); }
.mb-faq:not(.is-enhanced) .mb-faq__item[open] summary i::before, .mb-faq:not(.is-enhanced) .mb-faq__item[open] summary i::after,
.mb-faq__item.is-open summary i::before, .mb-faq__item.is-open summary i::after { background: #fff; }
.mb-faq:not(.is-enhanced) .mb-faq__item[open] summary i::after, .mb-faq__item.is-open summary i::after { transform: rotate(0); }
.mb-faq__a { padding: 0 60px 22px 0; color: #444; font-size: 17px; line-height: 1.65; }
.mb-faq__a p { margin: 0 0 12px; }
.mb-faq__a a { color: var(--mb-green); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 767px) { .mb-faq__item summary { font-size: 17px; padding: 18px 0; } .mb-faq__a { padding-right: 0; } }

/* ---------- Videos ---------- */
.mb-videos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
.mb-video { display: flex; flex-direction: column; gap: 10px; color: var(--mb-ink); text-decoration: none; font-family: var(--mb-ui); }
.mb-video__thumb { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: var(--mb-navy); }
.mb-video__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.mb-video__thumb i { position: absolute; left: 50%; top: 50%; width: 60px; height: 60px; margin: -30px 0 0 -30px; border-radius: 50%; background: #fff; color: var(--mb-navy); display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 30px -10px rgba(0,0,0,.5); }
.mb-video:hover .mb-video__thumb img { transform: scale(1.04); }
.mb-video__title { font: 600 24px/1.2 var(--mb-display); }
.mb-video__by { color: var(--mb-muted); font-size: 14px; }
.mb-player { position: relative; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #000; }
.mb-player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
@media (max-width: 1024px) { .mb-videos { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .mb-videos { grid-template-columns: 1fr; } }

/* ---------- Posts widgets (home, resources, archive) ---------- */
.elementor-widget-posts .elementor-post__title a, .elementor-widget-archive-posts .elementor-post__title a { color: inherit; text-decoration: none; }
.elementor-widget-posts .elementor-post__title a:hover, .elementor-widget-archive-posts .elementor-post__title a:hover { color: var(--mb-navy); }
.elementor-widget-posts .elementor-post__meta-data, .elementor-widget-archive-posts .elementor-post__meta-data { font-family: var(--mb-ui); color: var(--mb-muted); }
.elementor-widget-posts .elementor-post__read-more, .elementor-widget-archive-posts .elementor-post__read-more { font: 600 15px var(--mb-ui); }
.elementor-widget-posts .elementor-post__excerpt p, .elementor-widget-archive-posts .elementor-post__excerpt p { font: 400 16px/1.6 var(--mb-ui); }

/* ---------- Elementor Pro forms (contact, valuation) ---------- */
.elementor-widget-form .elementor-message { font-family: var(--mb-ui); padding: 14px 18px; border-radius: 12px; background: var(--mb-tint); color: var(--mb-navy); }
.elementor-widget-form .elementor-message.elementor-message-danger { background: #FBECEC; color: var(--mb-red); }
html body .elementor-widget-form button[type="submit"], html body .elementor-widget-form .e-form__buttons__wrapper__button { border-radius: 999px; font-family: var(--mb-ui); }

/* ---------- Homepage hero (matches the "Desktop · Home" / "Mobile · Home" mockup) ---------- */
/* Headline scales with the screen's width and height so it never swamps a laptop screen. */
.mb-hero .mb-hero__title .elementor-heading-title { font-size: clamp(40px, min(1.5rem + 4vw, 10.5vh + 8px), 88px) !important; line-height: .98; letter-spacing: -.02em; text-wrap: balance; }
.mb-hero .mb-hero__eyebrow .elementor-heading-title { display: flex; align-items: center; gap: 12px; }
.mb-hero .mb-hero__eyebrow .elementor-heading-title::before { content: ""; flex: none; width: 40px; height: 1px; background: currentColor; }
/* Arch photo on the right, the 50+ card pinned over its lower-left edge. */
.mb-hero .mb-hero__media { position: relative; --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; padding: 0 !important; }
.mb-hero .mb-hero__img { width: 100%; }
.mb-hero .mb-hero__img .elementor-widget-container { display: flex; justify-content: flex-end; }
.mb-hero .mb-hero__img img { width: 100%; max-width: 520px; height: clamp(440px, 74vh, 660px) !important; object-fit: cover; display: block; margin-left: auto; }
/* Card sticks out ~48px past the photo's left edge, as in the mockup. */
.mb-hero .mb-hero__badge { position: absolute !important; left: calc(100% - min(100%, 520px) - 48px); bottom: 48px; margin: 0 !important; z-index: 2; max-width: 230px; }
@media (max-width: 1024px) {
	.mb-hero .mb-hero__img img { max-width: none; height: 520px !important; }
	.mb-hero .mb-hero__badge { left: -16px; }
}
/* Phones: eyebrow, headline, photo (card inside its bottom-right corner), then search. */
@media (max-width: 767px) {
	.mb-hero > .e-con-inner, .mb-hero.e-con { gap: 20px !important; }
	.mb-hero .mb-hero__copy { display: contents; }
	.mb-hero .mb-hero__eyebrow { order: 1; } .mb-hero .mb-hero__title { order: 2; }
	.mb-hero .mb-hero__media { order: 3; } .mb-hero .mb-hero__search { order: 4; width: 100%; }
	.mb-hero .mb-hero__eyebrow .elementor-heading-title::before { display: none; }
	.mb-hero .mb-hero__img img { height: 360px !important; border-radius: 999px 999px 20px 20px; }
	.mb-hero .mb-hero__badge { left: auto; right: 14px; bottom: 14px; max-width: 160px; }
	.mb-hero .mb-hero__badge .elementor-widget-text-editor p { font-size: 12px !important; line-height: 1.35 !important; margin: 0; }
}

/* ---------- Header nav: dropdown arrow follows the link colour ---------- */
.elementor-nav-menu .sub-arrow svg, .elementor-nav-menu .sub-arrow i { fill: currentColor; color: inherit; transition: fill .15s, transform .2s; }
.elementor-nav-menu--main .menu-item-has-children > a:hover .sub-arrow svg,
.elementor-nav-menu--main .menu-item-has-children > a.highlighted .sub-arrow svg { transform: rotate(180deg); }

/* ---------- Mobile off-canvas menu (assets/js/nav.js) ---------- */
.mb-has-drawer nav.elementor-nav-menu--dropdown.elementor-nav-menu__container { display: none !important; }
html.mb-drawer-open, html.mb-drawer-open body { overflow: hidden; }
.mb-drawer-overlay { position: fixed; inset: 0; z-index: 99998; background: rgba(1,55,120,.38); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); opacity: 0; visibility: hidden; transition: opacity .4s ease, visibility 0s linear .4s; }
.mb-drawer-overlay.is-open { opacity: 1; visibility: visible; transition: opacity .4s ease; }
.mb-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 99999; display: flex; flex-direction: column; width: min(400px, 88vw); background: #fff; border-radius: 28px 0 0 28px; box-shadow: -30px 0 60px -30px rgba(1,55,120,.45); font-family: var(--mb-ui); color: var(--mb-ink); transform: translateX(105%); visibility: hidden; transition: transform .5s cubic-bezier(.32,.72,0,1), visibility 0s linear .5s; }
.mb-drawer.is-open { transform: none; visibility: visible; transition: transform .5s cubic-bezier(.32,.72,0,1); }
.mb-drawer__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 22px 18px 26px; border-bottom: 1px solid var(--mb-light); }
.mb-drawer__logo { display: block; min-width: 0; }
.mb-drawer__logo img { display: block; width: auto; max-width: 100%; height: 38px; object-fit: contain; }
html body button.mb-drawer__close { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: var(--mb-light); color: var(--mb-navy); cursor: pointer; transition: background-color .15s, color .15s, transform .3s; }
html body button.mb-drawer__close:hover, html body button.mb-drawer__close:focus-visible { background: var(--mb-navy); color: #fff; transform: rotate(90deg); }
.mb-drawer__body { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; padding: 10px 26px 24px; }
.mb-drawer ul { list-style: none; margin: 0; padding: 0; }
.mb-drawer__menu > .mb-drawer__item { border-bottom: 1px solid var(--mb-light); opacity: 0; transform: translateX(24px); transition: opacity .35s ease, transform .45s cubic-bezier(.32,.72,0,1); }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item { opacity: 1; transform: none; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(1) { transition-delay: .12s; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(2) { transition-delay: .16s; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(3) { transition-delay: .20s; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(4) { transition-delay: .24s; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(5) { transition-delay: .28s; }
.mb-drawer.is-open .mb-drawer__menu > .mb-drawer__item:nth-child(n+6) { transition-delay: .32s; }
.mb-drawer__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mb-drawer__menu > li > .mb-drawer__row > .mb-drawer__link { flex: 1 1 auto; padding: 18px 0; font: 600 26px/1.15 var(--mb-display); color: var(--mb-ink) !important; text-decoration: none; transition: color .15s; }
.mb-drawer__menu > li > .mb-drawer__row > .mb-drawer__link:hover, .mb-drawer__item.is-current > .mb-drawer__row > .mb-drawer__link { color: var(--mb-navy) !important; }
html body button.mb-drawer__expand { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--mb-ink); box-shadow: inset 0 0 0 1.5px var(--mb-line); cursor: pointer; transition: background-color .15s, color .15s, box-shadow .15s; }
html body button.mb-drawer__expand:hover, html body button.mb-drawer__expand:focus-visible { background: var(--mb-tint); color: var(--mb-navy); box-shadow: inset 0 0 0 1.5px var(--mb-navy); }
html body .mb-drawer__item.is-open > .mb-drawer__row > button.mb-drawer__expand { background: var(--mb-navy); color: #fff; box-shadow: none; }
.mb-drawer__expand svg { transition: transform .3s cubic-bezier(.32,.72,0,1); }
.mb-drawer__item.is-open > .mb-drawer__row > .mb-drawer__expand svg { transform: rotate(180deg); }
.mb-drawer__subwrap { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s cubic-bezier(.32,.72,0,1); }
.mb-drawer__item.is-open > .mb-drawer__subwrap { grid-template-rows: 1fr; }
.mb-drawer__subinner { overflow: hidden; }
.mb-drawer__sub { padding: 0 0 16px 2px !important; }
.mb-drawer__sub .mb-drawer__link { display: block; padding: 10px 14px; border-radius: 12px; font: 500 16px/1.3 var(--mb-ui); color: var(--mb-muted) !important; text-decoration: none; transition: background-color .15s, color .15s; }
.mb-drawer__sub .mb-drawer__link:hover, .mb-drawer__sub .is-current .mb-drawer__link { background: var(--mb-tint); color: var(--mb-navy) !important; }
.mb-drawer__foot { display: flex; flex-direction: column; gap: 10px; padding: 18px 26px calc(22px + env(safe-area-inset-bottom)); border-top: 1px solid var(--mb-light); }
.mb-drawer__cta { display: flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 22px; border-radius: 999px; background: var(--mb-navy); color: #fff !important; font: 600 16px/1 var(--mb-ui); text-decoration: none; transition: background-color .15s; }
.mb-drawer__cta:hover { background: var(--mb-green); }
.mb-drawer__cta--ghost { background: transparent; color: var(--mb-navy) !important; box-shadow: inset 0 0 0 1.5px var(--mb-navy); }
.mb-drawer__cta--ghost:hover { background: var(--mb-tint); }
.mb-drawer a:focus-visible, .mb-drawer button:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
	.mb-drawer, .mb-drawer-overlay, .mb-drawer__menu > .mb-drawer__item, .mb-drawer__subwrap, .mb-drawer__expand svg { transition-duration: .01s !important; transition-delay: 0s !important; }
}

/* Listing cards on white sections get a hairline so they don't vanish into the background. */
.mb-on-white .mb-card { box-shadow: 0 0 0 1px var(--mb-line); }
.mb-on-white .mb-card:hover { box-shadow: 0 0 0 2px var(--mb-accent, var(--mb-navy)), 0 18px 36px -20px rgba(1,55,120,.4); }

/* ------------------------------------------------------------------ Footer
   Light, editorial footer: contact column + four link columns, an outlined
   wordmark and a slim legal bar. Below 768px every column except the contact
   column becomes an accordion (assets/js/nav.js adds the toggles). */
.mb-foot { --mb-foot-ease: cubic-bezier(.32,.72,0,1); font-family: var(--mb-ui); }
.mb-foot .mb-foot__top, .mb-foot .mb-foot__cols, .mb-foot .mb-foot__col, .mb-foot .mb-foot__contact { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; }
.mb-foot .mb-foot__top { flex-wrap: nowrap !important; align-items: flex-start; }
.mb-foot .mb-foot__contact { flex: 0 0 34%; max-width: 420px; }
.mb-foot .mb-foot__cols { flex: 1 1 auto; display: grid !important; grid-template-columns: .9fr 1.15fr .85fr 1.25fr; column-gap: 36px; padding-top: 6px !important; }
.mb-foot .mb-foot__col { min-width: 0; width: auto !important; }
.mb-foot .mb-foot__col + .mb-foot__col { padding-left: 28px !important; border-left: 1px solid var(--mb-line); }
.mb-foot__title .elementor-heading-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; }
html body .mb-foot__title button, html body .mb-foot__title button:hover, html body .mb-foot__title button:focus, html body .mb-foot__title button:disabled { box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; font: inherit; color: inherit; letter-spacing: inherit; text-transform: inherit; text-align: left; opacity: 1; cursor: default; }
.mb-foot__chev { display: none; }

/* Links: muted, navy on hover with a drawn underline. */
.mb-foot__links .elementor-icon-list-text { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--mb-foot-ease), color .2s; padding-bottom: 2px; }
.mb-foot__links a:hover .elementor-icon-list-text, .mb-foot__links a:focus-visible .elementor-icon-list-text { background-size: 100% 1px; }

/* Contact column. */
.mb-foot__head .elementor-heading-title { text-wrap: balance; }
.mb-foot__addr p { margin: 0; }
.mb-foot__reach { padding-top: 22px; border-top: 1px solid var(--mb-line); }
.mb-foot__reach p { margin: 0; }
.mb-foot__phone a { font: 600 30px/1.15 var(--mb-display); color: var(--mb-navy) !important; letter-spacing: -.01em; text-decoration: none; transition: color .2s; }
.mb-foot__phone a:hover { color: var(--mb-green, #055E28) !important; }
.mb-foot__email { margin-top: 8px !important; }
.mb-foot__email a { color: var(--mb-ink) !important; text-decoration: underline; text-decoration-color: var(--mb-line); text-underline-offset: 5px; text-decoration-thickness: 1px; transition: text-decoration-color .2s, color .2s; }
.mb-foot__email a:hover { color: var(--mb-navy) !important; text-decoration-color: currentColor; }
.mb-foot .mb-foot__col .elementor-widget-text-editor p { margin: 0; }
.mb-foot .mb-foot__cta { margin-top: 6px; }
.mb-foot__cta .elementor-button-icon { transition: transform .3s var(--mb-foot-ease); }
.mb-foot__cta a:hover .elementor-button-icon { transform: translateX(4px); }

/* Outlined wordmark. */
.mb-foot__mark { margin: 88px 0 22px !important; overflow: hidden; }
.mb-foot__mark .elementor-heading-title { margin: 0; font-size: clamp(34px, 9.7vw, 134px) !important; line-height: 1.12 !important; white-space: nowrap; text-align: center; color: transparent !important; -webkit-text-stroke: 1px #CCCCCC; transition: color .6s ease, -webkit-text-stroke-color .6s ease; user-select: none; }
.mb-foot__mark:hover .elementor-heading-title { color: var(--mb-navy) !important; -webkit-text-stroke-color: var(--mb-navy); }

/* Legal bar. */
.mb-foot__copy p, .mb-foot__top-link p { margin: 0; }
.mb-foot__copy .mb-powered { white-space: nowrap; }
.mb-foot__copy a { color: var(--mb-ink) !important; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.mb-foot__copy a:hover { color: var(--mb-navy) !important; }
.mb-foot .mb-foot__copy { flex: 1 1 auto; }
.mb-foot .mb-foot__legal { margin-left: auto; }
.mb-totop { display: inline-flex; align-items: center; gap: 10px; color: var(--mb-ink) !important; text-decoration: none; }
.mb-totop span { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; box-shadow: inset 0 0 0 1px var(--mb-line); transition: background-color .2s, color .2s, box-shadow .2s, transform .3s var(--mb-foot-ease); }
.mb-totop:hover span, .mb-totop:focus-visible span { background: var(--mb-navy); color: #fff; box-shadow: none; transform: translateY(-3px); }

@media (max-width: 1024px) {
	.mb-foot .mb-foot__top { flex-wrap: wrap !important; }
	.mb-foot .mb-foot__contact { flex-basis: 100%; max-width: 560px; }
	.mb-foot .mb-foot__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; }
}
@media (max-width: 767px) {
	.mb-foot .mb-foot__top { gap: 40px !important; }
	.mb-foot .mb-foot__cols { display: block !important; padding-top: 0 !important; border-bottom: 1px solid var(--mb-line); }
	.mb-foot .mb-foot__col { gap: 0 !important; border-top: 1px solid var(--mb-line); }
	.mb-foot .mb-foot__col + .mb-foot__col { padding-left: 0 !important; border-left: 0; }
	html body .mb-foot__title button, html body .mb-foot__title button:hover, html body .mb-foot__title button:focus { padding: 20px 0; cursor: pointer; }
	.mb-foot__title button:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 2px; border-radius: 8px; }
	.mb-foot__chev { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%; color: var(--mb-ink); box-shadow: inset 0 0 0 1px var(--mb-line); transition: transform .4s var(--mb-foot-ease), background-color .2s, color .2s, box-shadow .2s; }
	.mb-foot__col.is-open .mb-foot__chev { transform: rotate(180deg); background: var(--mb-navy); color: #fff; box-shadow: none; }
	.mb-foot__panel { display: grid; grid-template-rows: 0fr; visibility: hidden; transition: grid-template-rows .45s var(--mb-foot-ease), visibility 0s linear .45s; }
	.mb-foot__col.is-open .mb-foot__panel { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows .45s var(--mb-foot-ease); }
	.mb-foot__panel > div { min-height: 0; overflow: hidden; display: flex; flex-direction: column; gap: 18px; }
	.mb-foot__panel > div > :last-child { margin-bottom: 24px !important; }
	.mb-foot__phone a { font-size: 28px; }
	.mb-foot__mark { margin: 48px 0 18px !important; }
	.mb-foot .mb-foot__bar { flex-direction: column; align-items: flex-start !important; gap: 14px !important; }
	.mb-foot .mb-foot__legal { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.mb-foot *, .mb-foot__panel { transition: none !important; }
}

/* ==================================================================
   Polish pass (Oct 2026): shared layout fixes for the inner pages and
   one motion system for the whole site. Motion stays quiet: short
   fades with a small lift, one easing, nothing over ~700ms.
   ================================================================== */
:root {
	--mb-ease: cubic-bezier(0.23, 1, 0.32, 1);
	--mb-ease-io: cubic-bezier(0.77, 0, 0.175, 1);
}

/* ---------- Scroll reveal (assets/js/motion.js; keep selectors in sync) ---------- */
html.mb-motion:not(.mb-motion-ready) [data-elementor-type]:not([data-elementor-type="header"]):not([data-elementor-type="footer"]) :is(.elementor-widget-heading, .elementor-widget-text-editor, .elementor-widget-button, .elementor-widget-icon-list, .elementor-widget-image, .elementor-widget-form, .elementor-widget-balfour-faq, .elementor-widget-balfour-agent-card, .mb-tile, .mb-cta, .mb-hero-aside, .mb-quote, .mb-svc-step, .mb-svc-row, .mb-svc-card, .elementor-post, .mb-grid--row .mb-card) { opacity: 0; }
html.mb-motion .mb-rv:not(.mb-settled) { opacity: 0; transform: translate3d(0, 18px, 0); }
html.mb-motion .mb-rv.mb-in:not(.mb-settled) { opacity: 1; transform: none; transition: opacity .6s var(--mb-ease) var(--mb-delay, 0ms), transform .75s var(--mb-ease) var(--mb-delay, 0ms); }
html.mb-motion .mb-rv.mb-hero-aside:not(.mb-settled) { transform: translate3d(0, 18px, 0) scale(.98); }
html.mb-motion .mb-rv.mb-hero-aside.mb-in:not(.mb-settled) { transform: none; }
@media (prefers-reduced-motion: reduce) {
	html.mb-motion .mb-rv:not(.mb-settled) { transform: none !important; }
}

/* ---------- Press feedback on every button ---------- */
.elementor-button, .mb-btn, html body button.mb-iconbtn, .mb-totop span, .mb-hsearch__go { transition-property: background-color, color, box-shadow, border-color, transform; transition-duration: .2s, .2s, .2s, .2s, .16s; transition-timing-function: ease, ease, ease, ease, var(--mb-ease); }
.elementor-button:active, .mb-btn:active, html body button.mb-iconbtn:active, html body .mb-hsearch__go:active { transform: scale(.97); }
.elementor-button .elementor-button-icon { transition: transform .25s var(--mb-ease); }
@media (hover: hover) and (pointer: fine) {
	.elementor-button:hover .elementor-button-icon svg[class*="arrow-right"], .elementor-button:hover .elementor-button-icon i[class*="arrow-right"] { transform: translateX(3px); }
}

/* ---------- Link tiles: a clean 3-up grid that fills the row ---------- */
.e-con.mb-tiles { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px !important; }
.e-con.mb-tiles > .mb-tile { width: auto !important; max-width: none !important; min-height: 100%; }
.mb-tile { position: relative; box-shadow: 0 0 0 1px rgba(26,26,26,.06); transition: box-shadow .3s ease, transform .3s var(--mb-ease); }
.mb-tile .elementor-heading-title { transition: color .2s ease; }
.mb-tile .mb-tile__more { margin-top: auto; }
.mb-tile .mb-arrow { display: inline-block; transition: transform .3s var(--mb-ease); }
.mb-tiles--soft > .mb-tile { background-color: var(--mb-light) !important; box-shadow: none; }
@media (hover: hover) and (pointer: fine) {
	.mb-tile:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(1,55,120,.12), 0 22px 44px -28px rgba(1,55,120,.5); }
	.mb-tile:hover h3 .elementor-heading-title, .mb-tile:hover h3 { color: var(--mb-navy) !important; }
	.mb-tile:hover .mb-arrow { transform: translateX(5px); }
	.mb-tiles--soft > .mb-tile:hover { background-color: #fff !important; }
}
.mb-tile:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 3px; }
@media (max-width: 1024px) { .e-con.mb-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .e-con.mb-tiles { grid-template-columns: 1fr; gap: 16px !important; } }

/* ---------- Page hero aside card ---------- */
.mb-hero-aside > .e-con { box-shadow: 0 0 0 1px rgba(26,26,26,.05), 0 30px 60px -40px rgba(1,55,120,.35); }
@media (max-width: 1024px) { .mb-hero-aside { margin-top: 8px; } }

/* ---------- CTA card: reads as a card whether the section above is white or light ---------- */
.mb-cta { box-shadow: 0 0 0 1px var(--mb-line), 0 24px 60px -46px rgba(1,55,120,.35); }

/* ---------- Numbered steps stacked in a sidebar (free valuation) ---------- */
.mb-steps-stack > .e-con > .elementor-widget-heading:first-child { flex: 0 0 56px !important; width: 56px !important; max-width: 56px; }
.mb-steps-stack > .e-con > .e-con { flex: 1 1 auto; min-width: 0; }
.mb-steps-stack > .e-con:first-child { border-top-color: var(--mb-ink) !important; }

/* ---------- Testimonials wall (testimonials page, agent pages) ---------- */
.mb-wall .mb-quotes--grid { display: block; columns: 3 300px; column-gap: 24px; }
.mb-wall .mb-quotes--grid .mb-quote { break-inside: avoid; margin: 0 0 24px !important; padding: 30px 30px 26px; display: flex; flex-direction: column; gap: 20px; background: #fff; border-radius: 22px; box-shadow: 0 0 0 1px rgba(26,26,26,.05); }
.mb-wall .mb-quotes--grid blockquote { position: relative; margin: 0; padding-top: 30px; font: 400 17px/1.65 var(--mb-ui); color: #333; }
.mb-wall .mb-quotes--grid blockquote::before { content: "“"; position: absolute; top: -6px; left: -2px; font: 600 56px/1 var(--mb-display); color: var(--mb-green); }
.mb-wall .mb-quote figcaption { font-style: normal; padding-top: 16px; border-top: 1px solid var(--mb-line); font-size: 14px; letter-spacing: .02em; }
.mb-wall .mb-quote figcaption b { font-weight: 600; }
.mb-if-quotes .mb-wall .mb-quotes--grid .mb-quote { background: #fff; }
.mb-on-white .mb-wall .mb-quote { background: var(--mb-light); box-shadow: none; }
@media (max-width: 767px) { .mb-wall .mb-quotes--grid .mb-quote { padding: 24px 22px 20px; margin-bottom: 16px !important; } }

/* ---------- Agent page: photo beside the bio, contact card in a sticky column ---------- */
.mb-agent-layout .mb-profile { gap: 40px; }
html body .mb-profile__photo { flex: 0 0 300px; width: 300px; min-width: 0; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; border-radius: 22px; }
.mb-agent-layout .mb-profile__body { flex: 1 1 300px; }
.mb-agent-layout .mb-profile__name { font-size: clamp(40px, 4.2vw, 60px); text-wrap: balance; }
.mb-agent-side { position: sticky !important; top: 24px; align-self: flex-start; }
.mb-agent-side .mb-contact, .mb-agent-side > .elementor-widget { width: 100%; }
@media (max-width: 1024px) {
	.mb-agent-side { position: static !important; }
	html body .mb-profile__photo { flex-basis: 260px; width: 260px; }
}
@media (max-width: 767px) {
	html body .mb-profile__photo { flex-basis: 100%; width: 100%; aspect-ratio: 1 / 1; }
	.mb-agent-layout .mb-profile { gap: 24px; }
}
/* Sections that only make sense with content hide themselves when the widget renders nothing. */
.mb-if-cards:not(:has(.mb-card)), .mb-if-quotes:not(:has(.mb-quote)) { display: none !important; }

/* ---------- Market insights archive & latest articles ---------- */
.elementor-widget-archive-posts .elementor-post__title, .elementor-widget-posts .elementor-post__title { margin-bottom: 10px !important; text-wrap: balance; }
.elementor-widget-archive-posts .elementor-post__meta-data, .elementor-widget-posts .elementor-post__meta-data { margin-bottom: 14px !important; font-size: 14px !important; letter-spacing: .04em; text-transform: uppercase; }
.elementor-widget-archive-posts .elementor-post, .elementor-widget-posts .elementor-post { transition: border-color .25s ease; }
.elementor-widget-archive-posts .elementor-post__read-more, .elementor-widget-posts .elementor-post__read-more { display: inline-flex; gap: 6px; }
@media (hover: hover) and (pointer: fine) {
	.elementor-widget-archive-posts .elementor-post:hover, .elementor-widget-posts .elementor-post:hover { border-top-color: var(--mb-navy) !important; }
}
/* Same pill pagination as the listings grid (.mb-pagination). */
html body .elementor-widget-archive-posts .elementor-pagination { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-top: 56px; font: 600 15px/1 var(--mb-ui); }
html body .elementor-widget-archive-posts .elementor-pagination .page-numbers { min-width: 44px; height: 44px; margin: 0 !important; padding: 0 14px; border-radius: 999px; border: 1px solid var(--mb-line-2); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; color: var(--mb-ink) !important; text-decoration: none; background: #fff; }
html body .elementor-widget-archive-posts .elementor-pagination .page-numbers.current { background: var(--mb-navy) !important; border-color: var(--mb-navy); color: #fff !important; }
html body .elementor-widget-archive-posts .elementor-pagination .page-numbers.prev:not(a), html body .elementor-widget-archive-posts .elementor-pagination .page-numbers.next:not(a) { display: none; }

/* ---------- Pull quote on service pages ---------- */
.mb-quotes--featured blockquote { text-wrap: balance; }

/* ---------- Forms: calmer focus and spacing ---------- */
.elementor-widget-form .elementor-field-group > label { margin-bottom: 8px; }
.elementor-widget-form .elementor-field { transition: border-color .2s ease, box-shadow .2s ease; }
.elementor-widget-form .elementor-field-group { margin-bottom: 18px; }
.elementor-widget-google_maps iframe { background: var(--mb-light); }

/* ---------- Footer wordmark: keep the descenders ---------- */
.mb-foot__mark { padding-bottom: .1em; }
.mb-foot__mark .elementor-heading-title { line-height: 1.22 !important; }

/* ---------- Cards and agent photos: consistent, gentle hover ---------- */
@media (hover: hover) and (pointer: fine) {
	.mb-card { transition: box-shadow .3s ease, transform .3s var(--mb-ease); }
	.mb-grid--row .mb-card:hover { transform: translateY(-3px); }
}
.mb-agent__photo img { transition: transform .6s var(--mb-ease) !important; }
.mb-agent__name { transition: color .2s ease; }
.mb-agent:hover .mb-agent__name { color: var(--mb-navy); }

@media (prefers-reduced-motion: reduce) {
	.mb-tile, .mb-card, .mb-agent__photo img, .elementor-button, .mb-btn { transition: none !important; transform: none !important; }
}

/* CTA card: copy on the left, buttons bottom-right on wide screens. */

/* Multi-step form: keep step labels on one line. */
.elementor-widget-form .e-form__indicators__indicator__label { white-space: nowrap; }

/* ==================================================================
   Components pass 2 (Oct 2026): accordion, fields, custom select,
   CTA card, desktop footer, mobile menu toggle, overflow guards.
   ================================================================== */
:root {
	--mb-field-h: 52px;
	--mb-field-r: 14px;
	--mb-field-border: #CCCCCC;
	--mb-field-border-hover: rgba(26, 26, 26, .42);
	--mb-ring: 0 0 0 4px rgba(1, 55, 120, .12);
	--mb-ring-err: 0 0 0 4px rgba(180, 2, 2, .10);
	--mb-ease-drawer: cubic-bezier(.32, .72, 0, 1);
}

/* ---------- Never scroll sideways on phones ---------- */
html, body { overflow-x: clip; }
h1, h2, h3, .elementor-heading-title, .mb-facts__title { overflow-wrap: break-word; }
.mb-profile__contact a { max-width: 100%; overflow-wrap: anywhere; height: auto; min-height: 44px; }

/* ---------- Accordion (assets/js/ui.js) ---------- */
.mb-faq__item summary { transition: color .2s ease; }
.mb-faq__item summary i { transition: background-color .25s ease, border-color .25s ease, transform .35s var(--mb-ease-drawer); }
.mb-faq__item summary i::before, .mb-faq__item summary i::after { transition: transform .35s var(--mb-ease-drawer), background-color .25s ease; }
@media (hover: hover) and (pointer: fine) {
	.mb-faq__item summary:hover i { border-color: var(--mb-navy); }
	.mb-faq__item:not(.is-open) summary:hover i { transform: rotate(90deg); }
}
.mb-faq__item summary:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 4px; border-radius: 8px; }
.mb-faq__item summary:active i { transform: scale(.92); }
.mb-faq__item.is-open summary { color: var(--mb-navy); }

/* ---------- Fields: one look for every text input (default · hover · focus · error · disabled) ---------- */
html body .elementor-widget-form .elementor-field-group .elementor-field-textual,
html body .mb-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
html body .mb-form textarea,
html body .mb-panel input,
.mb-select--field .mb-select__btn {
	box-sizing: border-box; width: 100%; min-height: var(--mb-field-h) !important; padding: 13px 16px !important;
	border: 1px solid var(--mb-field-border) !important; border-radius: var(--mb-field-r) !important;
	background: #fff !important; color: var(--mb-ink) !important; box-shadow: none !important; outline: 0 !important;
	font: 400 16px/1.4 var(--mb-ui) !important;
	transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
html body .mb-panel input { min-height: 46px !important; padding: 10px 12px !important; border-radius: 12px !important; }
html body .elementor-widget-form textarea.elementor-field-textual, html body .mb-form textarea { min-height: 128px !important; resize: vertical; }
html body .elementor-widget-form .elementor-field-textual::placeholder, html body .mb-form ::placeholder, html body .mb-panel ::placeholder { color: var(--mb-muted); opacity: .75; }
@media (hover: hover) and (pointer: fine) {
	html body .elementor-widget-form .elementor-field-group .elementor-field-textual:hover:not(:focus),
	html body .mb-form input:hover:not(:focus), html body .mb-form textarea:hover:not(:focus),
	html body .mb-panel input:hover:not(:focus),
	.mb-select--field .mb-select__btn:hover { border-color: var(--mb-field-border-hover) !important; }
}
html body .elementor-widget-form .elementor-field-group .elementor-field-textual:focus,
html body .mb-form input:focus, html body .mb-form textarea:focus, html body .mb-panel input:focus,
.mb-select--field .mb-select__btn:focus-visible, .mb-select--field.is-open .mb-select__btn {
	border-color: var(--mb-navy) !important; box-shadow: var(--mb-ring) !important; background: #fff !important;
}
html body .elementor-widget-form .elementor-field-textual:user-invalid,
html body .mb-form input:user-invalid, html body .mb-form textarea:user-invalid,
html body .elementor-widget-form .elementor-field-group.elementor-error .elementor-field-textual,
.mb-select--field.is-invalid .mb-select__btn { border-color: var(--mb-red) !important; box-shadow: var(--mb-ring-err) !important; }
html body .elementor-widget-form .elementor-field-textual:disabled, html body .mb-form input:disabled { background: var(--mb-light) !important; opacity: .7; cursor: not-allowed; }
html body .elementor-widget-form .elementor-field-group > label, html body .mb-form label { font: 600 14px/1.3 var(--mb-ui); color: var(--mb-ink); }
html body .elementor-widget-form .elementor-field-group .elementor-message, html body .elementor-widget-form .elementor-field-group span.elementor-message { font: 500 14px var(--mb-ui); }
/* Search bars: the whole pill reacts. */
.mb-hsearch__bar { transition: box-shadow .25s ease; }
.mb-hsearch__bar:focus-within { box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 24px 48px -24px rgba(1,55,120,.35), 0 0 0 4px rgba(1,55,120,.12); }
.mb-filters__q { transition: border-color .2s ease, box-shadow .2s ease; }
@media (hover: hover) and (pointer: fine) { .mb-filters__q:hover, .mb-pill:hover { border-color: var(--mb-field-border-hover); } }
.mb-filters__q:focus-within { border-color: var(--mb-navy); box-shadow: var(--mb-ring); }
.mb-pill { transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.mb-pill:focus-within { box-shadow: var(--mb-ring); }
/* The pill owns the focus state: drop the theme's black outline on the input inside it. */
html body .mb-hsearch__field input, html body .mb-hsearch__field input:focus, html body .mb-hsearch__field input:focus-visible,
html body .mb-filters__q input, html body .mb-filters__q input:focus, html body .mb-filters__q input:focus-visible {
	outline: 0 !important; outline-offset: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; background: transparent !important;
}
.mb-hsearch__field input::-webkit-search-decoration, .mb-filters__q input::-webkit-search-decoration { -webkit-appearance: none; }
/* Keyboard users still get a visible ring, on the pill. */
.mb-hsearch__bar:has(input:focus-visible) { box-shadow: 0 1px 0 rgba(0,0,0,.05), 0 24px 48px -24px rgba(1,55,120,.35), 0 0 0 4px rgba(1,55,120,.18), 0 0 0 1.5px var(--mb-navy); }

/* ---------- Custom select (assets/js/ui.js) ---------- */
.mb-select { position: relative; display: block; width: 100%; min-width: 0; font-family: var(--mb-ui); }
.mb-select__native { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; margin: 0 !important; padding: 0 !important; opacity: 0 !important; pointer-events: none !important; border: 0 !important; }
html body button.mb-select__btn { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; margin: 0; text-align: left; cursor: pointer; letter-spacing: normal; text-transform: none; }
html body .mb-select--field button.mb-select__btn { min-height: var(--mb-field-h); }
.mb-select__value { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mb-select.is-empty .mb-select__value { color: var(--mb-muted); }
.mb-select__chev { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-right: -6px; border-radius: 50%; color: var(--mb-ink); transition: transform .3s var(--mb-ease-drawer), background-color .2s ease, color .2s ease; }
.mb-select.is-open .mb-select__chev { transform: rotate(180deg); background: var(--mb-tint); color: var(--mb-navy); }
html body .mb-select--field button.mb-select__btn:hover .mb-select__chev { background: var(--mb-light); }
.mb-select.is-disabled { opacity: .6; }
/* Bare variants (hero search, sort, filter pills) */
html body .mb-select--bare button.mb-select__btn, html body .mb-select--pill button.mb-select__btn { min-height: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: inherit; font: inherit; }
html body .mb-select--hero button.mb-select__btn { font: 400 18px/1.4 var(--mb-ui); color: var(--mb-ink); min-width: 150px; }
html body .mb-select--hero .mb-select__chev { width: 26px; height: 26px; }
html body .mb-select--sort button.mb-select__btn { font: 600 15px var(--mb-ui); color: var(--mb-green); gap: 2px; }
.mb-select--sort .mb-select__chev { color: var(--mb-green); width: 24px; height: 24px; margin-right: 0; }
.mb-sort .mb-select { width: auto; display: inline-block; }
.mb-pill--select .mb-select { height: 100%; width: auto; }
html body .mb-select--pill button.mb-select__btn { height: 100%; padding: 0 12px 0 18px; border-radius: 999px; font: 600 15px var(--mb-ui); white-space: nowrap; }
.mb-pill--select select { background-image: none !important; }
.elementor-select-wrapper.has-mb-select::before, .elementor-select-wrapper:has(.mb-select)::before { display: none !important; }
.elementor-select-wrapper .mb-select__native { background-image: none !important; }
/* The option list lives at the end of <body> so no card or scroller clips it. */
.mb-select__list {
	position: fixed; z-index: 100000; margin: 0; padding: 6px; list-style: none; box-sizing: border-box; overflow-y: auto; overscroll-behavior: contain;
	background: #fff; border-radius: 16px; font: 400 15px/1.35 var(--mb-ui); color: var(--mb-ink);
	box-shadow: 0 0 0 1px rgba(26,26,26,.08), 0 24px 48px -18px rgba(1,55,120,.35), 0 6px 14px -8px rgba(26,26,26,.18);
	opacity: 0; visibility: hidden; transform: translateY(-6px) scale(.98); transform-origin: top center;
	transition: opacity .16s ease, transform .2s var(--mb-ease), visibility 0s linear .2s;
}
.mb-select__list.is-up { transform: translateY(6px) scale(.98); transform-origin: bottom center; }
.mb-select__list.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .16s ease, transform .24s var(--mb-ease); }
.mb-select__opt { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 10px; cursor: pointer; user-select: none; transition: background-color .12s ease, color .12s ease; }
.mb-select__opt.is-placeholder { color: var(--mb-muted); }
.mb-select__opt.is-active { background: var(--mb-light); }
.mb-select__opt.is-selected { color: var(--mb-navy); font-weight: 600; }
.mb-select__opt.is-selected.is-active { background: var(--mb-tint); }
.mb-select__opt.is-disabled { opacity: .45; cursor: not-allowed; }
.mb-select__check { flex: 0 0 auto; display: inline-flex; color: var(--mb-navy); opacity: 0; transform: scale(.8); transition: opacity .15s ease, transform .2s var(--mb-ease); }
.mb-select__opt.is-selected .mb-select__check { opacity: 1; transform: none; }
.mb-select__list.mb-select--pill, .mb-select__list.mb-select--sort { min-width: 220px; }
@media (prefers-reduced-motion: reduce) { .mb-select__list, .mb-select__chev { transition-duration: .01s !important; transform: none !important; } }

/* ---------- Filter panels become a bottom sheet on phones ---------- */
@media (max-width: 767px) {
	.mb-pill--panel { position: static; }
	.mb-panel { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; width: auto; z-index: 90; padding: 20px; border-radius: 22px; box-shadow: 0 -8px 40px -12px rgba(26,26,26,.35); }
}

/* ---------- CTA card: copy left, buttons right and vertically centred ---------- */
.mb-cta { align-items: center !important; }
.mb-cta > .e-con:last-child { width: auto !important; flex: 0 0 auto; align-self: center; justify-content: flex-end; align-items: center; }
.mb-bg-white + .mb-cta-wrap { padding-top: 96px !important; }
@media (max-width: 1024px) {
	.mb-cta { align-items: flex-start !important; }
	.mb-cta > .e-con:last-child { width: 100% !important; justify-content: flex-start; align-self: flex-start; }
}
@media (max-width: 767px) {
	.mb-bg-white + .mb-cta-wrap { padding-top: 56px !important; }
	.mb-cta > .e-con:last-child > .elementor-widget-button { flex: 1 1 100%; }
	.mb-cta > .e-con:last-child .elementor-button { width: 100%; justify-content: center; }
}

/* ---------- Footer on desktop: contact block left, three link columns + a newsletter card right ---------- */
@media (min-width: 1025px) {
	.mb-foot .mb-foot__top { gap: 72px !important; }
	.mb-foot .mb-foot__contact { flex: 0 0 34%; max-width: 440px; }
	.mb-foot .mb-foot__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; row-gap: 44px; align-content: start; }
	.mb-foot .mb-foot__col + .mb-foot__col { padding-left: 0 !important; border-left: 0; }
	.mb-foot .mb-foot__col:nth-child(4) {
		grid-column: 1 / -1; display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 32px; row-gap: 8px;
		padding: 26px 30px !important; background: var(--mb-light); border-radius: 22px;
	}
	.mb-foot .mb-foot__col:nth-child(4) .mb-foot__panel, .mb-foot .mb-foot__col:nth-child(4) .mb-foot__panel > div { display: contents; }
	.mb-foot .mb-foot__col:nth-child(4) > .mb-foot__title { grid-column: 1; grid-row: 1; }
	.mb-foot .mb-foot__col:nth-child(4) .elementor-widget-text-editor { grid-column: 1; grid-row: 2; }
	.mb-foot .mb-foot__col:nth-child(4) .elementor-widget-text-editor p { font-size: 16px !important; color: var(--mb-ink); max-width: 46ch; }
	.mb-foot .mb-foot__col:nth-child(4) .mb-foot__cta { grid-column: 2; grid-row: 1 / span 2; margin: 0 !important; }
	.mb-foot__mark { margin-top: 72px !important; }
}

/* ---------- Mobile menu toggle: two hairline strokes that fold into a cross ---------- */
html body .elementor-menu-toggle.mb-toggle {
	position: relative; display: none; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 0 !important;
	border-radius: 50% !important; background: #fff !important; color: var(--mb-navy) !important; cursor: pointer;
	box-shadow: inset 0 0 0 1px var(--mb-line), 0 8px 18px -12px rgba(1,55,120,.45);
	transition: transform .16s var(--mb-ease), box-shadow .2s ease, background-color .2s ease;
}
@media (max-width: 1024px) { html body .elementor-nav-menu--toggle .elementor-menu-toggle.mb-toggle { display: inline-flex; } }
html body .elementor-menu-toggle.mb-toggle > i, html body .elementor-menu-toggle.mb-toggle > svg, html body .elementor-menu-toggle.mb-toggle .e-font-icon-svg, html body .elementor-menu-toggle.mb-toggle .elementor-menu-toggle__icon--open, html body .elementor-menu-toggle.mb-toggle .elementor-menu-toggle__icon--close { display: none !important; }
.mb-burger { position: relative; display: block; width: 18px; height: 12px; }
.mb-burger span { position: absolute; right: 0; height: 2px; border-radius: 2px; background: currentColor; transition: top .35s var(--mb-ease-drawer), width .3s var(--mb-ease-drawer), transform .35s var(--mb-ease-drawer); }
.mb-burger span:nth-child(1) { top: 1px; width: 18px; }
.mb-burger span:nth-child(2) { top: 9px; width: 11px; }
@media (hover: hover) and (pointer: fine) { html body .elementor-menu-toggle.mb-toggle:hover .mb-burger span:nth-child(2) { width: 18px; } }
html body .elementor-menu-toggle.mb-toggle:active { transform: scale(.94); }
html body .elementor-menu-toggle.mb-toggle:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 3px; }
html body .elementor-menu-toggle.mb-toggle[aria-expanded="true"] .mb-burger span { top: 5px; width: 18px; }
html body .elementor-menu-toggle.mb-toggle[aria-expanded="true"] .mb-burger span:nth-child(1) { transform: rotate(45deg); }
html body .elementor-menu-toggle.mb-toggle[aria-expanded="true"] .mb-burger span:nth-child(2) { transform: rotate(-45deg); }
@media (prefers-reduced-motion: reduce) { .mb-burger span { transition: none; } }
/* Hero search: the select's value is a span inside the "Type" label, so undo the label caption style. */
html body .mb-hsearch__field .mb-select span { font: inherit; letter-spacing: normal; text-transform: none; color: inherit; }
html body .mb-hsearch__field .mb-select.is-empty .mb-select__value { color: var(--mb-ink); }
/* Number fields without browser spinners. */
html body input[type="number"].elementor-field-textual, html body .mb-panel input[type="number"] { -moz-appearance: textfield; appearance: textfield; }
html body input[type="number"].elementor-field-textual::-webkit-inner-spin-button, html body input[type="number"].elementor-field-textual::-webkit-outer-spin-button,
html body .mb-panel input[type="number"]::-webkit-inner-spin-button, html body .mb-panel input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
/* Filter panel fields never push past the sheet. */
.mb-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.mb-panel label, .mb-panel input { min-width: 0; }
/* Big display headings scale down on narrow phones instead of breaking words. */

@media (max-width: 400px) {
	html body h1.elementor-heading-title, html body .mb-facts__title, html body .mb-profile__name { font-size: clamp(30px, 10.5vw, 40px) !important; }
}

/* ---------- scrollbars: slim, transparent track, soft rounded thumb ---------- */
::-webkit-scrollbar { width: 8px; height: 8px; background: transparent; }
::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(26,26,26,.22); background-clip: padding-box; border: 2px solid transparent; border-radius: 999px; min-height: 40px; }
::-webkit-scrollbar-thumb:hover { background-color: rgba(26,26,26,.42); }
::-webkit-scrollbar-thumb:active { background-color: var(--mb-muted); }
::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
@supports (-moz-appearance: none) {
	* { scrollbar-width: thin; scrollbar-color: rgba(26,26,26,.25) transparent; }
	.mb-filters { scrollbar-width: none; }
}

/* ---------- Listing page: the agent card stays in view while the facts scroll ---------- */
@media (min-width: 1025px) {
	.elementor-widget-balfour-listing-contact:not(:has(.mb-contact.is-static)) { position: sticky; top: 24px; width: 100%; z-index: 5; }
	.admin-bar .elementor-widget-balfour-listing-contact:not(:has(.mb-contact.is-static)) { top: 56px; }
	.mb-contact.is-sticky { position: static; }
}
/* CTA copy: no trailing paragraph margin, so the card's padding is even top and bottom. */
.mb-cta .elementor-widget-text-editor p:last-child, .mb-cta .elementor-widget-text-editor:last-child { margin-bottom: 0 !important; }

/* Brokers carousel: a scroll-snap rail, swipe on touch, round arrows on the sides at mid-photo height. */
.mb-rail { position: relative; --mb-photo-h: 0px; }
.mb-agents.mb-agents--rail { --mb-view: 5; --mb-gap: 28px; display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--mb-view) - 1) * var(--mb-gap)) / var(--mb-view)); gap: var(--mb-gap); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; outline: none; }
.mb-agents--rail::-webkit-scrollbar { display: none; }
.mb-agents--rail > .mb-agent { scroll-snap-align: start; min-width: 0; }
.mb-agents--rail:focus-visible { outline: 2px solid var(--mb-navy); outline-offset: 6px; border-radius: 14px; }
.mb-rail__controls { position: absolute; left: 0; right: 0; top: calc(var(--mb-photo-h) / 2 - 24px); height: 0; pointer-events: none; z-index: 3; }
html body button.mb-rail__btn { position: absolute; top: 0; width: 48px; height: 48px; min-height: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: #fff; color: var(--mb-ink); box-shadow: 0 4px 16px rgba(0,0,0,.16); cursor: pointer; pointer-events: auto; transition: background-color .2s, color .2s, opacity .2s, transform .2s; }
.mb-rail__btn.is-prev { left: -24px; } .mb-rail__btn.is-next { right: -24px; }
html body button.mb-rail__btn:hover, html body button.mb-rail__btn:focus-visible { background: var(--mb-navy); color: #fff; transform: scale(1.06); }
html body button.mb-rail__btn:disabled { opacity: 0; pointer-events: none; }
.mb-rail__btn.is-next .mb-icon { transform: rotate(180deg); }
.mb-rail.is-static .mb-rail__controls { display: none; }
@media (max-width: 1024px) { .mb-agents.mb-agents--rail { --mb-view: 3; --mb-gap: 20px; } }
@media (max-width: 767px) {
	.mb-agents.mb-agents--rail { --mb-view: 1.6; --mb-gap: 16px; }
	.mb-rail__controls { top: calc(var(--mb-photo-h) / 2 - 20px); }
	html body button.mb-rail__btn { width: 40px; height: 40px; }
	.mb-rail__btn.is-prev { left: 8px; } .mb-rail__btn.is-next { right: 8px; }
}

/* ---------- 404 page (includes/views/404.php) ---------- */
.mb-404 { font-family: var(--mb-ui); color: var(--mb-ink); padding: 0 !important; max-width: none !important; margin: 0 !important; width: 100% !important; }
.mb-404__wrap { box-sizing: border-box; max-width: 1366px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 56px; align-items: center; }
.mb-404__wrap--stack { display: block; }
.mb-404__hero { background: var(--mb-light); padding: 56px 0 88px; overflow: hidden; }
.mb-404__copy { order: 1; max-width: 600px; }
.mb-404__art { order: 2; display: flex; justify-content: center; }

.mb-404__eyebrow { margin: 0 0 18px; font: 600 14px/1 var(--mb-ui); letter-spacing: .14em; text-transform: uppercase; color: var(--mb-green); }
.mb-404__title { margin: 0 0 18px; font: 600 clamp(40px, 5.2vw, 68px)/1.02 var(--mb-display); letter-spacing: -.01em; color: var(--mb-ink); text-wrap: balance; }
.mb-404__lede { margin: 0 0 32px; max-width: 520px; font: 400 18px/1.55 var(--mb-ui); color: var(--mb-muted); text-wrap: pretty; }
.mb-404__search { max-width: 560px; }
.mb-404__search .mb-hsearch__field input:focus-visible { outline: 0; }
.mb-404__search .mb-hsearch__bar:focus-within { box-shadow: 0 0 0 2px var(--mb-navy), 0 24px 48px -24px rgba(1,55,120,.35); }
.mb-404__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.mb-404__chips a { display: inline-flex; align-items: center; height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--mb-line-2); background: #fff; font: 600 14px/1 var(--mb-ui); color: var(--mb-ink) !important; text-decoration: none; transition: border-color .2s ease, color .2s ease, background-color .2s ease, transform .16s var(--mb-ease); }
.mb-404__chips a:hover { border-color: var(--mb-navy); color: var(--mb-navy) !important; background: var(--mb-tint); }
.mb-404__chips a:active { transform: scale(.97); }
.mb-404__chips a:focus-visible, .mb-404__tile:focus-visible, .mb-404__call a:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 2px; }

/* The numeral: outlined like the footer wordmark, with a map pin settling into the zero. */
.mb-404__num { display: flex; align-items: baseline; font: 600 clamp(150px, 21vw, 300px)/.9 var(--mb-display); letter-spacing: -.02em; color: transparent; -webkit-text-stroke: 1.5px var(--mb-navy); user-select: none; }
.mb-404__d { display: inline-block; }
.mb-404__zero { position: relative; }
.mb-404__pin { position: absolute; left: 50%; top: 50%; width: 30%; transform: translate(-50%, -78%); color: var(--mb-red); }
.mb-404__pin svg { display: block; width: 100%; height: auto; }
.mb-404__pin svg path { fill: var(--mb-red); stroke: var(--mb-red); }
.mb-404__pin svg circle { fill: var(--mb-light); stroke: var(--mb-light); }
.mb-404__shadow { position: absolute; left: 50%; top: 50%; width: 22%; height: 4.5%; margin-top: 15%; border-radius: 50%; background: var(--mb-ink); opacity: .14; transform: translateX(-50%); }

/* Where to next */
.mb-404__next { padding: 72px 0 96px; background: #fff; }
.mb-404__h2 { margin: 0 0 24px; font: 600 clamp(28px, 3vw, 40px)/1.1 var(--mb-display); color: var(--mb-ink); }
.mb-404__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.mb-404__tile { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: start; padding: 24px; border: 1px solid var(--mb-line); border-radius: 20px; background: #fff; color: var(--mb-ink) !important; text-decoration: none !important; transition: border-color .2s ease, box-shadow .25s ease, transform .25s var(--mb-ease); }
.mb-404__ticon { width: 48px; height: 48px; border-radius: 50%; background: var(--mb-tint); color: var(--mb-navy); display: inline-flex; align-items: center; justify-content: center; transition: background-color .2s ease, color .2s ease; }
.mb-404__tbody { display: flex; flex-direction: column; gap: 6px; padding-top: 2px; }
.mb-404__ttitle { font: 600 18px/1.25 var(--mb-ui); color: var(--mb-ink); }
.mb-404__ttext { font: 400 15px/1.5 var(--mb-ui); color: var(--mb-muted); }
.mb-404__tarrow { align-self: center; color: var(--mb-navy); transition: transform .25s var(--mb-ease); }
@media (hover: hover) and (pointer: fine) {
	.mb-404__tile:hover { border-color: var(--mb-line-2); box-shadow: 0 18px 36px -24px rgba(1,55,120,.35); transform: translateY(-2px); }
	.mb-404__tile:hover .mb-404__ticon { background: var(--mb-navy); color: #fff; }
	.mb-404__tile:hover .mb-404__tarrow { transform: translateX(4px); }
}
.mb-404__tile:active { transform: scale(.985); }
.mb-404__call { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 32px 0 0; font: 400 16px/1.4 var(--mb-ui); color: var(--mb-muted); }
.mb-404__call a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--mb-navy) !important; text-decoration: none; }
.mb-404__call a:hover { color: var(--mb-green) !important; text-decoration: underline; text-underline-offset: 3px; }
.mb-404__sep { color: var(--mb-line-2); }

/* Entrance: one quiet pass on load. Motion only when the visitor allows it. */
@media (prefers-reduced-motion: no-preference) {
	.mb-404__copy > *, .mb-404__tile { animation: mb404-up .7s var(--mb-ease) both; animation-delay: calc(var(--i, 0) * 70ms + 80ms); }
	.mb-404__d { animation: mb404-up .8s var(--mb-ease) both; }
	.mb-404__d:nth-child(2) { animation-delay: 60ms; } .mb-404__d:nth-child(3) { animation-delay: 120ms; }
	.mb-404__pin { animation: mb404-pin .9s var(--mb-ease) 450ms both; }
	.mb-404__shadow { animation: mb404-shadow .9s var(--mb-ease) 450ms both; }
}
@keyframes mb404-up { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: none; } }
@keyframes mb404-pin {
	0% { opacity: 0; transform: translate(-50%, -260%); }
	55% { opacity: 1; transform: translate(-50%, -72%) scale(1.04, .94); }
	75% { transform: translate(-50%, -84%) scale(.98, 1.02); }
	100% { opacity: 1; transform: translate(-50%, -78%); }
}
@keyframes mb404-shadow { 0% { opacity: 0; transform: translateX(-50%) scale(.3); } 55% { opacity: .2; transform: translateX(-50%) scale(1.1); } 100% { opacity: .14; transform: translateX(-50%) scale(1); } }

@media (max-width: 1024px) {
	.mb-404__wrap { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.mb-404__copy { min-width: 0; }
	.mb-404__art { order: 0; justify-content: flex-start; }
	.mb-404__copy { max-width: 640px; }
	.mb-404__tiles { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	.mb-404__wrap { padding: 0 16px; }
	.mb-404__hero { padding: 24px 0 48px; }
	.mb-404__num { font-size: clamp(110px, 36vw, 150px); -webkit-text-stroke-width: 1.25px; }
	.mb-404__title { font-size: 38px; }
	.mb-404__lede { font-size: 16px; margin-bottom: 24px; }
	.mb-404__chips { flex-wrap: nowrap; overflow-x: auto; margin: 16px -16px 0; padding: 0 16px 4px; scrollbar-width: none; }
	.mb-404__chips::-webkit-scrollbar { display: none; }
	.mb-404__chips a { flex: 0 0 auto; }
	.mb-404__next { padding: 48px 0 64px; }
	.mb-404__tile { padding: 18px; gap: 14px; border-radius: 16px; }
	.mb-404__ticon { width: 42px; height: 42px; }
	.mb-404__sep { display: none; }
	.mb-404__call { flex-direction: column; align-items: flex-start; }
}

/* ---------- Service pages (tools/pages_services.py) ---------- */
.mb-svc-navwrap + .e-con { padding-top: 48px; }
.mb-svc-nav { display: flex; flex-wrap: wrap; gap: 8px; font-family: var(--mb-ui); }
.mb-svc-nav a { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--mb-line); color: var(--mb-ink); font: 600 14px/1 var(--mb-ui); text-decoration: none; white-space: nowrap; transition: box-shadow .2s ease, color .2s ease, background-color .2s ease; }
.mb-svc-nav a:hover { box-shadow: inset 0 0 0 1.5px var(--mb-navy); color: var(--mb-navy); }
.mb-svc-nav a[aria-current] { background: var(--mb-navy); color: #fff; box-shadow: none; }
html body .mb-svc-nav a:not([aria-current]) { color: var(--mb-ink); }
html body .mb-svc-nav a:not([aria-current]):hover { color: var(--mb-navy); }
html body .mb-svc-nav a[aria-current] { color: #fff; }
.mb-svc-nav a:focus-visible { outline: 2px solid var(--mb-navy); outline-offset: 2px; }

/* Numbered lists: icon lists with a serif counter instead of check icons. */
.mb-index .elementor-icon-list-items { counter-reset: mbi; margin: 0; padding: 0; }
.mb-index .elementor-icon-list-item { counter-increment: mbi; display: grid !important; grid-template-columns: 34px minmax(0, 1fr); align-items: baseline; gap: 0 10px; margin: 0 !important; padding: 13px 0 !important; border-top: 1px solid var(--mb-line); }
.mb-index .elementor-icon-list-item::before { content: counter(mbi, decimal-leading-zero); font: 600 15px/1 var(--mb-display); color: var(--mb-navy); transition: color .2s ease; }
.mb-index .elementor-icon-list-item::after { display: none !important; }
.mb-index .elementor-icon-list-icon { display: none !important; }
.mb-index .elementor-icon-list-text { padding: 0 !important; transition: transform .35s var(--mb-ease), color .2s ease; }
@media (hover: hover) {
	.mb-index .elementor-icon-list-item:hover::before { color: var(--mb-green); }
	.mb-index .elementor-icon-list-item:hover .elementor-icon-list-text { transform: translateX(4px); }
}
.mb-index--grid .elementor-icon-list-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.mb-index--grid .elementor-icon-list-item { padding: 20px 0 !important; border-top-color: var(--mb-line-2); }
.mb-index--grid .elementor-icon-list-item::before { font-size: 18px; }
.mb-index--grid .elementor-icon-list-text { font-size: 17px !important; }
@media (max-width: 767px) { .mb-index--grid .elementor-icon-list-items { grid-template-columns: 1fr; } }

.mb-svc-count .elementor-heading-title { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--mb-line); box-sizing: border-box; }
.mb-svc-aside .mb-index .elementor-icon-list-item:first-child, .mb-svc-ledger .mb-index .elementor-icon-list-item:first-child { border-top-color: var(--mb-ink); }
.mb-svc-note p { margin: 0; }
.mb-svc-note a { color: var(--mb-green); font-weight: 600; text-decoration: none; white-space: nowrap; }
.mb-svc-note a:hover { text-decoration: underline; text-underline-offset: 3px; }
.mb-svc-ledger { box-shadow: 0 0 0 1px rgba(26,26,26,.05), 0 30px 60px -40px rgba(1,55,120,.35); }

/* Long-form copy: lead paragraph + short green rule above each section heading. */
.mb-svc-prose h2:first-child + p { font-size: 21px; line-height: 1.6; color: var(--mb-ink); }
.mb-svc-prose h2::before { content: ""; display: block; width: 40px; height: 2px; margin-bottom: 22px; background: var(--mb-green); }
@media (max-width: 767px) { .mb-svc-prose h2:first-child + p { font-size: 19px; } }

/* Process: a rail that fills in as each step scrolls into view. */
.e-con.mb-svc-steps { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 28px !important; }
.mb-svc-step { position: relative; padding-top: 34px !important; border-top: 1px solid var(--mb-line-2); }
.mb-svc-step::before { content: ""; position: absolute; left: 0; right: 0; top: -1px; height: 2px; background: var(--mb-navy); transform-origin: left center; transition: transform 1.1s var(--mb-ease-io) calc(var(--mb-delay, 0ms) + 120ms); }
.mb-svc-step::after { content: ""; position: absolute; left: 0; top: -6px; width: 11px; height: 11px; border-radius: 50%; background: var(--mb-navy); box-shadow: 0 0 0 5px #fff; }
html.mb-motion .mb-svc-step:not(.mb-in)::before { transform: scaleX(0); }
.mb-svc-step > .elementor-widget-heading:first-child .elementor-heading-title { transition: color .2s ease; }
@media (hover: hover) { .mb-svc-step:hover > .elementor-widget-heading:first-child .elementor-heading-title { color: var(--mb-green) !important; } }
@media (max-width: 1024px) { .e-con.mb-svc-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .e-con.mb-svc-steps { grid-template-columns: 1fr; gap: 32px !important; } .mb-svc-step { padding-top: 26px !important; } }

/* Testimonial */
.mb-svc-quote__mark .elementor-heading-title { height: 64px; }
.mb-svc-quote__by { display: flex; align-items: center; justify-content: center; gap: 14px; margin: 0; }
.mb-svc-quote__by::before, .mb-svc-quote__by::after { content: ""; width: 32px; height: 1px; background: var(--mb-line-2); }
.mb-svc-quote__by strong { color: var(--mb-ink); }
@media (max-width: 767px) { .mb-svc-quote__mark .elementor-heading-title { font-size: 100px !important; height: 46px; } .mb-svc-quote__by::before, .mb-svc-quote__by::after { width: 16px; } }

/* Arrow used by service rows and cards */
.mb-svc-row::after, .mb-svc-card__more .elementor-heading-title::after {
	content: ""; flex: 0 0 auto; width: 52px; height: 52px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--mb-line-2);
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23013778' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / 18px no-repeat;
	transition: background-color .25s ease, box-shadow .25s ease, transform .35s var(--mb-ease);
}

/* Other services: an editorial index of rows */
.mb-svc-rows { border-top: 1px solid var(--mb-ink); }
.e-con.mb-svc-row { display: grid !important; grid-template-columns: 48px minmax(0, 1.05fr) minmax(0, 1fr) 52px; align-items: center; gap: 0 32px !important; padding: 28px 8px !important; border-bottom: 1px solid var(--mb-line); border-radius: 0; text-decoration: none; transition: background-color .3s ease, padding .45s var(--mb-ease), border-radius .3s ease; }
.mb-svc-row .elementor-widget-text-editor p { margin: 0; }
.mb-svc-row h3, .mb-svc-row h3 .elementor-heading-title { transition: color .2s ease; }
@media (hover: hover) {
	.e-con.mb-svc-row:hover { background-color: #fff; padding-left: 28px !important; padding-right: 20px !important; border-radius: 20px; border-bottom-color: transparent; }
	.mb-svc-row:hover h3 .elementor-heading-title { color: var(--mb-navy) !important; }
	.mb-svc-row:hover::after, .mb-svc-card:hover .mb-svc-card__more .elementor-heading-title::after {
		background-color: var(--mb-navy); box-shadow: none; transform: translateX(4px);
		background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
	}
}
.mb-svc-row:focus-visible, .mb-svc-card:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 3px; }
@media (max-width: 767px) {
	.e-con.mb-svc-row { grid-template-columns: 30px minmax(0, 1fr) 44px; gap: 6px 14px !important; padding: 22px 0 !important; align-items: start; }
	.mb-svc-row > :nth-child(3) { grid-column: 2; grid-row: 2; }
	.mb-svc-row::after { grid-column: 3; grid-row: 1 / span 2; align-self: center; width: 44px; height: 44px; }
	.mb-svc-row .mb-svc-row__num { padding-top: 6px; }
}

/* Services hub cards */
.e-con.mb-svc-cards { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px !important; }
.e-con.mb-svc-card { width: auto !important; min-height: 320px; text-decoration: none; box-shadow: 0 0 0 1px rgba(26,26,26,.06); transition: box-shadow .3s ease, transform .35s var(--mb-ease); }
.mb-svc-card > .mb-svc-card__more { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--mb-line); }
.mb-svc-card__more .elementor-heading-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mb-svc-card__more .elementor-heading-title::after { width: 44px; height: 44px; background-size: 16px; }
.mb-svc-card h3 .elementor-heading-title { transition: color .2s ease; }
@media (hover: hover) {
	.e-con.mb-svc-card:hover { transform: translateY(-4px); box-shadow: 0 0 0 1px rgba(1,55,120,.14), 0 26px 50px -30px rgba(1,55,120,.5); }
	.mb-svc-card:hover h3 .elementor-heading-title { color: var(--mb-navy) !important; }
}
@media (max-width: 1024px) { .e-con.mb-svc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
	.e-con.mb-svc-cards { grid-template-columns: 1fr; gap: 16px !important; }
	.e-con.mb-svc-card { min-height: 0; }
	.mb-svc-nav { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: none; }
	.mb-svc-nav::-webkit-scrollbar { display: none; }
	.mb-svc-navwrap + .e-con { padding-top: 24px; }
}
@media (prefers-reduced-motion: reduce) {
	.mb-svc-step::before, .e-con.mb-svc-row, .e-con.mb-svc-card, .mb-index .elementor-icon-list-text { transition: none !important; }
}

/* ==================================================================
   Phone pass (390px review)
   ================================================================== */
/* Article dates: Elementor's own meta colour is too faint to read. */
html body .elementor-widget-posts .elementor-post__meta-data,
html body .elementor-widget-archive-posts .elementor-post__meta-data { color: var(--mb-muted); }

@media (max-width: 767px) {
	/* Listing rows (home, similar listings, broker listings) become a swipe rail
	   with the next card peeking, instead of six full cards stacked. */
	.mb-grid.mb-grid--row { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; gap: 14px; margin: 0 -16px; padding: 4px 16px 8px; scroll-padding: 0 16px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.mb-grid.mb-grid--row::-webkit-scrollbar { display: none; }
	.mb-grid.mb-grid--row > .mb-card { scroll-snap-align: start; }
	.mb-grid.mb-grid--row:has(> .mb-card:only-child) { grid-auto-columns: 100%; }
	/* Off-screen rail cards never cross the viewport vertically, so skip the scroll reveal for them. */
	html.mb-motion .mb-grid--row .mb-card.mb-rv, html.mb-motion:not(.mb-motion-ready) [data-elementor-type] .mb-grid--row .mb-card { opacity: 1 !important; transform: none !important; }

	/* Home valuation card: the question list sat on the page grey and looked detached. */
	.e-con.e-child:has(> .elementor-widget-text-editor .mb-qlist) { background-color: #fff !important; border-top: 1px solid var(--mb-line); padding-top: 8px !important; }
	html body .elementor-widget .mb-qlist li { gap: 12px; }
	html body .elementor-widget .mb-qlist li::after { width: 56px; flex: none; }

	/* Market insights topics: one swipeable row instead of four wrapped lines. */
	html body .elementor-widget.elementor-widget nav.mb-chips.mb-chips { flex-wrap: nowrap; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 6px; scrollbar-width: none; }
	html body .elementor-widget.elementor-widget nav.mb-chips.mb-chips::-webkit-scrollbar { display: none; }
	html body .elementor-widget.elementor-widget nav.mb-chips.mb-chips a { flex: none; white-space: nowrap; }

	/* Listing gallery: long photo sets wrapped the dots onto two lines; the 1 / N counter already says it. */
	.mb-gallery__dots:has(i:nth-child(10)) { display: none; }

	/* Testimonials wall: long letters fold to eight lines with a toggle (assets/js/ui.js). */
	.mb-quote.is-clamped blockquote { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 8; overflow: hidden; }
	html body button.mb-quote__more { align-self: flex-start; margin: -6px 0 0; padding: 0; min-height: 0; border: 0; background: none; color: var(--mb-green); font: 600 14px var(--mb-ui); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
}

/* ==================================================================
   Phones: nothing sticks or floats while scrolling.
   Sticky columns set in Elementor custom CSS are released by ui.js (.mb-unstick).
   ================================================================== */
@media (max-width: 767px) {
	html body .mb-unstick { position: relative !important; top: auto !important; }
	html body .mb-agent-side, html body .mb-search .mb-map { position: relative !important; top: auto !important; }
	/* Listing search: the Map / List switch sits at the end of the filters instead of floating. */
	html body .mb-search .mb-viewtoggle { position: static; transform: none; left: auto; bottom: auto; z-index: auto; margin: 0 0 0 auto; background: #fff; border-color: var(--mb-line-2); box-shadow: none; }
	html body .mb-search .mb-viewtoggle button { color: var(--mb-ink); }
	html body .mb-search .mb-viewtoggle button[aria-pressed="true"] { background: var(--mb-accent, var(--mb-navy)); color: #fff; }
	/* Listing page: no fixed Call / Request a tour bar; the broker card on the page has both. */
	html body .mb-mobilebar { display: none; }
	html body.single-listing { padding-bottom: 0; }
}

/* ---- Filters pass (UX review 2026-10-26) ---- */
.mb-panel--range { width: 320px; grid-template-columns: 1fr 1fr; }
.mb-panel__hint { grid-column: span 2; margin: 0 0 2px; font: 14px/1.4 var(--mb-ui); color: var(--mb-muted); }
.mb-range { grid-column: span 2; position: relative; height: 28px; margin: 2px 6px 6px; }
.mb-range__track { position: absolute; left: 0; right: 0; top: 12px; height: 4px; border-radius: 2px; background: var(--mb-line-2); }
.mb-range__fill { position: absolute; top: 0; height: 100%; border-radius: 2px; background: var(--mb-accent, var(--mb-navy)); }
.mb-range input[type="range"] { position: absolute; left: 0; right: 0; top: 0; width: 100%; height: 28px; margin: 0; background: transparent; -webkit-appearance: none; appearance: none; pointer-events: none; }
.mb-range input[type="range"]::-webkit-slider-runnable-track { background: transparent; height: 28px; }
.mb-range input[type="range"]::-moz-range-track { background: transparent; height: 28px; }
.mb-range input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; pointer-events: auto; width: 22px; height: 22px; margin-top: 3px; border-radius: 50%; background: #fff; border: 2px solid var(--mb-accent, var(--mb-navy)); box-shadow: 0 2px 6px rgba(0,0,0,.18); cursor: grab; }
.mb-range input[type="range"]::-moz-range-thumb { pointer-events: auto; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 2px solid var(--mb-accent, var(--mb-navy)); box-shadow: 0 2px 6px rgba(0,0,0,.18); cursor: grab; }
.mb-panel__presets { grid-column: span 2; display: flex; flex-wrap: wrap; gap: 6px; }
html body .mb-panel__presets button { height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--mb-line-2); background: #fff; color: var(--mb-ink); font: 600 14px var(--mb-ui); cursor: pointer; box-shadow: none; }
html body .mb-panel__presets button:hover { border-color: var(--mb-navy); color: var(--mb-navy); background: var(--mb-tint); }
.mb-panel__clear { grid-column: span 2; text-align: center; font: 600 14px var(--mb-ui); color: var(--mb-muted); text-decoration: underline; }
.mb-pill--panel summary { white-space: nowrap; }
.mb-fchips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 0 0 14px; }
.mb-fchip { display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: 999px; background: var(--mb-tint); color: var(--mb-navy); font: 600 14px var(--mb-ui); text-decoration: none; border: 1px solid transparent; }
.mb-fchip:hover { border-color: var(--mb-navy); }
.mb-fchip span[aria-hidden] { font-size: 16px; line-height: 1; }
.mb-fchips__clear { font: 600 14px var(--mb-ui); color: var(--mb-muted); text-decoration: underline; margin-left: 4px; }
.mb-hsearch__field[hidden] { display: none !important; }
@media (max-width: 767px) {
	.mb-panel--range { width: min(320px, calc(100vw - 32px)); }
}
html body .mb-panel .mb-range input[type="range"], html body .mb-panel .mb-range input[type="range"]:focus, html body .mb-panel .mb-range input[type="range"]:hover { min-height: 0 !important; height: 28px !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: 0 !important; }
.mb-range__track { z-index: 0; }
.mb-range input[type="range"] { z-index: 1; }

/* ---- Map, results and cards pass (UX review 2026-10-26) ---- */
/* Line the search page up with the header's container on every screen. */
.mb-search { max-width: 1312px; margin: 0 auto; }
.mb-mapwrap { position: sticky; top: 0; flex: 1 1 50%; min-width: 0; }
.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { position: relative; top: auto; height: calc(100vh - 16px); min-height: 520px; max-height: none; flex: none; border-radius: 0 0 0 var(--mb-radius); }
.mb-search[data-view="list"] .mb-mapwrap { display: none; }
.mb-map__move { position: absolute; z-index: 500; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px 0 10px; border-radius: 999px; background: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.18); font: 600 14px var(--mb-ui); color: var(--mb-ink); cursor: pointer; }
.mb-map__move input { width: 16px; height: 16px; margin: 0; accent-color: var(--mb-navy); }
html body .mb-map__redo { position: absolute; z-index: 500; top: 58px; right: 12px; height: 36px; padding: 0 14px; border-radius: 999px; border: 0; background: var(--mb-navy); color: #fff; font: 600 14px var(--mb-ui); box-shadow: 0 6px 18px rgba(1,55,120,.35); cursor: pointer; }
html body .mb-map__redo[hidden] { display: none; }
.mb-cluster { background: none; border: 0; }
.mb-cluster span { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--mb-navy); color: #fff; font: 700 14px var(--mb-ui); box-shadow: 0 0 0 5px rgba(1,55,120,.22), 0 4px 12px rgba(1,55,120,.35); transition: transform .15s; }
.mb-cluster:hover span { transform: scale(1.08); }
.leaflet-container:focus { outline: 2px solid var(--mb-navy); outline-offset: -2px; }
.mb-results { padding-top: 20px; }
.mb-results__head { flex-direction: row; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; margin-bottom: 16px; }
html body h1.mb-results__title, html body .mb-results__title { font-size: 28px !important; line-height: 1.15 !important; }
.mb-results__meta { flex: 1 1 auto; }
.mb-loadmore { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 28px; }
.mb-loadmore__meta { margin: 0; font: 14px var(--mb-ui); color: var(--mb-muted); }
html body .mb-loadmore__btn { min-width: 220px; }
html body .mb-loadmore__btn[hidden] { display: none; }
.mb-card__dots { pointer-events: auto; gap: 0; }
.mb-card__dots i { position: relative; width: 6px; height: 6px; margin: 0 2.5px; cursor: pointer; }
.mb-card__dots i::before { content: ""; position: absolute; inset: -9px -3px; }
.mb-card__track { cursor: grab; }
a.mb-card__agent { position: relative; z-index: 3; text-decoration: none; color: var(--mb-muted); }
a.mb-card__agent:hover .mb-card__agentname, a.mb-card__agent:focus-visible .mb-card__agentname { color: var(--mb-navy); text-decoration: underline; }
@media (min-width: 1600px) {
	.mb-search { max-width: 1312px; }
	.mb-search .mb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.mb-mapwrap { position: relative; flex-basis: 100%; }
	.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { height: 420px; min-height: 0; border-radius: 0; }
	.mb-results__head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 767px) {
	.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { height: 70vh; }
	html body h1.mb-results__title, html body .mb-results__title { font-size: 22px !important; }
}

/* ---- Header & small targets pass (UX review 2026-10-26) ---- */
@media (min-width: 1025px) {
	html body .elementor-nav-menu--main li.menu-item-has-children.mb-hover > ul.sub-menu { display: block !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto; }
	html body .elementor-nav-menu--main li.menu-item-has-children.mb-hover > a { color: #fff; }
	html body .elementor-nav-menu--main li.menu-item-has-children.mb-hover > a::before { opacity: 1; }
}
/* Logo: readable at every width. */
html body .elementor-location-header .elementor-widget-image img { width: 240px !important; max-width: 100%; }
@media (max-width: 767px) { html body .elementor-location-header .elementor-widget-image img { width: 176px !important; } }
/* Finger-sized links. */
.mb-foot__links .elementor-icon-list-item a, .mb-foot__legal a { min-height: 44px; display: inline-flex; align-items: center; }
html body .elementor-icon-list-items.mb-foot__links .elementor-icon-list-item { margin-bottom: 0; }
.mb-foot__reach a { display: inline-block; padding: 6px 0; }
html body .elementor-post__read-more, html body a.mb-more { display: inline-flex; align-items: center; min-height: 44px; }
.mb-facts__title .mb-plus { font-family: var(--mb-ui); font-weight: 600; font-size: .6em; vertical-align: .25em; margin-left: .05em; }
.mb-table dd a { color: var(--mb-navy); font-weight: 600; text-decoration: underline; }
@media (max-width: 767px) {
	/* Phone stays reachable from the header as an icon. */
	html body .elementor-location-header .mb-head__phone .elementor-button { padding: 12px !important; min-width: 44px; min-height: 44px; border-radius: 999px; border: 1px solid var(--mb-line-2); display: inline-flex; align-items: center; justify-content: center; }
	html body .elementor-location-header .mb-head__phone .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	html body .elementor-location-header .mb-head__phone .elementor-button-icon { margin: 0; }
}

/* ---- Listing page pass (UX review 2026-10-26) ---- */
.mb-lightbox { flex-direction: column; gap: 12px; }
.mb-lightbox__thumbs { display: flex; gap: 8px; max-width: 92vw; overflow-x: auto; padding: 4px 2px; scrollbar-width: none; }
.mb-lightbox__thumbs::-webkit-scrollbar { display: none; }
html body .mb-lightbox__thumbs button { position: static; width: 72px; height: 54px; border-radius: 8px; padding: 0; overflow: hidden; background: #000; opacity: .55; border: 2px solid transparent; flex: none; font-size: 0; }
html body .mb-lightbox__thumbs button img { width: 100%; height: 100%; object-fit: cover; }
html body .mb-lightbox__thumbs button.is-on, html body .mb-lightbox__thumbs button:hover { opacity: 1; border-color: #fff; }
@media (max-width: 767px) { .mb-lightbox__thumbs { display: none; } }
@media (max-width: 1024px) {
	/* On phones and tablets the Call / Request a tour pair sits right under the price, in the flow (never sticky). */
	html body .mb-mobilebar { display: flex; gap: 10px; position: static; margin: 14px 0 4px; padding: 0; background: transparent; box-shadow: none; border-radius: 0; }
	html body .mb-mobilebar .mb-btn { flex: 1; min-height: 50px; }
}

/* ---- Type scale (UX review 2026-10-26): golden-ratio half steps (×1.272) from a 16px base ---- */
:root {
	--mb-fs-s: 14px;   /* captions, eyebrows */
	--mb-fs-0: 16px;   /* body */
	--mb-fs-4: 20px;   /* h4 */
	--mb-fs-3: 26px;   /* h3 */
	--mb-fs-2: 33px;   /* h2 */
	--mb-fs-1: 42px;   /* h1 */
	--mb-fs-hero: 53px;/* home hero only */
	--mb-lh-head: 1.15;
}
@media (max-width: 767px) {
	:root { --mb-fs-4: 18px; --mb-fs-3: 21px; --mb-fs-2: 26px; --mb-fs-1: 33px; --mb-fs-hero: 36px; }
}
html body h1.elementor-heading-title, html body .elementor-widget-heading h1, html body .mb-facts__title, html body .mb-profile__name, html body .mb-404__title, html body .mb-agent-layout .mb-profile__name, html body h1.mb-results__title { font-size: var(--mb-fs-1) !important; line-height: var(--mb-lh-head) !important; }
html body h2.elementor-heading-title, html body .elementor-widget-heading h2, html body .mb-facts__section h2, html body .mb-foot__head .elementor-heading-title, html body .mb-section__title, html body .entry-content h2, html body .elementor-widget-theme-post-content h2 { font-size: var(--mb-fs-2) !important; line-height: var(--mb-lh-head) !important; }
html body h3.elementor-heading-title, html body .elementor-widget-heading h3, html body .mb-svc-row h3, html body .entry-content h3, html body .elementor-widget-theme-post-content h3, html body .mb-faq__item summary, html body .elementor-post__title, html body .elementor-post__title a { font-size: var(--mb-fs-3) !important; line-height: 1.25 !important; }
html body h4.elementor-heading-title, html body .elementor-widget-heading h4, html body .entry-content h4 { font-size: var(--mb-fs-4) !important; line-height: 1.3 !important; }
html body .mb-hero .mb-hero__title .elementor-heading-title { font-size: var(--mb-fs-hero) !important; line-height: 1.08 !important; }
html body h1.mb-results__title { font-size: var(--mb-fs-3) !important; }
html body .mb-facts__title { font-family: var(--mb-display) !important; font-weight: 600 !important; letter-spacing: -.02em; }
html body .mb-facts__price { font-size: var(--mb-fs-2); }
html body .elementor-widget-text-editor, html body .entry-content p, html body .elementor-widget-theme-post-content p, html body .mb-facts__desc { font-size: var(--mb-fs-0); line-height: 1.6; }
html body .elementor-widget-text-editor p { max-width: 68ch; }
html body .elementor-widget-heading .elementor-heading-title { max-width: 24ch; text-wrap: balance; }
html body .elementor-widget-heading[data-widget_type] .elementor-heading-title[style*="text-align:center"], html body .elementor-align-center .elementor-heading-title { margin-left: auto; margin-right: auto; }
.mb-foot__mark .elementor-heading-title { max-width: none !important; }
/* Mobile action bar on the listing page: both buttons read as buttons. */
html body .mb-mobilebar .mb-btn--ghost { border: 1.5px solid var(--mb-navy); }
/* Skip straight past the map to the results. */
.mb-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; padding: 10px 14px; background: var(--mb-navy); color: #fff; border-radius: 8px; font: 600 14px var(--mb-ui); }
.mb-skip:focus { left: 12px; top: 12px; }
/* Nothing below 14px: badges, eyebrows, footer captions, map credits, read-more links. */
html body .mb-badge { font-size: 14px; }
html body .mb-badge.mb-badge--outline { font-size: 14px; }
html body .mb-hsearch__field span { font-size: 14px; }
html body .mb-foot__title .elementor-heading-title, html body .mb-foot__title button { font-size: 14px !important; }
html body .mb-foot__copy, html body .mb-foot__copy p, html body .mb-foot__legal .elementor-icon-list-text, html body .mb-foot__top-link, html body .mb-foot__top-link a { font-size: 14px !important; }
html body .elementor-widget-heading .elementor-heading-title[class*="eyebrow"], html body .mb-hero__eyebrow .elementor-heading-title, html body .elementor-widget-heading .elementor-heading-title.mb-eyebrow { font-size: 14px !important; }
html body .elementor-post__read-more { font-size: 14px !important; }
html body .leaflet-container .leaflet-control-attribution { font-size: 12px; }

/* ---- Forms pass (UX review 2026-10-26) ---- */
.mb-field__error { margin: 6px 0 0; font: 500 14px/1.4 var(--mb-ui); color: var(--mb-red, #B40202); }
html body .is-invalid input, html body .is-invalid select, html body .is-invalid textarea, html body input[aria-invalid="true"], html body select[aria-invalid="true"], html body textarea[aria-invalid="true"] { border-color: var(--mb-red, #B40202) !important; box-shadow: 0 0 0 3px rgba(180,2,2,.12) !important; }
html body .elementor-field-required > .elementor-field-label::after, html body .elementor-field-group.elementor-mark-required .elementor-field-label::after { color: var(--mb-red, #B40202); }
.mb-form label.is-required > span::after { content: " (required)"; color: var(--mb-red, #B40202); font-weight: 500; }
.mb-field--money { position: relative; }
.mb-field--money input { padding-left: 30px !important; }
.mb-field--money::before { content: "$"; position: absolute; left: 14px; bottom: 15px; font: 600 15px var(--mb-ui); color: var(--mb-muted); pointer-events: none; }
.mb-form__stepcount { margin: -6px 0 14px; font: 600 13px var(--mb-ui); color: var(--mb-green); letter-spacing: .04em; text-transform: uppercase; }
html body .mb-foot__nl .elementor-form { display: grid; gap: 8px; }
html body .mb-foot__nl .elementor-field-group { margin: 0; }
html body .mb-foot__nl input { height: 48px; }
.mb-directions { display: inline-block; margin-top: 6px; font-weight: 600; color: var(--mb-navy); text-decoration: underline; }
html body .mb-contact__broker { margin-top: 24px; }
.mb-agent { position: relative; }
.mb-agent__cover { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.mb-agent__cover:focus-visible { outline: 3px solid var(--mb-navy); outline-offset: 2px; }
.mb-agent__reach { position: relative; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 4px; }
.mb-agent__reach a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; font: 600 14px var(--mb-ui); color: var(--mb-navy); text-decoration: none; }
.mb-agent__reach a:hover { text-decoration: underline; }

/* ---- Full-screen split: map flush left, results right (client request 2026-10-26) ---- */
html body .mb-search-con { padding: 0 !important; max-width: none !important; }
.mb-search { max-width: none; margin: 0; }
.mb-search .mb-filters { max-width: min(1312px, calc(100% - 56px)); margin: 0 auto; padding: 18px 0 16px; }
.mb-search__body { border-top: 1px solid var(--mb-line); }
.mb-mapwrap { position: sticky; top: 0; flex: 0 0 50%; max-width: 50%; align-self: flex-start; }
.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { height: 100vh; height: 100dvh; min-height: 0; border-radius: 0; margin: 0; }
.mb-search .mb-results { flex: 1 1 50%; padding: 24px 28px 56px 28px; }
.mb-search[data-view="list"] .mb-results { padding-left: 28px; }
@media (min-width: 1600px) {
	.mb-search { max-width: none; }
	.mb-search .mb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mb-search .mb-results { padding: 28px 40px 64px 40px; }
}
@media (min-width: 1025px) and (max-width: 1599px) {
	.mb-search .mb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
	.mb-mapwrap { position: relative; flex-basis: 100%; max-width: none; }
	.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { height: 420px; }
	.mb-search .mb-filters { max-width: none; padding: 12px 16px 12px; }
	.mb-search .mb-results { padding: 20px 16px 48px; }
	.mb-search[data-view="list"] .mb-results { padding-left: 16px; }
}
@media (max-width: 767px) {
	.mb-search .mb-map, .mb-search .mb-mapwrap .mb-map { height: 70vh; }
}

/* ---- Cards-per-row picker (1 / 2 / 3) beside Sort ---- */
.mb-results__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 18px; }
.mb-results__meta > span:first-child { flex: 1 1 auto; }
.mb-cols { display: inline-flex; gap: 2px; padding: 3px; border: 1px solid var(--mb-line-2); border-radius: 999px; background: #fff; }
html body .mb-search .mb-cols button { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 30px; min-height: 0; border: 0; border-radius: 999px; background: transparent; color: var(--mb-muted); cursor: pointer; padding: 0; margin: 0; box-shadow: none; transform: none; font-size: 0; line-height: 0; transition: background .15s, color .15s; }
html body .mb-search .mb-cols button svg { display: block; width: 16px; height: 16px; }
html body .mb-search .mb-cols button:hover { color: var(--mb-ink); background: var(--mb-tint); }
html body .mb-search .mb-cols button[aria-pressed="true"] { background: var(--mb-navy); color: #fff; }
html body .mb-search .mb-cols button:focus-visible { outline: 2px solid var(--mb-navy); outline-offset: 2px; }
@media (min-width: 1025px) {
	html body .mb-search[data-cols="1"] .mb-grid { grid-template-columns: minmax(0, 1fr); }
	html body .mb-search[data-cols="2"] .mb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html body .mb-search[data-cols="3"] .mb-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mb-search[data-cols="1"] .mb-card { display: grid; grid-template-columns: minmax(0, 44%) minmax(0, 1fr); align-items: stretch; gap: 0 22px; padding: 10px; }
	.mb-search[data-cols="1"] .mb-card__media { aspect-ratio: auto; height: 100%; min-height: 250px; }
	.mb-search[data-cols="1"] .mb-card__body { align-self: center; padding: 8px 10px 8px 0; }
}
@media (max-width: 1024px) {
	.mb-cols { display: none; }
}

/* ---- Range panels: Apply + icon Clear on one row; wider sub-menu ---- */
.mb-panel__actions { grid-column: span 2; display: flex; align-items: center; gap: 8px; }
.mb-panel__actions .mb-btn { flex: 1 1 auto; grid-column: auto; }
html body .mb-panel__actions .mb-panel__clear { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--mb-line-2); background: #fff; color: var(--mb-ink); text-decoration: none; grid-column: auto; transition: border-color .15s, color .15s, background .15s; }
html body .mb-panel__actions .mb-panel__clear:hover { border-color: var(--mb-navy); color: var(--mb-navy); background: var(--mb-tint); }
html body .elementor-nav-menu--main ul.sub-menu { min-width: 0; width: max-content; }
html body .elementor-nav-menu--main ul.sub-menu li, html body .elementor-nav-menu--main ul.sub-menu a { width: auto; min-width: 0; }
html body .elementor-nav-menu--main ul.sub-menu a { white-space: nowrap; }

/* ---- Broker names: brand navy, green on hover, never underlined (site-wide) ---- */
html body .mb-card__agentname, html body a.mb-card__agent, html body .mb-agent__name, html body .mb-agent__cover .mb-agent__name, html body a.mb-contact__name, html body .mb-contact__name a, html body .mb-profile__name a, html body .mb-testimonial__who a, html body .mb-quote__who a { color: var(--mb-navy) !important; text-decoration: none !important; transition: color .15s ease; }
html body a.mb-card__agent:hover .mb-card__agentname, html body a.mb-card__agent:focus-visible .mb-card__agentname, html body .mb-agent:hover .mb-agent__name, html body .mb-agent__cover:hover .mb-agent__name, html body .mb-agent__cover:focus-visible .mb-agent__name, html body a.mb-contact__name:hover, html body a.mb-contact__name:focus-visible, html body .mb-contact__name a:hover, html body .mb-profile__name a:hover, html body .mb-testimonial__who a:hover, html body .mb-quote__who a:hover { color: var(--mb-green) !important; text-decoration: none !important; }
/* Active-filter chips line up with the header and the filter bar. */
.mb-search .mb-fchips { max-width: min(1312px, calc(100% - 56px)); margin: 0 auto; padding: 0 0 14px; }
@media (max-width: 1024px) {
	.mb-search .mb-fchips { max-width: none; padding: 0 16px 12px; }
}

/* ---- Listing contact card: tighter, lighter ---- */
html body .mb-contact { gap: 12px; padding: 22px; border-radius: 22px; }
html body .mb-contact__agent { gap: 14px; }
html body .mb-contact__agent img { width: 60px; height: 72px; border-radius: 10px; }
html body .mb-contact__label { font-size: 13px; }
html body .mb-contact__name { font-size: 21px; }
html body .mb-contact .mb-form { gap: 10px; }
html body .mb-contact .mb-form label { gap: 5px; font-size: 13px; }
html body .mb-contact .mb-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), html body .mb-contact .mb-form textarea, html body .mb-contact .mb-select--field .mb-select__btn { min-height: 44px !important; padding: 9px 14px !important; border-radius: 12px !important; font-size: 15px !important; }
html body .mb-contact .mb-form textarea { min-height: 88px !important; }
html body .mb-contact .mb-form .mb-btn { min-height: 48px; font-size: 15px; }
html body .mb-contact .mb-form .mb-field__error { margin-top: 4px; }

/* ---- Inquiry form: label inside the field (listing + broker contact cards) ---- */
html body .mb-form label { position: relative; display: block; gap: 0; }
html body .mb-form label > span { position: absolute; z-index: 2; top: 9px; left: 15px; right: 15px; font: 600 12px/1.2 var(--mb-ui); color: var(--mb-muted); pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body .mb-form label > span::after { font-size: 11px; }
html body .mb-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), html body .mb-form textarea, html body .mb-form .mb-select--field .mb-select__btn { min-height: 58px !important; padding: 26px 15px 9px !important; border-radius: 14px !important; font: 500 15px/1.3 var(--mb-ui) !important; background: #fff !important; }
html body .mb-form textarea { min-height: 112px !important; }
html body .mb-form .mb-select--field .mb-select__btn { text-align: left; }
html body .mb-form .mb-select--field .mb-select__value { padding: 0; }
html body .mb-form .mb-field__error { margin: 4px 0 0 4px; }
html body .mb-form { gap: 10px; }
.mb-form__actions { display: flex; gap: 8px; align-items: stretch; }
.mb-form__actions .mb-btn { flex: 1 1 auto; }
html body .mb-form__actions .mb-btn--icon, html body .mb-form__actions a.mb-btn--icon { flex: 0 0 52px; width: 52px; min-width: 0; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 0; background: var(--mb-green); color: #fff; transition: background .15s ease, transform .15s ease; }
html body .mb-form__actions .mb-btn--icon:hover, html body .mb-form__actions .mb-btn--icon:focus-visible { background: #0B7A36; color: #fff; }
html body .mb-form__actions .mb-btn--icon, html body .mb-form__actions .mb-btn--icon:hover { color: #fff !important; }
html body .mb-form__actions .mb-btn--icon svg { stroke: #fff; color: #fff; }
html body .mb-contact .mb-form__actions .mb-btn { min-height: 52px; }
html body .mb-contact .mb-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), html body .mb-contact .mb-form textarea, html body .mb-contact .mb-select--field .mb-select__btn { min-height: 58px !important; padding: 26px 15px 9px !important; font-size: 15px !important; }
html body .mb-contact .mb-form textarea { min-height: 112px !important; }
html body .mb-contact .mb-form label { font-size: 12px; }
.mb-facts__section .mb-share { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--mb-line); }
.mb-facts__section .mb-share > div { gap: 8px; }

/* ---- Search typeahead (towns, ZIPs, addresses) ---- */
.mb-suggest { position: fixed; z-index: 100000; margin: 0; padding: 6px; list-style: none; box-sizing: border-box; max-height: 360px; overflow-y: auto; overscroll-behavior: contain; background: #fff; border-radius: 16px; font: 400 15px/1.35 var(--mb-ui); color: var(--mb-ink); box-shadow: 0 0 0 1px rgba(26,26,26,.08), 0 24px 48px -18px rgba(1,55,120,.35), 0 6px 14px -8px rgba(26,26,26,.18); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .16s ease, transform .2s ease, visibility 0s linear .2s; }
.mb-suggest.is-open { opacity: 1; visibility: visible; transform: none; transition: opacity .16s ease, transform .2s ease; }
.mb-suggest__opt { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 8px 12px; border-radius: 10px; cursor: pointer; }
.mb-suggest__opt.is-active, .mb-suggest__opt:hover { background: var(--mb-tint); }
.mb-suggest__ico { flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--mb-light); color: var(--mb-navy); font-size: 13px; font-weight: 700; }
.mb-suggest__text { display: flex; flex-direction: column; min-width: 0; }
.mb-suggest__text > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mb-suggest__text b { color: var(--mb-navy); font-weight: 700; }
.mb-suggest__text small { font-size: 14px; color: var(--mb-muted); }
.mb-hsearch__field input[type="search"]::-webkit-search-cancel-button, .mb-filters__q input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
.mb-hsearch__field input[type="search"]::-webkit-calendar-picker-indicator, .mb-filters__q input[type="search"]::-webkit-calendar-picker-indicator, input[data-suggest]::-webkit-list-button { display: none !important; -webkit-appearance: none; }
/* Broker page: the card is a form with a title (the broker's details are already on the page). */
.mb-contact__title h2 { margin: 0 0 4px; font: 600 24px/1.15 var(--mb-display); color: var(--mb-ink); }
.mb-contact__title p { margin: 0; font-size: 14px; color: var(--mb-muted); }
html body .mb-contact__title h2 { font-size: 24px !important; }

/* ---- Minimal type: one family. Display roles use Instrument Sans 600 with tight tracking. ---- */
html body h1, html body h2, html body h3, html body h4, html body h5, html body .mb-price, html body .mb-results__title, html body .mb-contact__name, html body .mb-agent__name, html body .mb-profile__name, html body .mb-pcard__title, html body .elementor-heading-title:not(.mb-eyebrow):not([class*="eyebrow"]) { font-family: var(--mb-display) !important; font-weight: 600 !important; letter-spacing: -.02em; }
html body .mb-foot__mark .elementor-heading-title { font-weight: 600 !important; letter-spacing: -.03em; }
html body .mb-card__price b, html body .mb-facts__num b, html body .mb-contact__name { letter-spacing: -.02em; }
/* Quote bylines sit centred under the quote everywhere. */
html body .elementor-widget.mb-byline { width: 100% !important; max-width: 100% !important; align-self: stretch !important; }
html body .mb-byline p, html body .mb-byline .elementor-widget-container { text-align: center !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important; }

/* ---- Elementor forms (Contact, Free valuation, Careers, newsletter): same look as the inquiry form — label inside the field, "(required)" after the label, errors that never shift the row ---- */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-form-fields-wrapper { align-items: flex-start; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group { position: relative; margin-bottom: 0 !important; padding-bottom: 18px !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group > .elementor-field-label { position: absolute; z-index: 2; top: 10px; left: 23px; right: 23px; margin: 0; font: 600 12px/1.2 var(--mb-ui) !important; color: var(--mb-muted); pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.elementor-mark-required > .elementor-field-label::after, html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-required > .elementor-field-label::after { content: " (required)"; font-size: 11px; font-weight: 500; color: var(--mb-red, #B40202); }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .elementor-field-textual, html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field .mb-select__btn { min-height: 58px !important; padding: 26px 15px 9px !important; border-radius: 14px !important; font: 500 15px/1.3 var(--mb-ui) !important; background: #fff !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field .mb-select__btn { text-align: left; }
html body .elementor-widget-form:not(.mb-foot__nl) textarea.elementor-field-textual { min-height: 128px !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money .elementor-field-textual { padding-left: 30px !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money::before { bottom: auto; top: 31px; left: 15px; font-size: 15px; }
/* Error text flows under the field; the row grows evenly, nothing overlaps. */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-field__error { position: static; margin: 6px 0 0 8px; font-size: 14px; line-height: 1.3; }
/* Checkboxes, radios, step buttons and the submit keep their normal label. */
html body .elementor-widget-form .elementor-field-type-checkbox > .elementor-field-label, html body .elementor-widget-form .elementor-field-type-radio > .elementor-field-label, html body .elementor-widget-form .elementor-field-type-acceptance > .elementor-field-label, html body .elementor-widget-form .elementor-field-type-upload > .elementor-field-label { position: static; font-size: 14px !important; margin-bottom: 8px; pointer-events: auto; white-space: normal; }
html body .elementor-widget-form .elementor-field-type-upload .elementor-field-textual { padding: 14px 15px !important; min-height: 0 !important; }
html body .elementor-widget-form .elementor-field-type-submit, html body .elementor-widget-form .elementor-field-type-step { padding-bottom: 0 !important; }
html body .elementor-widget-form .e-form__buttons { margin-top: 6px; }
/* Browser autofill must not repaint or resize the field (Chrome paints a blue box and its own text colour). */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .elementor-field-textual { height: 58px; box-sizing: border-box; }
html body .elementor-widget-form:not(.mb-foot__nl) textarea.elementor-field-textual { height: auto; }
html body .elementor-widget-form .elementor-field-textual:-webkit-autofill, html body .elementor-widget-form .elementor-field-textual:-webkit-autofill:hover, html body .elementor-widget-form .elementor-field-textual:-webkit-autofill:focus, html body .mb-form input:-webkit-autofill, html body .mb-form input:-webkit-autofill:focus { -webkit-box-shadow: 0 0 0 1000px #fff inset !important; box-shadow: 0 0 0 1000px #fff inset !important; -webkit-text-fill-color: var(--mb-ink) !important; caret-color: var(--mb-ink); transition: background-color 999999s ease-in-out 0s; }
html body .elementor-widget-form .elementor-field-textual:autofill, html body .mb-form input:autofill { background: #fff !important; }
/* Every field in a row is exactly 58px, selects included, so columns line up. */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group { align-items: flex-start; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .elementor-select-wrapper, html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field { height: 58px; width: 100%; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field .mb-select__btn { height: 58px !important; max-height: 58px; box-sizing: border-box; line-height: 1.3 !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field .mb-select__value { line-height: 1.3; }
html body .mb-form .mb-select--field, html body .mb-form .mb-select--field .mb-select__btn { height: 58px !important; max-height: 58px; box-sizing: border-box; }
/* Invalid state wins over the field base rule for inputs and textareas too (selects already did). */
html body .elementor-widget-form .elementor-field-group.is-invalid .elementor-field-textual, html body .elementor-widget-form .elementor-field-group .elementor-field-textual[aria-invalid="true"], html body .elementor-widget-form .elementor-field-group.is-invalid .mb-select__btn, html body .mb-form label.is-invalid input, html body .mb-form label.is-invalid textarea, html body .mb-form input[aria-invalid="true"], html body .mb-form textarea[aria-invalid="true"] { border-color: var(--mb-red, #B40202) !important; box-shadow: 0 0 0 3px rgba(180,2,2,.12) !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group textarea.elementor-field-textual { height: auto; min-height: 120px !important; resize: vertical; }
@media (max-width: 480px) {
	html body .elementor-widget-form .e-form__buttons { flex-direction: column; flex-wrap: nowrap; gap: 10px; }
	html body .elementor-widget-form .e-form__buttons__wrapper { width: 100%; max-width: 100%; flex: 0 0 auto; padding-bottom: 0 !important; }
	html body .elementor-widget-form .e-form__buttons__wrapper button { width: 100% !important; margin: 0 !important; }
	html body .elementor-widget-form .e-form__buttons .elementor-field-type-next, html body .elementor-widget-form .e-form__buttons .elementor-field-type-submit { order: -1; }
}
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money::before { left: 23px; top: 30px; font-size: 15px; line-height: 20px; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money .elementor-field-textual { padding-left: 36px !important; }
html body .mb-form { gap: 14px; }
html body .mb-form label > span { top: 10px; }

/* ---- Listing badge sits top-right on every card ---- */
html body .mb-card__media .mb-badge { left: auto; right: 12px; top: 12px; bottom: auto; }
html body .mb-card__media .mb-badge.is-status { right: auto; left: 12px; top: 12px; bottom: auto; }
html body .mb-card__media .mb-badge.is-business, html body .mb-card__media .mb-badge.is-sale, html body .mb-card__media .mb-badge.is-lease { right: 12px; left: auto; }
/* "$" reads as part of the number: same type as the value, flush against it, grey only while the field is empty. */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money::before { left: 23px; top: 27px; font: 500 15px/20px var(--mb-ui); color: var(--mb-ink); }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money:has(input:placeholder-shown)::before { color: var(--mb-muted); opacity: .75; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money .elementor-field-textual { padding-left: 23.5px !important; }
html body .mb-form .mb-field--money::before { left: 15px; top: 27px; bottom: auto; font: 500 15px/20px var(--mb-ui); color: var(--mb-ink); }
html body .mb-form .mb-field--money:has(input:placeholder-shown)::before { color: var(--mb-muted); opacity: .75; }
html body .mb-form .mb-field--money input { padding-left: 24.5px !important; }
/* Same baseline: the input centres its 19.5px line in a 22px content box (58 − 27 − 9), so the sign starts at 28.25px. */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.mb-field--money::before { top: 28.05px; line-height: 19.5px; }
html body .mb-form .mb-field--money::before { top: 28.05px; line-height: 19.5px; }

/* ---- Golden-ratio heading block (trial on the home "Now available"): 42 → 26 → 16 → 10, each step ÷ 1.618.
   Title 42/1.1 · subtitle 16 with a 26px line · 10px between them · 42px to the cards · button centred on the block. ---- */
html body .mb-golden h2, html body .mb-golden .elementor-heading-title { font-size: 42px !important; line-height: 1.1 !important; letter-spacing: -.02em; }
html body .mb-golden p { font-size: 16px !important; line-height: 26px !important; font-weight: 400; color: var(--mb-muted); max-width: 42em; }
html body .mb-golden > .e-con-inner, html body .mb-golden.e-con { gap: 10px !important; }
html body .e-con:has(> .e-con-inner > .mb-golden), html body .e-con:has(> .mb-golden) { align-items: center !important; }
html body .e-con:has(> .e-con-inner > .mb-golden) > .e-con-inner, html body .e-con:has(> .mb-golden) { align-items: center !important; }
html body .e-con:has(.mb-golden) > .e-con-inner, html body .e-con.e-con:has(> .e-con-inner > .e-con:has(.mb-golden)) > .e-con-inner { row-gap: 26px !important; }
@media (max-width: 767px) {
	html body .mb-golden h2, html body .mb-golden .elementor-heading-title { font-size: 33px !important; }
	html body .mb-golden p { font-size: 16px !important; line-height: 26px !important; }
	html body .e-con:has(.mb-golden) > .e-con-inner { row-gap: 26px !important; }
}

/* ---- Brokers rail: drag with the mouse, loops endlessly ---- */
.mb-agents--rail { cursor: grab; scroll-behavior: smooth; }
.mb-agents--rail.is-grabbing { cursor: grabbing; }
.mb-agents--rail.is-dragging, .mb-agents--rail.is-jumping { scroll-snap-type: none; scroll-behavior: auto; }
.mb-agents--rail.is-dragging * { user-select: none; pointer-events: none; }
html body button.mb-rail__btn:disabled { opacity: 0; }

/* ---- Listing badge: frosted glass (Apple-style), same on every card ---- */
html body .mb-card__media .mb-badge, html body .mb-card__media .mb-badge.is-sale, html body .mb-card__media .mb-badge.is-lease, html body .mb-card__media .mb-badge.is-business, html body .mb-card__media .mb-badge.is-status { background: rgba(255,255,255,.34); color: var(--mb-navy); border: 1px solid rgba(255,255,255,.55); box-shadow: 0 1px 3px rgba(0,0,0,.10), inset 0 1px 0 rgba(255,255,255,.45); -webkit-backdrop-filter: blur(10px) saturate(160%); backdrop-filter: blur(10px) saturate(160%); text-shadow: 0 1px 1px rgba(255,255,255,.45); }
html body .mb-card__media .mb-badge.is-business { color: var(--mb-navy); }
html body .mb-card__media .mb-badge.is-status { color: var(--mb-navy); }
@supports not (backdrop-filter: blur(1px)) { html body .mb-card__media .mb-badge { background: rgba(255,255,255,.85); } }
/* Round search buttons: icon dead centre (the kit button rule set display:block). */
html body .mb-hsearch__go, html body .mb-filters__q button { display: inline-flex !important; align-items: center; justify-content: center; line-height: 0; padding: 0 !important; }
html body .mb-hsearch__go svg, html body .mb-filters__q button svg { display: block; }

/* ---- Header menu pill as frosted glass (trial) ---- */
@media (min-width: 1025px) {
	html body .elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container { background: rgba(255,255,255,.55) !important; border: 1px solid rgba(255,255,255,.7); box-shadow: 0 1px 2px rgba(0,0,0,.05), 0 10px 30px -18px rgba(1,55,120,.35), inset 0 1px 0 rgba(255,255,255,.6); -webkit-backdrop-filter: blur(16px) saturate(170%); backdrop-filter: blur(16px) saturate(170%); }
	html body .elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active, html body .elementor-location-header .elementor-nav-menu--main li.mb-hover > a { background: var(--mb-navy); color: #fff !important; }
	html body .elementor-location-header .elementor-nav-menu--main .sub-menu { background: rgba(255,255,255,.78) !important; -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); border: 1px solid rgba(255,255,255,.7); }
	html body .elementor-location-header .elementor-nav-menu--main .sub-menu a { background: transparent; }
	html body .elementor-location-header .elementor-nav-menu--main .sub-menu a:hover { background: rgba(1,55,120,.08); }
}
/* Header CTA: the same glass, in brand navy. */
html body .mb-head__cta .elementor-button { background: rgba(1,55,120,.82) !important; border: 1px solid rgba(255,255,255,.28); box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 10px 30px -16px rgba(1,55,120,.6), inset 0 1px 0 rgba(255,255,255,.22); -webkit-backdrop-filter: blur(14px) saturate(170%); backdrop-filter: blur(14px) saturate(170%); color: #fff !important; transition: background-color .2s, transform .2s; }
html body .mb-head__cta .elementor-button:hover, html body .mb-head__cta .elementor-button:focus-visible { background: rgba(5,94,40,.86) !important; }
html body .e-con-inner:has(> .e-con .mb-golden) { row-gap: 26px !important; }

/* ---- Forms as frosted glass (trial): card, fields, buttons ---- */
html body .mb-form-card, html body .mb-contact { background: rgba(255,255,255,.62) !important; border: 1px solid rgba(255,255,255,.8); box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 24px 48px -28px rgba(1,55,120,.35), inset 0 1px 0 rgba(255,255,255,.7); -webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .elementor-field-textual, html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .mb-select--field .mb-select__btn, html body .mb-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), html body .mb-form textarea, html body .mb-form .mb-select--field .mb-select__btn { background: rgba(255,255,255,.55) !important; border-color: rgba(1,55,120,.14) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group .elementor-field-textual:focus, html body .mb-form input:focus, html body .mb-form textarea:focus { background: rgba(255,255,255,.85) !important; border-color: var(--mb-navy) !important; box-shadow: 0 0 0 3px rgba(1,55,120,.12) !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.is-invalid .elementor-field-textual, html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group.is-invalid .mb-select__btn, html body .mb-form label.is-invalid input, html body .mb-form label.is-invalid textarea { border-color: var(--mb-red, #B40202) !important; box-shadow: 0 0 0 3px rgba(180,2,2,.12) !important; }
html body .elementor-widget-form:not(.mb-foot__nl) button[type="submit"], html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-next, html body .mb-form button.mb-btn[type="submit"] { background: rgba(1,55,120,.84) !important; border: 1px solid rgba(255,255,255,.28); box-shadow: 0 1px 2px rgba(0,0,0,.08), 0 12px 30px -16px rgba(1,55,120,.6), inset 0 1px 0 rgba(255,255,255,.22); -webkit-backdrop-filter: blur(14px) saturate(170%); backdrop-filter: blur(14px) saturate(170%); color: #fff !important; }
html body .elementor-widget-form:not(.mb-foot__nl) button[type="submit"]:hover, html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-next:hover, html body .mb-form button.mb-btn[type="submit"]:hover { background: rgba(5,94,40,.88) !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-previous { background: rgba(255,255,255,.5) !important; border: 1px solid rgba(1,55,120,.25) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--mb-navy) !important; }
html body .mb-form__actions .mb-btn--icon, html body .mb-form__actions a.mb-btn--icon { background: rgba(5,94,40,.84) !important; border: 1px solid rgba(255,255,255,.28); -webkit-backdrop-filter: blur(14px) saturate(170%); backdrop-filter: blur(14px) saturate(170%); }
/* Glass fields: keep the dollar sign and the custom chevron above the blurred field; hide Elementor's own caret. */
html body .elementor-widget-form .elementor-field-group.mb-field--money::before, html body .mb-form .mb-field--money::before { z-index: 3; }
html body .elementor-widget-form .elementor-select-wrapper:has(.mb-select) .select-caret-down-wrapper, html body .elementor-select-wrapper.has-mb-select .select-caret-down-wrapper { display: none !important; }
html body .elementor-widget-form .elementor-field-group .mb-select--field .mb-select__btn, html body .mb-form .mb-select--field .mb-select__btn { position: relative; z-index: 2; }
/* Labels always on top of the blurred field. */
html body .elementor-widget-form:not(.mb-foot__nl) .elementor-field-group > .elementor-field-label, html body .mb-form label > span { z-index: 5; }
/* Form buttons: solid brand navy with a glassy top highlight, radius matching the fields. */
html body .elementor-widget-form:not(.mb-foot__nl) button[type="submit"], html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-next, html body .mb-form button.mb-btn[type="submit"] { background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-navy) !important; border: 1px solid rgba(255,255,255,.18); border-radius: 14px !important; box-shadow: 0 1px 2px rgba(0,0,0,.12), 0 10px 24px -14px rgba(1,55,120,.7), inset 0 1px 0 rgba(255,255,255,.28); -webkit-backdrop-filter: none; backdrop-filter: none; color: #fff !important; min-height: 54px; font-weight: 600; letter-spacing: -.01em; }
html body .elementor-widget-form:not(.mb-foot__nl) button[type="submit"]:hover, html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-next:hover, html body .mb-form button.mb-btn[type="submit"]:hover { background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-green) !important; }
html body .elementor-widget-form:not(.mb-foot__nl) .e-form__buttons__wrapper__button-previous { background: rgba(255,255,255,.55) !important; border: 1px solid rgba(1,55,120,.18) !important; border-radius: 14px !important; color: var(--mb-navy) !important; min-height: 54px; box-shadow: inset 0 1px 0 rgba(255,255,255,.7); }
html body .mb-form__actions .mb-btn--icon, html body .mb-form__actions a.mb-btn--icon { background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0) 55%), var(--mb-green) !important; border: 1px solid rgba(255,255,255,.2); border-radius: 14px; -webkit-backdrop-filter: none; backdrop-filter: none; }
html body .mb-form__actions .mb-btn--icon:hover { background: linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0) 55%), #0B7A36 !important; }

/* ==== Glass system, listings page (preview of the site-wide style) ==== */
:root { --mb-glass: rgba(255,255,255,.6); --mb-glass-line: rgba(255,255,255,.75); --mb-glass-ink-line: rgba(1,55,120,.14); --mb-glass-shadow: 0 1px 2px rgba(0,0,0,.05), 0 12px 32px -20px rgba(1,55,120,.35), inset 0 1px 0 rgba(255,255,255,.65); --mb-glass-blur: blur(16px) saturate(170%); --mb-navy-glass: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-navy); }
/* Search box, filter pills, chips */
html body .mb-search .mb-filters__q, html body .mb-search .mb-pill, html body .mb-search .mb-viewtoggle, html body .mb-search .mb-cols, html body .mb-search .mb-fchip { background: var(--mb-glass); border: 1px solid var(--mb-glass-ink-line); box-shadow: var(--mb-glass-shadow); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); }
html body .mb-search .mb-pill.is-on { background: rgba(1,55,120,.10); border-color: rgba(1,55,120,.35); color: var(--mb-navy); }
html body .mb-search .mb-filters__q button, html body .mb-search .mb-viewtoggle button[aria-pressed="true"], html body .mb-search .mb-cols button[aria-pressed="true"] { background: var(--mb-navy-glass) !important; color: #fff !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
html body .mb-search .mb-filters__q button:hover { background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-green) !important; }
html body .mb-search .mb-fchips__clear { color: var(--mb-navy); }
/* Panels (price / size) */
html body .mb-search .mb-panel { background: rgba(255,255,255,.82); border: 1px solid var(--mb-glass-line); -webkit-backdrop-filter: blur(20px) saturate(170%); backdrop-filter: blur(20px) saturate(170%); box-shadow: 0 0 0 1px rgba(26,26,26,.06), 0 24px 48px -18px rgba(1,55,120,.35); }
html body .mb-panel .mb-btn { background: var(--mb-navy-glass); border: 1px solid rgba(255,255,255,.18); border-radius: 12px; box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
/* Custom select lists */
html body .mb-select__list { background: rgba(255,255,255,.82); -webkit-backdrop-filter: blur(20px) saturate(170%); backdrop-filter: blur(20px) saturate(170%); border: 1px solid var(--mb-glass-line); }
/* Map controls and pins */
html body .mb-map .leaflet-bar, html body .mb-map .leaflet-bar a, html body .mb-map__move { background: var(--mb-glass); border: 1px solid var(--mb-glass-ink-line); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); color: var(--mb-ink); box-shadow: var(--mb-glass-shadow); }
html body .mb-map .leaflet-bar a { border-width: 0 0 1px; border-radius: 0; box-shadow: none; }
html body .mb-map .leaflet-bar a:last-child { border-bottom: 0; }
html body .mb-map .leaflet-bar { border-radius: 12px; overflow: hidden; }
html body .mb-map__redo { background: var(--mb-navy-glass); border: 1px solid rgba(255,255,255,.2); }
html body .mb-pin span { background: rgba(1,55,120,.86); border: 1px solid rgba(255,255,255,.3); -webkit-backdrop-filter: blur(8px) saturate(160%); backdrop-filter: blur(8px) saturate(160%); box-shadow: 0 1px 2px rgba(0,0,0,.12), 0 6px 16px -6px rgba(1,55,120,.5), inset 0 1px 0 rgba(255,255,255,.25); }
html body .mb-pin.is-active span, html body .mb-pin:hover span { background: rgba(255,255,255,.9); color: var(--mb-navy); }
html body .mb-cluster span { background: rgba(1,55,120,.84); border: 1px solid rgba(255,255,255,.35); -webkit-backdrop-filter: blur(8px) saturate(160%); backdrop-filter: blur(8px) saturate(160%); box-shadow: 0 0 0 5px rgba(1,55,120,.14), 0 4px 12px rgba(1,55,120,.3), inset 0 1px 0 rgba(255,255,255,.25); }
html body .mb-map .leaflet-popup-content-wrapper { background: rgba(255,255,255,.85); -webkit-backdrop-filter: blur(16px) saturate(170%); backdrop-filter: blur(16px) saturate(170%); border: 1px solid var(--mb-glass-line); }
/* Cards, agent pill, load more */
html body .mb-search .mb-card { background: rgba(255,255,255,.68); border: 1px solid var(--mb-glass-line); box-shadow: var(--mb-glass-shadow); -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%); }
html body .mb-search .mb-card:hover { background: rgba(255,255,255,.82); }
html body .mb-loadmore__btn { background: var(--mb-navy-glass) !important; border: 1px solid rgba(255,255,255,.18); box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 10px 24px -14px rgba(1,55,120,.7); }
/* Sort select trigger */
html body .mb-sort .mb-select__btn { background: transparent; }
/* Open filter panels sit above the sticky map and the glass cards (backdrop-filter makes stacking contexts). */
html body .mb-search .mb-filters { position: relative; z-index: 40; }
html body .mb-search .mb-pill { position: relative; z-index: 1; }
html body .mb-search .mb-pill--panel[open] { z-index: 60; }
html body .mb-search .mb-mapwrap { z-index: 1; }

/* ==== Glass system, site-wide ==== */
/* Cards and boxes */
html body .mb-glass-card, html body .mb-card, html body .mb-cta, html body .mb-tile, html body .mb-svc-card, html body .mb-contact, html body .mb-form-card, html body .mb-hero__badge, html body .mb-foot__nl, html body .mb-testimonial, html body .mb-quote-card { background: rgba(255,255,255,.62) !important; border: 1px solid var(--mb-glass-line); box-shadow: var(--mb-glass-shadow); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); }
html body .mb-card:hover, html body .mb-tile:hover, html body .mb-svc-card:hover { background: rgba(255,255,255,.8) !important; }
html body .mb-glass-card .mb-glass-card, html body .mb-valband > .e-con-inner > .e-con, html body .mb-valband .e-con { background: transparent !important; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html body .mb-on-white .mb-card { box-shadow: var(--mb-glass-shadow); }
/* Hero search bar + tabs */
html body .mb-hsearch__bar { background: rgba(255,255,255,.66); border: 1px solid var(--mb-glass-line); box-shadow: var(--mb-glass-shadow); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); }
html body .mb-hsearch__tabs label, html body .mb-hsearch__tab { background: var(--mb-glass); border: 1px solid var(--mb-glass-ink-line); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); }
html body .mb-hsearch__tabs input:checked + span, html body .mb-hsearch__tabs label.is-on, html body .mb-hsearch__tab.is-on { background: var(--mb-navy-glass); color: #fff; }
html body .mb-hsearch__go { background: var(--mb-navy-glass) !important; border: 1px solid rgba(255,255,255,.18); box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
/* Buttons: primary navy with the glass highlight, ghosts as white glass */
html body .mb-glass-btn .elementor-button, html body .mb-btn:not(.mb-btn--ghost):not(.mb-btn--icon), html body .mb-loadmore__btn, html body .mb-mobilebar .mb-btn:not(.mb-btn--ghost) { background-image: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%) !important; border: 1px solid rgba(255,255,255,.18); box-shadow: 0 1px 2px rgba(0,0,0,.1), 0 10px 24px -14px rgba(1,55,120,.6), inset 0 1px 0 rgba(255,255,255,.26); }
html body .mb-glass-ghost .elementor-button, html body .mb-btn--ghost { background: rgba(255,255,255,.5) !important; border: 1px solid rgba(1,55,120,.22) !important; box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
html body .mb-glass-ghost .elementor-button:hover, html body .mb-btn--ghost:hover { background: rgba(255,255,255,.8) !important; border-color: var(--mb-navy) !important; }
/* Header: phone pill and the whole bar's pills share the look (menu + CTA already glass) */
html body .elementor-location-header .elementor-widget-button:not(.mb-head__cta) .elementor-button { background: transparent !important; }
/* Mobile drawer and footer newsletter field */
html body .mb-drawer { background: rgba(255,255,255,.86); -webkit-backdrop-filter: blur(24px) saturate(170%); backdrop-filter: blur(24px) saturate(170%); }
html body .mb-foot__nl input { background: rgba(255,255,255,.7) !important; border-color: rgba(1,55,120,.14) !important; }
/* Dropdown/select lists everywhere */
html body .mb-select__list { background: rgba(255,255,255,.84); }
/* Listing page chips and facts tiles */
html body .mb-chip, html body .mb-facts__chip, html body .mb-facts__tile { background: rgba(255,255,255,.62) !important; border: 1px solid var(--mb-glass-line); -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); box-shadow: var(--mb-glass-shadow); }

/* ---- Fix-ups after the glass pass ---- */
/* Hero tabs: the pill is the span; the label carries nothing. */
html body .mb-hsearch__tabs label { background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html body .mb-hsearch__tabs span { background: var(--mb-glass); border: 1px solid var(--mb-glass-ink-line); border-radius: 999px; -webkit-backdrop-filter: var(--mb-glass-blur); backdrop-filter: var(--mb-glass-blur); box-shadow: inset 0 1px 0 rgba(255,255,255,.6); }
html body .mb-hsearch__tabs input:checked + span { background: var(--mb-navy-glass); border-color: rgba(255,255,255,.18); color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.28); }
/* Insights rows stay flat (no box, no glass). */
html body .elementor-widget-posts .elementor-post, html body .elementor-widget-posts .elementor-post__card { background: transparent !important; border: 0 !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Footer newsletter: full-width field. */
html body .mb-foot__nl .elementor-form, html body .mb-foot__nl .elementor-form-fields-wrapper { width: 100%; }
html body .mb-foot__nl .elementor-field-group { width: 100% !important; max-width: none !important; }
html body .mb-foot__nl input { width: 100% !important; min-width: 0; }
/* FAQ: one quiet list, no per-item boxes. */
html body .mb-faq__item { background: transparent !important; border: 0; border-bottom: 1px solid var(--mb-line); border-radius: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
/* Service cards: arrow on the right of the "Explore" row, no divider, tidy bottom. */
html body .mb-svc-card > .mb-svc-card__more { border-top: 0; padding-top: 8px; }
html body .mb-svc-card__more .elementor-heading-title::after { content: none; }
.mb-svc-card__arrow { flex: 0 0 auto; width: 44px; height: 44px; border-radius: 50%; margin-left: auto; box-shadow: inset 0 0 0 1.5px var(--mb-line-2); background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23013778' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / 16px; transition: background-color .25s ease, box-shadow .25s ease, transform .35s var(--mb-ease); }
@media (hover: hover) { html body .mb-svc-card:hover .mb-svc-card__arrow { background-color: var(--mb-navy); box-shadow: none; transform: translateX(4px); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E"); } }
/* Row actions beside section titles: text + arrow, arrow slides on hover. */
html body .mb-textlink-wrap .elementor-heading-title { font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0; }
html body a.mb-textlink { display: inline-flex; align-items: center; gap: 8px; color: var(--mb-navy) !important; text-decoration: none; white-space: nowrap; }
html body a.mb-textlink .mb-textlink__arrow { display: inline-block; transition: transform .25s var(--mb-ease); }
html body a.mb-textlink:hover, html body a.mb-textlink:focus-visible { color: var(--mb-green) !important; }
html body a.mb-textlink:hover .mb-textlink__arrow, html body a.mb-textlink:focus-visible .mb-textlink__arrow { transform: translateX(6px); }
/* Header CTA: green glass. */
html body .mb-head__cta .elementor-button { background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-green) !important; }
html body .mb-head__cta .elementor-button:hover, html body .mb-head__cta .elementor-button:focus-visible { background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 55%), var(--mb-navy) !important; }
html body .mb-svc-card > .mb-svc-card__more { width: 100% !important; align-self: stretch; }
html body .mb-svc-card__more .elementor-heading-title { width: 100% !important; max-width: none !important; display: flex !important; justify-content: space-between; align-items: center; }

/* ==== Footer v2: minimal, two tiers ==== */
html body .mb-foot--v2 .mb-foot__top { display: grid !important; grid-template-columns: minmax(0, 1.15fr) minmax(0, 2fr); gap: 56px 96px !important; align-items: start; padding-bottom: 44px !important; border-bottom: 1px solid var(--mb-line); }
html body .mb-foot--v2 .mb-foot__brand { max-width: 380px; width: 100% !important; }
html body .mb-foot--v2 .mb-foot__blurb p { margin: 0; max-width: 34ch; }
html body .mb-foot--v2 .mb-foot__cols { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px !important; width: 100% !important; padding: 0 !important; border: 0; }
html body .mb-foot--v2 .mb-foot__col { width: auto !important; min-width: 0; padding: 0 !important; border: 0 !important; gap: 14px !important; }
html body .mb-foot--v2 .mb-foot__title .elementor-heading-title, html body .mb-foot--v2 .mb-foot__title { font-size: 14px !important; letter-spacing: .12em !important; color: var(--mb-muted) !important; text-transform: uppercase; margin: 0; }
html body .mb-foot--v2 .mb-foot__links .elementor-icon-list-items { display: flex; flex-direction: column; gap: 0; }
html body .mb-foot--v2 .mb-foot__links .elementor-icon-list-item { margin: 0 !important; padding: 7px 0 !important; }
html body .mb-foot--v2 .mb-foot__links .elementor-icon-list-text { font-size: 15px; color: var(--mb-ink); background: none; }
html body .mb-foot--v2 .mb-foot__links a:hover .elementor-icon-list-text { color: var(--mb-navy); background: none; }
/* Newsletter: one pill, field + button */
html body .mb-foot--v2 .mb-foot__signup { width: 100% !important; margin-top: 8px; }
html body .mb-foot--v2 .mb-foot__nl, html body .mb-foot--v2 .mb-foot__nl > .elementor-widget-container { background: transparent !important; border: 0 !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; padding: 0 !important; margin: 0 !important; }
html body .mb-foot--v2 .mb-foot__nl .elementor-form { display: flex !important; align-items: center; gap: 6px; padding: 5px 5px 5px 6px; border-radius: 999px; background: rgba(255,255,255,.6); border: 1px solid rgba(1,55,120,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.7); -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%); }
html body .mb-foot--v2 .mb-foot__nl .elementor-form-fields-wrapper { display: flex !important; align-items: center; flex: 1 1 auto; min-width: 0; gap: 6px; }
html body .mb-foot--v2 .mb-foot__nl .elementor-field-group { flex: 1 1 auto; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
html body .mb-foot--v2 .mb-foot__nl .elementor-field-type-submit { flex: 0 0 auto; width: auto !important; }
html body .mb-foot--v2 .mb-foot__nl input { height: 42px !important; min-height: 0 !important; padding: 0 14px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 15px !important; }
html body .mb-foot--v2 .mb-foot__nl input:focus { outline: 0; }
html body .mb-foot--v2 .mb-foot__nl button[type="submit"] { height: 42px; min-height: 42px !important; padding: 0 18px !important; border-radius: 999px !important; font-size: 14px !important; white-space: nowrap; }
html body .mb-foot--v2 .mb-foot__nl .elementor-message { margin: 8px 0 0 12px; font-size: 14px; }
html body .mb-foot--v2 .mb-foot__nl .mb-field__error { margin: 6px 0 0 12px; }
/* Office line */
html body .mb-foot--v2 .mb-foot__office { padding: 22px 0 !important; border-bottom: 1px solid var(--mb-line); }
html body .mb-foot--v2 .mb-foot__line { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 0; margin: 0; }
html body .mb-foot--v2 .mb-foot__line > * { position: relative; padding-right: 28px; white-space: nowrap; }
html body .mb-foot--v2 .mb-foot__line > * + * { padding-left: 0; }
html body .mb-foot--v2 .mb-foot__line > *:not(:last-child)::after { content: ""; position: absolute; right: 13px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: var(--mb-line-2); transform: translateY(-50%); }
html body .mb-foot--v2 .mb-foot__line a { color: var(--mb-navy) !important; font-weight: 600; text-decoration: none; }
html body .mb-foot--v2 .mb-foot__line a:hover { color: var(--mb-green) !important; }
/* Bottom bar */
html body .mb-foot--v2 .mb-foot__bar { padding: 22px 0 0 !important; border: 0 !important; }
html body .mb-foot--v2 .mb-foot__copy p { color: var(--mb-muted); }
html body .mb-foot--v2 .mb-foot__legal .elementor-icon-list-text, html body .mb-foot--v2 .mb-foot__top-link a { font-size: 14px; }
html body .mb-foot--v2 .mb-foot__top-link a { color: var(--mb-navy) !important; display: inline-flex; align-items: center; gap: 6px; }
html body .mb-foot--v2 .mb-foot__top-link svg { transition: transform .25s var(--mb-ease); }
html body .mb-foot--v2 .mb-foot__top-link a:hover svg { transform: translateY(-3px); }
@media (max-width: 1024px) {
	html body .mb-foot--v2 .mb-foot__top { grid-template-columns: 1fr; gap: 40px !important; }
	html body .mb-foot--v2 .mb-foot__brand { max-width: 480px; }
	html body .mb-foot--v2 .mb-foot__cols { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 0; }
}
@media (max-width: 767px) {
	html body .mb-foot--v2 .mb-foot__cols { grid-template-columns: 1fr !important; gap: 0 !important; display: block !important; border-bottom: 0; }
	html body .mb-foot--v2 .mb-foot__col { border-top: 1px solid var(--mb-line) !important; padding: 0 !important; }
	html body .mb-foot--v2 .mb-foot__line { flex-direction: column; align-items: flex-start; gap: 10px; }
	html body .mb-foot--v2 .mb-foot__line > * { padding-right: 0; white-space: normal; }
	html body .mb-foot--v2 .mb-foot__line > *::after { display: none; }
	html body .mb-foot--v2 .mb-foot__nl .elementor-form { flex-direction: column; align-items: stretch; border-radius: 22px; padding: 6px; }
	html body .mb-foot--v2 .mb-foot__nl .elementor-form-fields-wrapper { width: 100%; }
	html body .mb-foot--v2 .mb-foot__nl button[type="submit"] { width: 100%; }
	html body .mb-foot--v2 .mb-foot__bar { flex-direction: column; align-items: flex-start !important; gap: 12px !important; }
}
html body .mb-foot--v2 .mb-foot__nl .elementor-field-group .elementor-field-textual { height: 42px !important; min-height: 0 !important; padding: 0 14px !important; border: 0 !important; background: transparent !important; box-shadow: none !important; -webkit-backdrop-filter: none; backdrop-filter: none; border-radius: 999px !important; }
html body .mb-foot--v2 .mb-foot__nl .elementor-field-group .elementor-field-textual:focus { background: transparent !important; box-shadow: none !important; }
html body .mb-foot--v2 .mb-foot__nl .elementor-form:focus-within { border-color: rgba(1,55,120,.4); box-shadow: 0 0 0 3px rgba(1,55,120,.1); }
html body .mb-foot--v2 .mb-foot__office p, html body .mb-foot--v2 .mb-foot__blurb p, html body .mb-foot--v2 .mb-foot__copy p { max-width: none !important; }
html body .mb-foot--v2 .mb-foot__links .elementor-icon-list-item { padding: 4px 0 !important; }
html body .mb-foot--v2 .mb-foot__links .elementor-icon-list-items { gap: 2px; }
html body .mb-foot--v2 .mb-foot__top { padding-bottom: 36px !important; }
