/* ========================================================
   PROPYAMOR - Premium Real Estate Design
   Glassmorphism + Trust-focused aesthetic
   ======================================================== */

/* ---------- DESIGN TOKENS ---------- */
:root {
	--brand: #e8a99b;
	--brand-dark: #d4897a;
	--brand-light: #f9ded8;
	--brand-subtle: #fdf5f3;
	--accent: #b5736a;
	--accent-dark: #945a52;
	--text-primary: #1a1a2e;
	--text-secondary: #555770;
	--text-muted: #8e90a6;
	--surface: #ffffff;
	--surface-alt: #f8f9fc;
	--border: #e8e9f0;
	--border-light: #f0f1f5;
	--shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
	--shadow-md: 0 4px 12px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04);
	--shadow-lg: 0 10px 30px rgba(0,0,0,0.10), 0 4px 8px rgba(0,0,0,0.04);
	--shadow-xl: 0 20px 50px rgba(0,0,0,0.12), 0 8px 16px rgba(0,0,0,0.06);
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--radius-xl: 20px;
	--glass-bg: rgba(255, 255, 255, 0.72);
	--glass-border: rgba(255, 255, 255, 0.3);
	--glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
	--transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ---------- BASE ---------- */
html {
	min-height: 100%;
}
body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--text-primary);
	background-color: #fafafb;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

a {
	color: var(--accent);
	text-decoration: none;
	transition: color var(--transition);
}
a:hover {
	color: var(--accent-dark);
}

.content {
	padding-top: 24px;
	padding-bottom: 40px;
}

/* ---------- WRAPPER ---------- */
.wrapper {
	background-color: var(--surface);
	flex: 1 0 auto;
}

/* ========== NAVBAR ========== */
.navbar {
	background: #fafafb !important;
	border-bottom: 1px solid var(--border);
	padding: 6px 0 !important;
	min-height: 56px;
	box-shadow: 0 1px 8px rgba(0,0,0,0.04);
	transition: box-shadow var(--transition);
}
.navbar-brand img {
	max-height: 46px;
	transition: transform var(--transition);
}
.navbar-brand:hover img {
	transform: scale(1.03);
}
.navbar-nav {
	margin-left: auto;
	align-items: center;
}
.navbar-nav .nav-link {
	color: #6b5e5a !important;
	font-size: 14px;
	font-weight: 500;
	padding: 8px 14px !important;
	border-radius: var(--radius-sm);
	transition: all var(--transition);
	letter-spacing: 0.01em;
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
	color: var(--brand-dark) !important;
	background-color: var(--brand-subtle);
}
.navbar-nav .nav-link.active {
	color: #fff !important;
	font-weight: 600;
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
}
/* Language dropdown button */
.navbar-nav .nav-item.dropdown {
	margin-left: 8px;
}
.navbar-nav .nav-item.dropdown > .nav-link {
	background: var(--surface-alt) !important;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 5px 12px !important;
	display: flex;
	align-items: center;
	gap: 6px;
}
.navbar-nav .nav-item.dropdown > .nav-link:hover {
	background: var(--brand-subtle) !important;
	border-color: var(--brand-light);
}
.navbar-nav .nav-item.dropdown > .nav-link img {
	height: 14px;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
}
.navbar-nav .dropdown-menu {
	padding: 6px;
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-lg);
	background: var(--surface);
	min-width: auto !important;
}
.navbar-nav .dropdown-item {
	padding: 6px 12px;
	border-radius: var(--radius-sm);
	transition: background-color var(--transition);
}
.navbar-nav .dropdown-item:hover {
	background-color: var(--surface-alt);
}
.navbar-nav .dropdown-item img {
	height: 14px;
	border-radius: 2px;
	box-shadow: 0 0 0 1px rgba(0,0,0,0.1);
}
.navbar-toggler {
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 6px 10px;
}
/* ========== END NAVBAR ========== */

/* ========== SEARCHBAR ========== */
.searchbar {
	margin-top: 68px;
	margin-bottom: 0;
	padding: 20px 0 18px 0 !important;
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
	box-shadow: 0 4px 16px rgba(212, 137, 122, 0.25);
}

.searchbar-tagline {
	text-align: center;
	color: rgba(255,255,255,0.92);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.searchbar-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: center;
	gap: 10px;
}

