/* ===== global.css | favorites ===== */
* {
	box-sizing: border-box;
}

body {
	margin: 0;
	font-family: Arial, Helvetica, sans-serif;
	background: #f7f9fc;
	color: #111827;
	font-size: 18px;
}

button,
textarea,
a {
	font-family: inherit;
}

a {
	color: inherit;
	text-decoration: none;
}

.hidden {
	display: none;
}

.app-shell {
	width: min(1440px, 100%);
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	margin: 0 auto;
	background: #ffffff;
	border: 0;
	border-radius: 0;
	box-shadow: 0 0 28px rgba(15, 23, 42, 0.05);
	overflow: hidden;
}

@media (max-width: 900px) {
	body {
		font-size: 16px;
	}
}

/* Global blocking loading overlay */
.global-loading-overlay {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
	background: rgba(15, 23, 42, 0.42);
	backdrop-filter: blur(2px);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: none;
}

.global-loading-overlay.is-visible {
	display: flex;
	opacity: 1;
	visibility: visible;
	pointer-events: all;
}

/* While primed on pointerdown, keep the overlay visible but let the originating
   pointer sequence reach its button. The click handler then removes this class
   and the overlay becomes fully blocking. */
.global-loading-overlay.is-visible.is-primed {
	pointer-events: none;
}

.global-loading-box {
	min-width: 210px;
	max-width: min(340px, 92vw);
	padding: 22px 24px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 18px 48px rgba(15, 23, 42, 0.2);
	text-align: center;
}

.global-loading-spinner {
	width: 42px;
	height: 42px;
	margin: 0 auto 14px;
	border: 4px solid #dbeafe;
	border-top-color: #2563eb;
	border-radius: 50%;
	animation: global-loading-spin 0.75s linear infinite;
}

.global-loading-message {
	color: #111827;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
}

body.is-page-loading {
	overflow: hidden;
}

@keyframes global-loading-spin {
	to {
		transform: rotate(360deg);
	}
}

/* On mobile, keep the page in its natural document flow. */
@media (max-width: 900px) {
	.app-shell {
		min-height: 0;
	}
}


/* ===== header.css | favorites ===== */
.top-header {
	position: relative;
	display: flex;
	align-items: center;
	height: 78px;
	padding: 0 32px;
	border-bottom: 1px solid #e5eaf3;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(12px);
	z-index: 100;
}

.brand {
	display: flex;
	align-items: center;
	width: 230px;
	height: 58px;
	text-decoration: none;
}

.brand img {
	display: block;
	width: 190px;
	height: auto;
	max-height: 58px;
	object-fit: contain;
	object-position: left center;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-left: auto;
}

.add-listing-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 22px;
	border: 1px solid #22b8cf;
	border-radius: 5px;
	background: #ffffff;
	color: #263238;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.add-listing-button:hover {
	border-color: #12a8c0;
	background: #f5fdff;
}

.profile-menu {
	position: relative;
	display: flex;
	align-items: center;
}

.user-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #22b8cf;
	color: #ffffff;
	font-size: 19px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.user-button:hover,
.user-button:focus-visible {
	background: #12a8c0;
}

.profile-dropdown {
	position: absolute;
	top: calc(100% + 10px);
	right: 0;
	display: block;
	width: 255px;
	padding: 8px 0;
	border: 1px solid #e3e7eb;
	border-radius: 3px;
	background: #ffffff;
	box-shadow: 0 5px 16px rgba(15, 23, 42, 0.14);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
	z-index: 1000;
}

.profile-dropdown::before {
	content: "";
	position: absolute;
	top: -11px;
	right: 0;
	width: 54px;
	height: 11px;
}

.profile-menu:hover .profile-dropdown,
.profile-menu:focus-within .profile-dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.profile-dropdown a {
	display: flex;
	align-items: center;
	gap: 14px;
	min-height: 43px;
	padding: 9px 20px;
	color: #222b35;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.25;
	text-decoration: none;
	white-space: nowrap;
}

.profile-dropdown a:hover,
.profile-dropdown a:focus-visible {
	background: #f5f7f9;
}

.profile-dropdown i {
	width: 19px;
	color: #202b35;
	font-size: 17px;
	text-align: center;
}

@media (max-width: 900px) {
	.top-header {
		height: 68px;
		padding: 0 18px;
	}

	.brand {
		width: auto;
		height: 46px;
	}

	.brand img {
		width: 150px;
		max-height: 46px;
	}

	.header-actions {
		gap: 10px;
	}

	.add-listing-button {
		height: 40px;
		padding: 0 14px;
		font-size: 12px;
	}

	.user-button {
		width: 40px;
		height: 40px;
		font-size: 18px;
	}

	.profile-dropdown {
		right: 0;
		width: 245px;
	}
}

@media (max-width: 520px) {
	.top-header {
		padding: 0 12px;
	}

	.brand img {
		width: 128px;
	}

	.add-listing-button {
		padding: 0 10px;
		font-size: 11px;
	}
}

body.modal-open {
	overflow: hidden;
}

.listing-login-modal {
	position: fixed;
	inset: 0;
	z-index: 5000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 22px;
	background: rgba(15, 23, 42, 0.55);
	backdrop-filter: blur(5px);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.listing-login-modal.is-open {
	opacity: 1;
	visibility: visible;
}

.listing-login-modal-card {
	position: relative;
	width: min(520px, 100%);
	padding: 42px 38px 34px;
	border: 1px solid #e5eaf3;
	border-radius: 18px;
	background: #ffffff;
	box-shadow: 0 24px 70px rgba(15, 23, 42, 0.22);
	text-align: center;
	transform: translateY(10px) scale(0.98);
	transition: transform 0.2s ease;
}

.listing-login-modal.is-open .listing-login-modal-card {
	transform: translateY(0) scale(1);
}

.listing-login-modal-close {
	position: absolute;
	top: 14px;
	right: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: 0;
	border-radius: 50%;
	background: #f3f6f8;
	color: #64748b;
	font-size: 17px;
	cursor: pointer;
}

.listing-login-modal-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 70px;
	height: 70px;
	margin: 0 auto 20px;
	border-radius: 50%;
	background: #e9fbfe;
	color: #22b8cf;
	font-size: 30px;
}

.listing-login-modal-card h2 {
	margin: 0 0 14px;
	color: #1e293b;
	font-size: 24px;
	line-height: 1.25;
}

.listing-login-modal-card p {
	margin: 0;
	color: #536174;
	font-size: 15px;
	line-height: 1.65;
}

.listing-login-modal-card .listing-login-modal-note {
	margin-top: 12px;
	padding: 13px 15px;
	border-radius: 10px;
	background: #f7fafc;
	font-size: 14px;
}

.listing-login-modal-actions {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-top: 24px;
}

.listing-login-primary,
.listing-login-secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-width: 125px;
	height: 43px;
	padding: 0 20px;
	border-radius: 7px;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	cursor: pointer;
}

.listing-login-primary {
	border: 1px solid #22b8cf;
	background: #22b8cf;
	color: #ffffff;
}

.listing-login-secondary {
	border: 1px solid #dce3e9;
	background: #ffffff;
	color: #475569;
}

.auth-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(100vh - 150px);
	padding: 45px 20px;
}

.auth-placeholder-card {
	width: min(620px, 100%);
	padding: 48px 35px;
	border: 1px solid #e5eaf3;
	border-radius: 16px;
	background: #ffffff;
	box-shadow: 0 12px 38px rgba(15, 23, 42, 0.07);
	text-align: center;
}

