/* Rubik (SIL Open Font License 1.1, see assets/fonts/OFL-Rubik.txt), bundled so no request goes to Google. */
@font-face {
	font-family: 'Rubik';
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url('../fonts/rubik-hebrew.woff2') format('woff2');
	unicode-range: U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
	font-family: 'Rubik';
	font-style: normal;
	font-weight: 400 800;
	font-display: swap;
	src: url('../fonts/rubik-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Property Map 3D, front end. Layout: full-bleed map, info panel on the inline-start side
   (right in Hebrew), bottom sheet when the container is narrow. */

.pm3d {
	--pm3d-accent: #b5651d;
	--pm3d-height: 640px;
	--pm3d-ink: #1d2124;
	--pm3d-muted: #5d646b;
	--pm3d-line: #e3dfd6;
	--pm3d-panel: #fbfaf7;
	--pm3d-stone: #f1eee7;
	--pm3d-dark: #23272b;
	--pm3d-sand: #d8b878;
	--pm3d-radius: 16px;
	--pm3d-shadow: 0 12px 40px rgba(20, 24, 28, 0.22), 0 2px 8px rgba(20, 24, 28, 0.12);

	position: relative;
	width: 100%;
	height: var(--pm3d-height);
	min-height: 420px;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--pm3d-radius);
	background: #e8e4da;
	color: var(--pm3d-ink);
	font-family: 'Rubik', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
.pm3d *,
.pm3d *::before,
.pm3d *::after {
	box-sizing: border-box;
}
.pm3d [hidden] {
	display: none !important;
}
.pm3d:fullscreen {
	height: 100vh;
	border-radius: 0;
}

.pm3d__boot {
	margin: 0;
	padding: 24px;
	color: var(--pm3d-muted);
}
.pm3d__stage,
.pm3d__map {
	position: absolute;
	inset: 0;
}
.pm3d__map--off {
	background: #e8e4da;
}
.pm3d__maperr {
	position: absolute;
	inset: 0;
	margin: auto;
	width: min(360px, 80%);
	height: max-content;
	padding: 16px;
	background: var(--pm3d-panel);
	border-radius: 10px;
	text-align: center;
	z-index: 3;
}
.pm3d__live,
.pm3d__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------ panel */
.pm3d__panel {
	position: absolute;
	top: 16px;
	bottom: 16px;
	inset-inline-start: 16px;
	width: 390px;
	max-width: calc(100% - 24px);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	z-index: 5;
	background: var(--pm3d-panel);
	border-radius: var(--pm3d-radius);
	box-shadow: var(--pm3d-shadow);
}
.pm3d--nolist .pm3d__panel {
	display: none;
}
.pm3d--nolist.pm3d--detail .pm3d__panel {
	display: flex;
}
.pm3d__list-view {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
}
.pm3d__head {
	padding: 20px 22px 16px;
	background: linear-gradient(160deg, #2c3136 0%, var(--pm3d-dark) 70%);
	border-bottom: 3px solid var(--pm3d-accent);
	color: #f3f1ec;
	display: flex;
	align-items: center;
	gap: 16px;
}
.pm3d__headtext {
	min-width: 0;
	flex: 1;
}
.pm3d__logo {
	flex: none;
	display: grid;
	place-items: center;
	padding: 6px 9px;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}
.pm3d__logo img {
	display: block;
	width: auto;
	height: 56px;
	max-width: 80px;
	object-fit: contain;
}
.pm3d--narrow .pm3d__logo img {
	height: 36px;
}
.pm3d__title {
	margin: 0;
	padding: 0;
	font-size: 1.5em;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.15;
	color: inherit;
}
.pm3d__count {
	margin: 2px 0 0;
	font-size: 13px;
	color: #b9bec2;
}
.pm3d__filters {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 14px 16px;
	border-bottom: 1px solid var(--pm3d-line);
}
.pm3d__search,
.pm3d__select {
	width: 100%;
	margin: 0;
	padding: 10px 14px;
	font: inherit;
	font-size: 15px;
	color: var(--pm3d-ink);
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 10px;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.pm3d__search:focus-visible,
.pm3d__select:focus-visible {
	outline: 2px solid var(--pm3d-accent);
	outline-offset: 1px;
}
.pm3d__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.pm3d__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 5px 13px;
	font: inherit;
	font-size: 14px;
	color: var(--pm3d-ink);
	background: transparent;
	border: 1px solid var(--pm3d-line);
	border-radius: 999px;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
}
.pm3d__chip:hover {
	background: var(--pm3d-stone);
}
.pm3d__chip[aria-pressed='true'] {
	color: #fff;
	background: var(--pm3d-dark);
	border-color: var(--pm3d-dark);
}
.pm3d__chip:focus-visible,
.pm3d__tool:focus-visible,
.pm3d__btn:focus-visible,
.pm3d__item:focus-visible,
.pm3d__back:focus-visible,
.pm3d__thumb:focus-visible,
.pm3d__gnav:focus-visible {
	outline: 2px solid var(--pm3d-accent);
	outline-offset: 2px;
}
.pm3d__dot {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	flex: none;
}
.pm3d__list {
	flex: 1;
	min-height: 0;
	margin: 0;
	padding: 8px 10px;
	list-style: none;
	overflow-y: auto;
	overflow-x: hidden;
}
.pm3d__li {
	margin: 0;
	padding: 0;
}
.pm3d__item {
	display: grid;
	grid-template-columns: 32px minmax(0, 1fr);
	gap: 12px;
	align-items: start;
	width: 100%;
	margin: 0 0 2px;
	padding: 12px;
	font: inherit;
	color: inherit;
	text-align: start;
	background: transparent;
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	white-space: normal;
	transition: background 0.15s;
}
.pm3d__item:hover,
.pm3d__item.is-active {
	background: var(--pm3d-stone);
}
.pm3d__item.is-active {
	box-shadow: inset 3px 0 0 var(--pm3d-accent);
}
[dir='rtl'] .pm3d__item.is-active {
	box-shadow: inset -3px 0 0 var(--pm3d-accent);
}
.pm3d__num {
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	font-size: 14px;
	font-weight: 700;
	color: #fff;
	border-radius: 50%;
}
.pm3d__item-body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.pm3d__item-title {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
}
.pm3d__item-meta {
	margin-top: 3px;
	font-size: 14px;
	color: var(--pm3d-muted);
}
.pm3d__item-short {
	margin-top: 4px;
	font-size: 13px;
	color: var(--pm3d-muted);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.pm3d__empty,
.pm3d__note {
	margin: 0;
	padding: 16px 18px;
	font-size: 14px;
	color: var(--pm3d-muted);
}

/* ----------------------------------------------------------------- detail */
.pm3d__detail {
	flex: 1;
	min-height: 0;
	overflow-y: auto;
	position: relative;
}
.pm3d__back {
	position: absolute;
	top: 10px;
	inset-inline-start: 10px;
	z-index: 2;
	margin: 0;
	padding: 5px 12px;
	font: inherit;
	font-size: 13px;
	color: #fff;
	background: rgba(0, 0, 0, 0.55);
	border: 0;
	border-radius: 999px;
	cursor: pointer;
}
.pm3d__gallery {
	background: var(--pm3d-dark);
}
.pm3d__gframe {
	position: relative;
	aspect-ratio: 16 / 10;
	max-width: 100%;
	overflow: hidden;
	background: #111;
}
.pm3d__gimg {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pm3d__gnav {
	position: absolute;
	top: 50%;
	width: 34px;
	height: 34px;
	margin: -17px 0 0;
	padding: 0 0 3px;
	font-size: 24px;
	line-height: 1;
	color: #fff;
	background: rgba(0, 0, 0, 0.5);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}
.pm3d__gnav--prev {
	inset-inline-start: 8px;
}
.pm3d__gnav--next {
	inset-inline-end: 8px;
}
.pm3d__gcap {
	position: absolute;
	bottom: 8px;
	inset-inline-end: 10px;
	padding: 2px 8px;
	font-size: 12px;
	color: #fff;
	background: rgba(0, 0, 0, 0.5);
	border-radius: 999px;
}
.pm3d__thumbs {
	display: flex;
	gap: 6px;
	padding: 8px;
	overflow-x: auto;
}
.pm3d__thumb {
	flex: none;
	width: 56px;
	height: 42px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: none;
	border: 2px solid transparent;
	border-radius: 6px;
	cursor: pointer;
	opacity: 0.7;
}
.pm3d__thumb[aria-current='true'] {
	border-color: var(--pm3d-sand);
	opacity: 1;
}
.pm3d__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.pm3d__dbody {
	padding: 16px 18px 20px;
}
.pm3d__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 10px;
}
.pm3d__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 700;
	background: var(--pm3d-stone);
	border-radius: 999px;
}
.pm3d__badge--status {
	background: transparent;
	border: 1px solid var(--pm3d-line);
	font-weight: 600;
	color: var(--pm3d-muted);
}
.pm3d__dtitle {
	margin: 0 0 12px;
	padding: 0;
	font-size: 1.4em;
	line-height: 1.2;
	color: inherit;
	text-wrap: balance;
}
.pm3d__dtitle:focus {
	outline: none;
}
.pm3d__facts {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 14px;
	margin: 0 0 14px;
	font-size: 14px;
}
.pm3d__facts dt {
	margin: 0;
	color: var(--pm3d-muted);
}
.pm3d__facts dd {
	margin: 0;
	font-variant-numeric: tabular-nums;
}
.pm3d__content {
	margin: 0 0 16px;
	font-size: 15px;
	line-height: 1.6;
}
.pm3d__content > :first-child {
	margin-top: 0;
}
.pm3d__content > :last-child {
	margin-bottom: 0;
}
.pm3d__content img {
	max-width: 100%;
	height: auto;
}
.pm3d__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pm3d__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 8px 14px;
	font: inherit;
	font-size: 14px;
	color: var(--pm3d-ink);
	text-decoration: none;
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 999px;
	cursor: pointer;
}
.pm3d__btn:hover {
	background: var(--pm3d-stone);
}
.pm3d__btn--primary {
	color: #fff;
	background: var(--pm3d-accent);
	background: color-mix(in srgb, var(--pm3d-accent) 82%, #000);
	border-color: transparent;
}
.pm3d__btn--primary:hover {
	background: color-mix(in srgb, var(--pm3d-accent) 70%, #000);
}

/* ------------------------------------------------------------------ tools */
.pm3d__tools {
	position: absolute;
	top: 16px;
	inset-inline-end: 16px;
	z-index: 4;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: stretch;
}
.pm3d__tool {
	margin: 0;
	padding: 9px 16px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm3d-ink);
	text-align: center;
	background: var(--pm3d-panel);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 4px 14px rgba(20, 24, 28, 0.22);
	cursor: pointer;
	transition: background 0.15s, transform 0.15s;
}
.pm3d__tool:hover {
	background: #fff;
	transform: translateY(-1px);
}
.pm3d__tool[aria-pressed='true'],
.pm3d__tool[aria-pressed='true']:hover {
	color: var(--pm3d-sand);
	background: var(--pm3d-dark);
}

/* ------------------------------------------------------------------- pins */
.pm3d-pin {
	width: 36px;
	height: 47px;
	margin: 0;
	padding: 0;
	line-height: 0;
	background: none;
	border: 0;
	cursor: pointer;
}
.pm3d-pin__svg {
	display: block;
	transform-origin: 50% 100%;
	transition: transform 0.15s;
	filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.95)) drop-shadow(0 4px 6px rgba(0, 0, 0, 0.4));
}
.pm3d-pin:hover .pm3d-pin__svg {
	transform: scale(1.15);
}
.pm3d-pin.is-active {
	z-index: 3;
}
.pm3d-pin.is-active .pm3d-pin__svg {
	transform: scale(1.3);
}
.pm3d-pin.is-hidden {
	display: none;
}
.pm3d-pin:focus-visible {
	outline: 3px solid var(--pm3d-accent);
	outline-offset: 2px;
	border-radius: 8px;
}

/* ---------------------------------------------------------- narrow layout */
.pm3d--narrow .pm3d__panel {
	top: auto;
	bottom: 8px;
	inset-inline: 8px;
	width: auto;
	max-width: none;
	height: 46%;
}
.pm3d--narrow.pm3d--detail .pm3d__panel {
	height: 62%;
}
.pm3d--narrow .pm3d__head {
	padding: 10px 16px 8px;
}
.pm3d--narrow .pm3d__title {
	font-size: 1.15em;
}
.pm3d--narrow .pm3d__tools {
	top: 8px;
	inset-inline: 8px;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: flex-end;
}
.pm3d--narrow .pm3d__tool {
	padding: 6px 10px;
}

/* ------------------------------------------------------------ no WebGL */
.pm3d--nogl .pm3d__map,
.pm3d--nogl .pm3d__tools {
	display: none;
}
.pm3d--nogl .pm3d__panel {
	inset: 0;
	width: auto;
	max-width: none;
	border-radius: 0;
	box-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
	.pm3d-pin__svg {
		transition: none;
	}
}

.pm3d__dbody--noimg {
	padding-top: 52px;
}

/* ------------------------------------------------------------- full width
   [pm3d_map full="yes"] breaks out of the theme column to the browser width. */
.pm3d--full {
	width: auto;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	min-height: 560px;
	border-radius: 0;
}
@supports (height: 100dvh) {
	.pm3d--full {
		height: min(var(--pm3d-height), 100dvh);
	}
}
@media (min-width: 1200px) {
	.pm3d--full .pm3d__panel {
		inset-inline-start: 28px;
		top: 24px;
		bottom: 24px;
	}
	.pm3d--full .pm3d__tools {
		inset-inline-end: 28px;
		top: 24px;
	}
}

/* MapLibre's compact credit control assumes left-to-right, so in RTL pages the info button
   covered the end of the credit text. The credit text is Latin, so keep it left-to-right. */
.pm3d .maplibregl-ctrl-attrib {
	direction: ltr;
}

/* Theme link styles (underline, link colors) must not leak into the card buttons. */
.pm3d a.pm3d__btn,
.pm3d a.pm3d__btn:hover,
.pm3d a.pm3d__btn:focus,
.pm3d a.pm3d__btn:visited {
	text-decoration: none;
	color: var(--pm3d-ink);
}
.pm3d a.pm3d__btn--primary,
.pm3d a.pm3d__btn--primary:hover,
.pm3d a.pm3d__btn--primary:focus,
.pm3d a.pm3d__btn--primary:visited {
	color: #fff;
}

/* ------------------------------------------------------------ property card
   Hero media (images plus click-to-play video), stat tiles and a clear action area. */
.pm3d__gallery {
	background: var(--pm3d-dark);
}
.pm3d__gframe {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: #111;
}
.pm3d__gframe::after {
	content: '';
	position: absolute;
	inset: auto 0 0 0;
	height: 50%;
	background: linear-gradient(to top, rgba(10, 12, 14, 0.62), rgba(10, 12, 14, 0));
	pointer-events: none;
}
.pm3d__gframe.is-video::after {
	display: none;
}
.pm3d__gstage,
.pm3d__vface {
	position: absolute;
	inset: 0;
}
.pm3d__vface {
	background: #1d2124;
}
.pm3d__vface .pm3d__gimg {
	filter: brightness(0.7);
}
.pm3d__player {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
	background: #000;
}
.pm3d .pm3d__play {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 68px;
	height: 68px;
	margin: -34px 0 0 -34px;
	padding: 0;
	display: grid;
	place-items: center;
	background: var(--pm3d-accent);
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
	cursor: pointer;
	transition: transform 0.15s;
}
.pm3d .pm3d__play:hover,
.pm3d .pm3d__play:focus,
.pm3d .pm3d__play:active {
	background: var(--pm3d-accent);
	transform: scale(1.08);
}
.pm3d__play-icon {
	display: block;
	margin-left: 5px;
	border-style: solid;
	border-width: 12px 0 12px 20px;
	border-color: transparent transparent transparent #fff;
}
.pm3d__gframe .pm3d__badges {
	position: absolute;
	bottom: 12px;
	inset-inline-start: 14px;
	z-index: 2;
	margin: 0;
}
.pm3d__gframe .pm3d__badge {
	color: var(--pm3d-ink);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.pm3d__gframe .pm3d__badge--status {
	color: var(--pm3d-ink);
	border: 0;
}
.pm3d__thumbs {
	gap: 8px;
	padding: 10px 12px;
	background: var(--pm3d-dark);
}
.pm3d .pm3d__thumb {
	position: relative;
	width: 68px;
	height: 50px;
	background: #333;
	border-radius: 8px;
}
.pm3d__thumb-play {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	background: rgba(0, 0, 0, 0.35);
}
.pm3d__thumb-play::before {
	content: '';
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent #fff;
	margin-left: 2px;
}
.pm3d__dbody {
	padding: 20px 22px 26px;
}
.pm3d__dtitle {
	margin: 0 0 6px;
	font-size: 1.55em;
	font-weight: 700;
	letter-spacing: -0.01em;
}
.pm3d__addr {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px;
	font-size: 15px;
	color: var(--pm3d-muted);
}
.pm3d__addr::before {
	content: '';
	flex: none;
	width: 10px;
	height: 10px;
	background: var(--pm3d-pin, var(--pm3d-accent));
	border: 3px solid #fff;
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--pm3d-pin, var(--pm3d-accent));
}
.pm3d__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 10px;
	margin: 0 0 18px;
}
.pm3d__stat {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding: 12px 14px;
	background: var(--pm3d-stone);
	border-radius: 12px;
}
.pm3d__stat-k {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--pm3d-muted);
}
.pm3d__stat-v {
	font-size: 1.2em;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.pm3d__stat-v small {
	font-size: 0.7em;
	font-weight: 600;
	color: var(--pm3d-muted);
}
.pm3d__content a {
	color: color-mix(in srgb, var(--pm3d-accent) 75%, #000);
	text-decoration: underline;
}
.pm3d__actions {
	gap: 10px;
}
.pm3d .pm3d__btn {
	padding: 11px 18px;
	font-weight: 600;
	white-space: normal;
}
.pm3d .pm3d__btn--wide {
	flex: 1 1 100%;
	padding: 13px 18px;
	font-size: 15px;
}

/* ----------------------------------- stop the theme's pink hover/focus/active
   The active theme styles every button on :hover and :focus with a pink background and
   white text. Re-state each control's own colours so nothing turns pink. */
.pm3d .pm3d__item:hover,
.pm3d .pm3d__item:focus,
.pm3d .pm3d__item:active,
.pm3d .pm3d__item.is-active {
	color: var(--pm3d-ink);
	background: var(--pm3d-stone);
}
.pm3d .pm3d__chip:hover,
.pm3d .pm3d__chip:focus,
.pm3d .pm3d__chip:active {
	color: var(--pm3d-ink);
	background: var(--pm3d-stone);
	border-color: var(--pm3d-line);
}
.pm3d .pm3d__chip[aria-pressed='true'],
.pm3d .pm3d__chip[aria-pressed='true']:hover,
.pm3d .pm3d__chip[aria-pressed='true']:focus,
.pm3d .pm3d__chip[aria-pressed='true']:active {
	color: #fff;
	background: var(--pm3d-dark);
	border-color: var(--pm3d-dark);
}
.pm3d .pm3d__tool:hover,
.pm3d .pm3d__tool:focus,
.pm3d .pm3d__tool:active {
	color: var(--pm3d-ink);
	background: #fff;
}
.pm3d .pm3d__tool[aria-pressed='true'],
.pm3d .pm3d__tool[aria-pressed='true']:hover,
.pm3d .pm3d__tool[aria-pressed='true']:focus,
.pm3d .pm3d__tool[aria-pressed='true']:active {
	color: var(--pm3d-sand);
	background: var(--pm3d-dark);
}
.pm3d .pm3d__back:hover,
.pm3d .pm3d__back:focus,
.pm3d .pm3d__back:active {
	color: #fff;
	background: rgba(0, 0, 0, 0.75);
}
.pm3d .pm3d__gnav:hover,
.pm3d .pm3d__gnav:focus,
.pm3d .pm3d__gnav:active {
	color: #fff;
	background: rgba(0, 0, 0, 0.75);
}
.pm3d .pm3d__thumb:hover,
.pm3d .pm3d__thumb:focus,
.pm3d .pm3d__thumb:active {
	background: #333;
	opacity: 1;
}
.pm3d .pm3d__btn:hover,
.pm3d .pm3d__btn:focus,
.pm3d .pm3d__btn:active {
	color: var(--pm3d-ink);
	background: var(--pm3d-stone);
	border-color: var(--pm3d-line);
}
.pm3d .pm3d__btn--primary,
.pm3d .pm3d__btn--primary:visited {
	color: #fff;
	background: color-mix(in srgb, var(--pm3d-accent) 82%, #000);
	border-color: transparent;
}
.pm3d .pm3d__btn--primary:hover,
.pm3d .pm3d__btn--primary:focus,
.pm3d .pm3d__btn--primary:active {
	color: #fff;
	background: color-mix(in srgb, var(--pm3d-accent) 68%, #000);
	border-color: transparent;
}
.pm3d .pm3d-pin:hover,
.pm3d .pm3d-pin:focus,
.pm3d .pm3d-pin:active {
	color: inherit;
	background: none;
	border: 0;
}
.pm3d .maplibregl-ctrl button:not(:disabled):hover,
.pm3d .maplibregl-ctrl button:not(:disabled):focus,
.pm3d .maplibregl-ctrl button:not(:disabled):active {
	color: inherit;
	background-color: rgba(0, 0, 0, 0.06);
	border-color: transparent;
}

/* ------------------------------------------------- visibility: pins and status */
.pm3d-pin.is-active::before {
	content: '';
	position: absolute;
	left: 50%;
	bottom: 2px;
	width: 22px;
	height: 22px;
	margin-left: -11px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	box-shadow: 0 0 0 0 var(--pm3d-accent);
	animation: pm3d-pulse 1.8s ease-out infinite;
	z-index: -1;
}
@keyframes pm3d-pulse {
	0% {
		box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.9);
	}
	100% {
		box-shadow: 0 0 0 30px rgba(255, 255, 255, 0);
	}
}
@media (prefers-reduced-motion: reduce) {
	.pm3d-pin.is-active::before {
		animation: none;
	}
}
.pm3d__item-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-top: 4px;
}
.pm3d__item-row .pm3d__item-meta {
	margin-top: 0;
}
.pm3d__st {
	display: inline-block;
	padding: 2px 10px;
	font-size: 12.5px;
	font-weight: 700;
	line-height: 1.5;
	color: #fff;
	background: var(--pm3d-st, #5d646b);
	border-radius: 999px;
}
.pm3d .pm3d__gframe .pm3d__badge--status {
	color: #fff;
	background: var(--pm3d-st, #5d646b);
	font-size: 13px;
	padding: 4px 12px;
}

/* ------------------------------------------------- required investment vs cost */
.pm3d__invest {
	margin: 0 0 18px;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 14px;
	box-shadow: 0 1px 3px rgba(20, 24, 28, 0.06);
}
.pm3d__money {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 14px;
}
.pm3d__mtile {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.pm3d__mk {
	font-size: 13px;
	font-weight: 600;
	color: var(--pm3d-muted);
}
.pm3d__mv {
	font-size: 1.3em;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	line-height: 1.25;
	color: var(--pm3d-ink);
	overflow-wrap: anywhere;
}
.pm3d__mv small {
	font-size: 0.7em;
	font-weight: 700;
	color: var(--pm3d-muted);
}
.pm3d__mtile--key .pm3d__mv {
	color: color-mix(in srgb, var(--pm3d-accent) 78%, #000);
}
.pm3d__bar {
	height: 14px;
	margin-top: 14px;
	overflow: hidden;
	background: var(--pm3d-stone);
	border-radius: 999px;
	box-shadow: inset 0 1px 2px rgba(20, 24, 28, 0.15);
}
.pm3d__bar-fill {
	display: block;
	height: 100%;
	min-width: 6px;
	background: linear-gradient(90deg, color-mix(in srgb, var(--pm3d-accent) 70%, #000), var(--pm3d-accent));
	border-radius: 999px;
}
[dir='rtl'] .pm3d__bar-fill {
	background: linear-gradient(270deg, color-mix(in srgb, var(--pm3d-accent) 70%, #000), var(--pm3d-accent));
}
.pm3d__bar-cap {
	margin: 8px 0 0;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--pm3d-muted);
}

/* -------------------------------------------- compact layout: as little scrolling as possible */
.pm3d .maplibregl-ctrl,
.pm3d .maplibregl-ctrl button,
.pm3d input,
.pm3d select,
.pm3d textarea {
	font-family: inherit;
}
.pm3d__list,
.pm3d__detail {
	scrollbar-width: thin;
}
.pm3d__head {
	padding: 14px 18px 12px;
	gap: 14px;
}
.pm3d__logo img {
	height: 44px;
}
.pm3d__title {
	font-size: 1.3em;
}
.pm3d__count {
	font-size: 13px;
}
.pm3d__filters {
	gap: 8px;
	padding: 10px 14px;
}
.pm3d__search,
.pm3d__select {
	padding: 8px 12px;
	font-size: 14px;
}
.pm3d .pm3d__chip {
	padding: 3px 11px;
	font-size: 13px;
}
.pm3d__list {
	padding: 6px 8px;
}
.pm3d__item {
	padding: 8px 10px;
	gap: 10px;
}
.pm3d__item-title {
	font-size: 15px;
}
.pm3d__item-short {
	display: none;
}
.pm3d__num {
	width: 28px;
	height: 28px;
	font-size: 13px;
}
.pm3d__gframe {
	aspect-ratio: auto;
	height: clamp(130px, 24vh, 220px);
}
.pm3d__thumbs {
	gap: 6px;
	padding: 6px 10px;
}
.pm3d .pm3d__thumb {
	width: 56px;
	height: 40px;
}
.pm3d__dbody {
	padding: 14px 18px 18px;
}
.pm3d__dtitle {
	margin-bottom: 4px;
	font-size: 1.3em;
	line-height: 1.2;
}
.pm3d__addr {
	margin-bottom: 10px;
	font-size: 14px;
}
.pm3d__invest {
	margin-bottom: 12px;
	padding: 12px 14px;
}
.pm3d__mk {
	font-size: 12.5px;
}
.pm3d__mv {
	font-size: 1.15em;
}
.pm3d__bar {
	height: 12px;
	margin-top: 10px;
}
.pm3d__bar-cap {
	margin-top: 6px;
	font-size: 13px;
}
.pm3d__stats {
	margin-bottom: 12px;
}
.pm3d__stat {
	padding: 8px 12px;
}
.pm3d__content {
	margin-bottom: 12px;
	font-size: 14px;
	line-height: 1.5;
}
.pm3d__actions {
	gap: 8px;
}
.pm3d .pm3d__btn {
	padding: 8px 14px;
	font-size: 14px;
}
.pm3d .pm3d__btn--wide {
	padding: 11px 16px;
}

/* ------------------------------------------------------------------ mobile / narrow
   The filters fold behind a button so the property list keeps its room in the bottom sheet. */
.pm3d__frow {
	display: flex;
	align-items: center;
	gap: 8px;
}
.pm3d__frow .pm3d__search {
	flex: 1;
	min-width: 0;
}
.pm3d .pm3d__ftoggle {
	display: none;
	flex: none;
	margin: 0;
	padding: 8px 14px;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm3d-ink);
	white-space: nowrap;
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 999px;
	cursor: pointer;
}
.pm3d .pm3d__ftoggle:hover,
.pm3d .pm3d__ftoggle:focus,
.pm3d .pm3d__ftoggle:active {
	color: var(--pm3d-ink);
	background: var(--pm3d-stone);
	border-color: var(--pm3d-line);
}
.pm3d.pm3d--filters-open .pm3d__ftoggle,
.pm3d.pm3d--filters-open .pm3d__ftoggle:hover {
	color: #fff;
	background: var(--pm3d-dark);
	border-color: var(--pm3d-dark);
}
.pm3d--narrow .pm3d__ftoggle {
	display: inline-flex;
}
.pm3d--narrow .pm3d__chips,
.pm3d--narrow .pm3d__select {
	display: none;
}
.pm3d--narrow.pm3d--filters-open .pm3d__chips {
	display: flex;
}
.pm3d--narrow.pm3d--filters-open .pm3d__select {
	display: block;
}
.pm3d--narrow .pm3d__head {
	padding: 8px 14px;
	gap: 10px;
}
.pm3d--narrow .pm3d__logo {
	padding: 4px 6px;
	border-radius: 8px;
}
.pm3d--narrow .pm3d__logo img {
	height: 30px;
}
.pm3d--narrow .pm3d__title {
	font-size: 1.1em;
}
.pm3d--narrow .pm3d__count {
	margin: 0;
	font-size: 12.5px;
}
.pm3d--narrow .pm3d__filters {
	padding: 8px 12px;
}
.pm3d--narrow .pm3d__panel {
	height: min(56%, 380px);
}
.pm3d--narrow.pm3d--detail .pm3d__panel {
	height: min(74%, 500px);
}
.pm3d--narrow .pm3d__gframe {
	height: clamp(110px, 20vh, 170px);
}

/* Smaller pins on phones so neighbouring properties overlap less. */
.pm3d--narrow .pm3d-pin {
	width: 30px;
	height: 39px;
}
.pm3d--narrow .pm3d-pin__svg {
	width: 30px;
	height: 39px;
}

/* ---------------------------------------------- calmer numbers: neutral pins and list numbers */
.pm3d .pm3d__num {
	color: #fff;
	background: var(--pm3d-dark);
}
.pm3d__item.is-active .pm3d__num,
.pm3d__item:hover .pm3d__num {
	background: color-mix(in srgb, var(--pm3d-accent) 82%, #000);
}
.pm3d__item-meta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.pm3d-pin__svg text {
	font-family: inherit;
}
.pm3d-pin.is-active .pm3d-pin__body {
	fill: color-mix(in srgb, var(--pm3d-accent) 82%, #000);
}

/* ------------------------------------------------------- top filter bar
   One floating bar over the map: reset/filter button, dropdowns, search. The panel and the
   map tools sit below it. */
.pm3d .pm3d__topbar {
	position: absolute;
	top: 16px;
	inset-inline-start: 418px;
	inset-inline-end: 16px;
	max-width: 680px;
	z-index: 6;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px;
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	border-radius: 999px;
	box-shadow: var(--pm3d-shadow);
}
.pm3d .pm3d__selects {
	display: flex;
	gap: 10px;
	flex: none;
}
.pm3d .pm3d__field {
	position: relative;
	display: block;
	margin: 0;
}
.pm3d .pm3d__field::after {
	content: '';
	position: absolute;
	top: 50%;
	inset-inline-end: 16px;
	width: 7px;
	height: 7px;
	margin-top: -6px;
	border-right: 2px solid var(--pm3d-muted);
	border-bottom: 2px solid var(--pm3d-muted);
	transform: rotate(45deg);
	pointer-events: none;
	z-index: 1;
}
.pm3d .pm3d__topbar .pm3d__select {
	display: block;
	width: auto;
	min-width: 150px;
	height: 40px;
	margin: 0;
	padding: 0 18px;
	padding-inline-end: 38px;
	font-size: 14px;
	font-weight: 600;
	color: var(--pm3d-ink);
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 999px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
[dir='rtl'] .pm3d .pm3d__topbar .pm3d__select {
	padding: 0 18px 0 38px;
}
.pm3d .pm3d__searchbox {
	position: relative;
	display: block;
	flex: 1;
	min-width: 0;
	margin: 0;
}
.pm3d .pm3d__searchbox .pm3d__icon {
	position: absolute;
	top: 50%;
	inset-inline-start: 14px;
	margin-top: -9px;
	color: var(--pm3d-muted);
	pointer-events: none;
}
.pm3d .pm3d__topbar .pm3d__search {
	display: block;
	width: 100%;
	height: 40px;
	margin: 0;
	padding: 0 16px 0 16px;
	padding-inline-start: 42px;
	font-size: 14px;
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 999px;
	-webkit-appearance: none;
	appearance: none;
}
.pm3d .pm3d__topbar .pm3d__select:focus-visible,
.pm3d .pm3d__topbar .pm3d__search:focus-visible {
	outline: 2px solid var(--pm3d-accent);
	outline-offset: 1px;
}
.pm3d .pm3d__topbar .pm3d__ftoggle,
.pm3d .pm3d__topbar .pm3d__ftoggle:hover,
.pm3d .pm3d__topbar .pm3d__ftoggle:focus {
	display: grid;
	place-items: center;
	flex: none;
	position: relative;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	color: var(--pm3d-accent);
	background: color-mix(in srgb, var(--pm3d-accent) 12%, #fff);
	border: 0;
	border-radius: 50%;
	cursor: pointer;
}
.pm3d .pm3d__topbar .pm3d__ftoggle.is-on::after {
	content: '';
	position: absolute;
	top: 4px;
	inset-inline-end: 4px;
	width: 9px;
	height: 9px;
	background: var(--pm3d-accent);
	border: 2px solid #fff;
	border-radius: 50%;
	box-sizing: content-box;
}
.pm3d.pm3d--filters-open .pm3d__topbar .pm3d__ftoggle,
.pm3d.pm3d--filters-open .pm3d__topbar .pm3d__ftoggle:hover {
	color: #fff;
	background: var(--pm3d-dark);
}
.pm3d.pm3d--nofilters .pm3d__topbar .pm3d__ftoggle {
	display: none;
}

/* The bar sits on the map beside the panel; the map tools sit under it. */
.pm3d__tools {
	top: 80px;
}
.pm3d--nolist .pm3d__topbar {
	inset-inline-start: 16px;
}
.pm3d--nogl .pm3d__topbar {
	inset-inline-start: 16px;
	max-width: none;
}
@media (min-width: 1200px) {
	.pm3d--full .pm3d__topbar {
		top: 24px;
		inset-inline-start: 430px;
	}
	.pm3d--full.pm3d--nolist .pm3d__topbar {
		inset-inline-start: 28px;
	}
	.pm3d--full .pm3d__tools {
		top: 88px;
	}
}

/* Narrow: the dropdowns fold under the bar behind the filter button. */
.pm3d--narrow .pm3d__topbar {
	top: 8px;
	inset-inline: 8px;
	max-width: none;
	flex-wrap: wrap;
	gap: 8px;
	padding: 6px;
	border-radius: 24px;
}
.pm3d--narrow .pm3d__topbar .pm3d__ftoggle {
	width: 36px;
	height: 36px;
}
.pm3d--narrow .pm3d__topbar .pm3d__search {
	height: 36px;
}
.pm3d--narrow .pm3d__searchbox {
	order: 1;
}
.pm3d--narrow .pm3d__selects {
	display: none;
	order: 2;
	flex: 1 0 100%;
}
.pm3d--narrow.pm3d--filters-open .pm3d__selects {
	display: flex;
}
.pm3d--narrow .pm3d__field {
	flex: 1;
	min-width: 0;
}
.pm3d--narrow .pm3d__topbar .pm3d__select {
	width: 100%;
	min-width: 0;
	height: 36px;
}
.pm3d--narrow .pm3d__tools {
	top: 62px;
}
.pm3d--narrow.pm3d--filters-open .pm3d__tools {
	top: 110px;
}

/* ------------------------------------------------------- property cards in the panel */
.pm3d__panel {
	background: var(--pm3d-stone);
}
.pm3d__list {
	padding: 10px 12px 12px;
}
.pm3d__li {
	margin: 0 0 8px;
}
.pm3d .pm3d__item {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid var(--pm3d-line);
	border-radius: 14px;
	box-shadow: 0 1px 2px rgba(20, 24, 28, 0.05);
	transition: border-color 0.15s, box-shadow 0.15s, transform 0.15s;
}
.pm3d .pm3d__item:hover,
.pm3d .pm3d__item:focus,
.pm3d .pm3d__item:active,
.pm3d .pm3d__item.is-active {
	background: #fff;
	border-color: color-mix(in srgb, var(--pm3d-cat, var(--pm3d-accent)) 55%, #fff);
	box-shadow: 0 6px 18px rgba(20, 24, 28, 0.12);
}
.pm3d .pm3d__item.is-active {
	box-shadow: 0 6px 18px rgba(20, 24, 28, 0.12), inset 0 0 0 1px color-mix(in srgb, var(--pm3d-cat, var(--pm3d-accent)) 55%, #fff);
}
[dir='rtl'] .pm3d__item.is-active {
	box-shadow: 0 6px 18px rgba(20, 24, 28, 0.12), inset 0 0 0 1px color-mix(in srgb, var(--pm3d-cat, var(--pm3d-accent)) 55%, #fff);
}
.pm3d .pm3d__num {
	flex: none;
	width: 32px;
	height: 32px;
	color: #fff;
	background: var(--pm3d-dark);
}
.pm3d .pm3d__item:hover .pm3d__num,
.pm3d .pm3d__item.is-active .pm3d__num {
	background: var(--pm3d-dark);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pm3d-cat, var(--pm3d-accent)) 35%, #fff);
}
.pm3d .pm3d__item-body {
	flex: 1;
	gap: 2px;
}
.pm3d .pm3d__item-title {
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
}
.pm3d .pm3d__item-addr {
	font-size: 13px;
	color: var(--pm3d-muted);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.pm3d .pm3d__item-row {
	margin-top: 4px;
	gap: 10px;
}
.pm3d .pm3d__item-meta {
	font-size: 13px;
}
.pm3d .pm3d__item-img {
	flex: none;
	width: 52px;
	height: 52px;
	object-fit: cover;
	border-radius: 10px;
	background: var(--pm3d-stone);
}
.pm3d .pm3d__chev {
	flex: none;
	width: 8px;
	height: 8px;
	margin-inline: 4px;
	border-right: 2px solid #9aa0a6;
	border-bottom: 2px solid #9aa0a6;
	transform: rotate(-45deg);
}
[dir='rtl'] .pm3d .pm3d__chev {
	border-right: 0;
	border-left: 2px solid #9aa0a6;
	transform: rotate(45deg);
}
.pm3d .pm3d__item:hover .pm3d__chev {
	border-color: var(--pm3d-ink);
}
.pm3d__filters,
.pm3d__frow {
	display: none;
}
@media (prefers-reduced-motion: reduce) {
	.pm3d .pm3d__item {
		transition: none;
	}
}
.pm3d--nogl .pm3d__panel {
	inset-block: 80px 0;
	inset-inline: 0;
}
.pm3d--nogl.pm3d--narrow .pm3d__panel {
	inset-block: 62px 0;
	height: auto;
}

/* ------------------------------------------- medium widths: dropdowns fold behind the filter button */
.pm3d--fold .pm3d__topbar {
	flex-wrap: wrap;
	gap: 8px;
	border-radius: 28px;
}
.pm3d--fold .pm3d__searchbox {
	order: 1;
}
.pm3d--fold .pm3d__selects {
	display: none;
	order: 2;
	flex: 1 0 100%;
}
.pm3d--fold.pm3d--filters-open .pm3d__selects {
	display: flex;
}
.pm3d--fold .pm3d__field {
	flex: 1;
	min-width: 0;
}
.pm3d--fold .pm3d__topbar .pm3d__select {
	width: 100%;
	min-width: 0;
}
.pm3d--fold:not(.pm3d--narrow).pm3d--filters-open .pm3d__tools {
	top: 128px;
}
.pm3d.pm3d--fold.pm3d--filters-open .pm3d__topbar .pm3d__ftoggle,
.pm3d.pm3d--fold.pm3d--filters-open .pm3d__topbar .pm3d__ftoggle:hover {
	color: #fff;
	background: var(--pm3d-dark);
}

/* ------------------------------------------------------------ readable type
   Nothing below 14px on any screen size. */
.pm3d .pm3d__count,
.pm3d--narrow .pm3d__count,
.pm3d .pm3d__item-addr,
.pm3d .pm3d__item-meta {
	font-size: 14px;
}
.pm3d .pm3d__st {
	font-size: 13.5px;
	padding: 2px 11px;
}
.pm3d .pm3d__topbar .pm3d__select,
.pm3d .pm3d__topbar .pm3d__search {
	font-size: 15px;
}
.pm3d .pm3d__tool,
.pm3d--narrow .pm3d__tool {
	font-size: 14px;
}
.pm3d .pm3d__item-title {
	font-size: 16px;
}
.pm3d--narrow .pm3d__title {
	font-size: 1.2em;
}