.searchbar-field {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.searchbar-label {
	color: rgba(255,255,255,0.85);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding-left: 2px;
}
.searchbar-label i {
	margin-right: 2px;
}

.searchbar input, .searchbar select {
	max-width: 160px;
	border-radius: var(--radius-sm) !important;
	border: 1px solid rgba(255,255,255,0.3) !important;
	background: rgba(255,255,255,0.92) !important;
	transition: border-color var(--transition), box-shadow var(--transition);
	font-size: 13px;
}
.searchbar input:focus, .searchbar select:focus {
	border-color: #fff !important;
	box-shadow: 0 0 0 3px rgba(255,255,255,0.3) !important;
	background: #fff !important;
}

.searchbar-actions {
	display: flex;
	gap: 6px;
	align-items: flex-end;
	padding-bottom: 1px;
}

.btn-searchbar {
	background: rgba(255,255,255,0.95) !important;
	color: var(--brand-dark) !important;
	font-weight: 600;
	font-size: 13px;
	padding: 6px 16px;
	border-radius: var(--radius-sm) !important;
	border: none !important;
	transition: all var(--transition) !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.btn-searchbar:hover {
	background: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.btn-searchbar-alt {
	background: transparent !important;
	color: rgba(255,255,255,0.9) !important;
	font-weight: 500;
	font-size: 13px;
	padding: 6px 14px;
	border-radius: var(--radius-sm) !important;
	border: 1px solid rgba(255,255,255,0.4) !important;
	transition: all var(--transition) !important;
}
.btn-searchbar-alt:hover {
	background: rgba(255,255,255,0.15) !important;
	border-color: rgba(255,255,255,0.7) !important;
	color: #fff !important;
}

.searchbar-mobile {
	text-align: center;
	margin-top: 4px;
}
/* ========== END SEARCHBAR ========== */

/* ========== PROPERTY CARDS (GLASSMORPHISM) ========== */
.house_small {
	font-size: 12px;
	margin-bottom: 32px;
	transition: transform var(--transition);
}

.house_small > a > .card.card-body.bg-light.grow,
.house_small .card.card-body.bg-light.grow {
	height: 240px !important;
	border-radius: var(--radius-lg) !important;
	border: none !important;
	background-color: transparent !important;
	background-size: cover !important;
	background-position: center !important;
	position: relative;
	overflow: hidden;
	box-shadow: var(--shadow-md);
	transition: all var(--transition);
}

.house_small:hover > a > .card.card-body.bg-light.grow,
.house_small:hover .card.card-body.bg-light.grow {
	box-shadow: var(--shadow-xl) !important;
	transform: translateY(-4px);
}

/* Glassmorphism overlay on property cards */
.house_small .overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: 14px 16px;
	background: var(--glass-bg);
	backdrop-filter: blur(16px) saturate(180%);
	-webkit-backdrop-filter: blur(16px) saturate(180%);
	border-top: 1px solid var(--glass-border);
	border-radius: 0 0 var(--radius-lg) var(--radius-lg);
}

.house_small .overlay .badge.bg-secondary {
	background: rgba(26, 26, 46, 0.75) !important;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	color: #fff !important;
	font-weight: 600;
	font-size: 13px;
	padding: 6px 12px;
	border-radius: var(--radius-sm);
	letter-spacing: 0.02em;
}

.house_small .badge-lastminute {
	background: linear-gradient(135deg, #ff4757 0%, #ff6b81 100%) !important;
	color: #fff !important;
	font-weight: 700;
	font-size: 11px;
	padding: 4px 10px;
	border-radius: var(--radius-sm);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	animation: pulse-gentle 2s ease-in-out infinite;
}

@keyframes pulse-gentle {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.85; }
}

.house_small h3 {
	font-size: 15px;
	font-weight: 600;
	overflow: hidden;
	height: auto;
	max-height: 42px;
	line-height: 21px;
	padding: 0;
	margin: 10px 0 4px 0;
	color: var(--text-primary);
}
.house_small h3 a {
	color: var(--text-primary);
	text-decoration: none;
	transition: color var(--transition);
}
.house_small h3 a:hover {
	color: var(--brand-dark);
}

.house_small > a + h3 + a,
.house_small a[href*="url_house"],
.house_small > a ~ a {
	color: var(--text-muted);
	font-size: 12px;
}

.house_small_icons {
	font-size: 13px;
	color: var(--text-secondary);
	margin-top: 6px;
	display: block;
}
.house_small_icons .badge.bg-secondary {
	background-color: var(--surface-alt) !important;
	color: var(--text-secondary) !important;
	font-weight: 500;
	font-size: 11px;
	padding: 4px 8px;
	border-radius: 6px;
	border: 1px solid var(--border);
	margin-bottom: 3px;
	transition: all var(--transition);
}
.house_small_icons .badge.bg-secondary:hover {
	background-color: var(--brand-subtle) !important;
	border-color: var(--brand-light);
	color: var(--brand-dark) !important;
}

/* Remove old grow hover effect */
.grow {
	transition: all var(--transition);
}
.grow:hover {
	box-shadow: none;
}

.house_small:hover {
	box-shadow: none;
}

/* Compare checkbox styling */
.compare {
	margin-top: 6px;
}
.compare label {
	font-size: 12px;
	color: var(--text-muted);
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 6px;
}
.compare input[type="checkbox"] {
	accent-color: var(--brand);
}

/* ========== END PROPERTY CARDS ========== */

/* ========== JUMBOTRON / SPOTLIGHT ========== */
#jumbotron1 {
	height: 460px;
	padding: 40px 0;
	border-radius: var(--radius-xl);
	overflow: hidden;
	position: relative;
}
#jumbotron1::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.45) 100%);
}
#jumbotron1 .container {
	position: relative;
	z-index: 1;
}
#jumbotron1 h1, #jumbotron1 p {
	background-color: transparent;
	padding: 0;
	color: #fff !important;
	text-shadow: 0 2px 8px rgba(0,0,0,0.3);
}
#jumbotron1 h1 {
	font-weight: 700;
}
#jumbotron1 .overlay {
	position: static;
	background: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	border: none;
	padding: 0;
}
#jumbotron1 .overlay .badge.bg-secondary {
	background: var(--glass-bg) !important;
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	color: var(--text-primary) !important;
	font-size: 14px;
	padding: 8px 16px;
	border-radius: var(--radius-sm);
	font-weight: 600;
}

