/* PropertyMitras project listing (includes/listing.php), Figma 2005:367 / mobile 2028:3625 / sheet 2028:3626.
   Every value reads an Elementor global (--pm-*). Link and button rules are scoped under their block root so the
   Elementor kit's `a` / `button` styles cannot override them. */

/* ---------- Head ---------- */
.pm-lhead .pm-crumbs { margin-bottom: 14px; }
.pm-lhead .pm-lhead__title { margin: 0; color: var(--pm-navy-700); font: 600 48px/58px var(--pm-font-display), system-ui, sans-serif; letter-spacing: -0.02em; text-wrap: balance; }
.pm-lhead .pm-lhead__sub { margin: 4px 0 0; color: var(--pm-neutral-500); font: 400 16px/24px var(--pm-font-body), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
/* Mobile: listing title 26/32 (Figma 2028:3625), city and builders titles 32/38 (Figma 2029:4978, 2029:5128); crumbs/sub 13/19, 6px rhythm. */
@media (max-width: 767px) {
	.pm-lhead .pm-crumbs { margin-bottom: 6px; }
	.pm-lhead .pm-lhead__title { font-size: 26px; line-height: 32px; letter-spacing: -0.015em; }
	.pm-lhead--lg .pm-lhead__title { font-size: 32px; line-height: 38px; letter-spacing: -0.02em; }
	.pm-lhead .pm-lhead__sub { margin-top: 6px; font-size: 13px; line-height: 19px; }
}

/* ---------- Search bar (72px pill) ---------- */
.pm-sbar { display: grid; grid-template-columns: 336fr 320fr 260fr 236fr auto; align-items: center; min-height: 72px; margin: 0; padding: 0 8px 0 0; border-radius: 36px; background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); }
.pm-sbar .pm-sbar__field { display: flex; flex-direction: column; justify-content: center; gap: 1px; min-width: 0; height: 40px; padding: 0 20px 0 36px; border-left: 1px solid var(--pm-neutral-100); cursor: pointer; }
.pm-sbar .pm-sbar__field:first-of-type { border-left: 0; }
.pm-sbar .pm-sbar__title, .pm-sbar .pm-sbar__long { display: none; }
.pm-sbar .pm-sbar__label { color: var(--pm-neutral-500); font: 500 11px/17px var(--pm-font-display), system-ui, sans-serif; }
.pm-sbar select, .pm-sbar input {
	width: 100%; min-width: 0; height: 23px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; outline-offset: 4px;
	color: var(--pm-neutral-900); font: 500 15px/23px var(--pm-font-display), system-ui, sans-serif; text-overflow: ellipsis; -webkit-appearance: none; appearance: none;
}
.pm-sbar select { padding-right: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%231C1917'/%3E%3C/svg%3E") right 2px center / 8px no-repeat; cursor: pointer; }
.pm-sbar input::placeholder { color: var(--pm-neutral-300); }
.pm-sbar .pm-sbar__submit, .pm-sbar .pm-sbar__submit:hover, .pm-sbar .pm-sbar__submit:focus {
	height: 56px; padding: 0 46px; border: 0; border-radius: 28px; background: var(--pm-navy-700); color: var(--pm-neutral-0);
	font: 600 15px/23px var(--pm-font-display), system-ui, sans-serif; cursor: pointer; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 150ms ease;
}
.pm-sbar .pm-sbar__submit:hover { background: var(--pm-navy-800); }
.pm-sbar .pm-sbar__submit:active { transform: scale(0.97); }
@media (max-width: 1023px) { .pm-sbar { grid-template-columns: 1fr 1fr auto; padding: 8px; border-radius: 24px; } .pm-sbar .pm-sbar__field:nth-of-type(3), .pm-sbar .pm-sbar__field:nth-of-type(4) { display: none; } }
@media (max-width: 767px) {
	.pm-sbar { display: none; }
	/* City page (Figma 2029:4736): the same compact card as the homepage search - labels inside 56px outlined fields. */
	.pm-sbar.pm-sbar--card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; min-height: 0; padding: 20px 16px 16px; border-radius: 20px; background: var(--pm-neutral-0); box-shadow: 0 8px 24px rgb(0 22 42 / 0.08); }
	.pm-sbar--card > * { grid-column: 1 / -1; }
	.pm-sbar--card .pm-sbar__title { display: block; margin: 0; color: var(--pm-navy-700); font: 600 18px/24px var(--pm-font-display), system-ui, sans-serif; }
	.pm-sbar--card .pm-sbar__field, .pm-sbar--card .pm-sbar__field:nth-of-type(3), .pm-sbar--card .pm-sbar__field:nth-of-type(4) { display: flex; justify-content: center; height: 56px; padding: 0 12px 0 16px; border: 1px solid var(--pm-neutral-100); border-radius: 14px; }
	.pm-sbar--card .pm-sbar__field:nth-of-type(3), .pm-sbar--card .pm-sbar__field:nth-of-type(4) { grid-column: auto; }
	.pm-sbar--card .pm-sbar__label { font: 400 13px/19px var(--pm-font-body), system-ui, sans-serif; }
	.pm-sbar--card select, .pm-sbar--card input { height: 20px; color: var(--pm-navy-700); font: 500 14px/20px var(--pm-font-display), system-ui, sans-serif; }
	.pm-sbar--card select { padding-right: 28px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23002C52' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right -2px center / 24px no-repeat; }
	.pm-sbar--card input::placeholder { color: var(--pm-neutral-500); }
	.pm-sbar--card .pm-sbar__submit, .pm-sbar--card .pm-sbar__submit:hover, .pm-sbar--card .pm-sbar__submit:focus { height: 48px; padding: 0 24px; border-radius: 999px; line-height: 20px; }
	.pm-sbar--card .pm-sbar__long { display: inline; }
	.pm-sbar--card .pm-sbar__short { display: none; }
}

/* ---------- Filter panel ---------- */
.pm-filters { display: flex; flex-direction: column; margin: 0; padding: 24px; border-radius: var(--pm-radius-lg); background: var(--pm-neutral-50); }
.pm-filters .pm-filters__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 8px; }
.pm-filters .pm-filters__title { margin: 0; color: var(--pm-navy-700); font: 600 18px/26px var(--pm-font-display), system-ui, sans-serif; }
.pm-filters .pm-flink { padding: 0; border: 0; background: none; color: var(--pm-orange-700); font: 500 12px/18px var(--pm-font-display), system-ui, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pm-filters .pm-flink:hover, .pm-filters .pm-flink:focus { background: none; color: var(--pm-orange-800); }
.pm-filters .pm-filters__close { display: none; }
.pm-fgroup { margin: 0; padding: 18px 0; border: 0; border-top: 1px solid var(--pm-neutral-100); min-width: 0; }
.pm-filters__head + .pm-filters__body .pm-fgroup:first-of-type { border-top: 0; }
.pm-fgroup legend { float: left; width: 100%; margin: 0 0 12px; padding: 0; color: var(--pm-neutral-900); font: 600 12px/18px var(--pm-font-display), system-ui, sans-serif; }
.pm-fgroup legend + * { clear: both; }
.pm-fchips { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-fchip { position: relative; cursor: pointer; }
.pm-fchip input, .pm-toggle input[type="checkbox"]:not([role]) { position: absolute; opacity: 0; pointer-events: none; }
.pm-fchip span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 32px; padding: 0 14px; border-radius: var(--pm-radius-pill);
	background: var(--pm-neutral-0); color: var(--pm-neutral-900); font: 500 12px/18px var(--pm-font-display), system-ui, sans-serif;
	transition: background-color 150ms ease, color 150ms ease, transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.pm-fchip:active span { transform: scale(0.97); }
.pm-fchip input:checked + span { background: var(--pm-navy-700); color: var(--pm-neutral-0); }
.pm-fchip input:focus-visible + span { outline: 2px solid var(--pm-navy-700); outline-offset: 2px; }
.pm-fcheck { display: flex; align-items: center; gap: 10px; min-height: 32px; cursor: pointer; color: var(--pm-neutral-900); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; }
.pm-fcheck[hidden] { display: none; }
.pm-fcheck input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--pm-navy-700); cursor: pointer; }
.pm-fcheck__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-fcheck__count { color: var(--pm-neutral-500); font-size: 12px; font-variant-numeric: tabular-nums; }
.pm-fsearch { width: 100%; height: 40px; margin: 0 0 8px; padding: 0 16px; border: 0; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; }
.pm-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; color: var(--pm-neutral-900); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; }
.pm-toggle input[role="switch"] {
	position: relative; flex: none; width: 44px; height: 26px; margin: 0; border-radius: 13px; background: var(--pm-neutral-300); cursor: pointer; -webkit-appearance: none; appearance: none;
	transition: background-color 200ms ease;
}
.pm-toggle input[role="switch"]::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--pm-neutral-0); transition: transform 200ms cubic-bezier(0.23, 1, 0.32, 1); }
.pm-toggle input[role="switch"]:checked { background: var(--pm-navy-700); }
.pm-toggle input[role="switch"]:checked::after { transform: translateX(18px); }