.auth-placeholder-card i {
	margin-bottom: 18px;
	color: #22b8cf;
	font-size: 40px;
}

.auth-placeholder-card h1 {
	margin: 0 0 12px;
	color: #1e293b;
	font-size: 28px;
}

.auth-placeholder-card p {
	margin: 0;
	color: #64748b;
	font-size: 16px;
	line-height: 1.6;
}

@media (max-width: 520px) {
	.listing-login-modal-card {
		padding: 38px 20px 25px;
	}

	.listing-login-modal-card h2 {
		font-size: 21px;
	}

	.listing-login-modal-card p {
		font-size: 15px;
	}

	.listing-login-modal-actions {
		flex-direction: column;
	}

	.listing-login-primary,
	.listing-login-secondary {
		width: 100%;
	}
}

/* Member registration */
#private-register-modal .listing-login-modal-card,#agent-register-modal .listing-login-modal-card { max-height:90dvh; overflow-y:auto; width:min(94vw,540px); }
.member-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; text-align:left; margin-top:18px; }
.member-field { display:flex; flex-direction:column; gap:5px; font-size:14px; font-weight:600; color:#334155; }
.member-field input { box-sizing:border-box; width:100%; min-width:0; border:1px solid #cbd5e1; border-radius:9px; padding:11px; font:inherit; font-weight:400; }
.member-consent,.member-message,.member-form>button { grid-column:1/-1; }
.member-consent { font-size:13px; line-height:1.5; }
.member-message { margin:0; font-size:14px; }
.member-message.is-error { color:#b91c1c; }
.member-message.is-success { color:#15803d; }
@media(max-width:600px) { .member-form { grid-template-columns:1fr; } .member-field { font-size:15px; } }

.member-section-title { grid-column: 1 / -1; font-size: 16px; font-weight: 700; color: #1e40af; border-bottom: 1px solid #dbeafe; padding: 8px 0; }

/* Wider agent registration on desktop; preserve mobile layout. */
@media (min-width: 768px) {
	#agent-register-modal .listing-login-modal-card {
		box-sizing: border-box;
		width: min(850px, calc(100vw - 44px));
		max-width: 850px;
		max-height: 90dvh;
		overflow-y: auto;
	}
}

/* Registration dialogs: balanced three-column desktop layout. */
#private-register-modal .listing-login-modal-card,
#agent-register-modal .listing-login-modal-card {
	box-sizing: border-box;
	width: min(950px, calc(100vw - 44px));
	max-width: 950px;
	max-height: 90dvh;
	overflow-y: auto;
}
#private-register-modal .member-form,
#agent-register-modal .member-form {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (min-width: 601px) and (max-width: 900px) {
	#private-register-modal .member-form,
	#agent-register-modal .member-form {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	#private-register-modal .listing-login-modal-card,
	#agent-register-modal .listing-login-modal-card {
		width: min(94vw, 540px);
	}
	#private-register-modal .member-form,
	#agent-register-modal .member-form {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Member authentication and account management */
.auth-single-form { grid-template-columns: minmax(0,1fr); }
#profile-edit-modal .listing-login-modal-card { width:min(950px,calc(100vw - 32px)); max-width:950px; max-height:90dvh; overflow-y:auto; }
#profile-edit-modal .member-form { grid-template-columns:repeat(3,minmax(0,1fr)); }
#profile-edit-modal [hidden] { display:none; }
.profile-member-name { padding:12px 16px; font-weight:700; border-bottom:1px solid #e2e8f0; }
.profile-dropdown form { margin:0; }
.profile-dropdown form button {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	min-height: 43px;
	padding: 9px 20px;
	border: 0;
	background: transparent;
	color: #222b35;
	font: inherit;
	font-size: 14px;
	font-weight: 400;
	line-height: 1.25;
	text-align: left;
	white-space: nowrap;
	cursor: pointer;
}
.profile-dropdown form button:hover { background:#eff6ff; }
@media(max-width:900px) { #profile-edit-modal .member-form { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { #profile-edit-modal .member-form { grid-template-columns:minmax(0,1fr); } }

.member-listings-page { width:min(1200px,calc(100% - 32px)); margin:50px auto; min-height:50vh; } .member-listings-table { overflow-x:auto; } .member-listings-table table { width:100%; border-collapse:collapse; } .member-listings-table th,.member-listings-table td { padding:14px; border-bottom:1px solid #dbe3ef; text-align:left; } .member-listings-note { margin-top:24px; color:#64748b; }

/* Member listing editor */
.listing-editor{max-width:1080px;margin:42px auto;padding:30px;background:#fff;border-radius:18px;box-shadow:0 8px 32px #152b4814}.listing-editor h1{margin:0 0 12px}.listing-editor-form{margin-top:24px}.listing-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.listing-fields label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:14px}.listing-fields input,.listing-fields select,.listing-fields textarea{width:100%;min-width:0;padding:12px;border:1px solid #cbd5e1;border-radius:8px;font:inherit}.listing-full{grid-column:1/-1}.listing-editor-form button{margin:22px 15px 0 0;padding:13px 25px;border:0;border-radius:8px;background:#20a8bf;color:white;font-weight:700;cursor:pointer}.listing-feedback{color:#b42318}.listing-photos{display:flex;flex-wrap:wrap;gap:12px}.listing-photos img{width:150px;height:110px;object-fit:cover;border-radius:8px}@media(max-width:850px){.listing-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.listing-editor{margin:15px;padding:18px}.listing-fields{grid-template-columns:1fr}}

.listing-image-section{display:flex;flex-direction:column;gap:12px}.listing-photo-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;margin-top:8px}.listing-photo-row input{width:100%;min-width:0}.listing-editor-form .listing-add-photo,.listing-editor-form .listing-remove-photo{margin:0;width:max-content;padding:10px 16px}.listing-editor-form .listing-remove-photo{background:#64748b}@media(max-width:600px){.listing-photo-row{grid-template-columns:1fr}}

/* Listing image manager */
.listing-image-section{padding:24px;border:1px solid #d8e6f3;border-radius:16px;background:linear-gradient(145deg,#f4faff,#fff 70%);gap:22px}
.listing-images-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;border-bottom:1px solid #dce8f5}
.listing-images-heading h2{font-size:21px;margin:5px 0 7px;color:#132744}.listing-images-heading p,.listing-existing-images p,.listing-add-images p{font-size:13px;font-weight:400;color:#64748b;margin:0;line-height:1.6}
.listing-images-eyebrow{font-size:11px;letter-spacing:.1em;font-weight:800;color:#168fa8}.listing-images-heading>i{font-size:28px;color:#1c9db7;background:#e4f6fb;border-radius:12px;padding:15px}
.listing-existing-images h3,.listing-add-images h3{font-size:16px;margin:0 0 7px;color:#1e334f}.listing-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:13px;margin-top:15px}
.listing-existing-image{display:flex!important;flex-direction:column;gap:0!important;overflow:hidden;border:1px solid #d9e4f0;border-radius:12px;background:white;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.listing-existing-image:has(input:checked){border-color:#dc2626;box-shadow:0 0 0 2px #fee2e2}.listing-existing-image img{width:100%;height:115px;object-fit:cover}.listing-image-meta{padding:9px 10px 4px;font-size:12px;color:#64748b}.listing-image-delete{display:flex;align-items:center;gap:7px;padding:7px 10px 12px;color:#b91c1c;font-size:13px;font-weight:700}.listing-image-delete input{width:16px!important;height:16px;accent-color:#dc2626;margin:0}
.listing-add-images{padding:18px;border:1px dashed #b9d9e9;border-radius:12px;background:#fff}.listing-photo-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;margin-top:14px}.listing-photo-row input{background:#f8fbff;font-size:13px}.listing-editor-form .listing-add-photo{margin-top:14px;background:#e5f6fa;color:#087e99;padding:10px 15px}.listing-editor-form .listing-add-photo:hover{background:#d2eef5}
@media(max-width:600px){.listing-image-section{padding:16px}.listing-images-heading>i{display:none}.listing-photo-row{grid-template-columns:minmax(0,1fr)}.listing-image-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Property image manager */
.listing-image-section .listing-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.listing-image-tile{padding:10px;border:1px solid #dbe5ef;border-radius:13px;background:#fff;box-shadow:0 3px 12px #102b4810}.listing-image-tile .listing-preview{width:100%;height:125px;object-fit:cover;border-radius:9px;background:#f1f5f9}.listing-image-actions{display:flex;gap:7px;margin-top:9px}.listing-image-pick,.listing-image-remove{display:flex!important;align-items:center;justify-content:center;flex:1;cursor:pointer;font-size:12px!important;padding:8px 4px;border-radius:7px;background:#e5f5fa;color:#096b85}.listing-image-remove{background:#fff0f0;color:#a52626}.listing-image-tile.marked-delete{opacity:.55;border-color:#e77}.listing-image-section h3{margin:5px 0;color:#1e334f}.listing-editor-form .listing-add-photo{margin-top:0}

/* Listing editor actions: scoped styles, including when shared header CSS changes. */
.listing-editor .listing-form-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}
.listing-editor .listing-editor-form .listing-form-actions button{margin:0;min-height:44px;padding:11px 18px;border:0;border-radius:9px;background:#159cb4;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.listing-editor .listing-editor-form .listing-form-actions button[value="draft"]{background:#eaf1f8;color:#27425e}
.listing-editor .listing-editor-form .listing-form-actions button[value="published"]{background:#15803d;color:#fff}
.listing-editor .listing-editor-form .listing-form-actions button[value="delete"]{background:#b91c1c;color:#fff}
.listing-editor .listing-back-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 12px;color:#31547a;font-weight:600;text-decoration:none}
.listing-editor .listing-image-tile .listing-image-actions label{margin:0;min-width:0;flex-direction:row;font-weight:700}
.listing-editor .listing-image-tile .listing-image-actions .listing-image-pick,.listing-editor .listing-image-tile .listing-image-actions .listing-image-remove{border-radius:8px;min-height:34px}
@media(max-width:600px){.listing-editor .listing-form-actions{align-items:stretch}.listing-editor .listing-form-actions button{flex:1 1 42%}.listing-editor .listing-back-link{flex:1 1 100%;justify-content:center}}

/* Property editor: accessible, responsive OpenCart-style tabs. */
.listing-editor .listing-tabs{display:flex;gap:5px;overflow-x:auto;border-bottom:1px solid #dbe5ef;margin:22px 0 0;padding:0 0 0 2px;scrollbar-width:thin}
.listing-editor .listing-editor-form .listing-tab{flex:0 0 auto;white-space:nowrap;margin:0 0 -1px;padding:13px 18px;border:1px solid transparent;border-bottom:2px solid transparent;border-radius:9px 9px 0 0;background:transparent;color:#52677e;font:inherit;font-weight:700;cursor:pointer}
.listing-editor .listing-editor-form .listing-tab:hover{background:#f0f8fb;color:#087e99}
.listing-editor .listing-editor-form .listing-tab.is-active{background:#f5fbff;border-color:#dbe5ef;border-bottom-color:#159cb4;color:#087e99}
.listing-editor .listing-editor-form .listing-tab:focus-visible{outline:2px solid #159cb4;outline-offset:-3px}
.listing-editor .listing-tab-panel{padding:25px 4px 6px;min-width:0}
.listing-editor .listing-tab-panel[hidden]{display:none!important}
.listing-editor .listing-tab-panel .listing-image-section{grid-column:auto}
.listing-editor .listing-contact-note{padding:20px;border:1px solid #dbe5ef;border-radius:12px;background:#f7fbff;line-height:1.65}
.listing-editor .listing-contact-note h2{margin:0 0 8px}
.listing-editor .listing-contact-link{display:inline-block;margin-top:8px;color:#087e99;font-weight:700}
@media(max-width:600px){.listing-editor .listing-editor-form .listing-tab{padding:12px 13px;font-size:13px}.listing-editor .listing-tab-panel{padding:18px 0 4px}}

/* Compact property image thumbnails: retain image proportions on mobile. */
.listing-editor .listing-image-section .listing-image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(0,148px));gap:12px;justify-content:start}
.listing-editor .listing-image-tile{width:100%;min-width:0;padding:7px}
.listing-editor .listing-image-tile .listing-preview{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#f1f5f9}
.listing-editor .listing-image-actions{gap:4px;margin-top:7px}
.listing-editor .listing-image-tile .listing-image-actions .listing-image-pick,.listing-editor .listing-image-tile .listing-image-actions .listing-image-remove{font-size:11px!important;padding:7px 2px;min-width:0}
@media(max-width:600px){.listing-editor .listing-image-section .listing-image-grid{grid-template-columns:repeat(auto-fill,minmax(0,118px));gap:9px}.listing-editor .listing-image-tile{padding:6px}.listing-editor .listing-image-tile .listing-preview{height:auto;aspect-ratio:4/3;object-fit:contain}.listing-editor .listing-image-tile .listing-image-actions .listing-image-pick,.listing-editor .listing-image-tile .listing-image-actions .listing-image-remove{font-size:10px!important;min-height:30px}}

.member-listing-thumb{display:block;width:64px;height:48px;object-fit:cover;border-radius:8px;background:#f1f5f9}
.member-listings-table{overflow-x:auto}
.member-listings-table td{vertical-align:middle}

/* Listing features and actions */
.listing-editor .listing-features-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.listing-editor .listing-feature-option{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid #dbe5ef;border-radius:10px;background:#f8fbff;font-weight:600;cursor:pointer}
.listing-editor .listing-feature-option input{width:18px;height:18px;accent-color:#159cb4;flex:none}
.member-listing-actions{display:flex;flex-wrap:wrap;gap:7px}
.member-listing-actions a{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid #dbe5ef;border-radius:8px;background:#f3faff;color:#176b83;text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}
.member-listing-actions a:hover{background:#e1f3fa}
@media(max-width:700px){.listing-editor .listing-features-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-listing-actions a span{display:none}}
@media(max-width:390px){.listing-editor .listing-features-grid{grid-template-columns:1fr}}


/* ===== search.css | favorites ===== */

.main-content {
	padding: 52px 44px 44px;
}

.hero-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.hero-title {
	display: block;
	width: 420px;
	max-width: 90%;
	height: auto;
	object-fit: contain;
}

.hero-section p {
	max-width: 620px;
	margin: 15px 0;
	font-size: 24px;
	line-height: 1.5;
	color: #475569;
}

.ai-search-box {
	display: flex;
	flex-direction: column;
	width: min(1050px, 100%);
	min-height: 180px;
	padding: 24px 28px;
	text-align: left;
	background: #ffffff;
	border: 1px solid #dbe3ef;
	border-radius: 24px;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.ai-search-content {
	flex: 1;
	width: 100%;
	min-width: 0;
}

.ai-search-content textarea {
	display: block;
	width: 100%;
	height: 100px;
	min-height: 100px;
	padding: 0;
	border: 0;
	outline: 0;
	resize: none;
	overflow-y: auto;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.45;
	color: #334155;
	background: transparent;
}

.ai-search-content textarea::placeholder {
	color: #6b7280;
	font-weight: 400;
}

.ai-search-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin-top: 12px;
}

.ai-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	font-size: 26px;
	font-weight: 400;
	line-height: 1;
	color: #2563eb;
}

.send-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border: 0;
	border-radius: 50%;
	background: #2563eb;
	color: #ffffff;
	font-size: 17px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 10px 24px rgba(37, 99, 235, 0.28);
}

.send-button:hover {
	background: #1d4ed8;
	color: #ffffff;
}

@media (max-width: 900px) {
	.main-content {
		padding: 30px 16px 28px;
	}

	.hero-title {
		width: 320px;
		max-width: 95%;
	}

	.hero-section p {
		margin: 15px 0;
		font-size: 17px;
	}

	.ai-search-box {
		min-height: 210px;
		padding: 20px;
		border-radius: 20px;
	}

	.ai-search-content textarea {
		height: 130px;
		min-height: 130px;
		padding: 0;
		font-size: 16px;
		font-weight: 400;
		line-height: 1.45;
	}

	.ai-search-footer {
		margin-top: 10px;
	}

	.ai-icon {
		width: 40px;
		height: 40px;
		font-size: 22px;
	}

	.send-button {
		width: 40px;
		height: 40px;
		font-size: 16px;
	}
}
.search-mode-tabs {
	display: flex;
	gap: 8px;
	width: min(1050px, 100%);
	margin: 12px auto 14px;
	padding: 6px;
	border: 1px solid #dbe3ef;
	border-radius: 16px;
	background: #f8fafc;
}

.search-mode-tab {
	flex: 1;
	padding: 12px 14px;
	border: 0;
	border-radius: 11px;
	background: transparent;
	color: #64748b;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
}

.search-mode-tab.active {
	background: #ffffff;
	color: #2563eb;
	box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}

.search-panel {
	display: none;
	width: min(1050px, 100%);
}

.search-panel.active {
	display: block;
}

.ai-status {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #64748b;
}

.ai-status .ai-icon {
	width: auto;
	height: auto;
	font-size: 20px;
}

.manual-search-box {
	width: 100%;
	padding: 24px;
	border: 1px solid #dbe3ef;
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
	text-align: left;
}

.filter-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
}

.manual-search-box label {
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: 13px;
	font-weight: 700;
	color: #475569;
}

.manual-search-box input,
.manual-search-box select {
	width: 100%;
	height: 44px;
	padding: 0 12px;
	border: 1px solid #dbe3ef;
	border-radius: 10px;
	outline: 0;
	background: #ffffff;
	font-size: 14px;
	color: #111827;
}

.manual-search-box input:focus,
.manual-search-box select:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.full-width {
	grid-column: 1 / -1;
}

.filter-checks {
	display: flex;
	flex-wrap: wrap;
	gap: 9px 16px;
	padding: 10px 0 2px;
}

.filter-checks label {
	flex-direction: row;
	align-items: center;
	gap: 6px;
	font-weight: 600;
}

.filter-checks input {
	width: 16px;
	height: 16px;
}

.filter-actions {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
}

.manual-submit,
.manual-reset {
	height: 44px;
	padding: 0 20px;
	border: 0;
	border-radius: 11px;
	font-weight: 700;
	cursor: pointer;
}

.manual-submit {
	background: #2563eb;
	color: #ffffff;
}

.manual-reset {
	background: #eef2f7;
	color: #475569;
}

.quick-search-box {
	display: block;
	padding: 0;
	overflow: hidden;
}

.quick-section-label {
	margin: 0;
	padding: 24px 28px 20px;
	border-bottom: 1px solid #e8edf4;
	background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
	text-align: left;
}

.quick-section-label h2 {
	margin: 0;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.2;
	color: #0f172a;
}

.quick-section-label p {
	max-width: 760px;
	margin: 7px 0 0;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	color: #64748b;
}

.quick-search-fields {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 220px auto;
	align-items: end;
	gap: 14px;
	padding: 18px 24px 24px;
}

@media (max-width: 900px) {
	.search-mode-tabs {
		gap: 4px;
	}

	.search-mode-tab {
		padding: 10px 8px;
		font-size: 12px;
	}

	.filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.quick-search-box {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 560px) {
	.filter-grid {
		grid-template-columns: 1fr;
	}
}

/* Compact equal-height search panels */
:root {
	--search-panel-height: 230px;
}

.search-panel {
	height: var(--search-panel-height);
}

.ai-search-box,
.manual-search-box {
	height: 100%;
	min-height: 0;
}

.filter-grid {
	grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
	align-content: start;
	gap: 8px;
	padding: 14px;
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-gutter: stable;
}

.sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.filter-grid > label {
	min-width: 0;
	gap: 0;
}

.filter-grid input,
.filter-grid select {
	height: 36px;
	padding: 0 9px;
	border-radius: 9px;
	font-size: 12px;
}

.filter-grid input::placeholder {
	color: #64748b;
	opacity: 1;
}

.filter-checks {
	gap: 6px;
	padding: 2px 0;
}

.filter-checks label {
	display: inline-flex;
	flex-direction: row;
	align-items: center;
	width: auto;
	min-height: 30px;
	padding: 4px 8px;
	border: 1px solid #dbe3ef;
	border-radius: 999px;
	background: #f8fafc;
	font-size: 11px;
	font-weight: 600;
	white-space: nowrap;
}

.filter-checks input {
	width: 14px;
	height: 14px;
	margin: 0;
}

.filter-actions {
	position: sticky;
	bottom: -14px;
	padding: 7px 0 0;
	background: #ffffff;
}

.filter-actions .manual-submit,
.filter-actions .manual-reset {
	height: 34px;
	padding: 0 14px;
	border-radius: 9px;
	font-size: 12px;
}


@media (max-width: 900px) {
	:root {
		--search-panel-height: 260px;
	}

	.filter-grid {
		grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
		gap: 7px;
		padding: 12px;
	}

	.filter-grid input,
	.filter-grid select {
		height: 34px;
		font-size: 11px;
	}

	.filter-checks label {
		min-height: 28px;
		padding: 3px 7px;
		font-size: 10px;
	}
}

@media (max-width: 520px) {
	.filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* On phones prefer three compact fields per row when the viewport permits it. */
@media (max-width: 900px) {
	.filter-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 360px) {
	.filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Large filters modal */
.filters-launcher {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 22px;
	height: 100%;
	padding: 28px 32px;
	border: 1px solid #dbe3ef;
	border-radius: 24px;
	background: linear-gradient(135deg, #ffffff 0%, #f8fbff 100%);
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
	text-align: left;
}

.filters-launcher-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 18px;
	background: #eff6ff;
	color: #2563eb;
	font-size: 24px;
}

.filters-launcher-copy {
	display: flex;
	flex-direction: column;
	gap: 7px;
	min-width: 0;
}

.filters-launcher-copy strong {
	font-size: 20px;
	line-height: 1.25;
	color: #0f172a;
}

.filters-launcher-copy span {
	font-size: 14px;
	line-height: 1.5;
	color: #64748b;
}

.filters-open-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	height: 48px;
	padding: 0 20px;
	border: 0;
	border-radius: 12px;
	background: #2563eb;
	color: #ffffff;
	font-size: 14px;
	font-weight: 800;
	white-space: nowrap;
	cursor: pointer;
	box-shadow: 0 10px 22px rgba(37, 99, 235, 0.2);
}

.filters-open-button:hover {
	background: #1d4ed8;
}

.filters-modal {
	position: fixed;
	inset: 0;
	z-index: 5000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

.filters-modal.is-open {
	display: flex;
}

.filters-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.58);
	backdrop-filter: blur(5px);
}

.filters-modal-dialog {
	position: relative;
	display: flex;
	flex-direction: column;
	width: min(1180px, 100%);
	max-height: min(88vh, 900px);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.8);
	border-radius: 24px;
	background: #ffffff;
	box-shadow: 0 30px 80px rgba(15, 23, 42, 0.28);
}

.filters-modal-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding: 24px 28px 20px;
	border-bottom: 1px solid #e8edf4;
	background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

.filters-modal-kicker {
	display: block;
	margin-bottom: 5px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #2563eb;
}

.filters-modal-header h2 {
	margin: 0;
	font-size: 28px;
	line-height: 1.2;
	color: #0f172a;
}

.filters-modal-header p {
	max-width: 760px;
	margin: 7px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: #64748b;
}

.filters-modal-close {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 42px;
	height: 42px;
	border: 1px solid #dbe3ef;
	border-radius: 12px;
	background: #ffffff;
	color: #475569;
	font-size: 18px;
	cursor: pointer;
}

.filters-modal-form {
	display: flex;
	flex: 1;
	min-height: 0;
	flex-direction: column;
}

.filters-modal-content {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	padding: 20px 28px 24px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.filter-group {
	padding: 18px;
	border: 1px solid #e2e8f0;
	border-radius: 18px;
	background: #ffffff;
}

.filter-group-wide {
	grid-column: 1 / -1;
}

.filter-group-heading {
	display: flex;
	align-items: center;
	gap: 11px;
	margin-bottom: 15px;
}

.filter-group-heading > i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: #eff6ff;
	color: #2563eb;
	font-size: 15px;
}

.filter-group-heading h3 {
	margin: 0;
	font-size: 15px;
	color: #0f172a;
}

.filter-group-heading span {
	display: block;
	margin-top: 2px;
	font-size: 11px;
	font-weight: 500;
	color: #94a3b8;
}

.filter-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.filter-fields label {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	font-size: 12px;
	font-weight: 700;
	color: #475569;
}

.filter-fields input,
.filter-fields select {
	width: 100%;
	height: 42px;
	padding: 0 11px;
	border: 1px solid #dbe3ef;
	border-radius: 10px;
	outline: 0;
	background: #ffffff;
	font-size: 13px;
	color: #0f172a;
}

.filter-fields input:focus,
.filter-fields select:focus {
	border-color: #2563eb;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.filter-feature-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 9px;
}

.filter-feature-grid label {
	position: relative;
	cursor: pointer;
}

.filter-feature-grid input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.filter-feature-grid span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-height: 40px;
	padding: 7px 9px;
	border: 1px solid #dbe3ef;
	border-radius: 10px;
	background: #f8fafc;
	font-size: 11px;
	font-weight: 700;
	color: #475569;
	transition: 0.15s ease;
}

.filter-feature-grid input:checked + span {
	border-color: #2563eb;
	background: #eff6ff;
	color: #1d4ed8;
	box-shadow: inset 0 0 0 1px #2563eb;
}

.filters-modal-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	padding: 14px 28px;
	border-top: 1px solid #e8edf4;
	background: #ffffff;
	box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.04);
}

.filters-clear-button,
.filters-apply-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: 44px;
	padding: 0 18px;
	border-radius: 11px;
	font-size: 13px;
	font-weight: 800;
	cursor: pointer;
}

.filters-clear-button {
	border: 1px solid #dbe3ef;
	background: #ffffff;
	color: #475569;
}

.filters-apply-button {
	border: 0;
	background: #2563eb;
	color: #ffffff;
}

body.filters-modal-open {
	overflow: hidden;
}

@media (max-width: 900px) {
	.filters-launcher {
		grid-template-columns: auto minmax(0, 1fr);
		padding: 22px;
	}

	.filters-open-button {
		grid-column: 1 / -1;
		width: 100%;
	}

	.filters-modal {
		padding: 12px;
	}

	.filters-modal-dialog {
		max-height: 94vh;
		border-radius: 20px;
	}

	.filters-modal-header {
		padding: 20px 18px 16px;
	}

	.filters-modal-header h2 {
		font-size: 23px;
	}

	.quick-section-label {
		padding: 20px 18px 16px;
	}

	.quick-section-label h2 {
		font-size: 23px;
	}

	.quick-search-fields {
		grid-template-columns: 1fr;
		gap: 10px;
		padding: 14px 18px 18px;
	}

	.filters-modal-content {
		grid-template-columns: 1fr;
		gap: 12px;
		padding: 14px 16px 18px;
	}

	.filter-group-wide {
		grid-column: auto;
	}

	.filter-feature-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.filters-modal-actions {
		padding: 12px 16px;
	}
}

@media (max-width: 560px) {
	.filters-launcher {
		grid-template-columns: 1fr;
		align-content: center;
		gap: 12px;
		padding: 18px;
		text-align: center;
	}

	.filters-launcher-icon {
		display: none;
	}

	.filters-launcher-copy strong {
		font-size: 17px;
	}

	.filters-launcher-copy span {
		font-size: 12px;
	}

	.filters-modal {
		padding: 0;
	}

	.filters-modal-dialog {
		width: 100%;
		height: 100%;
		max-height: none;
		border-radius: 0;
	}

	.filters-modal-header {
		padding: 16px;
	}

	.filters-modal-header p {
		display: none;
	}

	.filter-group {
		padding: 14px;
		border-radius: 14px;
	}

	.filter-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 9px;
	}

	.filter-fields input,
	.filter-fields select {
		height: 40px;
		font-size: 12px;
	}

	.filter-feature-grid span {
		min-height: 38px;
		font-size: 10px;
	}

	.filters-modal-actions {
		gap: 8px;
	}

	.filters-clear-button,
	.filters-apply-button {
		flex: 1;
		padding: 0 10px;
	}
}

/* Shared page layout: preserve the original centered search width. */
.search-section {
	width: 100%;
	min-width: 0;
}

.search-section > .search-panel {
	margin-right: auto;
	margin-left: auto;
}

.data-section {
	width: 100%;
	min-width: 0;
}

.favorites-data-section {
	min-height: 45vh;
	padding-top: 40px;
}

@media (max-width: 900px) {
	.favorites-data-section {
		padding-top: 24px;
	}
}

.favorites-empty-message { text-align: center; }

/* Favorites empty state */
.favorites-empty-card {
	max-width: 720px;
	margin: 28px auto 48px;
	padding: 30px 28px 36px;
	border: 1px solid #e0e9f6;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(30, 55, 100, .06);
	text-align: center;
}
.favorites-empty-illustration {
	display: block;
	width: min(100%, 360px);
	height: auto;
	margin: 0 auto 24px;
	border-radius: 18px;
}
.favorites-empty-card h3 {
	margin: 0 0 12px;
	color: #1e293b;
	font-size: clamp(21px, 3vw, 28px);
}
.favorites-empty-card p {
	max-width: 550px;
	margin: 0 auto 24px;
	color: #64748b;
	font-size: 16px;
	line-height: 1.65;
}
.favorites-empty-action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 13px 22px;
	border-radius: 10px;
	background: #1596ad;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.favorites-empty-action:hover, .favorites-empty-action:focus-visible {
	background: #117b90;
	color: #fff;
}
@media (max-width: 600px) {
	.favorites-empty-card { padding: 22px 16px 28px; margin: 20px auto 32px; }
	.favorites-empty-card p { font-size: 16px; }
}

/* Shared shell: page-specific content fills the space below the common hero. */
.main-content { width: 100%; flex: 1 0 auto; min-width: 0; }
.data-section { width: 100%; min-width: 0; }
.data-section > .property-page { width: 100%; }


/* ===== cards.css | favorites ===== */

.property-section {
	margin: 56px 44px 0;
}

.section-header {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 16px;
	margin-bottom: 18px;
	border-bottom: 1px solid cyan;
}

.section-header h2 {
	width: 100%;
	margin: 10px;
	font-size: 22px;
	font-weight: 700;
	text-align: center;
}

.property-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(300px, 1fr));
	gap: 18px;
}

.property-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #dfe6ef;
	border-radius: 15px;
	background: #ffffff;
	box-shadow: 0 5px 18px rgba(15, 23, 42, 0.045);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.property-card:hover {
	transform: translateY(-2px);
	border-color: #ccd8e8;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.property-card[hidden] {
	display: none;
}

.property-card > img {
	display: block;
	width: 100%;
	aspect-ratio: 2.15 / 1;
	min-height: 168px;
	max-height: 220px;
	object-fit: cover;
	background: #eef2f7;
}

.property-info {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 13px 16px 15px;
}

.property-location {
	margin-bottom: 5px;
	overflow: hidden;
	color: #738197;
	font-size: 11px;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.property-info h3 {
	display: -webkit-box;
	min-height: 40px;
	margin: 0 0 13px;
	overflow: hidden;
	color: #111827;
	font-size: 15px;
	line-height: 1.35;
	font-weight: 750;
	text-align: left;
	text-overflow: ellipsis;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.property-details {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px 10px;
	margin-bottom: 13px;
	color: #526176;
	font-size: 14px;
	line-height: 1.3;
}

.property-details span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.property-details span::before {
	display: inline-block;
	margin-right: 5px;
	color: #17375e;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
}

.property-details span:nth-child(1)::before {
	content: "\f547";
}

.property-details span:nth-child(2)::before {
	content: "\f236";
}

.property-details span:nth-child(3)::before {
	content: "\f2cd";
}

.property-details span:nth-child(4)::before {
	content: "\f1ad";
}

.property-details span:nth-child(5)::before {
	content: "\f073";
}

.property-price {
	margin-top: auto;
	color: #0b1f3a;
	font-size: 20px;
	line-height: 1.2;
	font-weight: 800;
}

.property-note {
    margin: 10px;
    color: #98a3b3;
    font-size: 13px;
    text-align: center;
}

.collection-pagination {
	margin-top: 22px;
}

@media (max-width: 1270px) {
	.property-grid {
		grid-template-columns: repeat(3, minmax(300px, 1fr));
	}
}

@media (max-width: 960px) {
	.property-grid {
		grid-template-columns: repeat(2, minmax(300px, 1fr));
	}
}

@media (max-width: 700px) {
	.property-section {
		margin: 38px 16px 0;
	}

	.section-header {
		justify-content: center;
	}

	.section-header h2 {
		width: 100%;
		font-size: 18px;
		text-align: center;
	}

	.property-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.property-card > img {
		aspect-ratio: 2 / 1;
		min-height: 0;
		max-height: none;
	}

	.property-info {
		padding: 8px 9px 10px;
	}

	.property-location {
		margin-bottom: 4px;
		font-size: 9px;
	}

	.property-info h3 {
		min-height: 32px;
		margin-bottom: 8px;
		font-size: 11.5px;
		line-height: 1.35;
	}

	.property-details {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4px 5px;
		margin-bottom: 8px;
		font-size: 8.5px;
	}

	.property-details span::before {
		margin-right: 3px;
	}

	.property-price {
		font-size: 15px;
	}

	.property-note {
		margin-top: 4px;
		font-size: 8px;
	}

	.listing-badge {
		margin-bottom: 4px;
		font-size: 9px;
	}
}

.listing-badge {
	margin: 0 0 6px;
	color: #1877f2;
	font-size: 11px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-align: center;
}

@media (max-width: 700px) {
	.listing-badge {
		margin-bottom: 4px;
		font-size: 9px;
	}
}

.property-card[data-property-url] {
	cursor: pointer;
}

@media (max-width: 420px) {
	.property-section {
		margin-right: 10px;
		margin-left: 10px;
	}

	.property-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.property-info {
		padding: 7px 7px 9px;
	}

	.property-info h3 {
		font-size: 10.5px;
	}

	.property-price {
		font-size: 14px;
	}
}


/* Property thumbnail layout: image-led card with price/actions below the photo. */
.property-card > img {
	aspect-ratio: 1.55 / 1;
	min-height: 210px;
	max-height: 270px;
}

.property-info {
	padding: 14px 16px 16px;
}

.card-price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}

.property-price {
	margin: 0;
	color: #111827;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.15;
}

.favorite-button {
	position: static;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #17375e;
	font-size: 27px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}

.favorite-button:hover {
	background: #f1f5f9;
	border-radius: 50%;
}

.card-type-line {
	margin-bottom: 5px;
	color: #111827;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
}

.listing-badge {
	margin: 0 0 5px;
	font-size: 10px;
	text-align: left;
}

.property-location {
	margin-bottom: 6px;
	font-size: 12px;
}

.property-info h3 {
	min-height: 38px;
	margin-bottom: 10px;
	font-size: 14px;
}

.property-details {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: auto 0 0;
	padding-top: 9px;
	border-top: 1px solid #edf1f5;
	font-size: 14px;
}

.property-details span::before {
	margin-right: 5px;
}

.property-details .meta-floor::before { content: "\f1ad"; }
.property-details .meta-bed::before { content: "\f236"; }
.property-details .meta-bath::before { content: "\f2cd"; }

@media (max-width: 700px) {
	.property-card > img {
		aspect-ratio: 1.28 / 1;
		min-height: 0;
		max-height: none;
	}

	.property-info {
		padding: 9px 9px 11px;
	}

	.card-price-row {
		margin-bottom: 5px;
	}

	.property-price {
		font-size: 15px;
	}

	.favorite-button {
		width: 27px;
		height: 27px;
		font-size: 22px;
	}

	.card-type-line {
		margin-bottom: 3px;
		font-size: 10px;
	}

	.property-location {
		margin-bottom: 4px;
		font-size: 9px;
	}

	.property-info h3 {
		min-height: 30px;
		margin-bottom: 7px;
		font-size: 10.5px;
	}

	.property-details {
		gap: 5px 8px;
		padding-top: 6px;
		font-size: 8.5px;
	}

	.listing-badge {
		margin-bottom: 3px;
		font-size: 8px;
	}
}


/* Mobile cards: one property per row, keep desktop typography and favorite styling. */
@media (max-width: 700px) {
	.property-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.property-card > img {
		aspect-ratio: 1.55 / 1;
		min-height: 210px;
		max-height: 270px;
	}

	.property-info {
		padding: 14px 16px 16px;
	}

	.card-price-row {
		margin-bottom: 8px;
	}

	.property-price {
		font-size: 21px;
	}

	.favorite-button {
		width: 34px;
		height: 34px;
		font-size: 27px;
	}

	.card-type-line {
		margin-bottom: 5px;
		font-size: 13px;
	}

	.listing-badge {
		margin-bottom: 5px;
		font-size: 10px;
	}

	.property-location {
		margin-bottom: 6px;
		font-size: 12px;
	}

	.property-info h3 {
		min-height: 38px;
		margin-bottom: 10px;
		font-size: 14px;
		line-height: 1.35;
	}

	.property-details {
		gap: 8px 14px;
		padding-top: 9px;
		font-size: 14px;
	}

	.property-details span::before {
		margin-right: 5px;
	}

	.property-note {
		font-size: inherit;
	}
}

@media (max-width: 420px) {
	.property-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.property-info {
		padding: 14px 16px 16px;
	}

	.property-info h3 {
		font-size: 14px;
	}

	.property-price {
		font-size: 21px;
	}
}

/* Mobile readability: larger card typography for comfortable reading. */
@media (max-width: 700px) {
	.property-price {
		font-size: 23px;
	}

	.card-type-line {
		font-size: 15px;
		line-height: 1.4;
	}

	.listing-badge {
		font-size: 14px;
		line-height: 1.35;
	}

	.property-location {
		font-size: 14px;
		line-height: 1.45;
	}

	.property-info h3 {
		min-height: 44px;
		font-size: 16px;
		line-height: 1.4;
	}

	.property-details {
		font-size: 14px;
		line-height: 1.4;
	}
}

@media (max-width: 420px) {
	.property-price {
		font-size: 23px;
	}

	.property-info h3 {
		font-size: 16px;
	}
}

.favorite-button.is-favorite, .property-favorite.is-favorite { color: #e11d48; }


/* ===== results.css | favorites ===== */

.results-section {
	margin: 44px 44px 0;
}

.results-toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 18px;
	padding-bottom: 8px;
	border-bottom: 1px solid cyan;
}

.results-header {
	flex: 1;
	min-width: 0;
	margin: 0;
	text-align: center;
}

.results-header h2 {
	margin: 0;
	font-size: 22px;
	text-align: center;
	font-weight: 700;
}

.results-header h2 span {
	color: #2563eb;
}

.results-header p {
	margin: 0;
	font-size: 16px;
	color: #64748b;
}

.sort-control {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 190px;
	font-size: 12px;
	font-weight: 700;
	color: #64748b;
}

.sort-control select {
	height: 42px;
	padding: 0 10px;
	border: 1px solid #dbe3ef;
	border-radius: 10px;
	background: #ffffff;
}

.active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
	margin: -4px 0 18px;
}

.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 7px 6px 9px;
	border-radius: 999px;
	background: #eff6ff;
	color: #1d4ed8;
	font-size: 11px;
	font-weight: 700;
}

.filter-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(37, 99, 235, 0.1);
	color: #1d4ed8;
	font-size: 15px;
	line-height: 1;
	cursor: pointer;
}

.filter-remove:hover {
	background: rgba(37, 99, 235, 0.18);
}


.results-page-label {
	margin: 5px 0 0;
	color: #64748b;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
}

.results-list {
	display: grid;
	grid-template-columns: repeat(4, minmax(300px, 1fr));
	gap: 18px;
}

.result-card {
	position: relative;
	display: flex;
	min-width: 0;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid #dfe6ef;
	border-radius: 15px;
	background: #ffffff;
	box-shadow: 0 5px 18px rgba(15, 23, 42, 0.045);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.result-card:hover {
	transform: translateY(-2px);
	border-color: #ccd8e8;
	box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.result-card > img {
	display: block;
	width: 100%;
	aspect-ratio: 2.15 / 1;
	min-height: 168px;
	max-height: 220px;
	object-fit: cover;
	background: #eef2f7;
}

.result-info {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 13px 16px 15px;
}

.result-location {
	margin-bottom: 5px;
	overflow: hidden;
	color: #738197;
	font-size: 11px;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.result-info h3 {
	display: -webkit-box;
	min-height: 40px;
	margin: 0 0 13px;
	overflow: hidden;
	color: #111827;
	font-size: 15px;
	line-height: 1.35;
	font-weight: 750;
	text-overflow: ellipsis;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}

.result-meta {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 7px 10px;
	margin-bottom: 13px;
	color: #526176;
	font-size: 11px;
	line-height: 1.3;
}

.result-meta span {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.result-meta span::before {
	display: inline-block;
	margin-right: 5px;
	color: #17375e;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
}

.result-meta span:nth-child(1)::before {
	content: "\f547";
}

.result-meta span:nth-child(2)::before {
	content: "\f236";
}

.result-meta span:nth-child(3)::before {
	content: "\f2cd";
}

.result-meta span:nth-child(4)::before {
	content: "\f1ad";
}

.result-meta span:nth-child(5)::before {
	content: "\f073";
}

.result-info strong {
	margin-top: auto;
	color: #0b1f3a;
	font-size: 20px;
	line-height: 1.2;
	font-weight: 800;
}

.property-code {
	margin-top: 6px;
	color: #98a3b3;
	font-size: 10px;
}

.favorite-button {
	position: absolute;
	top: 10px;
	right: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 1px solid rgba(214, 223, 235, 0.95);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.96);
	color: #17375e;
	font-size: 21px;
	line-height: 1;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
	backdrop-filter: blur(3px);
}

.favorite-button:hover {
	background: #ffffff;
	transform: scale(1.04);
}

.result-loading,
.result-empty {
	grid-column: 1 / -1;
	padding: 34px;
	border: 1px dashed #cbd5e1;
	border-radius: 16px;
	background: #f8fafc;
	text-align: center;
	color: #64748b;
}

.pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	width: calc(100% - 25px);
	max-width: calc(100% - 25px);
	margin: 24px auto 0;
	overflow: hidden;
}

.page-button {
	min-width: 38px;
	height: 38px;
	border: 1px solid #dbe3ef;
	border-radius: 9px;
	background: #ffffff;
	cursor: pointer;
}

.page-button.active {
	border-color: #2563eb;
	background: #2563eb;
	color: #ffffff;
}

@media (max-width: 1270px) {
	.results-list {
		grid-template-columns: repeat(3, minmax(300px, 1fr));
	}
}

@media (max-width: 960px) {
	.results-list {
		grid-template-columns: repeat(2, minmax(300px, 1fr));
	}
}

@media (max-width: 700px) {
	.results-section {
		width: auto;
		margin: 36px 16px 0;
	}

	.results-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}

	.results-toolbar {
		flex-direction: column;
		align-items: stretch;
	}

	.results-header {
		width: 100%;
		text-align: center;
	}

	.results-header h2 {
		font-size: 18px;
		text-align: center;
	}

	.sort-control {
		width: 100%;
	}

	.result-card > img {
		aspect-ratio: 2 / 1;
		min-height: 0;
		max-height: none;
	}

	.result-info {
		padding: 8px 9px 10px;
	}

	.result-location {
		margin-bottom: 4px;
		font-size: 9px;
	}

	.result-info h3 {
		min-height: 32px;
		margin-bottom: 8px;
		font-size: 11.5px;
		line-height: 1.35;
	}

	.result-meta {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 4px 5px;
		margin-bottom: 8px;
		font-size: 8.5px;
	}

	.result-meta span::before {
		margin-right: 3px;
	}

	.result-info strong {
		font-size: 15px;
	}

	.property-code {
		margin-top: 4px;
		font-size: 8px;
	}

	.favorite-button {
		top: 6px;
		right: 6px;
		width: 28px;
		height: 28px;
		font-size: 17px;
	}

	.listing-badge {
		margin-bottom: 4px;
		font-size: 9px;
	}
}

.result-card[data-property-url] {
	cursor: pointer;
}

.listing-badge {
	margin: 0 0 6px;
	color: #1877f2;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: 0.04em;
	text-align: center;
}

@media (max-width: 700px) {
	.listing-badge {
		margin-bottom: 4px;
		font-size: 14px;
	}
}

@media (max-width: 420px) {
	.results-section {
		margin-right: 10px;
		margin-left: 10px;
	}

	.results-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.result-info {
		padding: 7px 7px 9px;
	}

	.result-info h3 {
		font-size: 10.5px;
	}

	.result-info strong {
		font-size: 14px;
	}
}

.results-section.is-empty-search .results-toolbar {
	display: none;
}

.results-section.is-empty-search .results-header {
	width: 100%;
	text-align: center;
}

.results-section.is-empty-search .result-empty {
	text-align: center;
}


/* Property thumbnail layout: image-led card with price/actions below the photo. */
.result-card > img {
	aspect-ratio: 1.55 / 1;
	min-height: 210px;
	max-height: 270px;
}

.result-info {
	padding: 14px 16px 16px;
}

.card-price-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 8px;
}

.result-info .card-price {
	margin: 0;
	color: #111827;
	font-size: 21px;
	font-weight: 800;
	line-height: 1.15;
}

.favorite-button {
	position: static;
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	background: transparent;
	color: #17375e;
	font-size: 27px;
	line-height: 1;
	cursor: pointer;
	box-shadow: none;
}

.favorite-button:hover {
	background: #f1f5f9;
	border-radius: 50%;
}

.card-type-line {
	margin-bottom: 5px;
	color: #111827;
	font-size: 13px;
	font-weight: 750;
	line-height: 1.35;
}

.result-info .listing-badge {
	margin: 0 0 5px;
	font-size: 14px;
	text-align: center;
}

.result-location {
	margin-bottom: 6px;
	font-size: 12px;
}

.result-info h3 {
	min-height: 38px;
	margin-bottom: 10px;
	font-size: 14px;
}

.result-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin: auto 0 0;
	padding-top: 9px;
	border-top: 1px solid #edf1f5;
	font-size: 14px;
}

.result-meta span::before {
	margin-right: 5px;
}

.result-meta .meta-floor::before { content: "\f1ad"; }
.result-meta .meta-bed::before { content: "\f236"; }
.result-meta .meta-bath::before { content: "\f2cd"; }

.property-code {
	margin-top: 7px;
}

@media (max-width: 700px) {
	.result-card > img {
		aspect-ratio: 1.28 / 1;
		min-height: 0;
		max-height: none;
	}

	.result-info {
		padding: 9px 9px 11px;
	}

	.card-price-row {
		margin-bottom: 5px;
	}

	.result-info .card-price {
		font-size: 15px;
	}

	.favorite-button {
		width: 27px;
		height: 27px;
		font-size: 22px;
	}

	.card-type-line {
		margin-bottom: 3px;
		font-size: 10px;
	}

	.result-location {
		margin-bottom: 4px;
		font-size: 9px;
	}

	.result-info h3 {
		min-height: 30px;
		margin-bottom: 7px;
		font-size: 10.5px;
	}

	.result-meta {
		gap: 5px 8px;
		padding-top: 6px;
		font-size: 8.5px;
	}

	.result-info .listing-badge {
		margin-bottom: 3px;
		font-size: 8px;
	}
}


/* Mobile cards: one property per row, keep desktop typography and favorite styling. */
@media (max-width: 700px) {
	.results-list {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.result-card > img {
		aspect-ratio: 1.55 / 1;
		min-height: 210px;
		max-height: 270px;
	}

	.result-info {
		padding: 14px 16px 16px;
	}

	.card-price-row {
		margin-bottom: 8px;
	}

	.result-info .card-price {
		font-size: 21px;
	}

	.favorite-button {
		width: 34px;
		height: 34px;
		font-size: 27px;
	}

	.card-type-line {
		margin-bottom: 5px;
		font-size: 13px;
	}

	.result-info .listing-badge {
		margin-bottom: 5px;
		font-size: 14px;
	}

	.result-location {
		margin-bottom: 6px;
		font-size: 12px;
	}

	.result-info h3 {
		min-height: 38px;
		margin-bottom: 10px;
		font-size: 14px;
		line-height: 1.35;
	}

	.result-meta {
		gap: 8px 14px;
		padding-top: 9px;
		font-size: 14px;
	}

	.result-meta span::before {
		margin-right: 5px;
	}

	.property-code {
		margin-top: 7px;
		font-size: inherit;
	}
}

@media (max-width: 420px) {
	.results-list {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.result-info {
		padding: 14px 16px 16px;
	}

	.result-info h3 {
		font-size: 14px;
	}

	.result-info .card-price,
	.result-info strong {
		font-size: 21px;
	}
}

/* Mobile readability: larger result-card typography for comfortable reading. */
@media (max-width: 700px) {
	.result-info .card-price,
	.result-info strong {
		font-size: 23px;
	}

	.card-type-line {
		font-size: 15px;
		line-height: 1.4;
	}

	.result-info .listing-badge {
		font-size: 14px;
		line-height: 1.35;
	}

	.result-location {
		font-size: 14px;
		line-height: 1.45;
	}

	.result-info h3 {
		min-height: 44px;
		font-size: 16px;
		line-height: 1.4;
	}

	.result-meta {
		font-size: 14px;
		line-height: 1.4;
	}
}

@media (max-width: 420px) {
	.result-info .card-price,
	.result-info strong {
		font-size: 23px;
	}

	.result-info h3 {
		font-size: 16px;
	}
}


/* ===== footer.css | favorites ===== */

.site-footer {
	margin-top: auto;
	padding: 32px 40px;
	border-top: 1px solid #e5eaf3;
	background: #fafbfd;
}

.site-footer-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	font-size: 14px;
	line-height: 1.5;
	color: #64748b;
}

.site-footer-copy,
.site-footer-credit {
	font-weight: 500;
}

.site-footer-credit a {
	font-weight: 700;
	color: #2563eb;
	text-decoration: none;
}

.site-footer-credit a:hover {
	text-decoration: underline;
}

@media (max-width: 900px) {
	.site-footer {
		margin-top: 38px;
		padding: 24px 20px;
	}

	.site-footer-content {
		flex-direction: column;
		gap: 8px;
		text-align: center;
		font-size: 13px;
	}
}