@media screen and (min-width: 768px) {
	#jumbotron1 .h1, #jumbotron1 h1 {
		font-size: 48px !important;
	}
	#jumbotron1 .overlay span {
		font-size: 16px;
	}
}

/* Jumbo blocks on homepage */
.jumbo1, .jumbo2 {
	text-align: center;
	color: #fff;
}
.jumbo1 a, .jumbo2 a {
	color: #fff;
	text-decoration: none;
}
.jumbo2 h1 {
	font-size: 42px;
}
.jumbo1 h1, .jumbo1 p, .jumbo2 h1, .jumbo2 p {
	background-color: rgba(0, 0, 0, 0.35);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: var(--radius-sm);
	padding: 4px 8px;
}
.jumbo1:hover, .jumbo2:hover {
	box-shadow: var(--shadow-lg);
}

/* ========== TYPOGRAPHY ========== */
h1 {
	font-size: 28px;
	font-weight: 700;
	color: var(--text-primary);
	letter-spacing: -0.02em;
}
h1 small {
	font-size: 16px;
	color: var(--text-muted);
	font-weight: 400;
}
h2 {
	font-size: 22px;
	font-weight: 600;
	color: var(--text-primary);
	letter-spacing: -0.01em;
}
h5 {
	font-size: 17px;
	font-weight: 600;
}