/* Budget dual range: two native ranges stacked on one track. */
.pm-range__value { margin: 0 0 8px; color: var(--pm-orange-700); font: 600 14px/20px var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.pm-range__track { --lo: 0%; --hi: 100%; position: relative; height: 24px; }
.pm-range__track::before, .pm-range__fill { content: ""; position: absolute; top: 10px; height: 4px; border-radius: 2px; }
.pm-range__track::before { right: 0; left: 0; background: var(--pm-neutral-300); }
.pm-range__fill { right: calc(100% - var(--hi)); left: var(--lo); background: var(--pm-navy-700); }
.pm-range input[type="range"] { position: absolute; inset: 0; width: 100%; height: 24px; margin: 0; background: none; pointer-events: none; -webkit-appearance: none; appearance: none; }
.pm-range input[type="range"]::-webkit-slider-runnable-track { background: none; }
.pm-range input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; border: 2px solid var(--pm-navy-700); border-radius: 50%; background: var(--pm-neutral-0); pointer-events: auto; cursor: grab; -webkit-appearance: none; }
.pm-range input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid var(--pm-navy-700); border-radius: 50%; background: var(--pm-neutral-0); pointer-events: auto; cursor: grab; }
.pm-range input[type="range"]::-moz-range-track { background: none; }
.pm-range__ends { display: flex; justify-content: space-between; margin-top: 6px; color: var(--pm-neutral-500); font: 400 12px/16px var(--pm-font-body), system-ui, sans-serif; }