/* ========== BRAND COLORS ========== */
.btn-primary {
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
	border: none !important;
	color: #fff !important;
	font-weight: 600;
	padding: 8px 20px;
	border-radius: var(--radius-sm) !important;
	box-shadow: 0 2px 8px rgba(232, 169, 155, 0.35);
	transition: all var(--transition) !important;
	letter-spacing: 0.01em;
}
.btn-primary:hover {
	background: linear-gradient(135deg, var(--brand-dark) 0%, #c4776a 100%) !important;
	box-shadow: 0 4px 14px rgba(212, 137, 122, 0.4) !important;
	transform: translateY(-1px);
}
.btn-primary.btn-sm {
	padding: 5px 14px;
	font-size: 13px;
}
.btn-primary.btn-lg {
	padding: 12px 28px;
	font-size: 16px;
	border-radius: var(--radius-md) !important;
}

.btn-info {
	background-color: var(--accent) !important;
	border-color: var(--accent) !important;
	color: #fff !important;
	font-weight: 500;
	border-radius: var(--radius-sm) !important;
	transition: all var(--transition) !important;
}
.btn-info:hover {
	background-color: var(--accent-dark) !important;
	border-color: var(--accent-dark) !important;
}

.btn-secondary {
	background-color: var(--surface-alt) !important;
	border: 1px solid var(--border) !important;
	color: var(--text-secondary) !important;
	font-weight: 500;
	border-radius: var(--radius-sm) !important;
	transition: all var(--transition) !important;
}
.btn-secondary:hover {
	background-color: var(--border-light) !important;
	color: var(--text-primary) !important;
}

.btn-outline-secondary {
	border-radius: var(--radius-sm) !important;
	transition: all var(--transition) !important;
}
.btn-outline-secondary:hover {
	background-color: var(--surface-alt) !important;
}

.btn-danger {
	border-radius: var(--radius-sm) !important;
}

.bg-danger {
	background-color: #ff4757 !important;
}
.badge.bg-secondary {
	background-color: var(--brand) !important;
	font-weight: 500;
}
.badge.bg-info {
	background-color: var(--accent) !important;
}
.badge-lastminute {
	background: linear-gradient(135deg, #ff4757 0%, #ff6b81 100%) !important;
}

/* ========== FORMS ========== */
.form-control, .form-select {
	font-size: 13px;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	transition: border-color var(--transition), box-shadow var(--transition);
}
.form-control:focus, .form-select:focus {
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(232, 169, 155, 0.15);
}

/* ========== BREADCRUMBS ========== */
.breadcrumb {
	background-color: var(--surface-alt);
	padding: 10px 16px;
	border-radius: var(--radius-md);
	border: 1px solid var(--border-light);
	font-size: 13px;
}
.breadcrumb-item a {
	color: var(--brand-dark);
	text-decoration: none;
	font-weight: 500;
}
.breadcrumb-item a:hover {
	color: var(--accent-dark);
	text-decoration: underline;
}
.breadcrumb-item.active {
	color: var(--text-muted);
}

/* ========== CARDS & PANELS ========== */
.card {
	border: 1px solid var(--border);
	border-radius: var(--radius-md);
	transition: box-shadow var(--transition);
}
.card.card-body.bg-light {
	border-radius: var(--radius-md);
	background-color: var(--surface-alt) !important;
	border: 1px solid var(--border-light);
}
.card.card-body {
	background-size: cover;
}

/* ========== ALERTS ========== */
.alert {
	border-radius: var(--radius-md);
	border: none;
	font-weight: 500;
}
.alert-success {
	background-color: #e8f5e9;
	color: #2e7d32;
}
.alert-danger {
	background-color: #ffeef0;
	color: #c62828;
}

/* ========== FOOTER ========== */
.footer {
	flex-shrink: 0;
	width: 100%;
	color: rgba(255,255,255,0.8);
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
	padding: 36px 0 24px 0;
	margin-bottom: 0;
}
.footer a {
	color: #fff;
	font-size: 13px;
	line-height: 22px;
	transition: opacity var(--transition);
}
.footer a:hover {
	opacity: 0.8;
	color: #fff;
}
.footer h4 {
	color: #fff;
	margin-bottom: 8px;
	margin-top: 4px;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}
.footer > .container {
	width: auto;
	max-width: 1170px;
	padding: 0 15px;
}
.text-muted {
	color: rgba(255,255,255,0.7) !important;
	font-size: 13px;
	line-height: 18px;
}
.container .text-muted {
	margin: 20px 0;
}
/* ========== END FOOTER ========== */

/* ========== RESPONSIVE ========== */
@media screen and (max-width:767px){
	.newsletter {
		margin-bottom: 20px;
	}
	.datetimepicker {
		width: 100%;
	}
	.searchfields {
		display: none;
	}
	.collapse.show{
		display:inline-block !important;
	}
	.house_small {
		margin-bottom: 24px;
	}
	#jumbotron1 {
		height: 300px;
		border-radius: 0;
	}
}
@media screen and (min-width:768px){
	.newsletterform {
		padding-top: 18px;
	}
	.newsletter {
		margin-bottom: 20px;
	}
	.datetimepicker {
		width: 33%;
		max-width: 32% !important;
	}
}
/* ---------- Map ---------- */
#map {
	height: 400px;
	width: 100%;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-md);
}

/* ---------- Misc ---------- */
.green {
	color: #2e7d32;
}
.red {
	color: #c62828;
}
.nopadding {
	padding-left: 0 !important;
}
.countryflag {
	font-size: 9px;
	margin-top: 8px;
}
.overlay span {
	background-color: #88ce24;
}
.datepicker_search {
	max-width: 110px;
}
.clear{
	clear: both;
}
.location a {
	color: var(--accent);
}
/* Newsletter banner */
.newsletter {
	background: linear-gradient(135deg, var(--accent) 0%, var(--accent-dark) 100%);
	color: #fff;
	padding: 16px 0;
	vertical-align: middle;
	border-radius: var(--radius-md);
}

/* ---------- Availability Calendar ---------- */
.datetimepicker table td.today {
	background: #e3f2fd;
	color: #1565c0;
	border-radius: 4px;
}
.datetimepicker table td.today:hover{
	background: #e3f2fd;
	color: #1565c0;
	cursor:not-allowed;
	pointer-events: none;
}
.datetimepicker table td.old {
	background: #e0e0e0;
	color: #9e9e9e;
}
.datetimepicker table td.old:hover{
	background: #e0e0e0;
	color: #9e9e9e;
	cursor:not-allowed;
	pointer-events: none;
}

.markgreen {
	background: #43a047 !important;
	color: white;
	border-radius: 4px;
}
.markred {
	background: #e53935 !important;
	color: white;
	border-radius: 4px;
}
.near-month {
	visibility: hidden;
}
.next, .prev {
	display: none;
}
.datetimepicker {
	border-radius: var(--radius-md) !important;
	box-shadow: var(--shadow-sm) !important;
	border: 1px solid var(--border) !important;
}
.datetimepicker:first-of-type {
	margin-left: 5px;
}

.unavailable2available {
	background-image: url('/img/halfday2.png') !important;
}
.onrequest2unavailable {
	background-color: #e2e2e2 !important;
	color: #000 !important;
	background-image: url('/img/halfday1.png') !important;
}
.unavailable2onrequest {
	background-image: url('/img/halfday2.png') !important;
}
.available2onrequest {
	color: #fff !important;
	background-image: url('/img/halfday4.png') !important;
}
.available2unavailable {
	color: #fff !important;
	background-image: url('/img/halfday4.png') !important;
}
.onrequest2available {
	background-color: #e2e2e2 !important;
	color: #000 !important;
	background-image: url('/img/halfday3.png') !important;
}
.onrequest {
	background-color:#e2e2e2;
	color:#000;
}
.available {
	background-color: #43a047;
	color: #fff;
}

/* ---------- Container fluid ---------- */
.container-fluid {
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.container #jumbotron1, .container-fluid #jumbotron1 {
	border-radius: 0;
}

/* ---------- Button Label (search term pills) ---------- */
.btn-label {
	color: var(--text-secondary);
	background-color: var(--surface-alt);
	border: 1px solid var(--border);
	border-radius: 20px;
	font-size: 13px;
	padding: 4px 14px;
	transition: all var(--transition);
}
.btn-label:hover {
	background-color: #ffeef0;
	border-color: #ffcdd2;
	color: #c62828;
}

.center {
	text-align: center;
}

/* ========== HOUSE DETAIL PAGE ========== */
.house-detail {
	padding-bottom: 40px;
}

/* Back button */
.btn-back {
	background: var(--surface-alt);
	color: var(--text-secondary);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-weight: 500;
	padding: 6px 16px;
	margin-bottom: 20px;
	transition: all var(--transition);
}
.btn-back:hover {
	background: var(--border-light);
	color: var(--text-primary);
}

/* Gallery */
.house-gallery {
	margin-bottom: 24px;
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-md);
	background: var(--surface-alt);
}
.house-gallery-main {
	width: 100%;
	max-height: 520px;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #1a1a2e;
}
.house-gallery-main img {
	width: 100%;
	height: 520px;
	object-fit: cover;
	display: block;
}
.house-gallery-thumbs {
	display: flex;
	gap: 4px;
	padding: 6px;
	overflow-x: auto;
	background: var(--surface);
	scrollbar-width: thin;
	scrollbar-color: var(--border) transparent;
}
.house-gallery-thumbs::-webkit-scrollbar {
	height: 6px;
}
.house-gallery-thumbs::-webkit-scrollbar-thumb {
	background: var(--border);
	border-radius: 3px;
}
.house-thumb {
	flex: 0 0 auto;
	width: 90px;
	height: 64px;
	border-radius: var(--radius-sm);
	overflow: hidden;
	opacity: 0.65;
	transition: all var(--transition);
	border: 2px solid transparent;
	cursor: pointer;
}
.house-thumb:hover,
.house-thumb.active {
	opacity: 1;
	border-color: var(--brand);
}
.house-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.house-title {
	font-size: 26px;
	font-weight: 700;
	color: var(--text-primary);
	margin-bottom: 6px;
	letter-spacing: -0.02em;
}
.house-location {
	color: var(--text-secondary);
	font-size: 14px;
	margin-bottom: 12px;
}
.house-location i {
	color: var(--brand-dark);
	margin-right: 4px;
}
.house-location a {
	color: var(--accent);
	font-weight: 500;
}
.house-location a:hover {
	color: var(--accent-dark);
	text-decoration: underline;
}

/* Feature badges */
.house-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 4px;
	margin-bottom: 24px;
}
.house-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	background: var(--surface-alt);
	border: 1px solid var(--border);
	border-radius: 20px;
	padding: 5px 12px;
	font-size: 12px;
	font-weight: 500;
	color: var(--text-secondary);
	transition: all var(--transition);
}
.house-badge:hover {
	background: var(--brand-subtle);
	border-color: var(--brand-light);
	color: var(--brand-dark);
}
.house-badge i {
	font-size: 12px;
	color: var(--accent);
}