.pm-filters .pm-filters__foot { padding-top: 8px; }
.pm-filters .pm-filters__apply, .pm-filters .pm-filters__apply:hover, .pm-filters .pm-filters__apply:focus {
	width: 100%; height: 48px; padding: 0 24px; border: 0; border-radius: var(--pm-radius-pill); background: var(--pm-navy-700); color: var(--pm-neutral-0);
	font: 600 14px/20px var(--pm-font-display), system-ui, sans-serif; cursor: pointer; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 150ms ease;
}
.pm-filters .pm-filters__apply:hover { background: var(--pm-navy-800); }
.pm-filters .pm-filters__apply:active { transform: scale(0.97); }

/* Mobile: the panel becomes a bottom sheet. */
.pm-filters-backdrop { position: fixed; inset: 0; z-index: 998; background: rgb(0 22 42 / 0.5); opacity: 0; pointer-events: none; transition: opacity 200ms ease; }
@media (max-width: 767px) {
	.pm-filters {
		position: fixed; right: 0; bottom: 0; left: 0; z-index: 999; max-height: 90dvh; padding: 0; border-radius: 24px 24px 0 0; background: var(--pm-neutral-25);
		transform: translateY(100%); visibility: hidden; transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1), visibility 0s 300ms;
	}
	.pm-filters.is-open { transform: none; visibility: visible; transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1); }
	.pm-filters.is-open ~ .pm-filters-backdrop, .pm-filters-backdrop.is-open { opacity: 1; pointer-events: auto; }
	.pm-filters .pm-filters__head { position: relative; padding: 28px 20px 14px; border-bottom: 1px solid var(--pm-neutral-100); }
	.pm-filters .pm-filters__head::before { content: ""; position: absolute; top: 10px; left: 50%; width: 36px; height: 4px; margin-left: -18px; border-radius: 2px; background: var(--pm-neutral-300); }
	.pm-filters .pm-flink--clear { font-size: 14px; text-decoration: none; margin-left: auto; }
	.pm-filters .pm-filters__body { overflow-y: auto; padding: 0 20px; overscroll-behavior: contain; }
	.pm-fgroup { border-top: 0; padding: 14px 0 10px; }
	.pm-fgroup legend { font-size: 14px; font-weight: 500; }
	.pm-fchip span { height: 40px; padding: 0 16px; font-size: 14px; box-shadow: inset 0 0 0 1px var(--pm-neutral-100); }
	.pm-fchip input:checked + span { box-shadow: none; }
	.pm-filters .pm-filters__foot { padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--pm-neutral-100); background: var(--pm-neutral-0); }
	body.pm-sheet-open { overflow: hidden; }
}
@media (min-width: 768px) { .pm-filters-backdrop { display: none; } }

/* ---------- Results ---------- */
.pm-results { min-width: 0; }
.pm-results .pm-results__bar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pm-results .pm-results__count { flex: 1; margin: 0; color: var(--pm-neutral-500); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; }
.pm-results .pm-results__count strong { margin-right: 14px; color: var(--pm-navy-700); font: 600 22px/30px var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.pm-results .pm-results__filters { display: none; }
.pm-sort { margin: 0; }
.pm-sort select {
	height: 40px; padding: 0 36px 0 18px; border: 0; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%231C1917'/%3E%3C/svg%3E") right 16px center / 8px no-repeat;
	box-shadow: inset 0 0 0 1px var(--pm-neutral-100); color: var(--pm-neutral-900); font: 500 12px/18px var(--pm-font-display), system-ui, sans-serif; cursor: pointer; -webkit-appearance: none; appearance: none;
}
.pm-achips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.pm-achips .pm-achip {
	display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px 0 12px; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0);
	box-shadow: inset 0 0 0 1px var(--pm-navy-700); color: var(--pm-neutral-900); font: 500 12px/18px var(--pm-font-display), system-ui, sans-serif; text-decoration: none; white-space: nowrap;
	transition: background-color 150ms ease;
}
.pm-achips .pm-achip .pm-icon { width: 12px; height: 12px; }
.pm-achips .pm-achip:hover { background: var(--pm-navy-50); color: var(--pm-neutral-900); }
.pm-results__list { display: flex; flex-direction: column; gap: 16px; }