/* Price card */
.house-price-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	padding: 24px;
	text-align: center;
	box-shadow: var(--shadow-md);
	position: sticky;
	top: 80px;
	margin-bottom: 24px;
}
.house-price-label {
	font-size: 13px;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
}
.house-price-amount {
	font-size: 36px;
	font-weight: 700;
	color: var(--text-primary);
	line-height: 1.1;
	margin: 4px 0;
}
.house-price-unit {
	font-size: 13px;
	color: var(--text-muted);
	margin-bottom: 18px;
}
.btn-house-reserve {
	display: block;
	width: 100%;
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
	color: #fff;
	border: none;
	border-radius: var(--radius-sm);
	padding: 10px 20px;
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 8px;
	transition: all var(--transition);
	box-shadow: 0 2px 8px rgba(232, 169, 155, 0.35);
}
.btn-house-reserve:hover {
	background: linear-gradient(135deg, var(--brand-dark) 0%, #c4776a 100%);
	box-shadow: 0 4px 14px rgba(212, 137, 122, 0.4);
	transform: translateY(-1px);
	color: #fff;
}
.btn-house-contact {
	display: block;
	width: 100%;
	background: var(--surface-alt);
	color: var(--text-secondary);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	padding: 9px 20px;
	font-weight: 500;
	font-size: 14px;
	transition: all var(--transition);
}
.btn-house-contact:hover {
	background: var(--border-light);
	color: var(--text-primary);
}

/* Content area */
.house-content {
	margin-bottom: 32px;
}

/* Sections */
.house-section {
	margin-bottom: 28px;
}
.house-section h2,
.house-section h3 {
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 12px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--brand-light);
}
.house-section h2 {
	font-size: 22px;
}
.house-section h3 {
	font-size: 18px;
}
.house-text {
	font-size: 14px;
	line-height: 1.7;
	color: var(--text-secondary);
}
.house-external-link {
	margin-top: 12px;
	color: var(--text-muted);
}
.house-external-link a {
	color: var(--accent);
	font-weight: 500;
}

/* House tables (pricing / tariffs) */
.house-table {
	font-size: 14px;
	border-color: var(--border);
}
.house-table thead th {
	background: var(--surface-alt);
	font-weight: 600;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: var(--text-secondary);
	border-color: var(--border);
	padding: 10px 14px;
}
.house-table td {
	padding: 10px 14px;
	vertical-align: middle;
	border-color: var(--border-light);
}
.house-tag {
	display: inline-block;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	padding: 2px 8px;
	border-radius: 10px;
	background: var(--brand-subtle);
	color: var(--brand-dark);
	margin-left: 6px;
}
.house-old-price {
	color: var(--text-muted);
	text-decoration: line-through;
	font-size: 13px;
}

/* Sidebar card */
.house-sidebar-card {
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
	margin-bottom: 24px;
}
.house-sidebar-card .nav-tabs {
	border-bottom: 1px solid var(--border);
	padding: 0;
	margin: 0;
}
.house-sidebar-card .nav-tabs .nav-link {
	font-size: 13px;
	font-weight: 500;
	color: var(--text-secondary);
	border: none;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	padding: 12px 8px;
	transition: all var(--transition);
}
.house-sidebar-card .nav-tabs .nav-link:hover {
	color: var(--brand-dark);
	background: var(--brand-subtle);
}
.house-sidebar-card .nav-tabs .nav-link.active {
	color: var(--brand-dark);
	border-bottom-color: var(--brand-dark);
	background: transparent;
	font-weight: 600;
}
.house-sidebar-card .tab-content {
	padding: 0;
}

/* Detail table in sidebar */
.house-detail-table {
	font-size: 13px;
	margin-bottom: 0;
}
.house-detail-table td {
	padding: 8px 14px;
	border-color: var(--border-light);
	vertical-align: middle;
}
.house-detail-table tr td:first-child {
	color: var(--text-secondary);
	font-weight: 500;
	width: 60%;
}
.house-detail-table tr td:last-child {
	color: var(--text-primary);
	font-weight: 500;
	text-align: right;
}

/* Calendar navigation */
.house-calendar-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
	gap: 12px;
	flex-wrap: wrap;
}
.house-calendar-legend {
	display: flex;
	align-items: center;
	gap: 16px;
}
.house-legend-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--text-secondary);
	font-weight: 500;
}
.house-legend-dot {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	display: inline-block;
}

/* Last minute card */
.house-lastminute-card {
	display: flex;
	gap: 16px;
	background: linear-gradient(135deg, #fff8e1 0%, #fff3e0 100%);
	border: 1px solid #ffe0b2;
	border-radius: var(--radius-md);
	padding: 20px;
	margin-bottom: 24px;
}
.house-lastminute-icon {
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	background: linear-gradient(135deg, #ff9800, #f57c00);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: 18px;
	box-shadow: 0 2px 8px rgba(255, 152, 0, 0.3);
}
.house-lastminute-body {
	flex: 1;
}
.house-lastminute-body h3 {
	font-size: 16px;
	font-weight: 600;
	color: #e65100;
	margin-bottom: 8px;
	padding-bottom: 0;
	border-bottom: none;
}
.house-lastminute-row {
	font-size: 14px;
	color: var(--text-secondary);
	padding: 4px 0;
	line-height: 1.5;
}

/* Responsive house detail */
@media screen and (max-width: 767px) {
	.house-gallery-main img {
		height: 280px;
	}
	.house-thumb {
		width: 70px;
		height: 50px;
	}
	.house-title {
		font-size: 22px;
	}
	.house-price-card {
		position: static;
		margin-bottom: 24px;
	}
	.house-calendar-nav {
		flex-direction: column;
		align-items: stretch;
		text-align: center;
	}
	.house-lastminute-card {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}
}
/* Contact modal */
.contact-modal {
	border: none;
	border-radius: var(--radius-xl) !important;
	overflow: hidden;
	box-shadow: var(--shadow-xl);
}
.contact-modal-header {
	background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
	border-bottom: none !important;
	padding: 20px 24px 16px 24px;
}
.contact-modal-header .modal-title {
	color: #fff;
	font-size: 18px;
	font-weight: 600;
}
.contact-modal-header .modal-title i {
	margin-right: 8px;
	opacity: 0.85;
}
.contact-modal-subtitle {
	color: rgba(255,255,255,0.8);
	font-size: 13px;
	margin: 4px 0 0 0;
}
.contact-modal-header .btn-close {
	filter: brightness(0) invert(1);
	opacity: 0.7;
}
.contact-modal-header .btn-close:hover {
	opacity: 1;
}
.contact-modal-body {
	padding: 24px !important;
}
.contact-modal-section {
	margin-bottom: 20px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--border-light);
}
.contact-modal-section:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}
.contact-modal-section-title {
	font-size: 14px;
	font-weight: 600;
	color: var(--text-primary);
	margin-bottom: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.contact-modal-section-title i {
	color: var(--accent);
	margin-right: 6px;
	width: 16px;
	text-align: center;
}
.contact-modal-label {
	font-size: 12px;
	font-weight: 600;
	color: var(--text-secondary);
	margin-bottom: 4px;
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}
.contact-modal-label i {
	color: var(--accent);
	margin-right: 4px;
}
.contact-modal-footer-info {
	background: var(--surface-alt);
	border-radius: var(--radius-md);
	padding: 16px !important;
	margin-left: -8px;
	margin-right: -8px;
}
.contact-modal-footer-info p {
	font-size: 13px;
	color: var(--text-muted);
	line-height: 1.6;
	margin-bottom: 10px;
}
.contact-modal-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
	font-size: 13px;
	color: var(--text-secondary);
}
.contact-modal-checkbox input[type="checkbox"] {
	accent-color: var(--brand);
	margin-top: 3px;
	flex-shrink: 0;
}
.contact-modal-actions {
	border-top: 1px solid var(--border-light) !important;
	padding: 16px 24px !important;
	gap: 8px;
}
.contact-modal .form-control,
.contact-modal .form-select {
	font-size: 13px;
	padding: 8px 12px;
}
.contact-modal .form-control:focus,
.contact-modal .form-select:focus {
	border-color: var(--brand);
	box-shadow: 0 0 0 3px rgba(232, 169, 155, 0.15);
}
.contact-modal .input-group .form-select {
	border-radius: var(--radius-sm) 0 0 var(--radius-sm);
}
.contact-modal .input-group .form-control {
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}
.contact-modal textarea.form-control {
	resize: vertical;
	min-height: 100px;
}
/* ========== END HOUSE DETAIL PAGE ========== */

/* Legacy house badge */
.house .badge {
	font-size: 14px;
	border-radius: var(--radius-sm);
}