/* Result card (Figma component 2006:1318): 340×244 media, 28px gap. */
.pm-rcard { position: relative; display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 28px; padding: 16px 24px 16px 16px; border-radius: var(--pm-radius-lg); background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); }
.pm-rcard .pm-rcard__media { position: relative; display: block; overflow: hidden; height: 244px; border-radius: 18px; background: var(--pm-navy-50); }
.pm-rcard .pm-rcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1); }
.pm-rcard__fallback { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; height: 100%; color: var(--pm-navy-700); font: 500 12px/18px var(--pm-font-display), system-ui, sans-serif; }
.pm-rcard__badges { position: absolute; top: 28px; left: 28px; display: flex; gap: 8px; max-width: 250px; pointer-events: none; }
.pm-rcard .pm-rcard__heart, .pm-rcard .pm-rcard__heart:hover, .pm-rcard .pm-rcard__heart:focus {
	position: absolute; top: 28px; left: 312px; z-index: 2; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 50%;
	background: var(--pm-neutral-0); color: var(--pm-navy-700); cursor: pointer; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.pm-rcard .pm-rcard__heart .pm-icon { width: 18px; height: 18px; }
.pm-rcard .pm-rcard__heart[aria-pressed="true"] { color: var(--pm-orange-700); }
.pm-rcard .pm-rcard__heart[aria-pressed="true"] .pm-icon { fill: currentColor !important; }
.pm-rcard .pm-rcard__heart:active { transform: scale(0.92); }
.pm-rcard__info { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding-top: 6px; }
.pm-rcard__head { display: flex; align-items: flex-start; gap: 20px; }
.pm-rcard .pm-rcard__title { flex: 1; min-width: 0; margin: 0; font: 600 22px/30px var(--pm-font-display), system-ui, sans-serif; letter-spacing: -0.01em; }
.pm-rcard .pm-rcard__title a { display: -webkit-box; overflow: hidden; color: var(--pm-navy-700); text-decoration: none; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pm-rcard .pm-rcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* Whole card is the link target. */
.pm-rcard__price { flex: none; color: var(--pm-orange-700); font: 600 20px/30px var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pm-rcard__meta, .pm-rcard__facts { margin: 0; overflow: hidden; color: var(--pm-neutral-500); font: 400 14px/20px var(--pm-font-body), system-ui, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.pm-rcard__facts { font-size: 13px; }
.pm-rcard__cfgs { display: flex; flex-direction: column; gap: 8px; padding: 12px 16px; border-radius: 14px; background: var(--pm-neutral-50); }
.pm-rcard__cfg { display: grid; grid-template-columns: 150px minmax(0, 1fr) auto; gap: 16px; font: 600 14px/20px var(--pm-font-display), system-ui, sans-serif; color: var(--pm-neutral-900); }
.pm-rcard__cfg-area { overflow: hidden; color: var(--pm-neutral-500); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.pm-rcard__cfg-price { font-variant-numeric: tabular-nums; }
.pm-rcard .pm-rcard__more { position: relative; z-index: 1; color: var(--pm-orange-700); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; text-decoration: none; }
.pm-rcard__chips { display: none; }
.pm-rcard__actions { display: flex; align-items: center; gap: 12px; }
.pm-rcard__actions > * { position: relative; z-index: 1; } /* Above the card-wide link. */
.pm-rcard__compare { display: flex; align-items: center; gap: 8px; margin-left: auto; color: var(--pm-neutral-900); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; cursor: pointer; }
.pm-rcard__compare input { width: 18px; height: 18px; margin: 0; accent-color: var(--pm-navy-700); cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .pm-rcard:hover .pm-rcard__media img { transform: scale(1.03); } }

/* Buttons used by listing blocks. */
.pm-results .pm-lbtn, .pm-lbanner .pm-lbtn, .pm-ctray .pm-lbtn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; padding: 0 24px; border-radius: var(--pm-radius-pill); white-space: nowrap; text-decoration: none;
	font: 600 15px/20px var(--pm-font-display), system-ui, sans-serif; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1), background-color 150ms ease, color 150ms ease;
}
.pm-results .pm-lbtn:active, .pm-ctray .pm-lbtn:active { transform: scale(0.97); }
.pm-results .pm-lbtn--primary, .pm-results .pm-lbtn--primary:hover { background: var(--pm-navy-700); color: var(--pm-neutral-0); }
.pm-results .pm-lbtn--primary:hover { background: var(--pm-navy-800); }
.pm-results .pm-lbtn--secondary { height: 51px; box-shadow: inset 0 0 0 1.5px var(--pm-navy-700); color: var(--pm-navy-700); }
.pm-results .pm-lbtn--secondary:hover { background: var(--pm-navy-50); color: var(--pm-navy-700); }
.pm-results .pm-lbtn--orange, .pm-ctray .pm-lbtn--orange { height: 44px; background: var(--pm-orange-500); color: var(--pm-navy-900); font-size: 14px; }
.pm-results .pm-lbtn--orange:hover, .pm-ctray .pm-lbtn--orange:hover { background: var(--pm-orange-400); color: var(--pm-navy-900); }

/* Expert banner inside the list. */
.pm-lbanner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 28px 24px 28px 32px; border-radius: var(--pm-radius-lg); background: var(--pm-navy-700); }
.pm-lbanner__title { margin: 0; color: var(--pm-neutral-0); font: 600 20px/28px var(--pm-font-display), system-ui, sans-serif; }
.pm-lbanner__text { margin: 4px 0 0; color: var(--pm-navy-100); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; }

/* Pagination. */
.pm-pager { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 32px; }
.pm-pager__info { margin: 0; color: var(--pm-neutral-500); font: 400 13px/20px var(--pm-font-body), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.pm-pager__links { display: flex; align-items: center; gap: 8px; }
.pm-pager .page-numbers { display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 8px; border-radius: 20px; background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); color: var(--pm-neutral-900); font: 500 14px/20px var(--pm-font-display), system-ui, sans-serif; text-decoration: none; font-variant-numeric: tabular-nums; }
.pm-pager .page-numbers.current { background: var(--pm-navy-700); box-shadow: none; color: var(--pm-neutral-0); }
.pm-pager .page-numbers.dots { background: none; box-shadow: none; }
.pm-pager a.page-numbers:hover { background: var(--pm-neutral-50); color: var(--pm-neutral-900); }
.pm-pager .pm-pager__more { display: none; }

/* No results. */
.pm-empty { display: flex; flex-direction: column; align-items: center; padding: 40px 32px 56px; border-radius: var(--pm-radius-xl); background: var(--pm-neutral-50); text-align: center; }
.pm-empty__icon { display: grid; place-items: center; width: 80px; height: 80px; margin-bottom: 28px; border-radius: 50%; background: var(--pm-orange-50); color: var(--pm-orange-700); }
.pm-empty .pm-empty__title { margin: 0; color: var(--pm-navy-700); font: 600 28px/36px var(--pm-font-display), system-ui, sans-serif; text-wrap: balance; }
.pm-empty__text { margin: 6px 0 32px; color: var(--pm-neutral-500); font: 400 15px/22px var(--pm-font-body), system-ui, sans-serif; }
.pm-tries { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-bottom: 40px; }
.pm-tries .pm-try { display: inline-flex; align-items: center; height: 42px; padding: 0 18px; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0); color: var(--pm-neutral-900); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; text-decoration: none; }
.pm-tries .pm-try span { margin-left: 4px; color: var(--pm-neutral-500); font-variant-numeric: tabular-nums; }
.pm-tries .pm-try:hover { background: var(--pm-navy-50); color: var(--pm-neutral-900); }
.pm-empty__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* Compare tray (appears once a project is added). */
.pm-ctray { position: fixed; bottom: 24px; left: 50%; z-index: 80; display: flex; align-items: center; gap: 16px; width: min(992px, calc(100vw - 32px)); padding: 8px 8px 8px 8px; border-radius: var(--pm-radius-pill); background: var(--pm-navy-700); box-shadow: 0 16px 40px rgb(0 22 42 / 0.24); translate: -50% 0; animation: pm-tray-in 300ms cubic-bezier(0.23, 1, 0.32, 1); }
.pm-ctray[hidden] { display: none; }
.pm-ctray__slots { display: flex; gap: 8px; }
.pm-ctray__slots span { width: 44px; height: 44px; overflow: hidden; border-radius: 50%; border: 1.5px dashed var(--pm-navy-300); }
.pm-ctray__slots span.is-filled { border: 0; background: var(--pm-navy-500) center / cover; }
.pm-ctray__text { flex: 1; min-width: 0; margin: 0; color: var(--pm-neutral-0); font: 600 13px/18px var(--pm-font-display), system-ui, sans-serif; }
.pm-ctray__text span { display: block; overflow: hidden; color: var(--pm-navy-100); font: 400 11px/16px var(--pm-font-body), system-ui, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.pm-ctray .pm-ctray__clear, .pm-ctray .pm-ctray__clear:hover, .pm-ctray .pm-ctray__clear:focus { padding: 0 8px; border: 0; background: none; color: var(--pm-neutral-0); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
/* Wide screens: centred over the results column (Figma x 384, width 992). */
@media (min-width: 1280px) { .pm-ctray { left: calc(50% + 160px); } }
@keyframes pm-tray-in { from { opacity: 0; translate: -50% 16px; } }
.pm-ctray[data-leaving] { animation: pm-tray-out 180ms cubic-bezier(0.23, 1, 0.32, 1) forwards; pointer-events: none; }
@keyframes pm-tray-out { to { opacity: 0; translate: -50% 16px; } }

/* ---------- Mobile results ---------- */
@media (max-width: 767px) {
	.pm-results .pm-results__bar { flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
	.pm-results .pm-results__count { order: 3; flex-basis: 100%; margin-top: 12px; }
	.pm-results .pm-results__count strong { margin: 0; color: var(--pm-neutral-500); font: 400 12px/18px var(--pm-font-body), system-ui, sans-serif; }
	.pm-results .pm-results__count span { display: none; }
	.pm-results .pm-results__filters, .pm-results .pm-results__filters:hover, .pm-results .pm-results__filters:focus {
		display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 16px; border: 0; border-radius: var(--pm-radius-pill);
		background: var(--pm-navy-700); color: var(--pm-neutral-0); font: 600 13px/20px var(--pm-font-display), system-ui, sans-serif; cursor: pointer;
	}
	.pm-results__badge { display: grid; place-items: center; min-width: 20px; height: 20px; border-radius: 10px; background: var(--pm-orange-500); color: var(--pm-navy-900); font-size: 11px; }
	.pm-achips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -20px 4px; padding: 0 20px; }
	.pm-achips .pm-achip { box-shadow: none; background: var(--pm-navy-50); }
	.pm-results__list { gap: 32px; }
	.pm-rcard { grid-template-columns: 1fr; gap: 16px; padding: 0; background: none; box-shadow: none; }
	.pm-rcard .pm-rcard__media { height: auto; aspect-ratio: 350 / 230; border-radius: 20px; }
	.pm-rcard__badges { top: 12px; left: 12px; }
	.pm-rcard .pm-rcard__heart, .pm-rcard .pm-rcard__heart:hover, .pm-rcard .pm-rcard__heart:focus { top: 12px; right: 12px; left: auto; width: 36px; height: 36px; }
	.pm-rcard__info { gap: 6px; padding: 0; }
	.pm-rcard .pm-rcard__title { font-size: 20px; line-height: 28px; }
	.pm-rcard__price { font-size: 17px; line-height: 28px; }
	.pm-rcard__meta { font-size: 13px; }
	.pm-rcard__cfgs, .pm-rcard__facts, .pm-rcard__actions { display: none; }
	.pm-rcard__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; }
	.pm-lbanner { flex-direction: column; align-items: flex-start; padding: 24px 20px; }
	.pm-lbanner__title { font-size: 18px; line-height: 26px; }
	.pm-pager { flex-direction: column; margin-top: 32px; }
	.pm-pager__info, .pm-pager__links { display: none; }
	.pm-pager .pm-pager__more { display: inline-flex; width: 100%; }
	.pm-pager__links:only-child { display: flex; }
	.pm-ctray { bottom: calc(80px + env(safe-area-inset-bottom)); gap: 10px; border-radius: 20px; }
	.pm-ctray__slots span:nth-child(n+3) { display: none; }
	.pm-empty { padding: 32px 20px 40px; border-radius: var(--pm-radius-lg); }
	.pm-empty .pm-empty__title { font-size: 22px; line-height: 30px; }
}

/* ---------- List / Map switch (Figma 2005:781 toolbar) ---------- */
.pm-results .pm-vtoggle { display: flex; flex: none; gap: 2px; padding: 3px; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-50); }
.pm-results .pm-vtoggle a { display: grid; place-items: center; height: 36px; padding: 0 18px; border-radius: var(--pm-radius-pill); color: var(--pm-neutral-900); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; text-decoration: none; transition: background-color 150ms ease, color 150ms ease; }
.pm-results .pm-vtoggle a:hover { color: var(--pm-navy-700); }
.pm-results .pm-vtoggle a[aria-current] { background: var(--pm-navy-700); color: var(--pm-neutral-0); }

/* ---------- Map view (?view=map) ---------- */
/* Desktop: the filter column leaves the layout and opens as a left drawer from the toolbar's Filters button. */
@media (min-width: 768px) {
	.pm-view-map .e-con:has(> .elementor-widget-shortcode .pm-filters) { position: absolute; width: 0; height: 0; padding: 0; margin: 0; overflow: visible; }
	.pm-view-map .e-con:has(> .elementor-widget-shortcode .pm-results) { flex: 1 1 100%; width: 100%; max-width: 100%; }
	.pm-view-map .pm-filters {
		position: fixed; top: 0; bottom: 0; left: 0; z-index: 999; width: min(380px, 90vw); padding: 0; border-radius: 0 24px 24px 0; background: var(--pm-neutral-25);
		transform: translateX(-100%); visibility: hidden; transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1), visibility 0s 300ms;
	}
	.pm-view-map .pm-filters.is-open { transform: none; visibility: visible; transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1); }
	.pm-view-map .pm-filters .pm-filters__head { padding: 24px 24px 12px; border-bottom: 1px solid var(--pm-neutral-100); }
	.pm-view-map .pm-filters .pm-filters__body { flex: 1; overflow-y: auto; padding: 0 24px; overscroll-behavior: contain; }
	.pm-view-map .pm-filters .pm-filters__foot { padding: 12px 24px 20px; border-top: 1px solid var(--pm-neutral-100); background: var(--pm-neutral-0); }
	.pm-view-map .pm-filters-backdrop { display: block; }
	.pm-view-map .pm-filters-backdrop.is-open { opacity: 1; pointer-events: auto; }
	.pm-view-map .pm-results .pm-results__filters, .pm-view-map .pm-results .pm-results__filters:hover, .pm-view-map .pm-results .pm-results__filters:focus {
		display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 18px; border: 0; border-radius: var(--pm-radius-pill);
		background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); color: var(--pm-neutral-900); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; cursor: pointer;
	}
	.pm-view-map .pm-results__badge { display: grid; place-items: center; min-width: 20px; height: 20px; border-radius: 10px; background: var(--pm-orange-500); color: var(--pm-navy-900); font-size: 11px; }
	.pm-view-map.pm-sheet-open { overflow: hidden; }
}