/* ---------- Scroll-to-top ---------- */
.up-button {
	right: 16px;
	opacity: 1;
	z-index: 109;
	position: fixed;
	bottom: 16px;
	width: 44px;
	height: 44px;
	background-color: var(--brand);
	border-radius: 50%;
	box-shadow: var(--shadow-md);
	cursor: pointer;
	transition: all var(--transition);
	display: none;
}
.up-button:hover {
	background-color: var(--brand-dark);
	transform: translateY(-2px);
	box-shadow: var(--shadow-lg);
}
.up-button:before {
	display: block;
	width: 44px;
	height: 44px;
	content: "";
	background-image: url("data:image/svg+xml,%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' width='44px' height='44px' viewBox='0 0 44 44'%3E%3Cpath fill='white' d='M29.121,19.55l-6.29-6.196c-0.025-0.025-0.053-0.049-0.082-0.071c-0.012-0.011-0.024-0.02-0.038-0.03c-0.016-0.011-0.031-0.024-0.048-0.034c-0.017-0.011-0.032-0.02-0.048-0.03c-0.015-0.009-0.029-0.018-0.044-0.025c-0.017-0.009-0.034-0.017-0.051-0.024c-0.016-0.008-0.031-0.015-0.047-0.022c-0.016-0.006-0.033-0.012-0.049-0.018c-0.018-0.005-0.035-0.014-0.053-0.019c-0.017-0.005-0.034-0.008-0.05-0.013c-0.018-0.005-0.036-0.009-0.054-0.013c-0.02-0.003-0.039-0.006-0.059-0.008c-0.016-0.003-0.032-0.005-0.049-0.007c-0.073-0.007-0.146-0.007-0.218,0c-0.017,0.002-0.033,0.005-0.05,0.008c-0.02,0.002-0.038,0.005-0.058,0.009c-0.019,0.003-0.037,0.009-0.055,0.013c-0.016,0.005-0.033,0.008-0.05,0.013c-0.017,0.005-0.035,0.012-0.052,0.018c-0.017,0.006-0.033,0.012-0.049,0.019c-0.017,0.006-0.032,0.014-0.048,0.021c-0.017,0.008-0.034,0.016-0.051,0.024c-0.015,0.008-0.029,0.018-0.044,0.026c-0.015,0.008-0.031,0.018-0.048,0.029c-0.016,0.01-0.031,0.022-0.047,0.034c-0.014,0.01-0.027,0.019-0.04,0.028c-0.042,0.035-0.08,0.073-0.117,0.113c-0.013,0.011-0.026,0.021-0.037,0.033l-6.313,6.219c-0.433,0.428-0.434,1.12-0.003,1.544c0.432,0.426,1.131,0.424,1.564-0.002l4.495-4.426l-0.023,14.11c-0.001,0.603,0.493,1.092,1.104,1.09s1.107-0.49,1.109-1.095l0.023-14.108l4.403,4.334c0.432,0.426,1.133,0.424,1.565-0.003S29.553,19.975,29.121,19.55'/%3E%3C/svg%3E");
}

.modal-header .btn-close {
	margin-top: -10px;
}

.last-minute {
	background-color: #fff !important;
	border-color: #ffb74d !important;
	border-radius: var(--radius-md) !important;
}

.bar {
	height: 18px;
	border-radius: 9px;
}

/* ---------- Page header ---------- */
.pb-2.mb-4.border-bottom {
	border-color: var(--border) !important;
	padding-bottom: 12px !important;
}

/* ---------- Pagination ---------- */
.pagination {
	gap: 4px;
}
.page-link {
	border-radius: var(--radius-sm) !important;
	border: 1px solid var(--border);
	color: var(--text-secondary);
	font-weight: 500;
	transition: all var(--transition);
}
.page-item.active .page-link {
	background-color: var(--brand) !important;
	border-color: var(--brand) !important;
	color: #fff;
}
.page-link:hover {
	background-color: var(--brand-subtle);
	border-color: var(--brand-light);
	color: var(--brand-dark);
}

/* ---------- Tables ---------- */
.table {
	border-color: var(--border);
}
.table thead th {
	background-color: var(--surface-alt);
	border-color: var(--border);
	font-weight: 600;
	color: var(--text-primary);
}

/* ---------- Tabs ---------- */
.nav-tabs .nav-link {
	border-radius: var(--radius-sm) var(--radius-sm) 0 0;
	transition: all var(--transition);
}
.nav-tabs .nav-link.active {
	font-weight: 600;
}

/* ---------- Modal ---------- */
.modal-content {
	border-radius: var(--radius-lg);
	border: none;
	box-shadow: var(--shadow-xl);
}
.modal-header {
	border-bottom: 1px solid var(--border);
}
.modal-footer {
	border-top: 1px solid var(--border);
}

/* ---------- Font import ---------- */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');