.pm-mapview { display: grid; grid-template-columns: minmax(0, 464px) minmax(0, 1fr); align-items: start; gap: 16px; }
.pm-mapview__list { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pm-mapview__map { position: sticky; top: calc(var(--pm-header-h, 88px) + 16px); height: calc(100dvh - var(--pm-header-h, 88px) - 32px); min-height: 480px; overflow: hidden; border-radius: 28px; background: var(--pm-navy-50); }
.pm-map { width: 100%; height: 100%; background: var(--pm-navy-50); font: 400 12px/16px var(--pm-font-body), system-ui, sans-serif; }
.pm-mapview__none, .pm-mapview__note { margin: 0; padding: 20px; border-radius: 20px; background: var(--pm-neutral-50); color: var(--pm-neutral-700); font: 400 14px/22px var(--pm-font-body), system-ui, sans-serif; text-align: center; }
.pm-mapview__note { padding: 12px 16px; background: none; color: var(--pm-neutral-500); font-size: 12px; line-height: 18px; }
.pm-mapview__none[hidden] { display: none; }
.pm-mapview .pm-pager { flex-direction: column; align-items: stretch; margin-top: 8px; }

/* "Search as I move the map" chip, top centre over the map. */
.pm-map__auto { position: absolute; top: 20px; left: 50%; z-index: 500; display: flex; align-items: center; gap: 10px; height: 40px; padding: 0 20px 0 14px; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0); box-shadow: 0 4px 16px rgb(0 22 42 / 0.12); color: var(--pm-neutral-900); font: 500 13px/20px var(--pm-font-display), system-ui, sans-serif; white-space: nowrap; cursor: pointer; translate: -50% 0; }
.pm-map__auto[hidden] { display: none; }
.pm-map__auto input { width: 18px; height: 18px; margin: 0; accent-color: var(--pm-navy-700); cursor: pointer; }

/* Map card (Figma 2005:791): 150×176 photo, 464 wide. */
.pm-mcard { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; min-height: 200px; padding: 12px 56px 12px 12px; border-radius: 20px; background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); transition: box-shadow 150ms ease; }
.pm-mcard[hidden] { display: none; }
.pm-mcard.is-selected { box-shadow: inset 0 0 0 2px var(--pm-orange-500); }
@media (hover: hover) and (pointer: fine) { .pm-mcard:hover { box-shadow: inset 0 0 0 2px var(--pm-orange-500); } }
.pm-mcard .pm-mcard__media { display: block; overflow: hidden; height: 176px; border-radius: 14px; background: var(--pm-navy-50); }
.pm-mcard .pm-mcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.pm-mcard__info { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; padding-top: 6px; }
.pm-mcard .pm-mcard__title { max-width: 100%; margin: 0; font: 600 18px/27px var(--pm-font-display), system-ui, sans-serif; }
.pm-mcard .pm-mcard__title a { display: -webkit-box; overflow: hidden; color: var(--pm-navy-700); text-decoration: none; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.pm-mcard .pm-mcard__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.pm-mcard__meta, .pm-mcard__sub { max-width: 100%; margin: 0; overflow: hidden; color: var(--pm-neutral-500); font: 400 13px/18px var(--pm-font-body), system-ui, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.pm-mcard__price { margin: 14px 0 4px; color: var(--pm-orange-700); font: 600 16px/24px var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.pm-mcard__sub { font-size: 12px; }
.pm-results .pm-mcard .pm-mcard__book { position: relative; z-index: 1; height: 40px; margin-top: auto; padding: 0 30px; font-size: 13px; }
.pm-mcard .pm-mcard__heart, .pm-mcard .pm-mcard__heart:hover, .pm-mcard .pm-mcard__heart:focus {
	position: absolute; top: 16px; right: 16px; z-index: 2; display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%;
	background: var(--pm-neutral-50); color: var(--pm-neutral-900); cursor: pointer; transition: transform 160ms cubic-bezier(0.23, 1, 0.32, 1);
}
.pm-mcard .pm-mcard__heart .pm-icon { width: 18px; height: 18px; }
.pm-mcard .pm-mcard__heart[aria-pressed="true"] { color: var(--pm-orange-700); }
.pm-mcard .pm-mcard__heart[aria-pressed="true"] .pm-icon { fill: currentColor !important; }
.pm-mcard .pm-mcard__heart:active { transform: scale(0.92); }

/* Pins and clusters. */
.pm-map .pm-pin { width: 0; height: 0; border: 0; background: none; }
.pm-map .pm-pin span {
	position: absolute; display: block; padding: 7px 18px; border-radius: var(--pm-radius-pill); background: var(--pm-neutral-0); box-shadow: 0 2px 10px rgb(0 22 42 / 0.16);
	color: var(--pm-neutral-900); font: 600 13px/20px var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; translate: -50% -50%;
	transition: background-color 150ms ease, color 150ms ease, scale 150ms cubic-bezier(0.23, 1, 0.32, 1);
}
.pm-map .pm-pin.is-active span, .pm-map .pm-pin:hover span, .pm-map .pm-pin:focus-visible span { background: var(--pm-navy-700); color: var(--pm-neutral-0); scale: 1.06; }
.pm-map .pm-pin:focus-visible { outline: none; }
.pm-map .pm-pin-cluster { display: grid; place-items: center; border-radius: 50%; background: var(--pm-orange-500); box-shadow: 0 0 0 3px var(--pm-neutral-0), 0 4px 12px rgb(0 22 42 / 0.2); color: var(--pm-navy-900); font: 600 14px/1 var(--pm-font-display), system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.pm-map .leaflet-control-zoom { overflow: hidden; margin: 20px 20px 0 0; border: 0; border-radius: var(--pm-radius-pill); box-shadow: 0 4px 16px rgb(0 22 42 / 0.12); }
.pm-map .leaflet-control-zoom a { width: 40px; height: 40px; border: 0; color: var(--pm-neutral-900); font: 400 20px/40px system-ui, sans-serif; }
.pm-map .leaflet-control-attribution { font-size: 10px; }
.pm-map .leaflet-tile-pane { filter: grayscale(1) sepia(0.18) hue-rotate(175deg) saturate(1.6) brightness(1.06) contrast(0.86); } /* OSM tiles toned to the soft navy-50 ground. */

/* Pin popup (Figma: photo, name, price · configuration, "View project →"). */
.pm-pop .leaflet-popup-content-wrapper { padding: 0; border-radius: 20px; box-shadow: 0 16px 40px rgb(0 22 42 / 0.22); }
.pm-pop .leaflet-popup-content { margin: 0; }
.pm-pop .leaflet-popup-tip-container { display: none; }
.pm-pop .pm-pop__card { display: flex; gap: 16px; padding: 12px; color: inherit; text-decoration: none; }
.pm-pop .pm-pop__card img { flex: none; width: 96px; height: 96px; border-radius: 12px; object-fit: cover; }
.pm-pop__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-top: 4px; }
.pm-pop__body strong { color: var(--pm-navy-700); font: 600 16px/24px var(--pm-font-display), system-ui, sans-serif; }
.pm-pop__body small { color: var(--pm-neutral-500); font: 400 12px/18px var(--pm-font-body), system-ui, sans-serif; }
.pm-pop__body em { margin-top: auto; padding-top: 8px; color: var(--pm-orange-700); font: 600 13px/20px var(--pm-font-display), system-ui, sans-serif; font-style: normal; }

@media (max-width: 1023px) {
	.pm-mapview { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.pm-mcard { grid-template-columns: 112px minmax(0, 1fr); padding-right: 52px; }
	.pm-mcard .pm-mcard__media { height: 140px; }
}
@media (max-width: 767px) {
	.pm-results .pm-vtoggle a { height: 34px; padding: 0 14px; }
	.pm-results .pm-sort { flex: 1; min-width: 0; }
	.pm-results .pm-sort select { width: 100%; }
	.pm-mapview { grid-template-columns: 1fr; }
	.pm-mapview__map { position: relative; top: 0; order: -1; height: 58dvh; min-height: 360px; margin: 0 -20px; border-radius: 0; }
	.pm-map__auto { top: 12px; height: 36px; padding: 0 14px 0 10px; font-size: 12px; }
	.pm-map .leaflet-control-zoom { display: none; }
	.pm-mcard { grid-template-columns: 104px minmax(0, 1fr); gap: 14px; min-height: 0; padding: 10px 48px 10px 10px; }
	.pm-mcard .pm-mcard__media { height: 128px; }
	.pm-mcard .pm-mcard__title { font-size: 16px; line-height: 22px; }
	.pm-mcard__price { margin-top: 8px; font-size: 15px; }
	.pm-results .pm-mcard .pm-mcard__book { height: 36px; margin-top: 10px; padding: 0 20px; }
	.pm-mcard .pm-mcard__heart, .pm-mcard .pm-mcard__heart:hover, .pm-mcard .pm-mcard__heart:focus { top: 10px; right: 10px; width: 32px; height: 32px; }
}

/* Mobile list view, Figma 2028:3625: a white filter band (Filters / Sort / Map pills + active chips), then 24px-gapped cards. */
@media (max-width: 767px) {
	body:not(.pm-view-map) .pm-results .pm-results__bar { margin: 0 -20px; padding: 12px 20px; gap: 8px; background: var(--pm-neutral-0); box-shadow: inset 0 1px var(--pm-neutral-100), inset 0 -1px var(--pm-neutral-100); }
	body:not(.pm-view-map) .pm-results .pm-results__bar:has(+ .pm-achips) { padding-bottom: 10px; box-shadow: inset 0 1px var(--pm-neutral-100); }
	body:not(.pm-view-map) .pm-results .pm-achips { margin: 0 -20px; padding: 0 20px 12px; background: var(--pm-neutral-0); box-shadow: inset 0 -1px var(--pm-neutral-100); }
	.pm-results .pm-results__filters, .pm-results .pm-results__filters:hover, .pm-results .pm-results__filters:focus { height: 42px; padding: 0 10px 0 16px; font-weight: 500; font-size: 14px; }
	.pm-results .pm-sort { flex: none; }
	.pm-results .pm-sort select { width: auto; height: 42px; padding: 0 36px 0 16px; border-radius: 22px; background-color: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); color: var(--pm-navy-700); font: 500 14px/20px var(--pm-font-display), system-ui, sans-serif; }
	/* The toggle collapses to one outlined pill for the other view. */
	.pm-results .pm-vtoggle { padding: 0; background: none; }
	.pm-results .pm-vtoggle a[aria-current] { display: none; }
	.pm-results .pm-vtoggle a { height: 42px; padding: 0 16px; border-radius: 22px; background: var(--pm-neutral-0); box-shadow: inset 0 0 0 1px var(--pm-neutral-100); color: var(--pm-navy-700); font-size: 14px; }
	.pm-results .pm-results__count { margin-top: 16px; }
	.pm-results .pm-results__count strong { font-size: 13px; line-height: 19px; }
	.pm-achips .pm-achip { height: 34px; padding: 0 10px 0 12px; color: var(--pm-navy-700); }
	.pm-results__list { gap: 24px; }
	.pm-rcard { gap: 18px; }
	.pm-rcard .pm-rcard__media { aspect-ratio: 350 / 268; border-radius: 24px; }
	.pm-rcard__badges { top: 16px; left: 16px; }
	.pm-rcard .pm-rcard__heart, .pm-rcard .pm-rcard__heart:hover, .pm-rcard .pm-rcard__heart:focus { top: 16px; right: 16px; width: 40px; height: 40px; }
	.pm-rcard .pm-rcard__title { font-size: 21px; line-height: 28px; }
	.pm-rcard__price { font-size: 18px; }
	.pm-rcard__meta { font-size: 14px; line-height: 20px; }
	.pm-rcard__chips .pm-chip--static { background: var(--pm-neutral-50); }
	.pm-lbanner { gap: 10px; padding: 20px; border-radius: 20px; }
	.pm-lbanner__title { font-size: 18px; line-height: 24px; }
}

@media (prefers-reduced-motion: reduce) {
	.pm-view-map .pm-filters, .pm-view-map .pm-filters.is-open, .pm-map .pm-pin span { transition: none; }
	.pm-filters, .pm-filters.is-open { transition: none; }
	.pm-ctray { animation: none; }
	.pm-ctray[data-leaving] { animation: pm-tray-fade 150ms ease-out forwards; }
	@keyframes pm-tray-fade { to { opacity: 0; } }
	.pm-rcard .pm-rcard__media img { transition: none; }
}
